//        written        by Tan Ling Wee
//        last updated 20 June 2003
//        email :        info@sparrowscripts.com
//      url : www.sparrowscripts.com


var orientation=0        // 0-horizontal 1-vertical
var imgPath = "images/"

var mainItemFont = "#ffffff"
var mainItemBorder = "#0026e6"
var mainItemBackground = "#0026E6"

var mainItemHoverFont = "#000000"
var mainItemHoverBorder = "#a0a0a0"
var mainItemHoverBackground = "#d0d0d0"

var subItemFont = "#000000"
var subItemBorder = "#ffffff"
var subItemBackground = "#ffffff"

var subItemHoverFont = "#000000"
var subItemHoverBorder = "#a0a0a0"
var subItemHoverBackground = "#d0d0d0"

var menuFont = "verdana"
var menuSize = "11px"

/////////////////////////////////////////////////////////////////////////////

var        ie=(navigator.appName=='Microsoft Internet Explorer')
var        ns=(navigator.appName=='Netscape')
var        dom=document.getElementById
var lw_menuId, lw_trigger, to1
var s1

/////////////////////////////////////////////////////////////////////////////

function Tmenu (id, parentId, url, description, img) {
        this.id = id
        this.parentId = parentId
        this.url = url
        this.description = description
        this.numChild = 0
        this.levelId = 0
        this.img = img
}

/////////////////////////////////////////////////////////////////////////////

var menu = new Array()
var menuCounter = 0
var numLevel = 0
var prevMenuId = -1
var nNowAt = 0

function displayMenuItem(menuId) {
        var sHTML

        if (menu[menuId].parentId>0)
        {
                ItemFont = subItemFont
                Border = subItemBorder
                Background = subItemBackground

                HoverFont = subItemHoverFont
                HoverBorder = subItemHoverBorder
                HoverBackground = subItemHoverBackground
        }
        else
        {
                ItemFont = mainItemFont
                Border = mainItemBorder
                Background = mainItemBackground

                HoverFont = mainItemHoverFont
                HoverBorder = mainItemHoverBorder
                HoverBackground = mainItemHoverBackground
        }

        if ((orientation==1)||(menu[menuId].levelId>0))
        {
                sHTML += "<tr>"
        }

        sHTML = "<td id='menu_" + menuId + "' align='center' style='cursor:hand;font-weight:bold;font-size:9px;border:3px solid "+ Border +";background-color:"+ Background +";color="+ ItemFont +";' onmouseover='clearInterval(s1);this.style.backgroundColor=\"" + HoverBackground + "\";this.style.color=\"" + HoverFont + "\";this.style.borderColor=\"" + HoverBorder + "\";"

        if (menu[menuId].numChild!=0) {
                sHTML += "showSubmenu("+menu[menuId].id+",this);hideSubmenu(menu["+menuId+"].levelId+1);"
        }
        else
        {
                sHTML += "prevMenuId = "+menuId+";hideSubmenu(menu["+menuId+"].levelId);"
        }

        sHTML += ";nNowAt="+menuId+";clearAll("+menu[menuId].levelId+","+menu[menuId].parentId+")' onclick='document.location.href=\""+menu[menuId].url+"\"' onmouseout='s1=setInterval(\"resetMenu();hideSubmenu(0)\",1000);this.style.color=\"" + ItemFont + "\";'>"
        sHTML += menu[menuId].description.replace(" ","&nbsp;") + "</td>"

        if ((orientation==1)||(menu[menuId].levelId>0))
        {
                sHTML += "</tr>"
        }
        return sHTML
}

function clearAll(levelId, parentId) {

        if (levelId>0)
        {
                Border = subItemBorder
                Background = subItemBackground
        }
        else
        {
                Border = mainItemBorder
                Background = mainItemBackground
        }

        for (i=0;i<menuCounter;i++)
        {
                if (menu[i].levelId==levelId)
                {
                        if ((i!=nNowAt) && (menu[i].parentId==parentId) && (menu[i].description!="-")) {
                                lw_getObj("menu_"+i).backgroundColor=Background;
                                lw_getObj("menu_"+i).borderColor=Border
                        }
                }
        }

}

function mapID (id) {
        for (var i=0;i<menuCounter;i++)
        {
                if (menu[i].id==id)
                {
                        return i
                }
        }
        return -1
}

function showSubmenu(menuId,trigger) {
        lw_menuId = menuId
        lw_trigger = trigger

        if (ns)
        {
                to1 = setTimeout("showActualSubmenu(lw_menuId,lw_trigger)",50)
        }
        else
        {
                showActualSubmenu(lw_menuId,lw_trigger)
        }
}

function showActualSubmenu(menuId,trigger) {
        var nLevel = 0
        var leftpos = 0
        var nIndex=0

        if (menuId>0)
        {
                lw_calcpos(trigger)

                for (var i=0;i<menuCounter;i++)
                {
                        if (menu[i].id==menuId)
                        {
                                nLevel = menu[i].levelId
                                nIndex = i
                        }
                }

                if ((orientation==1)||(menu[nIndex].parentId>0))
                {
                        lw_getObj("menu_level_"+nLevel).top=lw_toppos
                        leftpos = lw_leftpos + lw_width + 5

                        if (nLevel==0) {
                                leftpos -= 3
                        }
                }
                else {
                        lw_getObj("menu_level_"+nLevel).top = lw_toppos + lw_height + 2
                        leftpos = lw_leftpos
                }

                lw_getObj("menu_level_"+nLevel).left=leftpos

                sHTML = "<table cellpadding=0 cellspacing=0 border=0>"
                for (var i=0;i<menuCounter;i++)
                {
                        if (menu[i].parentId==menuId)
                        {
                                sHTML += displayMenuItem (i)
                        }
                }
                sHTML += "</table>"

                document.getElementById("menu_level_"+nLevel+"_content").innerHTML=sHTML
                lw_showLayer('menu_level_'+nLevel)
        }
}

function hideSubmenu(levelId) {
        for (var cnt=levelId; cnt<numLevel; cnt++)
        {
                lw_hideLayerName("menu_level_"+cnt)
        }
}

function DrawMenu ()  {

        for (var i=0; i<numLevel ; i++)
        {
                lw_createLayer("menu_level_"+i,0,0,0,0,"#ffffff","#d0d0d0",100)
        }

        sHTML="<table style='border:0px solid #fff' width='100%' cellpadding='2' cellspacing='0'>"
        for (var i=0; i<menuCounter; i++)
        {
                if (menu[i].parentId==0)
                {
                        sHTML += displayMenuItem (i)
                }
        }
        sHTML += "</table>"

        document.write(sHTML)
}

function getLevel (menuId) {
        var pId=menuId
        var nLevel=0

        while (pId!=0)
        {
                nLevel++
                for (var i=0;i<menuCounter;i++)
                {
                        if (menu[i].id==pId)
                        {
                                pId = menu[i].parentId
                        }
                }
        }

        return nLevel
}

function AddMenuItem (id, parentId, url, description, img)  {

        menu[menuCounter++] = new Tmenu (id, parentId, url, description, img)

        if (parentId>0)
        {
                for (i=0;i<menuCounter;i++)
                {
                        if (menu[i].id==parentId)
                        {
                                menu[i].numChild++
                        }
                }
                menu[menuCounter-1].levelId = getLevel(parentId)

                if ( numLevel < menu[menuCounter-1].levelId)
                {
                        numLevel = menu[menuCounter-1].levelId
                }
        }
        else if (parentId==0)
        {
                menu[menuCounter-1].levelId = 0
        }
        else
        {
                menu[menuCounter-1].levelId = -1
        }
}

function handleonclick() {
        if (ns)
        {
                lw_closeAllLayers()
        }
        else
        {
                lw_closeAllLayers(event)
        }

        resetMenu()
}

function handlekeypress(e) {
        if (ns)
        {
                var keyCode = e.keyCode?e.keyCode:e.which?e.which:e.charCode;
                if ((keyCode==27)||(keyCode==1))
                {
                        handleonclick()
                }
        }
        else
        if ((event.keyCode==0)||(event.keyCode==27))
        {
                handleonclick()
        }
        resetMenu()
}

function resetMenu () {
        for (i=0;i<menuCounter;i++)
        {
                if (menu[i].levelId==0)
                {
                        lw_getObj("menu_"+i).backgroundColor=mainItemBackground
                        lw_getObj("menu_"+i).borderColor=mainItemBorder
                }
        }
}

document.onkeypress = handlekeypress
document.onclick = handleonclick

