Namespace.register("U.CD.Url"); //用户登录后的js文件。

//-----------------------------------------------------------------------------引导执行---------------------------------------------------------------------

//U.CD.Url.M = U.D.G.UrlGuide;
//重载主项目的url引导函数。让其不能执行
U.D.G.UrlGuide = function () {
}


U.CD.Url.Init = function () {
    //获取传参，如果有#!等字符，执行url重写。否则，执行一般处理


    var _UR = U.M.GetUF(); //获取传参
    if (_UR) {
        if (_UR[0] == "#!" && !_UR[1]) return;
        if (_UR[0] == "#!" && _UR[1] && !_UR[2]) U.CD.Url.Lang(_UR[1]);
        if (_UR[0] == "#!" && _UR[1] && _UR[2]) { U.CD.Url.Lang(_UR[1]); U.CD.Url.Param(_UR[2]); }
    }
    else {
        //如果没有url重写，显示首页介绍。
        //显示示例项目,按道理该将此函数放在上面一个函数里面以实现任意窗口大小一致。没时间了，以后再说
        //setTimeout(function () { U.CD.SL.Init(); }, 1000); //我还奇怪了，Chrome居然要延迟才能从nodejs中获取数据，太奇怪！
    }
}

//参数中只带语言的处理方法
//参数：r string  代表具体的语言,例如"C","PHP"等
U.CD.Url.Lang = function (r) {
    //判断是否是传递各种语言进来，如果是，则跳转到相应语言，否则，进入具体示例程序。
    if (r && U.CD.Langs.indexOf(r) == -1) { alert("无此语言"); return; }
    U.CD.USLang = r;
    document.title = r + "语言"; U.CD.CL.Change(r); 
    $("#UCD_SL")[0].style.display = "none";
}

//url参数拆分
U.CD.Url.Param = function (r) {
    //判断是1473主项目的url重载还是本项目的url重载,Chrome不能很好支持此对象
    //if (arguments.caller.callee !== U.CD.Init) { U.CD.Url.M(); return; }
    if (!r) return;
    r = decodeURI(r).split("|"); //第一个为项目id，第二个为用户id
    U.CD.Url.Load(r);
}

//后台编程语言特有方法，加载各种语言用户示例程序。
//U.CD.Url.SL = function (r) {
//    if (!r) return;
//    r = decodeURI(r[1]).split("|"); //第一个为项目id，第二个为用户id
//    U.CD.Url.Load(r);
//}

//重写主项目url重载，现在是完全去掉了主项目的内容，以后再修改
//去MySql获取该项目信息。从而得到用户信息
U.CD.Url.Load = function (r) {
    if (!U.MS.Guid.test(r[1])) return; //如果r[1]为""或者不是Guid，则退出
    //mode为接受参数的标志。第一个参数为后台增删查改类型，后面参数为实际传递的参数。//选取数据？其他，还未登录，不需要选取数据，以后再看
    var _ld = U.CD.O.Loading("正在装载该示例数据，请稍后。。。。。。");
    U.ACD.Request(U.CD.AjaxUrl, (["Select_OneUserByID", r[1], U.CD.USLang]), U.CD.RT.LUDataAsyn, ([_ld, r[0]])); //去mongodb获取该用户所有数据,同时传递项目id做选中操作。
    document.location.hash = "#!/" + U.CD.USLang + "/" + encodeURI(r[0] + "|" + r[1]);
    $("#UCD_SL")[0].style.display = "none"; //隐藏示例程序
}

//执行屏蔽操作，屏蔽掉一些按钮。
U.CD.Url.ForbUser = function () {
    $("#UCD_TOP_L_BC")[0].style.display = "none"; //屏蔽掉保存按钮
    $("#UCD_TOP_AL")[0].innerHTML = "无保存该文件权限！"; //给用户提示正在查看其他人的项目
//    $("#UCD_TOP_AL")[0].style.backgroundColor = "white";
    //单击切换选项时，未登录弹出登录界面，登录后切换回自己项目。
    $("#UCD_TOP_AL")[0].onclick = function () {
        var u = U.CD.U.GLID();
        if (u) {
            U.ACD.Request(U.CD.AjaxUrl, (["Select_OneUserByID", u.userid, U.CD.USLang]), U.CD.RT.LUDataAsyn, ([""]));
            U.CD.Url.AllowUser();
        }
        else { U.CD.U.LoginApply() }
    };
}

//登录后开启屏蔽掉的选项
U.CD.Url.AllowUser = function () {
    $("#UCD_TOP_L_BC")[0].style.display = "block"; //登录后允许保存按钮
    $("#UCD_TOP_AL")[0].innerHTML = ""; //给用户提示正在查看其他人的项目
    //    $("#UCD_TOP_AL")[0].style.backgroundColor = "rgb(0,136,204)";
}




//-------------------------------------------------------------------------------辅助函数--------------------------------------------------------------------


//----------------------------------------暂时未使用的函数--------------------------------------
//主引导函数
U.CD.Url.UrlGuide = function () {
    var _UR = U.M.GetUF(); //获取传参
    if (_UR) {
        U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_One", _UR[1]]), U.CD.Url.AsynUrlGuide, ([""]));

        //        if (_UR[2]) {
        //            var _CID = _UR[3] || "";
        //            if (_UR[1] == "pb" || _UR[1] == "tg" || _UR[1] == "file") { U.CD.Url.Guide(_UR[1], null, (_CID == "" ? _UR[2] : "")); }
        //            else { U.A.Request("UseStudioManage.GetUserIdByUsername", ([_UR[2]]), U.CD.Url.AsynUrlGuide, (["", _UR[1], _CID])); } //异步处理
        //        }
        //        else if (_UR[1] != "") { U.CD.Url.Guide(_UR[1]); }
    }
}

//执行引导
U.CD.Url.Guide = function (TF, UID, CID) {
    var _TF = true;
    switch (TF) {
        //用户文件夹索引                                              
        case "disk": case "photo": case "video":
            CID = TF == "disk" ? US.DG : (TF == "photo" ? US.PG : US.VG); //网盘位置ID
            U.M.divdoubleClick("UseStudioUserDiskDiv", CID, UID, null); //查看Disk对应的位置
            break;
        //文件索引                  
        case "file":
            U.Dk.GetDsikFID(CID);
            break;
        case "Office":

            break;
        default: break;
    }
}
//改变地址栏，改变hash不会刷新页面
U.CD.Url.UrlWrite = function (_url, _title) {
    document.location.hash = "!/" + _url;
    document.title = _title + " - 云操作系统";
}
