function Magazine(){}
Magazine.isAnimating = false;
Magazine.boxWidth = 168;

Magazine.showArchive = function(){
	new Effect.Move('magazine-slider-box', {
	  x: 360, mode: 'absolute', duration:0.5,
	  transition: Effect.Transitions.sinoidal
	});
}

Magazine.showMagazine = function(){
	new Effect.Move('magazine-slider-box', {
	  x: 0, mode: 'absolute', duration:0.5,
	  transition: Effect.Transitions. sinoidal
	});
}

Magazine.prevArchiveBox = function(el){
	if( Magazine.isAnimating ) return;
	var p = Magazine.updateArrows( "prev", el );
	if( !(p.left >= 0) ) Magazine.moveArchiveBox( p, Magazine.boxWidth ).counterLink.className = "archive-button-slidebox-right";
}

Magazine.nextArchiveBox = function(el){
	if( Magazine.isAnimating ) return;
	var p = Magazine.updateArrows( "next", el );
	if( !(p.left <= -p.max) ) Magazine.moveArchiveBox( p, -Magazine.boxWidth ).counterLink.className = "archive-button-slidebox-left";
}

Magazine.updateArrows = function( direction, el ){
	
	var p = {};
	p.link = $(el);
	p.container = $(el.parentNode.previousSibling.firstChild);
	p.left = parseInt(p.container.getStyle("left"));
	p.max = parseInt(p.container.getStyle("width")) - Magazine.boxWidth;
	p.counterLink = direction == "prev" ? $(el.nextSibling) : $(el.previousSibling);
	
	if( direction == "prev" ) p.link.className = ( p.left < -Magazine.boxWidth ) ? "archive-button-slidebox-left" : "archive-button-slidebox-left-disabled";
	if( direction == "next" ) p.link.className = ( p.left <= -(p.max - Magazine.boxWidth) ) ? "archive-button-slidebox-right-disabled" : "archive-button-slidebox-right";
	
	return p;
}

Magazine.moveArchiveBox = function( p, w ){
	Magazine.isAnimating = true;
	new Effect.Move( p.container, {
	  x: w, mode: 'relative', duration:0.3, afterFinish: Magazine.reset, transition: Effect.Transitions.sinoidal
	});	
	return p;
}

Magazine.reset = function(){
	Magazine.isAnimating = false;
}