window.addEvent('domready', function(e) {
    var reno_homepage_blockNews = $('imgWrapper');
    if (reno_homepage_blockNews)
    {
        initHomepageWallNews();
    }
});

function initHomepageWallNews() {
    var properties = {
        timer: 3000,
        nbImg:10,
        choosenImg: {
            toShow:[],
            toHide:[]
        },
        images:''
    };

    var reno_homepage_blockNews = $('imgWrapper');
    properties.images = $ES('.img',reno_homepage_blockNews);
    // If number image to toggle is more important or equal to the number of images displayed
    if(properties.nbImg >= Math.round((properties.images.length/2))) {
        properties.nbImg = Math.round(properties.nbImg / 2);
    }
    // If impair
    if((properties.nbImg % 2) == 1) {
        properties.nbImg = properties.nbImg - 1;
    }
    if(properties.images.length >= 4 ) {
        doMoveImages.periodical(properties.timer,properties);
    }
}
function doMoveImages()
{
    this.choosenImg =
    {
        toShow:[],
        toHide:[]
    };

    // Get images to hide
    for (var i = 0; i < properties.nbImg; i++) {
        var randomImg = doRandomImage();
        properties.choosenImg.toHide.push(randomImg);
    }
    // Get images to Show
    for (var i = 0; i < properties.nbImg; i++) {
        var randomImg = doRandomImage();
        properties.choosenImg.toShow.push(randomImg);
    }

    for (var i = 0; i < properties.nbImg; i++) {
        doHideImage(i);
    }
}



function doHideImage(i)
{
    var images = $ES('.img',reno_homepage_blockNews);
    var index_img_toHide = properties.choosenImg.toHide[i];
    var img_toHide = images[index_img_toHide];
    var opacityEffectImgToHide = new Fx.Style(img_toHide, 'opacity', {
        duration:150
    });
    opacityEffectImgToHide.start(1,0);


    var index_img_toShow = properties.choosenImg.toShow[i];
    var img_toShow = images[index_img_toShow];
    var opacityEffectImgToShow = new Fx.Style(img_toShow, 'opacity', {
        duration:150,
        onComplete:
        function() {
            doShowImage(i);
        }.bind(i)
    });
    opacityEffectImgToShow.start(1,0);
}


function doShowImage(i)
{
    var images = $ES('.img',reno_homepage_blockNews);
    var index_img_toHide = properties.choosenImg.toHide[i];
    var index_img_toShow = properties.choosenImg.toShow[i];

    // Clone the images to use it after
    var img_toHide_cloned = $ES('.img',reno_homepage_blockNews)[index_img_toHide].clone();
    var img_toShow_cloned = $ES('.img',reno_homepage_blockNews)[index_img_toShow].clone();

    // toggle Images
    $ES('.img',reno_homepage_blockNews)[index_img_toHide].replaceWith(img_toShow_cloned);
    $ES('.img',reno_homepage_blockNews)[index_img_toShow].replaceWith(img_toHide_cloned);

    var opacityEffectImgToHide = new Fx.Style(img_toHide_cloned, 'opacity', {
        duration:300
    });
    opacityEffectImgToHide.start(0,1);
    var opacityEffectImgToShow = new Fx.Style(img_toShow_cloned, 'opacity', {
        duration:300
    });
    opacityEffectImgToShow.start(0,1);
}


function doRandomImage() {
    var images = properties.images;
    var randomImg = images.getRandom();
    var index_img = images.indexOf(randomImg);

    while (properties.choosenImg['toHide'].contains(index_img) || properties.choosenImg['toShow'].contains(index_img)) {
        randomImg = images.getRandom();
        index_img = images.indexOf(randomImg);
    }
    return index_img;
}
