(function($){$.fn.lazyload=function(options){var instanceRef=$.fn.lazyload;var settings={threshold:0,effect:"show",container:window,bucketWidth:1,horizontalContainerSelector:null};if(options){settings=$.extend(settings,options);if(settings.bucketWidth<1){settings.bucketWidth=1;}if(options.threshold>=0&&settings.threshold!=instanceRef.prototype.s_members.offScreenBufferHeight){instanceRef.prototype.s_members.offScreenBufferHeight=settings.threshold;}}var elements=this;var onScrollHandler=function(event){var _top=$(window).scrollTop();var _bottom=_top+$(window).height();var offScreenBufferHeight=instanceRef.prototype.s_members.offScreenBufferHeight;_top=Math.floor((_top-offScreenBufferHeight)/settings.bucketWidth);_bottom=Math.floor((_bottom+offScreenBufferHeight)/settings.bucketWidth);for(var pos in positions){if(pos>=_top&&pos<=_bottom){for(var ele in positions[pos]){var elementTuple=positions[pos][ele];var image=$(elementTuple.image);var imgOffset=image.offset();if(elementTuple.hContainer){var contOffset=elementTuple.hContainer.offset();if(contOffset.left<=imgOffset.left+image.width()&&contOffset.left+elementTuple.hContainer.width()>=imgOffset.left){image.trigger("appear");}}else{var leftOffset=$(window).scrollLeft();if(leftOffset<=imgOffset.left+image.width()&&leftOffset+$(window).width()>=imgOffset.left){image.trigger("appear");}}}var filtered=$.grep(positions[pos],function(elementTuple){return !(elementTuple.image.loaded||elementTuple.image.hasError);});positions[pos]=filtered;}}var temp=$.grep(elements,function(element){return !(element.loaded||element.hasError);});elements=$(temp);};$(settings.container).bind("scroll",onScrollHandler);$(settings.container).bind("resize",onScrollHandler);if(!instanceRef.prototype.s_members.updateLoadStatus){instanceRef.prototype.s_members.updateLoadStatus=onScrollHandler;}this.each(function(){var self=this;if(!$(self).attr("original")){$(self).attr("original",$(self).attr("src2"));}if(!$(self).attr("src")||settings.placeholder==$(self).attr("src")){if(settings.placeholder){$(self).attr("src",settings.placeholder);}else{$(self).removeAttr("src");}self.loaded=false;self.hasError=false;}else{self.loaded=true;}$(self).bind("appear",function(){if(!this.loaded&&!this.hasError){$("<img />").bind("load",function(){$(self).hide().attr("src",$(self).attr("original"))[settings.effect](settings.effectspeed);self.loaded=true;}).error(function(e){self.hasError=true;}).attr("src",$(self).attr("original"));}});});var positions={};if(instanceRef.prototype.s_members.positions){positions=instanceRef.prototype.s_members.positions;}else{instanceRef.prototype.s_members.positions=positions;}$(settings.container).bind("CreateLookupTable",function(){elements.each(function(){_p=Math.floor($(this).offset().top/settings.bucketWidth);if(!positions[_p]){positions[_p]=[];}var hContainer=(settings.horizontalContainerSelector)?$(this).parents(settings.horizontalContainerSelector).first():null;if(hContainer&&hContainer.length==0){hContainer=null;}var elementTuple={image:$(this),hContainer:hContainer};positions[_p].push(elementTuple);});});$(settings.container).trigger("CreateLookupTable");$(settings.container).trigger("scroll");return this;};$.fn.lazyload.prototype.s_members={positions:null,offScreenBufferHeight:0,updateLoadStatus:null};$.fn.lazyload.triggerUpdate=function(){var staticMembers=$.fn.lazyload.prototype.s_members;if(staticMembers.updateLoadStatus){staticMembers.updateLoadStatus();}};})(jQuery);
