/******************************************************************************/
/* Vérification du formulaire *************************************************/
/******************************************************************************/

function attachFormHandlers() {
    var objForm = document.getElementsByTagName('form');
    for (var i=0; i<objForm.length; i++) {
        objForm[i].onsubmit = function(){return checkForm(this);}
    }
}

function checkForm(objForm) {

    var arClass, erreur;
    var objField = objForm.getElementsByTagName('*');
    
    for (var iFieldCounter=0; iFieldCounter<objField.length; iFieldCounter++) {
    
        // Autorise que plusieurs valeurs soient attribu?es ? la classe de l'objet :
        arClass = objField[iFieldCounter].className.split(' ');
        for (var iClassCounter=0; iClassCounter<arClass.length; iClassCounter++) {
            switch (arClass[iClassCounter]) {
                case 'required':
                    if(!isRequired(objField[iFieldCounter].value.replace(/^\s*|\s*$/g, ''))) {
                    	erreur += "Veuillez renseigner votre " + objField[iFieldCounter].name;
                    }
                    break;
                case 'email' :
                    if (!isEmail(objField[iFieldCounter].value)) {
                    	erreur += "Cette adresse email n'est pas valide \n";
                    }
                    break;
                case 'string':
                    if(!isString(objField[iFieldCounter].value.replace(/^\s*|\s*$/g, ''))) {
                    	erreur += "Le champ " + objField[iFieldCounter].name + " n'est pas valide";
                    }
                    break;
                default: erreur = "";
            }

      		if (erreur != "")	{
        		alert(erreur);
        		objField[iFieldCounter].select();
        		objField[iFieldCounter].focus();
        		return false;
      		}
    	}
  	}
  	return true;
}

function isRequired(strValue) {return (strValue != '');}

function isString(strValue) {return (typeof strValue == 'string' && isNaN(strValue));}

function isEmail(strValue) {
	var objRE = /^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/;
	return (strValue != '' && objRE.test(strValue));
}

addEvent(window, 'load', attachFormHandlers);

/******************************************************************************/
