код часть3:
// -------------------------- CONVERT TO LAT --------------------------
lat_eng_table = "ABVGDEJZIYKLMNOPRSTUFH4CIabvgdejziyklmnoprstufh4ci'";
lat_rus_table = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЧЦЫабвгдежзийклмнопрстуфхчцыь";
function translit2lat(str)
{
var len = str.length;
var new_str="";
for (i = 0; i < len; i++)
{
// Check for 2-character letters
is2char=false;
if (i < len)
{
if(str.substr(i, 1) == 'Ю')
{
new_str += 'YU ';
i++;
is2char=true;
}
if(str.substr(i, 1) == 'ю')
{
new_str += 'yu ';
i++;
is2char=true;
}
if(str.substr(i, 1) == 'Я')
{
new_str += 'YA ';
i++;
is2char=true;
}
if(str.substr(i, 1) == 'я')
{
// alert("1"+str.substr(i, 1)+"1");
new_str += 'ya ';
i++;
is2char=true;
}
}
// Convert one-character letter
if(!is2char)
{
var c = str.substr(i, 1);
var pos = lat_rus_table.indexOf(c);
if (pos < 0)
new_str+= c;
else
new_str+= lat_eng_table.substr(pos, 1);
}
}
return new_str;
}
// ------------------------------------end garbage-----------------------------------------
function openTranslit()
{
var myUrl = "translit.html";
myWin=window.open(myUrl, "wind1", "width=800,height=745,resizable=no,scrollbars=no,menubar=no");
}
// *********************************************************************************
/*var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');
var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_X_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_X_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_x_c_#_y_\'').split('_');
*/
var rus_lr2 = ('Е-е-О-о-Ё-Ё-Ё-Ё-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Э-Э-Ю-Ю-Я-Я-Я-Я-ё-ё-ж-ч-ш-щ-э-ю-я-я').split('-');
var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ'+String.fromCharCode(35)+'-ь'+String.fromCharCode(39)+'-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Щ-Ы-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ы-ь-ь-я').split('-');
var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-'+String.fromCharCode(96)+'-q').split('-');
var rus_rl = ('А-Б-В-Г-Д-Е-Ё-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ы-Ь-Э-Ю-Я-а-б-в-г-д-е-ё-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ы-ь-э-ю-я').split('-');
var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH-'+String.fromCharCode(35)+String.fromCharCode(35)+'-Y-'+String.fromCharCode(39)+String.fromCharCode(39)+'-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh-'+String.fromCharCode(35)+'-y-'+String.fromCharCode(39)+'-je-ju-ja').split('-');
var lat = ('/E_/e_/O_/ o_Шh_Йo_Зh_Цh_Сh_Йe_Йu_Йa_Ыo_Ыu_Ыa_ШH_ЙO_ЗH_ЦH_СH_ЙE_ЙU_ЙA_ЫO_ЫU_ЫA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_
S_T_U_F_H_C_ъ#_Y_ь\'_H_W_Q_шh_йo_зh_цh_сh_йe_йu_йa_ыo_ыa_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'_h_w_q').split('_');
var rus = (& #39;E_e_O_o_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_Ё_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_
Ъ_Ы_Ь_Х_Щ_Я_щ_ё_ж_ч_ш_э_ю_я_ё_я_а_б_в_г_д_е_з_и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь_х_щ_я').split('_');
var rus2 = (& #39;Щ_Ё_Ж_Ч_Ш_Э_Ю_Я_А_Б_В_Г_Д_Е_З_И_Й_К_Л_М_Н_О_П_Р_С_Т_У_Ф_Х_Ц_Ъ_Ы_Ь_щ_ё_ж_ч_ш_э_ю_я_а_б_в_г_д_е_з_
и_й_к_л_м_н_о_п_р_с_т_у_ф_х_ц_ъ_ы_ь').split('_');
var lat2 = ('SHH_JO_ZH_CH_SH_JE_JU_JA_A_B_V_G_D_E_Z_I_J_K_L_M_N_O_P_R_S_T_U_F_H_C_##_Y_\'\'_shh_jo_zh_ch_sh_je_ju_ja_a_b_v_g_d_e_z_i_j_k_l_m_n_o_p_r_s_t_u_f_h_c_#_y_\'').split('_');
var translitown=0;
var processhtmltags = 1; // switch to latin when the html tag <...> is typed in
var processbbcodetags = 1; // switch to latin when the bbcode tag [...] is typed in
var language = 0;
var maxtransliterationlength=3;
var lenreafontsize = 14; // WAENING: the value is defined in the main.css !!!
var textreafontwidth = 7; // The width of the text is supposed to be 7 !!!
var prelanguage = 0;
function translatesymboltocyrillic(txt)
{
for (var ii=0; ii<lat.length; ii++)
{
pos = txt.length>lat[ii].length?(txt.length-lat[ii].length):0;
if (lat[ii]==txt.substr(pos,txt.length-pos)) {
return txt.substr(0,txt.length-lat[ii].length)+rus[ii];
}
}
return txt;
}
function translatesymboltolatin(symb)
{
for (var ii=0;ii<rus2.length;ii++)
{
if (rus2[ii]==symb)
return lat2[ii];
}
return symb;
}
function translateAlltoCyrillic()
{
var inloop=1;
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
preval = tt.value.substring(0, p1);
txt = tt.value.substring(p1,p2);
postval = tt.value.substring(p2);
}
var txtnew = "";
if ((!processhtmltags)&&(!processbbcodetags))
{
txtnew = translateStringtoCyrillic(txt);
}
else
{
var htt1,pbb1,t1,t2,txt1,txt2,tag_open,tag_close;
var noinputtag=0;
if (processhtmltags) {tag_open="<";tag_close=">";}
if (processbbcodetags) {tag_open="[";tag_close="]";}
while(inloop)
{
if (processhtmltags&&processbbcodetags)
{
htt1 = txt.indexOf("<");
pbb1 = txt.indexOf("[");
if (pbb1==htt1) {noinputtag=1}
if (pbb1==-1) {pbb1=txt.length;}
if (htt1==-1) {htt1=txt.length;}
if (htt1<pbb1) {t1=htt1; tag_close=">";} else {t1=pbb1; tag_close="]";}
}
else
{
t1 = txt.indexOf(tag_open);
if (t1==-1) noinputtag=1;
}
if (noinputtag) {inloop=0;t1=txt.length;t2=txt.length;}
else
{
txt2=txt.substring(t1,txt.length);
t2=txt2.indexOf(tag_close);
//if (t2==-1) {t2=txt.length; inloop=0;} else {t2=t2+t1+1};
if (t2==-1) {t2=t1+1} else {t2=t2+t1+1};
}
txt1 = txt.substring(0,t1);
txt2 = txt.substring(t1,t2);
txt = txt.substring(t2,txt.length);
txtnew = txtnew+translateStringtoCyrillic(txt1)+txt2;
}
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}
function translateStringtoCyrillic(thestringlat)
{
var symbb,fromm,howmuch,thestringcyr="";
for (kk=0;kk<thestringlat.length;kk++)
{
howmuch = thestringcyr.length>maxtransliterationlength?maxtransliterationlength:thestringcyr.length;
fromm = thestringcyr.length-howmuch;
symbbb = thestringlat.substr(kk,1);
symbbb = translatesymboltocyrillic(thestringcyr.substr(fromm,howmuch)+symbbb);
thestringcyr = thestringcyr.substr(0,fromm)+symbbb;
}
return thestringcyr;
}
function translateAlltoLatin()
{
tt = window.document.text.sms;
p1 = tt.selectionStart; p2 = tt.selectionEnd;
var preval = ""; var postval="";
if (p1==p2) {txt = tt.value;}
else
{
preval = tt.value.substring(0, p1);
txt = tt.value.substring(p1,p2);
postval = tt.value.substring(p2);
}
txtnew="";
var symb = "";
for (kk=0;kk<txt.length;kk++)
{
symb = translatesymboltolatin(txt.substr(kk,1));
txtnew = txtnew.substr(0,txtnew.length) + symb;
}
tt.value = preval+txtnew+postval;
if (p1!=p2) {tt.setSelectionRange(p1+txtnew.length,p1+txtnew.length);}
tt.focus();
return true;
}
//-->
</script>
<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=windows-1251">
<title>SMS</title>
<script language="java*script"">
<!--
var maxLen=160;
function setLen(dcs)
{
if( dcs == 0 )
{
maxLen = 160;
}
else
{
maxLen = 70;
}
checkLen();
}
function setmaxlng()
{
document.text.len.value = maxLength;
}
function checkLen()
{
if (document.all) {
str = text.sms.value;
len = str.length;
}
else{
str = document.forms.text.sms.value;
len = document.forms.text.name.textLength;
}
var rusLen = 0;
if(document.forms.text.dcs[1].checked){
var re = /[ёжцчшюя??]/i;
var re1 = /[щ]/i;
for(i=0;i<=len;i++){
if(re.test(str.substr(i,1))){
rusLen = rusLen +1;
}
if(re1.test(str.substr(i,1))){
rusLen = rusLen +2;
}
}
}
fullLen = maxLen - rusLen;
if ( len > fullLen) document.forms.text.sms.value = str.substring(0,fullLen);
document.forms.text.len.value = (fullLen - document.forms.text.sms.value.length);
document.forms.text.sms.focus();
}