
Namespace.register("U.CD.O"); //注册杂项js,以后再归类。
//编辑器上传大小后台设置为10M。

//上传项目图片
U.CD.O.UPFile = function (SO) {
    var _PSO = SO.parentNode;
    //和论坛，博客上传一样，到临时目录。
    U.UP.uploading([SO], U.CD.O.UPFileAsyn, (["UCD_UP"]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理
    _PSO.appendChild(SO);
}

//发布项目上传回调
U.CD.O.UPFileAsyn = function (request) {
    var SO = request.context[0];
    request = request.value;
    if (request != null && isNaN(request[0])) {
        //if (context[0] == "headimg") { U.U.CP(request); }
        //else { U.Img.Create({ "Thm": request[0], "Img": request[0] }); }
        var _i = $("#UCD_FB_NR_IMG")[0];
        _i.src = US.fs + request[0]; //request[2]保存的缩略图 request[0]保存的是原图
        _i.title = US.fs + request[0];
        _i.style.cssText = "width:100%;height:100%;margin-left:0;border:0";
        _i.onclick = U.M.apply(this, [[U.M.StopBubble], [U.Img.Create, [([{ 'Thm': US.fs + request[2], 'Img': US.fs + request[0]}])]]]);
    }
    else { alert("你现在使用图片大小是：" + request[0] + "KB,已经超过50KB，请重新选择图片不超过50KB！"); }
}

//--------------------------------------------右侧树目录上传文件-----------------------------------


//上传文件 优化版
/*

存储模块与ufrom接口对接测试优化代码区域

实现了跨域存储文件， 方便调试 、代码简短速度快
源代码优化版本
Namespace.register("U.UP");
//上传变量
U.UP.FTF = { "WH": {}, "FT": {}, "TF": false, "GS": "*", "EL": "" }

/ml input上传
U.UP.uploading = function (UDE, UCB, UCT, UAC, UTF) { //生成传输的iframe
    if (UDE.length > 0) {
        var _UDBD = document.body, _UFID = Guid.guidNoDash();
        U.M.IFO($$("iframe", { "id": _UFID, "name": _UFID, "width": 0, "height": 0, "style": { "display": "none" }, "frameBorder": 0 }, _UDBD), "", [[U.UP.uploadingA, ([UDE, UCB, UCT, UAC, UTF, _UFID])]]); //生成可访问的iframe
    }
}

//执行上传
U.UP.uploadingA = function (UDE, UCB, UCT, UAC, UTF, UFID) {
    this.contentWindow.name = UFID; UDE = U.M.isArray(UDE) ? UDE : Array.prototype.slice.apply(UDE); UAC = UAC + (UAC.indexOf("?") > -1 ? "" : "?") + ((US && US.userinfo && US.userinfo.UserId) || US.userinfo.UserId ? "&UserId=" + (US.userinfo.UserId || US.userinfo.UserId) : "");
    var i = 0, _UL = UDE.length, _UCE = [], _UCB = UCB, _UDBD = document.body, _URE = { "UpObj": UDE, "context": UCT, "value": "" }, _UDFD = $$("form", { "action": UAC, "target": UFID, "encoding": "multipart/form-data", "enctype": "multipart/form-data", "method": "post", "name": "loading", "style": { "display": "none"} }, _UDBD);
    (UTF) && (_UL = 1, _URE["UpObj"] = UDE.splice(0, 1), _UCB = U.M.apply(this, [[UCB, ([_URE])], [U.UP.uploading, ([UDE, UCB, UCT, UAC, UTF])]])); UDE = _URE["UpObj"];
    for (i; i < _UL; i++) { UDE[i].name = UDE[i].name || UDE[i].id || Guid.newGuid(); _UCE.push($(UDE[i]).replaceC($$("div"))[0]); _UDFD.appendChild(UDE[i]); }
    _UDFD.submit(); this.complete = ""; U.MD.IframeLoad(this, [[U.UP.uploadingAsynF, ([this, _UCB, _URE])]]); $(_UDFD).remove(); for (i = 0; i < _UL; i++) { $(_UCE[i]).replaceC(UDE[i]); };
    //if (document.selection) { UDE[i].select(); document.selection.clear(); } else { UDE[i].outerHTML += ""; UDE[i].value = ""; } //清空内容
}

//传输回调
U.UP.uploadingAsynF = function (UDOD, UCB, UDE) {
    try {
        var _UTH = UDOD.contentWindow.document.body.innerHTML; _UTH = _UTH || (UDOD.contentWindow.name != UDOD.id ? UDOD.contentWindow.name : _UTH);
        if (_UTH == null) { U.Alert("服务器处理繁忙，上传失败"); } //上传失败
        try { UDE.value = eval("0,(" + _UTH + ")"); } catch (e) { UDE.value = _UTH; } //返回的值
        $(UDOD).remove(); UCB(UDE); //回调
    }
    catch (e) { U.Alert("文件传输错误！"); }
}

//添加Flash上传按钮按钮
U.UP.AddFAN = function (UDOD, UDID, UWH) {
    UDID = UDID || Guid.newGuid(); /ar _UDTD;
    if ($("object", UDOD).length == 0) {//添加Flash按钮
        _UDTD = $$("div", { "innerHTML": '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" class="UD_filePrew" width="' + UWH["width"] + '" height="' + UWH["height"] + '" id="' + UDID + '" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"><param name="movie" value="http://www.1473.cn/img/upload.swf" /><param name="menu" value="false" /><param name="wmode" value="Opaque" /><param name="quality" value="high" /><param name="bgcolor" value="ffffff" /><param name="allowScriptAccess" value="always" /><embed src="http://www.1473.cn/img/upload.swf" quality="high" bgcolor="ffffff" width="' + UWH["width"] + '" height="' + UWH["height"] + '" name="' + UDID + '" align="middle" play="true" wmode="transparent" loop="false" quality="high" style="z-index: 0;" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object>' });
        UDOD.insertBefore(_UDTD.firstChild, UDOD.firstChild);
    }
    return (U.UP.FTF["EL"] = $("*" + UDID, UDOD).addAttrArray({ "width": UWH["width"] ? UWH["width"] : 1, "height": UWH["height"] ? UWH["height"] : 1, "style": { "display": "block"} })[0]);  //设置Flash大小
}
*/
U.CD.O.TreeUPFile = function (SO) {
    var _PSO = SO.parentNode;
    var _fname = U.UP.GetUpName(SO.value); //得到文件名以及文件扩展名
    var _ld = U.CD.O.Loading("图片上传速度比较慢，请耐心等候.....");
    U.UP.uploading([SO], U.CD.O.TreeUpAsyn, ([_fname,_ld]), "http://disk.1473.cn/USupfile.ashx?iframename=UseStudioEditor", true); //上传图片的异步处理
    _PSO.appendChild(SO);
}

//右侧树上传文件回调
U.CD.O.TreeUpAsyn = function (request) {
    var _fname = request.context[0];
    var _ld = request.context[1]; _ld.parentNode.removeChild(_ld);//移除进度条
    request = request.value;
    if (request != null && isNaN(request[0])) {
        var _content = request[2] + "|" + request[0]; //文件内容为缩略图加原图。
        U.CD.O.TreeImg(_fname[0], _content);
    }
    else { alert("你现在使用图片大小是：" + request[0] + "KB,已经超过5M，请重新选择图片不超过5M！"); }
}
//创建项目、文件夹、文件的函数,
//参数为SO 为触发事件的页面元素，用户id ,node为父亲节点,input为新节点的input,不能直接传值,type为类型,文件或者目录，
U.CD.O.TreeImg = function (_fname,content) {
    var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie.  _c.userid _c.username _c.Loginid
    if (!_c) { U.CD.U.LoginApply(); return; }  //如果未登录，弹出登录窗口。
    var userid = _c.userid;  //得到用户id
    var node = U.CD.U.CUser.CurrentNode, SO = U.CD.U.CUser.CurrentSO; //获取当前选中文件夹
    var _fid = Guid.newGuid(), _nnode;    //节点基本信息,名字和id，id由前台生成。
    if (!U.CD.RT.VName(userid, _fname, "file")) { alert("名字不符合规范或者存在同名文件！"); return; }
    //前台添加一个节点，数组中也要添加节点。
    _nnode = { "Name": _fname, "CreateDate": new Date(), "Type": "file", "ID": _fid, "Deep": parseInt(node.Deep) + 1, "IsPublic": true, "Content":content };
    var L = []; L.push(_nnode); //追加一个节点，传递几个参数就追加几个。这种方式不科学，以后再改。因为硬盘是这样写的。
    node.TNode.push(_nnode); //同时向前台json中追加数据，没有json树真麻烦啊。。做json树操作是一定的。
    //向前台追加树结点。//如果连续追加多个，会多出很多margin:10px父亲节点，会出问题。
    U.CD.RT.LV(L, SO, userid);
    //后台添加一个节点。传递了用户id，根元素id，根元素深度，新节点guid，新节点名字。
    U.ACD.Request(U.CD.AjaxUrl, (["Add_File", userid, node.ID, node.Deep, _nnode.ID, _nnode.Name,content]), U.CD.RT.CP_OKAsyn, ([""]));
}


//加载Loading提示。参数为提示的字符
U.CD.O.Loading = function (s) {
    var _ld = U.CD.Loading.cloneNode(true); _ld.style.display = "none"; _ld.innerHTML = s; _ld.uscustom = true; //给loading一个特殊标记(自定义)，表示不用主项目的loading效果，自定义
    $$("span", { "className": "UCD_LC_X","innerHTML":"X", onclick: function () { this.parentNode.parentNode.removeChild(this.parentNode); } }, _ld); //追加关闭按钮
    document.body.appendChild(_ld);
    U.D.PopupWindow(_ld); //保证至于顶层。如需要，可以再加一个mousedown，还可以拖动，并随时至于顶层，暂时不添加了
    return _ld; //返回回去，用于删除
}
//取消loading由主项目统一处理。