 var reset = true;
 var IE = {};

 function init(id,mp){
   //try {hide('tree')} catch (e) {}
   try {document.getElementById('m'+mp).className = 'selected'} catch (e) {}
   //try {tree(document.getElementById('t'+id)).firstChild.className = 'selected'} catch (e) {}
   try {initTree();} catch (e){}
   try {dl(0)} catch (e) {}
   try {initFaq();} catch(e) {}
   try {initSitemap();} catch(e) {}
   try {initPopups()} catch(e) {}
   try {formRelated()} catch (e) {}
   try {document.getElementById('cmdFilter').className = 'hide'} catch (e) {}
 }

 function hide(id){
   var ul = document.getElementById(id).getElementsByTagName('ul');
   for(var i = new Number(1); i<ul.length; i++){     
     ul[i].className = 'hide';
   }
   var li = document.getElementById('menu').getElementsByTagName('li');
   for(var i = new Number(0); i<li.length; i++){     
     if(li[i].className == 'hover'){li[i].className = ''}
   }
 }

 function over(elmt){
   if(elmt.className != 'hover'){elmt.className='hover'}
   var child = elmt.getElementsByTagName('ul');
   if(child[0]){child[0].className = 'show'}
 }

 function tree(elmt){
   var parent = elmt.parentNode;
   parent.className = 'show';
   parent = parent.parentNode;
   if(parent.id != 'tree'){
     parent.className = 'folderIsOpen';
     tree(parent);
   }
   return elmt 
 }

 function showAll(){
   var ul = document.getElementById('tree').getElementsByTagName('ul');
   for(var i = new Number(0); i<ul.length; i++){     
     ul[i].className = 'show';
     ul[i].parentNode.className = 'folderIsOpen' 
   }
 }

 function doOpen(elmt){
   if(reset){
     if(elmt.className == 'folderIsTrue'){   
       elmt.className = 'folderIsOpen';
       var child = elmt.getElementsByTagName('ul');
       if(child[0]){child[0].className = 'show'}
     }else{
       if(elmt.className == 'folderIsOpen'){   
         elmt.className = 'folderIsTrue';
         var child = elmt.getElementsByTagName('ul');
         if(child[0]){child[0].className = 'hide'}
       }
     }
     reset = false;
   }
 }

 function toggle(elmt,id){
   if(elmt.className == 'toggle1'){
     elmt.className = 'toggle2';
   }else{
     elmt.className = 'toggle1';
   }
   if(document.getElementById(id).className == 'show'){
     document.getElementById(id).className = 'hide';
   }else{
     document.getElementById(id).className = 'show'
   }
 }

 function dl(nr){
   var pag = 4;
   var dt = document.getElementById('page').getElementsByTagName('dt');

   if (nr==0) {
     var nav = '<li onclick="dl(\'p\')"><a href="#top">Vorige</a></li>';
     for(var i = new Number(1); i<1+dt.length/pag; i++){
       nav = nav + '<li onclick="dl(' + i + ')"><a href="#top">' + i + '</a></li>';
     }
     nav = nav + '<li onclick="dl(\'n\')"><a href="#top">Volgende</a></li>';
     document.getElementById('navTop').innerHTML = nav
     document.getElementById('navBottom').innerHTML = nav
     nr=1;
   }

   var top = document.getElementById('navTop').getElementsByTagName('li');
   var bottom = document.getElementById('navBottom').getElementsByTagName('li');

   if (nr=='p'){
     for(var i = new Number(0); i<top.length; i++){
       if(top[i].className == 'selected') {if(i>1) {dl(i-1)}; return;}
     }
   }
   if (nr=='n'){
     for(var i = new Number(0); i<top.length; i++){
       if(top[i].className == 'selected') {if(i<top.length-2) {dl(i+1)}; return;}
     }
   }

   for(var i = new Number(0); i<top.length; i++){top[i].className = ''; bottom[i].className = '';}
   for(var i = new Number(1); i<Math.max(1,Math.min(nr-5,top.length-11)); i++){top[i].className = 'hide'; bottom[i].className = 'hide';}
   for(var i = new Number(Math.max(nr+5,11)); i<top.length-1; i++){top[i].className = 'hide'; bottom[i].className = 'hide';}

   top[nr].className = 'selected';
   bottom[nr].className = 'selected';

   var dd = document.getElementById('page').getElementsByTagName('dd');
   var hr = document.getElementById('page').getElementsByTagName('hr');
   for(var i = new Number(0); i<dt.length; i++){     
     dt[i].className = 'hide';
     dd[i].className = 'hide';
     hr[i].className = 'hide';
   }
   for(var i = new Number(pag*nr-pag); i<Math.min(pag*nr,dt.length); i++){
     dt[i].className = 'show';
     dd[i].className = 'show';
     hr[i].className = 'show';
   }
 }

 function adjust(){
 var height=0;

   if(document.all){
     if(document.compatMode == "CSS1Compat"){
       height = document.documentElement.clientHeight;
     }else{
       height = document.body.clientHeight;
     }
   }else{
     height = document.documentElement.clientHeight;
   }

   if(height < 250){height = 250};
   height = height - 141 + 'px';

   //document.getElementById('left').style.height = height; //fixed height
   //document.getElementById('center').style.height = height;
   //document.getElementById('right').style.height = height;

   document.getElementById('spacer').style.height = height; //fill down
 }

 function request(url, target) {
   target.innerHTML = '';
   try {var xmlHttp = new ActiveXObject('MSXML2.XMLHTTP.3.0')} //IE
   catch (e) {var xmlHttp = new XMLHttpRequest()}
   xmlHttp.onreadystatechange = function() {
     if (xmlHttp.readyState==4) {
     target.innerHTML = xmlHttp.responseText;
     }
   }
   xmlHttp.open('GET', url, true);
   xmlHttp.send(null);
 }


function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	}
	else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

/* --- createElement() --- */
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') {
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	}
	if (typeof document.createElement != 'undefined') {
		return document.createElement(element);
	}
	return false;
}

/* --- setAttributes() --- */
function setAttributes(element,attr) {	// format attr: [['class','actief'],['href','http://www.test.xx']]
	if (typeof element.setAttributeNS != 'undefined') {
		for (a=0; a<attr.length; a++) {
			element.setAttributeNS('http://www.w3.org/1999/xhtml',attr[a][0],attr[a][1]);
		}
	}
	if (typeof element.setAttribute != 'undefined') {
		for (a=0; a<attr.length; a++) {
			element.setAttribute(attr[a][0],attr[a][1]);
		}
	}
	return false;
}

/* --- add className --- */
function addClass(node, className) {
	removeClass(node, className);	// make sure there won't be any doubles
	node.className += " " + className;
}

/* --- remove className --- */
function removeClass(node, className) {
	var seperator = (node.className.length == className.length) ? "" : " ";
	node.className = node.className.replace(seperator + className,"");
}

/* --- check if node has className --- */
function hasClass(node, className) {
	var nodeClass = node.className;
	if (!className && nodeClass != "") return true;			// if no className is specified any className will do
	if (className && nodeClass.indexOf(className) > -1) {	// match, but not exact
		var nodeClasses = nodeClass.split(/\s+/);			// seperate class names (devided by one or more whitespaces)
		for (c=0; c<nodeClasses.length; c++) {
			if (nodeClasses[c] == className) return true
		}
	}
	return false;
}

/* --- get first ancestor that matches the property --- */
function getAncestor(node, property, value, levels) {	// levels is an optional argument
	var parent = node;
	var level = (levels) ? levels : 1;
	do {
		parent = parent.parentNode;
		if (!parent || parent.nodeName == "HTML") return false;	// there is no parent or parent is <html>
		
		if ((parent[property] == value) ? true : hasClass(parent, value)) return parent; // return parent if property matches value
			
		if (levels) level--;
	} while (parent.parentNode && parent.parentNode.nodeName != "HTML" && level > 0);
}

function getParent(node) {
	var ancestor = node;
	for (p=1; p<node.ancestorLevel; p++) {
		ancestor = ancestor.parentNode;
	}
	return ancestor;
}

function initFaq() {
	//get the faq element
	
	
	var faq = document.getElementById('faq');
	if(!faq) return;
	
	//get the answers
	var anwsers = faq.getElementsByTagName('dd');
	if(!anwsers||!anwsers[0]||!anwsers[0].previousSibling) return; //there are no answers or the dl starts with a dd-tag
	
	for(var i=0;i<anwsers.length;i++) {
		var answer = anwsers[i];
		
		var ddArr = [];
		var prevSibling = answer;
		
		do {	// find corresponding <dt>
			if (!prevSibling.done && prevSibling.nodeName == "DD") {
				ddArr[ddArr.length] = prevSibling;
				prevSibling.done = true;
			}
			var prevSibling = prevSibling.previousSibling;
		} while (prevSibling.nodeName == "DD" || prevSibling.nodeType == 3);
		
		if (prevSibling.nodeName != "DT" || ddArr.length == 0) continue;
		var question = prevSibling;
		
		
		question.innerHTML = '<a href="#">' + question.innerHTML + '</a>';	// add <a> in order to make it accessible for keyboard
		var questionLabel = question.getElementsByTagName('a')[0];
		
		question.answers = ddArr;
		
		questionLabel.onclick = function() {
			if(IE.init) { IE.init(); }
			
			var dl = getAncestor(this.parentNode,'nodeName','DL');
			if(!dl) return; 
			
			if (dl.current && this.parentNode != dl.current) {
				for (c=0; c<dl.current.answers.length; c++) {
					removeClass(dl.current.answers[c], "open");
					}
				removeClass(dl.current, "open");
				}
			var openState = hasClass(this.parentNode, "open");
			for (n=0; n<this.parentNode.answers.length; n++) {
				openState ? removeClass(this.parentNode.answers[n], "open") : addClass(this.parentNode.answers[n], "open")
			}
			openState ? removeClass(this.parentNode, "open") : addClass(this.parentNode, "open")
			
			dl.current = this.parentNode;
			
			if(IE.redrawElement) IE.redraw(true);

			return false;
			}
		questionLabel.onmouseover = function() {
			addClass(this,'jsHover');
			}
		
		questionLabel.onmouseout = function() {
			removeClass(this,'jsHover');
			}
			
		
			
		}
		
		addClass(faq, "jsFaqOn");
	}

function initSitemap(){
	//return;
	
		
	var sitemap = document.getElementById('sitemap');
	if (!sitemap) return;
	
	var imgPrefix = "/image/sitemap_";	// prefix of icon, including path
	var imgExt = ".gif";					// extension of icon
	
	var parents = false;
	
	var divisions = [];
	
	//find top level li's
	for(c=0;c<sitemap.childNodes.length;c++) {
			if(sitemap.childNodes[c].nodeName == "LI") {
				divisions[divisions.length] = sitemap.childNodes[c];
			}
		}
	
	for(d=0;d<divisions.length;d++) {
		var division = divisions[d]
		if(!sitemap.openItem && hasClass(division,'open')) {
			sitemap.openItem = division;
			}
		else {
			removeClass(division,'open');
			}
		
			
		labellink = division.getElementsByTagName('a')[0];	
		labellink.onclick = function() {
			if(IE.init) { IE.init(); }

			var sitemap = document.getElementById('sitemap');
			if(!sitemap) return;
								
			var divisions = [];
			
			for(c=0;c<sitemap.childNodes.length;c++) {
				if(sitemap.childNodes[c].nodeName == "LI") {
					divisions[divisions.length] = sitemap.childNodes[c];
					}
				}
			/*for(d=0;d<divisions.length;d++) {
				var division = divisions[d];
				if (division != this.parentNode && this.parentNode != sitemap.openItem) removeClass(division, "open");	// close all devisions except the one that is clicked			
				}
			*/
			
			if(!hasClass(this.parentNode,"open")) {
				addClass(this.parentNode, "open");
				}
			else {
				removeClass(this.parentNode, "open");

				}
			/*sitemap.openItem = this.parentNode;*/
			if(IE.redrawElement) IE.redraw(true);

			}
		var branches = division.getElementsByTagName('li');
		
		for(b=0;b<branches.length;b++) {
			var branche = branches[b];
			
			if (!parents && getAncestor(branche, "className", "parent", 4)) parents = true;	// check 4 levels upwards for the className "parent"
			
			if (!hasClass(branche, "parent")) continue;
			
			branche.imgPrefix = imgPrefix;
			branche.imgExt = imgExt;
			branche.iconOpen = "minus";
			branche.titleTxtOpen = "collapse";
			branche.iconClosed = "plus";
			branche.titleTxtClosed = "expand";
		
			if (hasClass(branche, "open")) {
				branche.iconName = branche.iconOpen;
				branche.titleTxt = branche.titleTxtOpen;
				}
			else {
				branche.iconName = branche.iconClosed;
				branche.titleTxt = branche.titleTxtClosed;
				}
				
			branche.innerHTML = '<a href="#"><img src="' + imgPrefix + branche.iconName + imgExt + '" alt="' + branche.titleTxt + '" title="' + branche.titleTxt + '" border="0" /></a>' + branche.innerHTML;
			
			var foldLink = branche.getElementsByTagName('a')[0];
			
			foldLink.onclick = function() {
				if(IE.init) { IE.init(); }

				var branche = this.parentNode;
				var icon = this.getElementsByTagName('img')[0];
				
				if (branche.iconName == branche.iconOpen) {
					removeClass(branche, "open");
					var iconName = branche.iconClosed;
					var titleTxt = branche.titleTxtClosed;
				}
				else {
					addClass(branche, "open");
					var iconName = branche.iconOpen;
					var titleTxt = branche.titleTxtOpen;
				}
				
				icon.src = branche.imgPrefix + iconName + branche.imgExt;
				icon.alt = icon.title = titleTxt;
				branche.iconName = iconName;
				if(IE.redrawElement) IE.redraw(true);

			}
			
			}
			
			
		}
		
	addClass(sitemap,'jsSmpOn');
	}

initTree = function() {
	var treediv = document.getElementById('tree');
	if (!treediv) return;

	
	var treeul = treediv.getElementsByTagName('ul')[0];
	if (!treeul) return;
	
	//get the top level li's
	
	var rootfolders = [];
	
	for(var l=0;l<treeul.childNodes.length;l++) {
		if(treeul.childNodes[l].nodeName == 'LI') {
				rootfolders[rootfolders.length] = treeul.childNodes[l];
			}
		}
		
	for(var r=0;r<rootfolders.length;r++) {
		var rootfolder = rootfolders[r];
				
		var rootlink = rootfolder.getElementsByTagName('a')[0];
				
		if(rootlink) {			
			if(hasClass(rootlink,'selected')) {			
				rootfolder.open = true;				
				}
			}
			
		var subnodes = rootfolder.getElementsByTagName('ul')[0];
		
		if(subnodes) {
			for(var s=0;s<subnodes.childNodes.length;s++) {
				subnode = subnodes.childNodes[s];
				if(subnode.nodeName == 'LI') {
					var sublink = subnode.getElementsByTagName('a')[0];
					if(sublink)  {
						if(hasClass(sublink,'selected')) {
							rootfolder.open = true;
							}
						}					
					}
				subnode = null;
				}
			}
			
		if(!rootfolder.open) {
			rootfolder.onmouseover = function() {
				if(IE.init) { IE.init(); }
				if(!hasClass(this,'open')) {
					addClass(this,'open');
					}
				if(IE.redrawElement) { IE.redraw(true);}
				}
			
			rootfolder.onmouseout = function() {
				if(IE.init) { IE.init(); }
				if(hasClass(this,'open')) {
					removeClass(this,'open');
					}
				if(IE.redrawElement) { IE.redraw(true);}
				}
			}
		else {
			addClass(rootfolder,'open');
			}
			
		}
		
	addClass(treediv,'jsTree');
}

function initPopups() {
	/* DIV section -|- add section for every tagName */
	var divs = document.getElementsByTagName('div');
	popUps(divs);
	/* end DIV section */
	
	addClass(document.body, "jsPopupOn");	// CSS hook to turn it on
}

function popUps(nodelist) {
	for (n=0; n<nodelist.length; n++) {
		var node = nodelist[n];
		if (!hasClass(node, "popup")) continue;
		
		node.onmouseover =  function() {
			addClass(this, "jsPopupHover");
		}
		
		node.onmouseout = function() {
			removeClass(this, "jsPopupHover");
		}
		
		/* in order to make it work for keyboard as well... */
		var popLink = node.getElementsByTagName('a')[0];
		if (!popLink) continue;
		
		var ancestor = popLink;
		popLink.ancestorLevel = 0;
		do {
			ancestor = ancestor.parentNode;
			popLink.ancestorLevel++;
		} while (ancestor == node || popLink.ancestorLevel > 10);
		
		if (popLink.ancestorLevel > 10) continue;
				
		popLink.onfocus = function() {
			var node = getParent(this);
			node.onmouseover();
		}
		
		popLink.onblur = function() {
			var node = getParent(this);
			node.onmouseout();
		}
	}
}

/* --- formRelated() fill in default value slave form --- */

function formRelated() {
	
         document.getElementById('Perceelnummer').value = document.getElementById('hdnPerceelnummer').value;
         document.getElementById('Adres').value = document.getElementById('hdnAdres').value;
         document.getElementById('Postcode').value = document.getElementById('hdnPostcode').value;
         document.getElementById('Plaats').value = document.getElementById('hdnPlaats').value;

}
