var autoSlideSpeed = 7000;

var slideElementShown = 1;
var effectPending = 0;
var autoSlide = window.setInterval("autoSlideElement();", autoSlideSpeed);


function slideElement(element) {
    if(effectPending == 0) {
        window.clearInterval(autoSlide);
    
        var elementMarginLeft = (element - 1) * 1000;
        $('slideshowContentWrap').set('morph', {duration: 1000, transition: 'quint:out'});
        $('slideshowContentWrap').morph({'margin-left': '-'+elementMarginLeft});
        
        slideElementShown = element;
        autoSlide = window.setInterval("autoSlideElement();", autoSlideSpeed);
        
        updateSliderButton();
    }
}

function autoSlideElement() {
    if(effectPending == 0) {
        slideElementShown++;
        
        // Wenn am Ende, fade to Start
        if(maxSlideshowElements <= slideElementShown) {
            window.clearInterval(autoSlide);
            
            // Effekt FadeOut Wrap
            var fadeAutoSlideWrap = new Fx.Morph('slideshowContentWrap', {duration: 1000});
            fadeAutoSlideWrap.addEvents({'start': function() {effectPending = 1; document.getElementById('slideshowSliderDots').style.backgroundColor = '#F7F7F7'; fadeOutSlideButtons(); },'complete' : function() {effectPending = 0; autoSlideReturnPosition();}});
            fadeAutoSlideWrap.start({'opacity': '0'});

            autoSlide = window.setInterval("autoSlideElement();", autoSlideSpeed); 
            return false;
        }
    
        var elementMarginLeft = (slideElementShown - 1) * 1000;
        
        // Effekt
        var autoSlideElement = new Fx.Morph('slideshowContentWrap', {duration: 1000, transition: Fx.Transitions.Cubic.easeInOut});
        autoSlideElement.addEvents({'start': function() {effectPending = 1;},'complete' : function() {effectPending = 0;}});
        autoSlideElement.start({'margin-left': '-'+elementMarginLeft});
        
        updateSliderButton();
    }
}

function autoSlideReturnPosition() { 
    document.getElementById('slideshowContentWrap').style.marginLeft = '0px';
    slideElementShown = 0;
    updateSliderButton();
    document.getElementById('sliderButton_1').className = 'sliderDotActive';
    autoSlideFadeIn();
}

function autoSlideFadeIn() {  
    // Effekt FadeIn Wrap
    var fadeAutoSlideWrap = new Fx.Morph('slideshowContentWrap', {duration: 1000});
    fadeAutoSlideWrap.addEvents({'start': function() {effectPending = 1; fadeInSlideButtons(); },'complete' : function() {document.getElementById('slideshowSliderDots').style.backgroundColor = 'transparent'; effectPending = 0;}});
    fadeAutoSlideWrap.start({'opacity': '1'});
}

function updateSliderButton() {
    var countSliders = document.getElementById('slideshowSliderDots').getElementsByTagName('a').length;
    for (slideCount = 1; slideCount <= countSliders; slideCount++) {
        if(slideElementShown == slideCount) {
            document.getElementById('sliderButton_' + slideCount).className = 'sliderDotActive';
        } else {
            document.getElementById('sliderButton_' + slideCount).className = 'sliderDot';
        }
    } 
}

function fadeOutSlideButtons() {
    // Effekt FadeOut Buttons
    var fadeAutoSlideButtons = new Fx.Morph('slideshowSliderDots', {duration: 1000});
    fadeAutoSlideButtons.addEvents({'start': function() {effectPending = 1;},'complete' : function() {effectPending = 0;}});
    fadeAutoSlideButtons.start({'opacity': '0'});
}

function fadeInSlideButtons() {
    // Effekt FadeIn Buttons
    var fadeAutoSlideButtons = new Fx.Morph('slideshowSliderDots', {duration: 1500});
    fadeAutoSlideButtons.addEvents({'start': function() {effectPending = 1;},'complete' : function() {effectPending = 0; autoSlideElement();}});
    fadeAutoSlideButtons.start({'opacity': '1'});
}
