//------------------------------------------------------------------------
//[Compact URL tool] copyright(c) 2007 Hokuken lab.
//------------------------------------------------------------------------

function surroundHTML(tag, obj) {
	// N6
	if (document.getElementById) {
		var target = document.getElementById(obj);
	}
	// IE4
	else if (document.all) {
		var target = document.all[obj];
	}
	// N4
	else if (document.layers) {
		var target = document.layers[obj];
	}

	var pos = getAreaRange(target);
	 
	var val = target.value;
	var range = val.slice(pos.start, pos.end);
	var beforeNode = val.slice(0, pos.start);
	var afterNode = val.slice(pos.end);
	var insertNode;
	 
	if (range || pos.start != pos.end) {
		target.value = beforeNode + tag + afterNode;
	}
	 
	else if (pos.start == pos.end) {
		target.value = beforeNode + tag + afterNode;
	}
	
	var ln = tag.length + pos.start;
	var scrollPos = target.scrollTop

	if (isIE){
		var e=target.createTextRange();
		var tx=target.value.substr(0, ln);
		var pl=tx.split(/\n/);
		e.collapse(true);
		e.moveStart("character",ln-pl.length+1);
		e.text=e.text+"";
		e.collapse(false);
		e.select();
	}
	else {
		target.scrollTop = scrollPos;
		target.setSelectionRange(ln, ln);
	}

	target.focus();
	
}

function getAreaRange(obj) {
	var pos = new Object();
	 
	if (isIE) {
		obj.focus();
		var range = document.selection.createRange();
		var clone = range.duplicate();
		 
		clone.moveToElementText(obj);
		clone.setEndPoint( 'EndToEnd', range );
		 
		pos.start = clone.text.length - range.text.length;
		pos.end = clone.text.length - range.text.length + range.text.length;
	} 
	else if (window.getSelection()) {
		pos.start = obj.selectionStart;
		pos.end = obj.selectionEnd;
	}
 
	return pos;
//	alert(pos.start + "," + pos.end);
}

var isIE = (navigator.appName.toLowerCase().indexOf('internet explorer')+1?1:0);

/**
 *   ThickBox から値を textarea へ挿入する。
 */
function insertFromTB(textareaId, insert)
{
	var el = parent.document.getElementById(textareaId);
	el.focus();

 	if (document.selection) { // IE
		el.focus();
		sel = parent.document.selection.createRange();
		sel.text = insert;
	} else {
		var body = el.value;
		var at = el.selectionStart;
		var tmp = body.substr(0, at);
		 
		el.value = tmp + insert + body.substr(at, body.length);
		var cursor = insert.length + at;
		el.setSelectionRange(cursor, cursor);
	}
	
	self.parent.tb_remove();
}
