var W3CDOM = (document.createElement && document.getElementsByTagName);



document.getElementsByClassName = function(className, container){
   var data = tags = [];
   var obj = document.getElementById("wrapper");
   var node = aux = null;
	var strClassName = className.replace(/\-/g, "\\-");
    var pattern = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	if(container) node = (typeof(container) == "object") ? container : document.getElementById(container);
	else node = (obj) ? obj : document;
	aux = node.getElementsByTagName("*");
	tags = (document.all) ? node.all : aux;
   for(var i=0;i<tags.length;i++) { if(pattern.test(tags[i].className)) data.push(tags[i]);}
   return data;
}


var e = {
	addEvent : function(obj, evType, fn, useCapture){
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, useCapture);
			return true;
		}else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		}else {
			return false;
		}
	}
}

String.prototype.trim = function() { return this.replace(/^[\s]+|[\s]+$/g,'') }
String.prototype.numOfCharacters = function(character){
	var rep = 0;
	for(var i=0; i<=this.length-1;i++) if(this.charAt(i) == character) rep++;
	return rep;
}


var behaviours = {
	formatNumber:{
		formatAmerican:function(valueNumber){
			var num = new NumberFormat();
			num.setInputDecimal(',');
			num.setNumber(valueNumber);
			num.setPlaces('2', false);
			num.setCurrencyValue('$');
			num.setCurrency(false);
			num.setCurrencyPosition(num.LEFT_OUTSIDE);
			num.setNegativeFormat(num.LEFT_DASH);
			num.setNegativeRed(false);
			num.setSeparators(true, '.', ',');
			return num.toFormatted();
		},
		formatEuropean:function(valueNumber){
			var num = new NumberFormat();
			num.setInputDecimal(',');
			num.setNumber(valueNumber);
			num.setPlaces('0', false);
			num.setCurrencyValue('$');
			num.setCurrency(false);
			num.setCurrencyPosition(num.LEFT_OUTSIDE);
			num.setNegativeFormat(num.LEFT_DASH);
			num.setNegativeRed(false);
			num.setSeparators(false, ',', ',');
			return num.toFormatted();
		}
	},
	deduccionCompra: {
		init: function(){

			var objs = document.getElementById("formDeduccioncompra").getElementsByTagName("input");

			$(objs).get(0).onblur = function(){$(objs).get(0).value=behaviours.formatNumber.formatAmerican($(objs).get(0).value)}

			for(var i = 0; i < objs.length; i++){
				if(objs[i].type == "radio") objs[i].onchange = behaviours.deduccionCompra.action;
			}


		},
		action:function(){
			var form = document.forms.formDeduccioncompra;
			form.anyo.disabled = (form.tipo[1].checked) ? "disabled" : "";
		}
	},
	gastosCambioHipoteca:{
		init:function(){
			var comision = document.getElementById("comision");
			var nsnc = document.getElementById("nose");
			nsnc.onclick = function(){
				if(this.checked){
					comision.disabled = "disabled";
					$("#sliderthumb2").css("visibility","hidden");
				}else{
					comision.disabled = "";
					$("#sliderthumb2").css("visibility","visible");
				}

			}

			var form = document.forms.formCambioHipoteca;
			var obj = document.getElementById("formCambioHipoteca");
			var inputs = obj.getElementsByTagName("input");
			$(obj).find("input[type='text']").each(function(i) {
				$(this).get(0).onblur = function(){$(this).get(0).value=behaviours.formatNumber.formatAmerican($(this).get(0).value)}
			})

		}
	},
	gastosHipoteca:{
		init:function(){
			var form = document.forms.formGastosHipoteca;
			var obj = document.getElementById("formGastosHipoteca");
			var inputs = obj.getElementsByTagName("input");
			$(obj).find("input[type='text']").each(function(i) {
				$(this).get(0).onblur = function(){$(this).get(0).value=behaviours.formatNumber.formatAmerican($(this).get(0).value)}
			})
		}
	},
	conversorDivisas:{
		init:function(){
			var form = document.forms.formConversorDivisas;
			var obj = document.getElementById("formConversorDivisas");
			var inputs = obj.getElementsByTagName("input");
			$(obj).find("input[type='text']").each(function(i) {
				$(this).get(0).onblur = function(){$(this).get(0).value=behaviours.formatNumber.formatAmerican($(this).get(0).value)}
			})
		}
	},
	depositos:{
		init:function(){
			var form = document.forms.formDepositos;
			var obj = document.getElementById("formDepositos");
			var inputs = obj.getElementsByTagName("input");
			$(inputs).each(function(i){
				if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
			})

		}
	},
	prestamos:{
		init:function(){
			var form = document.forms.formPrestamos;
			var obj = document.getElementById("formPrestamos");
			var inputs = obj.getElementsByTagName("input");
			$(inputs).each(function(i){
				if((i==0)||(i==5)){
					$(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
				}
			})
			$("#plazoAux").get(0).onclick = behaviours.prestamos.action;
			$("#cuotaAux").get(0).onclick = behaviours.prestamos.action;
			$("#sliderthumb4").css("visibility","hidden");
		},
		action:function(obj){
			if(this.id == "plazoAux"){
				$("#sliderthumb3").css("visibility","visible");
				$("#sliderthumb4").css("visibility","hidden");
				$("#plazo").removeAttr("disabled")
				$("#cuota").attr("disabled","disabled");
			}else{
				$("#sliderthumb3").css("visibility","hidden");
				$("#sliderthumb4").css("visibility","visible");
				$("#cuota").removeAttr("disabled")
				$("#plazo").attr("disabled","disabled");
			}
		}
	},
	importePrestamo:{
		init:function(){
			var form = document.forms.formImportePrestamo;
			var obj = document.getElementById("formImportePrestamo");
			var inputs = obj.getElementsByTagName("input");
			$(inputs).each(function(i){
				if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
			})
		}
	},
	comparadorDepositos:function(){
		var form = document.forms.formComparadorDepositos;
		var obj = document.getElementById("formComparadorDepositos");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	comparadorPrestamos:function(){
		var form = document.forms.formComparadorPrestamos;
		var obj = document.getElementById("formComparadorPrestamos");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	comparadorHipotecas:function(){
		var form = document.forms.formComparadorHipotecas3;
		var obj = document.getElementById("formComparadorHipotecas3");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0 || i == 1) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	modHipotecas:function(){
		var form = document.forms.modHipotecas;
		var obj = document.getElementById("modHipotecas");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	modPrestamos:function(){
		var form = document.forms.modPrestamos;
		var obj = document.getElementById("modPrestamos");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	modDepositos:function(){
		var form = document.forms.modDepositos;
		var obj = document.getElementById("modDepositos");
		var inputs = obj.getElementsByTagName("input");
		$(inputs).each(function(i){
			if(i==0) $(this).blur(function(){$(this).val(behaviours.formatNumber.formatAmerican($(this).val()))})
		})
	},
	faq:{
		init:function(){
			var abre = cierra = null;
			for(i=0; i<document.getElementsByClassName("faq").length;i++){
				abre=document.getElementsByClassName("faq")[i].getElementsByTagName("a")[0];
				abre.onclick=behaviours.faq.open;
				cierra=document.getElementsByClassName("close")[i].getElementsByTagName("a")[0];
				cierra.onclick=behaviours.faq.close;
			}
		},
		open:function(){
			var aux = this.parentNode.getElementsByTagName("ul")[0]
			aux.style.display="block";
			return false;
		},
		close:function(){
			this.parentNode.parentNode.style.display="none";
			return false;
		}
	}
}

var curves = {
	roundModules:function(){
		if(document.getElementsByClassName("roundModule", "content")){
			var objs = document.getElementsByClassName("roundModule", "content");
			var tl = tr = null;
			for (var i = 0; i < objs.length; i++) {
				tl = curves.createElementsCurves("cTL_mp");
				tr = curves.createElementsCurves("cTR_mp");
				objs[i].appendChild(tl);
				objs[i].appendChild(tr);
				var tl = tr = null;
			}
		}
		if(document.getElementsByClassName("interior", "content")){
			var objs1 = document.getElementsByClassName("interior", "content");
			var tri = bli = bri = null;
			for (var y= 0; y < objs1.length; y++) {
				tri = curves.createElementsCurves("cTRi");
				bli = curves.createElementsCurves("cBLi");
				bri = curves.createElementsCurves("cBRi");
				objs1[y].appendChild(tri);
				objs1[y].appendChild(bli);
				objs1[y].appendChild(bri);
				tri = bli = bri = null;
			}
		}
		if(document.getElementsByClassName("modBlue", "content")){
			var objs2 = document.getElementsByClassName("modBlue", "content");
			var tlb = trb = blb = brb = null;
			for (var z= 0; z < objs2.length; z++) {
				tlb = curves.createElementsCurves("cTLb");
				trb = curves.createElementsCurves("cTRb");
				blb = curves.createElementsCurves("cBLb");
				brb = curves.createElementsCurves("cBRb");
				objs2[z].appendChild(tlb);
				objs2[z].appendChild(trb);
				objs2[z].appendChild(blb);
				objs2[z].appendChild(brb);
				tlb = trb = blb = brb = null;
			}
		}
		if(document.getElementsByClassName("titularLeft", "content")){
			var objs3 = document.getElementsByClassName("titularLeft", "content");
			var tlt = trt = null;
			for (var f= 0; f < objs3.length; f++) {
				tlt = curves.createElementsCurves("cTLt");
				trt = curves.createElementsCurves("cTRt");
				objs3[f].appendChild(tlt);
				objs3[f].appendChild(trt);
				tlt = trt = null;
			}
		}
		if(document.getElementsByClassName("titularRight", "content")){
			var objs4 = document.getElementsByClassName("titularRight", "content");
			var trr = null;
			for (var d= 0; d < objs4.length; d++) {
				trr = curves.createElementsCurves("cTRr");
				objs4[d].appendChild(trr);
				trr = null;
			}
		}
		if(document.getElementsByClassName("modLeft", "content")){
			var objs5 = document.getElementsByClassName("modLeft", "content");
			var tlml = null;
			for (var j= 0; j < objs5.length; j++) {
				tlml = curves.createElementsCurves("cBLml");
				objs5[j].appendChild(tlml);
				tlml = null;
			}
		}
		if(document.getElementsByClassName("modRight", "content")){
			var objs6 = document.getElementsByClassName("modRight", "content");
			var trmr = null;
			for (var m= 0; m < objs6.length; m++) {
				trmr = curves.createElementsCurves("cBRmr");
				objs6[m].appendChild(trmr);
				trmr = null;
			}
		}
		if(document.getElementsByClassName("titularLeftGris", "content")){
			var objs7 = document.getElementsByClassName("titularLeftGris", "content");
			var tlm = trm = null;
			for (var m= 0; m < objs7.length; m++) {
				tlm = curves.createElementsCurves("cTLg");
				trm = curves.createElementsCurves("cTRg");
				objs7[m].appendChild(tlm);
				objs7[m].appendChild(trm);
				tlm = trm = null;
			}
		}
		if(document.getElementsByClassName("userRegister", "content").length != 0){
			var objs8 = document.getElementsByClassName("userRegister", "content")[0].getElementsByTagName("h2")[0];
			var tlm = trm = null;
			var img = document.createElement("img");
			img.src = "/design/ezflow_site/images/curve_registerUser2.gif";
			img.className = "fix";
			tlm = curves.createElementsCurves("cTRt");
			trm = curves.createElementsCurves("cTLt");
			objs8.appendChild(tlm);
			objs8.appendChild(trm);
			objs8.parentNode.appendChild(img);
		}
		if(document.getElementsByClassName("newUser", "content").length != 0){
			var objs9 = document.getElementsByClassName("newUser", "content")[0].getElementsByTagName("h2")[0];
			var tlm = trm = null;
			var img = document.createElement("img");
			img.src = "/design/ezflow_site/images/curve_registerUser2.gif"
			img.className = "fix";
			tlm = curves.createElementsCurves("cTRt");
			trm = curves.createElementsCurves("cTLt");
			objs9.appendChild(tlm);
			objs9.appendChild(trm);
			objs9.parentNode.appendChild(img);
		}
	},

	createElementsCurves:function(style){
		var element = document.createElement("div");
		element.className = style + " sp";
		element.appendChild(document.createTextNode(" "));
		try{
			return element;
		}finally{
			element = null;
		}
	}
}



function cleanTree(obj){
	if(obj.hasChildNodes()){
		obj = cleanWhiteSpace(obj);
		for(var i = 0; i < obj.childNodes.length; i++) cleanTree(obj.childNodes[i]);
	}
}

// elimina los nodos #text "molestos" (los que hay al hacer salto de lineas de una etiqueta a otra, por ejemplo) de un elemento
function cleanWhiteSpace(element){
	for (var i = 0; i < element.childNodes.length; i++)
	{
		var node = element.childNodes[i];
		if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) element.removeChild(node)
	}
	return element;
}

var regularExpressions = {
	isValidEmail:function (str){
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		return (filter.test(str));
	},
	esDecimal:function(c){ return !isNaN(c.replace(/,/g,".")) },
	esCadena:function(c) { return /^[0-9A-Za-z-\/Ññ?É?ÓÚáéíóúÜüÄäËë?ïÖö´,'/\\t\n\r\s]+$/.test(c); },
	esAlfabetico:function(c){return /^([a-zA-Z])+$/.test(c);},
	esNumero:function(c){return /^[0-9]+$/.test(c);},
	esTelefono:function(c){return /^[0-9\s\+\-)(]+$/.test(c)},
	esCodigoPostal:function(c){return /^([0-4]{1}[1-9]{1}|10|20|30|40|50|51|52)([0-9]{3})+$/.test(c);}
}




var listado={
	abrir:function(btn,obj,btn1){
		document.getElementById(btn).onclick=function(){
				document.getElementById(obj).style.display="block";return false;
			}
		document.getElementById(btn1).onclick=function(){
				document.getElementById(obj).style.display="none";return false;
			}
	}
}

var formsValidations = {
	// pinta el span con el mensaje de error producido en caso que haya mensaje. De lo contrario, si ya existe el span lo
	// eliminamos
	setErrorBlock: function(id, txt, ok){
		if (txt != "") {
			var spanElement = document.createElement("span");
			spanElement.className = "error";
			if ($(id).parent().find("span[@class=error]").length != 0)
				$(id).parent().find(".error").html(txt)
			else {
				spanElement.appendChild(document.createTextNode(txt));
				if (id != "#formModuleNewsLetter" && id != "#modTarjetas" && id != "#modDepositos" && id != "#modPrestamos" && id != "#modHipotecas" && id != "#formAccesoUsuarios") {
					$(id).parent().each(function(){
						this.insertBefore(spanElement, this.firstChild)
					})
				}else{
					$(id).parent().each(function(){
						this.appendChild(spanElement, this.firstChild)
					})
				}
			}
		}
		else
			if ($(id).parent().find("span[@class=error]").length != 0)  $(id).parent().find("span[@class=error]").remove();
	},
	validaFormPrestamos:function() {
		var f = document.forms.formPrestamos;
		var ok = true;
		var fImporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		var fcuotaValue=behaviours.formatNumber.formatEuropean(f.cuota.value);
		if (f.importe.value == '') {
			formsValidations.setErrorBlock("#importe", "Debes indicar el importe del préstamo");
			ok = false;
		}else {
			if (fImporteValue < 0) {
				formsValidations.setErrorBlock("#importe", "El importe del préstamo no puede ser negativo");
				ok = false;
			} else{
				if(!regularExpressions.esDecimal(fImporteValue)){
					formsValidations.setErrorBlock("#importe", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else{
					if(fImporteValue > 1000000){
						formsValidations.setErrorBlock("#importe", "El valor introducido se sale del rango 0-1.000.000");
						ok = false;
					}else formsValidations.setErrorBlock("#importe", "");
				}
			}

		}
		if(f.tipo.value == ''){
			formsValidations.setErrorBlock("#tipo", "Debes indicar el tipo de interés");
			ok=false;
		} else {
			if (f.tipo.value < 0) {
				formsValidations.setErrorBlock("#tipo", "El tipo de interés no puede ser negativo");
				ok = false;
			} else{
				if(!regularExpressions.esDecimal(f.tipo.value)){
					formsValidations.setErrorBlock("#tipo", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else{
					if(f.tipo.value > 15){
						formsValidations.setErrorBlock("#tipo", "El valor introducido se sale del rango 0-15");
						ok = false;
					}else formsValidations.setErrorBlock("#tipo", "");
				}
			}
		}
		if(f.plazo.value == ''){
			formsValidations.setErrorBlock("#plazo", "Debes indicar el plazo");
			ok=false;
		}else {
			if(!regularExpressions.esNumero(f.plazo.value)){
				formsValidations.setErrorBlock("#plazo", "El plazo debe ser numérico");
				ok=false;
			}else{
				if(f.plazo.value > 20){
					formsValidations.setErrorBlock("#plazo", "El valor introducido se sale del rango 0-20");
					ok = false;
				}else formsValidations.setErrorBlock("#plazo", "");
			}
		}
		if(f.cuota.value == ''){
			formsValidations.setErrorBlock("#cuota", "Debes indicar la cuota mensual");
			ok=false;
		}else {
			if (fcuotaValue < 0) {
				formsValidations.setErrorBlock("#cuota", "El tipo de interés no puede ser negativo");
				ok = false;
			} else{
				if(!regularExpressions.esDecimal(fcuotaValue)){
					formsValidations.setErrorBlock("#cuota", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else{
					if(fcuotaValue > 10000){
						formsValidations.setErrorBlock("#cuota", "El valor introducido se sale del rango 0-10000");
						ok = false;
					}else formsValidations.setErrorBlock("#cuota", "");
				}
			}
		}
		if(ok) calculadoras.prestamos.computeForm(f);
		return false;
	},
	validaFormImportePrestamo:function(){
		var f = document.forms.formImportePrestamo;
		var ok = true;
		var fcuotaValue=behaviours.formatNumber.formatEuropean(f.cuota.value);
		if (f.cuota.value == '') {
			formsValidations.setErrorBlock("#cuota", "Debes indicar la cuota mensual");
			ok = false;
		}else {
			if (fcuotaValue < 0) {
				formsValidations.setErrorBlock("#cuota", "La cuota mensual no puede ser negativa");
				ok = false;
			}else {
				if (!regularExpressions.esDecimal(fcuotaValue)) {
					formsValidations.setErrorBlock("#cuota", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}
				else{
					if(fcuotaValue > 10000){
						formsValidations.setErrorBlock("#cuota", "El valor introducido se sale del rango 0-10.000");
						ok = false;
					}else formsValidations.setErrorBlock("#cuota", "") ;
				}
			}
		}
		if(f.interes.value == ''){
			formsValidations.setErrorBlock("#interes", "Debes indicar el interés anual");
			ok=false;
		} else {
			if (f.interes.value < 0) {
				formsValidations.setErrorBlock("#interes", "El interés no puede ser negativo");
				ok = false;
			}else {
				if (!regularExpressions.esDecimal(f.interes.value)) {
					formsValidations.setErrorBlock("#interes", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}
				else{
					if(f.interes.value == 0 || f.interes.value > 15){
						formsValidations.setErrorBlock("#interes", "El valor introducido se sale del rango 0-15");
						ok = false;
					}else formsValidations.setErrorBlock("#interes", "") ;
				}
			}
		}
		if (f.plazo.value == '') {
			formsValidations.setErrorBlock("#plazo", "Debes indicar el plazo de amortización");
			ok = false;
		}else {
			if(!regularExpressions.esNumero(f.plazo.value)) {
				formsValidations.setErrorBlock("#plazo", "El plazo de amortización debe ser numérico");
				ok = false;
			}else{
				if(f.plazo.value < 3 || f.plazo.value > 60){
						formsValidations.setErrorBlock("#plazo", "El valor introducido se sale del rango 3-60");
						ok = false;
				}else formsValidations.setErrorBlock("#plazo", "") ;
			}
		}

		if(ok) calculadoras.importePrestamo.calculacantidad(f);
		return false;
	},
	validaFormGastosCambio:function(){
		var f = document.forms.formCambioHipoteca;
		var ok = true;
		var fCapitalValue=behaviours.formatNumber.formatEuropean(f.capital.value)
		var fComisionValue=behaviours.formatNumber.formatEuropean(f.comision.value)
		if(fCapitalValue == '' || fCapitalValue==0){
			formsValidations.setErrorBlock("#capital", "Debes indicar el importe solicitado");
			ok=false;
		}else {
			if (fCapitalValue < 0) {
				formsValidations.setErrorBlock("#capital", "El importe solicitado no puede ser negativo");
				ok = false;
			}else{
				if(fCapitalValue < 600 || fCapitalValue > 1000000){
						formsValidations.setErrorBlock("#capital", "El valor introducido se sale del rango 600-1.000.000");
						ok = false;
				}else formsValidations.setErrorBlock("#capital", "") ;
			}

		}
		if (fComisionValue == '') {
			formsValidations.setErrorBlock("#comision", "Debes indicar el precio de la vivienda");
			ok = false;
		}else {
			if (fComisionValue < 0) {
				formsValidations.setErrorBlock("#comision", "El precio de la vivienda no puede ser negativo");
				ok = false;
			}else{
				if(fComisionValue < 0 || fComisionValue > 100000){
						formsValidations.setErrorBlock("#comision", "El valor introducido se sale del rango 0-100.000");
						ok = false;
				}else formsValidations.setErrorBlock("#comision", "") ;
			}
		}
		if(ok) calculadoras.gastosCambioHipoteca.calculate(f);
		return false;
	},
	validaFormGastosHipoteca:function(){
		var f = document.forms.formGastosHipoteca;
		var ok = true;
		var fImporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		var fPrecioValue=behaviours.formatNumber.formatEuropean(f.precio.value);
		if(fImporteValue == ''){
			formsValidations.setErrorBlock("#importe", "Debes indicar el importe solicitado");
			ok=false;
		}else {
			if (fImporteValue < 0) {
				formsValidations.setErrorBlock("#importe", "El importe solicitado no puede ser negativo");
				ok = false;
			} else{
				if(fImporteValue < 10000 || fImporteValue > 1000000){
					formsValidations.setErrorBlock("#importe", "El valor introducido se sale del rango 10.000-1.000.000");
					ok = false;
				}else formsValidations.setErrorBlock("#importe", "") ;
			}

		}
		if (fPrecioValue == '') {
			formsValidations.setErrorBlock("#precio", "Debes indicar el precio de la vivienda");
			ok = false;
		}else {
			if (fPrecioValue < 0) {
				formsValidations.setErrorBlock("#precio", "El precio de la vivienda no puede ser negativo");
				ok = false;
			} else{
				if(fPrecioValue < 60000 || fPrecioValue > 1000000){
					formsValidations.setErrorBlock("#precio", "El valor introducido se sale del rango 60.000-1.000.000");
					ok = false;
				}else formsValidations.setErrorBlock("#precio", "") ;
			}
		}

		if(ok) calculadoras.gastos.calculate(f);
		//if(ok) calculadoras.gastos.update("#importe", "1000 años")
		return false;
	},
	validaFormDepositos:function(){
		var f = document.forms.formDepositos;
		var ok = true;
		var fImporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		if (f.importe.value == '') {
			formsValidations.setErrorBlock("#importe", "Debes indicar el importe a depositar");
			ok = false;
		}else {
			if (fImporteValue < 0) {
				formsValidations.setErrorBlock("#importe", "La cantidad total a depositar no puede ser negativa");
				ok = false;
			} else{
				if(!regularExpressions.esDecimal(fImporteValue)){
					formsValidations.setErrorBlock("#importe", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else formsValidations.setErrorBlock("#importe", "") ;
			}
		}
		if(f.tipo.value == ''){
			formsValidations.setErrorBlock("#tipo", "Debes indicar el tipo de interés");
			ok=false;
		} else {
			if(!regularExpressions.esDecimal(f.tipo.value)){
				formsValidations.setErrorBlock("#tipo", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
				ok = false;
			}else formsValidations.setErrorBlock("#tipo", "");
		}

		if (f.plazo.value == '') {
			formsValidations.setErrorBlock("#plazo", "Debes indicar el plazo");
			ok = false;
		}
		else {
			formsValidations.setErrorBlock("#plazo", "");
			if (f.plazo.value < 0) {
				formsValidations.setErrorBlock("#plazo", "El plazo no puede ser negativo");
				ok = false;
			}else {
				if(!regularExpressions.esNumero(f.plazo.value)){
					formsValidations.setErrorBlock("#plazo", "El plazo debe ser númerico");
					ok = false;
				}else{
					if (f.recibir.selectedIndex == 0 && (f.plazo.value * 12) == 12) {
						formsValidations.setErrorBlock("#plazo", "El plazo a interés anual no puede ser inferior a 12 meses");
						ok = false;
					}
					else formsValidations.setErrorBlock("#plazo", "");
				}
			}
		}



		if(ok) calculadoras.depositos.calcular(f);
		//if(ok) calculadoras.depositos.update("#plazo", "1000 años")
		return false;
	},
	validaFormDeduccioncompra:function(){
		var f = document.forms.formDeduccioncompra;
		var ok = true;
		var fImporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		var fecha_hoy = new Date();
		var annio_actual = fecha_hoy.getFullYear();
		var annio = f.anyo.value;
		if (fImporteValue == '') {
			formsValidations.setErrorBlock("#importe", "Debes indicar el importe del préstamo");
			ok = false;
		}else {
			if (fImporteValue < 0) {
				formsValidations.setErrorBlock("#importe", "El importe del préstamo no puede ser negativo");
				ok = false;
			} else{
				if (!regularExpressions.esDecimal(fImporteValue)) {
					formsValidations.setErrorBlock("#importe", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else {
					if(fImporteValue < 10000 || fImporteValue > 1000000){
						formsValidations.setErrorBlock("#importe", "El valor introducido se sale del rango 10.000-1.000.000");
						ok = false;
					}else formsValidations.setErrorBlock("#importe", "") ;
				}
			}
		}
		if (f.tipo[0].checked) {
			if (f.anyo.value == '' || f.anyo.value==0) {
				formsValidations.setErrorBlock("#anyo", "Debes indicar el año de concesión del préstamo");
				ok = false;
			}else {
				if (!regularExpressions.esNumero(f.anyo.value)) {
					formsValidations.setErrorBlock("#anyo", "El año de concesión debe ser numérico");
					ok = false;
				}else{
					if(annio > annio_actual){
						formsValidations.setErrorBlock("#anyo", "Debe introducir un año menor o igual que " + annio_actual);
						ok = false;
					}else formsValidations.setErrorBlock("#anyo", "") ;
				}
			}
		}else formsValidations.setErrorBlock("#anyo", "") ;
		if(ok) calculadoras.deduccion.calcularDeduccion(f);
		return false;
	},
	validaFormConversorDivisas:function(){
		var f = document.forms.formConversorDivisas;
		var ok = true;
		var fcantidadValue=behaviours.formatNumber.formatEuropean(f.cantidad.value);
		if(f.cantidad.value == ''){
			formsValidations.setErrorBlock("#cantidad", "Debes indicar la cantidad de divisas");
			ok=false;
		}else {
			if (fcantidadValue < 0) {
				formsValidations.setErrorBlock("#cantidad", "La cantidad de divisas no puede ser negativa");
				ok = false;
			} else{
				if (!regularExpressions.esDecimal(fcantidadValue)) {
					formsValidations.setErrorBlock("#cantidad", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else {
					if(fcantidadValue < 1 || fcantidadValue > 200000){
						formsValidations.setErrorBlock("#cantidad", "El valor introducido se sale del rango 1-200.000");
						ok = false;
					}else formsValidations.setErrorBlock("#cantidad", "") ;
				}
			}
		}
		if (f.divisa.selectedIndex == 0) {
			formsValidations.setErrorBlock("#divisa", "Debes indicar la divisa de origen");
			ok = false;
		}
		else formsValidations.setErrorBlock("#divisa", "");
				if (f.divisa.selectedIndex == 0) {
			formsValidations.setErrorBlock("#convertir", "Debes indicar la divisa a convertir");
			ok = false;
		}
		else formsValidations.setErrorBlock("#convertir", "");
		if(ok) calculadoras.conversor.result(f);
		return false;
	},
	validaFormComparadorHipotecas:function(){
		var f = document.forms.formComparadorHipotecas;
		var ok = true;
		if(f.cuesta.value == ''){
			formsValidations.setErrorBlock("#cuesta", "El valor del inmueble es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#cuesta", "");
		if(f.edad.value == ''){
			formsValidations.setErrorBlock("#edad", "Tu edad es requerida");
			ok=false;
		}else formsValidations.setErrorBlock("#edad", "");
		if(f.anyos.value == ''){
			formsValidations.setErrorBlock("#anyos", "Debes indicar en cuántos años quieres pagarla");
			ok=false;
		}else formsValidations.setErrorBlock("#anyos", "");
		if(f.interes.selectedIndex == 0){
			formsValidations.setErrorBlock("#interes", "Debes indicar qué tipo de interes prefieres");
			ok=false;
		}else formsValidations.setErrorBlock("#interes", "");
		return false;
	},
	validaFormComparadorHipotecas2:function(){
		var f = document.forms.formComparadorHipotecas2;
		var ok = true;
		if(f.cuanto.value == ''){
			formsValidations.setErrorBlock("#cuanto", "La cantidad de dinero es requerida");
			ok=false;
		}else formsValidations.setErrorBlock("#cuanto", "");
		if(f.para.selectedIndex == 0){
			formsValidations.setErrorBlock("#para", "Para qué lo necesitas es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#para", "");
		//if(ok) calculadoras.conversor.set(f);
		return false;
	},
	validaFormComparadorHipotecas3:function(){
		var f = document.forms.formComparadorHipotecas3;
		var fcuantoValue=behaviours.formatNumber.formatEuropean(f.cuanto.value);
		var fimporteValue=behaviours.formatNumber.formatEuropean(f.cuesta.value);
		var ok = true;
		if(f.cuanto.value == ''){
			formsValidations.setErrorBlock("#cuanto", "La cantidad de dinero que necesitas es requerida");
			ok=false;
		}else{
			if(fcuantoValue < 30000 || fcuantoValue > 1000000){
				formsValidations.setErrorBlock("#cuanto", "La cantidad requerida no puede ser inferior a 30.000 ni superior a 1.000.000");
				ok=false;
			 }else formsValidations.setErrorBlock("#cuanto", "");
		}
		if(f.para.selectedIndex == 0){
			formsValidations.setErrorBlock("#para", "Para qué lo necesitas es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#para", "");
		if(f.cuesta.value == ''){
			formsValidations.setErrorBlock("#cuesta", "El valor del inmueble es requerido");
			ok=false;
		}else{
			if(fimporteValue < 0 || fimporteValue > 1000000){
				formsValidations.setErrorBlock("#cuesta", "El valor del inmueble no puede ser inferior a 0 ni superior a 1.000.000");
				ok=false;
			 }else formsValidations.setErrorBlock("#cuesta", "");
		}
		if(f.edad.value == ''){
			formsValidations.setErrorBlock("#edad", "Tu edad es requerida");
			ok=false;
		}else{
			if(!regularExpressions.esNumero(f.edad.value)){
				formsValidations.setErrorBlock("#edad", "Tu edad debe ser un valor numérico");
				ok=false;
			}else{
				if(f.edad.value < 18){
					formsValidations.setErrorBlock("#edad", "Debes tener mínimo 18 años");
					ok=false;
				} else formsValidations.setErrorBlock("#edad", "");
			}
		}
		if(f.anyos.value == ''){
			formsValidations.setErrorBlock("#anyos", "Debes indicar en cuántos años quieres pagarla");
			ok=false;
		}else{
			if(!regularExpressions.esNumero(f.anyos.value)){
				formsValidations.setErrorBlock("#anyos", "Los años introducidos deben valores numéricos");
				ok=false;
			}else{
				if(f.anyos.value < 5 || f.anyos.value > 50){
					formsValidations.setErrorBlock("#anyos", "Los años no puede ser inferior a 5 ni superior a 50");
					ok=false;
				 }else formsValidations.setErrorBlock("#anyos", "");
			}

		}
		if(f.interes.selectedIndex == 0){
			formsValidations.setErrorBlock("#interes", "Debes indicar qué tipo de interes prefieres");
			ok=false;
		}else formsValidations.setErrorBlock("#interes", "");

		if(!ok) return false;
	},
	validaFormComparadorPrestamos:function(){
		var f = document.forms.formComparadorPrestamos;
		var ok = true;
		var fimporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		if(f.importe.value == ''){
			formsValidations.setErrorBlock("#importe", "El valor del importe a solicitar es requerido");
			ok=false;
		}else{
			if(fimporteValue < 300 ||fimporteValue > 100000){
				formsValidations.setErrorBlock("#importe", "El valor del importe no puede ser inferior de 300 ni superior a 100.000");
				ok=false;
			}else formsValidations.setErrorBlock("#importe", "");
		}
		if(!ok) return false;
	},
	validaFormComparadorDepositos:function(){
		var f = document.forms.formComparadorDepositos;
		var ok = true;
		var fimporteValue=behaviours.formatNumber.formatEuropean(f.importe.value);
		if(f.importe.value == ''){
			formsValidations.setErrorBlock("#importe", "El valor del importe a solicitar es requerido");
			ok=false;
		}else{
			if(fimporteValue < 100 ||fimporteValue > 300000){
				formsValidations.setErrorBlock("#importe", "El valor del importe no puede ser inferior de 100 ni superior a 300.000");
				ok=false;
			}else formsValidations.setErrorBlock("#importe", "");
		}
		if(f.tipo.value == ''){
			formsValidations.setErrorBlock("#tipo", "El valor del tipo de interés es requerido");
			ok=false;
		}else{
			if(!regularExpressions.esDecimal(f.tipo.value)){
				formsValidations.setErrorBlock("#tipo", "El valor del tipo de interés debe ser numérico");
				ok=false;
			}else{
				if(f.tipo.value > 15){
					formsValidations.setErrorBlock("#tipo", "El valor del tipo de interés no puede exceder de 15%");
					ok=false;
				}else formsValidations.setErrorBlock("#tipo", "");
			}
		}
		if(!ok) return false;
	},
	validaFormCalculoHipoteca:function(){
		var f = document.forms.formCalculoHipoteca;
		var ok = true;
		if (!f.tipo[0].checked) {
			if (f.aux1.value == '') {
				formsValidations.setErrorBlock("#aux1", "El valor de la cuota mensual es requerido");
				ok = false;
			}else {
				if (f.aux1.value < 0) {
					formsValidations.setErrorBlock("#aux1", "El valor de la cuota mensual no puede ser negativo");
					ok = false;
				}else {
					if (!regularExpressions.esDecimal(f.aux1.value)) {
						formsValidations.setErrorBlock("#aux1", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
						ok = false;
					} else formsValidations.setErrorBlock("#aux1", "");
				}

			}
		}else formsValidations.setErrorBlock("#aux1", "");
		if(!f.tipo[1].checked){
			if(f.aux2.value == ''){
				formsValidations.setErrorBlock("#aux2", "El valor del plazo es requerido");
				ok=false;
			}else{
				if (!regularExpressions.esNumero(f.aux2.value)) {
					formsValidations.setErrorBlock("#aux2", "El valor del plazo debe ser numérico");
					ok = false;
				}else {
					if (parseInt(f.aux2.value) > 40) {
						formsValidations.setErrorBlock("#aux2", "El plazo calculado excede del límite máximo de 40 años.");
						ok = false;
					}else formsValidations.setErrorBlock("#aux2", "");
				}
			}
		}else formsValidations.setErrorBlock("#aux2", "");
		if(!f.tipo[2].checked){
			if(f.aux3.value == ''){
				formsValidations.setErrorBlock("#aux3", "El valor del tipo de interés es requerido");
				ok=false;
			}else{
				if (f.aux3.value < 0) {
					formsValidations.setErrorBlock("#aux3", "El valor del tipo de interés no puede ser negativo");
					ok = false;
				} else{
					if(!regularExpressions.esDecimal(f.aux3.value)){
						formsValidations.setErrorBlock("#aux3", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
						ok = false;
					}else formsValidations.setErrorBlock("#aux3", "") ;
				}

			}
		}else formsValidations.setErrorBlock("#aux3", "") ;
		if(!f.tipo[3].checked){
			if(f.aux4.value == ''){
				formsValidations.setErrorBlock("#aux4", "El valor del importe a financiar es requerido");
				ok=false;
			}else{

				if (f.aux4.value < 0) {
					formsValidations.setErrorBlock("#aux4", "El valor del importe a financiar no puede ser negativo");
					ok = false;
				} else{
					if(!regularExpressions.esDecimal(f.aux4.value)){
						formsValidations.setErrorBlock("#aux4", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
						ok = false;
					}else formsValidations.setErrorBlock("#aux4", "") ;
				}

			}
		}else formsValidations.setErrorBlock("#aux4", "") ;
		if(!f.tipo[4].checked){
			if(f.aux5.value == ''){
				formsValidations.setErrorBlock("#aux5", "El valor del precio del inmueble es requerido");
				ok=false;
			}else{
				if (f.aux5.value < 0) {
					formsValidations.setErrorBlock("#aux5", "El valor del precio del inmueble no puede ser negativo");
					ok = false;
				} else{
					if(!regularExpressions.esDecimal(f.aux5.value)){
						formsValidations.setErrorBlock("#aux5", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
						ok = false;
					}else formsValidations.setErrorBlock("#aux5", "") ;
				}

			}
		}else formsValidations.setErrorBlock("#aux5", "") ;
		if(f.ahorros.value == ''){
			formsValidations.setErrorBlock("#ahorros", "El valor de tus ahorros iniciales es requerido");
			ok=false;
		}else{
			if(!regularExpressions.esNumero(f.ahorros.value)){
				formsValidations.setErrorBlock("#ahorros", "El valor de tus ahorros iniciales debe ser numérico");
				ok=false;
			}else{
				if (f.ahorros.value < 0) {
					formsValidations.setErrorBlock("#ahorros", "Tus ahorros iniciales no pueden ser negativos");
					ok = false;
				} else{
					if(!regularExpressions.esDecimal(f.ahorros.value)){
						formsValidations.setErrorBlock("#ahorros", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
						ok = false;
					}else formsValidations.setErrorBlock("#ahorros", "") ;
				}
			}

		}
		if(f.gastos.value == ''){
			formsValidations.setErrorBlock("#gastos", "El valor del % gastos de la compra es requerido");
			ok=false;
		}else{
			if (f.gastos.value < 0) {
				formsValidations.setErrorBlock("#gastos", "El valor del % gastos de la compra no puede ser negativo");
				ok = false;
			} else{
				if(!regularExpressions.esDecimal(f.gastos.value)){
					formsValidations.setErrorBlock("#gastos", "El formato utilizado no es correcto. Debe ser del tipo 00,00");
					ok = false;
				}else formsValidations.setErrorBlock("#gastos", "") ;
			}
		}

		if(ok) calculadoras.hipoteca.calculos(f);
		//if(ok) calculadoras.deduccion.update("#plazo", "1000 años")
		return false;
	},
	validaFormSendPage:function(){
		var f = document.forms.formSendPage;
		var ok = okMailsAmigo = true;
		var aux = "";
		if(f.nombre.value == ''){
			formsValidations.setErrorBlock("#nombre", "Tu nombre es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#nombre", "");
		if (f.tuEmail.value == '') {
			formsValidations.setErrorBlock("#tuEmail", "Tu E-mail es requerido");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.tuEmail.value)){
				formsValidations.setErrorBlock("#tuEmail", "El formato de tu E-mail no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#tuEmail", "");
		}
		if (f.emailAmigo.value == '') {
			formsValidations.setErrorBlock("#emailAmigo", "El E-mail de tu amigo es requerido");
			ok = false;
		}else {
			formsValidations.setErrorBlock("#emailAmigo", "");
			if (f.emailAmigo.value.numOfCharacters("@") == 0 && f.emailAmigo.value != "") {
				formsValidations.setErrorBlock("#emailAmigo", "El formato del E-mail de tu amigo no es válido");
				ok = false;
			}
			else {
				aux = f.emailAmigo.value.replace(/,/g, " ");
				mailsAmigo = aux.split(" ");
				for (i = 0; i < mailsAmigo.length && okMailsAmigo; i++) {
					if (mailsAmigo[i].trim() == "") {
						okMailsAmigo = true;
						continue;
					}
					okMailsAmigo = regularExpressions.isValidEmail(mailsAmigo[i]);
				}
				if (!okMailsAmigo) {
					formsValidations.setErrorBlock("#emailAmigo", "El formato del E-mail de tu amigo no es válido");
					ok = false;
				}
				else {
					if (aux.numOfCharacters("@") > 1 && f.emailAmigo.value.numOfCharacters(",") != f.emailAmigo.value.numOfCharacters("@") - 1) {
						formsValidations.setErrorBlock("#emailAmigo", "Debes separar los E-mails de tus amigos con comas");
						ok = false;
					}
				}
			}
		}
		if(!ok) return false;
	},
	validaFormInfoEntidades:function(){
		var f = document.forms.formInfoEntidades;
		var ok  = true;
		var aux = "";
		if(f.nombre.value == ''){
			formsValidations.setErrorBlock("#nombre", "El nombre de la persona de contacto es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#nombre", "");
		if(f.apellidos.value == ''){
			formsValidations.setErrorBlock("#apellidos", "Los apellidos de la persona de contacto son requeridos");
			ok=false;
		}else formsValidations.setErrorBlock("#apellidos", "");
		if(f.entidad.value == ''){
			formsValidations.setErrorBlock("#entidad", "El nombre de tu entidad financiera es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#entidad", "");
		if(f.telefono.value == ''){
			formsValidations.setErrorBlock("#telefono", "El teléfono de contacto es requerido");
			ok=false;
		}else {
			if(!regularExpressions.esNumero(f.telefono.value)){
				formsValidations.setErrorBlock("#telefono", "El teléfono de contacto debe ser numérico");
				ok = false;
			}else{
				if(f.telefono.value.length < 9){
					formsValidations.setErrorBlock("#telefono", "El teléfono de contacto no puede ser inferior a 9 dígitos");
					ok = false;
				}else formsValidations.setErrorBlock("#telefono", "");
			}
		}
		if (f.tuEmail.value == '') {
			formsValidations.setErrorBlock("#tuEmail", "El E-mail es requerido");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.tuEmail.value)){
				formsValidations.setErrorBlock("#tuEmail", "El formato de tu E-mail no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#tuEmail", "");
		}
		if (!f.aceptar.checked) {
			formsValidations.setErrorBlock("#aceptar", "Debes aceptar las Condiciones de Privacidad");
			ok = false;
		}else formsValidations.setErrorBlock("#aceptar", "");

		if(!ok) return false;
	},
	validaFormInfoContacto:function(){
		var f = document.forms.formInfoContacto;
		var ok  = true;
		var aux = "";
		if(f.nombre.value == ''){
			formsValidations.setErrorBlock("#nombre", "Tu nombre es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#nombre", "");
		if (f.tuEmail.value == '') {
			formsValidations.setErrorBlock("#tuEmail", "Tu e-mail es requerido");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.tuEmail.value)){
				formsValidations.setErrorBlock("#tuEmail", "El formato de tu e-mail no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#tuEmail", "");
		}
		if (f.producto.selectedIndex == 0) {
			formsValidations.setErrorBlock("#producto", "El campo sobre qué producto quieres hacer tu consulta es requerido");
			ok = false;
		}else formsValidations.setErrorBlock("#producto", "");
		if (f.consulta.value == '') {
			formsValidations.setErrorBlock("#consulta", "El campo de tu consulta es requerido");
			ok = false;
		}else formsValidations.setErrorBlock("#consulta", "");
		if (!f.aceptar.checked) {
			formsValidations.setErrorBlock("#aceptar", "Debes aceptar las Condiciones de Privacidad");
			ok = false;
		}else formsValidations.setErrorBlock("#aceptar", "");

		if(!ok) return false;
	},
	validaFormUserRegister:function(){
		var f = document.forms.formUserRegister;
		var ok = true;
		if(f.usuario.value == ''){
			formsValidations.setErrorBlock("#usuario", "El nombre de usuario es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#usuario", "");
		if(f.pass.value == ''){
			formsValidations.setErrorBlock("#pass", "La contraseña es requerida");
			ok=false;
		}else formsValidations.setErrorBlock("#pass", "");
		if(!ok) return false;
	},
	validaFormNewUser:function(){
		var f = document.forms.formNewUser;
		var ok = true;
		if(f.nombreUser.value == ''){
			formsValidations.setErrorBlock("#nombreUser", "Tu nombre es requerido");
			ok=false;
		}else formsValidations.setErrorBlock("#nombreUser", "");
		if (f.emailUser.value == '') {
			formsValidations.setErrorBlock("#emailUser", "El email es requerido");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.emailUser.value)){
				formsValidations.setErrorBlock("#emailUser", "El formato de tu email no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#emailUser", "");
		}

		if(f.passUser.value == ''){
			formsValidations.setErrorBlock("#passUser", "La contraseña es requerida");
			ok=false;
		}else{
			if(f.passUser.value.length < 6){
				formsValidations.setErrorBlock("#passUser", "La contraseña debe tener al menos 6 caracteres");
				ok=false;
			 } else formsValidations.setErrorBlock("#passUser", "");
		}

		if (f.passUser2.value == '') {
			formsValidations.setErrorBlock("#passUser2", "Debe repetir la contraseña");
			ok = false;
		} else {
			formsValidations.setErrorBlock("#passUser2", "");
			if (f.passUser.value != f.passUser2.value && (f.passUser.value != '' && f.passUser2.value != '')) {
				formsValidations.setErrorBlock("#passUser2", "Las contraseñas introducidas no coinciden");
				ok = false;
			}
		}
		if (f.mayoria[0].checked) {
			formsValidations.setErrorBlock("#edad", "Para poder registrarte debes tener más de 18 años");
			ok = false;
		}else formsValidations.setErrorBlock("#edad", "");

		if (!f.acepto.checked) {
			formsValidations.setErrorBlock("#acepto", "Debes aceptar las Condiciones de Privacidad");
			ok = false;
		}else formsValidations.setErrorBlock("#acepto", "");

		if(!ok) return false;
	},
	validaFormModuleNewsLetter: function(){
		var f = document.forms.formModuleNewsLetter;
		var ok = true;
		if (f.email.value == '') {
			formsValidations.setErrorBlock("#formModuleNewsLetter", "Debes introducir tu email");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.email.value)){
				formsValidations.setErrorBlock("#formModuleNewsLetter", "El formato de tu e-mail no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#formModuleNewsLetter", "");
		}
		if(!ok) return false;
	},
	validaFormModuleHeader:function(form,input){
		var f = document.forms[form];
		var ok = true;
		if (f[input].value == '') {
			formsValidations.setErrorBlock("#"+form, "La cantidad es requerida");
			ok = false;
		}else formsValidations.setErrorBlock("#"+form, "");
		if(!ok) return false;
		else f.submit();
	},
	validaFormModuleHeaderTarjetas:function(form,input){
		var f = document.forms[form];
		var ok = true;
		if ( document.getElementById('checkcredito').checked==false && document.getElementById('checkdebito').checked==false ) {
			formsValidations.setErrorBlock("#"+form, "El tipo es requerido");
			ok = false;
		}
		if(!ok) return false;
		else f.submit();
	},
	validaFormAccesoUsuarios:function(){
		var f = document.forms.formAccesoUsuarios;
		var ok = true;
		if (f.Login.value == '' || f.Password.value == '') {
			formsValidations.setErrorBlock("#formAccesoUsuarios", "El usuario y contraseña son requeridos");
			ok = false;
		}else formsValidations.setErrorBlock("#formAccesoUsuarios", "");
		if(!ok) return false;
		else f.submit();
	},
	validaFormComment: function(){
		var f = document.forms.formComment;
		var ok = true;
		if(document.getElementById("titulo2")){
			if (f.titulo.value == '') {
				formsValidations.setErrorBlock("#titulo", "Debes introducir un título");
				ok = false;
			}else formsValidations.setErrorBlock("#titulo", "");
		}
		if (f.comentario.value == '') {
			formsValidations.setErrorBlock("#comentario", "Debes introducir un comentario");
			ok = false;
		}else if(f.comentario.value.length > 1000){
			formsValidations.setErrorBlock("#comentario", "Tu comentario no puede superar los 1000 caracteres");
			ok = false;
		}else formsValidations.setErrorBlock("#comentario", "");
		if(!ok) return false;
	},
	validaFormComment2: function(){
		var f = document.forms.formComment2;
		var ok = true;
		if(document.getElementById("titulo2")){
			if (f.titulo2.value == '') {
				formsValidations.setErrorBlock("#titulo2", "Debes introducir un título");
				ok = false;
			}else formsValidations.setErrorBlock("#titulo2", "");
		}
		if (f.comentario.value == '') {
			formsValidations.setErrorBlock("#comentario2", "Debes introducir un comentario");
			ok = false;
		}else if(f.comentario.value.length > 1000){
			formsValidations.setErrorBlock("#comentario2", "Tu comentario no puede superar los 1000 caracteres");
			ok = false;
		}else formsValidations.setErrorBlock("#comentario2", "");
		if(!ok) return false;
	},
	validaFormListForum: function(){
		var f = document.forms.formListForum;
		var ok = true;
		if (f.Titulo.value == '') {
			formsValidations.setErrorBlock("#titulo", "Debes introducir un título");
			ok = false;
		}else formsValidations.setErrorBlock("#titulo", "");
		if (f.Mensaje.value == '') {
			formsValidations.setErrorBlock("#mensaje", "Debes introducir un tema");
			ok = false;
		}else formsValidations.setErrorBlock("#mensaje", "");
		if(!ok) return false;
	},
	validaFormForgotpassword:function(){
		var f = document.forms.forgotpassword;
		var ok = true;
		if (f.email.value == '') {
			formsValidations.setErrorBlock("#emailUser", "Debes introducir tu email");
			ok = false;
		}else{
			if(!regularExpressions.isValidEmail(f.email.value)){
				formsValidations.setErrorBlock("#emailUser", "El formato de tu email no es válido");
				ok = false;
			}else formsValidations.setErrorBlock("#emailUser", "");
		}
		if(!ok) return false;
	}
}

var load={
	existeId:function(cid){
		if(document.getElementById(cid)) return true;
		return false;
	},
	setEvents:function(){
		curves.roundModules();
		if(load.existeId("formComparadorHipotecas")) document.getElementById("formComparadorHipotecas").onsubmit = formsValidations.validaFormComparadorHipotecas;
		if(load.existeId("formComparadorHipotecas2")) document.getElementById("formComparadorHipotecas2").onsubmit = formsValidations.validaFormComparadorHipotecas2;
		if(load.existeId("formComparadorHipotecas3")){
			 document.getElementById("formComparadorHipotecas3").onsubmit = formsValidations.validaFormComparadorHipotecas3;
			 behaviours.comparadorHipotecas();
		}
		if(load.existeId("comparadoresHipotecas")) sliders.hipotecas.update();
		if(load.existeId("formPrestamos")){
			document.getElementById("formPrestamos").onsubmit = formsValidations.validaFormPrestamos;
			sliders.prestamos.init();
			behaviours.prestamos.init()
		}
		if(load.existeId("formImportePrestamo")){
			document.getElementById("formImportePrestamo").onsubmit = formsValidations.validaFormImportePrestamo;
			behaviours.importePrestamo.init();
			sliders.importePrestamo.init();
		}
		if (load.existeId("formGastosHipoteca")) {
			document.getElementById("formGastosHipoteca").onsubmit = formsValidations.validaFormGastosHipoteca;
			behaviours.gastosHipoteca.init();
			sliders.gastos.init();
		}
		if(load.existeId("formCalculoHipoteca")){
			document.getElementById("formCalculoHipoteca").onsubmit = formsValidations.validaFormCalculoHipoteca;
		}
		if(load.existeId("formDepositos")){
			document.getElementById("formDepositos").onsubmit = formsValidations.validaFormDepositos;
			behaviours.depositos.init();
			sliders.depositos.init();
		}
		if(load.existeId("formDeduccioncompra")){
			document.getElementById("formDeduccioncompra").onsubmit = formsValidations.validaFormDeduccioncompra;
			behaviours.deduccionCompra.init();
			sliders.deduccion.init();
		}
		if (load.existeId("formConversorDivisas")) {
			document.getElementById("formConversorDivisas").onsubmit = formsValidations.validaFormConversorDivisas;
			behaviours.conversorDivisas.init();
			sliders.conversor.init();
		}
		if (load.existeId("formCambioHipoteca")) {
			document.getElementById("formCambioHipoteca").onsubmit = formsValidations.validaFormGastosCambio;
			behaviours.gastosCambioHipoteca.init();
			sliders.gastosCambioHipoteca.init();
		}
		if(load.existeId("formComparadorPrestamos")){
			 document.getElementById("formComparadorPrestamos").onsubmit = formsValidations.validaFormComparadorPrestamos;
			 behaviours.comparadorPrestamos();
		}
		if(load.existeId("comparadoresPrestamos")) sliders.prestamos.update();
		if(load.existeId("formComparadorDepositos")){
			 document.getElementById("formComparadorDepositos").onsubmit = formsValidations.validaFormComparadorDepositos;
			 behaviours.comparadorDepositos();
		}
		if(load.existeId("comparadoresDepositos")) sliders.depositos.update();
		if(load.existeId("formSendPage")) document.getElementById("formSendPage").onsubmit = formsValidations.validaFormSendPage;
		if(load.existeId("formInfoEntidades")) document.getElementById("formInfoEntidades").onsubmit = formsValidations.validaFormInfoEntidades;
		if(load.existeId("formInfoContacto")) document.getElementById("formInfoContacto").onsubmit = formsValidations.validaFormInfoContacto;
		if(load.existeId("formModuleNewsLetter")) document.getElementById("formModuleNewsLetter").onsubmit = formsValidations.validaFormModuleNewsLetter;
		if(load.existeId("forgotpassword")) document.getElementById("forgotpassword").onsubmit = formsValidations.validaFormForgotpassword;
		if (load.existeId("modDepositos")){
			document.getElementById("modDepositos").onsubmit = function(){
				formsValidations.validaFormModuleHeader("modDepositos", "depositos");
				return false;
			}
			behaviours.modDepositos();
		}
		if (load.existeId("modPrestamos")){
			document.getElementById("modPrestamos").onsubmit = function(){
				formsValidations.validaFormModuleHeader("modPrestamos", "prestamos");
				return false;
			}
			behaviours.modPrestamos();
		}
		if (load.existeId("modTarjetas"))
			document.getElementById("modTarjetas").onsubmit = function(){
				formsValidations.validaFormModuleHeaderTarjetas("modTarjetas", "tipo");
				return false;
			}
		if (load.existeId("modHipotecas")){
			document.getElementById("modHipotecas").onsubmit = function(){
				formsValidations.validaFormModuleHeader("modHipotecas", "hipotecas");
				return false;
			}
			behaviours.modHipotecas();
		}
		if (load.existeId("formAccesoUsuarios")){
			document.getElementById("formAccesoUsuarios").onsubmit = formsValidations.validaFormAccesoUsuarios
		}
		if(load.existeId("formComment")) document.getElementById("formComment").onsubmit = formsValidations.validaFormComment;
		if(load.existeId("formComment2")) document.getElementById("formComment2").onsubmit = formsValidations.validaFormComment2;
		if(load.existeId("formListForum")) document.getElementById("formListForum").onsubmit = formsValidations.validaFormListForum;
		if(load.existeId("formUserRegister")) document.getElementById("formUserRegister").onsubmit = formsValidations.validaFormUserRegister;
		if(load.existeId("formNewUser")) document.getElementById("formNewUser").onsubmit = formsValidations.validaFormNewUser;

		if(document.getElementsByClassName("hipotecasTable", document.getElementById("list")).length != 0) comparadores.hipotecas.init();
		if(document.getElementsByClassName("tarjetasTable", document.getElementById("list")).length != 0){ comparadores.tarjetas.init(); }
		if(document.getElementsByClassName("prestamosTable", document.getElementById("list")).length != 0) comparadores.prestamos.init();
		if(document.getElementsByClassName("depositosTable", document.getElementById("list")).length != 0) comparadores.depositos.init();
		if(document.getElementsByClassName("listadoHipotecas", document.getElementById("list")).length != 0) comparadores.setComparadores("hipotecas");
		if(document.getElementsByClassName("listadoHipotecas", document.getElementById("content")).length != 0) comparadores.setComparadores2("hipotecas");
		if(document.getElementsByClassName("listadoDepositos", document.getElementById("list")).length != 0) comparadores.setComparadores("depositos");
		if(document.getElementsByClassName("listadoDepositos", document.getElementById("content")).length != 0) comparadores.setComparadores2("depositos");
		if(document.getElementsByClassName("listadoTarjetas", document.getElementById("list")).length != 0) comparadores.setComparadores("tarjetas");
		if(document.getElementsByClassName("listadoTarjetas", document.getElementById("content")).length != 0) comparadores.setComparadores2("tarjetas");
		if(document.getElementsByClassName("listadoPrestamos", document.getElementById("list")).length != 0) comparadores.setComparadores("prestamos");
		if(document.getElementsByClassName("listadoPrestamos", document.getElementById("content")).length != 0) comparadores.setComparadores2("prestamos");

		if(document.getElementsByClassName("listadoFAQ").length!=0 && document.getElementsByClassName("respuesta").length!=0) behaviours.faq.init()
	}
}

 YAHOO.util.Event.onDOMReady(function() {
	load.setEvents();
 });

//if(W3CDOM) e.addEvent(window, "load", load.setEvents, false);