(function(a){a.tools=a.tools||{version:"1.0"};a.tools.lazydom={items:null,render:function(){var a=this.children("textarea");a.length>0&&this.html(a.val())},direction:"y",delay:0,before:100};var b=[];function c(m,c){var b=m,f=[],d=[],i=1,k=0,h=Number(c.before),e=[],n=window,g=b[0].setTimeout?true:false;if(c.items!=null){if(c.items.jquery||a.isArray(c.items))f=c.items;else if(typeof c.items=="string")f=a(c.items)}else f=a(".lazydom");if(f.length<=0)return;if(!g){var l=b.css("position");l!="absolute"&&l!="relative"&&b.css("position","relative")}a.each(f,function(c,b){var b=a(b);d.push({left:g?b.offset().left:b.position().left,top:g?b.offset().top:b.position().top,w:b.outerWidth(true),h:b.outerHeight(true),obj:b})});var j=c.direction.toUpperCase();if(j=="Y")e="top";else if(j=="X")e="left";else e=0;a.extend(b,{getOffset:function(){if(g&&!jQuery.support.boxModel){jQuery.support.boxModel=true;var a={top:b.scrollTop()+b.height(),left:b.scrollLeft()+b.width()};jQuery.support.boxModel=false;return a}else return{top:b.scrollTop()+b.height(),left:b.scrollLeft()+b.width()}},monitor:function(){var i=b.getOffset();if(e){var a=0,g=d.length;if(g<=0){b.unbindEvent();return}for(;a<g;a++){var f=d[0];if(i[e]+h>=f[e])c.render.call(d.shift().obj);else return false}}else{var a=0,g=d.length;if(k>=g){b.unbindEvent();return}for(;a<g;a++){var f=d[a];if(f!=undefined&&i.top+h>=f.top&&i.left+h>=f.left){c.render.call(f.obj);d[a]=undefined;k++}}}},limitTimes:function(a){if(!i)return;i=0;setTimeout(function(){i=1;a()},c.delay)},unbindEvent:function(){b.unbind("scroll.lazydom");a(window).unbind("resize.lazydom")}});a(window).bind("resize.lazydom",function(){b.monitor()});b.ready(function(){b.monitor()});if(c.delay<=0)b.bind("scroll.lazydom",function(){b.monitor()});else b.bind("scroll.lazydom",function(){b.limitTimes(b.monitor)})}a.fn.lazydom=function(d,f){var e=this.data("lazydom");if(e)return;if(a.isFunction(d)){f=d;d=a.extend({},a.tools.lazydom)}else d=a.extend({},a.tools.lazydom,d);this.each(function(){e=new c(a(this),d);b.push(e);a(this).data("lazydom",e)});return d.api?e:this};a.extend({lazydom:function(b,c){return a(window).lazydom(b,c)}})})(jQuery)
