addEvent(window,'load',hideFocusBorders);
addEvent(window,'load',prepareZoekSlide);

/* 'add event'-functie om meerdere javascripts aan te roepen */
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	
	} else if (obj.attachEvent) {
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	
	} else {
		return false;
	}
}


/* verwijder stippellijntjes rond links */
/* ontleend aan http://codylindley.com/Javascript/223/hiding-the-browsers-focus-borders-should-i-shouldnt-i */
function hideFocusBorders() {
	var theahrefs = document.getElementsByTagName('a');
	
	if(!theahrefs) {
		return;
	}
	
	for(var x=0;x!=theahrefs.length;x++) {
		theahrefs[x].onfocus = function stopLinkFocus() {
			this.hideFocus=true;
		};
	}
}


/* slide-effect zoekvenster */
// initialiseer zoeklink
function prepareZoekSlide() {
	
	// check of javascript voldoende wordt ondersteund door de browser 
	if (!document.getElementById) {
		return;
	}
	
	// check of de zoekslide mogelijk is
	if (!document.getElementById('zoekformulier')) {
		return;
	}
	
	if (!document.getElementById('zoektab')) {
		return;
	}
	
	/* haal alle zoeklink op uit de DOM */
	var zoeklink = document.getElementById('zoektab');
	
	// maak mousedown-functie die het slide-effect aanroept 
	zoeklink.onmousedown = function() {
		toggleSlide('zoekformulier');
	}
	
	zoeklink.onclick = function() {
		return false;
	}
	
}

/* slide-functies */
/* gebaseerd op http://duggmirror.com/programming/How_to_Create_Digg_Comment_Style_Sliding_DIVs_with_Javascript_and_CSS/ */
var timerlen = 5;
var slideAniLen = 150;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
			return;

        if(document.getElementById(objname).style.display != 'none')
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = 'down';
        startslide(objname);
       
       // fadeIn-effect
       setOpacity(objname,0);
       fadeIn(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == 'none')
                return; // cannot slide up something that is already hidden
		
        moving[objname] = true;
        dir[objname] = 'up';
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == 'down'){
                obj[objname].style.height = '1px';
        }

        obj[objname].style.display = 'block';

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == 'up')
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + 'px';
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == 'up')
                obj[objname].style.display = 'none';

        obj[objname].style.height = endHeight[objname] + 'px';

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function toggleSlide(objname){
  var zoekcontainer = document.getElementById('zoekcontainer');
  var link = document.getElementById('zoektab');
  
  link.onclick = function() {
	return false;
	}
  
  if(document.getElementById(objname).style.display == 'none') {
    // div is hidden, so let's slide down
    slidedown(objname);
    //zoekcontainer.style.background = '#900';
    //zoekcontainer.style.zIndex = '2';
    link.innerHTML = 'verberg';
  } else {
    // div is not hidden, so slide up
    slideup(objname);
    //zoekcontainer.style.background = '';
    link.innerHTML = 'zoek';
  }
}

/*
function faq(objname){
	var f=1
	for (f=1;f<=30;f++){
		slideup('faq' + f);
		slidedown(objname);
	}
}
*/


/* universele javascript-fader */
/* [ gebaseerd op http://www.ilikespam.com/blog/javascript-fade-effects ] */
var duration = 800;		/* milliseconds */
var steps = 24;			/* number opacity intervals */

function setOpacity(id,level) {
	var element = document.getElementById(id);
	element.style.opacity = level;
	element.style.MozOpacity = level;
	element.style.KhtmlOpacity = level;
	element.style.filter = 'alpha(opacity=' + (level * 100) + ');';
}

function fadeIn(id) {
	for (i = 0; i <= 0.999; i += (1/steps)) {
		setTimeout("setOpacity('" + id + "'," + i + ")", i * duration);
	}
	
	setTimeout("setOpacity('" + id + "'," + ".999);", duration);
	
}
      
function fadeOut(id) {
	for (i = 0; i <= 0.999; i += (1/steps)) {
		setTimeout("setOpacity('" + id + "'," + (1 - i) + ")", i * duration);
	}
	
	setTimeout("setOpacity('" + id + "',0);", duration);
}