/**
	name			ShowHideDivs
	type			function
	params			show: name of element which should be shown
					hide: name of element which should be hidden
	description		shows an element and hides another element by changing CSS display property.
**/
function ShowHideDivs(show,hide){
	var obj_divnaam = document.getElementById(hide);
	obj_divnaam.style.display='none';
	
	var obj_divnaam = document.getElementById(show);
	obj_divnaam.style.display='block';
}

/**
	name			setActiveStyleSheet
	type			function
	params			title: ??
	description		??
**/
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel") && a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

/**
	name			getActiveStyleSheet
	type			function
	params			-
	description		??
**/
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;
}

/**
	name			getPreferredStyleSheet
	type			function
	params			-
	description		??
**/
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;
}

/**
	name			createCookie
	type			function
	params			name: ??
					value: ??
					days: ??
	description		??
**/
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=/";
}

/**
	name			readCookie
	type			function
	params			name: ??
	description		??
**/
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;
}

/**
	name			styleSwitchLoad
	type			function
	params			e: event
	description		function is called on window.load and reads cookie information to set 
					previously selected stylesheet
**/
function styleSwitchLoad(e) {
  var normal = document.getElementById("set_normal");
  var bigger = document.getElementById("set_bigger");
  
  if (normal && bigger) {
    var cookie = readCookie("style");
    var title = cookie ? cookie : getPreferredStyleSheet();
    setActiveStyleSheet(title);
    if (title=="Groter"){
      normal.style.display="block";
      bigger.style.display="none";
      }
    else{
      bigger.style.display="block";
      normal.style.display="none";	
    }
  }
}

/**
	name			styleSwitchUnload
	type			function
	params			e: event
	description		function is called on window.unload and stores selected stylesheet in cookie
**/
function styleSwitchUnload(e) {
	var normal = document.getElementById("set_normal");
	var bigger = document.getElementById("set_bigger");
	if (normal && bigger) {
		var title = getActiveStyleSheet();
		createCookie("style", title, 365);
	}
}

function createTabs(ul) {
	ul.select('label').invoke('observe','click',function(event) {
		$$('div.productpart').invoke('addClassName','hidden');
		$(this.htmlFor).removeClassName('hidden');
		this.up('ul').select('li').invoke('removeClassName','selectedtab');
		this.up('li').addClassName('selectedtab');
	});
}

function createAllTabs() {
  $$('ul.tabs').each(function(ul) {createTabs(ul);})
}

function createPrintLink() {
  var targetElement = $("printlink");
  
  if (targetElement) {
    var link = document.createElement("a");
    link.href = "#";
    link.appendChild(document.createTextNode("Print pagina"));
    link.className = "link_print";
    link.onclick = function () {
      window.print();
      return false;
    }
    
    targetElement.appendChild(link);
  }
}

function createFontsizeLink() {
  var targetElement = $("fontsize");
  
  if (targetElement) {
    targetElement.innerHTML = "<div id=\"set_normal\"><a href=\"#\" class=\"first_link link_fontsize\" onclick=\"setActiveStyleSheet('Normaal'),ShowHideDivs('set_bigger','set_normal'); return false;\">Verklein letters</a></div><div id=\"set_bigger\"><a href=\"#\" class=\"first_link link_fontsize\" onclick=\"setActiveStyleSheet('Groter'),ShowHideDivs('set_normal','set_bigger'); return false;\">Vergroot letters</a></div>"
  }
  
}

function createWindowedLinks() {
  var links = $$("a.openinnewwindow");
  
  for (var i = 0; i < links.length; i++) {
    links[i].onclick = function () {window.open(this.href);return false;};
  }
}

var cookie, title;

function windowLoad() {
  createPrintLink();
  createFontsizeLink();
  createAllTabs();
  createWindowedLinks();
  
  cookie = readCookie("style");
  title = cookie ? cookie : getPreferredStyleSheet();
  
  styleSwitchLoad();
  //set stylesheet switch function to window.unload events
  Event.observe(window, "unload", styleSwitchUnload, false);
}

Event.observe(window, "load", windowLoad, false);