var slutaar = 2009;
var NS = false;

if (navigator.product == "Gecko") {
  NS = true;
}

function valider_dtoaar(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var dtoaar = formater_input_vaerdi(input_vaerdi);
  var dtoaar = formater_dtoaar(dtoaar);
  var fejl_kod = fejl_dtoaar(dtoaar);
  if (fejl_kod == 1) {
    fejlmeddelelse_dto(felt,input_navn);
  }
  else if (fejl_kod == 2 || fejl_kod == 4 || fejl_kod == 5 || fejl_kod == 3 || fejl_kod == 6) {
    alert(felt + " er ikke udfyldt korrekt.");
    fokus_felt(input_navn);
  }
  
  else {
    document.forms[0].elements[input_navn].value = dtoaar;
  }
}

function fejl_dtoaar(dtoaar) {
  var input_maske = /(^\d{2}\.\d{2}\.\d{4}$)/;
  var fejl_kod = "";
  if (window.RegExp && dtoaar.length > 0) {
    if (!input_maske.test(dtoaar)) {
      fejl_kod = 1;
    }
    if (fejl_kod == "") {
      var dag = dtoaar.substring(0,2);
      var maaned = dtoaar.substring(3,5);
      var aar = dtoaar.substring(6,10);
      if (dag < 1 || dag > 31) {
        fejl_kod = 2;
      }
      else if (maaned < 1 || maaned > 12) {
        fejl_kod = 3;
      }
      else if ((maaned == 4 || maaned == 6 || maaned == 9 || maaned == 11) && dag == 31) {
        fejl_kod = 4;
      }
      else if (maaned == 2) {
        var skudaar = (aar % 4 == 0 && (aar % 100 != 0 || aar % 400 == 0));
        if (dag > 29 || (dag == 29 && !skudaar)) {
          fejl_kod = 5;
        }
      }
      else if (aar == 0000 || aar > slutaar) {
        fejl_kod = 6;
      }
    }
  }
  return fejl_kod;
}

function formater_input_vaerdi(vaerdi) {
  var retur_vaerdi = vaerdi;
  while(retur_vaerdi.charAt(0) == " ") { // Fjerner foranstaaende blanke
    retur_vaerdi = retur_vaerdi.substring(1,retur_vaerdi.length);
  }
  while(retur_vaerdi.charAt(retur_vaerdi.length-1) == " ") { // Fjerner efterstaaende blanke
    retur_vaerdi = retur_vaerdi.substring(0,retur_vaerdi.length-1);
  }
  return retur_vaerdi;
}

function formater_dtoaar(dtoaar) {
  var input_maske_1 = /(^\d{1,8}$)/;
  var input_maske_2 = /(^\d{2}\ \d{2}\ \d{4}$)|(^\d{2}\.\d{2}\.\d{4}$)|(^\d{2}\-\d{2}\-\d{4}$)|(^\d{2}\/\d{2}\/\d{4}$)|(^\d{2}\/\d{2}\-\d{4}$)/;
  if (window.RegExp && dtoaar.length > 0) {
    if (input_maske_1.test(dtoaar)) {
      dtoaar = dtoaar.substring(0,2) + "." + dtoaar.substring(2,4) + "." + dtoaar.substring(4,8);
    }
    else if (input_maske_2.test(dtoaar)) {
      dtoaar = dtoaar.substring(0,2) + "." + dtoaar.substring(3,5) + "." + dtoaar.substring(6,10);
    }
  }
  return dtoaar;
}

function fejlmeddelelse_dto(felt,input_navn) {
  alert(felt + " er ikke udfyldt korrekt.\n\n"+
        "Eksempel på korrekt udfyldt felt:\n\n"+
        "31.01.1960 (dag, måned og år).");
  fokus_felt(input_navn);
}

function fokus_felt(input_navn) {
  if (NS == true) {  // P.g.a. fejl i NS
    felt = input_navn;
    fokus = setTimeout("document.forms[0].elements[felt].focus();",1);
    document.forms[0].elements[input_navn].select();
  }
  else {
    document.forms[0].elements[input_navn].focus();
    document.forms[0].elements[input_navn].select();
  }
}

function valider_ant(rubrik,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var ant = formater_input_vaerdi(input_vaerdi);
  var fejlkod = fejl_ant(ant);
  if (fejlkod != "") {
    fejlmeddelelse(rubrik,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = ant;
  }
}

function fejl_ant(ant) {
  var input_maske = /(^\d{1,}$)/;
  var fejlkod = "";
  if (window.RegExp && ant.length > 0) {
    if (!input_maske.test(ant)) {
      fejlkod = 1;
    }
  }
  return fejlkod;
}

function valider_blb(rubrik,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var blb = formater_input_vaerdi(input_vaerdi);
  var fejlkod = fejl_blb(blb);
  if (fejlkod != "") {
    fejlmeddelelse(rubrik,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = blb;
  }
}

function fejl_blb(blb) {
  var input_maske = /(^[-]?\d{1,}$)|(^[-]?\d{1,3}\.\d{3}$)|(^[-]?\d{1,3}\.\d{3}\.\d{3}$)/;
  var fejlkod = "";
  if (window.RegExp && blb.length > 0) {
    if (!input_maske.test(blb)) {
      fejlkod = 1;
    }
  }
  return fejlkod;
}

function valider_dg(rubrik,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var dg = formater_input_vaerdi(input_vaerdi);
  var fejlkod = fejl_dg(dg);
  if (fejlkod != "") {
    fejlmeddelelse(rubrik,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = dg;
  }
}

function fejl_dg(dg) {
  var input_maske = /(^\d{1,}$)/;
  var fejlkod = "";
  if (window.RegExp && dg.length > 0) {
    if (!input_maske.test(dg)) {
      fejlkod = 1;
    }
  }
  return fejlkod;
}

function valider_dto(rubrik,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var dto = formater_input_vaerdi(input_vaerdi);
  var fejlkod = fejl_dto(dto);
  if (fejlkod != "") {
    fejlmeddelelse(rubrik,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = dto;
  }
}

function fejl_dto(dto) {
  var input_maske = /(^\d{4}$)/;
  var fejlkod = "";
  if (window.RegExp && dto.length > 0) {
    if (!input_maske.test(dto)) {
      fejlkod = 1;
    }
    if (fejlkod == "") {
      var dag = dto.substring(0,2);
      var maaned = dto.substring(4,2);
      if (dag < 1 || dag > 31) {
        fejlkod = 2;
      }
      else if (maaned < 1 || maaned > 12) {
        fejlkod = 3;
      }
      else if ((maaned == 4 || maaned == 6 || maaned == 9 || maaned == 11) && dag == 31) {
        fejlkod = 4;
      }
      else if (maaned == 2) {
        var skudaar = (slut_aar % 4 == 0 && (slut_aar % 100 != 0 || slut_aar % 400 == 0));
        if (dag > 29 || (dag == 29 && !skudaar)) {
          fejlkod = 5;
        }
      }
    }
  }
  return fejlkod;
}

function valider_pct(rubrik,input) {
  var input_navn = input.name; 
  var input_vaerdi = input.value;
  var pct = formater_input_vaerdi(input_vaerdi);
  var fejlkod = fejl_pct(pct);
  if (fejlkod != "") {
    fejlmeddelelse(rubrik,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = pct;
  }
}

function fejl_pct(pct) {
  var input_maske = /(^\d{1,}$)|(^\d{1,}\,\d{1}$)|(^\d{1,}\,\d{2}$)/;
  var fejlkod = "";
  if (window.RegExp && pct.length > 0) {
    if (!input_maske.test(pct)) {
      fejlkod = 1;
    }
  }
  return fejlkod;
}

function formater_input_vaerdi(vaerdi) {
  var retur_vaerdi = vaerdi;
  while(retur_vaerdi.charAt(0) == " ") {				// Fjerner foranstaaende blanke
    retur_vaerdi = retur_vaerdi.substring(1,retur_vaerdi.length);
  }
  while(retur_vaerdi.charAt(retur_vaerdi.length-1) == " ") {	// Fjerner efterstaaende blanke
    retur_vaerdi = retur_vaerdi.substring(0,retur_vaerdi.length-1);
  }
  return retur_vaerdi;
}

function fjern_special_tegn(vaerdi,special_tegn) {
  var objRegExp = new RegExp(special_tegn,'gi');
  return vaerdi.replace(objRegExp,'');
}

function fejlmeddelelse(rubrik,inputnavn) {
  var x;
  if (isNaN(rubrik)) {
    x = rubrik.substring(0,2);
  }
  else {
    x = rubrik;
  }  
  if ( x > 0) {
    alert("Rubrik " + rubrik + " er ikke tastet korrekt.");
    fokus_rubrik(inputnavn);
  }
  else {
    alert(rubrik + " er ikke tastet korrekt.");
    fokus_rubrik(inputnavn);
  }
}

function fokus_rubrik(inputnavn) {
  document.forms[0].elements[inputnavn].focus();
  document.forms[0].elements[inputnavn].select();
}