// $Id: formcheck_nl.js,v 1.2 2001/12/07 10:52:48 ideax004 Exp $
// $Source: /home/cvs/projects/KBvV/web/js/formcheck_nl.js,v $

function emailCheck (emailStr) {
//var str = form.email.value;
var str = emailStr;
var emailPat=/^(.+)@(.+)$/
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
var validChars="\[^\\s" + specialChars + "\]"
var quotedUser="(\"[^\"]*\")"
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
var atom=validChars + '+'
var word="(" + atom + "|" + quotedUser + ")"
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
var matchArray=emailStr.match(emailPat)
if (matchArray==null) {
       alert(""+ str +" is een verkeerd emailadres!\n(controleer de @ en de .'s)");
form.email.value="";
return false
}
var user=matchArray[1]
var domain=matchArray[2]
// See if "user" is valid
if (user.match(userPat)==null) {
    // user is not valid
    alert(""+ str +" is een verkeerd emailadres!\n(controleer je gebruikersnaam)");
    form.email.value="";
    return false
}
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
    // this is an IP address
          for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
                alert(""+ str +" is een verkeerd emailadres!\n(controleer het IP adres)");
                form.email.value="";
                return false
            }
    }
    return true
}
// Domain is symbolic name
var domainArray=domain.match(domainPat)
if (domainArray==null) {
        alert(""+ str +" is een verkeerd emailadres!\n(controleer het domein)");
form.email.value="";
return false
}
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
    domArr[domArr.length-1].length>3) {
   // the address must end in a two letter or three letter word.
   alert(""+ str +" is een verkeerd emailadres!\n(controleer het domein)");
form.email.value="";
 return false
}
// Make sure there's a host name preceding the domain.
if (len<2) {
   var errStr=""+ str +" is een verkeerd emailadres!\n(controleer de host)";
   alert(errStr)
form.email.value="";
   return false
}
// If we've gotten this far, everything's valid!
return true;
}



function validate(field) {
var valid = "<>\/[]{}"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) != "-1") ok = "no";
}
if (ok == "no") {
alert("Uw ingave mag de volgende tekens niet bevatten!\n<>\\/[]{}");
field.focus();
field.value="";
field.select();
   }
}



function numvalidate(field) {
var valid = "0123456789/.+"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Uw ingave mag alleen de volgende tekens bevatten!\n0123456789/.+");
field.focus();
field.value="";
field.select();
   }
}



function isValidDate(dateStr) {
var str = form.date_of_birth.value;
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
// To require a 2 digit year entry, use this line instead:
// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?
if (matchArray == null) {
alert(""+ str +" is geen geldige geboortedatum!\n(controleer het formaat)\nmm-dd-jjjj");
form.date_of_birth.value="";
return false;
}
month = matchArray[3]; // parse date into variables
day = matchArray[1];
year = matchArray[4];
if (month < 1 || month > 12) { // check month range
alert(""+ str +" is geen geldige geboortedatum!\n(controleer de maand)\ntussen 1 en 12");
form.date_of_birth.value="";
return false;
}
if (day < 1 || day > 31) {
alert(""+ str +" is geen geldige geboortedatum!\n(controleer de dag)\ntussen 1 en 31");
form.date_of_birth.value="";
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert(""+ str +" is geen geldige geboortedatum!\n(controleer de maand)\ner zijn geen 31 dagen in "+month+"");
form.date_of_birth.value="";
return false
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert(""+ str +" is geen geldige geboortedatum!\n(controleer de maand)\nfebruari "+year+" heeft geen "+day+" dagen");
form.date_of_birth.value="";
return false;
   }
}
return true;  // date is valid
}



function changeCase(frmObj) {
var index;
var tmpStr;
var tmpChar;
var preString;
var postString;
var strlen;
tmpStr = frmObj.value.toLowerCase();
strLen = tmpStr.length;
if (strLen > 0)  {
for (index = 0; index < strLen; index++)  {
if (index == 0)  {
tmpChar = tmpStr.substring(0,1).toUpperCase();
postString = tmpStr.substring(1,strLen);
tmpStr = tmpChar + postString;
}
else {
tmpChar = tmpStr.substring(index, index+1);
if (tmpChar == " " && index < (strLen-1))  {
tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
preString = tmpStr.substring(0, index+1);
postString = tmpStr.substring(index+2,strLen);
tmpStr = preString + tmpChar + postString;
         }
      }
   }
}
frmObj.value = tmpStr;
}
