MediaWiki:Gadget-revisionjumper.js

 // <nowiki>

 switch (mw.config.get('wgUserLanguage')){
   case 'de':
   case 'de-at':
   case 'de-ch':
   case 'de-formal':
 
   var configrevisionjumper = new Array('Änderungen seit meiner letzten Bearbeitung', 
                                        'Zum vorletzten Bearbeiter',
                                        'frühere Versionen',
                                        'spätere Versionen',
                                        'Version(en) zurück',
                                        'Version(en) vorwärts',
                                        'Jahr(e)',
                                        'Monat(e)',
                                        'Tag(e)',
                                        'Stunde(n)',
                                        'zurück',    // 10
                                        'vorwärts',
                                        'prompt Version(en)',
                                        'prompt um-Zeit',
                                        'prompt auf-Zeit',
                                        'erste Version',
                                        'letzte Version',
                                        'Um wie viele Versionen springen?',
                                        'Um welche Zeit soll gesprungen werden? [a = Jahr; m = Monat; d = Tag; h = Stunde; alles optional -> „1h“ allein springt somit um eine Stunde in die gewünschte Richtung]',
                                        'Auf welche Zeit soll gesprungen werden? [Syntax: Jahr-Monat-Tag Stunde:Minute; es geht auch nur Jahr-Monat-Tag -> 2007-12-31 springt also auf die Version, die um 00:00 Uhr an Silvester angezeigt wurde]'); // 19
   break;
 
   case 'pt':
   case 'pt-br':
 
   var configrevisionjumper = new Array('alterações desde a minha última edição',
                                        'penúltimo editor',
                                        'edições anteriores',
                                        'edições posteriores',
                                        'revisão(ões) anteriores',
                                        'revisão(ões) posteriores',
                                        'ano(s)',
                                        'mês(es)',
                                        'dia(s)',
                                        'hora(s)',
                                        'retroceder',    // 10
                                        'avançar',
                                        'solicitar revisão(ões)',
                                        'saltar no tempo',
                                        'saltar para o tempo',
                                        'primeira revisão',
                                        'revisão atual',
                                        'Quantas revisões devem ser puladas?',
                                        'Que período deve ser pulado? [a = ano; m = mês; d = dia; h = hora; todos os itens são opcionais -> „1h“ apenas causa um salto de uma hora na direção selecionada]',
                                        "Para que instante de tempo você quer saltar? [sintaxe: ano-mês-dia hora:minuto; ano-mês-dia também é possível -> então 2007-12-31 mostra a revisão que estava disponível na véspera de ano novo às 00:00h]"); // 19
   break;
 
   default:
 
   var configrevisionjumper = new Array('các thay đổi từ lần cuối tôi sửa đổi',
                                        'đến người sửa cuối',
                                        'thay đổi trước',
                                        'thay đổi sau',
                                        'sửa đổi trước',
                                        'sửa đổi sau',
                                        'năm',
                                        'tháng',
                                        'ngày',
                                        'giờ',
                                        '-',    // 10
                                        '-',
                                        'tùy chọn bỏ qua',
                                        'bỏ qua giờ',
                                        'bỏ qua',
                                        'phiên bản đầu tiên',
                                        'phiên bản hiện tại',
                                        'Bỏ qua bao nhiêu phiên bản?',
                                        'Bỏ qua bao nhiêu giai đoạn? [a = năm; m = tháng; d = ngày; h = giờ; tùy chọn toàn bộ -> „1h“ chỉ bỏ qua 1 giờ với lựa chọn này]',
                                        "Bỏ qua bao nhiêu giờ? [cú pháp: năm-tháng-ngày giờ:phút; hay chỉ năm-tháng-ngày -> như vậy 2007-12-31 hiện ra sửa đổi vào Đêm Giao Thừa lúc 00:00]"); // 19
 }

 // Version: 1.2.6

 if(!getoldid) var getoldid = false;
 if(!displayonview) var displayonview = false;
 if(!displayonhistory) var displayonhistory = false;
 if(!disabledisplayonpermalink) var disabledisplayonpermalink = false;
 if(!disabledisplayondiff) var disabledisplayondiff = false;
 if(!disablepenultimateeditor) var disablepenultimateeditor = false;
 if(!disablechangessincemylastedit) var disablechangessincemylastedit = false;
 if(!numberrevisionjumper) var numberrevisionjumper = new Array("10", "50", "150", "500");
 if(!timerevisionjumper) var timerevisionjumper = new Array("1h", "4h", "12h", "3d", "7d", "1m", "3m", "1a", "2a");
 var diffoptionnames = new Array();
 diffoptionnames[0] = new Array();
 diffoptionnames[1] = new Array();
 var numberrevisionjumperlength = numberrevisionjumper.length;
 var timerevisionjumperlength = timerevisionjumper.length;
 for(a=0;a<numberrevisionjumper.length;a++){
   diffoptionnames[0][a] = numberrevisionjumper[a];
 }
 for(b=0;b<timerevisionjumper.length;b++){
   diffoptionnames[1][b] = timerevisionjumper[b];
 }
 
 function newRequest() {
   try {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else {
        return new ActiveXObject("MSXML2.XMLHTTP");
      }
   } catch (e) {
      return false;
   }
 }

 // get URL parameters (used for page type variables)
 var UrlParameters = new Array ();
 readparams();
 
 function readparams() {
  var asReadInUrlParameters;
  var asReadInUrlParameter;
 
  // Get URL parameters
  asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");
  for (i = 0; i < asReadInUrlParameters.length; i++) {
    asReadInUrlParameter = asReadInUrlParameters[i].split("=");
    UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);
  }
 }
 
 function addrevisionjumper(){
 if (mw.config.get('wgCanonicalNamespace') != 'Special') {
  for(j=0;j<2;j++){
   var difflink = new Array();
   if(UrlParameters["diff"] && !disabledisplayondiff) {
    difflink[0] = document.getElementById('differences-prevlink');
    difflink[1] = document.getElementById('differences-nextlink');
    var leftuser = document.getElementById('mw-diff-otitle2');
    if (leftuser) {
    	var leftuserLinks = leftuser.getElementsByTagName('a');
    	leftuser = leftuserLinks.length ? leftuserLinks[0].innerHTML : '';
    } else { leftuser = ''; }
    var rightuser = document.getElementById('mw-diff-ntitle2');
    if (rightuser) {
    	var rightuserLinks = rightuser.getElementsByTagName('a');
    	rightuser = rightuserLinks.length ? rightuserLinks[0].innerHTML : '';
    	
    } else { rightuser = ''; }
   } else if (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) {
     var req10;
     if (req10 = newRequest()) {
       var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000';
       req10.open("GET", text, false);
       req10.send("");
       var firstRev = req10.responseXML.getElementsByTagName("rev")[0];
       var firstrevision = firstRev ? firstRev.getAttribute('revid') : -1;
     }
     if(mw.config.get('wgCurRevisionId')!=firstrevision) difflink[0] = document.getElementById('firstHeading');
   } else if (mw.config.get('wgAction') == 'history' && displayonhistory) {
    var lasthistoryrevision = document.getElementById('pagehistory').getElementsByTagName('li');
    if(lasthistoryrevision.length>1) {
      difflink[0] = document.getElementById('jump-to-nav');
      var inputNode = lasthistoryrevision[0].getElementsByTagName('input')[0];
      lasthistoryrevisionid = inputNode && inputNode.getAttribute('value');
      if(lasthistoryrevisionid != mw.config.get('wgCurRevisionId')) difflink[1] = document.getElementById('movetodiff0');
    }
   } else if (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) {
    if(document.getElementById('mw-revision-nav').innerHTML.search(/href\=/)!=-1) difflink[0] = document.getElementById('jump-to-nav');
    if(UrlParameters["oldid"] != mw.config.get('wgCurRevisionId')) difflink[1] = document.getElementById('movetodiff0');
   }
   if(difflink[j]) {
    var newlink = document.createElement('select');
    newlink.onchange = j == 0 ? function(){movetodiff(0);} : function(){movetodiff(1)}; 
    newlink.setAttribute('id', 'movetodiff'+j);
    newlink.setAttribute('name', 'movetodiff'+j);
    difflink[j].parentNode.insertBefore( newlink, difflink[j].nextSibling );
    if(!disablechangessincemylastedit && !document.getElementById('changessincemylastedit')) {
           var req4;
           if (req4 = newRequest()) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500';
             req4.open("GET", text, false);
             req4.send("");
 
             var thisrevision = req4.responseXML.getElementsByTagName("rev");
             var thisrevisionlength = thisrevision.length;
             var l = 0;
             while(thisrevision[l]) {
               if(thisrevision[l] && thisrevision[l].getAttribute('user')!=mw.config.get('wgUserName') && l<(thisrevisionlength-1)) { l++; } else { break; }
             }
             nextrevision = thisrevision[l] && thisrevision[l].getAttribute('revid');
             var req8;
             if (req8 = newRequest()) {
               var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000';
               req8.open("GET", text, false);
               req8.send("");
               var rev8 = req8.responseXML.getElementsByTagName("rev")[0];
               var firstrevision = rev8 && rev8.getAttribute('revid');
             }
             if(nextrevision!=mw.config.get('wgCurRevisionId') && nextrevision!=firstrevision) {
               var newrevisionlink = document.createElement('a');
               newrevisionlink.setAttribute('id', 'changessincemylastedit');
               newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur');
               if(j==0) var EditTextNode = document.createTextNode('← '+configrevisionjumper[0]);
               else if(j==1) var EditTextNode = document.createTextNode(configrevisionjumper[0]+' →');
               newrevisionlink.appendChild(EditTextNode);
               var newline = document.createElement('br');
               difflink[j].parentNode.insertBefore( newline, difflink[j].nextSibling );
               difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling );
             }
           }
    }
    if(j==0 && (leftuser==rightuser) && !disablepenultimateeditor){
           var req19;
           if (req19 = newRequest()) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=user|ids&rvlimit=500';
             req19.open("GET", text, false);
             req19.send("");
 
             var thisrevision = req19.responseXML.getElementsByTagName("rev");
             var thisrevisionlength = thisrevision.length;
             leftuser = thisrevision[0] && thisrevision[0].getAttribute('user');
             var l = 0;
             while(thisrevision[l]) {
               if(thisrevision[l] && thisrevision[l].getAttribute('user')==leftuser && l<(thisrevisionlength-1)) { l++; } else { break; }
             } 
             nextrevision = thisrevision[l] && thisrevision[l].getAttribute('revid');
             var req9;
             if (req9 = newRequest()) {
               var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000';
               req9.open("GET", text, false);
               req9.send("");
               var rev9 = req9.responseXML.getElementsByTagName("rev")[0];
               var firstrevision = rev9 && rev9.getAttribute('revid');
             }
             var changessincemylasteditid = document.getElementById('changessincemylastedit');
             if(changessincemylasteditid) {
               changessincemylasteditid = changessincemylasteditid && changessincemylasteditid.getAttribute('href') && changessincemylasteditid.getAttribute('href').match(/oldid\=(\d+)/);
               changessincemylasteditid = RegExp.$1;
             }
             if(nextrevision!=firstrevision && nextrevision!=changessincemylasteditid) {
               var newrevisionlink = document.createElement('a');
               newrevisionlink.setAttribute('href', mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+nextrevision+'&diff=cur');
               var EditTextNode = document.createTextNode('← '+configrevisionjumper[1]);
               newrevisionlink.appendChild(EditTextNode);
               newrevisionlink.setAttribute('id', 'penultimateeditor');
               var newline = document.createElement('br');
               if(changessincemylasteditid) {
                 document.getElementById('changessincemylastedit').parentNode.insertBefore( newrevisionlink, document.getElementById('changessincemylastedit').nextSibling );
                 document.getElementById('changessincemylastedit').parentNode.insertBefore( newline, document.getElementById('changessincemylastedit').nextSibling );
               } else {
                 difflink[j].parentNode.insertBefore( newline, difflink[j].nextSibling );
                 difflink[j].parentNode.insertBefore( newrevisionlink, difflink[j].nextSibling );
               }
             }
           }
    }
    if (UrlParameters["diff"]) {
      var newline2 = document.createElement('br');
      difflink[j].parentNode.insertBefore( newline2, difflink[j].nextSibling );
    }
    var currentmovetodiffid = document.getElementById('movetodiff'+j);
    var newoption = document.createElement("option");
    currentmovetodiffid.appendChild(newoption);
    if(j==0) var newoptiontext = document.createTextNode(configrevisionjumper[2]);
    else if (j==1) var newoptiontext = document.createTextNode(configrevisionjumper[3]);
    currentmovetodiffid.getElementsByTagName("option")[0].appendChild(newoptiontext);
    for (var k=0; k<2; k++) {
      if(k==0) { var thisiteration = numberrevisionjumperlength+1; } else { var thisiteration = timerevisionjumperlength+1; }
      for(m=1;m<thisiteration;m++) {
        var newoption = document.createElement("option");
        if(k==0) {
          if(j==0) {
            var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[4];
          } else if (j==1) {
            var thisnewtextnode = diffoptionnames[k][m-1]+' '+configrevisionjumper[5];
          }
        } else if (k==1) {
          var regexprevision = diffoptionnames[k][m-1].match(/(\d+)(\D+)/);
          var regexpnumber = RegExp.$1;
          var regexptype = RegExp.$2;
          if(regexptype=='a') { var regexptypename = configrevisionjumper[6]; } else if(regexptype=='m') { var regexptypename = configrevisionjumper[7]; } else if(regexptype=='d') { var regexptypename = configrevisionjumper[8]; } else if(regexptype=='h') { var regexptypename = configrevisionjumper[9]; }
          if (j==0) {
            var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[10];
          } else if (j==1) { 
            var thisnewtextnode = regexpnumber+' '+regexptypename+' '+configrevisionjumper[11];
          }
        }
        var newoptiontext = document.createTextNode(thisnewtextnode);
        currentmovetodiffid.appendChild(newoption);
        if(k==0) { currentmovetodiffid.getElementsByTagName("option")[m].appendChild(newoptiontext); } else if(k==1) { currentmovetodiffid.getElementsByTagName("option")[m+numberrevisionjumperlength].appendChild(newoptiontext); }
      }
    }
    var handt = numberrevisionjumperlength+timerevisionjumperlength;
    var newoption = document.createElement("option");
    var thisnewtextnode = configrevisionjumper[12];
    var newoptiontext = document.createTextNode(thisnewtextnode);
    currentmovetodiffid.appendChild(newoption);
    currentmovetodiffid.getElementsByTagName("option")[handt+1].appendChild(newoptiontext);
    var newoption = document.createElement("option");
    var thisnewtextnode = configrevisionjumper[13];
    var newoptiontext = document.createTextNode(thisnewtextnode);
    currentmovetodiffid.appendChild(newoption);
    currentmovetodiffid.getElementsByTagName("option")[handt+2].appendChild(newoptiontext);
    var newoption = document.createElement("option");
    var thisnewtextnode = configrevisionjumper[14];
    var newoptiontext = document.createTextNode(thisnewtextnode);
    currentmovetodiffid.appendChild(newoption);
    currentmovetodiffid.getElementsByTagName("option")[handt+3].appendChild(newoptiontext);
    if(j==0) { 
      var newoption = document.createElement("option");
      var thisnewtextnode = configrevisionjumper[15];
      var newoptiontext = document.createTextNode(thisnewtextnode);
      currentmovetodiffid.appendChild(newoption);
      currentmovetodiffid.getElementsByTagName("option")[handt+4].appendChild(newoptiontext);
    } else if (j==1) {
      var newoption = document.createElement("option");
      var thisnewtextnode = configrevisionjumper[16];
      var newoptiontext = document.createTextNode(thisnewtextnode);
      currentmovetodiffid.appendChild(newoption);
      currentmovetodiffid.getElementsByTagName("option")[handt+4].appendChild(newoptiontext);
    }
   }
  }
 }
 }
 if ( (UrlParameters["diff"] && !disabledisplayondiff) || (UrlParameters["oldid"] && !UrlParameters["action"] && !disabledisplayonpermalink) || (mw.config.get('wgAction') == 'view' && displayonview && !UrlParameters["oldid"]) || (mw.config.get('wgAction') == 'history' && displayonhistory) ) $(addrevisionjumper);
 
 function movetodiff(type){
   var handt = numberrevisionjumperlength+timerevisionjumperlength;
   for (i=0;i<(handt+4);i++) {
     if (document.getElementById('movetodiff'+type).options[i+1].selected == true) {
       if (i<numberrevisionjumperlength || i==handt) {
         if(UrlParameters["diff"]) {
           if(type==0) var currentid = document.getElementById('mw-diff-ntitle1');
           else if(type==1) var currentid = document.getElementById('mw-diff-otitle1');
           if(!currentid){ var currentid = document.getElementById('differences-nextlink'); } else { currentid = currentid.getElementsByTagName('a')[0]; }
           currentid = currentid && currentid.getAttribute('href') && currentid.getAttribute('href').match(/oldid\=(\d+)/);
           currentid = RegExp.$1;
         } else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) {
           var currentid = mw.config.get('wgCurRevisionId');
         } else if (mw.config.get('wgAction') == 'history') {
           var currentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value');
         } else {
           var currentid = UrlParameters["oldid"];
         }
         if (i<numberrevisionjumperlength) {
           var revisionlimit = numberrevisionjumper[i];
         } else {
           var revisionlimit = 'a';
           while(revisionlimit.search(/\D/)!=-1) {
             revisionlimit = prompt(configrevisionjumper[17],'50');
           }
           if (revisionlimit>499) revisionlimit = 499;
         }
         if(type==0) var direction = 'older';
         else if(type==1) var direction = 'newer';
         if(UrlParameters["diff"]) {
           if(type==0) var anothercurrentid = document.getElementById('differences-prevlink');
           else if(type==1) var anothercurrentid = document.getElementById('differences-nextlink');
           anothercurrentid = anothercurrentid && anothercurrentid.getAttribute('href') && anothercurrentid.getAttribute('href').match(/oldid\=(\d+)/);
           anothercurrentid = RegExp.$1;
         }
         if (req = newRequest()) {
           if(UrlParameters["diff"]) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+anothercurrentid+'&rvlimit='+revisionlimit+'&rvprop=ids&rvdir='+direction;
           } else {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvstartid='+currentid+'&rvlimit='+(parseInt(revisionlimit)+1)+'&rvprop=ids&rvdir='+direction;
           }
           req.open("GET", text, false);
           req.send("");
           var firstrevision = req.responseXML.getElementsByTagName("rev");
           firstrevision = firstrevision[firstrevision.length-1] && firstrevision[firstrevision.length-1].getAttribute('revid');
           if(getoldid && !UrlParameters["diff"]) {
             location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision;
           } else {
             if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+currentid+'&oldid='+firstrevision;
             else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+firstrevision+'&oldid='+currentid;
           }
         }
       } else if ((i>=numberrevisionjumperlength && i<=handt)|| i==(handt+1)) {
         if(UrlParameters["diff"]) {
           if(type==0) var currentid = document.getElementById('mw-diff-otitle1');
           else if(type==1) var currentid = document.getElementById('mw-diff-ntitle1');
           if(!currentid){ var currentid = document.getElementById('differences-nextlink'); } else { currentid = currentid.getElementsByTagName('a')[0]; }
           currentid = currentid && currentid.getAttribute('href') && currentid.getAttribute('href').match(/oldid\=(\d+)/);
           currentid = RegExp.$1;
           if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1');
           else if(type==1) var permanentid = document.getElementById('mw-diff-otitle1');
           if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; }
           permanentid = permanentid.getAttribute('href') && permanentid.getAttribute('href').match(/oldid\=(\d+)/);
           permanentid = RegExp.$1;
         } else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) {
           var currentid = mw.config.get('wgCurRevisionId');
           var permanentid = currentid;
         } else if (mw.config.get('wgAction') == 'history') {
           var currentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value');
           var permanentid = currentid;
         } else {
           var currentid = UrlParameters["oldid"];
           var permanentid = currentid;
         }
         var req;
         if (req = newRequest()) {
           var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvstartid='+currentid+'&rvprop=timestamp&rvdir=older';
           req.open("GET", text, false);
           req.send("");
 
           var lasttimestamp = req.responseXML.getElementsByTagName("rev")[0].getAttribute('timestamp');
           var lastminute = lasttimestamp.match(/([^\-]*)\-([^\-]*)\-([^T]*)T([^\:]*)\:([^\:]*)\:([^Z]*)Z/);
           lastyear = RegExp.$1;
           lastmonth = RegExp.$2;
           lastday = RegExp.$3;
           lasthour = parseInt(RegExp.$4);
           if (lasthour < 10) { lasthour = "0" + lasthour.toString(); } else { lasthour = lasthour.toString() }
           lastminute = RegExp.$5;
           lastsecond = RegExp.$6;
           var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' ' + lasthour + ':' + lastminute + ':' + lastsecond);
           if(i>=numberrevisionjumperlength && i<=handt) {
             var regexprevision = timerevisionjumper[i-numberrevisionjumperlength].match(/(\d+)(\D+)/);
             var regexpnumber = RegExp.$1;
             var regexptype = RegExp.$2;
             if(regexptype=='a') { var yearmatched = true; } else { var yearmatched = false; }
             if(regexptype=='m') { var monthmatched = true; } else { var monthmatched = false; }
             if(regexptype=='d') { var daymatched = true; } else { var daymatched = false; }
             if(regexptype=='h') { var hourmatched = true; } else { var hourmatched = false; }

             if(type==0) {
               if(yearmatched) {
                 lastdate = lastdate-(parseInt(regexpnumber)*31557816000); 
               }
               if(monthmatched) {
                 lastdate = lastdate-(parseInt(regexpnumber)*(31557816000/12));
               }
               if(daymatched) {
                 lastdate = lastdate-(parseInt(regexpnumber)*86400000);
               }
               if(hourmatched) {
                 lastdate = lastdate-(parseInt(regexpnumber)*3600000);
               }
             } else if(type==1) {
               if(yearmatched) {
                 lastdate = lastdate+(parseInt(regexpnumber)*31557816000); 
               } else if(monthmatched) {
                 lastdate = lastdate+(parseInt(regexpnumber)*(31557816000/12));
               } else if(daymatched) {
                 lastdate = lastdate+(parseInt(regexpnumber)*86400000);
               } else if(hourmatched) {
                 lastdate = lastdate+(parseInt(regexpnumber)*3600000);
               }
             }
           } else if (i==(handt+1)) {
             var getjumptime = prompt(configrevisionjumper[18], '1a 12m 30d 24h');
             var newregularexp = /(\d*)(\D*)(\d*)?(\D*)?(\d*)?(\D*)?(\d*)?(\D*)?/;
             var regexprevision = newregularexp.exec(getjumptime);
             var yearmatched = false;
             var monthmatched = false;
             var daymatched = false;
             var hourmatched = false;
             for(d=1;d<regexprevision.length;d++){
              if(regexprevision[d]) {
               if(regexprevision[d].search(/a/)!=-1) { 
                 if(type==0) {
                   lastdate = lastdate-(parseInt(regexprevision[d-1])*31557816000);
                 } else if(type==1) {
                   lastdate = lastdate+(parseInt(regexprevision[d-1])*31557816000);
                 }
               }
               if(regexprevision[d].search(/m/)!=-1) {
                 if(type==0) {
                   lastdate = lastdate-(parseInt(regexprevision[d-1])*(31557816000/12));
                 } else if(type==1) {
                   lastdate = lastdate+(parseInt(regexprevision[d-1])*(31557816000/12));
                 }
               }
               if(regexprevision[d].search(/d/)!=-1) {
                 if(type==0) {
                   lastdate = lastdate-(parseInt(regexprevision[d-1])*86400000);
                 } else if(type==1) {
                   lastdate = lastdate+(parseInt(regexprevision[d-1])*86400000);
                 }
               }
               if(regexprevision[d].search(/h/)!=-1) {
                 if(type==0) {
                   lastdate = lastdate-(parseInt(regexprevision[d-1])*3600000);
                 } else if(type==1) {
                   lastdate = lastdate+(parseInt(regexprevision[d-1])*3600000);
                 }
               }
              } else {
                break;
              }
             }
           }
           var newdate = new Date();
           newdate.setTime(lastdate);
           var newyear = newdate.getFullYear().toString();
           var newmonth = newdate.getMonth()+1;
           if (newmonth < 10) { newmonth = "0" + newmonth; }
           var newday = newdate.getDate();
           if (newday < 10) { newday = "0" + newday; }
           var newhour = newdate.getHours();
           if (newhour < 10) { newhour = "0" + newhour; }
           var newminute = newdate.getMinutes();
           if (newminute < 10) { var newminute2 = "0" + newminute; } else { var newminute2 = newminute; }
           var newsecond = newdate.getSeconds();
           if (newsecond < 10) { newsecond = "0" + newsecond; }
           var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond;
           var req2;
           if (req2 = newRequest()) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime;
             req2.open("GET", text, false);
             req2.send("");
 
             var lastrevision = req2.responseXML.getElementsByTagName("rev")[0];
             if(!lastrevision){
               var req3;
               if (req3 = newRequest()) {
                 var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime;
                 req3.open("GET", text, false);
                 req3.send("");
 
                 var lastrevision = req3.responseXML.getElementsByTagName("rev")[0];
                 if(getoldid && !UrlParameters["diff"]) {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid');
                 } else {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid');
                 }
               }
             } else {
               if(getoldid && !UrlParameters["diff"]) {
                 location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid');
               } else {
                 var thisrevid = lastrevision.getAttribute('revid');
                 if(thisrevid == mw.config.get('wgCurRevisionId')) {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur'+'&oldid='+permanentid;
                 } else {
                   if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+thisrevid;
                   else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+thisrevid+'&oldid='+permanentid;
                 }
               }
             }
           }
         }
       } else if (i==(handt+2)) {
         if(UrlParameters["diff"]) {
           if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1');
           else if (type==1) var permanentid = document.getElementById('mw-diff-otitle1');
           if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; }
           permanentid = permanentid.getAttribute('href').match(/oldid\=(\d+)/);
           permanentid = RegExp.$1;
         } else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) {
           var permanentid = mw.config.get('wgCurRevisionId');
         } else if (mw.config.get('wgAction') == 'history') {
           var permanentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value');
         } else {
           var permanentid = UrlParameters["oldid"];
         }
         var actualdate = new Date();
         var actualyear = actualdate.getFullYear().toString();
         var actualmonth = actualdate.getMonth()+1;
         if (actualmonth < 10) { actualmonth = "0" + actualmonth; }
         var actualday = actualdate.getDate();
         if (actualday < 10) { actualday = "0" + actualday; }
         var lasttime = false;
         while(!lasttime){
           var getjumptime = prompt(configrevisionjumper[19], actualyear+'-'+actualmonth+'-'+actualday+' 00:00');
           var lasttime = getjumptime.match(/([^\-]*)\-([^\-]*)\-(\S*)\s?([^\:]*)?\:?([^\b]*)?/);
           lastyear = RegExp.$1;
           lastmonth = parseInt(RegExp.$2);
           lastday = parseInt(RegExp.$3);
           lasthour = RegExp.$4;
           lastminute = RegExp.$5;
         }
         if (lastmonth < 10) { lastmonth = "0" + lastmonth.toString(); } else { lastmonth = lastmonth.toString() }
         if (lastday < 10) { lastday = "0" + lastday.toString(); } else { lastday = lastday.toString() }
         if (lasthour) { lasthour = parseInt(lasthour); if (lasthour == 0) { var lasthour2 = "00"; } else if (lasthour < 10) { var lasthour2 = "0" + lasthour.toString(); } else { var lasthour2 = lasthour.toString() } }
         if (lastminute) { lastminute = parseInt(lastminute); if (lastminute == 0) { var lastminute2 = "00"; } else if (lastminute < 10) { var lastminute2 = "0" + lastminute.toString(); } else { var lastminute2 = lastminute.toString() } }
         if (lasthour2 && lastminute2) {
           var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' ' + lasthour2 + ':' + lastminute2 + ':00');
         } else {
           var lastdate = Date.parse(lastmonth + ' ' + lastday + ' ' + lastyear + ' 00:00:00');
         }
         lastdate = lastdate-3600000;
         var newdate = new Date();
         newdate.setTime(lastdate);
         var newyear = newdate.getFullYear().toString();
         var newmonth = newdate.getMonth()+1;
         if (newmonth < 10) { newmonth = "0" + newmonth; }
         var newday = newdate.getDate();
         if (newday < 10) { newday = "0" + newday; }
         var newhour = newdate.getHours();
         if (newhour < 10) { newhour = "0" + newhour; }
         var newminute = newdate.getMinutes();
         if (newminute < 10) { var newminute2 = "0" + newminute; } else { var newminute2 = newminute; }
         var newsecond = newdate.getSeconds();
         if (newsecond < 10) { newsecond = "0" + newsecond; }
         var newtime = newyear + newmonth + newday + newhour + newminute2 + newsecond;
         var req6;
         if (req6 = newRequest()) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=older&rvstart='+newtime;
             req6.open("GET", text, false);
             req6.send("");
 
             var lastrevision = req6.responseXML.getElementsByTagName("rev")[0];
             if(!lastrevision){
               var req7;
               if (req7 = newRequest()) {
                 var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvprop=ids&rvlimit=1&rvdir=newer&rvstart='+newtime;
                 req7.open("GET", text, false);
                 req7.send("");
 
                 var lastrevision = req7.responseXML.getElementsByTagName("rev")[0];
                 if(getoldid && !UrlParameters["diff"]) {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid');
                 } else {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+lastrevision.getAttribute('revid');
                 }
               }
             } else {
               if(getoldid && !UrlParameters["diff"]) {
                 location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+lastrevision.getAttribute('revid');
               } else {
                 var thisrevid = lastrevision.getAttribute('revid');
                 if(thisrevid == mw.config.get('wgCurRevisionId')) {
                   location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur'+'&oldid='+permanentid;
                 } else {
                   if(type==0) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+thisrevid;
                   else if(type==1) location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+thisrevid+'&oldid='+permanentid;
                 }
               }
             }
           }
       } else if (i==(handt+3)) {
         if(UrlParameters["diff"]) {
           if(type==0) var permanentid = document.getElementById('mw-diff-ntitle1');
           else if (type==1) var permanentid = document.getElementById('mw-diff-otitle1');
           if(!permanentid){ var permanentid = document.getElementById('differences-nextlink'); } else { permanentid = permanentid.getElementsByTagName('a')[0]; }
           permanentid = permanentid.getAttribute('href').match(/oldid\=(\d+)/);
           permanentid = RegExp.$1;
         } else if (mw.config.get('wgAction') == 'view' && !UrlParameters["oldid"]) {
           var permanentid = mw.config.get('wgCurRevisionId');
         } else if (mw.config.get('wgAction') == 'history') {
           var permanentid = document.getElementById('pagehistory').getElementsByTagName('li')[0].getElementsByTagName('input')[0].getAttribute('value');
         } else {
           var permanentid = UrlParameters["oldid"];
         }
         if(type==0) {
           if (req = newRequest()) {
             var text = mw.config.get('wgServer')+mw.config.get('wgScriptPath')+'/api.php?format=xml&action=query&prop=revisions&titles='+mw.config.get('wgPageName')+'&rvlimit=1&rvprop=ids&rvdir=newer&rvstart=20000000000000';
             req.open("GET", text, false);
             req.send("");
             var firstrevision = req.responseXML.getElementsByTagName("rev")[0].getAttribute('revid');
             if(getoldid && !UrlParameters["diff"]) {
               location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+firstrevision;
             } else {
               location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff='+permanentid+'&oldid='+firstrevision;
             }
           }
         } else if (type==1) {
           if(getoldid && !UrlParameters["diff"]) {
             location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&oldid='+mw.config.get('wgCurRevisionId');
           } else {
             location.href=mw.config.get('wgServer')+mw.config.get('wgScript')+'?title='+mw.config.get('wgPageName')+'&diff=cur&oldid='+permanentid;
           }
         }
       }
     }
   }
 }
 // </nowiki>
Chúng tôi bán
Bài viết liên quan
Nghe nói cậu là cung cự giải
Nghe nói cậu là cung cự giải
Đây là 1 series của tác giả Crystal星盘塔罗, nói về 12 chòm sao.
Nhân vật Hanekawa Tsubasa trong Monogatari Series
Nhân vật Hanekawa Tsubasa trong Monogatari Series
Hanekawa Tsubasa (羽川 翼, Hanekawa Tsubasa) là bạn cùng lớp cũng như là người bạn thân nhất của Araragi Koyomi
Takamine: Samurai huyền thoại và hai món vũ khí lôi thần ban tặng
Takamine: Samurai huyền thoại và hai món vũ khí lôi thần ban tặng
Cánh cổng Arataki, Kế thừa Iwakura, mãng xà Kitain, Vết cắt sương mù Takamine
Kỹ thuật Feynman có thể giúp bạn nhớ mọi thứ mình đã đọc
Kỹ thuật Feynman có thể giúp bạn nhớ mọi thứ mình đã đọc
Nhà vật lý đoạt giải Nobel Richard Feynman (1918–1988) là một chuyên gia ghi nhớ những gì ông đã đọc