User:Brian McNeil/failed/monobook.js

function addLoadEvent(func) { if (window.addEventListener) window.addEventListener("load", func, false); else if (window.attachEvent) window.attachEvent("onload", func); } /* tooltips and access keys */ ta = new Object; ta['pt-userpage'] = new Array('.','My user page'); ta['pt-anonuserpage'] = new Array('.','The user page for the ip you\'re editing as'); ta['pt-mytalk'] = new Array('n','My talk page'); ta['pt-anontalk'] = new Array('n','Discussion about edits from this ip address'); ta['pt-preferences'] = new Array('','My preferences'); ta['pt-watchlist'] = new Array('l','The list of pages you\'re monitoring for changes.'); ta['pt-mycontris'] = new Array('y','List of my contributions'); ta['pt-login'] = new Array('o','You are encouraged to log in, it is not mandatory however.'); ta['pt-anonlogin'] = new Array('o','You are encouraged to log in, it is not mandatory however.'); ta['pt-logout'] = new Array('o','Log out'); ta['ca-talk'] = new Array('t','Discussion about the content page'); ta['ca-edit'] = new Array('e','You can edit this page. Please use the preview button before saving.'); ta['ca-addsection'] = new Array('+','Add a comment to this discussion.'); ta['ca-viewsource'] = new Array('e','This page is protected. You can view its source.'); ta['ca-history'] = new Array('h','Past versions of this page.'); ta['ca-protect'] = new Array('=','Protect this page'); ta['ca-delete'] = new Array('d','Delete this page'); ta['ca-undelete'] = new Array('d','Restore the edits done to this page before it was deleted'); ta['ca-move'] = new Array('m','Move this page'); ta['ca-nomove'] = new Array('','You don\'t have the permissions to move this page'); ta['ca-watch'] = new Array('w','Add this page to your watchlist'); ta['ca-unwatch'] = new Array('w','Remove this page from your watchlist'); ta['search'] = new Array('f','Search this wiki'); ta['p-logo'] = new Array('','Main Page'); ta['n-mainpage'] = new Array('z','Visit the Main Page'); ta['n-portal'] = new Array('','Index'); ta['n-Workspace'] = new Array('','Start working on articles here'); ta['n-recentchanges'] = new Array('x','The list of recent changes in the wiki.'); ta['n-randompage'] = new Array('r','Upload media to the Wikimedia Commons (separate login required)'); ta['n-help'] = new Array('','The place to find out.'); ta['n-sitesupport'] = new Array('','Support us'); ta['n-Africa'] = new Array('','View News on Africa'); ta['n-Asia'] = new Array('','View News on Asia'); ta['n-CentralAmerica'] = new Array('','View News on Central America'); ta['n-Europe '] = new Array('','View News on Europe'); ta['n-MiddleEast '] = new Array('','View News on the Middle East'); ta['n-NorthAmerica '] = new Array('','View News on North America '); ta['n-Oceania'] = new Array('','View News on Oceania'); ta['n-SouthAmerica '] = new Array('','View News on South America'); ta['t-whatlinkshere'] = new Array('j','List of all wiki pages that link here'); ta['t-recentchangeslinked'] = new Array('k','Recent changes in pages linked from this page'); ta['feed-rss'] = new Array('','RSS feed for this page'); ta['feed-atom'] = new Array('','Atom feed for this page'); ta['t-contributions'] = new Array('','View the list of contributions of this user'); ta['t-emailuser'] = new Array('','Send a mail to this user'); ta['t-upload'] = new Array('u','Upload images or media files'); ta['t-specialpages'] = new Array('q','List of all special pages'); ta['ca-nstab-main'] = new Array('c','View the content page'); ta['ca-nstab-user'] = new Array('c','View the user page'); ta['ca-nstab-media'] = new Array('c','View the media page'); ta['ca-nstab-special'] = new Array('','This is a special page, you can\'t edit the page itself.'); ta['ca-nstab-wp'] = new Array('a','View the project page'); ta['ca-nstab-image'] = new Array('c','View the image page'); ta['ca-nstab-mediawiki'] = new Array('c','View the system message'); ta['ca-nstab-template'] = new Array('c','View the template'); ta['ca-nstab-help'] = new Array('c','View the help page'); ta['ca-nstab-category'] = new Array('c','View the category page');

// !!Alternate stylesheets!! Note, Some are on wikipedia/meta/other lang wikinews. Only user whos //userspace its in and admins can edit stylesheets. Ask user:Bawolff for info. see also skins document.write('    ');

//RSS Feed insert. Only latest news. Should we add others? document.write('')

// ============================================================ // BEGIN Dynamic Navigation Bars (experimental) // set up the words in your language var NavigationBarHide = '[ - ]'; var NavigationBarShow = '[ + ]'; // set up max count of Navigation Bars on page, // if there are more, all will be hidden // NavigationBarShowDefault = 0; // all bars will be hidden // NavigationBarShowDefault = 1; // on pages with more than 1 bar all bars will be hidden var NavigationBarShowDefault = 1;

// Store the total number of bars var NavigationBarMax = 0; // 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 (NavChild.className == 'NavPic') { NavChild.style.display = 'none'; }           if (NavChild.className == 'NavContent') { NavChild.style.display = 'none'; }       }    NavToggle.firstChild.data = NavigationBarShow; // if hidden now } else if (NavToggle.firstChild.data == NavigationBarShow) {

// First close all Bars

for(            var i = 0;             i <= NavigationBarMax;             i++         ) { var CloseToggle = document.getElementById("NavToggle" + i); var CloseFrame = document.getElementById("NavFrame" + i);

if (CloseToggle.firstChild.data = NavigationBarHide) { for (                     var CloseChild = CloseFrame.firstChild;                      CloseChild != null;                      CloseChild = CloseChild.nextSibling                     ) { if (CloseChild.className == 'NavPic') { CloseChild.style.display = 'none'; }                        if (CloseChild.className == 'NavContent') { CloseChild.style.display = 'none'; }                 }

}        }

for (               var NavChild = NavFrame.firstChild;                NavChild != null;                NavChild = NavChild.nextSibling            ) { if (NavChild.className == 'NavPic') { NavChild.style.display = 'block'; }           if (NavChild.className == 'NavContent') { NavChild.style.display = 'block'; }       }    NavToggle.firstChild.data = NavigationBarHide; } } // adds show/hide-button to navigation bars function createNavigationBarToggleButton {   var indexNavigationBar = 0; // iterate over all -elements for(           var i=0;             NavFrame = document.getElementsByTagName("div")[i];             i++        ) { // if found a navigation bar if (NavFrame.className == "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); 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 (NavFrame.childNodes[j].className == "NavHead") { NavFrame.childNodes[j].appendChild(NavToggle); }           }            NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar); }   }    // if more Navigation Bars found than Default: hide all if (NavigationBarShowDefault < indexNavigationBar) { NavigationBarMax = indexNavigationBar; for(               var i=1;                 i<=indexNavigationBar;                 i++        ) { toggleNavigationBar(i); }   } } addLoadEvent(createNavigationBarToggleButton); // END Dynamic Navigation Bars // ============================================================

//BEGIN remove Main Page title

var mpTitle = "Main Page"; var isMainPage = (/(title=|\/wiki\/)([Tt]alk:|)[Mm]ain[ _][Pp]age/.test(document.location)); var isMainPageFront = (document.title.substr(0, document.title.lastIndexOf(" - ")) == mpTitle); var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

if (isMainPage && isMainPageFront && !isDiff) { document.write('/*<![CDATA[*/ #lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; } /*]]>*/ '); }

//END remove Main Page title /*

custom edit buttons
*/ if (mwCustomEditButtons) { mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/7/7f/Button_link_to_Wikipedia.png", "speedTip": "wikipedia link", "tagOpen": "w:",    "tagClose": "", "sampleText": "article title"};

mwCustomEditButtons[mwCustomEditButtons.length] = { "imageFile": "http://upload.wikimedia.org/wikipedia/commons/4/47/Button_redir.png", "speedTip": "Redirect", "tagOpen": "#REDIRECT",    "tagClose": "", "sampleText": "Redirected to"}; } /* end custom buttons */ /*

Comment tabs
see Commentary pages on news events. This script has some crappy hacks in it, and won't work as of current on other languages probably /* Top of Javascript */ /* */ // ========================================================================== // BEGIN: MediaWiki interface button definition for Duesentrieb's image tools: // This has been modified by Bawolff for use on wikinews with comments per // Comentary pages on news events. I would assume this script is //under the gfdl. it was originally at commons:mediawiki:extra-tabs.js // This script has been tested with Konqueror 3.5 and Firefox 1.5 and other // browsers including Opera and Internet Explorer have been reported to work // as well. If you enhance or change this template please test it previous to // editing here in your local monobook.js with as many as possible browsers // (in order not to clash with the function names here change in your local // monobook.js all "global_" to "local_"). // Be aware that the global JavaScripts do not get updated by the Wikimedia // servers that fast after saving them.

// written by Dbenbenn, Avatar, Duesentrieb and Arnomane //modified by bawolff for wikinews.

// Switch for people that don't want the extra tabs. load_extratabs = true; if (load_extratabs == true) {

// Translations (variables for internationalisation and localisation):

// project // It is tempting to replace this with wgServer.replace("http://", "") var tab_project = 'en.wikinews.org';

// Interface strings, tab_comment_on_article = 'Add Opinion'; tab_view_comment_on_article = 'View Opinions';

//Fix existing tabs

function global_fix_comment_tabs { //THIS IS NOT MULTILINGUAL //This is not well coded, and should be fixed later var base_article = wgPageName; //should always be true if (base_article.indexOf("Talk:") != -1) { base_article.replace("talk:", ""); base_article = escape(base_article); var article_tab = document.getElementById('ca-nstab-main'); var article_tab_link = article_tab.firstChild.getAttribute('href'); var base_number = base_article.lastIndexOf("/Comments"); //if the title does not not (note double not) have /comment on the end if (base_number != -1) { //get rid of talk (7) base_article = base_article.substring(7,base_number); //escape it article_tab_link = base_article.replace(" ", "_"); article_tab.firstChild.setAttribute('href', "http://en.wikinews.org/wiki/" + article_tab_link); article_tab.removeAttribute("class"); //fix talk tab document.getElementById('ca-talk').firstChild.setAttribute('href', "http://en.wikinews.org/wiki/Talk:" + article_tab_link); } } }

// Appends a new tab.

function global_append_tab(url, name, id) { var na = document.createElement('a'); na.setAttribute('href', url); var txt = document.createTextNode(name); na.appendChild(txt); var li = document.createElement('li'); if(id) li.id = id; li.appendChild(na);

// Grab the element we want to append the tab and append the tab to it. var hist = document.getElementById('ca-history'); var c1 = document.getElementById('column-one'); var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0]; tabs.insertBefore(li, hist); }

function global_add_article_tabs(article) { if (article !== 'Talk:Main_Page') {    global_append_tab('/w/index.php?title=' + article + '/Comments&action=edit&preload=Wikinews:Commentary_pages_on_news_events/body &editintro=Wikinews:Commentary_pages_on_news_events/intro&section=new', tab_comment_on_article, 'ca-comment'); global_append_tab('/w/index.php?title=' + article + '/Comments', tab_view_comment_on_article, 'ca-view-comment'); } }

function global_do_onload {   // extract the namespace // var title = global_get_tidy_title; var title = wgPageName; //not on comment pages, and fixes for exsist tab if (title.indexOf("/Comments") == -1) {

// Namespace numbers are (see m:Help:Variables): // -1: Special // 0: Article (main) // 1: talk // 2: User // 3: User_talk // 6: Image // 7: Image_talk // 14: Category switch(wgNamespaceNumber) {        //case -1: //   global_add_special_tabs(title); //   break; case 0: global_add_article_tabs('Talk:' + title); break; case 1: global_add_article_tabs(title); break; //case 2: //case 3: //   global_add_user_tabs(title); //   break; //case 6: //case 7: //   global_add_image_tabs(title); //   break; //case 14: //   global_add_category_tabs(title); //   break; default: // nothing }      }       else { global_fix_comment_tabs; } }

$( global_do_onload );

} // END: MediaWiki interface button definition for comments. this was modified by Bawolff for wikinew comments from commons:Mediawiki:extra-tabs.js // ======================================================================== /* Bottom of Javascript */