var map = null;
var geocoder = null;
var txt_gi       = '<div style="padding:0 0 0 20px; background:transparent url(/favico.ico) no-repeat;">Génération Internet<br />Hall 6<br />42 rue la Tour d\'Auvergne<br />44200 Nantes<br />Téléphone : 02 40 75 41 93</div>';
var txt_tram     = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/tram.png) no-repeat;">';
var txt_parking  = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/parking.png) no-repeat;">';
var txt_velo     = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/velo.png) no-repeat;"> : Bicloo<br />';
var txt_restau   = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/restau.png) no-repeat;">';
var txt_gare     = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/gare.png) no-repeat;">';
var txt_hotel    = '<div style="padding:0 0 0 20px; background:transparent url(/agence_communication_internet_nantes/hotel.png) no-repeat;">';

var marker = new Array(new Array(), new Array(), new Array(), new Array(), new Array(), new Array(), new Array());
var marker_type  = new Array('tram', 'parking', 'velo', 'restau', 'cafe', 'gare', 'hotel');
var marker_icone = new Array();

function setVisible(id) {
    map.setCenter(new GLatLng(47.209890192256225, -1.5568828582763672), 14);
	for (var j = 0; j < marker[id].length; j++)	{
		if(!marker[id][j].isHidden()) {
			marker[id][j].hide();
			$("#"+marker_type[id]+" img").removeClass("selected");
		} else {
			
			marker[id][j].show();
			$("#"+marker_type[id]+" img").addClass("selected");
		}
	}
	return false;
}
function hiddeAll() {
	for (var id = 0; id < marker.length; id++) {
		for (var j = 0; j < marker.length; j++)	{
			if(marker[id][j] != null) {
				marker[id][j].hide();
			}
		}
	}
}
function createMarker(latlng, description, type) {
	var buffer =  new GMarker(latlng, {icon:marker_icone[type]});
	marker[type].push(buffer);
	GEvent.addListener(buffer,"click", function() {
		buffer.openInfoWindowHtml(description);
	});
	return buffer;
}
function load() {

    map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var point = new GPoint(-1.5618395805358887, 47.20588150030108);
    map.setCenter(new GLatLng(47.209890192256225, -1.5568828582763672), 14);

	// création des icones
	for (var j = 0; j < marker_type.length; j++)	{
		var ico = new GIcon(G_DEFAULT_ICON);
		ico.image = ('/agence_communication_internet_nantes/'+marker_type[j]+'.png');
		ico.shadow = ('');
		ico.iconAnchor = new GPoint(7, 7);
		ico.infoWindowAnchor = new GPoint(7, 7);
		ico.iconSize = new GSize(16,16);
		marker_icone.push(ico);
	}

	// Adresse de génération internet
	var gnet = new GIcon(G_DEFAULT_ICON);
	gnet.image = ('/agence_communication_internet_nantes/generation_internet.png');
	gnet.iconAnchor = new GPoint(0,47);
	gnet.infoWindowAnchor = new GPoint(0, 47);
	gnet.iconSize = new GSize(61,47);
	marker_gnet = new GMarker(point, {icon:gnet});
	map.addOverlay(marker_gnet);
	
	
	///////////////////// Tramways
	// arrêt chantier naval
	var tram_point = new GPoint(-1.5608525276184082, 47.21112189311815);
    map.addOverlay(createMarker(tram_point, txt_tram + '<b>Station Médiathèque</b><br />Tramway, ligne 1</div>', 0));


	///////////////////// Parking
	// duchesse anne
	var parking = new GPoint(-1.5473368763923645, 47.21646561305548);
	map.addOverlay(createMarker(parking, txt_parking +'Parking Duchesse Anne</div>', 1));
	// Gloriette
	var parking = new GPoint(-1.5568828582763672, 47.209890192256225);
	map.addOverlay(createMarker(parking, txt_parking +'Parking Gloriette</div>', 1));	
	// Parking de la Nef
	var parking = new GPoint(-1.5661847591400146, 47.20487563550238);
	map.addOverlay(createMarker(parking, txt_parking +'Parking de la Nef<br /><em>Gratuit</em></div>', 1));


	///////////////////// Bicloo
	var bicloo = new GPoint(-1.5642428398132324, 47.20615847421537);
	map.addOverlay(createMarker(bicloo, txt_velo + '<b>Station N°43</b></div>', 2));
	
	var bicloo = new GPoint(-1.5613031387329102, 47.2082867518295);
	map.addOverlay(createMarker(bicloo, txt_velo + '<b>Station N°44</b></div>', 2));

	var bicloo = new GPoint(-1.558835506439209, 47.20465696671794);
	map.addOverlay(createMarker(bicloo, txt_velo + '<b>Station N°45</b></div>', 2));


	///////////////////// Restaurants
	// Tai Shogun
	var restau = new GPoint(-1.5585672855377197, 47.207722803020836);
	map.addOverlay(createMarker(restau, txt_restau + '<b>Tai Shogun</b><br />8 Bis, Quai François Mitterrand<br />44200 Nantes<br />02 40 48 66 07</div>', 3));
	// Bar le Progrès
	var restau = new GPoint(-1.5642857551574707, 47.206683262929026);
	map.addOverlay(createMarker(restau, txt_restau + '<b>Le Point Bar</b><br />38, Rue La Noue Bras de Fer<br />44200 Nantes<br />02 40 35 20 67</div>', 3));
	// My Asian Time
	var restau = new GPoint(-1.559908390045166, 47.20577945691547);
	map.addOverlay(createMarker(restau, txt_restau + '<b>Insula</b><br />47, Rue La Tour d\'auvergne<br />44200 Nantes<br />02 40 48 60 40</div>', 3));	


	///////////////////// Gare SNCF
	var parking = new GPoint(-1.5433913469314575, 47.217360127943415);
	map.addOverlay(createMarker(parking, txt_gare + 'Gare SNCF Nord<br />Paris > Nantes 2H en TGV</div>', 5));
	

	///////////////////// Hotels
	// Hotel Inn
	var hotel = new GPoint(-1.5535998344421387, 47.20540043690742);
	map.addOverlay(createMarker(hotel, txt_hotel + '<b>Hotel Inn</b><br />1, bd. des Martyrs Nantais<br />44000 Nantes<br />02 40 47 77 77</div>', 6));
	
	// Hotel Mercure
	var hotel = new GPoint(-1.5570545196533203, 47.21411721193851);
	map.addOverlay(createMarker(hotel, txt_hotel + '<b>Mercure</b><br />4, Rue du Couëdic<br />44000 Nantes<br />02 51 82 10 00</div>', 6));

	// Hotel Kyriad
	var hotel = new GPoint(-1.544029712677002, 47.21780464704073);
	map.addOverlay(createMarker(hotel, txt_hotel + '<b>Kyriad</b><br />8, Allée du Commandant Charcot<br />44000 Nantes<br />02 40 74 14 54</div>', 6));

	hiddeAll();
	
	$('#tram').click(function(e){return setVisible(0);});
	$('#parking').click(function(e){return setVisible(1);});
	$('#velo').click(function(e){return setVisible(2);});
	$('#restau').click(function(e){return setVisible(3);});
	$('#gare').click(function(e){return setVisible(5);});
	$('#hotel').click(function(e){return setVisible(6);});
}
// Charge le javascript de la carte
$(document).ready(function() {
load();
});
// Décharge le javascript
$(document).unload( function () {
GUnload();
});
