/**
 * Règles communes à toutes l'interface du site
 **/
	Interface = {
		cacher: function() {
			new Effect.Fade(this);
		},
		cacherAvecTimeout: function(object) {
			if ( $(object) ) { 
				window.setTimeout(Interface.cacher.bindAsEventListener($(object)), 2000);
			}
		},
		/**
		 * Affiche un message d'erreur
		 * @param {Object} message à afficher
		 * @param {Object} error si le message est une erreur
		 **/
		afficherMessage: function(message, error) {
			if (error) {
				$('message').addClass('erreur');
			} else {
				$('message').removeClass('erreur');
			}
			$('message').innerHTML = message;
			Interface.afficherMessageBox();
		},
		afficherMessageBox: function () {
			var fx = new Fx.Style($('message'), 'opacity', {duration: 1000, wait: false}).set(0);
			$('message').style.display='';
			fx.start(0.8);
			Interface.messageTimer = window.setTimeout(Interface.cacherMessage, 2000);
		},
		cacherMessage: function () {
			window.clearTimeout(Interface.messageTimer);
			var fx = new Fx.Style($('message'), 'opacity', {duration: 1000, wait: false, onComplete: function() { $('message').style.display='none' }});
			fx.start(0);
		},
		ajouterClasseHover: function () {
			this.addClass('ligne_hover');
		},
		enleverClasseHover: function () {
			this.removeClass('ligne_hover');			
		},
		messageTimer: 0,
		
		getFormatMonetaire: function (mon_decimal, ma_monnaie){
			return (mon_decimal + ' ' + ma_monnaie);
		},
		
		alternerLignes: function () {
			this.getElements("tr").each( function( element, i ) {
				if ( i % 2 ) {
					element.addClass('ligne_impaire');
					element.removeClass('ligne_paire');
				} else {
					element.addClass('ligne_paire');
					element.removeClass('ligne_impaire');
				}
			})
		},
		
		ajouterTips: function () {
			new Tips($$('.tooltip'), {
				showDelay: 1000
			});
		},
		
		enfoncerBouton: function() {
			this.src = this.src.replace(/_off.png$/, "_on.png");
		},
		
		defoncerBouton: function() {
			this.src = this.src.replace(/_on.png$/, "_off.png");
		}
	}
	
	
	// Au chargement de la page
	window.addEvent('domready', function () {
		Interface.cacherAvecTimeout($('info'));
		if($('message') && !($('message').innerHTML.trim() === '') ) {
			Interface.afficherMessageBox();	
		}
		Interface.ajouterTips();
		$$('img').map( function (element) {
			if ( element.src.test('_off.png$') ) { 
				element.addEvent('mouseover', Interface.enfoncerBouton.bindAsEventListener(element)); 
				element.addEvent('mouseout',  Interface.defoncerBouton.bindAsEventListener(element));
			}
		});
		
		$$('.calendrier').each( function(element) {
			var id = element.id;
			var hash = {};
			hash[id] = 'd/m/Y';
			new Calendar(hash);
		});
	});
