/* ************************************************************************************* */
/* * 
/* * Script file: Google Maps, Holiday Media
/* * Authors: Wim Latour & Jan Verharen
/* * dev@holiday.nl
/* * 
/* ************************************************************************************* */

var map = null;
var geocoder = null;
var zoom = 9;

function GMap_load(latitude,longitude) {

  var address = document.frmGMapLocation.frmGMapAddress.value;
  var content = document.frmGMapLocation.frmGMapContent.value;
  if (!content) content = address;

  if (document.frmGMapRoute && document.frmGMapRoute.frmGMapDestinationAddress) {
    if (! document.frmGMapRoute.frmGMapDestinationAddress.value)
      document.frmGMapRoute.frmGMapDestinationAddress.value = address;
  }

  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));

    map.setCenter(new GLatLng(latitude, longitude), zoom);

    map.setMapType(G_HYBRID_MAP); /* both layers */
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GOverviewMapControl());

    geocoder = new GClientGeocoder();

    if (latitude&&longitude) {

      var marker = new GMarker(new GLatLng(latitude, longitude));
      //map.addOverlay(marker);

      var WINDOW_HTML = GMap_genHTML(content);

      //GEvent.addListener(marker, "click", function() {
      //  marker.openInfoWindowHtml(WINDOW_HTML);
      //});
      //marker.openInfoWindowHtml(WINDOW_HTML);

    } else {

//      GMap_showAddress(address, content);

    }

  }
}

function GMap_showAddress(address, content) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " niet gevonden");
        } else {
          map.setCenter(point, zoom);
          var marker = new GMarker(point);
          map.addOverlay(marker);

          var WINDOW_HTML = GMap_genHTML(content);

          GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(WINDOW_HTML);
          });
          marker.openInfoWindowHtml(WINDOW_HTML);
        }
      }
    );
  }
}

function GMap_calcLocation(form) {
  var lng = form.frmGMapLanguage.value;
  var daddr = form.frmGMapDestinationAddress.value;
  var saddr = "";
  if (form.frmGMapAddress.value && form.frmGMapCity.value) {
    saddr = form.frmGMapAddress.value + ", " + form.frmGMapCity.value + ", " + form.frmGMapCountry.value
  }
  if (!lng) lng = 'nl';
  var uri  = 'http://maps.google.nl/maps?';
      uri += 'daddr='+daddr;
      uri += '&saddr='+saddr;
      uri += '&f=li&hl='+lng+'&ie=UTF8&z=&om=1';
  window.open(uri,'winGoogleMaps','menu=0,toolbars=0');
}

function GMap_genHTML(content) {
  var WINDOW_HTML;
  WINDOW_HTML = '<div class="GMapLocationPopup">';
  WINDOW_HTML += content;
  WINDOW_HTML += '</div>';
  return WINDOW_HTML;
}


