﻿var JSzx = JSzx || {};
JSzx.Tool = {
    setCookie: function(k, v, opt) {
        var val = encodeURIComponent(v);
        if (!opt) opt = {
            duration: 365
        };
        if (opt && opt.duration) {
            var d = new Date();
            d.setTime(d.getTime() + opt.duration * 24 * 3600 * 1000);
            val += ';expires=' + d.toGMTString()
        }
        document.cookie = k + '=' + val + ';path=/;'
    },
    getCookie: function(k) {
        var c = document.cookie.split("; ");
        for (var i = 0; i < c.length; i++) {
            var p = c[i].split("=");
            if (k == p[0]) try {
                var s = decodeURIComponent(p[1]);
                if (s == "undefined") s = null;
                return s
            } catch(e) {
                return null
            }
        }
        return null
    },
    str2obj: function(str) {
        try {
            if ($.trim(str)) {
                var obj = eval('(' + str + ')');
                return obj
            } else {
                return null
            }
        } catch(e) {
            alert(e);
            return null
        }
    },
    obj2str: function(o) {
        var r = [];
        if (typeof o == "string") return quote(o);
        if (typeof o == "undefined") return "undefined";
        if (typeof o == "object") {
            if (o == null) return "null";
            else if (!o.sort) {
                for (var i in o) r.push(this.obj2str(i) + ":" + this.obj2str(o[i]));
                r = "{" + r.join() + "}"
            } else {
                for (var i = 0; i < o.length; i++) r.push(this.obj2str(o[i]));
                r = "[" + r.join() + "]"
            }
            return r
        }
        return o.toString();
        function quote(string) {
            var escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
            var meta = {
                '\b': '\\b',
                '\t': '\\t',
                '\n': '\\n',
                '\f': '\\f',
                '\r': '\\r',
                '"': '\\"',
                '\\': '\\\\'
            };
            escapable.lastIndex = 0;
            return escapable.test(string) ? '"' + string.replace(escapable, 
            function(a) {
                var c = meta[a];
                return typeof c === 'string' ? c: '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice( - 4)
            }) + '"': '"' + string + '"'
        }
    },
    Copy:function(pStr, msg){
    if (window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData("Text", pStr);
    } else if (navigator.userAgent.indexOf("Firefox") > 0) {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        } 
        catch (e) {
            alert("您的 Firefox 安全限制限制您进行剪贴板操作，请打开 'about:config' 将 'signed.applets.codebase_principal_support' 设置为 'true' 之后重试");
            return false;
        }
        var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
        if (!clip) 
            return;
        var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
        if (!trans) 
            return;
        trans.addDataFlavor('text/unicode');
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
        var copytext = pStr;
        str.data = copytext;
        trans.setTransferData("text/unicode", str, copytext.length * 2);
        var clipid = Components.interfaces.nsIClipboard;
        if (!clip) 
            return false;
        clip.setData(trans, null, clipid.kGlobalClipboard);
    } else {
    	alert('您使用的浏览器不支持此复制功能，请使用 Ctrl + C 或鼠标右键。');
    }
    var showMsg = msg ? msg : "内容已复制到剪切板！可以使用 Ctrl + V 粘贴。";
    alert(showMsg);
}
}
