$(document).ready(function(){

	$('body').unload(function() {
		GUnload();
	});

	initialize();
});

var map = null;
var gdir;
var markers = new Array();
var baseIcon = null;
var geocoder = null;

var form_to = [];
var form_from = [];
var gmarkers = [];
var i=1;
var htmls = [];

//vbles para la unica marca
var nombre="Casa Museo Victro Hugo";
	//direccion para que la entienda googlempas al calcular la ruta
var dirmapa="Donibane, 63. 20110 Pasaia";
	//direccion que parece en el bocadillo
var dircompleta="C/Donibane, 63. 20110 Pasaia Gipuzkoa <br /> Tel.: +34 943 341556 <br />Fax:+ 34 943 341777";
var extras="";
var lat=43.326052;
var lon=-1.919346;
var centrado=15;
var posn = new GLatLng(lat,lon);
var to="to";
var from ="from";


function createMarker(name,adrres,dir,extras,point) {
	//var letteredIcon = new GIcon(baseIcon);
	//letteredIcon.image = $("#"+id).attr("src");

	// Set up our GMarkerOptions object
	//markerOptions = { icon:letteredIcon };
	var marker = new GMarker(point);
	var html='<b>'+name+'</b><br>'+dir+'<br/>'+extras+'';
	form_to[i]= html + 'Direcciones: <b>Hasta aqui<\/b> - <a href="javascript:fromhere(' + i + ')">Desde aqui<\/a>' +
'<br>Direccion comienzo:' +
'<input type="text"  name="saddr" id="saddr" value="" /><br>' +
'<input id="rutaPie" type="radio" name="rutaPie"/>Marcar para calcular a pie <br/> '+
'<input id="rutaCoche" type="radio" name="rutaPie"/>Marcar para calcular en coche <br/>'+
'<a href="javascript:obtenerdir('+to+','+i+')">Calcular Ruta<\/a><br/><br/><br/><br/><br/>';
	form_from[i]= html + 'Direcciones: <a href="javascript:tohere('+i+')">Hasta aqui<\/a> - <b>Desde aqui<\/b><br>'+
'Direccion fin:'+
'<input type="text" name="daddr" id="daddr" value="" /><br>'+
'<input id="rutaPie" type="radio" name="rutaPie"/>Marcar para calcular a pie <br/> '+
'<input id="rutaCoche" type="radio" name="rutaPie"/>Marcar para calcular en coche <br/>'+
'<a href="javascript:obtenerdir('+from+','+i+')">Calcular Ruta<\/a><br/><br/><br/><br/><br/>';

	html= html+ '<br/>: <a href="javascript:tohere('+i+')">Hasta aqui<\/a> - <a href="javascript:fromhere('+i+')">Desde aqui<\/a><br/><br/><br/><br/><br/>';
	marker.bindInfoWindowHtml(html);

	gmarkers[i] = marker;
    htmls[i] = html;
    i++;
	return marker;
}


// funciones para como llegar
      function tohere(i) {
        gmarkers[i].openInfoWindowHtml(form_to[i]);
      }
      function fromhere(i) {
        gmarkers[i].openInfoWindowHtml(form_from[i]);
      }



function initialize() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("cajamapa"));
		//map.setMapType(G_HYBRID_MAP);
		map.enableContinuousZoom();
		// Centra el mapa en unas coordenadas determinadas
		//con un nivel de zoom (5)
		map.setCenter(new GLatLng(lat,lon), centrado);
		// Define los controles que se veran sobre el mapa
		map.addControl(new GLargeMapControl());
		var mapControl = new GMapTypeControl();
		map.addControl(mapControl);
		//creamos la marca
		var marker = createMarker(nombre,dirmapa,dircompleta,extras,posn);
		map.addOverlay(marker);
		geocoder = new GClientGeocoder();
		// Create a base icon for all of our markers that specifies the
		// shadow, icon dimensions, etc.
		baseIcon = new GIcon(G_DEFAULT_ICON);
		baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
		baseIcon.iconSize = new GSize(20, 34);
		baseIcon.shadowSize = new GSize(37, 34);
		baseIcon.iconAnchor = new GPoint(9, 34);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);

		//Asociamos el div 'directions' a las direcciones que
		//devolver Google Maps
		gdir = new GDirections(map, document.getElementById("resruta"));
		//Listener para los errores que se produzcan cuando procese la petición
		GEvent.addListener(gdir, "error", handleErrors);
		GEvent.addListener(gdir, "addoverlay", onGDirectionsOk);
		GEvent.addListener(gdir, "load", onGDirectionsLoad);
	}
}

//Función encargada de calcular la ruta con el API de Maps
function setDirections(fromAddress, toAddress) {
	var opt = {}
	//opt.locale = "es";
	if ($("#rutaPie").attr('checked'))
		opt.travelMode = G_TRAVEL_MODE_WALKING;
	if ($("#rutaCoche").attr('checked'))
		opt.travelMode = G_TRAVEL_MODE_DRIVING;
	gdir.load("from: " + fromAddress + " to: " + toAddress, opt);
	//Como es de suponer la opción locale:es hace que la ruta que
	//nos escriba esto en español.
}

function obtenerdir(set,id){
	if (set=="from")
	{
		var dsd=dirmapa;
		var dnd=$("#daddr").val();
	}
	else if (set=="to")
	{
		var dsd=$("#saddr").val();
		var dnd=dirmapa;
	}
	$('#resruta').empty();
	setDirections(dsd,dnd);
}

//Manejo de errores
function handleErrors(){
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
		$('#resruta').html('No se puede calcular la ruta desde la dirección indicada, compruebe que está bien escrita o esta no sea ambigua.');
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
		$('#resruta').html('Error desconocido.');
	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
		$('#resruta').html('No se ha introducido una dirección de inicio.');
	else if (gdir.getStatus().code == G_GEO_BAD_KEY)
		$('#resruta').html('Clave usada por el mapa no valida o no corresponde con el dominio desde el que se usa.');
	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
		$('#resruta').html('La dirección no puede ser parseada.');
	else
		$('#resruta').html('Ha ocurrido un error');
}

function onGDirectionsOk(){
	//$(document).scrollTo($('#ver_todo'),1000);
}

function onGDirectionsLoad(){
}


