var rotation = 'right';
var currentPosition = 0;
var automateRotate;
var automateRotateAfterManual;
var isInitializedAutomate = false;
$(document).ready(function() {

    var slideWidth = 1000;
    var slides = $('.slide');
    var numberOfSlides = slides.length;
    $('#slidesContainer').css('overflow', 'hidden');

    ChangedotButtonstyle = function(currentposition) {
        $('.pagebutton').each(function(i) {
            if ($(this).val() == currentposition) {
                $(this).removeClass('').addClass('pagebuttonselected');
            }
            else {
                $(this).removeClass('pagebuttonselected').addClass('pagebutton');
            }
        });
    }

    slides.wrapAll('<div id="slideInner"></div>')
            .css({
                'float': 'left',
                'width': slideWidth
            });

    $('#slideInner').css('width', slideWidth * numberOfSlides);

    $('#slideshow').prepend('<span class="control" id="leftControl"></span>')
                           .append('<span class="control" id="rightControl"></span>');



    $('.control').bind('click', function() {
        if ($(this).attr('id') == 'rightControl' && currentPosition == (numberOfSlides - 1))
            return;
        if ($(this).attr('id') == 'leftControl' && currentPosition == 0)
            return;
        window.clearInterval(automateRotate);
        clearInterval(automateRotateAfterManual);
        InitializeAutomateAfterManual();

        currentPosition = ($(this).attr('id') == 'rightControl') ? parseInt(currentPosition) + 1 : parseInt(currentPosition) - 1;
        AnimateSlider(currentPosition);
    });


    ManageControls = function(position) {
        if (position == 0) { $('#leftControl').attr("disabled", true); } else { $('#leftControl').attr("disabled", false); }
        if (position == numberOfSlides - 1) { $("#rightControl").attr("disabled", true); } else { $("#rightControl").attr("disabled", false); }

    }
    ManageControls(currentPosition);

    IntializeAutomate = function() {
        automateRotate = setInterval(function() {
            if (currentPosition == 0)
                rotation = 'left'
            else if (currentPosition == numberOfSlides - 1)
                rotation = 'right'

            if (rotation == 'right') {
                currentPosition = parseInt(currentPosition) - 1;
            }
            else {
                currentPosition = parseInt(currentPosition) + 1;
            }

            AnimateSlider(currentPosition);
        }, 10000);
    }

    IntializeAutomate();

    $('.pagebutton')
            .bind('click', function() {
                window.clearInterval(automateRotate);
                var margin = 0;
                currentPosition = $(this).val();
                $('.pagebuttonselected').removeClass('pagebuttonselected').addClass('pagebutton');
                $(this).addClass('pagebuttonselected');
                AnimateSlider(currentPosition);
                window.clearInterval(automateRotate);
                clearInterval(automateRotateAfterManual);
                InitializeAutomateAfterManual();
                isInitializedAutomate = true;
            });
    ChangedotButtonstyle(0);

    AnimateSlider = function(currentPosition) {
        ManageControls(currentPosition);
        ChangedotButtonstyle(currentPosition);
        var i = 0;
        $('#slideInner').find('img').each(function() {
            if (i == currentPosition)
                $(this).animate({ "opacity": "1" }, 1500);
            else
                $(this).animate({ "opacity": "0" }, 1500);
            i = i + 1;
        });
    }

    InitializeAutomateAfterManual = function() {
        isInitializedAutomate = false;
        automateRotateAfterManual = setInterval(function() {
            AnimateSlider(currentPosition);
            clearInterval(automateRotateAfterManual);
            IntializeAutomate();
        }, 20000);
    }

    var i = 0;
    $('#slideInner').find('img').each(function() {
        if (i == currentPosition)
            $(this).animate({ "opacity": "1" }, 0);
        else
            $(this).animate({ "opacity": "0" }, 0);
        i = i + 1;
    });
});
