var msec=200;
var appearingDiv;
var windowHeight;
var thisBrowser = navigator.appVersion;
var timeOuts = new Array();
var timeOutIndex = 0;

function displayDiv(hiddenDiv)
{
  changeOpac(0, hiddenDiv);
  changeOpac(0, 'backingDiv');
  var iereg = new RegExp('MSIE [^7-9]', 'g');
  if(iereg.exec(thisBrowser))
  {
	document.getElementById('backingDiv').style.height = document.body.offsetHeight + "px";
  }
  else
  {
  	document.getElementById('backingDiv').style.position = "fixed";
  }
  appearingDiv = hiddenDiv;
  opacity(hiddenDiv,0,99,msec);
  opacity('backingDiv',0,33,msec);
  setDisplay(hiddenDiv,'block');
  setDisplay('backingDiv','block');
}

function resetTimeouts()
{
	for(i=0;i<timeOuts.length;i++)
	{
  		clearInterval(timeOuts[i].interval);
  	}
	timeOutIndex = 0;
}

function quickdisplayDiv(hiddenDiv)
{
  resetTimeouts()
  changeOpac(0, hiddenDiv);
  changeOpac(0, 'backingDiv');
  appearingDiv = hiddenDiv;
  opacity(hiddenDiv,0,99,msec);
  setDisplay(hiddenDiv,'block');
}


function layerClose(hiddenDiv)
{
  opacity('backingDiv',33,0, msec);
  opacity(appearingDiv,99,0, msec);
}

function setDisplay(objectID,state) 
{
	var obj = document.getElementById(objectID);
	obj.style.display = state;
}

function checkOpacity(myObject)
{
	if((myObject.thisstep > 0 && myObject.currentOpacity < myObject.opacEnd) || (myObject.thisstep < 0 && myObject.currentOpacity > myObject.opacEnd))
	{
		changeOpac(myObject.currentOpacity,myObject.id);
		myObject.currentOpacity += myObject.thisstep;
	}
	else
	{
		clearInterval(myObject.interval);
		changeOpac(myObject.opacEnd,myObject.id);
		if(myObject.opacEnd == 0)
		setDisplay(myObject.id,"none");
	}
}

function fader(target, start, end, msec, thisIndex)
{
	this.opacStart = start;
	this.opacEnd = end;
	this.id = target;
	if(start < end)
	this.thisstep = 4;
	else
	this.thisstep = -4;
	this.currentOpacity = start;
	this.changeOpac = changeOpac;
	this.interval = setInterval("checkOpacity(timeOuts["+thisIndex+"])",Math.round(msec / 100));
}

function opacity(id, opacStart, opacEnd, msec) 
{
	timeOuts[timeOutIndex] = new fader(id, opacStart, opacEnd, msec, timeOutIndex);
	timeOutIndex++;
}

function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function scrollingDIV(scrollingID) 
{
	var currentScrollY;
	var currentDiv = document.getElementById(scrollingID)
	var currentTop = currentDiv.style.top;
	currentTop.replace(/px/,"");
	currentTop = parseInt(currentTop);
	var currentLeft = currentDiv.style.left;
	currentLeft.replace(/px/,"");
	currentLeft = parseInt(currentLeft);
	var currentDivHeight = currentDiv.offsetHeight;
	var currentDivWidth = currentDiv.offsetWidth;
	var currentHeight;
	var currentWidth;
	if (typeof window.innerWidth != 'undefined')
	{
		currentWidth = window.innerWidth,
		currentHeight = window.innerHeight
	}
	else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
 	{
		currentWidth = document.documentElement.clientWidth,
		currentHeight = document.documentElement.clientHeight
 	}
 	else
	{
		currentWidth = document.getElementsByTagName('body')[0].clientWidth,
		currentHeight = document.getElementsByTagName('body')[0].clientHeight
	}
	var centerY = currentHeight/2-currentDivHeight;
	var centerX = currentWidth/2-currentDivWidth/2;
	
	if(typeof(window.pageYOffset) == "undefined") 
	{
		currentScrollY = document.documentElement.scrollTop;
		currentScrollX = document.documentElement.scrollLeft;
	}
	else 
	{
		currentScrollY = window.pageYOffset;
		currentScrollX = window.pageXOffset;
	}
	
	centerX += currentScrollX;
	centerY += currentScrollY;
	
	if(isNaN(currentTop)) 
	{
		currentDiv.style.top = centerY + "px";
		currentTop = centerY;
		currentDiv.style.marginTop = "0px";
	}
	else 
	{
		var nextStep = (centerY - currentTop)/2;
		if(!isNaN(nextStep) && centerY != currentTop && currentHeight > currentDiv.offsetHeight) 
		{
			if(nextStep > 3 || nextStep < -3) 
			{
				currentDiv.style.top = currentTop + nextStep + "px";
			}
			else 
			{
				currentDiv.style.top = centerY + "px";
			}
		}
	}
	if(isNaN(currentLeft)) 
	{
		currentDiv.style.left = centerX + "px";
		currentLeft = centerX;
		currentDiv.style.marginLeft = "0px";
	}
	else 
	{
		var nextStep = (centerX - currentLeft)/2;
		if(!isNaN(nextStep) && centerX != currentLeft && currentWidth > currentDiv.offsetWidth) 
		{
			if(nextStep > 3 || nextStep < -3) 
			{
				currentDiv.style.left = currentLeft + nextStep + "px";
			}
			else 
			{
				currentDiv.style.left = centerX + "px";
			}
		}
	}
}

function displayCenterDiv(hiddenDiv)
{
	var scrollingDiv = document.getElementById(hiddenDiv);
	scrollingDiv.style.marginTop = "0px";
	scrollingDiv.style.marginLeft = "0px";
	displayDiv(hiddenDiv);
	centering = setInterval("scrollingDIV('"+hiddenDiv+"')", 100);
}