﻿var gmaps, gicon, sIcoOn, sIcoOf;
var oResults, oMap = {};
var jNumInmus, j2Map, j2Lst;
var jHeader, jList, jCounter, jPages, jLoading;
var oPrecioSld, oMetrosSld, oHabitsSld, oDstMarSld;
var bFirst = true, bMap = false, bLimit = false;

function f_ready() {
//	$("#tabsline").before("<p><strong>cookie:</strong>"+(document.cookie)+"</p>");
	sIcoOn = sBase+"segunda-mano/gifs/icon_on.png";
	sIcoOf = sBase+"segunda-mano/gifs/icon_off.png";
	
	oSearch.id = oSearch.uritipo+"|"+oSearch.uriprov+"|"+oSearch.urimuni+"|"+oSearch.idzona;
	if(oSearch.id==getCookie("lst_href", "")) {
		oSearch.premin = getCookie("lst_premin", 0); oSearch.premax = getCookie("lst_premax", 0);
		oSearch.tammin = getCookie("lst_tammin", 0); oSearch.tammax = getCookie("lst_tammax", 0);
		oSearch.habmin = getCookie("lst_habmin", 0); oSearch.habmax = getCookie("lst_habmax", 0);
		oSearch.dstmin = getCookie("lst_dstmin", 0); oSearch.dstmax = getCookie("lst_dstmax", 0);	
	}

	var gmDiv = document.getElementById("gmap");
	gicon = new GIcon();
	gicon.image = sIcoOn
	gicon.iconSize   = new GSize(25, 25);
	gicon.iconAnchor = new GPoint(13, 25);
	gmaps = new GMap2(gmDiv);
	gmaps.addControl(new GLargeMapControl());
	gmaps.addControl(new GMapTypeControl());
	
	$("#ulPromosMuni").multicol({colNum: 3, colMargin: 20});
	$("#ulPromosProx").multicol({colNum: 3, colMargin: 20});
	$("#ulPromosProv").multicol({colNum: 3, colMargin: 20});
	
	jNumInmus = $(".ninmus");
	j2Map     = $("#lnk2map");
	j2Lst     = $("#lnk2lst");
	jHeader   = $("#listheader");
	jList     = $("#listitems");
	jCounter  = $("#listcounter");
	jPages    = $("#listpages");
	jNotAll   = $("#notall");
	jMap      = $("#listmap");
	
	j2Lst.css({ display: "none" });
	jMap.css({ display: "none" });
	
	var xy = jList.position();
	jLoading = $("#loading");
	jLoading.css({ position: "absolute", top: xy.y, left: xy.x, width: 800, paddingTop: 25, paddingBottom: 25, textAlign: "center", fontWeight: "bold" });
	jList.css({ height: 62 });
	
	$("#iDstMar").css({ display: oSearch.tlist==2 ? "block" : "none" });
	
	jList.ajaxError(function(e, xhr, settings, exception) {
		$(this).html(exception);
	});
	
	oPrecioSld = { range: true,  min:  5000, max: 405000, values: [10000, 500000], step: 5000, slide: f_sldPrecio, change: f_refresh };
	oMetrosSld = { range: true,  min:     0, max: 450,    values: [    0,    450], step: 50,   slide: f_sldMetros, change: f_refresh };
	oHabitsSld = { range: true,  min:     0, max: 6,      values: [    0,      6], step: 1,    slide: f_sldHabits, change: f_refresh };
	oDstMarSld = { range: true,  min:     0, max: 15000,  values: [    0,  15000], step: 500,  slide: f_sldDstMar, change: f_refresh };
	if(oSearch.premin!=0) oPrecioSld.values[0] = oSearch.premin;
	if(oSearch.premax!=0) oPrecioSld.values[1] = oSearch.premax;
	if(oSearch.tammin!=0) oMetrosSld.values[0] = oSearch.tammin;
	if(oSearch.tammax!=0) oMetrosSld.values[1] = oSearch.tammax;
	if(oSearch.habmin!=0) oHabitsSld.values[0] = oSearch.habmin;
	if(oSearch.habmax!=0) oHabitsSld.values[1] = oSearch.habmax;
	if(oSearch.dstmax!=0) oDstMarSld.value = oSearch.dstmax;
	$("#iPrecio .slider").slider(oPrecioSld);
	$("#iMetros .slider").slider(oMetrosSld);
	$("#iHabits .slider").slider(oHabitsSld);
	$("#iDstMar .slider").slider(oDstMarSld);
	$("#iFltDto").click(f_chkFltDto);
	
	f_refresh_sld();
	f_refresh();
	
	j2Map.click(f_toogleMap);
	j2Lst.click(f_toogleMap);
	
	setCookie("lst_href", oSearch.id);
}

function f_refresh() {
	setCookie("lst_premin", oSearch.premin); setCookie("lst_premax", oSearch.premax);
	setCookie("lst_tammin", oSearch.tammin); setCookie("lst_tammax", oSearch.tammax);
	setCookie("lst_habmin", oSearch.habmin); setCookie("lst_habmax", oSearch.habmax);
	setCookie("lst_dstmin", oSearch.dstmin); setCookie("lst_dstmax", oSearch.dstmax);
	jHeader.css({ opacity: 0.15 });
	jList.css({ opacity: 0.15 });
	jLoading.css({ display: "block" });
	jQuery.getJSON(sMSURL+"ajax-vi-resultados.aspx", oSearch, f_refresh_cb);
}
function f_refresh_sld() {
	if(oSearch.premin==oPrecioSld.min && oSearch.premax==oPrecioSld.max) $("#iPrecio span.info").html("<strong>Todos</strong>");
	if(oSearch.premin!=oPrecioSld.min && oSearch.premax==oPrecioSld.max) $("#iPrecio span.info").html("Desde <strong>"+f_fnum(oSearch.premin)+"</strong> euros");
	if(oSearch.premin==oPrecioSld.min && oSearch.premax!=oPrecioSld.max) $("#iPrecio span.info").html("Hasta <strong>"+f_fnum(oSearch.premax)+"</strong> euros");
	if(oSearch.premin!=oPrecioSld.min && oSearch.premax!=oPrecioSld.max) $("#iPrecio span.info").html("Entre <strong>"+f_fnum(oSearch.premin)+"</strong> y <strong>"+f_fnum(oSearch.premax)+"</strong> euros");

	if(oSearch.tammin==oMetrosSld.min && oSearch.tammax==oMetrosSld.max) $("#iMetros span.info").html("<strong>Todos</strong>");
	if(oSearch.tammin!=oMetrosSld.min && oSearch.tammax==oMetrosSld.max) $("#iMetros span.info").html("Desde <strong>"+f_fnum(oSearch.tammin)+"</strong> m&sup2;");
	if(oSearch.tammin==oMetrosSld.min && oSearch.tammax!=oMetrosSld.max) $("#iMetros span.info").html("Hasta <strong>"+f_fnum(oSearch.tammax)+"</strong> m&sup2;");
	if(oSearch.tammin!=oMetrosSld.min && oSearch.tammax!=oMetrosSld.max) $("#iMetros span.info").html("Entre <strong>"+f_fnum(oSearch.tammin)+"</strong> y <strong>"+f_fnum(oSearch.tammax)+"</strong> m&sup2;");

	if(oSearch.habmin==oHabitsSld.min && oSearch.habmax==oHabitsSld.max) $("#iHabits span.info").html("<strong>Todos</strong>");
	if(oSearch.habmin!=oHabitsSld.min && oSearch.habmax==oHabitsSld.max) $("#iHabits span.info").html("Desde <strong>"+f_fnum(oSearch.habmin)+"</strong> habitaciones");
	if(oSearch.habmin==oHabitsSld.min && oSearch.habmax!=oHabitsSld.max) $("#iHabits span.info").html("Hasta <strong>"+f_fnum(oSearch.habmax)+"</strong> habitaciones");
	if(oSearch.habmin!=oHabitsSld.min && oSearch.habmax!=oHabitsSld.max) $("#iHabits span.info").html("Entre <strong>"+f_fnum(oSearch.habmin)+"</strong> y <strong>"+f_fnum(oSearch.habmax)+"</strong> habitaciones");

	if(oSearch.dstmin==oDstMarSld.min && oSearch.dstmax==oDstMarSld.max) $("#iDstMar span.info").html("<strong>Todos</strong>");
	if(oSearch.dstmin!=oDstMarSld.min && oSearch.dstmax==oDstMarSld.max) $("#iDstMar span.info").html("Desde <strong>"+f_fnum(oSearch.dstmin)+"</strong> metros");
	if(oSearch.dstmin==oDstMarSld.min && oSearch.dstmax!=oDstMarSld.max) $("#iDstMar span.info").html("Hasta <strong>"+f_fnum(oSearch.dstmax)+"</strong> metros");
	if(oSearch.dstmin!=oDstMarSld.min && oSearch.dstmax!=oDstMarSld.max) $("#iDstMar span.info").html("Entre <strong>"+f_fnum(oSearch.dstmin)+"</strong> y <strong>"+f_fnum(oSearch.dstmax)+"</strong> metros");
}
function f_refresh_cb(data) {
	oResults = data;
	jLoading.css({ display: "none" });
	f_render();
}
function f_render() {
	var nitems = oResults.items.length;
	oSearch.recini = oSearch.nitems!=nitems ? 0 : oSearch.recini;
	oSearch.recmin = 0;
	oSearch.nitems = nitems;
	oSearch.pagact = Math.floor(oSearch.recini/10);
	oSearch.pagmin = 0;
	oSearch.pagmax = Math.floor(nitems/10);
	jNumInmus.html(f_fnum(nitems));

	jHeader.find("img").remove();
	jHeader.find("span").each(function (i, obj) {
		if(i==0) return;
		var jThis = $(obj);
		var jImg  = $("<img />").click(f_reorder);
		if(jThis.hasClass("col"+oSearch.ofld)) {
			if(oSearch.odir=="A") {
				jImg.attr("src", sMSURL+"../segunda-mano/gifs/flecha_azul_arriba.gif"  );
			} else {
				jImg.attr("src", sMSURL+"../segunda-mano/gifs/flecha_azul_abajo.gif"  );
			}
		} else {
			jImg.attr("src", sMSURL+"../segunda-mano/gifs/flecha_orange_abajo.gif");
		}
		jThis.append(jImg);
	});

	jList.empty();
	var item, jRow, recmax = Math.min(nitems, oSearch.recini+10);
	for(var k=oSearch.recini; k<recmax; k++) {
		item = oResults.items[k];
		jRow = $("<div />").addClass("row").attr("href", item.href).click(f_goto).hover(f_mover, f_mout);
		jRow.append($("<img />").attr("src", item.imagen ));
		jRow.append($("<span />").addClass("colTipo"  ).html(item.tipo  ));
		jRow.append($("<span />").addClass("colDir"   ).html(item.dir   ));
		jRow.append($("<span />").addClass("colCP"    ).html(item.cp    ));
		jRow.append($("<span />").addClass("colMuni"  ).html(item.muni  ));
		jRow.append($("<span />").addClass("colHabits").html(item.habits));
		jRow.append($("<span />").addClass("colMetros").html(item.metros));
		jRow.append($("<span />").addClass("colDstMar").html(item.dstmar));
		if(item.precact=="0 &euro;") {
			jRow.append($("<span />").addClass("colPrecio").html("<strong class='o'>a consultar</strong>"));
		} else if(item.precant=="0 &euro;") {
			jRow.append($("<span />").addClass("colPrecio").html("<strong class='o'>"+item.precact+"</strong>"));
		} else {
			jRow.append($("<span />").addClass("colPrecio").html("AHORA<strong class='o'>"+item.precact+"</strong>ANTES<strong class='g'>"+item.precant+"</strong>"));
		}
		jList.append(jRow);
	}
	gmaps.clearOverlays();
	var gll, gmrk, glla = [], gpll;
	var maxitems = Math.min(250, oSearch.nitems);
	bLimit = (maxitems<nitems);
	jNotAll.css({ display: ( !bMap ? "none" : bLimit ? "block" : "none" ) });
	for(var k=0; k<maxitems; k++) {
		item = oResults.items[k];
		if(!isNaN(item.lat) && !isNaN(item.lon)) {
			gll  = new GLatLng(item.lat, item.lon);
			if(f_isIn(gll)) {
				glla.push(gll);
				gmrk = new GMarker(gll, { icon: gicon });
				gmaps.addOverlay(gmrk);
				GEvent.bind(gmrk, "click", item, f_clickPromo);
			}
		}
	}
	if(bFirst && glla.length>0) {
		bFirst = !bFirst;
		gpll = new GPolyline(glla, "#666666", 2, 1, {});
		oMap.bounds = gpll.getBounds();
		oMap.zoom   = gmaps.getBoundsZoomLevel(oMap.bounds);
		oMap.center = oMap.bounds.getCenter();
		gmaps.setCenter(oMap.center, oMap.zoom);
	}
	if(recmax==0) {
		$("#contWrap #sugeriravisador").css({ display: "none"  });
		jList.append($("<p>").attr("id", "sugeriravisador").html("Lo sentimos en estos momentos no hay resultados para tu búsqueda.<br/>Apúntate al <a href='http://www.bancajahabitat.com/otros-inmuebles/avisador-inmobiliario.aspx'>avisador inmobiliario</a> y podrás recibir todas las novedades que te interesen en tu email."));
	} else {
		$("#contWrap #sugeriravisador").css({ display: "block" });
	}
	jHeader.css({ opacity: 1 });
	jList.css({ opacity: 1, height: "auto" });
	
	jPages.empty().html("Página:");
	var jPage, pmin, pmax, phel, nhel;
	phel = (oSearch.pagact>oSearch.pagmin+2);
	nhel = (oSearch.pagact<oSearch.pagmax-2);
	pmin = Math.max((phel ? oSearch.pagmin+3 : oSearch.pagmin), oSearch.pagact-(phel && nhel ? 3 : 4));
	pmax = Math.min(pmin+(phel && nhel ? 6 : 8), (nhel ? oSearch.pagmax-3 : oSearch.pagmax));
	pmin = Math.max(0, pmax-(phel && nhel ? 6 : 8));
	jPage = $("<span />");
	jPage.addClass("lnk").attr("num", "p").html("&lt;").click(f_page);
	jPages.append(jPage);
	if(phel) {
		jPage = $("<span />");
		jPage.addClass("lnk").attr("num", oSearch.pagmin).html(oSearch.pagmin+1).click(f_page);
		jPages.append(jPage);
		jPage = $("<span />");
		jPage.addClass("hel").html("&hellip;");
		jPages.append(jPage);
	}
	for(var k=pmin; k<=pmax; k++) {
		jPage = $("<span />");
		jPage.addClass(oSearch.pagact==k ? "act" : "lnk").attr("num", k).html(1+k).click(f_page);
		jPages.append(jPage);
	}
	if(nhel) {
		jPage = $("<span />");
		jPage.addClass("hel").html("&hellip;");
		jPages.append(jPage);
		jPage = $("<span />");
		jPage.addClass("lnk").attr("num", oSearch.pagmax).html(oSearch.pagmax+1).click(f_page);
		jPages.append(jPage);
	}
	jPage = $("<span />");
	jPage.addClass("lnk").attr("num", "n").html("&gt;").click(f_page);
	jPages.append(jPage);
	jCounter.html("Resultados del <strong>"+(oSearch.recini+1)+"</strong> al <strong>"+recmax+"</strong> de <strong>"+nitems+"</strong>");
	
	$(".colCP"    ).css({ display: oSearch.tlist!=1 ? "none" : "inline" });
	$(".colDstMar").css({ display: oSearch.tlist!=2 ? "none" : "inline" });
	$(".colZona"  ).css({ display: oSearch.tlist!=3 ? "none" : "inline" });
}

function f_toogleMap() {
	bMap = !bMap;
	j2Map.css({ display: bMap  ? "none" : "block" });
	j2Lst.css({ display: !bMap ? "none" : "block" });
	jHeader.css({ display: bMap ? "none" : "block" });
	jList.css({ display: bMap ? "none" : "block" });
	jPages.parent().css({ display: bMap ? "none" : "block" });
	jNotAll.css({ display: ( !bMap ? "none" : bLimit ? "block" : "none" ) });
	jMap.css({ display: !bMap ? "none" : "block" });
	setTimeout(function () {
		oMap.zoom = gmaps.getBoundsZoomLevel(oMap.bounds);
		gmaps.setCenter(oMap.center, oMap.zoom) 
	}, 100);
	return false;
}

function f_clickPromo(gll) {
	var html = "";
	html += "<h3 class='tipo1'>"+this.tipo+"</h3>";
	html += "<div style='position: relative; width: 325px; height: 75px;'>";
	html += "<img src='"+this.imagen+"' style='position: absolute; top: 0px; left: 0px;' />";
	html += "<p style='margin: 0px 0px 6px 125px; font-family: Verdana; font-size: 10px; z-index: 10;'>";
	html += "<strong>Dirección:</strong> de "+this.dir+"<br/>";
	html += "<strong>Precio:</strong> <span style='display: block; font-size: 15px; font-weight: bold;'>"+this.precact+"</span>";
	html += "</p>";
	html += "<p style='margin: 0px 0px 6px 125px; font-family: Verdana; font-size: 10px;'>";
	html += "<a href='"+this.href+"'>más información »</a></p>";
	html += "</div>";
	gmaps.openInfoWindowHtml(gll, html, {});
}

function f_sldPrecio(event, ui) {
	var min = ui.values[0];
	var max = ui.values[1];
	oSearch.premin = min;
	oSearch.premax = max;
	f_refresh_sld();
}

function f_sldMetros(event, ui) {
	var min = ui.values[0];
	var max = ui.values[1];
	oSearch.tammin = min;
	oSearch.tammax = max;
	f_refresh_sld();
}

function f_sldHabits(event, ui) {
	var min = ui.values[0];
	var max = ui.values[1];
	oSearch.habmin = min;
	oSearch.habmax = max;
	f_refresh_sld();
}

function f_sldDstMar(event, ui) {
	var min = ui.values[0];
	var max = ui.values[1];
	oSearch.dstmin = min;
	oSearch.dstmax = max;
	f_refresh_sld();
}

function f_chkFltDto() {
	var val = this.checked;
	oSearch.fltdto = val;
	f_refresh();
}

function f_reorder() {
	var jThis = $(this);
	var jCol  = jThis.parent();
	var sCol  = jCol.attr("class").substr(3);
	if(sCol==oSearch.ofld) {
		oSearch.odir = oSearch.odir=="A" ? "D" : "A";
	} else {
		oSearch.ofld = sCol;
		oSearch.odir = "A";
	}
	f_refresh();
	return false;
}

function f_mover() {
	$(this).css({ background: "#F3EEE4" });
}

function f_mout() {
	$(this).css({ background: "#FFFFFF" });
}

function f_goto() {
	var href = $(this).attr("href");
	location.href = href;
}

function f_page(e) {
	e.preventDefault();
	var p = $(this).attr("num");
	if(p=="p") if(oSearch.pagact>oSearch.pagmin) oSearch.recini -= 10;
	if(p=="n") if(oSearch.pagact<oSearch.pagmax) oSearch.recini += 10;
	if(!isNaN(p)) oSearch.recini = parseInt(p)*10;
	f_render();
}

function f_isIn(gll) {
	if(gll.lat()>36.1 && gll.lat()<43.8 && gll.lng()> -9.3  && gll.lng()<  4.4 ) return true;
	if(gll.lat()>27.0 && gll.lat()<29.5 && gll.lng()>-18.4  && gll.lng()<-13.1 ) return true;
	return false;
}

function f_fnum(n) {
	var s = n.toString();
	var l = s.length;
	return l>6 ? s.substr(0, l-6)+"."+s.substr(l-6, 3)+"."+s.substr(l-3, 3) : l>3 ? s.substr(0, l-3)+"."+s.substr(l-3, 3) : s;
}

function setCookie(name, value) {
	var dom = location.hostname || location.host;
	document.cookie = name+"="+value+";path=/;"; // +";domain="+dom+"";
}

function getCookie(name, def) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return def;
}

$(document).ready(f_ready);
