var DoTranslit = 0;
var language = 0;
var prelanguage = 0;

var processhtmltags = 1;
var processbbcodetags = 2;


function setfoc() 
{
	return false;
}



var tra = new Array();
var abc2 = new Array();
var abc1 = new Array();

tra[String.fromCharCode(97)] = new Array ('û+','É+','Û+','é+','Û','é','û','É','','');
abc2[String.fromCharCode(97)] = new Array ('ûà','Éà','Ûà','éà','ß','ÿ','ÿ','ß','à','a');

tra[String.fromCharCode(98)] = new Array ('','');
abc2[String.fromCharCode(98)] = new Array ('á','b');

tra[String.fromCharCode(118)] = new Array ('','');
abc2[String.fromCharCode(118)] = new Array ('â','v');

tra[String.fromCharCode(103)] = new Array ('','');
abc2[String.fromCharCode(103)] = new Array ('ã','g');

tra[String.fromCharCode(100)] = new Array ('','');
abc2[String.fromCharCode(100)] = new Array ('ä','d');

tra[String.fromCharCode(101)] = new Array ('É+','é+','É','é','','');
abc2[String.fromCharCode(101)] = new Array ('Éå','éå','Ý','ý','å','e');

tra[String.fromCharCode(111)] = new Array ('û+','É+','Û+','é+','Û','û','É','é','','');
abc2[String.fromCharCode(111)] = new Array ('ûî','Éî','Ûî','éî','¨','¸','¨','¸','î','o');

tra[String.fromCharCode(246)] = new Array ('','');
abc2[String.fromCharCode(246)] = new Array ('¸','ö');

tra[String.fromCharCode(104)] = new Array ('ñõ+','Ñõ+','ç+','Ñõ','ñ+','ø+','Ö+','Ø+','Ñ+','ñõ','ö+','Ç+','Ø','ñ','ö','ø','Ç','Ñ','Ö','ç','','');
abc2[String.fromCharCode(104)] = new Array ('ñõõ','Ñõõ','çõ','Ù','ñõ','øõ','Öõ','Øõ','Ñõ','ù','öõ','Çõ','Ù','ø','÷','ù','Æ','Ø','×','æ','õ','h');

tra[String.fromCharCode(122)] = new Array ('','');
abc2[String.fromCharCode(122)] = new Array ('ç','z');

tra[String.fromCharCode(105)] = new Array ('','');
abc2[String.fromCharCode(105)] = new Array ('è','i');

tra[String.fromCharCode(106)] = new Array ('','');
abc2[String.fromCharCode(106)] = new Array ('é','j');

tra[String.fromCharCode(107)] = new Array ('','');
abc2[String.fromCharCode(107)] = new Array ('ê','k');

tra[String.fromCharCode(108)] = new Array ('','');
abc2[String.fromCharCode(108)] = new Array ('ë','l');

tra[String.fromCharCode(109)] = new Array ('','');
abc2[String.fromCharCode(109)] = new Array ('ì','m');

tra[String.fromCharCode(110)] = new Array ('','');
abc2[String.fromCharCode(110)] = new Array ('í','n');

tra[String.fromCharCode(112)] = new Array ('','');
abc2[String.fromCharCode(112)] = new Array ('ï','p');

tra[String.fromCharCode(114)] = new Array ('','');
abc2[String.fromCharCode(114)] = new Array ('ð','r');

tra[String.fromCharCode(115)] = new Array ('','');
abc2[String.fromCharCode(115)] = new Array ('ñ','s');

tra[String.fromCharCode(116)] = new Array ('','');
abc2[String.fromCharCode(116)] = new Array ('ò','t');

tra[String.fromCharCode(117)] = new Array ('û+','É+','Û+','é+','Û','é','û','É','','');
abc2[String.fromCharCode(117)] = new Array ('ûó','Éó','Ûó','éó','Þ','þ','þ','Þ','ó','u');

tra[String.fromCharCode(102)] = new Array ('','');
abc2[String.fromCharCode(102)] = new Array ('ô','f');

tra[String.fromCharCode(120)] = new Array ('','');
abc2[String.fromCharCode(120)] = new Array ('õ','x');

tra[String.fromCharCode(99)] = new Array ('','');
abc2[String.fromCharCode(99)] = new Array ('ö','c');

tra[String.fromCharCode(119)] = new Array ('','');
abc2[String.fromCharCode(119)] = new Array ('ù','w');

tra[String.fromCharCode(35)] = new Array ('ú+','ú','','');
abc2[String.fromCharCode(35)] = new Array ('úú','Ú','ú','#');

tra[String.fromCharCode(121)] = new Array ('','');
abc2[String.fromCharCode(121)] = new Array ('û','y');

tra[String.fromCharCode(39)] = new Array ('ü+','ü','','');
abc2[String.fromCharCode(39)] = new Array ('üü','Ü','ü','\'');

tra[String.fromCharCode(228)] = new Array ('','');
abc2[String.fromCharCode(228)] = new Array ('ý','ä');

tra[String.fromCharCode(252)] = new Array ('','');
abc2[String.fromCharCode(252)] = new Array ('þ','ü');

tra[String.fromCharCode(65)] = new Array ('Û+','É+','Û','É','','');
abc2[String.fromCharCode(65)] = new Array ('ÛÀ','ÉÀ','ß','ß','À','A');

tra[String.fromCharCode(66)] = new Array ('','');
abc2[String.fromCharCode(66)] = new Array ('Á','B');

tra[String.fromCharCode(86)] = new Array ('','');
abc2[String.fromCharCode(86)] = new Array ('Â','V');

tra[String.fromCharCode(71)] = new Array ('','');
abc2[String.fromCharCode(71)] = new Array ('Ã','G');

tra[String.fromCharCode(68)] = new Array ('','');
abc2[String.fromCharCode(68)] = new Array ('Ä','D');

tra[String.fromCharCode(69)] = new Array ('É+','É','','');
abc2[String.fromCharCode(69)] = new Array ('ÉÅ','Ý','Å','E');

tra[String.fromCharCode(79)] = new Array ('Û+','É+','Û','É','','');
abc2[String.fromCharCode(79)] = new Array ('ÛÎ','ÉÎ','¨','¨','Î','O');

tra[String.fromCharCode(214)] = new Array ('','');
abc2[String.fromCharCode(214)] = new Array ('¨','Ö');

tra[String.fromCharCode(72)] = new Array ('ÑÕ+','Ö+','ÑÕ','Ñ+','Ç+','Ø+','Ø','Ö','Ñ','Ç','','');
abc2[String.fromCharCode(72)] = new Array ('ÑÕÕ','ÖÕ','Ù','ÑÕ','ÇÕ','ØÕ','Ù','×','Ø','Æ','Õ','H');

tra[String.fromCharCode(90)] = new Array ('','');
abc2[String.fromCharCode(90)] = new Array ('Ç','Z');

tra[String.fromCharCode(73)] = new Array ('','');
abc2[String.fromCharCode(73)] = new Array ('È','I');

tra[String.fromCharCode(74)] = new Array ('','');
abc2[String.fromCharCode(74)] = new Array ('É','J');

tra[String.fromCharCode(75)] = new Array ('','');
abc2[String.fromCharCode(75)] = new Array ('Ê','K');

tra[String.fromCharCode(76)] = new Array ('','');
abc2[String.fromCharCode(76)] = new Array ('Ë','L');

tra[String.fromCharCode(77)] = new Array ('','');
abc2[String.fromCharCode(77)] = new Array ('Ì','M');

tra[String.fromCharCode(78)] = new Array ('','');
abc2[String.fromCharCode(78)] = new Array ('Í','N');

tra[String.fromCharCode(80)] = new Array ('','');
abc2[String.fromCharCode(80)] = new Array ('Ï','P');

tra[String.fromCharCode(82)] = new Array ('','');
abc2[String.fromCharCode(82)] = new Array ('Ð','R');

tra[String.fromCharCode(83)] = new Array ('','');
abc2[String.fromCharCode(83)] = new Array ('Ñ','S');

tra[String.fromCharCode(84)] = new Array ('','');
abc2[String.fromCharCode(84)] = new Array ('Ò','T');

tra[String.fromCharCode(85)] = new Array ('Û+','É+','Û','É','','');
abc2[String.fromCharCode(85)] = new Array ('ÛÓ','ÉÓ','Þ','Þ','Ó','U');

tra[String.fromCharCode(70)] = new Array ('','');
abc2[String.fromCharCode(70)] = new Array ('Ô','F');

tra[String.fromCharCode(88)] = new Array ('','');
abc2[String.fromCharCode(88)] = new Array ('Õ','X');

tra[String.fromCharCode(67)] = new Array ('','');
abc2[String.fromCharCode(67)] = new Array ('Ö','C');

tra[String.fromCharCode(87)] = new Array ('','');
abc2[String.fromCharCode(87)] = new Array ('Ù','W');

tra[String.fromCharCode(89)] = new Array ('','');
abc2[String.fromCharCode(89)] = new Array ('Û','Y');

tra[String.fromCharCode(196)] = new Array ('','');
abc2[String.fromCharCode(196)] = new Array ('Ý','Ä');

tra[String.fromCharCode(220)] = new Array ('','');
abc2[String.fromCharCode(220)] = new Array ('Þ','Ü');

abc1['à'] = 'a';
abc1['á'] = 'b';
abc1['â'] = 'v';
abc1['ã'] = 'g';
abc1['ä'] = 'd';
abc1['å'] = 'e';
abc1['¸'] = 'jo';
abc1['æ'] = 'zh';
abc1['ç'] = 'z';
abc1['è'] = 'i';
abc1['é'] = 'j';
abc1['ê'] = 'k';
abc1['ë'] = 'l';
abc1['ì'] = 'm';
abc1['í'] = 'n';
abc1['î'] = 'o';
abc1['ï'] = 'p';
abc1['ð'] = 'r';
abc1['ñ'] = 's';
abc1['ò'] = 't';
abc1['ó'] = 'u';
abc1['ô'] = 'f';
abc1['õ'] = 'h';
abc1['ö'] = 'c';
abc1['÷'] = 'ch';
abc1['ø'] = 'sh';
abc1['ù'] = 'w';
abc1['ú'] = '#';
abc1['û'] = 'y';
abc1['ü'] = '\'';
abc1['ý'] = 'je';
abc1['þ'] = 'ju';
abc1['ÿ'] = 'ja';
abc1['À'] = 'A';
abc1['Á'] = 'B';
abc1['Â'] = 'V';
abc1['Ã'] = 'G';
abc1['Ä'] = 'D';
abc1['Å'] = 'E';
abc1['¨'] = 'JO';
abc1['Æ'] = 'ZH';
abc1['Ç'] = 'Z';
abc1['È'] = 'I';
abc1['É'] = 'J';
abc1['Ê'] = 'K';
abc1['Ë'] = 'L';
abc1['Ì'] = 'M';
abc1['Í'] = 'N';
abc1['Î'] = 'O';
abc1['Ï'] = 'P';
abc1['Ð'] = 'R';
abc1['Ñ'] = 'S';
abc1['Ò'] = 'T';
abc1['Ó'] = 'U';
abc1['Ô'] = 'F';
abc1['Õ'] = 'H';
abc1['Ö'] = 'C';
abc1['×'] = 'CH';
abc1['Ø'] = 'SH';
abc1['Ù'] = 'W';
abc1['Ú'] = '##';
abc1['Û'] = 'Y';
abc1['Ü'] = '\'\'';
abc1['Ý'] = 'JE';
abc1['Þ'] = 'JU';
abc1['ß'] = 'JA';


function setlangpicture()
{
	language=1;
}

function changelanguage()
{
	if (!language) {
		language=1;
	}
	else {
		language=0;
	}
}


function changelanguage2()
{
	if (0==DoTranslit) {
		DoTranslit=1;
	}
	else {
		DoTranslit=0;
	}
	updateCookie();
	document.getElementById('message').focus();
}

function setlat()
{
	language=1;
	setfoc();
	return false;
}

function setrus()
{
	language=0;
	setfoc();
	return false;
}


function gettextareaval(thetextarea)
{
	var cursor_pos_selection = document.selection.createRange();
	if (cursor_pos_selection.text) {
		return cursor_pos_selection.text; 
	} 
	else {
		return thetextarea.value;
	}
}


function get_pre_length(v)
{
	var OldText = v.text;
	var MegaText = "/z/";
	v.text = MegaText;
	v.text = OldText;

	var iLength = document.getElementById('message').value.indexOf(MegaText);
	v.text = OldText;
	if (iLength>5)
	{
		return 5;
	}
	return iLength;
}

function translate_letter()
{
	var txt = String.fromCharCode(event.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 (0==DoTranslit)
	{
	   return;
	}

	if (!tra[txt])
	{
		return false; // no need to process the letter
	}
	event.keyCode = 0;

	with(document.selection.createRange()) {
		text = '';
		collapse();
	}

	TextInControl = document.getElementById('message').createTextRange();
	cursor_pos_selection = document.selection.createRange();
	cursor_pos_selection.select();
	var MegaText = "/$s^*!z/";
	cursor_pos_selection.text = MegaText;
	cursor_pos_selection.moveStart("character",-MegaText.length);
	var iLength = document.getElementById('message').value.indexOf(MegaText);
	cursor_pos_selection.text = '%';
	cursor_pos_selection.moveStart("character",-1);	
	if ((iLength<0)||(iLength>5))
	{
	    iLength = 5;
	}


	cursor_pos_selection.moveStart("character",-iLength);
        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
        {
        	result = translatesymboltocyrillic(pretxt+txt); // to cyrillic
        }

	with(document.selection.createRange()) {
		select();
		text = result;
		collapse();
	}	
	return false;
}


function translatesymboltocyrillic(txt)
{
	var pretxt = txt.substr(0,txt.length-1);
	var last = txt.substr(txt.length-1,1);
	var lat = tra[last];
	var rus = abc2[last];
	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 abc1[symb]?abc1[symb]:symb;
}

////*************************************************************************************************
function createCookie(name,value,days)
{
        if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
                var c = ca[i];
                while (c.charAt(0)==' ') c = c.substring(1,c.length);
                if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
}


function changelanguage3(DoTranslitNew)
{
	DoTranslit=DoTranslitNew;
	var ChangeLang = document.getElementById('changelang');
	if (ChangeLang)
	{
		ChangeLang.checked = (1==DoTranslit);
	}
}


function initCookie()
{
	if (readCookie("translit")) 
	{
		var lbDoTranslit = readCookie("translit");
		changelanguage3(lbDoTranslit);
	}
	else
	{
		createCookie("translit",DoTranslit,14);
	}
}

function updateCookie()
{
	createCookie("translit",DoTranslit,14);
}







