//Contient le parametrage et les fonctions de la carto
var markers= new Array(); //Contiendra les markers affich? sur la carte
var defaultIcon= G_DEFAULT_ICON;


var map;
var geoXml = new GGeoXml("http://www.paysmellois.org/acogit_client_website/views/default_view/htdocs/js/paysmellois.kml");

//Celui la servait pour le zoom automatique sur le panier. J'ai abandonn?cette fonctionalit?pour l'instant
//var bounds = new GLatLngBounds();


function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(46.17888,-0.101624), 10);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
                map.enableContinuousZoom();
		affiche("PANIER");

                affiche("SELECTED");


map.addOverlay(geoXml);


	}
}


function mapzoom(lat,lng,zoom) {
	map.setCenter(new GLatLng(lat, lng), zoom);
}


function calque_check(node) {
	if (node.checked) {
		affiche(node.name);
	}
	else {
		efface(node.name);
	}
}


function affiche (id) { // T?l?charge le KML et affiche
	if (markers[id]) {
		if (markers[id].length==0) {
			//Si les markers ne sont pas cach?s
			load_calque(id);
		}
		for (var i = 0; i <markers[id].length; i++) {
	         	      map.addOverlay(markers[id][i]);
		}


               // if (id=="PANIER") {
                 //           alert('Je recentre');
                   //         map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
                     //   }
	}
}

function efface(id) {
	//Effacer les markers du calque
	for (var i = 0; i <markers[id].length; i++) {

	         	      map.removeOverlay(markers[id][i]);
	}


}


function load_calque(id) {
	GDownloadUrl(liste_calques[id]["url"],
		function(data,responseCode) {
			markers[id]=new Array();
                        var xml = GXml.parse(data);
			var id=xml.documentElement.getElementsByTagName("name")[0].firstChild.nodeValue;
			var placemarks = xml.documentElement.getElementsByTagName("Placemark");
			for(var i = 0; i < placemarks.length; i++) {
				var point = placemarks[i].getElementsByTagName("Point")[0];
				var coords = point.getElementsByTagName("coordinates")[0].firstChild.nodeValue;
				coords = coords.split(",");



				var description = placemarks[i].getElementsByTagName("description")[0].firstChild.nodeValue;

				var point = new GPoint(parseFloat(coords[0]), parseFloat(coords[1]));

                                //Je g?re dans la suite le traitement du marker suivant le calque
                                if (id=="SELECTED") {
                                          var marker = createMarker(point, description,defaultIcon);
                                }
                                else {
                                    if (id!="PANIER") {
				       var marker = createMarker(point, description,icones[id]);
				    }
				    else {
					var icone=new GIcon(defaultIcon);
					icone.image="/map_icons/numbered/marker" +  (i + 1)  +".png";
					var marker = createMarker(point, description,icone);

                                        //bounds.extend(new GLatLng(parseFloat(coords[0]), parseFloat(coords[1])));
				        var name = placemarks[i].getElementsByTagName("name")[0].firstChild.nodeValue;
                                        //Je vais abonder la liste d'objets
                                        var divobjet=document.getElementById('liste_objets');
                                        divobjet.innerHTML= divobjet.innerHTML +"<div class='oi' ><img src='"+icone.image+"' />" + "<b><a href='javascript:markers[\"PANIER\"]["+ i +"].showMapBlowup()' >" + name + "</a></b>"  + description + "</div>";
				    }
                                }
				//map.addOverlay(marker);
                                markers[id].push(marker);

			}
			affiche(id); //Comme je suis asynchrone, je refait un affichage a la fin du download

		        if (id=="SELECTED") {

                               map.setCenter(markers[id][0].getPoint(),10);
                                //Celui la ouvrait le zoom dans une bulle sur le point selectionne
                                //markers[id][0].showMapBlowup();
                                //map.savePosition();
                            }

		}
		);
}



function createMarker(point,text,icon) {
	var marker = new GMarker( point, icon);
	GEvent.addListener(marker, "click", function() {
	var infoTabs = [
		new GInfoWindowTab("Infos", "<div class='infobulle'>"+text+"</div>" ),
		new GInfoWindowTab("Y aller", "<form action='http://maps.google.fr/maps' target='_blank' ><input type='hidden' name='daddr' value='" + point.y +" " +point.x +"' />Adresse de d&eacute;part :<br /><br /><input type='text' size='40' name='saddr' /><br /><font size='2' >[Ex: \"Place Bujault, 79500 Melle\"]</font><br /><input type='submit' name='recherche' value='Calculer' /></form>")
		];
		marker.openInfoWindowTabsHtml(infoTabs);
	});

	return marker;
}


