﻿(function($)
{
    $.fn.gallery = function(options)
    {
        var previousbuttoncssname = '.navprevious';
        var nextbuttoncssname = '.navnext';
        var navcontainername = '.navcontainer';
        var textcontainername = '.textcontainer';
        var countcontainername = '.countcontainer';
        var obj = $(this);
        var cur = 0;                    // array index of currently displayed image
        var listitems = obj.find('li');
        var tot = listitems.length;     // total number of images/list items
        if (tot > 0)
        {
            Init();
        }
        function Init()
        {
            listitems.each(
                        function(i)
                        {
                            if (i > 0)
                                $(listitems[i]).hide();
                        }
                        );
            BindGallery(cur);
            if (tot > 1)
            {
                obj.find(previousbuttoncssname).click(function() //define backbutton click event
                {
                    var curold = cur;
                    if (cur <= 0)
                        cur = tot - 1;
                    else
                        cur--;
                    $(listitems[curold]).fadeOut(500, function() { BindGallery(cur) });
                    return false;
                });

                obj.find(nextbuttoncssname).click(function() //define forwardbutton click event
                {
                    var curold = cur;
                    if (cur < (tot - 1))
                        cur++;
                    else
                        cur = 0;
                    obj.find(textcontainername).fadeOut(500);
                    $(listitems[curold]).fadeOut(500, function() { BindGallery(cur) });
                    return false;
                });
            }
            else
            {
                obj.find(navcontainername).hide();
            }
        }

        function BindGallery(currentindex)
        {
            $(listitems[currentindex]).fadeIn(500);     //...except the current index
            var alttext = $(listitems[currentindex]).find('img').attr("alt");
            if (alttext.length > 0)
                obj.find(textcontainername).fadeIn(500).text(alttext);
            obj.find(countcontainername).html('<strong>' + (cur + 1) + '</strong> of <strong>' + tot + '</strong>')
        }
    };
})(jQuery);