
//============================================================//
//
//============================================================//

var MenuBaseUrl = '';
var MenuTimeOut = 0;
var MenuShowTimeOut = 0;
var DynamicMenuSrcElement;


/* Shortcuts */
function DM_Show(event)   { return ShowDynamicMenu(event); }
function DM_Hide(delay)   { return DynamicMenuExit(delay); }
function DM_Clear()       { return DynamicMenuClearTimeout(); }


function ShowDynamicMenu(event)
{
    DynamicMenuSrcElement = event.srcElement ? event.srcElement : event.target;
    
    if(document.getElementById("DynamicMenu").style.display!="")
        MenuShowTimeOut = window.setTimeout("ShowDynamicMenuInternal()", 200);
    else
        ShowDynamicMenuInternal();
}

function ShowDynamicMenuInternal()
{
    var oMenu  = document.getElementById("DynamicMenu");
    var bIsRtl = jQuery(document.body).css("direction")=="rtl";
    
    var yOffset = DynamicMenuSrcElement.offsetHeight+2;

    var oPage = document.getElementById("TopBar");
    
    if(oPage==null) 
        oPage = document.getElementById("page");
        
    var iTop   = GetWindowY(DynamicMenuSrcElement)-oPage.offsetTop;
    var iLeft  = GetWindowX(DynamicMenuSrcElement)-oPage.offsetLeft;
    var iRight = oPage.offsetWidth - iLeft - DynamicMenuSrcElement.offsetWidth;

    var iPageWidth = oPage.offsetWidth;

    oMenu.style.display = "none"; // For bug with firefox RTL display
    oMenu.style.top     = (iTop  + yOffset) + "px";
    oMenu.style.left    =  bIsRtl ? "" : iLeft  + "px";
    oMenu.style.right   = !bIsRtl ? "" : iRight + "px";
    
    // Two pass operation:
    //  I: Update Position / Show 
    // II: Update Position
    for(var i=0; i<2; ++i) 
    {
        var iMenuRight = oMenu.offsetLeft+oMenu.offsetWidth+9;

        if(iMenuRight>iPageWidth)
        {
            iLeft -= (iMenuRight-iPageWidth);
            oMenu.style.display = "none"; // For bug with firefox RTL display
        }
        
        oMenu.style.left    =  bIsRtl ? "" : iLeft  + "px";
        oMenu.style.right   = !bIsRtl ? "" : iRight + "px";
        oMenu.style.display = "";
    }    
    DynamicMenuClearTimeout();
    
    //MenuTimeOut = window.setTimeout("HideDynamicMenu()", 2000);
}

function DynamicMenuClearTimeout    ()
{
    if(MenuTimeOut>0) 
        window.clearTimeout(MenuTimeOut);

    MenuTimeOut = 0;
}

function DynamicMenuExit(delay)
{
    if(MenuShowTimeOut!=0)
        window.clearTimeout(MenuShowTimeOut);

    DynamicMenuClearTimeout();
       
    MenuTimeOut = window.setTimeout("HideDynamicMenu()", delay);
}

function HideDynamicMenu()
{
    DynamicMenuClearTimeout();
    
    document.getElementById("DynamicMenu").style.display = "none";
}

function GetWindowX(el)
{
    return el.offsetLeft + (el.offsetParent!=null ? GetWindowX(el.offsetParent) : 0);
}

function GetWindowY(el)
{
    return el.offsetTop + (el.offsetParent!=null ? GetWindowY(el.offsetParent) : 0);
}

function MenuClear()
{
    var oMenu1 = document.getElementById("DynamicMenu1");
    var oMenu2 = document.getElementById("DynamicMenu2");

    while(oMenu1.childNodes.length)
        oMenu1.removeChild(oMenu1.lastChild);

    while(oMenu2.childNodes.length)
        oMenu2.removeChild(oMenu2.lastChild);
       
    oMenu2.style.display = "none";

    if ( typeof(window['j_site']) !='undefined' ) 
    {
        switch (j_site)
        {
            case 10:
            case 12: 
                MenuBaseUrl='http://www.cbd.int'; 
                break; 
            default: 
                MenuBaseUrl=''; 
                break;
        }
    }
}

function MenuAddSection(column, title)
{
    var oMenu1 = document.getElementById("DynamicMenu1");
    var oMenu2 = document.getElementById("DynamicMenu2");
    
    var Menu = column==1 ? oMenu2 : oMenu1;
    var Row  = Menu.insertRow(-1);
    var Cell = Row.insertCell(-1);
    
    Cell.className = "menuDynSection"; //"cms_menu_top";
    Cell.innerHTML = title;
    //Cell.style.fontVariant = "small-caps"; //removed by Olivier 2006-08-20
    
    if(oMenu2.childNodes.length)
        oMenu2.style.display = "";
}

function MenuAddItem(column, title, url)
{
    var oMenu1 = document.getElementById("DynamicMenu1");
    var oMenu2 = document.getElementById("DynamicMenu2");

    var Menu = column==1 ? oMenu2 : oMenu1;
    var Row  = Menu.insertRow(-1);
    var Cell = Row.insertCell(-1);
    
    /* removed class=\"cms_menu_top_item\"  */
    var Href = url;
    if (MenuBaseUrl != '') 
    {
        if ( '/' == url.substring(0,1) ) 
            Href = MenuBaseUrl + url;
    }
    var HTML = "<a href=\""+Href+"\">"+title+"</a>";
    
    // Cell.className = "cms_menu_top_item";
    Cell.innerHTML = HTML;
    
    if(oMenu2.childNodes.length)
        oMenu2.style.display = "";
}

function MenuAddLine(column)
{
    var oMenu1 = document.getElementById("DynamicMenu1");
    var oMenu2 = document.getElementById("DynamicMenu2");

    var Menu = column==1 ? oMenu2 : oMenu1;
    var Row  = Menu.insertRow(-1);
    var Cell = Row.insertCell(-1);
    
    var HTML = "<hr />";
    
    // Cell.className = "cms_menu_top_item";
    Cell.innerHTML = HTML;
    
    if(oMenu2.childNodes.length)
        oMenu2.style.display = "";
}

if (jQuery) {
    $(document).ready(function () {
        var $prefix = "http://cbd.cbd.netdna-cdn.com";
        $("img[src^='\\/']").each(function () { $(this).attr("src", $prefix + $(this).attr("src")); });
    });
} 

