function storeCaret(txt){
 if(txt.createtxtRange) txt.caretPos=document.selection.createRange().duplicate();
}

function fs(o,c){
 var txtarea=document.FF.txt;
 theSelection=document.selection.createRange().text;
 if(!theSelection){
  txtarea.value+=o+c;
  txtarea.focus();
  return;
 }
 document.selection.createRange().text=o+theSelection+c;
 txtarea.focus();
}

function cit(){
 if(document.selection){
  var str=document.selection.createRange();
  var s=document.FF.txt.value;
  if((str.text!='')&&(s.indexOf(str.text)<0)){
   var str2='> ';
   var j=0;
   for(i=0;i<str.text.length;i++){
    str2+=str.text.charAt(i);j++;
    if(str.text.charAt(i)=='\n'){str2+='> ';j=0;}
    if((j>55)&&(str.text.charAt(i)==' ')){str2+='\n> ';j=0;}
   }
   document.FF.txt.value=s+'[i]\n'+str2+'\n[/i]\n';
  }
  else alert('Не выделен текст!\nДля вставки цитаты, выделите на странице нужный текст, а затем нажмите эту кнопку.');
 }
}

var map_en=new Array("sh'","Sh'",'ye','Ye',"'e","'E",'y0','Y0',"'o","'O",'zh','Zh','ts','Ts','ch','Ch','sh','Sh',"`e","`E",'yu','Yu',"'u","'U",'ya','Ya',"'a","'A",'a','A','b','B','v','V','w','W','g','G','d','D','e','E','z','Z','i','I','j','J','k','K','l','L','m','M','n','N','o','O','p','P','r','R','s','S','t','T','u','U','f','F','h','H','c','C','`','y','Y',"'");
var map_ru=new Array('щ','Щ','е','Е','е','Е','ё','Ё','ё','Ё','ж','Ж','ц','Ц','ч','Ч','ш','Ш','э','Э','ю','Ю','ю','Ю','я','Я','я','Я','а','А','б','Б','в','В','в','В','г','Г','д','Д','е','Е','з','З','и','И','й','Й','к','К','л','Л','м','М','н','Н','о','О','п','П','р','Р','с','С','т','Т','у','У','ф','Ф','х','Х','ц','Ц','ъ','ы','Ы','ь');

function convert(st){
 for(i=0;i<map_en.length;++i)
  while(st.indexOf(map_en[i])>=0) st=st.replace(map_en[i],map_ru[i]);
 return st;
}

function translate2(str){
 var strarr=new Array(); strarr = str.split(' ');
 for(var k=0;k<strarr.length;k++)
  if(strarr[k].indexOf('http://')<0&&strarr[k].indexOf('@')<0&&strarr[k].indexOf('www.')<0) strarr[k]=convert(strarr[k]);
 return strarr.join(' ');
}

function translate(str2){
 var s=new Array(); s=str2.split('\r\n');
 for(i=0;i<s.length;i++) s[i]=translate2(s[i]);
 return s.join('\r\n');
}

function trans(){
 if(document.FF.title) document.FF.title.value=translate2(document.FF.title.value);
 document.FF.txt.value=translate2(document.FF.txt.value);
}

/* -------------------------------------------------------------------------- */

var f_a_request;
var f_a_progress = 0;
var f_a_timer_id;

function f_a_get(url, func_name, errcode){
 if(!f_a_progress){
  if(window.ActiveXObject){
   f_a_request = new ActiveXObject("Microsoft.XMLHTTP");
   if(!f_a_request) f_a_request = new ActiveXObject("MSxml2.XMLHTTP");
   if(f_a_request){
    f_a_progress = 1;
    f_a_timer_id = setTimeout('f_a_progress = 0',500);
    f_a_request.open("GET", url, true);
    f_a_request.onreadystatechange = func_name;
    f_a_request.setRequestHeader('CONTENT-TYPE', 'text/html; codepage=windows-1251;');
    f_a_request.send();
   }
  }
 }
 else{try{eval(errcode);}catch(e){/*alert(e);*/}}
}

function f_a_work(){
 if(f_a_request.readyState == 4){
  var resp = f_a_request.responseText;
  try{
   eval(resp);
  }
  catch(e){
   //alert(e);
  }
 }
}
