Index: wikibits.js
===================================================================
--- wikibits.js	(revision 15862)
+++ wikibits.js	(working copy)
@@ -15,8 +15,9 @@
 
 var doneOnloadHook;
 
-if (!window.onloadFuncts)
+if (!window.onloadFuncts) {
 	var onloadFuncts = [];
+}
 
 function addOnloadHook(hookFunct) {
 	// Allows add-on scripts to add onload functions
@@ -25,8 +26,9 @@
 
 function runOnloadHook() {
 	// don't run anything below this for non-dom browsers
-	if (doneOnloadHook || !(document.getElementById && document.getElementsByTagName))
+	if (doneOnloadHook || !(document.getElementById && document.getElementsByTagName)) {
 		return;
+	}
 
 	histrowinit();
 	unhidetzbutton();
@@ -36,17 +38,19 @@
 	setupCheckboxShiftClick();
 
 	// Run any added-on functions
-	for (var i = 0; i < onloadFuncts.length; i++)
+	for (var i = 0; i < onloadFuncts.length; i++) {
 		onloadFuncts[i]();
+	}
 
 	doneOnloadHook = true;
 }
 
 function hookEvent(hookName, hookFunct) {
-	if (window.addEventListener)
+	if (window.addEventListener) {
 		addEventListener(hookName, hookFunct, false);
-	else if (window.attachEvent)
+	} else if (window.attachEvent) {
 		attachEvent("on" + hookName, hookFunct);
+	}
 }
 
 hookEvent("load", runOnloadHook);
@@ -62,8 +66,9 @@
 	}
 }
 // Un-trap us from framesets
-if (window.top != window)
+if (window.top != window) {
 	window.top.location = window.location;
+}
 
 // for enhanced RecentChanges
 function toggleVisibility(_levelId, _otherId, _linkId) {
@@ -85,8 +90,9 @@
 // attach event handlers to the input elements on history page
 function histrowinit() {
 	var hf = document.getElementById('pagehistory');
-	if (!hf)
+	if (!hf) {
 		return;
+	}
 	var lis = hf.getElementsByTagName('li');
 	for (var i = 0; i < lis.length; i++) {
 		var inputs = historyRadios(lis[i]);
@@ -102,8 +108,9 @@
 	var inputs = parent.getElementsByTagName('input');
 	var radios = [];
 	for (var i = 0; i < inputs.length; i++) {
-		if (inputs[i].name == "diff" || inputs[i].name == "oldid")
+		if (inputs[i].name == "diff" || inputs[i].name == "oldid") {
 			radios[radios.length] = inputs[i];
+		}
 	}
 	return radios;
 }
@@ -113,15 +120,17 @@
 	var dli = false; // the li where the diff radio is checked
 	var oli = false; // the li where the oldid radio is checked
 	var hf = document.getElementById('pagehistory');
-	if (!hf)
+	if (!hf) {
 		return true;
+	}
 	var lis = hf.getElementsByTagName('li');
-	for (i=0;i<lis.length;i++) {
+	for (var i=0;i<lis.length;i++) {
 		var inputs = historyRadios(lis[i]);
 		if (inputs[1] && inputs[0]) {
 			if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button
-				if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value)
+				if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {
 					return false;
+				}
 				if (oli) { // it's the second checked radio
 					if (inputs[1].checked) {
 						oli.className = "selected";
@@ -130,23 +139,28 @@
 				} else if (inputs[0].checked) {
 					return false;
 				}
-				if (inputs[0].checked)
+				if (inputs[0].checked) {
 					dli = lis[i];
-				if (!oli)
+				}
+				if (!oli) {
 					inputs[0].style.visibility = 'hidden';
-				if (dli)
+				}
+				if (dli) {
 					inputs[1].style.visibility = 'hidden';
+				}
 				lis[i].className = "selected";
 				oli = lis[i];
 			}  else { // no radio is checked in this row
-				if (!oli)
+				if (!oli) {
 					inputs[0].style.visibility = 'hidden';
-				else
+				} else {
 					inputs[0].style.visibility = 'visible';
-				if (dli)
+				}
+				if (dli) {
 					inputs[1].style.visibility = 'hidden';
-				else
+				} else {
 					inputs[1].style.visibility = 'visible';
+				}
 				lis[i].className = "";
 			}
 		}
@@ -159,10 +173,12 @@
 // more comments to follow
 function tabbedprefs() {
 	var prefform = document.getElementById('preferences');
-	if (!prefform || !document.createElement)
+	if (!prefform || !document.createElement) {
 		return;
-	if (prefform.nodeName.toLowerCase() == 'a')
+	}
+	if (prefform.nodeName.toLowerCase() == 'a') {
 		return; // Occasional IE problem
+	}
 	prefform.className = prefform.className + 'jsprefs';
 	var sections = new Array();
 	var children = prefform.childNodes;
@@ -171,21 +187,24 @@
 		if (children[i].nodeName.toLowerCase() == 'fieldset') {
 			children[i].id = 'prefsection-' + seci;
 			children[i].className = 'prefsection';
-			if (is_opera || is_khtml)
+			if (is_opera || is_khtml) {
 				children[i].className = 'prefsection operaprefsection';
+			}
 			var legends = children[i].getElementsByTagName('legend');
 			sections[seci] = new Object();
 			legends[0].className = 'mainLegend';
-			if (legends[0] && legends[0].firstChild.nodeValue)
+			if (legends[0] && legends[0].firstChild.nodeValue) {
 				sections[seci].text = legends[0].firstChild.nodeValue;
-			else
+			} else {
 				sections[seci].text = '# ' + seci;
+			}
 			sections[seci].secid = children[i].id;
 			seci++;
-			if (sections.length != 1)
+			if (sections.length != 1) {
 				children[i].style.display = 'none';
-			else
+			} else {
 				var selectedid = children[i].id;
+			}
 		}
 	}
 	var toc = document.createElement('ul');
@@ -193,8 +212,9 @@
 	toc.selectedid = selectedid;
 	for (i = 0; i < sections.length; i++) {
 		var li = document.createElement('li');
-		if (i == 0)
+		if (i === 0) {
 			li.className = 'selected';
+		}
 		var a = document.createElement('a');
 		a.href = '#' + sections[i].secid;
 		a.onmousedown = a.onclick = uncoversection;
@@ -241,8 +261,9 @@
 
 function unhidetzbutton() {
 	var tzb = document.getElementById('guesstimezonebutton');
-	if (tzb)
+	if (tzb) {
 		tzb.style.display = 'inline';
+	}
 }
 
 // in [-]HH:MM format...
@@ -267,9 +288,10 @@
 	if (document.createTextNode) {
 		// Uses DOM calls to avoid document.write + XHTML issues
 
-		var linkHolder = document.getElementById('toctitle')
-		if (!linkHolder)
+		var linkHolder = document.getElementById('toctitle');
+		if (!linkHolder) {
 			return;
+		}
 
 		var outerSpan = document.createElement('span');
 		outerSpan.className = 'toctoggle';
@@ -288,22 +310,24 @@
 		linkHolder.appendChild(outerSpan);
 
 		var cookiePos = document.cookie.indexOf("hidetoc=");
-		if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1)
+		if (cookiePos > -1 && document.cookie.charAt(cookiePos + 8) == 1) {
 			toggleToc();
+		}
 	}
 }
 
 function changeText(el, newText) {
 	// Safari work around
-	if (el.innerText)
+	if (el.innerText) {
 		el.innerText = newText;
-	else if (el.firstChild && el.firstChild.nodeValue)
+	} else if (el.firstChild && el.firstChild.nodeValue) {
 		el.firstChild.nodeValue = newText;
+	}
 }
 
 function toggleToc() {
 	var toc = document.getElementById('toc').getElementsByTagName('ul')[0];
-	var toggleLink = document.getElementById('togglelink')
+	var toggleLink = document.getElementById('togglelink');
 
 	if (toc && toggleLink && toc.style.display == 'none') {
 		changeText(toggleLink, tocHideText);
@@ -346,7 +370,7 @@
 	image.onclick = function() {
 		insertTags(item.tagOpen, item.tagClose, item.sampleText);
 		return false;
-	}
+	};
 	
 	parent.appendChild(image);
 	return true;
@@ -354,21 +378,22 @@
 
 function mwSetupToolbar() {
 	var toolbar = document.getElementById('toolbar');
-	if (!toolbar) return false;
+	if (!toolbar) { return false; }
 
 	var textbox = document.getElementById('wpTextbox1');
-	if (!textbox) return false;
+	if (!textbox) { return false; }
 	
 	// Don't generate buttons for browsers which don't fully
 	// support it.
-	if (!document.selection && textbox.selectionStart == null)
+	if (!document.selection && textbox.selectionStart === null) {
 		return false;
+	}
 	
 	for (var i in mwEditButtons) {
 		mwInsertEditButton(toolbar, mwEditButtons[i]);
 	}
-	for (var i in mwCustomEditButtons) {
-		mwInsertEditButton(toolbar, mwCustomEditButtons[i]);
+	for (var k in mwCustomEditButtons) {
+		mwInsertEditButton(toolbar, mwCustomEditButtons[k]);
 	}
 	return true;
 }
@@ -384,11 +409,11 @@
 function escapeQuotesHTML(text) {
 	var re = new RegExp('&',"g");
 	text = text.replace(re,"&amp;");
-	var re = new RegExp('"',"g");
+	re = new RegExp('"',"g");
 	text = text.replace(re,"&quot;");
-	var re = new RegExp('<',"g");
+	re = new RegExp('<',"g");
 	text = text.replace(re,"&lt;");
-	var re = new RegExp('>',"g");
+	re = new RegExp('>',"g");
 	text = text.replace(re,"&gt;");
 	return text;
 }
@@ -397,19 +422,21 @@
 // use sampleText instead of selection if there is none
 // copied and adapted from phpBB
 function insertTags(tagOpen, tagClose, sampleText) {
-	if (document.editform)
-		var txtarea = document.editform.wpTextbox1;
-	else {
+	var txtarea;
+	if (document.editform) {
+		txtarea = document.editform.wpTextbox1;
+	} else {
 		// some alternate form? take the first one we can find
 		var areas = document.getElementsByTagName('textarea');
-		var txtarea = areas[0];
+		txtarea = areas[0];
 	}
 
 	// IE
 	if (document.selection  && !is_gecko) {
 		var theSelection = document.selection.createRange().text;
-		if (!theSelection)
+		if (!theSelection) {
 			theSelection=sampleText;
+		}
 		txtarea.focus();
 		if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
 			theSelection = theSelection.substring(0, theSelection.length - 1);
@@ -423,12 +450,14 @@
 		var replaced = false;
 		var startPos = txtarea.selectionStart;
 		var endPos = txtarea.selectionEnd;
-		if (endPos-startPos)
+		if (endPos-startPos) {
 			replaced = true;
+		}
 		var scrollTop = txtarea.scrollTop;
 		var myText = (txtarea.value).substring(startPos, endPos);
-		if (!myText)
+		if (!myText) {
 			myText=sampleText;
+		}
 		if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
 			subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
 		} else {
@@ -453,19 +482,23 @@
 	// bar, but that caused more problems than it solved.
 	}
 	// reposition cursor if possible
-	if (txtarea.createTextRange)
+	if (txtarea.createTextRange) {
 		txtarea.caretPos = document.selection.createRange().duplicate();
+	}
 }
 
 function akeytt() {
-	if (typeof ta == "undefined" || !ta)
+	if (typeof ta == "undefined" || !ta) {
 		return;
+	}
 	var pref = 'alt-';
 	if (is_safari || navigator.userAgent.toLowerCase().indexOf('mac') + 1
-		|| navigator.userAgent.toLowerCase().indexOf('konqueror') + 1 )
+		|| navigator.userAgent.toLowerCase().indexOf('konqueror') + 1 ) {
 		pref = 'control-';
-	if (is_opera)
+	}
+	if (is_opera) {
 		pref = 'shift-esc-';
+	}
 
 	for (var id in ta) {
 		var n = document.getElementById(id);
@@ -519,20 +552,22 @@
 
 			// find the following a
 			var next = el.nextSibling;
-			while (next.nodeType != 1)
+			while (next.nodeType != 1) {
 				next = next.nextSibling;
+			}
 
 			// find the following header
 			next = next.nextSibling;
-			while (next.nodeType != 1)
+			while (next.nodeType != 1) {
 				next = next.nextSibling;
+			}
 
 			if (next && next.nodeType == 1 &&
 				next.nodeName.match(/^[Hh][1-6]$/)) {
 				next.oncontextmenu = function() {
 					document.location = editHref;
 					return false;
-				}
+				};
 			}
 		}
 	}
@@ -611,8 +646,9 @@
 }
 
 function fillDestFilename() {
-	if (!document.getElementById)
+	if (!document.getElementById) {
 		return;
+	}
 	var path = document.getElementById('wpUploadFile').value;
 	// Find trailing part
 	var slash = path.lastIndexOf('/');
@@ -631,25 +667,30 @@
 
 	// Output result
 	var destFile = document.getElementById('wpDestFile');
-	if (destFile)
+	if (destFile) {
 		destFile.value = fname;
+	}
 }
 
 
 function considerChangingExpiryFocus() {
-	if (!document.getElementById)
+	if (!document.getElementById) {
 		return;
+	}
 	var drop = document.getElementById('wpBlockExpiry');
-	if (!drop)
+	if (!drop) {
 		return;
+	}
 	var field = document.getElementById('wpBlockOther');
-	if (!field)
+	if (!field) {
 		return;
+	}
 	var opt = drop.value;
-	if (opt == 'other')
+	if (opt == 'other') {
 		field.style.display = '';
-	else
+	} else {
 		field.style.display = 'none';
+	}
 }
 
 function scrollEditBox() {
@@ -658,10 +699,10 @@
 	var editFormEl = document.getElementById("editform");
 
 	if (editBoxEl && scrollTopEl) {
-		if (scrollTopEl.value) editBoxEl.scrollTop = scrollTopEl.value;
+		if (scrollTopEl.value) { editBoxEl.scrollTop = scrollTopEl.value; }
 		editFormEl.onsubmit = function() {
 			document.getElementById("wpScrolltop").value = document.getElementById("wpTextbox1").scrollTop;
-		}
+		};
 	}
 }
 
@@ -674,12 +715,13 @@
 
 	var items = k.getElementsByTagName('span');
 
+	var i, j;
 	if ( text.length > allmessages_prev.length ) {
-		for (var i = items.length-1, j = 0; i >= 0; i--) {
+		for (i = items.length-1, j = 0; i >= 0; i--) {
 			j = allmessagesforeach(items, i, j);
 		}
 	} else {
-		for (var i = 0, j = 0; i < items.length; i++) {
+		for (i = 0, j = 0; i < items.length; i++) {
 			j = allmessagesforeach(items, i, j);
 		}
 	}
@@ -689,19 +731,20 @@
 function allmessagesforeach(items, i, j) {
 	var hItem = items[i].getAttribute('id');
 	if (hItem.substring(0,17) == 'sp-allmessages-i-') {
+		var itemA, itemB, s, k;
 		if (items[i].firstChild && items[i].firstChild.nodeName == '#text' && items[i].firstChild.nodeValue.indexOf(text) != -1) {
-			var itemA = document.getElementById( hItem.replace('i', 'r1') );
-			var itemB = document.getElementById( hItem.replace('i', 'r2') );
-			if ( itemA.style.display != '' ) {
-				var s = "allmessageshider(\"" + hItem.replace('i', 'r1') + "\", \"" + hItem.replace('i', 'r2') + "\", '')";
-				var k = window.setTimeout(s,j++*5);
+			itemA = document.getElementById( hItem.replace('i', 'r1') );
+			itemB = document.getElementById( hItem.replace('i', 'r2') );
+			if ( itemA.style.display !== '' ) {
+				s = "allmessageshider(\"" + hItem.replace('i', 'r1') + "\", \"" + hItem.replace('i', 'r2') + "\", '')";
+				k = window.setTimeout(s,j++*5);
 			}
 		} else {
-			var itemA = document.getElementById( hItem.replace('i', 'r1') );
-			var itemB = document.getElementById( hItem.replace('i', 'r2') );
+			itemA = document.getElementById( hItem.replace('i', 'r1') );
+			itemB = document.getElementById( hItem.replace('i', 'r2') );
 			if ( itemA.style.display != 'none' ) {
-				var s = "allmessageshider(\"" + hItem.replace('i', 'r1') + "\", \"" + hItem.replace('i', 'r2') + "\", 'none')";
-				var k = window.setTimeout(s,j++*5);
+				s = "allmessageshider(\"" + hItem.replace('i', 'r1') + "\", \"" + hItem.replace('i', 'r2') + "\", 'none')";
+				k = window.setTimeout(s,j++*5);
 			}
 		}
 	}
@@ -721,16 +764,17 @@
 	k = document.getElementById('allmessagestable');
 	if (!k) { return;}
 	var items = k.getElementsByTagName('tr');
+	var s, x;
 	for (var i = 0, j = 0; i< items.length; i++) {
 		if (!allmessages_modified ) {
-			if ( items[i].style.display != '' ) {
-				var s = "allmessageshider(\"" + items[i].getAttribute('id') + "\", null, '')";
-				var k = window.setTimeout(s,j++*5);
+			if ( items[i].style.display !== '' ) {
+				s = "allmessageshider(\"" + items[i].getAttribute('id') + "\", null, '')";
+				x = window.setTimeout(s,j++*5);
 			}
 		} else if (items[i].getAttribute('class') == 'def' && allmessages_modified) {
 			if ( items[i].style.display != 'none' ) {
-				var s = "allmessageshider(\"" + items[i].getAttribute('id') + "\", null, 'none')";
-				var k = window.setTimeout(s,j++*5);
+				s = "allmessageshider(\"" + items[i].getAttribute('id') + "\", null, 'none')";
+				x = window.setTimeout(s,j++*5);
 			}
 		}
 	}
