/*
window.onload=function(){
	if(GBrowserIsCompatible()){
		loadMap();
	}
};
*/

window.onunload=function(){
	GUnload();
};

var map;
var markersManager;

function loadMap(gps_lat,gps_long){
	map=new GMap2(document.getElementById("block-map-loisirs_data_map"));
	map.setCenter(new GLatLng(gps_lat,gps_long), 8);
	map.addControl(new GLargeMapControl(), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10, 10)));
	markersManager=new MarkerManager(map);
	parseXml();
}

function parseXml(){
	var elt=document.forms['formCriteres'].elements;
	//if(elt['lieu_ville_id']){ alert(''+elt['lieu_ville_id'].value);}
	var tMarkers=new Array();
	var center=new Array();
	var d = new Date();
	GDownloadUrl(public_root+"contenu/markers.xml?v="+d.getTime(),function(data){
		var xml=GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName('marker');
		
		for(var i=0;i<markers.length;i++){
			var loisirs=new Array();
			
			loisirs['id']=markers[i].getAttribute('id');
			loisirs['titre']=markers[i].getAttribute('titre');
			loisirs['gps_lat']=markers[i].getAttribute('gps_lat');
			loisirs['gps_long']=markers[i].getAttribute('gps_long');
			
			loisirs['adresse']=markers[i].getAttribute('adresse');
			loisirs['cp']=markers[i].getAttribute('cp');
			loisirs['ville']=markers[i].getAttribute('ville');
			
			loisirs['url']=markers[i].getAttribute('url');
			
			loisirs['critere_saison_id']=markers[i].getAttribute('critere_saison_id');
			loisirs['critere_categorie_id']=markers[i].getAttribute('critere_categorie_id');
			
			loisirs['lieu_pays_id']=markers[i].getAttribute('lieu_pays_id');
			loisirs['lieu_region_id']=markers[i].getAttribute('lieu_region_id');
			loisirs['lieu_district_id']=markers[i].getAttribute('lieu_district_id');
			loisirs['lieu_ville_id']=markers[i].getAttribute('lieu_ville_id');
			
			loisirs['region_id']=markers[i].getAttribute('region_id');
			
			loisirs['critere_public_id']=markers[i].getAttribute('critere_public_id');
			loisirs['critere_prix_id']=markers[i].getAttribute('critere_prix_id');
			
			loisirs['critere_difficulte_id']=markers[i].getAttribute('critere_difficulte_id');
			loisirs['critere_distance_id']=markers[i].getAttribute('critere_distance_id');
			loisirs['critere_duree_id']=markers[i].getAttribute('critere_duree_id');
			loisirs['critere_altitude_id']=markers[i].getAttribute('critere_altitude_id');
			loisirs['critere_boucle_id']=markers[i].getAttribute('critere_boucle_id');
			
			if(critereMatch(loisirs)){
				var point=new GLatLng(loisirs['gps_lat'],loisirs['gps_long']);
				if(point){
					if(loisirs['gps_lat']<center['latMini'] || !center['latMini']){
						center['latMini']=loisirs['gps_lat'];
					}
					if(loisirs['gps_lat']>center['latMaxi'] || !center['latMaxi']){
						center['latMaxi']=loisirs['gps_lat'];
					}
					if(loisirs['gps_long']<center['longMini'] || !center['longMini']){
						center['longMini']=loisirs['gps_long'];
					}
					if(loisirs['gps_long']>center['longMaxi'] || !center['longMaxi']){
						center['longMaxi']=loisirs['gps_long'];
					}
					
					var myIcon=getIcon(loisirs['critere_categorie_id']);
					var markerOptions={icon: myIcon};
					
					var tooltip="<div><div class='float-left' style='width:60px; padding:5px;height:60px;'><img src='"+public_root+"contenu/thumb/"+loisirs['id']+".jpg' alt='"+loisirs['titre']+"' style='width:100%; height:100%;' /></div><div class='float-left' style='width:200px; padding:5px;'><div style='font-size:0.9em; font-weight:bold; color:#e14906;'><h2 style='font-size:1em;'><a href='"+loisirs['url']+"'>"+loisirs['titre']+"</a></h2></div><div style='font-size:0.8em; color:#000000; margin-top:5px;'>"+loisirs['adresse']+"<br />"+loisirs['cp']+" "+loisirs['ville']+"</div></div><div class='clear-both'></div></div>";
					var marker=createMarker(point,tooltip,markerOptions);
					tMarkers.push(marker);
				}
			}
		}
		markersManager.clearMarkers();
		if(tMarkers.length>0){
			var latCenter=(parseFloat(center['latMini'])+parseFloat(center['latMaxi']))/2;
			var longCenter=(parseFloat(center['longMini'])+parseFloat(center['longMaxi']))/2-0.1;
			map.setCenter(new GLatLng(latCenter, longCenter), getZoomLevel());
			markersManager.addMarkers(tMarkers,0,17);
			markersManager.refresh();
                        $('#block-map-loisirs_data_messages').fadeOut('fast');
		}
                else{
                    //$('.block-map-loisirs_data').append('<div id="block-map-loisirs_data_messages"><div id="block-map-loisirs_data_messages_content"><div id="block-map-loisirs_data_messages_content_close"><a href="#">X</a></div><div class="float-left" style="margin-right:10px;"><img src="/images/picto_warning.png" alt="Attention" /></div><div class="float-left">Aucun résultat ne correspond aux critères sélectionnés.<br />Utilisez le formulaire mis à votre disposition pour affiner votre recherche.</div><div class="clear-both"></div></div></div>');
                    $('.block-map-loisirs_data').append('<div id="block-map-loisirs_data_messages"><div id="block-map-loisirs_data_messages_content"><div id="block-map-loisirs_data_messages_content_close"><a href="#">X</a></div><div class="float-left" style="margin-right:10px;"><img src="/images/picto_warning.png" alt="Attention" /></div><div class="float-left">'+text_no_result+'</div><div class="clear-both"></div></div></div>');
                    $('#block-map-loisirs_data_messages_content_close a').click(function(){ $('#block-map-loisirs_data_messages').fadeOut('fast'); return false;});
                    setTimeout(function(){ $('#block-map-loisirs_data_messages').fadeIn('slow');},1000);
                }
	});
	
}


function getZoomLevel(){
	var elt=document.forms['formCriteres'].elements;
	var zoom=9;
	if((elt['lieu_region_id'] && elt['lieu_region_id'].value=='62')){
		zoom=8;
	}
	return zoom;
}

function critereMatch(t){
	var elt=document.forms['formCriteres'].elements;
	
	var critere_saison_id=elt['critere_saison_id_1'].checked?elt['critere_saison_id_1'].value:elt['critere_saison_id_2'].value;
	if(t['critere_saison_id']!=critere_saison_id && critere_saison_id!='' && t['critere_saison_id']!=''){
		return false;
	}
	if(elt['critere_categorie_id'] && t['critere_categorie_id']!=elt['critere_categorie_id'].value && elt['critere_categorie_id'].value!=''){
		return false;
	}
	
	if(elt['lieu_pays_id'] && elt['lieu_pays_id'].value!='' && t['lieu_pays_id']!=elt['lieu_pays_id'].value){
		return false;
	}
	if(elt['lieu_region_id'] && elt['lieu_region_id'].value!='' && t['lieu_region_id']!=elt['lieu_region_id'].value){
		return false;
	}
	/*
	if(elt['lieu_district_id'] && elt['lieu_district_id'].value!='' && t['lieu_district_id']!=elt['lieu_district_id'].value){
		return false;
	}
	*/
	if(elt['lieu_ville_id'] && elt['lieu_ville_id'].value!='' && t['lieu_ville_id']!=elt['lieu_ville_id'].value){
		return false;
	}
	if(elt['region_id'] && elt['region_id'].value!='' && t['region_id']!=elt['region_id'].value){
		return false;
	}
	
	if(elt['critere_public_id'] && t['critere_public_id']!=elt['critere_public_id'].value && elt['critere_public_id'].value!='' && t['critere_public_id']!=''){
		return false;
	}
	if(elt['critere_prix_id'] && t['critere_prix_id']!=elt['critere_prix_id'].value && elt['critere_prix_id'].value!=''){
		return false;
	}
	
	if(elt['critere_difficulte_id'] && t['critere_difficulte_id']!=elt['critere_difficulte_id'].value && elt['critere_difficulte_id'].value!=''){
		return false;
	}
	if(elt['critere_distance_id'] && t['critere_distance_id']!=elt['critere_distance_id'].value && elt['critere_distance_id'].value!=''){
		return false;
	}
	if(elt['critere_duree_id'] && t['critere_duree_id']!=elt['critere_duree_id'].value && elt['critere_duree_id'].value!=''){
		return false;
	}
	if(elt['critere_altitude_id'] && t['critere_altitude_id']!=elt['critere_altitude_id'].value && elt['critere_altitude_id'].value!=''){
		return false;
	}
	if(elt['critere_boucle_id'] && t['critere_boucle_id']!=elt['critere_boucle_id'].value && elt['critere_boucle_id'].value!=''){
		return false;
	}
	if(elt['titre'] && elt['titre'].value!='' && t['id']!=elt['titre'].value){
		return false;
	}
	
	if(elt['critere_categorie_id'].value=='' && (!elt['region_id'] || elt['region_id'].value=='') && (!elt['lieu_region_id'] || elt['lieu_region_id'].value=='') && (!elt['lieu_ville_id'] || elt['lieu_ville_id'].value=='') && (!elt['titre'] || elt['titre'].value=='') && (!elt['critere_public_id'] || elt['critere_public_id'].value=='') && (!elt['critere_prix_id'] || elt['critere_prix_id'].value=='')){
		return false;	
	}
	return true;
}

function getIcon(type){
	var markerImg;
	var markerShadow;
	switch(type){
		case '1':
			markerImg=public_root+"contenu/markers/marker_fun.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '2':
			markerImg=public_root+"contenu/markers/marker_decouverte.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '3':
			markerImg=public_root+"contenu/markers/marker_nature.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '4':
			markerImg=public_root+"contenu/markers/marker_musee.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '5':
			markerImg=public_root+"contenu/markers/marker_theatre.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '6':
			markerImg=public_root+"contenu/markers/marker_sport.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '7':
			markerImg=public_root+"contenu/markers/marker_detente.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '9':
			markerImg=public_root+"contenu/markers/marker_jeuxenfants.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '10':
			markerImg=public_root+"contenu/markers/marker_transports.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '11':
			markerImg=public_root+"contenu/markers/marker_hebergement.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '12':
			markerImg=public_root+"contenu/markers/marker_artisanat.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '13':
			markerImg=public_root+"contenu/markers/marker_weekend.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '14':
			markerImg=public_root+"contenu/markers/marker_excursion.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '15':
			markerImg=public_root+"contenu/markers/marker_picnic.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '16':
			markerImg=public_root+"contenu/markers/marker_raquettes.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '17':
			markerImg=public_root+"contenu/markers/marker_stations.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		case '18':
			markerImg=public_root+"contenu/markers/marker_toporando.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";
			break;
		default:
			markerImg=public_root+"contenu/markers/default.png";
			markerShadow=public_root+"contenu/markers/default_shadow.png";	
			break;						
	}		
	var myIcon = new GIcon();
	
	myIcon.image = markerImg;
	myIcon.shadow = markerShadow;
	myIcon.iconSize = new GSize(29, 36);
	myIcon.shadowSize = new GSize(40, 33);
	myIcon.iconAnchor = new GPoint(10, 30);
	myIcon.infoWindowAnchor = new GPoint(20, 0);
	return myIcon;
}

function createMarker(point,tooltip,markerOptions){
	var marker = new GMarker(point, markerOptions);
	GEvent.addListener(marker, 'click',function(){
		marker.openInfoWindowHtml(''+tooltip);
		});
	return marker;
}

function changeTitreCategorie(categorie,lang){
	var cat;
	switch(categorie){
		case '1':
			cat=lang=='fr'?'Fun / Divertissement':'Fun / Unterhaltung';
			break;
		case '2':
			cat=lang=='fr'?'Découverte / Curiosité':'Sehenswürdigkeiten';
			break;
		case '3':
			cat=lang=='fr'?'Nature / Animaux':'Natur / Tiere';
			break;
		case '4':
			cat=lang=='fr'?'Culture / Musée':'Kulturelles / Museen';
			break;
		case '5':
			cat=lang=='fr'?'Musique / théâtre':'Musik / Theater';
			break;
		case '6':
			cat=lang=='fr'?'Sport / Frissons':'Sport / Nervenkitzel';
			break;
		case '7':
			cat=lang=='fr'?'Détente / Bien-être':'Entspannung / Wellness';
			break;
		case '9':
			cat=lang=='fr'?'Places de jeux':'Spielplätze';
			break;
		case '10':
			cat=lang=='fr'?'Transports':'Transporte';
			break;
		case '11':
			cat=lang=='fr'?'Hébergement':'Übernachtungen';
			break;
		case '12':
			cat=lang=='fr'?'Bricolage / Artisanat':'Basteln / Handwerk';
			break;
		case '13':
			cat=lang=='fr'?'Idées week-end':'Wochenende Ausflugsideen';
			break;
		case '15':
			cat=lang=='fr'?'Places de pique-nique':'Picnic-Plätze';
			break;
		case '16':
			cat=lang=='fr'?'Raquettes':'Schneeschuhwandern';
			break;
		case '17':
			cat=lang=='fr'?'Stations de ski':'Skigebiete';
			break;
		case '18':
			cat=lang=='fr'?'Balades / Randonnées':'Spazieren / Wanderungen';
			break;
		default:
			cat=lang=='fr'?"Des centaines d'idées Loisirs":'Hunderte von Freizeit-Ideen';
	}
	$('#mapCategorie').html('<h1>'+cat+'<h1>');
}
