var ticker=0;
var d=document;
var time=0;
var olddivstyle=0;
var delaying=1;
var ondelay=0;
var is_dir = -1;

function fix_pos(){
    var menu_container = document.getElementById('menu_containerlist');
    var menu_items = menu_container.getElementsByTagName('li');
    for(var i=0;i<menu_items.length;i++){
        var sub_id = menu_items[i].id+'submenu';
        var submenu_id;     
        if(document.getElementById(sub_id)){
             submenu_id = document.getElementById(sub_id);
        }
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
            if(submenu_id){
                submenu_id.style.top = (menu_items[i].offsetTop+menu_items[i].offsetHeight)+"px";
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = (findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)) +"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i])-10)+"px";
                }
            }
        } else { // IE
            if(submenu_id){
                submenu_id.style.top = menu_items[i].offsetTop+menu_items[i].offsetHeight;
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = findPosX(menu_items[i])-12+"px";
                }

                /* followinf should be seen by IE7 only */
                /*@cc_on @*/
                /*@if (@_jscript_version >= 5.7)
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i])-10)+"px";
                }
                /*@end @*/ 
            }
        }
        sub_id =0;
        submenu_id=0;
    }
}

function setup_menu(){
    document.body.onmouseover = function(){
        if(ticker==1){
            timer();
        }
    }
    var search_go = document.getElementById('banner_search_go');
    if(document.getElementById('submit_go')){
        var submit_go = document.getElementById('submit_go');
    }

    var menu_container = document.getElementById('menu_containerlist');
    var menu_items = menu_container.getElementsByTagName('li');
    for(var i=0;i<menu_items.length;i++){
        // find the active section
        if(menu_items[i].className.indexOf('menu_on') != -1){
            is_dir = menu_items[i];         
        }

        var sub_id = menu_items[i].id+'submenu';
        var submenu_id;     
        if(document.getElementById(sub_id)){
             submenu_id = document.getElementById(sub_id);
        }
        if(window.addEventListener){ // Mozilla, Netscape, Firefox
            if(submit_go){
                submit_go.addEventListener('mouseover',submithover, false);
                submit_go.addEventListener('mouseout',stopsubmithover, false);
            }
            if(submenu_id){
                submenu_id.addEventListener('mouseover',TMson, false);
                submenu_id.style.top = (menu_items[i].offsetTop+menu_items[i].offsetHeight)+"px";

                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = (findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)) +"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i])-10)+"px";
                }
                submenu_id.style.zIndex = '50';
                submenu_id.style.position = 'absolute';
            }
            search_go.addEventListener('mouseover',searchhover, false);
            search_go.addEventListener('mouseout',stopsearchhover, false);
            menu_items[i].addEventListener('mouseover', menuhover, false);
            menu_items[i].addEventListener('mouseout', stopmenuhover, false);
            menu_items[i].addEventListener('mouseover', TMon, false);
            menu_items[i].addEventListener('mouseout', TMoff2, false);
        } else { // IE
            if(submit_go){
                submit_go.attachEvent('onmouseover',submithover);
                submit_go.attachEvent('onmouseout',stopsubmithover);
            }
            if(submenu_id){
                submenu_id.attachEvent('onmouseover',TMson);
                submenu_id.style.top = menu_items[i].offsetTop+menu_items[i].offsetHeight;
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = findPosX(menu_items[i])-12+"px";
                }

                /* followinf should be seen by IE7 only */
                /*@cc_on @*/
                /*@if (@_jscript_version >= 5.7)
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(223-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i])-10)+"px";
                }
                /*@end @*/ 

                submenu_id.style.zIndex = '51';
                submenu_id.style.position = 'absolute';
            }
            search_go.attachEvent('onmouseover',searchhover);
            search_go.attachEvent('onmouseout',stopsearchhover);
	    menu_items[i].attachEvent('onmouseover', menuhover);
	    menu_items[i].attachEvent('onmouseout', stopmenuhover);
            menu_items[i].attachEvent('onmouseover', TMon);
            menu_items[i].attachEvent('onmouseout', TMoff2);
        }
        sub_id =0;
        submenu_id=0;
    }
    if(is_dir != -1){
        menuhover2(is_dir);  
    }
}

function searchhover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    targ.src = "/opac-tmpl/lgnz/en/images/banner-go-button-hover.jpg";
}

function stopsearchhover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    targ.src = "/opac-tmpl/lgnz/en/images/banner-go-button.jpg";
}

function submithover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    targ.src = "/opac-tmpl/lgnz/en/images/submit-hover.jpg";

}

function stopsubmithover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    targ.src = "/opac-tmpl/lgnz/en/images/submit.jpg";
}

function menuhover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }

    var is_dir_id = -1;
    if(is_dir != -1){
      // need to leave active link alone
      is_dir_id = is_dir.id.substring(1);
    }

    var item_id = targ.parentNode.parentNode.id.substring(1);
    var prev_item_id = 'i'+(parseInt(item_id)-1);

    if(targ.className == 'menu_item'){
        if(item_id == (parseInt(is_dir_id)-1)){
            targ.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-both-r.gif) no-repeat bottom right";
        } else {
            targ.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-right.gif) no-repeat bottom right";
        }
    }


    if(document.getElementById(prev_item_id)){
        // alert('item_id '+item_id+ '  '+ 'is_dir_id '+is_dir_id);
        if(item_id == (parseInt(is_dir_id)+1)){
           prev_item = document.getElementById(prev_item_id).childNodes[0].childNodes[0];
           prev_item.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-both-r.gif) no-repeat bottom right";
        } else {
           prev_item = document.getElementById(prev_item_id).childNodes[0].childNodes[0];
           prev_item.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-left.gif) no-repeat bottom right";
        }
    }
}

function menuhover2(e){
    var targ = e.getElementsByTagName('div');
    if(targ[0].className == 'menu_item'){
        targ[0].style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-right.gif) no-repeat bottom right";
        targ[0].style.color = "#016867";
    } else if(targ[0].className == 'menu_item_last'){
        targ[0].style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-end-on.gif) no-repeat bottom right";
        targ[0].style.color = "#016867";
    }
    var item_id = e.id.substring(1);
    var prev_item_id = 'i'+(parseInt(item_id)-1);
    if(document.getElementById(prev_item_id)){
        prev_item = document.getElementById(prev_item_id).childNodes[0].childNodes[0];
        prev_item.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-left.gif) no-repeat bottom right";
    }
}

function stopmenuhover(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }

    var is_dir_id = -1;
    if(is_dir != -1){
      // need to leave active link alone
      is_dir_id = is_dir.id.substring(1);
    }

    var item_id = targ.parentNode.parentNode.id.substring(1);
    var prev_item_id = 'i'+(parseInt(item_id)-1);

    if(targ.className == 'menu_item'){
        if(item_id == (parseInt(is_dir_id)-1)){
            targ.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-left.gif) no-repeat bottom right";            
        } else if(item_id == is_dir_id){

        } else {
            targ.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider.gif) no-repeat bottom right";
        }
    }
    if(document.getElementById(prev_item_id)){
        if(item_id == is_dir_id){

        } else if(item_id == (parseInt(is_dir_id)+1)){
            prev_item = document.getElementById(prev_item_id).childNodes[0].childNodes[0];
            prev_item.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider-on-right.gif) no-repeat bottom right";
        } else {
            prev_item = document.getElementById(prev_item_id).childNodes[0].childNodes[0];
            prev_item.style.background = "url(/opac-tmpl/lgnz/en/images/menu-divider.gif) no-repeat bottom right";
        }
    } 
}

function TMon(e){
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    var item_id = targ.parentNode.parentNode.id.substring(1);
    var submenu_id = 'i'+item_id+'submenu';
    if(document.getElementById(submenu_id)){
        ondelay=setTimeout("TMstayon("+item_id+")",100);
        return true;
    }
}

function TMoff2(){
    if (!ticker) TMoff();
}

function TMoff(){
    clearTimeout(ondelay)
    if (olddivstyle){
        olddivstyle.display='none';
    }
}

function TMstayon(num){
    TMoff()
    var submenu_id = 'i'+num+'submenu';
    if (document.getElementById(submenu_id)){
        var thediv = document.getElementById(submenu_id);
        thedivstyle=thediv.style || thediv;
        thedivstyle.display='block';
	olddivstyle=thedivstyle;
    }
    ticker=1;
}

function TMson(e){
    var obj;
    var targ;
    if (!e) var e = window.event;
    if (e.target) { 
        targ = e.target;
    } else if (e.srcElement) {
        targ = e.srcElement;
    }
    if (targ){
        obj = targ;
        while (obj.parentNode){
             if(obj.nodeName == 'DIV'){
                 break;
             }
             obj = obj.parentNode;
        }
   }

    TMoff();
    var submenu_id = obj.id;
    if(document.getElementById(submenu_id)){
        var thediv = document.getElementById(submenu_id);
        thedivstyle=thediv.style || thediv;
        thedivstyle.display='block';
	olddivstyle=thedivstyle;
    }
    ticker=1;
}

function timer(){
    ticker=0;
    clearTimeout(time);
    time=window.setTimeout("TMoff2()",100);
}

function findPosX(obj){
    var curleft = 0;
    if (obj.offsetParent){
        while (obj.offsetParent){
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    } else if (obj.x) curleft += obj.x;
    return curleft;
}

function findPosY(obj){
    var curtop = 0;
    if (obj.offsetParent){
        while (obj.offsetParent){
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    } else if (obj.y) curtop += obj.y;
    return curtop;
}


window.onload = setup_menu;
window.onresize = fix_pos;
d.onclick=TMoff;

