		var log;
		Element.extend({
			hide: function(){
				this.setStyle("display", "none");
			},
			show: function(){
				this.setStyle("display", "block");
			}
		})
		window.addEvent('domready', function(){

			$('myForm').addEvent('submit', function(e) {
				/**
				 * Prevent the submit event
				 */
				new Event(e).stop();
			
				/**
				 * This empties the log and shows the spinning indicator
				 */
				log = $('log').empty().addClass('ajax-loading');
				log.set('html',"Traitement du formulaire en cours ...");
				this.set('send',{url:$('formAction').get('value'),onComplete:handleIt}).send();
			});
			
		});
		
		function hideForm(){
			$('myForm').dispose();
			
			// si bulle info on cache aussi
			lst = $$("div.info");
			lst.each(function(el){
			   el.dispose()
			});
		}
		
		function handleIt(req,xml) {
			log.removeClass('ajax-loading');
			log.removeClass('msgBoxKO');
			log.removeClass('msgBoxKO');
			
			var response  = xml.documentElement;

			
			/* si il y a des li, ce sont des erreurs */
			var lstErreur = response.getElementsByTagName('li');
			var ret = "";
	      	if(lstErreur.length > 0){
				log.addClass('msgBoxKO');
				for(i=0;i<lstErreur.length;i++){
					ret += "<li>"+lstErreur[i].firstChild.data+"</li>";
				}
				log.innerHTML = "<ul>"+ret+"</ul>";
			}
			else
			{
				log.addClass('msgBoxOK');
				log.innerHTML = response.getElementsByTagName('email')[0].firstChild.data;
				
				/* si action a realiser */
				action = response.getElementsByTagName('action');
				if(action.length > 0)
					eval(action[0].firstChild.data+'()');
			}
		}