
var objScroller;	//global object to represent scrolling layer

var newxpos;	//variable to temporarily hold scroll increments
//var crnt_screen = 1;	//var holding current screen position
var scroll_lock = false;	//scroll lock

var scrollerWidth;	//variable to hold width of scroll layer

var scrollCnt;	//variable to hold counter for speed increase

var scrollerLeft;	//variable to hold left position of scrolling layer

var rightOffSet; //variable holding an offset to change dimension of right side of layer

var screen_interval; //variable holding size of screens.

//move scrolling layer by absolute value
function moveLayer (val) {

	objScroller.xpos += val;	//update left pos of scroll layer

	if (document.layers) {
		objScroller.left = ((-objScroller.xpos) + scrollerLeft);
		objScroller.clip.top = 0;
		objScroller.clip.left = (objScroller.xpos);
		objScroller.clip.right = (objScroller.xpos + scrollerWidth + rightOffSet);
		objScroller.clip.bottom = 170;
	}
	else if (document.all || document.getElementById) {
		objScroller.left = ((-objScroller.xpos) + scrollerLeft);
		objScroller.clip = 'rect(0px ' + (objScroller.xpos + scrollerWidth) + 'px 170px ' + (objScroller.xpos) + 'px)';
	}
	
}

//animate scroll to a relative position
//nb. must be a value divisible by increment
function slideLayerBy (val,startprocess) {
	
	//if start of scroll process (ie function called externally)
	//then set the new x position to be achieved
	if (startprocess) {
		newxpos = objScroller.xpos + val;
		scrollCnt = 1;	//reset scroll counter
	}
	else scrollCnt++;
	
	var increment;
	var timer = 10;
	
	if (scrollCnt <= 5) increment  = 10;
	else if (scrollCnt <= 11) increment  = 25;
	else if (scrollCnt <= 13) increment = 50;
	else increment  = 100;
	
	//if new x pos is less than current xpos then move layer to left
	if (newxpos < objScroller.xpos) {
			moveLayer (-increment);
			setTimeout("slideLayerBy(" + val + ",false)",timer);
	}
	//if new x pos is greater than current xpos then move layer to right
	else if (newxpos > objScroller.xpos) {
			moveLayer (increment);
			setTimeout("slideLayerBy(" + val + ",false)",timer);
	}
	//other wise new x pos has been reached, so end process and release scroll lock
	else {
		//window.alert ('left clip = ' + objScroller.xpos + 'right clip = ' + (objScroller.xpos + scrollerWidth) + ' left = ' + ((-objScroller.xpos)+10));
		scrollEnd ()
		scroll_lock = false;
	}
	
}

function moveLayerBy(val) {

	objScroller.xpos += val;
	if (document.layers) {
		objScroller.left = ((-objScroller.xpos) + scrollerLeft);
		objScroller.clip.top = 0;
		objScroller.clip.left = (objScroller.xpos);
		objScroller.clip.right = (objScroller.xpos + scrollerWidth + rightOffSet);
		objScroller.clip.bottom = 170;
	}
	else if (document.all || document.getElementById) {
		objScroller.left = ((-objScroller.xpos) + scrollerLeft);
		objScroller.clip = 'rect(0px ' + (objScroller.xpos + scrollerWidth) + 'px 170px ' + (objScroller.xpos) + 'px)';
	}
	window.setTimeout('scrollEnd ()',100);
	scroll_lock = false;

}

//function to move forward/back screens
function moveScreen(val) {

	//if new screen is available (ie within range of possible screens)
	//and there is no currently active scroll
	if (val + crnt_screen > 0 && val + crnt_screen <= max_screen && scroll_lock == false) {
		scroll_lock = true;	//lock scroll
		if (!(is_ie5up && is_mac)) {
			//window.alert((val * 500));
			slideLayerBy ((val * screen_interval),true);	//slide layer
		}
		else {
			moveLayerBy ((val * screen_interval));	//slide layer
		}
		crnt_screen += val;	//set new current screen
	}
	
}

