﻿SliderHandler = function() {
    this.Slider = null;
    this.SliderItems = null;

    this.SliderLeftArrow = null;
    this.SliderRightArrow = null;

    this.CurrentItemIdx = 0;
    this.DefaultItemWidth = 290;
}

SliderHandler.prototype = {
    Initialize: function() {
        sliderHandler.Slider = $j("#sliderItemContainer");

        if (sliderHandler.Slider.length > 0) {
            sliderHandler.SliderItems = $j(".sliderItem", sliderHandler.Slider);
            sliderHandler.Slider.css("width", (sliderHandler.SliderItems.length * sliderHandler.DefaultItemWidth + 50) + "px");

            sliderHandler.SliderLeftArrow = $j("#slideLeft");
            sliderHandler.SliderRightArrow = $j("#slideRight");

            sliderHandler.HandleArrows();

            sliderHandler.SliderLeftArrow.click(function(e) {
                sliderHandler.GoBy(-1);
            });
            sliderHandler.SliderRightArrow.click(function(e) {
                sliderHandler.GoBy(1);
            });
        }
    },

    HandleArrows: function() {
        var newLeftValue = true;
        var newRightValue = true;
        if (sliderHandler.SliderItems.length == 0) {
            newLeftValue = false;
            newRightValue = false;
        }

        if (sliderHandler.CurrentItemIdx == 0)
            newLeftValue = false;

        if (sliderHandler.CurrentItemIdx >= (sliderHandler.SliderItems.length - 3))
            newRightValue = false;

        sliderHandler.SetArrowActive("left", newLeftValue);
        sliderHandler.SetArrowActive("right", newRightValue);
    },

    SetArrowActive: function(arrowName, active) {
        var arrowToUse = null;
        switch (arrowName) {
            case "left":
                arrowToUse = sliderHandler.SliderLeftArrow;
                break;
            case "right":
                arrowToUse = sliderHandler.SliderRightArrow;
                break;
        }

        if (arrowToUse) {
            arrowToUse.find("img").css("opacity", (active) ? 1 : 0.6);
        }
    },

    GoBy: function(goByCount) {
        if (sliderHandler.Slider.length > 0) {
            var newValue = sliderHandler.CurrentItemIdx + goByCount;

            if ((newValue >= 0) && (newValue < sliderHandler.SliderItems.length - 2)) {
                sliderHandler.CurrentItemIdx = newValue;

                var newLeft = (sliderHandler.DefaultItemWidth * -sliderHandler.CurrentItemIdx);
                sliderHandler.Slider.stop().animate({ "left": newLeft + "px" }, 500);

                sliderHandler.HandleArrows();
            }
        }
    }
}

var sliderHandler = new SliderHandler();


$j(document).ready(function() {
    sliderHandler.Initialize();
});
