/*
 pour foncitonner il faut mettre la class rollover sur l'image

+ dans la balise image :
class="rollover on/off"  -> on/off en focntion de l'etat de l'image
id="image_son" -> declanchera le son.wav
src="chemin-vers-la-src-on.gif" ->  l'image doit avoir on.gif ou off.gif, les deux images doivent exister dans le repertoire
*/

var rollOver  =
{
url:'http://dev.matthieudeluc.com/css/img/',
soundUrl:'/js/sounds/',
imgtoswitch:{},
elmID:'',
srcOver:'',
init : function(){
        var links = $$('.rollover');
         
        links.each(function(elm){
                rollOver.elmID = elm.id;
                /* le playsound() cause un delai d'animation sous certains firefox ... */
                Event.observe(rollOver.elmID,'mouseover',rollOver.playSound);
                var reg1=new RegExp("off.gif","g");
                if (reg1.test(elm.src)) {
                  rollOver.srcOver = elm.src.sub('off.gif','on.gif');
                }
                rollOver.imgtoswitch = {};
                if($(rollOver.elmID).hasClassName('off'))
                  rollOver.imgtoswitch = {
                    urlOver: rollOver.srcOver,
                    urlOut: elm.src
                  };
                else
                  rollOver.imgtoswitch = {
                    urlOver: elm.src,
                    urlOut: elm.src
                  };
                Event.observe(rollOver.elmID,'mouseover', rollOver.MorphIt.bindAsEventListener(rollOver.imgtoswitch));
                Event.observe(rollOver.elmID,'mouseout', rollOver.MorphIt.bindAsEventListener(rollOver.imgtoswitch));
        });
        
},
MorphIt : function(e){
        var id = Event.element(e).id;
        var data = $A(arguments);
        var  randid = Math.random().toString();

        data.shift();
        if(e.type=="mouseover") var Src = this.urlOver;
        else var Src = this.urlOut;
        
        new Effect.Opacity(id,
        {
                duration:0.2,
                from:1.0,
                to:0.0,
                fps:50,
                queue: {position:'end', scope: randid},
                transition:Effect.Transitions.linear,
                afterFinish:function(){
                         //change l'image
                        $(id).src = Src;
                }
        });

        new Effect.Opacity(id,
        {
                duration:0.2,
                from:0.0,
                to:1.0,
                fps:50,
                queue: {position:'end', scope: randid},
                transition:Effect.Transitions.linear
        });
},
playSound:function(e){
        var elt = Event.element(e).id;
        var elt_rub = elt.split('_');
        var sound_src = elt_rub[1];

        Sound.play(rollOver.soundUrl+'2-'+sound_src+'.wav');
}
};

Event.observe(window,'load',rollOver.init);

