			//pour cibler un élément, il vaut mieux utiliser la fonction prévue pour assurer la compatibilité des navigateurs. (astGetElementById)
			function astGetElementById(o){
				  if (!document.createTextNode || !document.getElementById) return false;
				  if (document.getElementById(o)) return document.getElementById(o);
				  
				  return false;
			  }			
		
			/*
				astJsCss -> swapp, add, remove ou check une class sur un objet ciblé par son id
				ex. : astjscss('add', 'toto', 'class1'); -> rajoute la class 'class1' à l'objet id="toto"
				
			*/
			function astJsCss(a,o,c1,c2) {
			  switch (a){
			    case 'swap':
			      o.className=!astJsCss('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			    break;
			    case 'add':
			      if(!astJsCss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			    break;
			    case 'remove':
			      var rep=o.className.match(' '+c1)?' '+c1:c1;
			      o.className=o.className.replace(rep,'');
			    break;
			    case 'check':
			      return new RegExp('\\b'+c1+'\\b').test(o.className)
			    break;
			  }
			}
			
			/* 
				Fonction appelée lors d'une erreur form
			*/
			function astErrorForm(o){
				astJsCss("add",o,astClassErrorName);
			}
			/* 
				Fonction appelée pour retirer l'erreur form
			*/
			function astRemoveErrorForm(o){
				astJsCss("remove",o,astClassErrorName);
			}
			/* 
				Fonction spéciales pour le message 
			*/
			function astErrorFormMessage(o,msg){
				astJsCss("remove",o,"astInvisible");
				astJsCss("add",o,astClassErrorName);
				o.innerHTML = msg;
				
			}
			function astRemoveErrorFormMessage(o){
				astJsCss("remove",o,astClassErrorName);
				astJsCss("add",o,"astInvisible");
				o.innerHTML = "&nbsp;";
			}
