function getScrollTop()
{
	if (document.documentElement.scrollTop)
		return document.documentElement.scrollTop;
	if (document.body.scrollTop)
		return document.body.scrollTop;
	if (window.pageYOffset)
		return window.pageYOffset;
	return 0;
}

function getWindowHeight()
{
	if (window.innerHeight)
		return window.innerHeight;
	if (document.documentElement.clientHeight)
		return document.documentElement.clientHeight;
	if (document.body.clientHeight)
		return document.body.clientHeight;
	return 0;
}

///////////////////////////////////////////
// Repositioning Functions
///////////////////////////////////////////
function item_reposition(field,item,itemOutsideFixedArea)
{
	//wrap in try as sometimes the offsetLeft and offsetTop fail in IE
	try
	{
		var lft = field.offsetLeft;
		var tp = field.offsetTop;

		//determine position of field
		var o = field.offsetParent;
		while (o)
		{
			if (o.style.position != "fixed")
			{
				lft += o.offsetLeft;
				tp += o.offsetTop;
				o = o.offsetParent;
			}
			else
			{
				if (itemOutsideFixedArea)
				{
					lft += o.offsetLeft;
					tp += getScrollTop() + o.offsetTop;
				}
				o = null;
			}
		}

		//adjust top position for field height
		var fieldHeight = field.offsetHeight;
		var itemHeight = parseInt(item.style.height);
		var scrollAmt = getScrollTop();

		if (tp - itemHeight >= scrollAmt && tp + fieldHeight + itemHeight > getWindowHeight() + scrollAmt)
			tp -= itemHeight;
		else
			tp += fieldHeight;

		if (item.style.left != lft + "px")
			item.style.left = lft + "px";
		if (item.style.top != tp + "px") 
			item.style.top = tp + "px";
	}
	catch(ex)
	{;/* do nothing*/}
}


///////////////////////////////////////////
// Rollover Functionality
///////////////////////////////////////////
//create global variables to hold info
var rolloverImages = new Array();

//called from pages to preload rollover images
function preloadImages(directory,extension)
{
	//preload images for each image name passed
	for (var i=2;i<arguments.length;i++)
	{
		rolloverImages[arguments[i] + "Off"] = new Image();
		rolloverImages[arguments[i] + "Off"].src = directory + arguments[i] + "Off." + extension;
		rolloverImages[arguments[i] + "On"] = new Image();
		rolloverImages[arguments[i] + "On"].src = directory + arguments[i] + "On." + extension;
	}
}

function toggleImage(name)
{
	var img = document.getElementById(name + "Image");
	if (img)
	{
		try
		{
			if (img.src == rolloverImages[name + "On"].src)
				img.src = rolloverImages[name + "Off"].src;
			else
				img.src = rolloverImages[name + "On"].src;
		}
		catch(ex) {;}
	}
}

//sets src of off image to src of on image so that image is always on
function setImageAlwaysOn(imageName)
{
	//make sure valid reference was given
	if (rolloverImages[imageName + "Off"])
	{
		rolloverImages[imageName + "Off"].src = rolloverImages[imageName + "On"].src;
		toggleImage(imageName);
	}
}