//http://gist.github.com/268257
//
//$('img.photo',this).imagesLoaded(myFunction)
//execute a callback when all images have loaded.
//needed because .load() doesn't work on cached images

//mit license. paul irish. 2010.
//webkit fix from Oren Solomianik. thx!

//callback function is passed the last image to load
//as an argument, and the collection as `this`


$.fn.imagesLoaded = function(callback){
    var elems = this.filter('img'),
       len   = elems.length;
       
    elems.bind('load',function(){
       if (--len <= 0){ callback.call(elems,this); }
    }).each(function(){
      // cached images don't fire load sometimes, so we reset src.
      if (this.complete || this.complete === undefined){
         var src = this.src;
         // webkit hack from http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f
         // data uri bypasses webkit log warning (thx doug jones)
         this.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
         this.src = src;
      }  
    }); 
    
    return this;
};


/**
 * Initialize all our Image Rotators
 */
$(window).load( function() {
    
    // Set the source of all ajax-load images
    $('img.ajaxLoad').each( 
        function() {
            
            var img = $(this);
            img.attr( 'src', img.attr('data-src') );
    
        }
    );
    
    $('img').imagesLoaded( 
        function(e) {
            initAutoRotateGallery();
        }
    );
    
});


function initAutoRotateGallery () {
    
        $('.auto-play').ImageRotator( {image_selector:'.img'}, 
            function(e) {
                var $target = $(this);
                var $image = $('img', this);
                
//                console.log($target, $image);
                
                var alt = $image.attr('title') || $image.attr('alt') || '';
                var dataIndex = $target.attr('data-index');
                
//                console.log('alt ', alt, ' dataIndex ', dataIndex);
                
                if(alt != undefined) {
                    $('#footerTitle').html( alt );
                }
                
                if(dataIndex != undefined) {
                    
                    var $pagerList = $('.pager ul', '#footer');
                    
                    var $children = $pagerList.children('li').removeClass('active');
                    $($children[dataIndex]).addClass('active');
                    
                    Cufon.refresh('.pager ul a');
                }
            }
        );
}
