
function doAjaxNav(url, target){
    new Ajax(url, {
        method: 'get',
        update: $(target),
        onComplete: function(){
            // when complete, we fadein the object
            $('photoexposer').effect('opacity', {
                duration: 200,
                transition: Fx.Transitions.Quad.easeIn,
                wait: false
            }).start(0.0, 1.0);
        }
    }).request();
}

function view(image){
    $('photoexposer').effect('opacity', {
        duration: 200,
        transition: Fx.Transitions.Quad.easeIn,
        wait: false
    }).start(1.0, 0.0);
    doAjaxNav(image, 'photoexposer');
}

function thumbFadeFX(Objs){
    var list = $$(Objs);
    
    list.each(function(element){
        var fx = new Fx.Style(element, 'opacity', {
            duration: 200,
            transition: Fx.Transitions.Quad.easeIn,
            wait: false
        }).set(0.4);
        
        element.addEvent('mouseenter', function(){
            fx.start(1.0);
        });
        
        element.addEvent('mouseleave', function(){
            fx.start(0.4);
        });
    });
}

function createHSlider(sItemSize, sVisibleItems, sVisibleArea, hElementCont, hScroller, hSliderCont, hSlider, hGrab, hLeft, hRight){
    var itemSize = sItemSize;
    var itemArea = $(hElementCont).getSize().size.x;
    var visibleItems = sVisibleItems;
    var visibleArea = sVisibleArea;
    var maxscroll = (itemArea / itemSize) - visibleItems;
    
    if (itemArea > visibleArea) {
    
        /* Scroller */
        var ObjScroll = new Fx.Scroll(hScroller, {
            wait: false,
            duration: 400,
            offset: {
                'x': 0,
                'y': 0
            },
            transition: Fx.Transitions.Quad.easeInOut
        });
        
        /* Slider */
        var mySlide = new Slider($(hSlider), $(hGrab), {
            steps: maxscroll,
            onChange: function(sldValue){
                ObjScroll.scrollTo(sldValue * itemSize, 0);
            }
        }).set(0);
        
        /* SlideArrow */
        $(hLeft).addEvent('click', function(){
            if (mySlide.step == 0) {
                mySlide.set(0);
            }
            else {
                mySlide.set(mySlide.step - 1);
            }
        });
        $(hRight).addEvent('click', function(){
            if (mySlide.step == mySlide.options.steps) {
                mySlide.set(mySlide.options.steps);
            }
            else {
                mySlide.set(mySlide.step + 1);
            }
        });
        
        ObjScroll.scrollTo(0, 0);
    }
    else {
        $(hSliderCont).setStyles({
            'visibility': 'hidden'
        });
    }
}

function createVSlider(sItemSize, sVisibleItems, sVisibleArea, vElementCont, vScroller, vSliderCont, vSlider, vGrab, vUp, vDown){
    var itemSize = sItemSize;
    var itemArea = $(vElementCont).getSize().size.y;
    var visibleItems = sVisibleItems;
    var visibleArea = sVisibleArea;
    var maxscroll = (itemArea / itemSize) - visibleItems;
    
    if (itemArea > visibleArea) {
    
        /* Scroller */
        var ObjScroll = new Fx.Scroll(vScroller, {
            wait: false,
            duration: 400,
            offset: {
                'x': 0,
                'y': 0
            },
            transition: Fx.Transitions.Quad.easeInOut
        });
        
        /* Slider */
        var mySlide = new Slider($(vSlider), $(vGrab), {
            steps: maxscroll,
            mode: 'vertical',
            onChange: function(sldValue){
                ObjScroll.scrollTo(0, sldValue * itemSize);
            }
        }).set(0);
        
        /* SlideArrow */
        $(vUp).addEvent('click', function(){
            if (mySlide.step == 0) {
                mySlide.set(0);
            }
            else {
                mySlide.set(mySlide.step - 1);
            }
        });
        $(vDown).addEvent('click', function(){
            if (mySlide.step == mySlide.options.steps) {
                mySlide.set(mySlide.options.steps);
            }
            else {
                mySlide.set(mySlide.step + 1);
            }
        });
        
        ObjScroll.scrollTo(0, 0);
    }
    else {
        $(vSliderCont).setStyles({
            'visibility': 'hidden'
        });
    }
}


