//function to hide the tool tip
function hideToolTip () {
  toolTip.style.visibility="hidden";
};

//function to show the tool tip
function showToolTip(marker) {
  toolTip.innerHTML = marker.tooltip;
  var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
  var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
  var anchor=marker.getIcon().iconAnchor;
  var width=marker.getIcon().iconSize.width;
  var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
  pos.apply(toolTip);
  toolTip.style.visibility="visible";
}; 



//load Google Map
function load(country, area, city, stars) {
  if (GBrowserIsCompatible()) {
  	var map = new GMap2(document.getElementById("googlemap"));
	var geocoder = new GClientGeocoder();
	map.setCenter(new GLatLng(0,0),0);
	map.setMapType(G_PHYSICAL_MAP);
	geocoder.setBaseCountryCode("nl");

	//add controls
    map.addControl(new GMapTypeControl());

	//create randomnumber to prevent caching and retrieve xml file
    if(city != '' && city != 'false')
    {
       GDownloadUrl("../../../../xml/hotellist.php?country="+country+"&area="+area+"&city="+city+"&stars="+stars, function(data, responseCode) {
    	    var xml = GXml.parse(data);
    		
    		//store markers in markers array
    	    var markers 	= xml.documentElement.getElementsByTagName("marker");
    	    var markerimage = xml.documentElement.getElementsByTagName("markerimage");
    	    
    	    //create bounds
    	    var bounds = new GLatLngBounds();
    		        		
    		//loop over the markers array
    		  for (var i = 0; i < markers.length; i++) {
    			    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    			                            parseFloat(markers[i].getAttribute("lng")));
    			    bounds.extend(point);
    	    		
    			    // create marker icon
    	    		var icon = new GIcon();
    	    		icon.iconSize = new GSize(markerimage[i].getAttribute("width"), markerimage[i].getAttribute("height"));
    	    		icon.iconAnchor = new GPoint(6, 20);
    	    		icon.infoWindowAnchor = new GPoint(5, 1);
    		   		icon.image = markerimage[i].getAttribute("url");
    			    
    		        var html 	 = markers[i].getAttribute("html");
    		        var deeplink = markers[i].getAttribute("deeplink");
    		        var marker 	 = createMarker(point, html, icon, deeplink);
    		        map.addOverlay(marker);
    				map.addControl(new GMapTypeControl());
    			  }
    		  	// end loop
    		  
    	      // ===== determine the zoom level from the bounds =====
    		  var zoomlevel = map.getBoundsZoomLevel(bounds);

    		   map.setZoom(zoomlevel-1);
    		   map.setCenter(bounds.getCenter());
    	       map.setUIToDefault();
    	       map.disableScrollWheelZoom();
  		      
    		  }
    		); //close GDownloadUrl
    	
    }else{
	    GDownloadUrl("../../../../xml/citylist.php?country="+country+"&area="+area+"&city="+city, function(data, responseCode) {
	    var xml = GXml.parse(data);
	
		//store markers in markers array
	    var markers = xml.documentElement.getElementsByTagName("marker");
	
	    //create bounds
	    var bounds = new GLatLngBounds();
	
		//loop over the markers array
		  for (var i = 0; i < markers.length; i++) {
			  
				// create marker icon
				var icon = new GIcon();
				
				icon.image = "http://www.wintersport.net/images/markers/sneeuwflok.png";
				icon.iconSize = new GSize(15, 20);
				icon.iconAnchor = new GPoint(6, 20);
				icon.infoWindowAnchor = new GPoint(5, 1);			  
			    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
			                            parseFloat(markers[i].getAttribute("lng")));
			    //map.addOverlay(new GMarker(point));
			    bounds.extend(point);
	
		        var html 	 = markers[i].getAttribute("html");
		        var deeplink = markers[i].getAttribute("deeplink");
		        var marker 	 = createMarker(point, html, icon, deeplink);
		        map.addOverlay(marker);
				map.addControl(new GMapTypeControl());
			  }
		  	// end loop
		  
	      // ===== determine the zoom level from the bounds =====
		  var zoomlevel = map.getBoundsZoomLevel(bounds);
	
		   if (zoomlevel > 10) { zoomlevel = 10;  }
		   
		   map.setZoom(zoomlevel);
	
	       // ===== determine the centre from the bounds ======
		   map.setZoom(zoomlevel);
		   map.setCenter(bounds.getCenter());
	       map.setUIToDefault();
	       map.disableScrollWheelZoom();

		  }
		); //close GDownloadUrl
    }

//Create marker and set up event window
function createMarker(point,html,icon, deeplink){
  var marker = new PdMarker(point,icon);
  GEvent.addListener(marker, "click", function() {
	  window.location=deeplink;
  }); 
  GEvent.addListener(marker, 'mouseover', function() {
		marker.setTooltip(html);
   }); 
  return marker;
}

  } //close GBrowserIsCompatible
} //close load
//function to hide the tool tip
function hideToolTip () {
  toolTip.style.visibility="hidden";
};

//function to show the tool tip
function showToolTip(marker) {
  toolTip.innerHTML = marker.tooltip;
  var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
  var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
  var anchor=marker.getIcon().iconAnchor;
  var width=marker.getIcon().iconSize.width;
  var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
  pos.apply(toolTip);
  toolTip.style.visibility="visible";
}; 



//load Google Map
function load(country, area, city, stars) {
  if (GBrowserIsCompatible()) {
  	var map = new GMap2(document.getElementById("googlemap"));
	var geocoder = new GClientGeocoder();
	map.setCenter(new GLatLng(0,0),0);
	map.setMapType(G_PHYSICAL_MAP);
	geocoder.setBaseCountryCode("nl");

	//add controls
    map.addControl(new GMapTypeControl());

	//create randomnumber to prevent caching and retrieve xml file
       GDownloadUrl("xml/countrys.php", function(data, responseCode) {
    	    var xml = GXml.parse(data);
    		
    		//store markers in markers array
    	    var markers 	= xml.documentElement.getElementsByTagName("marker");
    	    var markerimage = xml.documentElement.getElementsByTagName("markerimage");
    	    
    	    //create bounds
    	    var bounds = new GLatLngBounds();
    		        		
    		//loop over the markers array
    		  for (var i = 0; i < markers.length; i++) {
    			    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    			                            parseFloat(markers[i].getAttribute("lng")));
    			    bounds.extend(point);
    	    		
    			    // create marker icon
    	    		var icon = new GIcon();
    	    		icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
    				icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    				
    				icon.iconSize = new GSize(15, 20);
    				icon.iconAnchor = new GPoint(6, 20);
    				icon.infoWindowAnchor = new GPoint(5, 1);			  
    			    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
    			                            parseFloat(markers[i].getAttribute("lng")));
    			    //map.addOverlay(new GMarker(point));
    			    bounds.extend(point);
    			    	
    		        var html 	 = markers[i].getAttribute("html");
    		        var deeplink = markers[i].getAttribute("deeplink");
    		        var marker 	 = createMarker(point, html, icon, deeplink);
    		        map.addOverlay(marker);
    				map.addControl(new GMapTypeControl());

    			  }
    		  	// end loop
    		  
    	      // ===== determine the zoom level from the bounds =====
    		  var zoomlevel = map.getBoundsZoomLevel(bounds);

    		   map.setZoom(1);
    		   map.setCenter(bounds.getCenter());
    	       map.setUIToDefault();
    	       map.disableScrollWheelZoom();
  		      
    		  }
    		); //close GDownloadUrl
    	


//Create marker and set up event window
function createMarker(point,html,icon, deeplink){
  var marker = new PdMarker(point,icon);
  GEvent.addListener(marker, "click", function() {
	  window.location=deeplink;
  }); 
  GEvent.addListener(marker, 'mouseover', function() {
		marker.setTooltip(html);
   }); 
  return marker;
}

  } //close GBrowserIsCompatible
} //close load

