Namespace.register("U.MD.DK.RE"); //Disk右键功能命名空间

//#region 文件属性

/**
* 用户属性框的样式
* @param  {object}  目录目录或者文件信息
* @param  {string}  用户id
*/
U.MD.DK.RE.attribute = function (fileordir, userid) {
    var _diskinfo = U.MD.DK.M.diskOperatingSwitch(userid),
        _attributeel = U.MD.DK.RE.attributeStyle(fileordir, true, _diskinfo); //用户属性框的样式
    U.UF.UI.alertClick(_attributeel);
}

/**
* 用户属性框的样式
* @param  {object}  目录目录或者文件信息
* @param  {bool}  是否需要设置权限
*/
U.MD.DK.RE.attributeStyle = function (fileordir, issetpermissions, diskinfo) {
    var _selected = 2;
    var _icon = U.MD.DK.C.getIcon(fileordir.UserDirectoryExtendType.toLowerCase())
    var _box = $$("div", { className: "U_MD_DK_fileInfo" });
    var _head = $$("div", { className: "U_MD_DK_fileInfo_head" }, _box);
    $$("div", { className: "U_MD_DK_fileInfo_line" }, _box);
    var _info = $$("div", { className: "U_MD_DK_fileInfo_info" }, _box);
    //图片样式设置
    if (U.UF.UP.isImg(fileordir.UserDirectoryExtendType)) {
        var _img = $$("div", { className: "U_MD_DK_fileInfo_img" }, _head);
        $$("img", { "onerror": U.MD.C.imgError, "src": U.MD.C.getHeadImage(fileordir.UserDirectoryUrl) }, _img);
    }
    else {
        $$("div", { className: "U_MD_DK_fileInfo_icon U_MD_DK_Img " + _icon.classname[1] }, _head);
    }
    $$("span", { innerHTML: fileordir.UserallDirectoryName }, _head);
    //文件处理
    if (fileordir.filetype) {
        $$("div", { "innerHTML": "<span>类型:</span>文件" }, _info);
        $$("div", {
            "spellcheck": "false", "onselectstart": U.UF.EV.stopBubble,
            "innerHTML": "<span>路径:</span>" + "http://fs.1473.cn/" + fileordir["UserDirectoryID"] + ""
        }, _info);
    }
    else if (issetpermissions) {
        $$("div", { "innerHTML": "<span>类型:</span>" + "文件夹" }, _info);
        var _permission = $$("div", { "className": "", "innerHTML": "<span>权限选择:</span>" }, _info);
        var _select = $$("select", { "onchange": function () { U.MD.DK.RE.setpermissions(this, fileordir, diskinfo); } }, _permission);
        $$('option', { value: "1", innerHTML: "只允许上传" }, _select);
        $$('option', { value: "2", innerHTML: "只允许下载" }, _select);
        $$('option', { value: "", innerHTML: "无限制" }, _select);
        if (fileordir.UserDirectoryEncrypt == "1") {
            _selected = 0;
        }
        else if (fileordir.UserDirectoryEncrypt == "2") {
            _selected = 1;
        }
        $('option', _select)[_selected].selected = true; //选中 
    }
    $$("div", { "innerHTML": "<span>大小:</span>" + U.UF.UP.minUnitToMaxUnit(fileordir.UserDirectorySize) }, _info);
    $$("div", { "innerHTML": "<span>创建时间:</span>" + U.UF.D.getYearMonthDay(fileordir.UserDirectoryAddTime) }, _info);
    return _box;

}

/**
* 共享文件夹设置权限
* @param  {element}  目录目录或者文件信息
* @param  {object}  是否需要设置权限
*/
U.MD.DK.RE.setpermissions = function (selectel, dirinfo, diskinfo) {
    var _value = selectel.options[selectel.selectedIndex].value;  //获取设置权限的值
    U.A.Request(US.CD, [US.DB, "UseStudio_Disk", "SetFtpPriviledge", dirinfo.UserDirectoryID, _value], U.MD.DK.RE.asynSetPermissions, ["", dirinfo, _value, diskinfo]);
    U.alert("权限设置中...");
}

/**
* 共享文件夹设置权限
* @param  {element}  目录目录或者文件信息
* @param  {object}  是否需要设置权限
*/
U.MD.DK.RE.asynSetPermissions = function (r) {
    var _leftel,
        _rightel,
        _imgicon,
        _context = r.context,
        _dirinfo = _context[1], //文件夹信息
        _value = _context[2],
        _diskinfo = _context[3]; //加密的值
    r = r.value;
    //判断设置操作
    if (r) {
        _dirinfo.UserDirectoryEncrypt = _value; //设置加密的值
        _leftel = $("#L" + _dirinfo.UserDirectoryID, _diskinfo.formel)[0]; //左边的导航,文件夹同时展开的时候会存在
        _rightel = $("#R" + _dirinfo.UserDirectoryID, _diskinfo.formel)[0]; //右边文件或者文件夹的处理

        //左边的目录处理
        if (_leftel) {
            //加密的处理
            if (_value != "") {
                _imgicon = "U_MD_DK_LCOI U_MD_DK_LTXOST U_MD_DK_Img U_MD_DK_LCJ";
            }
            //未加密的处理
            else {
                _imgicon = "U_MD_DK_LCOI U_MD_DK_LTXOST U_MD_DK_Img U_MD_DK_LCW";
            }
            $("div", _leftel)[2].className = _imgicon;
        }
        //右边的目录处理
        if (_rightel) {
            //加密的处理
            if (_value != "") {
                _imgicon = "U_MD_DK_RZOS U_MD_DK_Img U_MD_DK_RZOM";
            }
            //未加密的处理
            else {
                _imgicon = "U_MD_DK_RZOS U_MD_DK_Img U_MD_DK_RZOW";
            }
            $("div", _rightel)[1].className = _imgicon;
        }

    }
    //设置权限或者加密解密
    else {
        U.alert("设置失败");
    }
}

//#endregion

//#region 新建文件夹

/**
* 新建文件夹处理的新建提示框
* @param  {array} 需要删除文件的数组
* @param  {string} 用户id
**/
U.MD.DK.RE.addFileOrFolder = function (fileordirinfo, diskinfo, dirinfo) {
    var _nowdiskinfo = US.disk.UserDisk, //当前使用用户的网盘
        _leftel = $("#L" + dirinfo["UserDirectoryID"], diskinfo.formel)[0],
        _el = $("#U_MD_DK_RZ", diskinfo.formel)[0];
    //在粘贴网盘的数组目录中添加值
    U.MD.DK.M.entity.add(fileordirinfo, diskinfo); //添加到用户disk全局变量中
    U.MD.DK.M.entity.addChild(fileordirinfo, dirinfo); //添加到子节点中
    //操作的文件夹是否在异步结束后还在同一个文件夹下,如果是那么就添加
    if (fileordirinfo[0].UserDirectoryParentID == _nowdiskinfo.directoryid && diskinfo == _nowdiskinfo && _nowdiskinfo.directoryid == diskinfo.directoryid) {
        //如果里面没有内容是展示没有资源的处理
        if ($(_el).Child()[0].className == "U_MD_DK_RZF") {
            _el.innerText = "";
        }
        U.MD.DK.VW.printContent(fileordirinfo, _el); //打印到网盘中
        //添加到侧边栏
        if (_leftel) {
            U.MD.DK.LL.printLeftTreeDirectory(fileordirinfo, _leftel, diskinfo.userInfo.UserId); //如果左边数目显示了
        }
    }
    _el.scrollTop = _el.offsetHeight;
    $(_el.lastChild).addClass("U_MD_DK_RZOI");
}

/**
* 新建文件夹处理
**/
U.MD.DK.RE.newFolder = function (diskinfo) {
    if (!U.MD.U.L.isLogin()) {//是否登录
        var _directoryid = diskinfo.directoryid//目录id
        if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文件权限
            U.MD.DK.RE.newFolder.confirm(diskinfo, _directoryid); //新建提示框
        }
        else { U.alert("无权限访问此文件夹"); }; /// <reference path="../../robots.txt" /> 
    }
}

/**
* 新建文件夹处理的新建提示框
* @param  {array} 需要删除文件的数组
* @param  {string} 用户id
**/
U.MD.DK.RE.newFolder.confirm = function (diskinfo, directoryid) {
    var _ancestors, //目录的祖先元素
        _groupid, //群id
        _newguid = Guid.newGuid(), //新建文件夹的id
        _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息
        _userid = US.userInfo.userid, //新建用户id
        _input = $$("input", { "placeholder": "请输入文件夹名字", "style": { "width": "180px", "height": "25px" } }) //输入的名字
    //弹出comfir
    U.MD.DK.RE.newconfirm(
        _input,
        function () {
            var _name = _input.value;
            //获取粘贴到制定目录的群id
            _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先
            //如果是ftp目录,那么groupid就是用户id
            if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) {
                _groupid = diskinfo.userInfo.UserId;
            }
            //否则就是对应的群id,如果不存在那么就是""
            else {
                _groupid = _ancestors[_ancestors.length - 1].GroupID || "";
            }
            //文件名判断
            if (U.UF.S.ZWFileName.test(_input.value)) {
                //填写文件名符合规范  将文件夹以及文件夹名字保存到数据库
                U.A.Request(US.DISK, ["CreateDirectory", _userid, _newguid, _dirinfo.UserDirectoryDeep + 1, _input.value, directoryid, "", _groupid, ""], //保存到数据库
                    function (r) {
                        var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "folder", "", U.UF.D.toTimeStamp(), "", _dirinfo.UserDirectoryDeep + 1,
                            null, "", 0, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead)
                        U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中
                    }, []);
            }
            else {
                U.alert("文件名过长或者为空");
                return false;
            }
        },
        function () { },
        "新建文件夹"
    );
}

/**
* 新建文件处理
**/
U.MD.DK.RE.newText = function (diskinfo, fun) {
    if (!U.MD.U.L.isLogin()) {//是否登录
        var _directoryid = diskinfo.directoryid; //目录id
        if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文件权限
            U.MD.DK.RE.newText.confirm(diskinfo, _directoryid, fun); //新建提示框
        }
        else { U.alert("无权限访问此文件"); };
    }
}

/**
* 新建文件处理的新建提示框
**/
U.MD.DK.RE.newText.confirm = function (diskinfo, directoryid, fun) {
    var _ancestors, //目录的祖先元素
        _groupid, //群id
        _newguid = Guid.newGuid(), //新建文件夹的id
        _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息
        _userid = US.userInfo.userid, //新建用户id
        _input = $$("input", { "placeholder": "请输入新文本文档的命名", "style": { "width": "180px", "height": "25px", "padding-left": "7px" } }); //输入的名字
    //弹出comfirm
    U.MD.DK.RE.newconfirm(_input,
        function () {
            var _name = _input.value;
            //获取粘贴到制定目录的群id
            _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先
            //如果是ftp目录,那么groupid就是用户id
            if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) {
                _groupid = diskinfo.userInfo.UserId;
            }
            //否则就是对应的群id,如果不存在那么就是""
            else {
                _groupid = _ancestors[_ancestors.length - 1].GroupID || "";
            }
            //文件名判断
            if (U.UF.S.ZWFileName.test(_input.value)) {
                //去数据库添加文件
                U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "txt", _groupid], function (r) {
                    //创建文件
                    var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "txt", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead)
                    U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中
                    //如果存在就执行
                    if (fun) {//判断是否有点击事件的方法,如果有,运行它
                        fun(_fileinfo);
                    }
                }, []);
            }
            else {
                U.alert("文件名过长或者为空");
                return false;
            }
        },
        function () { }, "新建文本文件");
}

/**
* 新建文档处理
**/
U.MD.DK.RE.newDocument = function (diskinfo, fun, fileid) {
    if (!U.MD.U.L.isLogin()) {//是否登录
        var _directoryid = diskinfo.directoryid; //目录id
        if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建文档权限
            return U.MD.DK.RE.newDocument.confirm(diskinfo, _directoryid, fun, fileid);
        }
        else { U.alert("无权限访问此文档"); };
    }
}

/**
* 新建文档处理的新建提示框
**/
U.MD.DK.RE.newDocument.confirm = function (diskinfo, directoryid, fun, fileid) {
    var _ancestors, //目录的祖先元素
        _groupid, //群id
        _newguid = fileid || Guid.newGuid(), //新建文件夹的id
        _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息
        _userid = US.userInfo.userid, //新建用户id
        _input = $$("input", { "placeholder": "请输入文档名字", "style": { "width": "180px", "height": "25px" } }); //输入的名字

    return U.MD.DK.RE.newconfirm(_input, //创建文档的框
        function () {
            var _name = _input.value;
            //获取粘贴到制定目录的群id
            _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先
            //如果是ftp目录,那么groupid就是用户id
            if (_ancestors[0].UserDirectoryID == US.FTPFOLDERID) {
                _groupid = diskinfo.userInfo.UserId;
            }
            //否则就是对应的群id,如果不存在那么就是""
            else {
                _groupid = _ancestors[0].GroupID || "";
            }
            //文件名判断
            if (U.UF.S.ZWFileName.test(_input.value)) {
                //去数据库添加文件
                U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "uw", _groupid], function (r) {
                    //创建文件
                    var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "uw", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead)
                    U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中
                    //如果存在就执行
                    if (fun) {//判断是否保存到数据库
                        fun(_fileinfo);
                    }
                }, []);

            }
            else {
                U.alert("文件名过长或者为空");
                return false;
            }
        }, function () { }, "新建文档");
}



/**
* 新建工作表处理
**/
U.MD.DK.RE.newExcel = function (diskinfo) {
    if (!U.MD.U.L.isLogin()) {//是否登录
        var _directoryid = diskinfo.directoryid; //目录id
        if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建工作表权限
            U.MD.DK.RE.newExcel.confirm(diskinfo, _directoryid); //新建提示框
        }
        else { U.alert("无权限访问此工作表"); };
    }
}

/**
* 新建工作表处理的新建提示框
**/
U.MD.DK.RE.newExcel.confirm = function (diskinfo, directoryid) {
    var _ancestors, //目录的祖先元素
        _groupid, //群id
        _newguid = Guid.newGuid(), //新建文件夹的id
        _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": directoryid })[0], //目录网盘信息
        _userid = US.userInfo.userid, //新建用户id
        _input = $$("input", { "placeholder": "请输入表格名字", "style": { "width": "180px", "height": "25px" } }); //输入的名字    
    U.MD.DK.RE.newconfirm(_input, //创建文档的框
        function () {
            var _name = _input.value;
            //获取粘贴到制定目录的群id
            _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先
            //如果是ftp目录,那么groupid就是用户id
            if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) {
                _groupid = diskinfo.userInfo.UserId;
            }
            //否则就是对应的群id,如果不存在那么就是""
            else {
                _groupid = _ancestors[_ancestors.length - 1].GroupID || "";
            }
            //文件名判断
            if (U.UF.S.ZWFileName.test(_input.value)) {
                //去数据库添加文件
                U.A.Request(US.DISK, ["CreateFile", _userid, _newguid, directoryid, _input.value, "", "", "", "ue", _groupid], function (r) {
                    //创建文件
                    var _fileinfo = new U.MD.DK.M.entity(_newguid, 0, directoryid, _name, _name, "ue", "", U.UF.D.toTimeStamp(), "", "9999", null, "", 1, "", _groupid, "", _userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead)
                    U.MD.DK.RE.addFileOrFolder([_fileinfo], diskinfo, _dirinfo); //添加到页面上中
                }, []);
            }
            else {
                U.alert("文件名过长或者为空");
                return false;
            }
        }, function () { }, "新建工作表");
}

/**
* 新建文件对话框
* @content      {string/elemnet}  内容
* @determineFun {function}        确认回调函数
* @cancelFun    {function}        取消回调函数
* @string       {string}          对话框的标题名字
*/
U.MD.DK.RE.newconfirm = function (content, determineFun, cancelFun, str) {
    //创建对话框主体元素
    var _confirm = $$("div", { "style": { "cssText": "width: 100%; background: rgb(255,255,255); overflow:hidden; " }, id: "123133456" });
    var _string = str || "提示框";
    //创建内容区域
    var _content = $$("div", { "style": { "cssText": "text-align: center; margin: 30px 20px 30px 20px;  " } }, _confirm);

    //判断内容是否为元素
    if (U.UF.C.isElement(content)) {
        //如果为元素则动态添加到对话框中
        $(_content).append(content);
    } else {
        //如果为文字则修改inerHTML。
        _content.innerHTML = content || '内容';
    }

    //创建页脚部分
    var _footer = $$("div", { "style": { "cssText": " height:45px;" } }, _confirm);

    //调用Uform窗体创建函数将主体内容添加到窗体中
    var _form = new U.UF.UI.form(
        _string,
        _confirm,
        {
            "style": {
                "cssText": "font-size: 16px; background: rgb(255,255,255); width: 300px; position: fixed; box-shadow: 0 0 10px 3px rgb(0,0,0); border-radius: 5px;"
            }
        },
        {
            "istop": true,
            "isenlarge": false,
            "isstretching": false,
            "isnarrow": false
        },
        {
            "style": {
                "cssText": " background: rgb(59,88,120); padding: 10px;padding-left: 20px; color: rgb(255,255,255); "
            }
        });
    //创建确定按钮 绑定点击事件,默认点击后执行关闭窗体函数
    $$("div", {
        "style": {
            "cssText": "text-align: center; color: rgb(255,255,255); width: 30%; padding: 5px; background: rgb(48,126,208); border-radius: 5px;float: right; margin-right:35px;"
        },
        innerHTML: "确定",
        onclick: function () {
            var _bool = true;
            if (U.UF.C.isFunction(determineFun)) {
                _bool = determineFun(); //判断是否存在回调 有则执行。
            }
            if (_bool !== false) {
                U.UF.F.closeWindow(_form.form);    //关闭窗口函数
            }
        }
    }, _footer);

    //创建取消按钮 绑定点击事件,默认点击后执行关闭窗体函数
    $$("div", {
        "style": {
            "cssText": "text-align: center; color: rgb(255,255,255); width: 30%; padding: 5px; background: rgb(48,126,208); border-radius: 5px;background: rgb(170,170,170); float: left;  margin-left:35px;"
        },
        "innerHTML": "取消",
        "onclick": function () {
            U.UF.C.isFunction(cancelFun) && cancelFun(); //判断是否存在回调 有则执行。
            U.UF.F.closeWindow(_form.form);  //关闭窗口函数
        }
    }, _footer);

    return _form;
}


/**
* 新建互联办公文件对话框
* @determineFun {function}        确认回调函数
* @cancelFun    {function}        取消回调函数
*/
U.MD.DK.RE.newDocConfirm = function (diskinfo/*determineFun cancelFun*/) {
    if (!U.MD.U.L.isLogin()) {//是否登录
        var _directoryid = diskinfo.directoryid; //目录id
        if (U.MD.DK.C.getDirectoryPermissions(_directoryid, diskinfo).isnew) {//新建工作表权限
            var _confirm = $$('div'),
                _pickarea = $$("div", { "style": { "cssText": "display:table; width: 100%; height: auto; " } }, _confirm),
                _picklocal = $$("div", { "id": "U_MD_DK_RE_localDoc", "style": { "cssText": "display:table-cell; width:235px; height:170px; background-color:#f5f5f5;text-align:center; vertical-align: middle;cursor: pointer;" } }, _pickarea),
                _pickline = $$("div", { "style": { "cssText": "display:table-cell; width:1px; height: 100%; background-color:#cecece;" } }, _pickarea),
                _pickoa = $$("div", { "style": { "cssText": "display:table-cell; width:234px; height:100%; background-color:#f5f5f5;text-align:center; vertical-align: middle;cursor: pointer;" } }, _pickarea);
            $$("img", { "onerror": U.MD.C.imgError, src: "/img/officefileicon.png", style: { "vertical-align": "middle" } }, _picklocal);
            $$("img", { "onerror": U.MD.C.imgError, src: "/img/oaofficeicon.png", style: { "vertical-align": "middle" } }, _pickoa);
            $$('span', { innerText: '互联文档', style: { "margin-left": "10px" } }, _pickoa);
            $$('span', { innerText: '本地文档', style: { "margin-left": "10px" } }, _picklocal);

            //创建对话框主体元素
            var _enter = $$("div", { "style": { "cssText": "width: 100%;  background: rgb(255,255,255); overflow:hidden; display:none" }, id: "123133456" }, _confirm);

            var _string = "新建文档";
            //创建内容区域 
            var _content = $$("div", { "style": { "cssText": "text-align: center; margin: 30px 20px 30px 20px;" } }, _enter)

            //创建页脚部分
            var _footer = $$("div", { "style": { "cssText": " height:45px;" } }, _enter);

            //调用Uform窗体创建函数将主体内容添加到窗体中
            var _form = new U.UF.UI.form(
                _string,
                _confirm,
                {
                    "style": {
                        "cssText": "font-size: 16px; background: rgb(255,255,255); width: 470px; position: fixed; box-shadow: rgb(0, 0, 0) 2px 1px 5px; "
                    }
                },
                {
                    "istop": true,
                    "isenlarge": false,
                    "isstretching": false,
                    "isnarrow": false
                },
                {
                    "style": {
                        "cssText": " background: #3c475b;padding:4px 0 ; color: rgb(255,255,255); "
                    }
                });

            $(_picklocal).bind({
                "mouseover": function () { _picklocal.style.backgroundColor = "#dcdcdc"; }, "mouseout": function () { _picklocal.style.backgroundColor = "#f5f5f5"; }, "click": function () {
                    U.MD.DK.RE.newDocument(diskinfo);
                    U.UF.F.closeWindow(_form.form, "remove");
                }
            })

            $(_pickoa).bind({
                "mouseover": function () { _pickoa.style.backgroundColor = "#dcdcdc"; }, "mouseout": function () { _pickoa.style.backgroundColor = "#f5f5f5"; }, "click": function () {
                    //     $('#U_UF_UI_confirm')[0].style.display = "none";
                    var _docId = Guid.newGuid();

                    U.MD.O.word(US.userInfo, { 'UserDirectoryID': _docId }, function () {
                        var _iframe = $('#UD_Word' + _docId).find('iframe')[0].contentWindow;
                        _iframe.document.getElementById('U_MD_O_H_body_left_invite_user').children[0].click();
                        U.UF.F.closeWindow(_form.form, "remove");
                    });
                }
            })

            return _form;
        }
        else { U.alert("无权限访问此工作表"); };
    }
}



//#endregion

//#region 删除文件

/**
* 删除文件
*
* @param  {array} 需要删除文件的数组
* @param  {string} 用户id
*/
U.MD.DK.RE.deleteFileOrDir = function (fileordirs, userid, diskinfo) {
    var _contentel;
    //多文件删除
    if (fileordirs.length > 1) {
        _contentel = $$("div", { "style": { "cssText": "text-align:center;width:100%;height:30px;padding:5% 0 0% 0;" } });
        $$("span", { "style": { "cssText": "font-weight:bold;" }, "innerHTML": "你确定要删除这" + fileordirs.length + "项吗?" }, _contentel);
    }
    //单文件处理
    else {
        _contentel = U.MD.DK.RE.attributeStyle(fileordirs, null, diskinfo);
        fileordirs = [fileordirs];
    }
    //弹出提示框,确认后删除文件
    U.UF.UI.confirm(_contentel, function () {
        U.MD.DK.RE.deleteDirectoryOrFile(fileordirs, userid);
        //U.UF.UI.alertClick
    });
    //$(".U_MD_DK_SX")[$(".U_MD_DK_SX").length - 2].parentNode.style.margin = "0"; //位置美化
}

/**
* 删除文件接口
*
* @param  {array} 需要删除文件的数组
* @param  {string} 用户id
*/
U.MD.DK.RE.deleteDirectoryOrFile = function (fileordirs, userid) {
    var _allfileordirid = U.Json.toKeyArray(fileordirs, "UserDirectoryID").join(","); //所有删除的文件和文件夹的合并id
    U.A.Request(US.DISK, ["DeleteDirectoryOrFile", _allfileordirid, fileordirs[0].GroupID || ""], U.MD.DK.RE.asynDeleteDirectoryOrFile, ["", fileordirs, userid]); //文件夹和文件同时删除
}

/**
* 删除文件异步
*
* @param  {array} 需要删除文件的数组
* @param  {string} 用户id
*/
U.MD.DK.RE.asynDeleteDirectoryOrFile = function (r) {
    var i,
        _dirid,
        _context = r.context,
        _fileordirs = _context[1], //文件或者是文件夹信息
        _userid = _context[2], //用户id
        _diskinfo = U.MD.DK.M.diskOperatingSwitch(_userid) //获取用户硬盘的信息
        ;
    r = r.value;
    //允许删除
    if (r) {
        U.MD.DK.M.entity.del(_fileordirs, _diskinfo); //删除diskinfo数组里面的文件或者文件夹
        U.MD.DK.RE.delPageFileOrDir(_fileordirs, _diskinfo); //删除文件在页面上的元素
    }
    else {
        U.alert("操作失败!"); //弹出操作失败
    }
}

/**
* 删除文件在页面上的显示
*
* @param  {array} 文件或者是目录
* @param  {string} 删除用户网盘的信息
*/
U.MD.DK.RE.delPageFileOrDir = function (fileordirs, diskinfo) {
    var i,
        _parentdirinfo,
        _contentel = $("#U_MD_DK_RZ", diskinfo.formel); //中间的内容
    //循环文件或者文件夹处理
    for (i = 0; i < fileordirs.length; i++) {
        $("#L" + fileordirs[i].UserDirectoryID, diskinfo.formel).remove(); //移除左边的导航
        $("#R" + fileordirs[i].UserDirectoryID, diskinfo.formel).remove(); //移除右边的文件或者文件夹

        //判断删除的位置是否是当前打开的位置,如果是则保持
        if (fileordirs[i].UserDirectoryID == diskinfo.directoryid) {
            _parentdirinfo = fileordirs[i].Parent;
        }
    }
    //如果删除的位置是当前打开的位置
    if (_parentdirinfo) {
        //重新打印
        U.MD.DK.LE.openFileDirectory(_parentdirinfo, diskinfo.userInfo.UserId);
    }
    //如果文件或者文件夹给全部删除,那么就打印空视图
    else if (_contentel.Child() == 0) {
        U.MD.DK.VW.printNullView(_contentel[0]); //重新打印空视图
    }
    $('#U_MD_DK_RKR', diskinfo.formel)[0].innerHTML = '当前文件的数量:' + $('.U_MD_DK_RZO').length//删除之后当前文件的数量正确显示
}

//#endregion

//#region 重命名

/**
* 删除文件在页面上的元素
*
* @param  {element} 元素
* @param  {string} 用户id
*/
U.MD.DK.RE.rename = function (el, fileordir, diskinfo) {
    var _input, _el; //创建一个可输入的input标签
    if (el.firstChild.children[1]) {//判断是否在左边菜单栏插入
        _el = el.firstChild.children[1].children[0]; //插入地方
        _el.innerText = ""//清除原文件名,并在上面设置一个input输出框
    } else {
        _el = el.lastElementChild; //插入地方
        _el.innerText = ""//清除原文件名,并在上面设置一个input输出框
    }
    _input = $$("input", {//创建input框
        "ondblclick": U.UF.EV.stopBubble, //阻止冒泡
        "onblur": function () {//失焦
            U.MD.DK.RE.detemineReName(this, fileordir, diskinfo); //确定修改
        },
        //回车会理
        "onkeyup": function () {
            if (event.keyCode == 13 || event.keyCode == 10) {
                this.onblur(); //失焦
            }
        },
        "onclick": U.UF.EV.stopBubble, //阻止冒泡
        "className": "U_MD_U_P_C_P_N_I", //设置class
        "value": fileordir.UserallDirectoryName.replace("." + fileordir.UserDirectoryExtendType, "")//文件名+后缀
    }, _el); //在哪里插入
    _input.focus(); //聚焦到重命名的input框上面
}

/**
* 確定修改文件名
*
* @param  {element} 元素
* @param  {string} 用户id
*/
U.MD.DK.RE.detemineReName = function (inputel, fileordir, diskinfo) {
    var _leftel,
        _rightel,
        _extendtype = fileordir.UserDirectoryExtendType, //文件扩展名
        _name = inputel.value.replaceHtmlSign() + (fileordir.filetype ? "." + _extendtype : ""); //文件或者文件夹的名字
    //修改的名字没有变化
    if (_name != fileordir.UserallDirectoryName) {
        //判断文件名输入符不符合规范
        if (U.UF.S.FileName.test(_name)) {
            //目录的处理
            if (_extendtype == "folder") {
                U.A.Request(US.DISK, ["UpdateDirectoryInfo", fileordir.UserDirectoryID, _name], U.MD.DK.RE.asynDetemineReName, ["", fileordir, _name, diskinfo]);
            }
            //文件的处理
            else {
                U.A.Request(US.DISK, ["UpdateFileInfo", fileordir.UserDirectoryID, _name], U.MD.DK.RE.asynDetemineReName, ["", fileordir, _name, diskinfo]);
            }
            _leftel = $("#L" + fileordir.UserDirectoryID, diskinfo.formel)[0]; //左边的导航,文件夹同时展开的时候会存在
            _rightel = $("#R" + fileordir.UserDirectoryID, diskinfo.formel)[0]; //右边文件或者文件夹的处理
            //左边的目录处理
            if (_leftel) {
                $("div", _leftel)[3].innerText = _name;
            }
            //右边的目录处理
            if (_rightel) {
                $("div", _rightel)[3].innerText = _name;
            }
        }
    }
}

/**
* 確定修改文件名
*
* @param  {element} 元素
* @param  {string} 用户id
*/
U.MD.DK.RE.asynDetemineReName = function (r) {
    var _context = r.context,
        _fileordir = _context[1], //文件或者文件夹信息
        _name = _context[2] //文件名
        ;
    r = r.value;
    //判断服务器修改是否成功的处理,处理成功后修改文件的信息
    if (r) {
        _fileordir.UserallDirectoryName = _name; //文件全写的名字
        _fileordir.UserDirectoryName = _name.addEllipsis(20); //文件的缩略名
    }
}

//#endregion

//#region 复制 剪切 粘贴

/**
* 删除文件在页面上的元素
*
* @param  {array} 复制粘贴的元素
* @param  {string} 粘贴的格式
*/
U.MD.DK.RE.copyorshear = function (dirorfile, type, diskinfo) {
    var _userid = US.disk.UserDisk.userInfo.UserId, //用户id
        _dirid = dirorfile.UserDirectoryParentID //复制的目录id
        ;
    //复制的目录转化成数组
    if (!Array.isArray(dirorfile)) {
        dirorfile = [dirorfile];
    }
    //添加复制的全局变量
    US.disk.Disks[_userid].pasteDirOrFile = {
        "type": type, //复制或者剪切 "copy" || "shear"
        "UserDirectoryID": _dirid, //在哪个目录复制或者剪切
        "dirorfile": dirorfile, //复制的内容
        "userid": _userid //用户id
    };
}

/**
* 粘贴文件
*
* @param  {array} 复制粘贴的元素
* @param  {string} 粘贴的格式
*/
U.MD.DK.RE.paste = function (diskinfo) {
    var _ancestors, //祖先元素
        _groupid, //群元素
        _fileordirids, //文件和目录的id集合
        _dirid = diskinfo.directoryid, //当前目录id
        _dirinfo = U.Json.select(diskinfo.directoryOrFiles, { "UserDirectoryID": _dirid }, 1)[0], //当前目录的信息
        _userid = US.disk.UserDisk.userInfo.UserId, //用户id
        _pastecontent = US.disk.Disks[_userid].pasteDirOrFile, //粘贴的内容
        _type = _pastecontent.type, //粘贴的格式
        _pastedirid = _pastecontent.UserDirectoryID, //粘贴目录id
        _dirorfile = _pastecontent.dirorfile, //粘贴文件和目录的数组
        _pasteuserid = _pastecontent.userid //祖先元素
        ;
    //需要剪切的内容存在,无需判断权限了,能触发改函数说明是有权限的。 如果剪切文件,同时不是剪切到同一个目录里 
    if (_pastecontent && (_type == "copy" || _dirid != _pastedirid || _pasteuserid != _userid)) { // && (_dirid != _pastedirid || _pasteuserid != _userid)
        //获取粘贴到制定目录的群id
        _ancestors = U.MD.DK.C.getAncestors(_dirinfo, diskinfo); //获取所有的祖先
        //如果是ftp目录,那么groupid就是用户id
        if (_ancestors[_ancestors.length - 1].UserDirectoryID == US.FTPFOLDERID) {
            _groupid = diskinfo.userInfo.UserId;
        }
        //否则就是对应的群id,如果不存在那么就是""
        else {
            _groupid = _ancestors[_ancestors.length - 1].GroupID || "";
        }
        _fileordirids = U.Json.toKeyArray(_dirorfile, "UserDirectoryID").join(","); //文件
        //处理粘贴在数据库的过程

        //剪切的处理
        if (_type == "shear") {
            //调用剪切的函数    用户ID  粘贴目录id  文件和目录的id集合 群元素
            U.A.Request(US.DISK, ["CutAndPasteFiles", US.userInfo.userid, _dirid, _fileordirids, _groupid, _dirorfile[0].GroupID], U.MD.DK.RE.asynPaste, ["", _dirinfo, _groupid, _pastecontent, diskinfo, _pastecontent.type]);
            _pastecontent.type = "copy";
        }
        //复制的处理
        else {
            //调用复制的函数
            U.A.Request(US.DISK, ["CopyAndPasteFiles", US.userInfo.userid, _dirid, _fileordirids, _groupid], U.MD.DK.RE.asynPaste, ["", _dirinfo, _groupid, _pastecontent, diskinfo, _pastecontent.type]);
        }
    }
}

/**
* 粘贴文件
*
* @param  {object} ajax的传参处理
*/
U.MD.DK.RE.asynPaste = function (r) {
    var i,
        _context = r.context, //上线文的传参
        _dirinfo = _context[1], //粘贴到制定的目录
        _groupid = _context[2], //粘贴的群id
        _pastecontent = _context[3], //粘贴的文件或者文件夹内容
        _diskinfo = _context[4], //粘贴的网盘信息
        _type = _context[5], //判断是复制还是剪切
        _copyorshearinfo = US.disk.Disks[_pastecontent.userid], //粘贴网盘的信息
        _pasteinfo = r.value //目录信息
        ;
    //剪切处理的话,先要移除原本的文件,然后在重新处理
    if (_type == "shear") {
        U.MD.DK.M.entity.del(_pastecontent.dirorfile, _copyorshearinfo); //在制定的用户中移除
        U.MD.DK.RE.delPageFileOrDir(_pastecontent.dirorfile, _copyorshearinfo); //剪切的话会在之前目录里面删除
    }
    //循环设置粘贴文件的属性
    for (i = 0; i < _pasteinfo.length; i++) {
        _pasteinfo[i] = new U.MD.DK.M.entity(_pasteinfo[i].UserDirectoryID, _pasteinfo[i].UserDirectorySize, _pasteinfo[i].UserDirectoryParentID, _pasteinfo[i].UserDirectoryName, _pasteinfo[i].UserDirectoryName, _pasteinfo[i].UserDirectoryExtendType, _pasteinfo[i].UserDirectoryUrl, _pasteinfo[i].UserDirectoryAddTime, _pasteinfo[i].UserDirectoryUrl, _pasteinfo[i].UserDirectoryDeep, null, _pasteinfo[i].UserDirectoryEncrypt, _pasteinfo[i].UserDirectoryExtendType == "folder" ? 0 : 1, "", _pasteinfo[i].UserDirectoryEncrypt, "", US.userInfo.userid, US.userInfo.UserNickName, US.userInfo.username, US.userInfo.UserThumbnailImageHead)
    }
    //在粘贴网盘的数组目录中添加值
    U.MD.DK.RE.addFileOrFolder(_pasteinfo, _diskinfo, _dirinfo);
}

//#endregion

//#region 文件下载

//弹出下载的处理
U.MD.DK.RE.downloadFile = function (dirorfileid, isdir) {
    window.open("/Pages/Downlaod.htm?id=" + dirorfileid + "&type=" + (isdir || ""));
}

//#endregion

//#region 查看评论

/**
* 查看评论
*
* @param  {object} 文件信息
*/
U.MD.DK.RE.replay = function (fileinfo) {
    //  U.MD.I.Img(UDE, UDE); 
    // U.MD.D.CM.CKPLXS(UDE.UserDirectoryID, UDE.UserallDirectoryName);
}

//#endregion

//#region 刷新

/**
* 刷新
*
* @param  {string} 用户id
* @param  {object} 目录信息
*/
U.MD.DK.RE.refresh = function (userid, fileinfo, diskinfo) {
    //如果文档不是最新文档、我的协同、他人邀请的处理
    if (fileinfo.GroupID !== true) {
        U.MD.DK.LE.getChildsByDirectoryId(userid, fileinfo, $("#U_MD_DK_RZ", diskinfo.formel)[0]);  //加载当前网盘内容
    }
}

//#endregion