var close_timeout = new Array();

function doomenu_open(menu_tagname, submenu_tagname, menu_class){
    var menu_tag=document.getElementById(menu_tagname);
    var submenu_tag=document.getElementById(submenu_tagname);
    menu_tag.className=menu_class;
    doomenu_cleartimeout(menu_tagname);
    var posi=tag_position(menu_tag);
    var p_left=posi[0];
    var p_top=posi[1];
    var b_si=browser_size();
    var b_sc=browser_scrolling();
    if(p_left-b_sc[0]+submenu_tag.clientWidth+024>b_si[0])p_left=p_left-submenu_tag.clientWidth;
    if(p_top-b_sc[1]+submenu_tag.clientHeight+menu_tag.clientHeight+024>b_si[1])p_top=p_top-submenu_tag.clientHeight-024;
    submenu_tag.style.left=p_left+'px';
    submenu_tag.style.top=(p_top+menu_tag.clientHeight)+'px';
    submenu_tag.style.display='block';

    return false;
}
function doomenu_close(menu_tagname, submenu_tagname, menu_class){
    var js_code = "document.getElementById('"+menu_tagname+"').className='"+menu_class+"';";
    js_code += "document.getElementById('"+submenu_tagname+"').style.display='none';";
    close_timeout[menu_tagname]=setTimeout(js_code,0500);
//console.log(close_timeout);
}
function doomenu_cleartimeout(menu_tagname) {
    if(typeof close_timeout[menu_tagname]!="undefined") clearTimeout(close_timeout[menu_tagname]);
}

function tag_position(tag){
    var p_left=0, p_top=0;
    do{p_top+=tag.offsetTop||0;p_left+=tag.offsetLeft||0;tag=tag.offsetParent;}while(tag);
    return[p_left,p_top];
}
function browser_size(){
    var b_w=0;
    var b_h=0;
    if(typeof(window.innerWidth)=='number'){
        b_w=window.innerWidth;
        b_h=window.innerHeight;
    }else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
        b_w=document.documentElement.clientWidth;
        b_h=document.documentElement.clientHeight;
    }else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
        b_w=document.body.clientWidth;
        b_h=document.body.clientHeight;
    }
    return[b_w,b_h];
}
function browser_scrolling(){
    var sc_l=0;
    var sc_t=0;
    if(typeof(window.pageYOffset)=='number'){
        sc_t=window.pageYOffset;
        sc_l=window.pageXOffset;
    }else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){
        sc_t=document.body.scrollTop;
        sc_l=document.body.scrollLeft;
    }else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){
        sc_t=document.documentElement.scrollTop;
        sc_l=document.documentElement.scrollLeft;
    }
    return[sc_l,sc_t];
}