// JavaScript Document
var SCREEN_HEIGHT = 550;
var navPosition;
var counter = 0;
var soFar = 0 ;

function activateMenu(ID) {
	if (document.getElementById(ID)) {
		navPosition = document.getElementById(ID).offsetLeft;
		items = document.getElementById(ID).getElementsByTagName('li');
		for (i=0; i<items.length; i++) {
			if (items[i].id) 
			{   
				items[i].menu = document.getElementById(items[i].id + '_over');
				items[i].menu.style.height = items[i].menu.offsetHeight + "px";                
				items[i].menu.style.top = soFar + "px";                
				items[i].onmouseover = function (e) {
				if (top.opendropdown) closeOpen();
					toggleSelect ('content', 'hide');
					this.className = 'over';
					this.menu.style.visibility = 'visible';
					top.opendropdown = this;
				};
				items[i].onmouseout = function (e) {closeNav(e) };
				items[i].menu.onmouseout = function (e) {closeNav(e)};
			}
			if (items[i].className.indexOf('level') == -1) 
			{   
				soFar = soFar + items[i].offsetHeight;			
			}            
		}
	}
}

function getYPos(navItem) {
	yCorrection = 0;
	firstPos = navItem.offsetHeight;
	subHeight = document.getElementById(navItem.id + '_over').offsetHeight;
	if ((firstPos + navPosition + subHeight) > SCREEN_HEIGHT) {
		firstPos += (navItem.offsetHeight - subHeight);
		yCorrection = 0;
	}
	
	return firstPos + yCorrection;
}

function closeNav(e) {
	var to = (e) ? e.relatedTarget : event.toElement;
	if (top.opendropdown) {
		if (to) {//Do not close in response to events within the menu itself
			if (to.className){
				closeOpen();
			}
			var tg = to.tagName.toLowerCase();
			if (tg == "ul") return false;
			if (tg == "li") return false;
			if (tg == "a") return false;
			if (to == top.opendropdown.menu) return false;
		}
		closeOpen();
		return true;
	}
}

function closeOpen () {
	top.opendropdown.className = 'subs';
	top.opendropdown.menu.style.visibility = 'hidden';
	toggleSelect ('content', 'show');
}

function toggleSelect (ID, state) {
	var entries = document.getElementById(ID).getElementsByTagName('select')
	if (entries.length > 0) {
		for (var i=0; i<entries.length; i++) {
			if (state == 'hide') entries[i].style.visibility = 'hidden';	
			else entries[i].style.visibility = 'visible';	
		}
	}
}


function setSitemap(ID) {
	if(document.getElementById(ID)) {
		var entries = document.getElementById(ID).getElementsByTagName('div');
		for (i = 0; i < entries.length; i++) {
			if (entries[i].id.indexOf('vraag') != -1) {
				entries[i].antwoord = document.getElementById('antwoord' + entries[i].id.substr(5, entries[i].id.length));
				entries[i].onclick = function () {
					this.antwoord.style.display = 'block'; 
					this.style.display = 'none'; 
					setFooter();
				}
			}
			if (entries[i].id.indexOf('title') != -1) {
				entries[i].vraag = document.getElementById('vraag' + entries[i].id.substr(5, entries[i].id.length));
				entries[i].obj = document.getElementById('antwoord' + entries[i].id.substr(5, entries[i].id.length));
				entries[i].obj.style.display = 'none';
				entries[i].onclick = function (e) {
					this.vraag.style.display = 'block';
					this.obj.style.display = 'none'
					setFooter();
					return true;
				}
			}
		}
	}
}



function hideAllItems(ID) {
	if (document.getElementById(ID)) {
		var entries = document.getElementById(ID).getElementsByTagName('div');
		for (i = 0; i < entries.length; i++) {
			if (entries[i].id.indexOf('vraag') != -1) {
				entries[i].antwoord = document.getElementById('antwoord' + entries[i].id.substr(5, entries[i].id.length));
				
				init_layerSwap(entries[i].antwoord.id);
				
				entries[i].onclick = function () {
					this.antwoord.style.display = 'block'; 
					this.style.display = 'none'; 
					if (activeFAQ != null) {
						activeFAQ.antwoord.style.display = 'none';
						activeFAQ.style.display = 'block';
					}
					activeFAQ = this;
					setFooter();
				}
			}
			
			if (entries[i].id.indexOf('antwoord') != -1) {
				entries[i].style.display = 'none';
				entries[i].vraag = document.getElementById('vraag' + entries[i].id.substr(8, entries[i].id.length));
			}
		}
	}
}

var activeFAQ = null;



function init_layerSwap (ID) {
	if (document.getElementById(ID)) {
		showFirstLayer(ID);
		var entries = document.getElementById(ID).getElementsByTagName('a');
		for (var i=0; i < entries.length; i++) {
			entries[i].layer = document.getElementById('layer_' + entries[i].id);
			entries[i].onclick = function () {
				
				restLinks = document.getElementById(ID).getElementsByTagName('a');
				for (var b=0; b < restLinks.length; b++) {
					if (restLinks[b].className == 'selected' ) {
						restLinks[b].className = '';
					}
				}

				this.className = 'selected';
								
				restText = document.getElementById(ID).getElementsByTagName('span');
				for (var a=0; a < restText.length; a++) {
					if (restText[a].className == 'v' ) {
						restText[a].style.display = 'none';
					}
				}
				this.layer.style.display = "block"; 
			};
		}	
	}
}

function showFirstLayer(ID) {
	var counter = 1;
	var entries = document.getElementById(ID).getElementsByTagName('span');
	for (var i=0; i < entries.length; i++) {
		if (entries[i].className == 'v') {
			if (counter == 1) {
				entries[i].style.display = 'block';
			}
			counter++;
		}
	}
}


/*
function faqNav (ID) {
	if (document.getElementById(ID)) {
		var entries = document.getElementById(ID).getElementsByTagName('div');
		for (var i=0; i<entries.length; i++) {
			if (entries[i].id.indexOf('antwoord') != -1) {

				var textItems = entries[i].getElementsByTagName('p');
				

				var items = entries[i].getElementsByTagName('div');
				for (var a=0; a<items.length; a++) {
					if (items[a].className == 'faqNav') {
						var links = items[a].getElementsByTagName('a');
						for (var b=0; b<links.length; b++) {
							links[b].onclick = function () {
								for (var t=0; t<textItems.length; t++) {
									if (t > 0) textItems[t].style.display = 'none';	
									alert(textItems[t].className)
								}
								
							}
						}
					}
				}
			}
		}
	}
}
*/

function setBlur() {
	entries = document.getElementsByTagName('a');
	for (var i=0; i < entries.length; i++) {
		entries[i].onfocus = function() {this.blur()}
	}
}


function pagepreload() {
	if (document.getElementById('home')) {
		document.getElementById('preloader').innerHTMl = '&nbsp;loading ...';
	}
	document.getElementById('con').style.visibility = 'visible';
	
	if(document.getElementById('con_footer')) {
		document.getElementById('con_footer').style.visibility = 'visible';	
	}
	document.getElementById('preloader').style.display = 'none';
}


var preloaded = new Array();
function setMOhandler() {
	var aEls = ['img','input']
	for(var j=0; j < aEls.length; j++){
		var entries = document.getElementsByTagName(aEls[j]);
		for (var i=0; i < entries.length; i++) {
			if (entries[i].className == 'MO') {
				var onImageSrc = entries[i].src.replace('_n.', '_o.');
				preloaded[preloaded.length] = new Image();
				preloaded[preloaded.length-1].src = onImageSrc;
				entries[i].onmouseover = function () {this.src = this.src.replace('_n.', '_o.')}
				entries[i].onmouseout = function () {this.src = this.src.replace('_o.', '_n.')}
			}
		}
	}
}

var WINDOWSTATE;

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 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;
		}
	}
}

function frameCheck() {
	// framecheck
	if (parent != self)
	{
		 top.location.href = location.href; 
	}
}

function init () {
	var windowWidth = getWindowWidth();
	var activeStyleSheet = getActiveStyleSheet();
	if (windowWidth < 990) {
		setActiveStyleSheet('acht')
		WINDOWSTATE = 800;
	}
	if (windowWidth > 990) {
		setActiveStyleSheet('default')
	}
}

function getWindowWidth() {
	var windowWidth = 0;
	if (typeof(window.innerWidth) == 'number') {
		windowWidth = window.innerWidth;
	}  
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
				windowWidth = document.documentElement.clientWidth;
		} 
		else {
			if (document.body && document.body.clientWidth) {
				windowWidth = document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}

function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	} 
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		} 
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

var DEFAULTCONTENTHEIGHT = 0;
var LEFTBARDIV = 36;

function setFooter() {  
	if (document.getElementById) {
		var windowHeight = getWindowHeight();		
		if (windowHeight > 0) {
			DEFAULTCONTENTHEIGHT = document.getElementById('con').offsetHeight;
			var leftbar = 0;
			if (document.getElementById('leftBar')) {
				leftbar = document.getElementById('leftBar').offsetHeight; //568px
			}
			var content = document.getElementById('content').offsetHeight; //642px
			
			var footerElement = document.getElementById('con_footer');
			
			if (document.getElementById('extraField')) {				
				//if ((content - leftbar) >= 145 ) { //145px
					DEFAULTCONTENTHEIGHT = DEFAULTCONTENTHEIGHT - 115;
				//}				
			}
			else {
				DEFAULTCONTENTHEIGHT = DEFAULTCONTENTHEIGHT - 140;
			}
			var footerHeight = footerElement.offsetHeight;
			if (windowHeight - (DEFAULTCONTENTHEIGHT + footerHeight) >= 0) {			  
				footerElement.style.position = 'absolute';				
				footerElement.style.top = (windowHeight - footerHeight + 0) + 'px'; // het getal erbij is de padding van de 'con' container. 				
			}
			else {			  
				footerElement.style.position = 'absolute';
				footerElement.style.top = (DEFAULTCONTENTHEIGHT + 0) + 'px'; // het getal erbij is de padding van de 'con' container.
			}			
		}
	}
}

function setBookmark(ID) {
	
	var bookmarkurl = location.href;
	var bookmarktitle = document.title;
	var browser = 'unknown';
	browser = getBrowser();
	var entries = document.getElementsByTagName('a');
	for (var i=0; i<entries.length; i++) {
		if (entries[i].className == ID) {
			entries[i].onclick = function() {
				if ((browser == 'WIN_IE6') || (browser == 'WIN_IE55') || (browser == 'WIN_IE50')) {
					window.external.AddFavorite(bookmarkurl,bookmarktitle)
				}
				else if ((browser == 'WINMOZ') || (browser == 'MAC_FF') || (browser == 'WIN_FF') || (browser == 'Netscape')) {
					alert('Sluit deze waarschuwing af en druk op CTRL + D om de pagina in de favorieten te plaatsen.');
				}
				else if ((browser == 'WIN_OPERA') || (browser == 'MAC_OPERA')) {
					alert('Sluit deze waarschuwing af en druk op CTRL + T om de pagina in de favorieten te plaatsen.');
				}
				else {
					alert('Helaas heeft uw browser geen mogelijkheid om deze pagina in de favorieten te plaatsen.');
				}
			}
		}
	}
}


function getBrowser() {
    var mvIndex;
    var mozVers;
    var os = navigator.platform.toLowerCase(); 
    var agt = navigator.userAgent.toLowerCase(); 
    var ver = navigator.appVersion.toLowerCase();
    
    if (os.indexOf('win') != -1) {
        if (agt.indexOf("msie 6.0")!=-1) return "WIN_IE6";
        else if (agt.indexOf("msie 5.5")!=-1) return "WIN_IE55";
        else if (agt.indexOf("msie 5.0")!=-1) return "WIN_IE50";
        else if (agt.indexOf("netscape")!=-1) return "Netscape";
		else if (agt.indexOf("firefox")!=-1) return "WIN_FF";
		else if (agt.indexOf("opera")!=-1) return 'WIN_OPERA';
        else if (agt.indexOf("mozilla")!=-1) {
            var mvIndex = agt.indexOf('; rv:1.');
            var mozVers = agt.substr(mvIndex + 7, 1); 
            if (mozVers > 3) return "WINMOZ";
        }
    }
	else if (os.indexOf('mac') != -1) {
		if (agt.indexOf("opera")!=-1) return 'MAC_OPERA';
		else if (agt.indexOf("safari")!=-1) {
			var safIndex = agt.indexOf('safari/');
			var safVers = agt.substr(safIndex + 7, 3);
			if (safVers >= 312) return "MAC_SAF";
		}
		else if (agt.indexOf("netscape")!=-1) return "Netscape";
		else if (agt.indexOf("firefox")!=-1) return "MAC_FF";
		else if (agt.indexOf("mozilla")!=-1) {
			var mvIndex = agt.indexOf('; rv:1.');
			var mozVers = agt.substr(mvIndex + 7, 1); 
			if (mozVers > 3) return "MAC_MOZ";
		}
	}
}

function setTopButton(ID) {
	var windowHeight = getWindowHeight();
	var contentHeight = document.getElementById('con').offsetHeight;
	var footerHeight = document.getElementById('con_footer').offsetHeight;
	var entries = document.getElementsByTagName('a');
	for (var i=0; i<entries.length; i++) {
		if (entries[i].className == ID) {
			if ((contentHeight + (footerHeight - 120)) > windowHeight) {
				entries[i].style.visibility = 'visible'
			}
			else {
				entries[i].style.visibility = 'hidden'
			}
		}
	}
}

/* BEGIN : POPUP */

/* redefining default features */
var _POPUP_FEATURES = 'location=0,statusbar=0,menubar=0,resizable=1,scrollbars=1,width=480,height=360';

listen('load', window, function() {
	mlisten('click', getElementsByClass('mail','a'), event_popup );
});

function raw_popup(url, target, features) {
    if (isUndefined(features)) features = _POPUP_FEATURES;
    if (isUndefined(target  )) target   = '_blank';
    var theWindow = window.open(url, target, features);
    theWindow.focus();
    return theWindow;
}

function link_popup(src, features) {
    return raw_popup(src.getAttribute('href'), src.getAttribute('target') || '_blank', features);
}

function event_popup(e) {
    link_popup(e.currentTarget);
    e.preventDefault();
}

function event_popup_features(features) {
    return function(e) { link_popup(e.currentTarget, features); e.preventDefault() }
}

if (!Array.prototype.push) Array.prototype.push = function() {
    for (var i=0; i<arguments.length; i++) this[this.length] = arguments[i];
    return this.length;
}

Array.prototype.find = function(value, start) {
    start = start || 0;
    for (var i=start; i<this.length; i++)
        if (this[i]==value)
            return i;
    return -1;
}

Array.prototype.has = function(value) {
    return this.find(value)!==-1;
}

function map(list, func) {
    var result = [];
    func = func || function(v) {return v};
    for (var i=0; i < list.length; i++) result.push(func(list[i], i, list));
    return result;
}

function filter(list, func) {
    var result = [];
    func = func || function(v) {return v};
    map(list, function(v) { if (func(v)) result.push(v) } );
    return result;
}


function getElem(elem) {
    if (document.getElementById) {
        if (typeof elem == "string") {
            elem = document.getElementById(elem);
            if (elem===null) throw 'cannot get element: element does not exist';
        } else if (typeof elem != "object") {
            throw 'cannot get element: invalid datatype';
        }
    } else throw 'cannot get element: unsupported DOM';
    return elem;
}

function hasClass(elem, className) {
    return getElem(elem).className.split(' ').has(className);
}

function getElementsByClass(className, tagName, parentNode) {
    parentNode = !isUndefined(parentNode)? getElem(parentNode) : document;
    if (isUndefined(tagName)) tagName = '*';
    return filter(parentNode.getElementsByTagName(tagName),
        function(elem) { return hasClass(elem, className) });
}


function listen(event, elem, func) {
    elem = getElem(elem);
    if (elem.addEventListener)
        elem.addEventListener(event,func,false);
    else if (elem.attachEvent)
        elem.attachEvent('on'+event, function(){ func(new W3CDOM_Event(elem)) } );
    else throw 'cannot add event listener';
}

function mlisten(event, elem_list, func) {
    map(elem_list, function(elem) { listen(event, elem, func) } );
}

function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}


function isUndefined(v) {
    var undef;
    return v===undef;
}
/* END : POPUP */
