//<SCRIPT language=JavaScript>

var  temp=0;
// Information container for a ScrollLayer
function ScrollStruct(objName, layerID, xPos, yPos, orientation, visibleSize)
{
this.name                = objName;
this.layerID             = layerID;
this.xPos                  = xPos;
this.yPos                 = yPos;
this.orientation       = orientation;
this.visibleSize      = visibleSize;
this.clipOffsetPos = 0; // Relative from LEFT if "Horiz", TOP if "Vert" 
this.dist                     =0;
this.speed              = 0;
this.stopPoint        = 0;
this.intervalID        = 0; // For setInterval and clearInterval
this.scrolling          = false; 
}
//**************************************************************
function ScrollLayer(scrollStruct)
{
var width   = parseInt(document.all[scrollStruct.layerID].style.width);
var height  = parseInt(document.all[scrollStruct.layerID].style.height);

if (scrollStruct.clipOffsetPos + scrollStruct.speed >= 0
&& scrollStruct.clipOffsetPos + scrollStruct.speed + scrollStruct.visibleSize
<= (scrollStruct.orientation == "Horiz" ? width : height))
{
scrollStruct.clipOffsetPos += scrollStruct.speed;

// Check for stop points
if (scrollStruct.speed > 0
&& scrollStruct.dist*(scrollStruct.stopPoint+1) >= scrollStruct.clipOffsetPos - scrollStruct.speed
&& scrollStruct.dist*(scrollStruct.stopPoint+1) <= scrollStruct.clipOffsetPos)
{
scrollStruct.stopPoint += 1;
clearInterval(scrollStruct.intervalID);
scrollStruct.scrolling = false;
}
else if (scrollStruct.speed < 0
&& scrollStruct.dist*(scrollStruct.stopPoint-1) >= scrollStruct.clipOffsetPos
&& scrollStruct.dist*(scrollStruct.stopPoint-1) <= scrollStruct.clipOffsetPos - scrollStruct.speed)
{
scrollStruct.stopPoint -= 1;
clearInterval(scrollStruct.intervalID);
scrollStruct.scrolling = false; 
} 
// Create and display the clip in the approppriate location
// if the position of the clip remains inside the layer.
// clip: rect(top right bottom left)
if (scrollStruct.orientation == "Horiz")
{
document.all[scrollStruct.layerID].style.posLeft = scrollStruct.xPos - scrollStruct.clipOffsetPos;
document.all[scrollStruct.layerID].style.posTop  = scrollStruct.yPos; 
document.all[scrollStruct.layerID].style.clip    = "rect(auto " + (scrollStruct.clipOffsetPos + scrollStruct.visibleSize) + "px auto " + scrollStruct.clipOffsetPos + "px)";
}
else if (scrollStruct.orientation == "Vert")
{
document.all[scrollStruct.layerID].style.posLeft = scrollStruct.xPos;
document.all[scrollStruct.layerID].style.posTop  = scrollStruct.yPos - scrollStruct.clipOffsetPos;
document.all[scrollStruct.layerID].style.clip    = "rect(" + scrollStruct.clipOffsetPos + "px auto " + (scrollStruct.clipOffsetPos + scrollStruct.visibleSize) + "px auto)"; 
}
else return;
document.all[scrollStruct.layerID].style.visibility = "visible"; 
}
else 
{
	if (scrollStruct.speed == 0) 
	{
	clearInterval(scrollStruct.intervalID);
	scrollStruct.scrolling = false;
	}
	else
	{
	scrollStruct.speed=-scrollStruct.speed
	}
	temp=scrollStruct.speed
}
}

// Methods to perform on a Scroll Layer
function ScrollForward(scrollStruct, dist, speed)
{
	 if (!scrollStruct.scrolling)
{
scrollStruct.dist       = dist;
scrollStruct.speed      = speed;
scrollStruct.scrolling  = true;
scrollStruct.intervalID = setInterval("ScrollLayer(" + scrollStruct.name + ")", 1);
}
}

function ScrollBackward(scrollStruct, dist, speed)
{
    if (!scrollStruct.scrolling)
{
scrollStruct.dist       = dist;
scrollStruct.speed      = -speed;
scrollStruct.scrolling  = true; 
scrollStruct.intervalID = setInterval("ScrollLayer(" + scrollStruct.name + ")", 1);
}
}
function PauseScroll(scrollStruct)
{
clearInterval(scrollStruct.intervalID);
scrollStruct.scrolling = false;

}
function LayerScroll(Speed)
{
PauseScroll(newHorizScrollLayer);
if (Speed == 0) temp=0;
if (Speed  >  0)   ScrollForward(newHorizScrollLayer,document.all.myHorizScrollLayer.offsetWidth,Speed);
if (Speed  <  0)   ScrollBackward(newHorizScrollLayer,document.all.myHorizScrollLayer.offsetWidth,-Speed);

}

function InitLayer(Speed)
{
clearInterval(ps);
// Declare a new Scroll Layer object
newHorizScrollLayer = new ScrollStruct('newHorizScrollLayer', 'myHorizScrollLayer',document.all.myTable.offsetLeft+3,document.all.myTable.offsetTop+3, 'Horiz',document.all.myTable.offsetWidth-6);
// Initialize (Show) the new Scroll Layer
ScrollLayer(newHorizScrollLayer);
LayerScroll(Speed)
}

function doInit(Speed)
{
  ps=setInterval("InitLayer(" + Speed + ")", 200);
}
function doResize()
{
	newHorizScrollLayer.xPos=document.all.myTable.offsetLeft+3;
	newHorizScrollLayer.yPos=document.all.myTable.offsetTop+3;
	ScrollLayer(newHorizScrollLayer);
	
	LayerScroll(temp);
	//document.getElementById("myTable").align="center";
	//document.getElementById("myButtons").align="center";
}
//</SCRIPT>

