﻿// cst506-mapa_resena.js - (c) 2008-2010 by Juan Rodríguez, consultor & Begues Internet, s.l.

var IconoDir; var MapaResena; var point; var i; var cargadaApi= 0; var url; var indice;
var AvisoCargandoMapa="<p style='color:#DDD; margin-top:50px; font-size:12pt; text-align:center'>Un momento por favor,<br />se está cargando su mapa.";
var googleMapsKey="ABQIAAAAI406OLGjOLkRZCLhoghCmxSWYV5iwbVgHIWzu8h12o_C_kQ4QxQ4E44wDVPzFqiNfXLgpJ6yI1nYCw";

function initLoader() {
var script=document.createElement("script"); script.src="http://www.google.com/jsapi?key="; script.src += googleMapsKey +"&callback=ApiCargada"; script.type="text/javascript"; document.getElementsByTagName("head")[0].appendChild(script);
var css=document.createElement("link"); css.href="mapas/cst502-mapas_castefa.css"; css.rel="stylesheet"; css.type="text/css"; document.body.appendChild(css)}

function ApiCargada() {cargadaApi=1; google.load("maps", "2", {"callback" : MapaResenas});}

function MapaResenas(url,indice) {
aBloque(100);
if (cargadaApi==0) {urlprev=url; indiceprev=indice; document.getElementById("MapaResena").innerHTML=AvisoCargandoMapa ; initLoader();} 
else {
if (url==undefined || indice==undefined) {url=urlprev; indice=indiceprev}; 
var IconoDir=new google.maps.Icon(); IconoDir.iconSize=new google.maps.Size(32,32); IconoDir.shadowSize=new google.maps.Size(56,32); IconoDir.iconAnchor=new google.maps.Point(16,32); IconoDir.infoWindowAnchor=new google.maps.Point(16,0);

MapaResena = new google.maps.Map2(document.getElementById("MapaResena"));
MapaResena.getInfoWindow().enableMaximize();
document.getElementById("MapaResena").style.backgroundColor="transparent";
MapaResena.addControl(new google.maps.LargeMapControl3D());
MapaResena.enableDoubleClickZoom();
MapaResena.enableContinuousZoom();
var mapasControl=new google.maps.HierarchicalMapTypeControl(); MapaResena.addControl(mapasControl);

var url="mapas/"+url;
var request = google.maps.XmlHttp.create();
request.open("GET", url, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var xmlDoc = google.maps.Xml.parse(request.responseText); var markers=xmlDoc.documentElement.getElementsByTagName("marker");
for (var i=0; i < markers.length; i++) {
var ind = markers[i].getAttribute("ind");
var lat=parseFloat(markers[i].getAttribute("lat")); var lng=parseFloat(markers[i].getAttribute("lng")); var point=new google.maps.LatLng(lat,lng);
var zmap=parseFloat(markers[i].getAttribute("zmap")); var zsat=parseFloat(markers[i].getAttribute("zsat"));
var tit = markers[i].getAttribute("tit");
var web = markers[i].getAttribute("web");
var txt=markers[i].getAttribute("txt"); var txtMax=markers[i].getAttribute("txtMax");
var tel = markers[i].getAttribute("tel");
var dir = markers[i].getAttribute("dir");
var cp = markers[i].getAttribute("cp"); if (cp > 0) {cp=cp +" - "};
var ciu = markers[i].getAttribute("ciu");
var logo = "clientes/"+markers[i].getAttribute("logo");
var ico = markers[i].getAttribute("ico"); 
if (ind==indice) {CrearResenaMapa(ind,lat,lng,zmap,zsat,tit,web,txt,txtMax,tel,dir,cp,ciu,logo,ico) } }  } }
request.send(null) } }

var overlay = [];
overlay["mp0050"] ="mapas/mp-0050-informacion.png";
overlay["mp0200"] ="mapas/mp-0200-cruz_roja.png";
overlay["mp0310"] ="mapas/mp-0310-coche.png";
overlay["mp0320"] ="mapas/mp-0320-avion.png";
overlay["mp0400"] ="mapas/mp-0400-construccion.png";
overlay["mp0410"] ="mapas/mp-0410-inmobiliarias.png";
overlay["mp0430"] ="mapas/mp-0430-alojamiento.png";
overlay["mp0432"] ="mapas/mp-0432-aptos.png";
overlay["mp0500"] ="mapas/mp-0500-restaurantes.png";
overlay["mp0520"] ="mapas/mp-0520-cafeterias.png";
overlay["d"] ="mapas/mp-0011-icono_mapas.png";
overlay["i"] ="mapas/mp-0013-info.png";

function CrearResenaMapa(ind,lat,lng,zmap,zsat,tit,web,txt,txtMax,tel,dir,cp,ciu,logo,ico) {
tAtaActivo=0;
zoomsat=zsat;
var point = new google.maps.LatLng(lat,lng);
var IconoDir=new google.maps.Icon(); IconoDir.iconSize=new google.maps.Size(32,32); IconoDir.shadowSize=new google.maps.Size(56,32); IconoDir.iconAnchor=new google.maps.Point(16,32); IconoDir.infoWindowAnchor=new google.maps.Point(16,0);
var Icon = new google.maps.Icon(IconoDir, overlay[ico], null, null);
if (ind=="AnecBlau"){var TAnecBlau = [new google.maps.Point(1.98584318, 41.28304716), new google.maps.Point(1.98616505, 41.28277304), new google.maps.Point(1.98633671, 41.28217643), new google.maps.Point(1.98537111, 41.28167656), new google.maps.Point(1.98509216, 41.28224093), new google.maps.Point(1.98524237, 41.28288592), new google.maps.Point(1.98556423, 41.28330516), new google.maps.Point(1.98584318, 41.28304716), new google.maps.Point(1.98607922, 41.28314391), new google.maps.Point(1.98691607, 41.28266017), new google.maps.Point(1.98743105, 41.28254730), new google.maps.Point(1.98811769, 41.28316003), new google.maps.Point(1.98723793, 41.28359540), new google.maps.Point(1.98631525, 41.28361152), new google.maps.Point(1.98582172, 41.28338578),  new google.maps.Point(1.98607922, 41.28314391)]; MapaResena.addOverlay(new google.maps.Polyline(TAnecBlau, "#ff0000", "10") ); }
var ResTitulo="<b>"+tit+"</b>";
var ResWeb="<a target='self' title='"+tit+"' href='http://"+web+"'>"+web+"</a>";
var ResTexto="<p>"+txt+"</p>"; var ResMaxTexto=txtMax;
var ResTelefono="<p><strong>"+tel+"</strong></p>";
var ResDireccion=dir +"<br />" +cp +ciu;
if (logo !="") {var ResLogotipo="<img src='"+logo +"' alt='"+tit +"' />";} else {ResLogotipo=""}; 
if ((web !="") & (ResLogotipo !="")) {ResLogotipo="<a target='self' title='"+tit+"' href='http://"+web+"'>"+ResLogotipo+"</a>"};
var ResOpciones="<div id='resOpc'><a href='javascript:AcercarZoom("+i+")' >acercar</a><a href='javascript:AlejarZoom("+i+")' >alejar</a><a href='javascript:MapaResena.getInfoWindow().maximize()'>más info</a><a href='javascript:CerrarMapa()'>cerrar mapa</a></div>";
var Resena="<div id='resena'>"+ResTitulo +ResLogotipo +ResWeb +ResTexto +ResTelefono +ResDireccion +"</div>" +ResOpciones;
if ((ind=="d") || (ind=="rm")) {Resena="<div id='resena'>"+ResTitulo +ResWeb +ResLogotipo +ResTexto +ResTelefono +ResDireccion +"</div>" +ResOpciones};

var ResMaxTitulo=ResTitulo+" ("+ciu+")";
var ResMaxOpciones="<div id='resMaxOpc'><a href='javascript:MapaResena.getInfoWindow().restore()'>minimizar ventana</a><a href='javascript:CerrarMapa()' >cerrar mapa</a></div>";
var ResMaxIdiomas="<select name='hl'><option value='ca'>Català</option><option value='da'>Dansk (danés)</option><option value='de'>Deutsch</option><option value='el'>Ελληνική (griego)</option><option value='en'>English</option><option value='es' selected>Español (castellano)</option><option value='eu'>Euskera</option><option value='fi'>Filandés</option><option value='fr'>Français</option><option value='gl'>Galego</option><option value='it'>Italiano</option><option value='ja'>Japonés</option><option value='nl'>Nederlands (holandés)</option><option value='no'>Norsk (noruego)</option><option value='pl'>Polski (polaco)</option><option value='pt-PT'>Português</option><option value='ru'>Русский (ruso)</option><option value='sv'>Svenska (sueco)</option></select>";
var ResMaxFUno="<form action='http://maps.google.com/maps' target='self' method='get'><table id='ResMaxFormHasta'><tr><td colspan='2'><b>Cómo llegar...</b></td></tr><tr><td><i>Desde:</i></td><td><input type='text' size='40' maxlength='50' name='saddr' id='saddr' value=' ' /></td></tr><tr><td><i>Hasta:</i></td><td><i>";
var ResMaxFTituloClientes=ResTitulo+" en "+ciu;
var ResMaxFTituloDirectorio="Castelldefels (Barcelona)";
var ResMaxFDos=".</i></td></tr><tr><td><i>Idioma:</i></td><td>"+ResMaxIdiomas+"</td></tr><tr><td colspan='2' style='text-align:center'><input value='Cómo llegar' type='submit' /></td></tr><tr><td colspan='2' style='text-align:center'><i>(La información se le mostrará en<br />una pantalla gestionada por Google)</i></td></tr></table>";
var ResMaxFDestinoClientes="<input type='hidden' name='daddr' id='destino' value=' "+lat+','+lng+" ' /></form>";
var ResMaxFDestinoDirectorio="<input type='hidden' name='daddr' id='destino' value='Castelldefels' /></form>";
var ResMaxFormClientes= ResMaxFUno + ResMaxFTituloClientes +ResMaxFDos +ResMaxFDestinoClientes;
var ResMaxFormDirectorio= ResMaxFUno +ResMaxFTituloDirectorio +ResMaxFDos +ResMaxFDestinoDirectorio;
var ResMaxFormHasta=ResMaxFormClientes;
var ResMaxPromoTexto1="<b>Directorio por actividades</b><p>En los mapas hay (cada día más) información, pero no toda. Si busca una empresa o profesional de Castelldefels, aproveche el<br /><a class='pflecha' href='../cst300-directorio_castelldefels.html'>Directorio por actividades</a></p>";
var ResMaxPromoTexto2="<b>Guía temática del Directorio</b><p>Toda la información que le ofrece el Directorio:<br />+ Empresas y profesionales,<br />+ Mapas,<br />+ Entidades y asociaciones,<br />+ Blogs y web personales,<br />+ Altas y tarifas,<br />+ Actualización de reseñas,<br />y un largo etc., lo tiene accesible desde<br /><a class='pflecha' href='../cst200-castefa_informacion.html'>Mucha más info en el Directorio</a></p>";
if ((ind=="d") || (ind=="cv") || (ind=="jrc") || (ind=="rm")) {ResMaxFormHasta=ResMaxFormDirectorio; ResMaxTitulo=ResTitulo };
if ((ind=="d") || (ind=="rm")) {ResMaxTexto="<td class='resMaxTxt'>"+ResMaxPromoTexto1+"</td><td class='resMaxTxt'>"+ResMaxPromoTexto2+"</td>"} else {ResMaxPromo=""};
var ResenaMax ="<div id='resMax'><table><tr><td><div id='resena'>" +ResTitulo +ResLogotipo +ResWeb +ResTexto +ResTelefono +ResDireccion +"</div></td><td style='vertical-align:bottom'>"+ResMaxFormHasta+"</td></tr><tr>"+ResMaxTexto+"</tr></table></div>"+ResMaxOpciones;
if ((ind=="d") || (ind=="rm")) {ResenaMax ="<div id='resMax'><table><tr><td><div id='resena'>" +ResTitulo +ResWeb +ResLogotipo +ResTexto +ResTelefono +ResDireccion +"</div></td><td style='vertical-align:bottom'>"+ResMaxFormHasta+"</td></tr><tr>"+ResMaxTexto+"</tr></table></div>"+ResMaxOpciones}

MapaResena.setCenter(point, zmap, G_NORMAL_MAP);
var marker=new google.maps.Marker(point,Icon); MapaResena.addOverlay(marker);
var maxContentDiv=document.createElement("div"); maxContentDiv.innerHTML=ResenaMax;
MapaResena.openInfoWindowHtml(point, Resena, {maxContent:maxContentDiv, maxTitle:ResMaxTitulo});
google.maps.Event.addListener(marker, "click", function() {marker.openInfoWindowHtml(Resena, {maxContent:maxContentDiv, maxTitle:ResMaxTitulo})} );
google.maps.Event.addListener(MapaResena, "zoomend", function() {marker.openInfoWindowHtml(Resena, {maxContent:maxContentDiv, maxTitle:ResMaxTitulo})} ) }

function CerrarMapa() {cBloque(100); restaurarAtajos(); location.href="#"}

// Zoom
function AvisosZoom() {
MapaActivo=MapaResena.getCurrentMapType().getName(); MActivo=MapaActivo.toUpperCase(); ZActual=MapaResena.getZoom();
AvisoTopeZoom="Mapas en el Directorio de Castelldefels.\n\nActualmente está visualizando la modalidad "+MActivo+"\ncon un zoom de "+ZActual+".";
AvisoTopeMax="\n\nEl mapa no puede aumentarse más.\n\nGracias.";
AvisoTopeMin="\n\nEl mapa no puede alejarse más.\n\nGracias.";
if (ZActual >=19) {MapaResena.zoomOut(); alert(AvisoTopeZoom+AvisoTopeMax)}
if (ZActual ==0) {MapaResena.zoomOut(); alert(AvisoTopeZoom+AvisoTopeMin)}
}

function AcercarZoom(){MapaResena.zoomIn(); MapaResena.setCenter(point); ZActual=MapaResena.getZoom(); if ( ZActual >=19 ) {AvisosZoom() } }
function AlejarZoom(){MapaResena.zoomOut(); MapaResena.setCenter(point); ZActual=MapaResena.getZoom(); if (ZActual ==0) {AvisosZoom() } }
