// One character letters
var t_table1 = "ABVGDEZIJKLMNOPRSTUFHXCY}abvgdezijklmnoprstufhxcy']";
var w_table1 = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÕÖÛÝàáâãäåçèéêëìíîïðñòóôõõöûüý";

// Two character letters
var t_table2 = "YOJOZHCHSHYUJUYAJA'eyojozhchshyujuyaja'EYoYoZhChShYuJuYaJa''";
var w_table2 = "¨¨Æ×ØÞÞßßý¸¸æ÷øþþÿÿÝ¨¨Æ×ØÞÞßßú";


function translit2win(str) 
 {
  var quoteOpen = 0;
  var engOpen = 0;
  var len = str.length;
  var new_str="";

  for(i=0; i<len; i++)
   {
    // [QUOTE] Tags
    if(i<=len-7 && str.substr(i,7).toUpperCase()=="[QUOTE]")
	   {
		  quoteOpen++;
		  new_str += str.substr(i,7);
		  i+=6;	 
			continue;
	   }
    if(i<=len-8 && str.substr(i,8).toUpperCase()=="[/QUOTE]")
	   {
		  quoteOpen--;
		  new_str += str.substr(i,8);
		  i+=7;	
			continue;
	   }
		// [ENG] Tags
    if(i<=len-5 && str.substr(i,5).toUpperCase()=="[ENG]")
	   {
		  engOpen++;
		  i+=4;	 
			continue;
	   }
    if(i<=len-6 && str.substr(i,6).toUpperCase()=="[/ENG]")
	   {
		  engOpen--;
		  i+=5;	
			continue;
	   }
// do not translit any [] tags at all, if [] placed in one line
   if (str.substr(i,1).toUpperCase()=="[")
	{
	To_Continue=0;
	for (j = i; j<len; j++)
		{
		if (str.substr(j,1).toUpperCase()=="]")
			{
			new_str += str.substr(i,j-i+1);
			i=j;	
			To_Continue=1;
			break;
			}
		}
	if (To_Continue)
		{
		continue;
		}
	}

// do not translit url without tags at all,
// started with http:// or www. and finished by space
   if ((str.substr(i,7).toUpperCase()=="HTTP://") || (str.substr(i,4).toUpperCase()=="WWW."))
	{
	To_Continue=0;
	for (j = i+3; j<len; j++)
		{
		if ((str.substr(j,1)==" ") || (str.substr(j,1)=="\n"))
			{
			To_Continue=1;
			break;
			}
		}
	if ((To_Continue) || (j>=len))
		{
		new_str += str.substr(i,j-i+1);
		i=j;
		continue;
		}
	}

    // 3-characters
    if(i<=len-3 && (str.substr(i,3).toUpperCase()=="SCH"))
	   {
		  str.charAt(i)=="S" ? new_str += "Ù" : new_str += "ù";
		  i+=2;	
			continue;
	   }		
    // Check for 2-character letters
	  if(!quoteOpen && !engOpen)
	   {
      is2char = false;
      if(i<len-1)
		   {
        for(j=0; j<w_table2.length; j++)
         {
          if(str.substr(i,2)==t_table2.substr(j*2,2)) 
			     {
            new_str+= w_table2.charAt(j);
            i++;
            is2char=true;
            break;
           }
         }
       }

      if(!is2char) 
	     {
       // Convert one-character letter
        var c = str.substr(i,1);
        var pos = t_table1.indexOf(c);
        if(pos<0)
         new_str += c;
        else 
         new_str += w_table1.charAt(pos);
       }
     }
    else
     new_str += str.charAt(i);
   }
  //alert(new_str);
  return new_str;
 }  