// on load initialization
function init() {
	urlVars = this.location.search.substring(1);
	addRemoveMarks();
	addFavLink();
	addPrintLink();
	addFontLink();
	addBackLink();
	addExternalsTargets();
	modifyTipLink();
}

// modify search marks
function modifySearchMarks(bgcolor,color) {
	for (i=0;i<document.getElementsByTagName("span").length; i++) {
		if (document.getElementsByTagName("span").item(i).className == "hilite"){
			document.getElementsByTagName("span").item(i).style.background = bgcolor;
		}
	}
	document.getElementById('rightTools').removeChild(document.getElementById('removeMarksLink'));

}

// add externals targets
function addExternalsTargets(){

	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") &&
		anchor.getAttribute("rel") == "external")
		anchor.target = "_blank";

		// record pdf downloads
		if (anchor.getAttribute("href") &&
		anchor.getAttribute("class") == "extPdf")
		anchor.onclick = recordDownload;
	}

}

function recordDownload(){
	urchinTracker('/downloads/pdf');
}

// add back link
function addBackLink(){
	var bottomTools = document.getElementById('bottomTools');
	if (bottomTools) {
		backLink = createElement('li');
		backLink.id = 'backLink';
		backLink.innerHTML='<a href="javascript:history.go(-1);">'+backText+'</a>';
		bottomTools.insertBefore(backLink, bottomTools.firstChild);

	}
}

// add font switcher
function addFontLink(){
	var startText;
	var active = getActiveStyleSheet();
	if(active == 'large') {
		startText = fontDecText;
	} else {
		startText = fontIncText;
	}
	var rightTools = document.getElementById('rightTools');
	fontLink = createElement('li');
	fontLink.id = 'fontLink';
	fontLink.innerHTML='<a href="javascript:switchStyleSheet(\''+fontIncText+'\',\''+fontDecText+'\');" id="font">'+startText+'</a>';
	rightTools.insertBefore(fontLink, rightTools.firstChild);
}

// add print link
function addPrintLink(){
	var rightTools = document.getElementById('rightTools');
	printLink = createElement('li');
	printLink.id = 'printLink';
	printLink.innerHTML='<a href="javascript:window.print();">'+printText+'</a>';
	rightTools.insertBefore(printLink, rightTools.firstChild);
}

// modify tip link
function modifyTipLink(){
	var tipOpener = document.getElementById('tipOpener');

	tipperUrl = '/extra/sendlink/ext.php?title='+document.title+'&url='+this.location;

	// some glue, bloody javascript: -pseudo does not work with moz
	tipOpener.href='#';
	tipOpener.onclick=openTipWin;

	function openTipWin() { window.open(tipperUrl,"lilTipper","width=350,height=500"); }

}

// add remove marks link
function addRemoveMarks(){
	re=/keyword/i;
	if(urlVars.match(re)){
		var rightTools = document.getElementById('rightTools');
		removeMarksLink = createElement('li');
		removeMarksLink.id = 'removeMarksLink';
		removeMarksLink.innerHTML='<a href="javascript:modifySearchMarks(\'white\',\'#333\');">'+removeMarksText+'</a>'
		rightTools.insertBefore(removeMarksLink, rightTools.firstChild);
	}

}

// add favourites link, ie only
function addFavLink(){
	if (navigator.appName == 'Microsoft Internet Explorer'){
		var rightTools = document.getElementById('rightTools');
		favLink = createElement('li');
		favLink.id = 'favLink'; 
		favLink.innerHTML='<a href="javascript:window.external.AddFavorite(document.location,document.title)">'+favText+'</a>';
		rightTools.insertBefore(favLink, rightTools.firstChild);
	}
}

// switch active stylesheet, with a 'little' help from A List Apart
function switchStyleSheet(textDecrease,textIncrease) {
	if (getActiveStyleSheet() == 'large') {
		document.getElementById('font').innerHTML=textDecrease;
		setActiveStyleSheet('default');
		createCookie("style", "null", 365);
	} else {
		document.getElementById('font').innerHTML=textIncrease;
		setActiveStyleSheet('large');
		createCookie("style", "large", 365);
	}
}

// ALA
function setActiveStyleSheet(title) {  var i, a, main;  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {      a.disabled = true;      if(a.getAttribute("title") == title) a.disabled = false;    }  }}
// ALA
function getActiveStyleSheet() {  var i, a;  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");  }  return null;}// ALA
function getPreferredStyleSheet() {  var i, a;  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {    if(a.getAttribute("rel").indexOf("style") != -1       && a.getAttribute("rel").indexOf("alt") == -1       && a.getAttribute("title")       ) return a.getAttribute("title");  }  return null;}// ALA
function createCookie(name,value,days) {  if (days) {    var date = new Date();    date.setTime(date.getTime()+(days*24*60*60*1000));    var expires = "; expires="+date.toGMTString();  }  else expires = "";  document.cookie = name+"="+value+expires+"; path=/";}// ALA
function readCookie(name) {  var nameEQ = name + "=";  var ca = document.cookie.split(';');  for(var i=0;i < ca.length;i++) {    var c = ca[i];    while (c.charAt(0)==' ') c = c.substring(1,c.length);    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);  }  return null;}
// ALA
window.onload = function(e) {  var cookie = readCookie("style");  var title = cookie ? cookie : getPreferredStyleSheet();  setActiveStyleSheet(title);}
// ALA
window.onunload = function(e) {  var title = getActiveStyleSheet();  createCookie("style", title, 365);}// ALA
var cookie = readCookie("style");var title = cookie ? cookie : getPreferredStyleSheet();setActiveStyleSheet(title);
// add event (http://www.scottandrew.com/weblog/articles/cbs-events)
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

// create element (http://simon.incutio.com/archive/2003/06/15/javascriptWithXML)
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') {
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	}
	if (typeof document.createElement != 'undefined') {
		return document.createElement(element);
	}
	return false;
}

function switchStat(layerId){
	if (document.getElementById(layerId).className == "statHidden"){
		document.getElementById(layerId).className = 'statShown';
	} else {
		document.getElementById(layerId).className = 'statHidden';
	}
}

/*
function replaceText(text){
	While(text.lastIndexOf("&") > 0){
		text = text.replace('&', '[i-Stats]');
	}
return text;
}
*/

function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable' 
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

// do that init
window.onload=init;
