var tabs = new Array();
var maxTabs = 4;
var biosDivs = new Array();
var contactDiv;
var contactTab;
var mostHeight = 0;
var mostDiv;
var divList = new Array();
var divSizes = new Array();
var divHeightCalc;
var activeDiv;
var tabThreshold = 425;
var defaultTabHeight = '409px';
var defaultMainHeight = '600px';
var headerHeight = 145;
var tabPadding = 46;


function updatePreviousDivs(newHeight) {
	for( var m=0; m < divList.length; m++ ) {
		setStyleById(divList[m], 'height', newHeight);
	}
}

function saveDivSize(divname) {
	var thisHeight = document.getElementById(divname).offsetHeight;
	divSizes.push(divname);
	divSizes[divname] = thisHeight;
}

function shrinkDivs() {
	// save the active div
	var mainCol = document.getElementById('main_col');
	var divsInMain = mainCol.getElementsByTagName("div");
	for( var z=0; z < divsInMain.length; z++ ) {
		var thisDiv = divsInMain[z];
		var nextDivId = thisDiv.getAttribute("id");
		if( (nextDivId.indexOf('content') != -1) || (nextDivId.indexOf('expert') != -1)) {
			if( divsInMain[z].style.visibility == 'visible' ) {
				activeDiv = divsInMain[z];
			}
		}
	}
	// get original heights and re-size divs, also set page-breaks
	var dsh = divSizes[0];
	divHeightCalc = document.getElementById(dsh).offsetHeight;
	for(var i=0; i < divSizes.length; i++) {
		var divHash = divSizes[i];
		thisDiv = document.getElementById(divHash);
		thisDiv.style.height = divSizes[divHash];
		thisDiv.style.visibility = "visible";
		//thisDiv.style.border = "none";
		if( i != (divSizes.length - 1) ) {
			thisDiv.style.pageBreakAfter = "always";
			thisDiv.style.pageBreakBefore = "";
		}
		if( document.all && (pageCode == 'coi')) {  // IE hack
			// show any select boxes in the div
			selects = thisDiv.getElementsByTagName('select');
			for( i=0; i < selects.length; i++ ) {
				selects[i].style.visibility = 'visible';
			}
		}
	}
}
function restoreDivs() {
	// restore all divs to the maximum calculated height
	for(var i=0; i < divSizes.length; i++) {
		var divHash = divSizes[i];
		thisDiv = document.getElementById(divHash);
		thisDiv.style.height = ((divHeightCalc*1) - tabPadding) + 'px';
		thisDiv.style.visibility = "hidden";
		if( document.all && (pageCode == 'coi')) { // IE hack
			var sels = thisDiv.getElementsByTagName('select');
			for( j=0; j < sels.length; j++ ) {
				sels[j].style.visibility = 'hidden';
			}
		}
	}
	// restore the active div
	activeDiv.style.visibility = "visible";
}

function calculateTabSizes(divname) {
	document.getElementById('content1').style.visibility = 'visible';

	var thisTabDivName = divname;
	divList.push(thisTabDivName);

	var mainDiv = document.getElementById('main');
	var thisDiv = document.getElementById(thisTabDivName);
	var thisHeight = thisDiv.offsetHeight;

	//alert("this " + thisHeight + ", last " + mostHeight);

	if( thisHeight > mostHeight ) {
		if( thisHeight < tabThreshold ) { 
			//alert("lt " + thisHeight);
			setStyleById(thisTabDivName, 'height', defaultTabHeight); 
			setStyleById('main', 'height', defaultMainHeight); 
			updatePreviousDivs(defaultTabHeight);
		} else {
			//alert("gt " + thisHeight);
			setStyleById('main', 'height', (thisDiv.offsetHeight + headerHeight) +'px'); 
			updatePreviousDivs((thisDiv.offsetHeight-tabPadding) + 'px');
		}
		//alert("main height " + mainDiv.style.height + "\nmain offset " + mainDiv.offsetHeight);
		mostHeight = thisHeight;
		mostDiv = thisDiv;
	} else {
		//alert("not the biggest, this height is " +thisHeight);
		setStyleById(thisTabDivName, 'height', (mostDiv.offsetHeight*1) - tabPadding + 'px');
		//alert("this set to " + (mostDiv.offsetHeight - tabPadding) + " tis now " + thisDiv.offsetHeight);
	}
}
function addTab(tabname, divname) {
	if( tabs.length < maxTabs ) {
		tabs.push(tabname);
		tabs[tabname] = divname;
	}
}
function addDivToTab ( divname ) {
	biosDivs.push(divname)
}
function showTab(whichTab, whichDiv) {
	document.getElementById(whichTab).style.visibility = 'visible';
	//document.getElementById(whichDiv).style.visibility = 'visible';
}
function swapTabs(which) {
	// turn off all tabs divs
	for(i=0; i < tabs.length; i++) {
		var tabhash = tabs[i];
		thisDiv = document.getElementById(tabs[tabhash]);
		thisDiv.style.visibility = 'hidden';
		var thisTab = document.getElementById(tabs[i]);
		thisTab.style.backgroundColor = "#F6F2E4";
		if( pageCode == 'contactUs' || pageCode == 'aboutUs' )
			thisTab.style.borderBottom = "solid 1px #9FB587";
		else
			thisTab.style.borderBottom = "solid 1px #9FB3BB";
		// find the SPAN child node of div and make it normal weight
		for (j=0; j < thisTab.childNodes.length; j++) {
			if( thisTab.childNodes.item(j).nodeName == 'SPAN' ) {
				thisTab.childNodes.item(j).style.fontWeight = 'normal';
			}
		}
		if( document.all ) { // IE hack
			var sels = thisDiv.getElementsByTagName('select');
			for( j=0; j < sels.length; j++ ) {
				sels[j].style.visibility = 'hidden';
			}
		}
	}
	// turn off all bio divs
	for(i=0; i < biosDivs.length; i++) {
		document.getElementById(biosDivs[i]).style.visibility = 'hidden';
	}
	// turn on the tab and div selected
	var thisDiv = document.getElementById(tabs[which]);
	thisDiv.style.visibility = 'visible';
	if( document.all ) {  // IE hack
		// show any select boxes in the div
		selects = thisDiv.getElementsByTagName('select');
		for( i=0; i < selects.length; i++ ) {
			selects[i].style.visibility = 'visible';
		}
	}
	var thisTab = document.getElementById(which);
	thisTab.style.borderBottom = "solid 1px #FFFFFF";
	thisTab.style.backgroundColor = "#FFFFFF";
	// find the SPAN child node of div and make it bold
	for (j=0; j < thisTab.childNodes.length; j++) {
		if( thisTab.childNodes.item(j).nodeName == 'SPAN' ) {
			thisTab.childNodes.item(j).style.fontWeight = 'bold';
		}
	}	
}
function showBioIndex(idxdiv, biodiv) {
	var showdiv = document.getElementById(idxdiv);
	var hidediv = document.getElementById(biodiv);
	if( (showdiv == null) || (hidediv == null) ) {
		alert("null " + showdiv + "|" + hidediv);
	} else {
		showdiv.style.visibility = 'visible';
		hidediv.style.visibility = 'hidden';
	}
}
function heyExpert(which) {
	var expert = document.getElementById(which);
	if( expert == null ) {
		alert("expert is null");
	} else {
		expert.style.visibility = 'visible';
		document.getElementById('tab2').style.zIndex = '100';
	}
}

function doDarkBorders() {
	setStyleById("header", "backgroundColor", "#99B1B6");
	setStyleByClass("div", "tabContent", "border", "solid #9FB587 1px");
	if( tabs.length >= 1 ) {
		setStyleById("tab1", "borderTop", "solid #9FB587 1px");
		setStyleById("tab1", "borderLeft", "solid #9FB587 1px");
		setStyleById("tab1", "borderRight", "solid #9FB587 1px");
		setStyleById("shadow1", "backgroundColor", "#9FB587");
		setStyleById("borderhack", "borderLeft", "solid #9FB587 1px");
	}
	if( tabs.length >= 2 ) {
		setStyleById("tab2", "borderTop", "solid #9FB587 1px");
		setStyleById("tab2", "borderLeft", "solid #9FB587 1px");
		setStyleById("tab2", "borderRight", "solid #9FB587 1px");
		setStyleById("shadow2", "backgroundColor", "#9FB587");
	}
	if( tabs.length >= 3 ) {
		setStyleById("tab3", "borderTop", "solid #9FB587 1px");
		setStyleById("tab3", "borderLeft", "solid #9FB587 1px");
		setStyleById("tab3", "borderRight", "solid #9FB587 1px");
		setStyleById("shadow3", "backgroundColor", "#9FB587");
	}
	if( tabs.length >= 4 ) {
		setStyleById("tab4", "borderTop", "solid #9FB587 1px");
		setStyleById("tab4", "borderLeft", "solid #9FB587 1px");
		setStyleById("tab4", "borderRight", "solid #9FB587 1px");
		setStyleById("shadow4", "backgroundColor", "#9FB587");
	}
}
function highlightRegion(thisDiv, state) {
	var classAttr;
	var regionColor, fontweight;
	var thisDivName = thisDiv.getAttribute('id');
	var imgRegion = thisDivName.substring(thisDivName.indexOf('_')+1, thisDivName.length);
	var imgMap = document.getElementById('themap');
	if( state == 'on') {
		regionColor = '#9FB587';
		fontweight = 'bold';
		imgMap.src = '/coi/images/atlas_'+imgRegion+'.jpg';
	} else {		
		regionColor = '#333333';
		fontweight = 'normal';
		imgMap.src = '/coi/images/atlas_none.jpg'
	}
	for (j=0; j < thisDiv.childNodes.length; j++) {
		if( thisDiv.childNodes.item(j).nodeName == 'P' ) {
			if(document.all) classAttr = "className";
			else             classAttr = "class";
			if( thisDiv.childNodes.item(j).getAttribute(classAttr, 0) == "clsRegion" ) {
				thisDiv.childNodes.item(j).style.color = regionColor;
			} else {
				thisDiv.childNodes.item(j).style.fontWeight = fontweight;
			}
		}

	}
}

cU_top = '100px';
cU_height = '550px';
cU_width = '598px';
cU_paddingRight = '22px';
cU_mainHeight = '695px';

function doContactUs(divname, tabname ) {
	contactDiv = document.getElementById(divname);
	contactTab = document.getElementById(tabname);
	contactDiv.style.top = cU_top;
	contactDiv.style.height = cU_height; // withlocate=530
	contactDiv.style.width = cU_width;
	contactDiv.style.paddingRight = cU_paddingRight;
	contactDiv.style.visibility = "visible";
	contactTab.style.visibility = "hidden";
	setStyleById('main', 'height', cU_mainHeight);
}
