var IE = false;
var indlaest = false;
var NS = false;

if (document.all && document.getElementById) {
  IE = true;
  if ((navigator.userAgent).indexOf("Opera") != -1) {
    IE = false;
  }
}

if (navigator.product == "Gecko") {
  NS = true;
}

function start() {
  indlaest = true;
  if (document.forms[0].elements.kmKod[0].checked) {
    km_beregning_uden();
  }
  else {
    km_beregning_med();
  }
  check_knappen_vis_rute();
  if (window != top) {
    top.location.href = location.href;
  }  
}

function check_formular() {
  var input_navn = null;
  if (document.forms[0].elements.antDage.value == "") {
    input_navn = document.forms[0].elements.antDage.name;
  }
  else if (document.forms[0].elements.kmKod[0].checked) {
    if (document.forms[0].elements.antKm.value == "") {
       input_navn = document.forms[0].elements.antKm.name;
     }
  }
  else if (document.forms[0].elements.kmKod[1].checked) {
    if (document.forms[0].elements.fraVejNavn.value == "") {
      input_navn = document.forms[0].elements.fraVejNavn.name;
    }
    else if (document.forms[0].elements.fraHusnrBogstav.value == "") {
      input_navn = document.forms[0].elements.fraHusnrBogstav.name;
    }
    else if (document.forms[0].elements.fraPostNr.value == "") {
      input_navn = document.forms[0].elements.fraPostNr.name;
    }
    else if (document.forms[0].elements.tilVejNavn.value == "") {
      input_navn = document.forms[0].elements.tilVejNavn.name;
    }
    else if (document.forms[0].elements.tilHusnrBogstav.value == "") {
      input_navn = document.forms[0].elements.tilHusnrBogstav.name;
    }
    else if (document.forms[0].elements.tilPostNr.value == "") {
      input_navn = document.forms[0].elements.tilPostNr.name;
    }
  }
  return input_navn;
}

function check_genvejs_menu() {
  var elTag = window.event.srcElement.tagName;
  if (elTag.toLowerCase() != 'input' && elTag.toLowerCase() != 'body' && elTag.toLowerCase() != 'td') {
    return false;
  }
}

function check_knappen_vis_rute() { // P.g.a. navigering via historikspor
  if (document.forms[0] !=null && document.forms[0].elements.afstand_ialt !=null) {
    if (document.forms[0].elements.afstand_ialt.value == "" || document.forms[0].elements.afstand_ialt.value == "0 km") {
      document.forms[0].elements.vis_rute.disabled = true;
    }
  }
}

function check_meddelelse_print() {  // P.g.a. fejl i IE under Windows XP
   var el = document.getElementById('meddelelse');
   if (el !=null) {
     el.className = "meddelelse";
   }
}

function check_meddelelse_skaerm() {  // P.g.a. fejl i IE under Windows XP
   var el = document.getElementById('meddelelse');
   if (el !=null) {
     el.className = "meddelelse_print_IE";
   }
}

function check_send_side() {
  if (!indlaest) {
    meddelelse_om_indlaesning();
  }
  else {
    var input_navn = check_formular();
    if (input_navn != null) {
      meddelelse_om_manglende_udfyldelse(input_navn);
    }
    else {
      forlad_side();
    }
  }     
}

function fokus_iframe(id) {
  var el = document.getElementById(id).offsetParent;
  var el_hoejde = document.getElementById(id).height;
  var y_position = null;
  while (el != null) {
    y_position += el.offsetTop;
    el = el.offsetParent;
  } 
  var el_synlig = document.body.scrollTop + document.body.clientHeight - y_position;
  if (el_synlig < el_hoejde) {
    el_rul = el_hoejde - el_synlig;
    scrollBy(0,el_rul);
  }
}

function forlad_side() {
  obj = document.getElementsByTagName('input');
  for (i = 0; i < obj.length; i++) {
    if (obj[i].type == 'button') {
      obj[i].disabled = true;
    }
  }
    document.forms[0].submit();
}

function km_beregning_uden() {
  document.forms[0].elements.antKm.readOnly = false;
  document.forms[0].elements.antKm.tabIndex = 0;
  document.forms[0].elements.antKm.className = "kraevethoejre";
  document.forms[0].elements.fraVejNavn.readOnly = true;
  document.forms[0].elements.fraVejNavn.tabIndex = -1;
  document.forms[0].elements.fraVejNavn.className = "deaktiveret";
  document.forms[0].elements.fraHusnrBogstav.readOnly = true;
  document.forms[0].elements.fraHusnrBogstav.tabIndex = -1;
  document.forms[0].elements.fraHusnrBogstav.className = "deaktiveret";
  document.forms[0].elements.fraPostNr.readOnly = true;
  document.forms[0].elements.fraPostNr.tabIndex = -1;
  document.forms[0].elements.fraPostNr.className = "deaktiveret";
  document.forms[0].elements.soegFraVejnavn.disabled = true;
  document.forms[0].elements.tilVejNavn.readOnly = true;
  document.forms[0].elements.tilVejNavn.tabIndex = -1;
  document.forms[0].elements.tilVejNavn.className = "deaktiveret";
  document.forms[0].elements.tilHusnrBogstav.readOnly = true;
  document.forms[0].elements.tilHusnrBogstav.tabIndex = -1;
  document.forms[0].elements.tilHusnrBogstav.className = "deaktiveret";
  document.forms[0].elements.tilPostNr.readOnly = true;
  document.forms[0].elements.tilPostNr.tabIndex = -1;
  document.forms[0].elements.tilPostNr.className = "deaktiveret";
  document.forms[0].elements.soegTilVejnavn.disabled = true;
  obj = document.getElementsByTagName('iframe');
  for (i = 0; i < obj.length; i++) {
      obj[i].style.display = "none";
  }
}

function km_beregning_med() {
  document.forms[0].elements.antKm.readOnly = true;
  document.forms[0].elements.antKm.tabIndex = -1;
  document.forms[0].elements.antKm.className = "deaktiverethoejre";
  document.forms[0].elements.fraVejNavn.readOnly = false;
  document.forms[0].elements.fraVejNavn.tabIndex = 0;
  document.forms[0].elements.fraVejNavn.className = "kraevet";
  document.forms[0].elements.fraHusnrBogstav.readOnly = false;
  document.forms[0].elements.fraHusnrBogstav.tabIndex = 0;
  document.forms[0].elements.fraHusnrBogstav.className = "kraevet";
  document.forms[0].elements.fraPostNr.readOnly = false;
  document.forms[0].elements.fraPostNr.tabIndex = 0;
  document.forms[0].elements.fraPostNr.className = "kraevet";
  document.forms[0].elements.soegFraVejnavn.disabled = false;
  document.forms[0].elements.tilVejNavn.readOnly = false;
  document.forms[0].elements.tilVejNavn.tabIndex = 0;
  document.forms[0].elements.tilVejNavn.className = "kraevet";
  document.forms[0].elements.tilHusnrBogstav.readOnly = false;
  document.forms[0].elements.tilHusnrBogstav.tabIndex = 0;
  document.forms[0].elements.tilHusnrBogstav.className = "kraevet";
  document.forms[0].elements.tilPostNr.readOnly = false;
  document.forms[0].elements.tilPostNr.tabIndex = 0;
  document.forms[0].elements.tilPostNr.className = "kraevet";
  document.forms[0].elements.soegTilVejnavn.disabled = false;
}

function meddelelse_om_indlaesning() {
  alert("Siden indlæses... Vent et øjeblik.");
  return;
}

function meddelelse_om_manglende_udfyldelse(input_navn) {
  alert("Du har ikke udfyldt alle felter på siden.");
  document.forms[0].elements[input_navn].focus();
}

function naviger_til_fejl(name,type) {
  
  if (!indlaest) {
    meddelelse_om_indlaesning();
  }
  else if (type == 'i') { 
    document.forms[0].elements[name].focus();
    document.forms[0].elements[name].style.borderColor = "red";
  }
  else {
    var divname = name + 'Div';
    document.forms[0].elements[name][0].focus();
    document.getElementById(divname).style.borderColor = "red";
  }
}

function nulstil_formular() {
  document.forms[0].elements.antDage.value = "";
  document.forms[0].elements.antDage.style.borderColor = "";
  document.forms[0].elements.antKm.value = "";
  document.forms[0].elements.antKm.style.borderColor = "";
  document.forms[0].elements.udkntBerKod.value = "";
  document.forms[0].elements.kmKod[0].click();
  document.forms[0].elements.faergeBlb.value = "";
  document.forms[0].elements.faergeBlb.style.borderColor = "";
  document.forms[0].elements.broBlb.value = "";
  document.forms[0].elements.broBlb.style.borderColor = "";
  document.forms[0].elements.befordringBlb.value = "";
  document.forms[0].elements.sumBlb.value = "";
  document.getElementById('resultat').style.display = "none";
  document.forms[0].elements.fraVejNavn.value = "";
  document.forms[0].elements.fraVejNavn.style.borderColor = "";
  document.forms[0].elements.fraHusnrBogstav.value = "";
  document.forms[0].elements.fraHusnrBogstav.style.borderColor = "";
  document.forms[0].elements.fraPostNr.value = "";
  document.forms[0].elements.fraPostNr.style.borderColor = "";
  document.forms[0].elements.tilVejNavn.value = "";
  document.forms[0].elements.tilVejNavn.style.borderColor = "";
  document.forms[0].elements.tilHusnrBogstav.value = "";
  document.forms[0].elements.tilHusnrBogstav.style.borderColor = "";
  document.forms[0].elements.tilPostNr.value = "";
  document.forms[0].elements.tilPostNr.style.borderColor = "";
  obj = document.getElementsByTagName('iframe');
  for (i = 0; i < obj.length; i++) {
      obj[i].style.display = "none";
  }
  document.getElementById('afstande').style.display = "none";
  document.getElementById('rute').style.display = "none";
  document.forms[0].elements.antDage.focus();
}

function opdater_vejnavn(felt,input) {
  document.forms[0].elements[felt].value = input;
}

function soeg_vejnavn(felt1,felt2,felt3,id,file) {
  if (!indlaest) {
    meddelelse_om_indlaesning();
  }
  else {
    var meddelelse = "Du mangler at indtaste:\n";
    if (document.forms[0].elements[felt1].value == "" || document.forms[0].elements[felt1].value.length < 3) {
      meddelelse += "\n- \"Vejnavn\" med mindst 3 af de første bogstaver.";
    }       
    if (document.forms[0].elements[felt2].value == "") {
      meddelelse += "\n- \"Husnr./bogstav.\"";
    }
    if (document.forms[0].elements[felt3].value == "") {
      meddelelse += "\n- \"Postnr.\"";
    }
    if (meddelelse != "Du mangler at indtaste:\n") {
      meddelelse += "\n\nSe evt. hjælp til felt.";
      alert(meddelelse);
      if (document.forms[0].elements[felt1].value == "" || document.forms[0].elements[felt1].value.length < 3) {
        document.forms[0].elements[felt1].focus();
      }       
      else if (document.forms[0].elements[felt2].value == "") {
        document.forms[0].elements[felt2].focus();
      }
      else {
        document.forms[0].elements[felt3].focus();
      }
    }
    else {
      vis_element(id);
      document.soegVejnavn.target = id;
      document.soegVejnavn.action = file;
      document.soegVejnavn.vejNavn.value = document.forms[0].elements[felt1].value;
      document.soegVejnavn.husnrBogstav.value = document.forms[0].elements[felt2].value;
      document.soegVejnavn.postNr.value = document.forms[0].elements[felt3].value;
      document.soegVejnavn.vejNavnFelt.value = felt1;
      document.soegVejnavn.submit();
      fokus_iframe(id);
    }
  }
}

function vis_element(id) {
  if (!document.getElementById) {
    return;
  }
  else if (!indlaest) {
    meddelelse_om_indlaesning();
  }
  else {
    var el = document.getElementById(id);
    el.style.display = "";
  }
}

function vis_div_rute() {
  if (document.forms[0].elements.vis_rute.value == "Se rute") {
    el_rul = document.body.scrollTop + 200;
    vis_element('rute');
    if (indlaest) {
      document.forms[0].elements.vis_rute.style.textAlign = "center";
      document.forms[0].elements.vis_rute.value = "Skjul rute";
      document.forms[0].elements.vis_rute.title = "Skjuler rute";
      self.scroll(0,el_rul); 
    }
  }    
  else {
    document.forms[0].elements.vis_rute.value = "Se rute";
    document.forms[0].elements.vis_rute.title = "Viser rute";
    document.getElementById('rute').style.display = "none";
  }
}

if (IE == true) {
  document.oncontextmenu = check_genvejs_menu;
  window.onbeforeprint = check_meddelelse_skaerm;
  window.onafterprint = check_meddelelse_print;
}

window.onload = start;
