भारत की संस्कृति के लिए... भाषा की उन्नति के लिए... साहित्य के प्रसार के लिए
"मीडियाविकि:Common.js" के अवतरणों में अंतर
Kavita Kosh से
Lalit Kumar (चर्चा | योगदान) |
Lalit Kumar (चर्चा | योगदान) |
||
पंक्ति 205: | पंक्ति 205: | ||
////////////////////////////////////////////////////////////////////// | ////////////////////////////////////////////////////////////////////// | ||
+ | |||
+ | //Cite Popups | ||
+ | |||
+ | function findPosition(indx) { | ||
+ | /* This function is based on code obtained from: | ||
+ | http://www.softcomplex.com/docs/ | ||
+ | get_window_size_and_scrollbar_position.html */ | ||
+ | |||
+ | var dir = { | ||
+ | 'clientWidth' : 'innerWidth', | ||
+ | 'clientHeight' : 'innerHeight', | ||
+ | 'scrollLeft' : 'pageXOffset', | ||
+ | 'scrollTop' : 'pageYOffset' | ||
+ | }; | ||
+ | |||
+ | var qarr = [ | ||
+ | window[dir[indx]] ? window[dir[indx]] : 0, | ||
+ | document.documentElement ? document.documentElement[indx] : 0, | ||
+ | document.body ? document.body[indx] : 0 | ||
+ | ]; | ||
+ | |||
+ | qarr.sort(function(a, b) {return a - b}); | ||
+ | while(qarr[0] == 0) { qarr.shift() } | ||
+ | return qarr.length ? qarr[0] : 0; | ||
+ | } | ||
+ | |||
+ | function showFootnote(evnt) { | ||
+ | var e = window.event ? window.event : evnt; | ||
+ | var obj = window.event ? window.event.srcElement : evnt.target; | ||
+ | |||
+ | // Is this link a ref tag | ||
+ | if(obj.tagName != "A") return; | ||
+ | if(!obj.hash) return; | ||
+ | if(obj.hash.substr(0,11) != "#cite_note-") return; | ||
+ | if(obj.parentNode.className != "reference") return; | ||
+ | |||
+ | // Is there a footnote to display? | ||
+ | // Someone may have forgotten the <references/> tag | ||
+ | var footnote_id = obj.hash.substr(1); | ||
+ | if(!document.getElementById(footnote_id)) return; | ||
+ | |||
+ | // Good, hide the popup, if it isn't already hidden | ||
+ | if(footnote.style.visibility != "hidden") { resetFootnote() } | ||
+ | |||
+ | // Fetch the footnote text and remove the unnecessary back link(s) | ||
+ | // This is a little messy as there's no containing tags | ||
+ | var fn_text = document.getElementById(footnote_id).innerHTML; | ||
+ | fn_text = fn_text.replace(/^.*<a[^>]*href="#cite_ref-.*?<\/a> */i, ""); // " | ||
+ | |||
+ | // Insert the footnote text | ||
+ | footnote.innerHTML = fn_text; | ||
+ | |||
+ | // Decide where to put the popup | ||
+ | var window_width = findPosition('clientWidth'); | ||
+ | var window_height = findPosition('clientHeight'); | ||
+ | |||
+ | var horizontal_position = e.clientX; | ||
+ | var vertical_position = e.clientY; | ||
+ | |||
+ | var horizontal = findPosition('scrollLeft') + horizontal_position; | ||
+ | var vertical = findPosition('scrollTop') + vertical_position; | ||
+ | |||
+ | var footnote_width = footnote.offsetWidth; | ||
+ | var footnote_height = footnote.offsetHeight; | ||
+ | |||
+ | if(window_height - vertical_position < footnote_height) { | ||
+ | footnote.style.top = ""; | ||
+ | footnote.style.bottom = (window_height - vertical - 13) + "px"; | ||
+ | } else { | ||
+ | footnote.style.top = (vertical - 13) + "px"; | ||
+ | footnote.style.bottom = ""; | ||
+ | } | ||
+ | |||
+ | if(window_width - horizontal_position > footnote_width) { | ||
+ | footnote.style.left = (horizontal - 13) + "px"; | ||
+ | footnote.style.right = ""; | ||
+ | } else { | ||
+ | footnote.style.left = ""; | ||
+ | footnote.style.right = (window_width - horizontal - 13) + "px"; | ||
+ | } | ||
+ | |||
+ | //Make the popup visible | ||
+ | footnote.style.visibility = "visible"; | ||
+ | } | ||
+ | |||
+ | function hideFootnote(evnt) { | ||
+ | var obj = window.event ? window.event.srcElement : evnt.target; | ||
+ | |||
+ | // No point in going on if popup is already hidden | ||
+ | if(footnote.style.visibility == "hidden") return; | ||
+ | |||
+ | // Search the tree to see where the curser is | ||
+ | var depth = 0; // no need to search too much | ||
+ | while(obj && obj.parentNode && depth < 5) { | ||
+ | if(obj.id == "footnote" || obj.id.substr(0, 9) == "cite_ref-") { return; } | ||
+ | obj = obj.parentNode; | ||
+ | depth++; | ||
+ | } | ||
+ | |||
+ | resetFootnote(); | ||
+ | } | ||
+ | |||
+ | function resetFootnote() { | ||
+ | footnote.style.visibility = "hidden"; | ||
+ | footnote.style.left = 0; | ||
+ | footnote.style.top = 0; | ||
+ | footnote.style.right = "auto"; | ||
+ | footnote.style.bottom = "auto"; | ||
+ | } | ||
+ | |||
+ | // Set up the float element | ||
+ | var footnote = document.createElement("DIV"); | ||
+ | footnote.id = "footnote"; | ||
+ | footnote.style.position = "absolute"; | ||
+ | footnote.style.zIndex = 500; | ||
+ | footnote.style.border = "1px solid black"; | ||
+ | footnote.style.backgroundColor = "lightyellow"; | ||
+ | footnote.style.maxWidth = "450px"; | ||
+ | footnote.style.textAlign = "justify"; | ||
+ | footnote.style.padding = "5px"; | ||
+ | footnote.style.fontSize = "10pt"; | ||
+ | resetFootnote(); | ||
+ | |||
+ | document.body.appendChild(footnote); | ||
+ | |||
+ | // Add events | ||
+ | addHandler(document, "mouseover", showFootnote); | ||
+ | addHandler(document, "mousemove", hideFootnote); | ||
+ | |||
+ | |||
+ | |||
+ | //////////////////////////////////////////////////////////// |
23:38, 6 सितम्बर 2016 का अवतरण
if ( mw.toolbar ) { mw.toolbar.addButton( { "imageFile": "http://www.kavitakosh.org/kk/images/c/cd/Button_poem.png", "speedTip": "Poem tag", "tagOpen": "<poem>", "tagClose": "</poem>", "sampleText": "रचना यहाँ टाइप करें" } ); mw.toolbar.addButton( { "imageFile": "http://upload.wikimedia.org/wikipedia/en/c/c8/Button_redirect.png", "speedTip": "Redirect", "tagOpen": "#REDIRECT [[", "tagClose": "]]", "sampleText": "Insert text" } ); } /* *************************************************************************** Function to insert text in a textarea (may be on click of a link or button *************************************************************************** */ function insertAtCaret(areaId,text) { var txtarea = document.getElementById(areaId); var scrollPos = txtarea.scrollTop; var strPos = 0; var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false ) ); if (br == "ie") { txtarea.focus(); var range = document.selection.createRange(); range.moveStart ('character', -txtarea.value.length); strPos = range.text.length; } else if (br == "ff") strPos = txtarea.selectionStart; var front = (txtarea.value).substring(0,strPos); var back = (txtarea.value).substring(strPos,txtarea.value.length); txtarea.value=front+text+back; strPos = strPos + text.length; if (br == "ie") { txtarea.focus(); var range = document.selection.createRange(); range.moveStart ('character', -txtarea.value.length); range.moveStart ('character', strPos); range.moveEnd ('character', 0); range.select(); } else if (br == "ff") { txtarea.selectionStart = strPos; txtarea.selectionEnd = strPos; txtarea.focus(); } txtarea.scrollTop = scrollPos; } /* *************************************************************************** */ /* *************************************************************************** Functions for transliteration *************************************************************************** */ function decideLipi(rootEl){ var curkklipi=getCookie("kklipi"); var defaultkklipi="hi"; if (curkklipi=="en"){walkTheDomAndTranslit(rootEl);} else{setCookie("kklipi",defaultkklipi,365);} } function walkTheDomAndTranslit(rootEl){ var rootnode=document.getElementById(rootEl); var walker=document.createTreeWalker(rootnode, NodeFilter.SHOW_TEXT, null, false); while (walker.nextNode()){ var tstr=unicode2itrans(walker.currentNode.textContent); walker.currentNode.textContent=tstr; } var tButton=document.getElementById('translitButton'); tButton.innerHTML="देवनागरी में बदलें"; tButton.onclick = function() {setCookie('kklipi', 'hi'); window.location.reload();}; setCookie('kklipi', 'en'); } function unicode2itrans(strText){ var array_one = new Array( "आ", "ऑ", "अ", "ई", "इ", "ऊ", "उ", "ऋ", "ए", "ऐ", "ओ", "औ","ा", "ि", "ी", "ु", "ू", "ृ", "े", "ै", "ो", "ौ", "ं", "ँ", ":", "्", "ऽ", "ॉ","क़", "ख़", "ग़", "ज़", "ड़", "ढ़", "फ़","क", "ख", "ग", "घ", "ङ", "च", "छ", "ज", "झ", "ञ", "ट", "ठ", "ड", "ढ", "ण","त", "थ", "द", "ध", "न", "प", "फ", "ब", "भ", "म","य", "र", "ल", "व", "श", "ष", "स", "ह","Z.hY", "ZY", "ZV", "aV", "V", "W", "Y", "Z","०", "१", "२", "३", "४", "५", "६", "७", "८", "९", "।", "ॐ" ); var array_two= new Array( "VaaW", "Vaa.uW", "VaW", "VeeW", "ViW", "VooW", "VuW", "VRRiW", "VeW", "VaiW", "VoW", "VauW","aa", "i", "ee", "u", "oo", "Ri", "e", "ai", "o", "au", ".n", ".N", "aH", ".h", ".a", " aa.u","YqZ", "YKhZ", "YGZ", "YzZ", " Y.DZ", "Y.DhZ", "YfZ", "YkZ", "YkhZ", "YgZ", "YghZ", "Y~NZ", "YchZ", "YchhZ", "YjZ", "YjhZ", "Y~nZ", "YTZ", "YThZ", "YDZ", "YDhZ", "YNZ","YtZ", "YthZ", "YdZ", "YdhZ", "YnZ", "YpZ", "YphZ", "YbZ", "YbhZ", "YmZ","YyZ", "YrZ", "YlZ", "YvZ", "YshZ", "YShZ", "YsZ", "YhZ","", "a", "a_", "a_", "", "", "", "","0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "OM" ); text2BProcessed = strText; for (ctr=0; ctr < 95; ctr++){ var idx = 0; while ( idx != -1 ){ text2BProcessed = text2BProcessed.replace(array_one[ctr] , array_two[ctr]); idx = text2BProcessed.indexOf(array_one[ctr]);} } return text2BProcessed; } function setCookie(cname,cvalue,exdays){ var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cname+"="+cvalue+"; "+expires; } function getCookie(cname){ var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++){ var c = ca[i].trim(); if (c.indexOf(name)==0) return c.substring(name.length,c.length); } return ""; } /* *************************************************************************** */ //Call function to decide which lipi is to be used for displaying the page. $(function() { decideLipi('globalWrapper'); }); // This function opens a page based on the value of option selected by user from a SELECT html dropdown box function gotoPageOnSelect(wrapperElement, selectElement){ var wrapperElement=document.getElementById(wrapperElement); var selectedOption=document.getElementById(selectElement).value; if (selectedOption!="") { var baseloc = "http://kavitakosh.org/kk/"; wrapperElement.innerHTML="" wrapperElement.innerHTML="लोडिंग... "; self.location.href=baseloc+selectedOption; } } //////////////////////////// // To float anchor list in Rachnakaaro Ki Soochi var $poetAnchorsExistRef = $('#poet-list-anchors-container'); $(document).ready( function() { if($poetAnchorsExistRef.length){ $('#poet-list-anchors').addClass('visible'); } } ); // To togle the anchor list visibility $(document).ready(function(){ $("#poet-list-letter-set-toggle").click(function(){ $("#poet-list-letter-set").toggle(400); }); $('#poet-list-letter-set a').click(function(){ $('html, body').animate({ scrollTop: $( $(this).attr('href') ).offset().top }, 500); return false; }); }); //////////////////////////// //for multi-lingual transliteration var srcText = ""; //keep it global var targetEl = '.poem p'; var trgScript = ""; if ( $(targetEl).length) { $( "#mtransbtnDiv" ).css("display", "inline-block");} else{$( "#mtransbtnDiv").css("display", "none");} function convert(t) { trgScript = t; if(t ==="x"){if(srcText != ""){$(targetEl).css("font-size", "16px"); $(targetEl).html(srcText);} return;} if(srcText === ""){srcText = $(targetEl).html();} $(targetEl).html("<i class='fa fa-refresh fa-spin fa-3x fa-fw'></i><span class='sr-only'>लोडिंग...</span>"); var pData = {"TextToConvert" : srcText, "srcScript": 1, "trgScript": trgScript}; jQuery.ajax({ url: "http://kavitakosh.org/kk/otherapps/transliteration/convertAjax.php", data: pData, type: "POST", success:function(data){$(targetEl).html(data);} }); } jQuery(document).ajaxStop(function() { trgFontSize = "16px;" switch(trgScript) { case 0: trgFontSize = "16px"; break; //roman case 2: trgFontSize = "16px"; break; //diacritic case 3: trgFontSize = "16px"; break; //ipa case 4: trgFontSize = "16px"; break; //gujarati case 5: trgFontSize = "16px"; break; //gurumukhi case 6: trgFontSize = "16px"; break; //bangla } $(targetEl).css("font-size", trgFontSize); }); ////////////////////////////////////////////////////////////////////// //Cite Popups function findPosition(indx) { /* This function is based on code obtained from: http://www.softcomplex.com/docs/ get_window_size_and_scrollbar_position.html */ var dir = { 'clientWidth' : 'innerWidth', 'clientHeight' : 'innerHeight', 'scrollLeft' : 'pageXOffset', 'scrollTop' : 'pageYOffset' }; var qarr = [ window[dir[indx]] ? window[dir[indx]] : 0, document.documentElement ? document.documentElement[indx] : 0, document.body ? document.body[indx] : 0 ]; qarr.sort(function(a, b) {return a - b}); while(qarr[0] == 0) { qarr.shift() } return qarr.length ? qarr[0] : 0; } function showFootnote(evnt) { var e = window.event ? window.event : evnt; var obj = window.event ? window.event.srcElement : evnt.target; // Is this link a ref tag if(obj.tagName != "A") return; if(!obj.hash) return; if(obj.hash.substr(0,11) != "#cite_note-") return; if(obj.parentNode.className != "reference") return; // Is there a footnote to display? // Someone may have forgotten the <references/> tag var footnote_id = obj.hash.substr(1); if(!document.getElementById(footnote_id)) return; // Good, hide the popup, if it isn't already hidden if(footnote.style.visibility != "hidden") { resetFootnote() } // Fetch the footnote text and remove the unnecessary back link(s) // This is a little messy as there's no containing tags var fn_text = document.getElementById(footnote_id).innerHTML; fn_text = fn_text.replace(/^.*<a[^>]*href="#cite_ref-.*?<\/a> */i, ""); // " // Insert the footnote text footnote.innerHTML = fn_text; // Decide where to put the popup var window_width = findPosition('clientWidth'); var window_height = findPosition('clientHeight'); var horizontal_position = e.clientX; var vertical_position = e.clientY; var horizontal = findPosition('scrollLeft') + horizontal_position; var vertical = findPosition('scrollTop') + vertical_position; var footnote_width = footnote.offsetWidth; var footnote_height = footnote.offsetHeight; if(window_height - vertical_position < footnote_height) { footnote.style.top = ""; footnote.style.bottom = (window_height - vertical - 13) + "px"; } else { footnote.style.top = (vertical - 13) + "px"; footnote.style.bottom = ""; } if(window_width - horizontal_position > footnote_width) { footnote.style.left = (horizontal - 13) + "px"; footnote.style.right = ""; } else { footnote.style.left = ""; footnote.style.right = (window_width - horizontal - 13) + "px"; } //Make the popup visible footnote.style.visibility = "visible"; } function hideFootnote(evnt) { var obj = window.event ? window.event.srcElement : evnt.target; // No point in going on if popup is already hidden if(footnote.style.visibility == "hidden") return; // Search the tree to see where the curser is var depth = 0; // no need to search too much while(obj && obj.parentNode && depth < 5) { if(obj.id == "footnote" || obj.id.substr(0, 9) == "cite_ref-") { return; } obj = obj.parentNode; depth++; } resetFootnote(); } function resetFootnote() { footnote.style.visibility = "hidden"; footnote.style.left = 0; footnote.style.top = 0; footnote.style.right = "auto"; footnote.style.bottom = "auto"; } // Set up the float element var footnote = document.createElement("DIV"); footnote.id = "footnote"; footnote.style.position = "absolute"; footnote.style.zIndex = 500; footnote.style.border = "1px solid black"; footnote.style.backgroundColor = "lightyellow"; footnote.style.maxWidth = "450px"; footnote.style.textAlign = "justify"; footnote.style.padding = "5px"; footnote.style.fontSize = "10pt"; resetFootnote(); document.body.appendChild(footnote); // Add events addHandler(document, "mouseover", showFootnote); addHandler(document, "mousemove", hideFootnote); ////////////////////////////////////////////////////////////