var postformid;
var postfieldid;
var postformobj;
var postfieldobj;
var MessageMax          = parseInt("102400");
var Override            = "";
// Easy prompts
var text_enter_url      = "URL for the link";
var text_enter_url_name = "Name of the website";
var text_enter_address  = "Enter the eMail Address";
var text_enter_image    = "URL for the image";
var text_enter_gootube  = "URL for the video";
var text_enter_video    = "URL for the .wmv .avi .mpg video";
var text_enter_audio    = "URL for the .mp3 file";
var text_enter_flash    = "URL for the .swf file";
var error_no_url        = "You forgot to enter a URL";
var error_no_title      = "You forgot to enter a title";
var error_no_address    = "You forgot to enter an Address";
var jsfile_error_lang   = "Error!";
var jsfile_myweb_lang = "Website name";


var i_am = 'std';
var rtewindow;
var buttonbar;

var opentags =
{
	'b'          : 0,
	'i'          : 0,
	'strike'     : 0,
	'*'          : 0,
	'font'       : 0,
	'u'          : 0,
	'img'        : 0,
	'video'      : 0,
	'audio'      : 0,
	'flash'      : 0,
	'quote'      : 0,
	'left'       : 0,
	'center'     : 0,
	'right'      : 0,
	'color'      : 0,
	'background' : 0,
	'indent'     : 0,
	'html'       : 0,
	'php'        : 0,
	'spoiler'    : 0,
	'align'      : 0, 
	'blockquote' : 0,
	'codebox'    : 0,
	'sub'        : 0,
    'sup'        : 0,
	'pre'        : 0,
	'hr'         : 0,
	'highlight'  : 0,
	'blink'      : 0,
	'marquee'    : 0,
	'sidenote'   : 0
};

var tags_to_div =
{
	'b'          : 'do_bold',
	'i'          : 'do_italic',
	'u'          : 'do_underline',
	'sub'        : 'do_subscript',
    'sup'        : 'do_superscript',
	'pre'        : 'do_Preformatted',
	'quote'      : 'do_quote',
	'code'       : 'do_code'
};

var rte_to_std =
{
	'forecolor'   : 'color',
	'hilitecolor' : 'background'
};

var easymode = 0;

// IE bug fix
var ie_range_cache = '';

function init_std_editor()
{

	try
	{
		rtewindow = document.getElementById( 'postcontent' );
		oldwidth  = parseInt(document.getElementById( 'postcontent' ).style.width);
		buttonbar = document.getElementById( 'std-table-buttons' );
		widthunit = document.getElementById( 'postcontent' ).style.width.match( /%/ ) ? '%' : 'px';
		
		if ( widthunit == 'px' )
		{
			if ( is_opera )
			{
				document.getElementById( 'postcontent' ).style.width = oldwidth - 4 + widthunit;
				buttonbar.style.width = parseInt( buttonbar.style.width ) - 4 + widthunit;
			}
			else if ( is_safari )
			{
			
			}
			else
			{
				document.getElementById( 'postcontent' ).style.width = oldwidth - 6 + widthunit;
			}
		}
		else
		{
			if ( is_ie || is_moz )
			{
				document.getElementById( 'postcontent' ).style.width = oldwidth - 1 + widthunit;
			}
		}
	}
	catch(e)
	{}
	
	cvalue = my_getcookie( "bbmode" );
	
	if ( cvalue == 1 )
	{
		document.getElementById('togglebbmode').value = js_bbeasy_on;
		easymode = 1;
	}
	else
	{
		document.getElementById('togglebbmode').value = js_bbeasy_off;
		easymode = 0;
	}
}

function toggle_button( tag )
{
			
	if ( (tag == 'font') || (tag == 'size') )
	{
		return;
	}
	
	if ( opentags[ tag ] )
	{
		document.getElementById( tags_to_div[ tag ] ).className = 'rteimage';
		
		// Turn off
		opentags[ tag ] = 0;
	}
	else
	{
		document.getElementById( tags_to_div[ tag ] ).className = 'rteImageRaised';
		
		// Turn on
		opentags[ tag ] = 1;
	}
}

function get_easy_mode_state()
{
	//--------------------------------------------
	// Returns true if we've chosen easy mode
	//--------------------------------------------
	
	if ( easymode )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function simpletag(thetag)
{
	var tagOpen = opentags[ thetag ];
	
	if ( get_easy_mode_state() )
	{
		inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]");
		
		if ( (inserttext != null) && (inserttext != "") )
		{
			wrap_tags("[" + thetag + "]" + inserttext + "[/" + thetag + "] ", "", false);
		}
	}
	else
	{
		if ( tagOpen == 0 )
		{
			if ( wrap_tags("[" + thetag + "]", "[/" + thetag + "]", true ) )
			{
				//--------------------------------------------
				// Toggle
				//--------------------------------------------
				
				toggle_button( thetag );
		
				pushstack(bbtags, thetag);
			}
		}
		else
		{
			//--------------------------------------------
			// Smart close tags
			//--------------------------------------------
			
			smart_close_tags( thetag );
		}
	}
}

function tag_list( type )
{
	var listvalue = "init";
	var thelist   = "";
	
	opentag = ( type == 'ordered' ) ? '[list=1]' : '[list]';
	
	while ( (listvalue != "") && (listvalue != null) )
	{
		listvalue = prompt(list_prompt, "");
		
		if ( (listvalue != "") && (listvalue != null) )
		{
			thelist = thelist+"[*]"+listvalue+"\n";
		}
	}
	
	if ( thelist != "" )
	{
		wrap_tags( opentag + "\n" + thelist + "[/list]\n", "");
	}
}

function tag_url()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just ask for the URL and wrap
		//----------------------------------------
		
		var enterURL = prompt(text_enter_url, "http://");
		
		if ( ! enterURL)
		{
			alert(error_no_url);
			return;
		}
    
		wrap_tags( "[url="+enterURL+"]", "[/url]", "" );
	}
	else
	{
		var enterURL    = prompt(text_enter_url, "http://");
		var enterTITLE  = prompt(text_enter_url_name, jsfile_myweb_lang );
	
		if ( ! enterURL)
		{
			FoundErrors += " " + error_no_url;
		}
		if ( ! enterTITLE)
		{
			FoundErrors += " " + error_no_title;
		}
	
		if ( FoundErrors )
		{
			alert( jsfile_error_lang +FoundErrors);
			return;
		}
	
		wrap_tags("[url="+enterURL+"]"+enterTITLE+"[/url]", "");
	}
}
	
//===tag not simple 
function simpletagvar(thetag, thetag1, thetag2)
{
	var tagOpen = opentags[ thetag ];
	
	if ( get_easy_mode_state() )
	{
		inserttext = prompt(prompt_start + "\n[" + thetag1 + "]xxx[/" + thetag2 + "]");
		
		if ( (inserttext != null) && (inserttext != "") )
		{
			wrap_tags("[" + thetag1 + "]" + inserttext + "[/" + thetag2 + "] ", "", false);
		}
	}
	else
	{
		if ( tagOpen == 0 )
		{
			if ( wrap_tags("[" + thetag1 + "]", "[/" + thetag2 + "]", true ) )
			{
				//--------------------------------------------
				// Toggle
				//--------------------------------------------
				
				toggle_button( thetag1 );
		
				pushstack(bbtags, thetag2);
			}
		}
		else
		{
			//--------------------------------------------
			// Smart close tags
			//--------------------------------------------
			
			smart_close_tags( thetag2 );
		}
	}
}

//===tag single
function simpletagsingle(thetag)
{
	var tagOpen = opentags[ thetag ];
	
	if ( get_easy_mode_state() )
	{
		inserttext = prompt(prompt_start + "\n[" + thetag + "]");
		
		if ( (inserttext != null) && (inserttext != "") )
		{
			wrap_tags("[" + thetag + "]" + inserttext, "", false);
		}
	}
	else
	{
		if ( tagOpen == 0 )
		{
			if ( wrap_tags("[" + thetag + "]", "", true ) )
			{
				//--------------------------------------------
				// Toggle
				//--------------------------------------------
				
				toggle_button( thetag );
		
				pushstack(bbtags, thetag);
			}
		}
		else
		{
			//--------------------------------------------
			// Smart close tags
			//--------------------------------------------
			
			smart_close_tags( thetag );
		}
	}
}

function tag_image()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just wrap text
		//----------------------------------------
		
		wrap_tags( "[img]", "[/img]", "" );
	}
	else
	{
		var enterURL = prompt(text_enter_image, "http://");
	
		if ( ! enterURL )
		{ 
			alert(error_no_url); 
			return; 
		}
	
		wrap_tags("[img]"+enterURL+"[/img]", "");
	}
}

function tag_email()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just ask for the Address and wrap
		//----------------------------------------
		
		var enterEMAIL = prompt(text_enter_address, "");
		
		if ( ! enterEMAIL)
		{
			alert(error_no_address);
			return;
		}
    
		wrap_tags("[email]"+enterEMAIL+"[/email]", "" );
	}
	else
	{
		var enterEMAIL    = prompt(text_enter_address, "");
	
		if ( ! enterEMAIL)
		{
			FoundErrors += " " + error_no_address;
		}
		if ( FoundErrors )
		{
			alert( jsfile_error_lang +FoundErrors);
			return;
		}
	
		wrap_tags("[email]"+enterEMAIL+"[/email]", "");
	}
}
	
function tag_gootube()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just wrap text
		//----------------------------------------
		
		wrap_tags( "[video=", "]", "" );
	}
	else
	{
		var enterURL = prompt(text_enter_gootube, "http://");
	
		if ( ! enterURL )
		{ 
			alert(error_no_url); 
			return; 
		}
	
		wrap_tags("[video="+enterURL+"]", "");
	}
}

function tag_video()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just wrap text
		//----------------------------------------
		
		wrap_tags( "[video]", "[/video]", "" );
	}
	else
	{
		var enterURL = prompt(text_enter_video, "http://");
	
		if ( ! enterURL )
		{ 
			alert(error_no_url); 
			return; 
		}
	
		wrap_tags("[video]"+enterURL+"[/video]", "");
	}
}

function tag_audio()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just wrap text
		//----------------------------------------
		
		wrap_tags( "[audio]", "[/audio]", "" );
	}
	else
	{
		var enterURL = prompt(text_enter_audio, "http://");
	
		if ( ! enterURL )
		{ 
			alert(error_no_url); 
			return; 
		}
	
		wrap_tags("[audio]"+enterURL+"[/audio]", "");
	}
}

function tag_flash()
{
	var FoundErrors = '';
	
	//----------------------------------------
	// Do we have ranged text?
	//----------------------------------------
	
	if ( check_range() )
	{
		//----------------------------------------
		// Yes, just wrap text
		//----------------------------------------
		
		wrap_tags( "[flash]", "[/flash]", "" );
	}
	else
	{
		var enterURL = prompt(text_enter_flash, "http://");
	
		if ( ! enterURL )
		{ 
			alert(error_no_url); 
			return; 
		}
	
		wrap_tags("[flash]"+enterURL+"[/flash]", "");
	}
}

/*-------------------------------------------------------------------------*/
// Do we have ranged text?
/*-------------------------------------------------------------------------*/

function check_range()
{
	var has_range = false;
	
	//----------------------------------------
	// It's IE!
	//----------------------------------------
	
	if ( (ua_vers >= 4) && is_ie && is_win )
	{
		var sel = document.selection;
		var rng = sel.createRange();
		rng.colapse;
		
		if ( (sel.type == "Text" || sel.type == "None") && rng != null )
		{
			if ( rng.text.length > 0)
			{
				has_range = true;
			}
		}
	}
	
	//----------------------------------------
	// It's MOZZY!
	//----------------------------------------
	
	else if ( postfieldobj.selectionEnd )
	{ 
		var ss = postfieldobj.selectionStart;
		var st = postfieldobj.scrollTop;
		var es = postfieldobj.selectionEnd;
		
		if (es <= 2)
		{
			es = postfieldobj.textLength;
		}
		
		var start  = (postfieldobj.value).substring(0, ss);
		var middle = (postfieldobj.value).substring(ss, es);
		var end    = (postfieldobj.value).substring(es, postfieldobj.textLength);
		
		//-----------------------------------
		// text range?
		//-----------------------------------
		
		if (postfieldobj.selectionEnd - postfieldobj.selectionStart > 0)
		{
			has_range = true;
		}
	}
	
	return has_range;
}

function wrap_tags(opentext, closetext, issingle)
{
	var has_closed = false;
	
	if ( ! issingle )
	{
		issingle = false;
	}
	
	//----------------------------------------
	// It's IE!
	//----------------------------------------
	
	if ( (ua_vers >= 4) && is_ie && is_win )
	{
		if ( postfieldobj.isTextEdit )
		{
			postfieldobj.focus();

			var sel = document.selection;
			
			var rng = ie_range_cache ? ie_range_cache : sel.createRange();

			var stored_range = rng.duplicate()
			stored_range.moveToElementText( postfieldobj );
			stored_range.setEndPoint( 'EndToEnd', rng );

			// Stores start position of text selection
			postfieldobj.selectionStart = stored_range.text.length - rng.text.length;
			// Stores end position of text selection
			postfieldobj.selectionEnd = postfieldobj.selectionStart + rng.text.length;

			rng.colapse;
			
			if ( (sel.type == "Text" || sel.type == "None") && rng != null)
			{
				if (closetext != "" && rng.text && rng.text.length > 0)
				{ 
					opentext += rng.text + closetext;
				}
				else if ( issingle )
				{
					has_closed = true;
				}

				rng.text = rng.text.charAt(rng.text.length - 1) == ' ' ? opentext + ' ' : opentext;
			}
			else
			{
				postfieldobj.value += opentext;
				has_closed = true;
			}
		}
		else
		{
			postfieldobj.value += opentext;
			has_closed = true;
		}

		ie_range_cache = null;

		rng.select();
	}
	
	//----------------------------------------
	// It's MOZZY!
	//----------------------------------------
	
	else if ( postfieldobj.selectionEnd )
	{
		var ss = postfieldobj.selectionStart;
		var st = postfieldobj.scrollTop;
		var es = postfieldobj.selectionEnd;
		
		if (es <= 0)
		{
			es = postfieldobj.textLength;
		}
		
		var start  = (postfieldobj.value).substring(0, ss);
		var middle = (postfieldobj.value).substring(ss, es);
		var end    = (postfieldobj.value).substring(es, postfieldobj.textLength);
		
		//-----------------------------------
		// text range?
		//-----------------------------------
		
		if ( postfieldobj.selectionEnd - postfieldobj.selectionStart > 0 )
		{
			middle = opentext + middle + closetext;
		}
		else
		{
			middle = opentext + middle;
			
			if ( issingle )
			{
				has_closed = true;
			}
		}
		
		postfieldobj.value = start + middle + end;
		
		var cpos = ss + (middle.length);
		
		postfieldobj.selectionStart = cpos;
		postfieldobj.selectionEnd   = cpos;
		postfieldobj.scrollTop      = st;
	}
	
	//----------------------------------------
	// It's CRAPPY!
	//----------------------------------------
	
	else
	{ 
		if ( issingle )
		{
			has_closed = false;
		}
			
		postfieldobj.value += opentext + ' ' + closetext;
	}
	
	postfieldobj.focus();

	return has_closed;
}	

var bbtags   = new Array();

var fombj    = document.REPLIER;
