    
        /////////////////////////////////////////////////////////////
        //
        //  Function: process_button() - Button Event handler
        //  Parameters: none
        //  Returns: void
        //
        //  This function processes mouse and keyboard events on all
        //  button elements (className contains "Btn" within a given
        //  container.  Button specific processing is sent to the buttonClick()
        //      function. Information about the button can be stored in expandos,
        //          STATE ( "On" , "Off" )
        //          IMG ( contains the base name and ID of the icon )
        //
        /////////////////////////////////////////////////////////////
    
    
        function process_button()
        {
            var oEl = event.srcElement;
            event.cancelBubble = true;
            while( -1 == oEl.className.indexOf( "Btn" ) )
            {
                oEl = oEl.parentElement;
                if( !oEl ) return;
            }
            var baseClass = oEl.className.substring( 0 , oEl.className.indexOf( "Btn" ) + 3 );
            var btnImage = null;
            if( oEl.IMG ) btnImage = oEl.all.tags( "IMG" )[0];
    
            switch( event.type )
            {
                case "mouseout" :
                    if( oEl.contains( event.toElement ) ) return;
                    if( btnImage )
                    {
                        btnImage.src =  btnImage.src.substring( 0 , btnImage.src.length - 5 ) + "1.gif";
                    }
                    if( oEl.STATE )
                    {
    
                        oEl.className = baseClass + oEl.STATE;
                    }
                    else
                    {
                        oEl.className = baseClass + "Off";
                    }
                    break;
                case "mouseover" :
                    if( oEl.contains( event.fromElement ) ) return;
                    
                    if( btnImage )
                    {
                        btnImage.src =  btnImage.src.substring( 0 , btnImage.src.length - 5 ) + "2.gif";
                    }
                    if( oEl.STATE )
                    {
                        var tmpState = oEl.STATE == "Off" ? "Up" : "Down";
                        oEl.className = baseClass + tmpState;
                    }
                    else
                    {
                        oEl.className = baseClass + "Up";
                    }
                    break;
    
                case "mousedown" :
                    oEl.className = baseClass + "Down";
                    break;
    
                case "mouseup" :
                    if( oEl.STATE )
                    {
                        oEl.STATE = oEl.STATE == "Off" ? "On" : "Off";
                        var tmpState = oEl.STATE == "On" ? "Down" : "Up";
                        oEl.className = baseClass + tmpState;
                    }
                    else
                    {
                        oEl.className = baseClass + "Up";
                    }
                    break;
    
                case "click" :
                    event.returnValue = doButtonClick( oEl );
                    break;
    
                case "dblclick" :
                    event.returnValue = doButtonClick( oEl );
                    break;
    
                case "keyup" :
                    if( 13 == event.keyCode )
                    {
                        if( oEl.STATE )
                        {
                            oEl.STATE = oEl.STATE == "Off" ? "On" : "Off";
                            var tmpState = oEl.STATE == "On" ? "Down" : "Up";
                            oEl.className = baseClass + tmpState;
                        }
                        else
                        {
                            oEl.className = baseClass + "Up";
                        }
                        event.returnValue = doButtonClick( oEl );
                    }
                    break;
                    
                case "selectstart" :
                    if( oEl )
                    {
                        event.returnValue = false;
                        return false;
                    }
                    break;
    
                default :
                    break;
    
            }
        }
    
  
   
