
var actImage;
var speed = 1;
var targetPos;
var laufobj = $("Scroller");
var actLeft = parseInt(laufobj.style.left);

var thumbCount;
var imgWidths;

var viewWidth;

var artistSlider;

function init(  thumbc, detailMode ) { 
	actImage = 1;	
	thumbCount = thumbc;

	
	if(  detailMode=="true" ) {
		imgWidths = new Array();
		for( i=1 ; i<=thumbCount ; i++ ) {
			imgWidths.push( $('thb_'+i).width+30 );	
		}
	}
}

function showArt( imgnr ) {
	var toHide = "Layer_Details_"+actImage;
	var toShow = "Layer_Details_"+imgnr;
	
	if( toHide!=toShow )
		new Effect.Fade( $(toHide),{ duration: 1.0 } );
	
	new Effect.Appear( $(toShow),{ duration: 1.0 } );
	actImage=imgnr;
	
	scrollToPosition(imgnr);
}

function scrollToPosition(imgnr) {
	targetPos = getTargetPosition(imgnr);
	if( actLeft < targetPos )
		scrollLeft();
	else
		scrollRight();
}

function scrollRight() {
	actLeft = parseInt(laufobj.style.left);
	if( actLeft!=targetPos ) {
		var lspace = actLeft-speed;
		laufobj.setStyle( { left: lspace+'px' } );
		refreshScrollBar(lspace/(viewWidth-350));
		if( actLeft > targetPos ) 
			setTimeout("scrollRight()",20);
	}
}

function scrollLeft() {
	actLeft = parseInt(laufobj.style.left);
	var lspace = actLeft+speed;
	laufobj.setStyle( { left: lspace+'px' } );
	refreshScrollBar(lspace/(viewWidth-350));
	if( actLeft < targetPos ) 
		setTimeout("scrollLeft()",20);
}

function getTargetPosition(inr) {
	var tpos = 0;
	for( i=0 ; i<inr ; i++) {
		tpos+=imgWidths[i];
	}	
	tpos-=360;
	return (tpos > 150 ) ? ( tpos*(-1) ) : 0;
}

function initSlider( vW ) {
	viewWidth = vW;
	artistSlider = new Control.Slider('handle1','track1', { sliderValue:0,
							onSlide:function(v){ sliderScroll(v)} } );
}

function sliderScroll( v ) {

		var scrollWidth = viewWidth-350;
		var leftTarget = v*(-1)*scrollWidth;
		laufobj.setStyle( { left: leftTarget+"px" } );
}
	
function refreshScrollBar( vs ) {
	vs=vs*(-1);
	artistSlider.setValue(vs);
}
