window.addEvent('domready', function() {
    initSliderPanel();
    initSlider();
});

function initSlider() {
    var sliderBlock = document.id('slider');
    if (sliderBlock) {
        document.id('slider_prev').addEvent('click', function() {
            slider('prev');
        });
        document.id('slider_next').addEvent('click', function() {
            slider('next');
        });

        if (!window.sliderArray) {
            window.sliderArray = new Array();
            document.id('slider').getElements('div.slider_image').each(function(block, i) {
                if (!window.sliderArray[i]) {
                    window.sliderArray[i] = new Object();
                }
                window.sliderArray[i]['image'] = block;
                hideCheck(block);
            });
            document.id('slider').getElements('div.slider_message').each(function(block, i) {
                window.sliderArray[i]['message'] = block;
                hideCheck(block);
            });
        }
        
        window.slidesLast = 0;
        window.slidesMax = window.sliderArray.length - 1;
    }
}

function initSliderPanel() {
    document.id('slider_layout').setStyle('opacity', '0.75')
}

function slider(act) {
    var last = window.slidesLast;
    var max  = window.slidesMax;

    hideIn(window.sliderArray[last]['image']);
    hideIn(window.sliderArray[last]['message']);

    if (act == 'prev') {
        last -= 1;
        if (last < 0) {
            last = max;
        }
    } else if (act == 'next') {
        last += 1;
        if (last > max) {
            last = 0;
        }
    }

    hideOut(window.sliderArray[last]['image']);
    hideOut(window.sliderArray[last]['message']);

    window.slidesLast = last;
}

function hideCheck(element) {
    if (element.hasClass('h')) {
        element.removeClass('h').setStyles({visibility: 'visible', opacity: 0});
    } else {
        element.setStyles({visibility: 'visible', opacity: 1});
    }
}
function hideIn(element, time) {
    if (!time) { time = 1000 }
    element.set('tween', { duration : time });
    element.tween('opacity', 1, 0);
}
function hideOut(element, time) {
    if (!time) { time = 1000 }
    element.set('tween', { duration : time });
    element.tween('opacity', 0, 1);
}

