function check_invoer() {

  foutMelding ('&nbsp;');

  // check naam
  naam= document.getElementById('naam').value = trim(document.getElementById('naam').value);
  if (naam.length < 1) {
    showError('naam');
    document.getElementById('naam').focus();
    return;
  }
  
  // check email adres
  emailadres = document.getElementById('emailadres').value = trim(document.getElementById('emailadres').value)
  if (emailadres.length < 1) {
    showError('email1');
    document.getElementById('emailadres').focus();
    return;
  }

  if (mailValidation(emailadres, false) != null) {
    showError('email2');
    document.getElementById('emailadres').focus();
    return;
  }

 //postcode
 //huisnummer
 //buitenland
  // check of iemand in het buitenland woont, zo niet dan is postcode en huisnummer verplicht
  if (!document.getElementById('ch_buitenland').checked){
    document.getElementById('ch_buitenland').value = "Nee";
    postcode = document.getElementById('pcode').value;
    if (postcode.length < 1){
      showError('postcode');
      document.getElementById('pcode').focus();
      return;
    }
    if (!postcode.match(/[1-9][0-9]{3}[a-zA-Z]{2}/)){
      foutMelding('Postcode is onjuist.');
      document.getElementById('pcode').focus();
      return
    }
    huisnummer = document.getElementById('huisnr').value = trim(document.getElementById('huisnr').value)
    if (huisnummer.length < 1){
      showError('huisnummer');
      document.getElementById('huisnr').focus();
      return;
    }
  }
  else {
    document.getElementById('ch_buitenland').value = "Ja";    
    document.getElementById('pcode').value = "";
    document.getElementById('huisnr').value = "";
  }


   // controle op burgerservicenummer
  if (!document.getElementById('ch_bsnummer').checked){
    bsnummer = document.getElementById('bsnr').value = trim(document.getElementById('bsnr').value);
    if (bsnummer.length < 1){
      showError('bsn1');
      document.getElementById('bsnr').focus();
      return;
    }
    if (isNaN(bsnummer)){
      showError('bsn2');
      document.getElementById('bsnr').focus();
      return;
    }
    if (bsnummer.length < 9){
      while (bsnummer.length < 9){
        bsnummer = "0"+bsnummer;
      } 
    }
    if (!check_bsn(bsnummer)){
      showError('bsn2');
      document.getElementById('bsnr').focus();
      return;
    }
    document.getElementById('bsnr').value = bsnummer;
  }
  else {
    document.getElementById('bsnr').value = "";
    bsnummer = document.getElementById('ch_bsnummer').value;
  }

 //geboortedatum dag,maand,jaar
  if (document.getElementById('jaar').value == 0){
    showError('jaar');
    document.getElementById('jaar').focus();
    return;
  }
  if (!check_geboortedatum(document.getElementById('dag').value,document.getElementById('maand').value,document.getElementById('jaar').value)){
    showError('geboortedatum');
    document.getElementById('jaar').focus();
    return;
  }


 // check onderwerp
  subject= document.getElementById('subject').value;
  if (subject == "-") {
    showError('subject');
    document.getElementById('subject').focus();
    return;
  }

// check vraag
  vraag = document.getElementById('vraag').value = trim(document.getElementById('vraag').value);
  if (vraag.length < 1) {
    showError('vraag');
    document.getElementById('vraag').focus();
    return;
  }
  if (vraag.length > 1000) {
    showError('vraag2');
    document.getElementById('vraag').focus();
    return;
  }

  // document.getElementById('contactForm').action='verstuurEmail.asp';
  //document.getElementById('contactForm').submit();
 vars =   'type=inburgeraar'+
          '&naam='+escape(document.getElementById('naam').value)+
          '&emailadres='+escape(document.getElementById('emailadres').value)+
          '&postcode='+escape(document.getElementById('pcode').value)+
          '&huisnummer='+escape(document.getElementById('huisnr').value)+
          '&buitenland='+escape(document.getElementById('ch_buitenland').value)+
          '&bsnr='+escape(bsnummer)+
          '&geboortedatum='+escape(document.getElementById('dag').value)+'-'+escape(document.getElementById('maand').value)+'-'+escape(document.getElementById('jaar').value)+
          '&subject=SCI-inburgeraar: '+escape(document.getElementById('subject').value)+
          '&vraag='+escape(document.getElementById('vraag').value);
    loadXMLDoc('/includes/verzendEmail.asp','POST',vars);
}

function foutMelding (str) {
  document.getElementById('tekst1').innerHTML = str;

  if (document.getElementById('tekst1').innerHTML == "&nbsp;") {
   document.getElementById('tekst1').style.display = "none";
  } else {
   document.getElementById('tekst1').style.display = "block";
  }

}

function showError(err) {
  switch (err) {
    case "naam":
      foutMelding('Naam is verplicht om in te vullen.');
      break;
    case "email1":
      foutMelding('E-mail adres is verplicht om in te vullen.');
      break;
    case "email2":
      foutMelding('E-mail adres is onjuist.');
      break;
    case "postcode":
      foutMelding('Postcode is verplicht om in te vullen.');
      break;
    case "huisnummer":
      foutMelding('Huisnummer is verplicht om in te vullen.');
      break;
    case "bsn1":
      foutMelding('Burgerservicenummer is verplicht om in te vullen.');
      break;
    case "bsn2":
      foutMelding('Burgerservicenummer is onjuist.');
      break;
    case "geboortedatum":
      foutMelding('Geboortedatum is onjuist.');
      break;
    case "jaar":
      foutMelding('Geboortedatum is verplicht om in te vullen.');
      break;
    case "subject":
      foutMelding('Onderwerp is verplicht om in te vullen.');
      break;
    case "vraag":
      foutMelding('U hebt geen vraag gesteld.');
      break;
    case "vraag2":
      foutMelding('Max aantal tekens is 1000.');
      break;
    case "ok":
      foutMelding("Uw email is verzonden.");
      break;
    case "nok":
      foutMelding('Helaas is er een storing opgetreden tijdens het versturen van uw e-mail.');
      break;
  }
}


function check_email(e) {
  ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.\@-_QWERTYUIOPASDFGHJKLZXCVBNM";
  for(h=0; h < e.length ;h++){
    if(ok.indexOf(e.charAt(h))<0){ 
      return false;
    }		
  }
  
  atSign = e.indexOf('@');
  if (atSign > 0) {
    p1 = e.indexOf('.',atSign);
    if (p1 <= (atSign+2)) {
    // er moeten twee tekens tussen @ en eerste punt (.) staan
      return false;
    }
    // lastIndexOf gebruiken omdat er meerdere punten kunnen zitten in een email-adres
    p1  = e.lastIndexOf('.');
    // -3 omdat length begint met 1 en lastIndexOf met nul 
    if (p1 > (e.length -3)) {
      return false
    }
  } else {
  // geen @  in email adres  
    return false;
  }
  return true;
}
function check_geboortedatum(dag, maand, jaar) {

      var day = dag;
      // Attention! Javascript consider months in the range 0 - 11
      var month = maand - 1;
      var year = jaar;

     // omdat de dag en de maand 0 mag zijn, moet hier op gecontroleerd worden
     if (day != 0 && month != 0){

        // This instruction will create a date object
        source_date = new Date(year,month,day);

        if(year != source_date.getFullYear()) {
          return false;
        }

        if(month != source_date.getMonth()) {
         return false;
        }

        if(day != source_date.getDate()) {
         return false;
        }
      }
      return true;
}
function check_bsn(bsn){
  var checkSum = 0;
  // controleer lengte van bsn
  if (bsn.length < 9){
    while (bsn.length < 9){
      bsn = "0"+bsn;
    } 
  }
  //controleer op juistheid
  for (i=0; i < 8 ; i++){
    checkSum = checkSum + (bsn.substring(i,i+1)*(9 - i));
  }
  
  if (checkSum%11 != bsn.substring(8)){
     return false;
  }
  return true;
}

// indien verzendEmail.asp goed is gegaan dan wordt deze functie aangeroepen

function exec_function_after_req_OK() {
  // sluit contact div
  // toon bedankt voor mail
  showError('ok');
}
function exec_function_after_req_NOT_OK() {
  // sluit contact div
  // toon bedankt voor mail
  showError('nok');
}
//alert (findPosX(document.getElementById('spanNaam')));
//  alert(document.getElementById('spanNaam').style.width);
  // = '400';
// -->

//trim functie
function trim(value) {
  return value.replace(/^\s+/,'').replace(/\s+$/,''); 
}
