/**
 * @fileOverview 
 * Copyright (c) 2009 e-seikatsu.co.jp
 *
 * dependency libralies
 * jQuery1.3.2(http://jquery.com/)
 * @name aquariumLazyload.js
 * @version 1.0.0
 * 
 * @license MIT license
 *          http://www.opensource.org/licenses/mit-license.php
 * 
 * original:
 *   Lazy Load - jQuery plugin for lazy loading images
 *   ver 1.4.0
 *   Mika Tuupola
 *   http://www.appelsiini.net/projects/lazyload
 * 
 */
(function($){$.fn.lazyload=function(options){var settings={threshold:0,failurelimit:0,event:"scroll",effect:"show",container:window};if(options){$.extend(settings,options);}var elements=this;if("scroll"==settings.event){$(settings.container).load(function(event){var counter=0;elements.each(function(){if(!$.belowthefold(this,settings) &&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}});});var triggerAppearByScroll=function(){var counter=0;elements.each(function(){if(!this.loaded){if(!$.belowthefold(this,settings) &&!$.rightoffold(this,settings)){$(this).trigger("appear");}else{if(counter++>settings.failurelimit){return false;}}}});};$(settings.container).scroll(function(event){triggerAppearByScroll();});$(settings.container).resize(function(event){triggerAppearByScroll();});}return this.each(function(){var self=$(this);var selfDom=this;if(self.attr("src") && !self.attr("original")){self.attr("original",self.attr("src"));}if(!self.attr("original-height") && self.attr("height")){self.attr("original-height",self.attr("height"));self.removeAttr("height");}if(!self.attr("original-width") && self.attr("width")){self.attr("original-width",self.attr("width"));self.removeAttr("width");}if("scroll" !=settings.event||$.belowthefold(self,settings)||$.rightoffold(self,settings)){if(!self.attr("original")){if(settings.placeholder){self.attr("src",settings.placeholder);}else{self.removeAttr("src");}}selfDom.loaded=false;}else{selfDom.loaded=true;}self.one("appear",function(){var src=self.attr("original");var loadOriginalImage=function(){self.attr("src",src);if(self.attr("original-height")){self.attr("height",self.attr("original-height"));}if(self.attr("original-width")){self.attr("width",self.attr("original-width"));}};$.ajax({type:"GET",url:src,success:function(data){loadOriginalImage();},error:function(xmlHttpRequest,status,error){var statusCode=xmlHttpRequest.status;if(statusCode>=200 && statusCode<300){loadOriginalImage();}else if(settings.nonexistence){self.attr("src",settings.nonexistence);}}});selfDom.loaded=true;});if("scroll" !=settings.event){self.bind(settings.event,function(event){if(!selfDom.loaded){self.trigger("appear");}});}});};$.belowthefold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).height()+$(window).scrollTop();}else{var fold=$(settings.container).offset().top+$(settings.container).height();}return fold<=$(element).offset().top - settings.threshold;};$.rightoffold=function(element,settings){if(settings.container===undefined||settings.container===window){var fold=$(window).width()+$(window).scrollLeft();}else{var fold=$(settings.container).offset().left+$(settings.container).width();}return fold<=$(element).offset().left - settings.threshold;};$.extend($.expr[':'],{"below-the-fold":"$.belowthefold(a,{threshold:0,container:window})","above-the-fold":"!$.belowthefold(a,{threshold:0,container:window})","right-of-fold":"$.rightoffold(a,{threshold:0,container:window})","left-of-fold":"!$.rightoffold(a,{threshold:0,container:window})"});})(jQuery);