$(document).ready(function() {
    var currentPosition = 0;
    var slideWidth = 802;
    var slides = $('.slide');
    var numberOfSlides = slides.length;

    // Remove scrollbar in JS
    $('#slidesContainer').css('overflow', 'hidden');

    // Wrap all .slides with #slideInner div
    slides
    .wrapAll('<div id="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
	    'float': 'left',
	    'width': slideWidth
	});

    // Set #slideInner width equal to total width of all slides
    $('#slideInner').css('width', slideWidth * numberOfSlides);

    // Insert controls in the DOM
    $('#slideshow')
    .prepend('<span class="control" id="leftControl">Clicking moves left</span>')
    .append('<span class="control" id="rightControl">Clicking moves right</span>');

    // Build button to slideshow div
    $('#slideshow').prepend('<div class="ssbutton"><ul></ul></div>');
    // Build Button
    for (i = 0; i < numberOfSlides; i++) {
        $('#slideshow .ssbutton ul').append('<li><a title="' + i + '"><img src="/images/slideshow/off.gif" ' + i + ' /></a></li>');
    }

    // Hide left arrow control on first load
    manageControls(currentPosition);
    // Bind button
    manageButton(currentPosition);

    // Bind event listeners for ssbutton clicks
    $('.ssbutton ul li a').bind('click', function() {
        // Determine new position
        currentPosition = $(this).attr('title');
        if (currentPosition < 0) { currentPosition = numberOfSlides - 1; }
        else if (currentPosition >= numberOfSlides) { currentPosition = 0; }

        // Hide / show controls
        manageControls(currentPosition);
        // Bind button
        manageButton(currentPosition);
        // Move slideInner using margin-left
        $('#slideInner').animate({
            'marginLeft': slideWidth * (-currentPosition)
        });
    });

    // Hide left arrow control on first load
    manageControls(currentPosition);

    // Create event listeners for .controls clicks
    $('.control')
    .bind('click', function() {
        // Determine new position
        currentPosition = ($(this).attr('id') == 'rightControl') ? currentPosition + 1 : currentPosition - 1;
        if (currentPosition < 0) { currentPosition = numberOfSlides - 1; }
        else if (currentPosition >= numberOfSlides) { currentPosition = 0; }

        // Hide / show controls
        manageControls(currentPosition);
        // Bind button
        manageButton(currentPosition);
        // Move slideInner using margin-left
        $('#slideInner').animate({
            'marginLeft': slideWidth * (-currentPosition)
        });
    });

    function manageButton(position) {
        // switch on/off image
        $("#slideshow .ssbutton ul li").each(function(i, e) {
            if (i == position) {
                $("a img", e).attr("src", "/images/slideshow/on.gif");
            } else {
                $("a img", e).attr("src", "/images/slideshow/off.gif");
            }
        });
    }

    // manageControls: Hides and Shows controls depending on currentPosition
    function manageControls(position) {
        // Hide left arrow if position is first slide
        //if(position==0){ $('#leftControl').hide() } else{ $('#leftControl').show() }
        // Hide right arrow if position is last slide
        //if(position==numberOfSlides-1){ $('#rightControl').hide() } else{ $('#rightControl').show() }
    }
});