/*
    Available menu settings
*/
function SilasMenuSettings() {
    this.rowWidth=100
    this.rowHeight=50
    this.fontFamily=""
    this.fontSize=12
    this.color='black'
    this.hoverColor='black'
    this.bgColor='brown'
    this.hoverBgColor='blue'
    this.menuBorder=1
    this.menuLiteBgColor='red'
    this.menuBorderBgColor='yellow'
    this.hideOnMouseOut=true;
    this.hAlign='left'
    this.vAlign='middle'
    this.padding=3
    this.spacing=0
    this.hideTimeout=1000
    this.x=0
    this.y=30
    this.subMenuX=-5
    this.subMenuY=7
    this.childMenuIcon = "arrows.gif";
    this.menuItemIndent = 0
}

/*
    Custom menu object wrapper
*/
function SilasMenu(id, setting) {

    // variables
    this.id = id
    
    // methods
    this.addMenuItem = silas_addMenuItem
    this.addItem = silas_addMenuItem
    
    this.writeMenus = silas_writeMenus
    this.getMenu = silas_getMenu
        
    if (!window.silasMenu) window.silasMenu = Array();
    this.menu = new Menu(id,setting.rowWidth,setting.rowHeight,setting.fontFamily,setting.fontSize,setting.color,setting.hoverColor,setting.bgColor,setting.hoverBgColor,setting.hAlign,setting.vAlign,setting.padding,setting.spacing,setting.hideTimeout,setting.subMenuX,setting.subMenuY,true,false,true,setting.menuItemIndent,true,true);
    this.menu.hideOnMouseOut=setting.hideOnMouseOut;
    this.menu.bgColor=setting.bgColor;
    this.menu.menuBorder=setting.menuBorder;
    this.menu.menuLiteBgColor=setting.menuLiteBgColor;
    this.menu.menuBorderBgColor=setting.menuBorderBgColor;
    this.menu.x=setting.x
    this.menu.y=setting.y
    this.menu.childMenuIcon=setting.childMenuIcon

    window.silasMenu[id] = this.menu
    
    // bind menu to div on document, identified by id
    var div = FIND(id)
    if (div) div.onmouseover=function() { silasShowMenu(id) }
    if (div) div.onmouseout=silasHideMenu
}
function silas_addMenuItem (title, url, target) {
    if (title.getMenu) title=title.getMenu()
    
    if (url && target) window.silasMenu[this.id].addMenuItem(title,"window.open('"+url+"', '"+target+"')");
    else if (url) window.silasMenu[this.id].addMenuItem(title,"location='"+url+"'");
    else window.silasMenu[this.id].addMenuItem(title)
}
function silas_writeMenus() {
    window.silasMenu[this.id].writeMenus();
}
function silas_getMenu() {
    return this.menu
}


/* Global Methods */

function silasHideMenu() {
    MM_startTimeout();
}

function silasShowMenu(id) {
    var menu = window.silasMenu[id]
    if (menu) MM_showMenu(menu,menu.x,menu.y,null,id)
}