// functies:
// function clearDatum(datumVeld)
// function checkDatum(datumVeld,datumVerplicht)
// function checkDatum3(datumVeld,datumVerplicht,actie) {
//
// datumVerplicht: true of false
// actie: mcpAction
//
// invoer -> uitvoer
// 01-01-2004 -> 1-1-2004 : verwijdert nullen en te veel spaties
// 1-1-04 -> 1-1-2004 : telt 2000 op bij jaar kleiner dan 50
// 1-1-4 -> 1-1-2004 : telt 2000 op bij jaar kleiner dan 50
// 1-1-80 -> 1-1-1980 : telt 1900 op bij jaar groter dan 50
// 1/1/03 -> 1-1-2003 : vervang / door -
// 24/03/06 9 : geeft een melding dat de spatie verwijdert moet worden

function clearDatum(datumVeld) {
  if (datumVeld.value == "dd-mm-yyyy") {
    datumVeld.value = ""
  }
  // speciale fix voor als een datumtijd wordt doorgegeven ipv alleen een datum
  // werkt alleen bij internet explorer
  // "24/03/06 9:16:51" -> 24/03/06
  if ((datumVeld.value.length > 10) && (datumVeld.value.indexOf(":") != -1)) {
    datumVeld.value = datumVeld.value.substring(0,8);
  }
  return true
} 


function checkDatum(datumVeld,datumVerplicht) {
  var datumDescr = datumVeld.value
  var datumSplit = new Array()
  var strdError = "Gelieve datum in " + datumVeld.name + " in te voeren in het formaat: dd-mm-yyyy"
  var maandDagen = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
  var validChars = new Array("1","2","3","4","5","6","7","8","9","0","-","/"," ")
  var c, d, letter, badChar

  // speciale fix voor als een datumtijd wordt doorgegeven ipv alleen een datum
  // "24/03/06 9:16:51" -> 24/03/06
  // werkt alleen bij internet explorer
  if ((datumDescr.length > 10) && (datumDescr.indexOf(":") != -1)) {
    datumDescr = datumDescr.substring(0,8);
  }
  // speciale fix voor internet explorer dat getallen accepteert groter dan volgens het vakje mag
  if (datumDescr.length > 10) {
    datumDescr = datumDescr.substring(0,10);
  }

  if (datumDescr.toLowerCase() == "today") {
  	var today = new Date()
    datumVeld.value = today.getDate()+'-'+(today.getMonth()+1)+'-'+today.getFullYear()
    return true
  }

  if ((datumDescr == "") && (datumVerplicht)) {
    datumVeld.value = "dd-mm-yyyy"
    alert(strdError)
    return false
  } 
  if ((datumDescr == "") && (!(datumVerplicht))) {
    return true
  } 
  if ((datumDescr == "dd-mm-yyyy") && (!(datumVerplicht))) {
    datumVeld.value = ""
    return true
  } 
  // kortste datum is 1-1-1 en deze bevat 5 tekens
  if (datumDescr.length < 5) {
    alert(strdError)
    return false
  } 
  if (datumDescr.indexOf("-") != -1) {
    datumSplit = datumDescr.split("-")
    if (datumSplit.length != 3) {
      alert(strdError)
      return false
    }
  }
  else if (datumDescr.indexOf("/") != -1) {
    datumSplit = datumDescr.split("/")
    if (datumSplit.length != 3) {
      alert(strdError)
      return false
    }
  }
  else {
    alert(strdError)
    return false
  }

  // niet toegestaan zijn: 1-1-20a7 en 1.5-1-1
  for (d = 0; d < datumDescr.length; d++) {
    badChar = true;
    letter = datumDescr.charAt(d)
    for (c = 0; c < validChars.length; c++) {       
      if (letter == validChars[c]) {
        badChar = false;
        break;
      }
    }
    if (badChar) {
      alert("Datum: ongeldig teken: " + letter)
      return false
    }
  }
  // verwijder spaties en te veel nullen door naar getal te converteren
  datumSplit[0] = datumSplit[0] - 0;  
  datumSplit[1] = datumSplit[1] - 0;
  datumSplit[2] = datumSplit[2] - 0;
  if (isNaN(datumSplit[0]) || isNaN(datumSplit[1]) || isNaN(datumSplit[2])) {
    alert("Datum: verwijder de spatie in het getal.")
    return false
  }
  // controleer jaar
  if ((datumSplit[2] >= 0) && (datumSplit[2] <= 50)) {
    datumSplit[2] = datumSplit[2] + 2000;
  }
  else if ((datumSplit[2] > 50) && (datumSplit[2] < 100)) {
    datumSplit[2] = datumSplit[2] + 1900;
  }
  else if ((datumSplit[2] < 1850) || (datumSplit[2] > 2050)) {
    alert("Datum: " + datumSplit[2] + " is een ongeldige waarde voor jaar")
    return false
  }
  // controleer maand
  if ((datumSplit[1] < 1) || (datumSplit[1] > 12)) {
    alert("Datum: " + datumSplit[1] + " is een ongeldige waarde voor maand")
    return false
  }
  // controleer dag
  if ((datumSplit[0] < 1) || (datumSplit[0] > maandDagen[datumSplit[1]-1])) {
    alert("Datum: " + datumSplit[0] + " is een ongeldige waarde voor dag")
    return false
  }
  else if ((datumSplit[0] == 29) && (datumSplit[1] == 2)) {
    if (!(((datumSplit[2] % 4 == 0) && (!(datumSplit[2] % 100 == 0))) || (datumSplit[2] % 400 == 0))) {
      alert("Datum: " + datumSplit[0] + " is een ongeldige waarde voor dag (schrikkeljaar)")
      return false
    }
  }
  datumVeld.value = datumSplit[0] + "-" + datumSplit[1] + "-" + datumSplit[2]
  return true
}

function checkDatum3(datumVeld,datumVerplicht,actie) {
  if ((actie.value == "Entry") || (actie.value == "Update") || (actie.value == "Insert")) {
    return checkDatum(datumVeld, datumVerplicht)
  } else {
  return true
  }
}