 // Distance Calculator - JavaScript by Karsten Walter 2007
 
 function submit_page(form) {
  foundError = false;
   // First, check for blank fields
  // Make sure the Starting fields are not blank
  if(isFieldBlank(form.lat1) || isFieldBlank(form.long1)) {
      alert("Bitte geben Sie einen Startpunkt an!");
      foundError = true;
  }
  // Make sure the Ending Fields are not blank
  if(isFieldBlank(form.lat2) || isFieldBlank(form.long2)) {
      alert("Bitte geben Sie einen Zielpunkt an!");
      foundError = true;
  }
  if(foundError == false) {
   calculator(form);
   return;
  }
 }
 // Check for a blank field
 function isFieldBlank(theField) {
     if(theField.value == "")
         return true;
     else
         return false;
 }
 // Insert Latitude and Longitude Values
 function InVal(form, type) {
   var f=form;
   if(type == 1)
     var s=f.LatName;
   else
     var s=f.LongName;
   var i=s.options.selectedIndex;
   if(type == 1) {
     var v1 = f.lat1;
     var v2 = f.long1;
   }
   else {
     var v1 = f.lat2;
     var v2 = f.long2;
      }
   if(s.options[i].value == "Eingabe") {
    (v1.value = "");
    (v2.value = "");
   }
   if(s.options[i].value == "Alawwa") {
    (v1.value = "7.288 N");
    (v2.value = "80.254 E");
   }
   if(s.options[i].value == "Ambalangoda") {
    (v1.value = "6.2250 N");
    (v2.value = "80.0570 E");
   }
   if(s.options[i].value == "Ambepussa") {
    (v1.value = "7.250 N");
    (v2.value = "80.200 E");
   }
   if(s.options[i].value == "Ambilipitiya") {
    (v1.value = "6.344 N");
    (v2.value = "80.849 E");
   }
   if(s.options[i].value == "Ampara") {
    (v1.value = "7.283 N");
    (v2.value = "81.667 E");
   }
   if(s.options[i].value == "Anuradhapura") {
    (v1.value = "8.350 N");
    (v2.value = "80.383 E");
   }
   if(s.options[i].value == "Arugam") {
    (v1.value = "6.83440 N");
    (v2.value = "81.82617 E");
  }
   if(s.options[i].value == "Badulla (Uva)") {
    (v1.value = "6.983 N");
    (v2.value = "81.050 E");
  }
   if(s.options[i].value == "Bandaragama") {
    (v1.value = "6.717 N");
    (v2.value = "79.983 E");
   }
   if(s.options[i].value == "Banderawela") {
    (v1.value = "6.837 N");
    (v2.value = "80.986 E");
   }
   if(s.options[i].value == "Balana") {
    (v1.value = "7.267 N");
    (v2.value = "80.483 E");
   }
   if(s.options[i].value == "Batapola") {
    (v1.value = "6.217 N");
    (v2.value = "80.117 E");
   }
   if(s.options[i].value == "Batticaloa") {
    (v1.value = "7.717 N");
    (v2.value = "81.700 E");
   }
   if(s.options[i].value == "Bentota") {
    (v1.value = "6.417 N");
    (v2.value = "80.000 E");
   }
   if(s.options[i].value == "Beruwela") {
    (v1.value = "6.480 N");
    (v2.value = "79.988 E");
   }
   if(s.options[i].value == "Chavakachcheri") {
    (v1.value = "9.650 N");
    (v2.value = "80.150 E");
   }
   if(s.options[i].value == "Chilaw") {
    (v1.value = "7.576 N");
    (v2.value = "79.795 E");
   }
   if(s.options[i].value == "Colombo") {
    (v1.value = "6.932 N");
    (v2.value = "79.848 E");
   }
   if(s.options[i].value == "Dambulla") {
    (v1.value = "7.860 N");
    (v2.value = "80.651 E");
   }
   if(s.options[i].value == "Deraniyagala") {
    (v1.value = "6.933 N");
    (v2.value = "80.333 E");
   }
   if(s.options[i].value == "Dondra Head") {
    (v1.value = "5.91667 N");
    (v2.value = "80.58669 E");
   }
   if(s.options[i].value == "Ella") {
    (v1.value = "6.867 N");
    (v2.value = "81.050 E");
   }
   if(s.options[i].value == "Galaha") {
    (v1.value = "7.202 N");
    (v2.value = "80.665 E");
   }
   if(s.options[i].value == "Galle") {
    (v1.value = "6.054 N");
    (v2.value = "80.212 E");
   }
   if(s.options[i].value == "Gampaha (Western)") {
    (v1.value = "7.092 N");
    (v2.value = "79.996 E");
   }
   if(s.options[i].value == "Gampaha (Uva)") {
    (v1.value = "6.717 N");
    (v2.value = "81.033 E");
   }
   if(s.options[i].value == "Gampola (North Western)") {
    (v1.value = "8.050 N");
    (v2.value = "80.183 E");
   }
   if(s.options[i].value == "Gampola (Central)") {
    (v1.value = "7.165 N");
    (v2.value = "80.577 E");
   }
   if(s.options[i].value == "Habarana") {
    (v1.value = "8.033 N");
    (v2.value = "80.750 E");
   }
   if(s.options[i].value == "Hambantota") {
    (v1.value = "6.117 N");
    (v2.value = "81.117 E");
   }
   if(s.options[i].value == "Hikkaduwa") {
    (v1.value = "6.140 N");
    (v2.value = "80.104 E"); 
   }
   if(s.options[i].value == "Inginiyagala") {
    (v1.value = "7.217 N");
    (v2.value = "81.533 E");
   }
   if(s.options[i].value == "Jaffna") {
    (v1.value = "9.667 N");
    (v2.value = "80.000 E");
   }
   if(s.options[i].value == "Kalkudah") {
    (v1.value = "8.117 N");
    (v2.value = "79.717 E");
   }
   if(s.options[i].value == "Kalmunai") {
    (v1.value = "7.39481 N");
    (v2.value = "81.83716 E");
   }
   if(s.options[i].value == "Kalpitiya") {
    (v1.value = "8.233 N");
    (v2.value = "79.767 E");
   }
   if(s.options[i].value == "Kalutara") {
    (v1.value = "6.576 N");
    (v2.value = "79.966 E");
   }
   if(s.options[i].value == "Kandy") {
    (v1.value = "7.296 N");
    (v2.value = "80.637 E");
   }
   if(s.options[i].value == "Kattankudy") {
    (v1.value = "7.68479");
    (v2.value = "81.73073 E");
   }
   if(s.options[i].value == "Kataragama") {
    (v1.value = "6.417 N");
    (v2.value = "81.333 E");
   }
   if(s.options[i].value == "Kilinochchi") {
    (v1.value = "9.400 N");
    (v2.value = "80.400 E");
   }
   if(s.options[i].value == "Koggala") {
    (v1.value = "5.983 N");
    (v2.value = "80.333 E");
   }
   if(s.options[i].value == "Koslanda") {
    (v1.value = "6.733 N");
    (v2.value = "81.017 E");
   }
   if(s.options[i].value == "Kurunegala") {
    (v1.value = "7.486 N");
    (v2.value = "80.367 E");
   }
   if(s.options[i].value == "Mankulam") {
    (v1.value = "9.12930 N");
    (v2.value = "80.44657 E");
   }
   if(s.options[i].value == "Mannar") {
    (v1.value = "8.983 N");
    (v2.value = "79.900 E");
   }
   if(s.options[i].value == "Matale") {
    (v1.value = "7.469 N");
    (v2.value = "80.626 E");
   }
   if(s.options[i].value == "Matara") {
    (v1.value = "5.949 N");
    (v2.value = "80.543 E");
   }
   if(s.options[i].value == "Mihintale") {
    (v1.value = "8.350 N");
    (v2.value = "80.500 E");
   }
   if(s.options[i].value == "Mirissa") {
    (v1.value = "5.933 N");
    (v2.value = "80.450 E");
   }
   if(s.options[i].value == "Mt. Lavinia") {
    (v1.value = "6.835 N");
    (v2.value = "79.867 E");
   }
   if(s.options[i].value == "Mullaitivu") {
    (v1.value = "9.267 N");
    (v2.value = "80.817 E");
   }
   if(s.options[i].value == "Mutur") {
    (v1.value = "8.450 N");
    (v2.value = "81.267 E");
   }
   if(s.options[i].value == "Negombo") {
    (v1.value = "7.209 N");
    (v2.value = "79.836 E");
   }
   if(s.options[i].value == "Nilaveli") {
    (v1.value = "8.683 N");
    (v2.value = "81.200 E");
   }
   if(s.options[i].value == "Nuwara Eliya") {
    (v1.value = "6.970 N");
    (v2.value = "80.770 E");
   }
   if(s.options[i].value == "Point Pedro") {
    (v1.value = "9.817 N");
    (v2.value = "80.233 E");
   }
   if(s.options[i].value == "Polonnaruwa") {
    (v1.value = "7.933 N");
    (v2.value = "81.000 E");
   }
   if(s.options[i].value == "Pottuvil") {
    (v1.value = "6.867 N");
    (v2.value = "81.833 E");
   }
   if(s.options[i].value == "Pulmoddai") {
    (v1.value = "8.933 N");
    (v2.value = "80.983 E");
   }
   if(s.options[i].value == "Puttalam") {
    (v1.value = "8.033 N");
    (v2.value = "79.817 E");
   }
   if(s.options[i].value == "Ratnapura") {
    (v1.value = "6.683 N");
    (v2.value = "80.399 E");
   }
   if(s.options[i].value == "Sigiriya") {
    (v1.value = "7.950 N");
    (v2.value = "80.750 E");
   }
   if(s.options[i].value == "Talaimannar") {
    (v1.value = "9.100 N");
    (v2.value = "79.717 E");
   }
   if(s.options[i].value == "Tangalla") {
    (v1.value = "6.023 N");
    (v2.value = "80.789 E");
   }
   if(s.options[i].value == "Tissamaharama") {
    (v1.value = "6.283 N");
    (v2.value = "81.283 E");
   }
   if(s.options[i].value == "Trincomalee") {
    (v1.value = "8.567 N");
    (v2.value = "81.233 E");
   }
   if(s.options[i].value == "Udawalawe") {
    (v1.value = "6.450 N");
    (v2.value = "80.833 E");
   }
   if(s.options[i].value == "Unawatuna") {
    (v1.value = "6.017 N");
    (v2.value = "80.250 E");
   }
   if(s.options[i].value == "Valaichchenai") {
    (v1.value = "7.583 N");
    (v2.value = "81.750 E");
   }
   if(s.options[i].value == "Vavuniya") {
    (v1.value = "8.750 N");
    (v2.value = "80.500 E");
   }
   if(s.options[i].value == "Wellawaya") {
    (v1.value = "6.733 N");
    (v2.value = "81.100 E");
   }
   if(s.options[i].value == "Yala") {
    (v1.value = "6.367 N");
    (v2.value = "81.517 E");
   }
 }
function FormatNumber(Number, Decimals) {
 Number = "" + Number;
 Decimals = "" + Decimals;
 var OriginalNumber = Number;
 var Sign = 1;
 var Pad = "";
 var Count = 0;
 if(parseFloat(Number)) {
  Number = parseFloat(Number);
 }
 else {
  Number = 0;
 }

 if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)) {
  Decimals = parseInt(Decimals,10);
 }
 else {
  Decimals = 2;
 }
 if(Number < 0) {
  Sign = -1;
  Number *= Sign;
 }
 if(Decimals < 0)
  Decimals *= -1;
 Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5);
 if((Number.substring(1,2) == '.') || (Number=='NaN'))
  return(OriginalNumber);
 if(Number.length < Decimals +1)
 {
  for(Count = Number.length; Count <= Decimals; Count++)
  Pad += "0"
 }
 Number = Pad + Number;
 if(Decimals == 0) {
  Number = Number.substring(0, Number.length -1)
 }
 else {
  Number = Number.substring(0,Number.length - Decimals -1) +  "." +
          Number.substring(Number.length - Decimals -1, Number.length -1);
 }
 if(Sign == -1)
  Number = "-" + Number;
return(Number)
}
 // Calculate Distance
 function calculator(form) {
  var degtorad = 0.01745329;
  var radtodeg = 57.29577951;
  var lat1h = form.lat1.value;
  var lat2h = form.lat2.value;
  var long1h = form.long1.value;
  var long2h = form.long2.value;
  var lat1 = parseFloat(lat1h);
  var lat2 = parseFloat(lat2h);
  var long1 = parseFloat(long1h);
  var long2 = parseFloat(long2h);
  if ((lat1h.lastIndexOf("S"))!=-1 || (lat1h.lastIndexOf("s"))!=-1)
    lat1 = (lat1 * (-1));
  if ((lat1h.lastIndexOf("W"))!=-1 || (lat1h.lastIndexOf("w"))!=-1)
    lat1 = (lat1 * (-1));
  if((lat2h.lastIndexOf("S"))!=-1 || (lat2h.lastIndexOf("s"))!=-1)
    lat2 = (lat2 * (-1));
  if((lat2h.lastIndexOf("W")!=-1) || (lat2h.lastIndexOf("w"))!=-1)
    lat2 = (lat2 * (-1));
  if((long1h.lastIndexOf("S")!=-1) || (long1h.lastIndexOf("s"))!=-1)
    long1 = (long1 * (-1));
  if((long1h.lastIndexOf("W")!=-1) || (long1h.lastIndexOf("w"))!=-1)
    long1 = (long1 * (-1));
  if((long2h.lastIndexOf("S")!=-1) || (long2h.lastIndexOf("s"))!=-1)
    long2 = (long2 * (-1));
  if((long2h.lastIndexOf("W")!=-1) || (long2h.lastIndexOf("w"))!=-1)
    long2 = (long2 * (-1));
  var dlong = (long1 - long2);
  var dvalue = (Math.sin(lat1 * degtorad) * Math.sin(lat2 * degtorad))
   + (Math.cos(lat1 * degtorad) * Math.cos(lat2 * degtorad)
   * Math.cos(dlong * degtorad));
  var dd = Math.acos(dvalue) * radtodeg;
  var miles = (dd * 69.16);
  miles = (miles * 100)/100;
  var km = (dd * 111.302);
  km = (km * 100)/100;
  form.result.value = FormatNumber(miles, 2);
  form.result2.value = FormatNumber(km, 2);
 }
