var opleidingen = {"id":0,"parent":null,"label":"Root","url":false,"level":0,"childs":[{"id":"1","parent":"0","label":"Bedrijf & Ondernemen","content":"0","level":1,"childs":[{"id":"24","parent":"1","label":"Opleidingen Administratie en Secretarieel","content":"101","level":2,"childs":[]},{"id":"25","parent":"1","label":"Opleidingen Commerciele dienstverlening","content":"104","level":2,"childs":[]},{"id":"26","parent":"1","label":"Opleidingen Detailhandel","content":"125","level":2,"childs":[]},{"id":"47","parent":"1","label":"Opleidingen Horeca & Hospitality","content":"274","level":2,"childs":[]}]},{"id":"40","parent":"0","label":"Loopbaancentrum & Educatie","content":"0","level":1,"childs":[{"id":"48","parent":"40","label":"Alle mogelijkheden bij Loopbaancentrum & Educatie","content":"332","level":2,"childs":[]}]},{"id":"3","parent":"0","label":"Mens & Maatschappij","content":"0","level":1,"childs":[{"id":"49","parent":"3","label":"Opleidingen Helpende - Kinderopvang","content":"336","level":2,"childs":[]},{"id":"29","parent":"3","label":"Opleidingen Juridisch, Ge","content":"352","level":2,"childs":[]},{"id":"30","parent":"3","label":"Opleidingen Onderwijs","content":"127","level":2,"childs":[]},{"id":"27","parent":"3","label":"Opleidingen Verzorging en Verpleging","content":"126","level":2,"childs":[]},{"id":"28","parent":"3","label":"Opleidingen Welzijn","content":"105","level":2,"childs":[]}]},{"id":"2","parent":"0","label":"Techniek & Technologie","content":"0","level":1,"childs":[{"id":"35","parent":"2","label":"Opleidingen Bouw, Interieur en Infra","content":"107","level":2,"childs":[]},{"id":"34","parent":"2","label":"Opleidingen Engineering, mechatronica en automotive","content":"108","level":2,"childs":[]},{"id":"36","parent":"2","label":"Opleidingen ICT","content":"109","level":2,"childs":[]},{"id":"37","parent":"2","label":"Opleidingen Installektro","content":"110","level":2,"childs":[]},{"id":"38","parent":"2","label":"Opleidingen Proces- en Textieltechniek","content":"111","level":2,"childs":[]}]}]};

window.onload = init;

function init() {
	var nav = document.getElementById('nav');
	var items = nav.getElementsByTagName('li');
	var total = items.length;
	for (i = 0; i < total; i++) {
		if (items[i].className == 'rootitem') items[i].onclick = toggle;
		else if (items[i].className == 'subitems') items[i].onclick = toggleSub;
		else items[i].onclick = stopBubble;
	}
	
	// opleidingkiezer
	var check = document.getElementById('kiezer');
	if (check) {
		var ul = parseOpleidingen(opleidingen);
		replaceKiezer(ul);
	}
	
	// slideshow
	var FO = { movie:"/files/swf/slideshow.swf?filename=/rotatorImages.php", width:"175", height:"148", majorversion:"6", build:"0",wmode:"opaque", xi:"true" };
	UFO.create(FO, "slideshow"); 
	
	// search box
	var searchval = document.getElementById('search-box');
	if (searchval) searchval.onclick = searchtext;
}

function searchtext(){
  if(this.value == "zoeken..."){
    this.value = "";
  }
}

function stopBubble(e)
{
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}

function toggleSub(e)
{
	if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();

	var ul = this.getElementsByTagName('ul')[0];
	ul.style.display = ul.style.display == 'block' ? 'none' : 'block';
	var parent = ul.parentNode;

	if (parent.className.indexOf('subactive') == -1) {
		parent.className = parent.className + " subactive";
	}
	else {
		parent.className = parent.className.replace(" subactive", "");
	}
}

function closeAll()
{
	var nav = document.getElementById('nav');
	var items = nav.getElementsByTagName('li');
	var total = items.length;

	for (i = 0; i < total; i++) {
		if (items[i].className == 'rootitem') {
			var div = items[i].getElementsByTagName('div')[0];
			div.style.display = 'none';
			div.parentNode.id = div.parentNode.id.replace("-active", "");
		}
	}
}

function toggle(e)
{
	var div = this.getElementsByTagName('div')[0];
	var parent = div.parentNode;

	if (parent.id.indexOf('active') == -1) {
		closeAll();
		parent.id = parent.id + "-active";
	}
	else {
		parent.id = parent.id.replace("-active", "");
	}
	if (div.id == 'sub-contact' || div.id == 'sub-organisatie') div.style.left = '-35px';
	div.style.display = div.style.display == 'block' ? 'none' : 'block';
}


function parseOpleidingen(o)
{
	var ul = document.createElement('ul');
	ul.setAttribute('id', 'kiezer');
	ul.className = "kiezer-l" + (o.level + 1);

	for (index in o.childs) {
		var child = o.childs[index];
		var li = document.createElement('li');

		li.appendChild(document.createTextNode(child.label));
		li.opleiding = child;
		li.onclick = function() {
			if (this.parentNode.id == 'kiezer') {
				replaceKiezer(parseOpleidingen(this.opleiding));
				addSelected(this);
			}
			else if (this.parentNode.id == 'kiezer-selected') {
				removeSelected(this);
				var opleiding = getOpleidingById(this.opleiding.parent, opleidingen);
				replaceKiezer(parseOpleidingen(opleiding));
			}
		}
		li.onmouseover = function() {
			if (this.parentNode.id == 'kiezer') {
				this.className = 'hover';
			}
		}
		li.onmouseout = function() {
			if (this.parentNode.id == 'kiezer') {
				this.className = '';
			}
		}
		ul.appendChild(li);
	}
	
	return ul;
}

function getOpleidingById(id, opleiding)
{
	if (opleiding.id == id) return opleiding;
	for (i in opleiding.childs) {
		var check = getOpleidingById(id, opleiding.childs[i]);
		if (typeof(check) == 'object') return check;
	}
}

function addSelected(li)
{
	var selected = document.getElementById('kiezer-selected');
	selected.className = 'active';
	selected.appendChild(li);
	selected.className += " selected-l" + (li.opleiding.level + 1);
	if (li.opleiding.content != 0) {
		window.location.href = 'index.php?pid=' + li.opleiding.content;
	}
}

function removeSelected(li)
{
	var ul = li.parentNode;
	var childs = ul.getElementsByTagName('li');
	var startremove = false;
	var toBeRemoved = new Array();
	for (var i = 0; i < childs.length; i++) {
		var child = childs[i];
		if (startremove == false && child == li) startremove = true;
		if (startremove) toBeRemoved.push(child);
	}
	
	for (i = 0; i < toBeRemoved.length; i++) {
		ul.removeChild(toBeRemoved[i]);
	}
	
	var last = ul.lastChild;
	if (last) {
		ul.className = "active selected-l" + (last.opleiding.level + 1);
	}
	
	if (childs.length == 0) ul.className = 'inactive';
}

function replaceKiezer(ul)
{
	var kiezer = document.getElementById('kiezer');
	kiezer.parentNode.replaceChild(ul, kiezer);
}