/*
                     __                      ___                           __                    
         __         /\ \__                  /\_ \                         /\ \     __            
 __  __ /\_\   _ __ \ \ ,_\  __  __     __  \//\ \       __       __      \_\ \   /\_\     ___   
/\ \/\ \\/\ \ /\`'__\\ \ \/ /\ \/\ \  /'__`\  \ \ \    /'_ `\   /'__`\    /'_` \  \/\ \   / __`\ 
\ \ \_/ |\ \ \\ \ \/  \ \ \_\ \ \_\ \/\ \L\.\_ \_\ \_ /\ \L\ \ /\ \L\.\_ /\ \L\ \  \ \ \ /\ \L\ \
 \ \___/  \ \_\\ \_\   \ \__\\ \____/\ \__/.\_\/\____\\ \____ \\ \__/.\_\\ \___,_\ _\ \ \\ \____/
  \/__/    \/_/ \/_/    \/__/ \/___/  \/__/\/_/\/____/ \/___L\ \\/__/\/_/ \/__,_ //\ \_\ \\/___/ 
                                                         /\____/                  \ \____/       
                                                         \_/__/                    \/___/        
Script : mooRollOver.js
09/2007 - virtualgadjo / chris at virtual-gadjo dot com
revue et corrigée 12/2007 pour mootools 1.2

Class toute bête pour ne plus se prendre le chou avec les rollovers simples sur les images
(se charge en prime du preload des images pour éviter les temps de latence)

exemple d'instanciation autre que par défaut

var mesRollOver = new mooRollOver({ imgClass: 'rolling', imgOffString: 'etatoff', imgOnString: 'etaton' });

Have swing
*/

var mooRollOver = new Class({

	Implements: [Events, Options],
	
	options: {
		imgClass		: "rollimg",
		imgOffString	: "_off.",
		imgOnString		: "_on."
	},

	initialize: function(options, menuimg) {
		this.setOptions(options);
		this.menuimg	= menuimg || [];
		this.preload	= new Asset.images([]) || [];

		$$('img', 'input').each(function(el){
			if (el.getProperty('class').contains(this.options.imgClass))
			this.menuimg.push(el);
			if (el.getProperty('src'))
			this.newImgsrc = el.getProperty('src').replace(this.options.imgOffString.toString(), this.options.imgOnString);
			this.preload.push(this.newImgsrc);
		}.bind(this));

		$$(this.menuimg).each(function(el, i){
			el.addEvents({
				'mouseenter': function() {

					var newsrc = el.getProperty('src').replace(this.options.imgOffString.toString(), this.options.imgOnString);
					el.setProperty('src', newsrc);

				}.bind(this),

				'mouseleave': function() {

					var newsrc = el.getProperty('src').replace(this.options.imgOnString.toString(), this.options.imgOffString);
					el.setProperty('src', newsrc);

				}.bind(this)

			});

		}.bind(this));
	}	
});

//envoyer la class par défaut
window.addEvent('domready', function(){
	new mooRollOver;
});
