(function($) {
    // définition du plugin
    $.fn.animation_jackpot = function(options) {
         var defaults = {      
             duration:1000
         };
        
         var opts = $.extend(defaults, options);
         var montant,str_montant,nb_chiff,nb_blc_3,L_animation,decalage_centre,i,transi,ani_cours,etape,distrib,mois;
         var L_ch=32;
         var L_space=16;
         var position_=new Array();
         var distri_posi=new Array();
         var obj=$(this);
         
         //recuperation de la largeur de l'animation
         L_animation=$(this).width();
         
         //appel de la fonction ini
         init_animation_jackpot();
         
         //die();
         //transition
         transi=0;
         
         //animation en cours
         ani_cours=0;
         
         //distrib
         distrib=0;
         
         //etape
         etape=1;         
         //animation
         setInterval(function(){
             
             if((ani_cours==0)&&(transi==0)&&(etape==1)){
                 ani_cours=nb_chiff+1;
                 $(".ch_jack").css({'top':'-70px','opacity':'0','display':'block'});
                 $(".dist_mois").css({'left':'-'+L_animation+'px'});
                 etape=2;
             }
             
             if((transi==0)&&(ani_cours==(nb_chiff+1))&&(etape==2)){
                 animation_chiffre();
                 etape=3;
             }
             
             if((transi==(nb_chiff+1))&&(ani_cours==0)&&(etape==3)){
                 explode_chiffre(); 
                 etape=4;
             }
             if((transi==(nb_chiff+1))&&(ani_cours==(nb_chiff+1))&&(etape==4)&&(distrib==3)){
                 //transition
                 transi=0;

                 //animation en cours
                 ani_cours=0;
                 
                 //distrib
                 distrib=0;
                 
                 etape=1;
             }                 
          },opts.duration);
          
         
         function init_animation_jackpot(){
             
             //recuperation du mois
             mois=parseInt($("#mois_jack").val())
             //recuperation du montant
             montant=parseInt($("#montant_jack").val());
             
             //recuperation du montant vertion string
             str_montant=$("#montant_jack").val();
             
             
             
             //savoir le nombre de chiffre que compose le montant
             nb_chiff=(""+montant+"").length;
             
             //connaitre le nombre de bloc de 3
             nb_blc_3=Math.ceil(nb_chiff/3);
             
             
             
         
             //calcule du decalage pour centrer le jackpot
             decalage_centre=Math.round((L_animation-(nb_chiff*L_ch)-((nb_blc_3-1)*L_space)-39-4*nb_chiff)/2);
             
             //calculer la position des chiffres
             calcul_position_chiffre();
             
             
             //vider l'element
             obj.html('');
             
             //date de distribution
             obj.append('<img src="images/distrib.png" class="distrib dist_mois" id="distrib_0" style="left:-'+L_animation+'px;"/>');
             obj.append('<img src="images/mois_'+mois+'.png" class="distrib_mois dist_mois" id="distrib_1" style="left:-'+L_animation+'px;"/>');
             obj.append('<img src="images/avance.png" class="distrib_avance dist_mois" id="distrib_2" style="left:-'+L_animation+'px;"/>');
             
             //ajout des choffre à l'écran
             for(i=0;i<nb_chiff;i++){
                
                obj.append('<img src="images/ch_'+str_montant.charAt(i)+'.png" class="ch_jack" id="ch_'+i+'"style="left:'+position_[i]+'px;top:-70px;opacity: 0;filter: alpha(opacity = 50%)"/>');
             }
             obj.append('<img src="images/euro.png" class="ch_jack" style="left:'+position_[i]+'px;top:-70px;opacity: 0;filter: alpha(opacity = 50%)" id="ch_'+i+'"/>');
             
         }
         
         function calcul_position_chiffre(){
             var pos=nb_chiff;
             //initialisation
             var sep=nb_chiff%3;
            
             var koef_sep=0;
             var koef_ch=0;
             for(i=0;i<pos;i++){
                 if(sep==0){
                   koef_sep++; 
                   koef_ch++; 
                   sep=3;
                 }
                 else{
                   if(i!=0)
                    koef_ch++;  
                 }
                 sep--;
                 position_[i]=L_ch*koef_ch+L_space*koef_sep+decalage_centre+4*koef_ch;
             }
             koef_ch++;
             position_[i]=L_ch*koef_ch+L_space*koef_sep+decalage_centre+4*koef_ch;
             
         }
         
         function animation_chiffre(){
             for(i=0;i<=nb_chiff;i++){
                 $("#ch_"+i).delay(150*i).animate({top:'+=170px',opacity:'+=1'}, 500, 'swing',function(){
                    transi++;
                    ani_cours--;
                 }); 
             }
         }
         
         function explode_chiffre(){
             for(i=0;i<=nb_chiff;i++){
                 $("#ch_"+i).delay(150*(i)+500).effect(  'puff', {}, 500,function(){ 
                     ani_cours++;
                 });
             }
             for(i=0;i<3;i++){
                $("#distrib_"+i).delay(150*(i)+1500).animate({left:'+='+L_animation+'px'}, 600, 'swing',function(){
                 });
            }
            for(i=0;i<3;i++){
                $("#distrib_"+i).delay(200*(i)+1500).fadeOut('slow',function(){
                    distrib++;
                    $(this).css({left:'-'+$(this).width()+'px','display':'block'});
                 });
            }
         }
         return $(this);
    }
})(jQuery);



