
	/******************************************************************************************************
	*
	*	REGIONLINE SCRIPTS
	*
	*/
	
	var whitespace = " \t\n\r";

	function SubmitForm(frmName) {
	    if ( document.forms[frmName] != null ) {
	    	DisableForm(document.forms[frmName]);
	    	document.forms[frmName].submit();
	    	return true;
	    }
	    return false;
	}

	function DisableForm(frm) {
		for (i = 0; i < frm.length; i++) {
			var tempobj = frm.elements[i];
			if ( tempobj.type == "submit" || tempobj.type == "button" ) {
				tempobj.disabled = true;
			}
		}
	}

	function Confirmation(msg) {
		return confirm(msg);
	}

	
	function SetValue (frmName, ctrName, ctrValue) {
		
		if ( document.forms[frmName] != null ) {
			if ( document.forms[frmName].elements[ctrName] != null ) {
				document.forms[frmName].elements[ctrName].value = ctrValue;
				return true;
			}
		}
		return false;

	}

	function ValidateForm(form)
	{

		// NAW
		if(!CheckFilled(form.elements['voorletters'], 'Naam invullen s.v.p.!'))
			return false;
		if(!CheckFilled(form.elements['achternaam'], 'Naam invullen s.v.p.!'))
			return false;
		if(!CheckFilled(form.elements['adres'], 'Adresveld is verplicht!'))
			return false;
		if(!CheckFilled(form.elements['huisnummer'], 'Huisnummerveld is verplicht!'))
			return false;
		if(!CheckFilled(form.elements['postcode'], 'Postcodeveld is verplicht!'))
			return false;
		if(!CheckFilled(form.elements['woonplaats'], 'Woonplaatsveld is verplicht!'))
			return false;
		
		/*
		if(!CheckFilled(form.elements['telefoon'], 'Telefoonnummerveld is verplicht!'))
			return false;
		*/	
		
		// EMAIL
		/*
		if(!form.elements['geenEmail'].checked)
		{
			if(!CheckFilled(form.elements['email'], 'Er is geen emailadres ingevuld!'))
				return false;
			if(!MatchFields(form.elements['email'], form.elements['controleEmail'], 'Het emailadres en controleveld komen niet overeen!' ))
				return false;
			if(!ValidateEmail(form.elements['email'] )) {
				FieldError(form.elements['email'], 'U dient een geldig emailadres in te vullen!');
				return false;
			}
		}
		*/
		
		if(!CheckFilled(form.elements['email'], 'Er is geen email adres ingevuld!'))
			return false;
		if(!MatchFields(form.elements['email'], form.elements['controleEmail'], 'Het email adres en controleveld komen niet overeen!' ))
			return false;
		if(!ValidateEmail(form.elements['email'] )) {
			FieldError(form.elements['email'], 'U dient een geldig email adres in te vullen!');
			return false;
		}		

		// AantalKaarten
		if(isWhitespace(form.elements['AantalKaartenVolwassenen'].value) && isWhitespace(form.elements['AantalKaartenKinderen'].value)  )
		{
			FieldError(form.elements['AantalKaartenVolwassenen'], 'U dient een aantal op te geven!');
			return false;
		}
		
		// VOORWAARDEN		
		if(form.elements['akkoordAV'] != null) {
			if(!CheckCheckbox(form.elements['akkoordAV'], 'U dient akkoord te gaan met de Algemene Voorwaarden!'))
				return false;
		}

		// bankrekening
		// girorekening
		if(isWhitespace(form.elements['bankrekening'].value) && isWhitespace(form.elements['girorekening'].value)  )
		{
			FieldError(form.elements['bankrekening'], 'U dient een bank- of gironummer op te geven.');
			return false;
		}

		
		// BETALINGSWIJZE
		if(form.elements['betalingswijze'] != null) {
			if(!form.elements['betalingswijze'][0].checked && !form.elements['betalingswijze'][1].checked )
			{
				FieldError(form.elements['betalingswijze'][0], 'U dient een betaalwijze te selecteren!');
				return false;
			}
			if(form.elements['betalingswijze'][1].checked)
			{
				// MACHTIGING
				if(!CheckCheckbox(form.elements['machtiging'], 'U dient akkoord te gaan met de machtiging!'))
				{
					return false;
				}	
				if(isWhitespace(form.elements['bankrekening'].value) && isWhitespace(form.elements['girorekening'].value)  )
				{
					FieldError(form.elements['bankrekening'], 'U dient een bank- of gironummer op te geven indien gekozen wordt voor een machtiging!');
					return false;
				}
				if(isWhitespace(form.elements['naamRekeninghouder'].value) )
				{
					FieldError(form.elements['naamRekeninghouder'], 'U dient een rekeninghouder in te vullen!');
					return false;
				}
			}
			else if(!form.elements['betalingswijze'][0].checked) 
			{
				FieldError(form.elements['machtiging'], 'U dient een betalingswijze te selecteren!');
				return false;
			}
		}
		else {
			if(form.elements['machtiging'] != null) {
				// MACHTIGING
				if(!CheckCheckbox(form.elements['machtiging'], 'U dient akkoord te gaan met de machtiging!'))
					return false;
				if(isWhitespace(form.elements['bankrekening'].value) && isWhitespace(form.elements['girorekening'].value)  )
				{
					FieldError(form.elements['bankrekening'], 'U dient een bank- of gironummer op te geven indien gekozen wordt voor een machtiging!');
					return false;
				}
				if(isWhitespace(form.elements['naamRekeninghouder'].value) )
				{
					FieldError(form.elements['naamRekeninghouder'], 'U dient een rekeninghouder in te vullen!');
					return false;
				}
			}
		}
		
		return true;
		
	}

	function ValidateEmail(field) 
	{

		var str = field.value;
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1){
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false;
		 }

 		 return true					
	}
		
	function CheckFilled(field, prompt) 
	{
	  if(isWhitespace(field.value)) {
	    FieldError(field, prompt);
	    return false;
	    }
	  return true;
	}
	
	function CheckCheckbox(field, prompt) 
	{
	  if(!field.checked) {
	    FieldError(field, prompt);
	    return false;
	    }
	  return true;
	}
	
	function MatchFields(field1, field2, prompt) 
	{
	  if( field1.value != field2.value ) {
	    FieldError(field1, prompt);
	    return false;
	  }
	  return true;
	}
	
	
	function FieldError(field, prompt) 
	{
	  alert(prompt);
	  field.focus();
	  return
	}
	
	function isEmpty(s) 
	{   
		return ((s == null) || (s.length == 0))
	}
	
	function isWhitespace (s) 
	{   
		var i;
	    if (isEmpty(s)) return true;
	    for (i = 0; i < s.length; i++) {
	        var c = s.charAt(i);
	        if (whitespace.indexOf(c) == -1) return false;
	    }
	
	    return true;
	}


