//document.attachEvent("onclick",lrsMenu.hidden);
function lrsMenuItem(id,img,name,args){
    this.id = id;
    this.parentId = '';
    this.image = img;
    this.name = name;
    this.args = args;
    this.extend = false;
    this.cid = '';
    this.items = new Array();
    this.parse = function(data){
        if(data == null)
            return;
        for(var i=0;i<data.length;i++){
            var item = new lrsMenuItem(data[i].id,data[i].img,data[i].name,data[i].args);
            this.add(item);
            item.parse(data[i].data);
            
        }
    }
    this.fill = function(b1,b2,id){
        if(this.items.length > 0){
            var b3 = new Array();
            b3.push(this.getStartString());
            for(var i=0;i<this.items.length;i++){
                this.items[i].fill(b3,b2,id);
            }
            b3.push(this.getEndString());
            b2.push(b3.join(''));
        }
        if(this.name == "-"){
            b1.push("<tr class='out' onclick='window.event.cancelBubble=true;' onmouseup='window.event.cancelBubble=true;'><td colspan='2' style='height:1px;font-size:1px;' height='1'><hr class='sperator'></td></tr>");
            return;
        }
        b1.push("<tr id='I_"+this.cid+"' class='out'");
        b1.push(" onmouseover='this.className=\"over\";"+id+".onitemmouseover(this,\""+this.id+"\")'");
        b1.push(" onmouseout='this.className=\"out\";"+id+".onitemmouseout(this,\""+this.id+"\")'");
        b1.push(" onclick='"+id+".onclick(\""+this.id+"\");'");
        b1.push("><td nowrap>");
        b1.push("<font face='Wingdings' style='font-size:18px'>"+this.image+"</font> "+ this.name+" ");
        b1.push("</td><td>");
        if(this.items.length >0){
            b1.push("<font style='font-family: webdings; text-align: ;'>4</font>");
        }
        b1.push("</td></tr>\n");
    }
    this.add = function(item){
        item.parentId = this.id;
        item.cid = this.cid+'_'+item.id;
        item.parentItem = this;
        this.items.push(item);
    }
    this.getStartString = function(){
        var TempStr = "<div id='D_"+this.cid+"' class='rm_div'>\n";
        TempStr += "<table width='100%' border='0' cellspacing='0'>\n";
        return TempStr;
    }
    this.getEndString = function(){
        var TempStr = "</table>\n";
        TempStr += "</div>\n";
        return TempStr;       
    }
    this.hidden = function(){
        if(this.items.length>0 && this.extend){
            this.extend = false;
            e = document.getElementById('D_'+this.cid);
            if(e)
                e.style.display = 'none';
        }
        this.hiddenChild();
    }
    this.find = function(id){
        for(var i=0;i<this.items.length;i++){
            if(this.items[i].id == id)
                return this.items[i];
            var item = this.items[i].find(id);
            if(item)
                return item;
        }
        return null;
    }
    this.hiddenChild = function(){
        for(var i=0;i<this.items.length;i++){
            this.items[i].hidden();
        }
    }

}
function lrsMenu(id){
    this.id = id;
    this.cid = id;
    this.items = new Array();
    this.extend = false;
    this.element = null;
    lrsMenu.array.push(this);
    this.toString = function(){
        var buff = new Array();
        var buff2 = new Array();
        buff.push(this.getStartString());
        for(var i=0;i<this.items.length;i++){
            this.items[i].fill(buff,buff2,this.id);
        }
        buff.push(this.getEndString());
        buff2.push(buff.join(''));
        return buff2.join('');
    }
    
    this.getStartString = function(){
        var HTMLstr = "<div id='D_"+this.cid+"' class='rm_div'>\n";
        HTMLstr += "<table width='100%' border='0' cellspacing='0'>\n";
        HTMLstr += "<tr><!--td width='20' valign='bottom'  bgcolor='#000000' onclick=window.event.cancelBubble=true; class=info>test\n";
        HTMLstr += "</td--><td width='120' style='padding: 1' valign='bottom'>\n";
        HTMLstr += "<table width='100%' border='0' cellspacing='0'>\n";
        return HTMLstr;
    }
    this.getEndString = function(){
        var HTMLstr = "</table></td></tr></table>\n";
        HTMLstr += "</div>\n";
        HTMLstr += "\n";
        return HTMLstr;       
    }
    this.add = function(item){
        item.parentId = this.id;
        item.cid = this.cid+'_'+item.id;
        item.parentItem = this;
        this.items.push(item);
    }
    this.parse = function(data){
        if(data == null)
            return;
        for(var i=0;i<data.length;i++){
            var item = new lrsMenuItem(data[i].id,data[i].img,data[i].name,data[i].args);
            this.add(item);
            item.parse(data[i].data);
        }
    }
    this.hidden = function(){
        this.extend = false;
        var e = document.getElementById('D_'+this.id);
        if(e)
            e.style.display = 'none';
        for(var i=0;i<this.items.length;i++){
            this.items[i].hidden();
        }
    }

    this.show = function(obj){
        if(this.extend){
            this.hidden();
            return;
        }
        lrsMenu.hidden();
        this.extend = true;
        
        if(typeof(obj) != 'number'){
            var ent = obj ;
            this.element = obj;
            var x = y = 0;
            if (obj.offsetParent) {
                    x = obj.offsetLeft;
                    y = obj.offsetTop;
                    while (obj = obj.offsetParent) {
                            x += obj.offsetLeft;
                            y += obj.offsetTop;
                    }
            }
            y += ent.offsetHeight;
        }
        var e = document.getElementById('D_'+this.cid);
        if(e){
            if(x<0)x=0;
            if(y<0)y=0;
            e.style.zIndex = 1000;
            e.style.top = y+"px";
            e.style.left = x+"px";
            e.style.display = 'inline';
        }
    }
    this.hiddenChild = function(){
        for(var i=0;i<this.items.length;i++){
            this.items[i].hidden();
        }
    }
    this.onitemmouseover = function(element,id){
        var item = this.find(id);
        if(item){
            if(item.extend)
                return;
            item.parentItem.hiddenChild();
            if(item.items.length==0)
                return;
            item.extend = true;
            var Item = document.getElementById("I_"+item.cid);
            var Extend = document.getElementById("D_"+item.cid);
            var Parent = document.getElementById("D_"+item.parentItem.cid);
            ///var Item.className="over";
            Extend.style.display="block";
            Extend.style.zIndex = Parent.style.zIndex +5;
            Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth-4;
            if(Extend.style.posLeft+Extend.offsetWidth > document.body.scrollLeft+document.body.clientWidth)
                Extend.style.posLeft=Extend.style.posLeft-Parent.offsetWidth-Extend.offsetWidth+8;
            if(Extend.style.posLeft < 0) Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth;
            Extend.style.posTop=Parent.offsetTop+Item.offsetTop+1;
            if(Extend.style.posTop+Extend.offsetHeight > document.body.scrollTop+document.body.clientHeight)
              Extend.style.posTop=document.body.scrollTop+document.body.clientHeight-Extend.offsetHeight;
            if(Extend.style.posTop < 0) Extend.style.posTop=0;
        }
    }
    this.onitemmouseout = function(element,id){

    }
    this.find =function(id){
        for(var i=0;i<this.items.length;i++){
            if(this.items[i].id == id)
                return this.items[i];
            var item = this.items[i].find(id);
            if(item != null)
                return item;
        }
        return null;
    }
    this.previousid = '';
    this.onclick = function(id){
        var item = this.find(id);
        if(item.args == "")
            return;
        
        this.previousid = id;    
        this.click(item.args);
        this.hidden();
        lrsMenu.workElement = this.element;
        lrsMenu.working();
    }
}
lrsMenu.workElement = null;
lrsMenu.__temp = "";
lrsMenu.working = function(){
    if(lrsMenu.workElement){
        if(lrsMenu.__temp==""){lrsMenu.__temp = lrsMenu.workElement.style.backgroundColor == ""?"transparent":lrsMenu.workElement.style.backgroundColor;}
        lrsMenu.workElement.style.backgroundColor = lrsMenu.workElement.style.backgroundColor=='silver'?lrsMenu.__temp:'silver';
        window.setTimeout("lrsMenu.working()",100);
    }
}
lrsMenu.OnCallback = function(data,context){
    if(lrsMenu.workElement){
        lrsMenu.workElement.style.backgroundColor = lrsMenu.__temp;
        lrsMenu.workElement = null;
    }
    if(context.ClientOnCallbacked && context.ClientOnCallbacked != '')
    {
        eval(context.ClientOnCallbacked)(data,context);
    }
}
lrsMenu.array = new Array();
lrsMenu.hidden = function(){
    for(var i=0;i<lrsMenu.array.length;i++){
        if(lrsMenu.array[i].extend)
            lrsMenu.array[i].hidden();
    }
}
