/******************************************
--  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 arPreloadedImages = new Array();
var initialized = false;

///////////////////////
// init()
//////////////////////
function init() {
	preloadImage("btn_aboutUs","/assets/images/navigation/btn_aboutUs.gif");
	preloadImage("btn_aboutUs_hl","/assets/images/navigation/btn_aboutUs_hl.gif");
	preloadImage("btn_ourTeam","/assets/images/navigation/btn_ourTeam.gif");
	preloadImage("btn_ourTeam_hl","/assets/images/navigation/btn_ourTeam_hl.gif");
	preloadImage("btn_portfolio","/assets/images/navigation/btn_portfolio.gif");
	preloadImage("btn_portfolio_hl","/assets/images/navigation/btn_portfolio_hl.gif");
	preloadImage("btn_newsAndEvents","/assets/images/navigation/btn_newsAndEvents.gif");
	preloadImage("btn_newsAndEvents_hl","/assets/images/navigation/btn_newsAndEvents_hl.gif");
	preloadImage("btn_contactUs","/assets/images/navigation/btn_contactUs.gif");
	preloadImage("btn_contactUs_hl","/assets/images/navigation/btn_contactUs_hl.gif");
	
	//news and events subnav
	preloadImage("btnsn_companyNews","/assets/images/navigation/btnsn_companyNews.gif");
	preloadImage("btnsn_companyNews_hl","/assets/images/navigation/btnsn_companyNews_hl.gif")
	preloadImage("btnsn_inTheNews","/assets/images/navigation/btnsn_inTheNews.gif");
	preloadImage("btnsn_inTheNews_hl","/assets/images/navigation/btnsn_inTheNews_hl.gif");
	preloadImage("btnsn_events","/assets/images/navigation/btnsn_events.gif");
	preloadImage("btnsn_events_hl","/assets/images/navigation/btnsn_events_hl.gif");
	
	initialized = true;
}

window.onload = init;

///////////////////////
// preloadImage()
//////////////////////
function preloadImage(label,source) {
	arPreloadedImages[label] = new Image;
	arPreloadedImages[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/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;
		}
	}
}

// * - fixes an issue with Netscape 4.x browsers
//   - when a user resized the browser, absolute positioning would be lost
// * - document information will be lost if not saved

if (document.layers) {
	origWinWidth = window.innerWidth;
	origWinHeight = window.innerHeight;
	
	window.onresize = function() {
		currWinWidth = window.innerWidth;
		currWinHeight = window.innerHeight;
		if((origWinWidth != currWinWidth) || (origWinHeight != currWinHeight)) location.reload();
	}
}

/********************************************************/
var isNS4 = (document.layers)?true:false;
var sLayer = "";

//////////////////////////
// showLayer()
/////////////////////////
function showLayer(id) {
	if (!initialized) return;
	
	//hideAllLayers(); // removed and moved into inline javascript.
	sLayer = id;
	
	var obj = (isNS4)?document.layers[id]:document.getElementById(id);
	if (isNS4) obj.style = obj;
		
	obj.style.visibility = (isNS4)?"show":"visible";

}

/////////////////////////
// hideLayer()
////////////////////////
function hideLayer(id) {
	if (!initialized) return;
	
	var obj = (isNS4)?document.layers[id]:document.getElementById(id);
	if (isNS4) obj.style = obj;
	
	obj.style.visibility = (isNS4)?"hide":"hidden";
}

////////////////////////
// hideAllLayers()
///////////////////////
/* First hide all the top nav layers and submenus.  
Then reset the hilighted nav image based on function arg pased in from inline JS */

function hideAllLayers(id,imageName) {
	if (!initialized) return;
	
	sLayer = "";
	hideLayer("snNewsAndEvents");
	
	// reset top-level nav
	if (initialized) {
		swapImage('btn_newsAndEvents',arPreloadedImages['btn_newsAndEvents'].src);
		swapImage(id,arPreloadedImages[imageName].src);
	}
}

if (isNS4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = checkNavZone;

var navL = 0;
var navR = 595;
var navT = 86;
var navB = 182;
var scrollT = 0;


/////////////////////////
// checkNavZone()
////////////////////////
function checkNavZone(arg) {
	if (!initialized) 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>navB)||(mY<navT)) {
		if (sLayer != "") {
			hideAllLayers(idCurr,imageNameCurr);
		}
	}
}

/////////////////////////
// changeNavZone()
// - used to adjust nav target "zone" when the user scrolls the browser window
////////////////////////
function changeNavZone(){
	if (document.body.scrollTop>scrollT) {
		navT -= document.body.scrollTop-scrollT;
		navB -= document.body.scrollTop-scrollT;
		scrollT = document.body.scrollTop
	} else if (document.body.scrollTop<scrollT) {
		navT += scrollT-document.body.scrollTop;
		navB += scrollT-document.body.scrollTop;
		scrollT = document.body.scrollTop
	}
}
window.onscroll = changeNavZone;

///////////////////////
// swapLayerImage()
///////////////////////
function swapLayerImage() {
	if (!initialized) return;

	if (document.images) {
		for(var i=0;i<arguments.length;i++) {
			if (isNS4) {
				document.layers[sLayer].document.images[arguments[i]].src = arguments[i+1];
			} else {
				document.images[arguments[i]].src = arguments[i+1];
			}
			++i;
		}
	}
}