(function($) {
    
    //fonction spécifque d'initialisation de la couleur de l'animation matrix est appelé automatiquement apres flashembed
        $.extend($.philae, {
    
        //initialisation de la couleur de l'anim flash matrix'
            matrix_init : function (matrix) {
              //récupération des données
              var flashembed = matrix.data("flashembed"); //OBJ jquery.flashembed
              
              if (flashembed == undefined) {
                  $.log('matrix_init flashembed == undefined');
                  return;
              }
              
              var flash      = flashembed.getApi(); //OBJ DOM Flash
              var data       = matrix.metadata(); //meta data container DOM
              
               //if failed...init image and return
              if (flash == null) {
                  matrix.css({
                      'opacity':data.image_opacity,
                      'background-color': 'transparent'
                  });
                  return;
              }
              
              var color      = data.swf_color; //couleur de matrix dans les métas
              
             //boucle d'attente de disponibilité de l'api avant appel function...'
             var matrix_waiting = function () {
                 var waiting = function () {
                 
                     if($.browser.msie && flash.object != null)  {
                            flash.object.CallFunction(
                             "<invoke name=\"setColor\" returntype=\"xml\">" + 
                             " <arguments><string>"+ color + "</string></arguments> </invoke> "
                        );
                     } else if (typeof flash.setColor == "function") {
                         flash.setColor(color); //utilisation et fin
                     } else {
                         setTimeout(waiting, 100); //nouvelle tentative dans 100 ms
                     }
                 }
                 waiting(); //1ere tentative
             };
             //apres un hide lors d'un show il y a init du flash à partir du début de l'anim.
             $('#content').bind("show", function () {matrix_waiting()});
             
             //appel de l'init avec attent de disponibilité de l'api'
             matrix_waiting();
        }

        });
        
})(jQuery);
