 /*	GoolzOOm. 
 	Por Jesús Barrio Pérez.
 	Version 2.0.3
 	www.tecnologiainmobiliaria.net
 */
// INICIO DEL CODIGO COMUN ////////////////////////////////////////////////////////////////////////////////////////
var map;
var map3d;
var marker;var lBbox;var geocoder = new GClientGeocoder();var MAGIC_NUMBER=6356752.3142;var WGS84_SEMI_MAJOR_AXIS = 6378137.0;var WGS84_ECCENTRICITY = 0.0818191913108718138;var DEG2RAD=0.0174532922519943;var PI=3.14159267;var alturaMinimaParaVerFicha = 16;var lat = 0;var lng = 0;var zoom = 0;var dir = ''; var ref='';var markerposition = '';var maptype = ''; var anuncio='';var FORMAT_DEFAULT="image/png";var MERC_ZOOM_DEFAULT = 3; var srs4326 = 'EPSG:4326'; var acc='';
function dd2MercMetersLng(p_lng) {return WGS84_SEMI_MAJOR_AXIS * (p_lng*DEG2RAD);}
function dd2MercMetersLat(p_lat) {var lat_rad = p_lat * DEG2RAD;return WGS84_SEMI_MAJOR_AXIS * Math.log(Math.tan((lat_rad + PI / 2) / 2) * Math.pow( ((1 - WGS84_ECCENTRICITY * Math.sin(lat_rad)) / (1 + WGS84_ECCENTRICITY * Math.sin(lat_rad))), (WGS84_ECCENTRICITY/2)));}
CustomGetTileUrl=function(a,b,c) {
	if (this.myMercZoomLevel == undefined) {this.myMercZoomLevel = MERC_ZOOM_DEFAULT;}
	if (this.myFormat == undefined) {this.myFormat = FORMAT_DEFAULT;}
	if (typeof(window['this.myStyles'])=="undefined") this.myStyles="";
	var lULP = new GPoint(a.x*256,(a.y+1)*256);
	var lLRP = new GPoint((a.x+1)*256,a.y*256);
	var lUL = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lULP,b,c);
	var lLR = G_NORMAL_MAP.getProjection().fromPixelToLatLng(lLRP,b,c);
	if (this.myMercZoomLevel!=0 && map.getZoom() < this.myMercZoomLevel) {lBbox=dd2MercMetersLng(lUL.x)+","+dd2MercMetersLat(lUL.y)+","+dd2MercMetersLng(lLR.x)+","+dd2MercMetersLat(lLR.y);var lSRS="EPSG:54004";} 
	else {lBbox=lUL.x+","+lUL.y+","+lLR.x+","+lLR.y;var lSRS="EPSG:4326";} 
	return this.myBaseURL + "&REQUEST="+this.myRequest+"&SERVICE=WMS&VERSION="+this.myVersion+"&LAYERS="+this.myLayers+"&STYLES="+this.myStyles+"&FORMAT="+this.myFormat+"&BGCOLOR=0xFFFFFF&TRANSPARENT="+this.myTransparent+"&SRS="+this.mySrs+"&BBOX="+lBbox+"&WIDTH=256&HEIGHT=256&reaspect=false";
};
function customOpacity() { return this.myOpacity;};
function CustomMap(name, minZoom, maxZoom, myRequest, mySrs, myLayers, myFormat, myVersion, myTransparent, opacity, tipoDeMapa, myBaseUrl){
  var tileCounty= new GTileLayer(new GCopyrightCollection(""),minZoom,maxZoom);
	tileCounty.myRequest = myRequest;
	tileCounty.mySrs = mySrs;
	tileCounty.myLayers = myLayers;
	tileCounty.myFormat = myFormat;
	tileCounty.myVersion = myVersion;
	tileCounty.myTransparent = myTransparent;
	tileCounty.myBaseURL = myBaseUrl;
	tileCounty.getTileUrl=CustomGetTileUrl;
	tileCounty.getOpacity = function() {return opacity;};
	var layer= (tipoDeMapa == G_SATELLITE_MAP)?[tipoDeMapa.getTileLayers()[0],tileCounty]:(tipoDeMapa == G_HYBRID_MAP)?[tileCounty,tipoDeMapa.getTileLayers()[1]]:[tileCounty];
	var custommap = new GMapType(layer, tipoDeMapa.getProjection(), name, tipoDeMapa);
	return custommap;
}
function tratarParametros(){
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for (var i=0; i<pairs.length; i++) {
		var pos = pairs[i].indexOf("=");
		var argname = pairs[i].substring(0,pos).toLowerCase();
		var value = pairs[i].substring(pos+1).toLowerCase();
		if (argname == "lat") {lat = parseFloat(value);}
		else if (argname == "lng") {lng = parseFloat(value);}
		else if (argname == "zoom") {zoom = parseInt(value);}
		else if (argname == "dir"){dir = unescape(value);}
		else if (argname == "ref"){ref = unescape(value);}
		else if (argname == "type") { maptype = value;}
		else if (argname == "marker") { markerposition = value;}
		else if (argname == "anuncio") { anuncio = value;}
		else if (argname == "acc") { acc = value;}
		}
}
function obtenerURL(map, point, srs){
	var bounds = map.getBounds(); var southWest = bounds.getSouthWest();var northEast = bounds.getNorthEast();
	lBbox = southWest.x + ',' + southWest.y + ','+ northEast.x + ',' + northEast.y;
	var aux1  = map.getCurrentMapType().getProjection().fromLatLngToPixel(southWest ,map.getZoom());
	var aux2  = map.getCurrentMapType().getProjection().fromLatLngToPixel(northEast ,map.getZoom());
	var aux3  = map.getCurrentMapType().getProjection().fromLatLngToPixel(point ,map.getZoom());
	var xaux = aux3.x - aux1.x; var yaux = aux3.y - aux2.y;var anchoDeMapa, altoDeMapa;var map = document.getElementById('map');
	if(navigator.appName=='Netscape'){anchoDeMapa = parseInt(getComputedStyle(map,null).getPropertyValue('width'));altoDeMapa = parseInt(getComputedStyle(map,null).getPropertyValue('height'));}
	else{anchoDeMapa = map.style.pixelWidth;altoDeMapa = map.style.pixelHeight;}
	return 'http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?&REQUEST=GetFeatureInfo&SERVICE=WMS&QUERY_LAYERS=catastro&FEATURE_COUNT=1&VERSION=1.1.0&SRS='+srs+'&BBOX='+lBbox+'&WIDTH='+ anchoDeMapa +'&HEIGHT='+ altoDeMapa+'&LAYERS=catastro&STYLES=default&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&EXCEPTIONS=XML&X=' + xaux +'&Y='+yaux;
}
// FIN DEL CÓDIGO COMUN ///////////////////////////////////////////////////////////////////////////////////
var enIngles = false;
var referenciaCatastralMarcada = '';

var esNetscape = (navigator.appName=='Netscape');
var esExplorer = (navigator.appName=='Microsoft Internet Explorer');
var versionNavegador = parseInt(navigator.appVersion);
var esExplorer6 = esExplorer && (versionNavegador=='4');
var controlVista;
var nombreCapaVista = "vista";
var anchoDeMapa, altoDeMapa;
var mostrandoEn3d = false;

var arrayProvincias = new Array("A CORU"+decodeURI('%C3%91')+"A","ALACANT","ALBACETE","ALMERIA","ASTURIAS","AVILA","BADAJOZ","BARCELONA","BURGOS","CACERES","CADIZ","CANTABRIA","CASTELLO","CEUTA","CIUDAD REAL","CORDOBA","CUENCA","GIRONA","GRANADA","GUADALAJARA","HUELVA","HUESCA","ILLES BALEARS","JAEN","LA RIOJA","LAS PALMAS","LEON","LLEIDA","LUGO","MADRID","MALAGA","MELILLA","MURCIA","OURENSE","PALENCIA","PONTEVEDRA","S. C. TENERIFE","SALAMANCA","SEGOVIA","SEVILLA","SORIA","TARRAGONA","TERUEL","TOLEDO","VALENCIA","VALLADOLID","ZAMORA","ZARAGOZA");
var arrayCodProv = new Array("15","3","2","4","33","5","6","8","9","10","11","39","12","51","13","14","16","17","18","19","21","22","7","23","26","35","24","25","27","28","29","52","30","32","34","36","38","37","40","41","42","43","44","45","46","47","49","50");
var latlngMouse; var fechaCartografia = ''; var midiendo = false; var displayMostrar = (esNetscape)?'table-row':'inline'; var displayMostrarTable = (esNetscape)?'table-row':'inline'; var textoCoordenadas; var textoMasMapas; var dir;var insertandoAnuncio=false;var mostrandoAnuncios=false;var outputAnterior; var directorioImagenes=rutaPrincipal + "img/";var imgCargando = '<img src="'+directorioImagenes+'cargando.gif">';
var csRecursos = true; var csArea = true; var csBuscar = true; var csCoordenadas = true; var csPanoramio = true;var csAnuncios = true; var csInsaertarAnuncio = true; var csMapas=true; var csRegistro=true; var overviewmap; 
var rutaScripts = rutaPrincipal+'scripts/'; var s1 = rutaScripts+ 'recursos.js'; var s2 = rutaScripts+ 'area.js';var s3 = rutaScripts+ 'buscar.js';var s4 = rutaScripts+ 'jscoord-1.1.1.js'; var s5 = rutaScripts+ 'panoramio.js'; var s6 = rutaScripts+ 'anuncios.js'; var s7=rutaScripts+ 'insertaranuncio.js'; var s8=rutaScripts+ 'mapas.js';var s9=rutaScripts+ 'registro.js';
var nombreCapa1='Catastro';var nombreCapa2='Catastro +';var nombreCapa3='Sigpac +';var mapaCatastro;var nombreCapa4='Relieve'; var posicionAnteriorMapa;
var forzarPedirMapaCatastro = false; var controlMasMapas; var mostrandoListadoMapas = false; var boundsOriginales; 
var mapControl;
var controlSlider;
var controlLeyenda;
var sliderAnadido = false;
var mostrandoSlider = false;
var leyendaAnadida = false;
var mostrandoLeyenda = false;
var mostrandoListadoDeFechas = false;
var imagenSlide = directorioImagenes + 'xslide.png';
var imagenXknob = directorioImagenes +'xknob.png';
var containerSlider;
var iconoDown = directorioImagenes+'icondown.gif';

function CustomMap2(name, minZoom, maxZoom, myRequest1, mySrs1, myLayers1, myFormat1, myVersion1, myTransparent1, opacity1, myBaseUrl1, myRequest2, mySrs2, myLayers2, myFormat2, myVersion2, myTransparent2, opacity2, myBaseUrl2){
	var tileCounty1= new GTileLayer(new GCopyrightCollection(""),minZoom,maxZoom);
  	tileCounty1.myRequest = myRequest1;
	tileCounty1.mySrs = mySrs1;
	tileCounty1.myLayers = myLayers1;
	tileCounty1.myFormat = myFormat1;
	tileCounty1.myVersion = myVersion1;
	tileCounty1.myTransparent = myTransparent1;
	tileCounty1.myBaseURL = myBaseUrl1;
	tileCounty1.getTileUrl=CustomGetTileUrl;
	//tileCounty1.getOpacity = function() {return opacity1;};
	
	var tileCounty2= new GTileLayer(new GCopyrightCollection(""),minZoom,maxZoom);
  	tileCounty2.myRequest = myRequest2;
	tileCounty2.mySrs = mySrs2;
	tileCounty2.myLayers = myLayers2;
	tileCounty2.myFormat = myFormat2;
	tileCounty2.myVersion = myVersion2;
	tileCounty2.myTransparent = myTransparent2;
	tileCounty2.myBaseURL = myBaseUrl2;
	tileCounty2.getTileUrl=CustomGetTileUrl;
	//tileCounty2.getOpacity = function() {return opacity2;};
	
	var layer = [tileCounty1,tileCounty2];
	var custommap = new GMapType(layer , G_NORMAL_MAP.getProjection(), name, G_NORMAL_MAP);
	return custommap;
}

function CustomMap3(name, minZoom, maxZoom, tipoDeMapa){
	var tileCounty= new GTileLayer(new GCopyrightCollection(""),minZoom,maxZoom);
	var layer= (tipoDeMapa == G_SATELLITE_MAP || tipoDeMapa == G_NORMAL_MAP)?[tipoDeMapa.getTileLayers()[0],tileCounty]:(tipoDeMapa == G_HYBRID_MAP)?[tileCounty,tipoDeMapa.getTileLayers()[1]]:[tileCounty];
	if(tipoDeMapa=='')tipoDeMapa=G_NORMAL_MAP;
	var custommap = new GMapType(layer, tipoDeMapa.getProjection(), name, tipoDeMapa);
	return custommap;
}

// CUSTOM MAP CRUNCHER ////////////////
function CustomMapCruncher(name, minZoom, maxZoom, myFormat, opacity, tipoDeMapa, myBaseUrl){
    var tileCounty= new GTileLayer(new GCopyrightCollection(""),minZoom,maxZoom);
	if(navigator.userAgent.indexOf("MSIE") == -1)tileCounty.isPng = function() {return true;};
	tileCounty.getTileUrl=function(a,b){var url = myBaseUrl + TileToQuadKey(a.x,a.y,b) + myFormat;return url;};
	tileCounty.getOpacity = function() {return opacity;};
	var layer= (tipoDeMapa == G_SATELLITE_MAP)?[tipoDeMapa.getTileLayers()[0],tileCounty]:(tipoDeMapa == G_HYBRID_MAP)?[tileCounty,tipoDeMapa.getTileLayers()[1]]:[tileCounty];
	return new GMapType(layer, tipoDeMapa.getProjection(), name, tipoDeMapa);
}

function TileToQuadKey ( tx,  ty,  zl){
	var quad;
	quad = "";
	for (var i = zl; i > 0; i--){
		var mask = 1 << (i - 1);
		var cell = 0;
		if ((tx & mask) != 0)
			cell++;
		if ((ty & mask) != 0)
			cell += 2;
		quad += cell;
		}
	return quad;
}
///////////////////////////////////////////

function load() {
	if(document.getElementById('tipoDeBusqueda'))
		document.getElementById('tipoDeBusqueda').selectedIndex = 0;
	if(document.getElementById('provincias')){
		document.getElementById('provincias').selectedIndex = 0;
		document.getElementById('provincias').style.display="none";
		}
	if(document.getElementById('provincias2'))
		document.getElementById('provincias2').style.display="none";
	//tabClick(0);
	map = new GMap2(document.getElementById("map"));
	if (GBrowserIsCompatible() && checkearUrl()) {
		prepararMapa();
		tratarParametros();
		if(lat!=0 && lng!=0){
			var point = new GLatLng(lat, lng);
			if(zoom==0)zoom = 18;
			map.setCenter(point, zoom);
			if(maptype==''){
				map.setMapType(mapTypePorNombreMapa(nombreCapa1));
				marker = new GMarker(point);
				map.addOverlay(marker);
				var url = obtenerURL(map, point,srs4326);
				var html = '<iframe style="width:600px;height:220px;border:none;overflow-x:hidden;" frameborder=0 marginheight=0 marginwidth=0 src=' + url + '></iframe>';
				marker.openInfoWindowHtml(html);
			}
			else{ 
				if(maptype>5)setTimeout('_mapas(function(){CambiarTipoDeMapa(maptype);})',1000);
				else map.setMapType(map.getMapTypes()[maptype]);
				if(markerposition!=''){
					markerposition = markerposition.split(",");
					marker = new GMarker(new GLatLng(markerposition[0], markerposition[1]));
					map.addOverlay(marker);
				}
			}
		}
		else if(dir!=''){centrarPorDefecto();showAddress(dir)}
		else if(ref!=''){document.getElementById("TextReferencia").value=ref; _buscarPorReferencia(function(){BuscarPorReferencia(false);});}
		else if(anuncio!=''){_mostrarAnuncios(function(){mostrarAnuncio(anuncio);});}
		else {centrarPorDefecto();}
		if(acc=='1'){
			//controlMasMapas = new ControlMasMapas();
			//map.addControl(controlMasMapas);
		}
		if(mapaAMostrarPorDefecto!=0)map.setMapType(map.getMapTypes()[mapaAMostrarPorDefecto]);
		CargarAnchoYAltoDeMapa();
    }
}

function checkearUrl(){
	//var referrer = document.referrer;
	//var referenciaCorrecta = (referrer.indexOf("http://www."+dominioReferencia)>=0 || referrer.indexOf("http://"+dominioReferencia)>=0 || referrer.indexOf("http://www.goolzoom.com")>=0 || referrer.indexOf("192.168.0.101")>=0);
	//if(!referenciaCorrecta)alert("AVISO: El mapa está siendo usado bajo un dominio diferente al de "+dominioReferencia+". Éste mensaje no volverá a aparecer en cuanto el mapa esté funcionando bajo dicho dominio.");
	//return referenciaCorrecta;
	return true;
}

function centrarPorDefecto(){map.setCenter(new GLatLng(latitudPorDefecto, longitudPorDefecto), zoomPorDefecto);}

function pedirMapaCatastro(){
	if(mapaCatastro)map.removeOverlay(mapaCatastro);
	var nombreCapaActual = map.getCurrentMapType().getName();
	if((nombreCapaActual==nombreCapa1)||(nombreCapaActual.indexOf("+")>0)){
		var bounds = map.getBounds(); var southWest = bounds.getSouthWest();var northEast = bounds.getNorthEast();
		lBbox = southWest.x + ',' + southWest.y + ','+ northEast.x + ',' + northEast.y;
		var bounds = map.getBounds(); var southWest = bounds.getSouthWest();var northEast = bounds.getNorthEast();
		var anchoDeMapa, altoDeMapa;
		var mapa = document.getElementById('map');
		if(navigator.appName=='Netscape'){anchoDeMapa = parseInt(getComputedStyle(mapa,null).getPropertyValue('width'));altoDeMapa = parseInt(getComputedStyle(mapa,null).getPropertyValue('height'));}
		else{anchoDeMapa = mapa.style.pixelWidth;altoDeMapa = mapa.style.pixelHeight;}
		var transparent = (nombreCapaActual==nombreCapa1 || nombreCapaActual=="Hibrido +")?"FALSE":"TRUE";
		var epsg = es4230()?"EPSG:4230":"EPSG:4326";
		var urlCatastro = "http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?&TIME=" + fechaCartografia +"&REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT="+transparent+"&SRS="+epsg+"&BBOX="+lBbox+"&WIDTH="+anchoDeMapa+"&HEIGHT="+altoDeMapa+"&reaspect=false";
		mapaCatastro = new GGroundOverlay(urlCatastro, new GLatLngBounds(southWest, northEast));
		map.addOverlay(mapaCatastro);
	}
}


function prepararMapa(){
	/*
	map.getMapTypes().length = 0;
	if(mostrarMapa)map.addMapType(G_NORMAL_MAP);			
	if(mostrarSatelite)map.addMapType(G_SATELLITE_MAP);
	if(mostrarHibrido)map.addMapType(G_HYBRID_MAP);
	//map.addMapType(CustomMap(nombreCapa1, 1, 21, 'GetMap',srs4326, '', 'image/png', '1.1.1', 'FALSE', '1', G_NORMAL_MAP, 'http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?&TIME=' + fechaCartografia));
	//map.addMapType(CustomMap(nombreCapa1, 1, 21, 'GetMap',srs4326, '', 'image/png', '1.1.1', 'FALSE', '1', G_NORMAL_MAP, '' ));
	//map.addMapType(CustomMap(nombreCapa2,1, 18, 'GetMap',srs4326, '', 'image/png', '1.1.1', 'TRUE', '1', G_SATELLITE_MAP, 'http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?&TIME=' + fechaCartografia));
	//map.addMapType(CustomMap(nombreCapa4,1, 21,'GetMap', srs4326, 'Todas','PNG','1.1.0', 'TRUE','1', G_NORMAL_MAP, 'http://www.idee.es/wms/IDEE-Base/IDEE-Base?&EXCEPTIONS=application/vnd.ogc.se_inimage'));
	//map.addMapType(CustomMap(nombreCapa4,3, 18,'GetMap', srs4326, 'MDT_PI','image/gif','1.1.0', 'TRUE','1', G_NORMAL_MAP, 'http://www.opengis.uab.es/cgi-bin/europarc/MiraMon5_0.cgi?STYLES=Sombras'));
	
	if(mostrarCatastro)map.addMapType(CustomMap3(nombreCapa1,1, 21, ''));
	if(mostrarCatastroMas)map.addMapType(CustomMap3(nombreCapa2,1, 18, G_SATELLITE_MAP));
	//map.addMapType(CustomMap(nombreCapa3,1, 21, 'GetMap','EPSG:4230', 'ORTOFOTOS', 'image/png', '1.1.0', 'TRUE', '1', G_NORMAL_MAP, 'http://195.235.91.59/wms/wms.aspx?&reaspect=true&EXCEPTIONS=XML'));
	//map.addMapType(CustomMap2(nombreCapa3,1, 21,'GetMap', 'EPSG:4230', 'ORTOFOTOS','image/jpeg','1.1.0', 'TRUE',1, 'http://wms.mapa.es/wms/wms.aspx?&reaspect=true&EXCEPTIONS=XML', 'GetMap','EPSG:4230', '', 'image/png', '1.1.1', 'TRUE', '1','http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?&TIME=' + fechaCartografia));
	if(mostrarSigpacMas)map.addMapType(CustomMap(nombreCapa3,1, 21,'GetMap', 'EPSG:4230', 'ORTOFOTOS','image/jpeg','1.1.0', 'TRUE','1', G_NORMAL_MAP, 'http://wms.mapa.es/wms/wms.aspx?&reaspect=true&EXCEPTIONS=XML'));
	if(mostrarCatastroMas)mapTypePorNombreMapa(nombreCapa2).getMaximumResolution = function() {return 18;};
	*/
	
	map.addMapType(CustomMap3(nombreCapaVista,1, 21, ''));
	if(mostrarCatastro)map.addMapType(CustomMap3(nombreCapa1,1, 21, ''));
	if(mostrarCatastroMas)
		//map.addMapType(CustomMap3(nombreCapa2,1, 18, G_SATELLITE_MAP));
		map.addMapType(CustomMap(nombreCapa2,1, 21,'GetMap', srs4326, 'pnoa','image/jpeg','1.1.1', 'TRUE','1', G_NORMAL_MAP, 'http://www.idee.es/wms/PNOA/PNOA?'));
	if(mostrarSigpacMas)map.addMapType(CustomMap(nombreCapa3,1, 21,'GetMap', 'EPSG:4230', 'ORTOFOTOS','image/jpeg','1.1.0', 'TRUE','1', G_NORMAL_MAP, 'http://wms.mapa.es/wms/wms.aspx?&reaspect=true&EXCEPTIONS=XML'));
	mapTypePorNombreMapa(nombreCapa2).getMaximumResolution = function() {return 18;};

	
	
   
	mapControl = new GHierarchicalMapTypeControl();
	mapControl.clearRelationships();
    mapControl.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, "Superponer callejero", true);
    
    
    

	
	if(controlZoomEnPequeno) map.addControl(new GSmallMapControl()); 
	else map.addControl(new GLargeMapControl());
	if(mostrarRegla){var scale = new GScaleControl(); map.addControl(scale);/* scale.fpsBar.style.visibility = 'hidden'; scale.fpsLbl.style.visibility = 'hidden'; */}
	if(mostrarOverviewMap){overviewmap = new GOverviewMapControl();map.addControl(overviewmap); if(!overViewMapAbierto)overviewmap.hide(true);}
	//if(mostrarControlTiposDeMapa)map.addControl(new GMapTypeControl());
	//if(mostrarZoomDinamico)map.addControl(new GZoomControl({sColor:'#000',nOpacity:.3,sBorder:'1px solid #CC0000'}, {sButtonHTML:'<img src=\''+directorioImagenes+'dz.gif\' style=\'border:1px solid #111;\'/>',sButtonZoomingHTML:'<img src=\''+directorioImagenes+'dz.gif\' style=\'border:1px solid #CC0000;\'/>',oButtonStartingStyle:{width:'18px',height:'18px'}}, {}), new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(75,26)));
	if(mostrarZoomDinamico)map.addControl(new DragZoomControl({color:'#000',opacity:.3,border:'1px solid #CC0000'}, {buttonHTML:'<img src=\''+directorioImagenes+'dz.gif\' style=\'border:1px solid #111;\'/>',buttonZoomingHTML:'<img src=\''+directorioImagenes+'dz.gif\' style=\'border:1px solid #CC0000;\'/>',buttonStartingStyle:{width:'18px',height:'18px'},stickyZoom:false, startInZoom:true,overlayRemoveTime:2000,backButtonHTML: '<img title="Volver al zoom anterior" src="'+directorioImagenes+'db.gif" style=\'border:1px solid #111;\'>',backButtonStyle: {display:'none',marginTop:'5px'},backButtonEnabled: true},{}), new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(75,26)));	
	


	
	if(habilitarClickSobreElMapa)anadirListenerClick();
	GEvent.addListener(map, "zoomend", function() {zoomEnd();});
	//GEvent.addListener(map, "dragend", function() {pedirMapaCatastro();});
	GEvent.addListener(map, "maptypechanged", function() {mapTypeChanged();});	
	GEvent.addListener(map, "mouseover", function() {cambiarCursor();});
	GEvent.addListener(map, "moveend", function() {moveEnd();});
	GEvent.addListener(map, "mousemove", function(point) { mouseMove(point);});
	
	if(habilitarZoomContinuo)map.enableContinuousZoom();
	if(mostrarCoordenadas){var controlCoordenadas = new ControlCoordenadas();map.addControl(controlCoordenadas);}
	if(mostrarMasMapas){controlMasMapas = new ControlMasMapas();map.addControl(controlMasMapas);}
	if(habilitarDobleClickSobreElMapa)map.enableDoubleClickZoom();
	if(habilitarRuedaDelMouse)map.enableScrollWheelZoom();
	if(controlTeclado)new GKeyboardHandler(map);
	if(opcionAux2)map.enableGoogleBar();
	
	controlVista = new ControlVista();
	map.addControl(controlVista);
    
	map.addControl(mapControl);
}

function UnirMapTypes(mapTypePadre, mapTypeHijos, textoBoton){
	map.addMapType(mapTypePadre);
	for(var i=0;i<mapTypeHijos.length;i++){
		map.addMapType(mapTypeHijos[i]);
		mapControl.addRelationship(mapTypePadre, mapTypeHijos[i],textoBoton[i] , false);
		}
	numeroDeMapasAnadidos = mapTypeHijos.length+1;		
}

function anadirSlider(tileLayer,posX,posY){
	controlSlider =new XSliderControl(tileLayer); 
	map.addControl(controlSlider,new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(posX, posY)));
	sliderAnadido = true;
	ocultarSlider();
}

function ocultarSlider(){
	containerSlider.style.display="none";
	mostrandoSlider = false;
}

function mostrarSlider(){
	containerSlider.style.display="block";
	mostrandoSlider = true;
}

function anadirLeyenda(tileLayer,posicionX,posicionY, anchoBoton, altoBoton, textoBoton, imagen, anchoImagen, altoImagen){
	controlLeyenda = new ControlLeyenda(tileLayer,anchoBoton,altoBoton,textoBoton,imagen,anchoImagen,altoImagen);
	map.addControl(controlLeyenda,new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(posicionX, posicionY)));
	leyendaAnadida = true;
	ocultarControlLeyenda();
}

function ocultarControlLeyenda(){
	containerLeyenda.style.display="none";
	mostrandoLeyenda = false;
}

function mostrarControlLeyenda(){
	containerLeyenda.style.display="block";
	mostrandoLeyenda = true;
}


function anadirListenerClick(){
	GEvent.addListener(map, "click", function(overlay,point) {
	if(mostrandoListadoMapas)mostrarMapas();
	if(mostrandoListadoDeFechas)_recursos(function(){ ocultarListadoFechas();});	
	if(estamosMostrandoElCatastro() && (map.getZoom()>=alturaMinimaParaVerFicha)&& (overlay != map.getInfoWindow()) ){
		//map.removeOverlay(marker);
		BorrarMarkerEInfoWindow();
		marker=new GMarker(point, generarIconoMarker());
		map.addOverlay(marker);
		//posicionAnteriorMapa = map.getCenter();
		//GEvent.addListener(marker,'infowindowclose',function(){map.panTo(posicionAnterior);}); 
		var url;
		if(insertandoAnuncio){
				if(es4230()){BorrarMarkerEInfoWindow();alert('No es posible seleccionar la parcela para el anuncio con el mapa Sigpac +, deberás de hacerlo en cualquiera de los otros mapas.');}
				else AbrirInfoWindowInsertarAnuncio(map, marker);
			}
		else{
			if(es4230())url = obtenerURL(map, point, 'EPSG:4230');
			else url = obtenerURL(map, point, 'EPSG:4326');
			AbrirInfoWindow(url, marker);
		}
		}
	});
}

function generarIconoMarker(){
	var icono = new GIcon();
	if(iconoMarker!=''){
		icono.image = iconoMarker;
		icono.iconAnchor = new GPoint(iconoAnchorAncho,iconoAnchorAlto);
        icono.infoWindowAnchor = new GPoint(iconoWindowAnchorAncho, iconoWindowAnchorAlto);
        icono.iconSize = new GSize(iconoSizeAncho, iconoSizeAlto);
        icono.shadow = iconoSadow;
	}
	else icono = G_DEFAULT_ICON;
	return icono;
}

function es4230(){
	var nombreCapaActual = map.getCurrentMapType().getName();
	return (nombreCapaActual==nombreCapa3 ||nombreCapaActual=="SitCyL +");
}

function AbrirInfoWindow(url, marker){
	boundsOriginales = map.getBounds();
	var point = marker.getPoint();var latitud = point.lat().toFixed(6);var longitud = point.lng().toFixed(6); var zoomAux=map.getZoom();
	var infoTabs;
	//var tabCatastro = '<iframe style="width:'+anchoMarcoFichaCatastral+'px;height:'+altoMarcoFichaCatastral+'px;border:none;overflow-x:hidden" scrolling=auto frameborder=0 marginheight=0 marginwidth=0 src=' + url + '></iframe>';
	var tabCatastro = '<iframe id="frameCatastro" style="width:520px;height:220px;border:none;" scrolling=auto frameborder=0 marginheight=0 marginwidth=0 src=' + url + '></iframe>';
	//var tabRegistro = '<div id="informacionRegistro"><table  style="width:600px;font-size:15px;"><tr><td height=20px; align=center style="font-size:17px;" valign=top><b>Solicita una nota simple registral de ésta parcela.</b></td></tr><tr><td height=30px; align=center valign=top>Rápido y sin necesidad de rellenar largos formularios.</td></tr><tr><td style="line-height:14pt;"><p>Recibirás una nota simple registral directamente en tu buzón de correo y en menos de 48 horas. Precio: 14 &euro;. Pago <u>seguro</u> mediante Paypal, tarjeta de crédito o transferencia.</p>Nombre y apellidos del titular registral actual o anterior:<br><input id="nombreTitularRegistro" type="text" style="width:300px;margin-top:5px;margin-bottom:5px;" class="textbox" value=""><br><input type="CHECKBOX" id="aceptoPrivacidad">He leido y acepto la <a href="javascript:void(0);" onClick="_registro(function(){MostrarPoliticaDePrivacidad()});">pol'+decodeURI('%C3%AD')+'tica de privacidad</a>.<br><input style="margin-top:7px;width:300px;" class=button type="button" value="Solicitar nota simple registral de ésta pacela." onClick="_registro(function(){EnviarFormularioRegistro(map);});"></td></tr></table></div>';
	//var tabRegistro = '<div id="informacionRegistro"><table  style="width:520px;font-size:15px;"><tr><td height=20px; align=center style="font-size:17px;" valign=top><b>Solicita una nota simple registral de ésta parcela.</b></td></tr><tr><td height=30px; align=center valign=top>Rápido y sin necesidad de rellenar largos formularios.</td></tr><tr><td style="line-height:14pt;"><p>Recibirás una nota simple registral directamente en tu buzón de correo y en menos de 48 horas. Precio: 14 &euro;. Pago <u>seguro</u> mediante Paypal.</p>Número de finca registral:<br><input id="nombreTitularRegistro" type="text" style="width:150px;margin-top:5px;margin-bottom:5px;" class="textbox" value=""><br><input type="CHECKBOX" id="aceptoPrivacidad">He leido y acepto la <a href="javascript:void(0);" onClick="_registro(function(){MostrarPoliticaDePrivacidad()});">pol'+decodeURI('%C3%AD')+'tica de privacidad</a>.<br><input style="margin-top:7px;width:300px;" class=button type="button" value="Solicitar nota simple registral de ésta pacela." onClick="_registro(function(){EnviarFormularioRegistro(map);});"></td></tr></table></div>';
	var tabVista =  (esNetscape)?'<object type="text/html" data="'+rutaPrincipal+'virtualearth.html?lat='+latitud+'&lng='+longitud+'" style="width:520px;height:220px;border:none;overflow:hidden;padding:0px;margin:0px"></object>':'<div><iframe id="frameVirtualEarth" src="virtualearth.html?lat='+latitud+'&lng='+longitud+'" style="width:520px;height:220px;border:none;" frameborder=0 marginheight=0 marginwidth=0 scrolling=no></iframe></div>';
	/*
	if(opcionAux1) 
		infoTabs = [
			new GInfoWindowTab("Catastro", tabCatastro),
			new GInfoWindowTab("Registro", tabRegistro)
		];
	else if(opcionAux2)
		infoTabs = [
			new GInfoWindowTab("Catastro", tabCatastro),
			new GInfoWindowTab("Vista", tabVista)
		];
		
	else infoTabs = [new GInfoWindowTab("Catastro", tabCatastro)];
	*/
	infoTabs = [
			new GInfoWindowTab("Catastro", tabCatastro)
			
		];
	
	marker.openInfoWindowTabsHtml(infoTabs);
}

function trazarRuta(origen, latitud, longitud, esHasta){
	map.closeInfoWindow();
	map.removeOverlay(marker);	
	origen = origen + ",spain";
	var destino = latitud + ','+ longitud;
	if(dir)dir.clear();
	dir = new GDirections(map, document.getElementById("panel"));
	if(esHasta)dir.loadFromWaypoints([origen, destino], { "locale": "es" });
	else dir.loadFromWaypoints([destino, origen], { "locale": "es" });
	document.getElementById('columnatrayectoria').style.display= (esNetscape)?'table-cell':'inline';	
	map.checkResize();
}
function borrarRuta(){
	document.getElementById('columnatrayectoria').style.display = "none";
	map.checkResize();
	dir.clear();
}

function controlarMovimientoDelMapa(){
	if(midiendo){}
	else{
		cambiarCursor();
		if(mostrandoAnuncios){
			if(!insertandoAnuncio){
				if(map.getZoom()>=zoomMinimoParaMostrar){
					mosTrarNumeroDeAnuncios();
					//ActualizarOutputNumeroDeAnuncios(false);
					MostrarMarkersAnuncios();
					}
				else{
					OcultarMarkersAnuncios();
					//ActualizarOutputNumeroDeAnuncios(false);
					mosTrarNumeroDeAnuncios();
					}			
			}
		}
	}
}

function cambiarCursor(){
	if(insertandoAnuncio){
		if(map.getZoom()>=alturaMinimaParaVerFicha)cambiarCursorCross();else cambiarCursorDefault();
	}
	else {
		if(midiendo)cambiarCursorCross();
		else{
			if(map.getZoom()>=alturaMinimaParaVerFicha && estamosMostrandoElCatastro())cambiarCursorHand();else cambiarCursorDefault();
			}
	}
}
function cambiarTipoMapaSigPac(){
	if(mostrarSigpacMas){
		var tileLayerSigpac = mapTypePorNombreMapa(nombreCapa3).getTileLayers()[0];
		if (map.getZoom()<=14){
			tileLayerSigpac.myLayers = 'mtn_rasterizado';
			tileLayerSigpac.myBaseURL="http://idee.unizar.es/wms/MTN-Raster/MTN-Raster?&SERVICE=WMS&STYLES=default&BGCOLOR=0xFFFFFF&EXCEPTIONS=application/vnd.ogc.se_inimage";
			}
		else{
			tileLayerSigpac.myLayers = 'ORTOFOTOS';
			tileLayerSigpac.myBaseURL="http://wms.mapa.es/wms/wms.aspx?&reaspect=true&EXCEPTIONS=XML";
		}
	}
}
/*
function mouseOver(){
	if(midiendo){}
	else if(mostrandoAnuncios){
		if(!insertandoAnuncio)cambiarCursorDefault();
		else{
			if(map.getZoom()>=alturaMinimaParaVerFicha)cambiarCursorCross();
			else cambiarCursorDefault();
		}
	}
	else{if(map.getZoom()>=alturaMinimaParaVerFicha)cambiarCursorHelp();else cambiarCursorDefault();}
}
*/
function mouseMove(point){
	if(mostrarCoordenadas)textoCoordenadas.innerHTML = point.y.toFixed(6) + ', ' + point.x.toFixed(6);	
}

function estamosMostrandoElCatastro(){
	var nombreCapaActual = map.getCurrentMapType().getName();
	return ((nombreCapaActual==nombreCapa1)||(nombreCapaActual.indexOf("+")>0))
}

function zoomEnd(){
	pedirMapaCatastro();
	cambiarTipoMapaSigPac();
	if(mostrandoAnuncios)
		generarTablaListado();
}

function moveEnd(){
	pedirMapaCatastro();
	controlarMovimientoDelMapa();
}

function mapTypeChanged(){
	bsVista.display = "none";
	var nombreMapaActual = map.getCurrentMapType().getName();
	pedirMapaCatastro();
	if(nombreMapaActual==nombreCapa3){
		if(mostrandoAnuncios){
			if(insertandoAnuncio)
				alert('No es posible seleccionar la parcela para el anuncio con el mapa Sigpac +, deberás de hacerlo en cualquiera de los otros mapas.');
			else alert('Importante: La ubicacion exacta de los anuncios en el mapa Sigpac + está situada a unos unos 200 metros en dirección noreste desde el punto del anuncio.'); 
		BorrarMarkerEInfoWindow();
		}
	}
	else if(nombreMapaActual==nombreCapaVista){
			bsVista.display = "block";
			mostrarVista();
			}
	cambiarTipoMapaSigPac();
}

function mostrarVista(){
	var point = map.getCenter();var latitud = point.lat();var longitud = point.lng();
	var texto = (esNetscape)?'<object type="text/html" data="virtualearth.html?lat='+latitud+'&lng='+longitud+'&height='+altoDeMapa+'&width='+anchoDeMapa+'" style="width:'+anchoDeMapa+';height:'+altoDeMapa+';border:none;overflow:hidden;padding:0px;margin:0px"></object>':'<div><iframe id="frameVirtualEarth" src="virtualearth.html?lat='+latitud+'&lng='+longitud+'&height='+altoDeMapa+'&width='+anchoDeMapa+'" style="width:'+anchoDeMapa+';height:'+altoDeMapa+';border:none;" frameborder=0 marginheight=0 marginwidth=0 scrolling=no></iframe></div>';
	document.getElementById("layerVista").innerHTML=texto;
	if(map.getZoom()<16)map.setZoom(16);
}
function CargarAnchoYAltoDeMapa(){
	map.checkResize();
	var mapa = document.getElementById('map');	
	if(esNetscape){anchoDeMapa = parseInt(getComputedStyle(mapa,null).getPropertyValue('width'));altoDeMapa = parseInt(getComputedStyle(mapa,null).getPropertyValue('height'));}
	else{anchoDeMapa = mapa.style.pixelWidth;altoDeMapa = mapa.style.pixelHeight;}	
}

function cambiarCursorDefault(){if(navigator.appName=='Netscape') document.styleSheets[0].cssRules[0].style.cursor='default';else document.styleSheets[0].rules[0].style.cursor='default';}
function cambiarCursorHand(){if(navigator.appName=='Netscape') document.styleSheets[0].cssRules[0].style.cursor='pointer';else document.styleSheets[0].rules[0].style.cursor='pointer';}
function cambiarCursorHelp(){if(navigator.appName=='Netscape') document.styleSheets[0].cssRules[0].style.cursor='help';else document.styleSheets[0].rules[0].style.cursor='help';}
function cambiarCursorCross(){if(navigator.appName=='Netscape') document.styleSheets[0].cssRules[0].style.cursor='crosshair';else document.styleSheets[0].rules[0].style.cursor='crosshair';}

function showAddress(address) {
	if(midiendo)ClearAllPoints();
	map.clearOverlays();
	if (geocoder) {
		geocoder.setBaseCountryCode('ES');
		address+=', '+ nombrePoblacion +', ' + nombreProvincia;
		geocoder.getLatLng(address,function(point) {
			if (!point) {alert(address + " no encontrada");/*map.setCenter(new GLatLng(40.413496, -3.779297), 5);*/} 
			else {	
				map.setCenter(point, 18);
				map.clearOverlays();
				var infoTabs = [
					new GInfoWindowTab("Dirección", address)
					//new GInfoWindowTab("Link", '<font alignPleft; style="font-size:15px">Enlaza con esta dirección desde tu web:<form name=urlForm id=urlForm><p><b>URL:&nbsp;&nbsp;</b><input name=input_url id=input_url type=text style="width:300px;height:23px;"  value="http://www.goolzoom.com/?dir='+ address+ '" readonly=true onClick="javascript:document.urlForm.input_url.focus();document.urlForm.input_url.select();"></form></p></font>')
					];
				map.openInfoWindowTabsHtml(point, infoTabs);
				pedirMapaCatastro();
				}
          	}
          );
       }
	}
	
function ControlCoordenadas() {}ControlCoordenadas.prototype = new GControl();
ControlCoordenadas.prototype.getDefaultPosition = function() {return new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(2, 33));};

ControlCoordenadas.prototype.initialize = function(map) {
		var container = document.createElement("div");
		var coordenadas = document.createElement("div");
		coordenadas.id = "coordenadas";
		textoCoordenadas = coordenadas;
		this.setButtonStyle_(coordenadas);
		container.appendChild(coordenadas);
		map.getContainer().appendChild(container);
		return container;
};
ControlCoordenadas.prototype.setButtonStyle_ = function(button) {
	var bs = button.style;
	bs.fontSize = "10";
	bs.height = "13px";
	bs.padding = "3px";
	bs.width = "120px";	
	//bs.filter ="alpha(opacity=50)";
	bs.color = "white";
	if(navigator.appName=='Netscape')
		bs.backgroundImage = 'url('+directorioImagenes+'black50.png)';
	else bs.background="#808080";
	};
	
function ControlMasMapas() {}ControlMasMapas.prototype = new GControl();
ControlMasMapas.prototype.getDefaultPosition = function() {return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(7, 33));};

ControlMasMapas.prototype.initialize = function(map) {
		var container = document.createElement("div");
		var masMapas = document.createElement("div");
		masMapas.id = "masMapas";
		textoMasMapas = masMapas;
		var botonMasMapasDown = '<div onClick="_mapas(function(){mostrarMapas();});">+ Mapas <img id="imagenMasMapas" src="'+directorioImagenes+'icondown.gif" style="cursor:pointer;"></div>';
		textoMasMapas.innerHTML = botonMasMapasDown;
		this.setButtonStyle_(masMapas);
		container.appendChild(masMapas);
		map.getContainer().appendChild(container);
		return container;
};
ControlMasMapas.prototype.setButtonStyle_ = function(button) {
	var bs = button.style;
	bs.fontSize = "9pt";
	bs.height = "14px";
	bs.padding = "1px";
	bs.width = "62px";
	bs.border = "1px solid black";	
	bs.textAlign="center";
	bs.background="#FFFFFF";
	bs.cursor="pointer";
	};
	
function abrirListadoFechas(){
	if(!mostrandoListadoDeFechas){
		document.getElementById('divFechasDeCatastro').style.display="block";
		if(!esNetscape)document.getElementById('divFechasDeCatastro').style.marginTop="18px";
		mostrandoListadoDeFechas = true;
		}
	else ocultarListadoFechas();
}

function ocultarListadoFechas(){
	if(mostrandoListadoDeFechas){
		var divFechasDeCatastro = document.getElementById("divFechasDeCatastro");
		divFechasDeCatastro.style.display="none";
		mostrandoListadoDeFechas = false;
		}
}
	
function cambiarFechaCatastro(fecha){
	var icnonoFlecha = '&nbsp;<span style="font-size:8px;">&#9660;';
	document.getElementById('fechacatastro2').innerHTML=fecha?fecha + icnonoFlecha:"actual"+icnonoFlecha;
	fecha=(fecha)?fecha+"-01-01":"";
	fechaCartografia = fecha;
	pedirMapaCatastro();
	document.getElementById("map").focus();
	ocultarListadoFechas();
}

function _medirArea(fn){csArea? csArea = cs(s2, fn) : fn();}
function _convertirCoordenadas(fn){csCoordenadas? csCoordenadas = cs(s4, fn) : fn();}
function _mostrarAutor(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _mostrarControlLeyenda(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _link(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _recursos(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _imprimir(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _mostrarTop(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _ocultarTop(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _cambiarFechaCatastro(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _cambiarTipoDeBusqueda(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _buscarPorPoligonoYParcela(fn){csBuscar? csBuscar = cs(s3, fn) : fn();}
function _buscarPorCalleYNumero(fn){csBuscar? csBuscar = cs(s3, fn) : fn();}
function _buscarPorReferencia(fn){csBuscar? csBuscar = cs(s3, fn) : fn();}
function _buscarPorCoordenadasGeog(fn){csBuscar? csBuscar = cs(s3, fn) : fn();}
function _buscarPorCoordenadasUTM(fn){csBuscar? csBuscar = cs(s3, fn) : fn();}
function _seleccionarPoblacion(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _cargarCalles(fn){csRecursos? csRecursos = cs(s1, fn) : fn();}
function _cargarFotos(fn){csPanoramio? csPanoramio = cs(s5, fn) : fn();}
function _mostrarAnuncios(fn){csAnuncios? csAnuncios = cs(s6, fn) : fn();}
function _insertarAnuncios(fn){csInsertarAnuncios? csInsertarAnuncios = cs(s7, fn) : fn();}
function _filtrarAnuncios(fn){csAnuncios? csAnuncios = cs(s6, fn) : fn();}
function _insertarAnuncio(fn){csInsaertarAnuncio? csInsaertarAnuncio = cs(s7, fn) : fn();}
function _mapas(fn){csMapas? csMapas = cs(s8, fn) : fn();}
function _registro(fn){csRegistro? csRegistro = cs(s9, fn) : fn();}
function cs(scriptUrl, callback){GDownloadUrl(scriptUrl, function(data, responseCode) {e = document.createElement("script");e.lang = 'javascript';e.type ='text/javascript'; e.charset='ISO-8859-15';e.content='application/x-javascript; charset=ISO-8859-15'; e.text = data; document.getElementsByTagName("head")[0].appendChild(e);callback();});return false;}

/*Copyright (c) 2005-2006, Andre Lewis, andre@earthcode.com. All rights reserved.*/
//eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('9 6(26,24,1q){6.G.5={1b:.2,1K:"#4c",1O:"4b 2W 4a"};7 5=6.G.5;W(7 s 1u 26){5[s]=26[s]};7 25=5.1O.29(\' \');5.1X=1H(25[0].49(/\\D/g,\'\'));5.2y=25[2];5.1D=\'2H(X=\'+(5.1b*2G)+\')\';6.G.y={2s:T,23:\'2n ...\',2U:{I:\'48\',2r:\'1m 2W 47\',46:\'1f 2V 1m 2V\'},22:{11:\'#45\'},2R:\'44 a 43 42 41 20\',2Q:{11:\'#40\'},2x:3Z,2t:T};W(7 s 1u 24){6.G.y[s]=24[s]};d(1q==x){1q={}};6.G.H=1q}6.8=J 3Y();6.G={14:T,F:x,B:x,v:x,C:x,Z:x,L:x,13:0,12:0,1g:0,h:0,f:0,15:0};6.8.2P=9(2T){7 G=6.G;7 m=w.2O(\'z\');m.1p=G.y.23;m.j=\'q-1Y\';b.5([m],{2N:\'3X\',2M:3W});b.5([m],G.y.2U);b.5([m],G.y.22);2T.2L(m);A m};6.8.1C=9(2S){7 G=6.G;d(2S==\'2p\'){G.m.1p=G.y.2R;b.5([G.m],G.y.2Q)}1A{G.m.1p=G.y.23;b.5([G.m],G.y.22)}};6.8.3V=9(k){7 G=6.G;7 21=k.1M();7 m=1Z.2P(21);7 o=w.2O("z");o.j=\'q-20-2J\';o.1p=\'<z j="q-2K" 5="V:U;n:K;"></z><z j="q-F" 5="V:U;n:K;"></z><z j="q-C" 5="V:U;n:K;"></z><z j="q-B" 5="V:U;n:K;"></z><z j="q-v" 5="V:U;n:K;"></z>\';b.5([o],{V:\'U\',n:\'K\',3U:\'3T\',2N:\'3S\',2M:3R});21.2L(o);1o.1n(m,\'3Q\',6.8.2q);1o.1n(o,\'3P\',6.8.2I);1o.1n(w,\'3O\',6.8.2D);1o.1n(w,\'3N\',6.8.2B);G.Z=b.1x(k.1M());G.L=$j("q-2K");G.m=$j("q-1Y");G.M=$j("q-20-2J");G.F=$j("q-F");G.B=$j("q-B");G.v=$j("q-v");G.C=$j("q-C");G.k=k;G.15=G.5.1X*2;1Z.1L();1Z.1N();E("3M 3L q 1Y");A m};6.8.3K=9(){A J 3J(3I,J 3H(3,3G))};6.8.2I=9(e){7 G=6.G;7 p=6.8.1d(e);E("3F 2E 2z "+p.u+", "+p.r);G.h=p.u;G.f=p.r;b.5([G.M],{11:\'3E\',X:1,1E:\'2H(X=2G)\'});b.5([G.L],{u:G.h+\'l\',r:G.f+\'l\',n:\'N\',I:\'1m\',10:\'1m\'});G.14=2k;G.F.5.r=(G.f-G.12)+\'l\';G.F.5.n=\'N\';G.C.5.u=(G.h-G.13)+\'l\';G.C.5.r=(G.f)+\'l\';G.C.5.n=\'N\';G.B.5.u=(G.h)+\'l\';G.B.5.r=(G.f)+\'l\';G.B.5.n=\'N\';G.v.5.u=(G.h)+\'l\';G.v.5.r=(G.f)+\'l\';G.v.5.I=\'1f\';G.v.5.n=\'N\';d(G.H.2F!=x){G.H.2F(G.h,G.f)};E("2A 2E 1a");A T};6.8.2D=9(e){7 G=6.G;d(G.14){7 p=6.8.1d(e);c=6.8.1J(G.h,G.f,p,G.1g);G.L.5.I=c.1c+"l";G.L.5.10=c.1I+"l";G.B.5.u=(c.Q+G.15)+\'l\';G.v.5.r=(c.P+G.15)+\'l\';G.v.5.I=(c.1c+G.15)+\'l\';d(G.H.2C!=x){G.H.2C(G.h,G.f,c.Q,c.P)};A T}};6.8.2B=9(e){7 G=6.G;d(G.14){7 p=6.8.1d(e);G.14=T;7 c=6.8.1J(G.h,G.f,p,G.1g);E("2A 3D 2z "+c.Q+", "+c.P+". 3C/I="+c.1c+","+c.1I);6.8.1F();7 1T=J 1l(c.h,c.f);7 1S=J 1l(c.Q,c.f);7 1R=J 1l(c.Q,c.P);7 1Q=J 1l(c.h,c.P);7 1j=G.k.1k(1T);7 1i=G.k.1k(1S);7 1U=G.k.1k(1R);7 1h=G.k.1k(1Q);7 1W=J 3B([1j,1i,1U,1h,1j],G.5.2y,G.5.1X+1,.4);3A{G.k.3z(1W);3y(9(){G.k.3x(1W)},G.y.2x)}3w(e){1r.1s("1s 3v 3u 3t:"+e.3s)}1V=J 3r(1h,1i);2v=G.k.3q(1V);2w=1V.3p();G.k.3o(2w,2v);d(G.H.2u!=x){G.H.2u(1j,1i,1U,1h,1T,1S,1R,1Q)};d(G.y.2t){6.8.1e()}}};6.8.1L=9(){7 G=6.G;d(G.y.2s){G.k.3n()};7 1P=G.k.3m();G.13=1P.I;G.12=1P.10;G.1g=G.12/G.13;b.5([G.M,G.F,G.B,G.v,G.C],{I:G.13+\'l\',10:G.12+\'l\'})};6.8.1N=9(){7 G=6.G;b.5([G.M,G.F,G.B,G.v,G.C],{1E:G.5.1D,X:G.5.1b,11:G.5.1K});G.L.5.2r=G.5.1O;E("1a 1N")};6.8.2q=9(){d(6.G.M.5.n==\'N\'){6.8.1F()}1A{6.8.1e()}};6.8.1e=9(){7 G=6.G;G.Z=b.1x(G.k.1M());6.8.1L();6.8.1C(\'2p\');b.5([G.M],{n:\'N\',11:G.5.1K});b.5([G.L],{I:\'1f\',10:\'1f\'});d(6.G.H[\'2o\']!=x){6.G.H.2o()};E("1a 1e")};6.8.1d=9(e){7 p=b.2j(e);7 G=6.G;A{r:(p.r-G.Z.r),u:(p.u-G.Z.u)}};6.8.1J=9(h,f,p,1G){7 S=p.u-h;7 R=p.r-f;d(S<0)S=S*-1;d(R<0)R=R*-1;Y=S>R?S:R;A{h:h,f:f,Q:h+Y,P:f+1H(Y*1G),1c:Y,1I:1H(Y*1G)}};6.8.1F=9(){7 G=6.G;b.5([G.M,G.F,G.B,G.v,G.C],{n:\'K\',X:G.5.1b,1E:G.5.1D});G.L.5.n=\'K\';6.8.1C(\'3l\');E("1a 3k 3j 3i 2n")};9 $j(2m){A w.3h(2m)}d(!1B[\'2l\']){7 b={};1B[\'2l\']=2k}b.2j=9(e){7 18=0;7 17=0;d(!e)7 e=1B.3g;d(e.2i||e.2h){18=e.2i;17=e.2h}1A d(e.2g||e.2f){18=e.2g+(w.19.1z?w.19.1z:w.2e.1z);17=e.2f+(w.19.1y?w.19.1y:w.2e.1y)}A{u:18,r:17}};b.1x=9(16){7 1w=16.2d;7 1v=16.2c;7 O=16.2b;3f(O!=x){1w+=O.2d;1v+=O.2c;O=O.2b}A{u:1w,r:1v}};b.5=9(a,o){d(3e(a)==\'3d\'){a=b.2a(a)}W(7 i=0;i<a.1t;i++){W(7 s 1u o){a[i].5[s]=o[s]}}};b.2a=9(s){t=s.29(\',\');a=[];W(7 i=0;i<t.1t;i++){a[a.1t]=$j(t[i])};A a};7 1r={E:9(){},3c:9(){},3b:9(){},1s:9(){},28:9(){}};7 E=9(){};d(3a.39.38(/37/)){w.36(\'<27 35="28/34" 33="32://31.30/2Z/2Y/1r.2X"></27>\')};',62,261,'|||||style|GZoomControl|var|prototype|function||acl|oRec|if||nStartY||nStartX||id|oMap|px|oButton|display||oPos|gzoom|top|||left|mcb|document|null|options|div|return|mcr|mcl||debug|mct||callbacks|width|new|none|oOutline|mc|block|eParElement|nEndY|nEndX|dY|dX|false|absolute|position|for|opacity|delta|oMapPos|height|background|nMapHeight|nMapWidth|bDragging|nBorderCorrect|eElement|posy|posx|documentElement|done|nOpacity|nWidth|getRelPos_|initCover_|0px|nMapRatio|sw|ne|nw|fromContainerPixelToLatLng|GPoint|1px|addDomListener|GEvent|innerHTML|oCallbacks|jslog|error|length|in|nTopPos|nLeftPos|getElementPosition|scrollTop|scrollLeft|else|window|setButtonMode_|sIEAlpha|filter|resetDragZoom_|nRatio|parseInt|nHeight|getRectangle_|sColor|setDimensions_|getContainer|initStyles_|sBorder|oSize|swpx|sepx|nepx|nwpx|se|oBounds|oZoomArea|nOutlineWidth|control|this|map|oMC|oButtonStyle|sButtonHTML|oOptions|aStyle|oBoxStyle|script|text|split|getManyElements|offsetParent|offsetTop|offsetLeft|body|clientY|clientX|pageY|pageX|getMousePosition|true|acldefined|sId|zoom|buttonClick|zooming|buttonClick_|border|bForceCheckResize|bStickyZoom|dragEnd|nZoom|oCenter|nOverlayRemoveMS|sOutlineColor|at|mouse|mouseup_|dragging|drag_|down|dragStart|100|alpha|coverMousedown_|cover|outline|appendChild|zIndex|cursor|createElement|initButton_|oButtonZoomingStyle|sButtonZoomingHTML|sMode|oMapContainer|oButtonStartingStyle|5px|solid|js|scripts|includes|com|earthcode|http|src|javascript|type|write|enablejslog|match|href|location|warning|info|string|typeof|while|event|getElementById|drag|reset|with|normal|getSize|checkResize|setCenter|getCenter|getBoundsZoomLevel|GLatLngBounds|message|overlay|zoomarea|adding|catch|removeOverlay|setTimeout|addOverlay|try|GPolyline|Height|up|transparent|Mouse|120|GSize|G_ANCHOR_TOP_LEFT|GControlPosition|getDefaultPosition|Initializing|Finished|mouseup|mousemove|mousedown|click|101|crosshair|hidden|overflow|initialize|200|pointer|GControl|6000|FF0|the|on|region|Drag|FFF|padding|black|52px|replace|blue|2px|000'.split('|'),0,{}));

function DragZoomControl(a,b,c){this.globals={draggingOn:false,cornerTopDiv:null,cornerRightDiv:null,cornerBottomDiv:null,cornerLeftDiv:null,mapPosition:null,outlineDiv:null,mapWidth:0,mapHeight:0,mapRatio:0,startX:0,startY:0,borderCorrection:0};this.globals.style={opacity:.2,fillColor:"#000",border:"2px solid blue"};var d=this.globals.style;for(var s in a){d[s]=a[s]}var e=d.border.split(' ');d.outlineWidth=parseInt(e[0].replace(/\D/g,''));d.outlineColor=e[2];d.alphaIE='alpha(opacity='+(d.opacity*100)+')';this.globals.backStack=[];this.globals.options={buttonHTML:'zoom ...',buttonStartingStyle:{width:'52px',border:'1px solid black',padding:'2px'},buttonStyle:{background:'#FFF'},backButtonHTML:'zoom back',backButtonStyle:{background:'#FFF',display:'none'},buttonZoomingHTML:'Drag a region on the map',buttonZoomingStyle:{background:'#FF0'},overlayRemoveTime:6000,backButtonEnabled:false,stickyZoomEnabled:false};for(var s in b){this.globals.options[s]=b[s]}if(c==null){c={}}this.globals.callbacks=c}
DragZoomControl.prototype=new GControl();
DragZoomControl.prototype.saveMapContext=function(a){if(this.globals.options.backButtonEnabled){this.saveBackContext_(a,true);this.globals.backButtonDiv.style.display='block'}};
DragZoomControl.prototype.initiateZoom=function(){this.buttonclick_()};
DragZoomControl.prototype.initiateZoomBack=function(){if(this.globals.options.backButtonEnabled)this.backbuttonclick_()};
DragZoomControl.prototype.initButton_=function(a){var G=this.globals;var b=document.createElement('div');b.innerHTML=G.options.buttonHTML;b.id='gzoom-control';DragZoomUtil.style([b],{cursor:'pointer',zIndex:200});DragZoomUtil.style([b],G.options.buttonStartingStyle);DragZoomUtil.style([b],G.options.buttonStyle);a.appendChild(b);return b};
DragZoomControl.prototype.initBackButton_=function(a){var G=this.globals;var b=document.createElement('div');b.innerHTML=G.options.backButtonHTML;b.id='gzoom-back';DragZoomUtil.style([b],{cursor:'pointer',zIndex:200});DragZoomUtil.style([b],G.options.buttonStartingStyle);DragZoomUtil.style([b],G.options.backButtonStyle);a.appendChild(b);return b};
DragZoomControl.prototype.setButtonMode_=function(a){var G=this.globals;if(a=='zooming'){G.buttonDiv.innerHTML=G.options.buttonZoomingHTML;DragZoomUtil.style([G.buttonDiv],G.options.buttonStartingStyle);DragZoomUtil.style([G.buttonDiv],G.options.buttonZoomingStyle)}else{G.buttonDiv.innerHTML=G.options.buttonHTML;DragZoomUtil.style([G.buttonDiv],G.options.buttonStartingStyle);DragZoomUtil.style([G.buttonDiv],G.options.buttonStyle)}};
DragZoomControl.prototype.initialize=function(a){var G=this.globals;var b=this;var c=a.getContainer();var d=document.createElement("div");DragZoomUtil.style([d],{cursor:'pointer',zIndex:150});var f=this.initButton_(d);var g=this.initBackButton_(d);c.appendChild(d);var h=document.createElement("div");h.id='gzoom-map-cover';h.innerHTML='<div id="gzoom-outline" style="position:absolute;display:none;"></div><div id="gzoom-cornerTopDiv" style="position:absolute;display:none;"></div><div id="gzoom-cornerLeftDiv" style="position:absolute;display:none;"></div><div id="gzoom-cornerRightDiv" style="position:absolute;display:none;"></div><div id="gzoom-cornerBottomDiv" style="position:absolute;display:none;"></div>';DragZoomUtil.style([h],{position:'absolute',display:'none',overflow:'hidden',cursor:'crosshair',zIndex:101});c.appendChild(h);GEvent.addDomListener(f,'click',function(e){b.buttonclick_(e)});GEvent.addDomListener(g,'click',function(e){b.backbuttonclick_(e)});GEvent.addDomListener(h,'mousedown',function(e){b.coverMousedown_(e)});GEvent.addDomListener(document,'mousemove',function(e){b.drag_(e)});GEvent.addDomListener(document,'mouseup',function(e){b.mouseup_(e)});G.mapPosition=DragZoomUtil.getElementPosition(c);G.outlineDiv=DragZoomUtil.gE("gzoom-outline");G.buttonDiv=DragZoomUtil.gE("gzoom-control");G.backButtonDiv=DragZoomUtil.gE("gzoom-back");G.mapCover=DragZoomUtil.gE("gzoom-map-cover");G.cornerTopDiv=DragZoomUtil.gE("gzoom-cornerTopDiv");G.cornerRightDiv=DragZoomUtil.gE("gzoom-cornerRightDiv");G.cornerBottomDiv=DragZoomUtil.gE("gzoom-cornerBottomDiv");G.cornerLeftDiv=DragZoomUtil.gE("gzoom-cornerLeftDiv");G.map=a;G.borderCorrection=G.style.outlineWidth*2;this.setDimensions_();this.initStyles_();G.mapCover.onselectstart=function(){return false};return d};
DragZoomControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(3,120))};
DragZoomControl.prototype.coverMousedown_=function(e){var G=this.globals;var a=this.getRelPos_(e);G.startX=a.left;G.startY=a.top;DragZoomUtil.style([G.mapCover],{background:'transparent',opacity:1,filter:'alpha(opacity=100)'});DragZoomUtil.style([G.outlineDiv],{left:G.startX+'px',top:G.startY+'px',display:'block',width:'1px',height:'1px'});G.draggingOn=true;G.cornerTopDiv.style.top=(G.startY-G.mapHeight)+'px';G.cornerTopDiv.style.display='block';G.cornerLeftDiv.style.left=(G.startX-G.mapWidth)+'px';G.cornerLeftDiv.style.top=G.startY+'px';G.cornerLeftDiv.style.display='block';G.cornerRightDiv.style.left=G.startX+'px';G.cornerRightDiv.style.top=G.startY+'px';G.cornerRightDiv.style.display='block';G.cornerBottomDiv.style.left=G.startX+'px';G.cornerBottomDiv.style.top=G.startY+'px';G.cornerBottomDiv.style.width='0px';G.cornerBottomDiv.style.display='block';if(G.callbacks.dragstart!=null){G.callbacks.dragstart(G.startX,G.startY)}return false};
DragZoomControl.prototype.drag_=function(e){var G=this.globals;if(G.draggingOn){var a=this.getRelPos_(e);rect=this.getRectangle_(G.startX,G.startY,a,G.mapRatio);if(rect.left){addX=-rect.width}else{addX=0}if(rect.top){addY=-rect.height}else{addY=0}DragZoomUtil.style([G.outlineDiv],{left:G.startX+addX+'px',top:G.startY+addY+'px',display:'block',width:'1px',height:'1px'});G.outlineDiv.style.width=rect.width+"px";G.outlineDiv.style.height=rect.height+"px";G.cornerTopDiv.style.height=((G.startY+addY)-(G.startY-G.mapHeight))+'px';G.cornerLeftDiv.style.top=(G.startY+addY)+'px';G.cornerLeftDiv.style.width=((G.startX+addX)-(G.startX-G.mapWidth))+'px';G.cornerRightDiv.style.top=G.cornerLeftDiv.style.top;G.cornerRightDiv.style.left=(G.startX+addX+rect.width+G.borderCorrection)+'px';G.cornerBottomDiv.style.top=(G.startY+addY+rect.height+G.borderCorrection)+'px';G.cornerBottomDiv.style.left=(G.startX-G.mapWidth+((G.startX+addX)-(G.startX-G.mapWidth)))+'px';G.cornerBottomDiv.style.width=(rect.width+G.borderCorrection)+'px';if(G.callbacks.dragging!=null){G.callbacks.dragging(G.startX,G.startY,rect.endX,rect.endY)}return false}};
DragZoomControl.prototype.mouseup_=function(e){var G=this.globals;if(G.draggingOn){var a=this.getRelPos_(e);G.draggingOn=false;var b=this.getRectangle_(G.startX,G.startY,a,G.mapRatio);if(b.left)b.endX=b.startX-b.width;if(b.top)b.endY=b.startY-b.height;this.resetDragZoom_();var c=new GPoint(b.startX,b.startY);var d=new GPoint(b.endX,b.startY);var f=new GPoint(b.endX,b.endY);var g=new GPoint(b.startX,b.endY);var h=G.map.fromContainerPixelToLatLng(c);var i=G.map.fromContainerPixelToLatLng(d);var j=G.map.fromContainerPixelToLatLng(f);var k=G.map.fromContainerPixelToLatLng(g);var l=new GPolyline([h,i,j,k,h],G.style.outlineColor,G.style.outlineWidth+1,.4);try{G.map.addOverlay(l);setTimeout(function(){G.map.removeOverlay(l)},G.options.overlayRemoveTime)}catch(e){}polyBounds=l.getBounds();var i=polyBounds.getNorthEast();var k=polyBounds.getSouthWest();var j=new GLatLng(k.lat(),i.lng());var h=new GLatLng(i.lat(),k.lng());zoomLevel=G.map.getBoundsZoomLevel(polyBounds);center=polyBounds.getCenter();G.map.setCenter(center,zoomLevel);if(G.callbacks.dragend!=null){G.callbacks.dragend(h,i,j,k,c,d,f,g)}if(G.options.stickyZoomEnabled){this.initCover_();if(G.options.backButtonEnabled)this.saveBackContext_(G.options.backButtonHTML,false);G.backButtonDiv.style.display='none'}}};
DragZoomControl.prototype.setDimensions_=function(){var G=this.globals;var a=G.map.getSize();G.mapWidth=a.width;G.mapHeight=a.height;G.mapRatio=G.mapHeight/G.mapWidth;DragZoomUtil.style([G.mapCover,G.cornerTopDiv,G.cornerRightDiv,G.cornerBottomDiv,G.cornerLeftDiv],{left:'0px',width:G.mapWidth+'px',height:G.mapHeight+'px'})};
DragZoomControl.prototype.initStyles_=function(){var G=this.globals;DragZoomUtil.style([G.mapCover,G.cornerTopDiv,G.cornerRightDiv,G.cornerBottomDiv,G.cornerLeftDiv],{filter:G.style.alphaIE,opacity:G.style.opacity,background:G.style.fillColor});G.outlineDiv.style.border=G.style.border};
DragZoomControl.prototype.buttonclick_=function(){var G=this.globals;G.backButtonDiv.style.display='none';if(G.mapCover.style.display=='block'){this.resetDragZoom_();if(G.options.backButtonEnabled){this.restoreBackContext_();if(G.backStack.length==0)G.backButtonDiv.style.display='none'}}else{this.initCover_();if(G.options.backButtonEnabled)this.saveBackContext_(G.options.backButtonHTML,false)}};
DragZoomControl.prototype.backbuttonclick_=function(){var G=this.globals;if(G.options.backButtonEnabled&&G.backStack.length>0){this.restoreBackContext_();if(G.callbacks['backbuttonclick']!=null){G.callbacks.backbuttonclick(G.methodCall)}}};
DragZoomControl.prototype.saveBackContext_=function(a,b){var G=this.globals;var c={};c["center"]=G.map.getCenter();c["zoom"]=G.map.getZoom();c["maptype"]=G.map.getCurrentMapType();c["text"]=G.backButtonDiv.innerHTML;c["methodCall"]=b;G.backStack.push(c);G.backButtonDiv.innerHTML=a};
DragZoomControl.prototype.restoreBackContext_=function(){var G=this.globals;var a=G.backStack.pop();G.map.setCenter(a["center"],a["zoom"],a["maptype"]);G.backButtonDiv.innerHTML=a["text"];G.methodCall=a["methodCall"];if(G.backStack.length==0)G.backButtonDiv.style.display='none'};
DragZoomControl.prototype.initCover_=function(){var G=this.globals;G.mapPosition=DragZoomUtil.getElementPosition(G.map.getContainer());this.setDimensions_();this.setButtonMode_('zooming');DragZoomUtil.style([G.mapCover],{display:'block',background:G.style.fillColor});DragZoomUtil.style([G.outlineDiv],{width:'0px',height:'0px'});if(G.callbacks['buttonclick']!=null){G.callbacks.buttonclick()}};
DragZoomControl.prototype.getRelPos_=function(e){var a=DragZoomUtil.getMousePosition(e);var G=this.globals;return{top:(a.top-G.mapPosition.top),left:(a.left-G.mapPosition.left)}};
DragZoomControl.prototype.getRectangle_=function(a,b,c,d){var e=false;var f=false;var g=c.left-a;var h=c.top-b;if(g<0){g=g*-1;e=true}if(h<0){h=h*-1;f=true}delta=g>h?g:h;return{startX:a,startY:b,endX:a+delta,endY:b+parseInt(delta*d),width:delta,height:parseInt(delta*d),left:e,top:f}};
DragZoomControl.prototype.resetDragZoom_=function(){var G=this.globals;DragZoomUtil.style([G.mapCover,G.cornerTopDiv,G.cornerRightDiv,G.cornerBottomDiv,G.cornerLeftDiv],{display:'none',opacity:G.style.opacity,filter:G.style.alphaIE});G.outlineDiv.style.display='none';this.setButtonMode_('normal');if(G.options.backButtonEnabled&&(G.backStack.length>0))G.backButtonDiv.style.display='block'};
var DragZoomUtil={};
DragZoomUtil.gE=function(a){return document.getElementById(a)};
DragZoomUtil.getMousePosition=function(e){var a=0;var b=0;if(!e)var e=window.event;if(e.pageX||e.pageY){a=e.pageX;b=e.pageY}else if(e.clientX||e.clientY){a=e.clientX+(document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft);b=e.clientY+(document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)}return{left:a,top:b}};
DragZoomUtil.getElementPosition=function(a){var b=a.offsetLeft;var c=a.offsetTop;var d=a.offsetParent;while(d!=null){b+=d.offsetLeft;c+=d.offsetTop;d=d.offsetParent}return{left:b,top:c}};
DragZoomUtil.style=function(a,b){if(typeof(a)=='string'){a=DragZoomUtil.getManyElements(a)}for(var i=0;i<a.length;i++){for(var s in b){a[i].style[s]=b[s]}}};
DragZoomUtil.getManyElements=function(a){var b=a.split(',');var c=[];for(var i=0;i<b.length;i++){c[c.length]=DragZoomUtil.gE(b[i])};return c};




///////////////////
// output
function mensajeOutput(texto){outputAnterior = document.getElementById('output').innerHTML;document.getElementById('output').innerHTML = texto;}
// tratar url
function tratarUrl(url){return url.split(decodeURI('%C3%91')).join("%D1");}

function BorrarMarkerEInfoWindow(){referenciaCatastralMarcada='';map.closeInfoWindow();if(marker)map.removeOverlay(marker);}

function currentMapTypeNumber(){var type=-1; for(var ix=0;ix<map.getMapTypes().length;ix++){if(map.getMapTypes()[ix]==map.getCurrentMapType()) type=ix;} return type;} 
function mapTypePorNombreMapa(nombreMapa){for(var ix=0;ix<map.getMapTypes().length;ix++){if(map.getMapTypes()[ix].getName()==nombreMapa)  return map.getMapTypes()[ix];}} 

// outputCargando
function mostrarOutputCargando(mensaje){
	var tipobj = document.getElementById("outputCargando");
	tipobj.innerHTML = '<table border=0 cellpadding=5 cellspacing=0 width=10 id="tablaCargando"><tr valign=middle><td nowrap ><font style="font-size:16px;letter-spacing:0.1em;"><div id="textoBuscando" style="vertical-align:middle;padding:7px"><b>'+mensaje+'</b></div></font></td><td valing="middle">'+imgCargando+'</td></tr></table>';
	var anchoDeMapa, altoDeMapa;var map = document.getElementById('map'); var anchoTipobj, altoTipobj;
	if(navigator.appName=='Netscape'){
		anchoDeMapa = parseInt(getComputedStyle(map,null).getPropertyValue('width'));
		altoDeMapa = parseInt(getComputedStyle(map,null).getPropertyValue('height'));
		anchoTipobj = parseInt(getComputedStyle(tipobj,null).getPropertyValue('width'));
		altoTipobj = parseInt(getComputedStyle(tipobj,null).getPropertyValue('height'));
		}
	else{
		anchoDeMapa = map.style.pixelWidth;
		altoDeMapa = map.style.pixelHeight;
		anchoTipobj = tipobj.style.pixelWidth;
		altoTipobj = tipobj.style.pixelHeight;
		}
	tipobj.style.left = anchoDeMapa/2 - anchoTipobj/2;
	tipobj.style.top = altoDeMapa/2 - altoTipobj/2;
	tipobj.style.visibility="visible";
}
// ocultarCargando
function ocultarOutputCargando(){document.getElementById("outputCargando").style.visibility="hidden";}

function truebody(){return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body}
function OcultarSelects(){if(document.all){var selects = document.getElementsByTagName("select");for(var i=0;i<selects.length;i++){selects[i].style.visibility="hidden";}}}
function MostrarSelects(){var selects = document.getElementsByTagName("select");for(var i=0;i<selects.length;i++){selects[i].style.visibility="visible";}}

function DescargarScripts(){
	mostrarOutputCargando("Descargando archivos..");
	_imprimir(function(){
		_medirArea(function(){
			_buscarPorReferencia(function(){
				_convertirCoordenadas(function(){
					_cargarFotos(function(){
						_mostrarAnuncios(function(){
							_insertarAnuncio(function(){
								_mapas(function(){
									_registro(function(){
										ocultarOutputCargando();
										document.getElementById("botonAcelerar").style.display="none";
									});		
								});
							});
						});
					});
				});
			});
		}); 
	});
}

///////////////////////////////
// Opacity control stuff including slider (after Mike Williams)

      // == A global variable ==
      var XSLIDERLENGTH = 55;       // maximum width that the knob can move (slide width minus knob width)

      // == Create a Custom GControl ==
      function XSliderControl(tileLayer) {
	    this.init = tileLayer.getOpacity();//initial slider position 
      }
      
      XSliderControl.prototype = new GControl();

	  var actualizandoMapa = false;
	  function redrawMap(mapTypeActual) {
			actualizandoMapa = true;
			map.setMapType(G_NORMAL_MAP);
			map.setMapType(mapTypeActual);
			actualizandoMapa = false;
	  } 
		
      // == This function positions the slider to match the specified opacity ==
      XSliderControl.prototype.setSlider = function(opacity) {
        var left = Math.round((XSLIDERLENGTH*opacity));
        this.slide.left = left;
        this.knob.style.left = left+"px";
      };

      // == This function reads the slider and sets the overlay opacity level ==
      XSliderControl.prototype.setOpacity = function() {
		var o = this.slide.left/XSLIDERLENGTH;       
		//caveHybridLayer[1].getOpacity = function () {return o;};
		var mapTypeActual =  map.getCurrentMapType();
		mapTypeActual.getTileLayers()[1].getOpacity = function () {return o;};
			if(map.getCurrentMapType().getName()==estadoAux3 && sliderAnadido)redrawMap(mapTypeActual);
      };


      // == This gets called by the API when addControl(new XSlider()) is used ==
      XSliderControl.prototype.initialize = function(map) {
        // obtain Function Closure on a reference to "this"
        var that=this;
        // store a reference to the map so that we can make calls on it
        this.map = map;

        // Is this MSIE, if so we need to use AlphaImageLoader
        var agent = navigator.userAgent.toLowerCase();
        if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1)){this.ie = true} else {this.ie = false}

        // create the background graphic as a <div> containing an image
        containerSlider = document.createElement("div");
        containerSlider.style.width="74px";
        containerSlider.style.height="19px";

        // Handle transparent PNG files in MSIE
       
        if (this.ie) {
          var loader = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+imagenSlide+", sizingMethod='scale');";
          containerSlider.innerHTML = '<div style="height:19px; width:74px; ' +loader+ '" ></div>';
        } else {
          containerSlider.innerHTML = '<img src="'+imagenSlide+'"  width=74 height=19 >';
        }

        // create the knob as a GDraggableObject
        // Handle transparent PNG files in MSIE
        if (this.ie) {
          var loader = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+imagenXknob+", sizingMethod='scale');";
          this.knob = document.createElement("div"); 
          this.knob.style.height="19px";
          this.knob.style.width="19px";
          this.knob.style.filter=loader;
        } else {
          this.knob = document.createElement("img"); 
          this.knob.src = imagenXknob;
          this.knob.height = "19";
          this.knob.width = "19";
        }
        containerSlider.appendChild(this.knob);
        this.slide=new GDraggableObject(this.knob, {container:containerSlider});
		this.container = containerSlider;

        // attach the control to the map
        map.getContainer().appendChild(containerSlider);

		// init slider
		this.setSlider(this.init);

        // Listen for the slider being moved and set the opacity
        GEvent.addListener(this.slide, "dragend", function() {that.setOpacity()});

        // Listen for map being changed to show / hide slider
        GEvent.addListener(this.map, "maptypechanged", function() {
			if(sliderAnadido && !actualizandoMapa){
				var nombreMapaActual = map.getCurrentMapType().getName();
				if(nombreMapaActual!=estadoAux3 && mostrandoSlider)ocultarSlider();
				else if(nombreMapaActual==estadoAux3 && !mostrandoSlider)mostrarSlider();
					
			}
        });


        return containerSlider;
      };

      // == Set the default position for the control ==
      /*XSliderControl.prototype.getDefaultPosition = function() {
        return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(estadoAux1, estadoAux2));
      }*/

///////////////////////////////
// CONTROL LEYENDA
var anchoBotonLeyenda = 62;
var altoBotonLeyenda = 15;
var anchoImagenLeyenda = 250;
var textoBotonLeyenda = "Leyenda";
var altoImagenLeyenda = 300;
var imagenLeyenda = "";
var tileLayerBotonLeyenda; 

function ControlLeyenda(tileLayerBoton,anchoBoton,altoBoton,textoBoton,imagen,anchoImagen,altoImagen) {
	anchoBotonLeyenda = anchoBoton;
	altoBotonLeyenda = altoBoton;
	textoBotonLeyenda = textoBoton;
	imagenLeyenda = imagen;
	anchoImagenLeyenda = anchoImagen;
	altoImagenLeyenda = altoImagen;
	tileLayerBotonLeyenda = tileLayerBoton;
}

var containerLeyenda;
ControlLeyenda.prototype = new GControl();
ControlLeyenda.prototype.initialize = function(map,a) {
		containerLeyenda = document.createElement("div");
		var botonLeyenda = document.createElement("div");
		botonLeyenda.id = "botonLeyenda";
		var botonLeyendaDown = '<div style="float:bottom;" onClick=mostrarOcultarLeyenda();>'+textoBotonLeyenda+'</div><div id="imagenLeyenda" style="height:'+altoImagenLeyenda+'px;width:'+anchoImagenLeyenda+'px;background-color:white;border:1px solid black;overflow:auto;right:0px;top:19px;position:absolute;display:none;"><img src="'+imagenLeyenda+'"></div>';
		botonLeyenda.innerHTML = botonLeyendaDown;
		this.setButtonStyle_(botonLeyenda,altoBotonLeyenda,anchoBotonLeyenda,"1px","1px solid black","pointer","#FFFFFF","9pt");
		containerLeyenda.appendChild(botonLeyenda);
		map.getContainer().appendChild(containerLeyenda);
		
		GEvent.addListener(map, "maptypechanged", function() {
			if(leyendaAnadida && !actualizandoMapa){
				var nombreMapaActual = map.getCurrentMapType().getName();
				if(nombreMapaActual!=estadoAux3 && mostrandoLeyenda)ocultarControlLeyenda();
				else if(nombreMapaActual==estadoAux3 && !mostrandoLeyenda)mostrarControlLeyenda();					
			}
        });
		
		return containerLeyenda;
};

ControlLeyenda.prototype.setButtonStyle_ = function(button,altoBoton,anchoBoton,paddingBoton,borderBoton,cursorBoton,backgroundBoton,fontSizeBoton) {
	var bs = button.style;
	bs.fontSize = fontSizeBoton;
	bs.height = altoBoton;
	bs.width = anchoBoton;
	bs.padding = paddingBoton;	
	bs.border = borderBoton;		
	bs.textAlign="center";
	bs.background=backgroundBoton;
	bs.cursor=cursorBoton;
	};

var mostrandoImagenLeyenda = false;
function mostrarOcultarLeyenda(leyenda){
	if(mostrandoImagenLeyenda){
		document.getElementById("imagenLeyenda").style.display="none";
		mostrandoImagenLeyenda = false;
	}
	else{
		document.getElementById("imagenLeyenda").style.display="block";
		mostrandoImagenLeyenda = true;
	}
}
//
///////////////////////////////
///////////////////////
function ControlVista() {}ControlVista.prototype = new GControl();
ControlVista.prototype.getDefaultPosition = function() {return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(0, 0));};

ControlVista.prototype.initialize = function(map) {
		var container = document.createElement("div");
		var Vista = document.createElement("div");
		Vista.id = "Vista";
		textoVista = Vista;
		textoVista.innerHTML = '<div id="layerVista" style="width:100%;height:100%;"></div>';
		this.setButtonStyle_(Vista);
		container.appendChild(Vista);
		map.getContainer().appendChild(container);
		return container;
};
var bsVista;
ControlVista.prototype.setButtonStyle_ = function(button) {	
	bsVista = button.style;
	//bsVista.height = altoDeMapa+"px";
	//bsVista.width = anchoDeMapa+"px";
	bsVista.display="none";
	};

//////////////////
function Mostrar3d(){
		document.getElementById("map").style.display="none";
		document.getElementById("map3d_container").style.display="block";
		document.getElementById("mostrar3d").style.display="none";
		document.getElementById("mostrar2d").style.display="inline";
		
		document.getElementById("map3d_container").style.width =anchoDeMapa+"px";
		document.getElementById("map3d_container").style.height = altoDeMapa+"px";
		map3d = new GMap2(document.getElementById("map3d"));
		map3d.setCenter(map.getCenter(), map.getZoom());
		map3d.addMapType(G_SATELLITE_3D_MAP);
		map3d.addMapType(G_NORMAL_MAP);
		map3d.setMapType(G_SATELLITE_3D_MAP);
		
		
		map3d.getEarthInstance(initCB);
		mostrandoEn3d = true;
		
		
}

function Mostrar2d(){
	var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
	map3d.setMapType(G_NORMAL_MAP);
	map.setCenter(new GLatLng(la.getLatitude(),la.getLongitude()),map3d.getZoom());
	ge = null;
	document.getElementById("map3d").innerHTML = "";
	document.getElementById("map").style.display="block";
	document.getElementById("map3d_container").style.display="none";
	document.getElementById("mostrar3d").style.display="inline";
	document.getElementById("mostrar2d").style.display="none";
	mostrandoEn3d = false;
	//mensajeOutput(outputAnterior);
}	

function initCB(object) {
  ge = object;
  ge.getWindow().setVisibility(true);
  ge.getNavigationControl().setVisibility(ge.VISIBILITY_SHOW);
  var options = ge.getOptions();  
  options.setStatusBarVisibility(true);
  ge.getLayerRoot().enableLayerById(ge.LAYER_BUILDINGS, true);
  
 // google.earth.addEventListener(ge.getGlobe(), 'mousedown', eventHandler);  
//PrepararCatastro();
  //setTimeout("Comprobar_vista()",1000); 
  //mensajeOutput("<span style='color:red;'>Pr"+oAcentuada+"ximamente disponible s"+oAcentuada+"lo para usuarios registrados.</span>");
}
