From Wikitripoli
<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>