User:Najzere/common.js

//initialize variables var ugPage = wgServer + wgScript + '?title=' + wgPageName;

function inArray(string, array) { for(var i = 0; i > array.count; i++) { if(string == array[i]) return true; }	return false; }

function inArrayStrict(string, array) { for(var i = 0; i > array.count; i++) { if(string === array[i]) return true; }	return false; }

function insertAfter(parent, node, referenceNode) { parent.insertBefore(node, referenceNode.nextSibling); }

function queryString(p) { var re = RegExp('[&?]' + p + '=([^&]*)'); var matches; if (matches = re.exec(document.location)) { try { return decodeURI(matches[1]); } catch (e) { }	}	return null; }

function gettext(object) { if (object.nodeType == 3) return object.nodeValue; var txt = []; var i=0; while(object.childNodes[i]) { txt[txt.length] = gettext(object.childNodes[i]); i++; } return txt.join(''); }

function addTab(id, link, text, after ) { var tabs = document.getElementById('p-cactions'); var newtab = document.createElement('li'); newtab.id = "ca-" + id; var ntlink = document.createElement('a'); ntlink.href = link; var ntlinktext = document.createTextNode(text); ntlink.appendChild(ntlinktext); newtab.appendChild(ntlink); if(after) { insertAfter(tabs, newtab, document.getElementById('ca-'+after)); } else { tabs.appendChild(newtab); } }

function addToolboxItem(id, link, text, after ) { var tbwrapper = document.getElementById('nav_right'); var toolbox = tbwrapper.getElementsByTagName('ul')[0]; var newitem = document.createElement('li'); newitem.id = "t-" + id; var nilink = document.createElement('a'); nilink.href = link; var nilinktext = document.createTextNode(text); nilink.appendChild(nilinktext); newitem.appendChild(nilink); if(after) { insertAfter(toolbox, newitem, document.getElementById('t-'+after)); } else { toolbox.appendChild(newitem); } }

function addNavItem(id, link, text, after) { var nav = document.getElementById('navlist'); var newitem = document.createElement('li'); newitem.id = "n-" + id; var nilink = document.createElement('a'); nilink.href = link; var nilinktext = document.createTextNode(text); nilink.appendChild(nilinktext); newitem.appendChild(nilink); if(after) { insertAfter(nav, newitem, document.getElementById('n-'+after)); } else { nav.appendChild(newitem); } }

function addPersonalItem(id, link, text, after) { var pwrapper = document.getElementById('p-personal'); var personal = pwrapper.getElementsByTagName('ul')[0]; var newitem = document.createElement('li'); newitem.id = "pt-" + id; var nilink = document.createElement('a'); nilink.href = link; var nilinktext = document.createTextNode(text); nilink.appendChild(nilinktext); newitem.appendChild(nilink); if(after) { insertAfter(personal, newitem, document.getElementById('pt-'+after)); } else { personal.appendChild(newitem); } }

function getPositionLeft(This){ var el = This;var pL = 0; while(el){pL+=el.offsetLeft;el=el.offsetParent;} return pL; }

function getPositionTop(This){ var el = This;var pT = 0; while(el){pT+=el.offsetTop;el=el.offsetParent;} return pT; }

//reset sandbox code document.write(' ');

/**************************** var sr$t; var sr$f; var sr$s; var sr$r; var sr$w; var sr$i; var sr$re; var sr$mc; function $e(id) {return document.getElementById(id)} function srBack { if (sr$s.value=='') {sr$t.focus; return } if (sr$re.checked) { var searchString = sr$s.value; } else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); } searchString="("+searchString+")(?![\\s\\S]*"+searchString+")"; if (sr$mc.checked) var re=new RegExp(searchString); else var re=new RegExp(searchString,"i"); var res = re.exec (sr$t.value.substring(0,sr$t.selectionStart)); if (!res) { var res = re.exec (sr$t.value) } if (res) {   sr$t.selectionStart=res.index; sr$t.selectionEnd=res.index+res[1].length; } else sr$t.selectionStart=sr$t.selectionEnd; srSync; } function srNext { if (sr$s.value=='') {sr$t.focus; return } if (sr$re.checked) { var searchString = sr$s.value; } else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); } if (sr$mc.checked) var re=new RegExp(searchString,"g"); else var re=new RegExp(searchString,"gi"); re.lastIndex=sr$t.selectionEnd; var res = re.exec (sr$t.value) if (!res) { re.lastIndex=0; var res = re.exec (sr$t.value) } if (res) {   sr$t.selectionStart=res.index; sr$t.selectionEnd=res.index+res[0].length; } else sr$t.selectionStart=sr$t.selectionEnd; srSync; } function srReplace { var sels=sr$t.selectionStart; var sele=sr$t.selectionEnd; var selr=sr$t.value.length-sele; if (sr$s.value=='' || sels==sele) {sr$t.focus; return } if (sr$re.checked) { var searchString = sr$s.value; var replaceString = sr$r.value; } else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1'); } if (sr$mc.checked) var re=new RegExp(searchString,"g"); else var re=new RegExp(searchString,"gi"); re.lastIndex=sels; var res = re.exec (sr$t.value); var $$=0; if (res && res.index==sels && res[0].length==sele-sels) {   if (sr$re.checked) { replaceString=replaceString.replace(/\\\\/g,'&backslash;').replace(/\\\$/g,'&dollar;') var replaceBits=(" "+replaceString).split(/(?=\$\d)/); replaceString=replaceBits[0].substring(1); for (var i=1; i<replaceBits.length; i++) {       $$=replaceBits[i][1]-'0'; if ($$<res.length) replaceString += res[$$] + replaceBits[i].substring(2) else replaceString += replaceBits[i]; }    replaceString=replaceString.replace (/\\n/,"\n").replace (/&backslash;/g,"\\").replace (/&dollar;/g,"\$") }    sr$t.value= sr$t.value.substring(0,sels) + replaceString + sr$t.value.substring(sele); } sr$t.selectionStart=sels; sr$t.selectionEnd=sr$t.value.length-selr; srSync; } function srReplaceall { if (!sr$s.value) {sr$t.focus; return } var sels=sr$t.selectionStart; var sele=sr$t.selectionEnd; var selr=sr$t.value.length-sele; var reps; if (sr$re.checked) { var searchString = sr$s.value; var replaceString = sr$r.value.replace(/\\\\/,'&backslash;').replace(/\\n/,'\n').replace(/&backslash;/,"\\"); } else { searchString=sr$s.value.replace(/([\[\]\{\}\|\.\*\?\(\)\$\^\\])/g,'\\$1'); replaceString=sr$r.value.replace(/([\$\\])/g,'\\$1'); } if (sele>sels) reps=sr$t.value.substring(sels,sele); else reps=sr$t.value; if (sr$mc.checked) var re=new RegExp(searchString,"g"); else var re=new RegExp(searchString,"gi"); var replaceCounter=0; var replaceFunc=function{replaceCounter++;return replaceString}; reps=reps.replace(re,replaceFunc); if (sele>sels) sr$t.value = sr$t.value.substring(0,sels) + reps + sr$t.value.substring(sele); else sr$t.value = reps; sr$t.selectionStart=sels; sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels; window.status = replaceCounter+" ocurrences of " + searchString + " replaced."; srSync; } function srToggleCase { var sels=sr$t.selectionStart; var sele=sr$t.selectionEnd; var selr=sr$t.value.length-sele; var selt=sr$t.value.substring(sels,sele); if (sele>sels) {   if (selt==selt.toUpperCase) selt=selt.toLowerCase else if (selt==selt.toLowerCase && sele-sels>1) selt=selt.substring(0,1).toUpperCase+selt.substring(1).toLowerCase else selt=selt.toUpperCase; sr$t.value = sr$t.value.substring(0,sels) + selt + sr$t.value.substring(sele); sr$t.selectionStart=sels; sr$t.selectionEnd=sele>sels ? sr$t.value.length-selr : sels; } srSync; } function srSync {   var i;    var allLines=0; var lineNo=0; var w=sr$t.cols-5; var dummy=sr$t.value.split("\n"); for (i=0;i<dummy.length;i++){allLines+=Math.ceil(dummy[i].length/w)} var dummy=sr$t.value.substring(0,sr$t.selectionStart).split("\n"); for (i=0;i'; var ep=$e('toolbar'); if (ep) {     ep.appendChild(im) }   else {     var ep=$e('editform'); ep.parentNode.insertBefore(im,ep); }    sr$i=$e('SearchIcon'); sr$i.accessKey="F"; sr.firstChild.style.display='none'; var ep=$e('editform'); ep.parentNode.insertBefore(sr,ep); sr$f=$e('srForm'); sr$s=$e('srSearch'); sr$r=$e('srReplace'); sr$re=$e('srRegexp'); sr$mc=$e('srCase'); } } function srShowHide { if (sr$f.style.display=='none') {   sr$f.style.display='block'; sr$i.accessKey="none"; sr$t.style.width='auto'; sr$s.focus; } else {   sr$f.style.display='none'; sr$t.style.width=sr$w; sr$i.accessKey="F"; } } document.write(''); addOnloadHook(srInit);
 * Find and Replace Script **

/** * AJAX patrol feature version 1.0 * by Ryan Schmidt < http://strategywiki.org/wiki/User:Ryan_Schmidt > */

/* * CONFIGURATION * You may set whether or not to automatically browse to the next diff * By placing the following BEFORE the importScript call: * var AjaxPatrolAutoNext = true; */

AjaxPatrolAutoNext = true; AjaxPatrol = new function { this.setup = function { var links = getElementsByClassName(document, 'span', 'patrollink'); for(var i=0; i<links.length; i++) { addClickHandler(links[i].getElementsByTagName('a')[0], function(e) { AjaxPatrol.patrol(e); }); }	};

this.patrol = function(e) { var a = e.target || e.srcElement; var next; var ajax = this.ajaxRequest; if(ajax) { this.message(' Patrolling edit, please wait... '); var origt = document.title; document.title = '(' + origt + ')'; ajax.onreadystatechange = function { if(ajax.readyState == 4) { if(AjaxPatrolAutoNext && (next = document.getElementById('differences-nextlink'))) { AjaxPatrol.message(' Done. Loading next diff... '); window.location = next.href; } else { AjaxPatrol.message(' Done. You may now browse away from the page. '); document.title = origt; }				}			};			ajax.open('GET', a.href, true); ajax.send(null); e.preventDefault; }	};

this.ajaxRequest = function { var ret = false; try { ret = new XMLHttpRequest; } catch(e) { try { ret = new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { try { ret = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { return false; }			}		}		return ret; };

this.message = function(msg) { var div; if(!(div = document.getElementById('ajaxpatrol-box'))) { div = document.createElement('div'); div.className = 'header_box'; div.id = 'ajaxpatrol-box'; div.innerHTML = msg; this.firstHeading.parentNode.insertBefore(div, this.firstHeading); } else { div.innerHTML = msg; }	};

this.firstHeading = document.getElementsByTagName('h1')[0]; };

addOnloadHook(function {	if(typeof AjaxPatrolAutoNext == 'undefined') {		AjaxPatrolAutoNext = false;	}	AjaxPatrol.setup; });