
var error_intro = "<p>No se han podido enviar los datos porque:</p>";
var error_camps_obligatoris = "<li>Faltan <strong>campos obligatorios</strong></li>";
var error_privacitat = "<p>Tienes que leer y aceptar la <strong>Política de Privacidad</strong> antes de enviar los datos.</p>";
var error_mail = "<li><strong>E-mail</strong> no es correcto</li>";
var error_repcontrasenya = "<li><strong>Confirmación de contraseña</strong> erronea</strong></li>";
var error_actcontrasenya = "<li><strong>Contraseña actual</strong> incorrecta</li>";
var error_codigopostal = "<li>El <strong>Código Postal</strong> no tiene 5 dígitos</li>";


function val_registro()
{
	var form = $('registro');
	var inputs = form.getElements();
	var error = '';
	var error_obligatoris = false;
	inputs.each(function(el) {
		if(!el.disabled)
		{
			if(!el.hasClassName("required")&&(el.getValue()=='')) { el.removeClassName("error");  }
			else if(el.hasClassName("required")&&(el.getValue()=='')) { error_obligatoris = true; el.addClassName("error"); }
			else
			{
				if(el.name=='email') {
					if(!isAMail(el)) {
						error += error_mail;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='cp') {
					if(!isANumber(el, 5)) {
						error += error_codigopostal;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else el.removeClassName("error"); 
			}
		}
	});
	// si hay errores
	if((error!='')||(error_obligatoris))
	{
		new Effect.ScrollTo('botonEnviar', {offset: 100});
		error = '<ul>'+(error_obligatoris?error_camps_obligatoris:"")+error+'</ul>';
		error = error_intro+error;
		new Growl(error);
		return false;
	}
	else
	{
		new Effect.ScrollTo('botonEnviar', {offset: 100});
		// no hay errores: ha marcado la política de privacidad?
		if($('privacy').getValue()==null) 
		{
			new Growl(error_privacitat);
			return false;
		}
		// envío
		return true;
	}
}


function val_misdatos(op)
{

	if (op == 1) {
		var form = $('misdatos');
		var inputs = form.getElements();
		var error = '';
		var error_obligatoris = false;
		inputs.each(function(el) {
			if(!el.disabled)
			{
				if(!el.hasClassName("required")&&(el.getValue()=='')) { el.removeClassName("error");  }
				else if(el.hasClassName("required")&&(el.getValue()=='')) { error_obligatoris = true; el.addClassName("error"); }
				else
				{
					if(el.name=='contrasenya') {
						f = document.forms["misdatos"];
						if (f.contrasenya.value!=f.confirmarContrasenya.value) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else el.removeClassName("error"); 
				}
			}
		});
		// si hay errores
		if((error!='')||(error_obligatoris))
		{
			new Effect.ScrollTo('botonEnviar', {offset: 100});
			error = '<ul>'+(error_obligatoris?error_camps_obligatoris:"")+error+'</ul>';
			error = error_intro+error;
			new Growl(error);
			return false;
		}
	}
	
	if (op == 2) {
		var f = document.forms["misdatos"];
		var p  = f.p.value;
		var v1 = hex_md5(f.contrasenya.value);
		var v2 = f.nuevaContrasenya.value;
		var v3 = f.confirmarContrasenya.value;
		var form = $('misdatos');
		var inputs = form.getElements();
		var error = '';
		var error_obligatoris = false;
		inputs.each(function(el) {
			if(el.name=='contrasenya') { el1 = el; }
			if(!el.disabled)
			{
				if(!el.hasClassName("required")&&(el.getValue()=='')) { el.removeClassName("error");  }
				else if(el.hasClassName("required")&&(el.getValue()=='')) { error_obligatoris = true; el.addClassName("error"); }
				else
				{
					if(el.name=='cp') {
						if(!isANumber(el, 5)) {
							error += error_codigopostal;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else if(el.name=='nuevaContrasenya') {
						if (v1 == '' || v1 != p) {
							error += error_actcontrasenya; el1.addClassName("error");
						}
						if (v2 != v3) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else if(el.name=='confirmarContrasenya') {
						if (v2 != v3) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else el.removeClassName("error"); 
				}
			}
		});
		// si hay errores
		if((error!='')||(error_obligatoris))
		{
			new Effect.ScrollTo('botonEnviar', {offset: 100});
			error = '<ul>'+(error_obligatoris?error_camps_obligatoris:"")+error+'</ul>';
			error = error_intro+error;
			new Growl(error);
			return false;
		}
	}
}


/*
function val_misdatos(op)
{
	if (op == 2) {
		var f = document.forms["misdatos"];
		var p  = f.p.value;
		var v1 = f.contrasenya.value;
		var v2 = f.nuevaContrasenya.value;
		var v3 = f.confirmarContrasenya.value;
	}
	var form = $('misdatos');
	var inputs = form.getElements();
	var error = '';
	var error_obligatoris = false;
	inputs.each(function(el) {
		if(op == 2 && el.name=='contrasenya') { el1 = el; }
		if(!el.disabled)
		{
			if(!el.hasClassName("required")&&(el.getValue()=='')) { el.removeClassName("error");  }
			else if(el.hasClassName("required")&&(el.getValue()=='')) { error_obligatoris = true; el.addClassName("error"); }
			else
			{
				if (op == 1) {
					if(el.name=='contrasenya') {
						f = document.forms["misdatos"];
						if (f.contrasenya.value!=f.confirmarContrasenya.value) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else if(el.name=='cp') {
						if(!isANumber(el, 5)) {
							error += error_codigopostal;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else el.removeClassName("error"); 
				}
				if (op == 2) {
					if(el.name=='cp') {
						if(!isANumber(el, 5)) {
							error += error_codigopostal;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else if(el.name=='nuevaContrasenya') {
						if (v1 == '' || v1 != p) {
							error += error_actcontrasenya; el1.addClassName("error");
						}
						if (v2 != v3) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else if(el.name=='confirmarContrasenya') {
						if (v2 != v3) {
							error += error_repcontrasenya;
							el.addClassName("error");
						}
						else el.removeClassName("error"); 
					}
					else el.removeClassName("error"); 
				}
			}
		}
	});
	// si hay errores
	if((error!='')||(error_obligatoris))
	{
		new Effect.ScrollTo('botonEnviar', {offset: 100});
		error = '<ul>'+(error_obligatoris?error_camps_obligatoris:"")+error+'</ul>';
		error = error_intro+error;
		new Growl(error);
		return false;
	}
	else
	{
		new Effect.ScrollTo('botonEnviar', {offset: 100});
		// no hay errores: ha marcado la política de privacidad?
		if($('privacy').getValue()==null) 
		{
			new Growl(error_privacitat);
			return false;
		}
		// envío
		return true;
	}
}
*/

/* ******************************************************************************/
/* Validación form
/* ******************************************************************************/
/*
	Comprueba si el valor de el es un número de lon cifras
*/
function isANumber(el, lon)
{
var undefined;

	if((lon==undefined)&&(!isNaN(el.getValue())) ) return true;
	else if((el.getValue().length==lon)&&(!isNaN(el.getValue())) ) return true;
	else return false;
}

/*
	Comprueba si el valor de el es un mail válido
*/
function isAMail(el)
{
	var mail = el.getValue();
	
	if(mail.indexOf('@')<0) { return false; }
	if(mail.substring(mail.indexOf('@')+1,mail.length).indexOf('.')<0) { return false; }
	if(mail.charAt(mail.length-1)=='.') { return false; }
	return true;
}

/*
	Comprueba si w es un carácter entre A-Z o a-z
*/
function isAWord(w)
{
	if((65<=w)&&(w<=90)) return true;
	if((97<=w)&&(w<=122)) return true;
	return false;
}
