var map;
var gdir;
var geocoder = null;
var addressMarker;

function initialize()
{
   destination_address_1 = document.getElementById('address').value;
   destination_address_2 = document.getElementById('postalcode_and_city').value;
   destination_address = destination_address_1 + ", " + destination_address_2;

   if (GBrowserIsCompatible())
   {
      map = new GMap2(document.getElementById("map_canvas"));
      gdir = new GDirections(map, document.getElementById("directions"));
      GEvent.addListener(gdir, "load", onGDirectionsLoad);
      GEvent.addListener(gdir, "error", handleErrors);

      setDirections("Kronehoefstraat 62 5622 Eindhoven, The Netherlands", destination_address, "nl_NL");
   }
}

function setDirections(fromAddress, toAddress, locale)
{
   gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
}

function handleErrors()
{
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
      //alert('unknown address:' + gdir.getStatus().code);
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";
   
   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
      //alert('server error:' + gdir.getStatus().code);
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";

   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
      //alert('missing query:' + gdir.getStatus().code);
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";

   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
      //alert('bad key:' + gdir.getStatus().code);
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";

   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
      //alert('bad request:' + gdir.getStatus().code);
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";

   else
      //alert("An unknown error occurred.");
      document.getElementById('delivery_costs_span').innerHTML = "onbekend*";
}

function onGDirectionsLoad(){ 
// Use this function to access information about the latest load()
// results.

   var delivery_costs;

   delivery_costs = calculate_delivery_costs(gdir.getDistance().meters);
   
   document.getElementById('delivery_costs_input').value = delivery_costs;
   
   document.getElementById('delivery_costs_span').innerHTML = delivery_costs;
}

function calculate_delivery_costs(distance_in_meters)
{
   var delivery_costs;
   
   delivery_costs = 4.5;
   
   if(distance_in_meters > 10000)
   {
      if(distance_in_meters < 15000)
      {
         delivery_costs = 7.5
      }
      else if( distance_in_meters < 20000)
      {
         delivery_costs = 10;
      }
      else if( distance_in_meters < 25000)
      {
         delivery_costs = 12.5;
      }
      else if( distance_in_meters < 30000)
      {
         delivery_costs = 15;
      }
      else if( distance_in_meters < 35000)
      {
         delivery_costs = 17.5;
      }
      else if( distance_in_meters < 40000)
      {
         delivery_costs = 20;
      }
      else if( distance_in_meters < 45000)
      {
         delivery_costs = 22.5;
      }
      else if( distance_in_meters < 50000)
      {
         delivery_costs = 25;
      }
      else if( distance_in_meters < 55000)
      {
         delivery_costs = 27.5;
      }
      else
      {
         delivery_costs = 40;
      }
   }

   return delivery_costs;
}
