/************************ popup bij input **********************************/
function lib_bwcheck(){
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=this.agent.indexOf("Opera 5")>-1
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()


// Variables to set:
var focuskleur		= '#DB0909' 
var fromX			= 3		// standaard dezelfde waarde als de padding
var fromY			= 3		// Neem de hoogte van de class 'textfield'
var ns4center		= 1		// Centering the text in ns4 doesn't work with css, use this variable instead... the value is 1 or 0
var useFading		= 0 		// 1 for a fading effect in windows explorer 5+ and all platforms ns6, 0 for no fading effect.
var animation		= 1		// 1 if you want animation, 0 for no animation.
var detectiontype	= 1			// 1 for 'smooth' window size detection, 0 for 'flip' window size detection.
var delay			= 200 		// The time before showing the popup, in milliseconds.

/*** There should be no need to change anything beyond this. ***/ 
var px = bw.ns4||window.opera?"":"px";
var mouseX=0,mouseY=0,setX=0,setY=0;
var hovering=false, screenWscrolled=0, screenHscrolled=0;
var scrollbarWidth= bw.ns6&&bw.win?14:bw.ns6&&!bw.win?16:bw.ns4?16:0;
var defaultkleur = '#000000';

/************************ formulier controle **********************************/
/*** controle is een array met de veldnamen die gecontroleerd moeten worden ***/
/*** 	  welke is het formulier, bij gebruik met meerdere formulieren	    ***/
/***   melding wordt eigenlijk alleen gebruikt bij een controle op 1 veld	***/

var minimum;
var formulier;
var verborgen = new Array();

function HideRow(el) {
	if (el.childNodes.length > 0) {
		for (var m=el.firstChild; m!=null; m=m.nextSibling) {
			if (m.tagName == 'TD') {
				HideRow(m);
			} else {
				if (m.tagName != undefined && m.type != undefined) {
					if (m.type.substr(0, 6) == 'select' || m.type.substr(0, 6) == 'SELECT') {
						m.style.visibility = 'hidden';
						verborgen[verborgen.length] = m;
					}
				}
			}
		}
	}
}

function checkform(controle, welke, melding){
	var error = "", ingevuld = 0, veld = "";
	var returnwaarde = false;
	if (arguments.callee.length > 3) {
		returnwaarde = checkform.arguments[3];
	}

	formulier = document.forms[welke];
	
	var	aantal = formulier.elements.length;

	for (var i=0; i<aantal; i++){
		if (formulier.elements[i].type.match("(text)") && formulier.elements[i].value){
			ingevuld = 1;				
			break;
		}
	}
		
	if (ingevuld == 1 || controle.length > 0) {
		
		/********** wachtwoorden (mochten ze bestaan) **********/
		if (formulier.Wachtwoord && formulier.Wachtwoord2 && formulier.Wachtwoord.value && formulier.Wachtwoord.value != formulier.Wachtwoord2.value){
			formulier.Wachtwoord.value = '';
			formulier.Wachtwoord2.value = '';			
			error 	= 'Wachtwoorden komen niet overeen.';
			veld 	= formulier.Wachtwoord;
		}
		/*******************************************************/

		/******************* email controle ********************/
		var layoutemailadres = /^[a-z0-9]+([_\\.-][a-z0-9]+)*@[a-z0-9]+([\.-][a-z0-9]+)*([\.][a-z0-9]+([-][a-z0-9]+)*)+$/i;

		if (formulier.Email && formulier.Email.value && !formulier.Email.value.match(layoutemailadres)){
			error 	= 'Emailadres is ongeldig.';
			veld 	= formulier.Email;		
		}
		if (formulier.email && formulier.email.value && !formulier.email.value.match(layoutemailadres)){
			error 	= 'Emailadres is ongeldig.';
			veld 	= formulier.email;		
		}
		if (formulier.Emailadres && formulier.Emailadres.value && !formulier.Emailadres.value.match(layoutemailadres)){
			error 	= 'Emailadres is ongeldig.';
			veld 	= formulier.Emailadres;		
		}
		if (formulier.emailadres && formulier.emailadres.value && !formulier.emailadres.value.match(layoutemailadres)){
			error 	= 'Emailadres is ongeldig.';
			veld 	= formulier.emailadres;		
		}
		/*******************************************************/

		/***************** postcode controle *******************/
		if (formulier.Postcode && formulier.Postcode.value){
			var cijfers = formulier.Postcode.value.substr(0, 4);
			var letters = formulier.Postcode.value.substr(4, 10).replace (/\s/g, "");

			if (!cijfers.match(/^[0-9]+$/i) || !letters.match(/^[a-z]+$/i) || letters.length < 2){	
				error 	= 'Postcode is ongeldig.';
				veld 	= formulier.Postcode;
			} else {
				formulier.Postcode.value = cijfers+' '+letters.toUpperCase();
			}
		}
		if (formulier.postcode && formulier.postcode.value){
			var cijfers = formulier.postcode.value.substr(0, 4);
			var letters = formulier.postcode.value.substr(4, 10).replace (/\s/g, "");

			if (!cijfers.match(/^[0-9]+$/i) || !letters.match(/^[a-z]+$/i) || letters.length < 2){	
				error 	= 'Postcode is ongeldig.';
				veld 	= formulier.postcode;
			} else {
				formulier.postcode.value = cijfers+' '+letters.toUpperCase();
			}
		}
		/*******************************************************/
		

		/***************** standaard controle ******************/
		for (i=0; i<controle.length; i++){
			var waarde	= controle[i].split('=');
			if (waarde[1]){
				controle[i] = waarde[0];
				minimum	= waarde[1];
			} else {
				minimum = 1;
			}

			var object	= formulier.elements[controle[i]];
			
			// onderscheid maken tussen velden, undefined = radio
			if (object.value == undefined){
				gechecked = false;				
				for (j=0; j<object.length; j++){
					if (object[j].checked){
						gechecked = true;
						break;
					}
				}
				
				if (!gechecked) {
					error = controle[i]+' is verplicht.';
					veld = object[0];
					break;
				}				
			} else {
				if ((object.value.length < minimum || (object.type=='select-one' && (object.value == 0 || object.value == ''))) && error == 0){
					var thisveld = controle[i];
					thisveld = thisveld.replace(/[0-9_\s]*$/, '');
					if (thisveld.substr(thisveld.length-2)=='id') {
						thisveld = thisveld.substr(0, thisveld.length-2);
					}
					error 	= thisveld+' is verplicht.';
					veld 	= object;
					break;
				} else {
					minimum = 1;
				}
			}
		}
		/*******************************************************/
		
		/*************** onderlinge verbanden ******************/
		for (var j=0; j<aantal; j++){
			if (formulier.elements[j].value != '' && formulier.elements[j].tagName == "SELECT"){
				for (k=0; k<aantal; k++){
					lower = formulier.elements[k].name.toLowerCase();
					
					if (formulier.elements[j].value.indexOf(lower) > -1 && formulier.elements[k].value == ''){
						error 	= 'U heeft <b>'+formulier.elements[j].value.toLowerCase()+'</b> geselecteerd bij <b>'+formulier.elements[j].name.toLowerCase()+'</b> maar bent vergeten uw <b>'+lower+'</b> in te vullen.';
						veld 	= formulier.elements[k].name;
						break;
					}
				}
			}
		}
		/*******************************************************/
	} else {
		error	= "Vul tenminste 1 veld in.";
	}
	
	/************** Error afhandeling **********************/
	if (!error) {
		return true;
	} else {
		minimum > 1 ? error += ' (minimaal ' +minimum+ ' karakters)' : '';
		melding ? error = melding : '';
		veld ? veld.focus() : '';
		
		if (error.match("_")){
			var herschik = error.split('_');			
			error = herschik[0]+' '+herschik[1];
		}
		
		// upper case
		var letter	= error.substr(0, 1).toUpperCase();
		error	= letter+''+error.substr(1, error.length);
		
		if (!document.layers && veld) {

			/*******************************************************/
			
			defaultkleur		= veld.style.borderColor;
			veld.style.borderColor	= focuskleur;
			//popUp(error, veld);
		} else {
			alert(error);
		}
		return false;
		//event ?	event.returnValue = false : returnValue = false;
	}
	
	return false;
	/*******************************************************/
}
