// (c) RomashkaX 1995-2001
// Last changes 2006

// Однобуквенные сочетания
TableLat1 = new Array('a', 'b', 'v', 'g', 'd', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', '`', 'y', "'");
TableRus1 = new Array('а', 'б', 'в', 'г', 'д', 'е', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ъ', 'ы', 'ь');
// Двухбуквенные сочетания
TableLat2 = new Array('zh', 'zc', 'zz', 'ch', 'sh', 'ju', 'yu', 'ja', 'ya', 'oy', 'uy', 'iy', 'ey', 'ay', '`e');
TableRus2 = new Array('ж',  'ц',  'ц',  'ч',  'ш',  'ю',  'ю',  'я',  'я',  'ой', 'уй', 'ий', 'ей', 'ай', 'э');
// Трехбуквенные сочетания
TableLat3 = new Array('oya', 'uya', 'iya', 'eya', 'aya', 'yay', 'sch');
TableRus3 = new Array('оя',  'уя',  'ия',  'ея',  'ая',  'яй',  'щ');

// Дальше лучше ничего не трогать, а то будет только хуже
// Общие массивы
TableLat = new Array(TableLat1, TableLat2, TableLat3);
TableRus = new Array(TableRus1, TableRus2, TableRus3);

var sTxt, sNick, fRus = 0;


// Функция замены последовательностей
function LRSeq(s, Num)
{
  var j;

  for (j = 0; j < TableLat[Num].length; j++)
  {
    if (TableLat[Num][j] == s.toLowerCase())
    {
      if (s.toLowerCase() == s)
      {
        return TableRus[Num][j]
      }
      else
      {
        return TableRus[Num][j].toUpperCase()
      }
    }
  }
  return '';
}

// Функция перекодировки
function lat2rus(sLat)
{
  var sRus = new String();
  var sTmp, Cnt, i;

  // Перебираем все длины последовательностей
  for (Cnt = TableLat.length - 1; Cnt >= 0; Cnt--)
  {
    // Перебираем все символы
    for (i = 0; i < sLat.length - Cnt; i++)
    {
      sTmp = LRSeq(sLat.substring(i, i + Cnt + 1), Cnt);

      if (sTmp == '')
      {
        sRus = sRus + sLat.substring(i, i + 1);
      }
      else
      {
        sRus = sRus + sTmp;
        i = i + Cnt;
      }
    }
    // Добавляем хвостик
    sLat = sRus + sLat.substring(i, sLat.length);
    sRus = '';
  }

  return sLat;
}

function Translit()
{
  if (fRus == 0)
  {
    sTxt = document.forms[0].msg.value;
    sNick = document.forms[0].nick.value;
    document.forms[0].msg.value = lat2rus(sTxt);
    document.forms[0].nick.value = lat2rus(sNick);
    document.forms[0].lat.value = 'Вернуть как было';
    fRus = 1;
  }
  else
  {
    document.forms[0].msg.value = sTxt;
    document.forms[0].nick.value = sNick;
    document.forms[0].lat.value = 'Latinizzu в кирилицу';
    fRus = 0;
  }
}

function TranslitHelp()
{
  window.open("latrul.htm","","top=0,width=500,height=550,toolbars=no,resize=no,scrollbars=yes");
}


function GetCookie(sName)
{
  var sRes = null;
  var iStart = 0;
  var iEnd = 0;

  if (document.cookie.length > 0)
  {
    iStart = document.cookie.indexOf(sName + '=');
    if (iStart != -1)
    {
      iStart = iStart + sName.length + 1;
      iEnd = document.cookie.indexOf(";", iStart);
      if (iEnd == -1)
      {
        iEnd = document.cookie.length;
      }
      sRes = unescape(document.cookie.substring(iStart, iEnd));
    }
  }
  return(sRes);
}


function SaveParams()
{
  document.cookie="nick=" + escape(document.forms[0].nick.value) + "; path=/; expires=Mon, 04-Jan-2010 00:00:00 GMT";
  document.cookie="color=" + document.forms[0].color.value + "; path=/; expires=Mon, 04-Jan-2010 00:00:00 GMT";
  document.cookie="count=" + document.forms[0].count.value + "; path=/; expires=Mon, 04-Jan-2010 00:00:00 GMT";
}


function SaveUserParams()
{
  document.cookie="count=" + document.forms[0].count.value + "; path=/; expires=Mon, 04-Jan-2010 00:00:00 GMT";
	document.location.reload();
}


function LoadParams()
{
  var sNick = GetCookie('nick');
  var iColor = GetCookie('color');
  var iCount = GetCookie('count');
  if ((sNick != null) && (document.forms[0].nick != undefined))
  {
    document.forms[0].nick.value = unescape(sNick);
  }
  if ((iColor != null) && (document.forms[0].color != undefined))
  {
    document.forms[0].color.value = iColor;
  }
  if ((iCount != null) && (document.forms[0].count != undefined))
  {
    document.forms[0].count.value = iCount;
  }
}

function CheckFields()
{
  if (document.forms[0].msg.value.length < 1)
  {
    alert ('А высказаться-то забыли!');
    return false;
	}
  if (document.forms[0].nick.value.length < 1)
  {
    alert ('А зовут-то вас как, уважаемый?');
    return false;
	}
  return true;
}
