Namespace.register("U.MD.D.B"); //背景设置

U.MD.D.B.url = "/img/background/ZMYT.jpg"; //默认背景设计图
U.MD.D.B.backUrl = ""; //存放默认壁纸的全局变量 

/*
*   作用: 弹出桌面背景框
*
*/
U.MD.D.B.init = function () {
    if ($("#U_MD_D_A_A")[0]) {//判断是否有系统图片
        return U.selectEl("#U_MD_D_A_A").css("display", "block")//显示系统图片
    }
    var _systemimg = U.selectEl("#U_MD_D_Set_BG").css("display", "block")[0]//显示系统图片
    //创建系统设置的弹窗
    var _system = new U.UF.UI.form("<div class='U_MD_F_S_TI'>系统设置</div>",
                 _systemimg,
                   {
                       "id": "U_MD_D_A_A",
                       "style": {
                           "width": "746px",
                           "height": "500px"
                       }
                   },
                   {
                       isnarrow: false,
                       isenlarge: false
                   }).form;
    U.MD.D.B.look(); //添加图片到_el
    return _system; //返回父级元素
}

/*
*   作用: 打印默认可选择的背景图片
*
*/
U.MD.D.B.look = function () {
    var i, _img, _imgparent, //i循环所有图片  _img获取显示图片的div  _imgparent获取创建包含图片的div层
        _frag = $$("frag"), //创建图片的最高级元素
        _url = "/img/background/", //图片地址
        _pchild = U.selectEl($("#U_MD_D_Set_BG").childs()[0]).Child(), //获取父级元素的第一个子元素,并且获取默认壁纸div
        _imgname = ["3DBox", "cloud", "fruit", "green", "userbackgound", "Dream_train", "ZMYT"], //建立包含图片名称的对象
        _img = U.selectEl(_pchild[0]).Child()[1]; //获取显示图片的div
    _img.innerText = ""; //清空显示图片的div
    if (_imgname.hasOwnProperty) {//忽略从原型链继承的属性
        for (i = 0; i < _imgname.length; i++) {
            _imgparent = $$("div", { "className": "U_MD_D_Set_BG_OCO", "title": "设为背景",
                "onclick": U.UF.C.closure(function (i) {//U.UF.C.closure 解决闭包问题
                    U.MD.D.B.setBackgroundImage(_url + _imgname[i] + ".jpg"); //给每一个默认壁纸图片添加点击事件
                }, [i])
            }, _frag); //创建包含图片的div
            _imgparent = $$("div", {}, _imgparent); ////创建包含图片的div的下层div_url + _imgname[i][j] + "(1)." + i
            var _addimg = U.UF.IMG.imgReady(_url + _imgname[i] + "(1).jpg", null, function () { /**U.MD.D.H.DYWPTP(_imgparent);*/ }, function () { U.MD.C.imgError(this); }); //获取图片 添加图片
            _imgparent.appendChild(_addimg); //添加图片到父级元素中,并显示出来
        }
    }
    _img.appendChild(_frag); //图片添加到默认图片
}

/*
*   作用: 切割图片的路径包括图片文件夹和图片的名称的字符串数组
*   @param {array} imageurl 图片路径
*   return {array} 返回切割好的数组
*/
U.MD.D.B.split = function (imageurl) {
    if (imageurl) {//参数有值
        var _i = imageurl.lastIndexOf("/"); //获取/最后出现的位置
        return [imageurl.substr(0, _i), imageurl.substr(_i + 1)]; //图片文件夹 和 图片的名称 的字符串数组
    }
    return ["", ""]; //返回切割好的数组
}

/*
*   作用:同作用于服务器,通过数据库修改,完成壁纸的更改
*   @param  {array} url 图片的路径
*   @param  {string} str 图片的标识
*/
U.MD.D.B.asyn = function (url, str) {
    if (!U.MD.U.L.isLogin()) {//判断用户是否登录,如果未登录,则弹出登录窗体
        url = url || U.MD.D.B.backUrl[0]; //获取图片的地址
        str = str || U.MD.D.B.backUrl[1]; //获取图片的标识
        US.userInfo.UserBackGroundImage = url; //讲图片的地址传入服务器中
        U.alert("修改中.."); //弹出提示框
        //插入数据库,并且通过数据返回数据出来。
        U.A.Request(US.CD, [US.DB, "UseStudio_Users", "UpdateUserDesktopInfo", US.userInfo.userid, url + "/" + str, "", ""],
                    function () { U.alert("设置成功"); }); //对调函数,弹出提示框
        //        U.A.Request('UseStudioManage.SetUserBackgroudnImage', [US.userInfo.userid, url, str], function(){U.alert("设置成功");}, []);
    }
}

/*
*   作用:点击网盘上传图片
*   @param  {element} el 图片的元素
*   @param  {array} url  图片的路径
*   @param  {string} str 图片的标识
*/
U.MD.D.B.disk = function (el, url, str) {
    U.MD.D.B.setBackgroundImage(url, "S"); //调用设置用户点击的背景图片的功能函数
}

/*
*   作用:设置用户点击的背景图片
*   @param {array}  imageurl    图片的地址
*   @param {string} typename    图片的标识
*/
U.MD.D.B.setBackgroundImage = function (imageurl, typename) {
    var _el = U.selectEl("#U_MD_D_BG")[0]; //需要设置背景图片的地方
    typename = typename || "S"; //设置背景时 undefined 所以值是 "S" 
    //如果没有传递需要设置的背景图片,那么就设置默认的背景图片
    if (imageurl == null) {//判断图片的路径是否正确
        imageurl = U.MD.D.B.url; //如果图片的路径传值为空的话,则图片路径为默认图片路径
        //判断是否有用户设置的图片路径,如果有,则改变全局变量的图片路径为用户设置的图片路径,如果没有,则用默认图片路径。
        U.MD.D.B.backUrl = US.userInfo.UserBackGroundImage ? U.MD.D.B.split(US.userInfo.UserBackGroundImage) : [U.MD.D.B.url, typename];
    } else {//如果图片的路径不为空
        U.MD.D.B.backUrl = [imageurl, typename]; //则全局变量为图片的路径的传值,以及图片的标识传值
    }
    //各种背景设置
    switch (typename) {

        case "T": //标识为T时
            //重叠出现
            U.selectEl(el).addAttrArray({//改变图片路径
                style: {
                    background: "#F0F0F0 url(" + imageurl + ")"
                }
            });
            break; //跳出循环

        case "M": //标识为M时
            //原图大小 
            U.selectEl(el).addAttrArray({//改变图片为原图大小
                style: {
                    background: "#F0F0F0 url(" + imageurl + ") 0 0 no-repeat"
                }
            });
            break; //跳出循环
        case "S": //标识为S时
            //全屏展示
            if (imageurl) {
                U.selectEl(_el).addAttrArray({
                    style: {
                        filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + imageurl + ",sizingMethod=scale)",
                        background: "#F0F0F0 url(" + imageurl + ") 0 0 no-repeat",
                        backgroundSize: "100% 100%",
                        MozBackgroundSize: "100% 100%"
                    }
                });
            }
            break; //全屏
        default: break;
    }
}

/*
*   作用:上传本地图片的设置
*   @param  {element} el  图片元素
*/
U.MD.D.B.upload = function (el) { //上传图片设置
    if (U.UF.UP.isImg(el.value)) {//判断是否是图片
        //上传图片 调用上传函数,传入图片元素,上传地址,上传成功的回调函数,回调函数的传参
        U.UF.UP.inputUpload([el], "http://disk.1473.cn/USUpfile.ashx?typename=UploadWallpaper", U.MD.D.B.asynUp, [el]);
    }
}

/*
*   作用:上传背景的设置
*   @param {element} url 图片的元素
*/
U.MD.D.B.asynUp = function (url) { //上传背景设置
    var i, _userchild, _imginfo, //i 循环图片文件信息的长度;_userchild 获取用户id的子元素;_imginfo获取图片的信息
    _userinfo = US.userInfo; //用户信息
    _userid = _userinfo.BHID, //用户的BHID?
    _userchange = U.MD.DK.M.diskOperatingSwitch(_userinfo.UserId); //用户操作切换,可以查看多个用户的硬盘,所以需要切换。登录用户和非登录用户有不同权限。
    r = url.value; //图片文件信息?
    if (_userid && _userchange[_userid] && (_userchild = _userchange[_userid].Child)) {//false 不进去???
        for (i = 0; i < r.length; i++) {//循环图片文件信息的长度
            _imginfo = r[i]; //获取图片的信息
            //上传文件成功后,由前端的数据结构生成一个数据实体,实际传参请参考函数里面的数据结构
            _imginfo = new U.MD.DK.M.entity(_imginfo.UserFilesID, _imginfo.UserFilesSize, _imginfo.UserDirectoryID, _imginfo.UserFilesName, _imginfo.UserFilesName, _imginfo.UserFilesExtendName, US.FILESYSTEMURL + _imginfo.UserFilesServerName, _imginfo.UserFilesAddTime, _imginfo.UseFilesServerThumbnailName, 9999, null, "", 1, _imginfo.UserFilesDescript, "", null)
            _userchange[_userid].Child.push(_imginfo); //把上传文件成功的数据结构插入数组中
        }
    }
    U.MD.D.B.setBackgroundImage(U.MD.C.getHeadImage(r[0].UserFilesServerName)); //设置背景
}

/*
*   作用:从网盘上传图片
*   @param {element} url 图片的元素
*/
U.MD.D.B.uploadByPan = function () {
    U.MD.DK.VW.choseFile(function (obj) {
        U.MD.D.B.setBackgroundImage('http://fs.1473.cn/' + obj.UserDirectoryUrl, 'S'); //给每一个默认壁纸图片添加点击事件
    });
}