
var slideshow_timeout = null;
var slider_id = '#main_banner_count_down .slider';
var slideshow_time = 100;
var slideshow_showtime = null;
var slideshow_last_time = null;
var watchdog_last_time = null;

$(document).ready(function()
{
    slideshow_start();

    $('#main_banner_padding a').bind('mouseenter', slideshow_change_by_control);
    $('#main_banner_padding a').bind('mouseout', slideshow_start);

    $('#main_banner_padding').css('position', 'relative').css('position', 'absolute');

    setTimeout('check_running()', 1000);
});

function check_running()
{
    if (null == slideshow_timeout) {
        slideshow_start();
    }

    if (null != slideshow_last_time) {
        // pokud jsem zapsal nejakou dobu

        if (slideshow_last_time != watchdog_last_time) {
            watchdog_last_time = slideshow_last_time;
        } else {
            // pokud jsou casy stejny (je velice divny, ze by se nezmenily za posledni sekundu)
            slideshow_start();
        }

    }

    setTimeout('check_running()', 1000);
}

function slideshow_start()
{
    // overim celkovy pocet elementu pro slideshow
    var elements_count = $('#main_banner_container .main_banner').length;

    if (2 > elements_count) {
        return;
    }    

    // musim nastavit spravnou vysku odpocitavani
    $('#main_banner_count_down').css('height', 185-((elements_count*26)+20)+'px');

    // nastavim, ze je zobrazen prvni snimek
    var d = new Date();
    slideshow_showtime = d.getTime();

    // nyni spustim odpocet
    slideshow_timeout = setTimeout('slideshow_timing()', slideshow_time);
}

function slideshow_timing()
{
    // zjistim, jak dlouho ma byt aktualne zobrazeny obrazek zobrazen
    var show_element = slideshow_get_visible();
    var show_delay = parseInt(show_element.attr('name'));
    var d = new Date();

    // jak dlouho je obrazek zobrazen?
    var show_time = d.getTime()-slideshow_showtime;
    slideshow_last_time = show_time;

    if (show_time < show_delay) {
        // pokud obrazek neni zobrazen dost dlouho, upgraduju pocet sekund

        var height_in_percent = 100-parseInt((show_time*100/show_delay));
        
        slideshow_set_slider_height(height_in_percent);
    
        if (null != slideshow_timeout) {
            slideshow_timeout = setTimeout('slideshow_timing()', slideshow_time);
        }
    } else {
        // pokud je zobrazen dost dlouho,
        // vymenim obrazky
        slideshow_next_slide();
    }
}

function slideshow_next_slide(el_id, cont)
{   
    if ('undefined' == typeof cont) {
        cont = true;
    }

    // zjistim, ktery je nyni viditelny
    var el = slideshow_get_visible();

    if ('undefined' == typeof el_id) {
        // zjistim nasledujici element
        var el_next = slideshow_get_next_element(el);
    } else {
        var el_next = $('#mb-'+el_id);
    }

    if (cont) {
        // skryji el a zobrazim el_next
        el.fadeOut('fast', function() {
            $(this).removeClass('show');
        });
        el_next.removeClass('non-visible').addClass('visible').fadeIn('fast', function() {
            $(this).addClass('show');
        });
    } else {
        $(el).addClass('non-visible').removeClass('visible').removeClass('show').css('display', 'none');
        $(el_next).removeClass('non-visible').addClass('visible').addClass('show').css('display', 'block');
    }

    var el_control = $('#mbc-'+slideshow_get_element_id(el));
    var el_next_control = $('#mbc-'+slideshow_get_element_id(el_next));

    el_control.removeClass('active');
    el_next_control.addClass('active');

    if (cont) {
        slideshow_start();
    }

}

function slideshow_get_visible()
{
    // ziskam vsechny zobrazeny prvky
    var shown = $('#main_banner_container .show');

    for (var i = 1; i < shown.lenght; i++) {
        $(shown[i]).removeClass('show');
    }

    return $(shown[0]);
}

function slideshow_get_next_element(element)
{
    var el_next = element.next();

    if (0 == el_next.length) {
        // pokud nema zadny nasledujici element, musim vzit prvni
        el_next = $($('#main_banner_container .main_banner')[0]);
    }

    return el_next;
}

function slideshow_get_element_id(el)
{
    if (0 == el.length) {
        return null;
    }

    return el.attr('id').split('-')[1];
}

function slideshow_stop()
{
    clearTimeout(slideshow_timeout);
    slideshow_timeout = null;
}


function slideshow_change_by_control()
{
    slideshow_stop();
    slideshow_set_slider_height(100);
  
    // musim ziskat ID aktualniho prvku
    var id = $(this).attr('id').split('-')[1];

    slideshow_next_slide(id, false);
}

function slideshow_set_slider_height(height_in_percent)
{
    var slider = $(slider_id);
    slider.css('height', height_in_percent+'%');

}



