﻿$(function() {

    var totalPanels = $(".scrollContainer").children().size();

    // customizable amount of displayed items
    var itemAmount = 3;

    var regWidth = $(".panel").css("width");
    var regImgWidth = $(".panel img").css("width");
    var regTitleSize = $(".panel h3").css("font-size");
    var regParSize = $(".panel p").css("font-size");

    var movingDistance = 487;

    var curWidth = 120;
    var curImgWidth = 120;
    var curTitleSize = "11px";
    var curParSize = "11px";

    var $panels = $('#sliderWithTextRight .scrollContainer > div');
    var $container = $('#sliderWithTextRight .scrollContainer');

    if ($panels != null && $panels[0] != null && $container != null) {
        $panels.css({ 'float': 'left', 'position': 'relative' });

        $("#sliderWithTextRight").data("currentlyMoving", false);

        $container
		.css('width', ($panels[0].offsetWidth * $panels.length) + 200000)
        //.css('left', "6px");
		.css('left', "40");

        var scroll = $('#sliderWithTextRight .scroll').css('overflow', 'hidden');

    }

    function returnToNormal(element) {
        $(element)
			.animate({ width: regWidth })
			.find("img")
			.animate({ width: regImgWidth })
		    .end()
			.find("h2")
			.animate({ fontSize: regTitleSize })
			.end()
			.find("p")
			.animate({ fontSize: regParSize });
    };

    function growBigger(element) {
        $(element)
			.animate({ width: curWidth })
			.find("img")
			.animate({ width: curImgWidth })
		    .end()
			.find("h2")
			.animate({ fontSize: curTitleSize })
			.end()
			.find("p")
			.animate({ fontSize: curParSize });
    }

    //direction true = right, false = left
    function change(direction) {


        //if not at the first or last panel
        if ((direction && !(curPanel < totalPanels)) || (!direction && (curPanel <= itemAmount))) { return false; }

        //if not currently moving
        if (($("#sliderWithTextRight").data("currentlyMoving") == false)) {

            $("#sliderWithTextRight").data("currentlyMoving", true);

            var next = direction ? curPanel + itemAmount : curPanel - itemAmount;
            var leftValue = $(".scrollContainer").css("left");
            var movement = direction ? parseFloat(leftValue, 10) - movingDistance : parseFloat(leftValue, 10) + movingDistance;

            $(".scrollContainer")
				.stop()
				.animate({
				    "left": movement
				}, function() {
				$("#sliderWithTextRight").data("currentlyMoving", false);
				});

            returnToNormal("#panel_" + curPanel);
            growBigger("#panel_" + next);

            curPanel = next;

            //remove all previous bound functions
            $("#panel_" + (curPanel + itemAmount)).unbind();

            //go forward
            $("#panel_" + (curPanel + itemAmount)).click(function() { change(true); });

            //remove all previous bound functions															
            $("#panel_" + (curPanel - itemAmount)).unbind();

            //go back
            $("#panel_" + (curPanel - itemAmount)).click(function() { change(false); });

            //remove all previous bound functions
            $("#panel_" + curPanel).unbind();
            
            if(curPanel > itemAmount){
                document.getElementById(imageLeft).style.display = 'block';
            } else {
                document.getElementById(imageLeft).style.display = 'none';
            }
            
            if(totalPanels > curPanel){
                document.getElementById(imageRight).style.display = 'block';
            } else {
                document.getElementById(imageRight).style.display = 'none';
            }
        }
    }

    // Set up "Current" panel and next and prev
    growBigger("#panel_" + itemAmount);
    var curPanel = itemAmount;

    $("#panel_" + (curPanel + itemAmount)).click(function() { change(true); });
    $("#panel_" + (curPanel - itemAmount)).click(function() { change(false); });

    //when the left/right arrows are clicked
    $(".right").click(function() { change(true); });
    $(".left").click(function() { change(false); });

    $(window).keydown(function(event) {
        switch (event.keyCode) {
            case 13: //enter
                $(".right").click();
                break;
            case 32: //space
                $(".right").click();
                break;
            case 37: //left arrow
                $(".left").click();
                break;
            case 39: //right arrow
                $(".right").click();
                break;
        }
    });

});
