/*
 * Lazy Load - jQuery plugin for lazy loading images
 *
 * Copyright (c) 2007-2009 Mika Tuupola
 *
 * Licensed under the MIT license:
 *   http://www.opensource.org/licenses/mit-license.php
 *
 * Project home:
 *   http://www.appelsiini.net/projects/lazyload
 *
 * Version:  1.5.0
 *
 */
(function($) {

    $.fn.lazyload = function(options) {
        var settings = {
            threshold    : 0,
            failurelimit : 0,
            event        : "scroll",
            effect       : "show",
            container    : window
        };
                
        if(options) {
            $.extend(settings, options);
        }
        
        this.each(function() {
            var self = this;
            
            /* Save original only if it is not defined in HTML. */
            if (undefined == $(self).attr("original")) {
                $(self).attr("original", $(self).attr("src"));     
            }

            if ("navclick" == settings.event) {       
                if (settings.placeholder) {
                    $(self).attr("src", settings.placeholder);      
                } else {
                    $(self).removeAttr("src");
                }
                self.loaded = false;
            } else {
                self.loaded = true;
            }
            
            /* When appear is triggered load original image. */
            $(self).one("appear", function() {
                if (!this.loaded) {
                    $("<img />")
                        .bind("load", function() {
                            $(self)
                                .hide()
                                .attr("src", $(self).attr("original"))
                                [settings.effect](settings.effectspeed);
                            self.loaded = true;
                        })
                        .attr("src", $(self).attr("original"));
                };
            });

            /* When wanted event is triggered load original image */
            /* by triggering appear.                              */
            if ("scroll" != settings.event) {
                $(self).bind(settings.event, function(event) {
					var $curLi = $(self).parent();
					var $nextLi;
					var $prevLi;
					if ($curLi.next().length>0){
						$nextLi = $curLi.next();
					}
					else{
						$nextLi = $curLi.parent().children().first();
					}
					if ($curLi.prev().length>0){
						$prevLi = $curLi.prev();
					}
					else{
						$prevLi = $curLi.parent().children().last();
					}
					var nextImg = $nextLi.children("img")[0];
					var prevImg = $prevLi.children("img")[0];

					//тут коммент т.к. изначально все элементы скрыты
                    if (!self.loaded/* && $curLi.css("display")!='none'*/) {
                        $(self).trigger("appear");
                    }
					if (/*$curLi.css("display")!='none' && */nextImg.loaded===false){
						$(nextImg).trigger("appear");
					}
					if (/*$curLi.css("display")!='none' && */prevImg.loaded===false){
						$(prevImg).trigger("appear");
					}
                });
            }
        });
        
        /* Force initial check if images should appear. */
        $(settings.container).trigger(settings.event);
        
        return this;

    };    
})(jQuery);

