var map;
function createMarker(point,html)
{
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
     });
     return marker;
}

function moverMapa(lat, lon)
{
	var point = new GLatLng(lat, lon);
	var marker = createMarker(point,'');
	map.clearOverlays();
	map.addOverlay(marker);
	map.setCenter(point,18);
	map.setMapType(G_NORMAL_MAP);
	map.setMapType(G_HYBRID_MAP);
}
function cargarMapa(lat, lon, clave)
{
	google.load("maps", "2");
	var idioma = $('idioma').value;
	// Call this function when the page has been loaded
	function initialize() {
		map = new google.maps.Map2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);
		
		if (lat != '' && lon != '')
		{
			var myAjax = new Ajax.Request ( '/taxo.nsf/UTMtoWGS?OpenAgent', 
					{
					method: 'get',
					parameters:  'clave=' + clave + '&lat=' + lat + '&lon=' + lon,
					onComplete: function(resp) {
							var coordenadas = resp.responseText;
							var temp = new Array();
							temp = coordenadas.split("@");
							var point = new GLatLng(temp[0], temp[1]);
							map.setCenter(point,18);
							if(idioma=='eus')
								var marker = createMarker(point,'<div style="width:240px">' + temp[3] + '</div>');
							else
								var marker = createMarker(point,'<div style="width:240px">' + temp[2] + '</div>');
							map.addOverlay(marker);
							},
					onFailure : function(resp) {alert("Ocurrió un error. Intentalo más tarde.");}
					});
		}
		else
			map.setCenter(new google.maps.LatLng(43.312002, -1.969557), 14);
	}

	google.setOnLoadCallback(initialize);
}
function cargarAlojamiento(lat, lon, texto)
{
	google.load("maps", "2");
	var idioma = 'cas';
	// Call this function when the page has been loaded
	function initialize() {
		map = new google.maps.Map2(document.getElementById("map"));
		//map.addControl(new GLargeMapControl());
		//map.addControl(new GMapTypeControl());
		map.setMapType(G_NORMAL_MAP);
		
		if (lat != '' && lon != '')
		{
			var myAjax = new Ajax.Request ( '/taxo.nsf/UTMtoWGS?OpenAgent', 
					{
					method: 'get',
					parameters:  'clave=&lat=' + lat + '&lon=' + lon,
					onComplete: function(resp) {
							var coordenadas = resp.responseText;
							var temp = new Array();
							temp = coordenadas.split("@");
							var point = new GLatLng(temp[0], temp[1]);
							map.setCenter(point,17);
							
							var marker = createMarker(point,'<div style="width:240px">' + texto + '</div>');
							map.addOverlay(marker);
							},
					onFailure : function(resp) {alert("Ocurrió un error. Intentalo más tarde.");}
					});
		}
		else
			map.setCenter(new google.maps.LatLng(43.312002, -1.969557), 14);
	}

	google.setOnLoadCallback(initialize);
}
function actualizarPortales(val)
{
	$('contenedor_portales').innerHTML = '<img src="/taxo.nsf/ajax-loader.gif" alt="cargando" />';
	var idioma = $('idioma').value;
	var myAjax = new Ajax.Request ( '/taxo.nsf/damePortales?OpenAgent', 
		{
			method: 'get',
			parameters: 'calle=' + val + '&idioma=' + idioma,
			onComplete: function(resp) {$('contenedor_portales').innerHTML = resp.responseText; },  
			onFailure : function(resp) {alert("Ocurrió un error. Intentalo más tarde.");}
		});
}
function Left(str, n){
		 if (n <= 0)
		     return "";
		 else if (n > String(str).length)
		     return str;
		 else
		     return String(str).substring(0,n);
}

function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function actualizaMapa()
{
	var calle = $('calle').value;
	var portal = $('portal').value;
	var letra = '';
	var nombreCalle = document.forms.formulario_callejero.calle.options[document.forms.formulario_callejero.calle.selectedIndex].text;
	var numeroPortal = document.forms.formulario_callejero.portal.options[document.forms.formulario_callejero.portal.selectedIndex].text;
	var idioma = $('idioma').value;
	var myAjax = new Ajax.Request ( '/taxo.nsf/dameCoordenadas?OpenAgent', 
		{
			method: 'get',
			parameters: 'calle=' + calle + '&portal=' + portal,
			onComplete: function(resp) {
				var coordenadas = resp.responseText;
				var temp = new Array();
				temp = coordenadas.split("@");
				
				var point = new GLatLng(temp[0], temp[1]);
				//Calculos para el link a la info del portal.
				calle = Right("00000" + calle, 5);
				letra = portal.substring(portal.indexOf('.')+1,portal.indexOf('.')+2);
				portal = portal.substring(0, portal.indexOf('.'));
				portal = Right("000" + portal, 3);
				//Creamos el marcador con su respectiva info.
				if (idioma=='eus')
					var marker = createMarker(point,'<div style="width:240px">Kalea: <a target="_blank" href="http://www.donostia.org/calles.nsf/SIG/ListaSig/' + nombreCalle + '?OpenDocument&idioma=eus">' + nombreCalle + '</a><br/>Portala: ' + numeroPortal + '<br/></div>');
				else
					var marker = createMarker(point,'<div style="width:240px">Calle: <a target="_blank" href="http://www.donostia.org/calles.nsf/SIG/ListaSig/' + nombreCalle + '?OpenDocument&idioma=cas">' + nombreCalle + '</a><br/>Portal: <a target="_blank" href="http://www.donostia.org/urbanismo/direcciones.nsf/indice/' + calle + portal + letra + '?OpenDocument&idioma=cas">' + numeroPortal + '</a></div>');
				map.clearOverlays();
				map.addOverlay(marker);
				map.setCenter(point,18);
				map.setMapType(G_NORMAL_MAP);
				map.setMapType(G_HYBRID_MAP);
			},
			onFailure : function(resp) {alert("Ocurrió un error. Intentalo más tarde.");}
		});
}
function cargarMapaTiempo(idioma)
{
	google.load("maps", "2");
	// Call this function when the page has been loaded
	function initialize() {
		map = new google.maps.Map2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.setMapType(G_HYBRID_MAP);
		
		map.setCenter(new google.maps.LatLng(43.312002, -1.969557), 14);
	}

	google.setOnLoadCallback(initialize);
}

