/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


(function($){

    $.fn.preloadImages = function(callback){        
        var loadImages = function(imagePaths, callback){
            var img;
            var images = new Array();
            for(var i in imagePaths){
                img = new Image();
                img.src = imagePaths[i]
                images[i] = img;
            }
            var loaded = 0;
            var failed = 0;
            for(i in images){
                if(images[i].complete){
                    loaded ++;
                }else{
                    $(images[i]).load(function(){
                        loaded ++ ;
                        if((loaded + failed) == images.length){
                            callback(failed, loaded);
                        }
                    });
                    $(images[i]).error(function(){
                        failed++;
                        if((loaded + failed) == images.length){
                            callback(failed, loaded);
                        }
                    });
                }
            }
            if((loaded + failed) == images.length){
                callback(failed, loaded);
            }
        };

        var imgArray = new Array();
        var counter = 0;
        this.each(function(){
            var src = $(this).attr('src');
            if(src != undefined && src != null){
                imgArray[counter++] = src;
            }
        });
        loadImages(imgArray, callback);
    }
})(jQuery);
