// 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, "", "Merci de sélectionner un sujet") // subject selected
		&&checkSelectNotValue(form.title, "", "Merci de sélectionner un titre") // title selected
		&&checkValid(form.firstName,"Merci de saisir votre prénom",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Merci de saisir votre nom",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Merci de saisir l’intitulé de vote poste",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Merci de saisir le nom de votre enterprise/organisation",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Merci de saisir votre adresse",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Merci de saisir votre code postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Merci de saisir votre pays de résidence",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Merci de vérifier que vous avez saisi une adresse mail valide",/([\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,"Merci de saisir un N° de telephone complet",/(^\+?\d{8,14}$)/)// phone contains 8-14 digits and "+"?
		&&checkValid(form.enquiry,"Merci de préciser votre requête",/([A-Za-z]{5,})/) // enquiry contains letters
	);
}

// Form must satisfy these tests or cancel (return false)
function checkNewsletterForm(form){
	return (
		checkSelectNotValue(form.title, "", "Merci de sélectionner un titre") // title selected
		&&checkValid(form.firstName,"Merci de saisir votre prénom",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Merci de saisir votre nom",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Merci de saisir l’intitulé de vote poste",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Merci de saisir le nom de votre enterprise/organisation",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Merci de saisir votre adresse",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Merci de saisir votre code postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Merci de saisir votre pays de résidence",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Merci de vérifier que vous avez saisi une adresse mail valide",/([\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,"Merci de saisir un N° de telephone complet",/(^\+?\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,"Please list the documents you require",/([A-Za-z0-9]{2,})/) // docs listed
		&&checkSelectNotValue(form.title, "", "Merci de sélectionner un titre") // title selected
		&&checkValid(form.firstName,"Merci de saisir votre prénom",/([A-Za-z])/) // firstName contains letters
		&&checkValid(form.lastName,"Merci de saisir votre nom",/([A-Za-z]{2,})/) // lastName contains letters
		&&checkValid(form.jobTitle,"Merci de saisir l’intitulé de vote poste",/([A-Za-z]{2,})/) // jobTitle contains letters
		&&checkValid(form.company,"Merci de saisir le nom de votre enterprise/organisation",/([A-Za-z])/) // company contains letters
		&&checkValid(form.address,"Merci de saisir votre adresse",/([A-Za-z]{5,})/) // address contains 5+ letters
		&&checkValid(form.postcode,"Merci de saisir votre code postal",/([A-Za-z0-9]{4,})/) // zip valid
		&&checkValid(form.country,"Merci de saisir votre pays de résidence",/([A-Za-z]{2,})/) // country contains letters
		&&checkValid(form.email,"Merci de vérifier que vous avez saisi une adresse mail valide",/([\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,"Merci de saisir un N° de telephone complet",/(^\+?\d{8,14}$)/)// phone contains 8-14 digits and "+"?
	);
}