Скрипт транслитерации
Вложений: 1
Написал скрипт транслитерации для сервися бесплатной отправки смс с сайта, но гдето сделал ошибку глаз замылился ни как не могу определить в чем ошибся. Друзья помогите может увидите где я прокосячился. заранее большое спасибо.
PS: код скрипта во вложеном файле |
Всего то 22 килобайта O_o
|
код часть 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(); } |
код часть 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; } |
код часть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(); } |
код часть 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; } |
код часть 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> </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> |
лять
не в том браузере нажал F5, и весь пост с исправлениями пропал прикладываю исправленный вариант. сами разбирайтесь дальше.объяснять второй раз ошибки лень PS doChange() у вас такая функция отстутствует, но она используется.правда и безе нее все работает PPS вы сами писали скрипт? скаладывается ощущение что нет.но это субъективное ощущение PPPS используйте http://firebug.ru/ длля отладки PPPPS ошибок больше одной |
Благадарю.
PS: скрипт дорабатывался из скрипта написаного другим программером. PPS: спасибо за ссылочку. |
пожалуйста
|
Часовой пояс GMT +3, время: 10:24. |