// JavaScript Document

IE = document.all?true:false;

if (typeof(ButtonImageDir) == "undefined") {
	ButtonImageDir = "images";
}

if (typeof(ButtonPreText) == "undefined") {
	ButtonPreText = "btn_";
}


if (typeof(ButtonOverText) == "undefined") {
	ButtonOverText = "-over";
}

if (typeof(ButtonSelectedText) == "undefined") {
	ButtonSelectedText = "-selected";
}

if (typeof(LeewayX) == "undefined") {
	LeewayX = 50;
}

if (typeof(LeewayY) == "undefined") {
	LeewayY = 50;
}

if (typeof(PopDivAlignType) == "undefined") {
	PopDivAlignType = "Item" // "Item", "Mouse";
}

if (typeof(PopDivAnchorY) == "undefined") {
	PopDivAnchorY = "Bottom" //  "Bottom", "Top", "Center";
}

if (typeof(PopDivAlignY) == "undefined") {
	PopDivAlignY = "Top" //  "Bottom", "Top";
}

if (typeof(PopDivAnchorX) == "undefined") {
	PopDivAnchorX = "Left" //  "Left", "Right", "Center";
}

if (typeof(PopDivAlignX) == "undefined") {
	PopDivAlignX = "Left" //  "Left", "Right", "Center";
}

if (typeof(PopDivOffsetX) == "undefined") {
	PopDivOffsetX = -50;
}

if (typeof(PopDivOffsetY) == "undefined") {
	PopDivOffsetY = 0;
}

if (typeof(AllowAs) == "undefined") {
	AllowAs = true;
}


function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{

   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}
window.onload = TryLoad;


function TryLoad() {
	if (IE) {
		correctPNG();
	}
	DocBody = document.getElementsByTagName ("body").item (0);
	if (!DocBody) {
		TryAgain = setTimeout("TryLoad()", 1000);
	} else {
		ConfigNavButtons();
	}
}

function getMousePosition(e) {
	// Get and store the position.
	MouseX = 0;
	MouseY = 0;
	if (!e) {
		e = window.event;
	}
	if (!IE) {
		MouseX = e.pageX;
		MouseY = e.pageY;
	} else {
		MouseX = e.clientX; //+ DocBody.scrollLeft;
		MouseY = e.clientY; // + DocBody.scrollTop;
	}

	return true;
}
IE = document.all?true:false;
if (!IE) {
	document.captureEvents(Event.MOUSEMOVE);
}
document.documentElement.onmousemove = getMousePosition;


function GetAllNav() {
	var NavButtons = document.getElementsByTagName("img");
	var NavButtons2 = document.getElementsByTagName("a");
	var FinalNavButtons = [];
	var n;
	for (n=0; n<=NavButtons.length-1;n++) {
		FinalNavButtons[FinalNavButtons.length] = NavButtons[n];
	}
	if (AllowAs) {
		for (n=0; n<=NavButtons2.length-1;n++) {
			FinalNavButtons[FinalNavButtons.length] = NavButtons2[n];
		}
	}
	return FinalNavButtons;
}

function ConfigNavButtons(){
	CurrentPop = "";
	CurrentButton = "";
	MouseOver = false;
	//PopDivRefObj = new Object();
	DrawPop = setInterval("DoDrawPop()", 100);
	var NavButtons = GetAllNav();
	for (n=0;n<=NavButtons.length-1;n++){
		if (NavButtons[n].id.indexOf("NavButton") > -1) {
			var MyButton = NavButtons[n];
			MyButton.onmouseover = NavRollOver;
			MyButton.onmouseout = NavRollOut;
			if (NavButtons[n].nodeName.toLowerCase() == "img") {
				SetDefaultSRC(MyButton);
			}
		}
	}
}

function NavRollOver(Evt) {
	MouseOver = true;
	if (!Evt) {
		Evt = window.event;
		Target = Evt.srcElement;
	} else {
		Target = Evt.target;
	}
	
	CurrentPop = Target.id.substring(0, Target.id.indexOf("NavButton"));
		
	if (typeof(Target.PopDiv) == "undefined"){
		var MyPopDivId =  CurrentPop + "PopDiv";
	} else {
		var MyPopDivId = Target.PopDiv;
	}
	
	var MyPopDiv = document.getElementById(MyPopDivId);

	if (MyPopDiv){
		DoPopDivAlign(Target, MyPopDiv);
	}

}
function NavRollOut(Evt) {
	MouseOver = false;
}
function SetOverSRC(Target){
	if (ButtonImageDir){
		var SetSRC = ButtonImageDir + "/";
	} else {
		var SetSRC = "";
	}
	var ButtonPostTextArray = Target.src.split(".");
	var ButtonPostText = ButtonPostTextArray[ButtonPostTextArray.length-1];
	SetSRC += ButtonPreText + Target.id.substring(0, Target.id.indexOf("NavButton")).toLowerCase() + ButtonOverText + "." + ButtonPostText;
	// Checks to see if it is the last part of the string of the source already?
	if (Target.src.indexOf(SetSRC) != Target.src.length - SetSRC.length) {
		Target.src = SetSRC;
	}
}

function SetDefaultSRC(Target) {
	var TargetName = Target.id.substring(0, Target.id.indexOf("NavButton")).toLowerCase();
	try {
		var WinLoc = window.location.href.toLowerCase();
	} catch(e) {
		var WinLoc = "";
	}
	
	if (ButtonImageDir){
		var SetSRC = ButtonImageDir + "/";
	} else {
		var SetSRC = "";
	}
	
	
	SetSRC += ButtonPreText + TargetName;

	if (WinLoc.indexOf(TargetName) > -1){
		SetSRC += ButtonSelectedText
	}
	
	var ButtonPostTextArray = Target.src.split(".");
	var ButtonPostText = "." + ButtonPostTextArray[ButtonPostTextArray.length-1];
	SetSRC += ButtonPostText;
	if (Target.src.indexOf(SetSRC) != Target.src.length - SetSRC.length) {
		Target.src = SetSRC;
	}
}

function DoPopDivAlign(Anchor, Target) {
	MyPopDivAlignType = PopDivDetermine(Anchor, Target, "PopDivAlignType");
	MyPopDivAnchorY = PopDivDetermine(Anchor, Target, "PopDivAnchorY");
	MyPopDivAlignY = PopDivDetermine(Anchor, Target, "PopDivAlignY");
	MyPopDivAnchorX = PopDivDetermine(Anchor, Target, "PopDivAnchorX");
	MyPopDivAlignX = PopDivDetermine(Anchor, Target, "PopDivAlignX");
	MyPopDivOffsetX = PopDivDetermine(Anchor, Target, "PopDivOffsetX");
	MyPopDivOffsetY = PopDivDetermine(Anchor, Target, "PopDivOffsetY");

	if (MyPopDivAlignType == "Mouse"){
		var AnchorX = MouseX;
		var AnchorY = MouseY;
	} else {
		if (MyPopDivAnchorY == "Top"){
			var AnchorY = GetTop(Anchor);
		} else if (MyPopDivAnchorY == "Center") {
			var AnchorY = GetTop(Anchor) + (Anchor.offsetHeight / 2);
		} else if (MyPopDivAnchorY == "Bottom") {
			var AnchorY = GetTop(Anchor) + (Anchor.offsetHeight);
		}
		
		if (MyPopDivAnchorX == "Left"){
			var AnchorX = GetLeft(Anchor);
		} else if (MyPopDivAnchorX == "Center") {
			var AnchorX = GetLeft(Anchor) + (Anchor.offsetWidth / 2);
		} else if (MyPopDivAnchorX == "Bottom") {
			var AnchorX = GetLeft(Anchor) + (Anchor.offsetWidth);
		}
	}
	
	if (MyPopDivAlignY == "Top"){
		var AlignY = 0;
	} else if (MyPopDivAlignY == "Center") {
		var AlignY = (Target.offsetHeight / 2);
	} else if (MyPopDivAlignY == "Bottom") {
		var AlignY = (Target.offsetHeight);
	}
	
	if (MyPopDivAlignX == "Left"){
		var AlignX = 0;
	} else if (MyPopDivAlignX == "Center") {
		var AlignX = (Target.offsetWidth / 2);
	} else if (MyPopDivAlignX == "Bottom") {
		var AlignX = (Target.offsetWidth);
	}
	
	Target.style.left = AnchorX + AlignX + MyPopDivOffsetX + "px";
	Target.style.top = AnchorY + AlignY + MyPopDivOffsetY + "px";
}

function PopDivDetermine(Anchor, Target, Param) {
	if (typeof(Anchor[Param]) != "undefined"){
		return Anchor[Param];
	} else if (typeof(Target[Param]) != "undefined"){
		return Target[Param];
	} else {
		return this[Param];
	}
}

function GetTop(_Target) {
	var TrueVal = _Target.offsetTop;
	BreakIt = false;
	var LastVal = 0;
	while (typeof(_Target.parentNode.offsetLeft) == "number" && !BreakIt){
		_Target = _Target.parentNode;
		
		var CurVal = _Target.offsetTop;
		if (_Target.nodeName != "TD"){
		//if (CurVal != LastVal){
			TrueVal += _Target.offsetTop;
		}
		//alert (_Target + " = " + _Target.offsetTop + " = " + CurVal);
		var LastVal = _Target.offsetTop;
	}
	return TrueVal;
}

function GetLeft(_Target) {
	var TrueVal = _Target.offsetLeft;
	BreakIt = false;
	var LastVal = 0;
	while (typeof(_Target.parentNode.offsetLeft) == "number" && !BreakIt){
		_Target = _Target.parentNode;
		var CurVal = _Target.offsetLeft
		if (CurVal != LastVal){
			TrueVal += _Target.offsetLeft;
		}
		var LastVal = _Target.offsetLeft;
	}
	return TrueVal;
}

function DoDrawPop(){
	var CurrentPopDiv = document.getElementById(CurrentPop + "PopDiv");
	var CurrentNavBut = document.getElementById(CurrentPop);
	//alert (CurrentPop);
	if (CurrentPopDiv) {
		if (MouseX < CurrentPopDiv.offsetLeft - LeewayX || MouseX > CurrentPopDiv.offsetLeft + CurrentPopDiv.offsetWidth + LeewayX || MouseY < CurrentPopDiv.offsetTop - LeewayY || MouseY > CurrentPopDiv.offsetTop + CurrentPopDiv.offsetHeight + LeewayY) {
			CurrentPop = "";
		}
	} else if (!MouseOver){
		CurrentPop = "";
	}
	//var PopDivs = document.getElementsByName("PopDiv");
	var PopButtons = GetAllNav();;
	var n;
	for (n=0;n<=PopButtons.length-1;n++){
		if (PopButtons[n].id.indexOf("NavButton") > -1) {
			var PopButton = PopButtons[n];
			var PopButtonID = PopButton.id.substring(0, PopButton.id.indexOf("NavButton"))
			var PopDiv = document.getElementById(PopButtonID + "PopDiv"); 
			//alert (PopButton.id);
			//alert (PopDiv.id);
			if (PopButtonID != CurrentPop){
				if (PopButton.nodeName.toLowerCase() == "img") {
					SetDefaultSRC(PopButton);
				}
				var SetState = "hidden";
			} else {
				if (PopButton.nodeName.toLowerCase() == "img") {
					SetOverSRC(PopButton);
				}
				var SetState = "visible";
			}
			if (PopDiv && PopDiv.style.visibility != SetState) {
				PopDiv.style.visibility = SetState;
			}
		}
	}

}
