$(document).ready (
	function() {
		/* Init
		--------------------------------------------------------------------------------------- */
		var speed = 800;
		var init = function() {
			gmap();
		};
		
		/* Gmap
		--------------------------------------------------------------------------------------- */
		var gmap = function() {			
			var polygons = [];		
			var images_path = "";
			var options;		
			var nbRegions = regionsTaxonomies.length;
			if(nbRegions > 0) {				
				// si on a des positions
				if(window.territoryOptions) {
					images_path = territoryOptions.images_path;
					options = {
						zoom: territoryOptions.zoom,
						center: new google.maps.LatLng(territoryOptions.centerLat, territoryOptions.centerLng),
						navigationControlOptions: { position: google.maps.ControlPosition.BOTTOM_LEFT },
						mapTypeControl: false,
						scaleControl: false,
						streetViewControl : false, 
						mapTypeId: google.maps.MapTypeId.ROADMAP
					}
				} else {
					options = {
						zoom: 5,
						center: new google.maps.LatLng(46.7776380, -4.2137490),//46.2276380, 2.2137490
						navigationControl: true,
						navigationControlOptions: { position: google.maps.ControlPosition.BOTTOM_CENTER },
						mapTypeControl: false,
						scaleControl: false,
						streetViewControl : false, 
						scrollwheel: false, 
						mapTypeId: google.maps.MapTypeId.TERRAIN
					}
				}
				
				var map = new google.maps.Map(document.getElementById("map-canvas"), options);
				
				if(window.territoryPois) {
					var nbPois = territoryPois.length;
					if(nbPois > 0) {
						var shadow = new google.maps.MarkerImage(images_path + "mapicon-shadow.png",
							new google.maps.Size(50,50),
							new google.maps.Point(0,0),
							new google.maps.Point(25, 50)
						);
					
						var markers = [];				
						for (i=0; i<nbPois; i++) {
							var icon = new google.maps.MarkerImage(images_path + "mapicon-" + territoryPois[i].icon + ".png",
								new google.maps.Size(50,50),
								new google.maps.Point(0,0),
								new google.maps.Point(25,50)
							);						
							markers.push(new google.maps.Marker({
								position: new google.maps.LatLng(territoryPois[i].lat, territoryPois[i].lng),
								map: map,
								icon: icon,
								shadow: shadow,
								draggable: false
							}));
						
							markers[i].toolTip = territoryPois[i].nicename;
						
							google.maps.event.addListener(markers[i], "mouseover", function(event) { mouseOverHandler(this, true); });
							google.maps.event.addListener(markers[i], "mouseout", function(event) { mouseOutHandler(this); });
						}
					}
				}
				
				for (i=0; i<nbRegions; i++) {
					var coords = [];
					var nbCoord = regionsCoords[regionsTaxonomies[i].slug].length;
					for (j=0; j<nbCoord; j++)	{
						coords.push(new google.maps.LatLng(regionsCoords[regionsTaxonomies[i].slug][j][0], regionsCoords[regionsTaxonomies[i].slug][j][1]));
					}
					
					if(!regionsTaxonomies[i].active) {					
						polygons[regionsTaxonomies[i].slug] = new google.maps.Polygon({
							paths: coords,
							strokeColor: "#73AD00",
							strokeOpacity: 0.5,
							strokeWeight: 1,
							fillColor: "#73AD00",
							fillOpacity: 0
						});

						polygons[regionsTaxonomies[i].slug].toolTip = regionsTaxonomies[i].nicename;
						polygons[regionsTaxonomies[i].slug].destination = regionsTaxonomies[i].url;
						polygons[regionsTaxonomies[i].slug].setMap(map);		

						google.maps.event.addListener(polygons[regionsTaxonomies[i].slug], "click", function(event) { clickHandler(this); });
						google.maps.event.addListener(polygons[regionsTaxonomies[i].slug], "mouseover", function(event) { mouseOverHandler(this, true); });
						google.maps.event.addListener(polygons[regionsTaxonomies[i].slug], "mouseout", function(event) { mouseOutHandler(this); });
					} else {
						polygons[regionsTaxonomies[i].slug] = new google.maps.Polygon({
							paths: coords,
							strokeColor: "#73AD00",
							strokeOpacity: 0.5,
							strokeWeight: 5,
							fillOpacity: 0
						});
						polygons[regionsTaxonomies[i].slug].setMap(map);
					}
				}
				
				$("ul.territoryList li>a").hover(
					function() {
						mouseOverHandler(polygons[$(this).attr("slug")], false);
					}, function() {
						mouseOutHandler(polygons[$(this).attr("slug")]);
					}
				);

				function clickHandler(polygon) {
					window.location = polygon.destination;
				}

				function mouseOutHandler(polygon) {
					//$("#map-tooltip").hide();
					$("#map-tooltip").css({visibility: "hidden"});
					
					polygon.setOptions({fillOpacity: 0});
				}
				
				function mouseOverHandler(polygon, showtool) {
					if(showtool) {
						$("#map-tooltip>div").html(polygon.toolTip);
						$("#map-tooltip").css({visibility: "visible"});
						
						//$("#map-tooltip").show();
					}
					
					polygon.setOptions({fillOpacity: 0.35});	
				}

				$("#map-canvas").mousemove(
					function(event) {
						$("#map-tooltip").offset({ top: event.pageY - 55, left: event.pageX - 28 });
					}
				);
			}			
		}
		
		init();
	}
);
