მედიავიკი:Common.js

ვიკიციტატიდან

შენიშვნა: შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. Mozilla / Firefox / Safari: დააჭირეთ Shift Reload-ზე დაწკაპებისას, ან დააჭირეთ Ctrl-Shift-R (Cmd-Shift-R Apple Mac-ზე); IE: დააჭირეთ Ctrl Refresh-ზე დაწკაპებისას, ან დააჭირეთ Ctrl-F5; Konqueror:: მხოლოდ დააწკაპეთ Reload ღილაკს, ან დააჭირეთ F5; Opera შესაძლოა საჭირო გახდეს ქეშის სრულიად გაწმენდა Tools→Preferences-დან.

/* აქ ნებისმიერი ჯავასკრიპტი ყველა მომხმარებლისთვის ჩაიტვირთება ყველა გვერდზე. */

// მთავარი გვერდი
 
if (mw.config.get('wgIsMainPage') || mw.config.get('wgPageName') == 'განხილვა:მთავარი_გვერდი') {
  mw.loader.using(['mediawiki.util']).then(function () {
    $(function () {
        mw.util.addPortletLink('p-lang', '//www.wikimedia.org/',
                 'სრული სია', 'interwiki-completelist', 'ვიკიციტატების სრული სია');
    })
 });
}

function LinkFA() {
     if ( document.getElementById( "p-lang" ) ) {
         var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );
 
         for ( var i = 0; i < InterwikiLinks.length; i++ ) {
             if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
                 InterwikiLinks[i].className += " FA"
                 InterwikiLinks[i].title = "ამ სტატიას მიენიჭა რჩეულის სტატუსი";
             }
         }
     }
}

$(LinkFA);



// ============================================================
 // BEGIN Dynamic Navigation Bars (experimantal)
 
 // set up the words in your language
 var NavigationBarHide = '[ დამალვა ]';
 var NavigationBarShow = '[ ჩვენება ]';
 
 // set up max count of Navigation Bars on page,
 // if there are more, all will be hidden
 // NavigationBarShowDefault = 0; // all bars will be hidden
 // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden
 var NavigationBarShowDefault = 1;
 
 
 // shows and hides content and picture (if available) of navigation bars
 // Parameters:
 //     indexNavigationBar: the index of navigation bar to be toggled
 function toggleNavigationBar(indexNavigationBar)
 {
    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
 
    if (!NavFrame || !NavToggle) {
        return false;
    }
 
    // if shown now
    if (NavToggle.firstChild.data == NavigationBarHide) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'none';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'none';
            }
        }
    NavToggle.firstChild.data = NavigationBarShow;
 
    // if hidden now
    } else if (NavToggle.firstChild.data == NavigationBarShow) {
        for (
                var NavChild = NavFrame.firstChild;
                NavChild != null;
                NavChild = NavChild.nextSibling
            ) {
            if (NavChild.className == 'NavPic') {
                NavChild.style.display = 'block';
            }
            if (NavChild.className == 'NavContent') {
                NavChild.style.display = 'block';
            }
        }
    NavToggle.firstChild.data = NavigationBarHide;
    }
 }
 
 // adds show/hide-button to navigation bars
 function createNavigationBarToggleButton()
 {
    var indexNavigationBar = 0;
    // iterate over all < div >-elements
    for(
            var i=0; 
            NavFrame = document.getElementsByTagName("div")[i]; 
            i++
        ) {
        // if found a navigation bar
        if (NavFrame.className == "NavFrame") {
 
            indexNavigationBar++;
            var NavToggle = document.createElement("a");
            NavToggle.className = 'NavToggle';
            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
            
            var NavToggleText = document.createTextNode(NavigationBarHide);
            NavToggle.appendChild(NavToggleText);
            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)
            for(
              var j=0; 
              j < NavFrame.childNodes.length; 
              j++
            ) {
              if (NavFrame.childNodes[j].className == "NavHead") {
                NavFrame.childNodes[j].appendChild(NavToggle);
              }
            }
            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
        }
    }
    // if more Navigation Bars found than Default: hide all
    if (NavigationBarShowDefault < indexNavigationBar) {
        for(
                var i=1; 
                i<=indexNavigationBar; 
                i++
        ) {
            toggleNavigationBar(i);
        }
    }
 
 }
 
$(createNavigationBarToggleButton);
 
 // END Dynamic Navigation Bars
 // ============================================================


var mpTitle = "მთავარი გვერდი";
var isMainPage = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle);
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

if (isMainPage && !isDiff) 
{
mw.util.addCSS('#lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; }');

var mpSmallEnabled;
var mpMinWidth = 700;

function mainPageTransform()
{
        var mpContentEl = document.getElementById("bodyContent");
        var mpBrowseEl = document.getElementById("EnWpMpBrowse");
        var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
        var mpMarginEl = document.getElementById("EnWpMpMargin");
        var mpEl = document.getElementById("EnWpMainPage");

        if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl)
                return;

        if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth)
        {
                mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
                mpBrowseEl.className = "EnWpMpBrowseBottom";
                mpMarginEl.style.marginRight = 0;
                mpSmallEnabled = true;
        }
        else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth)
        {
                mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
                mpBrowseEl.className = "EnWpMpBrowseRight";
                mpMarginEl.style.marginRight = "13.8em";
                mpSmallEnabled = false;
        }
}

$(mainPageTransform);

if (window.addEventListener) 
  window.addEventListener("resize", mainPageTransform, false);
else if (window.attachEvent) 
  window.attachEvent("onresize", mainPageTransform);

}

//რედაქტირების რეზიუმეს ღილაკები
 
function SummaryButtons(){
 var wpSummary = document.getElementById('wpSummary')
 if (!wpSummary || (wpSummary.form.wpSection && wpSummary.form.wpSection.value == 'new')) return
 wpSummaryBtn = document.createElement('span') //global var
 wpSummaryBtn.id = 'userSummaryButtonsA'
 wpSummary.parentNode.insertBefore(wpSummaryBtn, wpSummary.nextSibling)
 wpSummary.parentNode.insertBefore(document.createElement('br'), wpSummary.nextSibling)
 addSumButton('ვიკიფ.', 'ვიკიფიცირება', 'მოხდა ვიკიფიცირება')
 addSumButton('გაფორმ.', 'გაფორმება', 'გაუმჯობესდა გაფორმება')
 addSumButton('სტილი', 'სტილის გამართვა', 'გასწორდა თხრობის სტილი')
 addSumButton('ორთოგრ.', 'ორთოგრაფია', 'გასწორდა ორთოგრაფია')
 addSumButton('პუნქტ.', 'პუნქტუაცია', 'გასწორდა პუნქტუაცია')
 addSumButton('საერთ. ბმულ.', 'საერთაშ. ბმულები', 'ჩასწორდა ენათშორისი ბმულები (ინტერვიკი)')
 addSumButton('კატ.', 'კატეგორია', 'გასწორდა კატეგორიზაცია')
 addSumButton('თარგი', 'თარგი', 'დაემატა/გასწორდა თარგი')
 addSumButton('წასაშლ.', 'წასაშლელი', 'გვერდი წასაშლელია')
 addSumButton('დამატ.', 'დამატება', 'დაემატა ახალი ცნობები')
 addSumButton('სურათი', 'ილუსტრაცია', 'დაემატა ილუსტრაცია')
 addSumButton('განახლ.', 'მონაცემთა განახლება', 'განახლდა მოძველებული მონაცემები')
}
 
function addSumButton(name, text, title) {
 var btn = document.createElement('a')
 btn.appendChild(document.createTextNode(name))
 btn.title = title
 btn.onclick = function(){insertSummary(text)}
 wpSummaryBtn.appendChild(btn)
}
 
function insertSummary(text) {
 var wpSummary = document.getElementById('wpSummary')
 if (wpSummary.value.indexOf(text) != -1) return 
 if (wpSummary.value.match(/[^,; \/]$/)) wpSummary.value += ','
 if (wpSummary.value.match(/[^ ]$/)) wpSummary.value += ' '
 wpSummary.value += text
}

//მოხმობის ფუნქციები
$(SummaryButtons);

// ============================================================
// სექციის რედაქტირების ბმულის დაპატარავება/დაახლოება ქვესათაურთან
/*
* moveEditsection
* ეს სკრიპტი აახლოებს ბმულს [რედაქტირება] სექციის სათაურთან და ამცირებს;
* ინგლისურში [edit] მოკლეა, ქართულში კი გრძელია და ვიზუალურად აუმჯობესებს.
* დადებითი ტესტი განხორციელდა: Firefox 1.0, Opera 8.0, Internet Explorer 6.0
*
* dbenzhuser (de:Benutzer:Dbenzhuser)
*/
setModifySectionStyle = function()
{
try {
        if (!(typeof oldEditsectionLinks == 'undefined' || oldEditsectionLinks == false)) return;
        var spans = document.getElementsByTagName("span");
        for (var s = 0; s < spans.length; ++s) {
                var span = spans[s];
                if (span.className == "editsection") {
                        span.style.fontSize = "xx-small";
                        span.style.fontWeight = "normal";
                        span.style.cssFloat = span.style.styleFloat = "none";
                        span.className = "editsectionmoved";
                        span.parentNode.appendChild(document.createTextNode(" "));
                        span.parentNode.appendChild(span);
                }
        }
} catch (e) { /* something went wrong */ }
}
$(setModifySectionStyle);

// ===========================================================
// რედაქტირების ბმულის გადატანის სკრიპტის დასასრული
// ===========================================================


// ===========================================================
// ცხრილის შემქმნელი
// ===========================================================

/**
 *
 * შექმენი ცხრილი მედიავიკის სინტაქსის მეშვეობით
 * @version: 0.1
 */
 
function generateTableau(nbCol, nbRow, border, styleHeader, styleLine, exfield, align, padding)
{
        var code = "\n";

        if (padding==false) padding=0;
        else if (padding==true) padding=1;

        if (styleHeader==1) {
                code += '{| border="' + border + '" align="' + align + '" style="text-align: center; background: #FFFFFF;"\n';
                code += "|'''ცხრილის სახელი'''\n";
                code += '{{' + 'სტანდარტული ცხრილი|' + padding + '}}\n';
        } else {
                code += '{| border="1" align="' + align + '" style="text-align: center; background: #FFFFFF;"\n';
                code += '|+\n';
        }
        
        if (exfield==true) code += '!\n';
        
        for (var i=1;i<nbCol+1;i++) code += '! style="background: #ddffdd;"|ველი ' + i + '\n';

        var items = 0;
        for (var j=0;j<nbRow;j++) {
                if ((j+1)%2==0 && styleLine==1 && exfield==true) {
                        items+=1;
                        code += '|-bgcolor="#EFEFEF"\n'
                        code += '! style="background: #ffdddd;"|დასახელება ' + items + '\n';
                }
                   else if ((j+1)%2==0 && styleLine==1 && exfield==false) {
                        code += '|-bgcolor="#EFEFEF"\n'
                }  else if (exfield==true) {    
                        items+=1;       
                        code += '|-----\n'
                        code += '! style="background: #ffdddd;"|დასახელება ' + items + '\n';
                }
                  else if (exfield==false) {            
                        code += '|-----\n'
                }
                
                for (var i=0;i<nbCol;i++) code += '| ელემენტი\n';
        }
        
        if (styleHeader==1) code += '|}\n';
        else code += '|+\n';
        code += '|}\n';
        insertTags('','', code); 
}

/**
 *
 * გახსენი მცირე ფანჯარა ცხრილის პარამეტრების მისათითებლად.
 * სვეტების და ხაზების რაოდენობა შეიძლება შეიცვალოს. ზოგიერთი დამატებითი
 * პარამეტრი მსგავსია ფრანგულ ვიკიზე არსებული თარგების
 * @version: 0.1
 */
 
function popupTable()
{
  var popup = window.open('','name','height=450,width=500,scrollbars=yes');
  
  javaCode =  '<script type="text\/javascript">function insertCode(){';
  javaCode += 'var row = parseInt(document.paramForm.inputRow.value); '
  javaCode += 'var col = parseInt(document.paramForm.inputCol.value); '
  javaCode += 'var bord = parseInt(document.paramForm.inputBorder.value); '
  javaCode += 'var styleHeader = document.paramForm.inputHeader.checked; '
  javaCode += 'var styleLine = document.paramForm.inputLine.checked; '
  javaCode += 'var exfield = document.paramForm.inputItems.checked; '
  javaCode += 'var align = document.paramForm.inputAlign.value; '
  javaCode += 'var padding = document.paramForm.inputPad.checked; '
  javaCode += 'window.opener.generateTableau(col,row,bord,styleHeader,styleLine,exfield,align,padding); '
  javaCode += "alert('ცხრილი შეიქმნა! ტექსტი \"სტანდარტული ცხრილი\" უნდა დარჩეს.'); "
  javaCode += 'window.close(); '
  javaCode += '}<\/script>';
  
  popup.document.write('<html><head><title>შექმენი ცხრილი</title>');
  popup.document.write(javaCode); 
  popup.document.write('</head><body>');
  popup.document.write('<p>შეიყვანე ცხრილის პარამეტრები ქვემოთ: </p>');
  popup.document.write('<form name="paramForm">');
  popup.document.write('ცხრილის განლაგება: <input type="text" name="inputAlign" value="center" ><p>');
  popup.document.write('რიგების რაოდენობა: <input type="text" name="inputRow" value="3" ><p>');
  popup.document.write('სვეტების რაოდენობა: <input type="text" name="inputCol" value="3" ><p>');
  popup.document.write('<input type="checkbox" name="inputHeader" checked="1" > ცხრილის სათაური<p>');
  popup.document.write('ჩარჩოს სიგანე: <input type="text" name="inputBorder" value="1" > ' + ' ');
  popup.document.write(' ' + '<input type="checkbox" name="inputPad" > გარეველი<p>');
  popup.document.write('ცვლადი რუხი ზოლები: <input type="checkbox" name="inputLine" checked="1" ><p>');
  popup.document.write('სვეტის ელემენტი: <input type="checkbox" name="inputItems" ><p>');
  popup.document.write('</form">');
  popup.document.write('<i>უპირობოდ ცხრილი შეიცავს ერთი რიგის ველებს.</i><p>');
  popup.document.write('მონიშნეთ "სვეტის ელემენტი" ცხრილისთვის ველის რიგის <i>და</i> სვეტის ელემენტის მისაცემად.</i><p>');
  popup.document.write('შენიშვნა:<i> "ჩარჩოს სიგანეს" ან "გარეველს" ვერ მიუთითებთ თუ "ცხრილის სათაური" არ არის მონიშნული.</i><p>');
  popup.document.write('<p><a href="javascript:insertCode()"> ჩასვი ცხრილი</a>     |');
  popup.document.write('    <a href="javascript:self.close()">გაუქმება (ფანჯრის დახურვა)</a></p>');
  popup.document.write('</body></html>');
  popup.document.close();
}

//მსგავსია ფუნქციის /w/skins/common/wikibits.js 
function marque_tab()
{
 var toolbar = document.getElementById('toolbar');
 if (!toolbar) return false;
 
 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) return false;
 
 if (!document.selection && textbox.selectionStart == null)
 return false;
 
 var image = document.createElement("img");
 image.width = 23;
 image.height = 22;
 image.src = '//upload.wikimedia.org/wikipedia/commons/0/04/Button_array.png';
 image.border = 0;
 image.alt = 'Table';
 image.title = 'ცხრილის შექმნა';
 image.style.cursor = "pointer";
 image.onclick = function() {
   popupTable();
   return false;
 }
 toolbar.appendChild(image);
}

$(marque_tab);

// ===========================================================
// დასასრული - დამატებითი ხელსაწყოები რედაქტირების ფანჯარაზე
// ===========================================================

// ===========================================================
// IP მომხმარებლები წინასწარ გადახედვის გარეშე გვერდს ვერ ინახავენ
// ===========================================================

// Force IP to preview before saving changes.
// Copyright Marc Mongenet, 2006
function forcePreview()
{
        if (mw.config.get('wgUserName') || mw.config.get('wgAction') != "edit") return;
        var saveButton = document.getElementById("wpSave");
        if (!saveButton) return;
//        if (location.search.search(/&action=edit/) == -1) return;
        saveButton.disabled = true;
        saveButton.value = "გვერდის შენახვა (გთხოვთ ჯერ გამოიყენოთ წინასწარ გადახედვა)";
        saveButton.style.fontWeight = "normal";
        document.getElementById("wpPreview").style.fontWeight = "bold";
}

$(forcePreview);

// ====================================================================
// დასასრული - IP მომხმარებლები წინასწარ გადახედვის გარეშე გვერდს ვერ ინახავენ
// ====================================================================

// ===========================================================
// კოდი თარგისთვის "ფოტოგალერეა"
// ===========================================================
/*** CODE FOR TEMPLATE:Scroll gallery ***/
function toggleImage(group, remindex, shwindex) {
  document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
  document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}
function ImageGroup(){
	if (document.URL.match(/printable/g)) return;
	var bc=document.getElementById("bodyContent");
	var divs=bc.getElementsByTagName("div");
	var i = 0, j = 0;
	var units, search;
	var currentimage;
	var UnitNode;
	for (i = 0; i < divs.length ; i++) {
		if (divs[i].className != "ImageGroup") continue;
		UnitNode=undefined;
		search=divs[i].getElementsByTagName("div");
		for (j = 0; j < search.length ; j++) {
			if (search[j].className != "ImageGroupUnits") continue;
			UnitNode=search[j];
			break;
		}
		if (UnitNode==undefined) continue;
		units=Array();
		for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
			var temp = UnitNode.childNodes[j];
			if (['center', 'mw-halign-center'].some(function(className) { return temp.classList.contains(className); })) { units.push(temp); }
		}
		var wrap;
		for (j = 0 ; j < units.length ; j++) {
			currentimage=units[j];
			wrap = document.createElement('div');
			wrap.id = "ImageGroupsGr" + i + "Im" + j;
			currentimage.parentNode.insertBefore(wrap, currentimage);
			wrap.appendChild(currentimage);
			var imghead = document.createElement("div");
			var leftlink;
			var rightlink;
			if (j != 0) {
				leftlink = document.createElement("a");
				leftlink.href = "javascript:toggleImage("+i+","+j+","+(j-1)+");";
				leftlink.innerHTML="◀";
			} else {
				leftlink = document.createElement("span");
				leftlink.innerHTML="&nbsp;";
			}
			if (j != units.length - 1) {
				rightlink = document.createElement("a");
				rightlink.href = "javascript:toggleImage("+i+","+j+","+(j+1)+");";
				rightlink.innerHTML="▶";
			} else {
				rightlink = document.createElement("span");
				rightlink.innerHTML="&nbsp;";
			}
			var comment = document.createElement("tt");
			comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
			with(imghead) {
				style.fontSize="110%";
				style.fontweight="bold";
				appendChild(leftlink);
				appendChild(comment);
				appendChild(rightlink);
			}
			wrap.insertBefore(imghead,wrap.childNodes[0]);
			if (j != 0) wrap.style.display="none";
		}
	}
}
$(ImageGroup);

// ===========================================================
// დასასრული - კოდი თარგისთვის "ფოტოგალერეა"
// ===========================================================


// ============================================================
// BEGIN import Onlyifediting-functions
// SEE ALSO [[MediaWiki:Onlyifediting.js]]
 
 if (document.URL.indexOf("action=edit") > 0 || document.URL.indexOf("action=submit") > 0) {
     importScript('MediaWiki:Onlyifediting.js');
 }
 
// END import Onlyifediting-functions
// ============================================================

// ============================================================

 /** ვიკიმინიატლასი *******************************************************
   *
   *  აღწერა: ვიკიმინიატლასი მცირე მოძრავაი მსოფლიო რუკაა (popup ფორმატით).
   *               This script causes all of our coordinate links to display the WikiMiniAtlas popup button.
   *               The script itself is located on meta because it is used by many projects.
   *               იხ. [[Meta:WikiMiniAtlas]] დამატებით ინფორმაციისთვის. 
   *  Created by: [[User:Dschwen]]
   */

mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );

/**
  * Remove need for CSS hacks regarding MSIE and IPA.
  */

if(navigator.userAgent.indexOf("MSIE") != -1 && document.createStyleSheet) {
   document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');
}