User:Jdrowlands/monobook.js: Difference between revisions

From the Super Mario Wiki, the Mario encyclopedia
Jump to navigationJump to search
mNo edit summary
No edit summary
Line 76: Line 76:
   }
   }


 
/*
 
function formatRecentChanges() {
var rcp_http;
  /*
var rcp_enabled;
    * formatRecentChanges()
var rcp_num_pages;
    * (c) Tim Laqua, 2007 (http://en.wikipedia.org/wiki/User:Tim_Laqua/Scripts/formatRecentChanges.js)
var rcp_refresh;
    */
rcp_enabled=true
addOnloadHook( rcp_init );
   
   
/* initalise */
  if (wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Recentchanges' ) {
function rcp_init() {
    var colorPrimaryRow = '#77beea';
    var colorAltRow = '#82b9e6';
    var colorPatrolledRow = '#77beea';
    var colorHeaderRow = '#67aeca';
    var colorFooterRow = '#67aeca';
    var columns = '7';
   
   
  // allow user settings through
    var colUL = document.getElementsByTagName('ul');
  if(rcp_enabled == null) {
    if ( colUL.length > 0 ) {
    rcp_enabled = false;
      var tableWrapper = document.createElement('table');
  }
      var tableNode = document.createElement('tbody');
  if(rcp_num_pages == null) {
      tableWrapper.width = '100%';
    rcp_num_pages = 10;
      var contentDiv = document.getElementById('content');
  }
      contentDiv.appendChild(tableWrapper);
  if(rcp_refresh == null) {
      tableWrapper.appendChild(tableNode);
    rcp_refresh = 5;
  }
   
   
  // A few limits to be nice to the servers
      for(var i=0; i<colUL.length; i++) {
  if (rcp_num_pages > 50) {
        if (colUL[i].className == 'special') {
    rcp_num_pages = 50;
          var altRow = false;
  }
  if (rcp_num_pages < 1) {
    rcp_num_pages = 1;
  }
  if (rcp_refresh < 2) {
    rcp_refresh = 2;
  }
   
   
  // get our cookie
          var nodeListHeading = document.getElementsByTagName('h4')[0];
  if (document.cookie.length > 0) {
          var rowHeading = document.createElement('tr');
    var c_start = document.cookie.indexOf("rcp_show_box=");
          var cellHeading = document.createElement('td');
    if (c_start != -1) {
      c_start = c_start + 13;
      var c_end = document.cookie.indexOf(";", c_start);
      if (c_end == -1) {
        c_end = document.cookie.length;
      }
   
   
      if (document.cookie.substring(c_start, c_end) == "yes") {
          cellHeading.appendChild(nodeListHeading);
        rcp_enabled = true;
          cellHeading.colSpan = columns;
      } else {
          rowHeading.appendChild(cellHeading);
        rcp_enabled = false;
          rowHeading.style.backgroundColor = colorHeaderRow;
      }
    }
  }
   
   
  // Either make a request or show nothing
          tableNode.appendChild(rowHeading);
  if (rcp_enabled == true) {
    rcp_ajax_request();
  } else {
    rcp_draw_disabled_box();
  }
}
   
   
/* init ajax */
          var colLI = colUL[i].getElementsByTagName('li');
function rcp_create_request() {
          for(var j=0; j<colLI.length; j++) {
  try {
            var minor = false;
    rcp_http = new XMLHttpRequest();
            var bot = false;
            var unpatrolled = false;
            var newpage = false;
   
   
  } catch (e) {
            var rowNode = document.createElement('TR');
    try {
      rcp_http = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        rcp_http = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        alert("Your browser does not support AJAX!");
        return false;
      }
    }
  }
   
   
  rcp_http.onreadystatechange = function() {
            var flagNode = document.createElement('TD');
    if(rcp_http.readyState == 4) rcp_ajax_response();
            flagNode.style.whiteSpace = 'nowrap';  
  }
   
   
  return true;
            var changedNode = document.createElement('TD');
}
            changedNode.style.whiteSpace = 'nowrap';
            changedNode.style.textAlign = 'right';
   
   
/* make a request */
            var messageNode = document.createElement('TD');
function rcp_ajax_request() {
  // check we are enabled
  if (rcp_enabled == false) return;
   
   
  // firstly, inform the user
            //var colSPAN = colLI[j].getElementsByTagName('span');
  var cur_box = document.getElementById('p-recentchanges');
            var colSPAN = colLI[j].childNodes;
  if (cur_box != null) {
            for(var k=0; k < colSPAN.length; k++) {
    cur_box.firstChild.firstChild.data = 'Recent Changes (updating)';
              if (colSPAN[k].nodeType == 1) {
  }
                switch (colSPAN[k].className.toLowerCase()) {
                  case 'mw-plusminus-neg':
                    //add to changedNode
                    changedNode.appendChild(colSPAN[k--]);
                    break;
                  case 'mw-plusminus-null':
                    //add to changedNode
                    changedNode.appendChild(colSPAN[k--]);
                    break;
                  case 'mw-plusminus-pos':
                    //add to changedNode
                    changedNode.appendChild(colSPAN[k--]);
                    break;
                  case 'unpatrolled':
                    //add to flagNode
                    unpatrolled = true;
                    flagNode.appendChild(colSPAN[k--]);
                    break;
                  case 'minor':
                    //add to flagNode
                    minor = true;
                    flagNode.appendChild(colSPAN[k--]);
                    break;
                  case 'newpage':
                    //add to flagNode
                    newpage = true;
                    flagNode.appendChild(colSPAN[k--]);
                    break;
                  case 'bot':
                    //add to flagNode
                    bot = true;
                    flagNode.appendChild(colSPAN[k--]);
                    break;
                  case 'comment':
                    //add to messageNode
                    messageNode.appendChild(colSPAN[k--]);
                    break;
                  default:
                    //do nothing
                }
              }
            }
   
   
  if (rcp_create_request () == false) {
            //check for unpatrolled flag
    if (cur_box != null) {
            if (unpatrolled) {
      cur_box.firstChild.firstChild.data = 'Recent Changes (update failed)';
              rowNode.style.backgroundColor = colorPatrolledRow;
    } else {
            } else {
      alert ("There seems to be a problem using the RecentChangePatrol script. I can't make AJAX objects, so I'm just going to complain. God Bless!");
              if (altRow) {
    }
                rowNode.style.backgroundColor = colorAltRow;
  }
              } else {
                rowNode.style.backgroundColor = colorPrimaryRow;
              }
            }
            altRow = altRow ? false : true;
   
   
  // Then make the request
            var regexp = /; (\d\d:\d\d)/i;
  rcp_http.open("GET", "http://en.wikipedia.org/w/api.php?action=query&list=recentchanges&format=xml&rcnamespace=0&rcshow=!bot&rcshow=!minor&rclimit=" + rcp_num_pages, true);
            var colMatches = colLI[j].innerHTML.match(regexp);
  rcp_http.send(null);
            var time = colMatches[1];
}
            var cleanText = colLI[j].innerHTML.replace(regexp,'');
   
   
/* we have received a response */
            var arrLI = cleanText.split(' . . ');
function rcp_ajax_response() {
   
   
  var items = rcp_http.responseXML.getElementsByTagName('rc');
            var timeNode = document.createElement('TD');
            timeNode.innerHTML = time;
            timeNode.style.whiteSpace = 'nowrap';
   
   
  // create the div that holds all the recentchanges links
            var contextNode = document.createElement('TD');
  var link_div = document.createElement('div');
            contextNode.innerHTML = arrLI[0];
  link_div.className = 'pBody';
            contextNode.style.whiteSpace = 'nowrap';
  var list = document.createElement('ul');
  link_div.appendChild(list);
   
   
  // populate the list with 10 links.
            var titleNode = document.createElement('TD');
  for (var i = 0; i < items.length; i++) {
            //titleNode.style.whiteSpace = 'nowrap';
    var item_name = items[i].getAttribute('title');
            var nameNode = document.createElement('TD');
    var item_url = 'http://www.mariowiki.com/index.php?diff=cur&oldid=prev&title=' + escape(item_name);
            nameNode.style.whiteSpace = 'nowrap';
   
   
    a = document.createElement('a');
            if (arrLI.length == 4) {
    a.setAttribute('href', item_url);
              //standard entry
    a.appendChild(document.createTextNode(item_name));
              titleNode.innerHTML = arrLI[1];
              nameNode.innerHTML = arrLI[3];
            } else if (arrLI.length == 2) {
              //log message - append fragment to message node
              nameNode.innerHTML = arrLI[1];
            }
   
   
    var li = document.createElement('li');
            if (changedNode.firstChild) {
    li.appendChild(a);
              changedNode.firstChild.innerHTML =
    list.appendChild(li);
                changedNode.firstChild.innerHTML.replace(/(^\s*\()|(\)\s*$)/ig,'');
  }
            }
   
   
  // Container div
            if (messageNode.firstChild) {
  var div = document.createElement('div');
              messageNode.firstChild.innerHTML =  
  div.setAttribute('id', 'p-recentchanges');
                messageNode.firstChild.innerHTML.replace(/(^\s*\()|(\)\s*$)/ig,'');
  div.className = 'portlet';
            }
  var heading = document.createElement('h5');
  heading.appendChild(document.createTextNode('Recent Changes'));
  div.appendChild(heading);
  div.appendChild(link_div);
   
   
  // disable link
            rowNode.appendChild(timeNode);
  var p = document.createElement('p');
            rowNode.appendChild(contextNode);
  p.style.fontSize = 'x-small';
            rowNode.appendChild(flagNode);
  p.style.margin = '0px';
            rowNode.appendChild(titleNode);
  p.style.textAlign = 'right';
            rowNode.appendChild(messageNode);
  a = document.createElement('a');
            rowNode.appendChild(nameNode);
  a.appendChild(document.createTextNode('disable this box'));
            rowNode.appendChild(changedNode);
  a.onclick = rcp_disable_box;
  p.appendChild(a);
  link_div.appendChild(p);
   
   
  // now replace the div
            tableNode.appendChild(rowNode);
  var old_div = document.getElementById('p-recentchanges');
          }
  var side_col = document.getElementById('column-one');
          colUL[i].parentNode.removeChild(colUL[i--]);
  if (old_div != null) {
        }
    side_col.replaceChild(div, old_div);
      }
  } else {
    }
    var node = document.getElementById('p-search');
  }
    side_col.insertBefore(div, node);
  }
  }
/* </nowiki></pre> */
  // and do it again in 5 secs
  setTimeout("rcp_ajax_request()", rcp_refresh * 1000);
}
function rcp_disable_box() {
  rcp_enabled = false;
  rcp_draw_disabled_box();
  document.cookie = "rcp_show_box=no; path=/";
}
function rcp_enable_box() {
  rcp_enabled = true;
  document.cookie = "rcp_show_box=yes; path=/";
  rcp_ajax_request();
}
   
function rcp_draw_disabled_box() {
  // Container div
  var link_div = document.createElement('div');
  link_div.className = 'pBody';
  var div = document.createElement('div');
  div.setAttribute('id', 'p-recentchanges');
  div.className = 'portlet';
  var heading = document.createElement('h5');
  heading.appendChild(document.createTextNode('Recent Changes'));
  div.appendChild(heading);
  div.appendChild(link_div);
  // enable link
  var p = document.createElement('p');
  p.style.fontSize = 'x-small';
  p.style.margin = '0px';
  var a = document.createElement('a');
  a.appendChild(document.createTextNode('enable this box'));
  a.onclick = rcp_enable_box;
  p.appendChild(a);
  link_div.appendChild(p);
  // now replace the div
  var old_div = document.getElementById('p-recentchanges');
  var side_col = document.getElementById('column-one');
  if (old_div != null) {
    side_col.replaceChild(div, old_div);
  } else {
    var node = document.getElementById('p-search');
    side_col.insertBefore(div, node);
  }
}
/* </nowiki> </pre> */

Revision as of 10:24, March 23, 2008

 /* <pre> <nowiki> */ 
/* WikEd text editor */
document.write('<script type="text/javascript" src="'
+ 'http://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s"></script>');



function addTab(id, after, caption, url) {
if (!document.getElementById(id)) {
var edit = document.getElementById(after);
if (!edit) return; //If the previous tab doesn't exist, don't add this one
var editparent = edit.parentNode;
var aseclinkcaption = document.createTextNode(caption)
var aseclink = document.createElement('a');
aseclink.setAttribute('href',url);
var addsectionlinkcaption = aseclink.appendChild(aseclinkcaption);
var asec = document.createElement('li');
asec.setAttribute('id',id);
var addsectionlink = asec.appendChild(aseclink);
var addsection = editparent.insertBefore(asec,edit.nextSibling);
}
} 
//source: http://en.wikipedia.org/wiki/User:Flex/welcome_newuser.js
function welcome() {

// Find the edit box
var txt = document.editform.wpTextbox1;

//The welcome *template* you want to use
var welcome_user = 'Jdrowlands';
var welcome_summary  = 'Welcome';
var welcome_watch    = false;

var tag = '{{welcome|'+ welcome_user +'}}';

if (txt.value.indexOf(tag) == -1) {

txt.value += tag;

document.editform.wpSummary.value     = welcome_summary;
document.editform.wpWatchthis.checked = welcome_watch;

document.editform.submit();
} 
else {
document.getElementById('ca-unverified').firstChild.style.backgroundColor = "#ff4444";
document.getElementById('ca-unverified').style.backgroundColor            = "#ff4444";
}
}
addOnloadHook(
function () 
{
if(document.title.indexOf("Editing User talk:") == 0) 
{
addPortletLink('p-cactions', 'javascript:welcome()', 'welcome', 'ca-welcome', 'Adds a welcome note to the new user', '', '');
}
}
);
// [[user:Where/usertabs]]
// This is a good one!
 
addOnloadHook(function() {
  if (wgTitle.indexOf("/") != -1 || document.title.indexOf("- History -") != -1)  //no subpages or history
     return;
  if (wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk") {
     var username = encodeURIComponent( wgTitle );
     addPortletLink("p-cactions", wgServer + "/Special:Contributions/" + username, "Edits", "ca-contrib", "User contributions");
     addPortletLink("p-cactions", "/index.php?title=Special:EditCount&target="+ username + "&doeditcount=Show+count", "Edit count", "ca-editcount", "Get this user's edit count.");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Log&type=move&user=" + username, "Moves", "ca-pagemoves", "Page moves by this user");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Log&type=block&page=User:" + username, "Blocks", "ca-blog", "Blocks received by this user");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Prefixindex&from=" + username + "&namespace=2", "Userspace", "", "List of pages in this user's userspace");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Log&type=block&user=" + username, "Block Log", "", "Blocks by this user");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Log&type=protect&user=" + username, "Protections", "", "Protections by this user");
     addPortletLink("p-cactions", wgServer + "/index.php?title=Special:Log&type=delete&user=" + username, "Deletions", "", "Deletions by this user");
  }

/*
function formatRecentChanges() {
   /*
    * formatRecentChanges()
    * (c) Tim Laqua, 2007 (http://en.wikipedia.org/wiki/User:Tim_Laqua/Scripts/formatRecentChanges.js)
    */
 
   if (wgCanonicalNamespace == 'Special' && wgCanonicalSpecialPageName == 'Recentchanges' ) {
     var colorPrimaryRow = '#77beea';
     var colorAltRow = '#82b9e6';
     var colorPatrolledRow = '#77beea';
     var colorHeaderRow = '#67aeca';
     var colorFooterRow = '#67aeca';
     var columns = '7'; 
 
     var colUL = document.getElementsByTagName('ul');
     if ( colUL.length > 0 ) {
       var tableWrapper = document.createElement('table');
       var tableNode = document.createElement('tbody');
       tableWrapper.width = '100%';
       var contentDiv = document.getElementById('content');
       contentDiv.appendChild(tableWrapper);
       tableWrapper.appendChild(tableNode);
 
       for(var i=0; i<colUL.length; i++) {
         if (colUL[i].className == 'special') {
           var altRow = false;
 
           var nodeListHeading = document.getElementsByTagName('h4')[0];
           var rowHeading = document.createElement('tr');
           var cellHeading = document.createElement('td');
 
           cellHeading.appendChild(nodeListHeading);
           cellHeading.colSpan = columns;
           rowHeading.appendChild(cellHeading);
           rowHeading.style.backgroundColor = colorHeaderRow;
 
           tableNode.appendChild(rowHeading);
 
           var colLI = colUL[i].getElementsByTagName('li');
           for(var j=0; j<colLI.length; j++) {
             var minor = false;
             var bot = false;
             var unpatrolled = false;
             var newpage = false;
 
             var rowNode = document.createElement('TR');
 
             var flagNode = document.createElement('TD');
             flagNode.style.whiteSpace = 'nowrap'; 
 
             var changedNode = document.createElement('TD');
             changedNode.style.whiteSpace = 'nowrap';
             changedNode.style.textAlign = 'right';
 
             var messageNode = document.createElement('TD');
 
             //var colSPAN = colLI[j].getElementsByTagName('span');
             var colSPAN = colLI[j].childNodes;
             for(var k=0; k < colSPAN.length; k++) {
               if (colSPAN[k].nodeType == 1) {
                 switch (colSPAN[k].className.toLowerCase()) {
                   case 'mw-plusminus-neg':
                     //add to changedNode
                     changedNode.appendChild(colSPAN[k--]);
                     break;
                   case 'mw-plusminus-null':
                     //add to changedNode
                     changedNode.appendChild(colSPAN[k--]);
                     break;
                   case 'mw-plusminus-pos':
                     //add to changedNode
                     changedNode.appendChild(colSPAN[k--]);
                     break;
                   case 'unpatrolled':
                     //add to flagNode
                     unpatrolled = true;
                     flagNode.appendChild(colSPAN[k--]);
                     break;
                   case 'minor':
                     //add to flagNode
                     minor = true;
                     flagNode.appendChild(colSPAN[k--]);
                     break;
                   case 'newpage':
                     //add to flagNode
                     newpage = true;
                     flagNode.appendChild(colSPAN[k--]);
                     break;
                   case 'bot':
                     //add to flagNode
                     bot = true;
                     flagNode.appendChild(colSPAN[k--]);
                     break;
                   case 'comment':
                     //add to messageNode
                     messageNode.appendChild(colSPAN[k--]);
                     break;
                   default:
                     //do nothing
                 }
               }
             }
 
             //check for unpatrolled flag
             if (unpatrolled) {
               rowNode.style.backgroundColor = colorPatrolledRow;
             } else {
               if (altRow) {
                 rowNode.style.backgroundColor = colorAltRow;
               } else {
                 rowNode.style.backgroundColor = colorPrimaryRow;
               }
             }
             altRow = altRow ? false : true;
 
             var regexp = /; (\d\d:\d\d)/i;
             var colMatches = colLI[j].innerHTML.match(regexp);
             var time = colMatches[1];
             var cleanText = colLI[j].innerHTML.replace(regexp,'');
 
             var arrLI = cleanText.split(' . . ');
 
             var timeNode = document.createElement('TD');
             timeNode.innerHTML = time;
             timeNode.style.whiteSpace = 'nowrap';
 
             var contextNode = document.createElement('TD');
             contextNode.innerHTML = arrLI[0];
             contextNode.style.whiteSpace = 'nowrap';
 
             var titleNode = document.createElement('TD');
             //titleNode.style.whiteSpace = 'nowrap';
             var nameNode = document.createElement('TD');
             nameNode.style.whiteSpace = 'nowrap';
 
             if (arrLI.length == 4) {
               //standard entry
               titleNode.innerHTML = arrLI[1];
               nameNode.innerHTML = arrLI[3];
             } else if (arrLI.length == 2) {
               //log message - append fragment to message node
               nameNode.innerHTML = arrLI[1];
             }
 
             if (changedNode.firstChild) {
               changedNode.firstChild.innerHTML = 
                 changedNode.firstChild.innerHTML.replace(/(^\s*\()|(\)\s*$)/ig,'');
             }
 
             if (messageNode.firstChild) {
               messageNode.firstChild.innerHTML = 
                 messageNode.firstChild.innerHTML.replace(/(^\s*\()|(\)\s*$)/ig,'');
             }
 
             rowNode.appendChild(timeNode);
             rowNode.appendChild(contextNode);
             rowNode.appendChild(flagNode);
             rowNode.appendChild(titleNode);
             rowNode.appendChild(messageNode);
             rowNode.appendChild(nameNode);
             rowNode.appendChild(changedNode);
 
             tableNode.appendChild(rowNode);
           }
           colUL[i].parentNode.removeChild(colUL[i--]);
         }
       }
     }
   }
 }
/* </nowiki></pre> */