/**
 * Cette classe permet d'allumer un élément lorsqu'on passe avec la souris dessus.
 *
 * Utilisation:
 * 1. Donner la classe .lightable à l'élément parent des éléments que l'on veut allumer (ex. table ou ul).
 * 2. Il faut définir dans une CSS une classe .hover pour les éléments à allumer. Cette
 *    classe sera ajoutée dynamiquement lorsque la souris passe sur l'élément et retiré
 *    lorsque la souris quitte l'élément.
 *
 * Astuces:
 * Si on veut que certains éléments ne soient pas allumés, il suffit de leur donner
 * la classe "nothover".
 *
 * @created 20.11.2007
 * @author JPoulin
 */
var Light = Class.create({
	/**
	 * Constructeur
	 *
	 * @param Element elem L'élément conteneur des éléments à allumer.
	 */
	initialize: function(elem) {
		var elems = elem.childElements();
		var elem_name = elem.nodeName.toLowerCase();
		var childname = Light.types[elem_name];
		if (elems.length > 0 && childname != null) {
			for (i=0; i<elems.length; i++) {
				Event.observe(elems[i], 'mouseover', function(e) {
					var tolight = Event.findElement(e, childname);
					
					if (!tolight.hasClassName('nothover')) {
						tolight.addClassName('hover');
					}
				});
				
				Event.observe(elems[i], 'mouseout', function(e) {
					var tolight = Event.findElement(e, childname);
					tolight.removeClassName('hover');
				});
			}
		}
	}
});

/**
 * Méthode pour créer des objets Light sur les éléments "lightable"
 */
Light.load = function() {
	var elem_to_light = $$('.lightable');
	elem_to_light.each(function(item) {
		new Light(item);
	});
}

Light.loadOne = function(item) {
	new Light(item);
}

Light.types = {"table" : "tr", "ul" : "li"}

Light.CLASS_NAME = 'lightable';

Event.observe(window, 'load', Light.load);