/* (c) Text top Bangla converter Script * Developer: sangit * http://fb.com/itz.sangit * */ function str_replace (search, replace, subject, count) { var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0, f = [].concat(search), r = [].concat(replace), s = subject, ra = Object.prototype.toString.call(r) === '[object Array]', sa = Object.prototype.toString.call(s) === '[object Array]'; s = [].concat(s); if (count) { this.window[count] = 0; } for (i = 0, sl = s.length; i < sl; i++) { if (s[i] === '') { continue; } for (j = 0, fl = f.length; j < fl; j++) { temp = s[i] + ''; repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0]; s[i] = (temp).split(f[j]).join(repl); if (count && s[i] !== temp) { this.window[count] += (temp.length - s[i].length) / f[j].length; } } } return sa ? s : s[0]; } function urlencode (str) { str = (str + '').toString(); return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28'). replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+'); } function htmlspecialchars (string, quote_style, charset, double_encode) { var optTemp = 0, i = 0, noquotes = false; if (typeof quote_style === 'undefined' || quote_style === null) { quote_style = 2; } string = string.toString(); if (double_encode !== false) { // Put this first to avoid double-encoding string = string.replace(/&/g, '&'); } string = string.replace(//g, '>'); var OPTS = { 'ENT_NOQUOTES': 0, 'ENT_HTML_QUOTE_SINGLE': 1, 'ENT_HTML_QUOTE_DOUBLE': 2, 'ENT_COMPAT': 2, 'ENT_QUOTES': 3, 'ENT_IGNORE': 4 }; if (quote_style === 0) { noquotes = true; } if (typeof quote_style !== 'number') { // Allow for a single string or an array of string flags quote_style = [].concat(quote_style); for (i = 0; i < quote_style.length; i++) { // Resolve string input to bitwise e.g. 'ENT_IGNORE' becomes 4 if (OPTS[quote_style[i]] === 0) { noquotes = true; } else if (OPTS[quote_style[i]]) { optTemp = optTemp | OPTS[quote_style[i]]; } } quote_style = optTemp; } if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) { string = string.replace(/'/g, '''); } if (!noquotes) { string = string.replace(/"/g, '"'); } return string; } function nl2br (str, is_xhtml) { var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '
' : '
'; // Adjust comment to avoid issue on phpjs.org display return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2'); } function getParam(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec(window.location.href); if(results === null) return ""; else return results[1]; } function post_action(where) { if (where=='twitter') window.location.href="https://twitter.com/intent/tweet?text="+urlencode(document.getElementById("output").value); else if (where=='google') window.location.href="http://www.google.com/m?q="+urlencode(document.getElementById("output").value); else if (where=='yahoo') window.location.href="http://search.yahoo.com/search?p="+urlencode(document.getElementById("output").value); } function initialize_page() { if(getCookie("correction")!="1"){ document.getElementById("auto_info").innerHTML=""; document.getElementById("auto_info").style.color="red"; document.getElementById("action").innerHTML=' '; } if(getParam("text").length>0){ document.getElementById("text").value=decodeURIComponent((getParam("text") + '').replace(/\+/g, '%20')); convert(); } } function convert(C) { if(C==undefined) C=""; var output=""; var LastMode=".bn"; var splitted=(document.getElementById("text").value+C).split(/\B(\.[bce])(\s?)/g); for(var i=0; i0 && LastMode==".en") output+=str2; else if(str2.length>0) output+=classic_bangla(str2); } document.getElementById("output").value=output; document.getElementById("preview").innerHTML="
কনভার্টকৃত বাংলা:
" + nl2br(htmlspecialchars(output)); document.getElementById("post_status").innerHTML="
Update Status:
Search:
"; } /* * variables holding conversion mapping * used in classic_bangla function */ var $bn5zukto=['ক্ষ্ম্য','ঙ্ক্ষ','ঙ্ঘ্য','ঙ্ঘ্র','ষ্ঠ্য']; var $bn4zukto=['ক্ষ্ণ','ক্ষ্ব','ক্ষ্ম','ক্ষ্য','গ্ধ্য','গ্ধ্র','ঙ্‌ক্ত','ঙ্ক্য','ঙ্খ','ঙ্গ্য','ঙ্ঘ','ণ্ঠ্য','ন্ত্র্য','ন্থ্র','ন্ধ্য','ন্ধ্র','র্ঘ্য','র্থ্য','র্ষ্য','র্ধ্ব','র্ঢ্য','ষ্ক্র','ষ্ট্য','ষ্ট্র','ষ্ঠ','ষ্প্র','স্থ্য']; var $bn3zukto=['ক্ট্র','ক্ত্র','ক্ষ','ক্ষ','খ্য','খ্র','গ্ধ','গ্ন্য','গ্র্য','ঘ্ন','ঘ্য','ঘ্র','ঙ্ক','ঙ্গ','ঙ্ম','চ্ছ্ব','চ্ছ্র','জ্জ্ব','জ্ঝ','ঞ্ঝ','ঢ্য','ঢ্র','ণ্ঠ','ণ্ড্য','ণ্ড্র','ণ্ঢ','ত্ত্ব','ত্ত্য','ত্থ','ত্ম্য','ত্র্য','থ্ব','থ্য','থ্র','দ্ঘ','দ্দ্ব','দ্ধ','দ্ভ্র','দ্র্য','ধ্ন','ধ্ব','ধ্ম','ধ্য','ধ্র','ন্ট্র','ন্ঠ','ন্ড্র','ন্ত্ব','ন্ত্য','ন্ত্র','ন্থ','ন্দ্য','ন্দ্ব','ন্দ্র','ন্ধ','প্র্য','ব্ধ','ম্প্র','ম্ব্র','ম্ভ্র','র্ক্য','র্গ্য','র্চ্য','র্জ্য','র্ণ্য','র্ত্য','র্ব্য','র্ম্য','র্শ্য','র্হ্য','র্খ','র্গ্র','র্ঘ','র্ঝ','র্ত্র','র্থ','র্দ্ব','র্দ্র','র্ধ','র্শ্ব','র্ষ','ল্ক্য','ষ্ক','ষ্ট','ষ্ণ','ষ্প','ষ্ফ','ষ্ব','ষ্ম','ষ্য','স্ক্র','স্খ','স্ট্য','স্ট্র','স্ত্ব','স্ত্য','স্ত্র','স্থ','স্প্র','স্প্‌ল']; var $bn2zukto=['র্শ','শ্চ','শ্ছ','শ্ন','শ্ব','শ্ম','শ্য','শ্র','শ্ল','ং','ঙ','ক্ক','ক্ট','ক্ত','ক্ব','ক্ম','ক্য','ক্র','ক্ল','ক্স','গ্‌ণ','গ্ন','গ্ব','গ্ম','গ্য','গ্র','গ্ল','চ্চ','চ্ছ','চ্ঞ','চ্ব','চ্য','জ্জ','জ্ঞ','জ্ঞ','জ্ব','জ্য','জ্র','ঞ্চ','ঞ্চ','ঞ্ছ','ঞ্ছ','ঞ্জ','ঞ্জ','ট্ট','ট্ব','ট্ম','ট্য','ট্র','ড্ড','ড্ব','ড্য','ড্র','ণ্ট','ণ্ড','ণ্ণ','ণ্ব','ণ্ম','ণ্য','ৎক','ত্ত','ত্ন','ত্ব','ত্ম','ত্য','ত্র','ৎল','ৎস','দ্গ','দ্দ','দ্ব','দ্ভ','দ্ম','দ্য','দ্র','ঙ্ক','ন্ট','ন্ড','ন্ত','ন্দ','ন্ন','ন্ব','ন্ম','ন্য','প্ট','প্ত','প্ন','প্প','প্য','প্র','প্ল','প্স','ফ্য','ফ্র','ফ্ল','ব্জ','ব্দ','ব্ব','ব্ব','ব্য','ব্র','ব্ল','ভ্ব','ভ্য','ভ্র','ম্ন','ম্প','ম্ফ','ম্ব','ম্ব','ম্ভ','ম্ম','ম্য','ম্র','ম্ল','য্য','র্ক','র্গ','র্চ','র্ছ','র্জ','র্ট','র্ড','র্ণ','র্ত','র্দ','র্ন','র্প','র্ফ','র্ব','র্ভ','র্ম','র্য','র‍্য','র্ল','র্স','র্হ','ল্ক','ল্গ','ল্ট','ল্ড','ল্প','ল্ফ','ল্ব','ল্ভ','ল্ম','ল্য','ল্ল','স্ক','স্ট','স্ত','স্ন','স্প','স্ফ','স্ব','স্ম','স্য','স্র','স্ল','হ্ণ','হ্ন','হ্ব','হ্ম','হ্য','হ্র','হ্ল','ড়্গ','ষ']; var $en5zukto=['kShmy','NgkSh','Ngghy','Ngghr','ShThy']; var $en4zukto=['kShN','kShw','kShm','kShy','gdhy','gdhr','Ngkt','Ngky','Ngkh','Nggy','Nggh','NThy','ntry','nthr','ndhy','ndhr','rghy','rthy','rShy','rdhw','rDhy','Shkr','ShTy','ShTr','ShTh','Shpr','sthy']; var $en3zukto=['kTr','ktr','kSh','kkh','khy','khr','gdh','gny','gry','ghn','ghy','ghr','Ngk','Ngg','Ngm','cCw','cCr','jjw','jjh','Yjh','Dhy','Dhr','NTh','NDy','NDr','NDh','ttw','tty','tth','tmy','try','thw','thy','thr','dgh','ddw','ddh','dvr','dry','dhn','dhw','dhm','dhy','dhr','nTr','nTh','nDr','ntw','nty','ntr','nth','ndy','ndw','ndr','ndh','pry','bdh','mpr','mwr','mvr','rky','rgy','rcy','rjy','rNy','rty','rwy','rmy','rSy','rhy','rkh','rgr','rgh','rjh','rtr','rth','rdw','rdr','rdh','rSw','rSh','lky','Shk','ShT','ShN','Shp','Shf','Shw','Shm','Shy','skr','skh','sTy','sTr','stw','sty','str','sth','spr','spl']; var $en2zukto=['rS','Sc','SC','Sn','Sw','Sm','Sy','Sr','Sl','ng','Ng','kk','kT','kt','kw','km','ky','kr','kl','ks','gN','gn','gw','gm','gy','gr','gl','cc','cC','cY','cw','cy','jj','jY','gg','jw','jy','jr','Yc','nc','YC','nC','Yj','nj','TT','Tw','Tm','Ty','Tr','DD','Dw','Dy','Dr','NT','ND','NN','Nw','Nm','Ny','tk','tt','tn','tw','tm','ty','tr','tl','ts','dg','dd','dw','dv','dm','dy','dr','nk','nT','nD','nt','nd','nn','nw','nm','ny','pT','pt','pn','pp','py','pr','pl','ps','fy','fr','fl','bj','bd','bw','bb','by','br','bl','vw','vy','vr','mn','mp','mf','mw','mb','mv','mm','my','mr','ml','zy','rk','rg','rc','rC','rj','rT','rD','rN','rt','rd','rn','rp','rf','rb','rv','rm','rz','ry','rl','rs','rh','lk','lg','lT','lD','lp','lf','lw','lv','lm','ly','ll','sk','sT','st','sn','sp','sf','sw','sm','sy','sr','sl','hN','hn','hw','hm','hy','hr','hl','Rg','Sh']; var $cnamefrom=['chh','Chh','ch','Ch','bh','ph','x','q','sh','rri']; var $cnameto=['C','C','C','C','v','f','ks','k','S','X']; var $bn2char=['ঋ','ঐ','ঔ','খ','ঘ','ঙ','চ','ছ','ঝ','ঠ','ঢ','থ','ধ','ঢ়','ৎ','ঁ','্']; var $bn1char=['অ','আ','ই','ঈ','উ','ঊ','এ','ও','ক','গ','চ','ছ','জ','ঞ','ট','ড','ণ','ত','দ','ন','প','ফ','ব','ভ','ম','য','র','ল','শ','স','হ','ড়','য়','ঃ','্‌','উ','']; var $en2char=['X','oi','ou','kh','gh','Ng','ch','Ch','jh','Th','Dh','th','dh','Rh','.t','.n','.`']; var $en1char=['o','a','i','I','u','U','e','O','k','g','c','C','j','Y','T','D','N','t','d','n','p','f','b','v','m','z','r','l','S','s','h','R','y',':','`_','w','_']; var $bnkar=["া","ি","ী","ু","ূ","ৃ","ে","ৈ","ো","ৌ",""]; var $enkar=["`a","`i","`I","`u","`U","`X","`e","`oi","`O","`ou","`o"]; var $bn_ychar=['aa','ae','ea','ee','eo','ia','ie','io','iO','Ia','Ie','Io','IO','oa','oe','Oa','Oe','Oi','ua','ue','Ua','Ue','ii','oo','uu']; var $code_ychar=['a','aye','eya','I','eyo','iya','iye','iyo','iyO','Iya','Iye','Iyo','IyO','oya','oye','Oya','Oye','Oy','uya','uye','Uya','Uye','I','O','U']; var $insensitive=['a','e','h','k','g','j','p','f','b','v','m','l','x','w','z']; var $caps_insensitive=['A','E','H','K','G','J','P','F','B','V','M','L','X','W','Z']; var en_num=[0,1,2,3,4,5,6,7,8,9,'$']; var bn_num=["০","১","২","৩","৪","৫","৬","৭","৮","৯","৳"]; function classic_bangla($text) { $text = $text.replace(/(\b)y/g, "$1iy"); $text=$text.replace(/(\b|\.|a|e|i|o|u)wa/gi, "$1Oya"); $text=$text.replace(/([aeiou])w([^aeiou])/gi, "$1u$2"); $text=$text.replace(/\baya/g,'অ্যা'); $text=$text.replace(/q/gi,'k'); $text=$text.replace(/([^aeiou])y([^aeiou]|$)/gi, "$1i$2"); $text=$text.replace(/ng([aeiou])/g, "Ngg$1"); $text=$text.replace(/\.t/g,'ৎ'); $text=$text.replace(/\.n/g,'ঁ'); $text=$text.replace(/([a-z])\.([^\.]|\b|$)/gi,"$1।$2"); $text=str_replace($bn_ychar,$code_ychar,$text); $text=str_replace($caps_insensitive,$insensitive,$text); $text=str_replace($cnamefrom,$cnameto,$text); $text=$text.replace(/([bcdfghjklmnpqrstvwyz])([aeiouX_])/gi,"$1`$2"); //To make kaar $text=str_replace($en5zukto,$bn5zukto,$text); $text=str_replace($en4zukto,$bn4zukto,$text); $text=str_replace($en3zukto,$bn3zukto,$text); $text=str_replace($en2zukto,$bn2zukto,$text); $text=str_replace($enkar,$bnkar,$text); $text=str_replace($en2char,$bn2char,$text); $text=str_replace($en1char,$bn1char,$text); $text=str_replace(en_num,bn_num,$text); return $text; } function reset_all(f) { document.getElementById("text").value=""; document.getElementById("output").value=""; document.getElementById("preview").innerHTML=""; document.getElementById("post_status").innerHTML=""; } function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(";"); for (i=0;i