var lugares;
var tipo;
var URL = "http://api.nestoria.es/api?action=metadata&encoding=json&pretty=1&callback=jsonUpdateDiv&place_name=";
var numeroDeLugares =0;
var numeroDeLugaresAux=0;
var cadenaDeValores ='';
var tablaDeValores = '';
var cadenaDeValoresAux='';
var cadenaDeValoresAux2='';
var tipoDeGrafico = 'bvg';
var precioMaximo = 0;
var precioMinimo = 99999999;
var dividirPor;

function calcular(){

	lugares = document.getElementById("lugares").value.split(",");
	tipo = document.getElementById("tipoCompra").checked?"buy":"rent";
//	numeroDeDormitorios = document.getElementById("numeroDeDormitorios");
//	numeroDeDormitorios = numeroDeDormitorios[numeroDeDormitorios.selectedIndex].value;
	numeroDeLugares=lugares.length;
	numeroDeLugaresAux=0;
	cadenaDeValores ='';
	tablaDeValores = '';
	cadenaDeValoresAux='';
	cadenaDeValoresAux2='';
	precioMaximo = 0;
	precioMinimo = 99999999;
	dividirPor= tipo=='buy'?10000:30;


	if(numeroDeLugares>5)alert("Como máximo puedes comparar 5 lugares.");
	else if(numeroDeLugares==0 || lugares[0]=='')alert("debes introducir al menos una poblacion.");
	else{
		document.getElementById("grafico").style.display='none';
		document.getElementById("link").style.display='none';
		document.getElementById("tabla").style.display="none";
		document.getElementById("cargando").style.display='block';
		for(var i=0;i<numeroDeLugares;i++)lugares[i]=trim(lugares[i]);
		realizarConsulta();				
	}
}

fmtMoney = function( n, c, d, t ) {
	var m = ( c = Math.abs( c ) + 1 ? c : 2, d = d || ",", t = t || ".", /(\d+)(?:(\.\d+)|)/.exec( n + "" ) ), x = m[1].length % 3;
	return ( x ? m[1].substr( 0, x ) + t : "" ) + m[1].substr( x ).replace( /(\d{3})(?=\d)/g, "$1" + t ) + ( c ? d + ( +m[2] ).toFixed( c ).substr( 2 ) : "" );
};

function realizarConsulta(){
	if(lugares[numeroDeLugaresAux]!=''){
		var jstag=document.createElement("script");
		jstag.setAttribute("type", "text/javascript");
		jstag.setAttribute("src", URL + lugares[numeroDeLugaresAux]);
		document.getElementsByTagName("head")[0].appendChild(jstag);
	}
}

function jsonUpdateDiv(response) {
    numeroDeLugaresAux++;
    var l = response['response']['metadata'].length;
cadenaDeValoresAux='';    
	cadenaDeValoresAux2 = [];
	
	for (j=1;j<=5;j++){
		var encontrado = false;
		var precio;
		for(var i=0;i<l;i++)
		{
     		if(!encontrado){
				var dato = response['response']['metadata'][i];
				if(dato['metadata_name']=='avg_'+j+'bed_property_'+tipo+'_monthly')
				{
					precio = dato['data']['2007_m10']['avg_price'];
					if(precio=="N/A")precio=0;
					if(Math.round(precio)>precioMaximo)precioMaximo = precio;
					if(Math.round(precio)<precioMinimo && Math.round(precio)!=0)precioMinimo = precio;
					encontrado = true;
				}
			}

		}
		if(!encontrado)precio=0;
		var precioAux = precio ==0?'-  ': fmtMoney( precio, 0, '.', '.' ) + " &euro;";
		cadenaDeValoresAux+='<td align=right>'+precioAux+'</td>';
		cadenaDeValoresAux2[j]=(precio/dividirPor).toFixed(2);

	}
	   
    cadenaDeValores+=cadenaDeValoresAux2.join(",").substring(1);
    tablaDeValores+='<tr>'+cadenaDeValoresAux+'<td style="color:black;padding-left:10px;">'+lugares[numeroDeLugaresAux-1]+'</td></tr>';
    if(numeroDeLugaresAux==numeroDeLugares){
		mostrarGrafico();
		mostrarTabla();
		document.getElementById("cargando").style.display='none';
		document.getElementById("grafico").style.display="block";
		var tipoAux= document.getElementById("tipoCompra").checked?'1':'2';
		document.getElementById("link").value='http://www.preciodevivienda.com?&loc='+escape(document.getElementById("lugares").value) +'&tipo='+tipoAux;
		//+'&tipo='+document.getElementById("tipoCompra").checked?'1':'2';
		document.getElementById("link").style.display="block";

	}
    else {
	cadenaDeValores+='|';
	realizarConsulta();
	}

}
function mostrarGrafico(){
	var tamanioGrafio = 250+(numeroDeLugares*113) + "x200";
	var mostrarEjes = "x,y";
	var textoEjes = "0:|1 dorm|2 dorm|3 dorm|4 dorm|5 dorm|1:|"+fmtMoney( precioMinimo, 0, '.', '.' )+"|"+fmtMoney( precioMaximo, 0, '.', '.' )+"";
	var posicionMaxima = Math.round(precioMaximo/dividirPor)>=100?'100':Math.round(precioMaximo/dividirPor);
	var posicionMinima = Math.round(precioMinimo/dividirPor);
	var posicionLabelsEjes= '1,' + posicionMinima+ ',' + posicionMaxima;
	//posicionLabelsEjes='1,20,70';
	var tituloGrafico = lugares;
	var fuenteTituloGrafico = "FF0000,18";
	var coloresDeLineas= "B02B2C,3F4C6B,73880A,D15600,3F4C6B,6BBA70";
	var colorFondoGrafico = "bg,s,ffffff";
	var grafico = 'http://chart.apis.google.com/chart?';

	//grafico+='&chtt='+tituloGrafico;
	grafico+='&chxt='+mostrarEjes;
	grafico+='&chxl='+textoEjes;
	grafico+='&chxp='+posicionLabelsEjes;
	//grafico+='&chts='+fuenteTituloGrafico;
	grafico+='&cht='+tipoDeGrafico;
	grafico+='&chs='+tamanioGrafio;
	grafico+='&chco='+coloresDeLineas;
	grafico+='&chf='+colorFondoGrafico;

	grafico+='&chdl='+lugares.join("|");
	//grafico+='&chl=1 dorm|2 dorm|3 dorm|4 dorm|5 dorm';
	grafico+='&chd=t:'+cadenaDeValores;

//prompt("",grafico);
	document.getElementById("grafico").src=grafico;
}

function mostrarTabla(){
	tablaDeValores= '<table class="estiloTabla"><tr style="color:black;"><td align=center>1 dorm</td><td align=center>2 dorm</td><td align=center>3 dorm</td><td align=center>4 dorm</td><td  align=center>5 dorm</td><td></td></tr>' + tablaDeValores + "</table>";
	document.getElementById("tabla").innerHTML=tablaDeValores;
	document.getElementById("tabla").style.display="block";
}

function trim(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	
	return cadena;
}

function Iniciar(){
	var iniciarBusqueda = false;
	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 == "loc") {document.getElementById("lugares").value=unescape(value);iniciarBusqueda=true}
		else if (argname == "tipo") {
			if(value=='1')document.getElementById("tipoCompra").checked=true;
			else if(value=='2')document.getElementById("tipoAlquiler").checked=true;
			}
		}
	if(iniciarBusqueda)calcular();
	
}
function Iniciar2(texto){
	javascript:document.getElementById("lugares").focus();
	javascript:document.getElementById("lugares").value=texto;
	calcular();

}
