1 2(function($){$.fn.viewportChecker=function(useroptions){var options={classToAdd:'visible',classToRemove:'invisible',offset:90,repeat:false,invertBottomOffset:true,callbackFunction:function(elem,action){},scrollHorizontal:false};$.extend(options,useroptions);var $elem=this,windowSize={height:$(window).height(),width:$(window).width()},scrollElem=((navigator.userAgent.toLowerCase().indexOf('webkit')!=-1||navigator.userAgent.toLowerCase().indexOf('windows phone')!=-1)?'body':'html');this.checkElements=function(){var viewportStart,viewportEnd;if(!options.scrollHorizontal){viewportStart=$(scrollElem).scrollTop();viewportEnd=(viewportStart+windowSize.height);} 3else{viewportStart=$(scrollElem).scrollLeft();viewportEnd=(viewportStart+windowSize.width);} 4$elem.each(function(){var $obj=$(this),objOptions={},attrOptions={};if($obj.data('vp-add-class')) 5attrOptions.classToAdd=$obj.data('vp-add-class');if($obj.data('vp-remove-class')) 6attrOptions.classToRemove=$obj.data('vp-remove-class');if($obj.data('vp-offset')) 7attrOptions.offset=$obj.data('vp-offset');if($obj.data('vp-repeat')) 8attrOptions.repeat=$obj.data('vp-repeat');if($obj.data('vp-scrollHorizontal')) 9attrOptions.scrollHorizontal=$obj.data('vp-scrollHorizontal');if($obj.data('vp-invertBottomOffset')) 10attrOptions.scrollHorizontal=$obj.data('vp-invertBottomOffset');$.extend(objOptions,options);$.extend(objOptions,attrOptions);if($obj.hasClass(objOptions.classToAdd)&&!objOptions.repeat){return;} 11if(String(objOptions.offset).indexOf("%")>0) 12objOptions.offset=(parseInt(objOptions.offset)/100)*windowSize.height;var elemStart=(!objOptions.scrollHorizontal)?Math.round($obj.offset().top)+objOptions.offset:Math.round($obj.offset().left)+objOptions.offset,elemEnd=(!objOptions.scrollHorizontal)?elemStart+$obj.height():elemStart+$obj.width();if(objOptions.invertBottomOffset) 13elemEnd-=(objOptions.offset*2);if((elemStart<viewportEnd)&&(elemEnd>viewportStart)){$obj.removeClass(objOptions.classToRemove);$obj.addClass(objOptions.classToAdd);objOptions.callbackFunction($obj,"add");}else if($obj.hasClass(objOptions.classToAdd)&&(objOptions.repeat)){$obj.removeClass(objOptions.classToAdd);objOptions.callbackFunction($obj,"remove");}});};if(!!('ontouchstart'in window)){$(document).bind("touchmove MSPointerMove pointermove",this.checkElements);} 14else{$(window).bind("scroll",this.checkElements);} 15$(window).bind("load",this.checkElements);$(window).resize(function(e){windowSize={height:$(window).height(),width:$(window).width()};$elem.checkElements();});this.checkElements();return this;};})(jQuery);
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.