function valider_blb(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var blb = formater_input_vaerdi(input_vaerdi);
  var fejl_kod = fejl_blb(blb);
  if (fejl_kod != "") {
    fejlmeddelelse(felt,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 fejl_kod = "";
  if (window.RegExp && blb.length > 0) {
    if (!input_maske.test(blb)) {
      fejl_kod = 1;
    }
  }
  return fejl_kod;
}

function valider_dg(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var dg = formater_input_vaerdi(input_vaerdi);
  var fejl_kod = fejl_dg(dg);
  if (fejl_kod != "") {
    fejlmeddelelse(felt,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = dg;
  }
}

function fejl_dg(dg) {
  var input_maske = /(^\d{1,}$)/;
  var fejl_kod = "";
  if (window.RegExp && dg.length > 0) {
    if (!input_maske.test(dg)) {
      fejl_kod = 1;
    }
  }
  return fejl_kod;
}

function valider_husnr(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var husnr = formater_input_vaerdi(input_vaerdi);
  var husnr = husnr.toUpperCase();
  var fejl_kod = fejl_husnr(husnr);
  if (fejl_kod != "") {
    fejlmeddelelse(felt,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = husnr;
  }
}

function fejl_husnr(husnr) {
  var input_maske = /(^\d{1,3}$)|(^\d{1,3}\s*[a-zA-ZæøåÆØÅ]$)/;
  var fejl_kod = "";
  if (window.RegExp && husnr.length > 0) {
    if (!input_maske.test(husnr)) {
      fejl_kod = 1;
    }
  }
  return fejl_kod;
}

function valider_km(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var km = formater_input_vaerdi(input_vaerdi);
  var fejl_kod = fejl_km(km);
  if (fejl_kod != "") {
    fejlmeddelelse(felt,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = km;
  }
}

function fejl_km(km) {
  var input_maske = /(^\d{1,}$)|(^\d{1,3}\.\d{3}$)/;
  var fejl_kod = "";
  if (window.RegExp && km.length > 0) {
    if (!input_maske.test(km)) {
      fejl_kod = 1;
    }
  }
  return fejl_kod;
}

function valider_postnr(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var postnr = formater_input_vaerdi(input_vaerdi);
  var fejl_kod = fejl_postnr(postnr);
  if (fejl_kod != "") {
    fejlmeddelelse(felt,input_navn);
  }
  else {
    document.forms[0].elements[input_navn].value = postnr;
  }
}

function fejl_postnr(postnr) {
  var input_maske = /(^\d{4}$)/;
  var fejl_kod = "";
  if (window.RegExp && postnr.length > 0) {
    if (!input_maske.test(postnr)) {
      fejl_kod = 1;
    }
  }
  return fejl_kod;
}

function valider_vej(felt,input) {
  var input_navn = input.name;
  var input_vaerdi = input.value;
  var vej = fjern_special_tegn(input_vaerdi,'"');
  var vej = formater_foerste_tegn(vej);
  var foerste_tegn = vej.charAt(0).toUpperCase();
  var rest_tegn = vej.substring(1);
  var vej = foerste_tegn + rest_tegn;
  document.forms[0].elements[input_navn].value = vej;
  if (vej.length > 3) {
    var vej = formater_vej(vej);
    document.forms[0].elements[input_navn].value = vej;
    var fejl_kod = fejl_vej(vej);
    if (fejl_kod != "") {  
      alert("\"Vejnavn\" indeholder mere end 20 tegn.\n\n"+
            "Hvis der er problemer med at indtaste vejnavn, kan der foretages vejsøgning.\n\n"+
            "Sådan foretages vejsøgning:\n\n"+
            "1. Udfyld feltet \"Vejnavn\" med mindst 3 af de første bogstaver.\n"+
            "2. Udfyld feltet \"Husnr./bogstav\".\n"+
            "3. Udfyld feltet \"Postnr.\".\n"+
            "4. Klik på knappen \"Søg vejnavn\".")
      fokus_felt(input_navn);
    }
  }
}

function fejl_vej(vej) {
  var fejl_kod = "";
  var pos = vej.indexOf("(");
  if (pos == -1) {
    if (vej.length > 20) {
      fejl_kod = 1;
    }
  }
  else if (pos > 19) {
    var tegn = vej.substring(20,21);
    if ((tegn != " ") && (tegn != "(")) {
      fejl_kod = 2;
    }
  }
  return fejl_kod;
}

function formater_foerste_tegn(vaerdi) {
  var retur_vaerdi = vaerdi;
  while(retur_vaerdi.charAt(0) == " ") { // Fjerner foranstaaende blanke
    retur_vaerdi = retur_vaerdi.substring(1,retur_vaerdi.length);
  }
  return retur_vaerdi;
}

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_vej(vej) {
  var tmp = "";
  var tmp_length = vej.length;
  var tmp_length_minus_1 = vej.length - 1;
  for (index = 0; index < tmp_length; index++) {
    if (vej.charAt(index) != " ") {
      tmp += vej.charAt(index);
    }
    else if (tmp.length > 0) {
      if (vej.charAt(index+1) != " " && index != tmp_length_minus_1) {
        tmp += vej.charAt(index);
      }
    }
  }
  vej = tmp;
  return vej;
}

function fjern_special_tegn(vaerdi,special_tegn) {
  var objRegExp = new RegExp(special_tegn,'gi');
  return vaerdi.replace(objRegExp,'');
}

function fejlmeddelelse(felt,input_navn) {
  alert("\"" + felt + "\" er ikke indtastet korrekt.\n\nSe evt. hjælp til feltet.");
  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();
  }
}
