// determine length of input value
function lengthCheck(elementName, length){
	if(document.getElementById(elementName).value.length < length){
		document.getElementById(elementName).className += ' inputFalse';
		return false;
	}else{
		document.getElementById(elementName).className += ' inputTrue';
		return true;
	}
}


// fix PostCode
function fixPostcode(postCode,objectName){
	if(postCode.length < 7){
		td = postCode.substr(0,4);
		if(postCode.length == 6){
			td += ' ';
			td += postCode.substr(4,2).toUpperCase();
		}				
	}

	if(postCode.length == 7){
		td = postCode.substr(0,5);
		td += postCode.substr(5,2).toUpperCase();
	}
	document.getElementById(objectName).value = td;
}
// check PostCode validity
function checkPostalCode(textBox){	
	success = true;
	if(lengthCheck(textBox,7)){
		if(!isInteger(document.getElementById(textBox).value.substr(0, 4))){
			success = false;
		}
		
		if(!isAlphabetic(document.getElementById(textBox).value.substr(5, 2))){
			success = false;
		}
		
		if(document.getElementById(textBox).value.substr(4,1) != ' '){
			success = false;
		}
		
	}else{
			success = false;
	}
	if(!success){
		//document.getElementById('zipCodeRequired').innerHTML = '**';
		document.getElementById('postalcode').className += ' inputFalse';
		return false;
	}else{
		document.getElementById('postalcode').className += ' inputTrue';
		return true;
	}
}

// check multiple value for same name and add to alertmessage
// this is used for radiobuttons or selectbox
function checkMultipleName(elementName){
	//alert('current element : ' + elementName);
	retVar = false;
	var txt = document.getElementById(elementName + 'Required');
	for(y = 0; y < document.getElementsByName(elementName).length; y++){
		if(document.getElementsByName(elementName)[y].checked  || document.getElementsByName(elementName)[y].selectedIndex > 0){
			retVar = true;
		}
	}
	if (retVar == false){
		addError('Maak s.v.p. een keuze bij \'' + document.getElementById(elementName + 'Text').innerHTML + '\'');
		//txt.innerHTML = '**';
		txt.className += ' inputFalse';
	}else{
		txt.className += ' inputTrue';
	}
	return retVar;
}
function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return false;
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++;
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++;
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isWebsite (string){
	if (isWhitespace(string)) return false;
	if (string.substr(0,7) == 'http://'){
		return true;
	}else{
		return false;
	}
}

function getRadioValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function getRadioValueNew(radioObj) {
	var radioOps = document.getElementsByName(radioObj);
	var radioLen = radioOps.length;
	for(var i = 0; i < radioLen; i++) {
		if(radioOps[i].checked) {
			return radioOps[i].value;
		}
	}
	return "";
}

function lengthCheck(elementName, length){
	/**/ /** / alert(elementName); /**/ /**/
	if(document.getElementById(elementName).value.length < length){
		return false;
	}else{
		return true;
	}
}

// check multiple value for same name and add to alertmessage
// this is used for radiobuttons or selectbox
function checkMultipleName(elementName){
	//alert('current element : ' + elementName);
	retVar = false;
	var txt = document.getElementById(elementName);
	for(y = 0; y < document.getElementsByName(elementName).length; y++){
		if(document.getElementsByName(elementName)[y].checked  || document.getElementsByName(elementName)[y].selectedIndex > 0){
			retVar = true;
		}
	}
	if (retVar == false){
		addError('Maak s.v.p. een keuze bij \'' + document.getElementById(elementName + 'Text').innerHTML + '\'');
		//txt.innerHTML = '**';
		txt.className += 'inputFalse';
	}else{
		txt.className += 'inputTrue';
	}
	return retVar;
}

/////////////////////////////////////////////////////////////////

// Global variables
var errorMessage 	= 'De volgende problemen hebben zich voorgedaan met betrekking tot de invulling van het formulier: \r\n';
var passed 			= true;

// add to errorstring
function addError(string){
	if(passed)
		passed = false;
		errorMessage += '- '+string+'\n'
}

// show errors
function printError(){
	alert(errorMessage);
	errorMessage = 'De volgende problemen hebben zich voorgedaan met betrekking tot de invulling van het formulier: \r\n';
	passed = true;
}

function validateForm(formName)
{
	switch(formName){
		case 'contactform':
			// check firstname	
			// check lastname	
			if(!lengthCheck('naam',2)){
				addError('Vul s.v.p. uw achternaam in.');
				$('#naam').addClass('error');
			}else{
				$('#naam').removeClass('error');
			}	
			// check email	
			if(!lengthCheck('email',2)){
				addError('Vul s.v.p. uw email in.');
				$('#email').addClass('error');
			}else{
				$('#email').removeClass('error');
			}
			// check email	
			if(!lengthCheck('phone',2)){
				addError('Vul s.v.p. uw telefoonnummer in.');
				$('#phone').addClass('error');
			}else{
				$('#phone').removeClass('error');
			}
			// check email	
			if(!lengthCheck('vraag',2)){
				addError('Vul s.v.p. uw vraag cq. opmerking in.');
				$('#vraag').addClass('error');
			}else{
				$('#vraag').removeClass('error');
			}
			// check capthca	
			if(!lengthCheck('captcha',4)){
				addError('Controlleer s.v.p. de 4-cijferige code.');
				$('#captcha').addClass('error');
			}else{
				$('#captcha').removeClass('error');
			}	
		break;
		case 'searchform':
			if(!lengthCheck('searchphrase',2) || (document.getElementById('searchphrase').value=='zoeken...')){
				addError('Vul s.v.p. een zoekterm in.');
				$('#searchphrase').addClass('error');
			}else{
				$('#searchphrase').removeClass('error');
			}
		break;	
		case 'subscription':
			
			// check firstname	
			if(!lengthCheck('voorletters',1)){
				addError('Vul s.v.p. uw voorletters in.');
				$('#voorletters').addClass('error');
			}else{
				$('#voorletters').removeClass('error');
			}	
			// check lastname	
			if(!lengthCheck('achternaam',2)){
				addError('Vul s.v.p. uw achternaam in.');
				$('#achternaam').addClass('error');
			}else{
				$('#achternaam').removeClass('error');
			}	
			// check address	
			if(!lengthCheck('adres',2)){
				addError('Vul s.v.p. uw adres in.');
				$('#adres').addClass('error');
			}else{
				$('#adres').removeClass('error');
			}
			// check number	
			if(!lengthCheck('huisnummer',1)){
				addError('Vul s.v.p. uw huisnmmer in.');
				$('#huisnummer').addClass('error');
			}else{
				$('#huisnummer').removeClass('error');
			}
			// check zipcode	
			if(!lengthCheck('postcode',2)){
				addError('Vul s.v.p. uw postcode.');
				$('#postcode').addClass('error');
			}else{
				$('#postcode').removeClass('error');
			}
			if(!lengthCheck('woonplaats',2)){
				addError('Vul s.v.p. uw woonplaats in.');
				$('#woonplaats').addClass('error');
			}else{
				$('#woonplaats').removeClass('error');
			}
			if(!lengthCheck('email',2)){
				addError('Vul s.v.p. uw e-mailadres in.');
				$('#email').addClass('error');
			}else{
				$('#email').removeClass('error');
			}
			if(!lengthCheck('rekeningnummer',2)){
				addError('Vul s.v.p. uw rekeningnummer in.');
				$('#rekeningnummer').addClass('error');
			}else{
				$('#rekeningnummer').removeClass('error');
			}
			/**
			if((document.getElementById('soortLid').value == 'donateur')  && (document.getElementById('machtiging_lid').checked == true)){
				addError('Vink s.v.p. het veld voor donatiemachtiging aan als u zich wil opgeven als donateur en u de NVN wil machtigen om jaarlijks &euro;15,- af te schrijven.');
				$('#aanmeldopties').addClass('error');
			}else{
				$('#aanmeldopties').removeClass('error');
			}
			**/
			if(!lengthCheck('captcha',4)){
				addError('Vul s.v.p. de 4-cijferige code in.');
				$('#captcha').addClass('error');
			}else{
				$('#captcha').removeClass('error');
			}
			if(document.getElementById('confirm').checked == false){
				addError('Heeft u de tekst gelezen onder aan het formulier?');
			}
			/**/ /** /
			if(document.getElementById('machtiging').checked == false){
				addError('U moet de  Nederlandse Vereniging voor Narcolepsie machtigen voor de jaarlijkse bijdrage.');
			}
			/**/ /**/
		break;
		case 'addresschangeform':
			// check ldnummmer	
			if(!lengthCheck('lidnummer',2)){
				addError('Vul s.v.p. uw lidnummer in.');
				$('#lidnummer').addClass('error');
			}else{
				$('#lidnummer').removeClass('error');
			}	
			// check lastname	
			if(!lengthCheck('achternaam',2)){
				addError('Vul s.v.p. uw achternaam in.');
				$('#achternaam').addClass('error');
			}else{
				$('#achternaam').removeClass('error');
			}	
			// check oud adres	
			if(!lengthCheck('adres_oud',2)){
				addError('Vul s.v.p. uw oude adres in.');
				$('#adres_oud').addClass('error');
			}else{
				$('#adres_oud').removeClass('error');
			}	
			// check nieuw adres	
			if(!lengthCheck('adres_nieuw',2)){
				addError('Vul s.v.p. uw nieuwe adres in.');
				$('#adres_nieuw').addClass('error');
			}else{
				$('#adres_nieuw').removeClass('error');
			}	
			// check oude postcode	
			if(!lengthCheck('postcode_oud',2)){
				addError('Vul s.v.p. uw oude postcode in.');
				$('#postcode_oud').addClass('error');
			}else{
				$('#postcode_oud').removeClass('error');
			}	
			// check nieuwe postcode	
			if(!lengthCheck('postcode_nieuw',2)){
				addError('Vul s.v.p. uw nieuwe postcode in.');
				$('#postcode_nieuw').addClass('error');
			}else{
				$('#postcode_nieuw').removeClass('error');
			}	
			// check oude woonplaats	
			if(!lengthCheck('woonplaats_oud',2)){
				addError('Vul s.v.p. uw oude woonplaats in.');
				$('#woonplaats_oud').addClass('error');
			}else{
				$('#woonplaats_oud').removeClass('error');
			}	
			// check nieuwe postcode	
			if(!lengthCheck('woonplaats_nieuw',2)){
				addError('Vul s.v.p. uw nieuwe woonplaats in.');
				$('#woonplaats_nieuw').addClass('error');
			}else{
				$('#woonplaats_nieuw').removeClass('error');
			}	
			// check oud telefoonnummer	
			if(!lengthCheck('telefoon_oud',2)){
				addError('Vul s.v.p. uw oud telefoonnummer in.');
				$('#telefoon_oud').addClass('error');
			}else{
				$('#telefoon_oud').removeClass('error');
			}	
			// check nieuwe telefoon	
			if(!lengthCheck('telefoon_nieuw',2)){
				addError('Vul s.v.p. uw nieuw telefoonnummer in.');
				$('#telefoon_nieuw').addClass('error');
			}else{
				$('#telefoon_nieuw').removeClass('error');
			}	
			// check email	
			if(!lengthCheck('email',2)){
				addError('Vul s.v.p. uw e-mailadres in.');
				$('#email').addClass('error');
			}else{
				$('#email').removeClass('error');
			}	
			// check verhuisdatum	
			if(!lengthCheck('ingangsdatum',2)){
				addError('Selecteer s.v.p. uw verhuisdatum.');
				$('#ingangsdatum').addClass('error');
			}else{
				$('#ingangsdatum').removeClass('error');
			}	
			// check capthca	
			if(!lengthCheck('captcha',4)){
				addError('Controlleer s.v.p. de 4-cijferige code.');
				$('#captcha').addClass('error');
			}else{
				$('#captcha').removeClass('error');
			}	
		break;
	}

	if(passed){		
		return true;
	}else{
		printError();
		return false;
	}
	
}

