/* jqExt Start */

//Jquery扩展
jQuery.extend({
    //Ajax提交Xml
    /*
    config.url ;        请求连接[not null]
    config.dataType ;   ajax输出类型,默认为json
    config.data :       xml数据
    config.success:     请求成功後[not null]
    config.error:       请求失败
    config.async:       是否异步,默认为true
    */
    
    postXml: function(config, jq){
        if(config == null){
            return;
        }
        var errorAction = config["error"] || Tool.handleError;
        
        (jq||jQuery).ajax({
            type:"POST",
            contentType:"text/xml",
            async   : (config["async"]===null?true:config["async"]),
            dataType: config["dataType"]||"json",
            url : config["url"],
            data: config["data"],
            success: function(result){
                if(result != null && result.resultCode == 999){
                   Tool.invalidAction();
                   return;
                }
                config["success"].apply(result, arguments)
            },
            error: errorAction
        });    
    },
    //根据Id获取元素    
    getById: function(id    //id
        , returnDom         //true返回dom;false返回jQuery对象
        , doc){             //指定document
        if(id == null || jQuery.trim(id) == ""){
            return null;
        }
        doc = doc||document;
        if(returnDom){
            return doc.getElementById(id);
        }
        return jQuery("#" + id, doc);
    },
    isArray: function(obj){
        return obj != null && obj.constructor == Array;
    },
    disableElement: function(ele){
        var element = $(ele);
        if($.browser.msie){
            element.attr("disabled", "disabled");
        }
        else {
            if(element.data("storeEvents") == null){
                var disabledClick = function(e) {
                    e.preventDefault();
                    return false;
                };
                var ev = element.data("events");                
                element.data("storeEvents", ev||{});
                var newEv = {
                    click: {
                        "1": disabledClick
                    }
                };
                element.data("events", newEv);
                if(element.attr("tagName") == "A") {
                    element.parent().addClass("pager-disabled");
                }
            }
        }
        return element;
    },
    enableElement: function(ele){
        var element = $(ele);
        if($.browser.msie){
            $(ele).removeAttr("disabled");
        }
        else {
            if(element.data("storeEvents") != null){
                element.data("events", element.data("storeEvents"));
                element.removeData("storeEvents");
                if(element.attr("tagName") == "A") {
                    element.parent().removeClass("pager-disabled");
                }
            }
        }
        return element;
    }
});

/* jqExt End */

/* XmlUtility Start */

//Xml数据组合工具类

/* Xml 组合方法 */

function XmlUtility(){
    this.__strs = [];
}

/* 实例方法 */

//组合xml字符串(比“+”高效)
XmlUtility.prototype.append = function(str){
    this.__strs.push(str);
    return this;
};
XmlUtility.prototype.join = function(separator){
    if(!separator){
        separator = "";
    }
    return this.__strs.join(separator);
};

/* 静态方法 */

//从Json数据转换Xml
XmlUtility.parseFromJson = function(json, excludeHeader, tagName){
    var xml = new XmlUtility();
    if(!excludeHeader){
        xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
    }
    if(tagName){
        xml.append("<" + tagName + " type=\"object\">");
    }
    else {
        xml.append("<object>");
    }
    jQuery.each(json, function(name, val){    
        if(val !== null) {
            if(jQuery.isArray(val)){
                xml.append("<" + name + " type=\"list\">");
                jQuery.each(val, function(){                    
                    xml.append(XmlUtility.parseFromJson(this, true));
                });
                xml.append("</" + name + ">");
            }
            else if(val.constructor == String){
            //else if((typeof val == 'string') && val.constructor == String){
                xml.append("<" + name + " type=\"string\">" + XmlUtility.escape(val) + "</" + name + ">");
            }
            else if((typeof val == 'number') && val.constructor == Number){
                xml.append("<" + name + " type=\"number\">" + val + "</" + name + ">");
            }
            else if((typeof val == 'object') && val.constructor == Date){
                xml.append("<" + name + " type=\"date\">" + val + "</" + name + ">");
            }
            else if((typeof val == 'boolean') && val.constructor == Boolean){
                xml.append("<" + name + " type=\"bool\">" + val + "</" + name + ">");
            }
            else if((typeof val == 'object') && val.constructor == Object){
                xml.append(XmlUtility.parseFromJson(val, true, name));
            }
            else {
                //其余一切用字符串
                xml.append("<" + name + " type=\"string\">" + val.toString() + "</" + name + ">");
            }
        }
    });
    if(tagName){
        xml.append("</" + tagName + ">");
    }
    else {
        xml.append("</object>");
    }
    return xml.join();
};

XmlUtility.escape = function(val){
    if(val){
        val = val.toString();        
        val = Tool.replace(val, "<", "&lt;");
        val = Tool.replace(val, ">", "&gt;");
        val = Tool.replace(val, "\"", "&quot;");
        val = Tool.replace(val, "'", "&apos;");
        val = Tool.replace(val, "&", "&amp;");        
    }
    return val;
};

/* XmlUtility End */

/* Validator Start */

/*
使用示例
    var vf = new ValidatorField({
        //自定义显示错误信息
        showErrorMsg: function(errors){
            $("#divError").html(errors.join("<br />"));
        },
        //遇到一个错误就停止验证
        onceErrorBreak :  true
    });
    //注册各个字段验证方法
    vf.register($("#txtId"), ValidatorField.required("Id号"))
      .register($("#txtMoney"), ValidatorField.unsignedInterger("金额"))
      .register($("#txtRemark"), ValidatorField.limitCount("备注", {
          count:50
      }));
    //注册到按钮Id为btn触发验证
    vf.setSubmit($("#btn"));
    //验证
    var isValid = vf.Valid(false);
*/

function ValidatorField(config){
    config = $.extend({
        //遇到一个错误就停止验证
        onceErrorBreak :  true,
        //默认显示错误信息的方式
        showErrorMsg : function(errors){
            if(errors != null && errors.length > 0){
                var msg = errors.join("\r\n");
                Tool.FF.alert(msg);
                return true;
            }
            return false;
        }
    }, config);
    
    var t = this;
    
    t.Error = null;
    
    //-----私有
    //规则集合
    t.__rules = [];
    /// <summary>
    /// 默认对jquery对象获取值的方法
    /// </summary>
    /// <param name="jqueryObj">jQuery对象</param>
    /// <returns>返回值</returns>
    t.__defaultGetValue = function(jqueryObj){
        return $.trim($(jqueryObj).val());
    }
    
    //-----公有
    
    /// <summary>
    /// 默认对jquery对象获取值的方法
    /// </summary>
    /// <param name="jqueryObj">jQuery对象,不可以为空</param>
    /// <param name="checkFun">检查值的方法函数,不可以为空。签名为function(str)</param>
    /// <param name="getValue">获取jQuery对象的方法,可以为空。签名为function(jQueryObj)</param>
    /// <returns>返回值</returns>
    t.register = function(jqueryObj, checkFun, getValue){
        if(getValue == null){
            getValue = t.__defaultGetValue;
        }
        t.__rules.push({
            ctl: $(jqueryObj),
            check: checkFun,
            getValue: getValue
        });
        return this;
    };
    
    t.registerVal = function(val, checkFun){
        t.__rules.push({
            check: checkFun,
            val : val
        });
        return this;
    }
    
    /// <summary>
    /// 获取所有已设定的规则,列表
    /// </summary>
    t.getRules = function(){
        return t.__rules;
    };
    
    /// <summary>
    /// 设定错误信息显示方式,默认为alert
    /// </summary>
    /// <param name="errors">错误消息集合</param>
    t.showErrorMsg = config.showErrorMsg;
    
    //验证
    //autoShowMsg 是否自动显示错误信息
    t.Valid = function(autoShowMsg){
        var allRules = t.__rules;
        
        var msgs = [];
        //循环验证
        $.each(allRules, function(e) {        
            var value = null;
            if(this.ctl){
                var tempObj = $(this.ctl);
                value = this.getValue(tempObj);
            }
            else {
                value = this.val;
            }            
            
            var errorMsg = this.check(value);
            if(errorMsg != null && errorMsg != "") {
                msgs.push(errorMsg);
                if(config.onceErrorBreak){
                    return false;
                }
            }
        });
        
        t.Error = msgs;
        
        if(autoShowMsg){
            t.showErrorMsg(msgs)
        }
        
        return msgs.length == 0;
    }
    
    /// <summary>
    /// 设置哪一个按钮提交时,需要检验
    /// </summary>
    t.setSubmit = function(){
        var allRules = t.__rules;
        
        $.each(arguments, function(){
            $(this).click(function(e){
                if(!t.Valid(true)){
                    e.preventDefault();
                }
            });
        });        
    };
}

//不能为空
ValidatorField.required = function(name){
    return function(val){
         if($.trim(val) == "") return name + "不能为空";
    };
}

/// <summary>
/// 必须为整数
/// </summary>
/// <param name="name">字段说明</param>
/// <param name="options">设置,默认为以下所示
/// {
///     digit: 12,              //默认为千亿位
///     isAllowNull: false,     //默认不允许为空
///     isAllowZero: false      //默认不允许为零
/// }
/// </param>
ValidatorField.unsignedInterger = function(name, options){    
    var settings = $.extend({
        digit: 12,              //默认为千亿位
        isAllowNull: false,     //默认不允许为空
        isAllowZero: false      //默认不允许为零
    }, options);    
    
    return function(val){
        val = $.trim(val);
        if(val == ""){
            if(!settings.isAllowNull){
                return name + "不能为空";
            }
            else {
                return;
            }
        }
        
        if(val.length > settings.digit){
            return name + "不能大于" + settings.digit + "位";
        }
        
        if(parseFloat(val) == 0){
            if(!settings.isAllowZero){
                return name + "不能为0";
            }
            else {
                return ;
            }
        }
        
        var newPar=/^\d*[123456789]\d*$/
        
        if(!newPar.test(val)) {
            return name + "必须为正整数";
        }
    };
}

ValidatorField.unsignedIntergerIsNull = function(name, options){    
    var settings = $.extend({
        digit: 12,              //默认为千亿位
        isAllowNull: true,     //默认允许为空
        isAllowZero: true      //默认允许为零
    }, options);    
    
    return function(val){
        val = $.trim(val);
        if(val == ""){
            if(!settings.isAllowNull){
                return name + "不能为空";
            }
            else {
                return;
            }
        }
        
        if(val.length > settings.digit){
            return name + "不能大于" + settings.digit + "位";
        }
        
        if(parseFloat(val) == 0){
            if(!settings.isAllowZero){
                return name + "不能为0";
            }
            else {
                return ;
            }
        }
        
        var newPar=/^\d*[123456789]\d*$/
        
        if(!newPar.test(val)) {
            return name + "必须为正整数";
        }
    };
}

ValidatorField.customNumber = function(name, options){
    var settings = $.extend({
        digit: 12,                  //整数位,默认为12
        float: 8,                   //小数位,默认为8
        isAllowNull: false,         //默认不允许为空
        minRange:-1 * Number.MIN_VALUE,
        maxRange:Number.MAX_VALUE ,
        code: ""                    //“+”、“-”、或空字符串,即任意。默认为空字符串        
    }, options);    
    
    return function(val){
        val = $.trim(val);
        if(val == ""){
            if(!settings.isAllowNull){
                return name + "不能为空";
            }
            else {
                return;
            }
        }
        
        var errorMsg = name + "必须为数字,整数位不能超过" + settings.digit + ",小数位不能超过" + settings.float;
        if(settings.code != ""){
            errorMsg += ",且前缀必须加" + settings.code;
        }
        
        var f = parseFloat(val);
        
        //先检查小数位是否超
        if(!fucIsCustomNum(settings.code, settings.float, val) || isNaN(f)){
            return errorMsg;
        }
        //查看整数是否超位
        var interger = Math.abs(Math.floor(f));
        if(interger.toString().length > settings.digit){
            return errorMsg;
        }
        
        if(f > settings.maxRange || f < settings.minRange){
            return name + "超过范围(" + settings.minRange.toString() + "," + settings.maxRange.toString() + ")";
        }
    };
}

/// <summary>
/// 限制字数
/// </summary>
/// <param name="name">字段说明</param>
/// <param name="options">设置,默认为以下所示
/// {
///     isAllowNull: true,      //默认允许为空
///     count: 250              //默认字数为250
/// }
/// </param>
ValidatorField.limitCount = function(name, options){
    var settings = $.extend({
        isAllowNull: true,      //默认允许为空
        spCharCount2: true,     //汉字等全角特殊字符算2个      
        count: 250              //默认字数为250
    }, options);
    
    return function(val){
        val = $.trim(val);
        var len = settings.spCharCount2 ? window.Tool.len(val) : val.length;
        
        if(val == ""){
            if(!settings.isAllowNull){
                return name + "不能为空";
            }
            else {
                return;
            }
        }
        
        if(len > settings.count){
            return name + "字数不能多于" + settings.count + "位(当前字数为" + val.length + ")";
        }
    };
}

//只能输入字母和数字
ValidatorField.limitChar = function(name, options){
    var settings = $.extend({
        isAllowNull: false      //默认不允许为空
    }, options);
    return function(val){
        if(val == ""){
            if(!settings.isAllowNull){
                return name + "不能为空";
            }
            else {
                return;
            }
        }
    
        var patrn = /^[A-Za-z0-9]+$/;
        if(!patrn.test(val)){
            return name + "不能包含特殊字符";
        }
    };    
};

/* Validator End */

/* Tool Start */
//函数功能工具类
window.Tool = {
    //获取长度,数字字母一般字符算1个,全角字符中文算2
    len: function(str){
        if(str == null) {
            return 0;
        }
        return str.replace(/[^\x00-\xff]/g,"**").length;
    },
    FF : top.FloatingFrame,
    //替换字符串
    replace: function(str, oldStr, newStr){
       return str.replace(new RegExp(oldStr, 'g'), newStr);
    },
    appendParaToUrl: function(url, params){
        var strPara = $.param(params);
        if(strPara != ""){
            url += (url.indexOf("?")>=0?"&":"?") + strPara;
        }
        return url;
    },
    getFileExtName: function(fileName) {
        var reg = /\.([^.]+)$/;
        var m = fileName.match(reg);
        return m ? m[1] : "";
    },
    getFileImageClass: function(ext) {
        var type = "other";
        ext = ext.toLowerCase();
        for (var p in window.Tool.icons) {
            var arr = window.Tool.icons[p];
            if($.inArray(ext, arr) > -1){
                type = p;
                break;
            }
        }
        //return "icon_" + type;
        return type;
    },
    getFileSizeText: function(length) {
        var unit = "B";
        if (length > 1024) {
            unit = "K";
            length = length / 1024;
            if (length > 1024) {
                unit = "M";
                length = length / 1024;
                if (length > 1024) {
                    unit = "G";
                    length = length / 1024;
                }
            }
            length = Math.ceil(length * 100) / 100;
        }
        return length + unit;
    },
    getFileName: function(filePath) {
        return filePath.replace(/^[\s\S]+\\([^\\]+)$/, "$1");
    },
    parseDate: function(dateString) {
        var reg = /^(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$/;
        var m = dateString.match(reg);
        var date = new Date(m[1], m[2] - 1, m[3], m[4], m[5], m[6]);
        return date;
    },
    getProgressText: function(number) {
        if (!number) return "0%";
        return parseInt(number * 10000) / 100 + "%";
    },
    getTimeText: function(timespan) {
        if (!timespan || timespan < 0) return "";
        var seconds = parseInt(timespan / 1000);
        if (seconds == 0) return "00:00";
        var s = seconds % 60;
        var minutes = parseInt(seconds / 60);
        var m = minutes % 60;
        var hours = parseInt(minutes / 60);
        var text = (m > 9 ? m : "0" + m) + ":" + (s > 9 ? s : "0" + s);
        if (hours > 0) {
            text = hours + ":" + text;
        }
        return text;
    },
    //uploadComeFrom,0首页,1相册,2音乐.pid,首页-文件夹ID,相册-相册ID,音乐-专辑ID,在根位置传空或"0"
    openUpload:function(uploadComeFrom,pid,fileId)
    {
        if(pid){
        }
        else{
            pid = "";
        }
        if(fileId)
        {
        }
        else
        {
            fileId = "";
        }
        if(!uploadComeFrom){
            uploadComeFrom = "0";
        }
        var isCommon = true;
        var url="http://"+window.location.host+"/html/upload.html?comeFrom={0}&pid={1}";
        url = url.format(uploadComeFrom,pid);
        var height = 260;
        if (document.all)//IE
        {
            try{
                var obj = new ActiveXObject("cxftpctrl.Upload");
                if (obj) isCommon = false;
                delete obj;
            }catch(e){}
        }
        //行为:点击上传
        addDiskBehavior(7001, 25, 20);
       //isCommon = true;
        if(isCommon)
        {
            if(top._diskUploadWindow && !top._diskUploadWindow.isDisposed)
            {
                top._diskUploadWindow.show();
            }else
            {
                top._diskUploadWindow = top.FloatingFrame.open("上传文件", url, 550, height, true, true);
            }
        }
        else
        {
            url="http://"+window.location.host+"/html/fastupload.html?comeFrom={0}&id={1}&fileid={2}";
            url = url.format(uploadComeFrom,pid,fileId);
            height = 400;
            if(top._diskFastUploadWindow && !top._diskFastUploadWindow.isDisposed)
            {
                top._diskFastUploadWindow.show();
            }else
            {
                top._diskFastUploadWindow = top.FloatingFrame.open("上传文件", url, 550, height, true, true);
            }
        }
    },
    icons : {
        doc: ["wiz", "rtf", "dot", "doc", "wbk"],
        docx:["docx"],
        xls: ["xlw", "xlv", "xlt", "slk", "xls", "xld", "xll", "xlb", "xla", "xlk", "dif", "csv", "xlc", "xlm"],
        xlsx:["xlsx"],
        ppt: ["ppa", "pps", "ppt", "pwz", "pot"],
        pptx:["pptx"],
        rar: ["rar"],
        zip: ["zip", "7z", "iso"],
        psd: ["psd"],
        xml: ["xml", "xsl"],
        html:["html","htm"],
        java:["java"],
        fon :["fon"],
        jpg :["jpg"],
        gif :["gif"],
        png :["png"],
        bmp :["bmp"],
        tiff:["tiff"],
        mpeg:["mpeg"],
        avi :["avi"],
        wmv :["wmv"],
        mov :["mov"],
        mpg :["mpg"],
        vod :["vod"],
        rmvb:["rmvb"],
        mp3 :["mp3"],
        wma :["wma"],
        wav :["wav"],
        asf :["asf"],
        mp4 :["mp4"],
        sis :["sis"],
        sisx:["sisx"],
        cab :["cab"],
        pdf :["pdf"],
        tif :["tif"],
        txt :["txt"]
        /*        
        wav: ["aifc", "aiff", "aif", "snd", "au", "midi", "mid", "rmi", "mp3", "wav", "m3u", "wax", "wma"],
        img: ["bmp", "dib", "gif", "jpe", "jpg", "jpeg", "jfif", "png", "tiff", "tif", "mdi", "ico", "xbm"],
        txt: ["css", "html", "htm", "sol", "txt", "sor", "wsc", "sct", "htt", "htc", "xml", "xsl", "odc", "rqy", "vcf"],
        video: ["mpa", "mpg", "m1v", "mpeg", "mp2", "mpe", "mp2v", "mpv2", "mov", "qt", "ivf", "asx", "asf", "avi", "wm", "wmv", "wmx", "wvx", "rm", "rmvb", "3gp", "mp4"]
        */
    },
    getExtType: function(ext){
        var category = {       
            "pic" : "bmp,gif,ico,jpg,jpeg,png,tif",
            "audio" : "mid,wma,wav,mp3,cda",
            "video": "avi,wmv,wmp,rm,ram,rmvb,ra,mpg,mpeg",
            "office": "doc,docx,xls,xlsx,ppt,pps,pptx",
            "app" : "exe"
        };
        var type = "";
        ext = ext.toLowerCase();
        $.each(category, function(name, val){
            if(val.indexOf(ext) > -1){
                type = name;
                return false;
            }
        });
        
        return type;
    },
    getDiskWindow: function(){
        return top.$("iframe#diskDev")[0].contentWindow.$("#mainFrame")[0].contentWindow;
    },
    /*
    mapper              : id与函数名称的映射json
    getFuncFromValue    : 根据json的函数名获取函数
    getAnchorFromKey    : 根据json的id获取jq对象
    */
    registerAnchor: function(mapper, getFuncFromValue, getAnchorFromKey){
        if(getAnchorFromKey == null){
            getAnchorFromKey = function(id){
                return $.getById(id);
            };
        }
        if(getFuncFromValue == null){
            getFuncFromValue = function(val){
                return window[val];
            }
        }
        $.each(mapper, function(name, val){
            getAnchorFromKey(name).click(function(e){
                if(!this.disabled){
                    var func = getFuncFromValue(val);
                    if(func != null && $.isFunction(func)){
                        func();
                    }
                }
                e.preventDefault();
            });
        });
    },
    wResize : function(win, handler){
        if(document.all){
            $(win.frameElement).resize(handler);
        }else{
            $(win).resize(handler);
        }
    },
    wResizeWrapper: function(resizeAct){
        if(!resizeAct){
            resizeAct = function(){
                var win = $(window);
                $("#wrapper").height(win.height() - 60);
            }
        }
        $(function(){
            resizeAct();
        })
        
        Tool.wResize(window, resizeAct);        
    },
    cResizeWrapper: function(){
        var resizeAct = function(){
            var win = $(window);
            $(".content").height(win.height() - 20);
        };
        $(function(){
            resizeAct();            
        })
        
        Tool.wResize(window, resizeAct);        
    },
    handleError : function(error){
        Tool.FF.alert("请求服务器出现异常");
    },
    invalidAction: function(){
        top.location = top.ucDomain + "/Error/systemTip4.html";
    },
    //切换TAB,disk/myshare/friendshare
    SwichPageMode: function(mode){
        var cwindow = top.$("iframe#diskDev")[0].contentWindow;
        var currentMode = "disk";
        if(cwindow.$("#liMainMyShare").attr("className")=="current")
        {
             currentMode = "myshare";
        }
        else if(cwindow.$("#liMainFriendShare").attr("className")=="current")
        {
             currentMode = "friendshare";
        }
        if(currentMode==mode)
        {
            return;
        }
        switch(mode)
        {
            case "disk":
            {
                cwindow.$("#liMainMyDisk").addClass("current");
                cwindow.$("#liMainFriendShare").removeClass("current");
                cwindow.$("#liMainMyShare").removeClass("current");
                cwindow.$("#liAlbum").removeClass("current");
                cwindow.$("#mainFrame")[0].src = "/Html/default.html";
                break;
            }
            case "myshare":
            {
                cwindow.$("#liMainMyShare").addClass("current");
                cwindow.$("#liMainFriendShare").removeClass("current");
                cwindow.$("#liMainMyDisk").removeClass("current");
                cwindow.$("#liAlbum").removeClass("current");
                cwindow.$("#mainFrame")[0].src = "/Html/my-share.html";
                break;
            }
            case "friendshare":
            {
                cwindow.$("#liMainFriendShare").addClass("current");
                cwindow.$("#liMainMyDisk").removeClass("current");
                cwindow.$("#liMainMyShare").removeClass("current");
                 cwindow.$("#liAlbum").removeClass("current");
                cwindow.$("#mainFrame")[0].src = "/Html/friend-share.html";
                break;
            }
             case "Album":
            {
                cwindow.$(".nav-hd li").removeClass("current");
                cwindow.$("#liAlbum").addClass("current");
                /*cwindow.$("#liMainFriendShare").removeClass("current");
                cwindow.$("#liMainMyDisk").removeClass("current");
                cwindow.$("#liMainMyShare").removeClass("current");*/
                cwindow.$("#mainFrame")[0].src = "/Html/album.html";
                break;
            }
        }
    },
    //工具栏
    Toolbar: {
        //获取选中的行
        getAllSelectedRow: function(returnRow /* 为true返回选中tr行(Jquery对象);默认返回行所对应的数据对象 */){
            var checkedRow = $("#tbl-fileList>tr>td>:checked")
                .parent().parent();
            if(returnRow){
                return checkedRow;
            }
            //返回数据属性CREATETIME,DIRFLAG,ITEMID,ITEMNAME,ITEMSIZE,SOURCETYPE,TYPE,UPLOADTIME,VIRUSSTATUS
            return checkedRow.map(function(){
                return $(this).data("data");
            });
        },
        //tag:music  album   photo
        getAllSelectedRowAlbum: function(tag,returnRow){
            var checkedRow = $("#tbl-fileList>li>div>:checked").parent().parent();
            if(returnRow){
                return checkedRow;
            }
            return checkedRow.map(function(){
                return $(this).data("data");
            });
        },
        //当前文件夹Id
        getCurrentDirectoryId: function(){
            var cache = window["cachePid"];
            if(cache.length == 0){
                return null;
            }
            return cache[cache.length - 1];
        },
        getDiskHost: function(relUrl){
            var url = "http://" + window.location.host + "/";
            if(relUrl){
                return url + relUrl;
            }
            return url;
        },
        getExtTypeBySend: function(ext){
            var category = {       
                "pic" : "gif,jpg,jpeg",
                "audio" : "mid,midi",
                "office": "txt"
            };
            var type = "";
            ext = ext.toLowerCase();
            $.each(category, function(name, val){
                if(val.indexOf(ext) > -1){
                    type = name;
                    return false;
                }
            });        
            return type;
        },
        controlSendPanel: function(config){
            var de = $.disableElement;
            var ee = $.enableElement;
            config = $.extend({
                data        : null,
                nameField   : "ITEMNAME",
                sizeField   : "ITEMSIZE",
                panel       : $("#aSendFile"),
                email       : $("#aEmail"),
                wap         : $("#aWap"),
                mms         : $("#aMMS"),
                preValid    : null
            },config);
            
            if(config.preValid != null && !config.preValid()){
                de(config.panel);
                return ;
            }
            var data = config.data;
            
            if(data == null || data.length == 0){
                de(config.panel);
                return;
            }
            var displayPanel = false;
            
            var count = data.length;
            if(count >= 1 && count <= 5){
                ee(config.email);
                ee(config.wap);
                displayPanel = true;
            }
            else {
                de(config.email);
                de(config.wap);
            }
            
            if(count == 1){
                var validMMS = true;
                var name = data[0][config.nameField];
                var size = data[0][config.sizeField];                
                
                if(size/1024 <= 50 && Toolbar.getExtTypeBySend(Tool.getFileExtName(name)) != ""){
                    ee(config.mms);
                    displayPanel = true;
                }
                else {
                    de(config.mms);
                }
            }
            else {
                de(config.mms);
            }
            
            if(displayPanel){
                ee(config.panel);
            }
            else {
                de(config.panel);
            }
        }
    }
};

//判断页面操作类型 0:我的共享 1:好友共享 2:我的文件柜
function PageMode(){
    if(location.href.indexOf("my-share.html")!=-1){
        return 0;
    }
    else if(location.href.indexOf("friend-share.html")!=-1){
        return 1;
    }
    else
        return 2;
}


function ShareOperMode()
{
    var url = Tool.getDiskWindow().location.href;
    if(url.indexOf("default.html")!=-1)
        return "default";
    else if(url.indexOf("photoList.html")!=-1||url.indexOf("photoshow.html")!=-1)
        return "photo";
    else if(url.indexOf("album.html")!=-1)    
        return "album";
    else
        return "default";
}

/* Tool End */

//基础类型扩展
String.prototype.endWith = function(str){  
    if(str==null||str==""||this.length==0||str.length>this.length){
        return false;
    }
    if(this.substring(this.length-str.length)==str) {
        return true;
    }
    else {
        return false;  
    }
    return true;
}  

String.prototype.startWith = function(str){  
    if(str==null||str==""||this.length==0||str.length>this.length){
        return false;  
    }
    if(this.substr(0,str.length)==str){
        return true;  
    }
    else  {
        return false;  
    }
    return true;  
}