//--------------------------------------------
// Set up our simple tag open values
//--------------------------------------------

var B_openContent = 0;
var B_openTitle = 0;
var B_openSub = 0;
var I_openContent = 0;
var I_openTitle = 0;
var I_openSub = 0;
var U_openContent = 0;
var U_openTitle = 0;
var U_openSub = 0;


//var QUOTE_open = 0;
//var CODE_open = 0;
//var SQL_open = 0;
//var HTML_open = 0;
//var HIDE_open = 0;

var bbtagsTitle   = new Array();
var bbtagsContent   = new Array();
var bbtagsSub   = new Array();


var oObject;

var fombj    = document.REPLIER;

//==========================================
// prep and set up
//==========================================

//prep_mode();

//function prep_mode()
//{
//	cvalue = my_getcookie( "bbmode" );
//	
//	if (cvalue == 'ezmode')
//	{
//		fombj.bbmode[0].checked = true;
//	}
//	else
//	{
//		fombj.bbmode[1].checked = true;
//	}
//}

//==========================================
// Set BBCode mode
//==========================================






//==========================================
// Set the help bar status
//==========================================

function hstat(msg)
{
	//fombj.helpbox.value = eval( "help_" + msg );
}

//==========================================
// Set the number of tags open box
//==========================================

function cstat(bbtags)
{
	var c = stacksize(bbtags);
	
	if ( (c < 1) || (c == null) ) {
		c = 0;
	}
	
	if ( ! bbtags[0] ) {
		c = 0;
	}
	
	//fombj.tagcount.value = c;
}



//==========================================
// ALTER FONT
//==========================================

function alterfont(theval, thetag, txtname, htmobject)
{
    oObject = eval("document.all.txtNews" + txtname);
    var listObject = eval("document.all." + htmobject);
    if (theval == 0)
    	return;
	var bbtags = eval("bbtags" + txtname);
	doInsert("[" + thetag + "=" + theval + "]", "[/" + thetag + "]", true);
		//pushstack(bbtags, thetag);
	
    //var lfont = eval("document.all.ffont" + listname);
    //var lsize = eval("document.all.fsize" + listname);
    //var lcolor = eval("document.all.fcolor" + listname);
    listObject.selectedIndex  = 0;
    
    
    //cstat();
	
}


//==========================================
// SIMPLE TAGS (such as B, I U, etc)
//==========================================

function simpletag(thetag, stackname)
{
	var tagOpen = eval(thetag + "_open" + stackname);
	var bbtags = eval("bbtags" + stackname);
	oObject = eval("document.all.txtNews" + stackname);
		if (tagOpen == 0)
		{
			if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true))
			{
				eval(thetag + "_open" + stackname + " = 1");
				
				//--------------------------------------------
				// Change the button status
				//--------------------------------------------
				
				//eval("fombj." + thetag + ".value += '*'");
		
				pushstack(bbtags, thetag);
				//cstat(bbtags);
				//hstat('click_close');
			}
		}
		else
		{
			//--------------------------------------------
			// Find the last occurance of the opened tag
			//--------------------------------------------
			lastindex = 0;
			
			for (i = 0 ; i < bbtags.length; i++ )
			{
				if ( bbtags[i] == thetag )
				{
					lastindex = i;
				}
			}
			
			//--------------------------------------------
			// Close all tags opened up to that tag was opened
			//--------------------------------------------
			
			while (bbtags[lastindex])
			{
				tagRemove = popstack(bbtags);
				doInsert("[/" + tagRemove + "]", "", false)
				
				//--------------------------------------------
				// Change the button status
				//--------------------------------------------
				
				if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') )
				{
					//eval("fombj." + tagRemove + ".value = ' " + tagRemove + " '");
					eval(tagRemove + "_open" + stackname + " = 0");
				}
			}
			
			//cstat(bbtags);
		}
	
}





//--------------------------------------------
// 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(ibTag, ibClsTag, isSingle)
{
	var isClose = false;
	//var obj_ta = fombj.Post;
	var obj_ta = oObject;
	
	//----------------------------------------
	// 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)
			{
				if(ibClsTag != "" && rng.text.length > 0)
					ibTag += rng.text + ibClsTag;
				else if(isSingle)
					isClose = true;
	
				rng.text = ibTag;
			}
		}
		else
		{
			if(isSingle)
			{
				isClose = true;
			}
			
			obj_ta.value += ibTag;
		}
	}
	//----------------------------------------
	// 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?
		//-----------------------------------
		
		if (obj_ta.selectionEnd - obj_ta.selectionStart > 0)
		{
			middle = ibTag + middle + ibClsTag;
		}
		else
		{
			middle = ibTag + middle;
			
			if (isSingle)
			{
				isClose = true;
			}
		}
		
		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
	{
		if (isSingle)
		{
			isClose = true;
		}
		
		obj_ta.value += ibTag;
	}
	
	obj_ta.focus();

	return isClose;
}	
