/**
 * Controleert of het invoerveld een geldige datum bevat. Indien dit niet het geval is
 * zal het element gevuld worden met de huidige systeemdatum. geldige datumformaten zijn:
 * <ul>
 * <li>DD-MM-JJ
 * <li>DD-MM-JJJJ
 * <li>DDMMJJ
 * <li>DDMMJJJJ
 * </ul>
 * De datum wordt na controle altijd genoteerd in het formaat DD-MM-JJJJ.
 * @param element Element het element dat gecontroleerd moet worden.
 * @return boolean true indien het element goed is ingevuld, anders false.
 */
function controleerDatum( element )
{
  if( element.value.length == 0 )
  {
    return true;
  }

  var fout = false;
  var datum;
  var dag=-1;
  var maand=-1;
  var jaar=-1;
  var vandaag=new Date();
  var hjaar=parseInt((""+vandaag.getFullYear()).slice(2));
  var hjaar_full=vandaag.getFullYear();
  var testje2;
  var strDatum

  strDatum = element.value;

  testje2 = strDatum.match(/^(\d?\d)\D(\d?\d)\D(\d?\d(\d\d)?)$/); 
  if (testje2 == null)
    testje2 = strDatum.match(/^(\d\d)(\d\d)(\d\d(\d\d)?)$/); 

  if (testje2 != null) 
  {
    dag = parseInt(testje2[1],10);
    maand = parseInt(testje2[2],10);
    jaar = parseInt(testje2[3],10);
    if (jaar<100)
    {
     // als het 2 cijferig jaar groter is dan het huidig 2 cijferig jaar + 40 wordt het 19jj
     // anders 20jj
     jaar+= (jaar>(hjaar+40)) ? 1900 : 2000;
    }
    datum=new Date(jaar,maand-1,dag);
    if ((datum.getDate()!=dag) || (datum.getMonth()!=(maand-1)) || (datum.getFullYear()!=jaar))
    {
      alert("De datum: " + dag + "-" + maand + "-" + jaar + " is geen geldige datum");
      fout=true;
    }
    
    if((jaar < 1753) || (jaar > (hjaar_full+1000)))
    {
     alert ("De datum valt buiten het geldige bereik.\nHet jaar moet tussen 1753 en "+(hjaar_full+1000)+" liggen.");
     datum = vandaag;
     element.value=datum.getDate()+"-"+(datum.getMonth()+1)+"-"+datum.getFullYear();
     fout = true; 
     return false;   
    }
  } 
  else 
  {
    alert("Het datumformaat wordt niet herkend.\nGeldige syntax:\nDD-MM-JJ, DD-MM-JJJJ, DDMMJJ of DDMMJJJJ");
    fout=true;
  }
  
  if (fout) datum = vandaag;
  
  element.value=datum.getDate()+"-"+(datum.getMonth()+1)+"-"+datum.getFullYear(); 
  
  return !fout;
}

function controleerTijd(element) {
  if( element.value.length == 0 ) {
    return true;
  }
  var fout = false;
  var strTijd = element.value;
  var uren;
  var minuten;


  var test = strTijd.match(/^(\d?\d)\D(\d?\d)$/); 
  if (test == null) {
    alert("Het tijdformaat wordt niet herkend.\nGeldige syntax: UU:MM");
    fout=true;
  } else {
    uren = parseInt(test[1],10);
    minuten = parseInt(test[2],10);
    if (uren<0 || uren>23 || minuten<0 || minuten > 59) {
      alert("De tijd: " + uren + ":" + minuten + " is geen geldige tijd");
      fout = true;
    }
  }
  
  if (fout) element.value= "";
  else {
    element.value = uren + ":" + ((minuten<10) ? "0" + minuten : minuten);
  }
  return !fout;
}
