Uporabnik:Dbc334/inlinediff.js: Razlika med redakcijama

Izbrisana vsebina Dodana vsebina
Dbc334 (pogovor | prispevki)
NZS
(ni razlike)

Redakcija: 17:13, 16. december 2007

var loadingImage = new Image();
loadingImage.src = "http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif";

function NZS_run() {
  var rcList = document.getElementsByTagName('ul')[0].getElementsByTagName('li');
  for(i = 0; i < rcList.length; i++) {
    var rcCurrent = rcList[i].getElementsByTagName('a')[0];
    if(rcCurrent.href.indexOf("&diff=") != -1) {
      var rcDiff = rcCurrent.href.substring(rcCurrent.href.indexOf("&diff=")+6, rcCurrent.href.indexOf("&oldid="));
      var rcOldid = rcCurrent.href.substring(rcCurrent.href.indexOf("&oldid=")+7);
      NZS_makeClick(rcDiff, rcOldid, i);
    }
  }

  var tagHead = document.getElementsByTagName('head')[0];
  var tagLink = document.createElement("link");
  tagLink.rel = "stylesheet";
  tagLink.href = "/skins-1.5/common/diff.css?100";
  tagHead.insertBefore(tagLink, tagHead.firstChild);

  var tagLink2 = document.createElement("link");
  tagLink2.rel = "stylesheet";
  tagLink2.href = "/w/index.php?title=MediaWiki:Monobook.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=2678400";
  tagHead.insertBefore(tagLink2, tagHead.lastChild);
}

function NZS_ajax(diff, oldid, func) {
  htmlTag = document.getElementsByTagName('html')[0];
  htmlTag.style.cursor = "wait";
  var ajaxreq;
  try {ajaxreq = new XMLHttpRequest();} catch(e) {try {ajaxreq = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {try {ajaxreq = new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {return false;}}}
  ajaxreq.open("GET", "/w/index.php?action=render&diffonly=yes&diff=" + diff + "&oldid=" + oldid);
  ajaxreq.onreadystatechange = function() {
    if(ajaxreq.readyState != 4) {return;}
    if(ajaxreq.status == 200) {
      htmlTag.style.cursor = "auto";
      NZS_showDiff(diff, ajaxreq.responseText);
    }
  }
  ajaxreq.send(null);
}

function NZS_makeClick(diff, oldid, i) {
  document.getElementsByTagName('ul')[0].getElementsByTagName('li')[i].id = "rcChange" + diff;
  document.getElementsByTagName('ul')[0].getElementsByTagName('li')[i].getElementsByTagName('a')[0].onclick = function() {return NZS_diff(diff, oldid);};
}

function NZS_diff(diff, oldid) {
  if(buttonCtrl == 0) {
    if(document.getElementById('rcDiff' + diff)) {
      var rcDiffTag = document.getElementById('rcDiff' + diff);
      switch(rcDiffTag.style.display) {
        case "none": rcDiffTag.style.display = ""; break;
        default: rcDiffTag.style.display = "none";
      }
    } else {
      var rcLink = document.getElementById('rcChange' + diff);
      var rcLinkResult = document.createElement("li");
      rcLinkResult.id = "rcDiff" + diff;
      rcLinkResult.style.textAlign = "center";
      rcLinkResult.style.width = "100%";
      rcLinkResult.innerHTML = "<img src=\"http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif\" id=\"rc2Diff" + diff + "\" alt=\"Nalaganje\" width=\"18\" height=\"18\" />";
      var rcList = document.getElementsByTagName('ul')[0];
      rcList.replaceChild(rcLinkResult, rcLink);
      rcList.insertBefore(rcLink, rcLinkResult);
      NZS_ajax(diff, oldid, NZS_showDiff);
    }
    return false;
  }
}

function NZS_showDiff(diff, text) {
  document.getElementById('rcDiff' + diff).style.textAlign = "";
  document.getElementById('rcDiff' + diff).innerHTML = text;
  window.location.hash = "#rcChange" + diff;
}

buttonCtrl = 0;
function NZS_checkKeyDown(e) {if(!e) {e = window.event;} if(e.keyCode == 17 && buttonCtrl == 0) {buttonCtrl = 1;}}
function NZS_checkKeyUp(e) {if(!e) {e = window.event;} if(e.keyCode == 17 && buttonCtrl == 1) {buttonCtrl = 0;}}

if(wgCanonicalSpecialPageName == "Recentchanges") {
  document.onkeydown = NZS_checkKeyDown;
  document.onkeyup = NZS_checkKeyUp;
  window.onload = NZS_run;
}