﻿/**
 * Règles communes à toutes l'interface du site
 **/
	Interface = {
		cacher: function() {
			this.setOpacity(0);
		},
		cacherAvecTimeout: function(object) {
			if ( $(object) ) {
				window.setTimeout(Interface.cacher.bindWithEvent($(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 () {
			$('message').fade(0.8);
			Interface.messageTimer = window.setTimeout(Interface.cacherMessage, 4000);
		},
		cacherMessage: function () {
			window.clearTimeout(Interface.messageTimer);
			$('message').fade(0);
		},
		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');
				}
			});
		},
		ajouterClasseHover: function () {
			this.addClass('ligne_hover');
		},
		enleverClasseHover: function () {
			this.removeClass('ligne_hover');
		},

		timerTooltips: [],
		ajouterTips: function () {
			new Tips($$('.tooltip'), {
				showDelay: 100,
				className: 'tip'
			});
			new Tips($$('.gros_toultip'), {
				showDelay: 100,
				className: 'tip_status'
			});
			$$(".blink").each( function(element, i) {
				window.clearTimeout(Interface.timerTooltips[i]);
				Interface.timerTooltips[i] = window.setTimeout(Interface.pulserBoutonTooltip.bind(element, i), 1500);
			});
		},
		pulserBoutonTooltip: function(i) {
			this.fade('toggle');
			Interface.timerTooltips[i] = window.setTimeout(Interface.pulserBoutonTooltip.bind(this), 1500);
		},

		enfoncerBouton: function() {
			this.src = this.src.replace(/_off.png$/, "_on.png");
		},

		defoncerBouton: function() {
			this.src = this.src.replace(/_on.png$/, "_off.png");
		},

		chargement: function() {
			if ($('message')) {
				Interface.cacher.bind($('message'))();
			}
			if($('message') && !($('message').innerHTML.trim() === '') ) {
				Interface.afficherMessageBox();
			}
			Interface.ajouterTips();
			$$('img').map( function (element) {
				if ( element.src.test('_off.png$') ) {
					element.addEvent('mouseover', Interface.enfoncerBouton.bindWithEvent(element));
					element.addEvent('mouseout',  Interface.defoncerBouton.bindWithEvent(element));
				}
			});

			/*$$('.calendrier').each( function(element) {
				var id = element.id;
				var hash = {};
				hash[id] = 'd/m/Y';
				new Calendar(hash, {classes :['dashboard']});
			});*/
		},

		// Fonctions pour IE
		removeClass : function (objet,nomClasse){
			buffer = objet.className;
			buffer = buffer.replace(eval("/"+nomClasse+"/g"),"");
			objet.className= buffer;
		},

		addClass : function (objet,nomClasse){
			objet.className = objet.className + " " + nomClasse;
		}
	};
// Au chargement de la page
//corrige le bug IE qui ne prend pas en compte le domready
if(navigator.appName == "Microsoft Internet Explorer") {
	window.addEvent('load', function () {
		Interface.chargement();
	});
} else {
	window.addEvent('domready', function () {
		Interface.chargement();
	});
}
