var sublinkHTMLs;
var alreadyThere;
var preserveGap;
var madeSublinkHTML=false;

function makeSublinkHTMLs(sublinks) {
	if (preserveGap) {
		alreadyThere = document.getElementById("subnav-buttons").innerHTML;
	}else{
		alreadyThere="";
	}

	sublinkHTMLs = new Array(sublinks.length);
	for(var i=0; i<sublinks.length; i++) {
		sublinkHTMLs[i]=getSublinkHTML(sublinks[i], i);
	}
}

function getSublinkHTML(sublink, num) {
	if (sublink.length==0) return '<div class="empty">'+alreadyThere+'</div>';
	var s="";
	for (var i=0; i<sublink.length; i++) {
		s+='<div class="button">'+
		   '<a href="'+sublink[i][1]+'" onmouseover="sublinkOver('+num+','+i+')" onmouseout="sublinkOut('+num+','+i+')">'+
		   '<div class="left" id="sublink-left'+num+"-"+i+'"></div>'+
		   '<div class="text" id="sublink-text'+num+"-"+i+'">'+
		   sublink[i][0]+
		   '</div>'+
		   '<div class="right" id="sublink-right'+num+"-"+i+'"></div>';

		if (i!=sublink.length-1)
			s+='<div class="button-break" id="button-break'+num+"-"+i+'">|</div>';

		s+='</a></div>';
	}
	return s;
}


window.onload = function() {
	makeSublinkHTMLs(sublinks);
	madeSublinkHTML=true;
};


var INACTIVE=0;
var FADE_UP=1;
var FADE_DOWN=2;
var DYING=3;

var linkFadeStates=new Array(sublinks.length);
for (var i=0; i<linkFadeStates.length; i++) linkFadeStates[i]=INACTIVE;

var sublinkState=INACTIVE;







image1 = new Image();
image1.src=urlPrefix+"linkleft1.gif";
image2 = new Image();
image2.src=urlPrefix+"linkmiddle1.gif";
image3 = new Image();
image3.src=urlPrefix+"linkright1.gif";
image4 = new Image();
image4.src=urlPrefix+"linkleft2.gif";
image5 = new Image();
image5.src=urlPrefix+"linkmiddle2.gif";
image6 = new Image();
image6.src=urlPrefix+"linkright2.gif";
image7 = new Image();
image7.src=urlPrefix+"sublinkleft.gif";
image8 = new Image();
image8.src=urlPrefix+"sublinkmiddle.gif";
image9 = new Image();
image9.src=urlPrefix+"sublinkright.gif";







var overAnyLink=false;
var overAnySublink=false;

var expandedLink=section;

var recent_expandedTouch=-1;
var recent_expandedSwitchTouch=-1;

var UNEXPAND_PAUSE=1000;
var EXPAND_SWITCH_PAUSE=200;







function superlinkOver(num) {
	overAnyLink=true;
	if (expandedLink==-1) {
		expandedLink=num;
		colorLinkHighFade(num);
		showSublinks(num);
	}
	else if (expandedLink==num) {
		recent_expandedTouch=msTime();
		colorLinkHigh(num);
	}
	else {
		colorLinkLow(num);
		checkSwitchExpanded(num);
	}
}

function superlinkOut(num) {
	overAnyLink=false;
	if (expandedLink==num) {
		if (expandedLink!=section) {
			if (sublinks[num].length>0) {
				colorLinkLow(num);
				checkKillExpanded(num);
			}else{
				colorLinkNoneFade(num);
				checkKillExpanded(num);
			}
		}else{
			colorLinkLow(num);
		}
	}else{
		colorLinkNone(num);
	}
}


function sublinkOver(num1, num2) {
	overAnySublink=true;

	recent_expandedTouch=msTime();

	highlightSublink(num1, num2);
}

function sublinkOut(num1, num2) {
	overAnySublink=false;

	unHighlightSublink(num1, num2);

	checkKillExpanded(num1);
}












function checkKillExpanded(num) {
	recent_expandedTouch=msTime();
	setTimeout("checkKillExpanded2("+num+","+recent_expandedTouch+")", UNEXPAND_PAUSE);
}

function checkKillExpanded2(num, ms) {
	if (num!=expandedLink || recent_expandedTouch>ms || overAnySublink || overAnyLink) return;
	
	if (section!=num) {
		colorLinkNone(num);
		hideSublinks(num);
		expandedLink=-1;
	}
}







function checkSwitchExpanded(num) {
	recent_expandedSwitchTouch=msTime();
	setTimeout("checkSwitchExpanded2("+num+","+recent_expandedSwitchTouch+")", EXPAND_SWITCH_PAUSE);
}

function checkSwitchExpanded2(num, ms) {
	if (recent_expandedSwitchTouch>ms) return;
	if (overAnyLink) {
		if (expandedLink!=-1) colorLinkNone(expandedLink);
	
		colorLinkHigh(num);
		showSublinks(num);

		expandedLink=num;
	}
}








var FADE_PAUSE=30;
var FADE_UP_ALPHA_INC=.1;
var FADE_DOWN_ALPHA_DEC=.2;

function showSublinks(num) {
	if (!madeSublinkHTML) return;
	if (sublinks[expandedLink].length>0 && sublinks[num].length==0 && num!=section) {
		document.getElementById("subnav-buttons").innerHTML='<div class="empty"></div>';
	}else{
		if (num==section || sublinks[expandedLink].length!=0 || sublinks[num].length!=0)
			document.getElementById("subnav-buttons").innerHTML=sublinkHTMLs[num];
	}
	recent_showSublinks=msTime();
	sublinkState=FADE_UP;
	fadeUpSublinks(num, 0, recent_showSublinks);
}

function showSection() {
	if (!madeSublinkHTML) return;
	if (section>=0) {
		document.getElementById("subnav-buttons").innerHTML=sublinkHTMLs[section];
		recent_showSublinks=msTime();
		sublinkState=FADE_UP;
		fadeUpSublinks(section, 0, recent_showSublinks);
		colorLinkLow(section);
		expandedLink=section;
	}else{
		document.getElementById("subnav-buttons").innerHTML='<div class="empty">'+alreadyThere+'</div>';
	}
}

var recent_showSublinks=-1;

function fadeUpSublinks(num, alpha, ms) {
	if (recent_showSublinks>ms || sublinkState!=FADE_UP) return;
	if (alpha>1) {
		colorSublinks(num, 1);
		sublinkState=INACTIVE;
	}else{
		colorSublinks(num, alpha);
		setTimeout("fadeUpSublinks("+num+","+(alpha+FADE_UP_ALPHA_INC)+","+ms+")", FADE_PAUSE);
	}
}

function hideSublinks(num) {
	sublinkState=FADE_DOWN;
	fadeDownSublinks(num, 1);
}

function fadeDownSublinks(num, alpha) {
	if (sublinkState!=FADE_DOWN) return;
	if (alpha<0) {
		sublinkState=INACTIVE;
		showSection();
	}else{
		colorSublinks(num, alpha);
		setTimeout("fadeDownSublinks("+num+","+(alpha-FADE_DOWN_ALPHA_DEC)+")", FADE_PAUSE);
	}
}

var SUBLINK_R=68;
var SUBLINK_G=75;
var SUBLINK_B=89;
var SUBLINK_BREAK_R=144;
var SUBLINK_BREAK_G=167;
var SUBLINK_BREAK_B=182;
var BG_R=170;
var BG_G=197;
var BG_B=214;

function colorSublinks(num, alpha) {
	for (var i=0; i<sublinks[num].length; i++) {
		document.getElementById("sublink-text"+num+"-"+i).style.color="#"+decToHex(BG_R+(SUBLINK_R-BG_R)*alpha)+decToHex(BG_G+(SUBLINK_G-BG_G)*alpha)+decToHex(BG_B+(SUBLINK_B-BG_B)*alpha);
		if (i!=sublinks[num].length-1)
			document.getElementById("button-break"+num+"-"+i).style.color="#"+decToHex(BG_R+(SUBLINK_BREAK_R-BG_R)*alpha)+decToHex(BG_G+(SUBLINK_BREAK_G-BG_G)*alpha)+decToHex(BG_B+(SUBLINK_BREAK_B-BG_B)*alpha);
	}
}

function colorLinkNone(num) {
	document.getElementById("superlink-left"+num).style.backgroundImage="none";
	document.getElementById("superlink-right"+num).style.backgroundImage="none";
	document.getElementById("superlink-text"+num).style.backgroundImage="none";
}

function colorLinkLow(num) {
	document.getElementById("superlink-left"+num).style.backgroundImage="url("+urlPrefix+"linkleft1.gif)";
	document.getElementById("superlink-right"+num).style.backgroundImage="url("+urlPrefix+"linkright1.gif)";
	document.getElementById("superlink-text"+num).style.backgroundImage="url("+urlPrefix+"linkmiddle1.gif)";
}

function colorLinkHigh(num) {
	document.getElementById("superlink-left"+num).style.backgroundImage="url("+urlPrefix+"linkleft2.gif)";
	document.getElementById("superlink-right"+num).style.backgroundImage="url("+urlPrefix+"linkright2.gif)";
	document.getElementById("superlink-text"+num).style.backgroundImage="url("+urlPrefix+"linkmiddle2.gif)";
}

function colorLinkHighFade(num) {
	linkFadeStates[num]=FADE_UP;
	colorLinkLow(num);
	setTimeout("colorLinkHighFade2("+num+")", 100);
}

function colorLinkHighFade2(num) {
	if (linkFadeStates[num]!=FADE_UP) return;
	colorLinkHigh(num);
	linkFadeStates[num]=INACTIVE;
}


function colorLinkNoneFade(num) {
	linkFadeStates[num]=FADE_DOWN;
	colorLinkLow(num);
	setTimeout("colorLinkNoneFade2("+num+")", 50);
}

function colorLinkNoneFade2(num) {
	if (linkFadeStates[num]!=FADE_DOWN) return;
	colorLinkNone(num);
	linkFadeStates[num]=INACTIVE;
}

function highlightSublink(num1, num2) {
	document.getElementById("sublink-left"+num1+"-"+num2).style.backgroundImage="url("+urlPrefix+"sublinkleft.gif)";
	document.getElementById("sublink-right"+num1+"-"+num2).style.backgroundImage="url("+urlPrefix+"sublinkright.gif)";
	document.getElementById("sublink-text"+num1+"-"+num2).style.backgroundImage="url("+urlPrefix+"sublinkmiddle.gif)";
}

function unHighlightSublink(num1, num2) {
	document.getElementById("sublink-left"+num1+"-"+num2).style.backgroundImage="none";
	document.getElementById("sublink-right"+num1+"-"+num2).style.backgroundImage="none";
	document.getElementById("sublink-text"+num1+"-"+num2).style.backgroundImage="none";
}

function decToHex(dec) {
	var hexStr = "0123456789ABCDEF";
	var low = dec % 16;
	var high = (dec - low)/16;
	hex = "" + hexStr.charAt(high) + hexStr.charAt(low);
	return hex;
}

function msTime() {
	return (new Date()).getTime();
}








function memberLinkOver(i) {
	s=document.getElementById("memberLink"+i).style;
	s.backgroundColor="#CADBE6";
}

function memberLinkOut(i) {
	s=document.getElementById("memberLink"+i).style;
	s.backgroundColor="#D7E5EE";
}

function boardLinkOver(i) {
	s=document.getElementById("boardLink"+i).style;
	s.backgroundColor="#94BFDC";
}

function boardLinkOut(i) {
	s=document.getElementById("boardLink"+i).style;
	s.backgroundColor="#77B0D7";
}
