// Google Maps API

//------------------------------------------------------------------
// Initialisation de la carte et chargement des marqueurs

function GoogleMapsLoad(varUrlData) {
	document.getElementById("maploading").style.display = "block";
	document.getElementById("maploading").className = "";
	document.getElementById("maploading").innerHTML = "Chargement des données de la carte";
	var mapDataLoad = new SWFObject("../images/mapDataLoad.swf", "mapDataLoadSWF", "354", "75", "8", "#FFFFFF");
	mapDataLoad.addParam("wmode", "transparent");
	mapDataLoad.write("maploading");

	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		var geocoder = new GClientGeocoder();

		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl()) ;
		//map.addControl(new GOverviewMapControl());
		map.setCenter(new GLatLng(44.959575, 4.149055),11);
		map.enableScrollWheelZoom();

//		mapTypeControl:true,
//		mapTypeControlOptions:{
//			style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
//			position: google.maps.ControlPosition.LEFT
//		},
//		navigationControl:true,
//		navigationControlOptions:{
//			style:google.maps.NavigationControlStyle.ANDROID, 
//			position: google.maps.ControlPosition.TOP_LEFT
//		},
//		mapTypeId:google.maps.MapTypeId.ROADMAP;

		function markerStyle(type) {
			var MonPointeur = new GIcon(G_DEFAULT_ICON);
			if (type == "1") {
				MonPointeur.image = "../images/googlemap/marker-activite.png";
				MonPointeur.shadow = "";
			} else if (type == "2") {
				MonPointeur.image = "../images/googlemap/marker-hebergement.png";
				MonPointeur.shadow = "";
			} else if (type == "3") {
					MonPointeur.image = "../images/googlemap/marker-restaurant.png";
					MonPointeur.shadow = "";
			} else {
				MonPointeur.image = "../images/googlemap/marker.png";
				MonPointeur.shadow = "";
			}
			return MonPointeur;
		}

		function createMarker(marker,type,nom,img,point,descriptif,lien) {
			var marker = new GMarker(point,markerStyle(type));
			if (lien != "") {
				GEvent.addListener (marker, "mouseup", function() { 
					marker.openInfoWindowHtml("<div style='width:250px;overflow:auto;text-align:left'><strong style='color:#F36000;'>" + nom + "</strong><div style='width:110px;height:80px;float:right;padding:2px 0 2px 5px;'>" + img + "</div>" + descriptif + "</div><a href='http://" + lien + "'>En savoir plus</a>" ); 
				});
			} else {
				GEvent.addListener (marker, "mouseup", function() { 
					marker.openInfoWindowHtml("<div style='width:250px;overflow:auto;text-align:left;'><strong style='color:#F36000;'>" + nom + "</strong><div style='width:110px;height:80px;float:right;padding:2px 0 2px 5px;'>" + img + "</div>" + descriptif + "</div>" ); 
				});
			}
			return marker;
		}

		GDownloadUrl(varUrlData, function(data, responseCode) {
			var xml = GXml.parse(data);
			var element = xml.documentElement.getElementsByTagName("googlemaps");
			if (element.length > 0) {
				for (var i=0 ; i < element.length ; i++) {
					 var identifiant = new String(element[i].getAttribute("identifiant"));
					 var type = new String(element[i].getAttribute("type"));
					 var nom = new String(element[i].getAttribute("nom"));
					 var img = new String(element[i].getAttribute("img"));
					 var descriptif = new String(element[i].getAttribute("descriptif"));
					 var lien = new String(element[i].getAttribute("lien"));
					 var latitude = new String(element[i].getAttribute("latitude"));
					 var longitude = new String(element[i].getAttribute("longitude"));
					 var point = new GLatLng(parseFloat(latitude), parseFloat(longitude));
					 if ((latitude.length > 0) && (longitude.length > 0)) {
						map.addOverlay(createMarker(identifiant,type,nom,img,point,descriptif,lien));
					 }
				}
				document.getElementById("maploading").style.display = "none";
			} else {
				document.getElementById("maploading").className = "nodata";
				document.getElementById("maploading").innerHTML = "Aucun r&eacute;sultat ne correspond à votre recherche : <br/><b>choisissez de nouveaux crit&egrave;res de recherche</b>";
			}
		});
	}
}

//------------------------------------------------------------------
// Lancement de la recherche associée à la carte
//--- Lancement depuis le mini formulaire de rechecherche
function funcGoogleMapsLoad(varId) {
//	GoogleMapsLoad("../_inc/CPN_OffresListe.asp?case=homexml&url=%2Fpreparer%2Dmon%2Dsejour%2Ffiche%2Easp&"+window.document.getElementById(varId).value);
	window.document.getElementById(varId).checked='checked';
	funcGoogleMapsHome(escape("/preparer-mon-sejour/fiche.asp"));
}

//--- Lancement automatique de la recherche si l'une des cases à cocher du mini formulaire de la page d'accueil est active (ex : dans le cas d'un go back du navigateur)
function funcGoogleMapsHome(varUrl) {
	// Déclaration des variables
	var objForm = document.getElementById("RechercheMini"); // Objet mini formulaire de rechecherche
	var strParam = "";
	// Boucle sur les cases à cocher du formulaire
	for(i=0; i<objForm.length; i++) {
		// Si une case est cochée, mémorisation du paramètre de recherche
		if(objForm[i].checked) {
			strParam = objForm[i].value;
		}
	}
	// Chargement de la GoogleMaps
	//--- Appel des données recherchées
	if(strParam != "") {
		GoogleMapsLoad("../_inc/CPN_OffresListe.asp?case=homexml&url="+ varUrl +"&"+ strParam);
	//--- Appel des données par défaut >> celles issues des coups de coeur
	} else {
		GoogleMapsLoad("../_inc/CPN_NewsList.asp?case=xml&url="+ varUrl +"&profil=16");
	}
}

function funcReplaceSpec(varStr) {
	var strCarac = "à,ä,â,é,è,ë,ê,ï,î,ö,ô,ù,ü,û,ÿ,&,#,\',\&acute;,{,(,[,|,`,^,@,),],=,},°,+,>,<,?,.,;,:,§,!,ù,*,µ,$,£";
	var tabCarac = strCarac.split(",");
	for(j=0; j<tabCarac.length; j++) {
		while(varStr.indexOf(tabCarac[j]) > 0) {
			alert(varStr +" >> "+ tabCarac[j] +" // "+ varStr.indexOf(tabCarac[j]));
			varStr = varStr.replace(tabCarac[j], "_");
		}
	}
	return varStr;
}
