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;
		}
	}
	if( document.getElementById("normal") ) document.getElementById("normal").className = "";
	if( document.getElementById("bigger") ) document.getElementById("bigger").className = "";
	if( document.getElementById("large") ) document.getElementById("large").className = "";
	if( document.getElementById(title) ) document.getElementById(title).className = "active";
}

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;
}

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;
}

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=/";
}

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;
}

function showList(e) {
  ddList.className = showListClass;

  // events
  addEventS(document.body, 'click', hideList);
  removeEventS(ddTrig, 'click', showList);
  addEventS(ddTrig, 'click', hideList);
  
  if (!e) {var e = window.event;}
  e.cancelBubble = true;
  if (e.stopPropagation) e.stopPropagation();
}

function hideList(e) {
  ddList.className = hideListClass;

  // events
  removeEventS(document.body, 'click', hideList);
  removeEventS(ddTrig, 'click', hideList);
  addEventS(ddTrig, 'click', showList);

  if (!e) {var e = window.event;}
  e.cancelBubble = true;
  if (e.stopPropagation) e.stopPropagation();
}


// Utility function to add an event listener
function addEventS(o,e,f){
  if (o.addEventListener){ o.addEventListener(e,f,false); return true; }
  else if (o.attachEvent){ return o.attachEvent("on"+e,f,false); }
  else { return false; }
}
function removeEventS(o,e,f) {
  if (o.removeEventListener){ o.removeEventListener(e,f,false); return true; }
  else if (o.detachEvent){ o.detachEvent("on"+e,f); return true; }
  else { return false; }
} 

/**
 * Adds initial eventhandlers to all list elements to 
 * support keyboard navigation.
 * Adds mouse support for the trigger of the menu
 */
function ulDD() {
  // if DOM is not available stop right here.
  if (!document.getElementById && !document.createTextNode) {
    return;
  }
  
  // show trigger and add show-event
  if (ddTrig) {
    ddTrig.className = showTriggerClass;
    addEventS(ddTrig, 'click', showList);
  }
  
  if (ddList) {
    // set events to all the list items
    var items = ddList.getElementsByTagName("li");
    var nrOfItems = items.length;
    for (var i = 0; i < nrOfItems; i++) {
      addEventS(items[i].firstChild, 'focus', showList);
      addEventS(items[i].firstChild, 'blur', hideList);
      addEventS(items[i].firstChild, 'click', hideList);
    }
  }
}

window.onload=function() {
  // find used objects
  ddCont = document.getElementById('gs');  // Container DIV
  ddTrig = document.getElementById('gsTrigger');   // Trigger that opens the DD
  ddList = document.getElementById('gsListe');     // List of items to show

  // define css class names
  hideListClass = "dropdownClosed";
  showListClass = "dropdownOpened";
  showTriggerClass = "dropdownTriggerVisible";

  // initialize the eventhandlers
  ulDD();

  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

sfHover = function() {
	var sfEls = document.getElementById("topnav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" hover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" hover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);