var parentDiv;
var scrollerDiv;
var scrollerPrev;
var scrollerNext;
var scrollerWidth;			// holder for width, dynamically generated
var advanceWidth = 68; 		// width of one block
var originatingLeft = 0;	// since it's not 0, original left position
var maxShowing = 7;			// amt of visible blocks
var maxLeft = 0;			// furthest left it can go... that's width based on max num minus the max showing
var scrollerTimeout;		// var holder for the timeout
var moveToPos;
var advanceOneAtATime = true;

//document.getElementById('targetHeaderText').onclick = function(){displayFolder(16);};

function setupScroller(num){
	parentDiv = document.getElementById("scrollerMask");
	scrollerDiv = document.getElementById("scrollerContents");
	scrollerPrev = document.getElementById("scrollerPrev");
	scrollerNext = document.getElementById("scrollerNext");
	
	scrollerPrev.style.opacity = 0.4;
	scrollerPrev.style.filter = "alpha(opacity=40)";
	
	if(num > maxShowing){
		if(scrollerNext.onclick){
			scrollerNext.onclick=function(){
				advanceScroller("next",1);
			};
		} else if(scrollerNext.attributes["onclick"]){
			scrollerNext.attributes["onclick"].value = "advanceScroller('next',1);";
		} else {
			scrollerNext.setAttribute("onclick","advanceScroller('next',1);");
		}
		
	} else {
		scrollerNext.style.opacity = 0.4;
		scrollerNext.style.filter = "alpha(opacity=40)";
	}
	
	originatingLeft = scrollerDiv.offsetLeft;
	scrollerWidth = advanceWidth * num;
	maxLeft = ((advanceWidth*maxShowing) - scrollerWidth);
}

function advanceScroller(direction,times){
	//alert((scrollerDiv.offsetLeft-originatingLeft)+" < "+maxLeft);
	//alert("advanceScroller(" + direction + "," + times + ")");

	if(advanceOneAtATime){	
		// advance scroller one thumbnail size at a time.
		if(direction == "next"){
			moveToPos = (scrollerDiv.offsetLeft-originatingLeft) - (advanceWidth * times);
			scrollerTimeout = setInterval("scrollLeft()", 1);
		} else if(direction == "prev"){
			moveToPos = (scrollerDiv.offsetLeft-originatingLeft) + (advanceWidth * times);
			scrollerTimeout = setInterval("scrollRight()", 1);
		}
	
	} else {	
		// advance scroller the full shown set as defined at the top of this page
		if(direction == "next"){
			moveToPos = (scrollerDiv.offsetLeft-originatingLeft) - ((maxShowing * times) * advanceWidth);
			scrollerTimeout = setInterval("scrollLeft()", 1);
		} else if(direction == "prev"){
			moveToPos = (scrollerDiv.offsetLeft-originatingLeft) + ((maxShowing * times) * advanceWidth);
			scrollerTimeout = setInterval("scrollRight()", 1);
		}
	}
}

function jumpScroller(direction,times){
	// same as advanceScroller() but w/o animation
	if(direction == "next"){
		moveToPos = originatingLeft - ((maxShowing * (times-1)) * advanceWidth);
		
		if(moveToPos < maxLeft){
			moveToPos = maxLeft;
		}
		
		if((scrollerDiv.offsetLeft-originatingLeft) > moveToPos){
			scrollerDiv.style.left = parseInt(moveToPos) + "px";
		}
		
		stopScroller();
		
	} else if(direction == "prev"){
		moveToPos = originatingLeft + ((maxShowing * (times-1)) * advanceWidth);
		
		if(moveToPos > maxRight){
			moveToPos = maxRight;
		}
		
		if((scrollerDiv.offsetLeft-originatingRight) < moveToPos){
			scrollerDiv.style.left = parseInt(moveToPos) + "px";
		}
		
		stopScroller();
	}
}

function scrollLeft(){
	if((scrollerDiv.offsetLeft-originatingLeft) > moveToPos
		 && (scrollerDiv.offsetLeft-originatingLeft) > maxLeft){
		scrollerDiv.style.left = parseInt((scrollerDiv.offsetLeft-originatingLeft) - 10) + "px";
	} else {
		stopScroller();
	}
}

function scrollRight(){
	if((scrollerDiv.offsetLeft-originatingLeft) < moveToPos
		 && (scrollerDiv.offsetLeft-originatingLeft) < 0){
		scrollerDiv.style.left = parseInt((scrollerDiv.offsetLeft-originatingLeft) + 10) + "px";
	} else {
		stopScroller();
	}
}

function stopScroller(){
	clearInterval(scrollerTimeout);
	if((scrollerDiv.offsetLeft-originatingLeft) > maxLeft){
		//alert(1);
		if(scrollerNext.onclick) scrollerNext.onclick=function(){advanceScroller("next",1);};
		else if(scrollerNext.attributes["onclick"]) scrollerNext.attributes["onclick"].value = "advanceScroller('next',1);";
		else scrollerNext.setAttribute("onclick","advanceScroller('next',1);");
		scrollerNext.style.opacity = 1;
		scrollerNext.style.filter = "alpha(opacity=100)";
		
	} else if((scrollerDiv.offsetLeft-originatingLeft) < originatingLeft){
		//alert(2);
		if(scrollerNext.onclick) scrollerNext.onclick = function(){return false;};
		else if(scrollerNext.attributes["onclick"]) scrollerNext.attributes["onclick"].value = "";
		else scrollerNext.setAttribute("onclick","");
		scrollerNext.style.opacity = 0.4;
		scrollerNext.style.filter = "alpha(opacity=40)";
	}
	
	if((scrollerDiv.offsetLeft-originatingLeft) == 0){
		//alert(3);
		if(scrollerPrev.onclick) scrollerPrev.onclick = function(){return false;};
		else if(scrollerPrev.attributes["onclick"]) scrollerPrev.attributes["onclick"].value = "";
		else scrollerPrev.setAttribute("onclick","");
		scrollerPrev.style.opacity = 0.4;
		scrollerPrev.style.filter = "alpha(opacity=40)";
		
	} else if((scrollerDiv.offsetLeft-originatingLeft) < originatingLeft){
		//alert(4);
		if(scrollerPrev.onclick) scrollerPrev.onclick=function(){advanceScroller("prev",1);};
		else if(scrollerPrev.attributes["onclick"]) scrollerPrev.attributes["onclick"].value = "advanceScroller('prev',1);";
		else scrollerPrev.setAttribute("onclick","advanceScroller('prev',1);");
		scrollerPrev.style.opacity = 1;
		scrollerPrev.style.filter = "alpha(opacity=100)";
	}
}