function checkForm(formObj){
/*
    * validate="/[\d\w]{3,}/" - the data must be at least 3 characters long and should include letters or digits
    * validate="/^([0-9]{11})$/ " - Phone number with 11 digits.
    * validate="^([0-9]){2}(\/|-){1}([0-9]){2}(\/|-){1}([0-9]){4}$/" – Date in the format dd/mm/yyyy
    * validate="/^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/" – Email
		/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi
		* validate="/\b[A-Z0-9.-]+\.[A-Z]{2,4}\b/gi" - Domain name
		* validate="/^[0-9]+$/gi" - Numeric
		freemask :
		var tmpMask = formElementArray[inputObj.name]['freemask'];
		tmpMask = tmpMask.replace(/-/g,'\\-');
		tmpMask = tmpMask.replace(/S/g,'[A-Z]');
		tmpMask = tmpMask.replace(/N/g,'[0-9]');
		tmpMask = eval("/^" + tmpMask + "$/gi");
*/
	var msg="";
	for (var i=0; i < formObj.elements.length; i++) {
	// check if the form element has a validate attribute. 
		if (formObj.elements[i].name != null && formObj.elements[i].getAttribute("validate")){
			var validate = formObj.elements[i].getAttribute("validate");
			var validateMsg = formObj.elements[i].getAttribute("validateMsg");
			var validate_;
			if (validate == "obligatoire") 
				validate_ = eval(/[\d\w]{1,}/);
			else if (validate == "email") 
				validate_ = eval(/^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$/);
				// validate_ = eval(/^([\w]+)(.[\w]+)*@*([\w]+)(.[\w]{2,3}){1,2}$/);
			else if (validate == "numerique") 
				validate_ = eval(/^[0-9]+$/gi);
			else if (validate == "radio") {
				var nom=formObj.elements[i].name;
				var err=true;
				for ( var n=0;n<formObj[nom].length;n++ ) { 
					if ( formObj[nom][n].checked ) {	
						err=false;
					}
				}
				if (err) {
					var obj = formObj.elements[i].parentNode;
					obj.className='invalidInput';
					msg += validateMsg + "\n"; 
					continue;
				} else {
					var obj = formObj.elements[i].parentNode;
					obj.className='validInput';
					continue;
				}
				// validate_ = eval(/^[0-9]+$/gi);	
			}
			var validationRule = validate_;
			if (!validationRule.test(formObj.elements[i].value)){
				formObj.elements[i].className='invalidInput';
				var obj = formObj.elements[i].parentNode;
				msg += validateMsg + "\n"; 
				if (obj.nodeName=="TD") {
					// obj.innerHTML = obj.innerHTML.replace("<SPAN style=\"COLOR: red\">" + validateMsg + "</SPAN>", "");
					// obj.innerHTML = obj.innerHTML + "<span style='color:red'>" + validateMsg + "</span>"; 
					msg += validateMsg + "\n"; 
					// formObj.elements[i].className='invalidInput';
					// obj.className='invalidInput';
					// formObj.elements[i].className='invalidInput';
				}
			//--> end test regExp
			} else {
				formObj.elements[i].className='validInput';
				var obj = formObj.elements[i].parentNode;
				if (obj.nodeName=="TD") {
					// obj.innerHTML = obj.innerHTML.replace("<SPAN style=\"COLOR: red\">" + formObj.elements[i].getAttribute("validateMsg") + "</SPAN>", "");
					// formObj.elements[i].className='validInput';
					// obj.className='validInput';
				}
			} 
		}//--> end if element has validate attribute
	}// end loop through the form elements. 
	// particular case for the radio button
	 
	if (msg.length > 0){
		return false;
	} else {
		return true;
	}
}
