// div-within div scroller, written May 2005 by Christoph Saxe.
// parts of code borrowed from or inspired by www.quirksmode.org
// originally based on an idea in Javascript: the definitive guide 4th ed.

// declare and set some global vars:

var scrElement, scrElementHeight, scrElementBottom, scrTimer, scrDirection;
var scrElementTop = 0;
var scrStep = 8; // half of line height
var scrPause = 100;
var viewBottom = 336;
var viewer=null;

function openViewer(imageName, imageText, h, w) {
	windowContent='ImageViewer.php?i='+imageName+'.jpg&t='+imageText;
	windowName='imageViewer';
	windowOptions='height='+h+',width='+w;
	if(viewer==null) {
		viewer=window.open(windowContent, windowName, windowOptions);
	} else if(viewer.closed) {
		viewer=null;
		viewer=window.open(windowContent, windowName, windowOptions);
	} else {
		viewer.close();
		viewer=null;
		viewer=window.open(windowContent, windowName, windowOptions);
	}
	viewer.focus();
	void 0;
}

function initScrElement(id, scrollId) {
	DHTML = (document.getElementById || document.all || document.layers);
	if(!DHTML) return;
	scrElement= findElement(id);
	scrElementHeight=scrElement.offsetHeight;
	scrElementBottom=scrElementTop+scrElementHeight-scrStep;
	if (scrElementBottom > viewBottom) showElement(scrollId);
}

function showElement(id) {
	e = findElement(id);
	e.style.display = 'block';
}

function scrollElement() {
	if(!scrElement) return;
	if(scrDirection == 1 && scrElementTop >= 0) {
		scrollStop();
		return; }// keep the top at the top, don't move it down!
	if(scrDirection == -1 && scrElementBottom <= viewBottom) {
		scrollStop();
		return; }//don't scroll the bottom up into the middle of the page!
	scrElementTop += scrDirection * scrStep;
	scrElementBottom = scrElementTop +scrElementHeight;
	scrElement.style.top=scrElementTop + 'px';
	scrTimer = setTimeout('scrollElement()', scrPause);
}

function scrollUp() {
	scrDirection = 1;
	scrollElement();
}


function scrollDown() {
	scrDirection = -1;
	scrollElement();
}

function scrollStop() {
	if(scrTimer) {clearTimeout(scrTimer);}
}

// adapted from the DHTML micro-API at www.quirksmode.org

function findElement(name)
{
  if (document.getElementById)
  {
  	return document.getElementById(name);
  }
  else if (document.all)
  {
	return document.all[name];
  }
  else if (document.layers)
  {
	return findElementNN4(document,name);
  }
}

function findElementNN4(obj,name)
{
	var x = obj.layers;
	var foundLayer;
	for (var i=0;i<x.length;i++)
	{
		if (x[i].id == name)
		 	foundLayer = x[i];
		else if (x[i].layers.length)
			var tmp = getObjNN4(x[i],name);
		if (tmp) foundLayer = tmp;
	}
	return foundLayer;
}
