
var CarteItineraire;
var gdir;
var geocoder = null;
var addressMarker;

//Définition des variables caractérisant la société

var NomSociete = 'SARL IPsylone';
var Adresse = '73 Boulevard Viala';
var CodePostal = '13015';
var Ville = 'Marseille';
var LatitudeDestination = '43.334306';
var LongitudeDestination = '5.360090';
	
function load() {
	//Si le navigateur est compatible avec l'API de Google Maps
	if (GBrowserIsCompatible()) {

		//******** Création d'un nouvel icone ************/

		// Création d'un nouvel icône nommé "tinyIcon"
		var tinyIcon = new GIcon();
		// Adresse de l'image utilisée pour l'icône
		tinyIcon.image = "http://www.ipsylone.com/release/images/logoIpsylone.png";
		// Taille en pixels de l'icône
		tinyIcon.iconSize = new GSize(100, 35);
		// Point d'ancrage de l'image de l'icône par rapport au point GPS
		tinyIcon.iconAnchor = new GPoint(0,0);
		// Point d'ancrage de l'info-bulle lorsqu'elle sera ouverte sur l'image de l'icône
		tinyIcon.infoWindowAnchor = new GPoint(20, 20);
		markerOptions = { icon:tinyIcon }; 

		//******** -------------------------- ************/

		// Création d'une nouvelle carte ayant pour nom "MaCarte" 
		// et qui se situera en lieu et place de la <div> ayant pour identifiant 
		// (id) "EmplacementDeMacarte"
		MaCarte = new GMap2(document.getElementById("EmplacementDeMacarte"));
	
		// La carte "MaCarte" est centrée sur la Latitude 47.394921, la Longitude 0.680401, 
		// avec un niveau de zoom égal à 13
		MaCarte.setCenter(new GLatLng(43.344306,5.360090), 13);//(43.335089,5.358640), 13);
	
		// Cr&eacute;ation d'un nouveau point ayant pour Latitude : 47.394921 et Longitude : 0.680401
		var point = new GLatLng(43.334306,5.360090);
	
		// Cr&eacute;ation d'un nouveau marker par appel de la fonction CreationDuMarqueur
		var marker = CreationDuMarqueur(point);
	
		// Ajout du marqueur "marker" sur la carte nomm&eacute;e "MaCarte"
		MaCarte.addOverlay(marker);

		// Si le navigateur n'est pas compatible avec l'API de Google Maps
	}else{

		// Affichage du message "Désolé, mais votre navigateur n'est pas compatible avec Google Maps".
		alert("D&eacute;sol&eacute;, mais votre navigateur n'est pas compatible avec Google Maps");
	}
}
	
// Fonction permettant la création d'un marqueur
function CreationDuMarqueur(point) {
	// Création d'un nouveau marqueur nommé "marker" 
	var marker = new GMarker(point,markerOptions);
		
	// Un observateur d'évènement est ajouté au marqueur appelé "marker".
	// L'évenement détecté est "click" (Détecte si un click est effectué sur le marqueur appelé "marker"). 
	// Si un click a été effectué sur le marqueur appelé; "marker", 
	// la fonction située entre les {} sera alors executée
	GEvent.addListener(marker, 'click', function() {

		// Création du formulaire au format HTML contenu dans l'info-bulle
		var formulaire_itineraire ='<div style="width:220px; height:140px; margin:0px 0px 0px -10px; background:#ffffff; font: 1em \'trebuchet ms\',verdana, helvetica, sans-serif;">' +
			'<form action="#" onsubmit="setDirections(this.from.value, this.to.value); return false">' +
			'	<table align="center" style="color:#000000;">' +
			
			'		<tr>' +
			'			<td style="color:#ff6600; text-decoration:underline;"><b>IPSYLONE</b></td>' +
			'		<tr>' +
			'			<td colspan="2" align="left"><b>Adresse de d&eacute;part :</b></td>' +
			'		</tr>' +
			'		<tr>' +
			'			<td colspan="2" align="center"><input type="text" size="18" id="fromAddress" name="from" value=" " style="width:180px; height:20px; border:1px solid grey;" /></td>' +
			'		</tr>' +
			'		<tr>' +
			'			<td colspan="2" align="left"><b>Adresse d\'arriv&eacute;e</b></td>' +
			'		</tr>' +
			'		<tr>' +
			'			<td style="background-color:#ffffff; font-size:11px;" align="left">'+Adresse+' '+CodePostal+' '+Ville+'</td>' +
			'		</tr>' +
			'		<tr>' +
			'			<td align="right" colspan="2" align="center"><input type="hidden" id="toAddress" name="to" value="'+LatitudeDestination+', '+LongitudeDestination+'" /></td>' +
			'		</tr>' +
			'		<tr>' +
			'			<td>' +
			'				<input name="submit" type="submit" value="Afficher l\'itin&eacute;raire" />' +
			'			</td>' +
			'		</tr>' +
			'	</table>' +
			'</form>' +
			'</div>';
			
			//var formulaire_itineraire = 'essai';
		marker.openInfoWindowHtml(formulaire_itineraire);
	});
return marker;
}

// Fonction permettant le calcul de l'itinéraire (Carte + description de l'itinraire)
function setDirections(fromAddress, toAddress) {
	// Déclenche l'affichage du détail de l'itinéraire (texte)
	var resultat = document.getElementById("ReponseItineraire").style;
	resultat.display = '';

	// Si gdir existe déjà gdir est effacé
	if(gdir){
		gdir.clear();
	}

	// Création d'une nouvelle carte ayant pour nom "CarteItineraire" 
	// et qui se situera en lieu et place de la <div> ayant pour identifiant 
	// (id) "EmplacementCarteItineraire"
	CarteItineraire = new GMap2(document.getElementById("EmplacementCarteItineraire"));

	// Création d'une nouvelle direction ayant pour nom "gdir", 
	// dont le texte de l'itinraire se situera en lieu et place de la <div> ayant pour identifiant 
	// (id) "EmplacementTexteItineraire" et la carte de l'itinéraire 
	// se situera en lieu et place de la <div> ayant pour identifiant 
	// (id) "EmplacementCarteItineraire"
	gdir = new GDirections(CarteItineraire, document.getElementById("EmplacementTexteItineraire"));

	// Un observateur d'évènement est ajouté  la direction ayant pour nom "gdir". 
	// L'évenement détecté est "error" 
	// (Détecte si une erreur est intervenue lors du calcul de l'itinéraire). 
	// Si une erreur a été détectée lors du calcul de l'itinéraire "gdir", 
	// "EnCasdErreur" sera alors executée
	GEvent.addListener(gdir, "error", EnCasdErreur);

	// Chargement de l'itinéraire "gdir" 
	// - fromAddress : Adresse de Dpart 
	// -  toAddress : Adresse d'arrive 
	// - locale : Langue dans laquelle la rponse doit apparatre
	gdir.load("from: " + fromAddress + " to: " + toAddress);
}

// Fonction détectant les erreurs lors du calcul de l'itinéraire
function EnCasdErreur(){
	// Si l'adresse transmise à la direction "gdir" est inconnue
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS){
		// Affichage du message d'alerte " Aucun endroit géographique ne correspond. 
		// Code d erreur : " suivi du code erreur
		alert('Aucun endroit g&eacute;ographique ne correspond. Code d erreur : ' + gdir.getStatus().code);

		// Sinon
	}else{

		// Affichage du message d'alerte " Une erreur inconnue s\'est produite."
		alert('Une erreur inconnue s\'est produite.');
	}
}