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

Gloab = this;

/*
Configuration of the JDDialog
dSkin_Dir = {root skin directory}
dSkin_name = {Name of the skin}
*/
var dSkin_Dir = './templates/yalabina/images/Skins';
var thimgp;

/*Creating the core Object Which will be used by all mjsobjects*/
var JDCore = new MJDCore();
JDCore.LoadTheme('WinXP');
JDCore.LoadTheme('Alphacube');
JDCore.LoadTheme('Gnome');
JDCore.SetTheme('WinXP');

/*Theme Class need for the theme file*/
function coreTheam(){
    this.MenuBar = new Object();
    
    this.MenuItem = new Object();
    this.iMenuItem = new Object();
    
    this.sMenu = new Object();
    
    this.sMenuItem = new Object();
    this.isMenuItem = new Object();
    
    this.Dialog = new Object();
    this.Dialog.Title = new Object();
    this.Dialog.Borders = new Object();
    this.Dialog.Buttons = new Object();
    
    this.setPath = function(){/*'backgroundImage','Buttons.Order'*/
        var Stmenu = new Array('MenuBar','MenuItem','iMenuItem','sMenu','sMenuItem','isMenuItem');
        for(var i = 0;i < Stmenu.length; i++){
            eval("if(this."+Stmenu[i]+".backgroundImage != '' && this."+Stmenu[i]+".backgroundImage != undefined){this."+Stmenu[i]+".backgroundImage = thimgp+this."+Stmenu[i]+".backgroundImage}");
        }
        var Dtitem = new Array('Borders.Top','Borders.Right','Borders.Bottom','Borders.Left');
        for(var i = 0;i < this.Dialog.Buttons.Order.length; i++){Dtitem[Dtitem.length] = 'Buttons.'+this.Dialog.Buttons.Order[i]};
        for(var i = 0;i < Dtitem.length; i++){
            eval("if(typeof(this.Dialog."+Dtitem[i]+") != 'object'){this.Dialog."+Dtitem[i]+" = thimgp+this.Dialog."+Dtitem[i]+"} else if(typeof(this.Dialog."+Dtitem[i]+") == 'object'){for(var j = 0;j < this.Dialog."+Dtitem[i]+".length; j++){this.Dialog."+Dtitem[i]+"[j] = thimgp+this.Dialog."+Dtitem[i]+"[j]};}");
        }
    };
};

function MJDCore(){
    document.MJDCore = this;
    this.Dialogs = [];
    this.Menus = [];
    this.GlobalTheme = null;
    
    this.MCore = {
    Show : null,
    Hide : false,

        ResetM : function(){
        if(arguments[0] != undefined){
            arguments[0].ref.style.top = arguments[0].ref.style.left = '0px';arguments[0].ref.style.visibility = 'hidden';//alert(arguments[0].JDsub);
                if(arguments[0].menu != undefined){
                for(var i = 0;i < arguments[0].menu.length; i++){
                    if(arguments[0].menu[i].sub != null && arguments[0].menu[i].sub != undefined)this.ResetS(arguments[0].menu[i].sub);
                    }
                }
            }
        },
        
        ResetS : function(){
        if(arguments[0] != null && arguments[0] != undefined){//alert(arguments[0].length);
            for(i=0;i<arguments[0].length;i++){
                if(arguments[0][i].sub != null){ this.ResetS(arguments[0][i].sub);}
                }
            if(arguments[0].ref != undefined){this.ResetM(arguments[0])}
            }
        },
        
        ShowMenu : function(mid,node){
        var Menus = (typeof(mid) == 'string') ? document.MJDCore.Menus[mid] : mid; var mtop = node.offsetHeight,mleft = 0;
          this.HideMenu(); this.Show = Menus;
            while(node.offsetParent){
                    mtop += node.offsetTop; mleft += node.offsetLeft; node = node.offsetParent;
                }
            Menus.ref.style.visibility = "visible"; Menus.ref.style.top = mtop+"px"; Menus.ref.style.left = mleft+"px";
            setTimeout('JDCore.MCore.Hide = true',200);
        },
        
        ShowSub : function(node){
        this.Hidesub(node);
        if(node.JDsub != undefined){
        var Menus = node.JDsub; var mtop = 0,mleft = node.offsetWidth;
        if(node.style.visibility != "visible")
            while(node.offsetParent){
                    mtop += node.offsetTop; mleft += node.offsetLeft; node = node.offsetParent;
                }
            Menus.ref.style.visibility = "visible"; Menus.ref.style.top = mtop-2+"px"; Menus.ref.style.left = mleft+"px";
            }
        },
        
        Hidesub : function(node){
        for(var i = 0; i < node.offsetParent.childNodes.length; i++){
            if(node.offsetParent.childNodes[i].JDsub != undefined) this.ResetS(node.offsetParent.childNodes[i].JDsub);
            }
        },
        
        HideMenu : function(){
            if(this.Show != null && JDCore.MCore.Hide != false){this.ResetM(this.Show); JDCore.MCore.Hide = false;}
        }
    };
    
    this.Browser = function(){
        var bd = navigator.userAgent.toLowerCase();
        var brows = new Array('firefox/','msie','opera');
        for(var i = 0; i < brows.length; i++)
            if(bd.indexOf(brows[i]) != -1 && bd.indexOf(brows[i+1]) == -1 ){
                return brows[i];
        }
    };

    this.LoadTheme = function(dSkin_name){
        var XMLHttp = (typeof(XMLHttpRequest) == "function")? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP.3.0");
        XMLHttp.open('GET', dSkin_Dir+'/'+dSkin_name+'/theme.js', false); XMLHttp.send(null);
        Gloab.eval(XMLHttp.responseText);
    }

    this.SetTheme = function(dSkin_name){
    	thimgp = dSkin_Dir+'/'+dSkin_name+'/images/'; this.GlobalTheme = dSkin_name;
    }
    
    this.setStyle = function(element,svar){
    var styobj = element.style; eval(this.GlobalTheme+".prototype = new coreTheam();\n var theme = new "+this.GlobalTheme+"();");
        var styles = new Array('height','width','color','backgroundColor','backgroundImage','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]+" = '';}");
        }
    };
};