Header

From Wikitripoli

Revision as of 10:01, 13 May 2007 by Eirc (Talk | contribs)
<style type="text/css">
  /*
     Notes: 
      -You must log as admin to edit this page
      -Whatever you enter in this page will be added to the html in the header after the standard style sheet, so you can override styles. 
      -if you want your code to look nice on this page, put a space at the beginning of each line
      -This is the default style sheet that you can override : http://editthis.info/wiki/skins/monobook/main.css 
      
      For example uncomment this next section to turn all the text green:
  */
 /*
body {
   color: green;
}
 */
table.wikitable, table.prettytable {
  background:#F9F9F9 none repeat scroll 0%;
  border:1px solid #AAAAAA;
  border-collapse:collapse;
  margin:1em 1em 1em 0pt;
}

table.wikitable th, table.wikitable td, table.prettytable th, table.prettytable td {
  border:1px solid #AAAAAA;
  padding:0.2em;
}

table.wikitable th, table.prettytable th {
  background:#F2F2F2 none repeat scroll 0%;
  text-align:center;
}

table.wikitable caption, table.prettytable caption {
  font-weight:bold;
  margin-left:inherit;
  margin-right:inherit;
}
.infobox {
  border: 1px solid #aaa;
  background-color: #f9f9f9;
  color: black;
  margin-bottom: 0.5em;
  margin-left: 1em;
  padding: 0.2em;
  float: right;
  clear: right;
}

.infobox td, .infobox th {
  vertical-align: top;
}

.infobox caption {
  font-size: larger;
  margin-left: inherit;
}

.infobox.bordered {
  border-collapse: collapse;
}

.infobox.bordered td, .infobox.bordered th {
  border: 1px solid #aaa;
}

.infobox.bordered .borderless td, .infobox.bordered .borderless th {
  border: 0;
}

.infobox.sisterproject {
  width: 20em;
  font-size: 90%;
}

/* styles for bordered infobox with merged rows */
.infobox.bordered .mergedtoprow td, .infobox.bordered .mergedtoprow th {
  border: 0;
  border-top: 1px solid #aaa;
  border-right: 1px solid #aaa;
}

.infobox.bordered .mergedrow td, .infobox.bordered .mergedrow th {
  border: 0;
  border-right: 1px solid #aaa;
}
</style>
<script type="text/javascript">
  // written by Dean Edwards, 2005
  // with input from Tino Zijdel, Matthias Miller, Diego Perini
  // http://dean.edwards.name/weblog/2005/10/add-event/
  
  function addEvent(element, type, handler) {
    // Modification by Tanny O'Haley, http://tanny.ica.com to add the
    // DOMContentLoaded for all browsers.
    if (type == "DOMContentLoaded" || type == "domload") {
      addDOMLoadEvent(handler);
      return;
    }
    if (element.addEventListener) {
      element.addEventListener(type, handler, false);
    } else {
      // assign each event handler a unique ID
      if (!handler.$$guid) handler.$$guid = addEvent.guid++;
      // create a hash table of event types for the element
      if (!element.events) element.events = {};
      // create a hash table of event handlers for each element/event pair
      var handlers = element.events[type];
      if (!handlers) {
        handlers = element.events[type] = {};
        // store the existing event handler (if there is one)
        if (element["on" + type]) {
          handlers[0] = element["on" + type];
        }
      }
      // store the event handler in the hash table
      handlers[handler.$$guid] = handler;
      // assign a global event handler to do all the work
      element["on" + type] = handleEvent;
    }
  };
  
  // a counter used to create unique IDs
  addEvent.guid = 1;
  
  function removeEvent(element, type, handler) {
    if (element.removeEventListener) {
      element.removeEventListener(type, handler, false);
    } else {
      // delete the event handler from the hash table
      if (element.events && element.events[type]) {
        delete element.events[type][handler.$$guid];
      }
    }
  };
  
  function handleEvent(event) {
    var returnValue = true;
    // grab the event object (IE uses a global event object)
    event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
    // get a reference to the hash table of event handlers
    var handlers = this.events[event.type];
    // execute each event handler
    for (var i in handlers) {
      this.$$handleEvent = handlers[i];
      if (this.$$handleEvent(event) === false) {
        returnValue = false;
      }
    }
    return returnValue;
  };
  
  function fixEvent(event) {
    // add W3C standard event methods
    event.preventDefault = fixEvent.preventDefault;
    event.stopPropagation = fixEvent.stopPropagation;
    return event;
  };
  
  fixEvent.preventDefault = function() {
    this.returnValue = false;
  };
  
  fixEvent.stopPropagation = function() {
    this.cancelBubble = true;
  };
  
  // End Dean Edwards addEvent.
  // Tino Zijdel - crisp@xs4all.nl This little snippet fixes the problem that the onload attribute on 
  // the body-element will overwrite previous attached events on the window object for the onload event.
  if (!window.addEventListener) {
    document.onreadystatechange = function(){
      if (window.onload && window.onload != handleEvent) {
        addEvent(window, 'load', window.onload);
        window.onload = handleEvent;
      }
    }
  }
  // Here are my functions for adding the DOMContentLoaded event to browsers other
  // than Mozilla.
  // Array of DOMContentLoaded event handlers.
  window.onDOMLoadEvents = new Array();
  window.DOMContentLoadedInitDone = false;
  
  // Function that adds DOMContentLoaded listeners to the array.
  function addDOMLoadEvent(listener) {
    window.onDOMLoadEvents[window.onDOMLoadEvents.length]=listener;
  }
  
  // Function to process the DOMContentLoaded events array.
  function DOMContentLoadedInit() {
    // quit if this function has already been called
    if (window.DOMContentLoadedInitDone) return;
    // flag this function so we don't do the same thing twice
    window.DOMContentLoadedInitDone = true;
    // iterates through array of registered functions 
    for (var i=0; i<window.onDOMLoadEvents.length; i++) {
      var func = window.onDOMLoadEvents[i];
      func();
    }
  }
  
  function DOMContentLoadedScheduler() {
    // quit if the init function has already been called
    if (window.DOMContentLoadedInitDone) return true;
    // First, check for Safari or KHTML.
    // Second, check for IE.
    //if DOM methods are supported, and the body element exists
    //(using a double-check including document.body, for the benefit of older moz builds [eg ns7.1] 
    //in which getElementsByTagName('body')[0] is undefined, unless this script is in the body section)
    if(/KHTML|WebKit/i.test(navigator.userAgent)) {
      if(/loaded|complete/.test(document.readyState)) {
        DOMContentLoadedInit();
      } else {
        // Not ready yet, wait a little more.
        setTimeout("DOMContentLoadedScheduler()", 250);
      }
    } else if(document.getElementById("__ie_onload")) {
      return true;
    } else if(typeof document.getElementsByTagName != 'undefined' && (document.getElementsByTagName('body')[0] != null || document.body != null)) {
      DOMContentLoadedInit();
    } else {
      // Not ready yet, wait a little more.
      setTimeout("DOMContentLoadedScheduler()", 250);
    }
    return true;
  }
  
  // Schedule to run the init function.
  setTimeout("DOMContentLoadedScheduler()", 250);
  // Just in case window.onload happens first, add it there too.
  addEvent(window, "load", DOMContentLoadedInit);
  // If addEventListener supports the DOMContentLoaded event.
  if(document.addEventListener)
    document.addEventListener("DOMContentLoaded", DOMContentLoadedInit, false);
  
  /* for Internet Explorer */
  /*@cc_on @*/
  /*@if (@_win32)
  document.write("<script id=__ie_onload defer src=\\"//:\\"><\\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      DOMContentLoadedInit(); // call the onload handler
    }
  };
  /*@end @*/
  addEvent(window, 'DOMContentLoaded', myFunction);
  
  function myFunction(){
    window.ad = document.getElementsByName("google_ads_frame")[0];
    if (window.ad) {
      window.ad.style.width = 0;
      window.ad.style.height = 0;
    } else {
      // run every half a second till we get it right!
      setTimeout('myFunction()', 500);
    }
  };
  addEvent(window, 'DOMContentLoaded', addBackupButton);
  
  function addBackupButton() {
    // if it's an all pages type of page
    if ((document.title.substr(0,9) == 'All pages') || (document.title.substr(0,12) == 'All articles')) {
      // create button
      button = document.createElement("input");
      button.setAttribute("value", "Get backup string");
      button.setAttribute("alt", "Get backup string");
      button.setAttribute("type", "button");
      button.setAttribute("onClick", "backup()");
      // create br element
      br = document.createElement("br");
      // find all pages link
      for (i = 0; i < document.links.length ; i++) {
        if (document.links[i].title != 'Special:Allpages') {
          continue;
        }
        // append break and button
        document.links[i].parentNode.appendChild(br);
        document.links[i].parentNode.appendChild(button);
        break;
      }
    }
  }
  
  function backup() {
    // get the namespace
    window.namespace = ;
    if (document.title.substr(0,9) == 'All pages') {
      window.namespace = document.title.match(/.*\\((.*) namespace\\).*/)[1] + ':';
    }
    // loop through articles
    window.tbody = document.getElementById('bodyContent').childNodes[9].childNodes[0];
    if (window.tbody) {
      trs = window.tbody.rows;
      window.backupString = ;
      for (i = 0; i < trs.length ; i++) {
        for (j = 0; j < trs[i].childNodes.length; j++) {
          window.backupString = window.backupString + window.namespace + trs[i].childNodes[j].textContent.replace(/ /g, '_') + '%0d%0A';
        }
      }
      // shout the backup string
      alert(window.backupString);
    }
    // go to next page
    select = document.getElementsByName('namespace')[0];
    if (select.selectedIndex + 1 < select.length) {
      select.selectedIndex = select.selectedIndex + 1;
    } else {
      select.selectedIndex = 0;
    }
    select.nextSibling.nextSibling.click();
  }
</script>
Personal tools