// $Id: webapp.js 1397 2008-06-12 00:48:37Z keisuke $

/** 
 * class webapp
 */
var webapp = function() {
    this.textdomain = "";
    this.token = "";
    this.wwwpath = "/";
    this.ajaxpath = "ajax";
    this.sidname = "";
    this.js_framework = "";

    this.username = "";
    this.userid = 0;
    this.role_mode = "";
    this.userroles = null;

    this.listfilter = "";
    this.dialog = null;
}
webapp.prototype = {
    init: function() {
        var renderer = new ShaBoRenderer();
        renderer.Init({ corner:8, shadow:16, edges:"blr" });
        renderer.RenderElement('header');
        renderer.Init({ corner:8, shadow:16 });
        renderer.RenderElement('wrapper');
        renderer.Init({ corner:8, shadow:16, edges:"tlr" });
        renderer.RenderElement('footer');
        renderer.Dispose();
        renderer = null;
        
        var tabs = $("div.tabs");
        if(tabs.length) {
            $("div.tabs").tabs(".time-entry > .xfolkentry", { 
                effect: 'fade', 
                fadeOutSpeed: "slow", 
                rotate: true 
            });
        }

        var tabs = $("ul.tabs");
        if(tabs.length) {
            tabs.tabs("div.panes > div");
            if(tabselect) {
                tabs.tabs().click(1);
            }
        }
    },
    
    checkRole: function(target,type,obj) {
        if(obj == undefined) {
            obj = this;
        }
        for(var i=0;i<obj.userroles.length;i++) {
            var item = obj.userroles[i];
            if(item.target==target && item.type==type) {
                return (obj.role_mode=="blacklist")?false:true;
            }
        }
        return (obj.role_mode=="blacklist")?true:false;
    },

    _: function(str) {
        var ret = str;
        if(this.textdomain && this.appRes != undefined) {
            eval("var res = this.appRes."+this.textdomain+";");
            for(var key in res) {
                if(key==str) {
                    value = res[key];
                    if(value!="") {
                        ret = decodeURIComponent(value);
                    }
                    break;
                }
            }
        }
        return ret;
    }
}
    
/** 
 * decode strings as JavaScript code.
 * see includes/Utiliti.class.php Utility::jsEncode().
 */
function jsdecode(str) {
    eval(decodeURIComponent(unescape(str)));
}
