
var language = 0;
var prelanguage = 0;

var processhtmltags = 0;
var processbbcodetags = 0;

var agt=navigator.userAgent.toLowerCase();
var is_opera = (agt.indexOf("opera") != -1);

function setfoc() 
{
	document.searchform.subject.focus();
	return false;
}

function highlightall()
{
	document.searchform.subject.focus(); 
	document.searchform.subject.select(); 
	return false;
}

function getselectedtext()
{
	document.searchform.selsubject.value = gettextareaval(document.searchform.subject);
	return false;
}

function set_cookie(name,cval) // set cookies
{
	var cexpire = new Date();
	var year = cexpire.getTime() + (365 * 24 * 60 * 60 * 1000);
	cexpire.setTime(year);
	document.cookie = name+"="+cval+"; expires=" + cexpire.toGMTString();
}

/*function toggledropdown(obj, event,width)
{
	if (document.getElementById(obj).className=='dropdownitem') 
	{
		document.getElementById(obj).className='hiddenitem';
	}
	else 
	{
		//document.getElementById(obj).style.top = event.clientY;
		//document.getElementById(obj).style.left = event.clientX-width;
		document.getElementById(obj).className='dropdownitem'
	}
}
*/
var translitLetterArr = new Array();
var translitBackArr = new Array();
var middleLetterArr = new Array();
var startLetterArr = new Array();
var lonelyLetterArr = new Array();
var endLetterArr = new Array();
var isArabic=false;
var isFirstLetter=true;
var wasFirstLetter=false
var translitFirstToLonely = new Array();
var translitMiddleToLast = new Array();



// AZERBAJJANI

function initDefaultsAzerbaijani()
{
translitLetterArr[String.fromCharCode(94)] = new Array ('g+','G+','g','G','','');
middleLetterArr[String.fromCharCode(94)] = new Array ('g^','G^','ğ','Ğ','^','^');

translitLetterArr[String.fromCharCode(58)] = new Array ('o+','u+','O+','U+','o','u','O','U','','');
middleLetterArr[String.fromCharCode(58)] = new Array ('o:','u:','O:','U:','ö','ü','','Ü',':',':');

translitLetterArr[String.fromCharCode(126)] = new Array ('c+','s+','C+','S+','c','s','C','S','','');
middleLetterArr[String.fromCharCode(126)] = new Array ('c~','s~','C~','S~','ç','ş','Ç','Ş','~','~');

translitLetterArr[String.fromCharCode(96)] = new Array ('i+','I+','a+','A+','i','I','a','A','','');
middleLetterArr[String.fromCharCode(96)] = new Array ('i`','I`','a`','A`','ı','İ','ə','Ə','`','`');

translitLetterArr[String.fromCharCode(46)] = new Array ('i+','I+','i','I','','');
middleLetterArr[String.fromCharCode(46)] = new Array ('i.','I.','ı','İ','.','.');

translitBackArr['ı'] = 'i.';
translitBackArr['ö'] = 'o:';
translitBackArr['ü'] = 'u:';
translitBackArr['ç'] = 'c~';
translitBackArr['ş'] = 's~';
translitBackArr['ğ'] = 'g^';
translitBackArr['İ'] = 'I.';
translitBackArr['Ö'] = 'O:';
translitBackArr['Ü'] = 'U:';
translitBackArr['Ğ'] = 'G^';
translitBackArr['Ç'] = 'C~';
translitBackArr['Ş'] = 'S~';
translitBackArr['ə'] = 'a`';
translitBackArr['Ə'] = 'A`';

}

// IRISH
function initDefaultsIrish()
{ 

translitLetterArr[String.fromCharCode(39)] = new Array ('a+','e+','i+','o+','u+','A+','E+','I+','O+','U+','a','e','i','o','u','A','E','I','O','U','','');
middleLetterArr[String.fromCharCode(39)] = new Array ('a\'','e\'','i\'','o\'','u\'','A\'','E\'','I\'','O\'','U\'','á','é','í','ó','ú','Á','É','Í','Ó','Ú','\'','\'');

translitBackArr['Á'] = 'A\'';
translitBackArr['É'] = 'E\'';
translitBackArr['Í'] = 'I\'';
translitBackArr['Ó'] = 'O\'';
translitBackArr['Ú'] = 'U\'';
translitBackArr['á'] = 'a\'';
translitBackArr['é'] = 'e\'';
translitBackArr['í'] = 'i\'';
translitBackArr['ó'] = 'o\'';
translitBackArr['ú'] = 'u\'';
}



function ruleChanged(id, transLetter)
{
	var newVal = window.document.getElementById('char' + id).value;
	if(newVal.length == 1){
		if (!translitLetterArr[newVal]){
			translitLetterArr[newVal] = new Array ('','');
			middleLetterArr[newVal] = new Array (transLetter,newVal);		
		}
		else{
			translitLetterArr[newVal][translitLetterArr[newVal].length] = '';
			middleLetterArr[newVal][translitLetterArr[newVal].length] = middleLetterArr[newVal][translitLetterArr[newVal].length-1];					middleLetterArr[newVal][translitLetterArr[newVal].length-1] = transLetter;
			
		}
	}
	else{
		if(newVal.length > 2){
			alert("Bad Value");
		}
		else{
			var firstChar = newVal.charAt(0);
			var secondChar = newVal.charAt(1);
			if (!translitLetterArr[firstChar]){
				alert("Bad Value");
			}
			else{
				var tmpArr = new Array();//translitLetterArr[secondChar].slice(0, translitLetterArr[secondChar]-2);
				var tmpArr2 = new Array();
				for (ii=0;ii<translitLetterArr[firstChar].length;ii++){
					if (translitLetterArr[firstChar][ii] != ''){
						tmpArr[tmpArr.length] = translitLetterArr[firstChar][ii] + '+'; 
						tmpArr[tmpArr.length] = translitLetterArr[firstChar][ii];
						tmpArr2[tmpArr2.length] = middleLetterArr[firstChar][ii] + middleLetterArr[firstChar][middleLetterArr[firstChar].length-2]; 
						tmpArr2[tmpArr2.length] = middleLetterArr[firstChar][ii];
					}
					else{
						tmpArr2[tmpArr2.length] = transLetter;
						tmpArr[tmpArr.length] = middleLetterArr[firstChar][middleLetterArr[firstChar].length-2];
					}
				}
				var helpArr = tmpArr.concat(translitLetterArr[secondChar]);
				translitLetterArr[secondChar] = helpArr;
				helpArr = tmpArr2.concat(middleLetterArr[secondChar]);
				middleLetterArr[secondChar] = helpArr;
			}
		}
	}
}

function savetext_update()
{
	var stc = window.document.searchform.setsavetxt.checked?1:0;
	if (stc) {
		document.searchform.subject.createTextRange().execCommand("Copy");
	}
	set_cookie("st",escape(stc));
	return false;
}

function addchar(val) // virtual keys
{
	setfoc();
	
	if (document.selection){
		with(document.selection.createRange()) {text = val; collapse(); select()} 
	}
	else if (typeof document.searchform.subject.selectionStart != 'undefined'){
    var tb = document.searchform.subject;
    var bfore, aftr, selecton;
	bfore= tb.value.substring(0, tb.selectionStart)
    selecton = tb.value.substring(tb.selectionStart, tb.selectionEnd)
    aftr = tb.value.substring(tb.selectionEnd, tb.value.length)
    
    tb.value= String.concat(bfore, selecton, val, aftr)
  }
	return false;
}


function upgradeclipboard()
{
	if (window.document.searchform.setsavetxt.checked) {document.searchform.subject.createTextRange().execCommand("Copy");}
	return false;
}

function setlangpicture()
{
	//document.ruslat.src = swrus_src;
}

function setlat()
{
	language=1;
	document.images['ruslat'].src = swlat_src; 
	setfoc();
	return false;
}

function setrus()
{
	language=0;
	document.images['ruslat'].src = swrus_src; 
	setfoc();
	return false;
}

function AkeyIsDown()
{
	var code = window.event.keyCode;
	if (code==27) {
		event.returnValue=false;
	}
	if ((code==13)&&(event.altKey)) {
		/*document.forms.searchform.target='_blank';shortcut_service('orfochk'); */
		event.returnValue=false;
	}
	if ((code==13)&&(event.ctrlKey)) {
		/*document.forms.searchform.target='_blank';shortcut_service('orfochk'); */
		event.returnValue=false;
	}
	return false;
}

function gettextareaval(thetextarea)
{
	if (document.selection){
		var cursor_pos_selection = document.selection.createRange();
		if (cursor_pos_selection.text) {
			return cursor_pos_selection.text; 
		} 
		else {
			return thetextarea.value;
		}
	} 
	return thetextarea.value;
}

function btcvalue(thetextarea) 
{
	var s2 = document.selection.createRange();
	with (s2) {
		collapse(false); 
		moveStart("textedit",-1);
	}
	var s22 = s2.htmlText.substring(0,s2.htmlText.indexOf("</TEXTAREA>"));
	return (s22.substring(s22.lastIndexOf(">")+1,s22.length));
}

function translate_letter(e)
{
	var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
	var txt = String.fromCharCode(keyCode);

	if (processhtmltags&&(txt=='<')) {
		prelanguage=language; 
		setlat();
	}
	if (processhtmltags&&(txt=='>')) {
		if(prelanguage) setlat(); else setrus();
	}
	if (processbbcodetags&&(txt=='[')) {
		prelanguage=language; 
		setlat();
	}
	if (processbbcodetags&&(txt==']')) {
		if(prelanguage) setlat(); else setrus();
	}
	if (!translitLetterArr[txt] && !isArabic)
	{
		return false; // no need to process the letter
	}

	if (document.selection && !is_opera){
		e.keyCode=0;
		with(document.selection.createRange()) {
			text = '';
			collapse();
		}	
		cursor_pos_selection = document.selection.createRange();

		cursor_pos_selection.select();
		cursor_pos_selection.text = '%';
		cursor_pos_selection.moveStart("word",-3);
		pretxt = cursor_pos_selection.text.substring(0,cursor_pos_selection.text.length-1);
		cursor_pos_selection.text = '';
		cursor_pos_selection.collapse();
        if (language)
        {
        	result = pretxt+translatesymboltolatin(txt);  // to latin
        }
        else
        {
			if (!translitLetterArr[txt])
			{
				if (wasFirstLetter)
				{
					result = pretxt.substr(0,pretxt.length-1) + translitFirstToLonely[pretxt.substr(pretxt.length-1,pretxt.length)] + txt;
				}
				else
				{
					if (!isFirstLetter)
					{
						result = pretxt.substr(0,pretxt.length-1) + translitMiddleToLast[pretxt.substr(pretxt.length-1,pretxt.length)] + txt;				
					}
					else
					{
						result = pretxt+txt;
					}
				}
				isFirstLetter = true;
				wasFirstLetter = false;
			}
			else
			{
				result = translatesymboltocyrillic(pretxt+txt); // to cyrillic
			}
        }
		with(document.selection.createRange()) {
			select();
			text = result;
			collapse();
		}	
	}
	else{
		if (e.which==0){
			return false;
		}
		if (keyCode&&keyCode>31&&(!(e.ctrlKey||e.altKey)))
		{

	        if (e.preventDefault)
	       	{
	       		e.preventDefault();
	       	}

			var tb = document.searchform.subject;
	   		var pretxt, aftr, selecton;
			var selStart = tb.selectionStart+1;
			var selEnd = tb.selectionEnd+1;
			pretxt= tb.value.substring(0, tb.selectionStart)
			selecton = tb.value.substring(tb.selectionStart, tb.selectionEnd)
			aftr = tb.value.substring(tb.selectionEnd, tb.value.length)
		    if (language)
	        {
	        	result = pretxt+translatesymboltolatin(txt)+aftr;  // to latin
		    }
	        else
		    {
				if (!translitLetterArr[txt])
				{
					if (wasFirstLetter)
					{
						result = pretxt.substr(0,pretxt.length-1) + translitFirstToLonely[pretxt.substr(pretxt.length-1,pretxt.length)] + txt +aftr;
					}
					else
					{
						if (!isFirstLetter)
						{
							result = pretxt.substr(0,pretxt.length-1) + translitMiddleToLast[pretxt.substr(pretxt.length-1,pretxt.length)] + txt+aftr;				
						}
						else
						{
							result = pretxt+txt;
						}
					}
					isFirstLetter = true;
					wasFirstLetter = false;
				}
				else
				{			
	        		result = translatesymboltocyrillic(pretxt+txt)+aftr; // to cyrillic
				}
		    }
			tb.value= result;
			tb.focus();   
			tb.setSelectionRange(selStart, selEnd);
		}
	}	
	return false;
}

function translatesymboltocyrillic(txt)
{
	var pretxt = txt.substr(0,txt.length-1);
	var last = txt.substr(txt.length-1,1);
	var lat = translitLetterArr[last];
	if (isArabic && (isFirstLetter || txt.length==1))
	{
		var rus = startLetterArr[last];
		isFirstLetter = false;
		wasFirstLetter = true;
	}
	else
	{
		var rus = middleLetterArr[last];
		wasFirstLetter = false;
	}
	if (lat)
	{

		for (var ii=0; ii<lat.length; ii++)
		{
			var pos = pretxt.length>lat[ii].length?(pretxt.length-lat[ii].length):0;

			if (lat[ii]==pretxt.substr(pos,pretxt.length-pos)) 
			{

				return pretxt.substr(0,pretxt.length-lat[ii].length)+rus[ii];
			}
		}
	}
	return txt;
}

function translatesymboltolatin(symb)
{
	return translitBackArr[symb]?translitBackArr[symb]:symb;
}

function translateAlltoCyrillic()
{
		var transliterateit = 1;
		var swithchesoff = /\]|\>/;
		var is_selection_flag = 1;
		var userselection;
		if (document.selection){
			userselection = document.selection.createRange();
		}
		else if (typeof document.searchform.subject.selectionStart != 'undefined'){
    			var tb = document.searchform.subject;
    			userselection = tb.value.substring(tb.selectionStart, tb.selectionEnd)
		}
		var txt = userselection.text;
		if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea") 
		{
			// no text selected, all the text in the textarea is to be processed
			is_selection_flag = 0;
			txt = document.searchform.subject.value;
		}
		var txtnew = txt.substr(0,1);
		if (((txtnew=="<")&&processhtmltags)||((txtnew=="[")&&processbbcodetags)) transliterateit=0;
		if (txtnew.match(swithchesoff)) transliterateit=1;
		if (transliterateit) {txtnew = translatesymboltocyrillic(txtnew);}
		var symb = "";
		for (kk=1;kk<txt.length;kk++)
		{
			symbbb = txt.substr(kk,1);
			if ((symbbb=="<"&&processhtmltags)||(symbbb=="["&&processbbcodetags)) transliterateit=0;
			if (symbbb.match(swithchesoff)) transliterateit=1;
			if (transliterateit)
			{
				symb = translatesymboltocyrillic(txtnew.substr(txtnew.length-1,1)+symbbb);
			}
			else
			{
				symb = txtnew.substr(txtnew.length-1,1)+symbbb;
			}
			txtnew = txtnew.substr(0,txtnew.length-1) + symb;
		}
		if (is_selection_flag)
		{
			userselection.text = txtnew; userselection.collapse(); userselection.select();
		}
		else
		{
			document.searchform.subject.value = txtnew;
			setfoc();
		}
	return false;
}

function translateAlltoLatin()
{
		var is_selection_flag = 1;
		var userselection;
		if (document.selection){
			userselection = document.selection.createRange();
		}
		else if (typeof document.searchform.subject.selectionStart != 'undefined'){
    			var tb = document.searchform.subject;
    			userselection = tb.value.substring(tb.selectionStart, tb.selectionEnd)
		}
		var txt = userselection.text;

		if (userselection==null || userselection.text==null || userselection.parentElement==null || userselection.parentElement().type!="textarea") 
		{
			// no text selected, all the text in the textarea is to be processed
			is_selection_flag = 0;
			txt = document.searchform.subject.value;
		}
		txtnew="";
		var symb = "";
		for (kk=0;kk<txt.length;kk++)
		{
			symb = translatesymboltolatin(txt.substr(kk,1));
			txtnew = txtnew.substr(0,txtnew.length) + symb;
		}
		if (is_selection_flag)
		{
			userselection.text = txtnew; userselection.collapse(); userselection.select();
		}
		else
		{
			document.searchform.subject.value = txtnew;
			setfoc();
		}
	return false;
}

function Pastetrans()
{ 
	if (!window.clipboardData){
		alert("Works only with Explorer");
		return false;
	}
	var savedtext = window.clipboardData.getData("Text");
	setfoc();
	if (savedtext!='null') document.selection.createRange().text = savedtext; 
	document.selection.createRange().select();
	return false;
}

function Copytrans()
{
	setfoc(); 
	var userselection;
	if (document.selection){
		userselection = document.selection.createRange();
		if (userselection.text!="") {
			userselection.execCommand("Copy");
		} 
		else { 
			document.searchform.subject.createTextRange().execCommand("Copy");
		}
	}
	else if (typeof document.searchform.subject.selectionStart != 'undefined'){
		var tb = document.searchform.subject;
		userselection = tb.value.substring(tb.selectionStart, tb.selectionEnd)
		
		alert("Works only with Explorer");
	} 

	return false;
}

function SendEMail()
{
  var mail_body;
  var mail_subject;
  var mail_addr; 

    mail_body = document.searchform.subject.value;
    mail_addr = document.getElementById("targetEmail").value;
    mail_subject = document.getElementById("emailTopic").value;

  var url = 'mailto:';
  url += mail_addr;
  url += '?body=' + mail_body;/*escape(mail_body);*/
  url += '&subject=' + mail_subject;
  location.href = url;
}

function goGoogle()
{
//alert("1");
  //var url = './redirect.htm';
  //url+='?q='+encodeURIComponent(document.searchform.subject.value)+'&ie=UTF-8&oe=UTF-8';
document.searchform.q.value = document.searchform.subject.value;
//alert(document.searchform.q.value);
//url+='?q='+document.searchform.subject.value;
//alert(url);

//Start(url);
//location.href = url;
//url = "http://www.google.com/custom?q=word&sa=%CF%EE%E8%F1%EA+%E2+Google&client=pub-3013075328887088&forid=1&ie=windows-1251&oe=windows-1251&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BFORID%3A1&hl=ru";
//document.searchform.action = url;
}



function changeLocationToGoogle()
{
//alert('1');
  var url = location.href;
  var temp = new Array();
//alert('11');
  temp = url.split('?q=');
//alert('12');
document.form1.q.value=encodeURIComponent(temp[1]);
//alert('2');
document.form1.submit();

}

function Cleartrans()
{
	setfoc(); 
	if(document.selection){
		rr = document.selection.createRange(); 
		if (rr.text!="") {
			rr.text=""; 
			rr.collapse(); 
			rr.select();
		} 
		else {
			document.searchform.subject.value = "";
		}
	}
	else{
		var textinputform = window.document.searchform.subject; 
		var p1 = textinputform.selectionStart; 
		var p2 = textinputform.selectionEnd; 
		if (p1==p2) {
			textinputform.value="";
		} else {
			textinputform.value = textinputform.value.substring(0, p1)+textinputform.value.substring(p2);
		} 
		textinputform.setSelectionRange(p1,p1);
	}
	setfoc();
	return false;
}

function clipboardinfo()
{
	open("/info/clipboard.shtml", "displayWindow", "scrollbars=yes,status=no,toolbar=no,menubar=no");
	return false;
}

if (document.images) {
	swrus_src = new Image; 
	swrus_src = "OKBOARD_Files/swrus.gif";
	swlat_src = new Image; 
	swlat_src = "OKBOARD_Files/swlat.gif";
}

var undotext = new Array('');
var undodepth = 10;

function savechanges()
{
	var undotext_last = undotext.length?undotext[undotext.length-1]:'';
	if (undotext_last != document.searchform.subject.value) 
	{
		with (document.searchform.rtext) 
		{
			if (value == '> ') 
			{
				value = '<-';
			}
		}
		undotext.push(document.searchform.subject.value);
		if (undotext.length > (undodepth+1))
		{
			undotext.shift();
		}
	}
	return false;
}



