function validarFormulario(formulario){

	var bValido = true;
	var sAlert = "";
	
	var bRadio
	for (i=0;i<formulario.elements.length;i++){
		//alert(formulario.elements[i].title);
		
		bRadio = false;
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].type=="select-one"){
								if(formulario.elements[i][formulario.elements[i].selectedIndex].value==""){
									bValido = false;
									sAlert+="Complete el campo '"+formulario.elements[i].title+"'\n";
								}
							}else{
								if(formulario.elements[i].value==""){
									bValido = false;
									sAlert+="Complete el campo '"+formulario.elements[i].title+"'\n";
								}
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete el campo '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo '"+formulario.elements[i].title+"' ha de ser numérico\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete el campo '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Complete correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "fecha":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete el campo '"+formulario.elements[i].title+"'\n";
							}else{
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Complete correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "avisolegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "Debe aceptar la 'Política de privacidad'\n";						
							}						
							break;
						case "dni":
							DNIRegexp =/^\d{8}[A-Z]{1}$/;
							if(!DNIRegexp.test(formulario.elements[i].value)){
								bValido = false;
								sAlert+= "Complete correctamente el campo '"+formulario.elements[i].title+"' (p.e. 456781579X)\n";
							}						
							break;							
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo "+formulario.elements[i].title+" ha de ser numérico\n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Complete correctamente el campo "+formulario.elements[i].title+"\n";
								}
							}
							break;
						case "fecha":
							if(formulario.elements[i].value!=""){
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Complete correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;							
					}				
				break;
			}
		}
      	}
      	if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente información para poder continuar:\n\n'+sAlert);
      		return false;
	}
}

function validarEmail(addressS){
   emailRegexp = /^(.+)@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    if (emailRegexp.test(addressS))
    {
        return true;
    }
    return false;
}

function validarFecha(fecha){
	//fechaRegexp = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(\d{4}))|((29)(\.|-|\/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))+$/;

	//if (fechaRegexp.test(fecha)){
	      return true;
	  // }
      //return false;
}

function validarRegistroAreaPrivada(formulario){
	
	var bValido = true;
	var sAlert = "";
	
	for (i=0;i<formulario.elements.length;i++){
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+="Cumplimente el campo '"+formulario.elements[i].title+"'\n";
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo '"+formulario.elements[i].title+"' ha de ser numérico\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente el campo '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "avisoLegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "Debe aceptar la 'Política de privacidad'\n";						
							}						
							break;
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "El campo "+formulario.elements[i].title+" ha de ser numérico\n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente correctamente el campo "+formulario.elements[i].title+"\n";
								}
							}
							break;
					}				
				break;
			}
		}
      	}
		
		
	if((formulario.password.value!=formulario.passwordR.value)||(formulario.password.value==""||formulario.password.value==""))
		{
			bValido= false;
			sAlert+="Compruebe que las contraseñas sean iguales\n"
		}
      	
      	if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente información para poder continuar:\n\n'+sAlert);
      		return false;
	}
}


function validarFormulario_2(formulario){
// Ingles
	var bValido = true;
	var sAlert = "";
	
	var bRadio
	for (i=0;i<formulario.elements.length;i++){
		//alert(formulario.elements[i].title);
		
		bRadio = false;
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].type=="select-one"){
								if(formulario.elements[i][formulario.elements[i].selectedIndex].value==""){
									bValido = false;
									sAlert+="Complete the field needed '"+formulario.elements[i].title+"'\n";
								}
							}else{
								if(formulario.elements[i].value==""){
									bValido = false;
									sAlert+="Complete the field needed '"+formulario.elements[i].title+"'\n";
								}
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete the field needed '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+"' must be numerical \n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete the field needed '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= " '"+formulario.elements[i].title+"'must contain a correct email  \n";
								}
							}						
							break;
						case "fecha":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete the field needed '"+formulario.elements[i].title+"'\n";
							}else{
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "'"+formulario.elements[i].title+" must contain a correct date'\n";
								}
							}						
							break;
						case "avisolegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "You must accept the 'Privacy policy'\n";						
							}						
							break;
						case "dni":
							DNIRegexp =/^\d{8}[A-Z]{1}$/;
							if(!DNIRegexp.test(formulario.elements[i].value)){
								bValido = false;
								sAlert+= "Complete the field needed '"+formulario.elements[i].title+"' (p.e. 456781579X)\n";
							}						
							break;							
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= " "+formulario.elements[i].title+" must be numerical \n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= " "+formulario.elements[i].title+"must contain a correct email \n";
								}
							}
							break;
						case "fecha":
							if(formulario.elements[i].value!=""){
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= " '"+formulario.elements[i].title+"'must contain a correct date \n";
								}
							}						
							break;							
					}				
				break;
			}
		}
      	}
      	if(bValido){
      		return true;
      	}else{
      		alert('Please, verify the following information before you continue:\n\n'+sAlert);
      		return false;
	}
}


function validarFormulario_3(formulario){
// PORTUGUES
	var bValido = true;
	var sAlert = "";
	
	var bRadio
	for (i=0;i<formulario.elements.length;i++){
		//alert(formulario.elements[i].title);
		
		bRadio = false;
		//Genero el array
		arrayTemp = formulario.elements[i].name.split("_").reverse();
		if(arrayTemp[1]){//Para que no rompa en caso de no ser un campo a validar
			switch(arrayTemp[1]){
				case "requerido":
					switch(arrayTemp[0]){
						case "texto":
							if(formulario.elements[i].type=="select-one"){
								if(formulario.elements[i][formulario.elements[i].selectedIndex].value==""){
									bValido = false;
									sAlert+="Cumplimente o campo '"+formulario.elements[i].title+"'\n";
								}
							}else{
								if(formulario.elements[i].value==""){
									bValido = false;
									sAlert+="Cumplimente o campo '"+formulario.elements[i].title+"'\n";
								}
							}							
							break;
						case "numero":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente o campo '"+formulario.elements[i].title+"'\n";							
							}else{
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "O campo '"+formulario.elements[i].title+"' tem que ser numerico\n";
								}
							}
							break;
						case "email":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Complete el campo '"+formulario.elements[i].title+"'\n";						
							}else{
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente corretamente o campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "fecha":
							if(formulario.elements[i].value==""){
								bValido = false;
								sAlert+= "Cumplimente o campo '"+formulario.elements[i].title+"'\n";
							}else{
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente corretamente o campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;
						case "avisolegal":
							if(!formulario.avisoLegal.checked){
								bValido = false;
								sAlert+= "Debe aceptar la 'Política de privacidad'\n";						
							}						
							break;
						case "dni":
							DNIRegexp =/^\d{8}[A-Z]{1}$/;
							if(!DNIRegexp.test(formulario.elements[i].value)){
								bValido = false;
								sAlert+= "Cumplimente corretamente o campo '"+formulario.elements[i].title+"' (p.e. 456781579X)\n";
							}						
							break;							
					}
				break;
				case "norequerido":
					switch(arrayTemp[0]){
						case "numero":
							if(formulario.elements[i].value!=""){
								if(isNaN(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "O campo "+formulario.elements[i].title+" tem que ser numerico \n";
								}
							}							
							break;
						case "email":
							if(formulario.elements[i].value!=""){
								if(!validarEmail(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente corretamente o campo "+formulario.elements[i].title+"\n";
								}
							}
							break;
						case "fecha":
							if(formulario.elements[i].value!=""){
								if(!validarFecha(formulario.elements[i].value)){
									bValido = false;
									sAlert+= "Cumplimente corretamente o campo '"+formulario.elements[i].title+"'\n";
								}
							}						
							break;							
					}				
				break;
			}
		}
      	}
      	if(bValido){
      		return true;
      	}else{
      		alert('Verifique as seguintes informações, a fim de continuar\n\n'+sAlert);
      		return false;
	}
}

function cambiarClave(formulario){
	
	var bValido = true;
	var sAlert = "";
		if(formulario.clave.value==""){
			bValido = false;
			sAlert+="Cumplimente el campo 'Contraseña'\n";
		}							
      	
		if(formulario.Rclave.value==""){
			bValido = false;
			sAlert+="Cumplimente el campo 'Repetir Contraseña'\n";
		}							
      	
		if(formulario.clave.value!=formulario.Rclave.value){
			bValido = false;
			sAlert+="'Contraseña' y 'Repetir Contraseña' debe ser iguales\n";
		}							
      	
		if(bValido){
      		return true;
      	}else{
      		alert('Por favor, compruebe la siguiente información para poder continuar:\n\n'+sAlert);
      		return false;
		}
}

function Provincias(formulario){
	if (document.getElementById('pais').selectedIndex != 'Brasil'){
		document.getElementById('provincia').value='Fuera de Brasil';
	}
}
function Paises(formulario){
	if (document.getElementById('provincia').selectedIndex != 'Fuera de Brasil'){
		document.getElementById('pais').value='Brasil';
	}
}
