/*
	hoofdfunctie
*/

function valideerInschrijving() {
	var deelnemers = document.inschrijven.aantal_deelnemers.value;
	var contact = document.inschrijven.aparte_contactpersoon[0].checked;
	var factuur = document.inschrijven.aparte_factuur[0].checked;

	if(!valideerTraining()) {
		return false;
	}

	for(var i = 1; i <= deelnemers; i++) {
		if(!valideerDeelnemer(i)) {
			return false;
		}
	}

	if(contact && !valideerContact()) {
		return false;
	}

	if(factuur && !valideerFactuur()) {
		return false;
	}

  if(!valideerVoorwaarden()) {
		return false;
	}
	return true;
}


/*
	subfuncties
*/

function valideerTraining() {
	if(!isDigit(document.getElementById("trainingdata_id"))) {
		alert("Er is geen training geselecteerd.");
		return false;
	}
	/*
	if(!valideerNietLeeg(document.getElementById("bedrijf1"))) {
		alert("Er is geen bedrijfsnaam ingevuld.");
		return false;
	}
	*/
	if(!valideerNietLeeg(document.getElementById("adres"))) {
		alert("Er is geen adres ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("huisnummer"))) {
		alert("Huisnummer moet een getal zijn.");
		return false;
	}
	if(!valideerPostcode1(document.getElementById("postcode1"))) {
		alert("De cijfers van de postcode zijn niet goed ingevuld!");
		return false;
	}
	if(!valideerPostcode2(document.getElementById("postcode2"))) {
		alert("De letters van de postcode zijn niet goed ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("plaats"))) {
		alert("De plaats is niet ingevuld.");
		return false;
	}
	/*
	if(!valideerNietLeeg(document.getElementById("telefoon"))) {
		alert("Er is geen telefoonnummer ingevuld.");
		return false;
	}
	*/
	if(!isDigit(document.getElementById("werknemers_id"))) {
		alert("Het aantal werknemers is niet ingevuld.");
		return false;
	}
	return true;

}


function valideerDeelnemer(n) {
	if(!valideerNietLeeg(document.getElementById("aanhef" + n))) {
		alert("Aanhef bij deelnemer " + n + " mag niet leeg zijn.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("voorletters" + n))) {
		alert("De voorletters van deelnemer " + n + " zijn niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("voornaam" + n))) {
		alert("De voornaam van deelnemer " + n + " is niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("achternaam" + n))) {
		alert("De achternaam van deelnemer " + n + " is niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("functie" + n))) {
		alert("De functie van deelnemer " + n + " is niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("email" + n))) {
		alert("Het emailadres van deelnemer " + n + " is niet ingevuld.");
		return false;
	}
	if(echeck( document.inschrijven.elements['email'+n].value ) == false) {
		alert("Het emailadres van deelnemer " + n + " is niet geldig.");
		return false;
	}
	return true;
}


function valideerContact() {
	if(!valideerNietLeeg(document.getElementById("contact_aanhef"))) {
		alert("Aanhef bij de contactpersoon mag niet leeg zijn.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("contact_voorletters"))) {
		alert("De voorletters van de contactpersoon zijn niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("contact_achternaam"))) {
		alert("De achternaam van de contactpersoon is niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("contact_functie"))) {
		alert("De functie van de contactpersoon is niet ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("contact_email"))) {
		alert("Het emailadres van de contactpersoon is niet ingevuld.");
		return false;
	}
	if(echeck( document.inschrijven.elements['contact_email'].value ) == false) {
		alert("Het emailadres van de contactpersoon is niet geldig.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("contact_telefoon"))) {
		alert("Het telefoonummer van de contactpersoon is niet ingevuld.");
		return false;
	}
	return true;
}


function valideerFactuur() {
	if(!valideerNietLeeg(document.getElementById("factuur_bedrijfsnaam"))) {
		alert("Er is geen bedrijfsnaam bij het factuuradres ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("factuur_adres"))) {
		alert("Er is geen factuuradres ingevuld!");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("factuur_huisnummer"))) {
		alert("Huisnummer bij het factuuradres moet een getal zijn.");
		return false;
	}
	if(!valideerPostcode1(document.getElementById("factuur_postcode1"))) {
		alert("De cijfers van de postcode bij het factuuradres zijn niet goed ingevuld.");
		return false;
	}
	if(!valideerPostcode2(document.getElementById("factuur_postcode2"))) {
		alert("De letters van de postcode bij het factuuradres zijn niet goed ingevuld.");
		return false;
	}
	if(!valideerNietLeeg(document.getElementById("factuur_plaats"))) {
		alert("De plaats bij het factuuradres is niet ingevuld.");
		return false;
	}
	return true;
}


function valideerVoorwaarden() {
	return(document.inschrijven.algemenevoorwaarden[0].checked);
}


/*
	hulpfuncties
*/

function valideerPostcode1(formitem) {
	var pc = formitem.value;
	return(pc.match(/^[1-9][0-9][0-9][0-9]$/));
}


function valideerPostcode2(formitem) {
	var pc = formitem.value;
	return(pc.match(/^[a-z][a-z]$/i));
}


function valideerNietLeeg(formitem) {
	return((formitem != null) && (trimString(formitem.value) != ""));
}


function trimString(str) {
  str = (this != window ? this : str);
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


function isDigit(formitem) {
	var digit = formitem.value;
	return(digit.match(/^[1-9][0-9]*$/));
}

function IsNumeric(sText) {
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++)
      {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
         {
         IsNumber = false;
         }
      }

   return IsNumber;

}

// e-mail check
function echeck(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   var address = email;
   if(reg.test(address) == false) {
      return false;
   }
}
