/* tristream linked javascript version date 20040210
//tristream specializes in web application and user centered interface design with services including AJAX, SAAS, and interaction design.
* browsers supported IE 5+, Netscape 6+ Safari 1.1.1
*/

// global variables
var isWin = (navigator.userAgent.indexOf("Win") != -1);
var isMac = (navigator.userAgent.indexOf("Mac") != -1);
var isNav = (navigator.appName == "Netscape");
var isIE = (navigator.appName == "Microsoft Internet Explorer");
var imagesHilite = new Object();
var imagesNormal = new Object();

// map images for left nav
var imagesMap = new Object();
imagesMap["1"] = new Image(360, 182);
imagesMap["1"].src = "../images/global/leftnav_bkg1.gif"
imagesMap["2"] = new Image(360, 182);
imagesMap["2"].src = "../images/global/leftnav_bkg2.gif"
imagesMap["3"] = new Image(360, 182);
imagesMap["3"].src = "../images/global/leftnav_bkg3.gif"
imagesMap["4"] = new Image(360, 182);
imagesMap["4"].src = "../images/global/leftnav_bkg4.gif"
imagesMap["5"] = new Image(360, 182);
imagesMap["5"].src = "../images/global/leftnav_bkg5.gif"
imagesMap["6"] = new Image(360, 182);
imagesMap["6"].src = "../images/global/leftnav_bkg6.gif"
imagesMap["7"] = new Image(360, 182);
imagesMap["7"].src = "../images/global/leftnav_bkg7.gif"

// Creat a popup window
function popwin(url,h,w)
{
	var newwindow;
	newwindow=window.open(url,'_blank','height='+h+',width='+w+',resizable=no,scrollbars=no,toolbar=no,status=no,location=no');
	if (window.focus) {newwindow.focus()}
}

// return the IE version number as a float
function getIEVersionNumber() {
var ua = navigator.userAgent;
var MSIEOffset = ua.indexOf("MSIE ");
	if (MSIEOffset == -1) {
		return 0;
	} else {
		return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
	}
}
// return the browser version number as a float
function getNNVersionNumber() {
if (navigator.appName == "Netscape") {
	var appVer = parseFloat(navigator.appVersion);
		if (appVer < 5) {
			return appVer;
		} else {
		if (typeof navigator.vendorSub != "undefined") {
			return parseFloat(navigator.vendorSub);
		} 
	}
	}
return 0;
}
// image swapping by id
function setImage(imgName, type) {
	if (document.images) {
		if (type == "hilight") {
			document.getElementById(imgName).src = imagesHilite[imgName].src;
			return true;
		} else if (type == "normal") {
			document.getElementById(imgName).src = imagesNormal[imgName].src;
			return true;
		}
	}
return false;
}
// return an elements current style
// typical use = getElementStyle("myDiv", "backgroundColor", "background-color")
function getElementStyle(elemID, IEStyleProp, CSSStyleProp) {
var elem = document.getElementById(elemID);
	if (elem.currentStyle) {
		return elem.currentStyle[IEStyleProp];
	} else if (window.getComputedStyle) {
		var compStyle = window.getComputedStyle(elem, "");
		return compStyle.getPropertyValue(CSSStyleProp);
	}
return "";
}
// toggle an elements display property
function toggleDisplay(id){
var displayStyle = getElementStyle(id, "display", "display")
	if (document.all){
		if(displayStyle == 'none'){
			document.all[id].style.display = '';
		} else {
			document.all[id].style.display = 'none';
		}
	return false;
	} else if (document.getElementById){
		if(displayStyle == 'none'){
			document.getElementById(id).style.display = 'block';
		} else {
			document.getElementById(id).style.display = 'none';
		}
	return false;
} }

function mouseIn(obj,name) {
	var imgName = name;
	obj.src="../images/publications/"+imgName+"_on.gif";
}
function mouseOut(obj,name) {
	var imgName = name;
	obj.src="../images/publications/"+imgName+"_off.gif";
}
function preload() {
img1=new Image()
img1.src="tristream/images/index/green_go_on.jpg"
img2=new Image()
img2.src="tristream/images/index/violet_go_on.jpg"
}
function mouseInIndex(obj,name) {
	var imgName = name;
	obj.src="tristream/images/index/"+imgName+"_on.gif";
}
function mouseOutIndex(obj,name) {
	var imgName = name;
	obj.src="tristream/images/index/"+imgName+"_off.gif";
}

// change the second level navagation group of elements styles to either
// hilight or non-hilight
function changeClasses(obj, state) {
// find the parent containers object
var parentObj = getParentObj(obj);
if (state == "active") { 
	parentObj.className = "active";
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "black10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "black10";
		}
	}
} else if (parentObj.className == "plain") { 
	parentObj.className = "hilite"; 
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "black10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "black10";
		}
	}	
} else if (parentObj.className == "hilite") { 
	parentObj.className = "plain";
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "grey10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "grey10";
		}
	}
} 
}
// change the second level navagation group of elements styles to either
// hilight or non-hilight on index pages only
function changeHomeClasses(obj, state) {
// find the parent containers object
var parentObj = getParentObj(obj);
if (state == "active") { 
	parentObj.className = "active";
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "black10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "black10";
		}
	}
} else if (parentObj.className == "plain") { 
	parentObj.className = "hilite"; 
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "black10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "black10";
		}
	}	
} else if (parentObj.className == "hilite") { 
	parentObj.className = "plain";
	if (obj.hasChildNodes()) { 
		// change the first span
		obj.childNodes[0].className = "white10b";
		// change the second span
		if (obj.childNodes.length > 1) {
		obj.childNodes[1].className = "white10";
		}
	}
} 
}
// return an objects parent obj (containment element in doc tree) reference
function getParentObj(obj) {
if (obj.parentNode.nodeType == 1) {
	return obj.parentNode;
}
}
// toggle the left navagation link class from (open | closed)
function toggleLinkOpenClosed(obj) {
	if (obj.className == "openlink") {
		obj.className = "closedlink";
	} else if (obj.className == "closedlink") {
			obj.className = "openlink";
	} 
} 
// toggle an elements class from (open_container | closed_container) 
function toggleContainerDisplay(idNumber) {
if (idNumber == 5) { return; } // 5 is the homepage
var id = "container_"+idNumber;
var eleClassName = document.getElementById(id).className;
	if (eleClassName == "closed_container") {
			document.getElementById(id).className = 'open_container';
	} else if (eleClassName == "open_container") {
			document.getElementById(id).className = 'closed_container';
} }

// toggle an elements class from (open_container | closed_container) 
function toggleContainerDisplayHome(idNumber) {
if (idNumber == 6) { return; } // 5 is the homepage
var id = "home_container_"+idNumber;
var eleClassName = document.getElementById(id).className;
	if (eleClassName == "closed_container") {
			document.getElementById(id).className = 'open_container';
			for (i = 1; i < 6; i++) {
				if (i != idNumber) {
					var sid = "home_container_"+i;
					document.getElementById(sid).className = 'closed_container';
					var sid = "home_link_"+i;
					document.getElementById(sid).className = 'closedlink'; } }
	} else if (eleClassName == "open_container") {
			document.getElementById(id).className = 'closed_container';
} 
}

function rolloverNavagation(obj, id) {
if (obj.className == "closedlink") {
	toggleLinkOpenClosed(obj);
	toggleContainerDisplay(id);
}
}
// init the main navagation / the 2nd teir navagation / map image  
function initPage() {
if (pageConfigArray[0] <= 8) { // background image
document.getElementById("left_panel").style.background = "url("+imagesMap[pageConfigArray[0]].src+") no-repeat";
}
if (pageConfigArray[0] != 0) { // main navagation
	toggleLinkOpenClosed(document.getElementById("link_"+pageConfigArray[0]));
	if (pageConfigArray[0] != 5) {
		toggleContainerDisplay(pageConfigArray[0]);
		var nodeRef = document.getElementById("container_"+pageConfigArray[0]);
		var counter = 0;
		for (var i = 0; i < nodeRef.childNodes.length; i++) {  // main nav sub link
			if (nodeRef.childNodes[i].nodeType == 1) {
				counter++
				if (counter == pageConfigArray[1]) { nodeRef.childNodes[i].className = "plainlinkactive"; }
				} 
			}
		}
	}
counter = 0;
var nodeRef = document.getElementById("secondnavs"); // 2nd level nav
if (pageConfigArray[2] != 0) {
for (i = 0; i < nodeRef.childNodes.length; i++) {
	if (nodeRef.childNodes[i].nodeType == 1) {
	counter++
		if (counter == pageConfigArray[2]) { 
			nodeRef.childNodes[i].className = "active"; 
			if (nodeRef.childNodes[i].childNodes[0].hasChildNodes()) { //2nd sub formats
			nodeRef.childNodes[i].childNodes[0].childNodes[0].className = "black10b";
				if (nodeRef.childNodes[i].childNodes[0].childNodes.length > 1) {
				nodeRef.childNodes[i].childNodes[0].childNodes[1].className = "black10";
				}				
			}
		}
	}
}
counter = 0;
}
}
// assign the init method to the pages onload event
window.onload = initPage;

function navigate(choice) {
    var url = choice.options[choice.selectedIndex].value;
    if (url) {
        location.href = url;
    }
}