/********** 
 *  JAVASCRIPT FUNCTIES 
**********/


function ValidateWijzigAdmin(form) {
    if (form.username.value == "") {
        alert('geen naam ingevuld');
        form.name.focus();
        return (false);
    }
	form.passwordOud.value = trim(form.passwordOud.value);
    if (form.passwordOud.value == "")  {
        alert('Password Oud niet ingevuld');
        form.passwordOud.focus();
        return (false);
    }
	if (form.pwdOud.value != form.passwordOud.value) {
        alert('het oude password is niet gelijk');
        form.passwordOud.focus();
        return (false);
    }
    form.password1.value = trim(form.password1.value);
    if (form.password1.value == "")  {
        alert('password niet ingevuld');
        form.password1.focus();
        return (false);
    }
    form.password2.value = trim(form.password2.value);
    if (form.password2.value == "")  {
        alert('password(2) niet ingevuld');
        form.password2.focus();
        return (false);
    }
    if (form.password1.value != form.password2.value) {
        alert('passworden niet gelijk');
        form.password2.focus();
        return (false);
    }
    return true;
}

/***********************************************/

function ValidateNieuwAdmin(form) {
	form.username.value = trim(form.username.value);
    if (form.username.value == "") {
        alert('geen naam ingevuld');
        form.username.focus();
        return (false);
    }
    form.password1.value = trim(form.password1.value);
    if (form.password1.value == "")  {
        alert('wachtwoord niet ingevuld');
        form.password1.focus();
        return (false);
    }
    form.password2.value = trim(form.password2.value);
    if (form.password2.value == "")  {
        alert('wachtwoord(2) niet ingevuld');
        form.password2.focus();
        return (false);
    }
    if (form.password1.value != form.password2.value) {
        alert('wachtwoorden niet gelijk');
        form.password2.focus();
        return (false);
    }
    return true;
}

/***********************************************/

function ValidateGBForm(form) {
    if (form.name.value == "") {
        alert('geen naam ingevuld');
        form.name.focus();
        return (false);
    }
    form.email.value = trim(form.email.value);
    if (form.email.value == "") {
        alert('email niet ingevuld');
        form.email.focus();
        return (false);
    }
    if (!isEmailAddr(form.email.value)) {
        alert("vul een geldig emailadres in.");
        form.email.focus();
        return (false);
    }
	if (form.message.value == "") {
        alert('geen bericht ingevuld');
        form.message.focus();
        return (false);
    }
    return true;
}

/***********************************************/

function ValidateLoginForm(form) {
    if (form.name.value == "")  {
        alert('vul een username in');
        form.name.focus();
        return (false);
    }
    if (form.password.value == "")  {
        alert('vul een password in');
        form.password.focus();
        return (false);
    }
    return (true);
}

/***********************************************************/

function ValidateFormAanmelden(form) {
    form.name.value = trim(form.name.value);
    if (form.name.value == "")  {
        alert('naam niet ingevuld');
        form.name.focus();
        return (false);
    }
    form.lastname.value = trim(form.lastname.value);
    if (form.lastname.value == "")  {
        alert('achternaam niet ingevuld');
        form.lastname.focus();
        return (false);
    }
    form.age.value = trim(form.age.value);
    if (form.age.value == "") {
        alert('leeftijd niet ingevuld');
        form.age.focus();
        return (false);
    }
	if(!IsNumeric(form.age.value)) {
        alert('leeftijd moet een getal zijn');
        form.age.focus();
        return (false);
    }
	form.email.value = trim(form.email.value);
    if (form.email.value == "") {
        alert('email niet ingevuld');
        form.email.focus();
        return (false);
    }
	if (!isEmailAddr(form.email.value)) {
        alert("vul een geldig emailadres in.");
        form.email.focus();
        return (false);
    }
	form.username.value = trim(form.username.value);
    if (form.username.value == "")  {
        alert('username niet ingevuld');
        form.username.focus();
        return (false);
    }
	form.password1.value = trim(form.password1.value);
    if (form.password1.value == "")  {
        alert('wachtwoord niet ingevuld');
        form.password1.focus();
        return (false);
    }
    form.password2.value = trim(form.password2.value);
    if (form.password2.value == "")  {
        alert('wachtwoord(2) niet ingevuld');
        form.password2.focus();
        return (false);
    }
    if (form.password1.value != form.password2.value) {
        alert('wachtwoorden niet gelijk');
        form.password2.focus();
        return (false);
    }
    return (true);
}

/***********************************************/

function ValidateFormStap1(form) {
    form.inlognaam.value = trim(form.inlognaam.value);
    if (form.inlognaam.value == "")  {
        alert('geen inlognaam ingevuld');
        form.inlognaam.focus();
        return (false);
    }
   if (form.inlognaam.value.length <3 || form.inlognaam.value.length >20)  {
        alert('inlognaam moet 3 tot 20 tekens bevatten, geen spaties');
        form.inlognaam.focus();
        return (false);
    }
    form.wachtwoord.value = trim(form.wachtwoord.value);
    if (form.wachtwoord.value == "") {
        alert('wachtwoord niet ingevuld');
        form.wachtwoord.focus();
        return (false);
    }
    form.wachtwoord2.value = trim(form.wachtwoord2.value);
    if (form.wachtwoord2.value == "") {
        alert('herhaling wachtwoord niet ingevuld');
        form.wachtwoord2.focus();
        return (false);
    }
    if (form.wachtwoord.value != form.wachtwoord2.value) {
        alert('wachtwoorden niet gelijk');
        form.wachtwoord2.focus();
        return (false);
    }
    return true;
}

/***********************************************/

function ValidateFormStap2(form) {
   
    form.voornaam.value = trim(form.voornaam.value);
    if (form.voornaam.value == "")  {
        alert('voornaam niet ingevuld');
        form.voornaam.focus();
        return (false);
    }
    form.tussenvoegsel.value = trim(form.tussenvoegsel.value);
    form.achternaam.value = trim(form.achternaam.value);
    if (form.achternaam.value == "") {
        alert('achternaam niet ingevuld');
        form.achternaam.focus();
        return (false);
    }
    form.straat.value = trim(form.straat.value);
    if (form.straat.value == "") {
        alert('straatnaam niet ingevuld');
        form.straat.focus();
        return (false);
    }
    form.huisnrtoevoeging.value = trim(form.huisnrtoevoeging.value);
    form.huisnr.value = trim(form.huisnr.value);
    if (form.huisnr.value == "") {
        alert('geen huisnr ingevuld');
        form.huisnr.focus();
        return (false);
    }  
    if(!IsNumeric(form.huisnr.value)) {
        alert('huisnr is geen getal');
        form.huisnr.focus();
        return (false);
    }
    form.postcode.value = trim(form.postcode.value);
    if (form.postcode.value == "") {
        alert('postcode niet ingevuld');
        form.postcode.focus();
        return (false);
    }

    if(!checkPattern(form.postcode.value)){
        alert('geen juiste postcode ingevuld');
        form.postcode.focus();
        return (false); 
    }
    form.woonplaats.value = trim(form.woonplaats.value);
    if (form.woonplaats.value == "") {
        alert('woonplaats niet ingevuld');
        form.woonplaats.focus();
        return (false);
    }
    form.telefoonnr.value = trim(form.telefoonnr.value);  
    if (form.telefoonnr.value == "") {
        alert('geen telefoonnummer ingevuld');
        form.telefoonnr.focus();
        return (false);
    }
    if(!IsTelefoonnr(form.telefoonnr.value)) {
        alert('telefoonnummer klopt niet');
        form.telefoonnr.focus();
        return (false);
    }
    form.dag.value = trim(form.dag.value);
    if (form.dag.value == "") {
        alert('geen geboortedag ingevuld');
        form.dag.focus();
        return (false);
    }
    form.maand.value = trim(form.maand.value);
    if (form.maand.value == "") {
        alert('geboortemaand niet ingevuld');
        form.maand.focus();
        return (false);
    }
    form.jaar.value = trim(form.jaar.value);
    if (form.jaar.value == "") {
        alert('geen geboortejaar ingevuld');
        form.jaar.focus();
        return (false);
      }
    if(!IsNumeric(form.dag.value)) {
        alert('geboortedag is geen getal');
        form.dag.focus();
        return (false);
    }
    if(!IsNumeric(form.maand.value)) {
        alert('geboortemaand is geen getal');
        form.maand.focus();
        return (false);
    }
    if(!IsNumeric(form.jaar.value)) {
        alert('geboortejaar is geen getal');
        form.jaar.focus();
        return (false);
    }
    if (!isExistingDate(form.dag.value, form.maand.value, form.jaar.value)){
        form.dag.focus();
        return (false);
    }
    form.email.value = trim(form.email.value);
    if (form.email.value == "") {
        alert('email niet ingevuld');
        form.email.focus();
        return (false);
    }
    if (!isEmailAddr(form.email.value)) {
        alert("vul een geldig emailadres in: bijv: jouwnaam@hotmail.com");
        form.email.focus();
        return (false);
    }
    form.paspoortnr.value = trim(form.paspoortnr.value);
    if (form.paspoortnr.value == "") {
        alert('geen paspoortnr ingevuld, vul uw paspoort- of europese identificatiekaartnummer hier in');
        form.paspoortnr.focus();
        return (false);
    }
    form.rekeningnr.value = trim(form.rekeningnr.value);
    if (form.rekeningnr.value == "") {
        alert('geen rekeningnr ingevuld');
        form.rekeningnr.focus();
        return (false);
    }
    if(!IsNumeric(form.rekeningnr.value)) {
        alert('rekeningnr is geen getal');
        form.rekeningnr.focus();
        return (false);
    }

    return (true);
}

/********************************************************/

function ValidateForm(form) {
   
    form.inlognaam.value = trim(form.inlognaam.value);
    if (form.inlognaam.value == "")  {
        alert('geen inlognaam ingevuld');
        form.inlognaam.focus();
        return (false);
    }
    form.wachtwoord.value = trim(form.wachtwoord.value);
    if (form.wachtwoord.value == "") {
        alert('wachtwoord niet ingevuld');
        form.wachtwoord.focus();
        return (false);
    }
    form.voornaam.value = trim(form.voornaam.value);
    if (form.voornaam.value == "")  {
        alert('voornaam niet ingevuld');
        form.voornaam.focus();
        return (false);
    }
    form.tussenvoegsel.value = trim(form.tussenvoegsel.value);
    form.achternaam.value = trim(form.achternaam.value);
    if (form.achternaam.value == "") {
        alert('achternaam niet ingevuld');
        form.achternaam.focus();
        return (false);
    }
    form.straat.value = trim(form.straat.value);
    if (form.straat.value == "") {
        alert('straatnaam niet ingevuld');
        form.straat.focus();
        return (false);
    }
    form.huisnrtoevoeging.value = trim(form.huisnrtoevoeging.value);
    form.huisnr.value = trim(form.huisnr.value);
    if (form.huisnr.value == "") {
        alert('geen huisnr ingevuld');
        form.huisnr.focus();
        return (false);
    }  
    if(!IsNumeric(form.huisnr.value)) {
        alert('huisnr is geen getal');
        form.huisnr.focus();
        return (false);
    }
    form.postcode.value = trim(form.postcode.value);
    if (form.postcode.value == "") {
        alert('postcode niet ingevuld');
        form.postcode.focus();
        return (false);
    }

    if(!checkPattern(form.postcode.value)){
        alert('geen juiste postcode ingevuld');
        form.postcode.focus();
        return (false); 
    }
    form.woonplaats.value = trim(form.woonplaats.value);
    if (form.woonplaats.value == "") {
        alert('woonplaats niet ingevuld');
        form.woonplaats.focus();
        return (false);
    }
    form.telefoonnr.value = trim(form.telefoonnr.value);  
    if (form.telefoonnr.value == "") {
        alert('geen telefoonnummer ingevuld');
        form.telefoonnr.focus();
        return (false);
    }
    if(!IsTelefoonnr(form.telefoonnr.value)) {
        alert('telefoonnummer klopt niet');
        form.telefoonnr.focus();
        return (false);
    }
    form.dag.value = trim(form.dag.value);
    if (form.dag.value == "") {
        alert('geen geboortedag ingevuld');
        form.dag.focus();
        return (false);
    }
    form.maand.value = trim(form.maand.value);
    if (form.maand.value == "") {
        alert('geboortemaand ingevuld');
        form.maand.focus();
        return (false);
    }
    form.jaar.value = trim(form.jaar.value);
    if (form.jaar.value == "") {
        alert('geen geboortejaar ingevuld');
        form.jaar.focus();
        return (false);
      }
    if(!IsNumeric(form.dag.value)) {
        alert('geboortedag is geen getal');
        form.dag.focus();
        return (false);
    }
    if(!IsNumeric(form.maand.value)) {
        alert('geboortemaand is geen getal');
        form.maand.focus();
        return (false);
    }
    if(!IsNumeric(form.jaar.value)) {
        alert('geboortejaar is geen getal');
        form.jaar.focus();
        return (false);
    }
    if (!isExistingDate(form.dag.value, form.maand.value, form.jaar.value)){
        return (false);
    }
    form.email.value = trim(form.email.value);
    if (form.email.value == "") {
        alert('email niet ingevuld');
        form.email.focus();
        return (false);
    }
    if (!isEmailAddr(form.email.value)) {
        alert("vul een geldig emailadres in: bijv: jouwnaam@hotmail.com");
        form.email.focus();
        return (false);
    }
    return (true);
}

/********************************************************/

function ValidateUpdateForm(form) {
    
    form.voornaam.value = trim(form.voornaam.value);
    if (form.voornaam.value == "")  {
        alert('voornaam niet ingevuld');
        form.voornaam.focus();
        return (false);
    }
    form.tussenvoegsel.value = trim(form.tussenvoegsel.value);
    form.achternaam.value = trim(form.achternaam.value);
    if (form.achternaam.value == "") {
        alert('achternaam niet ingevuld');
        form.achternaam.focus();
        return (false);
    }
    form.straat.value = trim(form.straat.value);
    if (form.straat.value == "") {
        alert('straatnaam niet ingevuld');
        form.straat.focus();
        return (false);
    }
    form.huisnrtoevoeging.value = trim(form.huisnrtoevoeging.value);
    form.huisnr.value = trim(form.huisnr.value);
    if (form.huisnr.value == "") {
        alert('geen huisnr ingevuld');
        form.huisnr.focus();
        return (false);
    }  
    if(!IsNumeric(form.huisnr.value)) {
        alert('huisnr is geen getal');
        form.huisnr.focus();
        return (false);
    }
    form.postcode.value = trim(form.postcode.value);
    if (form.postcode.value == "") {
        alert('postcode niet ingevuld');
        form.postcode.focus();
        return (false);
    }
    form.woonplaats.value = trim(form.woonplaats.value);
    if (form.woonplaats.value == "") {
        alert('woonplaats niet ingevuld');
        form.woonplaats.focus();
        return (false);
    }
    form.telefoonnr.value = trim(form.telefoonnr.value);
    if (form.telefoonnr.value == "") {
        alert('geen telefoonnummer ingevuld');
        form.telefoonnr.focus();
        return (false);
    }
    if(!IsTelefoonnr(form.telefoonnr.value)) {
        alert('telefoonnummer klopt niet');
        form.telefoonnr.focus();
        return (false);
    }
    form.email.value = trim(form.email.value);
    if (form.email.value == "") {
        alert('email niet ingevuld');
        form.email.focus();
        return (false);
    }
    if (!isEmailAddr(form.email.value)) {
        alert("vul een geldig emailadres in: bijv: jouwnaam@hotmail.com");
        form.email.focus();
        return (false);
    }
    form.rekeningnr.value = trim(form.rekeningnr.value);
    if (form.rekeningnr.value == "")  {
        alert('rekening niet ingevuld');
        form.rekening.focus();
        return (false);
    }
    if(!IsNumeric(form.rekeningnr.value)) {
        alert('rekeningnr is geen getal');
        form.rekeningnr.focus();
        return (false);
    }
    return (true);
}

/*****************************************************/

function ValidateFormProfiel(form) {

    form.werk.value = trim(form.werk.value);
    form.lengte.value = trim(form.lengte.value);
    if(form.lengte.value == "") {
        alert('lengte niet ingevuld');
        form.lengte.focus();
        return (false);
    }
    if(!IsNumeric(form.lengte.value)) {
        alert('lengte onjuist ingevuld, vul uw lengte in cm in');
        form.lengte.focus();
        return (false);
    }
    if(form.lengte.value < 100 || form.lengte.value > 230) {
        alert('lengte onjuist, vul een lengte in tussen 100 en 230 cm');
        form.lengte.focus();
        return (false);
    }    
    return(true);
}

/*****************************************************/

function ValidateFormZoekProfiel(form) {

    form.werk.value = trim(form.werk.value);   
    form.leeftijdLaag.value = trim(form.leeftijdLaag.value);
    if(!IsNumeric(form.leeftijdLaag.value)) {
        alert('leeftijd onjuist ingevuld');
        form.leeftijdLaag.focus();
        return (false);
    }
    if(form.leeftijdLaag.value > 119){
        alert('leeftijd te hoog, vul getal onder 120');
        return (false);
    }
    form.leeftijdHoog.value = trim(form.leeftijdHoog.value);
    if(!IsNumeric(form.leeftijdHoog.value)) {
        alert('leeftijd onjuist ingevuld');
        form.leeftijdHoog.focus();
        return (false);
    }
    if(form.leeftijdHoog.value > 119){
        alert('leeftijd te hoog, vul getal onder 120');
        return (false);
    }
    if(form.leeftijdLaag.value != "" && form.leeftijdHoog.value !="") {
        if(form.leeftijdLaag.value > form.leeftijdHoog.value){
            alert('de 2e leeftijd mag niet lager zijn dan de 1e');
            return (false);
            }
    } 
    form.lengteLaag.value = trim(form.lengteLaag.value);
    if(!IsNumeric(form.lengteLaag.value)) {
        alert('lengte onjuist ingevuld');
        form.lengteLaag.focus();
        return (false);
    }
    if(form.lengteLaag.value > 229){
        alert('lengte te hoog, vul getal onder 230');
        return (false);
    }
    form.lengteHoog.value = trim(form.lengteHoog.value);
    if(!IsNumeric(form.lengteHoog.value)) {
        alert('lengte onjuist ingevuld');
        form.lengteHoog.focus();
        return (false);
    }
    if(form.lengteHoog.value > 229){
        alert('lengte te hoog, vul getal onder 230');
        return (false);
    }
    if(form.lengteLaag.value != "" && form.lengteHoog.value != "") {
        if(form.lengteLaag.value > form.lengteHoog.value){
            alert('de 2e lengte mag niet lager zijn dan de 1e');
            return (false);
            }
    } 
    return(true);
}

/*************
 * OVERIGE FUNCTIES
 *************/

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function checkPattern(str) {
     var regex = /^\d{4}\s?[a-zA-Z]{2}$/; /* postcode 4 cijfers, 2 letters(mag spatie tussen)*/
     var succes = false;
     if (regex.test(str)) 
        succes = true
     return succes;
}

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;
}



function IsTelefoonnr(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;
}

function isEmailAddr(email) {
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0) {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}


function isExistingDate(d, m, y) {

    if(d < 1) {
        alert('datum onuist');
        form.dag.focus();
        return (false);
    }
    if(m < 1) {
        alert('datum onuist');
        form.maand.focus();
        return (false);
    }
    if(y<1) {
        alert('datum onuist');
        form.jaar.focus();
        return (false);
    }
    if(d > 31){
        alert('dag groter dan 31');
        form.dag.focus();
        return (false);
    }
    if(m > 12){
        alert('maand groter dan 12');
        form.maand.focus();
        return (false);
    }
    if(y <= 1900){
        alert('vul een jaartal groter dan 1900 in');
        form.jaar.focus();
        return (false);
    }

    switch (m) {
	
        case "2": 
	    if(d > 29){
                alert('datum is onjuist');
                form.dag.focus();
                return (false);
            }
            else if(d == 29){
                if(y % 4 != 0){
                    alert('datum is onjuist');
                    form.jaar.focus();
                    return (false);
                }
                else if((y % 100 == 0) && (y % 400 != 0)){
                    alert('datum is onjuist');
                    form.jaar.focus();
                    return (false);
                }
                else
                    return (true);
                }
            else
                return (true);
	    break;	
	case "4": 
              if(d > 30){
                  alert('datum is onjuist');
                  form.dag.focus();
                  return (false);
              }
              else
                  return (true);
	      break;	
	case "6": 
              if(d > 30){
                  alert('datum is onjuist');
                  form.dag.focus();
                  return (false);
              }
              else
                  return (true);
              break;	
	case "9": 
              if(d > 30){
                  alert('datum is onjuist');
                  form.dag.focus();
                  return (false);
              }
              else
                  return (true);
	      break;	
	case "11": 
              if(d > 30){
                  alert('datum is onjuist');
                  form.dag.focus();
                  return (false);
              }
              else
                  return (true);
              break;        
        }

    var nowMin18 = new Date();
    var year = nowMin18.getYear();
    nowMin18.setYear(year - 18);
    
    var dateToCheck = new Date();
    dateToCheck.setYear(y);
    dateToCheck.setMonth(m-1);
    dateToCheck.setDate(d);
    var checkDate = dateToCheck; 
    
    if(nowMin18 < checkDate){
        alert('je moet minimaal 18 zijn om je in te schrijven');
        return (false);
    }
    else
        return (true);

    alert('datum is onjuist');
    return (false);
}
