﻿function initialize(donnees) {

	if (GBrowserIsCompatible()) {
		// Création de la carte Google map
		var myPano = new GStreetviewPanorama($$('.street-view')[0]);
		var map = new GMap2($$(donnees.contenerClass)[0]);
		map.setCenter(new GLatLng(donnees.coords.x, donnees.coords.y), donnees.coords.z);
		
		svOverlay = new GStreetviewOverlay();
        map.addOverlay(svOverlay);
        GEvent.addListener(map,"click", function(overlay,latlng) {
          myPano.setLocationAndPOV(latlng);
        });
		
		map.setUIToDefault();

		// Variables pour la légende
		var liste = new Element('ul', {'class': 'legende'});
		var titre; var listeMarqueurs; var marqueur; var lien;
		
		// Parcours des catégories
		for(var i=0; i < donnees.categories.length; i++) {
			// Création de la catégorie dans la légende
			titre = new Element('li', {
				'styles': {'background-image': 'url(/images/pictos/legende/'+donnees.categories[i].image+')'},
        		'id': donnees.categories[i].id,
        		'html': donnees.categories[i].nom});
        	listeMarqueurs = new Element("ol");
			// Parcours des marqueurs
			for(var j=0; j < donnees.categories[i].marqueurs.length; j++) {
				// Ajout du marqueur
				map.addOverlay(creerMarqueur(donnees.categories[i].marqueurs[j], donnees.categories[i], j+1));
				// Création du marqueur dans la légende
				marqueur = new Element('li');
				
				// CAS PARTICULIER : Si on est dans le cas de la cu_matisse on rajoute la description pour le CROUS
				if (donnees.categories[i].marqueurs[j].lien.contains('cu_matisse')) {
				    donnees.categories[i].marqueurs[j].nom = 'C.U. Matisse / <br/>Antenne du CROUS à Nîmes<br/>(l\'accueil se trouve dans les<br/>locaux de la CU)';
				}
				
        		lien = new Element('a', {
        			'href': donnees.categories[i].marqueurs[j].lien,
        			'title': donnees.categories[i].marqueurs[j].nom,
        			'html': donnees.categories[i].marqueurs[j].nom});
        		lien.inject(marqueur);
        		marqueur.inject(listeMarqueurs);
			}
			
			// CAS PARTICULIER : On ajoute les marqueurs du crous de Montpellier et de perpignan
			if (window.location.href.contains('montpellier')){
			    map.addOverlay(creerMarqueur({ x: 43.6227123, y: 3.8696712, nom: 'CROUS de Montpellier', lien: '#' }, {'image':'picto_crous_map.png'}, ''));
			}else{
			    map.addOverlay(creerMarqueur({ x: 42.6817394, y: 2.9019383, nom: 'CLOUS de Perpignan', lien: '#' }, {'image':'picto_crous_map.png'}, ''));
			}
						
			listeMarqueurs.inject(titre);
       		titre.inject(liste);
		}
		liste.set('opacity', donnees.opacity);
		liste.inject($$(donnees.contenerClass)[0]);
	}
}

function creerMarqueur(point, categorie, index) {

	var icone = new GIcon(G_DEFAULT_ICON);
	icone.image = "/images/pictos/"+categorie.image;
	icone.shadow = null;
	if (categorie.image != 'picto_crous_map.png'){
	    icone.iconSize = new GSize(16, 16);
	}
	icone.iconAnchor = new GPoint(8, 8);

	var marqueur = new LabeledMarker(new GLatLng(point.x, point.y), {icon:icone, title:point.nom, clickable: true, labelText: index, labelOffset: new GSize(-5, -9)});
	GEvent.addListener(marqueur, "click", function() {window.location.href = point.lien;});
	
	return marqueur;
}

window.addEvent('domready', function(){
	initialize(data);
});

window.addEvent("unload", GUnload);

