// Scroll-Navigation -----
var traceIt = true;
var navigation;
var intval;
var mouseY = 0;
var minY = 0;
var maxY = 0;
var lastDestY = 0;

function initScrollNavigation(){
	
	navigation = $('#ctr-scrollnav');
	
	minY = $('#scrollnav').css('margin-top');
	minY = Number(minY.split('px')[0]);
	maxY = $('#scrollnav').height()*-1 + navigation.height();
	
	navigation.mouseenter(function() {
	  startScrolling();
	});
	
	navigation.mouseleave(function() {
	  stopScrolling();
	});
	
	$('#ctr-scrollnav').css('overflow','hidden');
	
	$('#scrollnav').css('margin-top',$('#ctr-visual').height());
	showStartAnimation();
}

function startScrolling(){
	navigation.mousemove(function(event) {
		setMouseY(event.pageY);
	});
	intval = setInterval(function() {
          scrollNav();
    }, 17);
}

function stopScrolling(){
	navigation.unbind('mousemove');
	clearInterval(intval);
}

function setMouseY(mY){
	mouseY = mY;
}

function scrollNav(){
	
	var navOffset = navigation.offset();
	var navCenter = Math.round(navigation.height()/2 + navOffset.top);
	
	if(mouseY > navCenter - 40 && mouseY < navCenter + 40) return;
	
	var currMarginTop = $('#scrollnav').css('margin-top');
	currMarginTop = currMarginTop.split('px')[0];
	
	var destY = Math.round(currMarginTop) + ((mouseY - navCenter)/17)*-1;
	
	if(destY > minY){
		destY = minY;
	}
	
	if(destY < maxY){
		destY = maxY;
	}
	
	if(destY == lastDestY) return;
	
	$('#scrollnav').css('margin-top',destY+'px');
	
	/*$('#scrollnav').stop().animate({
		'marginTop' : destY+'px'
		}, 250, 'linear', function() {
			
	});*/
	
	lastDestY = destY;
}

function showStartAnimation(){
	$('#scrollnav').stop().animate({
		'marginTop' : minY+'px'
		}, 800, 'linear', function() {
			//
	});
}
// ----- /

// Font-Scaling -----
var sn;
var scaleSource = 0;

function initFontSizeScaling(){
	sn = $('#ctr-scrollnav');
}

function setNavFontSize(){
	scaleSource = sn.width()+1;
	var scaleFac = 0.98;
	var fontSize = scaleSource*scaleFac;
	sn.css('font-size', fontSize + '%');
}
// ----- /

function trace(text){
	if(traceIt)console.log(text);
}

function reSize(){
	setNavFontSize();
	maxY = $('#scrollnav').height()*-1 + navigation.height();
}

$(document).ready(function() {
	initFontSizeScaling();
	setNavFontSize();
	initScrollNavigation();
});

$(window).load(function() {
	setNavFontSize();
	maxY = $('#scrollnav').height()*-1 + navigation.height();
});

$(window).resize(function() {
	reSize();
});
