भारत की संस्कृति के लिए... भाषा की उन्नति के लिए... साहित्य के प्रसार के लिए
मीडियाविकि:Common.js
Kavita Kosh से
Lalit Kumar (चर्चा | योगदान) द्वारा परिवर्तित 23:38, 6 सितम्बर 2016 का अवतरण
ध्यान दें: संजोने के बाद बदलाव देखने के लिए आपको अपने ब्राउज़र की कैश खाली करनी पड़ सकती है।
- फ़ायरफ़ॉक्स / सफ़ारी: Reload (रीलोड) दबाते समय Shift (शिफ़्ट) दबा के रखें, या फिर Ctrl-F5 (कंट्रोल-F5) या Ctrl-R (कंट्रोल-R) दबाएँ (मैक पर ⌘-R)
- गूगल क्रोम: Ctrl-Shift-R (कंट्रोल-शिफ़्ट-R) दबाएँ (मैक पर ⌘-Shift-R)
- इन्टर्नेट एक्सप्लोरर: Ctrl (कंट्रोल) दबाकर Refresh (रिफ़्रेश) करें या Ctrl-F5 (कंट्रोल-F5) दबाएँ
- ऑपेरा: Tools → Preferences (उपकरण → वरीयताएँ) में कैश साफ़ करें
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);
////////////////////////////////////////////////////////////
