/************* MegaFileManager *******************/	
/*
Released by AwesomePHP.com, under the GPL License, a
copy of it should be attached to the zip file, or
you can view it on http://AwesomePHP.com/gpl.txt
*/
/************* MegaFileManager *******************/	

function BBTag(opentag, closetag, textarea){
	// Can a text range be created?
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange){
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? opentag + caretPos.text + closetag + ' ' : opentag + caretPos.text + closetag;
        if (temp_length == 0){
			caretPos.moveStart("character", -closetag.length);
			caretPos.moveEnd("character", -closetag.length);
			caretPos.select();
		}
		else
			textarea.focus(caretPos);
		}
		// Mozilla text range wrap.
		else if (typeof(textarea.selectionStart) != "undefined"){
			var begin = textarea.value.substr(0, textarea.selectionStart);
			var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
			var end = textarea.value.substr(textarea.selectionEnd);
			var newCursorPos = textarea.selectionStart;
			var scrollPos = textarea.scrollTop;
			textarea.value = begin + opentag + selection + closetag + end;
			if (textarea.setSelectionRange){
				if (selection.length == 0)
					textarea.setSelectionRange(newCursorPos + opentag.length, newCursorPos + opentag.length);
				else
					textarea.setSelectionRange(newCursorPos, newCursorPos + opentag.length + selection.length + closetag.length);
		            textarea.focus();
				}
				textarea.scrollTop = scrollPos;
		    }
			// Just put them on the end, then.
			else
		    {
				textarea.value += opentag + closetag;
				textarea.focus(textarea.value.length - 1);
			}
	return false;
}
