﻿/// <reference path="jquery-1.4.2.min.js" />

HorizontalSliderHandler = function () {
    this.Slider = null;
    this.MovingContainer = null;
    this.SliderItems = null;
    this.SliderItemWidth = 180;
    this.MaxVisibleSliderItemCount = 3;
    this.MaxScrollableItemIdx = 0;
    this.MovingContainerWidth = 0;
    this.CurrentItemIdx = 0;
    this.BarMoving = false;
}

HorizontalSliderHandler.prototype = {
    Initialize: function () {
        horizontalSliderHandler.Slider = $j(".HorizontalSlider");
        horizontalSliderHandler.MovingContainer = $j(".HorizontalSliderMovingContainer");

        if (horizontalSliderHandler.Slider.length > 0) {
            horizontalSliderHandler.SliderItems = $j(".HorizontalSliderItem");
            horizontalSliderHandler.MaxScrollableItemIdx = horizontalSliderHandler.SliderItems.length - horizontalSliderHandler.MaxVisibleSliderItemCount;

            horizontalSliderHandler.MovingContainerWidth = horizontalSliderHandler.SliderItems.length * horizontalSliderHandler.SliderItemWidth;
            horizontalSliderHandler.MovingContainer.css("width", horizontalSliderHandler.MovingContainerWidth);
        }
    },

    GoBy: function (numberOfItemsToMove) {
        if (!horizontalSliderHandler.BarMoving) {
            horizontalSliderHandler.BarMoving = true;
            var oldIdx = horizontalSliderHandler.CurrentItemIdx;
            var newItemIdx = horizontalSliderHandler.CurrentItemIdx;

            newItemIdx += numberOfItemsToMove;

            if (newItemIdx < 0)
                newItemIdx = 0;
            if (newItemIdx > horizontalSliderHandler.MaxScrollableItemIdx)
                newItemIdx = horizontalSliderHandler.MaxScrollableItemIdx;

            if (newItemIdx != oldIdx) {
                horizontalSliderHandler.CurrentItemIdx = newItemIdx;
                horizontalSliderHandler.MovingContainer.animate({ left: (newItemIdx * -horizontalSliderHandler.SliderItemWidth) }, 300, function () {
                    horizontalSliderHandler.BarMoving = false;
                });
            }
            else {
                horizontalSliderHandler.BarMoving = false;
            }
        }
    }
}

var horizontalSliderHandler = new HorizontalSliderHandler();

$j(document).ready(function () {
    horizontalSliderHandler.Initialize();
});
