errorMsg=new ErrorMsg();

function saveWebQ(){
	if(this.wHndl) this.wHndl.page.serialize(); // serialize webq data into datacontainer if webq object present
};

function ErrorMsg(){
	this.count=0;
	this.message=new Array();
	this.focusElement=null;
	this.addMessage=mtd_ErrorMsg_addMessage;
	this.reset=mtd_ErrorMsg_reset;
	this.alert=mtd_ErrorMsg_alert;
};

function mtd_ErrorMsg_addMessage(msg,elementHndl){
	this.message[this.count++]=msg;
	if(!this.focusElement&&elementHndl) this.focusElement=elementHndl;
};

function mtd_ErrorMsg_reset(){
	this.count=0;
	this.message=new Array();
	this.focusElement=null;
};

function mtd_ErrorMsg_alert(){
	var msg="Corrigeer de volgende fouten:\n"; 
	if(this.count){
		for(var i=0;i<this.count;i++)
			msg+='\n- '+this.message[i];
		alert(msg);
		if(this.focusElement) this.focusElement.focus();
	};
};

function check_basic(year){
	errorMsg.reset();
	with(document.f1){
		if (bil_ismale.selectedIndex<=0)			errorMsg.addMessage("Uw geslacht is niet ingevuld.",bil_ismale);

//		if(document.f1.bil_initials && bil_initials && !bil_initials.value.length) 					errorMsg.addMessage("Uw voorletter(s) dient ingevuld ingevuld te worden.",bil_initials);
		if(!bil_achternaam.value.length)			errorMsg.addMessage("Uw achternaam dient ingevuld te worden.",bil_achternaam);
		
		if (!bil_address.value.length)				errorMsg.addMessage("Uw adres dient ingevuld te worden.",bil_address);
		if (!bil_address_nr.value.length)			errorMsg.addMessage("Uw huisnummer dient ingevuld te worden.",bil_address_nr)
			else if (isNaN(bil_address_nr.value))	errorMsg.addMessage("Uw huisnummer kan slechts cijfers bevatten. Gebruik het veld ernaast voor toevoegingen.",bil_address_nr);

	  if (bil_zip_num.value.length + bil_zip_char.value.length == 0)
			errorMsg.addMessage("Uw postcode dient ingevuld te worden.",bil_zip_num)
		else if (!isPoBox(bil_zip_num.value+bil_zip_char))
			errorMsg.addMessage("Geen geldige postcode.",bil_zip_num)
		else bil_zip_char.value = bil_zip_char.value.toUpperCase();												

		if (!bil_city.value.length)					errorMsg.addMessage("Uw woonplaats dient ingevuld te worden.",bil_city)
			else bil_city.value = bil_city.value.toUpperCase();

	  if (!isEmail(bil_email.value))	errorMsg.addMessage("Uw email-adres is ongeldig.",bil_email);

	  if (!yob__FullYear.value.length) 				errorMsg.addMessage("Uw geboortejaar dient ingevuld te worden.",yob__FullYear)
			else if (
				isNaN(yob__FullYear.value) 
				 || (
				 	parseInt(yob__FullYear.value) > year - 18 
					 || parseInt(yob__FullYear.value) < year - 120)
					)
				errorMsg.addMessage("Uw geboortejaar is niet geldig.",yob__FullYear);

	  if (bil_tel1_ken.value.length + bil_tel1_ab.value.length == 0 && tel_verplicht.value == 2)
													errorMsg.addMessage("Uw telefoonnummer dient ingevuld te worden.",bil_tel1_ab)
		else if (!isPhoneNr(bil_tel1_ken.value + bil_tel1_ab.value,10) && (bil_tel1_ken.value.length + bil_tel1_ab.value.length > 0))
			errorMsg.addMessage("Uw telefoonnummer is niet geldig.",bil_tel1_ab);

	  if (bil_account.value.length == 0 && rek_verplicht.value == 2)
			errorMsg.addMessage("Uw bank/giro rekeningnr dient ingevuld te worden.",bil_account)
		else if (bil_account.value.length 
			 && bil_account.value != "0000000001"
			 && (
			(bil_account.value.length < 4 || bil_account.value.length > 9 || bil_account.value.length == 8) || 
			(bil_account.value.length == 9 && !isAccountNr(bil_account.value))))
			errorMsg.addMessage("Uw bank/giro rekeningnr. is niet geldig.",bil_account);
	};
};

function isAccountNr(rekNr){
	var checksum = 0;
	for (i=0;i<rekNr.length;i++)
		checksum += parseInt(rekNr.charAt(i)) * (9-i);
	return (checksum % 11 == 0)
};

function isPhoneNr(telNr,nod,seplist){
  var numCount=0;
	var thisChar="";
	var numList="0123456789";

  if(!seplist) seplist="- /+";
  for(var i=0;i<telNr.length;i++)
    if(numList.indexOf(thisChar=telNr.charAt(i))>-1) numCount++;
    else if(seplist.indexOf(thisChar)==-1) nod=null;
  return numCount==nod
};

function isPoBox(pobox){
	var eerstevier=0;	var vijf=0;	var zes=0;
	eerstevier = !isNaN(pobox.substring(0,4));
	vijf = isNaN(pobox.charAt(4));
	zes = isNaN(pobox.charAt(5));
	return eerstevier==vijf==zes
};

function isEmail(emeel){
	a=emeel.indexOf("@");
	b=emeel.lastIndexOf("@");
	c=emeel.indexOf(".",a);
	d=emeel.indexOf(",");
	d1=emeel.indexOf("*");
	d2=emeel.indexOf(":");
	d3=emeel.indexOf("#");
	e=emeel.indexOf(" ");
	f=emeel.indexOf("..");
	g=emeel.indexOf(".@");
	h=emeel.indexOf("@.");
	i=emeel.lastIndexOf(".")+1;
	j=emeel.length;
  return (a>0) && (c>2) && (b-a==0) && (d==-1) && (d1==-1) && (d2==-1) && (d3==-1) && (e==-1) && (f==-1) && (g==-1) && (h==-1) && (j-i>=2) && (j-i<=6);
};

function KeyCheck(myfield,e){
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	if (((keycode>47) && (keycode<58) )  || (keycode==8)) { return true; }
	else return false;
};


function setHelpBarDefaultText(doMouseOver) {
	helpBarDefaultText = document.getElementById("helpBar").innerHTML;
	allowMouseOver = doMouseOver;
}

var helpBarDefaultText="";
var allowMouseOver = true;

function setHelp(obj) {
	if(allowMouseOver)
		document.getElementById("helpBar").innerHTML = obj.title;
}

function setDefaultHelp() {
	document.getElementById("helpBar").innerHTML = helpBarDefaultText;
}

