var csOpened = null;
var csTimeout = 0;


function csCloseTimeout()
{
    window.clearTimeout(csTimeout);
    csTimeout = window.setTimeout(csClose, 100);
}

function csClose()
{
    if (!csOpened)
        return;
    
    csUnhover();
    
    csOpened.className = "csContainer" + csOpened.csStyleSuffix;
    csOpened.csList.style.display = "none";
    
    csOpened = null;
}

function csOpen(name, autoSubmitOption, updateFirstOption, styleSuffix, onChange, titleOption)
{
    if (csOpened)
    {
        var ret = (csOpened.getAttribute("id") == ("csDiv_" + name));
        csClose();
        
        if (ret)
            return;
    }
    
    csOpened = document.getElementById("csDiv_" + name);
    if (!csOpened)
        return;
    
    csOpened.csStyleSuffix = styleSuffix;
    
    csOpened.className = "csContainer csOpened" + csOpened.csStyleSuffix;
    
    csOpened.csList = csOpened.getElementsByTagName("ul").item(0);
    csOpened.csHidden = csOpened.getElementsByTagName("input").item(0);
    csOpened.csList.style.display = "block";
    csOpened.csAutoSubmit = autoSubmitOption;
    csOpened.csUpdateFirst = updateFirstOption
    csOpened.onChange = onChange;
    csOpened.csChangeTitle = titleOption;
    
    csOpened.csAnchors = csOpened.getElementsByTagName("a"); 
    
    for (var i = 0; i < csOpened.csAnchors.length; i++)
    {
        var aa = csOpened.csAnchors.item(i);
        if (aa.parentNode.tagName.toLowerCase() != "li" || aa.parentNode.className == ("csFirst" + csOpened.csStyleSuffix))
            continue;
        
        //aa.defaultSelected = (aa.className.indexOf("csSelected") >= 0);
        
    }   
}

function csSelect(name, value, a)
{
    if (!csOpened)
        return;
        
    if (csOpened.getAttribute("id") == ("csDiv_" + name))
    {
        var prevValue = csOpened.csHidden.value;
        csOpened.csHidden.value = value;
        if (prevValue != value)
        {
            if (csOpened.csChangeTitle)
                csOpened.csAnchors.item(csOpened.csAnchors.length - 1).innerHTML = a.innerHTML;
            
            if (csOpened.csUpdateFirst)
                csOpened.csAnchors.item(0).innerHTML = a.innerHTML;

            if (csOpened.onChange != "")
            {
                $$this = csOpened.csHidden;
                eval(csOpened.onChange.replace("this", "$$this"));
            }
                        
            if (csOpened.csAutoSubmit)
                csOpened.csHidden.form.submit();
        }
    }
    csClose();
    
}

function csUnhover()
{
    if (!csOpened)
        return;

    for (var i = 0; i < csOpened.csAnchors.length; i++)
    {
        var aa = csOpened.csAnchors.item(i);
        if (aa.parentNode.tagName.toLowerCase() != "li" || aa.parentNode.className == ("csFirst" + csOpened.csStyleSuffix))
            continue;
        
        aa.className = aa.defaultSelected ? "csSelected" + csOpened.csStyleSuffix : "";
        
    }
}

function csHover(name, a)
{
    if (!csOpened)
        return;
        
    if (csOpened.getAttribute("id") == ("csDiv_" + name))
    {
        for (var i = 0; i < csOpened.csAnchors.length; i++)
        {
            var aa = csOpened.csAnchors.item(i);
            if (aa.parentNode.tagName.toLowerCase() != "li" || aa.parentNode.className == ("csFirst" + csOpened.csStyleSuffix))
                continue;
            
            aa.className = "";
        }
        
        a.className = "csSelected" + csOpened.csStyleSuffix;
    }
    csUnhover();
}

