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 -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,"&"); - var re = new RegExp('"',"g"); + re = new RegExp('"',"g"); text = text.replace(re,"""); - var re = new RegExp('<',"g"); + re = new RegExp('<',"g"); text = text.replace(re,"<"); - var re = new RegExp('>',"g"); + re = new RegExp('>',"g"); text = text.replace(re,">"); 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); } } }