/*
  -------------------------------------------------------------------------
  JavaScript Form Validator (formvalidator.js)
  Version 1.0.0
  Copyright (C) 2009 ICT Approach. All rights reserved.
  You can freely use this script in your Web pages.
  You may adapt this script for your own needs, provided these opening credit lines are kept intact.
  -------------------------------------------------------------------------
*/
function errorMessage(Msg,field)
{
    alert('FOUT : '+Msg);
    field.focus();
}

function notBlank(field)
{
  if(field.value != '') {
    return true;
  } else{
    Msg = "Leeg veld niet toegestaan!";
    errorMessage(Msg,field);
    return false;
  }
}

function checkZipcode(field)
{
  if (field.length ==0)
  {
     Msg= "Geen postcode ingevoerd";
     errorMessage(Msg,field);
     return false;
  }
  var reg = new
  RegExp(/([0-9]){4}([A-Z]){2}/);
  if (reg.exec(field.value) == null)
  {
     Msg="Formaat postcode (1234AA)";
     errorMessage(Msg,field);
     return false;
  }
  return true;
}

function checkDate(field)
{
  var minYear = (new Date()).getFullYear();
  var maxYear = (new Date()).getFullYear()+1;

  var Msg = "";

  // regular expression to match required date format
  re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;

  if(notBlank(field)) {
    if(regs = field.value.match(re)) {
      if(regs[1] < 1 || regs[1] > 31) {
        Msg = "waarde voor dag: " + regs[1];
      } else if(regs[2] < 1 || regs[2] > 12) {
        Msg = "waarde voor maand: " + regs[2];
      } else if(regs[3] < minYear || regs[3] > maxYear) {
        Msg = "waarde voor jaar: " + regs[3] + " - moet tussen " + minYear + " en " + maxYear+" vallen.";
      }
    } else {
      Msg = "datum formaat: " + field.value;
    }
  }

  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

function checkTime(field)
{
  var Msg = "";
  // regular expression to match required time format
  re = /^(\d{1,2}):(\d{2})(:00)?([ap]m)?$/;

  if(notBlank(field)) {
    if(regs = field.value.match(re)) {
      if(regs[4]) {
        // 12-hour time format with am/pm
        if(regs[1] < 1 || regs[1] > 12) {
          Msg = "waarde voor uur: " + regs[1];
        }
      } else {
        // 24-hour time format
        if((regs[1] > 24) || (regs[1] < 1)) {
          Msg = "waarde voor uur: " + regs[1];
        }
      }
      if(!Msg && regs[2] > 59) {
        Msg = "waarde voor minuten: " + regs[2];
      }
    } else {
      Msg = "tijd formaat: " + field.value;
    }
  }
  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

function checkDateTimes(d1,t1,d2,t2)
{
    var Msg = "";
    var now = new Date();
    var uur = now.getHours();
    var min  = now.getMinutes();
    var mnd = now.getMonth()+1;
    var dag = now.getDate();
    var jaar = now.getFullYear();
    var cur = now.getTime();
    var pak = now.getTime();
    var lev = now.getTime();


    // regular time expression to match times
    tre = /^(\d{1,2}):(\d{2})?$/;

    // regular date expression to match dates
    dre = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;

    regd1 = d1.value.match(dre);
    regd2 = d2.value.match(dre);
    regt1 = t1.value.match(tre);
    regt2 = t2.value.match(tre);

    d1_str = d1.value;
    d2_str = d2.value;
    t1_str = t1.value;
    t2_str = t2.value;

//
//  format new Date(yy,mm,dd,hh,mm,ss)
//
    var pakdat = new Date(regd1[3],regd1[2],regd1[1],t1_str.split(':')[0],t1_str.split(':')[1]);
    var levdat = new Date(regd2[3],regd2[2],regd2[1],t2_str.split(':')[0],t2_str.split(':')[1]);

    pak = pakdat.getTime();
    lev = levdat.getTime();


    if ((pak<cur) || (lev<cur)) {
      Msg= "Datums kunnen niet in het verleden zijn";
    }
    if (pak>lev) {
      Msg="Pakdatum kan niet later dan Leverdatum zijn";
    }


    if(Msg != "") {
       errorMessage(Msg,field);
       return false;
    }
    return true;
}

function checkNumber(field){
  var Msg = "";
  var chkval = field.value;
  // regular expression to match required format
  var re=/^(\d{1,12})?$/;
  if (!chkval.match(re)) {
   Msg = "In dit veld mag alleen een getal worden ingevuld.";
  }

  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

function checkSize(field)
{
  var Msg = "";
  var chkval = field.value;
  // regular expression to match required time format
  re = /^(\d{1,3})x(\d{1,3})x(\d{1,3})?$/;

  if(notBlank(field)) {
      if (!chkval.match(re))
          Msg = "in afmeting (l x b x h in centimeters)";
  }
  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

function checkLen(field,min,max)
{
  var Msg = "";
  var chkval = field.value;
  var chklen = chkval.length;
  if (chklen< min || chklen>max) {
          Msg = "lengte van getal (min=" + min + " max="+max+")";
  }
  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

function checkEmail(field) {
  var str = field.value;
  var at="@";
  var dot=".";
  var lat=str.indexOf(at);
  var lstr=str.length;
  var ldot=str.indexOf(dot);
  eMsg = 'E-mail adres :';
  var Msg = '';
  if (str.indexOf(at)==-1){
    Msg = eMsg + '@ teken ontbreekt.'+'('+str+')';
  }
  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
    Msg = eMsg + ' @ teken ontbreekt of adres is te kort.'+'('+str+')';
  }
  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
    Msg = eMsg + ' punt in domein ontbreekt.'+'('+str+')';
  }
  if (str.indexOf(at,(lat+1))!=-1){
    Msg = eMsg + ' gebruikersnaam te kort.'+'('+str+')';
  }
  if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
    Msg = eMsg + ' domeinnaam klopt niet.'+'('+str+')';
  }
  if (str.indexOf(dot,(lat+2))==-1){
    Msg = eMsg + ' domeinnaam extensie achter de punt ontbreekt.'+'('+str+')|'+dot+'|'+at+'|'+lat+'|';
  }
  if (str.indexOf(" ")!=-1){
    Msg = eMsg + ' mailadres mag geen spaties bevatten.'+'('+str+')';
  }
  if(Msg != "") {
    errorMessage(Msg,field);
    return false;
  }
  return true;
}

