// Sniffer based on http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var uagent    = navigator.userAgent.toLowerCase();
var is_safari = ( (uagent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var is_ie     = ( (uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv) );
var is_ie4    = ( (is_ie) && (uagent.indexOf("msie 4.") != -1) );
var is_moz    = (navigator.product == 'Gecko');
var is_ns     = ( (uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari) );
var is_ns4    = ( (is_ns) && (parseInt(navigator.appVersion) == 4) );
var is_opera  = (uagent.indexOf('opera') != -1);
var is_kon    = (uagent.indexOf('konqueror') != -1);
var is_webtv  = (uagent.indexOf('webtv') != -1);
var is_win    =  ( (uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") !=- 1) );
var is_mac    = ( (uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc.") );
var ua_vers   = parseInt(navigator.appVersion);
//--------------------------------------------
// GENERAL INSERT FUNCTION
//--------------------------------------------
// ibTag: opening tag
// ibClsTag: closing tag, used if we have selected text
// isSingle: true if we do not close the tag right now
// return value: true if the tag needs to be closed later
function doInsert(strTag, isSingle)
{    
	var isClose = false;
	var obj_ta = document.post_form.post;
	var ibTag = "["+strTag+"]";
	var ibClsTag = "";
	var iSelLength;
	
	if (!isSingle)
	    ibClsTag = "[/"+strTag+"]";
	    
	// It's IE!
	if ( (ua_vers >= 4) && is_ie && is_win)
	{
		if (obj_ta.isTextEdit)
		{
			obj_ta.focus();
			var sel = document.selection;
			var rng = sel.createRange();
			rng.colapse;
			if((sel.type == "Text" || sel.type == "None") && rng != null)
			{
			    iSelLength = rng.text.length;
				if(ibClsTag != "" && iSelLength > 0)
				{
				    if (iSelLength > 1 && rng.text.substring(iSelLength-1) == " ")
				        ibTag += (rng.text.substring(0, iSelLength-1) + ibClsTag + " ");
				    else
					    ibTag += rng.text + ibClsTag;				
				}
				else 
					ibTag += ibClsTag;
				rng.text = ibTag
			}
		}
		else
			obj_ta.value += ibTag + ibClsTag;
	}
	// It's MOZZY!
	else if ( obj_ta.selectionEnd )
	{ 
		var ss = obj_ta.selectionStart;
		var st = obj_ta.scrollTop;
		var es = obj_ta.selectionEnd;
		if (es <= 2)
			es = obj_ta.textLength;
		var start  = (obj_ta.value).substring(0, ss);
		var middle = (obj_ta.value).substring(ss, es);
		var end    = (obj_ta.value).substring(es, obj_ta.textLength);
		// text range?
		iSelLength = middle.length;
        if (iSelLength > 1 && middle.substring(iSelLength-1) == " ")
        {
	        middle = middle.substring(0, iSelLength-1);
	        ibClsTag += " ";
		}					
		middle = ibTag + middle + ibClsTag;
		obj_ta.value = start + middle + end;
		var cpos = ss + (middle.length);
		obj_ta.selectionStart = cpos;
		obj_ta.selectionEnd   = cpos;
		obj_ta.scrollTop      = st;
	}
	// It's CRAPPY!
	else
		obj_ta.value += ibTag + ibClsTag;
	obj_ta.focus();
}	
function AppendText(NewCode){
	document.post_form.post.value+=NewCode;
}
function insertsmilie(NewCode){
    doInsert( NewCode, true );
}
function add_forum_code(code_type) {

	if (code_type == 'italicize')
		doInsert( "i", false );
	else if (code_type == 'bold')
		doInsert( "b", false ); 
	else if (code_type == 'quote')
		doInsert( "quote", false ); 	
	else if (code_type == 'strike')
		doInsert( "s", false ); 
	else if (code_type == 'center')
		doInsert( "center", false );
	else if (code_type == 'hyperlink')
		doInsert( "url", false );
	else if (code_type == 'imgs')
		doInsert( "img", false ); 
	else if (code_type == 'showcode')
		doInsert( "code", false ); 
	else if (code_type == 'list')
		AppendText("[list][*]  [/*][*]  [/*][*]  [/*][/list]");
	else if (code_type == 'underline')
		doInsert( "u", false ); 
	else if (code_type == 'youtube')
		doInsert( "YouTube", false ); 
}
function showsize(size) {
	if (size != "0") 
		doInsert( "size="+size, false ); 
}
function showcolor(color) {
	if (color != "0") 
		doInsert( color, false ); 
}
function OpenPreview(){
	document.post_form.post_mode.value = "preview";
	document.post_form.submit();
}