var clipTop = 0;
var clipWidth = 330;
var clipBottom = 140;
var topper = 0;

var clipTops = new Array();
var clipWidths = new Array();
var clipBottoms = new Array();
var toppers = new Array();

var lyrheight = new Array();
var time,amount,theTime,theHeight,DHTML;

var currentLayer = "";
var lastRegionLayer = "";

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function initlayers()
{
	DHTML = (document.getElementById || document.all || document.layers);
	if (!DHTML) return;

	var div_ref = document.getElementById("listregions");
	var positions = findPos(div_ref);
	topper = positions[1];
	
	var layers = document.getElementsByTagName("div");
	for (var i=0; i<layers.length; i++)
	{
		var name = layers[i].id;
		if (name.indexOf("list") >= 0) {
			
			var x = new getObj(name);
			if (document.layers)
			{
				lyrheight[name] = x.style.clip.bottom;
				lyrheight[name] += 20;
				x.style.clip.top = clipTop;
				x.style.clip.left = 0;
				x.style.clip.right = clipWidth;
				x.style.clip.bottom = clipBottom;
			}
			else if (document.getElementById || document.all)
			{
				lyrheight[name] = x.obj.offsetHeight;
				var clipstring = 'rect('+clipTop+'px,'+clipWidth+'px,'+clipBottom+'px,0)';
				x.style.clip = clipstring;
			}
			clipTops[name] = clipTop;
			clipWidths[name] = clipWidth;
			clipBottoms[name] = clipBottom;
			toppers[name] = topper;
		}
	}
	vis(lastRegionLayer,'visible');
	vis('listregions','visible');
}

function scrollayer(layername,amt,tim)
{
	if (!DHTML) return;
	if (layername == "") {
		layername = lastRegionLayer;
	}
	if (layername != "") {
		thelayer = new getObj(layername);
		if (!thelayer) return;
		currentLayer = layername;
		amount = amt;
		theTime = tim;
		realscroll();
	}
}

function stopScroll()
{
	if (time) clearTimeout(time);
}

function realscroll()
{
	if (!DHTML) return;
	clipTops[currentLayer] += amount;
	clipBottoms[currentLayer] += amount;
	toppers[currentLayer] -= amount;
	if (clipTops[currentLayer] < 0 || clipBottoms[currentLayer] > lyrheight[currentLayer])
	{
		clipTops[currentLayer] -= amount;
		clipBottoms[currentLayer] -= amount;
		toppers[currentLayer] += amount;
		return;
	}
	if (document.getElementById || document.all)
	{
		clipstring = 'rect('+clipTops[currentLayer]+'px,'+clipWidths[currentLayer]+'px,'+clipBottoms[currentLayer]+'px,0)'
		thelayer.style.clip = clipstring;
		thelayer.style.top = toppers[currentLayer] + 'px';
	}
	else if (document.layers)
	{
		thelayer.style.clip.top = clipTops[currentLayer];
		thelayer.style.clip.bottom = clipBottoms[currentLayer];
		thelayer.style.top = toppers[currentLayer];
	}
	time = setTimeout('realscroll()',theTime);
}

function changevis(_name, val)
{
	if (!DHTML) return;
	if ((val == "visible") && (lastRegionLayer != "")) {
		var l = new getObj(lastRegionLayer);
		l.style.visibility = "hidden";
		lastRegionLayer = _name;
	}
	var f = new getObj(_name);
	f.style.visibility = val;
}

function vis(_name, val)
{
	if (!DHTML) return;
	var f = new getObj(_name);
	f.style.visibility = val;
}

function getObj(name)
{
  if (document.getElementById)
  {
    this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }
  else if (document.all)
  {
    this.obj = document.all[name];
	this.style = document.all[name].style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}