var URLAlquiler = "http://api.nestoria.es/api?action=search_listings&encoding=json&pretty=1";
var parametrosAlquiler = "";
var objetosEncontradosAlquiler;
var objetoEspacioAlquiler = new Array();
var objetoPrecioAlquiler = new Array();
var ial = 0;
var al = 0;
var b = 0;
var c = 1;
var textoSaltosAlquiler = "";
var actualPageAlquiler = 0;
var totalPagesAlquiler = 0;
var htmlAlquiler = "";
var htmlAlquiler2 = "";
var promedioAlquiler = 0;
var sumaPreciosMetros2Alquiler = 0;
var rangoMinPreciosMetros2Alquiler = 0;
var rangoMaxPreciosMetros2Alquiler = 0;
var desviacionAlquilerSumatorioTem = 0;
var desviacionAlquilerSumatorio = 0;
var desviacionAlquiler = 0;
var precioMetro2Alquiler = 0;
var precioEspacioAlquiler = 0;
var indiceRangoPrecioEspacioAlquiler = 0;
var rangoMinprecioEspacioAlquiler = 0;
var rangoMaxprecioEspacioAlquiler = 0;
var ejecutaProcesosAlquiler = 1;

function NewtonAlquiler(dato){
   var X = 1;
   var FX = X*X - dato;
   for (var i = 0; i < 10; i++) {
      X = X - FX/(2*X);
      FX = X*X - dato;
   }
   dato = X;
   return dato;
}


function calculaPrecioAlquiler(objetoPrecioAlquiler){
    promedioAlquiler = 0;
    desviacionAlquilerSumatorioTem = 0;
    desviacionAlquilerSumatorio = 0;
    desviacionAlquiler = 0;
    sumaPreciosMetros2Alquiler = 0;
    precioMetro2Alquiler = 0;

    for (b=0; b <= objetoPrecioAlquiler.length-1 ; b++){
        sumaPreciosMetros2Alquiler = sumaPreciosMetros2Alquiler + parseInt(objetoPrecioAlquiler[b]);
    }
    promedioAlquiler = sumaPreciosMetros2Alquiler/b;

    for (b=0; b <= objetoPrecioAlquiler.length-1 ; b++){
        desviacionAlquilerSumatorioTem = ( parseInt(objetoPrecioAlquiler[b]) - parseInt(promedioAlquiler));
        desviacionAlquilerSumatorioTem = desviacionAlquilerSumatorioTem * desviacionAlquilerSumatorioTem;
        desviacionAlquilerSumatorio = desviacionAlquilerSumatorio + desviacionAlquilerSumatorioTem
    }
    //promedioAlquiler
    desviacionAlquiler = desviacionAlquilerSumatorio * ( 1 / (b - 1) );
    desviacionAlquiler = parseInt(NewtonAlquiler(desviacionAlquiler));

    rangoMinPreciosMetros2Alquiler = promedioAlquiler - desviacionAlquiler;
    rangoMaxPreciosMetros2Alquiler = promedioAlquiler + desviacionAlquiler;

    var cuantosEstanDentroAlquiler = 0;



    for (b=0; b <= objetoPrecioAlquiler.length-1 ; b++){
        if (objetoPrecioAlquiler[b] >= rangoMinPreciosMetros2Alquiler && objetoPrecioAlquiler[b] <= rangoMaxPreciosMetros2Alquiler){
            cuantosEstanDentroAlquiler++;
            precioMetro2Alquiler = precioMetro2Alquiler + parseInt(objetoPrecioAlquiler[b]);
            if (cuantosEstanDentroAlquiler<=20){
                htmlAlquiler2 += '<tr><td class="tablaPreciosHtml">' + objetoEspacioAlquiler[b][7] + '</td><td class="tablaPreciosHtmlCenter">' + objetoEspacioAlquiler[b][4] + '</td><td class="tablaPreciosHtmlCenter">' + objetoEspacioAlquiler[b][5] + '</td><td class="tablaPreciosHtmlRight">' + objetoEspacioAlquiler[b][3] + ' m<sup>2</sup></td><td class="tablaPreciosHtmlRight">' + fmtMoney(objetoEspacioAlquiler[b][6], 0) + ' &euro;</td><td class="tablaPreciosHtmlRight2">' + fmtMoney( (parseInt(objetoEspacioAlquiler[b][6]) / parseInt(objetoEspacioAlquiler[b][3])), 0 ) + ' &euro;</td></tr>';
            }
            c++;
        }
    }

    $('#informePreciosAlquiler').append($(htmlAlquiler2));

    if (tipoVivBusAlquiler == 1){
        if (cuantosEstanDentroAlquiler < 5){
            ejecutaProcesosAlquiler = 0;
        }else{
            ejecutaProcesosAlquiler = 1;
        }
    }else if (tipoVivBusAlquiler == 2){
        if (cuantosEstanDentroAlquiler < 6){
            ejecutaProcesosAlquiler = 0;
        }else{
            ejecutaProcesosAlquiler = 1;
        }
    }else if (tipoVivBusAlquiler == 3){
        if (cuantosEstanDentroAlquiler < 8){
            ejecutaProcesosAlquiler = 0;
        }else{
            ejecutaProcesosAlquiler = 1;
        }
    }else if (tipoVivBusAlquiler == 4){
            ejecutaProcesosAlquiler = 1;
    }


    if (ejecutaProcesosAlquiler == 1){
        precioMetro2Alquiler =  precioMetro2Alquiler / cuantosEstanDentroAlquiler;
        precioEspacioAlquiler = precioMetro2Alquiler * parseInt(metrosVivienda);

        indiceRangoPrecioEspacioAlquiler =  (precioEspacioAlquiler * 3) / 100;
        rangoMinprecioEspacioAlquiler =  precioEspacioAlquiler - indiceRangoPrecioEspacioAlquiler;
        rangoMaxprecioEspacioAlquiler =  precioEspacioAlquiler + indiceRangoPrecioEspacioAlquiler;

        var precioTotal = (rangoMinprecioEspacioAlquiler + rangoMaxprecioEspacioAlquiler ) / 2;

        if (pecioAltamiraAlquiler_ok >= precioTotal){

        }else{
            if (isNaN(precioTotal)){
            }else{
                $('#preciosFichaAlquilerButton').toggle();
                document.getElementById("pecioAltamiraAlquiler").innerHTML = "<b>" +  fmtMoney( pecioAltamiraAlquiler_ok, 0, '.', '.' ) + "</b> &euro;";
                var descuentoAlquiler = ((pecioAltamiraAlquiler_ok * 100) / precioTotal);
                descuentoAlquiler = fmtMoney( descuentoAlquiler, 0, '.', '.' );
                descuentoAlquiler = descuentoAlquiler - 100;
                document.getElementById("flancoEstadAlquiler").innerHTML = descuentoAlquiler + ' %' ;
                document.getElementById("pecioEstimadoPrecioAlquiler").innerHTML = "<b>" +  fmtMoney( precioTotal, 0, '.', '.' ) + "</b> &euro;";
                document.getElementById("pecioM2AplicadoPrecioAlquiler").innerHTML = fmtMoney( precioMetro2Alquiler, 0, '.', '.' ) + " &euro;/mē";
                completaInfoPlusAlquiler(cuantosEstanDentroAlquiler);
            }
        }
    }else{
        objetoEspacioAlquiler = [];
        objetoPrecioAlquiler = [];
        ial = 0;
        htmlAlquiler = "";
        htmlAlquiler2 = "";
        tipoVivBusAlquiler = tipoVivBusAlquiler +  1;
        textoSaltosAlquiler  = "Elemento control especial tipo de busqueda salto  " + tipoVivBusAlquiler + " <br><br>";

        cambiaviviendaAlquiler(tipoVivBusAlquiler)
    }
}


function pintaDatosAlquiler(){
    $('#informePreciosAlquiler').empty();
    for (al=0; al <= objetoEspacioAlquiler.length-1 ; al++){
        objetoPrecioAlquiler[al]=parseInt(objetoEspacioAlquiler[al][6]) / parseInt(objetoEspacioAlquiler[al][3]);
    }
    calculaPrecioAlquiler(objetoPrecioAlquiler);

}


function creaObjetoNewNesAlquiler(response){

        var numeroElementos = eval(response['response']['listings'].length);
        paginaActual = response['response']['page'];
        paginasTotales = response['response']['total_pages'];
            var htmlAlquiler = '';
            objetosEncontradosAlquiler = response['response']['total_results'];
            actualPageAlquiler = response['response']['page'];
            totalPagesAlquiler = response['response']['total_pages'];
            htmlAlquiler += '<h3> Total: ' + response['response']['total_results'] + ' _ actualPageAlquiler: ' + response['response']['page'] + ' _ totalPagesAlquiler: ' + response['response']['total_pages'] + '</h3>';

             for(indiceArrayNes=0;indiceArrayNes < numeroElementos;indiceArrayNes++){
		        var dato =  response['response']['listings'][indiceArrayNes];
                objetoEspacioAlquiler[ial] = new Array(9);
                objetoEspacioAlquiler[ial][0] = dato['guid'];
                objetoEspacioAlquiler[ial][1] = dato['property_type'];
                objetoEspacioAlquiler[ial][2] = dato['datasource_name'];
                objetoEspacioAlquiler[ial][3] = dato['size'];
                if (dato['bedroom_number']!=""){
                    objetoEspacioAlquiler[ial][4] = dato['bedroom_number'];
                }else{
                    objetoEspacioAlquiler[ial][4] = dato['room_number'];
                }
                objetoEspacioAlquiler[ial][5] = dato['bathroom_number'];
                objetoEspacioAlquiler[ial][6] = dato['price'];
                objetoEspacioAlquiler[ial][7] = dato['title'];
                objetoEspacioAlquiler[ial][8] = dato['lister_url'];

                ial++;
              };

            if (totalPagesAlquiler > 0 && actualPageAlquiler != totalPagesAlquiler){
                if (actualPageAlquiler==2){
                     pintaDatosAlquiler();
                }else{
                    llamadaPerfectaAlquiler(parseInt(actualPageAlquiler)+1);
                }
            }else{
                if (objetosEncontradosAlquiler==0){
                    objetoEspacioAlquiler = [];
                    objetoPrecioAlquiler = [];
                    ial = 0;
                    htmlAlquiler = "";
                    htmlAlquiler2 = "";
                    tipoVivBusAlquiler = tipoVivBusAlquiler +  1;
                    textoSaltosAlquiler  = "Elemento control especial tipo de busqueda salto  " + tipoVivBusAlquiler + " <br><br>";

                    cambiaviviendaAlquiler(tipoVivBusAlquiler)
                }else{
                    pintaDatosAlquiler();
                }
            }
}



function recuperaObjetosAlquiler(lon,lat,rad,min,max,tipoOpe,tipoInm,index){
    radiusAlquiler = parseInt(rad) / 1000;
    if (tipoInm=="P"){
        var property_type = "flat";
    } else if(tipoInm=="C"){
        var property_type = "house";
    }

    var listing_type = "rent";
    if(index > 0){
        parametrosAlquiler = "&centre_point=" + lon + "," + lat + "," + radiusAlquiler + "km&number_of_results=50&sort=newest&property_type=" + property_type + "&listing_type=" + listing_type + "&size_max=" + max + "&size_min=" + min + "&page=" + index + "&callback=creaObjetoNewNesAlquiler"
        indicePaginaActual = index;
        latitud = lat;
        longitud = lon;
        radioBusqueda = radio;
        tipoBusqueda = tipoOpe;
        realizarConsultaNewNesAlquiler();
	}
}

function realizarConsultaNewNesAlquiler(){
	if(parametrosAlquiler != ""){
		var jstagAlquiler=document.createElement("script");
		jstagAlquiler.setAttribute("type", "text/javascript");
		jstagAlquiler.setAttribute("src", URLAlquiler + parametrosAlquiler);
		document.getElementsByTagName("head")[0].appendChild(jstagAlquiler);
	}
}

