1(function($,window,document){'use strict';var lazyLoadXT='lazyLoadXT',dataLazied='lazied',loadError='load error',classLazyHidden='lazy-hidden',docElement=document.documentElement||document.body,forceLoad=window.onscroll===undefined||!!window.operamini||!docElement.getBoundingClientRect,options={autoInit:!0,selector:'img[data-src]',blankImage:'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',throttle:99,forceLoad:forceLoad,loadEvent:'pageshow',updateEvent:'load orientationchange resize scroll touchmove focus',forceEvent:'lazyloadall',oninit:{removeClass:'lazy'},onshow:{addClass:classLazyHidden},onload:{removeClass:classLazyHidden,addClass:'lazy-loaded'},onerror:{removeClass:classLazyHidden},checkDuplicates:!0},elementOptions={srcAttr:'data-src',edgeX:0,edgeY:0,visibleOnly:!0},$window=$(window),$isFunction=function(f){return typeof f==='function'},$extend=$.extend,$data=$.data||function(el,name){return $(el).data(name)},elements=[],topLazy=0,waitingMode=0;$[lazyLoadXT]=$extend(options,elementOptions,$[lazyLoadXT]);function getOrDef(obj,prop){return obj[prop]===undefined?options[prop]:obj[prop]} 2function scrollTop(){var scroll=window.pageYOffset;return scroll===undefined?docElement.scrollTop:scroll} 3function timeoutLazyElements(){if(waitingMode>1){waitingMode=1;checkLazyElements();setTimeout(timeoutLazyElements,options.throttle)}else{waitingMode=0}} 4function queueCheckLazyElements(e){if(!elements.length){return} 5if(e&&e.type==='scroll'&&e.currentTarget===window){if(topLazy>=scrollTop()){return}} 6if(!waitingMode){setTimeout(timeoutLazyElements,0)} 7waitingMode=2} 8function triggerEvent(event,$el){var handler=options['on'+event];if(handler){if($isFunction(handler)){handler.call($el[0])}else{if(handler.addClass){$el.addClass(handler.addClass)} 9if(handler.removeClass){$el.removeClass(handler.removeClass)}}} 10$el.trigger('lazy'+event,[$el]);queueCheckLazyElements()} 11function triggerLoadOrError(e){triggerEvent(e.type,$(e.currentTarget).off(loadError,triggerLoadOrError))} 12function checkLazyElements(force){var viewportTop,viewportHeight,viewportWidth,i,length;var $el,el,objData,removeNode,visible,topEdge;var elPos,edgeX,edgeY;var srcAttr,src;if(!elements.length){return} 13force=force||options.forceLoad;topLazy=Infinity;viewportTop=scrollTop();viewportHeight=window.innerHeight||docElement.clientHeight;viewportWidth=window.innerWidth||docElement.clientWidth;for(i=0,length=elements.length;i<length;i+=1){$el=elements[i];el=$el[0];objData=$el[lazyLoadXT];removeNode=!1;visible=force||$data(el,dataLazied)<0;if(!$.contains(docElement,el)){removeNode=!0}else if(force||!objData.visibleOnly||el.offsetWidth||el.offsetHeight){if(!visible){elPos=el.getBoundingClientRect();edgeX=objData.edgeX;edgeY=objData.edgeY;topEdge=elPos.top+viewportTop-edgeY-viewportHeight;visible=topEdge<=viewportTop&&elPos.bottom>-edgeY&&elPos.left<=viewportWidth+edgeX&&elPos.right>-edgeX} 14if(visible){$el.on(loadError,triggerLoadOrError);triggerEvent('show',$el);srcAttr=objData.srcAttr;src=$isFunction(srcAttr)?srcAttr($el):el.getAttribute(srcAttr);
14if(src){el.src=src} 15removeNode=!0}else if(topEdge<topLazy){topLazy=topEdge}} 16if(removeNode){$data(el,dataLazied,0);elements.splice(i,1);i=i-1;length=length-1}} 17if(!length){triggerEvent('complete',$(docElement))}} 18$.fn[lazyLoadXT]=function(overrides){var blankImage;var checkDuplicates;var scrollContainer;var forceShow;var elementOptionsOverrides={};overrides=overrides||{};blankImage=getOrDef(overrides,'blankImage');checkDuplicates=getOrDef(overrides,'checkDuplicates');scrollContainer=getOrDef(overrides,'scrollContainer');forceShow=getOrDef(overrides,'show');$(scrollContainer).on('scroll',queueCheckLazyElements);Object.keys(elementOptions).forEach(function(prop){elementOptionsOverrides[prop]=getOrDef(overrides,prop)});return this.each(function(index,el){var duplicate;var $el;if(el===window){$(options.selector).lazyLoadXT(overrides)}else{duplicate=checkDuplicates&&$data(el,dataLazied);$el=$(el).data(dataLazied,forceShow?-1:1);if(duplicate){queueCheckLazyElements();return} 19if(blankImage&&el.tagName==='IMG'&&!el.src){el.src=blankImage} 20$el[lazyLoadXT]=$extend({},elementOptionsOverrides);triggerEvent('init',$el);elements.push($el);queueCheckLazyElements()}})};function initLazyElements(){$window.lazyLoadXT()} 21function forceLoadAll(){checkLazyElements(!0)} 22$(function(){triggerEvent('start',$window);$window.on(options.updateEvent,queueCheckLazyElements).on(options.forceEvent,forceLoadAll);$(document).on(options.updateEvent,queueCheckLazyElements);if(options.autoInit){$window.on(options.loadEvent,initLazyElements);initLazyElements()}})}(window.jQuery||window.Zepto||window.$,window,document));(function($){'use strict';var options=$.lazyLoadXT;options.selector+=',video,iframe[data-src]';options.videoPoster='data-poster';$(document).on('lazyshow','video',function(e,$el){var srcAttr=$el.lazyLoadXT.srcAttr,isFuncSrcAttr=typeof srcAttr==='function',changed=!1;$el.attr('poster',$el.attr(options.videoPoster));$el.children('source,track').each(function(index,el){var $child=$(el),src=isFuncSrcAttr?srcAttr($child):$child.attr(srcAttr);
22if(src){$child.attr('src',src);changed=!0}});if(changed){this.load()}})}(window.jQuery||window.Zepto||window.$))
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.