function checkField(text)
{
  if(text)
    text.className = "";
} 

/*
VOORWAARDE: namen van elementen moeten deze tekens niet bevatten: - ( ) ,

Functie die van een form alle elementen checkt en submit wanneer alles goed is.
$param form Form die gecheckt moet worden (bv. document.forms[0])

Wanneer een element in een form gecheckt moet worden, kan dat op verschillende manieren aangegeven worden.
Het moet iig een attribuut 'check' hebben:
<input type="text" name="testinput" check="gevuld">
De waardes van check kunnen zijn:
- gevuld (Er moet iets in staan)
- nummer (De waarde moet een getal zijn)
- datum (De waarde moet een datum zijn)
- email (De waarde moet een geldig emailadres zijn)
- gelijkaan(anderinput) (De waarde moet gelijk zijn aan de waarde in 'anderinput', waar 'anderinput' zich in hetzelfde form moet bevinden.)
- aangevinkt (De input moet perse aangevinkt zijn)

Er kunnen meerdere acties per input worden uitgevoerd:
Voorbeelden:
<input type="text" name="testinput" check="gevuld-email">
=> Waarde moet gevuld zijn EN een emailadres
  
<input type="text" name="testinput" check="gevuld-email-gelijkaan(anderemail)">
=> Waarde moet gevuld zijn EN een emailadres EN gelijk aan de waarde in het veld 'anderemail'

alsaangevinkt(a,gevuld-email-gelijkaan(anderemail)) waar: a = element dat gevinkt moet zijn.
Wanneer dit gebruikt wordt, kan ALLEEN dit gebruikt worden, dus niet zo:
alsaangevinkt(a,gevuld-email-gelijkaan(anderemail))-email-gevuld

LET OP: er mag geen spatie na de komma staan.
*/
function checkFormAndSubmit(form) // Al submitten
{
  checkAllFields(form, "1");
}
function checkForm(form) // Nog niet submitten
{
  return checkAllFields(form, "0");
}
function checkAllFields(form, dosubmit)
{
  var error = "";
  var errorclass = "error";
  if(form)
  {
    for(i=0;i<form.elements.length;i++)
    {
      if (form.elements[i].getAttribute("check"))
      {
        form.elements[i].setAttribute("oldClassName", form.elements[i].className!=errorclass?form.elements[i].className:form.elements[i].getAttribute("oldClassName"));
        form.elements[i].className = form.elements[i].getAttribute("oldClassName")!="undefined"?form.elements[i].getAttribute("oldClassName"):"";
       
        texttocheck = form.elements[i].getAttribute("check");
        if((texttocheck.indexOf("alsaangevinkt"))>-1 && texttocheck.indexOf(",")!=-1)
        {
          // Splitsen in element dat aangevinkt moet zijn en code die dan gecheckt moet worden.
          tussenhaakjes = texttocheck.substr(texttocheck.indexOf("(")+1, (texttocheck.lastIndexOf(")")-texttocheck.indexOf("(")-1));
          moetgevinktzijn = tussenhaakjes.substr(0, tussenhaakjes.indexOf(","));
          if(form.elements[moetgevinktzijn].checked)
            texttocheck = tussenhaakjes.substr(tussenhaakjes.indexOf(",")+1, tussenhaakjes.length);
        }
        
        tocheck = texttocheck.split("-");
        for(a=0;a<tocheck.length;a++)
        {
          errel = 0;
          if((tocheck[a].indexOf("gelijkaan"))>-1)
          {
            gelijkaan = tocheck[a].substr(tocheck[a].indexOf("(")+1, (tocheck[a].indexOf(")")-tocheck[a].indexOf("(")-1));
            if(form.elements[gelijkaan] && form.elements[gelijkaan].value != form.elements[i].value)
            {            
               error += form.elements[i].name + " is niet het zelfde als " + gelijkaan + "\n";
               errel = 1;
            } 
          }else {
            erreltxt = doChecks(form.elements[i], tocheck[a]);
            if(erreltxt!="")
              errel = 1;
            error += erreltxt;
          }
          if(errel==1)
          {
            form.elements[i].setAttribute("oldClassName", form.elements[i].className);
            form.elements[i].className = errorclass;
          }
        }
      }
    }
    // afhandeling...
    if (error!="")
    { 
      alert(error);
      return false;
    }  	
    else if(dosubmit=="1")
    {
      form.submit();
    }
    else
      return true;
  }
  
  return false;
}

function doChecks(element, txt)
{
  error = "";
  switch(txt)
  {
    case "gevuld" :
      if(element.value=="")
         error += element.name + " is niet gevuld.\n";
      break;
    case "email" :
      if(element.value.indexOf("@")==-1)
         error += element.name + " is geen geldig emailadres.\n";
      break;
    case "datum" :
      dat = new Date("" + element.value);
      if(dat=="NaN")
        error += element.name + " bevat geen geldig datum.\n";
      break;
    case "nummer" :
      if(("" + Math.round(element.value))=="NaN")
        error += element.name + " is geen nummer.\n";
      break;
    case "aangevinkt" :
      if(!element.checked)
         error += element.name + " is niet aangevinkt.\n";
      break;
    case "ip" :
      els = element.value.split(".");
      good = false;
      if(els.length==4)
      {
        good = true;
        for(var a=0;a<4&&good;a++)
          if(Math.round(els[a])>255 || Math.round(els[a])<0)
            good = false;
      }
      if(!good)
        error += element.name + " is geen geldig ipadres.\n";

      break;
  }
  return error;
}