// config
var tempsAffiche = 5000;
var vitesseFade = 1000;

// reste du code
var loaded;
var $photos = new Array();
var actuelle = 0;
var loading = true;
var fichiers;
var timer;

$(function(){

    $('#show img').remove();
    loadImages();
    
    $loading = $('<div id="loading" style="color:#333;z-index:2;"><img src="/images/chargement.gif" style="position:relative;top:3px;margin:0 10px 0 0">'+loading_sentence+'</div>').css({top: '175px', left: '430px', position: 'absolute'}).appendTo('#slideshow .wrapper');
    
    $('#slide-precedente').click(function(){
        return rotatePrev(false);
    });
    $('#slide-suivante').click(function(){
        return rotateNext();
    });

});

function loadImages()
{
    $.getJSON('/ajax.php', {section: section}, function(data){
        fichiers = data;
        loaded = new Array(fichiers.length);
        for (var i = 0; i < loaded.length; i++)
        {
            loaded[i] = false;
        }
        loadNext();
    });
}

function loadNext()
{
    for (i = 0; i<loaded.length && loaded[i] == true; i++);
    
    if (i != loaded.length) // il reste une image à loader
    {
        var img = new Image();
        $new_photo = $(img).load(function(){
            $(this).hide();
            $(this).appendTo('#show');
            $photos.push($(this));
            loaded[i] = true;
            if (actuelle == i)
            {
                $('#loading').fadeOut(vitesseFade);
                $(this).fadeIn(vitesseFade);
            }
            if (i == 0)
            {
                timer = setTimeout('rotateNext(true)', tempsAffiche);
            }
            loadNext();
        }).attr('src', fichiers[i]);
    }
}

function rotateNext(addTimeOut)
{
    prochaine = actuelle + 1;
    prochaine = prochaine >= fichiers.length ? 0 : prochaine;
    if (loaded.length > 1 && loaded[prochaine])
    {
        if (loading == true)
        {
            loading = false;
            $loading.fadeOut(vitesseFade);
        }
        $photos[actuelle].fadeOut(vitesseFade);
        $photos[prochaine].fadeIn(vitesseFade);
        actuelle = prochaine;
        clearTimeout(timer);
        timer = setTimeout('rotateNext(true)', tempsAffiche);
    }
    
    else
    {
        if ($photos[actuelle] != undefined)
            $photos[actuelle].fadeOut(vitesseFade);
        $('#loading').fadeIn(vitesseFade);
        loading = true;
        clearTimeout(timer);
        timer = setTimeout('rotateNext()', 100);
    }
    
    return false;
}

function rotatePrev()
{
    prev = actuelle - 1;
    prev = prev < 0 ? fichiers.length - 1 : prev;
    if (loaded.length > 1 && loaded[prev])
    {
        if (loading == true)
        {
            loading = false;
            $loading.fadeOut(vitesseFade);
        }
        
        $photos[actuelle].fadeOut(vitesseFade);
        $photos[prev].fadeIn(vitesseFade);
        actuelle = prev;
    }
    
    else
    {
        if ($photos[actuelle] != undefined)
            $photos[actuelle].fadeOut(vitesseFade);
        $('#loading').fadeIn(vitesseFade);
        loading = true;
        clearTimeout(timer);
        timer = setTimeout('rotatePrev()', 100);
    }
    
    return false;
}

function loadNewSection(newSection)
{
    loadNewSectionCallback(newSection);
}

function loadNewSectionCallback(newSection)
{
    section = newSection;
    loaded = new Array();
    $('#loading').fadeIn(vitesseFade);
    for (i = 0; i < $photos.length; i++)
    {
        $photos[i].fadeOut(vitesseFade).remove();
    }
    $photos = new Array();
    actuelle = 0;
    loading = true;
    fichiers = new Array();
    clearTimeout(timer);
    setTimeout('loadImages(true)', 10);
}
