//<source lang="javascript">/* Import more specific scripts if necessary */if (wgAction == "edit" || wgAction == "submit") //scripts specific to editing pages{    importScript("MediaWiki:Common.js/edit.js")}else if (wgPageName == "Special:Watchlist") //watchlist scripts{    importScript("MediaWiki:Common.js/watchlist.js")}else if (wgPageName == "Special:Search") //scripts specific to Special:Search{    importScript("MediaWiki:Common.js/search.js")}/* Scripts specific to Internet Explorer */if (navigator.appName == "Microsoft Internet Explorer"){    /** Internet Explorer bug fix **************************************************     *     *  Description: Fixes IE horizontal scrollbar bug     *  Maintainers: [[User:Tom-]]?     */        var oldWidth;    var docEl = document.documentElement;        function fixIEScroll()    {        if (!oldWidth || docEl.clientWidth > oldWidth)            doFixIEScroll();        else            setTimeout(doFixIEScroll, 1);                oldWidth = docEl.clientWidth;    }        function doFixIEScroll() {        docEl.style.overflowX = (docEl.scrollWidth - docEl.clientWidth < 4) ? "hidden" : "";    }        document.attachEvent("onreadystatechange", fixIEScroll);    document.attachEvent("onresize", fixIEScroll);            /**     * Remove need for CSS hacks regarding MSIE and IPA.     */        if (document.createStyleSheet) {        document.createStyleSheet().addRule('.IPA', 'font-family: "Doulos SIL", "Charis SIL", Gentium, "DejaVu Sans", Code2000, "TITUS Cyberbit Basic", "Arial Unicode MS", "Lucida Sans Unicode", "Chrysanthi Unicode";');    }            //Import scripts specific to Internet Explorer 6    if (navigator.appVersion.substr(22, 1) == "6")    {        importScript("MediaWiki:Common.js/IE60Fixes.js")    }}/* Test if an element has a certain class ************************************** * * Description: Uses regular expressions and caching for better performance. * Maintainers: [[User:Mike Dillon]], [[User:R. Koot]], [[User:SG]] */var hasClass = (function () {    var reCache = {};    return function (element, className) {        return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);    };})();/** Collapsible tables ********************************************************* * *  Description: Allows tables to be collapsed, showing only the header. See *               [[Wikipedia:NavFrame]]. *  Maintainers: [[User:R. Koot]] */var autoCollapse = 2;var collapseCaption = "hide";var expandCaption = "show";function collapseTable( tableIndex ){    var Button = document.getElementById( "collapseButton" + tableIndex );    var Table = document.getElementById( "collapsibleTable" + tableIndex );    if ( !Table || !Button ) {        return false;    }    var Rows = Table.rows;    if ( Button.firstChild.data == collapseCaption ) {        for ( var i = 1; i < Rows.length; i++ ) {            Rows[i].style.display = "none";        }        Button.firstChild.data = expandCaption;    } else {        for ( var i = 1; i < Rows.length; i++ ) {            Rows[i].style.display = Rows[0].style.display;        }        Button.firstChild.data = collapseCaption;    }}function createCollapseButtons(){    var tableIndex = 0;    var NavigationBoxes = new Object();    var Tables = document.getElementsByTagName( "table" );    for ( var i = 0; i < Tables.length; i++ ) {        if ( hasClass( Tables[i], "collapsible" ) ) {            /* only add button and increment count if there is a header row to work with */            var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];            if (!HeaderRow) continue;            var Header = HeaderRow.getElementsByTagName( "th" )[0];            if (!Header) continue;            NavigationBoxes[ tableIndex ] = Tables[i];            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );            var Button     = document.createElement( "span" );            var ButtonLink = document.createElement( "a" );            var ButtonText = document.createTextNode( collapseCaption );            Button.style.styleFloat = "right";            Button.style.cssFloat = "right";            Button.style.fontWeight = "normal";            Button.style.textAlign = "right";            Button.style.width = "6em";            ButtonLink.style.color = Header.style.color;            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );            ButtonLink.appendChild( ButtonText );            Button.appendChild( document.createTextNode( "[" ) );            Button.appendChild( ButtonLink );            Button.appendChild( document.createTextNode( "]" ) );            Header.insertBefore( Button, Header.childNodes[0] );            tableIndex++;        }    }    for ( var i = 0;  i < tableIndex; i++ ) {        if ( hasClass( NavigationBoxes[i], "collapsed" ) || ( tableIndex >= autoCollapse && hasClass( NavigationBoxes[i], "autocollapse" ) ) ) {            collapseTable( i );        }    }}addOnloadHook( createCollapseButtons );/** Dynamic Navigation Bars (experimental) ************************************* * *  Description: See [[Wikipedia:NavFrame]]. *  Maintainers: UNMAINTAINED */// set up the words in your languagevar NavigationBarHide = '[' + collapseCaption + ']';var NavigationBarShow = '[' + expandCaption + ']';// shows and hides content and picture (if available) of navigation bars// Parameters://     indexNavigationBar: the index of navigation bar to be toggledfunction toggleNavigationBar(indexNavigationBar){    var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);    var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);    if (!NavFrame || !NavToggle) {        return false;    }    // if shown now    if (NavToggle.firstChild.data == NavigationBarHide) {        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {            if ( hasClass( NavChild, 'NavPic' ) ) {                NavChild.style.display = 'none';            }            if ( hasClass( NavChild, 'NavContent') ) {                NavChild.style.display = 'none';            }        }    NavToggle.firstChild.data = NavigationBarShow;    // if hidden now    } else if (NavToggle.firstChild.data == NavigationBarShow) {        for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {            if (hasClass(NavChild, 'NavPic')) {                NavChild.style.display = 'block';            }            if (hasClass(NavChild, 'NavContent')) {                NavChild.style.display = 'block';            }        }        NavToggle.firstChild.data = NavigationBarHide;    }}// adds show/hide-button to navigation barsfunction createNavigationBarToggleButton(){    var indexNavigationBar = 0;    // iterate over all < div >-elements     var divs = document.getElementsByTagName("div");    for (var i = 0; NavFrame = divs[i]; i++) {        // if found a navigation bar        if (hasClass(NavFrame, "NavFrame")) {            indexNavigationBar++;            var NavToggle = document.createElement("a");            NavToggle.className = 'NavToggle';            NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);            NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');            var NavToggleText = document.createTextNode(NavigationBarHide);            for (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {                if ( hasClass( NavChild, 'NavPic' ) || hasClass( NavChild, 'NavContent' ) ) {                    if (NavChild.style.display == 'none') {                        NavToggleText = document.createTextNode(NavigationBarShow);                        break;                    }                }            }            NavToggle.appendChild(NavToggleText);            // Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked)            for(var j=0; j < NavFrame.childNodes.length; j++) {                if (hasClass(NavFrame.childNodes[j], "NavHead")) {                    NavFrame.childNodes[j].appendChild(NavToggle);                }            }            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);        }    }}addOnloadHook( createNavigationBarToggleButton );/** "Technical restrictions" title fix ***************************************** * *  Description: For pages that have something like Template:Wrongtitle, replace *               the title, but only if it is cut-and-pasteable as a valid *               wikilink. For instance, "NZR WB class" can be changed to *               "NZR W<sup>B</sup> class", but [[C#]] is not an equivalent wikilink, *               so [[C Sharp]] doesn't have its main title changed. * *               The function looks for a banner like this:  *               <div id="RealTitleBanner"> ... <span id="RealTitle">title</span> ... </div> *               An element with id=DisableRealTitle disables the function. *  Maintainers: Remember_the_dot */if (wgIsArticle) //prevents the "Editing " prefix from disappearing during preview{    addOnloadHook(function()    {        var realTitle = document.getElementById("RealTitle")                if (realTitle)        {            //normalizes a title or a namespace name (but not both)            //trims leading and trailing underscores and converts (possibly multiple) spaces and underscores to single underscores            function normalizeTitle(title)            {                return title.replace(/^_+/, "").replace(/_+$/, "").replace(/[\s_]+/g, "_")            }                        if (realTitle.textContent) //everyone but IE            {                var realTitleText = realTitle.textContent            }            else //IE            {                var realTitleText = realTitle.innerText            }                        var normalizedRealTitle            var normalizedPageTitle            var indexOfColon = realTitleText.indexOf(":")            var normalizedNamespaceName = normalizeTitle(realTitleText.substring(0, indexOfColon)).toLowerCase()                        //make namespace prefix lowercase and uppercase the first letter of the title            if (indexOfColon == -1 || wgCanonicalNamespace.toLowerCase() != normalizedNamespaceName) //no namespace prefix - either no colon or a nonsensical namespace prefix (for example, "Foo" in "Foo: The Story of My Life")            {                normalizedRealTitle = normalizeTitle(realTitleText)                normalizedRealTitle = normalizedRealTitle.charAt(0).toUpperCase() + normalizedRealTitle.substring(1)                normalizedPageTitle = wgPageName.charAt(0).toUpperCase() + wgPageName.substring(1)            }            else //using a namespace prefix            {                var normalizedRealPageTitle = normalizeTitle(realTitleText.substring(indexOfColon + 1))                                normalizedRealTitle = normalizedNamespaceName                if (normalizedNamespaceName != "") //namespace 0 is a special case where the leading colon should never be shown                {                    normalizedRealTitle += ":"                }                normalizedRealTitle += normalizedRealPageTitle.charAt(0).toUpperCase() + normalizedRealPageTitle.substring(1)                normalizedPageTitle = wgPageName.substring(0, wgPageName.indexOf(":") + 1).toLowerCase() + wgPageName.substring(wgPageName.indexOf(":") + 1)            }                        if (normalizedRealTitle == normalizedPageTitle) //normalized titles match, so we can do full replacement            {                var h1 = document.getElementsByTagName("h1")[0]                                //remove all child nodes, including text                while (h1.firstChild)                 {                    h1.removeChild(h1.firstChild)                }                                //populate with nodes of real title                while (realTitle.firstChild) //the children are moved to a new parent element                {                    h1.appendChild(realTitle.firstChild)                }                                //delete the real title banner since the problem is solved                var realTitleBanner = document.getElementById("RealTitleBanner")                realTitleBanner.parentNode.removeChild(realTitleBanner)            }                        //no matter what, correct the page title            document.title = realTitleText + " - Pensapedia, the Pensacola encyclopedia"        }    })}/** Calendar extension ***/function makeRequest(url) {   var httpRequest;                                  if (window.XMLHttpRequest) { // Mozilla, Safari, ...       httpRequest = new XMLHttpRequest();   } else if (window.ActiveXObject) { // IE     try {       httpRequest = new ActiveXObject("Msxml2.XMLHTTP");     } catch (e) {       try {         httpRequest = new ActiveXObject("Microsoft.XMLHTTP");       } catch (e) {}     }   }     if (!httpRequest) {     alert("Giving up :( Cannot create an XMLHTTP instance");     return false;   }   httpRequest.onreadystatechange = function() { alertContents(httpRequest); };   httpRequest.open("GET", url, true);   httpRequest.send(null);}  function alertContents(httpRequest) {     if (httpRequest.readyState == 4) {     if (httpRequest.status == 200) {         document.getElementById("p-calendar").innerHTML = httpRequest.responseText;     } else {         document.getElementById("p-calendar").innerHTML = "<p>There was a problem with the request.</p>";     }   }}//</source>