var slideInterval;
var slideIndex = 0;

function slideshow() {
    $('#slideshow').prepend('<ul id="slideIndex"></ul>');
    var current = ' class="current"';
    $.each(slides, function(i, slide) {
        $('#slideIndex').append('<li><a href="#' + i + '"' + current + '>' + (i + 1) + '</a></li>');
        if (i > 0) {
            $('#slideImgs').append('<img src="' + slide.src + '" alt="" />');
        }
        if (current != '') {
            current = '';
        }
    });
    $('#slideIndex li a').click(function() {
        var href = $(this).attr('href');
        var thisIndex = href.split('#')[1];
        slideStop(thisIndex);
        $('#slideIndex li a').removeClass('current');
        $(this).addClass('current');
        return false;
    });
    slideStart();
}

function slideSwitch() {
    var $active = $('#slideImgs img.active');
    if ($active.length == 0) $active = $('#slideImgs img:last');
    var $next = $active.next().length ? $active.next() : $('#slideImgs img:first');
    $active.addClass('outgoing');
    $next.css({ opacity: 0.0 }).addClass('active').animate({ opacity: 1.0 }, 1000, function() {
        $active.removeClass('active outgoing');
        $active.next().length ? slideIndex++ : slideIndex = 0;
        setSlideText(slideIndex);
        $('#slideIndex li a').removeClass('current');
        $('#slideIndex li a').each(function(i, slideAnchor) {
            if (i == slideIndex) {
                $(slideAnchor).addClass('current');
            }
        });
    });
}

function setSlideText(slideIndex) {
    $('#slideTitle').hide();
    $('#slideLink').hide();
    $.each(slides, function(i, slide) {
        if (i == slideIndex) {
            $('#slideTitle').html('<span class="' + slide.textcolour + '">' + slide.title + '</span>');
            if (slide.url != '') {
                $('#slideTitle').append('<br/><a href="' + slide.url + '" id="slideLink">' + slide.link + '</a>');
            }
        }
    });
    $('#slideTitle').fadeIn(375);
    $('#slideLink').fadeIn(375);
}

function slideStart() {
    slideInterval = setInterval("slideSwitch()", 5000);
}

function slideStop(thisIndex) {
    clearInterval(slideInterval);
    $('#slideImgs img.active').attr('src', $(slides)[thisIndex].src);
    setSlideText(thisIndex);
}

$(document).ready(function() {
    slideshow();
});

