/*
 * Yagooar JQuery Generic Banner (Duldi spin-off)
 * Jquery simple banner implementation
 *
 * @author Mateusz Sojka yagooar@gmail.com
 * @version 0.1
 *
 */

// Timer reference
var timer;

J(document).ready(function() {
    init_duldi();

    J('#inner_YJQG-duldi li').click(function() {
        selectActive_duldi(this);
    });
});

/**
 * Contains the initial configuration of the script and launches the animation
 */
function init_duldi() {
    config = {
        'width'             :       691, // Ancho del banner
        'height'            :       266, // Altura del banner
        'effect'            :       'fade', // Efecto de transición (por ahora sólo está disponible fade)
        'speed'             :       5000, // Tiempo en pantalla de cada elemento
        'innerColor'        :       'darksalmon', // Color de los números
        'innerActiveColor'  :       'red' // Color del número activo
    };

    bannerYJQG_duldi(config);
}

/**
 * The core function
 * @var script parameters
 */
function bannerYJQG_duldi(config) {

    banner = J('#bannerYJQG-duldi');
    elements = J('#image_list_YJQG-duldi');
    elements_inner = J('#inner_YJQG-duldi');

    banner.css('width', config.width);
    banner.css('height', config.height);

    elements.find('li:not(.activeYJQG-duldi)').hide();

    // Transition type
    if (config.effect == 'fade') {
        fade_duldi(elements, config);
    }
}

/**
 * External animation script
 * @var elements - \<ul\> list
 * @var config - script parameters
 */
function fade_duldi(elements, config) {

    J('.activeYJQG_inner-duldi').find('a').css('color', 'red');

    var toggleFade = function() {
        if (elements.find('.activeYJQG-duldi'))
        elements.find('.activeYJQG-duldi')
            .fadeOut('slow', function() {
                J(this).removeClass('activeYJQG-duldi');
                if (J(this).next('li').length > 0) {
                    J(this)
                    .next('li')
                    .fadeIn('slow')
                    .addClass('activeYJQG-duldi');
                    J('.activeYJQG_inner-duldi')
                        .removeClass('activeYJQG_inner-duldi')
                        .find('a')
                        .css('color', config.innerColor)
                        .parent()
                        .next()
                        .addClass('activeYJQG_inner-duldi')
                        .find('a')
                        .css('color', config.innerActiveColor);

                } else {
                    elements.find('li:first')
                    .fadeIn('slow')
                    .addClass('activeYJQG-duldi');
                    J('.activeYJQG_inner-duldi').removeClass('activeYJQG_inner-duldi').find('a').css('color', config.innerColor);
                    J('#inner_YJQG-duldi li:first').addClass('activeYJQG_inner-duldi').find('a').css('color', config.innerActiveColor);
                }
            });
    }
    
    timer = setInterval(toggleFade, config.speed);
}

function selectActive_duldi(elem) {
    clearInterval(timer);
    J(elem).parent().find('a').css('color', config.innerColor).removeClass('activeYJQG_inner-duldi');
    J(elem).addClass('activeYJQG_inner-duldi').find('a').css('color', 'red');

    var order = J(elem).find('a').attr('title');

    J('#image_list_YJQG-duldi li').removeClass('activeYJQG-duldi').fadeOut('fast', function() {
    });
    J('#image_list_YJQG-duldi li:nth-child(' + order + ')').delay(200).fadeIn('slow');
}
