﻿Function.prototype.bind = function(obj){
    var method = this;
    temp = function(){
        return method.apply(obj,arguments);
    };
    
    return temp;
};


Menu = {
    version : "1.1",
    author : "jisuye",
    email : "msnye@163.com",
    qq: "30826091",
    
    item : null,
    mainItem : null,
    
    menuId : "",
    overCssName : "",
    
    getItem: function(id){
        return document.getElementById(Menu.menuId + "_div_" + id);
    },
     
    showMenu: function(id, mainItem){
        this._id = id;
        this.show = function(){
            if(Menu.item != null && Menu.mainItem != null)
            {
                Menu.item.style.display = "none";
                if(Menu.overCssName != "")
                    Menu.mainItem.className = Menu.mainItem.className.replace(Menu.overCssName,"");
            }
                
            var item = Menu.getItem(id);
            if(item == null) return;
                
            item.style.display = "";
            
            if(Menu.overCssName != "")
            mainItem.className = mainItem.className + " " + Menu.overCssName;
            
          
                       
            Menu.item = item;
            Menu.mainItem = mainItem;
        }
    },
        
    timeout:0,
    
    setTime: function(fun,timeout){
        this._fun = fun;
        this.show = function(){
            Menu.timeout =  window.setTimeout(fun,timeout);
        };
    },
    
    register:function(menuid, overcss,selectedId){       
        Menu.menuId = menuid;
        Menu.overCssName = overcss;
        
        var items = document.getElementById(menuid + "_main").getElementsByTagName("li");
                      
        for(var i = 0; i < items.length; i++){
        
            var item = items[i];
            
            var id = item.id.replace(menuid + "_li_","");
            
            var fun = new Menu.showMenu(id,item);
            var tfun = new Menu.setTime(fun.show.bind(fun),300);
            
            item.onmouseover = tfun.show.bind(tfun);
            item.onmouseout = function(){window.clearInterval(Menu.timeout);};
            var links = item.getElementsByTagName("a")
            links[0].onfocus = function(){ window.focus(); }
            
            
            if(selectedId == id)
            {
                Menu.item = Menu.getItem(id);
                Menu.mainItem = item;
            }
        }
    }
};

