var g_arrMapPoints = new Array();
	
var map;

function load() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
	var mapControl = new GSmallZoomControl(); 
	map.addControl(mapControl);
	var mapControl = new GMapTypeControl();
	map.addControl(mapControl);
	updateMap(false);
  }
}

var tinyIcon = new GIcon(); 
tinyIcon.image = "/fertonline/web/i/picto.png"; 
tinyIcon.shadow = "/fertonline/web/i/picto_shadow.png"; 
tinyIcon.iconSize = new GSize(101, 79); 
tinyIcon.shadowSize = new GSize(101, 79); 
tinyIcon.iconAnchor = new GPoint(32, 76); 
tinyIcon.shadowAnchor = new GPoint(32, 76); 
tinyIcon.infoWindowAnchor = new GPoint(5, 1); 
var markerOptions = { icon:tinyIcon };


// map functions
function updateMap(bolHidden){
	
	if (g_arrMapPoints.length==0){
		$("map").setStyle("display","none");
		return;
	}
	
	if (bolHidden) $("map").setStyle("display","none");
	else $("map").setStyle("display","block");
	
	var bounds;
	var point;
	
	for (var i=0; i<g_arrMapPoints.length; i++){
		
		point = new GLatLng(g_arrMapPoints[i].lat, g_arrMapPoints[i].lon); 
		
		if (i==0){
			
			var centerLat = g_minLat + (g_maxLat - g_minLat)/2;
			//alert( g_minLat +" + " + "("+g_maxLat+" - "+g_minLat+")/2 = "+centerLat );
			
			var centerLon = g_minLon + (g_maxLon - g_minLon)/2;
			//alert( g_minLon +" + " + "("+g_maxLon+" - "+g_minLon+")/2 = "+centerLon );
			map.setCenter(new GLatLng(centerLat, centerLon), getZoomLevel() );
		}
		
		if (i>0){
			bounds = map.getBounds();
			var southWest = bounds.getSouthWest(); 
			var northEast = bounds.getNorthEast(); 
			var lngSpan = northEast.lng() - southWest.lng(); 
			var latSpan = northEast.lat() - southWest.lat();
			
			bounds.extend(point); 
		}
		
		if (g_arrMapPoints[i].overlay==null){
			
			var objMarker = new GMarker(point, markerOptions); 
			map.addOverlay(objMarker);
			g_arrMapPoints[i].overlay = objMarker;
		}

	}
}

var g_minLat;
var g_maxLat;
var g_minLon;
var g_maxLon;

function addMapPoint(lat, lon, name){
	var index = g_arrMapPoints.length;
	g_arrMapPoints[index] = new Object();
	g_arrMapPoints[index].lat = lat;
	g_arrMapPoints[index].lon = lon;
	g_arrMapPoints[index].name = name;
	
	if (!g_minLat || lat < g_minLat) g_minLat = lat;
	if (!g_maxLat || lat > g_maxLat) g_maxLat = lat;
	if (!g_minLon || lon < g_minLon) g_minLon = lon;
	if (!g_maxLon || lon > g_maxLon) g_maxLon = lon;
}

function removeAllMarkers(){
	for (var i=0; i<g_arrMapPoints.length; i++){
		if (g_arrMapPoints[i].overlay!=null){
			map.removeOverlay(g_arrMapPoints[i].overlay);
		}
	}
	g_arrMapPoints = new Array();
	g_minLat=null;
	g_maxLat=null;
	g_minLon=null;
	g_maxLon=null;
	
}

var g_zoomLevel=3;

function getZoomLevel(){
	return g_zoomLevel;
	
	var miles = (3958.75 * Math.acos(Math.sin(g_minLat / 57.2958) * Math.sin(g_maxLat / 57.2958) + Math.cos(g_minLat / 57.2958) * Math.cos(g_maxLat / 57.2958) * Math.cos(g_maxLon / 57.2958 - g_minLon / 57.2958)));
	if (miles < 0.2) return 12;
	else if (miles < 0.5) return 11;
	else if (miles < 1) return 10;
	else if (miles < 2) return 9;
	else if (miles < 3) return 8;
	else if (miles < 7) return 7;
	else if (miles < 15) return 6;
	else return 5;
}

function destinationChange(){

	// initial GET request parameter
	if (g_requestCountry != null){
		$("country").value = g_requestCountry;
		g_requestCountry = null;
	}

	var dcache = new Date();
	var icache = dcache.getTime();
	var url = "/fertonline/web/service.jsp?todo=getEmbarquementList&icache="+icache+"&country="+($("country").value);
	var objAjax = new Ajax(url, {method: 'get', update: 'divEmbarquement', onComplete:function(){
		if (g_requestEmbarquement!=null) embarquementChange();
	} }).request();
	
	// update map
	
	var url = "/fertonline/web/service.jsp?todo=getEmbarquementListForMap&icache="+icache+"&country="+($("country").value);
	var objAjax = new Ajax(url, {method: 'get', 
									onComplete:function(){
		eval(this.response.text);
		updateMap(true);
		setTimeout("updateMap(1);", 200); // second call for internet explorer bug fix !!!
	} 
	}).request();

}

function hideMap(){
	$("map").setStyle("display","none");
}

function embarquementChange(){

	// initial GET request parameter
	if (g_requestEmbarquement != null){
		$("destination").value = g_requestEmbarquement;
		g_requestEmbarquement = null;
	}

	var dcache = new Date();
	var icache = dcache.getTime();
	
	var strTodo;
	if ($("dateFrom")!=null) strTodo = "getFlottesOptional";
	else strTodo = "getFlottes";
	
	var url = "/fertonline/web/service.jsp?todo="+strTodo+"&icache="+icache+"&destination="+($("destination").value);
	var objAjax = new Ajax(url, {method: 'get', update: 'divFlotte', onComplete:function(){return null;} }).request();
	
	// update map
	if ($("destination").value!=""){
		var url = "/fertonline/web/service.jsp?todo=getEmbarquementListForMap&icache="+icache+"&destination="+($("destination").value);
		var objAjax = new Ajax(url, {method: 'get', 
										onComplete:function(){
			eval(this.response.text);
			updateMap(true);
			setTimeout("updateMap(false);", 200);
			setTimeout("updateMap(false);", 210);
		} 
		}).request();
	}
	else {
		var url = "/fertonline/web/service.jsp?todo=getEmbarquementListForMap&icache="+icache+"&country="+($("country").value);
		var objAjax = new Ajax(url, {method: 'get', 
										onComplete:function(){
			eval(this.response.text);
			updateMap(true);
			setTimeout("updateMap(false);", 200);
			setTimeout("updateMap(false);", 210);
		} 
		}).request();
	}
}
