//***********************************************************
// Trail Locator Project
// The Trans Canada Trail
// http://www.tctrail.ca
// 
// Coding by Stephane Simard
// ssoutbox-tctrail@yahoo.com
//************************************************************


//----------------------------------------------------------------------------------------------------
// Show Trail location on map

function showTrailLocation()
{
	var param;

	// Determine le select qui appel la fonction - Si TrailDiv est block, trailList appel
	if(document.getElementById("trailsDiv").style.display == "block")
		param = document.getElementById('trailList').value.split(',');  // split  parameters
	else if(document.getElementById("geoDiv").style.display == "block")
		param = document.getElementById('geoList').value.split(',');  // split  parameters
	else
		param = document.getElementById('favList').value.split(',');  // split  parameters
	
	var bounds = new GLatLngBounds(new GLatLng(param[0],param[1]), new GLatLng(param[2],param[3]));
	var zoomSearch = map.getBoundsZoomLevel(bounds);
	var center = bounds.getCenter();
	
	// Si zoom sur compact, doit contourner une problématique avec l'option highlight
	mapZoom.actualZoom = mapZoom.findZoomInArray(zoomSearch);
	if(mapZoom.actualZoom == 0)
		mapZoom.actualZoom = 1;
	if(mapZoom.actualZoom < 3)
		highlight.trailIndex = param[4]*1;
		
	highlightOnSelect(param[4]*1, center);	// Mettre le sentier selectionné en highlight
	
	// Pour le setTimeout - on dois sauvegarder la valeur
	globalValue = center;
	perform("map.setCenter(globalValue, mapZoom.getZoom())");
}


//-------------------------------------------------------------------------------------------
// Recupere les coordonnees et affiche l'emplacement dans google map

function showGeoLocation()
{
	var CanadienBounds = new GLatLngBounds(new GLatLng(40.7991, -140.60549), new GLatLng(83.15726, -52.44141));
	var param = document.getElementById('searchResultList').value.split(',');  // split  parameters
	var coord = new GLatLng(param[0], param[1]);
	
	if(param[0] == "")
		return;
		
	if(param[0] == "cancel")
	{
		hideLoadingMsg();
		inputFocus.focus();
		return;
	}
			
	// Si le point est au canada, affiche dans google map la location
	if(CanadienBounds.contains(coord))
	{
		mapZoom.actualZoom = trailNearYou(coord);
		
		// Marker sur la location
		createGeoMarker(coord,param[3] + ", " + param[4]);
				
		// Pour le setTimeout - on dois sauvegarder la valeur
		globalValue = coord;
		perform("map.setCenter(globalValue, mapZoom.getZoom())");
		
	}else{
		alert(lang(14)); // out of canada
		document.getElementById("maskDiv").style.display = "none";
		inputFocus.focus();
	}
}


//-------------------------------------------------------------------------------------------
// Call by select provinceList and MapCanada Click

function showProvinceLocation(value)
{
	var noProvince;

	// Determine la provenance de l'appel
	// Si value non numeric = select provinceList
	// Sinon MAP click
	if(isNaN(value))
		noProvince = document.getElementById('provinceList').value;
	else	
		noProvince = value;

	var yLat = 1*provincesList[noProvince].ylat;
	var xLong = 1*provincesList[noProvince].xlong;
	var Province_Zoom = 1*provincesList[noProvince].zoom;	
	
	// Afficher la province  
	mapZoom.actualZoom = mapZoom.findZoomInArray(Province_Zoom);
	document.getElementById('provinceList').selectedIndex = 0;
	
	// Si le zoom minimun(3) - affiche la carte CANADA
	if (mapZoom.actualZoom == mapZoom.minZoom) 
		document.getElementById("canadaDiv").style.display = "block"; 
			
	// Pour le setTimeout - on dois sauvegarder la valeur
	globalValue = new GLatLng(yLat, xLong);
	perform("map.setCenter(globalValue, mapZoom.getZoom())");
}


//-------------------------------------------------------------------------------------------
// Recupere les coordonnees et affiche l'emplacement dans google map

function showPavLocation()
{
	var param = document.getElementById('pavList').value.split(',');  // split  parameters
	var coord = new GLatLng(param[1], param[2]);
	mapZoom.actualZoom = 4;
	// Marker sur la location
	createPavMarker(coord, param[0], param[3]);
				
	// Pour le setTimeout - on dois sauvegarder la valeur
	globalValue = coord;
	perform("map.setCenter(globalValue, mapZoom.getZoom())");	
}
