// Extend String with getHash()
String.prototype.getHash = function() {
 var hash = this.split('#');
 return (hash[1]) ? hash[1] : false;
}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

var Tabs = {
 'home' : '1',
 'erwinvanlun' : '2',
 'boeken' : '3',
 'lezingen' : '4',
 'workshops' : '5',
 'trends' : '6'
}

// Links
var Links = {
 domain : undefined,
 init : function() {
  Links.domain = location.href.match(/http:\/\/([\-\.0-9a-z]*)\/.*/)[1] || false;
  // add document event handler
  document.onclick = Links.clicked;
  // loop thru links to set external
  var A = document.getElementsByTagName('a');
  for (var i = 0; i < A.length; i++) {
   if (!(A[i].href.match(Links.domain))) A[i].className += ' external';
  } 
 },
 clicked : function(e) {
  var event = e || window.event;
	if(event.ctrlKey || event.shiftKey || event.altKey) return true;
	if(event.which && event.which != 1) return true;

	var target = event.target || event.srcElement;
	while(target && !/^a$/i.test(target.nodeName)) {
   target = target.parentNode;
	}

	if(!target || !target.className) return true;

  var clas = target.className;
  var href = target.getAttribute('href');
  switch(clas) {
   case 'toggle':
    ToggleElement(target);
    break;
   case 'popup':
    window.open(href,'_blank','width=400,height=440');
    break;
   case 'external':
    window.open(href, '_blank');
    break;
   case 'print':
    self.print();
    break;
   default:
    return true;
  }

  try { event.preventDefault(); } catch(e){}
  return false;
 }
}

function ToggleElement(a) {
 var href = a.href;
 var hash = href.getHash();
 if (!hash) return;
 var el = document.getElementById(hash);
 if (!el) return;
 var isHidden = (el.className == 'hidden') ? true : false;
 el.className = (isHidden) ? '' : 'hidden';

 if (!a.style.backgroundImage) {
  //a.style.backgroundImage = 'url(http://www.mensmerk.nl/images/design/togglefold/uit-'+ Tabs[document.body.className] +'.gif)';
 }
 
 var currentCookie = Cookie.get('open_on_load') || '';
 
 if (isHidden) {
  a.style.backgroundImage = a.style.backgroundImage.replace('uit-','in-');
  Cookie.set('open_on_load',currentCookie+'|'+hash);
 } else {
  a.style.backgroundImage = a.style.backgroundImage.replace('in-','uit-');
  Cookie.set('open_on_load',currentCookie.replace('|'+hash,''));
 }
 
}

function CheckToggleElements() {
 var current = Cookie.get('open_on_load');
 if (current == null) return;
 var openThese = current.split('|');
 
 for (var i = 0; i < openThese.length; i++) {
  
  var thisone = openThese[i];
  if (!thisone) continue;
  var el = document.getElementById(thisone);
  if (!el) continue;
  el.className = '';
 }
 
}


function PrintCheck() {
 var hash = location.href.getHash();
 if (!hash) return;
 if (hash == 'print') self.print();
}

function ValidateForm() {
 var form = document.getElementById('searchform');
 if (!form) return;
 var keywords = document.getElementById('searchterm');
 if (!keywords) return;
 
 var inputs = form.getElementsByTagName('input');
 var select = form.getElementsByTagName('select');

 
 form.onsubmit = function() {
  /*
  var form = document.getElementById('searchform');
  var keywords = document.getElementById('searchterm');
  var inputs = form.getElementsByTagName('input');
  var select = form.getElementsByTagName('select');
  */
  var kw = keywords.value;
  if (!kw || kw.length < 3) { return false; }
  for (var i = 0; i < inputs.length; i++) {
   var el = inputs[i];
   if (!el.id || el.type == 'hidden') continue;
   if (el.type == 'text') 
    var value = el.value;
   else
    var value = el.checked ? 'checked' : '';
   Cookie.set(el.id,value);
  }
  for (var i = 0; i < select.length; i++) {
   var el = select[i];
   if (!el.id) continue;
   Cookie.set(el.id,el.selectedIndex);
  }
 }
 
 for (var i = 0; i < inputs.length; i++) {
  var el = inputs[i];
  if (!el.id || el.type == 'hidden') continue;
  var checked = Cookie.get(el.id);
  if (checked == null) continue;
  if (el.type == 'text') {
   el.value = checked;
  } else {
   if (checked == 'checked') el.checked = 'checked';
  }
 }

 for (var i = 0; i < select.length; i++) {
  var el = select[i];
  if (!el.id) continue;
  var selected = Cookie.get(el.id);
  if (selected != null) el.selectedIndex = selected;
 }

}

var Cookie = {
 set : function (name,value,days) {
	if (days) {
	 var date = new Date();
	 date.setTime(date.getTime()+(days*24*60*60*1000));
	 var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
 document.cookie = name+"="+value+expires+"; path=/";
 },

 get : function(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;
},

 remove : function(name) { Cookie.set(name,"",-1); }
}



addLoadEvent(Links.init);
addLoadEvent(PrintCheck);
addLoadEvent(ValidateForm);
//addLoadEvent(CheckToggleElements);

