Formulaire = {
	Verif : function(model, fields){
		var fields = $H(fields);
		var message = '';
		fields.each(function(field){
			var defaut = false;
			if( field.value.defaut )
				defaut = $F(model + '_' + field.key) == field.value.defaut ? true : false;
		 	if( (field.value.type == 'text' && $F(model + '_' + field.key) == '') || defaut)
				message += field.key + ' est obligatoire\n';
			if( field.value.large )
				field.value.large = $F(model + '_' + field.key).length > 0 ? false : true;
			if( field.value.type == 'text' && field.value.size > 0 && !field.value.large) {
				if($F(model + '_' + field.key).length < field.value.size )
					message += field.key + ' doit être supérieur à ' + field.value.size + ' caractère(s)\n';
			}
			if( field.value.type == 'text' && field.value.email ) {
				if( !Formulaire.EstUnMail( $F(model + '_' + field.key) ) )
					message += field.key + ' doit être au bon format\n';
			}			
		});
		return Formulaire.Valider(message);
	},
	Valider : function( message ){
		if( message != '' ) {
			alert(message);
			return false;
		} else return true;
	},
	EstUnMail : function(a) {
		testm = false ;
	 	for (var j=1 ; j<(a.length) ; j++) {
			if (a.charAt(j)=='@') {
				if (j<(a.length-4)){
	    			for (var k=j ; k<(a.length-2) ; k++) {
	     				if (a.charAt(k)=='.') testm = true;
	    			}
	   			}
	  		}
	 	}
		return testm ;
	},
	EstUneAdresse : function (s) {
		var	reg = new RegExp("^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$");
		return s.match(reg);
	},
	EstUneDate : function (d) {
		  //AAAA-MM-JJ
	      // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
	      // Le séparateur est défini dans la variable separateur
	      var amin=1999; // année mini
	      var amax=2200; // année maxi
	      var separateur="-"; // separateur entre jour/mois/annee
	      var a=(d.substring(0,4));
	      var m=(d.substring(5,7));
	      var j=(d.substring(8,10));
	      var ok=true;
	      if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==true) ) {
	        //alert("Le jour n'est pas correct."); 
			ok=false;
	      }
	      if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==true) ) {
	         //alert("Le mois n'est pas correct."); 
			 ok=false;
	      }
	      if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==true) ) {
	         //alert("L'année n'est pas correcte."); 
			ok=false;
	      }
	      if ( ((d.substring(4,5)!=separateur)||(d.substring(7,8)!=separateur)) && (ok==true) ) {
	        //alert("Les séparateurs doivent être des "+separateur); 
			ok=false;
	      }
	      if (ok==true) {
	         var d2=new Date(a,m-1,j);
	         j2=d2.getDate();
	         m2=d2.getMonth()+1;
	         a2=d2.getFullYear();
	         if (a2<=100) {a2=1900+a2}
	         if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
	            //alert("La date "+d+" n'existe pas !");
	            ok=false;
	         }
	      }
	      return ok;
	}
}

Fieds = {
	Sort: function(){
		Sortable.create('champs', {
			tag: 'table',
			handle:'handle',
			scroll: window,
			onUpdate: function() {
			//	alert(Sortable.serialize('champs'));
			}
		});
	}
	//data: Sortable.serialize('table'), id:{$categorie_id}, type:'categorie'
};