if(!Array.indexOf){
	Array.prototype.indexOf = function(obj){
		for(var i=0; i<this.length; i++)
			if(this[i]==obj) return i;
		return -1;
	}
}

// Google Analytics
var hrefs=document.getElementsByTagName("a");var link_path="";for(var l=0;l<hrefs.length;l++){try{var link_path=hrefs[l].pathname;var link_location=String(hrefs[l]);if(link_location.match(/^mailto:/i)){addmailtotrackerlistener(hrefs[l]);}else if(location.host==hrefs[l].hostname){if(link_path.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/)){addtrackerlistener(hrefs[l]);}}else
{addtrackerlistener(hrefs[l]);}}catch(err){}}function addtrackerlistener(obj){if(obj.addEventListener){obj.addEventListener('click',trackfiles,true);}else if(obj.attachEvent){obj.attachEvent("on"+'click',trackfiles);}}function addmailtotrackerlistener(obj){if(obj.addEventListener){obj.addEventListener('click',trackmailto,true);}else if(obj.attachEvent){obj.attachEvent("on"+'click',trackmailto);}}function trackfiles(array_element){var file_path="";var destination_host=(array_element.srcElement)?array_element.srcElement.hostname:this.hostname;if(location.host!=destination_host){file_path="/virtual/exlink/"+cleanURL(window.location,true)+'/'+((array_element.srcElement)?array_element.srcElement.hostname:this.hostname);file_path=file_path+((array_element.srcElement)?"/"+cleanURL(array_element.srcElement.pathname,false):this.pathname);}else{file_path=((array_element.srcElement)?"/"+array_element.srcElement.pathname:this.pathname);var file_details=file_path.split('/');file_path=cleanURL(window.location,true)+'/'+file_details[(file_details.length-1)];file_path=(("/virtual/download/")+file_path);}pageTracker._trackPageview(file_path);}function trackmailto(array_element){var email=((array_element.srcElement)?array_element.srcElement.href:this.href).substring(7);var url=cleanURL(window.location,true);var mail_path='/virtual/mailto/'+url+'/'+email;pageTracker._trackPageview(mail_path);}function cleanURL(url,end){var url=url.toString();var urlLen=url.length;if(end){if(url.charAt((urlLen-1))=='/')url=url.substring(0,(urlLen-1));}else{if(url.charAt(0)=='/')url=url.substring(1,urlLen);}return url;}

// Cookies
function setCookie(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=/";
  return value;
}

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);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length);
  }
  return null;
}

// Font Size
var fontsizes = new Array('0.8125em','1.0em','1.625em');  // the default, larger, and largest font sizes
var size, oldonload,b=document.body,c='font-size',dgid=function(id){return document.getElementById(id)};
function makeControls() {
	var e=dgid('font-sizes'),x='default-font',y='larger-font',z='largest-font';
	if(e) {
		e.innerHTML = 'Font size: <a href="#"  title="Click for default font size" style="'+c+':100%;font-weight:bold;" id="'+x+'">A</a> <a href="#"  title="Click for larger font size" style="'+c+':110%;font-weight:bold;" id="'+y+'">A</a> <a href="#"  title="Click for largest font size" style="'+c+':125%;font-weight:bold;" id="'+z+'">A</a>';
		var h=document.createElement('h2');
		h.innerHTML = 'Accessibility Controls';
		e.parentNode.insertBefore(h, e);
		dgid(x).onclick=function() {
			b.style.fontSize=fontsizes[0];
			setCookie(c,fontsizes[0],999);
			return false;
		};
		dgid(y).onclick=function() {
			b.style.fontSize=fontsizes[1];
			setCookie(c,fontsizes[1],999);
			return false;
		};
		dgid(z).onclick=function() {
			b.style.fontSize=fontsizes[2];
			setCookie(c,fontsizes[2],999);
			return false;
		};
	}
}
if(oldonload=window.onload) {
	window.onload=function(e) {
		oldonload();
		if(fontsizes.indexOf((size=readCookie(c)))==-1) size=setCookie(c,fontsizes[0],999);
		b.style.fontSize=(size||b.style.fontSize);
		makeControls();
	};
} else {
	window.onload = function(e){
		if(fontsizes.indexOf((size=readCookie(c)))==-1) size=setCookie(c,fontsizes[0],999);
		b.style.fontSize=(size||b.style.fontSize);
		makeControls();
	};
}

// Anchor Link Highlighting
var el;
if((el=window.location.hash) && (el=el.substring(1)) && !dgid('toc')) {
	el=dgid(el);
	var bl=0;
	function f() {
		el.style.background = 'rgb(255,255,'+ (bl+=3) +')';
		if (bl<255) setTimeout(f,20);
	};
	f();
}
