var calculadoras = {
	depositos:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		calcular:function(form){
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = $.SPAN({Class:"title"},"Resultado:");
			var aux = null;
			var cantidad = comparadores.aux.formatNumberType2(form.importe.value);
			var plazo = parseInt(form.plazo.value);
			var tipo = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.tipo.value, "##0,00")));
			var intereses = form.recibir.options[form.recibir.selectedIndex].value;
			cantidad = cantidad.toString().replace(',','.');
			tipo = tipo.toString().replace(',','.');
			tipo = tipo / 100;

			interes_bruto = cantidad * ((1 + intereses * (tipo/12)) - 1);
			retencion = interes_bruto * 0.18;
			interes_neto = interes_bruto - retencion;
			interes_final = cantidad * ((1 + plazo * (tipo/12)) - 1);
			retencion_final = interes_final * 0.18;
			interes_neto_final = interes_final - retencion_final;

			aux =
				$.DL({Class:"clearFix"},
					$.DT({},"Intereses brutos:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(interes_bruto,2) + " €"),
					$.DT({},"Intereses netos:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(interes_neto,2) + " €"),
					$.DT({},"Retención:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(retencion,2) + " €")
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		}
	},
	prestamos:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		computeForm:function(form){
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = $.SPAN({Class:"title"},"Resultado:");
			var aux = null;
			var ok = true;
			var importeTotal = plazoTotal = total = intereses = plazo_meses = tipo_mensual = inc_tipo_mensual = y = meses = plazoHipo = xplazo = resto = interes = 0;
			var txtMeses = "";
			P = comparadores.aux.formatNumberType2(form.importe.value);
			T = parseInt(form.plazo.value) * 12;
			I = interes = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.tipo.value, "##0,00")));
			C = comparadores.aux.formatNumberType2(form.cuota.value);
			if (I >= 1) I /= 100;
			I /= 12;
			power = Math.pow(1 + I, T);
			importeTotal = calculadoras.prestamos.round_it((P * I * power) / (power - 1));
			if (document.getElementById("plazoAux").checked) {
				aux = $.DL({Class: "clearFix"},
				$.DT({}, "Cuota mensual:"),
				$.DD({}, calculadoras.auxiliares.formatCurrency(importeTotal, 2) + " €"),
				$.DT({}, "Total intereses:"),
				$.DD({}, calculadoras.auxiliares.formatCurrency(calculadoras.prestamos.round_it((importeTotal * T) - P), 2) + " €"))
			}else{
				/*plazoTotal = Math.round(Math.log(1-(P*I/(C*1200)))/(-1*Math.log(1+I/1200)));
				meses = (plazoTotal % 12)*/
				if (I != 0) {
					plazoHipo = -(Math.log(1-((P*((interes/100)/12))/C))/Math.log(1+((interes/100)/12))) /12;
					if (isNaN(plazoHipo)){
						formsValidations.setErrorBlock("#formPrestamos", "Con los datos seleccionados no se cancelara nunca el préstamo, por favor cambie algun dato.");
						ok = false;
					}else{
						formsValidations.setErrorBlock("#formPrestamos", "");
						plazoTotal = Math.floor((Math.floor( plazoHipo * 12) + 1) / 12);
						meses = Math.floor((plazoHipo - plazoTotal) * 12) + 1;
					}
				}else {
					xplazo = 0;
					xplazo = I / C;
					if (I % C != 0 ) xplazo = Math.floor( xplazo ) + 1;
					obj_plazo_anos.value = Math.floor( xplazo / 12 );
					resto = xplazo % 12;
					if (resto != 0 ) {meses = resto;}
				}
				if(meses > 0) txtMeses = (meses > 1) ? " y " + meses + " meses" : " y " + meses + " mes";
				aux = $.DL({Class: "clearFix"},
				$.DT({}, "Plazo:"),
				$.DD({}, plazoTotal + " Años" + txtMeses),
				$.DT({}, "Total intereses:"),
				$.DD({}, calculadoras.auxiliares.formatCurrency(calculadoras.prestamos.round_it((importeTotal * T) - P), 2) + " €"))
			}
			result.empty();
			if(ok){
				formsValidations.setErrorBlock("#formPrestamos", "");
			   result.append(txtResult);
			   result.append(aux);
			   result.show("slow");
		   }

		},
		round_it:function(amount){
		  cents = amount * 100;
		  cents = Math.round(cents);
		  strCents = "" + cents;
		  len = strCents.length;
		  return strCents.substring(0, len - 2) + "." + strCents.substring(len - 2, len);
		}
	},
	importePrestamo:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		calculacantidad:function(form) {
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult =  aux = null;

			cuota = comparadores.aux.formatNumberType2(form.cuota.value);
			interes = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.interes.value, "##0,00")));

			plazo_meses = parseInt(form.plazo.value) * 12;
			tipo_mensual = interes;

			// pasar tipo mensual desde anual
			tipo_mensual = tipo_mensual / 1200.0

			y  = 1.0 + tipo_mensual
			imp = cuota * (Math.pow(y,plazo_meses) - 1.0 ) / ( tipo_mensual * Math.pow(y,plazo_meses))

			final = Math.round(imp * 100.00) / 100.00;
			final = calculadoras.importePrestamo.formato(Math.round(final),0);
			final = calculadoras.importePrestamo.addCommas(final);
			txtResult = $.SPAN({Class:"title"},"Resultado:");
			aux =
				$.DL({Class:"clearFix"},
					$.DT({},"Importe a financiar:"),
					$.DD({},final + " €")
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		},
		addCommas:function(sValue){
			var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
			while(sRegExp.test(sValue)) sValue = sValue.replace(sRegExp, '$1.$2');
			return sValue;
		},
		formato:function(num,dec){
			num = num + "";
			if(dec==1) num = num + ".00";
			else{
				var subcadena = num.substr(num.length-2,2);
				if(subcadena.indexOf(".")>=0){
					num = num + "0";
				}
			}
			return num;
		}
	},
	deduccion:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		calcularDeduccion:function(form) {
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = aux = null;
			var aportizacion = comparadores.aux.formatNumberType2(form.importe.value);
			var deduccion = 0;
			var base_deduccion = 0;
			var deduccion1 = 0;
			var deduccion2 = 0;

			if(aportizacion >  9015.18) aportizacion =  9015.18; // Aportación máxima deducible

			base_deduccion = aportizacion;
			if(form.tipo[1].checked) { // Sin financiación ajena
				deduccion = aportizacion * 15;
				deduccion = deduccion / 100;
			} else { // Con financiación ajena
				// Durante los dos primeros años d = 25%* c (hasta un limite de 4.507,59) + 20%* (c � 4.507,59)
				// El resto del tiempo d = 20%* c (hasta un limit� de 4.507,59) + 15%* (c � 4.507,59)
				var fecha_hoy = new Date();
				var annio_actual = fecha_hoy.getFullYear();
				var annio = form.anyo.value;
				var diferencia_annios = annio_actual - annio;
				var deduccion1_aux1 = 0;
				var deduccion1_aux2 = 0;
				var deduccion2_aux1 = 0;
				var deduccion2_aux2 = 0;
				var contador = 1;
				while((diferencia_annios >= 2) && (contador <= 2)) { // Los dos primeros a�os => d = 25%* c (hasta un limit� de 4.507,59) + 20%* (c � 4.507,59)
					deduccion1_aux1 = aportizacion*25;
					deduccion1_aux1 = deduccion1_aux1/100;
					if(deduccion1_aux1 > 4507.59) deduccion1_aux1 = 4507.59;
					deduccion1_aux2 = aportizacion-4507.59;
					deduccion1_aux2 = deduccion1_aux2*20;
					deduccion1_aux2 = deduccion1_aux2/100;

					deduccion1 = deduccion1 + deduccion1_aux1 + deduccion1_aux2;
					contador++;
					diferencia_annios--;
				}

				while(diferencia_annios >= 0) { // El resto de a�os => d = 20%* c (hasta un limit� de 4.507,59) + 15%* (c � 4.507,59)
					deduccion2_aux1 = aportizacion*20;
					deduccion2_aux1 = deduccion2_aux1/100;
					if(deduccion2_aux1 > 4507.59) deduccion2_aux1 = 4507.59;
					deduccion2_aux2 = aportizacion-4507.59;
					deduccion2_aux2 = deduccion2_aux2*15;
					deduccion2_aux2 = deduccion2_aux2/100;

					deduccion2 = deduccion2 + deduccion2_aux1 + deduccion2_aux2;
					diferencia_annios--;
				}
				deduccion = deduccion1 + deduccion2;
			}

			txtResult = $.SPAN({Class:"title"},"Resultado:");
			aux =
				$.TABLE({summary:"", cellSpacing:"0", width:"349"},
					$.COLGROUP({},
						$.COL({width:"190"}),
						$.COL({width:"159"})
					),
					$.THEAD({},
						$.TR({},
							$.TH({},"Deducción fiscal"),
							$.TH({},"Declaración individual")
						)
					),
					$.TBODY({},
						$.TR({},
							$.TD({},"Ahorro fiscal:"),
							$.TD({Class:"number"},calculadoras.auxiliares.formatCurrency(deduccion,2) + " €")
						),
						$.TR({},
							$.TD({},"Base de deducción:"),
							$.TD({Class:"number"}, calculadoras.auxiliares.formatCurrency(base_deduccion,2) + " €")
						)
					)
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		}
	},
	gastos:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		calculate: function(form){
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = $.SPAN({Class:"title"},"Resultado:");
			var aux = null;
			var importe = comparadores.aux.formatNumberType2(form.importe.value);
			var precio = comparadores.aux.formatNumberType2(form.precio.value);
			var impuestoActo = comision = tasacion = iva = notaria = gestion = registro = total = 0;
			if (precio > "95000000") {
				notaria = 150000;
				registro = 84000;
				gestion = 50000;
				iva = 8000;
			}
			if (precio > "90000000" && precio <= "95000000"){
					notaria = 145000;
					registro = 82000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "85000000" && precio <= "90000000"){
					notaria = 140000;
					registro = 80000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "80000000" && precio <= "85000000"){
					notaria = 135000;
					registro = 78000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "75000000" && precio <= "80000000"){
					notaria = 130000;
					registro = 76000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "70000000" && precio <= "75000000"){
					notaria = 125000;
					registro = 74000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "65000000" && precio <= "70000000"){
					notaria = 120000;
					registro = 72000;
					gestion = 50000;
					iva = 8000;
			}
			if (precio > "60000000" && precio <= "65000000"){
					notaria = 115000;
					registro = 70000;
					gestion = 45000;
					iva = 7200;
			}
			if (precio > "55000000" && precio <= "60000000"){
					notaria = 110000;
					registro = 68000;
					gestion = 45000;
					iva = 7200;
			}
			if (precio > "50000000" && precio <= "55000000"){
					notaria = 105000;
					registro = 66000;
					gestion = 45000;
					iva = 7200;
			}
			if (precio > "45000000" && precio <= "50000000"){
					notaria = 100000;
					registro = 64000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "40000000" && precio <= "45000000"){
					notaria = 95000;
					registro = 62000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "35000000" && precio <= "40000000"){
					notaria = 92500;
					registro = 60000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "30000000" && precio <= "35000000"){
					notaria = 90000;
					registro = 58000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "29000000" && precio <= "30000000"){
					notaria = 86000;
					registro = 54000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "28000000" && precio <= "29000000"){
					notaria = 85000;
					registro = 52500;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "27000000" && precio <= "28000000"){
					notaria = 84000;
					registro = 51000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "26000000" && precio <= "27000000"){
					notaria = 83000;
					registro = 49500;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "25000000" && precio <= "26000000"){
					notaria = 82000;
					registro = 48000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "24000000" && precio <= "25000000"){
					notaria = 81000;
					registro = 46500;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "23000000" && precio <= "24000000"){
					notaria = 80000;
					registro = 45000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "22000000" && precio <= "23000000"){
					notaria = 79000;
					registro = 43500;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "21000000" && precio <= "22000000"){
					notaria = 78000;
					registro = 42000;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "20000000" && precio <= "21000000"){
					notaria = 77000;
					registro = 40500;
					gestion = 40000;
					iva = 6400;
			}
			if (precio > "19000000" && precio <= "20000000"){
					notaria = 76000;
					registro = 39000;
					gestion = 35000;
					iva = 5600;
			}
			if (precio > "18000000" && precio <= "19000000"){
					notaria = 75000;
					registro = 37500;
					gestion = 35000;
					iva = 5600;
			}
			if (precio > "17000000" && precio <= "18000000"){
					notaria = 74000;
					registro = 36000;
					gestion = 35000;
					iva = 5600;
			}
			if (precio > "16000000" && precio <= "17000000"){
					notaria = 73000;
					registro = 34500;
					gestion = 35000;
					iva = 5600;
			}
			if (precio > "15000000" && precio <= "16000000"){
					notaria = 72000;
					registro = 33000;
					gestion = 35000;
					iva = 5600;
			}
			if (precio > "14000000" && precio <= "15000000"){
					notaria = 71000;
					registro = 31500;
					gestion = 30000;
					iva = 4800;
			}
			if (precio > "13000000" && precio <= "14000000"){
					notaria = 70000;
					registro = 30000;
					gestion = 30000;
					iva = 4800;
			}
			if (precio > "12000000" && precio <= "13000000"){
					notaria = 69000;
					registro = 28500;
					gestion = 30000;
					iva = 4800;
			}
			if (precio > "11000000" && precio <= "12000000"){
					notaria = 68000;
					registro = 27000;
					gestion = 30000;
					iva = 4800;
			}
			if (precio > "10000000" && precio <= "11000000"){
					notaria = 67000;
					registro = 25500;
					gestion = 30000;
					iva = 4800;
			}
			if (precio > "9000000" && precio <= "10000000"){
					notaria = 66000;
					registro = 24000;
					gestion = 22500;
					iva = 3600;
			}
			if (precio > "8000000" && precio <= "9000000"){
					notaria = 64500;
					registro = 25500;
					gestion = 22500;
					iva = 3600;
			}
			if (precio > "7000000" && precio <= "8000000"){
					notaria = 63000;
					registro = 21000;
					gestion = 22500;
					iva = 3600;
			}
			if (precio > "6000000" && precio <= "7000000"){
					notaria = 61500;
					registro = 19500;
					gestion = 22500;
					iva = 3600;
			}
			if (precio > "5000000" && precio <= "6000000"){
					notaria = 60000;
					registro = 18000;
					gestion = 22500;
					iva = 3600;
			}
			if (precio > "4000000" && precio <= "5000000"){
					notaria = 56000;
					registro = 16500;
					gestion = 17500;
					iva = 2800;
			}
			if (precio > "3000000" && precio <= "4000000"){
					notaria = 48000;
					registro = 15000;
					gestion = 17500;
					iva = 2800;
			}
			if (precio > "2000000" && precio <= "3000000"){
					notaria = 43000;
					registro = 13500;
					gestion = 17500;
					iva = 2800;
			}
			if (precio > "1000000" && precio <= "2000000"){
					notaria = 38500;
					registro = 12000;
					gestion = 17500;
					iva = 2800;
			}
			if (precio <= "1000000"){
					notaria = 34000;
					registro = 10500;
					gestion = 17500;
					iva = 2800;
			}
			impuestoActo = precio * 0.005;
			comision = importe * 0.01;
			tasacion = 250;

			total = impuestoActo + comision + tasacion + (notaria / 166.386) + (gestion / 166.386) + (registro / 166.386);
			aux =
				$.DL({Class:"clearFix"},
					$.DT({},"Impuesto de Actos jurídicos documentados:"),
					$.DD({Class:"impuestoDd"},calculadoras.auxiliares.formatCurrency(impuestoActo,2) + " €"),
					$.DT({},"Comisión de apertura:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(comision,2) + " €"),
					$.DT({},"Tasación:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(tasacion,2) + " €"),
					$.DT({},"Notaría:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(notaria / 166.386,2) + " €"),
					$.DT({Class:"gestionDt"},"Gestión:"),
					$.DD({Class:"gestionDd"},calculadoras.auxiliares.formatCurrency(gestion / 166.386,2) + " €"),
					$.DT({Class:"registroDt"},"Registro:"),
					$.DD({Class:"registroDd"},calculadoras.auxiliares.formatCurrency(registro / 166.386,2) + " €"),
					$.DT({Class:"gastosDt"},"Gastos totales de hipoteca:"),
					$.DD({Class:"gastosDd"},calculadoras.auxiliares.formatCurrency(total,2) + " €")
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		}
	},
	hipoteca:{
		cero:"0,00",
		calculos:function(form) {
			var plazo_meses = tipo_mensual = cuota_actual = inc_tipo_mensual = cuotaFinal = plazoFinal = interesFinal = importeFinal = precioFinal = ahorrosFinal = gastosFinal = 0;
			var cuota = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.aux1.value, "##0,00")));
			var plazo = parseInt(form.aux2.value);
			var interes = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.aux3.value, "##0,00")));
			var importe = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.aux4.value, "##0,00")));
			var precio = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.aux5.value, "##0,00")));
			var ahorros = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.ahorros.value, "##0,00")));
			var gastos = parseFloat(calculadoras.auxiliares.formatNumber.replaceComma(calculadoras.auxiliares.formatNumber.format(form.gastos.value, "##0,00")));

			// calculo de cuota
			if(form.tipo[0].checked){
				cuotaFinal = importe*(interes/1200)/(1-Math.pow(1+interes/1200,-plazo*12.0));
				form.aux1.value = cuotaFinal.toFixed(2);
			//calculo plazo
			}else if(form.tipo[1].checked){
				var anios = resto = 0;
				plazoFinal = Math.round(Math.log(1-(importe*interes/(cuota*1200)))/(-1*Math.log(1+interes/1200)));
				resto = plazoFinal % 12
				form.aux2.value=Math.round(plazoFinal/12)
			}
			// calculo de interes
			else if(form.tipo[2].checked){
				plazo_meses = plazo * 12.0
				tipo_mensual = 20.0 / 1200.0
				inc_tipo_mensual = 10.0 / 1200.0
				y  = 1.0 + tipo_mensual
				cuota_actual = Math.round(importe * tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 ))
				var contador = 0;
				var cuota_redondeada=Math.round(cuota);
				while ( cuota_actual != cuota_redondeada && contador<40){
					y  = 1.0 + tipo_mensual
					cuota_actual = Math.round(importe * tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 ))

					if (cuota_actual==cuota_redondeada || contador==40){
						inc_tipo_mensual=0
					}
					if (cuota_actual > cuota){ // se aplica un interes muy alto, hay que bajarlo
						tipo_mensual= tipo_mensual - inc_tipo_mensual
					}
					else {// se aplica un interes muy bajo, hay que subirlo
						tipo_mensual= tipo_mensual + inc_tipo_mensual
					}
					inc_tipo_mensual = inc_tipo_mensual / 2.0
					contador=contador+1
				}
				if (contador==40) {//LO QUITAMOS PARA QUE LO CALCULE SIEMPRE Y NO LO LIMITE AL 20%
					return
				}
				tipo_mensual = tipo_mensual * 1200.0
				form.aux3.value = Math.round(tipo_mensual * 100.0) / 100.0
			}
			// calculo de importe
			else if(form.tipo[3].checked){
				//importeFinal = cuota*(1-Math.pow(1+interes/1200,-plazo*12))/(interes/1200);
				importeFinal = precio + (precio * gastos / 100) - ahorros;
				form.aux4.value = importeFinal.toFixed(2);
			}
			// calculo el precio
			else{
				precioFinal = importe - (precio * gastos / 100) + ahorros;
				form.aux5.value = precioFinal.toFixed(2);
			}
		},
		blanco:function(parametro){
			parametro.value=new NumberFormat(parametro.value).Numero()
			if (parametro.value=="0"){parametro.value=""}
		},
		redondea:function(parametro){
			if (isNaN(parametro.value)){alert("El dato debe ser un n�mero.");parametro.value="0"}
			else{parametro.value=Math.round(parametro.value)}
		},

		desformatea:function(parametro){
			parametro.value=new NumberFormat(parametro.value).Numero()
			if (parametro.value=="0"){parametro.value=""}
		}
	},
	gastosCambioHipoteca:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		calculate:function(form){
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = aux = null;
			var capital = comparadores.aux.formatNumberType2(form.capital.value);
			var comision = comparadores.aux.formatNumberType2(form.comision.value);
			var notario = 0;
			var propiedad = 0;
			var subrogacion = 0;
			var gestor = 5000 / 166.386;
			var total = 0;
			var auxPropiedad = 0;
			var aux = 0;
			var resto = capital / 1000;
			// si indico porcentaje subrogación lo aplico
			if (!form.nose.checked) {
				subrogacion = capital * comision / 100;
			}
			else {
				// en caso contrario aplico 1% si es antes de 2008
				if(form.contrato[0].checked){
					subrogacion = capital / 100;
				}// si es posterior a enero 2008 aplico 0.5%
				else{
					subrogacion = capital * 0.5 / 100;
				}
			}
			if (capital > "50000000"){notario = 51500;propiedad = 22000;
			for (i=50000000;i<capital;i+=1000000){notario = parseInt(notario) + 250;propiedad = parseInt(propiedad) + 250;}}
			if (capital > "45000000" && capital <= "50000000"){notario = 51500;propiedad = 22000;}
			if (capital > "40000000" && capital <= "45000000"){notario = 50500;propiedad = 21000;}
			if (capital > "39000000" && capital <= "40000000"){notario = 50000;propiedad = 20000;}
			if (capital > "38000000" && capital <= "39000000"){notario = 49750;propiedad = 19500;}
			if (capital > "37000000" && capital <= "38000000"){notario = 49500;propiedad = 19500;}
			if (capital > "36000000" && capital <= "37000000"){notario = 49250;propiedad = 19500;}
			if (capital > "35000000" && capital <= "36000000"){notario = 49000;propiedad = 19500;}
			if (capital > "34000000" && capital <= "35000000"){notario = 48750;propiedad = 19000;}
			if (capital > "33000000" && capital <= "34000000"){notario = 48500;propiedad = 19000;}
			if (capital > "32000000" && capital <= "33000000"){notario = 48250;propiedad = 19000;}
			if (capital > "31000000" && capital <= "32000000"){notario = 48000;propiedad = 19000;}
			if (capital > "30000000" && capital <= "31000000"){notario = 47750;propiedad = 19000;}
			if (capital > "29000000" && capital <= "30000000"){notario = 47500;propiedad = 18400;}
			if (capital > "28000000" && capital <= "29000000"){notario = 47250;propiedad = 18400;}
			if (capital > "27000000" && capital <= "28000000"){notario = 47000;propiedad = 18400;}
			if (capital > "26000000" && capital <= "27000000"){notario = 46500;propiedad = 18400;}
			if (capital > "25000000" && capital <= "26000000"){notario = 46000;propiedad = 18000;}
			if (capital > "24000000" && capital <= "25000000"){notario = 45500;propiedad = 17800;}
			if (capital > "23000000" && capital <= "24000000"){notario = 45000;propiedad = 17600;}
			if (capital > "22000000" && capital <= "23000000"){notario = 44750;propiedad = 17400;}
			if (capital > "21000000" && capital <= "22000000"){notario = 44500;propiedad = 17200;}
			if (capital > "20000000" && capital <= "21000000"){notario = 44250;propiedad = 17000;}
			if (capital > "19000000" && capital <= "20000000"){notario = 44000;propiedad = 16600;}
			if (capital > "18000000" && capital <= "19000000"){notario = 43500;propiedad = 16400;}
			if (capital > "17000000" && capital <= "18000000"){notario = 43000;propiedad = 16200;}
			if (capital > "16000000" && capital <= "17000000"){notario = 42500;propiedad = 16000;}
			if (capital > "15000000" && capital <= "16000000"){notario = 42000;propiedad = 15800;}
			if (capital > "14000000" && capital <= "15000000"){notario = 41500;propiedad = 15500;}
			if (capital > "13000000" && capital <= "14000000"){notario = 41000;propiedad = 15200;}
			if (capital > "12000000" && capital <= "13000000"){notario = 40500;propiedad = 14900;}
			if (capital > "11000000" && capital <= "12000000"){notario = 40000;propiedad = 14600;}
			if (capital > "10000000" && capital <= "11000000"){notario = 39500;propiedad = 14300;}
			if (capital > "9000000" && capital <= "10000000"){notario = 39000;propiedad = 14000;}
			if (capital > "8000000" && capital <= "9000000"){notario = 38000;propiedad = 13500;}
			if (capital > "7000000" && capital <= "8000000"){notario = 37500;propiedad = 13000;}
			if (capital > "6000000" && capital <= "7000000"){notario = 37000;propiedad = 12500;}
			if (capital > "5000000" && capital <= "6000000"){notario = 36000;propiedad = 12000;}
			if (capital > "4000000" && capital <= "5000000"){notario = 35000;propiedad = 11500;}
			if (capital > "3000000" && capital <= "4000000"){notario = 33000;propiedad = 10500;}
			if (capital > "2000000" && capital <= "3000000"){notario = 30000;propiedad = 9500;}
			if (capital > "1000000" && capital <= "2000000"){notario = 27000;propiedad = 8500;}
			if (capital <= "1000000"){notario = 25000;propiedad = 7500;}

			total = subrogacion + (notario/166.386) + (propiedad/166.386) + gestor;
			aux =
				$.DL({Class:"clearFix"},
					$.DT({},"Comisión por subrogación:"),
					$.DD({}, calculadoras.auxiliares.formatCurrency(subrogacion,2) + " €"),
					$.DT({},"Costes del Notario:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(notario/166.386,2) + " €"),
					$.DT({},"Costes del Registro de Propiedad:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(propiedad/166.386,2) + " €"),
					$.DT({Class:"costesDt"},"Costes del Gestor:"),
					$.DD({Class:"costesDd"},calculadoras.auxiliares.formatCurrency(gestor,2) + " €"),
					$.DT({Class:"gastosDt"},"Gastos Totales:"),
					$.DD({Class:"gastosDd"},calculadoras.auxiliares.formatCurrency(total,2) + " €")
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		}
	},
	conversor:{
		update:function(obj, value){
			$(obj).attr("value", value);
		},
		result:function(form){
			var result = $("#"+form.id).find(".result").eq(0);
			var txtResult = $.SPAN({Class:"title"},"Resultado:");
			var aux = null;
			var cantidad = comparadores.aux.formatNumberType2(form.cantidad.value);
			var divisaSelected = form.divisa[form.divisa.selectedIndex].value;
			var conversionSelected = form.convertir[form.convertir.selectedIndex].value;
			var conversionAux = 0;
			conversionAux = divisaSelected.split("|")[1] * cantidad;
			cantidadDivisas = calculadoras.auxiliares.formatCurrency(cantidad,2) + " " + conversionSelected.split("|")[0];
			conversion = parseFloat((conversionAux / conversionSelected.split("|")[1]).toFixed(2));
			aux =
				$.DL({Class:"clearFix"},
					$.DT({},"Cantidad de divisas:"),
					$.DD({},cantidadDivisas),
					$.DT({},"Conversión:"),
					$.DD({},calculadoras.auxiliares.formatCurrency(conversion,2) + " " + divisaSelected.split("|")[0])
				)
		   result.empty();
		   result.append(txtResult);
		   result.append(aux);
		   result.show("slow");
		}
	},
	auxiliares:{
		formatCurrency:function(num,precision){
		  num = num.toString().replace(/\ |\,/g,'');
		  if(isNaN(num))
		  num = "0";
		  cents = Math.floor((num*100+0.5)%100);
		  num = Math.floor((num*100+0.5)/100).toString();
		  if(cents < 10)
			cents = "0" + cents;
		  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
			num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
			if (precision > 0){
			  return (' ' + num + ',' + cents);
			}else if (precision == 0){
			  return (' ' + num);
			}
		},
		formatNumber:{
			separator:".",
			decpoint:",",
			replaceComma:function(c){
				var auxX = c.replace(",",".");
				return auxX;
			},
			format:function(number, format){
				number=number.replace(/,/g,".")
				var useSeparator = format.indexOf(calculadoras.auxiliares.formatNumber.separator) != -1; // use separators in number
				format = calculadoras.auxiliares.formatNumber.strip(format, calculadoras.auxiliares.formatNumber.separator); // remove key characters
				number = "" + number; // convert number input to string
				number=calculadoras.auxiliares.formatNumber.poner_coma(number)
			// split number and format into LHS and RHS using decpoint as divider
				var dec = number.indexOf(calculadoras.auxiliares.formatNumber.decpoint) != -1;
				var nleftEnd = (dec) ? number.substring(0, number.indexOf(",")) : number;
				var nrightEnd = (dec) ? number.substring(number.indexOf(",") + 1) : "";

				dec = format.indexOf(calculadoras.auxiliares.formatNumber.decpoint) != -1;
				var sleftEnd = (dec) ? format.substring(0, format.indexOf(",")) : format;
				var srightEnd = (dec) ? format.substring(format.indexOf(",") + 1) : "";

			// adjust decimal places by cropping or adding zeros to LHS of number
				if (srightEnd.length < nrightEnd.length) {
					var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
				    nrightEnd = nrightEnd.substring(0, srightEnd.length);
			    	if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); // round up

				// patch provided by Patti Marcoux 1999/08/06
				    while (srightEnd.length > nrightEnd.length) {
						nrightEnd = "0" + nrightEnd;
				    }

			    	if (srightEnd.length < nrightEnd.length) {
						nrightEnd = nrightEnd.substring(1);
				        nleftEnd = (nleftEnd - 0) + 1;
				    }
				}else {
				    for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
						if (srightEnd.charAt(i) == "0") nrightEnd += "0"; // append zero to RHS of number
			        	else break;
				    }
				}

				// adjust leading zeros
				sleftEnd = calculadoras.auxiliares.formatNumber.strip(sleftEnd, "#"); // remove hashes from LHS of format
				nleftEnd = calculadoras.auxiliares.formatNumber.strip(nleftEnd, calculadoras.auxiliares.formatNumber.separator); // remove key characters

				while (sleftEnd.length > nleftEnd.length) {
					nleftEnd = "0" + nleftEnd; // prepend zero to LHS of number
				}

			// patch provided by Drew Degentesh 2001/02/07
				var isNegative = (nleftEnd.length > 0 && nleftEnd.charAt(0) == "-");
				if (isNegative) nleftEnd = nleftEnd.substring (1);

				if (useSeparator) nleftEnd = calculadoras.auxiliares.formatNumber.separate(nleftEnd, calculadoras.auxiliares.formatNumber.separator); // add separator
				var output = nleftEnd + ((nrightEnd != "") ? "," + nrightEnd : ""); // combine parts
				return (isNegative ? "-" : "") + output;
			},
			strip:function(input, chars){// strip all characters in 'chars' from input
				var output = ""; // initialise output string
				for (var i=0; i < input.length; i++)
					if (chars.indexOf(input.charAt(i)) == -1) output += input.charAt(i);
				return output;
			},
			poner_coma:function(valor) {
				var dato=new String(valor)
				for (i=0;i<=dato.length;i++) {
					if (dato.charAt(i)==".") {dato=dato.substr(0,i)+","+dato.substr(i+1)}
					//CUANDO QUERAMOS QUITAR DECIMALES
					//if (dato.charAt(i)==".") {dato=dato.substr(0,i)+dato.substr(i+1)}
				}
				return dato
			},
			separate:function(input, separator) { // format input using 'separator' to mark 000's
				input = "" + input;
				var output = ""; // initialise output string
				for (var i=0; i < input.length; i++) {
					if (i != 0 && (input.length - i) % 3 == 0) output += separator;
					output += input.charAt(i);
				}
				return output;
			}
		}
	}
}
