1(function($){$.fn.viewportChecker=function(useroptions){var options={classToAdd:'visible',classToRemove:'invisible',offset:100,repeat:false,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)?'body':'html');this.checkElements=function(){if(!options.scrollHorizontal){var viewportStart=$(scrollElem).scrollTop(),viewportEnd=(viewportStart+windowSize.height);} 2else{var viewportStart=$(scrollElem).scrollLeft(),viewportEnd=(viewportStart+windowSize.width);} 3$elem.each(function(){var $obj=$(this),objOptions={},attrOptions={};if($obj.data('vp-add-class')) 4attrOptions.classToAdd=$obj.data('vp-add-class');if($obj.data('vp-remove-class')) 5attrOptions.classToRemove=$obj.data('vp-remove-class');if($obj.data('vp-offset')) 6attrOptions.offset=$obj.data('vp-offset');if($obj.data('vp-repeat')) 7attrOptions.repeat=$obj.data('vp-repeat');if($obj.data('vp-scrollHorizontal')) 8attrOptions.scrollHorizontal=$obj.data('vp-scrollHorizontal');$.extend(objOptions,options);$.extend(objOptions,attrOptions);if($obj.hasClass(objOptions.classToAdd)&&!objOptions.repeat){return;} 9var 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((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");}});};$(window).bind("load scroll touchmove",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.