﻿$(document).ready(function () {
    $('.gallery').lhpGallery();
});

(function ($) {
    $.fn.lhpGallery = function (options) {
        var settings = { };
        $.extend(settings, options);

        var $this = $(this);
        var $content = $('.gallery_content', $this);
        var $navWrapper = $('.gallery_nav_wrapper', $this);
        var $navScroller = $('.gallery_nav_scroller', $this);
        var $nav = $('.gallery_nav', $navWrapper);
        var $left = $('a.left', $navWrapper);
        var $right = $('a.right', $navWrapper);
        var $currentImage;
        var currentImageOffset;

        if ($('img', $content).length > 0) {
            $('li a', $nav).click(navClick);
            $left.click(movePrevious);
            $right.click(moveNext);
            $(window).load(function() {
                $left.add($right).hide().fadeIn('slow', function() {
                    var width = 0;
                    $('li', $nav).each(function() {
                        width += $(this).outerWidth();
                    });
                    $nav.width(width);
                });
                if($nav.width() >= 955) {
                    $nav.removeClass('nav_center').addClass('nav_left');
                }
                else {
                    $nav.removeClass('nav_left').addClass('nav_center');
                }
            });
            $('img', $content).click(moveNext)
            clearAndSetCurrent($('li', $nav).first());
        }
        else {
            $content.text("No images are currently in this gallery.");
            $navWrapper.hide();
        }
        return this;

        function clearAndSetCurrent(li) {
            if (li[0]) {
                $('li.current', $nav).removeClass('current');
                li.addClass('current');
                $('img', $content).stop().hide();
                $currentImage = $('#img_' + $('a', li).attr('href').replace('#', ''));
                $currentImage.hide().fadeIn('fast', function() {
                    currentImageOffset = $currentImage.offset();
                }).addClass('current');
                $navScroller.stop(true, true).scrollTo(li, 1100, {axis:'x', margin:false, offset: -450 });
            }
        }

        function moveNext(e) {
            var $next = $('li.current', $nav).next();
            if (!$next[0]) {
                $next = $('li', $nav).first();
            }
            clearAndSetCurrent($next);
            e.preventDefault();
            e.stopPropagation();
            return false;
        }

        function movePrevious(e) {
            var $prev = $('li.current', $nav).prev();
            if (!$prev[0]) {
                $prev = $('li', $nav).last();
            }
            clearAndSetCurrent($prev);
            e.preventDefault();
            e.stopPropagation();
            return false;
        }

        function navClick(e) {
            var $navitem = $(this).parent('li');
            if (!$navitem.hasClass('current'))
                clearAndSetCurrent($navitem);
            e.preventDefault();
            e.stopPropagation();
            return false;
        }

    };
})(jQuery);
