//<script>

if (typeof($) != "undefined") $(function(){
	updateReadonlyClass();
});

function updateReadonlyClass(){
	$('input:not([disabled]), input:not([readonly]), textarea:not([readonly])').removeClass('readonly');
	$('input[disabled], input[readonly], textarea[readonly]').addClass('readonly');
}

function check(checkbox){
	checkbox.checked = !checkbox.checked;
}

function validateNotEmpty(campo, nombre){
	campo.value = campo.value.replace(/^\s+|\s+$/g,'');
	var testEmpty = /^.+$/m;
	if (!testEmpty.test(campo.value)){
		var message = 'El campo %NOMBRE% es obligatorio.';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	return true;
}

function validateMax(campo, nombre, maximum){
	if (campo.value.length > maximum){
		var message = 'La longitud máxima del campo %NOMBRE% es %MAX%.';
		message = message.replace(/%NOMBRE%/, nombre);
		message = message.replace(/%MAX%/, maximum);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	return true;
}

function validateSelect(campo, nombre){
	if (campo.value == 0){
		var message = 'Debe selecionar un elemento de la lista para el campo %NOMBRE%.';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		return false;
	}
	return true;
}

function validateEmail(campo){
	var testEmail = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	if (!testEmail.test(campo.value)){
		alert("Por favor, rellene correctamente el campo e-mail.");
		campo.focus();
		campo.select();
		return false;
	}
	return true;
}

function validateEmail2(email, confirmacion){
	if (email.value != confirmacion.value){
		alert("Corfimación de e-mail incorrecta.");
		confirmacion.focus();
		confirmacion.select();
		return false;
	}
	return validateEmail(email);
}

function validatePassword(pass, confirmacion){
	var testPass = /^.{6,}$/;
	if (!testPass.test(pass.value)){
		alert("La contraseña debe ser de al menos 6 carácteres.");
		pass.focus();
		pass.select();
		return false;
	}
	
	if (pass.value != confirmacion.value){
		alert("Corfimación de contraseña incorrecta.");
		confirmacion.focus();
		confirmacion.select();
		return false;
	}
	
	return true;
}

function validatePostal(campo){
	var testCP = /^[0-9]{5}$/;
	if (!testCP.test(campo.value)){
		alert("El código postal no es correcto.");
		campo.focus();
		campo.select();
		return false;
	}
	
	return true;
}

function validateProvince(campo){
	if (campo.value <= 0){
		alert("Debe seleccionar una provincia.");
		campo.focus();
		return false;
	}
	
	return true;
}

function validateCIF(campo){
	campo.value = campo.value.toUpperCase();
	var testCIF = /^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/;
	if (!testCIF.test(campo.value)){
		alert("El número CIF no tiene un formato válido.");
		campo.focus();
		campo.select();
		return false;
	}

	return true;
}

function validateTotal(campo){
	var testTotal = /^[0-9]{1,6}(\.[0-9]{1,2})?$/;
	if (!testTotal.test(campo.value) || campo.value == 0.0){
		alert("El importe no es válido.");
		campo.focus();
		campo.select();
		return false;
	}

	return true;
}

function validateCode(campo){
	var testCode = /^.{4,}$/;
	if (!testCode.test(campo.value)){
		alert("El código de seguridad debe ser de al menos 4 carácteres.");
		campo.focus();
		campo.select();
		return false;
	}
	return true;
}

function validateNumeric(campo, nombre){
	var testNumeric = /^[0-9]+$/;
	if (!testNumeric.test(campo.value)){
		var message = 'El campo %NOMBRE% debe ser un número.';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}

	return true;
}

function validateNotZero(campo, nombre){
	var testZero = /^[1-9]{1}[0-9]*$/;
	if (!testZero.test(campo.value)){
		var message = 'El campo %NOMBRE% debe ser un número y no puede ser cero.';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	return true;
}

function validateDate(campo){
	var ymd = campo.value.split('-');
	var y = ymd[0];
	var m = ymd[1];
	var d = ymd[2];
	var ok = false;
	if (y != null && m != null && d != null){
		if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
			var fecha = new Date(y, m-1, d);
			if (fecha.getDate() == d) return true;
		}
	}
	alert("La fecha (o formato de fecha) selecionada no es válida.");
	campo.focus();
	campo.select();
	return false;
}

function validatePIN(campo, nombre, len){
	campo.value = campo.value.replace(/[ -]/g, "");
	var testPIN = /^[0-9]*$/;
	if (!len) len = 9;
	if (!testPIN.test(campo.value) || campo.value.length != len){
		var message = 'El campo %NOMBRE% (%LENGTH% dígitos) no tiene un formato válido.';
		message = message.replace(/%NOMBRE%/, nombre);
		message = message.replace(/%LENGTH%/, len);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	
	return true;
}

function validatePhone(campo, nombre){
	campo.value = campo.value.replace(/[ -]/g, "");
	if (!validateNotEmpty(campo, nombre)) return false;
	var testPhone = /^(00|\+)?\d{9,16}$/;
	if (!testPhone.test(campo.value)){
		var message = 'El campo %NOMBRE% no tiene un formato válido.';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	
	return true;
}

function validateIntPhone(campo, nombre){
	campo.value = campo.value.replace(/[ -]/g, "");
	if (!validateNotEmpty(campo, nombre)) return false;
	var testPhone = /^(00|\+)\d{9,16}$/;
	if (!testPhone.test(campo.value)){
		var message = 'El campo %NOMBRE% no tiene un formato válido. (00 + Prefijo del país + Destino)';
		message = message.replace(/%NOMBRE%/, nombre);
		alert(message);
		campo.focus();
		campo.select();
		return false;
	}
	
	return true;
}

//</script>