var map = null;
var geoXml =null;
var KML = null;
var KMLoverlays = new Array();
var KmlParams = null;
var defaultKML = "http://www.hethuisopticiens.nl/xml/vestigingen.kml";
var geocoder = null;

$(document).ready(function() {
// initialize googlemap
	if (GBrowserIsCompatible() && jQuery('#googlemap').length > 0) {
		map = new GMap(document.getElementById('googlemap'));
		var customUI = map.getDefaultUI();	
        customUI.controls.scalecontrol = false;
		customUI.maptypes.hybrid = false;
	
	    //  Restricting the range of Zoom Levels 
		var mt = map.getMapTypes();
		
		for (var i = 0; i < mt.length; i++) {
			// Overwrite the getMinimumResolution() and getMaximumResolution() methods
			mt[i].getMinimumResolution = function() {
				return 7;
			}
		}
		GEvent.addListener(map, "infowindowopen", function() {
			jQuery('#googlemap a').attr({target:"_self"});
		}); 
		
				map.setCenter(new GLatLng(52.2, 5.33),7); // Center the map on approx Utrecht
				
		map.enableDragging();
        map.setUI(customUI);
		
		KMLoverlays['pageDefault'] = load_KML(defaultKML,'pageDefault');
	};
});

function showAddress(address) {
  var x_min = 2.7352;
  var x_max = 7.7665;
  var y_min = 50.23065;
  var y_max = 53.94689;
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
      	if (!point || point.x < x_min || point.x > x_max || point.y < y_min || point.y > y_max) {
        	map.setCenter(new GLatLng(52.2, 5.33),7);
			alert("Adres " + address + " niet gevonden");
        } else {
          map.setCenter(point, 12);
        }
      }
    );
  }
}

function load_KML(UrlOfKml,overlay) {
	if (UrlOfKml != null) {
		KML = UrlOfKml;

		var bounds = map.getBounds();
		var zoom =  map.getZoom();
		var sW = bounds.getSouthWest(); // south west corner
		var nE = bounds.getNorthEast();  // north east corner
		var _d = new Date();
		var _d = _d.getMilliseconds();
		
		var _KmlUrl = KML+"?swLat="+sW.lat()+"&swLng"+sW.lng()+"&neLat="+nE.lat()+"&neLng"+nE.lng()+"&d="+_d+Math.random();
	
		if (KmlParams != null) {
			if(KmlParams.substr(0,1) != "&") { _KmlUrl += "&";	}
			_KmlUrl += KmlParams;
		}
		
		return new GGeoXml(_KmlUrl,function() { _show_KmlOverlay(overlay) } );
	}
}

function set_KmlParams(params) {
	KmlParams = null;	 
	KmlParams = params;	 
}

function clear_KmlParams() {
	KMLoverlays = null;
	KMLoverlays  = new Array();
	KmlParams = null;	 
}
	
function _show_KmlOverlay(overlay) {
	if (KMLoverlays[overlay].loadedCorrectly()){ 
		map.addOverlay(KMLoverlays[overlay]);
	}  else {
		_show_KmlOverlay(overlay);
	}
}

// remove googlemap Overlays
function _remove_KmlOverlays() {
	map.clearOverlays();
}
