// JavaScript Document
/**
@package : My JavaScript Objects{mjsobjects}
@name : Javascript Dynamic Menu(JDDialog){HTML}
@version : 1.0 alpha
@author : G.kamalakar
@copyright : All rights reserved by G.kamalakar
@created-date : 05-3-2006
*/

nsmid = '';
var ind = 0;

if(!document.MJDCore){eval("document.write('<script type=\"text/javascript\" src=\"Core.js\"></script>');");}

hide = false;
function JDMenu(){
    this.cwidth = '0px';
    this.tid = '';
    this.zi = 600;

    this.BuildMe = function(mid,elear){
        var Menus = document.MJDCore.Menus;
        Menus[mid] = {id : mid, menu : []};
        for(var i = 0;i < elear.length;i++){
            Menus[mid].menu[i] = {value : elear[i].menu , Ref : elear[i].href, sub : this.ProceeSub(elear[i].sub)};
        }
        this.DrawMenu(Menus[mid]);
    };

    this.ProceeSub = function(root){
    var sub = [];
    if(root != undefined){
        for(var i = 0;i < root.length;i++){
            sub[i] = {value : root[i].menu, Ref : root[i].href, sub : null};
            if(root[i].sub != undefined){
                sub[i].sub = this.ProceeSub(root[i].sub);
            }
        }
        this.DrawMenu(sub);
    } else {sub = null}
        return sub;
    };

    this.setstyle = function(element,svar){
    var styobj = element.style; eval(JDCore.GlobalTheme+".prototype = new coreTheam();\n var theme = new "+JDCore.GlobalTheme+"(); theme.setPath();");
        var styles = new Array('color','backgroundColor','backgroundImage','border','borderTop','borderRight','borderBottom','borderLeft','padding','fontSize','fontFamily');
        for(var i=0;i<styles.length;i++){
            eval("if(theme."+svar+"."+styles[i]+" != '' && theme."+svar+"."+styles[i]+" != undefined)\n{styobj."+styles[i]+" = theme."+svar+"."+styles[i]+";} else if(theme."+svar+"."+styles[i]+" == '') {styobj."+styles[i]+" = '';}");
        }
    };

    this.addto = function(obje,mid){
    obje = (typeof(obje) == 'string') ? document.getElementById(obje) : obje;
        if(JDCore.Browser() == 'msie'){
            obje.setAttribute("onmousedown",new Function("document.MJDCore.MCore.ShowMenu('"+mid+"',this);JDCore.MCore.Hide = false;"));
            document.onclick = function(){JDCore.MCore.HideMenu();JDCore.MCore.Hide = false;};
           }else{
            obje.addEventListener("mousedown",new Function("handle","document.MJDCore.MCore.ShowMenu('"+mid+"',handle.target);JDCore.MCore.Hide = false;"),false);
            document.addEventListener("click",new Function("handle","JDCore.MCore.HideMenu();JDCore.MCore.Hide = false;"),false);
        }
    };

    this.DrawMenu = function(mid){
    rMenu = document.createElement('div'); this.setstyle(rMenu,'sMenu'); rMenu.style.position = "absolute"; 
    rMenu.style.visibility = "hidden";
        var Menus = (mid.menu)? mid.menu : mid;
            for(var i = 0;i < Menus.length;i++){
                var item = document.createElement('a'); item.style.display = "block"; item.style.cursor = "default";
                item.innerHTML = Menus[i].value; item.style.textDecoration = "none";
            this.setstyle(item,'sMenuItem');
            if(Menus[i].sub != null && Menus[i].sub != undefined){ item.JDsub = Menus[i].sub; } else { item.href = Menus[i].Ref; }
            if(JDCore.Browser() == 'msie'){
                item.setAttribute("onmouseover",new Function("JDCore.setStyle(this,'isMenuItem');JDCore.MCore.ShowSub(this);"));
                item.setAttribute("onmouseout",new Function("JDCore.setStyle(event.srcElement,'sMenuItem')"));
            }else{
                item.addEventListener("mouseover",new Function("handle","JDCore.setStyle(this,'isMenuItem');JDCore.MCore.ShowSub(this);"),false);
                item.addEventListener("mouseout",new Function("handle","JDCore.setStyle(handle.target,'sMenuItem');"),false);
            }
            rMenu.appendChild(item);
        }
        rMenu.style.zIndex = (--this.zi);
        mid.ref = rMenu; document.body.appendChild(rMenu);
    }
};