var map;
var dir;
var panel;
var geoXml;
var bounds;
var size;
var fen;

function displaySncb()
{
	$('myBrailWidget').show();
}

function openPopUp(url,width,height)
{
	if (width == undefined)
	{
		width = 900;
	}
	if (height == undefined)
	{
		height = 700;
	}
	fen = window.open(url,'print_pop','width='+width+', height='+height+', top=100, left=100, scrollbars=yes, toolbar=no, resizable=yes, menubar=yes');
	return fen!=null;
}

function chooseCp(elm)
{
	window.opener.document.forms['refine_form'].elements['cp'].value = elm.value;
	window.close();
	window.opener.document.forms['refine_form'].submit();
}

function displayProvinceMap(divName,points,icons)
{
	if (GBrowserIsCompatible()) 
	{
		bounds = new GLatLngBounds();
		map = new GMap2($('google_map'));
		
		for (var i = 0; i < points.length; i++)
	    {
	    	var point = new GLatLng(points[i][0],points[i][1]);	    	
	    	
	    	var markerOpts = {icon: points[i][5]};
	    	var marker = new GMarker(point, markerOpts);
	    	var boxContent = '<div style="font-weight: bold; font-size: medium;">'+points[i][3]+'</div>'
	    	+'<p><a href="'+points[i][4]+'">'+trans['visit attraction fiche']+'</a></p>';	    	
	    	
	    	var marker = createMarker(point,boxContent,points[i][5]);
	    	
			bounds.extend(point);
			map.addOverlay(marker);
	    } 
		
		map.setCenter(bounds.getCenter());
	   	map.setZoom(map.getBoundsZoomLevel(bounds));
	   	map.setUIToDefault();
	}
}

function createMarker(point,html,icon) 
{
	var markerOpts = {icon: icon};
	var marker = new GMarker(point, markerOpts);
	
	GEvent.addListener(marker,'mouseover',function(){
		marker.openInfoWindowHtml(html);
	});
	
	return marker;
}

function displayAttractionsMapArray(divName,points,icons,countries)
{
	if (GBrowserIsCompatible()) 
	{
		bounds = new GLatLngBounds();
		map = new GMap2($('google_map'));
		panel = $('route_map');
	    dir = new GDirections(map, panel);
		
		for (var i = 0; i < points.length; i++)
	    {
	    	var point = new GLatLng(points[i][0],points[i][1]);	    	
	    	
	    	var boxContent = '<form method="post" action="javascript:displayRoute('+points[i][0]+','+points[i][1]+');"><div style="font-weight: bold; font-size: medium;">'+points[i][3]+'</div>'
	    	+'<p style="padding: 0; margin: 0; margin-top: 10px;">'+trans['starting place']+'...<br/>'
	    	+'<select id="fromPays" name="fromPays" style="width: 50px;">';
	    	
	    	for (j = 0; j < countries.length; j++)
	    	{
	    		boxContent += '<option value="'+countries[j]+'">'+countries[j]+'</option>';
	    	}
	    	
	    	boxContent += '</select> '
	    	+'<input style="width: 150px;" type="text" name="fromLieu" id="fromLieu" value="" />'
	    	+'<input type="button" value="Ok" onclick="displayRoute('+points[i][0]+','+points[i][1]+')" />'
	    	+'</p></form>';	    	
	    	
	    	var markerOpts = {icon: points[i][4]};
	    	var marker = new GMarker(point, markerOpts);
	    	marker.openInfoWindowHtml(boxContent);
	    	
			bounds.extend(point);
			map.addOverlay(marker);
	    } 
		
		map.setCenter(bounds.getCenter());
	   	map.setZoom(map.getBoundsZoomLevel(bounds));
	   	map.setUIToDefault();
	}
}

function displayRoute(lat,lng)
{
	var fromLieu = $('fromLieu').value;
	var fromPays = $('fromPays').value;
	var point = new GLatLng(lat,lng);
	
	if (fromLieu != '' && fromPays != '')
	{			
		var from = fromPays+' '+fromLieu;		
		
		GEvent.addListener(dir,"load",function()
		{
			if (dir.getStatus().code == 200)
			{
				$('route_map_container').show();
				$('from').value = from;
			}
			else
			{
				$('route_map_container').hide();
			}
		});	
		
		GEvent.addListener(dir,"error",function()
		{
			$('route_map_container').hide();
		});
		
		dir.loadFromWaypoints([from,point]);
	}
}

function printRoute()
{
	var from = $('from').value;
	var to = $('to').value;
	var url = 'attractions/printRoute/'+to+'/?r='+from;
	openPopUp(url);	
}

function checkAllSelections(elm)
{
	var cpt = parseInt($('cpt').value);
	for (var i = 0; i < cpt; i++)
	{
		$('toPrint_'+i).checked = elm.checked;
	}	
}

function addAttraction(id,elm)
{
	if (id > 0)
	{
		new Ajax.Request('attractions/addToSelection/'+id+'/?ajaxUse=true&rand='+new Date().getTime(),{
			onCreate : function()
			{
				elm.onclick = function(){};
			},
			onSuccess : function(transport)
			{
				if (parseInt(transport.responseText) == 1)
				{
					alert(trans['attraction selected']);
					elm.style.display = 'none';
				}
				else
				{
					alert(trans['error add selection']);
				}
			}
		});	
	}
}

function hideFromLink()
{
	$('fromLink').hide();
	$('fromSpan').show();
}

function displayAttractionsMapXml(divName,xmlUrl)
{
	if (GBrowserIsCompatible()) 
	{
	    map = new GMap2($('google_map'));
	    
	    map.setUIToDefault();	    
	    
	    // debut map XML
	    geoXml = new GGeoXml(xmlUrl);
	    
	    var loaded = false;	    
	    
	    GEvent.addListener(geoXml,"load",function()
	    {	
	    	if (!loaded)
	    	{
	    		map.setCenter(geoXml.getDefaultCenter());
	    		map.setZoom(map.getBoundsZoomLevel(geoXml.getDefaultBounds()));
	    		map.addOverlay(geoXml);	
	    		loaded = true;
	    	}
	    });
	    // fin map XML
	}	
}