(function(b){
    b.fn.preloadhelper=function(e){
        var f={
            fadeInSpeed:800,
            delay:0,
            callback:""
        };

        var a=b.extend(f,e);
        return this.each(function(){
            var d=jQuery(this),h=d.find("img").css({
                opacity:0,
                visibility:"hidden"   //,
              //  display:"block"
            }),c=h.length;
            d.operations={
                preload:function(){
                    var g=true;
                    h.each(function(n,m){
                        var i=b(this);
                        if(m.complete==true){
                            d.operations.showImage(i)
                            }else{
                            i.bind("error load",{
                                currentImage:i
                            },d.operations.showImage)
                            }
                        });
                return this
                },
            showImage:function(g){
                c--;
                if(g.data.currentImage!=undefined){
                    g=g.data.currentImage
                    }
                    if(a.delay<=0){
                    g.css("visibility","visible").animate({
                        opacity:1
                    },a.fadeInSpeed)
                    }
                    if(c==0){
                    if(a.delay>0){
                        h.each(function(n,m){
                            var i=b(this);
                            setTimeout(function(){
                                i.css("visibility","visible").animate({
                                    opacity:1
                                },a.fadeInSpeed,function(){
                                    b(this).parent().removeClass("preloading")
                                    })
                                },a.delay*(n+1))
                            });
                        if(a.callback!=""){
                            setTimeout(a.callback,a.delay*h.length)
                            }
                        }else{
                    if(a.callback!=""){
                        (a.callback)()
                        }
                    }
            }
        }
};

d.operations.preload()
})
}
})(jQuery);
