/*! datalazyload - v1.0.1 - 2013-10-30 7:56:43 PM
* Copyright (c) 2013 kissy-team; Licensed */
KISSY.add("gallery/datalazyload/1.0.1/index",function(a,b,c,d,e){function f(c,d,e){c.style.display=t,c.className="";var f=b.create("
");c.parentNode.insertBefore(f,c);var g=c.value;if(a.isFunction(e)){var h=e({type:"textarea",elem:c,value:g});h&&(g=h)}b.html(f,g,d)}function g(b,c){var d,e;return(d=b.id)||(d=b.id=a.guid("ks-lazyload")),(e=c.ksLazyloadId)||(e=c.ksLazyloadId=a.guid("ks-lazyload")),d+e}function h(a){return a._ks_lazy_width?a._ks_lazy_width:a._ks_lazy_width=b.outerWidth(a)}function i(a){return a._ks_lazy_height?a._ks_lazy_height:a._ks_lazy_height=b.outerHeight(a)}function j(a,c,d){if(!a.offsetWidth)return!1;var e,f=b.offset(a),g=!0,j=f.left,k=f.top,m={left:j,top:k,right:j+h(a),bottom:k+i(a)};return e=l(c,m),e&&d&&(g=l(d,m)),g&&e}function k(b,c){var d=this;if(!(d instanceof k))return new k(b,c);var e=b;a.isPlainObject(e)||(e=c||{},b&&(e.container=b)),k.superclass.constructor.call(d,e),d._callbacks={},d._containerIsNotDocument=9!=d.get("container").nodeType,d._initLoadEvent()}function l(a,b){var c={};return c.top=Math.max(a.top,b.top),c.bottom=Math.min(a.bottom,b.bottom),c.left=Math.max(a.left,b.left),c.right=Math.min(a.right,b.right),c.bottom>=c.top&&c.right>=c.left}function m(c,d,e,g){"img-src"===d&&(d="img"),a.isArray(c)||(c=[b.get(c)]);var h=e||p+r,i=e||q+r;a.each(c,function(a){var c=b.nodeName(a);"img"==d?"img"==c?z(a,h,g):b.query("img",a).each(function(a){z(a,h,g)}):"textarea"==c?b.hasClass(a,i)&&f(a,!0,g):b.query("textarea."+i,a).each(function(a){f(a,!0,g)})})}var n=a.Env.host,o=n.document,p="data-ks-lazyload",q="ks-datalazyload",r="-custom",s="default",t="none",u="scroll",v="touchmove",w="resize",x=100,y=this.name,z=function(b,c,d,e){function f(a){b.src!=a&&(b.src=a),b.removeAttribute(c)}c=c||p;var g=b.getAttribute(c),h={type:"img",elem:b,src:g},i=!a.isFunction(d)||d(h)!==!1;i&&h.src&&(a.isFunction(e)?a.use(new a.Uri(y).resolve("./plugin/webp").toString(),function(){WebP.isSupport(function(a){f(a?e(h.src):h.src)})}):f(h.src))};return k.ATTRS={diff:{value:s},placeholder:{value:"http://a.tbcdn.cn/kissy/1.0.0/build/imglazyload/spaceball.gif"},execScript:{value:!0},container:{setter:function(c){return c=c||o,a.isWindow(c)?c=c.document:(c=b.get(c),"body"==b.nodeName(c)&&(c=c.ownerDocument)),c},valueFn:function(){return o}},autoDestroy:{value:!0},onStart:{vaule:null}},a.extend(k,d,{_filterItems:function(){var c=this,d=c.userConfig,e=c.get("container"),f=[],g=[],h=[e];a.isArray(d.container)&&(c._backCompact=1,h=d.container),a.each(h,function(d){f=f.concat(a.filter(b.query("img",d),c._filterImg,c)),g=g.concat(b.query("textarea."+q,d))}),c._images=f,c._textareas=g},_filterImg:function(a){var b=this,c=b.get("placeholder");return a.getAttribute(p)?(a.src||(a.src=c),!0):e},_initLoadEvent:function(){function b(){c._filterItems(),c._isLoadAllLazyElements()||a.ready(g),c.resume()}var c=this,d=new Image,e=c.get("placeholder"),f=c.get("autoDestroy"),g=function(){c._loadItems(),f&&c._isLoadAllLazyElements()&&c.destroy()};c._loadFn=a.buffer(g,x,c),d.complete?b():d.onload=b,d.src=e},refresh:function(){this._loadFn()},_loadItems:function(){var a,b,c=this,d=c.get("container");(!c._containerIsNotDocument||d.offsetWidth)&&(b=c._getBoundingRect(),!c._backCompact&&c._containerIsNotDocument&&(a=c._getBoundingRect(c.get("container"))),c._loadImgs(b,a),c._loadTextAreas(b,a),c._fireCallbacks(b,a))},_loadImgs:function(b,c){var d=this;d._images=a.filter(d._images,function(a){return j(a,b,c)?z(a,e,d.get("onStart"),d.get("webpReplacer")):!0},d)},_loadTextAreas:function(b,c){var d=this,e=d.get("execScript");d._textareas=a.filter(d._textareas,function(a){return j(a,b,c)?f(a,e,d.get("onStart")):!0},d)},_fireCallbacks:function(b,c){var d=this,e=d._callbacks;a.each(e,function(a,d){var f=a.el,g=!1,h=a.fn;j(f,b,c)&&(g=h.call(f)),g!==!1&&delete e[d]})},addCallback:function(a,c){var d=this,e=d._callbacks;a=b.get(a),e[g(a,c)]={el:b.get(a),fn:c},d._loadFn()},removeCallback:function(a,c){var d=this._callbacks;a=b.get(a),delete d[g(a,c)]},getElements:function(){return{images:this._images,textareas:this._textareas}},addElements:function(c){"string"==typeof c?c=b.query(c):a.isArray(c)||(c=[c]);var d=this,e=d._images||[],f=d._textareas||[];a.each(c,function(b){var c=b.nodeName.toLowerCase();"img"==c?a.inArray(b,e)||e.push(b):"textarea"==c&&(a.inArray(b,f)||f.push(b))}),d._images=e,d._textareas=f},removeElements:function(c){"string"==typeof c?c=b.query(c):a.isArray(c)||(c=[c]);var d=this,e=[],f=[];a.each(d._images,function(b){a.inArray(b,c)||e.push(b)}),a.each(d._textareas,function(b){a.inArray(b,c)||f.push(b)}),d._images=e,d._textareas=f},_getBoundingRect:function(c){var d,f,g,h;if(c!==e){d=b.outerHeight(c),f=b.outerWidth(c);var i=b.offset(c);g=i.left,h=i.top}else d=b.viewportHeight(),f=b.viewportWidth(),g=b.scrollLeft(),h=b.scrollTop();var j=this.get("diff"),k=j===s?f:j,l=0,m=k,n=j===s?d:j,o=0,p=n,q=g+f,r=h+d;return a.isObject(j)&&(l=j.left||0,m=j.right||0,o=j.top||0,p=j.bottom||0),g-=l,q+=m,h-=o,r+=p,{left:g,top:h,right:q,bottom:r}},_isLoadAllLazyElements:function(){var b=this;return 0==b._images.length+b._textareas.length+(a.isEmptyObject(b._callbacks)?0:1)},pause:function(){var a=this,b=a._loadFn;if(!a._destroyed&&(c.remove(n,u,b),c.remove(n,v,b),c.remove(n,w,b),b.stop(),a._containerIsNotDocument)){var d=a.get("container");c.remove(d,u,b),c.remove(d,v,b)}},resume:function(){var a=this,b=a._loadFn;if(!a._destroyed&&(c.on(n,u,b),c.on(n,v,b),c.on(n,w,b),a._containerIsNotDocument)){var d=a.get("container");c.on(d,u,b),c.on(d,v,b)}},destroy:function(){var b=this;b.pause(),b._callbacks={},b._images=[],b._textareas=[],a.log("datalazyload is destroyed!"),b.fire("destroy"),b._destroyed=1}}),k.loadCustomLazyData=m,a.DataLazyload=k,k},{requires:["dom","event","base"]});