/******************************************
--  This site was designed and implemented by Miller Systems.
--  (c) Copyright 2003.  All rights reserved.
--  http://www.millersystems.com
--  Miller Systems, Inc. Boston MA 02116
******************************************/

var arPreloadedImg = new Array();
var initialized = false;
var isDOM = (document.getElementById)?true:false;
var isGecko = (navigator.userAgent.indexOf("Gecko")!=-1)?true:false;
var isIE = (document.all)?true:false;
var isBreadcrumbVisible = false;
var isArticleNavVisible = true;

///////////////////////
// init()
//////////////////////
function init() {
		if ((top.location != location) && (location.href.indexOf("phcadmin")==-1)) {
		window.top.location.href=location;
	}
	
	getLayerOrder();		// gets the order of subcategory buttons for DHTML layers
	hideAllPages();			// hides pages 2+ for DOM compliant browsers
	writePagination();		// writes pagination index for DOM compliant browsers
	
	if(isBreadcrumbVisible) {
		document.getElementById("layerBreadcrumb").style.visibility = "visible";
	}
	
	initialized = true;
}

window.onload = init;

///////////////////////
// preloadImage()
//////////////////////
function preloadImage(label,source) {
	arPreloadedImg[label] = new Image;
	arPreloadedImg[label].src = source;
}

///////////////////////
// swapImage()
// - used to swap a named image's src attribute for another
// - arguments - unlimited number of image name/source pairs
// - example - swapImage("foo","/bin_web/images/foo.gif")
///////////////////////
function swapImage() {
	if (!initialized) return;

	if (document.images) {
		for(var i=0;i<arguments.length;i++) {
			document.images[arguments[i]].src = arguments[i+1];
			++i;
		}
	}
}

///////////////////////
// reloadPage()
// - reloads page on resize to reset image spacer height
///////////////////////
function reloadPage() {
	setTimeout("window.location.reload(0)",500);
}
window.onresize = reloadPage;

///////////////////////
// getDocumentHeight()
// - returns height of document window
///////////////////////
function getDocumentHeight() {
	var h = (isIE)?document.body.offsetHeight - 6:(isGecko)?window.innerHeight:1;
	return h;
}

/**************************
-- Article layer display functions
**************************/
var iZIndex = 2;
var sActiveLayer = "default";
var sActiveImageOn = "";
var sActiveImageOff = "";
var aDivOrder = new Array();

// the following four variables define the layer "zone"
var navT = 0;		// top (set by showLayer() function)
var navB = 0;		// bottom (set by showLayer() function)
var navL = 69;		// left
var navR = 458;		// right
var navOffset = 0;

////////////////////////
// showLayer(id)
///////////////////////
function showLayer(id,on,off) {
	if (!initialized||!isDOM) return;
	if (!document.getElementById(id)) return;
	
	if (sActiveLayer != "default") hideLayer(sActiveLayer);
	sActiveLayer = id;
	sActiveImageOn = on;
	sActiveImageOff = off;
	
	var temp_order = 0;
	for (i=0;i<aDivOrder.length;i++) {
		if (id == aDivOrder[i]) temp_order = i+1;
	}
	temp_top = temp_order * 28 + 113;				// set top dimensions
	temp_bot = temp_top + 25 + (eval("length_"+id) * 22) + 38;	// set bottom dimensions (+30 extra for double-line nav)
	
	// display connector image
	if (eval("length_"+id) > 0 && isArticleNavVisible) {
		document.getElementById("layerConnector").style.visibility = "visible";
		document.getElementById("layerConnector").style.top = temp_top + "px";
	} else {
		document.getElementById("layerConnector").style.visibility = "hidden";
	}
	
	// check for browser resolutions
	var iBrowserHeight = getDocumentHeight();
	if (temp_bot > (iBrowserHeight+navOffset)) {
		var diff = temp_bot - iBrowserHeight - navOffset;
		temp_top = temp_top - diff;
		temp_bot = temp_bot - diff;
	}
	
	// set target zone
	navT = temp_top - navOffset;
	navB = temp_bot - navOffset;
	
	var temp_obj = document.getElementById(id);
	temp_obj.style.top = temp_top + "px";
	temp_obj.style.zIndex = iZIndex++;
	
	if (eval("length_"+id) > 0 && isArticleNavVisible) {
		temp_obj.style.visibility = "visible";
	}
	
	swapImage("img_"+id, sActiveImageOn);
}

////////////////////////
// hideLayer(id)
///////////////////////
function hideLayer(id) {
	if (!initialized||!isDOM) return;
	if (!document.getElementById(id)) return;
	
	var temp_obj = document.getElementById(id);
	temp_obj.style.visibility = "hidden";
	
	swapImage("img_"+id, sActiveImageOff);
}

///////////////////////
// checkLayerZone()
//////////////////////
function checkLayerZone(arg) {
	if (!initialized||!isDOM) return;
	
	e = (arg)?arg:event;
	mX = (e.pageX)?e.pageX:e.clientX;
	mY = (e.pageY)?e.pageY:e.clientY;

	if (((mX<navL)||(mX>navR))||((mY<navT)||(mY>navB))) {
		if ((sActiveLayer != "default")) {
			hideLayer(sActiveLayer);
			document.getElementById("layerConnector").style.visibility = "hidden";
			sActiveLayer="default";
		}
	}
}
document.onmousemove = checkLayerZone;

/////////////////////////
// changeZone()
// - used to adjust nav target "zone" when the user scrolls the browser window
////////////////////////
function changeZone(){
	if (!initialized||!isDOM) return;
	
	navOffset = document.body.scrollTop;
}
window.onscroll = changeZone;

/////////////////////////
// getLayerOrder()
// - get the order of Articles subnav layers
////////////////////////
function getLayerOrder() {
	if (!isDOM) return;
	
	var aDiv = document.getElementsByTagName("DIV");
	for (i=0;i<aDiv.length;i++) {
		if (aDiv[i].id.indexOf("layerArticles") != -1) {
			aDivOrder[aDivOrder.length] = aDiv[i].id;
		}
	}
}

/*********************************
- Pagination functions
*********************************/

var iVisiblePage = 1;
var iPageCount = 0;

/////////////////////////
// showPage(id)
////////////////////////						
function showPage(id) {
	if (!isDOM) return;

	var obj = document.getElementById("page"+id);
	
	hidePage(iVisiblePage);						
	obj.style.display = "";			
	iVisiblePage = id;
	writePagination();
}

////////////////////////
// hidePage(id)
///////////////////////
function hidePage(id) {
	if (!isDOM) return;
	
	var obj = document.getElementById("page"+id);
	obj.style.display = "none";
}

///////////////////////
// hideAllPages()
//////////////////////
function hideAllPages() {
	if (!isDOM) return;
	
	for (i=1;i<iPageCount+1;i++) {
		if (document.getElementById("page"+i)==null) continue;
		if (i!=1) document.getElementById("page"+i).style.display = "none";
	}
}

///////////////////////
// writePagination()
///////////////////////
function writePagination() {
	if (!isDOM) return;
	if (iPageCount<2) return;
	
	var sPreHTML = "";
	var sPostHTML = "";
	var sHTML = "";
	
	sPreHTML += '<table cellpadding="0" cellspacing="0" border="0" width="390">';
	sPreHTML += '	<tr>';
	sPreHTML += '		<td bgcolor="#FFBB78"><img src="/bin_web/images/spacer.gif" width="1" height="1" border="0" alt="" /></td>';
	sPreHTML += '	</tr>';
	sPreHTML += '	<tr>';
	sPreHTML += '		<td align="right">';
	sPreHTML += '			<table cellpadding="8" cellspacing="0" border="0">';
	sPreHTML += '				<tr>';
	
	
	sPostHTML += '				</tr>';
	sPostHTML += '			</table>';
	sPostHTML += '		</td>';
	sPostHTML += '	</tr>';
	sPostHTML += '</table>';
	
	/*
	if (iVisiblePage!=1) {
		sHTML += '<td><a href="javascript:showPage('+(iVisiblePage-1)+');" class="pagination">Prev</a></td>';
	}
	*/
	
	for (i=1;i<iPageCount+1;i++) {
		if (document.getElementById("page"+i)==null) return;
			
		if (i==iVisiblePage) {
			sHTML += '<td class="pagination"><b>[ '+i+' ]</b></td>';
		} else {
			sHTML += '<td><a href="javascript:showPage('+i+');" class="pagination">'+i+'</a></td>';
		}
	}
	
	if (iVisiblePage!=iPageCount) {
		sHTML += '<td><a href="javascript:showPage('+(iVisiblePage+1)+');" class="pagination">Next</a></td>';
		sHTML += '<td><a href="javascript:showPage('+(iVisiblePage+1)+');"><img src="'+sNextArrow+'" width="14" height="14" border="0" alt="Next" /></a></td>';
	}
	
	document.getElementById("pagination").innerHTML = sPreHTML + sHTML + sPostHTML;
}
