$(document).ready(function() {
    upNdown.init();
});

var upNdown = {
    
    element: null,
    timer: null,
    minScrollOffset: null,
    canScroll: true,

    init: function() {
        setTimeout("upNdown.fadeIn()",1200);
        upNdown.element = $('#upAndDown');
		upNdown.setMinScroll(0);

    	$(window).scroll( function() {
            eval(upNdown.updateTop());
        });
        
        
    	$(window).resize( function() {
            eval(upNdown.update());
        });
        
    	$('#upBtn').click( function() {
            eval(upNdown.updateStart());
        });
        
        $('#downBtn').click( function() {
            eval(upNdown.updateEnd());
        });
    },

	disableSliding: function() {
		upNdown.canScroll = false;
		if(upNdown.timer !== null) {
			clearTimeout(upNdown.timer);
			upNdown.timer = null;
		}
	},

	enableSliding: function() {
		upNdown.canScroll = true;
		upNdown.update(); 
	},
    
    setMinScroll: function(offset) {
        upNdown.minScrollOffset = offset;
        upNdown.update();
    },
    
    update: function() {
        var left = 800;
		upNdown.element.css('left', Math.round(left)+'px');
		upNdown.updateTop();
    },
    
    fadeIn: function() {
        upNdown.update();
        $('#upAndDown').fadeIn();
    },
    
    updateStart: function() {
        upNdown.timer = setTimeout("Default.moveLayerAbsolute('upAndDown',20)",300);
        $(window).scrollTop(0);
    },
    
    updateEnd: function() {
        var lastElementPos = $('#pageEnd').position();
        upNdown.timer = setTimeout("Default.moveLayerAbsolute('upAndDown',"+lastElementPos.top+")",300);
        $(window).scrollTop(lastElementPos.top);
    },
    
    updateTop: function() {
		if(!upNdown.canScroll) return;
		var coolPosition = $(window).scrollTop();
        if(coolPosition <= upNdown.minScrollOffset) {
            var moveTo = upNdown.minScrollOffset + 225;
        } else if(coolPosition > upNdown.minScrollOffset) {        	
            var moveTo = coolPosition + 225;
        }
        
        if(upNdown.timer !== null) {
            clearTimeout(upNdown.timer);
            upNdown.timer = null;
        }
        upNdown.timer = setTimeout("Default.moveLayerAbsolute('upAndDown',"+moveTo+")",300);
    }
}

var Default = {
    moveLayerAbsolute: function(layer, posX) {
        $('#' + layer).animate({ 
            top: posX + 'px',
            }, 'slow');

    },
}
