var requestURLAgences = 'templates/scripts/ajax/getAgencies.php';
var	detailsRequestURL = 'templates/scripts/ajax/getAgencyDetails.php';

var i = 0;

function loadMaps() {

	if (GBrowserIsCompatible()) {
		var eMap = document.getElementById('map');
		var map = new GMap2(eMap);
		map.addControl(new GSmallMapControl());
		map.setCenter(new GLatLng(46.8, 1.5), 6);
		
		var mapIdF = new GMap2(document.getElementById("mapIdF"));
		mapIdF.addControl(new GSmallMapControl());
		mapIdF.setCenter(new GLatLng(48.828474, 2.334158), 11);
		
		var mapMartinique = new GMap2(document.getElementById("mapMartinique"));
		mapMartinique.addControl(new GSmallMapControl());
		mapMartinique.setCenter(new GLatLng(14.64, -61), 9);
		
		var mapReunion = new GMap2(document.getElementById("mapReunion"));
		mapReunion.addControl(new GSmallMapControl());
		mapReunion.setCenter(new GLatLng(-21.10, 55.53), 8);
	}
	
	getAgencies(1, map);
	getAgencies(2, mapMartinique);
	getAgencies(3, mapReunion);
	getAgencies(4, mapIdF);
	
}

function createPoint(agence, theMap) {
	var point = new GPoint(agence.AGENCE_LONGITUDE, agence.AGENCE_LATTITUDE);
	if (point) {
		var theMarker = createMarker(point, agence.AGENCE_ID, theMap);
		theMap.addOverlay(theMarker);
	} else {
		return;
	}
}

function createMarker(point, id, theMap) {
	// cr�ation de l'icone
	var icon = new GIcon();
	icon.image = "templates/acadomia_adulte/images/mm_20_orange.png";
	icon.shadow = "templates/acadomia_adulte/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20); 
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);

	// cr�ation du marker
	var marker = new GMarker(point, icon);
	
	// cr�ation de l'infobulle au click sur le point
	GEvent.addListener(marker, 'click', function() {
		var parameters = 'agence_id=' + id;
		// req ajax pour r�cup�rer les donn�es sp�cifiques de l'agence
		var myAjax = new Ajax(detailsRequestURL, {method: 'post', postBody: parameters, onFailure: function(req) { alert('erreur js'); }, onComplete: function(req) {
			var agence = Json.evaluate(req);
			var agence_lib = agence.AGENCE_LIB;
			
			if(agence_lib == "Nantes - Graslin")
			{
				agence_lib = "nantes";
			}
			var agence_url = specCharsToASCII(agence_lib);
			var agence_url_suite = 'agence/'+agence_url+'.html';
			var html = '<p class="alignleft"><img src="templates/scripts/getMiniature.php?id=' + id + '" alt="" hspace="10" /></p>				<p class="popup-txt"><strong>' + agence.AGENCE_LIB + '</strong><br />' + agence.AGENCE_ADRESSEL1 + '<br />' + agence.AGENCE_CODEPOSTAL + ' ' + agence.AGENCE_COMMUNE + '<br /><br />Tél. : ' + agence.AGENCE_TELEPHONE + '</p>				<p>&nbsp;</p>				<div style="margin:5px 0 5px 70px;"><p class="btnexpress">'+
			'<a href="javascript:void(0)" onclick="this.href=\''+agence_url_suite+'\'">Acceder à la fiche</a></p></div>';
			
			marker.openInfoWindowHtml(html);
		}}).request();
	});
	
	// gestion de la fermeture de l'infobulle
	GEvent.addListener(marker, "infowindowclose", function() {
		//theMap.setCenter(new GLatLng(46.8, 1.5), 5);
	});
	
	return marker;
}
	
function clearMarkers()
{
	//map.clearOverlays();
}


function getAgencies(mode, theMap)
{
	// mode : 1=france, 2=martinique, 3=reunion
	var parameters = 'mode='+mode;
	
	var myAjax = new Ajax(requestURLAgences, {method: 'post', postBody: parameters, onFailure: function(req) { alert('erreur js'); }, onComplete: function(req) {
		var myRep = Json.evaluate(req);
		var j = myRep.length;
		for (var i = 0; i < j; i++) {
			createPoint(myRep[i], theMap);
		}
	}}).request();
}
function checkNumericCp(val,minlength)
{
	if (val=='' || val.length < minlength || val.length>5 )
	{
		return false;
	}
	var s = '0123456789';
	for(i=0;i<val.length;i++)
	{
		if (s.indexOf(val.charAt(i))==-1)
		{
			return false;
		}
	}
	return true;
}
function checkCPlocaliserAgence() {
	var rep = checkNumericCp($('cplocalisation').getValue(),2);//var rep = checkCodePostal($('cplocalisation').getValue(), '5');
	if (rep != true) {
		alert('Le code postal est incorrect. Veuillez entrer au moins deux chiffres');
		$('cplocalisation').focus();
		return false;
	}
	return true;
}

function str_replace(search, replace, subject, count)
{
	var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
	f = [].concat(search),
	r = [].concat(replace),
	s = subject,
	ra = r instanceof Array, sa = s instanceof Array;
	s = [].concat(s);
	if (count)
	{
		this.window[count] = 0;
	}
	for (i=0, sl=s.length; i < sl; i++)
	{
		if (s[i] === '')
		{
			continue;
		}
		for (j=0, fl=f.length; j < fl; j++)
		{
			temp = s[i]+'';
			repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
			s[i] = (temp).split(f[j]).join(repl);
			if (count && s[i] !== temp)
			{
				this.window[count] += (temp.length-s[i].length)/f[j].length;}
			}
		}
	return sa ? s : s[0];
}

function trim (myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function specCharsToASCII(inTitle)
{
	var slug = inTitle;
	
	var bad = ['Š','Ž','š','ž','Ÿ','À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ÿ','Þ','þ','Ð','ð','ß','Œ','œ','Æ','æ','µ','"',"'",'“','”',"\n","\r",'_'];
	
	var good = ['S','Z','s','z','Y','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','N','O','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','n','o','o','o','o','o','o','u','u','u','u','y','y','TH','th','DH','dh','ss','OE','oe','AE','ae','u','','','','','','','-'];
	
	// replace strange characters with alphanumeric equivalents
	slug = str_replace("è", "e", slug );
	slug = str_replace("é", "e", slug );
	slug = str_replace(" ", "-", slug );
	
	slug = trim(slug);
	
	// and lowercase
	slug = strtolower(slug);
	
	return slug;
}

function strtolower(str)
{
	return (str+'').toLowerCase();
}


