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('topnav-links');
    var menu_items = menu_container.getElementsByTagName('div');
    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 = (findPosY(menu_items[i])+menu_items[i].offsetHeight)+"px";
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = (findPosX(menu_items[i])-(205-menu_items[i].offsetWidth)) +"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i]))+"px";
                }
            }
        } else { // IE
            if(submenu_id){
                submenu_id.style.top = findPosY(menu_items[i])+menu_items[i].offsetHeight;
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(205-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = findPosX(menu_items[i])+"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])-(205-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i]))+"px";
                }
                /*@end @*/ 
            }
        }
        sub_id =0;
        submenu_id=0;
    }
}

function setup_menu(){

    document.body.onmouseover = function(){
        if(ticker==1){
            timer();
        }
    }

    var menu_container = document.getElementById('topnav-links');
    var menu_items = menu_container.getElementsByTagName('div');
    for(var i=0;i<menu_items.length;i++){
        // find the active section
        if(menu_items[i].className.indexOf('topnav-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(submenu_id){

                submenu_id.addEventListener('mouseover',TMson, false);
                submenu_id.style.top = (findPosY(menu_items[i])+menu_items[i].offsetHeight)+"px";
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = (findPosX(menu_items[i])-(205-menu_items[i].offsetWidth)) +"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i]))+"px";
                }
                submenu_id.style.zIndex = '50';
                submenu_id.style.position = 'absolute';
            }
            menu_items[i].addEventListener('mouseover', TMon, false);
            menu_items[i].addEventListener('mouseout', TMoff2, false);
        } else { // IE
            if(submenu_id){
                submenu_id.attachEvent('onmouseover',TMson);
                submenu_id.style.top = (findPosY(menu_items[i])+menu_items[i].offsetHeight)+"px";
                if(submenu_id.className.indexOf('left') != -1){
                    submenu_id.style.left = findPosX(menu_items[i])-(205-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = findPosX(menu_items[i])+"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])-(205-menu_items[i].offsetWidth)+"px";
                } else {
                    submenu_id.style.left = (findPosX(menu_items[i]))+"px";
                }
                /*@end @*/ 

                submenu_id.style.zIndex = '51';
                submenu_id.style.position = 'absolute';
            }
            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 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.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;

