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;
}

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 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;
		}
	}
}

var fixes={
	navBar:function (){
		var navLevel = document.getElementById("navBar").getElementsByTagName("ul")[0];
		var footerNav = document.getElementById("footer").getElementsByTagName("ul")[0];
		var list = navLevel.getElementsByTagName("li");
		var footerList =  footer.getElementsByTagName("li");
		var i = sum_letras = rel = aux = wth = mayor = 0;
		var widthNavLevel = 99.91;
		var lisChilds = [];
		/*for(i = 0; i < list.length; i++) sum_letras += list[i].getElementsByTagName("a")[0].firstChild.nodeValue.length;
		rel = (widthNavLevel / sum_letras);

		for(i = 0; i < list.length; i++){
			aux = list[i].getElementsByTagName("a")[0].firstChild.nodeValue.length;
			wth = rel * aux;
			list[i].style.width = (wth) + "%";
		}*/

		sum_letras = 0;

		for(i = 0; i < footerList.length; i++){
			lisChilds = footerList[i].getElementsByTagName("li");
			if (lisChilds.length != 0) {
				for (var j = 0; j < lisChilds.length; j++) {
					aux = lisChilds[j].getElementsByTagName("a")[0].firstChild.nodeValue.length;
					if (aux > mayor) mayor = aux;
				}
				i += j;
			}
			else mayor = footerList[i].getElementsByTagName("a")[0].firstChild.nodeValue.length;
			sum_letras += mayor;
		}

		rel = (widthNavLevel / sum_letras);
		mayor = 0;

		for(i = 0; i < footerList.length; i++){
			lisChilds = footerList[i].getElementsByTagName("li");
			if(lisChilds.length != 0){
				for(j = 0; j < lisChilds.length; j++){
					aux = lisChilds[j].getElementsByTagName("a")[0].firstChild.nodeValue.length;
					if(aux > mayor) mayor = aux;
				}
				footerList[i].style.width = ((rel * mayor)) + "%";
				i += j;
			}else {
				mayor = footerList[i].getElementsByTagName("a")[0].firstChild.nodeValue.length;
				footerList[i].style.width = ((rel * mayor)) + "%";
			}

		}
	}
}

var behaviours = {

	setInfoOnline:function(){
		document.getElementById("telefono1").onclick = function(){
			var obj = document.getElementById("telefono");
			var group = document.getElementById("groupMail");
			var errores = document.getElementsByClassName("error", group);
			if(errores.length != 0) for(var i in errores) errores[i].parentNode.removeChild(errores[i]);
			obj.style.display="block";
			/*document.getElementById("mail").disabled = "disabled";
			document.getElementById("txtMail").disabled = "disabled";
			document.getElementById("mailPost").disabled = "disabled";
			document.getElementById("tipoVia").disabled = "disabled";
			document.getElementById("nombreVia").disabled = "disabled";
			document.getElementById("ciudad").disabled = "disabled";
			document.getElementById("provincia").disabled = "disabled";
			document.getElementById("cp").disabled = "disabled";*/
			document.getElementById("groupMail").style.display="none";
		}
		document.getElementById("correo").onclick = function(){
			var obj = document.getElementById("mailPost");
			var group = document.getElementById("telefono");
			var errores = document.getElementsByClassName("error", group);
			if(errores.length != 0) group.removeChild(errores[0]);
			/*document.getElementById("mail").disabled = "";
			document.getElementById("txtMail").disabled = "";
			document.getElementById("numTelefono").value = "";
			obj.disabled = "";
			obj.checked = "";*/
			document.getElementById("telefono").style.display="none";
			document.getElementById("groupMail").style.display="block";
		}
		document.getElementById("mailPost").onclick = function(){
			if(this.checked){
				/*document.getElementById("tipoVia").disabled = "";
				document.getElementById("nombreVia").disabled = "";
				document.getElementById("ciudad").disabled = "";
				document.getElementById("provincia").disabled = "";
				document.getElementById("cp").disabled = "";*/
			}else{
				/*document.getElementById("tipoVia").disabled = "disabled";
				document.getElementById("nombreVia").disabled = "disabled";
				document.getElementById("ciudad").disabled = "disabled";
				document.getElementById("provincia").disabled = "disabled";
				document.getElementById("cp").disabled = "disabled";*/
			}
		}
		
	},
	setInfoOnline2:function(){
		document.getElementById("recibir").onclick = function(){
			var infoOnline = document.getElementById("citaOnline");
			if(document.getElementById("recibir").checked ==true) {
				if(document.getElementById("txtMail").checked == false){
					document.getElementsByClassName("desplegable", infoOnline)[0].style.display = "block";
				}
			}
			else
				document.getElementsByClassName("desplegable", infoOnline)[0].style.display = "none";
		}
	},
	setTellamamos2:function(){
		document.getElementById("recibir").onclick = function(){
			var infoOnline = document.getElementById("infoOnline");
			if(document.getElementById("recibir").checked ==true) {
				if(document.getElementById("mail").checked == false){
					document.getElementsByClassName("desplegable", infoOnline)[0].style.display = "block";
				}
			}
			else
				document.getElementsByClassName("desplegable", infoOnline)[0].style.display = "none";
		}
	},
	setCitaOnline:function(){
		var container=document.getElementById("block2");
		var span=document.getElementsByClassName("example",container);
		var fieldset=container.getElementsByTagName("fieldset");
		
		span[0].style.display="none";
		document.getElementById("numTelefono").style.display="none";
		fieldset[2].style.display="none";
		
		/*document.getElementById("txtMail").style.display="none";*/
		fieldset[4].style.display="none";
		
		document.getElementById("telefono1").onclick = function(){
			if(document.getElementById("telefono1").checked){
				span[0].style.display="block";
				document.getElementById("numTelefono").style.display="block";
				fieldset[2].style.display="block";
			}else{
				span[0].style.display="none";
				document.getElementById("numTelefono").style.display="none";
				fieldset[2].style.display="none";		
			}
		}
		
		document.getElementById("correo").onclick = function(){
			if(document.getElementById("correo").checked){
				/*document.getElementById("txtMail").style.display="block";*/
				fieldset[4].style.display="block";
			}else{
				/*document.getElementById("txtMail").style.display="none";*/
				fieldset[4].style.display="none";
			}
		}
		
	},
	setEventCmb:function(){
		var obj = document.getElementById("clinica");
		obj.onchange = behaviours.setCmbValues;
	},
	setCmbValues:function(){
		var f = this.parentNode.parentNode.parentNode;
		var tratamiento = document.getElementById("tratamiento");
		var sel = this.selectedIndex;
		var optionElement = null;
		tratamiento.disabled = "";
		if (sel != 0) {
			while (tratamiento.firstChild) tratamiento.removeChild(tratamiento.firstChild);
			optionElement = document.createElement("option");
			optionElement.appendChild(document.createTextNode("Seleccione"));
			tratamiento.appendChild(optionElement);
			optionElement = null;
			for (var i = 1; i < cmb[sel - 1].length; i++) {
				optionElement = document.createElement("option");
				optionElement.appendChild(document.createTextNode(cmb[sel - 1][i].split("|")[0]));
				optionElement.value = cmb[sel - 1][i].split("|")[1];
				tratamiento.appendChild(optionElement);
				optionElement = null;
			}
		}
		else {
			while (tratamiento.firstChild) tratamiento.removeChild(tratamiento.firstChild);
			tratamiento.disabled = "disabled";
		}
		if(tratamiento.childNodes.length == 1) tratamiento.disabled = "disabled";
	},
	setRecommend:function(){
		var obj = document.getElementById("options").getElementsByTagName("li")[0]
		var form = document.getElementById("sending");
		var link = form.getElementsByTagName("a")[0];
		obj.firstChild.onclick = function(){
			form.style.display = "block";
			return false;
		}
		link.firstChild.onclick = function(){
			form.style.display = "none";
			return false;
		}
	},
	setHabitos:function(){
		var obj = document.getElementById("habitos");
		var link = document.getElementById("enviarHabito").firstChild;
		link.onclick = function(){
			this.removeChild(this.firstChild);
			if(obj.style.display == "" || obj.style.display == "none"){
				this.appendChild(document.createTextNode("cerrar formulario"))
				obj.style.display = "block";
				obj.focus();
			}else{
				this.appendChild(document.createTextNode("Enviar hábito / consejo >"))
				obj.style.display = "none";
			}
			return false;
		}
	},
	resetError:function(obj){
		var errors = document.getElementsByClassName("server", obj);
		for(var i = 0; i < errors.length; i++) obj.removeChild(errors[i]);
	},
	resetErrorBoletin:function(obj){
		var errors = document.getElementsByClassName("errorEmail", obj);
		for(var i = 0; i < errors.length; i++) obj.removeChild(errors[i]);
	},
	setPrice:function(){
		var tratamiento = document.forms.calculate.tratamiento;
		var importe = document.forms.calculate.importe;
		var value = 0;
		document.getElementById("tratamiento").onchange = function(){
			value = tratamiento[tratamiento.selectedIndex].value;
			importe.value = (value > 0) ? value : "";
		}
	},
	setCalculate:function(){
		var f = document.forms.calculate;
		var importe = parseFloat(f.importeF.value);
		f.cuota.value = behaviours.redondear(importe * parseFloat(f.meses[f.meses.selectedIndex].value),2);
	},
	redondear:function(numero,X) {
		X = (!X ? 2 : X);
		return Math.round(parseFloat(numero)*Math.pow(10,X))/Math.pow(10,X);
	}
}

var curves = {
	setMain:function(){
		var obj = document.getElementById("wrapperContent");
		var cTopLeft = cTopRight = cBottomLeft = cBottomRight = null;
		cTopLeft = curves.createElementsCurves("cLeftTop");
		cTopRight = curves.createElementsCurves("cRightTop");
		cBottomLeft = curves.createElementsCurves("cLeftBottom");
		cBottomRight = curves.createElementsCurves("cRightBottom");
		obj.appendChild(cTopLeft);
		obj.appendChild(cTopRight);
		obj.appendChild(cBottomLeft);
		obj.appendChild(cBottomRight);
	},
	setSelNavBar:function(){
		var obj = document.getElementById("navBar");
		var sel = document.getElementsByClassName("sel",obj)[0];
		var resetLi = document.getElementsByClassName("reset",obj)[0];
		var firstLi= obj.getElementsByTagName("li")[0]
		var cTopLeft = cTopRight  = null;
		cTopLeft = curves.createElementsCurves("selTL");
		cTopRight = curves.createElementsCurves("selTR");
		
		sel.appendChild(cTopLeft);
		sel.appendChild(cTopRight);
		
		firstLi.appendChild(cTopLeft.cloneNode(true));
		
		try{
			resetLi.appendChild(cTopRight.cloneNode(true));
		}catch(e){ }
		
	},
	setfooterNav:function(){
		var obj = document.getElementById("footerNav");
		var footerNavTL = footerNavTR = footerNavBL = footerNavBR = null;
		footerNavTL = curves.createElementsCurves("footerNavTL");
		footerNavTR = curves.createElementsCurves("footerNavTR");
		footerNavBL = curves.createElementsCurves("footerNavBL");
		footerNavBR = curves.createElementsCurves("footerNavBR");
		obj.appendChild(footerNavTL);
		obj.appendChild(footerNavTR);
		obj.appendChild(footerNavBL);
		obj.appendChild(footerNavBR);
	},
	createElementsCurves:function(style){
		var element = document.createElement("div");
		element.className = style + " sp";
		element.appendChild(document.createTextNode(" "));
		try{
			return element;
		}finally{
			element = null;
		}
	}
}

var formsValidations = {
	setErrorBlock:function(id, txt){
		var obj = document.getElementById(id);
		var errors = document.getElementsByClassName("error",obj.parentNode);
		var spanElement = null;
		if(txt != ""){
			spanElement = document.createElement("span");
			spanElement.className = "error";
			if(errors.length != 0){
				errors[0].removeChild(errors[0].firstChild);
				errors[0].appendChild(document.createTextNode(txt));
			}else{
				spanElement.appendChild(document.createTextNode(txt));
				obj.parentNode.insertBefore(spanElement,obj.parentNode.firstChild);
			}
		}else
			if(errors.length != 0) obj.parentNode.removeChild(errors[0]);
	},
	showInfoErr:function(parent, reference){
		var divElement = null;
		var auxErr = document.getElementsByClassName("errorForm", parent);
		var existErr = (auxErr.length != 0);
		var msgInfo = '<p>Por favor, revisa los campos con el icono <img src="/design/plain_site/images/ico_msgInfo.gif" alt="" /> asociado. </p><span>Muchas gracias</span>';
		if(existErr) divElement = auxErr[0];
		else{
			divElement = document.createElement("div");
			divElement.className = "errorForm";
			divElement.innerHTML = msgInfo;
			parent.insertBefore(divElement,reference);
		}
	},
	delInfoErr:function(parent, reference){
		var aux = null;
		var auxErr = document.getElementsByClassName("errorForm", parent);
		var errors = document.getElementsByClassName("error", reference);
		var existErr = (auxErr.length != 0);
		if(existErr) parent.removeChild(auxErr[0]);
		for(var i = 0; i < errors.length; i++){
			aux = errors[i].parentNode;
			aux.removeChild(errors[i]);
		}
	},
	validaCalculateForm:function() {
		var f = document.forms.calculate;
		var obj = document.getElementById("calculate");
		var errorTxt = "";
		var spanElement = fieldset = label = null;
		var auxErr = document.getElementsByClassName("error",obj);
		var existErr = (auxErr.length != 0);
		if(f.importeF.value == "" && f.meses.selectedIndex == 0) errorTxt = "Debes especificar un importe y los meses de financiación";
		else{
			if(f.importeF.value == "") errorTxt = "Debes especificar un importe a financiar";
			else{
				if(f.meses.selectedIndex == 0) errorTxt = "Debes especificar un mes de financiación";
				else
					if(!regularExpressions.esNumero(f.importeF.value)) errorTxt = "Debes especificar un importe numérico";
			}
		}
		if(errorTxt != ""){
			formsValidations.showInfoErr(document.getElementById("content"), document.getElementById("calculate"));
			if(existErr){
				spanElement = auxErr[0];
				spanElement.removeChild(spanElement.firstChild);
				spanElement.appendChild(document.createTextNode(errorTxt));
			}
			else{
				spanElement = document.createElement("span");
				spanElement.className = "error";
				spanElement.appendChild(document.createTextNode(errorTxt));
				fieldset = obj.getElementsByTagName("fieldset")[0];
				label = fieldset.getElementsByTagName("label")[0];
				fieldset.insertBefore(spanElement,label);
			}
		}else{
			formsValidations.delInfoErr(document.getElementById("content"), document.getElementById("calculate"));
			behaviours.setCalculate();
		}
		return false;
	},
	validaHabitosForm:function(){
		var f = document.forms.habitos;
		var obj = document.getElementById("habitos");
		var ok = true;
		if(f.habito.value == ""){
			formsValidations.setErrorBlock("habito", "Debes especificar un título");
			ok = false;
		}else  formsValidations.setErrorBlock("habito", "");
		if(f.descripcion.value == ""){
		 	formsValidations.setErrorBlock("descripcion", "Debes especificar una descripción");
			ok = false;
		}else  formsValidations.setErrorBlock("descripcion", "");
		if(!ok){
			formsValidations.showInfoErr(document.getElementById("content"), document.getElementById("habitos"));
			return false;
		}
	},
	validaInfoOnlineForm:function(){
		var f = document.forms.infoOnline;
		var obj = document.getElementById("infoOnline");
		var ok = true;
		if(f.clinica.selectedIndex == 0){
			formsValidations.setErrorBlock("clinica", "Debes seleccionar una clínica");
			ok = false;
		}else  formsValidations.setErrorBlock("clinica", "");
		if(f.tratamiento.selectedIndex == 0 && !f.tratamiento.disabled){
		 	formsValidations.setErrorBlock("tratamiento", "Debes seleccionar un tratamiento");
			ok = false;
		}else  formsValidations.setErrorBlock("tratamiento", "");
		
		if(document.getElementById("recibir").checked == true && document.getElementById("txtMail").checked == false){
			if(document.getElementById("email").value == ""){
				formsValidations.setErrorBlock("email", "Debes rellenar el email");
				ok = false;
			}
		}
		
		
		
		if (document.getElementById("telefono1").checked) {
			
			//ha seleccionat telefon
			
			if (f.numTelefono.value == "") {
				formsValidations.setErrorBlock("numTelefono", "Debes definir un número de teléfono");
				ok = false;
			}else {
				/*if (!regularExpressions.esNumero(f.numTelefono.value)) {
					formsValidations.setErrorBlock("numTelefono", "El número de teléfono debe ser numérico");
					ok = false;
				}
				else {
					if (f.numTelefono.value.length < 9) {
						formsValidations.setErrorBlock("numTelefono", "El número de teléfono debe tener 9 dígitos");
						ok = false;
					}
					else {
						formsValidations.setErrorBlock("numTelefono", "");
					}
				}*/
				formsValidations.setErrorBlock("numTelefono", "");
			}
		}else{
			
			//no ha seleccionat telefon
			
			formsValidations.setErrorBlock("numTelefono", "");
			
			if (document.getElementById("correo").checked){
				
				//ha seleccionat correu
				
				if (document.getElementById("mail").checked) {
					
					//ha seleccionat correu electronic
					
					if (f.txtMail.value == "") {
						formsValidations.setErrorBlock("txtMail", "Debes definir un correo electrónico");
						ok = false;
					}else {
						/*if (!regularExpressions.isValidEmail(f.txtMail.value)) {
							formsValidations.setErrorBlock("txtMail", "El formato de tu correo electrónico no es correcto");
							ok = false;
						} else */
						
						formsValidations.setErrorBlock("txtMail", "");
					}
				}else{
					
					//no ha seleccionat correu electronic
					
					formsValidations.setErrorBlock("txtMail", "");					
					
					if(document.getElementById("mailPost").checked){
					
						//ha seleccionat correu ordinari
					
						if(f.tipoVia.selectedIndex == 0){
							formsValidations.setErrorBlock("tipoVia", "Debes especificar un tipo de vía");
							ok = false;
						}else{
							formsValidations.setErrorBlock("tipoVia", "");
						}
						if(f.nombreVia.selectedIndex == 0){
							formsValidations.setErrorBlock("nombreVia", "Debes especificar un nombre de vía");
							ok = false;
						}else{
							formsValidations.setErrorBlock("nombreVia", "");
						}
						if(f.ciudad.selectedIndex == 0){
							formsValidations.setErrorBlock("ciudad", "Debes especificar una ciudad");
							ok = false;
						}else{
							formsValidations.setErrorBlock("ciudad", "");
						}
						if(f.provincia.selectedIndex == 0){
							formsValidations.setErrorBlock("provincia", "Debes especificar una provincia");
							ok = false;
						}else{
							formsValidations.setErrorBlock("provincia", "");
						}
						if(f.cp.value == ""){
							formsValidations.setErrorBlock("cp", "Debes especificar un código postal");
							ok = false;
						}else{
							if (!regularExpressions.esNumero(f.cp.value)) {
								formsValidations.setErrorBlock("cp", "El código postal debe ser numérico");
								ok = false;
							}else {
								formsValidations.setErrorBlock("cp", "");
							}
						}
					}else{
						
						//no ha seleccionat cap correu
						
						formsValidations.setErrorBlock("mail", "Debes definir si te enviamos la información a tu correo electrónico o a tu correo postal o a ambos");
						ok=false;						
					}
				}
			}else{
				
				//no ha seleccionat res!!
				
				formsValidations.setErrorBlock("telefono1", "Debes definir cómo deseas recibir la información");
				ok = false;
			}
		}
		
		if(f.edad.selectedIndex == 0){
		 	formsValidations.setErrorBlock("edad", "Debes definir tu edad");
			ok = false;
		}else  formsValidations.setErrorBlock("edad", "");
		if(f.nombre.value == ""){
		 	formsValidations.setErrorBlock("nombre", "Debes darnos tu nombre");
			ok = false;
		}else  formsValidations.setErrorBlock("nombre", "");
		if(f.apellidos.value == ""){
		 	formsValidations.setErrorBlock("apellidos", "Debes darnos tus apellidos");
			ok = false;
		}else  formsValidations.setErrorBlock("apellidos", "");
		if(!ok){
			formsValidations.showInfoErr(document.getElementById("content"), obj);
			return false;
		}
	},
	validaCitaOnForm: function(){
		var f = document.forms.citaOnline2;
		var obj = document.getElementById("citaOnline2");
		var ok = true;
		if (f.nombre.value ==""){
			formsValidations.setErrorBlock("nombre", "Debes darnos un nombre");
			ok = false;
		}
		else  formsValidations.setErrorBlock("nombre", "");
		if(f.apellidos.value == ""){
		 	formsValidations.setErrorBlock("apellidos", "Debes darnos tus apellidos");
			ok = false;
		}else  formsValidations.setErrorBlock("apellidos", "");
		
		if(f.horaPreferente.selectedIndex == 0){
		 	formsValidations.setErrorBlock("horaPreferente", "Debes seleccionar una hora de llamada");
			ok = false;
		}else  formsValidations.setErrorBlock("horaPreferente", "");
		
		
		if(f.aceptar.checked ==0){
		 	formsValidations.setErrorBlock("aceptar", "Debes aceptar las condiciones");
			ok = false;
		}else  formsValidations.setErrorBlock("aceptar", "");
				
		if (f.numTelefono2.value == "") {
				formsValidations.setErrorBlock("numTelefono2", "Debes especificar un número de teléfono");
				ok = false;
			}else {
				if (!regularExpressions.esNumero(f.numTelefono2.value)) {
					formsValidations.setErrorBlock("numTelefono2", "El formato de teléfono no es válido");
					ok = false;
				}else {
					formsValidations.setErrorBlock("numTelefono2", "");
					if (f.numTelefono2.value.length != 9) {
						formsValidations.setErrorBlock("numTelefono2", "El número de teléfono debe tener 9 dígitos");
						ok = false;
					}
					
				}
			}
			
		if(!ok){
			formsValidations.showInfoErr(document.getElementById("content"), obj);
			return false;
		}
		
	},
	validaCitaOnlineForm: function(){
		var f = document.forms.citaOnline;
		var obj = document.getElementById("citaOnline");
		var ok = true;
		if(f.dia.selectedIndex == 0 && f.mes.selectedIndex == 0){
		 	formsValidations.setErrorBlock("dia", "Debes definir una fecha de cita");
			ok = false;
		}else {
			if (f.dia.selectedIndex == 0) {
				formsValidations.setErrorBlock("dia", "Debes definir un día de cita");
				ok = false;
			}else formsValidations.setErrorBlock("dia", "");
			if (f.mes.selectedIndex == 0) {
				formsValidations.setErrorBlock("dia", "Debes definir un mes de cita");
				ok = false;
			}
		}

		if(f.telefono1.checked){
			 formsValidations.setErrorBlock("txtMail", "");
			if (f.numTelefono.value == "") {
				formsValidations.setErrorBlock("numTelefono", "Debes especificar un número de teléfono");
				ok = false;
			}else {
				if (!regularExpressions.esNumero(f.numTelefono.value)) {
					formsValidations.setErrorBlock("numTelefono", "El formato de teléfono no es válido");
					ok = false;
				}else {
					if (f.numTelefono.value.length != 9) {
						formsValidations.setErrorBlock("numTelefono", "El número de teléfono debe tener 9 dígitos");
						ok = false;
					}
					else formsValidations.setErrorBlock("numTelefono", "");
				}
			}
			if (f.hora_llamada.selectedIndex == 0) {
				formsValidations.setErrorBlock("hora_llamada", "Debes definir la hora a la que quieres que te llamemos para confirmar tu cita");
				ok = false;
			}else formsValidations.setErrorBlock("hora_llamada", "") ;
		}else{
			formsValidations.setErrorBlock("telefono1", "");
			formsValidations.setErrorBlock("numTelefono", "");
			formsValidations.setErrorBlock("hora_llamada", "") ;
		}

		if(f.correo.checked){
			if(f.txtMail.value == ""){
				formsValidations.setErrorBlock("txtMail", "Debes especificar un correo electrónico");
				ok = false;
			}else{
				if(!regularExpressions.isValidEmail(f.txtMail.value)){
					formsValidations.setErrorBlock("txtMail", "El formato de tu correo electrónico no es correcto");
					ok = false;
				}else formsValidations.setErrorBlock("txtMail", "");
			}
		}else{
			formsValidations.setErrorBlock("telefono1", "");
			formsValidations.setErrorBlock("txtMail", "");
		}

		if(!f.telefono1.checked && !f.correo.checked){
			formsValidations.setErrorBlock("telefono1", "Debes especificar una forma de contacto; bien teléfono o correo electrónico");
			ok = false;
		}else{
			formsValidations.setErrorBlock("telefono1", "");
			//ok=true;
		}

		if(f.horaPreferente.selectedIndex == 0){
		 	formsValidations.setErrorBlock("horaPreferente", "Debes seleccionar una hora de llamada");
			ok = false;
		}else  formsValidations.setErrorBlock("horaPreferente", "");
		if(f.clinica.selectedIndex == 0){
			formsValidations.setErrorBlock("clinica", "Debes seleccionar una clínica");
			ok = false;
		}else  formsValidations.setErrorBlock("clinica", "");


		if(f.edad.selectedIndex == 0){
		 	formsValidations.setErrorBlock("edad", "Debes definir tu edad");
			ok = false;
		}else  formsValidations.setErrorBlock("edad", "");
		if(f.nombre.value == ""){
		 	formsValidations.setErrorBlock("nombre", "Debes darnos tu nombre");
			ok = false;
		}else  formsValidations.setErrorBlock("nombre", "");
		if(f.apellidos.value == ""){
		 	formsValidations.setErrorBlock("apellidos", "Debes darnos tus apellidos");
			ok = false;
		}else  formsValidations.setErrorBlock("apellidos", "");
		
		if(document.getElementById("recibir").checked == true && document.getElementById("txtMail").checked == false){
			if(document.getElementById("email").value == ""){
				formsValidations.setErrorBlock("email", "Debes rellenar el email");
				ok = false;
			}
		}
			
		if(!ok){
			formsValidations.showInfoErr(document.getElementById("content"), obj);
			return false;
		}
		
	},
	validaTeLlamamosForm:function(){
		var f = document.forms.teLlamamos;
		var obj = document.getElementById("teLlamamos");
		var ok = true;
		if(f.clinica.selectedIndex == 0){
			formsValidations.setErrorBlock("clinica", "Debes seleccionar una clínica");
			ok = false;
		}else  formsValidations.setErrorBlock("clinica", "");
		if(f.tratamiento.selectedIndex == 0 && !f.tratamiento.disabled){
		 	formsValidations.setErrorBlock("tratamiento", "Debes seleccionar un tratamiento");
			ok = false;
		}else  formsValidations.setErrorBlock("tratamiento", "");


		if(f.numTelefono.value == "" && f.numTelefono2.value == ""){
		 	formsValidations.setErrorBlock("numTelefono", "Debes decirnos al menos un teléfono de contacto");
			ok = false;
		}else{
			if(f.numTelefono.value != "" && !regularExpressions.esNumero(f.numTelefono.value)) {
				formsValidations.setErrorBlock("numTelefono", "El formato de teléfono no es válido");
				ok = false;
			}else {
				if(f.numTelefono.value != "" && f.numTelefono.value.length != 9){
					formsValidations.setErrorBlock("numTelefono", "El número de teléfono debe tener 9 dígitos");
					ok = false;
				}else formsValidations.setErrorBlock("numTelefono", "");
			}
			if(f.numTelefono2.value != "" && !regularExpressions.esNumero(f.numTelefono2.value)) {
				formsValidations.setErrorBlock("numTelefono2", "El formato de teléfono no es válido");
				ok = false;
			}else {
				if(f.numTelefono2.value != "" && f.numTelefono2.value.length != 9){
					formsValidations.setErrorBlock("numTelefono2", "El número de teléfono debe tener 9 dígitos");
					ok = false;
				}else formsValidations.setErrorBlock("numTelefono2", "");
			}
		}

		if(f.horapref.selectedIndex == 0){
		 	formsValidations.setErrorBlock("horapref", "Debes seleccionar una hora de llamada");
			ok = false;
		}else  formsValidations.setErrorBlock("horapref", "");

		if(f.edad.selectedIndex == 0){
		 	formsValidations.setErrorBlock("edad", "Debes definir tu edad");
			ok = false;
		}else  formsValidations.setErrorBlock("edad", "");
		if(f.nombre.value == ""){
		 	formsValidations.setErrorBlock("nombre", "Debes darnos tu nombre");
			ok = false;
		}else  formsValidations.setErrorBlock("nombre", "");
		if(f.apellidos.value == ""){
		 	formsValidations.setErrorBlock("apellidos", "Debes darnos tus apellidos");
			ok = false;
		}else  formsValidations.setErrorBlock("apellidos", "");
		if(!ok){
			formsValidations.showInfoErr(document.getElementById("content"), obj);
			return false;
		}
	},
	validaBoletinForm:function(){
		var f = document.forms.boletin;
		var obj = document.getElementById("boletin");
		var ok = true;
		behaviours.resetErrorBoletin(obj.parentNode);
		if(f.nom.value == ""){
			formsValidations.setErrorBlock("nom", "Debes especificar un nombre");
			ok = false;
		}else  formsValidations.setErrorBlock("nom", "");
		if (f.email.value == "") {
			formsValidations.setErrorBlock("email", "Debes especificar un email");
			ok = false;
		}else {
			if(!regularExpressions.isValidEmail(f.email.value)){
				formsValidations.setErrorBlock("email", "El formato de tu correo electrónico no es correcto");
				ok = false;
			}else{
				if(f.repite.value != f.email.value){
		 			formsValidations.setErrorBlock("repite", "Las direcciones no son iguales");
					ok = false;
				}else{
					formsValidations.setErrorBlock("email", "");
					if(!regularExpressions.isValidEmail(f.repite.value)){
						formsValidations.setErrorBlock("repite", "El formato de tu correo electrónico no es correcto");
						ok = false;
					}else formsValidations.setErrorBlock("repite", "");
				}
			}
		}

		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}
	},
	validaRegisterForm: function(){
		var f = document.forms.register;
		var obj = document.getElementById("register");
		var ok = true;
		if (document.getElementById("alias")) behaviours.resetError(obj.getElementsByTagName("fieldset")[0]);
		else behaviours.resetError(obj);
		if(f.user.value == ""){
			formsValidations.setErrorBlock("user", "Debes especificar un usuario");
			ok = false;
		}else  formsValidations.setErrorBlock("user", "");
		if(f.pass.value == ""){
			formsValidations.setErrorBlock("pass", "Debes especificar una contraseña");
			ok = false;
		}else  formsValidations.setErrorBlock("pass", "");
		if (document.getElementById("alias")) {
			if (f.alias.value == "") {
				formsValidations.setErrorBlock("alias", "Debes especificar un alias");
				ok = false;
			}else formsValidations.setErrorBlock("alias", "");
			if (f.pass2.value == "") {
				formsValidations.setErrorBlock("pass2", "Debes repetir de nuevo la contraseña elegida");
				ok = false;
			}else {
				if (f.pass.value != f.pass2.value) {
					formsValidations.setErrorBlock("pass2", "Las contraseñas no coindicen");
					ok = false;
				} else formsValidations.setErrorBlock("pass2", "");
			}

			if (f.email.value == "") {
				formsValidations.setErrorBlock("email", "Debes especificar un email");
				ok = false;
			} else {
				if (!regularExpressions.isValidEmail(f.email.value)) {
					formsValidations.setErrorBlock("email", "El formato de tu correo electrónico no es correcto");
					ok = false;
				} else formsValidations.setErrorBlock("email", "");
			}
			if (f.emailConf.value == "") {
				formsValidations.setErrorBlock("emailConf", "Debes repetir de nuevo el Email");
				ok = false;
			} else {
				if (f.email.value != f.emailConf.value) {
					formsValidations.setErrorBlock("emailConf", "Las direcciones de correo electrónico no coindicen");
					ok = false;
				} else formsValidations.setErrorBlock("emailConf", "");
			}
		}
		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}
	},
	validaSendingForm:function(){
		var f = document.forms.sendingForm;
		var obj = document.getElementById("sendingForm");
		var ok = okMailsAmigo = true;
		var aux = "";
		if(f.nombreR.value == ""){
			formsValidations.setErrorBlock("nombreR", "Debes especificar un nombre");
			ok = false;
		}else  formsValidations.setErrorBlock("nombreR", "");
		if(f.tuemailR.value == ""){
			formsValidations.setErrorBlock("tuemailR", "Debes especificar tu email");
			ok = false;
		}else{
			if (!regularExpressions.isValidEmail(f.tuemailR.value)) {
				formsValidations.setErrorBlock("tuemailR", "El formato de tu correo electrónico no es correcto");
				ok = false;
			} else formsValidations.setErrorBlock("tuemailR", "");
		}
		if (f.emailfriendsR.value == "") {
			formsValidations.setErrorBlock("emailfriendsR", "El email de tu amigo es requerido");
			ok = false;
		}
		else {
			if (f.emailfriendsR.value.numOfCharacters("@") == 0){
				formsValidations.setErrorBlock("emailfriendsR", "El formato del Email de tu amigo no es válido");
				ok = false;
			}else {
				aux = f.emailfriendsR.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("emailfriendsR", "El formato del email de tu amigo no es válido");
					ok = false;
				}else {
					if (aux.numOfCharacters("@") > 1 && f.emailfriendsR.value.numOfCharacters(";") != f.emailfriendsR.value.numOfCharacters("@") - 1) {
						formsValidations.setErrorBlock("emailfriendsR", "Debes separar los emails de tus amigos con comas");
						ok = false;
					}
					else formsValidations.setErrorBlock("emailfriendsR", "");
				}
			}
		}
		if(f.mensajeR.value == ""){
			formsValidations.setErrorBlock("mensajeR", "Debes especificar un mensaje");
			ok = false;
		}else  formsValidations.setErrorBlock("mensajeR", "");
		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}

	},
	validaPassForm:function(){
		var f = document.forms.passForm;
		var obj = document.getElementById("passForm");
		var ok = true;
		behaviours.resetError(obj);
		if(f.email.value == ""){
			formsValidations.setErrorBlock("email", "Debes especificar tu email");
			ok = false;
		}else{
			if (!regularExpressions.isValidEmail(f.email.value)) {
				formsValidations.setErrorBlock("email", "El formato de tu correo electrónico no es correcto");
				ok = false;
			} else formsValidations.setErrorBlock("email", "");
		}
		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}
	},
	validaDelNews:function(){
		var f = document.forms.delNews;
		var obj = document.getElementById("delNews");
		var ok = true;
		behaviours.resetError(obj);
		if(f.email.value == ""){
			formsValidations.setErrorBlock("email", "Debes especificar tu email");
			ok = false;
		}else{
			if (!regularExpressions.isValidEmail(f.email.value)) {
				formsValidations.setErrorBlock("email", "El formato de tu correo electrónico no es correcto");
				ok = false;
			} else formsValidations.setErrorBlock("email", "");
		}
		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}
	},
	validaModifPass:function(){
		var f = document.forms.modifPass;
		var obj = document.getElementById("modifPass");
		var ok = true;
		behaviours.resetError(obj.getElementsByTagName("fieldset")[0]);
		if(f.current.value == ""){
			formsValidations.setErrorBlock("current", "Debes indicar tu contraseña actual");
			ok = false;
		}else  formsValidations.setErrorBlock("current", "");
		if(f.pass.value == ""){
			formsValidations.setErrorBlock("pass", "Debes especificar una contraseña");
			ok = false;
		}else  formsValidations.setErrorBlock("pass", "");
		if (f.pass2.value == "") {
			formsValidations.setErrorBlock("pass2", "Debes repetir de nuevo la contraseña elegida");
			ok = false;
		}else {
			if (f.pass.value != f.pass2.value) {
				formsValidations.setErrorBlock("pass2", "Las contraseñas no coindicen");
				ok = false;
			} else formsValidations.setErrorBlock("pass2", "");
		}
		if(!ok){
			formsValidations.showInfoErr(obj.parentNode, obj);
			return false;
		}
	}
}

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));
	},
	esCadena:function(c) { return /^[0-9A-Za-z-\/???,'/\\t\n\r\s]+$/.test(c); },
	esNumero:function(c){return /^[0-9]+$/.test(c);}
}

var home = {
	history:null,
	tabHistory:null,
	modules:function(){
		var obj = document.getElementById("navBar");
		var entry = document.getElementById("entry");
		var links = obj.getElementsByTagName("a");
		home.history = document.getElementById("wrap1");
		home.tabHistory = links[0].parentNode;
		for(var i = 0; i < links.length; i++)
			links[i].onclick = function(i){
				return function(e){
					var parent = this.parentNode;
					var aux = document.getElementById("wrap"+(i+1));
					home.history.className = home.history.className.replace("blockModule", "noneModule");
					home.tabHistory.className = home.tabHistory.className.replace("sel", "");
					aux.className = aux.className.replace("noneModule", "blockModule");
					parent.className = (parent.className == "reset") ? "reset sel" : "sel";
					home.history = aux;
					home.tabHistory = parent;
					curves.setSelNavBar();
					return false;
				};
			}(i);

	}
}

var no_home = {
	history:null,
	tabHistory:null,
	modules:function(){
		var obj = document.getElementById("navBar");
		var entry = document.getElementById("entry");
		var links = obj.getElementsByTagName("a");
		no_home.history = document.getElementById("wrap1");
		no_home.tabHistory = links[0].parentNode;
		for(var i = 0; i < links.length; i++)
			links[i].onclick = function(i){
				return function(e){
					var parent = this.parentNode;
					var aux = document.getElementById("wrap"+(i+1));
					no_home.history.className = no_home.history.className.replace("blockModule", "noneModule");
					no_home.tabHistory.className = no_home.tabHistory.className.replace("sel", "");
					aux.className = aux.className.replace("noneModule", "blockModule");
					parent.className = (parent.className == "reset") ? "reset sel" : "sel";
					no_home.history = aux;
					no_home.tabHistory = parent;
					curves.setSelNavBar();
					return false;
				};
			}(i);

	}
}


var load={
	existeId:function(cid){
		if(document.getElementById(cid)) return true;
		return false;
	},
	setEvents:function(){

		if (load.existeId("citaOnline2")){
			 document.getElementById("citaOnline2").onsubmit = formsValidations.validaCitaOnForm;
		}else{
			curves.setMain();
			if(load.existeId("home")) home.modules();
			if(load.existeId("no_home")) no_home.modules();
			if(load.existeId("navBar")){
				fixes.navBar();
				if (document.getElementsByClassName("sel",document.getElementById("navBar")).length != 0) curves.setSelNavBar();
			}
			if(load.existeId("sending")){
				behaviours.setRecommend();
				document.getElementById("sendingForm").onsubmit = formsValidations.validaSendingForm;
			}
			if (load.existeId("calculate")) document.getElementById("calculate").onsubmit = formsValidations.validaCalculateForm;
			if(load.existeId("habitos")) document.getElementById("habitos").onsubmit = formsValidations.validaHabitosForm;
			if(load.existeId("infoOnline")){
				 behaviours.setInfoOnline()
				 document.getElementById("infoOnline").onsubmit = formsValidations.validaInfoOnlineForm;
				 behaviours.setEventCmb();
			}
			if(load.existeId("teLlamamos")){
				document.getElementById("teLlamamos").onsubmit = formsValidations.validaTeLlamamosForm;
				behaviours.setEventCmb();
			}
			if (load.existeId("citaOnline")){
				behaviours.setCitaOnline();
				document.getElementById("citaOnline").onsubmit = formsValidations.validaCitaOnlineForm;
			}
			if(load.existeId("boletin")) document.getElementById("boletin").onsubmit = formsValidations.validaBoletinForm;
			if (load.existeId("register")) document.getElementById("register").onsubmit = formsValidations.validaRegisterForm;
			if(load.existeId("passForm")) document.getElementById("passForm").onsubmit = formsValidations.validaPassForm;
			if(load.existeId("delNews")) document.getElementById("delNews").onsubmit = formsValidations.validaDelNews;
			if(load.existeId("modifPass")) document.getElementById("modifPass").onsubmit = formsValidations.validaModifPass;
			if(load.existeId("enviarHabito")) behaviours.setHabitos();
			if(load.existeId("footerNav")) curves.setfooterNav();
			if(load.existeId("citaOnline")) behaviours.setInfoOnline2();
			if(load.existeId("infoOnline")) behaviours.setTellamamos2();
		}
	}
}

if(W3CDOM) e.addEvent(window, "load", load.setEvents, false);
