/*******************************************************************/
/* Copyright Horosho.com                                           */
/* Email support@horosho.com                                       */
/* You may not use this script without author's written consent    */
/*******************************************************************/

function addltr(ltr) {
  document.getElementById("query").value += ltr;
  document.getElementById("query").focus();
}

function map() {
  if(!map_on) {
    document.getElementById("mappings").style.visibility = "visible";
    document.getElementById("ahelp").innerHTML = "X";
    document.getElementById("query").focus();
    map_on = true;
  } else {
    document.getElementById("mappings").style.visibility = "hidden";
    document.getElementById("ahelp").innerHTML = "?";
    document.getElementById("query").focus();
    map_on = false;
  }
}

var rus = ('%u0410_%u0411_%u0412_%u0413_%u0414_%u0415_%u0416_%u0417_%u0418_%u0419_%u041A_%u041B_%u041C_%u041D_%u041E_%u041F_%u0420_%u0421_%u0422_%u0423_%u0424_%u0425_%u0426_%u0427_%u0428_%u0429_%u042A_%u042B_%u042C_%u042D_%u042E_%u042F_%u0401_%u0430_%u0431_%u0432_%u0433_%u0434_%u0435_%u0436_%u0437_%u0438_%u0439_%u043A_%u043B_%u043C_%u043D_%u043E_%u043F_%u0440_%u0441_%u0442_%u0443_%u0444_%u0445_%u0446_%u0447_%u0448_%u0449_%u044A_%u044B_%u044C_%u044D_%u044E_%u044F_%u0451_%u042A_%u044A_%u0428_%u0448').split('_');

var lat = ('A_B_V_G_D_E_%u0417H_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_%u0426H_%u0421H_%u0428H_%u044A#_Y_%u044C\'_%u0419E_%u042BU_%u042BA_%u042BO_a_b_v_g_d_e_%u0437h_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_%u0446h_%u0441h_%u0448h_#_y_\'_%u0439e_%u044Bu_%u044Ba_%u044Bo_Q_q_W_w').split('_');

var utf8 = ('%D0%90_%D0%91_%D0%92_%D0%93_%D0%94_%D0%95_%D0%96_%D0%97_%D0%98_%D0%99_%D0%9A_%D0%9B_%D0%9C_%D0%9D_%D0%9E_%D0%9F_%D0%A0_%D0%A1_%D0%A2_%D0%A3_%D0%A4_%D0%A5_%D0%A6_%D0%A7_%D0%A8_%D0%A9_%D0%AA_%D0%AB_%D0%AC_%D0%AD_%D0%AE_%D0%AF_%D0%81_%D0%B0_%D0%B1_%D0%B2_%D0%B3_%D0%B4_%D0%B5_%D0%B6_%D0%B7_%D0%B8_%D0%B9_%D0%BA_%D0%BB_%D0%BC_%D0%BD_%D0%BE_%D0%BF_%D1%80_%D1%81_%D1%82_%D1%83_%D1%84_%D1%85_%D1%86_%D1%87_%D1%88_%D1%89_%D1%8A_%D1%8B_%D1%8C_%D1%8D_%D1%8E_%D1%8F_%D1%91').split('_');

var ru_on = false;
var map_on = false;
on();

function on() {
  addListeners();
}

function swch() {
  addListeners();
  document.getElementById("query").focus();
}
  
function addListeners() {
  if(ru_on) {
    removeListeners();
    /*document.getElementById("ru_light").src="/imgs/icons/bullet-red.gif";*/
    document.getElementById("ru_text").innerHTML="en";
    return;
  }

  /*document.getElementById("ru_light").src="/imgs/icons/bullet-green.gif";*/
  document.getElementById("ru_text").innerHTML="ru";
  if(document.forms[0].elements["query"].addEventListener) {
    document.forms[0].elements["query"].addEventListener('keypress', translate_letter, false);
  } else if(document.forms[0].elements["query"].attachEvent) {
    document.forms[0].elements["query"].attachEvent('onkeypress', translate_letter);
  }
  ru_on = true;
}


function removeListeners() {
  if(document.forms[0].elements["query"].removeEventListener) {
    document.forms[0].elements["query"].removeEventListener('keypress', translate_letter, false);
  } else if(document.forms[0].elements["query"].detachEvent) {
    document.forms[0].elements["query"].detachEvent('onkeypress', translate_letter);
  }
  ru_on = false;
}


function translate_letter(event) {
  var ie = (window.event);
  var code = event.keyCode;
  if(!ie) {
    code = event.charCode;
  }
  if(code == 13) {
    document.forms[0].submit();
  }
  var txt = String.fromCharCode(code);
  if (code&&(!(event.ctrlKey||event.altKey))) {
    if (event.preventDefault) {
      event.preventDefault();
    } else {
      event.returnValue = false;
    }
    
    txt = String.fromCharCode(code);
    tt = document.getElementById("query");
    
    var pretxt = tt.value.substring(0, tt.selectionStart);
    var result = "";
    result = translatesymboltocyrillic(pretxt, txt);
    result = unescape(result);
    
    var therest = "";
    var curPos;
    if(!ie) {
      therest = tt.value.substr(tt.selectionEnd);
      curPos = tt.selectionEnd;
      tt.value = result + therest;
      tt.selectionEnd = curPos + 1;
    } else {
      therest = tt.value.substr(tt.value.length);
      curPos = tt.value.length;
      tt.value = result + therest;
      tt.value.length = curPos + 1;
    }
  }

  return false;
}


function translatesymboltocyrillic(pretxt, txt) {
  var pos = void 0;
  var found = false;
  var sl = pretxt.substring(pretxt.length-1);
  for (var ii=0; ii<lat.length; ii++)  {
    if (lat[ii]==escape(sl)+txt) {
      txt = txt.substr(0,txt.length-lat[ii].length)+rus[ii];
      txt = pretxt.substring(0, pretxt.length-1) + txt;
      found = true;
    }
  }
  
  if(!found) {
    for (var ii=0; ii<lat.length; ii++)  {
      if (lat[ii]==txt) {
        txt = pretxt + txt.substr(0,txt.length-lat[ii].length)+rus[ii];
        found = true;
      }
    }  
  }
  if(found) {
    return txt;
  } else {
    return pretxt+txt;
  }
}

function translatesymboltoutf8() {
  var txt = document.getElementById("query").value;
  var utf8string = "";  
  for (var i=0; i<txt.length; i++)
  {
    var found = false;
    letter = escape(txt.charAt(i));
    for(var q=0; q<rus.length; q++) {
      if(rus[q] == letter) {
        utf8string += utf8[q];
        found = true;
      }
    }
    if(!found) {
      utf8string+=letter;
    }
  }
  return utf8string;
}

function myWrite(txt) {
  document.write(txt);
}