var mapDiv=document.getElementById('mapDiv');
var panelGolfs=document.getElementById('panel_golf');
var panelHotels=document.getElementById('panel_hotel');
var map;
var hotels;
var golfs;
var clustererGolf;
var clustererHotel;

var hotelIcon=new GIcon(G_DEFAULT_ICON);
hotelIcon.image = "http://fr.federal-hotel.com/images/puce-hotel.png" ;
hotelIcon.shadow = "http://fr.federal-hotel.com/images/ombre.png";
hotelIcon.iconSize = new GSize(33, 42);
hotelIcon.shadowSize = new GSize(52, 42);
hotelIcon.iconAnchor = new GPoint(0, 42);
hotelIcon.infoWindowAnchor = new GPoint(0, 42);
hotelIcon.infoShadowAnchor = new GPoint(2, 42);

var residenceIcon=new GIcon(G_DEFAULT_ICON);
residenceIcon.image = "http://fr.federal-hotel.com/images/puce-resid.png" ;
residenceIcon.shadow = "http://fr.federal-hotel.com/images/ombre.png";
residenceIcon.iconSize = new GSize(33, 42);
residenceIcon.shadowSize = new GSize(52, 42);
residenceIcon.iconAnchor = new GPoint(0, 42);
residenceIcon.infoWindowAnchor = new GPoint(0, 42);
residenceIcon.infoShadowAnchor = new GPoint(2, 42);

var hotelClusterIcon=new GIcon(G_DEFAULT_ICON);
hotelClusterIcon.image = "http://fr.federal-hotel.com/images/groupe-hotels.png" ;
hotelClusterIcon.iconSize = new GSize( 40, 50 );
hotelClusterIcon.shadowSize = new GSize( 56, 51 );
hotelClusterIcon.iconAnchor = new GPoint( 20, 25 );
hotelClusterIcon.infoWindowAnchor = new GPoint( 13, 3 );
hotelClusterIcon.infoShadowAnchor = new GPoint( 27, 37 );

var golfClusterIcon=new GIcon(G_DEFAULT_ICON);
golfClusterIcon.image = "http://fr.federal-hotel.com/images/groupe-golf.png" ;
golfClusterIcon.iconSize = new GSize( 40, 45 );
golfClusterIcon.iconAnchor = new GPoint( 20, 45 );
golfClusterIcon.infoWindowAnchor = new GPoint( 20, 50 );

var golfIcon=new GIcon(G_DEFAULT_ICON);
golfIcon.image='http://fr.federal-hotel.com/images/icon_golf.png';
golfIcon.shadow='';
golfIcon.iconSize = new GSize(17, 21);
golfIcon.iconAnchor = new GPoint(8, 21);
golfIcon.infoWindowAnchor = new GPoint(7, 25);

function SetupG(){
	mapDiv=document.getElementById('mapDiv');
	try{
		if(!GBrowserIsCompatible()){
			mapDiv.innerHTML='Sorry, your browser is not compatible with Google Maps.';
			return;
		}

		map=new GMap2(mapDiv,{
			draggableCursor:'default'
		});
		
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		
		//clusterer seting-up
		clustererGolf=new Clusterer(map);
		clustererGolf.SetMaxVisibleMarkers(10);
		clustererGolf.SetMinMarkersPerCluster(6);
		clustererGolf.gridSize=5;
		clustererGolf.maxLinesPerInfoBox=10;
		clustererGolf.SetIcon(golfClusterIcon);
		clustererGolf.name='golf';
		clustererGolf.autoCenter=false;
		
		clustererHotel=new Clusterer(map);
		clustererHotel.SetMaxVisibleMarkers(10);
		clustererHotel.SetMinMarkersPerCluster(6);
		clustererHotel.gridSize=5;
		clustererHotel.maxLinesPerInfoBox=10;
		clustererHotel.SetIcon(hotelClusterIcon);
		clustererHotel.name='hotel';
		clustererHotel.autoCenter=false;

		map.setCenter(new GLatLng(46.980252,3.47168),5);
		map.setMapType(G_NORMAL_MAP);
		HttpGet('/GOLF/data.php',RequestChecker);
	}catch(e){
		alert(e);
	}
}

function RequestChecker(request){
	try{
		var xmlDoc=request.responseXML.documentElement;
		
		//parsing of hotels elements
		var hotelElements=xmlDoc.getElementsByTagName('hotel');
		hotels=[];
		for(var s=0;s<hotelElements.length;++s){
			var hotel=new Object();
			hotel.lat=parseFloat(hotelElements[s].getAttribute('lat'));
			hotel.lng=parseFloat(hotelElements[s].getAttribute('lng'));
			hotel.cat=parseFloat(hotelElements[s].getAttribute('cat'));
			hotel.id=hotelElements[s].getAttribute('id');
			hotel.etoiles=hotelElements[s].getAttribute('etoiles');
			hotel.lien=hotelElements[s].getAttribute('lien');
			hotel.location=new GLatLng(hotel.lat,hotel.lng);
			hotel.name=hotelElements[s].getAttribute('name');
			hotel.town=hotelElements[s].getAttribute('town');
			hotel.prix=hotelElements[s].getAttribute('prix');
			hotel.img=hotelElements[s].getAttribute('img');
			hotels.push(hotel);
		}
		hotels.sort(CompareNames);
		for(var s=0;s<hotels.length;++s){
			var hotel=hotels[s];
			if(hotel.cat==1){
				var marker=new GMarker(hotel.location,{
					icon:hotelIcon,title:hotel.name
				});
			}else if(hotel.cat==3){
				var marker=new GMarker(hotel.location,{
					icon:residenceIcon,title:hotel.name
				});
			}
			hotel.marker=marker;
			GEvent.addListener(marker,'click',MakeCaller(PopUpHotel,s));
			clustererHotel.AddMarker(marker,hotel.name,s);
		}
		
		//parsing of golf elements
		var golfElements=xmlDoc.getElementsByTagName('golf');
		golfs=[];
		for(var s=0;s<golfElements.length;++s){
			var golf=new Object();
			golf.lat=parseFloat(golfElements[s].getAttribute('lat'));
			golf.lng=parseFloat(golfElements[s].getAttribute('lng'));
			golf.location=new GLatLng(golf.lat,golf.lng);
			golf.id=golfElements[s].getAttribute('id');
			golf.parcours=golfElements[s].getAttribute('parcours');
			var reg=new RegExp("(#)","g");
			golf.parcours=golf.parcours.replace(reg,'<br>');
			golf.lien=golfElements[s].getAttribute('lien');
			golf.name=golfElements[s].getAttribute('name');
			golf.description=golfElements[s].getAttribute('description');
			golfs.push(golf);
		}
		golfs.sort(CompareNames);
		for(var s=0;s<golfs.length;++s){
			var golf=golfs[s];
			var marker=new GMarker(golf.location,{
				icon:golfIcon,title:golf.name
			});
			golf.marker=marker;
			GEvent.addListener(marker,'click',MakeCaller(PopUpGolf,s));
			clustererGolf.AddMarker(marker,golf.name,s);
		}

	}catch(e){
		//GLog.write('RequestCheckerHotels:\n'+Props(e));
	}
}


function createHtmlList(type,elementNumber){
	if(type=='golf'){
		var elementToDisplay=golfs[elementNumber];
		var html='<li><a href="javascript:PopUpGolf( '+elementNumber+' )">'+elementToDisplay.name+'</a></li>';
	}else if(type=='hotel'){
		var elementToDisplay=hotels[elementNumber];
		var link='<a href="javascript:PopUpHotel( '+elementNumber+' )">';
		var html='<li>'+link+elementToDisplay.name+'</a></li>';
	}
	return html;
}

function CompareNames(a,b){
	if(a.name<b.name)
		return-1;
	else if(a.name>b.name)
		return 1;
	else return 0;
}

function PopUpGolf(s){
	try{
		var golf=golfs[s];
		var html='<table class="infoWinStyle"><tr><td><b>'+golf.name+'</b><br> '+golf.description+'<br>'+golf.parcours+'</td></tr></table>';
		golf.marker.openInfoWindowHtml(html,{
			maxWidth:300
		});
	}catch(e){

	}
}

function PopUpHotel(s){
	try{
		var hotel=hotels[s];
		var html='<table class="infoWinStyle"><tr><td colspan="2"><b>'+hotel.name+' '+hotel.etoiles+'</b></td></tr><tr><td><img class="infoWinStyle_img" src="'+hotel.img+'" width="103" heigh="77"/></td><td>Ville : <b>'+hotel.town+'</b><br>';
		if(hotel.prix>0){
			html+='Prix à partir de : '+hotel.prix+' euros<br>';
		}
		html += '<div class="action-link">';
		html += '<a href="'+hotel.lien+'" style="text-decoration:none;" target="_blank"><img src="http://www.federal-hotel-luxe.fr/images/ico_savoir.gif" border="0" />&nbsp;&nbsp;<span style="text-decoration:underline;">En savoir plus</span></a><br>';
		html += '<a href="#" onclick="selectionCaddy(\'add\',\''+hotel.id+'\'); alert(\'Hotel ajouté dans votre sélection.\');" style="text-decoration:none;"><span style="text-decoration:none;"><img src="http://www.federal-hotel-luxe.fr/images/accept.gif" border="0" />&nbsp;&nbsp;<span style="text-decoration:underline;">Ajouter à ma sélection</span></a>';
		html +='</div></td></tr></table>';
		hotel.marker.openInfoWindowHtml(html,{
			maxWidth:300
		});
	}catch(e){

	}
}