var baseIcon = new GIcon();
baseIcon.iconSize = new GSize(12, 20);
baseIcon.shadowSize = new GSize(22, 20);
baseIcon.iconAnchor = new GPoint(6, 20);
baseIcon.infoWindowAnchor = new GPoint(5, 1);
 
var i;
var uri;
var fromXmlMarkers = Array();
var onMapMarkers = Array();
var mapInfo = Array();
var map;
var timeOut;
timeOut = 1;
var saveChaine = '';
var savePays = '';
var saveMois = '';

function onLoad(pays,chaine,mois) {
	if(pays==''){
		pays = savePays;
	}
	else{
		savePays = pays;
	}

	if(pays=='monde'||pays==undefined){
		document.getElementById("choix_monde").className = 'active';
		document.getElementById("choix_france").className = '';
	}
	else{
		document.getElementById("choix_france").className = 'active';
		document.getElementById("choix_monde").className = '';
	}
  if (GBrowserIsCompatible()) {
	// on Initialise
	map = new GMap2(document.getElementById("map"));

	// On definit les controles
	map.addControl(new GLargeMapControl());
    //map.addControl(new GOverviewMapControl());
	map.addControl(new GMapTypeControl());
	if(pays=='monde'){
		var center = new GLatLng(40.44694705960048, 13.359375);
		map.setCenter(center, 1);
	}else{
		var center = new GLatLng(46.92025531537451, 2.08740234375);
		map.setCenter(center, 5);		
	}

	loadData(chaine,mois) // On load la premiere fois
	//GEvent.addListener(map, "moveend", function() {loadData(chaine,mois);});
}
}
function loadData (chaine,mois) {

	if(chaine==undefined){
		chaine = saveChaine;
	}
	else{
		saveChaine = chaine;
	}
	if(mois==undefined){
		mois = saveMois;
	}
	else{
		saveMois = mois;
	}
	//On met en avant ce qui a été selectionné dans le calendrierÇ
	for(i=1;i<=12;i++){
		document.getElementById("date"+i).className = '';
	}
	if(mois!=0&&mois!=undefined&&mois!=''){
		document.getElementById("date"+mois).className = 'active';
	}
	// //////////////
	
	i=0;
	uri='./_common/generateXml.asp?send=1'+chaine;
	var request = GXmlHttp.create(); 
	request.open("GET",uri,true);
	// Chargement des Markers
	request.onreadystatechange = function() {
		if (request.readyState == 4) {	
			var xmlDoc = request.responseXML;
			fromXmlMarkers = xmlDoc.documentElement.getElementsByTagName("marker");
			mapMarkerRecursive();
			//request.onreadystatechange = processReqChange;
			onMapMarkers = Array(); // on reset les markers visibles
		}
  	}
 	request.send(null);	
}

function mapMarkerRecursive() {
//alert(fromXmlMarkers.length);
	if ( i < fromXmlMarkers.length) {	
		var marker = createMarker(fromXmlMarkers[i]);				// create point	
		map.addOverlay(marker);
		i++;
		mapMarkerRecursive()
	}
}

// Creates a marker whose info window displays the given number
function createMarker(m) {
	var icon = new GIcon(baseIcon);
//alert(m.getAttribute("type"));
	switch (m.getAttribute("type")) {
		case "2":
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
   		break;
  		case "4":
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	   	break;
  		case "5":
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_purple.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	   	break;
  		case "6":
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_brown.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	   	break;
  		case "7":
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	   	break;
		default:
			icon.image = "http://labs.google.com/ridefinder/images/mm_20_black.png";
			icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";		
		break;
	}
	var point = new GPoint(parseFloat(m.getAttribute("lng")),parseFloat(m.getAttribute("lat")))
	var marker = new GMarker(point,icon);

	GEvent.addListener(marker, "click", function() {	
		//marker.openInfoWindowHtml('<b><a href="detail-voyage.asp?voyage_id='+m.getAttribute("id")+'">'+m.getAttribute("pseudo")+'</a></b><br/>'+m.getAttribute("soustitre")+'<br/><br/><span style="color:#FD7D18">Th&egrave;me : </span>'+m.getAttribute("theme_libelle"));
		//marker.openInfoWindowHtml('<b><a href="detail-voyage.asp?voyage_id='+m.getAttribute("id")+'">'+m.getAttribute("pseudo")+'</a></b>');
		//<h3 onclick="document.location="detail-voyage.asp?voyage_id=39">
		marker.openInfoWindowHtml('<p class="titremaps" onclick="document.location=\'detail-voyage.asp?voyage_id='+m.getAttribute("id")+'\'">'+m.getAttribute("pseudo")+'</p><table style="width:300px;height:100px"><tr><td colspan="2" height="30"> '+m.getAttribute("soustitre")+'</td></tr><tr><td style="width:240px"><p><b style="color:#FD7D18">Lieu : </b>'+m.getAttribute("destination_libelle")+'</p><p><b style="color:#FD7D18">Th&egrave;me : </b>'+m.getAttribute("theme_libelle")+'</p></td><td style="width:60px"><p class="pmaps"><img src="'+m.getAttribute("photo")+'" class="img" /></td></tr><tr><td colspan="2" style="text-align:right"><p class="mapsBout" onclick="document.location=\'detail-voyage.asp?voyage_id='+m.getAttribute("id")+'\'" title="Voir le détail du voyage"><img src="/images/bout_detailGmaps.gif" alt="Voir le détail du voyage" /></p></td></tr></table><p>&nbsp;</p>');
	});  
	return marker;
}


// Fonctions internes au nom explicite... rien d'interessant ;-p
function inArray(elt, array) {
	for (l in array) {
		if (array[l] == elt) {
			return true;
		}
	}
	return false;
} 

function isVisible(array,point) {
	var lat = point[0];
	var	lng = point[1];
	return ( 	(map.getBounds().getSouthWest().lat() <= lat) && 
					(lat <= map.getBounds().getNorthEast().lat()) &&
				  (map.getBounds().getSouthWest().lng() <= lng) && 
					(lng <= map.getBounds().getNorthEast().lng()) ) 
}

function createHtml(marker) {
	var html = m.getAttribute("ID");
	return html;
}