function xGetCookie(name)
{
  var value=null, search=name+"=";
  if (document.cookie.length > 0) {
    var offset = document.cookie.indexOf(search);
    if (offset != -1) {
      offset += search.length;
      var end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      value = unescape(document.cookie.substring(offset, end));
    }
  }
  return value;
}

function xSetCookie(name, value, expire, path)
{
  document.cookie = name + "=" + escape(value) +
                    ((!expire) ? "" : ("; expires=" + expire.toGMTString())) +
                    "; path=" + ((!path) ? "/" : path);
}

function xGetElementById(e)
{
  if(typeof(e)=='string') {
    if(document.getElementById) e=document.getElementById(e);
    else if(document.all) e=document.all[e];
    else e=null;
  }
  return e;
}

function changecss(theClass,element,value) {
	//documentation for this script at http://www.shawnolson.net/a/503/
	 var cssRules;
	 if (document.all) {
	  cssRules = 'rules';
	 }
	 else if (document.getElementById) {
	  cssRules = 'cssRules';
	 }
	 for (var S = 0; S < document.styleSheets.length-1 ; S++){
	  for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
	   if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
	    document.styleSheets[S][cssRules][R].style[element] = value;
	   }
	  }
	 }	
}


function getTxtSize() {
	var mylist=document.getElementById("main_col");

	for (i=0; i<mylist.childNodes.length; i++){
		if (mylist.childNodes[i].nodeName=="P")
			{
				return mylist.childNodes[i].style['fontSize'];
			}
	}
}

function setTxtSize(size)
{
	var mylist=document.getElementById("main_col");
	for (i=0; i<mylist.childNodes.length; i++){
		if (mylist.childNodes[i].nodeName=="P")
			{
				mylist.childNodes[i].style['fontSize'] = size;
			}
	}
}

function myTextSize() {
	
	var newSize=xGetCookie("textsize");
	
	if (!newSize) 
	{
		setTxtSize("0.875em");
	}
	else
		setTxtSize(newSize);

	var startSize = getTxtSize();
	
	if(!startSize) // to prevent errors when a P element is not present, like in gallery page
		return ;
	
	startSize = startSize.substring(0,startSize.length-2);	
	
	if(this.id)
	{
		switch (this.id) {
			case "larger":
				startSize = (parseFloat(startSize)+0.05)+"em";
				break;
			case "smaller":
				startSize = (parseFloat(startSize)-0.05)+"em";
				break;
		}
		
		setTxtSize(startSize);
		var date = new Date();
		date.setTime(date.getTime() + (28 * 24 * 3600000));
		xSetCookie("textsize",startSize,date);
	}
	
	return false;		
}

function xAddEventListener(e,eT,eL,cap)
{
  if(!(e=xGetElementById(e)))return;
  eT=eT.toLowerCase();
  if(e.addEventListener)e.addEventListener(eT,eL,cap||false);
  else if(e.attachEvent)e.attachEvent('on'+eT,eL);
  else e['on'+eT]=eL;
}

function swap() {
	var css = document.getElementsByTagName("link");

	if (css[0].disabled == false) {
		css[0].disabled = true;
		css[1].disabled = true;
		css[1].disabled = false;
	}
	else {
		css[0].disabled = false;
		css[1].disabled = true;
	}
}

function initImages() {
	var t = xGetCookie("img");
	var n;
	if (t != null) n = parseInt(t);  
	if (t == 1) {
		var css = document.getElementsByTagName("link");
		css[0].disabled = true;
		css[t].disabled = true;
		css[t].disabled = false;
	}
	
	xGetElementById("image_on").onclick = swap;
	xGetElementById("image_off").onclick = swap; 
	
	xGetElementById("larger").onclick = myTextSize;
	xGetElementById("smaller").onclick = myTextSize;
}

function unloadImg() {
	var date = new Date();
	date.setTime(date.getTime() + (28 * 24 * 3600000));
	var css = document.getElementsByTagName("link");
	if (css[0].disabled == true) {
		xSetCookie("img", "1", date);
	}
	else {
		xSetCookie("img", "0", date);
	}
}

xAddEventListener(window,"load",initImages,false);
xAddEventListener(window,"load",myTextSize,false);
xAddEventListener(window,"unload", unloadImg, false);

