﻿var map;
var icon;
var icon2;
var geocoder;
var marker=[];
var ids1 = [];
var fondo = 1;
var interval1 = 0;
var xmlprv;
var css1;
var lat1;
var lng1;

var imgm1 = new Image();
//imgm1.src = "http://labs.google.com/ridefinder/images/mm_20_red.png";
imgm1.src = "img/pointer.png";

var imgm3 = new Image();
imgm3.src = "http://labs.google.com/ridefinder/images/mm_20_red.png";

var imgm2 = new Image();
imgm2.src = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";

function externalLinks() { 
 if (!document.getElementsByTagName) return; 
 var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       anchor.getAttribute("rel") == "external") 
     anchor.target = "_blank"; 
 } 
} 

function cambia_fondo (limite, txt)
{

$('#fondo').css("background","url(img/" + txt + fondo + ".jpg) no-repeat 0px 0px");
$('#fondo').animate ({ opacity: 0}, 0, function() { $('#fondo').show(); $('#fondo').animate ({opacity: 1},2000)});
//$('#fondo').animate({backgroundPosition: '0px 0px'}, {duration:2000});

fondo++;
if (fondo == limite) { fondo = 0; }

}

function mapa_supermercados (ids2, latlng)
{

clearInterval(interval1);

$("#breadcrumb").html("<a href=\"index.asp\">Página de Inicio</a><span class=\"seph\">>></span>Lista de Supermercados SPAR");
$("#slogan").html("Supermercados SPAR");
//$("#slogan").css("left", "660px");
//$("#slogan").css("top", "140px");
$("#slogan").animate({ left: "660px", top: "140px", opacity: 0.95 }, 1000 );
//$("#cabecera").animate({ height: "180px" }, 1000 );
//$("#fondo").animate({ height: "110px" }, 1000 );

$.ajax({
    
	type: "POST",
	cache: false,
	async: false,
	data: "latlng=" + latlng + "&ids=" + ids2 + "&ms=" + new Date().getTime(),
	url: "contenidos/mapa2.asp",
	dataType: "xml",
	error: function (XMLHttpRequest, textStatus, errorThrown) { alert (XMLHttpRequest.textStatus); },
	success: function(xml) 
	{ 
	
	xmlprv = xml;
	
	$("#contenidos").html ("<div id=\"map\"></div><div id=\"lista_super\" style=\"border: 1px solid #cccccc; margin-top: 10px;\">Cargando datos <img src=\"loader.gif\" /></div>");

	map = new GMap2(document.getElementById("map"));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(40.463667, -3.74922), 5);

	$("#map").hide();
		
	icon = new GIcon();
	icon.image = imgm1.src;
	//icon.shadow = imgm2.src;
	icon.iconSize = new GSize(18, 18);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
	
	icon2 = new GIcon();
	icon2.image = imgm3.src;
	icon2.shadow = imgm2.src;
	icon2.iconSize = new GSize(18, 21);
	icon2.shadowSize = new GSize(22, 20);
	icon2.iconAnchor = new GPoint(6, 20);
	icon2.infoWindowAnchor = new GPoint(5, 1);
	
	$("#lista_super").html ("<div style=\"font-size: 16px; background-color: #bbbbbb; padding: 10px; height: 30px;\"><div style=\"float: left;\">Lista de supermercados</div><div style=\"float: right;\" id=\"s2prv\">Filtrar por provincia " + $("#sprv").html() + "</div></div><div id=\"tabla_super\" style=\"float: none; clear: both;\"></div><div style=\"height: 40px; background-color: #bbbbbb;\"></div>");
	
	if (ids2 != "")
	{
	$("#s2prv").hide();
	puntos = true;
	$("#map").show("fast");
	}
	else
	{
	$("#s2prv").show();
	puntos = false;
	$("#map").hide("fast");
	}
	
	carga_tabla ('', puntos, latlng);
	
	$("#s2prv select").attr ("id","prv2");
	$("#s2prv select").attr ("name","prv2");
	
	$("#s2prv select").change (function () { $("#map").hide("fast"); carga_tabla ($("#prv2").val(), puntos, latlng); });
	
	$('html, body').animate({scrollTop: '320px'}, 'slow')
	//$('html, body').scrollTo("#map", 800 );
	
	}

});

}

function carga_tabla(criterio, puntos, latlng)
{
	
	if (latlng != "")
	{
	txt = latlng.split(",");
	}
	
	if (criterio != "")
	{
	criterio2 = "[provincia=" + criterio + "]";
	}
	else
	{
	criterio2 = "";
	}
	
	$("#tabla_super").html ("");
	
	tabla = "";
	tabla = tabla + "<table><tr><th>Nombre</th><th>Dirección</th><th>Población</th><th>Provincia</th><th>Mapa</th></tr>";
	
	i = 0;
	
	map.clearOverlays();
	marker=[];
	
	$(xmlprv).find('supermercado' + criterio2).each(function()
	{	
	
	if (i%2==0)
	{
	estilo = "background-color: #f0f0f0;"
	}
	else
	{
	estilo = "background-color: #fafafa;"
	}
	
	tabla = tabla + "<tr id=\"fila" + $(this).attr('id') + "\" style=\"" + estilo + "\"><td>" + $(this).attr('nombre') + "</td><td>" + $(this).text() + "</td><td>" + $(this).attr('poblacion') + "</td><td>" + $(this).attr('provincia') + "</td><td style=\"text-align: center;\"><a href=\"javascript: void(null)\" onclick=\"situar_mapa (" + $(this).attr('latitud') + ", " + $(this).attr('longitud') + ");\"><img style=\"border: 0;\" src=\"img/mapa.png\" alt=\"Situar en el mapa\" /><\/a></td></tr>";
	
	i++;
	
	});
	
	if (i>=10)
	{
	h1 = 400;
	}
	else
	{
	h1 = 36*(i+1);
	}
	
	tabla = tabla + "</table>";
	
	$("#tabla_super").html (tabla);
	
	$("#tabla_super table").css ("width","100%");
	$("#tabla_super").css ("height", h1 + "px");
	$("#tabla_super").css ("overflow","auto");
	$("#tabla_super table th").css ("padding","0px");
	$("#tabla_super table th").css ("margin","0px");
	$("#tabla_super table th").css ("padding","5px");
	$("#tabla_super table td").css ("padding","5px");
	$("#tabla_super table th").css ("text-align","left");
	$("#tabla_super table th").css ("background-color","#d1d1d1");
	
	if (puntos == true)
	{
	
	i = 0;
	
	map.clearOverlays();
	marker=[];
	
	$(xmlprv).find('supermercado' + criterio2).each(function()
	{	
	
	var point = new GLatLng($(this).attr('latitud'), $(this).attr('longitud'));
	marker[i] = new GMarker(point, {icon:icon});
	GEvent.addListener(marker[i], "mouseover", function(a) { cambia_fondo2('' + a); });
	GEvent.addListener(marker[i], "mouseout", function() { cambia_fondo2(''); });
	map.addOverlay(marker[i]);
	
	i++;
	
	});
	
	var point = new GLatLng(txt[1], txt[0]);
	marker[i] = new GMarker(point, {icon2:icon2});     	
	map.addOverlay(marker[i]);
	centrar_mapa();
	
	}
	
}

function cambia_fondo2 (id)
{

if (id!="")
{
txt = id.split(",");
lng1 = txt[1].replace(")","");
lat1 = txt[0].replace("(","");
css1 = $("#fila" + $(xmlprv).find('supermercado[latitud=' + lat1 + ']').attr ("id")).css ("background-color");
$("#fila" + $(xmlprv).find('supermercado[latitud=' + lat1 + ']').attr ("id")).css ("background-color", "#F4DC6E");
$("#tabla_super").scrollTo("#fila" + $(xmlprv).find('supermercado[latitud=' + lat1 + ']').attr ("id"), 800 );
}
else
{
$("#fila" + $(xmlprv).find('supermercado[latitud=' + lat1 + ']').attr ("id")).css ("background-color", css1);
}

}

function situar_mapa (lat, lng)
{

marker=[];

if (map != "")
{
$("#map").show();
map.clearOverlays();
var point = new GLatLng(lat, lng);
marker[0] = new GMarker(point, {icon:icon});     	
map.addOverlay(marker[0]);

map.setCenter(point, 16);
centrar_mapa(16);
}

}

function carga_pagina (url1, data1, div1)
{

	$.ajax({
	type: "GET",
	cache: false,
	async: false,
	data: data1,
	url: url1,
	error: function (XMLHttpRequest, textStatus, errorThrown) { alert (XMLHttpRequest.textStatus); },
	success: function(xml) { $("#" + div1).html(xml); }
	});

}

function centrar_mapa(zoom)
{

var bounds = new GLatLngBounds();
for(var i=0;i<marker.length;i++)
{bounds.extend(marker[i].getPoint())};
var lngCenter = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) / 2;
var latCenter = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) / 2;
var center = new GLatLng(latCenter,lngCenter);

if (zoom != "")
{
zoom1 = zoom;
} else
{
zoom1 = map.getBoundsZoomLevel(bounds);
}

map.setCenter(center, zoom1);

}

function distancia (lat1, lon1, lat2, lon2)
{

var R = 6371; // km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad(); 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +  Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;

return d;

}

Number.prototype.toRad = function() 
{  // convert degrees to radians  
return this * Math.PI / 180;
}

function get_lat_lng (data1, data2, data3)
{

$("#coordenadas").html("");

$.ajax({
    
		type: "GET",
		cache: false,
		async: false,
		data: "par=" + encodeURI(data1),
		url: "contenidos/get_lat_lng.asp",
		error: function (XMLHttpRequest, textStatus, errorThrown) { alert ("Error: " + XMLHttpRequest.responseText); },
		success: function(xml) 
		{ 
			
			if ($(xml).find('code').text() == "200" && $(xml).find('LocalityName').text().toLowerCase().indexOf (data3.toLowerCase()) != -1)
			{
				var coord = $(xml).find('coordinates').text().split(",");
				var lat = coord[0];
				var lng = coord[1];
				var calle = $(xml).find('ThoroughfareName').text();
				var lugar = $(xml).find('LocalityName').text();
				var prv = $(xml).find('SubAdministrativeAreaName').text();
				var ca = $(xml).find('AdministrativeAreaName').text();
				
				$("#coordenadas").html(calle + "<br/>" + lugar + "<br/>" + prv + " (" + ca + ")<br/><br/>Latitud: " + lat + "<br/>Longitud: " + lng);
				compara_lat_lng (lat, lng, data2, $("#prv").val());
			}
			else
			{
				$("#coordenadas").html("No se ha encontrado la dirección buscada.");
			}
			
		}

});

}

var xml1;

function compara_lat_lng (lat1, lng1, rad1, prv1)
{
	
	ids1 = [];
	
	$.ajax({
    
	type: "POST",
	cache: false,
	async: false,
	data: "criterio=" + prv1 + "&ms=" + new Date().getTime(),
	url: "contenidos/supermercados.asp",
	dataType: "xml",
	error: function (XMLHttpRequest, textStatus, errorThrown) { alert (XMLHttpRequest.textStatus); },
	success: function(xml) 
	{ 
		xml1 = xml; 
		
		if ($(xml1).find('consulta').attr("resultados")== "NO")
		{
		alert ("No se encuentran supermercados en la provincia indicada");
		}
		else
		{
		
		var i = 0;
		
		$(xml1).find('supermercado').each(function()
		{
		
		var id = $(this).attr('id');
		var lat2 = parseFloat($(this).attr('latitud'));
		var lng2 = parseFloat($(this).attr('longitud'));
		lat1 = parseFloat(lat1);
		lng1 = parseFloat(lng1);
		
		var distancia1 = distancia (lat1, lng1, lat2, lng2);
		
		if (distancia1 <= rad1)
		{
		ids1[i] = id;
		i++;
		}
		
		});
		
		}
	
		if (ids1.length > 0) { mapa_supermercados(ids1, lat1 + "," + lng1); }
		else
		{ alert ("No se han encontrado supermercados SPAR en la población y radio indicados. Prueba a aumentar el radio de búsqueda."); }
	
	}

	});

}
