
var FSBCoreSlider = {};

FSBCoreSlider.SlideWidth = 304;
FSBCoreSlider.WindowSize = 3;

FSBCoreSlider.DIRECTION_PREV = 1;
FSBCoreSlider.DIRECTION_NEXT = -1;

FSBCoreSlider.SlideCount = 0;


FSBCoreSlider.get_effect_options = function(delta_x) {
    return {
        x : delta_x,
        mode : 'relative',
        duration : 0.3,
        transition : Effect.Transitions.linear,
        queue : { position : 'end', scope : 'sliderscope'},
        afterFinish : FSBCoreSlider.check_next_prev_button_visibility.bind(FSBCoreSlider)
    };
};

FSBCoreSlider.prev = function() {
    FSBCoreSlider.slide_the_slides(FSBCoreSlider.DIRECTION_PREV);
    
}

FSBCoreSlider.next = function() {
    FSBCoreSlider.slide_the_slides(FSBCoreSlider.DIRECTION_NEXT);
}

FSBCoreSlider.slide_the_slides = function(direction) {
    var container = $('corebannerslides');
    
    var total_slides = container.childElements().length;
    
    if (total_slides <= FSBCoreSlider.WindowSize)
        return;
    
    var width = container.getWidth();
    
    var x = container.positionedOffset().left;
    
    if ((direction == FSBCoreSlider.DIRECTION_PREV)) {
        // make sure first slide doesn't slide past left side
        if (FSBCoreSlider.SlideCount > 0) {
            new Effect.Move(
                container,
                FSBCoreSlider.get_effect_options(FSBCoreSlider.SlideWidth)
            );
            FSBCoreSlider.SlideCount--;
        }
    }
    else if (direction == FSBCoreSlider.DIRECTION_NEXT) {
        // make sure last slide doesn't slide past right side
        if (FSBCoreSlider.SlideCount < (total_slides - FSBCoreSlider.WindowSize)) {
            new Effect.Move(
                container,
                FSBCoreSlider.get_effect_options(-FSBCoreSlider.SlideWidth)
            );
            FSBCoreSlider.SlideCount++;
        }
    }
}

FSBCoreSlider.check_next_prev_button_visibility = function(effect) {
    var container = effect.element;
    
    var total_slides = container.childElements().length;
    
    var width = container.getWidth();  // calculate. ie 6 returns wrong number.
    var x = container.positionedOffset().left;
    
    // show or hide the next/prev buttons
    if (x >= 0)
        $('corebannernavleft').className = 'hide';
    else
        $('corebannernavleft').className = '';
    
    if (FSBCoreSlider.SlideCount >= (total_slides - FSBCoreSlider.WindowSize)) {
        $('corebannernavright').className = 'hide';
    }
    else
        $('corebannernavright').className = '';
}
