(function($) {

    $.fn.calendarload = function(options) {
        var settings = {
            threshold    : 0,
            failurelimit : 0,
            effect       : "fadein",
            container    : window
        };
                
        if(options) {
            $.extend(settings, options);
        }
       
        var elements = this;
               
        return this.each(function() {
            var self = this;
            self.loaded = false;
                        
            /* When appear is triggered load original image. */
            $(self).one("appear", function() {
                if (!this.loaded) {
					var img = new Image();
					$(img)
                        .bind("load", function(e) {
							
								$(self).attr("src", $(self).attr("_src"));
                                $(self).fadeIn(1000);
								$(self).loaded = true;
							
                        })
                        .attr("src", $(self).attr("_src"));
                };
            });

            /* When wanted event is triggered load original image */
            /* by triggering appear.                              */
			if (!self.loaded) {
					$(self).trigger("appear");
			}
        });
	};
})(jQuery);
