// -----------------------------------------
// Update states
// -----------------------------------------

function umUpdateStates()
    {

    // Get mouse position
//    CurrentMousePosX
//    CurrentMousePosY

    if( parseInt(umVisibleMenus.length) > 0 ) 
        {
    
        // Last element
        var lastel = parseInt(umVisibleMenus.length)-1;

        // Get control
        var mp = document.getElementById("um_panel_" + umVisibleMenus[lastel]['id']);
    
        if(mp == undefined)
            return;

        // Check find results
        if  (  !(
                (umVisibleMenus[lastel]['left'] <= CurrentMousePosX)&&(umVisibleMenus[lastel]['right'] >= CurrentMousePosX)&&
                (umVisibleMenus[lastel]['top']-umVisibleMenus[lastel]['height'] <=CurrentMousePosY)&&(umVisibleMenus[lastel]['bottom'] >= CurrentMousePosY) 
                )  )
            {


            // Hide window
            mp.style.display = "none";

            // Delete last element
            umVisibleMenus.pop();
    
            CHA('0');

            }   
        }

    // New timeout
    umUpdate = setTimeout("umUpdateStates()", 300);

    }



// -----------------------------------------
// Function to show menu block
// -----------------------------------------

function umShowUniMenu(control, id)
    {

    if( parseInt(umVisibleMenus.length) > 0 ) 
        {
        // Get control
        var mp = document.getElementById("um_panel_" + umVisibleMenus[umVisibleMenus.length-1]['id']);

        // Hide window
        mp.style.display = "none";

        // Delete last element
        umVisibleMenus.pop();/**/
        }
    
    // Get control
    var mp = document.getElementById("um_panel_"+id);

   // Check find results
    if( mp != null && mp != undefined)
        {
        if(mp.style.display != "block")
            {

            mp.style.display = "block";
            mp.style.left = parseInt(GetControlX(control)) + (parseInt(control.offsetWidth)) + 3;
            mp.style.top = parseInt(GetControlY(control))-5;

            // Create new record
            var Rec = new Array();

            // Set fields values
            Rec['left'] =  parseInt(GetControlX(control));
            Rec['right'] = Math.max(parseInt(mp.style.left) + parseInt(mp.offsetWidth), (Rec['left'] + parseInt(control.offsetWidth)));

            Rec['top']  = parseInt(GetControlY(control)) + (parseInt(control.offsetHeight));
            Rec['bottom'] = Math.max( parseInt(mp.style.top) + parseInt(mp.offsetHeight), Rec['top']);

            Rec['height'] = control.offsetHeight;
            Rec['width'] = control.offsetWidth;

            Rec['id'] = id;

            // Put data to array
            umVisibleMenus.push(Rec);
            }
        }
    }


// -----------------------------------------
// Light item up
// -----------------------------------------

function umLightItem(control)
    {
    //control.style.background='#ff0000';
    control.className ='um_menu_item_active';
    }


// -----------------------------------------
// Unlight cell
// -----------------------------------------

function umUnlightItem(control)
    {
    // Set background
//    control.style.background='';
    control.className ='um_menu_item';
    }


// Current menus array
var umVisibleMenus = new Array();

// Start timer
var umUpdate = setTimeout("umUpdateStates()", 300);



