// JavaScript Document
/*     GOOGLE MAP     */

function googlekey(keyabajo,kayarriba,domabajo,domarriba){
	var documento = self.location.href.match( /\/([^/]+)$/ )[1];
	if (document.location.href == 'http://servidor.'+ domabajo +'/'+ documento)
	{
		document.write("<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key="+ keyabajo +"' type='text/javascript'></script>");
	}
	else
	{
		if (document.location.href == 'http://'+ domarriba +'/'+ documento);
		{
			document.write("<script src='http://maps.google.com/maps?file=api&amp;v=2&amp;key="+ kayarriba +"' type='text/javascript'></script>");
		}
	}
}

function limpiar(idcapa){
	capalimpiar = document.getElementById(idcapa);
	capalimpiar.innerHTML="";
}

function imprimir(que) {
	var ventana = window.open("", "", "");
	var contenido = "<html><body onload='window.print();window.close();'>" + document.getElementById(que).innerHTML + "</body></html>";
	ventana.document.open();
	ventana.document.write(contenido);
	ventana.document.close();
}	

function colocarventana(){
	var puntoprincipal = document.getElementById("capa_pagina");
	//extraemos la posicion de la capa capa_pagina
	ejex = puntoprincipal.offsetLeft;
	//colocamos la capa ventana en la posicion x de la capa pagina
	var posicionarcapa = document.getElementById("ventana");
	posicionarcapa.style.left=ejex+"px";
	posicionarcapa.style.top="25px";
}

function desplegar(nombre,cerrar){
	var capacerrar;
	capacerrar = document.getElementById(nombre);
	if (cerrar == 0){
		capacerrar.style.display = "none";
	}
	else
	{
		capacerrar.style.display = '';
	}
}

// funciones arrastrar capa
var capa = null;
var _IE_ = navigator.userAgent.indexOf("MSIE") != -1;

function liberaCapa() {
	capa = null;
}

function clickCapa(e, obj) {
	capa = obj.parentNode;
	if (_IE_) {
		difX = e.offsetX;
		difY = e.offsetY;
	} else {
		difX = e.layerX;
		difY = e.layerY;
	}
}

function mueveCapa(e) {
	if (capa != null) {
		capa.style.top = ((e.clientY-difY)-10)+"px";
		
		capa.style.left = ((e.clientX-difX)-175)+"px";
	}
}


var long = 37.968624;
var lat = -1.07805;
var zoom = 15;
var map;
var gdir;
var geocoder = null;
var addressMarker;
var to_htmls = [];
var from_htmls = [];
var gmarkers = [];
var htmls = [];

function tohere(i) {
   gmarkers[i].openInfoWindowHtml(to_htmls[i]);
}
function fromhere(i) {
   gmarkers[i].openInfoWindowHtml(from_htmls[i]);
}
	
function onLoad() {
	
  if (GBrowserIsCompatible()) {      
	map = new GMap2(document.getElementById("map"));
	map.setUIToDefault();
	gdir = new GDirections(map, document.getElementById("indicaciones"));
	GEvent.addListener(gdir, "load", onGDirectionsLoad);
	GEvent.addListener(gdir, "error", handleErrors);
	
	map.setCenter(new GLatLng(37.968624,-1.07805), zoom);
	map.setMapType(G_NORMAL_MAP);
	
    var icon = new GIcon();
    icon.image = "../imagenes/logomapa.png";		
    icon.iconSize = new GSize(32, 32);
    icon.iconAnchor = new GPoint(32, 32);
    icon.infoWindowAnchor = new GPoint(24, 24);
	
	function createMarker(point,html,icono,bsnr) {
		var marker = new GMarker(point,icono);
		to_htmls[bsnr] = html + '<br><br>Obtener indicaciones: <b>hasta aqu&iacute;</b> - <a href="javascript:fromhere(' + bsnr + ')" class="enlacepieazul">desde aqu&iacute;</a>' +
		'<br>Lugar de partida:<form action="#" onsubmit="setDirections(this.from.value, this.to.value); return false">' +
		'<input class="caja_mapa" type="text" SIZE=40 MAXLENGTH=40 name="from" id="fromAddress" value="" /><br>' +
		'<INPUT class="boton_google" value="OK" TYPE="SUBMIT">' +
		'<input type="hidden" id="toAddress" name="to" value="' + long + ',' + lat +
			  // "(" + name + ")" +
		 '"/>';
		
		from_htmls[bsnr] = html + '<br><br>Obtener indicaciones: <a href="javascript:tohere(' + bsnr + ')" class="enlacepieazul">hasta aqu&iacute;</a> - <b>desde aqu&iacute;</b>' +
		 '<br>Destino:<form action="#" onsubmit="setDirections(this.from.value, this.to.value); return false">' +
		 '<input class="caja_mapa" type="text" SIZE=40 MAXLENGTH=40 name="to" id="toAddress" value="" /><br>' +
		 '<INPUT class="boton_google" value="OK" TYPE="SUBMIT">' +
		 '<input type="hidden" id="fromAddress" name="from" value="' + long + ',' + lat +
			  // "(" + name + ")" +
		 '"/>';
		
			html = "<div>"+ html +"<\/div>";			
			
			GEvent.addListener(marker, "click", function() {
				if (map.getZoom()<17){
				map.setCenter(point, 17);
				}
			});
			
			GEvent.addListener(marker, "mouseover", function() {
				marker.openInfoWindow(html);
			});
			
			GEvent.addListener(marker, "dblclick", function() {
				if (map.getZoom()<17){
					map.setCenter(point, 17);
				}
			});
			gmarkers[bsnr] = marker;
			htmls[bsnr] = html;
			html = html + '<br><br>Obtener indicaciones: <a href="javascript:tohere('+ bsnr +')" class="enlacepieazul">hasta aqu&iacute;</a> - <a href="javascript:fromhere('+ bsnr +')" class="enlacepieazul">desde aqu&iacute;</a>';
			return marker;
	}

	var punto = new GLatLng(37.968624,-1.07805);
	var marca = createMarker(punto,"<strong>CB San Jos&eacute; de la Vega<\/strong><br />C/ Los plazas N&ordm;4<br /> 30570 San Jos&eacute; de la Vega (Murcia)<br />Tel.:<strong>+34 609 66 49 56<\/strong>", icon);
	GBrowserIsCompatible(marca);
	map.addOverlay(marca);
  }
}

function setDirections(fromAddress, toAddress) {
  colocarventana();
  desplegar("ventana",1);
  gdir.load("from: " + fromAddress + " to: " + toAddress,
			{ "locale": "es" });
  
}

function handleErrors(){
	//para cerrar la ventana si da un error al buscar el lugar
   desplegar("ventana",0);
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	 alert("No se encuentra la ruta o no se puede realizar en coche.");
   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	 alert("No se encuentra la ruta o no se puede realizar en coche.");
   
   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	 alert("No se encuentra la ruta o no se puede realizar en coche.");

	//else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	 
   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	 alert("No se encuentra la ruta o no se puede realizar en coche.");

   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	 alert("No se encuentra la ruta o no se puede realizar en coche.");
	
   else alert("No se encuentra la ruta o no se puede realizar en coche.");
   
}

function onGDirectionsLoad(){
  // Use this function to access information about the latest load()
  // results.
  // e.g.
  // document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
  // and yada yada yada...
}