/*
 * File map.js Created on 23 mars 09 at 22:06:13
 * with PHP Development Studio 2.0 by JoomlAtWork.com
 * 
 * @author Ahmed Benlahsen <abenlahsen@gmail.com>
 * @package MarocItineraire
 */

var current_zoom =14;
var max_zoom = 20;
var min_zoom = 4;
var zoomlevel_out = null;

//RETURN TO THE PREVIOUS MAP POSITION
function returnMap(){
	var map = window.map;
	map.returnToSavedPosition();
	current_zoom=14;
	//zoomBar(11);
	zoomLevels(14);
	zoomLevelsOut(14);
	return(current_zoom);
}

function initZoomBars() {
	var map = window.map;
    // create zoom bars
    createZoomBars();
    //save the map position
    map.savePosition();
    //save the inital zoom level
    current_zoom = map.getZoom();
    //set the zoom bars
    zoomLevels(current_zoom);
}

//ZOOM THE MAP
function zoomMap(way){
	// var currentzoom = map.getZoom();
	var map = window.map;
	
	var way = parseInt(way);
	if (((current_zoom+way) >= min_zoom) && ((current_zoom+way) <= max_zoom)){
		map.setZoom(map.getZoom()+parseInt(way));
		current_zoom+=way;
		//zoomLevelsOut(current_zoom);
	}
	return(current_zoom);
}

window.onunload = function(){ GUnload(); }

function createMarker(point,html, inputs) {
   var marker = new GMarker(point, {draggable: true});
   GEvent.addListener(marker, "drag", function(){
   													var latlon = marker.getPoint().toUrlValue().split(',');
   													$(inputs['lat']).value = latlon[0];
   													$(inputs['lon']).value = latlon[1];
   												});
   
   GEvent.addListener(marker, "click", function() {
	 marker.openInfoWindowHtml(html);
   });
   return marker;
}

function loadMarkerByLatLon(lat,lon,html,inputs){
	if (GBrowserIsCompatible()) {
		// Display the map, with some controls and set the initial location 
		var map = new GMap2(document.getElementById("smallmap"));
		//map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat,lon),14);
		//map.setUIToDefault();
		// Set up three marker with info windows
		var point = new GLatLng(lat,lon);
		var inputs = new Array();
		inputs['lat'] = 'latitude';
		inputs['lon'] = 'longitude';
		var marker = createMarker(point,html,inputs)
		// Add the marker
		map.addOverlay(marker);
	}
	// display a warning if the browser was not compatible
	else {
	  alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}

function loadMapInVignette(lat,lon,image, niveauZoom){
	if (GBrowserIsCompatible()) {
		// Display the map, with some controls and set the initial location 
		var map = new GMap2(document.getElementById("vignettemap"));
		
		map.setCenter(new GLatLng(lat,lon),parseInt(niveauZoom));
		
		// Create our "tiny" marker icon
		var hIcon = new GIcon(G_DEFAULT_ICON);
		hIcon.image = image;
		                
		// Set up our GMarkerOptions object
		markerOptions = { icon:hIcon };
		
		// Set up three marker with info windows
		var point = new GLatLng(lat,lon);
		
		// Add the marker
		map.addOverlay(new GMarker(point, markerOptions));
	}
	// display a warning if the browser was not compatible
	else {
	  alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}

function loadMapInPopin(lat,lon,image, niveauZoom){
	if (GBrowserIsCompatible()) {
		// Display the map, with some controls and set the initial location 
		window.map = new GMap2(document.getElementById("GM_Map"));
		
		window.map.setCenter(new GLatLng(lat,lon),parseInt(niveauZoom));
		
		// Create our "tiny" marker icon
		var hIcon = new GIcon(G_DEFAULT_ICON);
		hIcon.image = image;
		                
		// Set up our GMarkerOptions object
		markerOptions = { icon:hIcon };
		
		// Set up three marker with info windows
		var point = new GLatLng(lat,lon);
		
		// Add the marker
		window.map.addOverlay(new GMarker(point, markerOptions));
	}
	// display a warning if the browser was not compatible
	else {
	  alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}

function loadMarkerByAddress(address,html){
	if (GBrowserIsCompatible()) {
		var callback = function(responseText){
			// Initiate vars
			var array = responseText.split(',');
			var lat = array[2];
			var lon = array[3];
			// Load Marker
			loadMarkerByLatLon(lat,lon,html);
			// Set vars to form
			$('latitude').value = lat;
			$('longitude').value = lon;
			// Hide loading message
			$('ajaxLoading').setStyle('display', 'none');
		}
		// Display Loading Message
		$('ajaxLoading').removeClass('hidden');
		$('ajaxLoading').setStyle('display', '');
		// Set up Ajax Request
		var _url = 'http://maps.google.com/maps/geo?&q='+escape(address)+'&output=csv&key=ABQIAAAAvc9_xgt6bgKi5AOaSU4BAhRIFx4g9ZbGqzj8DuXgFhDG3F39PhSHcxvpa9d4Ew6Gj9YrRQI5NDslnA';
		var option = { method: 'post', data: {'url':_url} , onComplete: callback, evalScripts: false };
		// Do Request
		new Ajax('index.php?option=com_cities&task=ajaxGetLatLon', option).request();
	}
	// Display a warning if the browser was not compatible
	else {
	  alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}

function loadSearchMap(zoom){
	
	for( i = 0 ; i < window.markerList.length ; i++){
		
		map.setCenter(window.markerList[i].coord, zoom);
		
		var hIcon = new GIcon(G_DEFAULT_ICON);
		hIcon.image = window.image;
		// Set up our GMarkerOptions object
		markerOptions = { icon:hIcon };
		// Set up three marker with info windows
		var point = window.markerList[i].coord;
		var marker = createMarker(point, markerOptions, window.markerList[i].html);
		// Add the marker
		map.addOverlay(marker);
	}
}

function createMarker(point, options, html){
	var marker = new GMarker(point, markerOptions);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});

	return marker;
}

function getDirections(start, end){
	var gdir = new GDirections(window.map, $('path'));
	gdir.load('from: '+start+' to: '+end);
	
	/*var bounds = new GLatLngBounds();
	var markerStart = window.map.getMarker(0);
	alert(markerStart.getLatLng()); */
	//var bounds = window.map.getBounds();
	//alert(bounds);
	
	/*var center = new GLatLng(
	         				(bounds.getSouthWest().lat() + bounds.getNorthEast().lat()) /2.,
	         				(bounds.getSouthWest().lng() + bounds.getNorthEast().lng()) /2.
	         				);*/
	
	//var newZoom = window.map.getBoundsZoomLevel(bounds, window.map.getSize());
	//window.map.setCenter(center, 10);
}

function deleteDirections(gdir){

        gdir.clear();

	/*var bounds = new GLatLngBounds();
	var markerStart = window.map.getMarker(0);
	alert(markerStart.getLatLng()); */
	//var bounds = window.map.getBounds();
	//alert(bounds);

	/*var center = new GLatLng(
	         				(bounds.getSouthWest().lat() + bounds.getNorthEast().lat()) /2.,
	         				(bounds.getSouthWest().lng() + bounds.getNorthEast().lng()) /2.
	         				);*/

	//var newZoom = window.map.getBoundsZoomLevel(bounds, window.map.getSize());
	//window.map.setCenter(center, 10);
}

