// Text field validator
	String.prototype.trim = function() { return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");	}
	
	function mandatoryText(input) {
		if (input.value.trim()=="" || input==null) {
			return false;
		}
		else {
			return true;
		}
	}

	// Converts carriage returns to spaces
	function convertReturns(input) {
		var output = "";
		for (var i = 0; i < input.length; i++) {
			if ((input.charCodeAt(i) == 13) && (input.charCodeAt(i + 1) == 10)) {
			i++;
			output += " ";
			}
			else {
			output += input.charAt(i);
  	 		}
		}
		return output;
	}

	// Text counter function for the Comments Box
	function textCounter(field, countfield, maxlimit) {
		if (field.value.length > maxlimit) {
			field.value = field.value.substring(0, maxlimit);
		}
		else {
			countfield.value = maxlimit - field.value.length;
		}
	}

function isEmail(emailAddress) {
		emailAddressValue=emailAddress.value.toLowerCase();
		// Below reside knows 2 letters country TLD and 3 letter gTLDs
		var countryTLDs=/^(ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$/;
		var gTLDs=/^(aero|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org)$/;
		var basicAddress=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var validCharset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'-_.";
		var quotedUser="(\"[^\"]*\")";
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var validUser=new RegExp("^" + word + "(\\." + word + ")*$");
		var symDomain=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailAddressValue.match(basicAddress);
	
		if (matchArray==null) {
			alert("Your e-mail address doesn't seem to be correct,\n(check syntax).");
			emailAddress.focus();
			return false;
		}	else {
			var user=matchArray[1];
			var domain=matchArray[2];
			for (i=0; i<user.length; i++) {
				if(validCharset.indexOf(user.charAt(i))==-1) {				
					alert("Your e-mail address contains invalid characters\n(check the username).");
					emailAddress.focus();
					return false;
				}
			}
			for (i=0; i<domain.length; i++) {
				if(validCharset.indexOf(domain.charAt(i))==-1) {
					alert("Your e-mail address contains invalid characters\n(check the domain).");
					emailAddress.focus();
					return false;
				}
			}
			if (user.match(validUser)==null) {
				alert("Your e-mail address doesn't seem to be correct,\n(user part).");
				emailAddress.focus();
				return false;
			}
			var atomPat=new RegExp("^" + atom + "$");
			var domArr=domain.split(".");
			var len=domArr.length;
			for (i=0;i<len;i++) {
				if (domArr[i].search(atomPat)==-1) {
					alert("Your e-mail address doesn't seem to be correct,\n(Check the domain name).");
					emailAddress.focus();
					return false;
				}
			}
			if ((domArr[domArr.length-1].length==2)&&(domArr[domArr.length-1].search(countryTLDs)==-1)) {
					alert("Your e-mail address doesn't seem to be correct,\n(check domain suffix).");
					emailAddress.focus();
					return false;
			}
			if ((domArr[domArr.length-1].length>2)&&(domArr[domArr.length-1].search(gTLDs)==-1)) {
				alert("Your e-mail address doesn't seem to be correct,\n(check domain suffix).");
				emailAddress.focus();
				return false;
			}
			if ((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>6)) {
				alert("Your e-mail address doesn't seem to be correct,\n(check domain suffix).");
				emailAddress.focus();
				return false;
			}
			if (len<2) {
				alert("Your e-mail address doesn't seem to be correct,\n(missing hostname).");
				emailAddress.focus();
				return false;
			}
			return true;
		}
	}

function mandatoryCombo(dropdown) {
		if (dropdown.options[0].selected) {
			if (fieldName != "") {
				alert("Please enter your title.");
			}
			dropdown.focus();
			return false;
		}
		return true;
	}

	// Submit function
	function submitForTreatment() {
		var vmForm=document.newsl;
		var errors='';
	
	// EMAIL 
	if (!mandatoryText(vmForm.email))
	{
				alert("Merci d'indiquer votre adresse email.\n");
				vmForm.email.focus();
				return false;
	} else {
			if(!isEmail(vmForm.email))
			{ 
				//alert("Please enter a correct e-mail address.\n");
				vmForm.email.focus();
				return false;
			}
	}
	
	//prenom
	if (vmForm.prenom.value=="")
		{
				alert("Merci d'indiquer votre prénom.\n");
				vmForm.prenom.focus();
				return false;
		 }
	
	
	// nom
	 if (!mandatoryText(vmForm.nom))
		{
				alert("Merci d'indiquer votre nom.\n");
				vmForm.nom.focus();
				return false;
		} 
	
	// pseudo
	if (!mandatoryText(vmForm.pseudo))
		{
				alert("Merci d'indiquer un pseudo.\n");
				vmForm.pseudo.focus();
				return false;
		}
	
	// mot de passe
	if (!mandatoryText(vmForm.pwd))
		{
			 	alert("Merci d'indiquer un mot de passe.\n");
				vmForm.pwd.focus();
				return false;
	} else {
		if(vmForm.pwd.value!=vmForm.confirm_pass.value)
		{
			alert("Vous n'avez pas correctement confirmer votre mot de passe");
			vmForm.pwd.focus();
			return false;
		}
	}
}
