//Collective Funds menu


//timer for hiding menu dropdown
var gl_CFLayer1Timer = null;
var gl_bCFLayer1Timer = true;
var gl_nCFLayer1Timeout = 400;

//timer for hiding sub-menu dropdown
var gl_CFLayer2Timer = null;
var gl_bCFLayer2Timer = true;
var gl_nCFLayer2Timeout = 400;

//timer for hiding sub-sub-menu dropdown
var gl_CFLayer3Timer = null;
var gl_bCFLayer3Timer = true;
var gl_nCFLayer3Timeout = 400;

var gl_arrCFMenuDivIds = new Array(0);
var gl_arrCFSubMenuDivIds = new Array(0);
var gl_arrCFSubSubMenuDivIds = new Array(0);

var gl_nCFTopOffset = 0;
var gl_nCFSubTopOffset = 0;

function getElementPosition(argElement)
{  
    var anX = 0;  
    var aY = 0;                
    while(argElement != null) 
    {    
        anX += argElement.offsetLeft;    
        aY += argElement.offsetTop;    
        argElement = argElement.offsetParent;  
    }
    return {x: anX,y: aY};
}

function enterCFMenu(argMenuDiv, cssClass, argSubMenuDivId)
{
    gl_nCFTopOffset = getElementPosition(argMenuDiv).y;

    argMenuDiv.className = cssClass;
    hideAllCFSubLayers()
    unRegisterAllCFSubLayers();
    hideAllCFLayers();

    document.getElementById(argSubMenuDivId).style.top = gl_nCFTopOffset + "px";

    registerCFLayer(argSubMenuDivId);
    showCFLayer(argSubMenuDivId);
    stopCFLayer1Timer();
}

function leaveCFMenu(argMenuDiv, cssClass)
{
    argMenuDiv.className = cssClass;
    startCFLayer1Timer();
}

function enterCFSubMenu()
{
    stopCFLayer1Timer();
}

function leaveCFSubMenu()
{
    startCFLayer1Timer();
}

function toggleCFLayer(argLayerId, bShow)
{
    if(!gl_bInitialized || gl_browser == "")
        return;
        
    if(bShow)
        bShow = "visible";
    else
        bShow = "hidden";
        
    if (gl_browser == "mozilla")
        document.getElementById(argLayerId).style.visibility = bShow;
    else 
    {
        var oLayer = null;
        eval('oLayer = ' + gl_syntaxLayer + '["' + argLayerId + '"]');
        if(oLayer)
        {
            eval(gl_syntaxLayer + '["' + argLayerId + '"]' + gl_syntaxStyle + '.visibility = "' + bShow + '"');
        }
    }
}

function hideCFLayer(argLayerId)
{
     toggleCFLayer(argLayerId, false);  
}

function showCFLayer(argLayerId)
{
    toggleCFLayer(argLayerId, true);  
}

function registerCFLayer(argLayerId)
{
    var bLayerFound = false;
    for(var i=0; i<gl_arrCFMenuDivIds.length; ++i)
        if(gl_arrCFMenuDivIds[i] == argLayerId)  {
            bLayerFound = true;
            break;
        }
    if(!bLayerFound)
        gl_arrCFMenuDivIds[gl_arrCFMenuDivIds.length] = argLayerId;
}

function hideAllCFLayers()
{
    for(var i=0; i<gl_arrCFMenuDivIds.length; ++i)
        hideCFLayer(gl_arrCFMenuDivIds[i]);
}

function startCFLayer1Timer() 
{
    if (!gl_bCFLayer1Timer) {
        gl_CFLayer1Timer = setTimeout( "hideAllCFLayers()" , gl_nCFLayer1Timeout);
        gl_bCFLayer1Timer = true;
    }
}

function stopCFLayer1Timer() 
{
    if (gl_bCFLayer1Timer) 
    {
        clearTimeout(gl_CFLayer1Timer);
        gl_CFLayer1Timer = null;
        gl_bCFLayer1Timer = false;
    }
}


//-------------------------------------------
//sub-menu code
//-------------------------------------------
function startCFLayer2Timer() 
{
    if (!gl_bCFLayer2Timer) {
        gl_CFLayer2Timer = setTimeout( "hideAllCFSubLayers()" , gl_nCFLayer2Timeout);
        gl_bCFLayer2Timer = true;
    }
}

function stopCFLayer2Timer() 
{
    if (gl_bCFLayer2Timer) 
    {
        clearTimeout(gl_CFLayer2Timer);
        gl_CFLayer2Timer = null;
        gl_bCFLayer2Timer = false;
    }
}

function enterCFSubMenuItem(argSubmenuDiv, argSubSubMenuId, argCssClass)
{
    argSubmenuDiv.className = argCssClass;

    var aSubSubMenuDiv = document.getElementById(argSubSubMenuId);
    var aSubMenuDivPos = getElementPosition(argSubmenuDiv);
    var aSubSubMenuDivPos = getElementPosition(aSubSubMenuDiv);
    
    gl_nCFSubTopOffset = aSubMenuDivPos.y

    if(aSubSubMenuDiv)
       aSubSubMenuDiv.style.top = (aSubMenuDivPos.y - gl_nCFTopOffset) + "px"; 
        
    registerCFSubLayer(argSubSubMenuId);    
    hideAllCFSubLayers();
    stopCFLayer2Timer();
    showCFLayer(argSubSubMenuId);
}

function leaveCFSubMenuItem(argSubSubMenuDiv, cssClass)
{
    argSubSubMenuDiv.className = cssClass;
    startCFLayer2Timer();
}

function registerCFSubLayer(argLayerId)
{
    var bLayerFound = false;
    for(var i=0; i<gl_arrCFSubMenuDivIds.length; ++i)
        if(gl_arrCFSubMenuDivIds[i] == argLayerId)  {
            bLayerFound = true;
            break;
        }
    if(!bLayerFound)
        gl_arrCFSubMenuDivIds[gl_arrCFSubMenuDivIds.length] = argLayerId;
}

function unRegisterAllCFSubLayers()
{
    gl_arrCFSubMenuDivIds = new Array(0);
}

function hideAllCFSubLayers()
{
    for(var i=0; i<gl_arrCFSubMenuDivIds.length; ++i)
        hideCFLayer(gl_arrCFSubMenuDivIds[i]);
}


//-------------------------------------------
//sub-sub-menu code
//-------------------------------------------
function startCFLayer3Timer() 
{
    if (!gl_bCFLayer3Timer) {
        gl_CFLayer3Timer = setTimeout( "hideAllCFSubSubLayers()" , gl_nCFLayer3Timeout);
        gl_bCFLayer3Timer = true;
    }
}

function stopCFLayer3Timer() 
{
    if (gl_bCFLayer3Timer) 
    {
        clearTimeout(gl_CFLayer3Timer);
        gl_CFLayer3Timer = null;
        gl_bCFLayer3Timer = false;
    }
}

function enterCFSubSubMenu()
{
    stopCFLayer1Timer();
    stopCFLayer2Timer();
    stopCFLayer3Timer();
}

function leaveCFSubSubMenu()
{
    startCFLayer3Timer();
    startCFLayer2Timer();
    startCFLayer1Timer();
}

function enterCFSubSubMenuItem(argSubSubMenuDiv, argSubSubSubMenuId, argCssClass)
{
    argSubSubMenuDiv.className = argCssClass;

    var aSubSubSubMenuDiv = document.getElementById(argSubSubSubMenuId);
    var aSubSubMenuDivPos = getElementPosition(argSubSubMenuDiv);
    var aSubSubSubMenuDivPos = getElementPosition(aSubSubSubMenuDiv);

    if(aSubSubSubMenuDiv)
       aSubSubSubMenuDiv.style.top = (aSubSubMenuDivPos.y - gl_nCFSubTopOffset) + "px"; 
        
    registerCFSubSubLayer(argSubSubSubMenuId);    
    hideAllCFSubSubLayers();
    stopCFLayer3Timer();
    showCFLayer(argSubSubSubMenuId);    
}

function leaveCFSubSubMenuItem(argSubSubMenuDiv, argCssClass)
{
    argSubSubMenuDiv.className = argCssClass;
    startCFLayer3Timer();    
}

function unRegisterAllCFSubSubLayers()
{
    gl_arrCFSubSubMenuDivIds = new Array(0);
}

function hideAllCFSubSubLayers()
{
    for(var i=0; i<gl_arrCFSubSubMenuDivIds.length; ++i)
        hideCFLayer(gl_arrCFSubSubMenuDivIds[i]);
}

function registerCFSubSubLayer(argLayerId)
{
    var bLayerFound = false;
    for(var i=0; i<gl_arrCFSubSubMenuDivIds.length; ++i)
        if(gl_arrCFSubSubMenuDivIds[i] == argLayerId)  {
            bLayerFound = true;
            break;
        }
    if(!bLayerFound)
        gl_arrCFSubSubMenuDivIds[gl_arrCFSubSubMenuDivIds.length] = argLayerId;
}

//-------------------------------------------
//sub-sub-sub-menu code
//-------------------------------------------
function enterCFSubSubSubMenu()
{
    stopCFLayer1Timer();
    stopCFLayer2Timer();
    stopCFLayer3Timer();
}

function leaveCFSubSubSubMenu()
{
    startCFLayer3Timer();
    startCFLayer2Timer();
    startCFLayer1Timer();
}

function enterCFSubSubSubMenuItem(argSubSubSubMenuDiv, argCssClass)
{
    argSubSubSubMenuDiv.className = argCssClass;
}

function leaveCFSubSubSubMenuItem(argSubSubSubMenuDiv, argCssClass)
{
    argSubSubSubMenuDiv.className = argCssClass;
}

function clickCFSubSubSubMenuItem(argFundId)
{
    document.location.href = "viewFund.aspx?fid=" + argFundId;
}