/* Algemene functies */
function getNodeValue(obj,tag) { /* XML uitlezen */
    return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;
}

function getSingleData(response,tag) { /* XML uitlezen */
	return response.getElementsByTagName(tag)[0].firstChild.data;
}

/* Formulieren */
function activateField(id) { /* Veld/button actief maken */
	document.getElementById(id).disabled = false;
}

function focusField(id) { /* Zet cursor in veld */
	$(id).focus();
}

function submitForm(form) { /* Verzenden van een formulier */
	setLoading();
	form.submit();
}

/* Toetsaanslagen */
function checkKeyCode(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode;
	return charCode;
}

/* Snelzoeken. De twee selects afhankelijk van elkaar */
function setRegioByRichting() {
	var richting = $('snelzoeken_richting').value;
	var regio = $('snelzoeken_regio').value;
	var url = "/XML/snelzoeken.php";
	
	// Haal met ajax alle regio's op waar de richting gegeven wordt
	var pars = 'type=regio&richting=' + richting + '&regio=' + regio;
	
	new Ajax(url, {
		method: 'get',
		update: null,
		async: true,
		postBody: pars,
		onComplete: showRegio
	}).request();
}

function showRegio(text, response) {
	var regios = response.getElementsByTagName('regio');
	var id = null;
	var omschrijving = null;
	var length = regios.length;
	
	var oudeRegio = $('snelzoeken_regio').value;
	
	$('snelzoeken_regio').options.length = 2;
	
	if(length == 0) $('snelzoeken_regio').disabled = true;
	else {
		$('snelzoeken_regio').disabled = false;
		$('snelzoeken_regio').options.length = 2;
		for(i = 0; i < regios.length; i++) {
			id = getNodeValue(regios.item(i), 'id');
			omschrijving = getNodeValue(regios.item(i), 'omschrijving');
			
			var a = i + 2;
			if(oudeRegio == id) $('snelzoeken_regio').options[a] = new Option(omschrijving,id,true);
			else $('snelzoeken_regio').options[a] = new Option(omschrijving,id);
		}
	}
}

function setRichtingByRegio() {
	var richting = $('snelzoeken_richting').value;
	var regio = $('snelzoeken_regio').value;
	var url = "/XML/snelzoeken.php";
	
	// Haal met ajax alle regio's op waar de richting gegeven wordt
	var pars = 'type=richting&richting=' + richting + '&regio=' + regio;
	
	new Ajax(url, {
		method: 'get',
		update: null,
		async: true,
		postBody: pars,
		onComplete: showRichting
	}).request();
}

function showRichting(text, response) {
	var richtingen = response.getElementsByTagName('richting');
	var id = null;
	var omschrijving = null;
	var length = richtingen.length;
	
	var oudeRichting = $('snelzoeken_richting').value;
	
	$('snelzoeken_richting').options.length = 2;
	
	if(length == 0) $('snelzoeken_richting').disabled = true;
	else {
		$('snelzoeken_richting').disabled = false;
		$('snelzoeken_richting').options.length = 2;
		for(i = 0; i < richtingen.length; i++) {
			id = getNodeValue(richtingen.item(i), 'id');
			omschrijving = getNodeValue(richtingen.item(i), 'omschrijving');
			
			var a = i + 2;
			if(oudeRichting == id) $('snelzoeken_richting').options[a] = new Option(omschrijving,id,true);
			else $('snelzoeken_richting').options[a] = new Option(omschrijving,id);
		}
	}
}

/* Reageren op vacatures */
function openReageren() {
	setOverlay();
	scroll(0,0);

	// Nu de div laten zien
	$('reageren_venster').style.display = 'block';
}


function sluitenReageren() {
	// Waardes leeghalen
	$('reageren_onderwerp').value = '';
	$('reageren_text').value = '';
	
	// Nu de div weghalen
	$('reageren_venster').style.display = 'none';
	
	// Overlay weg
	setOverlay('inactive');
}

function getReageren() {
	setLoading();
	
	var con = $('reageren_con').value;
	var vac = $('reageren_vac').value;
	var onderwerp = $('reageren_onderwerp').value;
	var text = $('reageren_text').value;
	var url = "/XML/reageren.php";
	var pars = 'con=' + con + '&vac=' + vac + '&onderwerp=' + onderwerp + '&text=' + text;
	$('reageren_melding').innerHTML = '';
	
	new Ajax(url, {
		method: 'post',
		update: null,
		async: true,
		postBody: pars,
		onComplete: showReageren
	}).request();
}

function showReageren(text, response) {
    var status = getSingleData(response,'status');
	var message = getSingleData(response,'message');
	
	if(status == 1) {
		// Verzonden
		$('reageren_onderwerp').value = '';
		$('reageren_text').value = '';
		
		sluitenReageren();
	} else {
		// Combinatie niet gevonden
		$('reageren_melding').innerHTML = message;
	}
	
	// overlay weghalen
	setLoading('inactive');
	removeSelects();
}

/* Reageren op brochure */
function openBrochure(opleiding,aop_naam,ain_naam) {
	setOverlay();
	scroll(0,0);
	
	// Id, Naam van opleiding en instelling
	$('aop_id').value = opleiding;
	$('aop_naam').innerHTML = aop_naam;
	$('ain_naam').innerHTML = ain_naam;

	// Nu de div laten zien
	$('brochure_venster').style.display = 'block';
}


function sluitenBrochure() {
	// Waardes leeghalen
	$('aop_id').value = '0';
	$('aop_naam').innerHTML = 'null';
	$('ain_naam').innerHTML = 'null';
	
	// Nu de div weghalen
	$('brochure_venster').style.display = 'none';
	
	// Overlay weg
	setOverlay('inactive');
}

function getBrochure() {
	setLoading();
	
	var aop_id = $('aop_id').value;
	var brochure_naam = $('brochure_naam').value;
	var brochure_adres = $('brochure_adres').value;
	var brochure_postcode = $('brochure_postcode').value;
	var brochure_woonplaats = $('brochure_woonplaats').value;
	var brochure_email = $('brochure_email').value;
	
	var url = "/XML/brochure.php";
	var pars =	'aop_id=' + aop_id + 
				'&brochure_naam=' + brochure_naam + 
				'&brochure_adres=' + brochure_adres + 
				'&brochure_postcode=' + brochure_postcode + 
				'&brochure_woonplaats=' + brochure_woonplaats + 
				'&brochure_email=' + brochure_email;
	$('brochure_melding').innerHTML = '';
	
	new Ajax(url, {
		method: 'post',
		update: null,
		async: true,
		postBody: pars,
		onComplete: showBrochure
	}).request();
}

function showBrochure(text, response) {
    var status = getSingleData(response,'status');
	var message = getSingleData(response,'message');
	
	if(status == 1) {
		// Verzonden
		sluitenBrochure();
		openBrochureAanvraagVerzonden();
		setTimeout("sluitBrochureAanvraagVerzonden()",5000);
	} else {
		// Combinatie niet gevonden
		$('brochure_melding').innerHTML = message;
	}
	
	// overlay weghalen
	setLoading('inactive');
}

function openBrochureAanvraagVerzonden() {
	setOverlay();
	$('brochureAanvraagVerzonden').style.display = 'block';
}

function sluitBrochureAanvraagVerzonden() {
	$('brochureAanvraagVerzonden').style.display = 'none';
	setOverlay('inactive');
}

/* Pagina grootte */
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else if (document.documentElement && document.documentElement.scrollHeight > document.documentElement.offsetHeight){ // Explorer 6 strict mode
		xScroll = document.documentElement.scrollWidth;
		yScroll = document.documentElement.scrollHeight;
	} else { // Explorer Mac...would also work in Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) { // all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	
	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}
	
	
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

/* Selects verwijderen */
function removeSelects() {
	// Bij IE 6 de selects weghalen
	if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") {
		var selects = collectionToArray(document.getElementsByTagName("select"));
		for(i=0;i<selects.length;i++) {
				selects[i].style.visibility = 'hidden';
		}
	}
}

/* Laadscherm */
function setLoading(state) { /* Overlay laten zien of weghalen, met laden  */
	var arrPage = getPageSize();
			
	if(state == 'inactive') {
		// Bij IE 6 de selects terugzetten
		if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") {
			var selects = collectionToArray(document.getElementsByTagName("select"));
			for(i=0;i<selects.length;i++) {
					selects[i].style.visibility = 'visible';
			}
		}
		
		document.getElementById('overlay').style.display = 'none';
		document.getElementById('loading').style.display = 'none';
	} else {
		// Bij IE 6 de selects weghalen
		if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") {
			var selects = collectionToArray(document.getElementsByTagName("select"));
			for(i=0;i<selects.length;i++) {
					selects[i].style.visibility = 'hidden';
			}
		}
		
		if(document.getElementById('overlay')) {
			document.getElementById('overlay').style.display = 'block';
		} else {
			var newdiv = document.createElement('div');
			newdiv.setAttribute('id', 'overlay');
			document.body.appendChild(newdiv);
			$('overlay').style.width = arrPage[0] + 'px';
			$('overlay').style.height = arrPage[1] + 'px';
		}
		document.getElementById('loading').style.display = 'block';
	}
}

function setOverlay(state) { /* Overlay laten zien of weghalen */
	var arrPage = getPageSize();
	
	if(state == 'inactive') {
		// Bij IE 6 de selects terugzetten
		if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") {
			var selects = collectionToArray(document.getElementsByTagName("select"));
			for(i=0;i<selects.length;i++) {
					selects[i].style.visibility = 'visible';
			}
		}
		
		document.getElementById('overlayReageren').style.display = 'none';
	} else {
		// Bij IE 6 de selects weghalen
		if(BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6") {
			var selects = collectionToArray(document.getElementsByTagName("select"));
			for(i=0;i<selects.length;i++) {
					selects[i].style.visibility = 'hidden';
			}
		}

		if(document.getElementById('overlayReageren')) {
			document.getElementById('overlayReageren').style.display = 'block';
		} else {
			var newdiv = document.createElement('div');
			newdiv.setAttribute('id', 'overlayReageren');
			document.body.appendChild(newdiv);
			$('overlayReageren').style.width = arrPage[0] + 'px';
			$('overlayReageren').style.height = arrPage[1] + 'px';
		}
	}
}

function setOverlayUpload(state) { /* Overlay laten zien of weghalen */
	var arrPage = getPageSize();
	
	if(state == 'inactive') {		
		document.getElementById('overlayUpload').style.display = 'none';
	} else {
		if(document.getElementById('overlayUpload')) {
			document.getElementById('overlayUpload').style.display = 'block';
		} else {
			var newdiv = document.createElement('div');
			newdiv.setAttribute('id', 'overlayUpload');
			document.body.appendChild(newdiv);
			$('overlayUpload').style.width = arrPage[0] + 'px';
			$('overlayUpload').style.height = arrPage[1] + 'px';
		}
	}
}


/* CV UPLOADEN */
function openCvUpload() {
	setOverlayUpload();
	if(document.getElementById('CVvenster')) {
		document.getElementById('CVvenster').style.display = 'block';
	} else {
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id', 'CVvenster');
		document.body.appendChild(newdiv);
		
		html = '<h1>CV versturen</h1><p>Selecteer je CV en klik op verzenden.</p><iframe src="/XML/cvupload.php" frameborder="0" height="150" width="100%" name="cvupload" id="cvupload" ALLOWTRANSPARENCY="true"></iframe><br /><button type="button" onclick="window.frames[\'cvupload\'].document.forms[\'form\'].submit();">verzenden</button><button type="button" onclick="closeCvUpload()" />sluiten</button>\n';
		$('CVvenster').innerHTML = html;
	}
}

function closeCvUpload() {
	$('CVvenster').style.display = 'none';
	setOverlayUpload('inactive');
}

/* Browser detectie */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function collectionToArray(col) {
	a = new Array();
	for (i = 0; i < col.length; i++)
		a[a.length] = col[i];
	return a;
}

/* Checkbox */
//global variables that can be used by ALL the function son this page.
var inputs;
var imgFalse = '/images/check_false.gif';
var imgTrue = '/images/check_true.gif';

//this function runs when the page is loaded, put all your other onload stuff in here too.
function init() {
    replaceChecks();
}

function replaceChecks() {
    
    //get all the input fields on the page
    inputs = document.getElementsByTagName('input');

    //cycle trough the input fields
    for(var i=0; i < inputs.length; i++) {

        //check if the input is a checkbox
        if(inputs[i].getAttribute('type') == 'checkbox') {
            
            //create a new image
            var img = document.createElement('img');
            
            //check if the checkbox is checked
            if(inputs[i].checked) {
                img.src = imgTrue;
            } else {
                img.src = imgFalse;
            }

            //set image ID and onclick action
            img.id = 'checkImage'+i;
            //set image
            img.onclick = new Function('checkClick('+i+')');

            //place image in front of the checkbox
            inputs[i].parentNode.insertBefore(img, inputs[i]);
            
            //hide the checkbox
            inputs[i].style.display='none';
        }
    }
}

//change the checkbox status and the replacement image
function checkClick(i) {

    if(inputs[i].checked) {
        inputs[i].checked = '';
        document.getElementById('checkImage'+i).src=imgFalse;
		
		if(inputs[i].id == 'bed_factuur_check') document.getElementById('bed_factuur_data').style.display = 'block';
    } else {
        inputs[i].checked = 'checked';
        document.getElementById('checkImage'+i).src=imgTrue;
		
		if(inputs[i].id == 'bed_factuur_check') document.getElementById('bed_factuur_data').style.display = 'none';
    }
}

window.onload = init;
