
//Appel du script gMap

var mapEverBuilded = false;
function getTemplate()
{
	var htmlContent =  "			<div class=\"top\">";
	//htmlContent    += "				<a href=\"javascript:void(0);\" class=\"prev\">Pr&eacute;c&eacute;dents</a>&nbsp;<span class=\"sep\">|</span>&nbsp;<a href=\"javascript:void(0);\" class=\"next\">Suivants</a>";
	htmlContent    += "				&nbsp;";
	htmlContent    += "				<div class=\"content\">";
	htmlContent    += "					<div class=\"corner\"></div>";
	htmlContent    += "					<img src=\"#img#\" alt=\"photo\" />";
	htmlContent    += "					<p class=\"type\">#maintitle#</p>";
	htmlContent    += "					<a href=\"#link#\" class=\"\">#title#</a>";
	htmlContent    += "					<div class=\"cb\"></div>";
	htmlContent    += "					<p class=\"ville\">#subtitle#</p>";
	htmlContent    += "					<p>";
	htmlContent    += "						#description#";
	htmlContent    += "					</p>";
	htmlContent    += "				</div>";
	htmlContent    += "			</div>";
	return htmlContent; 
}

var mapManager;

function callMap()
{
	if(!mapEverBuilded)
	{
		mapEverBuilded = true;
		mapManager = new GMapManager("img/global/map/picto.png", "img/global/map/pictoOver.png", "carte");
		mapManager.enableInfoWindow(true);
		mapManager.addLayersControl();
	}
	
	//mapManager.showMap(avgPoint[0],avgPoint[1]);
	mapManager.setMarkers(gmMarkers);
	mapManager.showMap(avgPoint[0],avgPoint[1]);	
	
}

window.addEvent('domready',genGmMarkers)
// items to display on gmap
var gmMarkers = [];
var avgPoint = [];
var sEmptyImagePath = 'img/global/map/empty.gif';

// fill the items to display array
function genGmMarkers()
{
	var aCoordinates = getCoordinates();
	var aContent = getContent();
	var i;
	for(i=0; aCoordinates[i] ; i++)
	{
		gmMarkers[i] = [aCoordinates[i], aContent[i]];	
	}
  	return gmMarkers;
}
// parse geolocalisation points presents in the result list
// and return a bi-dimentional array [latitude, longitude]
function getCoordinates()
{
	var aLatitude = document.getElementsByName('latitude');
	var aLongitude = document.getElementsByName('longitude');
	
	var aReturn = new Array();
	var sum = [0,0];
	var i;
	for(i=0; aLatitude[i] ; i++)
	{
		aReturn[i] = [aLatitude[i].value, aLongitude[i].value];
		sum[0] += parseFloat(aReturn[i][0]); 		
		sum[1] += parseFloat(aReturn[i][1]); 		
	}
	avgPoint[0] = sum[0]/i; 
	avgPoint[1] = sum[1]/i;
	return aReturn;
}
// load a html template string and replace elements
function useTemplate()
{
	
	var template = getTemplate();
	for (var sProperty in arguments[0])
	{
		template = template.replace('#'+sProperty+'#', arguments[0][sProperty]);		
	}
	
	return template;
	
}

function truncateString(stringToTruncate)
{
	var limit = 100;
	if (stringToTruncate.length > limit)
	{
		stringToTruncate = stringToTruncate.substr(0, limit) + '[...]';
	}
	return stringToTruncate;
}

// parse result list and fill an array with infos to show on the map 
function getContent()
{
	var aImg = new Array();
	var aImgTemp = $$('.result_list td.thumb');
	aImgTemp.each(function(elem, index) {
		temp = elem.getChildren('.thumb').getChildren('a');
		
		if ( temp[0] != undefined )
		{
			temp2 = temp[0].getChildren('img')
			img = temp2[0];
			aImg[index] = img[0];
		}
		else
			aImg[index] = temp[0];
	});
	var img;
	var aTitle = $$('.result_list .col2 a');
	var aMainTitle = $$('.result_list .col3');
	var aSubTitle = $$('.result_list .activities');
	var aDescription = $$('.result_list p');	
	var aReturn = new Array();
	for(var i=0; aTitle[i] ; i++)
	{		
		if (aImg[i] == undefined)
		{				
			img = sEmptyImagePath;
		}
		else
		{
			img = aImg[i].src.replace('78x71', '186x77');
		}
		aReturn[i] = useTemplate({'img':img, 'title':aTitle[i].get('text'), 'subtitle':aSubTitle[i].get('text'), 'description':truncateString(aDescription[i].get('text')), 'link': aTitle[i].href, 'maintitle': aMainTitle[i].get('text')});
	}	
	return aReturn;
}









