﻿<!--
//====================================================================
// Timer object
//--------------------------------------------------------------------

var oTimerID = null;

//====================================================================
// Whether a menu item has clicked.
//--------------------------------------------------------------------

var bClick = false;

//====================================================================
// Constants for image substrings
//--------------------------------------------------------------------

var overTag = "_over";
var minusTag = "_expand";


//====================================================================
// HTML source reference name constants
//--------------------------------------------------------------------

var sResultsElementName = "ctl00_ContentPlaceHolder1_LBList1_LeaderboardResults";
var sStatusElementName = "ctl00_ContentPlaceHolder1_LBList1_Status";
var sLoadDisplayElementName = "LoadStatusDisplay";
var sLBIDRequestElementName = "ctl00_ContentPlaceHolder1_LBList1_lbrequest";
//====================================================================
// This function will get the set the left position of the element
//   passed to it's submenu to the left position of the overall container.
//--------------------------------------------------------------------

function GetLeftCoord(oElement) {
	var menuWidth = 160;
	var menuIndex = 0;
	var subMenuWidth = 160;
	var subMenuIndex = 0;
	var iLeft = 0;
	var oObjects = oElement.parentNode.parentNode.childNodes;
	if (oObjects.length != null){
		for (j = 0; j < oObjects.length; j++){
			if(oObjects[j].className == "MenuHeaderBackground"){
				if(oElement.parentNode.id == oObjects[j].id){
					iLeft = (menuWidth * menuIndex);
				}
				menuIndex++;
			}

			if(oObjects[j].className == "MenuBackgroundMenu"){
				if(oElement.parentNode.id == oObjects[j].id){
					iLeft = (subMenuWidth * subMenuIndex);
				}
				
				subMenuIndex++;
			}
		}
	}
	return (menuWidth);
}
//====================================================================

//====================================================================
// This function will get the top offset position for the element
//   passed to it.
//--------------------------------------------------------------------

function GetTopCoord(oElement) {
	
	var iTop = oElement.offsetTop; //this is only getting the div, not the rows
	return iTop;
}
//====================================================================


//==============================================================
// This function will hide all the currently displayed submenus
// at a level lower than the current level on mouseover
//--------------------------------------------------------------
function hideSubs(iLevelToHide) {
	for (i = iLevelToHide; i < 10; i++){
		var sTier = "tier" + i
		
		//In IE, getElementsByName() checks both the id and name attributes to find collection of objects returned
		//This is NOT standard, so Firefox only looks in name attribute
		var oSubMenu = document.getElementsByName(sTier);
		for (j = 0; j < oSubMenu.length; j++){
            oSubMenu[j].style.visibility = 'hidden';
            oSubMenu[j].style.display = 'none';
        }
	}
}
//==============================================================

function Expand(e)
{
	//event object needs to be passed to support Firefox
	
	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	//parentElement-references the parent in the OBJECT hierarchy and is NOT a standard, IE specific
	//parentNode-references the parent in the DOCUMENT hierarchy and is a standard 
	var imgElement;
	
    if(element.tagName.indexOf("IMG") != -1)
    {
        imgElement = element;
        element = element.parentNode;
    }
	
	//Following line used for debugging.
    //alert("expand");
	
	//.all is NOT a standard, so we need to use .childNodes.  oObject is set to a NodeList
	//using .all each object was accessed using oObject(i), but with .childNodes oObject[i] is used
	var oObject = element.parentNode.childNodes;
	
	//Set the style class of the parent to the Hover style
	var parent = element.parentNode;
	rExp = /hover/gi;	
	
	if (parent.className.match(rExp)){
	    parent.className = parent.className.replace(rExp,"");
	}else{
    	parent.className = parent.className + "Hover";
	}
	
	if (oObject != null){
		if (oObject.length != null && oObject.length > 0)	{
			for (i = 0; i < oObject.length; i++){
				if ((oObject[i].tagName == "SPAN") && (oObject[i].parentNode == element.parentNode)){
					if (oObject[i].style.visibility != "visible"){
						//a-cbarn - changed to diplay below parent
						oObject[i].style.left = GetLeftCoord(element) + "px";  
						oObject[i].style.top = GetTopCoord(element) + "px";
						oObject[i].style.visibility = "visible";
						oObject[i].style.display = "block";
											
						if (imgElement != null)
						{
						    var imgID = imgElement.id;
						    var regexp_imgID = new RegExp(imgID, "i");
                            
						    var pathEndNum = imgElement.src.search(regexp_imgID);
						    var path = imgElement.src.substr(0,pathEndNum);
						    
						    //alert("imgID :" + imgID + "\nimgElement.src :" + imgElement.src + "\npathEndNum :" + pathEndNum + "\npath: " + path);
						    
                            if (imgElement.src.search("/" + overTag + "/i") != -1)
                            {
                                imgElement.src = path + imgID + minusTag + overTag + ".gif";
                            }
                            else
                            {
                                imgElement.src = path + imgID + minusTag + ".gif";
                            }
						}
					}else{
					    oObject[i].style.visibility = "hidden";
						oObject[i].style.display = "none";
						if (imgElement != null)
						{
						    var imgID = imgElement.id;
						    var regexp_imgID = new RegExp(imgID, "i");
                            
						    var pathEndNum = imgElement.src.search(regexp_imgID);
						    var path = imgElement.src.substr(0,pathEndNum);
						    
						    //alert("imgID :" + imgID + "\nimgElement.src :" + imgElement.src + "\npathEndNum :" + pathEndNum + "\npath: " + path);
						    
                            if (imgElement.src.search("/" + overTag + "/i") != -1)
                            {
                                imgElement.src = path + imgID + overTag + ".gif";
                            }
                            else
                            {
                                imgElement.src = path + imgID + ".gif";
                            }
						}
					}
				}
			}
		}
	}
}

function ToggleMenu(e){
	//event object needs to be passed to support Firefox
	
	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	var sClass = element.className;
	var oMenu;
	var oButton;
	var oObject;
	var oValue;

	if (sClass == "MenuHeader"){
		oObject = element.parentNode.childNodes;
	}else{
		var oTempObj = FindMenuElement(element);
		oObject = oTempObj.childNodes;
	}

	if (oObject != null){
		if (oObject.length != null)	{
			for (i = 0; i < oObject.length; i++){
				if ((oObject[i].tagName == "DIV") && (oObject[i].className == "MenuHeader")){
					oButton = oObject[i];
				}
				if ((oObject[i].tagName == "SPAN") && (oObject[i].parentNode.className == "MenuHeaderBackground")){
					oMenu = oObject[i];
				}
				if ((oObject[i].tagName == "INPUT")){
					oValue = oObject[i];
				}
			}
		}
	}
	
	//access input by id so all menus can share the same field
	if (document.getElementById(sLBIDRequestElementName)){
		oValue = document.getElementById(sLBIDRequestElementName);
	}
	
	if ((oMenu.style.visibility=='hidden') || (oMenu.style.visibility=='')){
		//ToggleDropDowns(e,"false");
		oMenu.style.left = 138;
		oMenu.style.top = 0;
		oMenu.style.visibility='visible';
		oMenu.style.display='block';
	}else{
		//ToggleDropDowns(e,"true");
//		if (event.srcElement.className != "MenuHeader")
//		{
			//oButton.innerHTML = "<IMG src='images//arrow.gif'> " + event.srcElement.innerText;
			oValue.value = element.id;
//		}
		oMenu.style.visibility='hidden';
		oMenu.style.display='none';
		var oObjectChildren = oMenu.childNodes;
		for (i = 0; i < oObjectChildren.length; i++){
			if (oObjectChildren[i].tagName == "SPAN"){
				oObjectChildren[i].style.visibility = "hidden";
				oObjectChildren[i].style.display = "none";
			}
		}
	}
}

//====================================================================
// This function makes all other dropdown menus disappear when 'false'
//   is passed to it.  They reappear when 'true' is sent to it.
//--------------------------------------------------------------------
function ToggleDropDowns(e,bVisible){
	//event object needs to be passed to support Firefox
	
	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	var oObject = document.body.childNodes;
	if (oObject != null){
		if (oObject.length != null){
			for (i = 0; i < oObject.length; i++){
				if ((oObject[i].className == "MenuHeader") && (oObject[i] != element) && (bVisible == "false"))
				{
					oObject[i].parentNode.style.zIndex = "-100";
				}
				if ((oObject[i].className == "MenuHeader") && (oObject[i] != element) && (bVisible == "true"))
				{
					oObject[i].parentNode.style.zIndex = "100";
				}
			}
		}
	}
}

function FindMenuElement(oElement)
{
	var oMenuEl;
	var sClass = oElement.parentNode.className;
	if (sClass != "MenuHeaderBackground")
	{
		oMenuEl = FindMenuElement(oElement.parentNode);
	}
	else
	{
		oMenuEl = oElement.parentNode;
	}
	return oMenuEl;
}

function ChooseOption(e){

	//Check to hide results or status
	var oResults = document.getElementById(sResultsElementName)
	var oResultsStatus = document.getElementById(sStatusElementName);
	var oLoadImg = document.getElementById(sLoadDisplayElementName);
	if (oResults != null) {
		oResults.style.visibility = 'hidden';
		oResults.style.display = 'none';
		oLoadImg.style.visibility = 'visible';
		oLoadImg.style.display = '';
	}
	else if (oResultsStatus != null) {
		oResultsStatus.style.visibility = 'hidden';
		oResultsStatus.style.display = 'none';
		oLoadImg.style.visibility = 'visible';
		oLoadImg.style.display = '';
	}
	
	//event object needs to be passed to support Firefox
	
	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	var oObject = element;
	//alert(oObject.id);
	if (bClick == false)
	{
		ToggleMenu(e);
		bClick = true;
	}
	

		
	Submit();
}

function TimeOut(iIter)
{
	sFunction = "hideSubs(" + iIter + ", \"nosubs\")";
	oTimerID = self.setTimeout(sFunction, 1000);
}

function ClearTime()
{
	self.clearTimeout(oTimerID);
}

function CheckToHide()
{
	alert(event.srcElement.className);
}

function Value(iNumber)
{
	var oTextbox = "textbox" + iNumber;
	var oDropdown = "dropdown" + iNumber;
	eval(oTextbox + ".value = " + oDropdown + ".value");
}
function Submit(){
	document.forms[0].submit();
}

//Splits the id up to get its ancestors in an array
//i.e. An element with id="Hotlap_D_100" will return
//		idSections[0] = "Hotlap" & idSections[1] = "Hotlap_D"
function SplitID(oElement){
	var separator = "_";
	var i = 0;
	splits = oElement.id.split(separator);
	idSections = new Array(splits.length-1);
	
	if(splits.length > 1){
		curIndex = oElement.id.indexOf(separator);
		
		while(curIndex != -1){
			idSections[i] = oElement.id.substr(0,curIndex);
			curIndex = oElement.id.indexOf(separator,curIndex+1);
			i++;
		}
	}
	return idSections;
}

//Emulates a hover effect for the current element and all its ancestors in in the menu
function setHover(e){
	//event object needs to be passed to support Firefox

	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	var imgElement;
	
    if(element.tagName.indexOf("IMG") != -1)
    {
        imgElement = element;
        element = element.parentNode;
    }

	if (imgElement != null)
	{
	    var imgID = imgElement.id;
	    var regexp_imgID = new RegExp(imgID, "i");
	    var regexp_minus = new RegExp(minusTag, "i");
        
	    var pathEndNum = imgElement.src.search(regexp_imgID);
	    var path = imgElement.src.substr(0,pathEndNum);
	    
	    //alert("imgID :" + imgID + "\nimgElement.src :" + imgElement.src + "\npathEndNum :" + pathEndNum + "\npath: " + path);
	    
        if (imgElement.src.search(regexp_minus) != -1)
        {
            imgElement.src = path + imgID + minusTag + overTag + ".gif";
        }
        else
        {
            imgElement.src = path + imgID + overTag + ".gif";
        }
	}
	else
	{
    	element.className = element.className + "Hover";
    }
	
	//Break apart the srcElement's name and change its ancestor's classes as well
//	idSections = SplitID(element);
//	
//	for(i=0;i<idSections.length;i++){
//		document.getElementById(idSections[i]).className += "Hover";
//	}
}

//Clears the hover effect for the current element and all its ancestors in in the menu
function clearHover(e){
	//event object needs to be passed to support Firefox

	if( !e ) e = window.event;
	
	//Code to support different DOMs, Firefox uses e.target, IE & Opera support e.srcElement
	var element;
	if(e.srcElement) element = e.srcElement;
	else if( e.target) element = e.target;
	
	rExp = /hover/gi;
	
	var imgElement;

    if(element.tagName.indexOf("IMG") != -1)
    {
        imgElement = element;
        element = element.parentNode;
    }

	if (imgElement != null)
	{
	    var imgID = imgElement.id;
	    var regexp_imgID = new RegExp(imgID, "i");
	    var regexp_minus = new RegExp(minusTag, "i");
        
	    var pathEndNum = imgElement.src.search(regexp_imgID);
	    var path = imgElement.src.substr(0,pathEndNum);
	    
	    //alert("imgID :" + imgID + "\nimgElement.src :" + imgElement.src + "\npathEndNum :" + pathEndNum + "\npath: " + path);
	    
        if (imgElement.src.search(regexp_minus) != -1)
        {
            imgElement.src = path + imgID + minusTag + ".gif";
        }
        else
        {
            imgElement.src = path + imgID + ".gif";
        }
	}
	else
	{
    	element.className = element.className.replace(rExp,"");
    }
    	
//	idSections = SplitID(element);
//	
//	for(i=0;i<idSections.length;i++){
//		tmpElement = document.getElementById(idSections[i]);
//		tmpElement.className = tmpElement.className.replace(rExp,"");
//	}
}
//-->


