(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",effectspeed:200,container:window,placeholder:"",urlPattern:/src-([a-zA-Z0-9\/=]+)/,html5Style:false};if(options)$.extend(settings,options);var elements=this;var checkPosition=function(element1,element2){if(null==element1||null==element2)return false;else{var diff=element1.length-element2.length;return diff>=0&&element1.lastIndexOf(element2)===diff}};if("scroll"==settings.event)$(settings.container).bind("scroll", function(){var counter=0;elements.each(function(){if(!$.abovethetop(this,settings)&&!$.leftofbegin(this,settings))if(!$.belowthefold(this,settings)&&!$.rightoffold(this,settings))$(this).trigger("appear");else if(counter++>settings.failurelimit)return false});var unloadedImgs=$.grep(elements,function(item){return!item.loaded});elements=$(unloadedImgs)});this.each(function(){var self=this;if(settings.html5Style){if(undefined==$(self).attr("data-src"))$(self).attr("data-src",$(self).attr("src"))}else if(!(true=== settings.urlPattern.test($(self).attr("class"))))$(self).addClass("src-"+$.base64Encode($(self).attr("src")));if("scroll"!=settings.event||undefined==$(self).attr("src")||""==$(self).attr("src")||settings.placeholder==$(self).attr("src")||$.abovethetop(self,settings)||$.leftofbegin(self,settings)||$.belowthefold(self,settings)||$.rightoffold(self,settings)){if(settings.placeholder)$(self).attr("src",settings.placeholder);else $(self).removeAttr("src");self.loaded=false}else self.loaded=true;$(self).one("appear", function(){if(!this.loaded){var srcValue="";if(settings.html5Style)srcValue=$(self).attr("data-src");else $(self).attr("class").replace(settings.urlPattern,function(m,hash){srcValue=$.base64Decode(hash)});$("<img />").bind("load",function(){var srcValue="";if(settings.html5Style)srcValue=$(self).attr("data-src");else $(self).attr("class").replace(settings.urlPattern,function(m,hash){srcValue=$.base64Decode(hash)});$(self).hide().attr("src",srcValue)[settings.effect](settings.effectspeed);self.loaded= true}).attr("src",srcValue)}});if("scroll"!=settings.event)$(self).bind(settings.event,function(){if(!self.loaded)$(self).trigger("appear")})});$(settings.container).trigger(settings.event);return this};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window)var fold=$(window).height()+$(window).scrollTop();else var fold=$(settings.container).offset().top+$(settings.container).height();return fold<=$(element).offset().top-settings.threshold};$.rightoffold= function(element,settings){if(settings.container===undefined||settings.container===window)var B=$(window).width()+$(window).scrollLeft();else var B=$(settings.container).offset().left+$(settings.container).width();return B<=$(element).offset().left-settings.threshold};$.abovethetop=function(element,settings){if(settings.container===undefined||settings.container===window)var B=$(window).scrollTop();else var B=$(settings.container).offset().top;return B>=$(element).offset().top+settings.threshold+$(element).height()}; $.leftofbegin=function(element,settings){if(settings.container===undefined||settings.container===window)var B=$(window).scrollLeft();else var B=$(settings.container).offset().left;return B>=$(element).offset().left+settings.threshold+$(element).width()};$.extend($.expr[":"],{"below-the-fold":"$.belowthefold(a, {threshold : 0, container: window})","above-the-fold":"!$.belowthefold(a, {threshold : 0, container: window})","right-of-fold":"$.rightoffold(a, {threshold : 0, container: window})","left-of-fold":"!$.rightoffold(a, {threshold : 0, container: window})"})})(jQuery);
