// dom:loaded

function slide() { 

var spacer = 120;
var fotobox = $('fotobox');
var holder = $('holder');
var dimensions = holder.getDimensions();
var itemCount = $$('#fotobox a').length;
//100 is fix door margin holder, of lack of it.
var midPage = holder.getDimensions().width/2 + 100;
var scrolling = false;
var animating = false;

//bepalen width fotobox
$('fotobox').style.width = itemCount*spacer+'px';
//init
checkBtns();


$('leftbtn').observe("click", function(e) {
	if(scrolling == false){
		moveToRight(spacer);
	}
});

$('rightbtn').observe("click", function(e) {
	if(scrolling == false){
		moveToLeft(spacer);
	}
});

$$('#fotobox a').each(function(item){
	item.observe("click", function(e) {
  		//naar midden scrollen
		if(scrolling == false){
			animating = true;
			scrollFromClick(item);
		}
	});
}); 

function moveToLeft (d) {
	d = d*-1;
	move(d);
}	

function moveToRight (d) {
	move(d);
}	

function move (d) {
	//verplaatst naar imageresize
	scrolling = true;
	new Effect.Move($('fotobox'), { duration: 0.7, x: d, transition: Effect.Transitions.sinoidal,  queue: { position: 'end', scope: 'first' }, afterFinish: function(){checkBtns()} });
}

function checkBtns () {
	scrolling = false;
	boxPropLeft = calculateBoxLeft();
	boxPropRight = calculateBoxRight();
	
	if(boxPropLeft >= 0) {
		$('leftbtn').hide();
	}else{
		$('leftbtn').show();
	}
	if(boxPropRight <= 0) {
		$('rightbtn').hide();
	}else{
		$('rightbtn').show();
	}
		
	//beiden buttons verbergen indien fotobox kleiner is dan holder	
	if(fotobox.getDimensions().width < holder.getDimensions().width){
		$('rightbtn').hide();
		$('leftbtn').hide();
	}
}

function scrollFromClick(item) {
	//item.positionedOffset()[0]
	itemPos = item.cumulativeOffset()[0] - holder.positionedOffset()[0] + spacer/2;
	distance = midPage - itemPos;
	boxLeft = calculateBoxLeft()*-1;
	boxRight = calculateBoxRight();
	if(boxLeft <= midPage && boxLeft < distance && itemPos < midPage){
		distance = boxLeft;
		moveToRight(distance);
	} else if(boxRight <= midPage && boxRight < (distance)*-1 && itemPos > midPage){
		distance = boxRight;
		moveToLeft(distance);
	}else{
		move(distance);
	}
	
}

function calculateBoxRight (){
	var a = (fotobox.getDimensions().width - calculateBoxLeft()*-1) - holder.getDimensions().width;
	return a;
}

function calculateBoxLeft (){
	var b = fotobox.positionedOffset()[0] - holder.positionedOffset()[0];
	return b;
}

}
