var text;
var form_to_edit;
var windlink = document;
var translitSymbols = new Array();
translitSymbols.from = new Array("Sch","Yo","Zh","Ts","Ch","Yi","Ye","Yu","Ya","J","sch","yo","zh","ts","ch","w","yi","ye","yu","ya","j","a","b","v","g","d","e","z","i","y","k","l","m","n","o","p","r","s","t","u","f","h","w","'","4","A","B","V","G","D","E","Z","I","Y","K","L","M","N","O","P","R","S","T","U","F","H","W");
translitSymbols.to = new Array("Ù","¨","Æ","Ö","×","Û","Ý","Þ","ß","ß","ù","¸","æ","ö","÷","ø","û","ý","þ","ÿ","ÿ","à","á","â","ã","ä","å","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ø","ü","÷","À","Á","Â","Ã","Ä","Å","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ø"); 


var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_saf    = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf('msie 4.') != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_mac    = (userAgent.indexOf('mac') != -1);

function getActiveText()
{
	form_to_edit.focus();
	var sel = windlink.selection;
	
	var rng = sel.createRange();

	if (rng != null && (sel.type == "Text" || sel.type == "None"))
	{
			text = rng.text;
	}
	
	if (rng != null && form_to_edit.createTextRange)
	{
		form_to_edit.caretPos = rng.duplicate();
	}
	return true;
}

function vbcode(vbcode, prompttext, displayoption)
{
	if(form_to_edit && form_to_edit.type != "hidden"){
	if(!is_moz){
		getActiveText();
	}else{
		text = '';
	}
	if (text)
	{ // its IE to the rescue
		var optioncompiled = "";
		if (displayoption)
		{

			if(displayoption == "translit"){
				AddTxt=transLit(text);
				AddText(AddTxt);
				return false;
			}else{
				
				optionvalue = prompt(prompttext, "");
				if (optionvalue != null)
				{
					optioncompiled = "=\"" + optionvalue + "\"";
				}
			}
		}
		if (text.substring(0, vbcode.length + optioncompiled.length + 2 ) == "[" + vbcode + optioncompiled +"]" && text.substring(text.length - vbcode.length - 3, text.length) == "[/" + vbcode + "]")
		{
			AddTxt = text.substring(vbcode.length + optioncompiled.length + 2, text.length - vbcode.length - 3);
		}
		else
		{
			AddTxt = "[" + vbcode + optioncompiled + "]" + text + "[/" + vbcode + "]";
		}
		AddText(AddTxt);
	}
	else if ((form_to_edit.selectionStart || form_to_edit.selectionStart == '0') && form_to_edit.selectionStart != form_to_edit.selectionEnd)
	{ // its mozilla and we'll need to re-write entire text
		var optioncompiled = "";
		if (displayoption && displayoption != "translit")
		{
			optionvalue = prompt(prompttext, "");
			if (optionvalue != null)
			{
				optioncompiled = "=\"" + optionvalue + "\"";
			}
		}
		var start_selection = form_to_edit.selectionStart;
		var end_selection = form_to_edit.selectionEnd;

		// fetch everything from start of text area to selection start
		var start = (form_to_edit.value).substring(0, start_selection);
		// fetch everything from start of selection to end of selection
		var middle = (form_to_edit.value).substring(start_selection, end_selection);
		// fetch everything from end of selection to end of text area
		var end = (form_to_edit.value).substring(end_selection, form_to_edit.textLength);
		if(displayoption == "translit"){
				middle=transLit(middle);
		}else{
			if (middle.substring(0, vbcode.length + optioncompiled.length + 2 ) == "[" + vbcode + "]" && middle.substring(middle.length - vbcode.length - 3, middle.length) == "[/" + vbcode + "]")
			{
				middle = middle.substring(vbcode.length + optioncompiled.length + 2, middle.length - vbcode.length - 3);
			}
			else
			{
				middle = "[" + vbcode + optioncompiled + "]" + middle + "[/" + vbcode + "]";
			}
		}
		form_to_edit.value = start + middle + end;
		setfocus();
		form_to_edit.selectionStart = end_selection + middle.length;
		form_to_edit.selectionEnd = start_selection + middle.length;
		return false;
	}
	}
}

function AddText(NewCode)
{
	if (typeof(form_to_edit.createTextRange) != "undefined" && form_to_edit.caretPos)
	{
		var caretPos = form_to_edit.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
		caretPos.select();
	}
	else if (form_to_edit.selectionStart || form_to_edit.selectionStart == '0')
	{ // its mozilla and we'll need to re-write entire text
		var start_selection = form_to_edit.selectionStart;
		var end_selection = form_to_edit.selectionEnd;

		// fetch everything from start of text area to selection start
		var start = (form_to_edit.value).substring(0, start_selection);
		// fetch everything from start of selection to end of selection
		var middle = NewCode;
		// fetch everything from end of selection to end of text area
		var end = (form_to_edit.value).substring(end_selection, form_to_edit.textLength);

		form_to_edit.value = start + middle + end;
		setfocus();
		form_to_edit.selectionStart = end_selection + middle.length;
		form_to_edit.selectionEnd = start_selection + middle.length;
		getActiveText();
		AddTxt = "";
		return;
	}
	else
	{
		form_to_edit.value += NewCode;
	}
//	setfocus();
	
	getActiveText();
	
	AddTxt = "";
}

function replace(s_main,s_to_rep,s_rep_with){
	if(s_main && s_to_rep && s_rep_with){
		var s="";
		while(true){
			i = s_main.indexOf(s_to_rep);
			if(i >=0){
				s = s + s_main.substr(0,i) + s_rep_with;
				s_main = s_main.substr(i + s_to_rep.length)
			}else break;
		}
		return s + s_main;
	} else return "";
	
}

function transLuterature(){
	alert(form_to_edit.value)
	if(form_to_edit){
		if(form_to_edit.type != "hidden" && form_to_edit.value){
			for(i=0;i<translitSymbols.from.length;i++){
				form_to_edit.value = replace(form_to_edit.value,translitSymbols.from[i],translitSymbols.to[i])
			}
		}
	}
	return false;
}

function transLit(str){
//	alert(form_to_edit.value)
	
//	if(form_to_edit){
		if(form_to_edit.type != "hidden" && form_to_edit.value){
			var s="";
//			var str = form_to_edit.value;
			var f = 0;
			while(true){
				if(str.length){
					f=0;
//					alert(str);
					for(i=0;i<translitSymbols.from.length;i++){
						if(str.substr(0,translitSymbols.from[i].length) == translitSymbols.from[i]){
							s=s + translitSymbols.to[i];
							f=translitSymbols.from[i].length;
							break;
						}
					}
					if(!f){
						s=s + str.substr(0,1);
						str=str.substr(1);
					}else{
						str=str.substr(f);
					}
//					alert(str);
				}else break;
			}
//			form_to_edit.value = s;
			return s;
		} else return "";
//	}
	
}

////////////////////////
function changes_enabled(linkto){
	for(i=0;i<document.forms.length;i++){
		for(j=0;j<document.forms[i].elements.length;j++){
			if(document.forms[i].elements[j] == linkto){
				var find_tag=document.forms[i].getElementsByTagName("input");
				for( var k = 0 ; k < find_tag.length ; k++ ){
					if(find_tag[k].getAttribute("type").toLowerCase() == "submit"){
						find_tag[k].disabled = 0
					}
				}
			}
		}
	}
}

///////////////////////////
function pop(){

}
