User:Atjesse/monobook.js
From SMC Wiki
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/** Extra toolbar options ****************************************************** * * Description: UNDOCUMENTED * Maintainers: [[User:MarkS]]?, [[User:Voice of All]], [[User:R. Koot]] */ //This is a modified copy of a script by User:MarkS for extra features added by User:Voice of All. // This is based on the original code on Wikipedia:Tools/Editing tools // To disable this script, add <code>mwCustomEditButtons = [];<code> to [[Special:Mypage/monobook.js]] if (mwCustomEditButtons) { mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png", "speedTip": "Redirect", "tagOpen": "#REDIRECT [[", "tagClose": "]]", "sampleText": "Insert text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c9/Button_strike.png", "speedTip": "Strike", "tagOpen": "<s>", "tagClose": "</s>", "sampleText": "Strike-through text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/13/Button_enter.png", "speedTip": "Line break", "tagOpen": "<br />", "tagClose": "", "sampleText": ""}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/8/80/Button_upper_letter.png", "speedTip": "Superscript", "tagOpen": "<sup>", "tagClose": "</sup>", "sampleText": "Superscript text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/7/70/Button_lower_letter.png", "speedTip": "Subscript", "tagOpen": "<sub>", "tagClose": "</sub>", "sampleText": "Subscript text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/5/58/Button_small.png", "speedTip": "Small", "tagOpen": "<small>", "tagClose": "</small>", "sampleText": "Small Text"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/3/34/Button_hide_comment.png", "speedTip": "Insert hidden Comment", "tagOpen": "<!-- ", "tagClose": " -->", "sampleText": "Comment"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/1/12/Button_gallery.png", "speedTip": "Insert a picture gallery", "tagOpen": "\n<gallery>\n", "tagClose": "\n</gallery>", "sampleText": "Image:Example.jpg|Caption1\nImage:Example.jpg|Caption2"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/f/fd/Button_blockquote.png", "speedTip": "Insert block of quoted text", "tagOpen": "<blockquote>\n", "tagClose": "\n</blockquote>", "sampleText": "Block quote"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/en/6/60/Button_insert_table.png", "speedTip": "Insert a table", "tagOpen": '{| class="wikitable"\n|-\n', "tagClose": "\n|}", "sampleText": "! header 1\n! header 2\n! header 3\n|-\n| row 1, cell 1\n| row 1, cell 2\n| row 1, cell 3\n|-\n| row 2, cell 1\n| row 2, cell 2\n| row 2, cell 3"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/ml/2/20/Button_subst.png", "speedTip": "സബ്സ്റ്റിറ്റിയൂഷന് (subst) ചേര്ക്കുക", "tagOpen": "{{ബദല്:", "tagClose": "}}", "sampleText": "സ്വാഗതം"}; mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/79/Button_reflink.png", "speedTip": "റഫറന്സുകള് നല്കാന്", "tagOpen": "<ref>\n", "tagClose": "\n</ref>", "sampleText": "References"}; } //========= /*<pre><nowiki> ടൂള് ബാര് ബട്ടണുകള് അടുക്കിപ്പെറുക്കി വയ്ക്കാനുള്ള സ്ക്രിപ്റ്റ് Maintainer : [[User:Tux the penguin]] */ function lija_rearrange() { var def,ext; if(mwEditButtons) def=mwEditButtons; if(mwCustomEditButtons) ext=mwCustomEditButtons; if(def!=null && ext!=null) { var defc=def.slice(); var extc=ext.slice(); try { def[2]=extc[1]; def[3]=defc[4]; def[4]=extc[8]; def[5]=extc[5]; def[6]=extc[9]; def[7]=extc[2]; def[8]=defc[10]; def[9]=extc[6]; def[10]=defc[8]; def[def.length]={ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/8/88/Btn_toolbar_enum.png", "speedTip": "എണ്ണമിട്ട പട്ടിക", "tagOpen": "\n#", "tagClose": "\n#രണ്ടാമത്തെ ഇനം\n#മൂന്നാമത്തെ ഇനം", "sampleText": "ഒന്നാമത്തെ ഇനം"}; def[def.length]={ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/1/11/Btn_toolbar_liste.png", "speedTip": "എണ്ണമിടാത്ത പട്ടിക", "tagOpen": "\n*", "tagClose": "\n*രണ്ടാമത്തെ ഇനം\n*മൂന്നാമത്തെ ഇനം", "sampleText": "ഒന്നാമത്തെ ഇനം"}; def[def.length]={ "imageFile": "http://upload.wikimedia.org/wikipedia/commons/b/b4/Button_category03.png", "speedTip": "സൂചിക ചേര്ക്കുക", "tagOpen": "[[Category:", "tagClose": "]]", "sampleText": "ഉള്ളടക്കം"}; ext[0]=defc[2]; ext[1]=defc[3]; ext[2]=defc[5]; ext[3]=defc[6]; ext[4]=extc[7]; ext[5]=defc[7]; ext[6]=extc[3]; ext[7]=extc[4]; ext[8]=extc[0]; ext[9]=extc[10]; ext[10]=extc[11]; ext[11]=defc[9]; } catch(ex) { //എറര് ഉണ്ടായാല്..... സഹിക്കുക. അല്ലാണ്ടെന്തു ചെയ്യാന് ? } } } addOnloadHook(lija_rearrange); //**************************************************************************************************************** //ടൂള് ബാര് സ്ക്രിപ്റ്റ് ഇവിടെ അവസാനിയ്ക്കുന്നു. //**************************************************************************************************************** /*</nowiki></pre>*/ /* <nowiki><pre> This script is a modified version of Alex benenson's cyrillic translitarator and this version was created by [[User:Peringz|Peringz]] */ var consonants = {"ക":"ക","ഖ":"ഖ","ഗ":"ഗ","ഘ":"ഘ","ങ":"ങ","ച":"ച","ഛ":"ഛ","ജ":"ജ","ഝ":"ഝ","ഞ":"ഞ","ട":"ട","ഠ":"ഠ","ഡ":"ഡ","ഢ":"ഢ","ണ":"ണ","ത":"ത","ഥ":"ഥ","ദ":"ദ","ധ":"ധ","ന":"ന","പ":"പ","ഫ":"ഫ","ബ":"ബ","ഭ":"ഭ","മ":"മ","യ":"യ","ര":"ര","ല":"ല","വ":"വ","ശ":"ശ","ഷ":"ഷ","സ":"സ","ഹ":"ഹ","ള":"ള","ഴ":"ഴ","റ":"റ","റ്റ":"റ്റ"}; var chillaksharam = {"ണ്":"ണ","ന്":"ന","ം":"മ","ര്":"ര","ല്":"ല","ള്":"ള","്\\u200D":""}; var vowels = '"്a":"","്e":"െ","്i":"ി","്o":"ൊ","്u":"ു","്A":"ാ","്E":"േ","്I":"ീ","്O":"ോ","്U":"ൂ","്Y":"ൈ","െe":"ീ","ൊo":"ൂ","ിi":"ീ","ിe":"ീ","ുu":"ൂ","ുo":"ൂ","്r":"്ര്",'; var roman = '"k":"ക്","ക്h":"ഖ്","g":"ഗ്","ഗ്h":"ഘ്","ന്g":"ങ്","c":"ക്\\u200D","ക്\\u200Dh":"ച്","ച്h":"ഛ്","j":"ജ്","ജ്h":"ഝ്","ന്j":"ഞ്","ന്h":"ഞ്","T":"ട്","ട്h":"ഠ്","D":"ഡ്","ഡ്h":"ഢ്","റ്റ്h":"ത്","ത്h":"ഥ്","d":"ദ്","ദ്h":"ധ്","p":"പ്","പ്h":"ഫ്","f":"ഫ്","b":"ബ്","ബ്h":"ഭ്","y":"യ്","v":"വ്","w":"വ്","z":"ശ്","S":"ശ്","സ്h":"ഷ്","s":"സ്","h":"ഹ്","ശ്h":"ഴ്","x":"ക്ഷ്","R":"റ്","t":"റ്റ്",'; var chill = '"N":"ണ്","n":"ന്","m":"ം","r":"ര്","l":"ല്","L":"ള്",'; var swaram = '"a":"അ","അa":"ആ","A":"ആ","e":"എ","E":"ഏ","എe":"ഈ","i":"ഇ","ഇi":"ഈ","ഇe":"ഈ","അi":"ഐ","I":"ഐ","o":"ഒ","ഒo":"ഊ","O":"ഓ","അu":"ഔ","ഒu":"ഔ","u":"ഉ","ഉu":"ഊ","U":"ഊ","H":"ഃ","റ്h":"ഋ","ര്^":"ഋ","ഋ^":"ൠ","ല്^":"ഌ","ഌ^":"ൡ",'; //var numerals = '"1":"൧","2":"൨","3":"൩","4":"൪","5":"൫","6":"൬","7":"൭","8":"൮","9":"൯","0":"൦",'; var conjuncts = '"ന്t":"ന്റ്","ന്റ്h":"ന്ത്","ന്k":"ങ്ക്","ന്n":"ന്ന്","ണ്N":"ണ്ണ്","ള്L":"ള്ള്","ല്l":"ല്ല്","ംm":"മ്മ്","ന്m":"ന്മ്","ന്ന്g":"ങ്ങ്","ന്d":"ന്ദ്","ണ്m":"ണ്മ്","ല്p":"ല്പ്","ംp":"മ്പ്","റ്റ്t":"ട്ട്","ന്T":"ണ്ട്","ണ്T":"ണ്ട്","്ര്^":"ൃ","ന്c":"ന്\\u200D","ന്\\u200Dh":"ഞ്ച്","ണ്D":"ണ്ഡ്",'; var others = '"്L":"്ല്","~":"്\\u200C","്~":"\\u200C", "\\u200C~":"\\u200C", "\\u200D\\u200C":"\\u200D", "\\u200C_":"__", "___":"___","~":"്","ക്\\u200Dc":"ക്ക്\\u200D","ക്ക്\\u200Dh":"ച്ച്","q":"ക്യൂ",'; var caps = '"B":"ബ്ബ്","C":"ക്ക്\\u200D","F":"ഫ്","G":"ഗ്ഗ്","J":"ജ്ജ്","K":"ക്ക്","M":"മ്മ്","P":"പ്പ്","Q":"ക്യൂ","V":"വ്വ്","W":"വ്വ്","X":"ക്ഷ്","Y":"യ്യ്","Z":"ശ്ശ്",'; var ZWNJ = '"_":"\\u200C"'; // for compatibility with bookmarklets function cyr_translit(src) { return to_cyrillic(src); } var conversionHash = undefined; var maxcyrlength = 0; function getConversionHash() { if (conversionHash == undefined) { // TODO var opr = "{" + vowels + roman + chill + swaram + conjuncts + caps + others; for (var consonant in consonants) { opr += '"' + consonant + 'a":"' + consonant + 'ാ",'; opr += '"' + consonant + 'e":"' + consonant + 'േ",'; opr += '"' + consonant + 'i":"' + consonant + 'ൈ",'; opr += '"' + consonant + 'o":"' + consonant + 'ോ",'; opr += '"' + consonant + 'u":"' + consonant + 'ൗ",'; } for (var chk in chillaksharam) { opr += '"' + chk + 'a":"' + chillaksharam[chk] + '",'; opr += '"' + chk + 'e":"' + chillaksharam[chk] + 'െ",'; opr += '"' + chk + 'i":"' + chillaksharam[chk] + 'ി",'; opr += '"' + chk + 'o":"' + chillaksharam[chk] + 'ൊ",'; opr += '"' + chk + 'u":"' + chillaksharam[chk] + 'ു",'; opr += '"' + chk + 'A":"' + chillaksharam[chk] + 'ാ",'; opr += '"' + chk + 'E":"' + chillaksharam[chk] + 'േ",'; opr += '"' + chk + 'I":"' + chillaksharam[chk] + 'ീ",'; opr += '"' + chk + 'O":"' + chillaksharam[chk] + 'ോ",'; opr += '"' + chk + 'U":"' + chillaksharam[chk] + 'ൂ",'; opr += '"' + chk + 'Y":"' + chillaksharam[chk] + 'ൈ",'; opr += '"' + chk + 'r":"' + chillaksharam[chk] + '്ര്",'; opr += '"' + chk + 'y":"' + chillaksharam[chk] + '്യ്",'; opr += '"' + chk + 'v":"' + chillaksharam[chk] + '്വ്",'; opr += '"' + chk + 'w":"' + chillaksharam[chk] + '്വ്",'; opr += '"' + chk + '~":"' + chillaksharam[chk] + '്\\u200C",'; } opr += ZWNJ + "}"; // var tb = document.getElementById('wpTextbox1'); // tb.value = opr; conversionHash = eval("("+opr+")"); maxcyrlength=6; } return conversionHash; } function to_cyrillic(src, output, chunks) { if (src == undefined || src == "" || src == null) return src; if (output == undefined) output = new String(); var hash = getConversionHash(); var location = 0; while (location < src.length) { var len = Math.min(maxcyrlength, src.length - location); var arr = undefined; var sub; while (len > 0) { sub = src.substr(location, len); arr = hash[sub]; if (arr != undefined) break; else len--; } // need this for translit on the fly if (chunks != undefined) chunks[chunks.length] = sub; if (arr == undefined) { output += sub; location ++; } else { // case analysis var newChar = arr; if (sub.toLowerCase() == sub.toUpperCase() && arr.length > 1 && arr[1] && (newChar.toUpperCase() != newChar.toLowerCase())) { // need translit hash to determine if previous character (and possibly the one before it) // were converted and are in upper case // set prevDud to true previous is not a translated character or simply a blank // set prevCap to true if previous was translated and was upper case var prevCh = output.length == 0 ? null : output.substr(output.length - 1, 1); var prevDud = !prevCh || !getTranslitString(prevCh); var prevCap = (!prevDud && prevCh == prevCh.toUpperCase()); // sub is caseless but result isn't. case will depend on lookbehind and lookahead if (prevDud || !prevCap) { output += newChar.toLowerCase(); prevCap = false; } else { var next = " "; if (location + len < src.length) next = src.substr(location + len, 1); if (next != next.toUpperCase() && next == next.toLowerCase() ) { //next is lowercase (and not caseless) output += newChar.toLowerCase(); } else if (next == next.toUpperCase() && next != next.toLowerCase() ) { // next is uppercase (and not caseless) output += newChar.toUpperCase(); } else { // next is caseless. output case determined by the case of output[length - 2] var pprevCh = output.length == 1 ? null : output.substr(output.length - 2, 1); var pprevDud = !pprevCh || !getTranslitString(pprevCh); if (!pprevDud && (pprevCh == pprevCh.toUpperCase())) { //pre-prev is in upper case. output is also uppercase output += newChar.toUpperCase(); } else { output += newChar.toLowerCase(); } } } } else if ((sub.toLowerCase() == sub.toUpperCase()) && (arr.length < 2 || !arr[1])) { // literal treatment of newChar output += newChar; } else if (sub != sub.toLowerCase()) { // sub not all-lowercase output += newChar.toUpperCase(); } else { // sub is lowercase output += newChar.toLowerCase(); } location += len; } } return output; } function convertIt(src,converter){ var resultbuffer=""; for(var i=0;i<src.length;i++){ resultbuffer=converter(resultbuffer+src[i]); } return converter(resultbuffer); } var translitHash = undefined; function initTranslit() { if (translitHash == undefined) { translitHash = new Array(); for (var i = 0; i < conversionHash.length; i++) { var ch = conversionHash[i][1]; // if the translit string is not caseless, convert cyr string to upper case // otherwise maintain its case if (conversionHash[i][0].toUpperCase() != conversionHash[i][0].toLowerCase()) ch = ch.toUpperCase(); if (translitHash[ch] == undefined) translitHash[ch] = conversionHash[i][0]; } } } //-- translit on-the-fly -- function replaceValue(node, value, stepback) { if (stepback == undefined) stepback = 0; if (isExplorer()) { var range = document.selection.createRange(); range.moveStart("character", -stepback); range.text = value; range.collapse(false); range.select(); } else { var scrollTop = node.scrollTop; var cursorLoc = node.selectionStart; node.value = node.value.substring(0, node.selectionStart - stepback) + value + node.value.substring(node.selectionEnd, node.value.length); node.scrollTop = scrollTop; node.selectionStart = cursorLoc + value.length - stepback; node.selectionEnd = cursorLoc + value.length - stepback; } } // compare positions function positionIsEqual(other) { if (isExplorer()) return this.position.isEqual(other.position); else return this.position == other.position; } function Position(node) { if (node.selectionStart != undefined) this.position = node.selectionStart; else if (document.selection && document.selection.createRange()) this.position = document.selection.createRange(); this.isEqual = positionIsEqual; } function resetState() { this.position = new Position(this.node); this.transBuffer = ""; this.cyrBuffer = ""; } function StateObject(node) { this.node = node; this.reset = resetState; this.cyrBuffer = ""; this.transBuffer = ""; this.position = new Position(node); } var stateHash = new Array(); function isExplorer() { return (document.selection != undefined && document.selection.createRange().isEqual != undefined); } function pressedKey(event) { if (isExplorer()) return event.keyCode; else return event.which; } function transliterateKey(event) { /* if ((event.keyCode == 255 && event.charCode > 0) || event.keyCode == 8) { return; } */ if (event == undefined) event = window.event; var node = null; if (event.target) { node = event.target; } else if (event.srcElement) { node = event.srcElement; } // initialize state var state = stateHash[node]; if (state == null) { state = new StateObject(node); stateHash[node] = state; } if ( (pressedKey(event) > 20) && !event.ctrlKey && !event.altKey && !event.metaKey) { var c = String.fromCharCode(pressedKey(event)); // process input var result = process_translit(state, c); // finish up if (c != result.out || result.replace != 0) { if (isExplorer()) event.returnValue = false; else event.preventDefault(); replaceValue(node, result.out, result.replace); state.position = new Position(node); } } } function TranslitResult() { this.out = ""; this.replace = 0; } function process_translit(state, c) { // reset state if position changed if (!state.position.isEqual(new Position(state.node))) state.reset(); var result = new TranslitResult(); // initial backbuffer. Add to it as characters are converted var backbuffer = getBackBuffer(state.node, state.cyrBuffer.length, 2); var chunks = new Array(); state.transBuffer = state.transBuffer+ c var str = to_cyrillic(state.cyrBuffer+c, backbuffer, chunks); // remove backbuffer from output str = str.substr(backbuffer.length); result.out = str; /* str is now left alone - it has the output matching contents of chunks and will be used to reinitialize backbuffers, along with chunks and state.transBuffer */ // get the difference between state.cyrBuffer and output for (var i = 0; i < Math.min(state.cyrBuffer.length, result.out.length); i++) { if (state.cyrBuffer.substr(i, 1) != result.out.substr(i, 1)) { result.replace = state.cyrBuffer.length - i; result.out = result.out.substr(i); break; } } if (result.replace == 0) { if(result.out.length<state.cyrBuffer.length) result.replace=state.cyrBuffer.length- result.out.length; result.out = result.out.substr(Math.min(state.cyrBuffer.length, result.out.length)); // result.out+="\u0008" } // update state: backbuffer, bufferArray if (chunks.length > 0 && chunks[chunks.length - 1] == result.out.substr(result.out.length - 1)) { // no convertion took place, reset state state.reset(); } else { while (state.transBuffer.length > maxcyrlength) { state.transBuffer = state.transBuffer.substr(chunks[0].length); chunks.shift(); str = str.substr(1); } state.cyrBuffer = str; } return result; } function getBackBuffer(node, offset, count) { if (isExplorer()) { //.tagName.toUpperCase() == "EDITOR") { var range = document.selection.createRange(); range.moveStart("character", -offset); var result = range.text.substr(-count); if (!result) result = ""; return result; } else { return node.value.substring(0, node.selectionStart - offset).substr(-count); } } // need this for bookmarklets function getSelectedNode() { if (document.activeElement) return document.activeElement; else if (window.getSelection && window.getSelection() && window.getSelection().rangeCount > 0) { var range = window.getSelection().getRangeAt(0); if (range.startContainer && range.startContainer.childNodes && range.startContainer.childNodes.length > range.startOffset) return range.startContainer.childNodes[range.startOffset] } return null; } function toggleCyrMode() { var node = getSelectedNode(); if (node) { if (stateHash[node]) { if (removeKeyEventListener(node)) delete stateHash[node]; } else { if (addKeyEventListener(node)) stateHash[node] = new StateObject(node); } } } function addKeyEventListener(node) { if (node.addEventListener) node.addEventListener("keypress", transliterateKey, false); else if (node.attachEvent) node.attachEvent("onkeypress", transliterateKey); else return false; return true; } function removeKeyEventListener(node) { if (node.removeEventListener) node.removeEventListener("keypress", transliterateKey, false); else if (node.detachEvent) node.detachEvent("onkeypress", transliterateKey); else return false; return true; } function getSelectedText() { if (isExplorer()) { return document.selection.createRange().text; } else { var node = getSelectedNode(); if (node && node.value && node.selectionStart != undefined && node.selectionEnd != undefined) return node.value.substring(node.selectionStart, node.selectionEnd); } return ""; } /* calling functions */ function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } function addTranslit(editForm,textBox) { checkrt(editForm); // check for translit support if (textBox.addEventListener) textBox.addEventListener("keypress", processKeys, false); else if (textBox.attachEvent) textBox.attachEvent("onkeypress", processKeys); } function addTextEvent() { /////// if(lija_getCookie('mlWikiTranslit')!=null && lija_getCookie('mlWikiTranslit')!="") realTime=(lija_getCookie('mlWikiTranslit')=="true")?true:false; ////// var editForm =document.getElementById('editform'); if(editForm != null) { var textBox=document.getElementById('wpTextbox1'); var textSummary = document.getElementById('wpSummary'); addTranslit(editForm,textBox); addCheckbox(editForm,textBox ); if(textSummary) { addTranslit(editForm,textSummary); } } // add transliteration feature to search form also var searchForm = document.getElementById('searchform'); if( searchForm != null ) { try { var searchBox = document.getElementById('searchInput'); // add IME checkbox control to searchForm if (searchBox != null || searchForm != null) { var element = document.createElement("input"); element.setAttribute("type","checkbox"); element.setAttribute("id","sbrealtime"); if (element.addEventListener) element.addEventListener("click", rtClick, false); else if (element.attachEvent) element.attachEvent("onclick", rtClick); // var labelcheckBox = document.createTextNode('മലയാളത്തിലെഴുതുക'); var chkSpan = document.createElement("span"); chkSpan.setAttribute("id","spnRealtime"); var searchBody = document.getElementById('searchBody'); searchBody.appendChild(element); searchBody.appendChild(chkSpan); // searchForm.insertBefore(element,searchBox); document.getElementById("sbrealtime").checked = realTime; document.getElementById('spnRealtime').innerHTML = '<a href="http://ml.wikipedia.org/wiki/സഹായം:ടൈപ്പിംഗ്" title="Switches keyboard between Malayalam and English">മലയാളത്തിലെഴുതുക</a>'; // searchForm.insertBefore(chkSpan,searchBox); // var p = document.createElement("p"); // p.setAttribute("style","width:100%;height:1px;"); // searchForm.insertBefore(p,searchBox); } } catch(ex) { //എററിനെ ഓടിക്കുക. } if(searchBox) { addTranslit(searchForm,searchBox); } } //മലയാളം ടൈപ്പിങ് താളുകളിൽ സാധ്യമാക്കാനുള്ള സ്ക്രിപ്റ്റുകൾ | scripts to avail Malayalam transliteration } function addCheckbox(editform,textBox) { if(editform==null||textBox==null) return; try { var element = document.createElement("input"); element.setAttribute("type","checkbox"); element.setAttribute("id","realtime"); if (element.addEventListener) element.addEventListener("click", rtClick, false); else if (element.attachEvent) element.attachEvent("onclick", rtClick); var labelcheckBox = document.createTextNode(' മലയാളം എഴുതുവാന് ഈ ഉപാധി സ്വീകരിക്കുക - Use Ctrl + M to Toggle.'); editform.insertBefore(element,textBox); document.getElementById("realtime").checked = realTime; editform.insertBefore(labelcheckBox,textBox); var p = document.createElement("p"); p.setAttribute("style","width:100%;height:1px;"); editform.insertBefore(p,textBox); } catch(ex) { //എററിനെ ഓടിക്കുക. } } var imeStatus = false; function processKeys(event) { if (rtsupported) { e = event || window.event; var myKeyCode = 0; var myShiftKey = false; if( document.all ) { //IE myKeycode = e.keyCode; myShiftKey = e.shiftKey; } else if ( document.getElementById || document.layers ) { myKeyCode = e.which; myShiftKey = (myKeyCode == 16)?true:false; } if ((e.keyCode == 13 && e.ctrlKey) || (e.which == 109 && e.ctrlKey)) { realTime = !realTime; lija_setCookie('mlWikiTranslit',realTime,1);//save in cookie var chk = document.getElementById('realtime'); var chkSb = document.getElementById('sbrealtime'); if (chk) { chk.checked = realTime; } if (chkSb) { chkSb.checked = realTime; } return false; } else if ((e.keyCode >= 3328 && e.keyCode <= 3455) || (e.which >= 3328 && e.which <= 3455)) { var chk = document.getElementById('realtime'); var spanSb = document.getElementById('spnRealtime'); var chkSb = document.getElementById('sbrealtime'); if (imeStatus == false || realTime) { realTime = false; if (chk) { chk.checked = realTime; chkSb.checked = realTime; spanSb.innerText = chkSb.checked } imeStatus = true; //alert('A Malayalam input tool was detected. Disabling in-built transliteration. To turn it On again use Ctrl+M'); window.status='A Malayalam input tool was detected. Disabling in-built transliteration. To turn it On again use Ctrl+M';//FF failure // return false; } } else if (realTime) { imeStatus = false; transliterateKey(event); // call transliteration function } } } var realTime=false; function rtClick(event) { realTime = !realTime; lija_setCookie('mlWikiTranslit',realTime,1);//save in cookie } var rtsupported = false; var error; function checkrt(editform) { try { /* var nav = navigator.userAgent.toUpperCase(); rtsupported = (nav.indexOf("GECKO") >= 0 || nav.indexOf("OPERA") >= 0 || nav.indexOf("SAFARI") >= 0); */ rtsupported = (document.selection != undefined) if (!rtsupported) { var element = document.createElement("TEXTAREA"); editform.appendChild(element); if (element.selectionStart != undefined) rtsupported = true; editform.removeChild(element); } } catch (error) {} } //************************************ // ട്രാന്സ്ലിറ്ററേഷന് സ്ക്രിപ്റ്റില് കൂക്കി സപ്പോര്ട്ട് ചേര്ക്കാനുള്ള ശ്രമം function lija_getCookie(cookieName) { if (document.cookie.length>0) { cookieStart=document.cookie.indexOf(cookieName + "="); if (cookieStart!=-1) { cookieStart=cookieStart + cookieName.length+1; cookieEnd=document.cookie.indexOf(";",cookieStart); if (cookieEnd==-1) cookieEnd=document.cookie.length; return unescape(document.cookie.substring(cookieStart,cookieEnd)); } } return ""; } function lija_setCookie(cookieName,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=cookieName+ "=" +escape(value)+"; path=/"+ ((expiredays==null) ? "" : "; expires="+exdate.toGMTString()); } //************************************ // add this line to your monobook.js to disable in-built transliteration - thanks to Sadik Khalid for this quick tip // var userIMEEnabled = false; // paste this line to user monobook.js and remove // from the begining of this line // check for user preference and load in-built transliteration tool if(typeof(window.userIMEEnabled) == 'undefined') { addLoadEvent(addTextEvent); } /* </pre></nowiki> */ /* ==addLoadEvent== <pre> */ function addLoadEvent(func) { addOnloadHook( func ); } /* </pre> */