var obj_carte = false ;

var a_groupes = new Array() ;
var a_groupes_musees = new Array() ;

function carte_musee_mouseover(l_marker)
	{
	// changement de marqueur au mousover
	l_marker.setImage("/xox/images/carteinteractive/marqueur.png") ;
	html_texte = "<h1>"+l_marker.donnees.nom+"</h1><p>"+l_marker.donnees.adresse+"<br />"+l_marker.donnees.adresse_codepostal+" "+l_marker.donnees.adresse_localite+"</p><p class=\"note\">Cliquez pour aller au musée</p>" ;
	if ( l_marker.donnees.vignette == "1" )
		{
		html = "<img src=\"http://media.museesmidipyrenees.fr/images/musees/"+l_marker.donnees.code+"/photo_vignette.jpg\" alt=\"\" width=\"80\" height=\"105\" border=\"0\" /><div class=\"texte\">"+html_texte+"</div>"
		}
	else
		{
		html = "<div class=\"texte sansvignette\">"+html_texte+"</div>"
		}
	l_marker.openExtInfoWindow(obj_carte,"carteinteractive_musee",html,{beakOffset:-5}) ;
	}

function carte_musee_mouseout(l_marker)
	{
	if ( l_marker.donnees.code != carte_musee )
		{
		// changement de marqueur au mousout
		l_marker.setImage("/xox/images/carteinteractive/marqueur_"+l_marker.donnees.departement+".png") ;
		}
	l_marker.closeExtInfoWindow(obj_carte) ;
	}

function carte_musee_click(l_marker)
	{
	window.location.href = "/musees/"+l_marker.donnees.code+"/" ;
	}

function carte_groupe_mouseover(l_marker)
	{
	// changement de marqueur au mousover
	l_marker.setImage("/xox/images/carteinteractive/marqueur_groupe.png") ;
	html_texte_musees = l_marker.donnees.musees.split(";") ;
	html_texte_musees_total = html_texte_musees.length ;
	html_texte_musees = html_texte_musees.join("</li><li>") ;
	html_texte = "<h1>"+l_marker.donnees.nom+" ("+html_texte_musees_total+" musées)</h1><ul><li>"+html_texte_musees+"</li></ul><p class=\"note\">Cliquez pour découvrir ces "+html_texte_musees_total+" musées</p>" ;
	html = "<div class=\"texte sansvignette\">"+html_texte+"</div>"
	l_marker.openExtInfoWindow(obj_carte,"carteinteractive_musee",html,{beakOffset:-5}) ;
	}

function carte_groupe_mouseout(l_marker)
	{
	l_marker.setImage("/xox/images/carteinteractive/marqueur_"+l_marker.donnees.departement+"_groupe.png") ;
	l_marker.closeExtInfoWindow(obj_carte) ;
	}

function carte_groupe_click(l_marker)
	{
	l_zoom = 15 ;
	if ( l_marker.donnees.code == "toulouse" )
		{
		l_zoom = 13 ;
		}
	obj_carte.setCenter(l_marker.getLatLng(),l_zoom) ;
	}

function carte()
	{
	// gestion de la mémoire
	window.onunload = GUnload ;

	// instanciation d'un objet google maps à la place de l'élément map
	obj_carte = new GMap2(document.getElementById("carte")) ;
	// centrage de la carte et niveau de zoom par défaut
	obj_carte.setCenter(new GLatLng(carte_centre_lat,carte_centre_lng),carte_zoom) ;

	// activation du zoom par molette
	obj_carte.enableScrollWheelZoom() ;
	// activation du zoom en fondu
	obj_carte.enableContinuousZoom() ;
	// affichage des boutons de déplacement et de zoom
	obj_carte.addControl(new GLargeMapControl()) ;
	// affichage des boutons de sélection du type de carte
	obj_carte.addControl(new GMenuMapTypeControl()) ;
	// affichage de l'échelle de la carte
	obj_carte.addControl(new GScaleControl()) ;

	// resolution minimale
	G_NORMAL_MAP.getMinimumResolution = function() { return 2 ; }
	// resolution minimale
	G_HYBRID_MAP.getMinimumResolution = function() { return 2 ; }
	// resolution minimale
	G_SATELLITE_MAP.getMinimumResolution = function() { return 2 ; }

	// ajout du type relief
	obj_carte.addMapType(G_PHYSICAL_MAP) ;
	// redéfinition de la résolution maximale du type de carte relief
	G_PHYSICAL_MAP.getMaximumResolution = function() { return 15 ; }
	// resolution minimale
	G_PHYSICAL_MAP.getMinimumResolution = function() { return 2 ; }

	// récupération des contours des départements
	obj_carte.addOverlay(new GGeoXml("http://www.musees-midi-pyrenees.fr/carte-interactive/kml/departements.kml"+"?nocache="+(new Date()).getTime().toString())) ;
	
	var carte_musee_point = new Array() ;

	GDownloadUrl("/carte-interactive/xml/musees.php",function(data,responseCode)
		{
		var xml = GXml.parse(data) ;
		var musees = xml.documentElement.getElementsByTagName("musee") ;
		var carte_icone = new Array() ;
		carte_icone[''] = new GIcon(G_DEFAULT_ICON,"/xox/images/carteinteractive/marqueur.png") ;
		
		for ( var i = 0 ; i < musees.length ; i++ )
			{
			if ( ! ( carte_icone[musees[i].getAttribute("departement")] ) )
				{
				carte_icone[musees[i].getAttribute("departement")] = new GIcon(G_DEFAULT_ICON,"/xox/images/carteinteractive/marqueur_"+musees[i].getAttribute("departement")+".png") ;
				}
			var point = new GLatLng(parseFloat(musees[i].getAttribute("point_lat")),parseFloat(musees[i].getAttribute("point_lng"))) ;

			var marker = new GMarker(point,{icon:carte_icone[musees[i].getAttribute("departement")]}) ;

			carte_musee_point[i] = {} ;
			carte_musee_point[i].point = marker ;
			carte_musee_point[i].coords = point ;
			carte_musee_point[i].groupe = -1 ;

			marker.donnees = {}
			marker.donnees.code = musees[i].getAttribute("code")
			marker.donnees.nom = musees[i].getAttribute("nom")
			marker.donnees.adresse = musees[i].getAttribute("adresse")
			marker.donnees.adresse_codepostal = musees[i].getAttribute("adresse_codepostal")
			marker.donnees.adresse_localite = musees[i].getAttribute("adresse_localite")
			marker.donnees.vignette = musees[i].getAttribute("vignette")
			marker.donnees.departement = musees[i].getAttribute("departement") ;
			marker.donnees.groupe = musees[i].getAttribute("groupe") ;
		
			obj_carte.addOverlay(marker) ;

			if ( marker.donnees.groupe != "" )
				{
				a_groupes_musees.push(marker) ;
				marker.hide() ;
				}

			GEvent.addListener(marker,"mouseover",function(){carte_musee_mouseover(this);}) ;
			GEvent.addListener(marker,"mouseout",function(){carte_musee_mouseout(this);}) ;
			//GEvent.addListener(marker,"click",function(){carte_musee_click(this)}) ;
			GEvent.addListener(marker,"click",function(){carte_musee_click(this)}) ;
			
			if ( musees[i].getAttribute("code") == carte_musee )
	{
	obj_carte.setCenter(point,12)
	obj_carte.setMapType(G_NORMAL_MAP) ;
	carte_musee_mouseover(marker) ;
	}

			}
			

			
		}) ;

	// récupération des points groupés
	GDownloadUrl("/carte-interactive/xml/musees_groupes.php",function(data,responseCode)
		{
		var xml = GXml.parse(data) ;
		var groupes = xml.documentElement.getElementsByTagName("groupe") ;
		var carte_icone = new Array() ;
		carte_icone[''] = new GIcon(G_DEFAULT_ICON,"/xox/images/carteinteractive/marqueur_groupe.png") ;
		
		for ( var i = 0 ; i < groupes.length ; i++ )
			{
			if ( ! ( carte_icone[groupes[i].getAttribute("departement")] ) )
				{
				carte_icone[groupes[i].getAttribute("departement")] = new GIcon(G_DEFAULT_ICON,"/xox/images/carteinteractive/marqueur_"+groupes[i].getAttribute("departement")+"_groupe.png") ;
				}
			var point = new GLatLng(parseFloat(groupes[i].getAttribute("point_lat")),parseFloat(groupes[i].getAttribute("point_lng"))) ;

			var marker = new GMarker(point,{icon:carte_icone[groupes[i].getAttribute("departement")]}) ;

			carte_musee_point[i] = {} ;
			carte_musee_point[i].point = marker ;
			carte_musee_point[i].coords = point ;
			carte_musee_point[i].groupe = -1 ;

			marker.donnees = {}
			marker.donnees.code = groupes[i].getAttribute("code")
			marker.donnees.nom = groupes[i].getAttribute("nom")
			marker.donnees.departement = groupes[i].getAttribute("departement") ;
			marker.donnees.musees = groupes[i].getAttribute("musees") ;
			
			obj_carte.addOverlay(marker) ;
			
			a_groupes.push(marker) ;

			GEvent.addListener(marker,"mouseover",function(){carte_groupe_mouseover(this);}) ;
			GEvent.addListener(marker,"mouseout",function(){carte_groupe_mouseout(this);}) ;
			//GEvent.addListener(marker,"click",function(){carte_musee_click(this)}) ;
			GEvent.addListener(marker,"click",function(){carte_groupe_click(this)}) ;
			}

		}) ;

/*
		// récupération des points groupés
	GDownloadUrl("/carte-interactive/xml/departements.php",function(data,responseCode)
		{
		var xml = GXml.parse(data) ;
		var groupes = xml.documentElement.getElementsByTagName("musee") ;
		var carte_icone = new Array() ;
		carte_icone[''] = new GIcon(G_DEFAULT_ICON,"/xox/images/carteinteractive/bouton_tarn.png") ;
		carte_icone[''].iconSize = new GSize(50,30);
		
		for ( var i = 0 ; i < groupes.length ; i++ )
			{
			var point = new GLatLng(parseFloat(groupes[i].getAttribute("point_lat")),parseFloat(groupes[i].getAttribute("point_lng"))) ;
			var marker = new GMarker(point,{icon:carte_icone['']}) ;

			carte_musee_point[i] = {} ;
			carte_musee_point[i].point = marker ;
			carte_musee_point[i].coords = point ;
			carte_musee_point[i].groupe = -1 ;

			marker.donnees = {}
			marker.donnees.code = groupes[i].getAttribute("code")
			marker.donnees.nom = groupes[i].getAttribute("nom")
			marker.donnees.departement = groupes[i].getAttribute("departement") ;
			marker.donnees.musees = groupes[i].getAttribute("musees") ;
			
			obj_carte.addOverlay(marker) ;
			
			}

		}) ;
*/

	// affichage par défaut de la carte en mode relief
	obj_carte.setMapType(G_PHYSICAL_MAP) ;
	
	GEvent.addListener(obj_carte,"zoomend",function(oldLevel,newLevel){
		if ( newLevel < 12 )
			{
			for ( i in a_groupes_musees )
				{
				a_groupes_musees[i].hide() ;
				}
			for ( i in a_groupes )
				{
				a_groupes[i].show() ;
				}
			}
		if ( newLevel >= 12 )
			{
			for ( i in a_groupes )
				{
				a_groupes[i].hide() ;
				}
			for ( i in a_groupes_musees )
				{
				a_groupes_musees[i].show() ;
				}
			}
		}) ;
	}

