Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2009, 06:56
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

Скрипт транслитерации
Написал скрипт транслитерации для сервися бесплатной отправки смс с сайта, но гдето сделал ошибку глаз замылился ни как не могу определить в чем ошибся. Друзья помогите может увидите где я прокосячился. заранее большое спасибо.
PS: код скрипта во вложеном файле
Вложения:
Тип файла: txt sms1.txt (22.6 Кб, 12 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2009, 08:25
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Всего то 22 килобайта O_o
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2009, 08:43
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть 1
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();
}
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2009, 08:44
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть 2
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str) 
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
// Check for 2-character letters
is2char=false;
if (i < len-1) 
{
for(j = 0; j < rus_table2.length; j++)
{
if(str.substr(i, 2) == eng_table2.substr(j*2,2)) 
{
new_str+= rus_table2.substr(j, 1);
i++;
is2char=true;
break;
}
}
}

if(!is2char) 
{
// Convert one-character letter
var c = str.substr(i, 1);
var pos = eng_table.indexOf(c);
if (pos < 0)
new_str+= c;
else 
new_str+= rus_table.substr(pos, 1);
}
}
return new_str;
}
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2009, 08:51
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть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();
}
Ответить с цитированием
  #6 (permalink)  
Старый 19.03.2009, 08:52
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть 4:
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str) 
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
// Check for 2-character letters
is2char=false;
if (i < len-1) 
{
for(j = 0; j < rus_table2.length; j++)
{
if(str.substr(i, 2) == eng_table2.substr(j*2,2)) 
{
new_str+= rus_table2.substr(j, 1);
i++;
is2char=true;
break;
}
}
}

if(!is2char) 
{
// Convert one-character letter
var c = str.substr(i, 1);
var pos = eng_table.indexOf(c);
if (pos < 0)
new_str+= c;
else 
new_str+= rus_table.substr(pos, 1);
}
}
return new_str;
}


// -------------------------- 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;
}
Ответить с цитированием
  #7 (permalink)  
Старый 19.03.2009, 08:54
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть 5:
// ------------------------------------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>
</head>
<body link="#000000" alink="#000000" vlink="#000000">

<!-- FORM -->
<center>
<table width="100%">
<td align="center" width="100%" bgcolor="#cccccc"><center>Бесплатная отправка SMS сообщений</center></td>
</table>
<table border=0 width=90%>
<tr>
<td width=50%>
<body onload="checkLen()">
<FORM ACTION="send.php" METHOD=POST name="text">
<TABLE BORDER=0>
<TR>
<TD>Номер телефона:</TD>
<TD><input type=text name="phone" size=18 maxlength=12></TD></TR>
<TR>
<TD>Выбор оператора:</TD>
<TD><select name="operator" size=1>
<option value="1" >MTS</option>
<option value="2" >Мегафон</option>
<option value="3" >operator 3</option>
</TD></TR>
<TR>
<td colspan="2">Отправить сообщение на русском?</td>
</tr>
<tr>
<td colspan="2"><input type=radio value=1 onClick=setLen(this.value) name="dcs">Да<br><input type=radio value=0 onClick=setLen(this.value) name="dcs" checked>Нет</td>
</TR>
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name="sms" cols=40 rows=5 onChange=checkLen() onKeyUp=checkLen()></textarea></TD>
<td valign="middle"><p> </p>&nbsp;</td>
</TR>
<tr>
<td align="center" colspan="2">
<input onclick="translateAlltoCyrillic();doChange();" type="button" value="в кириллицу" class="subbutton" title="Перевести текст в кириллицу">
<input onclick="translateAlltoLatin();doChange()" type="button" value="в латиницу" class="subbutton" title="Перевести текст в латиницу">
</td>
</tr>
<TR>
<TD colspan=2 align=center><input type=submit value="Отправить"> 
<!-- <input type="button" value="2RUS" class="subbutton" onclick="alert(translit2win(sms_text.value));">
<input type="button" value="2LAT" class="subbutton" onclick="alert(translit2lat(sms_text.value));"> -->
<input type=reset value="Очистить"></TD></TR>
</TABLE></FORM>
</td>
</tr></table></center>
<!-- End FORM -->
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 19.03.2009, 11:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

лять
не в том браузере нажал F5, и весь пост с исправлениями пропал
прикладываю исправленный вариант.
сами разбирайтесь дальше.объяснять второй раз ошибки лень
PS doChange() у вас такая функция отстутствует, но она используется.правда и безе нее все работает
PPS вы сами писали скрипт? скаладывается ощущение что нет.но это субъективное ощущение
PPPS используйте http://firebug.ru/ длля отладки
PPPPS ошибок больше одной

Последний раз редактировалось Gvozd, 30.04.2012 в 23:36.
Ответить с цитированием
  #9 (permalink)  
Старый 19.03.2009, 12:23
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

Благадарю.
PS: скрипт дорабатывался из скрипта написаного другим программером.
PPS: спасибо за ссылочку.
Ответить с цитированием
  #10 (permalink)  
Старый 19.03.2009, 12:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

пожалуйста
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
Конфликтуют скрипты openID и скрипт шаблона abix Элементы интерфейса 2 11.01.2009 21:47
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40
Скрипт "меняющееся фото" и его отражение в Мозилле osp Firefox/Mozilla 1 10.09.2008 14:11
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07