﻿/* recurses until parent discovered */
function getParentObject( oObject, sParentTagName )
{
    if ( oObject.tagName == sParentTagName )
    {
        return oObject;
    }
    else
    {
        if ( oObject.parentNode )
        {
            return getParentObject( oObject.parentNode, sParentTagName );
        }
        else 
        {
            return null;
        }
    }
}

function getClientId( sId )
{
    do
    {
        var iPos = sId.indexOf("_");
        if ( iPos >= 0 )
        {
            sId = sId.substr(iPos + 1, sId.length - iPos);
        }
    }
    while ( iPos >= 0 );
    return sId;
}

function focusFieldset( oInput )
{
    var arFieldsets = document.getElementsByTagName("FIELDSET");
    for (var i=0; i<arFieldsets.length; i++)
    {
        var oFieldset = arFieldsets[i];
        oFieldset.className = oFieldset.className.replace(" focus", "");
        oFieldset.className = oFieldset.className.replace(" nofocus", "");
        oFieldset.className += " nofocus";
    }
    var oFocussedFieldset = getParentObject( oInput, "FIELDSET" )
    {
        if ( oFocussedFieldset != null )
        {
            oFocussedFieldset.className = oFocussedFieldset.className.replace(" focus", "");
            oFocussedFieldset.className = oFocussedFieldset.className.replace(" nofocus", "");
            oFocussedFieldset.className += " focus";
        }
    }
    
    // display tips
    var arTips = getElementsByClass("intip");
    var sClientId = getClientId(oInput.id);
    
    for (var j=0; j<arTips.length; j++)
    {
        var oTip = arTips[j];
        if (oTip.id != null && oTip.id != "")
        {
            if ( "tip_" + sClientId == oTip.id )
            {
                oTip.style.display = '';
            } 
            else
            {
                oTip.style.display = 'none';
            }
        }
    }    
}

function setupFieldsetFocus()
{
    if (document.getElementById && document.getElementsByTagName) 
    {
        var arFieldsetList = document.getElementsByTagName("FIELDSET")        
        
        for (var i=0; i<arFieldsetList.length; i++)
        {
            var oFieldset = arFieldsetList[i];
            
            if (oFieldset.className.indexOf("nofx") == -1)
            {
                var sFieldsetId = oFieldset.id;
                if (sFieldsetId != null && sFieldsetId != "") 
                {
                    
                    var arInputTags = new Array("INPUT","SELECT","TEXTAREA");
                    
                    for (var k=0; k<arInputTags.length; k++)
                    {                
                        var arInputList = oFieldset.getElementsByTagName(arInputTags[k]);
                        for (var j=0; j<arInputList.length; j++)
                        {
                            var oInput = arInputList[j];                    
                            oInput.onfocus = function() 
                            { 
                                focusFieldset(this);   
                            };                                       
                        }
                    }
                }
            } // end if nofx
        }        
    }    
};


function joinArrays()
{
    var arResult = new Array();
    for (var i=0; i<arguments.length; i++)
    {
        var arSubArray = arguments[i];
        for (var j=0; j<arSubArray.length; j++)
        {
            arResult.push( arSubArray[j] );
        }
    }
    return arResult;
}


function setFormFocus()
{   
    if (document.getElementsByTagName)
    {
        var arInputs = document.getElementsByTagName("INPUT");
        
        for (var i=0; i<arInputs.length; i++)
        {
            var oInput = arInputs[i];
            
            if (oInput.type != "hidden" && oInput.disabled != true && oInput.maxLength > 0)
            {
                try {
                    oInput.focus();
                }
                catch(errorObject)
                {
                    // oh well
                }
                return;
            }
        }        
    }
}

function pageInit()
{
    if (document.getElementsByTagName) 
    {
        var oForms = document.getElementsByTagName("FORM");
        
        if (oForms.length > 0)
        {        
            if (document.getElementsByTagName("FIELDSET").length > 0)
            {
                setupFieldsetFocus();
            }
            //setFormFocus();           
        }
    }
}

addLoadEvent( pageInit );