// JavaScript Document
// Experian DA 
// Nick Lovibond 10/7/08

	
// function to test form field value against regular expression, and alert user if test fails
function checkValid(ob,msg,regex){ if (regex.test(ob.value)) return true; else { alert(msg); ob.focus(); return false; }}

// function to test any two values are not same and alert message if so 
function checkNotValue(ob,val,msg){ if (ob.value!=val) return true; else { alert(msg); ob.focus(); return false; }}
 
// function to test selected menu option is NOT specified value
function checkSelectNotValue(ob,val,msg){ if (ob.options[ob.selectedIndex].value!=val) return true; else { alert(msg); ob.focus(); return false; }}

// Form must satisfy these tests or cancel (return false)
function checkContactForm(form){
	return (
		checkSelectNotValue(form.subject, "", "Por favor, seleccione un tema") // subject selected
		&&checkSelectNotValue(form.title, "", "Por favor, seleccione un tema") // title selected
		&&checkValid(form.firstName,"Por favor, introduzca su nombre",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Por favor, introduzca su apellido",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Por favor, introduzca su cargo",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Por favor, introduzca su empresa",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Por favor, introduzca su dirección postal",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Por favor, introduzca su código postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Por favor, introduzca su país",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Por favor, introduzca su dirección de email",/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/) // email is valid
		&&checkValid(form.phone,"Por favor, introduzca su número de teléfono",/(^\+?\d{8,14}$)/)// phone contains 8-14 digits and "+"?
		&&checkValid(form.enquiry,"Por favor, haga su solicitud",/([A-Za-z]{5,})/) // enquiry contains letters
	);
}

// Form must satisfy these tests or cancel (return false)
function checkNewsletterForm(form){
	return (
		checkSelectNotValue(form.title, "", "Por favor, seleccione un tema") // title selected
		&&checkValid(form.firstName,"Por favor, introduzca su nombre",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Por favor, introduzca su apellido",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Por favor, introduzca su cargo",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Por favor, introduzca su empresa",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Por favor, introduzca su dirección postal",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Por favor, introduzca su código postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Por favor, introduzca su país",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Por favor, introduzca su dirección de email",/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/) // email is valid
		&&checkValid(form.phone,"Por favor, introduzca su número de teléfono",/(^\+?\d{8,14}$)/)// phone contains 8-14 digits and "+"?
	);
}

// Form must satisfy these tests or cancel (return false)
function checkDocumentForm(form){
	return (
		checkValid(form.comments,"Por favor, seleccione un tema",/([A-Za-z0-9]{2,})/) // docs listed
		&&checkSelectNotValue(form.title, "", "Por favor, seleccione un tema") // title selected
		&&checkValid(form.firstName,"Por favor, introduzca su nombre",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Por favor, introduzca su apellido",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Por favor, introduzca su cargo",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Por favor, introduzca su empresa",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Por favor, introduzca su dirección postal",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Por favor, introduzca su código postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Por favor, introduzca su país",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Por favor, introduzca su dirección de email",/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/) // email is valid
		&&checkValid(form.phone,"Por favor, introduzca su número de teléfono",/(^\+?\d{8,14}$)/)// phone contains 8-14 digits and "+"?
	);
}
