/**
 * Google maps Load
 *  
 * @param sCanvasId
 * @param fLatitude
 * @param fLongitude
 * @param iZoom
 * @param oGMapType
 * @return GMap2
 */
function LoadGMap(sCanvasId, fLatitude, fLongitude, iZoom, oGMapType){

    if (GBrowserIsCompatible()) {
        $(sCanvasId).show();
        
        var map = new GMap2(document.getElementById(sCanvasId));
        
        $(sCanvasId).hide();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        
        map.enableScrollWheelZoom();
        
        map.setCenter(new GLatLng(fLatitude, fLongitude), iZoom);
        map.setMapType(oGMapType); 
        
        $(sCanvasId).show();
        
        return map;
    }
}

/**
 * Add location to map
 * 
 * @param mm
 * @param fLatitude
 * @param fLongitude
 * @param infoHTML
 * @param iZoomMin
 * @param iZoomMax
 * @param bClickable
 * @param sCanvasId
 * @return GMarker
 */
function addLocation(mm, fLatitude, fLongitude, infoHTML, iZoomMin, iZoomMax, bClickable, sCanvasId){

	$(sCanvasId).hide();
	
    var point = new GLatLng(fLatitude, fLongitude);
    
    if (point != undefined) {
        var marker = new GMarker(point);
        
        if (bClickable == true) {
            GEvent.addListener(marker, "click", function(){
                showInfoWindow(marker, infoHTML, sCanvasId);
            });
        }
        else 
            if (infoHTML != '') {
                GEvent.addListener(marker, "mouseover", function(){
                    showInfoWindow(marker, infoHTML, sCanvasId);
                });
            }
        
        mm.addMarker(marker, iZoomMin, iZoomMax);
    }
    
	$(sCanvasId).show();

    return mm;
}


function addDraggableMarker(fLatitude, fLongitude, sLatitudeInputId, sLongitudeInputId){
	
    var point = new GLatLng(fLatitude, fLongitude);
    
    var options = {
        draggable: true,
        bounceGravity: 0.2,
        dragCrossMove: true
    };
    
    var marker = new GMarker(point, options);
    
	GEvent.addListener(marker, "mouseup", function(){
		
		if (sLatitudeInputId != '') {
			$(sLatitudeInputId).value = marker.getPoint().lat();
		}
		
		if (sLongitudeInputId != '') {
			$(sLongitudeInputId).value = marker.getPoint().lng();
			
		}
	});
	
    map.addOverlay(marker);
}

/**
 * Show info
 * 
 * @param marker
 * @param infoHTML
 * @param sCanvasId
 * @return void
 */
function showInfoWindow(marker, infoHTML, sCanvasId){
    $(sCanvasId).hide();
    marker.openInfoWindowHtml(infoHTML);
    $(sCanvasId).show();
}

Event.observe(window, 'unload', function(){
    GUnload()
});
