function esEntero(numero){
var num = true;
if (trim(numero) == ""){
	num = false
}else if (!/^([0-9])*$/.test(numero)){
	num=false;
	//alert("El valor " + numero + " no es un número");
	}
	return num;
}

function ltrim(s) {
   return s.replace(/^\s+/, "");
}

function rtrim(s) {
   return s.replace(/\s+$/, "");
}

function trim(s) {
   return rtrim(ltrim(s));
}

function esNumero(valor) {
	var num = true;
    var er1_EntradaS = /^[0-9]+(\.[0-9]+)?$/
    if(!er1_EntradaS.test(valor)) {
        alert("El contenido de \""+valor+"\" no es un real");
       num = false;
    }
         return num;
    }

function validarFormularioBusqueda(){
		if (document.getElementById("municipio").value == ""){
			alert("Debe seleccionar un municipio");
		}else{
			document.formBusqueda.submit();
		}
}
function eliminaBlancosVivienda(){
	if (trim(document.getElementById("parking").value) == ""){
		document.getElementById("parking").value = 0;
	}if(trim(document.getElementById("trastero").value) == ""){
		document.getElementById("trastero").value = 0;
	}if(!esNumero(document.getElementById("precio").value) == ""){
		document.getElementById("precio_libre_total").value = 0;
	}if(trim(document.getElementById("num_dormitorios").value) == ""){
		document.getElementById("num_dormitorios").value = 0;
	}if(trim(document.getElementById("banios").value) == ""){
		document.getElementById("banios").value = 0;
	}if(trim(document.getElementById("metros").value) == ""){
		document.getElementById("metros").value = 0;
	}if(trim(document.getElementById("metros_garaje").value) == ""){
		document.getElementById("metros_garaje").value = 0;
	}if(trim(document.getElementById("metros_trastero").value) == ""){
		document.getElementById("metros_trastero").value = 0;
	}if(trim(document.getElementById("metros_segundo_garaje").value) == ""){
		document.getElementById("metros_segundo_garaje").value = 0;
	}if(trim(document.getElementById("metros_segundo_trastero").value) == ""){
		document.getElementById("metros_segundo_trastero").value = 0;
	}if(trim(document.getElementById("metros_tercer_garaje").value) == ""){
		document.getElementById("metros_tercer_garaje").value = 0;
	}if(trim(document.getElementById("metros_tercer_trastero").value) == ""){
		document.getElementById("metros_tercero_trastero").value = 0;				
	}if(trim(document.getElementById("metros_cuarto_garaje").value) == ""){
		document.getElementById("metros_cuarto_garaje").value = 0;
	}if(trim(document.getElementById("metros_cuarto_trastero").value) == ""){
		document.getElementById("metros_cuarto_trastero").value = 0;
	}if(trim(document.getElementById("metros_cuarto_garaje").value) == ""){
		document.getElementById("metros_cuarto_garaje").value = 0;
	}if(trim(document.getElementById("precio_libre_total").value) == ""){
		document.getElementById("precio_libre_total").value = 0;
	}if(trim(document.getElementById("alquiler_libre_total").value) == ""){
		document.getElementById("alquiler_libre_total").value = 0;
	}if(trim(document.getElementById("cod_registro").value) == ""){
		document.getElementById("cod_registro").value = 0;
	}
}

function validaVivienda(formulario){

	if (!esEntero(document.getElementById("parking").value)){
		document.getElementById("parking").focus();
		alert("El valor del parking debe ser númerico");
	}else if(!esEntero(document.getElementById("trastero").value)){
		document.getElementById("trastero").focus();
		alert("El valor del trastero debe ser númerico");	
	}else if(!esEntero(document.getElementById("num_dormitorios").value)){
		document.getElementById("num_dormitorios").focus();
		alert("El número de dormitorios debe ser númerico");
	}else if(!esEntero(document.getElementById("banios").value)){
		document.getElementById("banios").focus();
		alert("El número de baños debe ser númerico");
	}else if(!esNumero(document.getElementById("metros").value)){
		document.getElementById("metros").focus();
		alert("El valor de metros debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_vivienda").value)){
		document.getElementById("precio_libre_vivienda").focus();
		alert("El precio libre de la vivienda debe ser númerico");		
	}else if(!esNumero(document.getElementById("precio_libre_garaje").value)){
		document.getElementById("precio_libre_garaje").focus();
		alert("El precio libre del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_trastero").value)){
		document.getElementById("precio_libre_trastero").focus();
		alert("El precio libre del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_segundo_garaje").value)){
		document.getElementById("precio_libre_segundo_garaje").focus();
		alert("El precio libre del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_segundo_trastero").value)){
		document.getElementById("precio_libre_segundo_trastero").focus();
		alert("El precio libre del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_tercer_garaje").value)){
		document.getElementById("precio_libre_tercer_garaje").focus();
		alert("El precio libre del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_tercer_trastero").value)){
		document.getElementById("precio_libre_tercer_trastero").focus();
		alert("El precio libre del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_cuarto_garaje").value)){
		document.getElementById("precio_libre_cuarto_garaje").focus();
		alert("El precio libre del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_libre_cuarto_trastero").value)){
		document.getElementById("precio_libre_cuarto_trastero").focus();
		alert("El precio libre del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_vivienda").value)){
		document.getElementById("precio_concertado_vivienda").focus();
		alert("El precio concertado de la vivienda debe ser númerico");		
	}else if(!esNumero(document.getElementById("precio_concertado_garaje").value)){
		document.getElementById("precio_concertado_garaje").focus();
		alert("El precio concertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_trastero").value)){
		document.getElementById("precio_concertado_trastero").focus();
		alert("El precio concertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_segundo_garaje").value)){
		document.getElementById("precio_concertado_segundo_garaje").focus();
		alert("El precio concertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_segundo_trastero").value)){
		document.getElementById("precio_concertado_segundo_trastero").focus();
		alert("El precio concertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_tercer_garaje").value)){
		document.getElementById("precio_concertado_tercer_garaje").focus();
		alert("El precio concertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_tercer_trastero").value)){
		document.getElementById("precio_concertado_tercer_trastero").focus();
		alert("El precio concertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_cuarto_garaje").value)){
		document.getElementById("precio_concertado_cuarto_garaje").focus();
		alert("El precio concertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_concertado_cuarto_trastero").value)){
		document.getElementById("precio_concertado_cuarto_trastero").focus();
		alert("El precio concertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_vivienda").value)){
		document.getElementById("precio_ofertado_vivienda").focus();
		alert("El precio ofertado de la vivienda debe ser númerico");		
	}else if(!esNumero(document.getElementById("precio_ofertado_garaje").value)){
		document.getElementById("precio_ofertado_garaje").focus();
		alert("El precio ofertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_trastero").value)){
		document.getElementById("precio_ofertado_trastero").focus();
		alert("El precio ofertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_segundo_garaje").value)){
		document.getElementById("precio_ofertado_segundo_garaje").focus();
		alert("El precio ofertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_segundo_trastero").value)){
		document.getElementById("precio_ofertado_segundo_trastero").focus();
		alert("El precio ofertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_tercer_garaje").value)){
		document.getElementById("precio_ofertado_tercer_garaje").focus();
		alert("El precio ofertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_tercer_trastero").value)){
		document.getElementById("precio_ofertado_tercer_trastero").focus();
		alert("El precio ofertado del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_cuarto_garaje").value)){
		document.getElementById("precio_ofertado_cuarto_garaje").focus();
		alert("El precio ofertado del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("precio_ofertado_cuarto_trastero").value)){
		document.getElementById("precio_ofertado_cuarto_trastero").focus();
		alert("El precio ofertado del trastero debe ser númerico");						
	}else if(!esNumero(document.getElementById("metros_garaje").value)){
		document.getElementById("metros_garaje").focus();
		alert("El valor de metros del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_trastero").value)){
		document.getElementById("metros_trastero").focus();
		alert("El valor de metros del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_segundo_garaje").value)){
		document.getElementById("metros_segundo_garaje").focus();
		alert("El valor de metros del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_segundo_trastero").value)){
		document.getElementById("metros_segundo_trastero").focus();
		alert("El valor de metros del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_tercer_garaje").value)){
		document.getElementById("metros_tercer_garaje").focus();
		alert("El valor de metros del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_tercer_trastero").value)){
		document.getElementById("metros_tercer_trastero").focus();
		alert("El valor de metros del trastero debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_cuarto_garaje").value)){
		document.getElementById("metros_cuarto_garaje").focus();
		alert("El valor de metros del garaje debe ser númerico");
	}else if(!esNumero(document.getElementById("metros_cuarto_trastero").value)){
		document.getElementById("metros_cuarto_trastero").focus();		
		alert("El valor de metros del trastero debe ser númerico");
	}else{
		if (precios_OK()){
			document.getElementById(formulario).submit();
		}
		else {
			if(confirm("Al revisar la tabla de precios los calculos no son los esperados. \n ¿Desea igualmente incorporar la informacion suministrada a la Base de datos? \n ")){
			document.getElementById(formulario).submit();
			}
		}
	}
}

function precios_OK() {
	var precios_OK = true;
   
    // Comprobaciones y asignaciones de precios calculados
    
    // Precio Ofertado: precio de venta propuesta por el promotor 
    // (será igual o inferior al precio concertado)
    
    //COMPRAS
    if (document.getElementById("precio_ofertado_vivienda").value > document.getElementById("precio_concertado_vivienda").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para la vivienda ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("precio_ofertado_garaje").value > document.getElementById("precio_concertado_garaje").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("precio_ofertado_trastero").value > document.getElementById("precio_concertado_trastero").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el trastero ha de ser igual o inferior al precio concertado');
    }
	//  ( segundos garaje y trastero )
    if (document.getElementById("precio_ofertado_segundo_garaje").value > document.getElementById("precio_concertado_segundo_garaje").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el segundo garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("precio_ofertado_segundo_trastero").value > document.getElementById("precio_concertado_segundo_trastero").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el segundo trastero ha de ser igual o inferior al precio concertado');
    }
	//  ( tercer garaje y trastero )
    if (document.getElementById("precio_ofertado_tercer_garaje").value > document.getElementById("precio_concertado_tercer_garaje").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el tercer garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("precio_ofertado_tercer_trastero").value > document.getElementById("precio_concertado_tercer_trastero").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el tercer trastero ha de ser igual o inferior al precio concertado');
    }

	//  ( cuarto garaje y trastero )
    if (document.getElementById("precio_ofertado_cuarto_garaje").value > document.getElementById("precio_concertado_cuarto_garaje").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el cuarto garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("precio_ofertado_cuarto_trastero").value > document.getElementById("precio_concertado_cuarto_trastero").value){
    	precios_OK = false;
    	alert('El precio de venta propuesto por el promotor para el cuarto trastero ha de ser igual o inferior al precio concertado');
    }


    //ALQUILER
    if (document.getElementById("alquiler_ofertado_vivienda").value > document.getElementById("alquiler_concertado_vivienda").value){
    	precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para la vivienda ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("alquiler_ofertado_garaje").value > document.getElementById("alquiler_concertado_garaje").value){
    	precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("alquiler_ofertado_trastero").value > document.getElementById("alquiler_concertado_trastero").value){
        precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el trastero ha de ser igual o inferior al precio concertado');
    } 
	//  ( segundos garaje y trastero )
    if (document.getElementById("alquiler_ofertado_segundo_garaje").value > document.getElementById("alquiler_concertado_segundo_garaje").value){
    	precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el segundo garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("alquiler_ofertado_segundo_trastero").value > document.getElementById("alquiler_concertado_segundo_trastero").value){
        precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el segundo trastero ha de ser igual o inferior al precio concertado');
    } 
	//  ( tercer garaje y trastero )
    if (document.getElementById("alquiler_ofertado_tercer_garaje").value > document.getElementById("alquiler_concertado_tercer_garaje").value){
    	precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el tercer garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("alquiler_ofertado_tercer_trastero").value > document.getElementById("alquiler_concertado_tercer_trastero").value){
        precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el tercer trastero ha de ser igual o inferior al precio concertado');
    } 
	//  ( cuarto garaje y trastero )
    if (document.getElementById("alquiler_ofertado_cuarto_garaje").value > document.getElementById("alquiler_concertado_cuarto_garaje").value){
    	precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el cuarto garaje ha de ser igual o inferior al precio concertado');
    }
    if (document.getElementById("alquiler_ofertado_cuarto_trastero").value > document.getElementById("alquiler_concertado_cuarto_trastero").value){
        precios_OK = false;
    	alert('El precio de alquiler propuesto por el promotor para el cuarto trastero ha de ser igual o inferior al precio concertado');
    } 

             
	return precios_OK;
}

function calcularAhorro(libre,concertado,ofertado,ahorro){

// Recalcula el ahorro

   var campo_libre = document.getElementById(libre);    
   var campo_concertado = document.getElementById(concertado);
   var campo_ofertado = document.getElementById(ofertado);	
   var campo_ahorro = document.getElementById(ahorro);
   	
   var suma_parcial = 0;	
   if (parseFloat(campo_libre.value) > parseFloat(campo_concertado.value)){
   suma_parcial = suma_parcial + (parseFloat(campo_libre.value) - parseFloat(campo_concertado.value))
   }
   if (parseFloat(campo_concertado.value) > parseFloat(campo_ofertado.value)){
   suma_parcial = suma_parcial + (parseFloat(campo_concertado.value) - parseFloat(campo_ofertado.value))
   }
   campo_ahorro.value = suma_parcial;
   
   // Cada vez que se recalcula un ahorro hay que recalcular la suma de los totales, Tanto si se ha recalculado un ahorro de compra como de alquiler
   
   calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
   calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');
   
}

function calcularTotales(vivienda,garaje,segundo_garaje,tercer_garaje,cuarto_garaje,trastero,segundo_trastero,tercer_trastero,cuarto_trastero,total){
// Calculo de totales tabla de precios

   var campo_vivienda = document.getElementById(vivienda);    
   var campo_garaje = document.getElementById(garaje);
   var campo_segundo_garaje = document.getElementById(segundo_garaje);
   var campo_tercer_garaje = document.getElementById(tercer_garaje);
   var campo_cuarto_garaje = document.getElementById(cuarto_garaje);
   var campo_trastero = document.getElementById(trastero);
   var campo_segundo_trastero = document.getElementById(segundo_trastero);
   var campo_tercer_trastero = document.getElementById(tercer_trastero);		
   var campo_cuarto_trastero = document.getElementById(cuarto_trastero);
   var campo_total = document.getElementById(total);

   var suma_total = 0;
   suma_total = suma_total + parseFloat(campo_vivienda.value) + parseFloat(campo_garaje.value)+ parseFloat(campo_segundo_garaje.value)+ parseFloat(campo_tercer_garaje.value)+ parseFloat(campo_cuarto_garaje.value) + parseFloat(campo_trastero.value) + parseFloat(campo_segundo_trastero.value) + parseFloat(campo_tercer_trastero.value) + parseFloat(campo_cuarto_trastero.value);
   campo_total.value = suma_total;
 
}

function calculoPreciosyAlquileresConcertados_Zona(idMunicipio){
	calculoPrecioyAlquilerConcertadoVivienda(idMunicipio);
	calculoPrecioyAlquilerConcertadoGaraje(idMunicipio);
	calculoPrecioyAlquilerConcertadoSegundoGaraje(idMunicipio);
	calculoPrecioyAlquilerConcertadoTercerGaraje(idMunicipio);
	calculoPrecioyAlquilerConcertadoCuartoGaraje(idMunicipio);
	calculoPrecioyAlquilerConcertadoTrastero(idMunicipio);
	calculoPrecioyAlquilerConcertadoSegundoTrastero(idMunicipio);
	calculoPrecioyAlquilerConcertadoTercerTrastero(idMunicipio);
	calculoPrecioyAlquilerConcertadoCuartoTrastero(idMunicipio);

}

function calculoPrecioyAlquilerConcertadoVivienda(idMunicipio){
var metros_vivienda = document.getElementById("metros");
var campo_precio_concertado_vivienda = document.getElementById("precio_concertado_vivienda");    
var campo_alquiler_concertado_vivienda = document.getElementById("alquiler_concertado_vivienda");  


// Precio Concertado Vivienda (se obtiene automáticamente al multiplicar el precio por metro de la zona
// de precios que le corresponde por los metros limitados a un máximo de 120).
// Se parametriza los metros cuadrados de la vivienda a 120 mediante la variable limite_superficie_vivienda. En los cálculos de precios se toma este valor (120) si la vivienda supera el mismo
	var limite_superficie_vivienda = 120.0; 
	var metros = 0.0;
	if (parseFloat(metros_vivienda.value) > parseFloat(limite_superficie_vivienda)){
		metros = limite_superficie_vivienda;	
		alert('Se aplicará la limitación de los ' + limite_superficie_vivienda + ' metros cuadrados. La vivienda tiene ' + metros_vivienda.value );
	}else{
		metros = parseFloat(metros_vivienda.value);	
	}
	
	campo_precio_concertado_vivienda.value = metros * (PrecioMetroZona[idMunicipio]);
	// Alquiler Concertado: alquiler obtenido al aplicar la formula del 4,5% del precio concertado 
	campo_alquiler_concertado_vivienda.value = (parseFloat(campo_precio_concertado_vivienda.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');
	
	// Recalculamos el Ahorro compra vivienda y Ahorro alquiler vivienda
	   calcularAhorro('precio_libre_vivienda','precio_concertado_vivienda','precio_ofertado_vivienda','ahorro_compra_vivienda');
 	   calcularAhorro('alquiler_libre_vivienda','alquiler_concertado_vivienda','alquiler_ofertado_vivienda','ahorro_alquiler_vivienda');		

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');
	
}

function calculoPrecioyAlquilerConcertadoGaraje(idMunicipio){
var metros_garaje = document.getElementById("metros_garaje");
var campo_precio_concertado_garaje = document.getElementById("precio_concertado_garaje");    
var campo_alquiler_concertado_garaje = document.getElementById("alquiler_concertado_garaje");

	//Precio concertado Garaje (se obtiene automáticamente al multiplicar los metros cuadrados del garaje
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 30 metros cuadrados)
	
	if (parseFloat(metros_garaje.value) > 30){
		var metros = 30;	
		alert('Se aplicará la limitación de los 30 metros. El garaje tiene ' + metros_garaje.value );
	}else{
		metros = parseFloat(metros_garaje.value);	
	}
	
	campo_precio_concertado_garaje.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_garaje.value = (parseFloat(campo_precio_concertado_garaje.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');
	
	// Recalculamos el Ahorro compra garaje y Ahorro alquiler Garaje
	   calcularAhorro('precio_libre_garaje','precio_concertado_garaje','precio_ofertado_garaje','ahorro_compra_garaje');
 	   calcularAhorro('alquiler_libre_garaje','alquiler_concertado_garaje','alquiler_ofertado_garaje','ahorro_alquiler_garaje');		

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoSegundoGaraje(idMunicipio){
var metros_segundo_garaje = document.getElementById("metros_segundo_garaje");
var campo_precio_concertado_segundo_garaje = document.getElementById("precio_concertado_segundo_garaje");    
var campo_alquiler_concertado_segundo_garaje = document.getElementById("alquiler_concertado_segundo_garaje");

	//Precio concertado Garaje (se obtiene automáticamente al multiplicar los metros cuadrados del garaje
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 30 metros cuadrados)
	
	if (parseFloat(metros_segundo_garaje.value) > 30){
		var metros = 30;	
		alert('Se aplicará la limitación de los 30 metros. El garaje tiene ' + metros_segundo_garaje.value );
	}else{
		metros = parseFloat(metros_segundo_garaje.value);	
	}
	
	campo_precio_concertado_segundo_garaje.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_segundo_garaje.value = (parseFloat(campo_precio_concertado_segundo_garaje.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');
	
	// Recalculamos el Ahorro compra garaje y Ahorro alquiler Garaje
	   calcularAhorro('precio_libre_segundo_garaje','precio_concertado_segundo_garaje','precio_ofertado_segundo_garaje','ahorro_compra_segundo_garaje');
 	   calcularAhorro('alquiler_libre_segundo_garaje','alquiler_concertado_segundo_garaje','alquiler_ofertado_segundo_garaje','ahorro_alquiler_segundo_garaje');		

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoTercerGaraje(idMunicipio){
var metros_tercer_garaje = document.getElementById("metros_tercer_garaje");
var campo_precio_concertado_tercer_garaje = document.getElementById("precio_concertado_tercer_garaje");    
var campo_alquiler_concertado_tercer_garaje = document.getElementById("alquiler_concertado_tercer_garaje");

	//Precio concertado Garaje (se obtiene automáticamente al multiplicar los metros cuadrados del garaje
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 30 metros cuadrados)
	
	if (parseFloat(metros_tercer_garaje.value) > 30){
		var metros = 30;	
		alert('Se aplicará la limitación de los 30 metros. El garaje tiene ' + metros_tercer_garaje.value );
	}else{
		metros = parseFloat(metros_tercer_garaje.value);	
	}
	
	campo_precio_concertado_tercer_garaje.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_tercer_garaje.value = (parseFloat(campo_precio_concertado_tercer_garaje.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');
	
	// Recalculamos el Ahorro compra garaje y Ahorro alquiler Garaje
	   calcularAhorro('precio_libre_tercer_garaje','precio_concertado_tercer_garaje','precio_ofertado_tercer_garaje','ahorro_compra_tercer_garaje');
 	   calcularAhorro('alquiler_libre_tercer_garaje','alquiler_concertado_tercer_garaje','alquiler_ofertado_tercer_garaje','ahorro_alquiler_tercer_garaje');		

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoCuartoGaraje(idMunicipio){
var metros_cuarto_garaje = document.getElementById("metros_cuarto_garaje");
var campo_precio_concertado_cuarto_garaje = document.getElementById("precio_concertado_cuarto_garaje");    
var campo_alquiler_concertado_cuarto_garaje = document.getElementById("alquiler_concertado_cuarto_garaje");

	//Precio concertado Garaje (se obtiene automáticamente al multiplicar los metros cuadrados del garaje
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 30 metros cuadrados)
	
	if (parseFloat(metros_cuarto_garaje.value) > 30){
		var metros = 30;	
		alert('Se aplicará la limitación de los 30 metros. El garaje tiene ' + metros_cuarto_garaje.value );
	}else{
		metros = parseFloat(metros_cuarto_garaje.value);	
	}
	
	campo_precio_concertado_cuarto_garaje.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_cuarto_garaje.value = (parseFloat(campo_precio_concertado_cuarto_garaje.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');
	
	// Recalculamos el Ahorro compra garaje y Ahorro alquiler Garaje
	   calcularAhorro('precio_libre_cuarto_garaje','precio_concertado_cuarto_garaje','precio_ofertado_cuarto_garaje','ahorro_compra_cuarto_garaje');
 	   calcularAhorro('alquiler_libre_cuarto_garaje','alquiler_concertado_cuarto_garaje','alquiler_ofertado_cuarto_garaje','ahorro_alquiler_cuarto_garaje');		

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoTrastero(idMunicipio){
var metros_trastero = document.getElementById("metros_trastero");
var campo_precio_concertado_trastero = document.getElementById("precio_concertado_trastero");    
var campo_alquiler_concertado_trastero = document.getElementById("alquiler_concertado_trastero");

	//Precio concertado Trastero (se obtiene automáticamente al multiplicar los metros cuadrados del trastero
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 10 metros cuadrados)
	
	if (parseFloat(metros_trastero.value) > 10){
		var metros = 10;	
		alert('Se aplicará la limitación de los 10 metros. El trastero tiene ' + metros_trastero.value );
	}else{
		metros = parseFloat(metros_trastero.value);	
	}
	
	campo_precio_concertado_trastero.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_trastero.value = (parseFloat(campo_precio_concertado_trastero.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');

	// Recalculamos el Ahorro compra vivienda y Ahorro alquiler Trastero
	   calcularAhorro('precio_libre_trastero','precio_concertado_trastero','precio_ofertado_trastero','ahorro_compra_trastero');
 	   calcularAhorro('alquiler_libre_trastero','alquiler_concertado_trastero','alquiler_ofertado_trastero','ahorro_alquiler_trastero');			

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');
	
}

function calculoPrecioyAlquilerConcertadoSegundoTrastero(idMunicipio){
var metros_segundo_trastero = document.getElementById("metros_segundo_trastero");
var campo_precio_concertado_segundo_trastero = document.getElementById("precio_concertado_segundo_trastero");    
var campo_alquiler_concertado_segundo_trastero = document.getElementById("alquiler_concertado_segundo_trastero");

	//Precio concertado Trastero (se obtiene automáticamente al multiplicar los metros cuadrados del trastero
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 10 metros cuadrados)
	
	if (parseFloat(metros_segundo_trastero.value) > 10){
		var metros = 10;	
		alert('Se aplicará la limitación de los 10 metros. El trastero tiene ' + metros_segundo_trastero.value );
	}else{
		metros = parseFloat(metros_segundo_trastero.value);	
	}
	
	campo_precio_concertado_segundo_trastero.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_segundo_trastero.value = (parseFloat(campo_precio_concertado_segundo_trastero.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');

	// Recalculamos el Ahorro compra vivienda y Ahorro alquiler Trastero
	   calcularAhorro('precio_libre_segundo_trastero','precio_concertado_segundo_trastero','precio_ofertado_segundo_trastero','ahorro_compra_segundo_trastero');
 	   calcularAhorro('alquiler_libre_segundo_trastero','alquiler_concertado_segundo_trastero','alquiler_ofertado_segundo_trastero','ahorro_alquiler_segundo_trastero');			

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoTercerTrastero(idMunicipio){
var metros_tercer_trastero = document.getElementById("metros_tercer_trastero");
var campo_precio_concertado_tercer_trastero = document.getElementById("precio_concertado_tercer_trastero");    
var campo_alquiler_concertado_tercer_trastero = document.getElementById("alquiler_concertado_tercer_trastero");

	//Precio concertado Trastero (se obtiene automáticamente al multiplicar los metros cuadrados del trastero
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 10 metros cuadrados)
	
	if (parseFloat(metros_tercer_trastero.value) > 10){
		var metros = 10;	
		alert('Se aplicará la limitación de los 10 metros. El trastero tiene ' + metros_tercer_trastero.value );
	}else{
		metros = parseFloat(metros_tercer_trastero.value);	
	}
	
	campo_precio_concertado_tercer_trastero.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_tercer_trastero.value = (parseFloat(campo_precio_concertado_tercer_trastero.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');

	// Recalculamos el Ahorro compra vivienda y Ahorro alquiler Trastero
	   calcularAhorro('precio_libre_tercer_trastero','precio_concertado_tercer_trastero','precio_ofertado_tercer_trastero','ahorro_compra_tercer_trastero');
 	   calcularAhorro('alquiler_libre_tercer_trastero','alquiler_concertado_tercer_trastero','alquiler_ofertado_tercer_trastero','ahorro_alquiler_tercer_trastero');			

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPrecioyAlquilerConcertadoCuartoTrastero(idMunicipio){
var metros_cuarto_trastero = document.getElementById("metros_cuarto_trastero");
var campo_precio_concertado_cuarto_trastero = document.getElementById("precio_concertado_cuarto_trastero");    
var campo_alquiler_concertado_cuarto_trastero = document.getElementById("alquiler_concertado_cuarto_trastero");

	//Precio concertado Trastero (se obtiene automáticamente al multiplicar los metros cuadrados del trastero
	// por el 45% del precio máximo de venta por metro cuadrado construido para la zona de precios que le
	// corresponde sin computar el exceso de mas de 10 metros cuadrados)
	
	if (parseFloat(metros_cuarto_trastero.value) > 10){
		var metros = 10;	
		alert('Se aplicará la limitación de los 10 metros. El trastero tiene ' + metros_cuarto_trastero.value );
	}else{
		metros = parseFloat(metros_cuarto_trastero.value);	
	}
	
	campo_precio_concertado_cuarto_trastero.value = metros * parseFloat((PrecioMetroZona[idMunicipio])*45)/100;
	campo_alquiler_concertado_cuarto_trastero.value = (parseFloat(campo_precio_concertado_cuarto_trastero.value) * 4.5)/100;
	
	// Recalculamos los totales de Precio Concertado y Alquiler Concertado
       calcularTotales('precio_concertado_vivienda','precio_concertado_garaje','precio_concertado_segundo_garaje','precio_concertado_tercer_garaje','precio_concertado_cuarto_garaje','precio_concertado_trastero','precio_concertado_segundo_trastero','precio_concertado_tercer_trastero','precio_concertado_cuarto_trastero','precio_concertado_total');
	   calcularTotales('alquiler_concertado_vivienda','alquiler_concertado_garaje','alquiler_concertado_segundo_garaje','alquiler_concertado_tercer_garaje','alquiler_concertado_cuarto_garaje','alquiler_concertado_trastero','alquiler_concertado_segundo_trastero','alquiler_concertado_tercer_trastero','alquiler_concertado_cuarto_trastero','alquiler_concertado_total');

	// Recalculamos el Ahorro compra trastero y Ahorro alquiler Trastero
	   calcularAhorro('precio_libre_cuarto_trastero','precio_concertado_cuarto_trastero','precio_ofertado_cuarto_trastero','ahorro_compra_cuarto_trastero');
 	   calcularAhorro('alquiler_libre_cuarto_trastero','alquiler_concertado_cuarto_trastero','alquiler_ofertado_cuarto_trastero','ahorro_alquiler_cuarto_trastero');			

    // Cada vez que se recalcula un ahorro hay que recalcular su suma   
       calcularTotales('ahorro_compra_vivienda','ahorro_compra_garaje','ahorro_compra_segundo_garaje','ahorro_compra_tercer_garaje','ahorro_compra_cuarto_garaje','ahorro_compra_trastero','ahorro_compra_segundo_trastero','ahorro_compra_tercer_trastero','ahorro_compra_cuarto_trastero','ahorro_compra_total');
       calcularTotales('ahorro_alquiler_vivienda','ahorro_alquiler_garaje','ahorro_alquiler_segundo_garaje','ahorro_alquiler_tercer_garaje','ahorro_alquiler_cuarto_garaje','ahorro_alquiler_trastero','ahorro_alquiler_segundo_trastero','ahorro_alquiler_tercer_trastero','ahorro_alquiler_cuarto_trastero','ahorro_alquiler_total');

	
}

function calculoPreciosyAlquileresLibres_Municipio(idMunicipio){
// Calculo del precio libre de venta y alquiler
// en funcion del municipio y de los metros cuadrados de vivienda, garaje y trastero
	if(confirm("Al cambiar de municipio se va a proceder a recalcular:\n 1.- Los precios de compra y alquiler libres \n tanto de la vivienda, garajes y trasteros en funcion del precio medio estipulado en este municipio seleccionado. \n 2.- Los precios concertados de vivienda, garaje y trastero segun el precio por metro cuadrado de la zona. \n ¿Desea proceder a estos calculos? \n ")){
		if ((PrecioMedioVenta[idMunicipio]!= 0) || ( (PrecioMedioVenta[idMunicipio]==0)&&(confirm(" El precio medio de venta indicado para este municipio es cero \n ¿Desea proceder igualmente con los calculos sobre los datos referidos de compra?")))) {				
			document.getElementById("precio_libre_vivienda").value = (parseFloat(document.getElementById("metros").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("precio_libre_garaje").value = (parseFloat(document.getElementById("metros_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("precio_libre_segundo_garaje").value = (parseFloat(document.getElementById("metros_segundo_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("precio_libre_tercer_garaje").value = (parseFloat(document.getElementById("metros_tercer_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("precio_libre_cuarto_garaje").value = (parseFloat(document.getElementById("metros_cuarto_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("precio_libre_trastero").value = (parseFloat(document.getElementById("metros_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("precio_libre_segundo_trastero").value = (parseFloat(document.getElementById("metros_segundo_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("precio_libre_tercer_trastero").value = (parseFloat(document.getElementById("metros_tercer_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("precio_libre_cuarto_trastero").value = (parseFloat(document.getElementById("metros_cuarto_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));

			// Recalcula el ahorro de compra vivienda, garaje y trastero		
			calcularAhorro('precio_libre_vivienda','precio_concertado_vivienda','precio_ofertado_vivienda','ahorro_compra_vivienda');
			calcularAhorro('precio_libre_garaje','precio_concertado_garaje','precio_ofertado_garaje','ahorro_compra_garaje');
			calcularAhorro('precio_libre_segundo_garaje','precio_concertado_segundo_garaje','precio_ofertado_segundo_garaje','ahorro_compra_segundo_garaje');
			calcularAhorro('precio_libre_tercer_garaje','precio_concertado_tercer_garaje','precio_ofertado_tercer_garaje','ahorro_compra_tercer_garaje');			
			calcularAhorro('precio_libre_trastero','precio_concertado_trastero','precio_ofertado_trastero','ahorro_compra_trastero');
			calcularAhorro('precio_libre_segundo_trastero','precio_concertado_segundo_trastero','precio_ofertado_segundo_trastero','ahorro_compra_segundo_trastero');
			calcularAhorro('precio_libre_tercer_trastero','precio_concertado_tercer_trastero','precio_ofertado_tercer_trastero','ahorro_compra_tercer_trastero');
			calcularAhorro('precio_libre_cuarto_trastero','precio_concertado_cuarto_trastero','precio_ofertado_cuarto_trastero','ahorro_compra_cuarto_trastero');
					
			// Recalcular el precio libre venta total
			calcularTotales('precio_libre_vivienda','precio_libre_garaje','precio_libre_segundo_garaje','precio_libre_tercer_garaje','precio_libre_cuarto_garaje','precio_libre_trastero','precio_libre_segundo_trastero','precio_libre_tercer_trastero','precio_libre_cuarto_trastero','precio_libre_total');
					 	
		}
		
		if ((PrecioMedioAlquiler[idMunicipio]!= 0) || ((PrecioMedioAlquiler[idMunicipio]== 0) && (confirm(" El precio medio de alquiler indicado para este municipio es cero \n ¿Desea proceder igualmente con los calculos sobre los datos referidos de alquiler?")))) {				
			document.getElementById("alquiler_libre_vivienda").value = (parseFloat(document.getElementById("metros").value) * parseFloat(PrecioMedioAlquiler[idMunicipio]));
			document.getElementById("alquiler_libre_segundo_garaje").value = (parseFloat(document.getElementById("metros_segundo_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("alquiler_libre_tercer_garaje").value = (parseFloat(document.getElementById("metros_tercer_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("alquiler_libre_cuarto_garaje").value = (parseFloat(document.getElementById("metros_cuarto_garaje").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("alquiler_libre_trastero").value = (parseFloat(document.getElementById("metros_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));
			document.getElementById("alquiler_libre_segundo_trastero").value = (parseFloat(document.getElementById("metros_segundo_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("alquiler_libre_tercer_trastero").value = (parseFloat(document.getElementById("metros_tercer_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));			
			document.getElementById("alquiler_libre_cuarto_trastero").value = (parseFloat(document.getElementById("metros_cuarto_trastero").value) * parseFloat(PrecioMedioVenta[idMunicipio]));

			// Recalcula el ahorro de compra vivienda, garaje y trastero		
			calcularAhorro('alquiler_libre_vivienda','alquiler_concertado_vivienda','alquiler_ofertado_vivienda','ahorro_alquiler_vivienda');
			calcularAhorro('alquiler_libre_garaje','alquiler_concertado_garaje','alquiler_ofertado_garaje','ahorro_alquiler_garaje');
			calcularAhorro('alquiler_libre_segundo_garaje','alquiler_concertado_segundo_garaje','alquiler_ofertado_segundo_garaje','ahorro_alquiler_segundo_garaje');
			calcularAhorro('alquiler_libre_tercer_garaje','alquiler_concertado_tercer_garaje','alquiler_ofertado_tercer_garaje','ahorro_alquiler_tercer_garaje');			
			calcularAhorro('alquiler_libre_trastero','alquiler_concertado_trastero','alquiler_ofertado_trastero','ahorro_alquiler_trastero');
			calcularAhorro('alquiler_libre_segundo_trastero','alquiler_concertado_segundo_trastero','alquiler_ofertado_segundo_trastero','ahorro_alquiler_segundo_trastero');
			calcularAhorro('alquiler_libre_tercer_trastero','alquiler_concertado_tercer_trastero','alquiler_ofertado_tercer_trastero','ahorro_alquiler_tercer_trastero');
			calcularAhorro('alquiler_libre_cuarto_trastero','alquiler_concertado_cuarto_trastero','alquiler_ofertado_cuarto_trastero','ahorro_alquiler_cuarto_trastero');
					
			// Recalcular el precio libre venta total
			calcularTotales('alquiler_libre_vivienda','alquiler_libre_garaje','alquiler_libre_segundo_garaje','alquiler_libre_tercer_garaje','alquiler_libre_cuarto_garaje','alquiler_libre_trastero','alquiler_libre_segundo_trastero','alquiler_libre_tercer_trastero','alquiler_libre_cuarto_trastero','alquiler_libre_total');
		}
		
		// Al cambiar de municipio se recalculan los precios concertados de venta y alquiler segun precio de zona.
		calculoPreciosyAlquileresConcertados_Zona(idMunicipio);	
	}
}

function validaBanco(formulario,idNombre){
	if (!esEntero(document.getElementById(idNombre).value)){
		document.getElementById(idNombre).focus();
		alert("El valor del id debe ser númerico");
	}else if (document.getElementById(idNombre).value == 0){
		alert("El valor del id debe ser distinto de cero");
	}else{
		document.getElementById(formulario).submit();
	}
}

function validaMunicipio(){
	if (!esNumero(document.getElementById("precioMedioVenta").value)){
		document.getElementById(precioMedioVenta).focus();
		alert("El valor del id debe ser númerico");
	}else if (!esNumero(document.getElementById("precioMedioAlquiler").value)){
		document.getElementById(precioMedioAlquiler).focus();
		alert("El valor del id debe ser númerico");
	}else{
		document.getElementById('formMunicipios').submit();
	}
		
	
}

function validaDistrito(){
	
	if (!esNumero(document.getElementById("precioMedioVenta").value)){
		document.getElementById(precioMedioVenta).focus();
		alert("El valor del id debe ser númerico");
	}else if (!esNumero(document.getElementById("precioMedioAlquiler").value)){
		document.getElementById(precioMedioAlquiler).focus();
		alert("El valor del id debe ser númerico");
	}else{
		document.getElementById('formDistritos').submit();
	}
}
function validaPersonalBanco(formulario,idNombre){
	if (!esEntero(document.getElementById(idNombre).value)){
		document.getElementById(idNombre).focus();
		alert("El valor del id debe ser númerico");
	}else if (document.getElementById(idNombre).value == 0){
		alert("El valor del id debe ser distinto de cero");
	}else{
		
		document.getElementById(formulario).submit();
	}
}
function validaPersonalInmobiliaria(formulario,idNombre){ 
	if (!esEntero(document.getElementById(idNombre).value)){
		document.getElementById(idNombre).focus();
		alert("El valor del id debe ser númerico");
	}else if (document.getElementById(idNombre).value == 0){
		alert("El valor del id debe ser distinto de cero");
	}else{
	
		document.getElementById(formulario).submit();
	}
}

function enviaCorreo(){
	if (correctaDireccionCorreo(document.getElementById("from").value)){
		if (document.getElementById("telefono").value.length != 0 ){
			window.opener.document.getElementById("mensaje").value=document.getElementById("mensaje").value + " \n\n El teléfono de contacto es: "+document.getElementById("telefono").value 
		}else{
			window.opener.document.getElementById("mensaje").value=document.getElementById("mensaje").value;
		}
		window.opener.document.getElementById("from").value=document.getElementById("from").value
		window.opener.document.getElementById("asunto").value=document.getElementById("asunto").value
		window.opener.document.getElementById("accion").value = "ENVIOCORREO"
		window.opener.document.forms[0].submit();
		window.close();
	}else{
		alert("Debe indicar una dirección de correo correcta.");
		document.getElementById("from").focus();
	}
}

function abreFormularioCorreo(correo){
	document.getElementById("email").value = correo;
	abrirVentana("jsp/formEnvioCorreo.jsp","EnvioCorreo");
	document.getElementById("email").value = correo;
	//document.getElementById("envioCorreo").style.display = 'block';
}

function abrirVentana(url,titulo) {
	var especificaciones="top=200, left=200, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=no, width=600,height=600"
	window.open(url,titulo,especificaciones);
}

function rellenaCorreo(){
	document.getElementById("email").value=window.opener.document.formBusqueda.email.value;
}

function correctaDireccionCorreo(correo){
	var s = correo;
	var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return false;
	if (filter.test(s))return true;
}

function carga(){
	document.getElementById("accion").value = "";
}

function infoVivienda(id){
	document.getElementById("accion").value = "INFOVIVIENDA";
	document.getElementById("seleccionada").value = id;
	if (document.getElementById("pagina").value!=""){
		document.getElementById("urlPag").value = window.location.href;}
		document.formBusqueda.submit();
}

function infoPromotora(id){
	document.getElementById("accion").value = "INFOPROMOTORA";
	document.getElementById("seleccionada").value = id;
	if (document.getElementById("pagina").value!=""){
		document.getElementById("urlPag").value = window.location.href;}
		document.formBusqueda.submit();
}
function infoBanco(id){
	document.getElementById("accion").value = "INFOBANCO";
	document.getElementById("seleccionada").value = id;
	if (document.getElementById("pagina").value!=""){
		document.getElementById("urlPag").value = window.location.href;}
		document.formBusqueda.submit();
}
function volverTablaBusqueda(){
	document.getElementById("accion").value = "BUSCAR";

	if (document.getElementById("urlPag").value!=""){
		window.location = document.getElementById("urlPag").value;
		}
	else{
		document.forms[0].submit();
	}
}

function volverInicio(){
	document.getElementById("accion").value = "";
	document.formBusqueda.submit();
}



function oNumero(numero)
{

this.valor = numero || 0
this.dec = -1;

this.formato = numFormat;
this.ponValor = ponValor;

function ponValor(cad)
{
if (cad =='-' || cad=='+') return
if (cad.length ==0) return
if (cad.indexOf('.') >=0)
    this.valor = parseFloat(cad);
else
    this.valor = parseInt(cad);
}
function numFormat(dec, miles)
{
var num = this.valor, signo=3, expr;
var cad = ""+this.valor;
var ceros = "", pos, pdec, i;
for (i=0; i < dec; i++)
ceros += '0';
pos = cad.indexOf('.')
if (pos < 0)
    cad = cad+"."+ceros;
else
    {
    pdec = cad.length - pos -1;
    if (pdec <= dec)
        {
        for (i=0; i< (dec-pdec); i++)
            cad += '0';
        }
    else
        {
        num = num*Math.pow(10, dec);
        num = Math.round(num);
        num = num/Math.pow(10, dec);
        cad = new String(num);
        }
    }
pos = cad.indexOf('.')
if (pos < 0) pos = cad.lentgh
if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+')
       signo = 4;
if (miles && pos > signo)
    do{
        expr = /([+-]?\d)(\d{3}[\,\.]\d*)/
        cad.match(expr)
        cad=cad.replace(expr, RegExp.$1+'.'+RegExp.$2)
        }
while (cad.indexOf('.') > signo)
    if (dec<0) cad = cad.replace(/\,/,'')
        return cad;
}
}
// Validar la insercion de tipos de vivienda
function validaTipoVivienda(formulario,idNombre){ 
	if(trim(document.getElementById(idNombre).value) == ""){
		document.getElementById(idNombre).focus();
		alert("Debe introducir una descripcion del tipo");
	}else{	
		document.getElementById(formulario).submit();
	}
}
// Validar la insercion de zonas
function validaZona(formulario,idNombre){ 
	if(trim(document.getElementById(idNombre).value) == ""){
		document.getElementById(idNombre).focus();
		alert("Debe introducir una descripcion de la zona");
	}else{	
		document.getElementById(formulario).submit();
	}
}

function validaZonaMod(formulario){ 
	var numZonas = document.getElementById("numZonas").value
	var i = 0;
	var ok = true;
	while (i < numZonas){
		if(!esEntero(document.getElementById("precioMcuadrado"+i).value)){
			ok = false;
		}
		i++;
	}
	
	if (ok){
		
		document.getElementById(formulario).submit();
	}else{
		alert("Los valores de precio por metro cuadrado deben ser números enteros");
	}
	
}


// Validar la insercion de F. de adquisicion
function validaFAdquisicion(formulario,idNombre){ 
	if(trim(document.getElementById(idNombre).value) == ""){
		document.getElementById(idNombre).focus();
		alert("Debe introducir una descripcion de la F. de adquisicion");
	}else{	
		document.getElementById(formulario).submit();
	}
}
//Validacion admin
