
var yda = window.yda = function($) {

    function initialiseHomeCarousel() {
        $('#home a.landing-hero:last-child').after('<div id="ydaCarousel"></div>');
        var carousel_list = $('<ul />').appendTo($('#ydaCarousel').html('')).wrap($('<div />').addClass('container'));

        $('#home a.landing-hero').css({
            'left': '0px',
            'position': 'absolute',
            'top': '0px'
        });

        $('#home a.landing-hero span.thumb span.text').after('<span class="inactive"></span>');

        $('#home a.landing-hero').each(function(i) {
            var item = $(this);

            var carousel_item = $('<a />').append(item.children('span.thumb').html());
            carousel_list.append($('<li />').append(carousel_item));
            carousel_item.click(function() {
                if (!$(this).hasClass("active")) {
                    $('#ydaCarousel div.container ul li a').unbind('mouseover', homeCarouselHoverHandler);
                    $('#home a.landing-hero').fadeOut('normal', function() { });
                    $('#ydaCarousel div.container ul li a').removeClass('active');
                    $(this).addClass('active');
                    $(item).fadeIn('normal', function() { });
                    setTimeout(function() { $('#ydaCarousel div.container ul li a').bind('mouseover', homeCarouselHoverHandler); }, 500);
                   
                }
            });

            $('#ydaCarousel div.container ul li a').bind('mouseover', homeCarouselHoverHandler);

            item.children('span.thumb').remove();
            if (i > 0) {
                item.css('display', 'none');
            }
        });

        $('#home, #ydaCarousel').addClass('java');
        $('#ydaCarousel div.container ul li a:first').addClass('active');

        $('#ydaCarousel div.container').before('<span class="button left"><span>Left</span></span>');
        $('#ydaCarousel div.container').after('<span class="button right"><span>Right</span></span>');

        $('#ydaCarousel span.button').bind('click', homeCarouselClickHandler);
    }

    function homeCarouselHoverHandler() {
        $(this).click();
    }

    function homeCarouselClickHandler() {
        $('#ydaCarousel span.button').unbind('click', homeCarouselClickHandler);

        if ($(this).hasClass('left')) {
            $('#ydaCarousel.java div.container ul li:last').prependTo('#ydaCarousel.java div.container ul');
            $('#ydaCarousel.java div.container ul').animate({
                left: '-=192'
            }, 0, function() {
            });
            $('#ydaCarousel.java div.container ul').animate({
                left: '+=192'
            }, 1000, function() {
                $('#ydaCarousel span.button').bind('click', homeCarouselClickHandler);
            });
        } else {
            $('#ydaCarousel.java div.container ul').animate({
                left: '-=192'
            }, 1000, function() {
                $('#ydaCarousel.java div.container ul li:first').appendTo('#ydaCarousel.java div.container ul');
                $('#ydaCarousel.java div.container ul').animate({
                    left: '+=192'
                }, 0, function() {
                    $('#ydaCarousel span.button').bind('click', homeCarouselClickHandler);
                });
            });
        }
        return false;
    }

    return {

        'init': function() {
            initialiseHomeCarousel();
        }

    };

} (jQuery);
