// Global variables used with the mouse wheel zoom
var mouseLatLng;
var zoomRect;
    
var map;
var container;
var opacity = 0.4;

var NormalLayer = G_NORMAL_MAP.getTileLayers()[0]
var SatelliteLayer = G_SATELLITE_MAP.getTileLayers()[0]
var satProj = G_SATELLITE_MAP.getProjection();	
var normalProj = G_NORMAL_MAP.getProjection();	
//var physicalProj = G_PHYSICAL_MAP.getProjection();

// Icon for the red square displayed with the mouse wheel zoom
var baseIcon = new GIcon();
baseIcon.iconSize=new GSize(100,100);
baseIcon.iconAnchor=new GPoint(50,50);
var rectIcon = new GIcon(baseIcon, "/commun/images/Rect.png", null);

var zoominicon = new GIcon(baseIcon, "/commun/images/zoomInRect1.png", null);
var zoomouticon = new GIcon(baseIcon, "/commun/images/zoomOutRect2.png", null);

var wheelZooming = false;

//Texte des bouton de type
var _mMapMode;
var _mSatelliteMode;
var _mHybridMode;

function load_google_map(departement,cp,ville,pays,nom,texte_erreur) 
{
	if (GBrowserIsCompatible()) 
	{
		container = document.getElementById("map");

		map = new GMap2(container,{draggableCursor:"crosshair"});	
		//map.addMapType(custommap);
//		container.firstChild.nextSibling.firstChild.nextSibling.target = '_blank';
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.addControl(new GScaleControl());
		map.addControl(new GMapTypeControl());
		
		
		
		map.enableDoubleClickZoom();
	    map.enableContinuousZoom();
		
		
		
		geocoder = new GClientGeocoder();
			
		if (geocoder) 
		{
			geocoder.getLatLng(
				departement + " " + ville + " " + pays,
				function(point) 
				{
					if (!point) 
					{
						alert(departement + " " + ville + " " + pays + texte_erreur);
					} 
					else 
					{
						map.setCenter(point, 7);
						var marker = new GMarker(point);
						
						

								
						GEvent.addListener(marker, "click", function() {
							marker.openInfoWindowHtml("<b>" + nom + "</b><br>" + cp + " " + ville + "<br>" + pays );
						});
						 GEvent.addDomListener(container, "DOMMouseScroll", wheelZoom);
						GEvent.addDomListener(container, "mousewheel", wheelZoom); 
						
						//map.setMapType(G_PHYSICAL_MAP);
						map.addOverlay(marker);
						marker.openInfoWindowHtml("<b>" + nom + "</b><br>" + cp + " " + ville + "<br>" + pays );
						GEvent.addListener(map, 'mousemove', mouseMove); 
					}
				}
			);
		}
	}
}


  
    
    



    function checkview()
    {
      if (!map.getBounds().contains(marker.getPoint())) map.setCenter(marker.getPoint());
    }




// Mouse wheel zoom - Event handler -----
function wheelZoom(event) {
	if (wheelZooming) {
		return;
	}

	wheelZooming = true;

	// zoomRect and rectIcon are global variables!!!

	//zoomRect = new GMarker(mouseLatLng,{icon:rectIcon});
	//map.addOverlay(zoomRect);

	if (event.cancelable) {
		event.preventDefault();
	}
	map.closeInfoWindow(); 
	if((event.detail || -event.wheelDelta) < 0) {
		zoomRect = new GMarker(mouseLatLng,{icon:zoominicon});
		map.addOverlay(zoomRect);
		window.setTimeout(function(){
			map.removeOverlay(zoomRect);
			map.zoomIn(mouseLatLng,true,true);
			wheelZooming = false;
		},200);
	} 
	else {
		zoomRect = new GMarker(mouseLatLng,{icon:zoomouticon});
		map.addOverlay(zoomRect);
		window.setTimeout(function(){
			map.removeOverlay(zoomRect);
			map.zoomOut(mouseLatLng,true);
			wheelZooming = false;
		},200);
	}
	return false; 
}
// End event handler -----



// Nothing related to mouse wheel zoom below this line ---------------------------
function mouseMove(mousePt) {
	mouseLatLng = mousePt;
}


