/** 
 * @file jquery.ds.imageloader.js
 * @ver 0.9
 *
 * Copyright (c) 2010 Dániel Sólyom (DS)
 *
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * 2010-03-14
 *
 * @special source of images are coming from alt / src should be empty
 */

(function($) {
    $.fn.imageloader = function(settings) {
        settings = $.extend({}, $.fn.imageloader.defaults, settings);

        cnt = (me = $(this)).length;

        me.each(function() {
            me = $(this);


            var image = new Image();
                /* source coming from alt - needed for ie load order */
            var loader = $('<span class="image-loader"></span>')
                                  .css({background: 'url(' + settings.path + settings.image + ') no-repeat center center',
                                        width: settings.width,
                                        height: settings.height,
                                        display: 'inline-block'
                                  });
            me.before(loader);

            $(image).load(function() {
                    /* random loadtime for nice effect */
                setTimeout(function() { $.fn.imageloader.show($(image), loader) },
                           settings.minloadtime + Math.floor((settings.maxloadtime - settings.minloadtime) * (Math.random() % 1))
                          );       
            })
            .attr('src', me.html())
            .css({ width: settings.width,
                   height: settings.height
            });
            me.remove();
        });
    }

    $.fn.imageloader.show = function(image, placeholder)
    {
        placeholder.replaceWith(image);
        image.hide().fadeIn();
    }


    $.fn.imageloader.defaults = {
        path: URLBASE + 'skin/images/',
        image: 'ajax-loader.gif',
        width: 200,
        height: 100,
        minloadtime: 50,
        maxloadtime: 300
    };
})(jQuery)
