var map;
var infowindow;
var markersArray = [];

function createMapModeListe() {
	if($("#tif_carte_map").length) {
		var myOptions = {
			zoom: 11,
			center: new google.maps.LatLng(47.537601, -2.802887),
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		
		map = new google.maps.Map(document.getElementById("tif_carte_map"), myOptions);
	}
}

function createMapModeCarte() {
	if($("#tif_content_carte_map").length) {
		var myOptions = {
			zoom: 11,
			center: new google.maps.LatLng(47.537601, -2.802887),
			mapTypeId: google.maps.MapTypeId.ROADMAP,
			scrollwheel: false
		};
		
		map = new google.maps.Map(document.getElementById("tif_content_carte_map"), myOptions);
		infowindow = new google.maps.InfoWindow({maxWidth: 250});
	}
}

function createMapBigCarte() {
	if($("#tif_big_carte_content_carte_map").length) {
		var myOptions = {
				zoom: 13,
				center: new google.maps.LatLng(47.537601, -2.802887),
				mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		
		map = new google.maps.Map(document.getElementById("tif_big_carte_content_carte_map"), myOptions);
		infowindow = new google.maps.InfoWindow({maxWidth: 250});
	}
}

function zoomOnMarker(marker) {
	if(map) {
		// On change les index des markers à 100
		for(i in markersArray) {
			if (typeof(markersArray[i].setZIndex) === 'function') {
				markersArray[i].setZIndex(100);
			}
		}
		// On change l'index du marker à zoomer à 200
		marker.setZIndex(200);
		
		// On zoom sur la carte
		map.setZoom(13);
		
		// On recentre la carte
		map.setCenter(marker.position);
		
		// On scroll sur la carte
		$(window).scrollTop($("#tif_carte").offset().top);
	}
}

function addMarkerModeListe(element) {
	if(map) {
		if(element.lat && element.lng)
		{
			var icone = new google.maps.MarkerImage("/TourInFrance/img/markers/marker-"+element.index+".png", new google.maps.Size(40, 46), new google.maps.Point(0,0), new google.maps.Point(20, 45));
			var location = new google.maps.LatLng(element.lat, element.lng);
		
			// Création du marker
			var marker = new google.maps.Marker({
				position: location,
				map: map,
				icon: icone,
				zindex: 100
			});
			
			// Evenement au click sur le marker
			google.maps.event.addListener(marker, 'click', function(event) {
				getDetailsByMarker(element.details);
		    });
			
			// Ajoute le marker a la liste
			markersArray.push(marker);
			
			return marker;
		}
	}
	return null;
}

function addMarkerModeCarte(element) {
	if(map) {
		if(element.lat && element.lng)
		{
			var icone = new google.maps.MarkerImage("/TourInFrance/img/markers/marker-"+element.index+".png", new google.maps.Size(40, 46), new google.maps.Point(0,0), new google.maps.Point(20, 45));
			var location = new google.maps.LatLng(element.lat, element.lng);
			
			// Création du marker
			var marker = new google.maps.Marker({
				position: location,
				map: map,
				icon: icone,
				zindex: 100
			});
			
			
			google.maps.event.addListener(marker, 'click', function() {
				infowindow.close();
				infowindow.setContent($("#"+element.details).html());
				$(infowindow.getContent()).find("p").css({"color":"red"});
				infowindow.open(map, marker);
		    });
	
			// Ajoute le marker a la liste
			markersArray.push(marker);
			
			return marker;
		}
	}
	return null;
}

function addMarkerBigCarte(element) {
	if(map) {
		if(element.lat && element.lng)
		{
			var icone = new google.maps.MarkerImage("/TourInFrance/img/markers/marker-"+element.type+".png", new google.maps.Size(40, 46), new google.maps.Point(0,0), new google.maps.Point(20, 45));
			var location = new google.maps.LatLng(element.lat, element.lng);
			
			// Création du marker
			var marker = new google.maps.Marker({
				position: location,
				map: map,
				icon: icone,
				zindex: 100
			});
			
			
			google.maps.event.addListener(marker, 'click', function() {
				infowindow.close();
				infowindow.setContent($("#"+element.details).html());
				infowindow.open(map, marker);
			});
			
			// Ajoute le marker a la liste
			markersArray.push(marker);
			
			return marker;
		}
	}
	return null;
}

function deleteMarkers() {
	// Avons nous des markers
	if(markersArray.length > 0) {
		// Chaque markers
		for(i in markersArray) {
			// Efface
			if (typeof(markersArray[i].setMap) === 'function') {
		        markersArray[i].setMap(null);
			}
		}
		// On vide le tableau
		markersArray.length = 0;
	}
}

function deleteMap() {
	deleteMarkers();
	map = null;
}
