/* 
	FLEET EN PROJECTS PAGINA
*/
var basehref; // set with jQuery $('base').attr('href');

$(document).ready(function()
{
	// set base url var
	basehref = $('base').attr('href');

	
	/* 
		tab de inhoud van de pagina
	*/
	$('#page div.sidebarframe div.navigationobject').tabs({
		
		// selected: 2,
		
		//cookie: { expires: 7 }
		
	});
	
	
	/* 
		Cycle... rouleren van images
	*/
	var cycle_options = {

		fx: 'fade',
		//fx: 'scrollLeft',
	
		slideExpr: 'p.item',
		
		cleartype: false,
		cleartypeNoBg: true,
		
		//before: slideUpInformation(),
		//after: slideUpInformation(),
		
		pause: true,
		
		timeout: 5000,
		speed: 800
	};
	
	// projecten op de homepage rouleren
	$('#page div.sidebarframe div.gallery div.items').cycle(cycle_options);
	
});


// fleet scroller vars
var scrollholder = '.carousel'; // var wordt object
var distance = false;
var scrollPos = 0;
var sideOffset = 110;
var maxstep = 1000; //pixels per seconde

// init fleet hover scroller
$(function() {

	scrollholder = $(scrollholder).css({overflow:'hidden'});
	
	// develop debug
	//var debug = $('<div/>').addClass('debug').prependTo('body');
	
	// issieder?
	if(scrollholder.length){
		
		// set vars &
		// set juiste breedte van itemsholder (overbodig maken door css?)
		var innerwidth = getinnerwidth( $('div.items',scrollholder) );
		$('div.items',scrollholder).width( innerwidth );
		
		// var
		var w = scrollholder.width();
		
		if(innerwidth > w){
		
			// pijltjes
			var leftImg = $('<img/>').attr('src',BASE_URL + 'gui/scrollleft.gif');
			var rightImg = $('<img/>').attr('src',BASE_URL + 'gui/scrollright.gif').css({position:'absolute',right:'0px'});
			var pijltjesdiv = $(scrollholder)
			.clone()
			.html('')
			.css({position:'absolute',zIndex:4000,left:'0px'})
			.mouseover(function(){
				$(this).css({display:'none'});
			})
			.attr('id','pijltjesdiv')
			.fadeTo(1,0.3)
			.wait(1200)
			.fadeOut(1500)
			//.mousemove(function(e){
			//	scroller(e,w,scrollholder);
			//})
			.append(leftImg)
			.append(rightImg);
			
			// attach pijltjes
			$(scrollholder).before(pijltjesdiv);
		
			// get initial scrollposition
			var activediv		= $('a.selected',scrollholder);
			var activedivpos	= activediv ? activediv.parent('p').position() : false;
			var initialpos		= activedivpos ? (activedivpos.left) - ((w/2) - ( (activediv.width()) /2 )-15) : 0;
			
			
		//
		// huppa
		//
			$(scrollholder)
			// set initial scrollposition
			.scrollLeft( initialpos )
			// on mouseout
			.mouseout(function () {
					
				// stop
				$(this).stop(true,false);
				scrollPos = $(this).scrollLeft();
				
					
			})
			// on mousemove
			.mousemove(function(e){
					
				scroller(e,w,this);
				
			});
			
			
		}
	}
});


function scroller(e,w,oNode){
	
	var offset	= $(oNode).offset();
	offset = offset.left;
	var center	= ( e.pageX - offset ) - ( w / 2);
	var x		= Math.abs( center );
	
	var hot = ( w / 2 ) - sideOffset;
	
	//window.console.log( center + ',' +  hot );
	
	// hover aan linker/rechter sideOffset 
	if( x > hot ){
		
		// bepaal snelheid (afstand per sec)
		var val 	= ( x - ( w / 2 ) ) + sideOffset;
		var perc 	= (100 / sideOffset) * val;
		var dist 	= Math.round( perc * (maxstep / 100) );
		
		// bepaal richting
		var direction = center > 0 ? 'right' : 'left';
		
		//start			
		if( dist != distance){
			distance = dist;
			$(oNode).stop(true,false);
			animate(oNode,direction,distance);
		}
					
	// hover = niet aan zijkant sideOffset
	} else {
		
		// stop
		$(oNode).stop(true,false);
		scrollPos = $(oNode).scrollLeft();
	}
}



function getinnerwidth( oNode ){
	
	// P breedte
	// beetje crappy, maar hoe anders?
	var p = $('p:first',oNode);
	var pml = $(p).css('marginLeft').replace('px','');
	var pmr = $(p).css('marginRight').replace('px','');
	
	var itemwidth = $(p).outerWidth() + (pml/1) + (pmr/1);
	
	//oNode.width( (itemwidth * $('p',oNode).length) +10 );
	return (itemwidth * $('p',oNode).length) +10;
}

// animate loop
function animate(oNode,direction,distance){
	
	scrollPos = $(oNode).scrollLeft();
	
	if(direction == 'right'){
		
	//	$('.debug').html( (scrollPos + $('.carousel').width() ) - $('div.items',$('.carousel')).width() );
		
		// animate
		$(oNode).animate({scrollLeft:'+='+distance+'px'},1000,'linear',function(){
			// nog een keer
			animate(oNode,direction,distance);
		});
		
	} else {
	
	//	$('.debug').html( scrollPos - distance);
		
		// animate
		$(oNode).animate({scrollLeft:'-='+distance+'px'},1000,'linear',function(){
			// nog een keer
			animate(oNode,direction,distance);
		});
	}
	
}

$.fn.wait = function(time, type) {
	
	var timeout = null;
	
	time = time || 0;
	type = type || "fx";
		
	if(time > 0){
			
		return this.queue(type, function() {
			var self = this;
			timeout = setTimeout(function() {
				$(self).dequeue();
			}, time);
		});
		
	} else {
		return $(this);
	}
};
