﻿var slider = {
    init: function(parentItem) {
        this.container = $(parentItem);
        this.ul = $("ul", parentItem);
        this.current = -1;
        this.count = $("li", this.ul).length - 1;
        this.timerHandler = null;
        this.optList = $(document.createElement("ol"));
        this.optList.addClass("slider-item-numbers");
        for (var i = 0; i <= this.count; i++) {
            $(document.createElement("li"))
			    .html('<a rel="' + i + '" href=\"javascript:void(0);\">' + (i + 1) + '</a>')
			    .appendTo(slider.optList)
			    .click(function() {
			        slider.showItem($("a", $(this)).attr('rel'), true);
			    });
        }
        this.optList.appendTo(this.container);
    },
    showNextItem: function() {
        slider.showItem(slider.current + 1);
    },
    showItem: function(itemNo) {
        if (itemNo > slider.count)
            itemNo = 0;
        if (itemNo < 0)
            itemNo = slider.count;

        window.clearTimeout(slider.timerHandler);
        slider.newNumber = itemNo;

        if (slider.current > -1) {
            slider.newNumber = itemNo;
            $($("li", slider.ul).get(slider.current))
                .animate(
                    { opacity: 0 },
                    function() {
                        slider.setNewItem();
                        $(this).css("display", "none");
                        $($("li", slider.ul).get(slider.current))
                            .css({ display: 'block', opacity: 0 })
                            .animate(
                                { 'opacity': 1 }
                            );
                    }
                );
        } else {
            $("li", slider.ul).css("display", "none");
            $($("li", slider.ul).get(itemNo))
                .css("display", "block");
            slider.setNewItem();
        }
    },
    setNewItem: function() {
        slider.current = parseInt(slider.newNumber);
        slider.showCurrentNumber();
        slider.setNextTimer();
    },
    showCurrentNumber: function() {
        $("li", slider.optList).removeClass("current");
        $($("li", slider.optList).get(slider.current)).addClass("current");
    },
    setNextTimer: function() {
        slider.timerHandler = window.setTimeout(function() { slider.showNextItem(); }, 2000);
    }
};

$(function() {
    window.slider.init(".slideshow");
    window.slider.showItem(0);
});

