formCtrl.control = function (evt) {
    	var bIsValide, cLabels;
    	bIsValide = true;
    	try {
    		if (bIsValide && (typeof(eval("preControl_"+this.id))=="function"))
    			bIsValide = eval("preControl_"+this.id+"(this);");
    	} catch(err) {}
    	cLabels = this.getElementsByTagName("label");
    	var nField, oNode;
    	for (var i=0; bIsValide && i<cLabels.length; i++) {
    		if ((cLabels[i].htmlFor=="") || !(nField=document.getElementById(cLabels[i].htmlFor))) continue;
    		for (var j=0; bIsValide && formCtrl.schemes[j]; j++) {
    			if (formCtrl.util.hasClassName(cLabels[i],formCtrl.schemes[j][0])) {
    				if (formCtrl.schemes[j][0]=="isFloat") nField.value = nField.value.replace(",",".");
    				if (!eval("formCtrl.fx."+formCtrl.schemes[j][0]+"(nField.value)")) {
    					bIsValide = false;
    					// on supprime les alertes précédentes
    					var aAlert = YAHOO.util.Dom.getElementsByClassName('alert','div',this);
    					for(var z = 0; aAlert[z]; z++) {
							this.removeChild(aAlert[z]);
						}
    					
    					// On récupère le premier élément form parent et on y rajoute un div pour afficher les erreurs
    					//alert(this);
    					var divAlert = document.createElement('div');
    					divAlert.className = 'alert';
    					divAlert.innerHTML = formCtrl.schemes[j][1].replace(/[^\W]*%s[^\W]*/g,formCtrl.getClearedTextLabel(cLabels[i]));
    					this.insertBefore(divAlert, this.firstChild);
    					//alert(formCtrl.schemes[j][1].replace(/[^\W]*%s[^\W]*/g,formCtrl.getClearedTextLabel(cLabels[i])));
    				}
    			}
    		}
    		if (bIsValide && formCtrl.util.hasClassName(cLabels[i],"extendedControl"))
    			bIsValide = eval("extendedControl_"+cLabels[i].htmlFor+"(nField);");
    		if (!bIsValide) {
                try { // MSIE fixe si nField[style=dysplay:none;]
        			if (nField.focus)
        				nField.focus();
        			else if (nField.selected)
        				nField.selected();
    			} catch(e) {}
    		}
    	}
    	try {
    		if (bIsValide && (typeof(eval("postControl_"+this.id))=="function"))
    			bIsValide = eval("postControl_"+this.id+"(this);");
    	} catch(err) {}
    	if (!bIsValide) {
    		if (evt && evt.preventDefault) {
    			evt.stopPropagation();
    			evt.preventDefault();
    		} else if (window.event) {
                window.event.cancelBubble = true;
    			window.event.returnValue = false;
    		}
    	}
    	return bIsValide;
    }

