/**
* 弹出1473窗体,需要删除。
* UDPD 父亲元素
*{object} UDE   放置窗体STYLE的地方    
* {int}UDE参数 [ "Embed": 是否是Iframe,
*          "Top": 偏移高,  "Left": 偏移左,  "Width": 长度,  "Height": 高度, 
*          "ContainerId": id,  "titleName": 标题,  "ContentId": 内容区Id, "Content": 内容, 
*          "hasScroll": 内容区是否滚动, "hasMax": 是否允许放大,  "hasMin": 是否允许缩小, 
*          "hasDraw": 是否拉伸, "CStyle": 内容区样式, "IsR":是否移除关闭按钮 
*               ]
* UCBF 单击确认的回调函数    UCNF 单击取消的回调函数
* @returns _UDOD    返回ID为U_COF的对象
**/
U.UF.UI.UForms = function (UDE, UDPD) {
    UDPD = UDPD || document.body; //选择是否有父亲元素,没有则BODY为父亲元素
    var i, _UIT, _UDOD, _UDTD, _UDSD, _UDCD, _UDED, _UAE, _UBE = [/%/, ["Width", "Height", "Top", "Left"]],
        _UCE = [ //绑定传入数据简写
            ["H", "up"],
            ["HL", "topRight"],
            ["HR", "topleft"],
            ["ML", "left"],
            ["MR", "right"],
            ["B", "down"],
            ["BL", "bottomLeft"],
            ["BR", "bottomRight"]
        ];
    for (i = 0; i < _UBE[1].length; i++) { //使用for循环绑定所传style
        _UBE[0].test(UDE[(_UIT = _UBE[1][i])]) && (UDE[_UIT] = US[{
            "Left": "Width",
            "Top": "Height"
        }[_UIT]] * UDE[_UIT].toInt() / 100)
    }
    _UDOD = $$("div", { //创建窗体
        "className": "UD_W UD_UIU",
        "id": UDE.ContainerId,
        "style": {
            "width": UDE.Width + "px",
            "height": UDE.Height + "px",
            "left": UDE.Left + "px",
            "top": UDE.Top + "px"
        }
    });
    $$("div", { "className": "UD_ICON UD_ICONl"}, _UDOD);//创建窗体的头
    _UDTD = $$("div", { //创建窗体的子集
        "className": "UD_WIMG UD_W_TB",
        "style": {
            "width": (UDE.Width - 30) + "px"
        },
        "onmousedown": [
            [U.UF.F.DragMouseDown, [_UDOD]]
        ]
    }, _UDOD);
    $$("span", {"className": "UD_W_TB_T","innerHTML": UDE.titleName}, _UDTD); //span存放文字地方
    _UDSD = $$("div", {"className": "UD_W_TB_WM"}, _UDTD); //创建存放对象
    $$("span", { //关闭窗口元素
        "title": "关闭",
        "className": "UD_ICON UD_W_TB_WM_Close",
        "onmousedown": U.UF.EV.stopBubble,
        "onclick": [
            [U.UF.F.closeWindow, [_UDOD, (UDE.IsR ? "remove" : "")]]
        ]
    }, _UDSD)
    $$("div", {"className": "UD_ICON UD_ICONR"}, _UDOD); //创建对象
    _UDCD = $$("div", { //创建格式对象
        "className": "UD_WIMG UD_ICONz",
        "style": {
            "height": UDE.Height - 36 + "px"
        },
        "onmousedown": U.UF.EV.stopBubble
    }, _UDOD);
    _UDED = $$("div", { //创建格式对象
        "id": UDE.ContainerId + "Content",
        "className": "UD_W_WC",
        "style": {
            "cssText": "height:100%;" + UDE.CStyle
        }
    }, _UDCD);
    if (UDE.Embed == 0) { //添加内容区域
        $$("iframe", {//设定内容初始值
            "id": UDE.ContentId,
            "name": UDE.ContentId,
            "frameBorder": 0,
            "scrolling": UDE.hasScroll,
            "src": UDE.Content,
            "width": "100%",
            "height": "100%"
        }, _UDED);
    } else {
        U.selectEl(_UDED).append(UDE.Content);
    }
    //事件区域
    _UAE = {
        "with": [{  //事件区域高度
            "Element": _UDCD,
            "height": -36
        }, {    //事件区域宽度
            "Element": _UDTD,
            "height": 0,
            "width": -30
        }]
    }
    if (UDE.hasDraw) {
        for (i = 0; i < _UCE.length; i++) {
            $$("span", {
                "className": "UD_W_WT_" + _UCE[i][0],
                "onmousedown": [
                    [U.UF.F.RCDG, [_UDOD, _UCE[i][1], _UAE]]
                ]//鼠标按中时发生事件,改变窗体。
            }, _UDOD);
        }
    } //允许拉伸
    (UDE.hasMax) && ($$("span", { //最大化拉伸
        "title": "最大化",
        "className": "UD_ICON UD_W_TB_WM_Max",
        "onmousedown": U.UF.EV.stopBubble,
        "onclick": [
            [U.UF.F.windowZooming, [_UDOD, this, _UAE, _UDTD, {
                "onmousedown": _UDTD.onmousedown
            }]]
        ]
    }, _UDSD));
    (UDE.hasMin) && ($$("span", { //最小化拉伸
        "title": "最小化",
        "className": "UD_ICON UD_W_TB_WM_Min",
        "onmousedown": U.UF.EV.stopBubble,
        "onclick": [
            [U.UF.F.windowMinimize, [_UDOD]]
        ]
    }, _UDSD));
    _UDTD.onmousedown = (UDE.Width == US.width && UDE.Height == US.height) ? U.UF.C.apply(this[[U.UF.F.DragElement, [_UDOD, null, _UAE, _UDTD, {
        "onmousedown": _UDTD.onmousedown
    }])]] : _UDTD.onmousedown;
    (UDPD) && (UDPD.appendChild(_UDOD));
    U.UF.SI[UDE.Left || UDE.Top ? "SetDTop" : "PopupWindow"](_UDOD);
    return _UDOD; //添加
}

/**
* 创建1473窗体
* UDPD 父亲元素    
* {int} UDOD主体元素, UTE标题, UDID id, UST表示内容 ,UCS css样式 UW, UH长。
**/
U.UF.UI.SUForms = function (UDOD, UTE, UDID, UST, UCS, UW, UH) {
    var _UDW = US.width,
        _UDH = US.height;
    return U.UF.UI.UForms({    //返回属性
        "Embed": 1,
        "Top": (_UDH - UH - 50) / 2,
        "Left": (_UDW - UW) / 2,
        "Width": UW,
        "Height": UH,
        "ContainerId": UDID,
        "titleName": UTE,
        "ContentId": "",
        "Content": UST,
        "hasScroll": "no",
        "hasMax": false,
        "hasMin": false,
        "hasDraw": false,
        "CStyle": UCS,
        "IsR": true
    }, UDOD);
}

//    getStartE: function () {
//        if (window.getSelection) { //Html5
//            return this.R.startContainer;
//        } 
//        else { 
//            var _UDOD = this.Parent();
//        }
//    },

//    getEndE: function () {
//        if (window.getSelection) {
//            return this.R.endContainer;
//        } //Html5
//        else {
//            var _UDOD = this.Parent();
//        }
//    },

//    selectAll: function () { },


//富文本编辑器
U.UF.E.RuchEditor = function (UDE) {
    U.UF.UI.Editor((U.UF.C.isFunction(UDE) || !UDE) ? { head: true, style: { width: "600px", height: "500px" }, title: false, name: "在线编辑", fcb: UDE} : UDE);
}


//上传文件成功显示到制定的区域
U.UF.E.AddUPWJ = function (UTE, UDBD) {
    var _UDOD, _UDTD, _UDSD, _UIID = Guid.newGuid().replace(/-/g, ""),
    _UME = U.UF.UP.XWPGYS(UTE["type"]);
    if (_UME[2]) { //普通文件上传显示
        _UDOD = $$("div", { "contentEditable": "false", "className": "UD_UPO", "onclick": [[]] });
        _UDTD = $$("div", { "contentEditable": "false", "className": "UD_UPOL" }, _UDOD);
        $$("div", { "contentEditable": "false", "className": "UD_SYVCOI UD_SYID " + _UME[0] }, _UDTD);
        _UDSD = $$("div", { "contentEditable": "false", "className": "UD_UPOR" }, _UDTD);
        $$("div", { "contentEditable": "false", "innerHTML": UTE["name"], "className": "UD_UPORN" }, _UDSD);
        $$("div", { "contentEditable": "false", "innerHTML": "下载", "className": "UD_UPORX" }, _UDSD);
        $$("div", { "contentEditable": "false", "innerHTML": "保存到网盘", "className": "UD_UPORB" }, _UDSD);
        if (UIMG) { _UDTD = UDBD.parentNode; _UDTD.replaceChild(_UDOD, UDBD); }
    }
    else { //图片区域
        if (UDBD) {
            U.UF.IMG.imgReady(U.MD.C.getHeadImage(US.FILESYSTEMURL + UTE["URL"]), null, function(){U.UF.E.ImgOnLoad(UDBD]]]), U.UF.C.apply(null, [[U.UF.E.ImgOnLoad, [);});
        } //加载原图
        else {
            var _UIID = Guid.newGuid().replace(/-/g, ""); _UDOD = $$("img", { "id": _UIID, "src": "/img/imgloading.gif", "onmousedown": "return false", "onselectstart": "return false", "ondragstart": "return false", "style": { "cssText": "max-width:100%;width:auto;height:auto;"} });
        } //正在上传等待
    }
}

//上传图片预加载成功或者失败
U.UF.E.ImgOnLoad = function (UIID) {
    if (UIID) {
        U.selectEl(UIID).addAttrArray({ "onload": "if (U.MD.F) { U.MD.F.H.SUIMG(retElement); }", "src": this.src, "width": this.width, "height": this.height });
    }
    else {
        U.MD.C.imgError(this, 2);
    }
}


/**
* 创建群组
*
* @param  {object} 群信息
*/
U.MD.F.J.APPGroup = function (UDE) {
    //  U.MD.F.J.GroupInfoForm(UDE, null);
    //    var _UTE,
    //    _UDFD = $$("div", {}, U.selectEl("#UD_SY")[0]),
    //    _UDMD = U.MD.F.J.GroupInfoForm(UDE, null, _UDFD), //插入添加创建群信息
    //    _UDTD = U.MD.F.J.SelectFriendForm($("#UD_SYTC")[0], null, _UDFD); //插入添加好友的信息

    //    //设置样式处理
    //    $[_UDMD.form, _UDTD.form].addAttrArray({ onmousedown: null, "className": "UD_SYF_S", "style": { "border": "0", "position": "relative", "float": "left", "top": "0", "left": "0"} });
    //    _UDMD.head.onmousedown = _UDTD.head.onmousedown = null;
    //    _UDMD.form.style.borderRight = "1px solid #444";

    //    //弹出添加群的框
    //    _UTE = new U.UF.UI.form({ id: "U_F_CONET", isContain: false, content: _UDFD, bst: { "style": { "overflow": "hidden"} },
    //        "style": { "width": "736px", "height": "485px", "backgroundColor": "transparent", "overflow": "hidden" },
    //        title: false, draw: false, max: false, close: false, min: false
    //    });

    //    _UDMD.cl.onclick = _UDTD.cl.onclick = U.UF.C.apply(_UTE, [[_UTE.shut]]);  //关闭按钮处理
}


/**
* word编辑处理  不使用
*
*/
U.MD.O.Del = function (UTE) {
    //    var i, j, k, _UTF, _UDMD, _UKE = [], _UVE = [], _UCE = ["nodeValue", "innerHTML"], _UAE = ["width", "height", "minHeight", "minWidth"], _UDOD = $$("div", { "innerHTML": UTE.GetSelectedHtml() }), _UDCD = U.selectEl(_UDOD).Nodes(), _UIE = UTE.GetGBWZ(), _UDPD = UTE.Parent(), _UDAD = U.selectEl(_UDPD).Nodes(), _UTH = (_UDPD.nodeValue == null ? _UDPD.innerText : _UDPD.nodeValue).replace(/\s|\n/g, "");
    //    if ($(_UDOD).Child().length) {
    //        if (_UDPD.nodeType != 3 && UTE.isE(_UDPD)) { _UVE.push(_UDPD); } for (i = 0; i < _UDAD.length; i++) { if (_UDAD[i].nodeType != 3 && UTE.isE(_UDAD[i])) { _UVE.push(_UDAD[i]); }; }
    //        for (k = 0; k < Math.min(_UVE.length, 2); k++) {
    //            _UDMD = _UVE; j = k ? _UDMD.length - 1 : 0;
    //            do { if (UTE.isE(_UDMD[j])) { _UDCD = _UDMD[j]; _UDMD = U.selectEl(_UDCD).Nodes(); j = j = k ? _UDMD.length : -1; } } while ((k ? ((j -= 1) > -1) : ((j += 1) < _UDMD.length)));
    //            if (_UDCD) { for (i = 0; i < _UCE.length; i++) { if (_UDCD[_UCE[i]] != null) { _UDCD[_UCE[i]] = _UDCD[_UCE[i]].substring.apply(_UDCD[_UCE[i]], k ? [(UTE.GetGBWZ(_UDCD, !k))] : [0, (UTE.GetGBWZ(_UDCD, !k))]); break; } } _UKE.push(_UDCD); }
    //        }
    //        for (i = 0; i < _UVE.length; i++) {
    //            _UDCD = U.selectEl("*", _UVE[i]);
    //            if (_UDCD.length) {
    //                for (j = 0; j < _UDCD.length; j++) {
    //                    //   for (k = 0; k < _UAE.length; k++) { if ((_UTF = _UDCD[j].style[_UAE[k]]) && _UTF != "auto") { break; } }
    //                    if ((k != _UAE.length || (_UDCD[j].className || _UDCD[j].id))) {
    //                        if (!$(_UDCD[j]).Child().length) {
    //                            for (k = 0; k < _UCE.length; k++) {
    //                                if (_UDCD[j][_UCE[k]] != null && (!_UKE[0] || !U.UF.EL.isChild(_UDCD[j], _UKE[0])) && (!_UKE[1] || !U.UF.EL.isChild(_UDCD[j], _UKE[1]))) { _UDCD[j][_UCE[k]] = ""; break; }
    //                            }
    //                        }
    //                    }
    //                    else if (_UDCD[j] != _UKE[0] && _UDCD[j] != _UKE[1] && !_UDCD[j].innerHTML) { U.selectEl(_UDCD[j]).remove(); }
    //                }
    //            }
    //            else { for (i = 0; i < _UKE.length; i++) { if (!U.UF.EL.isChild(_UVE[i], _UKE[i])) { if (_UVE[i].className || _UVE[i].id) { U.selectEl(_UVE[i]).remove(); } else { _UVE[i].innerTEXT = ""; } break; } } }
    //        }
    //        UTE.R.collapse(false); return _UKE;
    //    }
}

U.MD.O.OLWordUP = function (UTF, UDE, UTE, UT, UWE) {
    //    var i, _USE, _UCE = ["nodeValue", "innerHTML"], _UIE = UTE.GetGBWZ(), _UDPD = UTE.Parent(), _UTH = (_UDPD.nodeValue == null ? _UDPD.innerText : _UDPD.nodeValue).replace(/\s|\n/g, "");
    //    if (!U.UF.C.isString(UTF) && (!UT[1] && !UT[2] && !UT[3])) {
    //        if (((UT[0] > 47 && UT[0] < 112) || (UT[0] > 185 && UT[0] < 193) || (UT[0] > 218 && UT[0] < 223))) {
    //            if ((_USE = U.MD.O.Del(UTE)) && _USE[0]) { UTE.QX(-1, -1, _USE[0]); }
    //        }
    //    }
    //    else {
    //        switch (UTF) {
    //            case "del": case "Backspace":
    //                if ((_USE = U.MD.O.Del(UTE)) && _USE[0]) { return 1; }
    //                else if (_UDPD.className) { if ((!_UIE && UTF == "Backspace") || (_UIE == _UTH.length && UTF == "del")) { return 1; } else if (_UTH.length == 1 && _UTH != "") { _UDPD.innerText = ""; return 1; } else if (!_UTH.length) { return 1; } }
    //                break;
    //            case "Enter":
    //                if (_UDPD.nodeType != 3) {
    //                    if (("DIV,SPAN,P".indexOf(_UDPD.tagName) == -1 && _UDPD.className.indexOf("return_key") > -1)) { return 1; }
    //                    else if (_UDPD.style.cssText) { UTE.Replace("<div>&#8203</div>"); return 1; }
    //                }
    //                break;
    //            case "save":
    //                (UWE.U.MD.O.W || UWE.U.MD.O.E).Save(); return 1;
    //                break;
    //        }
    //    }
}



//#region 初始化首页

///**
//* 初始化首页
//*
//* @param  {object} 任务栏数据
//*/
//U.MD.D.H.SYTJ = function (UDE) {
//    if (UDE) {  //打印推荐用户
//        U.MD.D.H.PSYTJN($("#UD_SYSXSSXOC")[0], UDE);
//    }
//    else {
//        U.A.Request(US.CD, [US.DB, "UseStudio_Friends", "RecommendFriends", US.userInfo.userid || US.EMPTYGUID, 0, 11]), U.MD.D.H.AsynSYTJ, [""];
//    }
//}

///**
//* 首页推荐数据异步推荐
//*
//* @param  {object} 任务栏数据
//*/
//U.MD.D.H.AsynSYTJ = function (r) {
//    U.MD.D.H.ET["TJ"] = r = r.value;
//    U.MD.D.H.SYTJ(r);
//}

///**
//* 打印首页推荐好友New
//*
//* @param  {object} 任务栏数据
//*/
//U.MD.D.H.PSYTJN = function (UDOD, UDE, UTF, UP) {
//    var i, _UDSD = $$("frag"); UDOD.innerText = "";
//    for (i = 0; i < UDE.length; i++) {
//        $$("img", { "onerror": U.MD.C.imgError, "title": UDE[i].UserName, "alt": UDE[i].UserName, "onclick": function(){U.MD.U.V.ViewOtherUserInfo(UDE[i].UserID);}, "src": U.MD.C.getHeadImage(UDE[i].UserThumbnailImageHead) }, _UDSD);
//    }
//    (UTF) && ($$("div", { "className": "UD_SYSXLTTI UD_SYSXLTTIO U_Boom_Img_ys2017", "title": "点击刷新", "onclick": function(){U.MD.D.H.SXZX(UP || 2, this, 28, function(){U.MD.D.H.PSYTJNSX(UTF);});} }, _UDSD)); UDOD.appendChild(_UDSD);
//}

//#endregion




/*
Form窗体的使用 
1、可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form();
2、也可以省略new的步骤,直接U.Alert(),出来的结果为多份。
3、多窗口模式调用方法,var e= U.UF.UI.form (UDE); e.addExtendForm();
参数一:_UFE[add "name":"add"]
参数二:_UTT 存放大小变化的值
返回值:
*/

/**
* 可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form();
*
* @param  {object} 窗体使用传参
----------min 是否允许最小化
----------max 是否允许最大化
----------id 窗体id
----------style 窗体的样式
----------content 窗体的内容
----------title 窗体的标题
----------hst 标题设置
----------cst 内容设置
---------__top__  是否允许点击置顶
* @return  {object} 窗体实体
*/
   U.UF.UI.form = U.UF.UI.form = function (UDE) {
    return new new U.UF.UI.form.init(UDE).create();
}


/**
* 可以像java语言的用法,用new调用多份,例如: var a=new new U.UF.UI.form();
*
* @param  {object} 窗体使用传参
----------min 是否允许最小化
----------max 是否允许最大化
----------id 窗体id
----------style 窗体的样式
----------content 窗体的内容
----------title 窗体的标题
----------hst 标题设置
----------bst 内容设置
----------draw 是否允许拉伸
* @return  {object} 窗体本身
*/
new U.UF.UI.form.init = function (UDE) { //初始化
    U.UF.C.AddObj(this, UDE);
    return this;
}

new U.UF.UI.form.et = {}; //所有窗体集合

//窗体使用函数
new U.UF.UI.form.init.prototype = {
    et: new U.UF.UI.form.et, //所有窗体集合 
    //构建元素
    create: function () {
        var i, _USE, _UDOD, _UDTD, _UDSD, _UAE, _UTE = this,
                _UTI = this.title, //标题元素
                _UCT = this.content, //内容元素
                _UCE = [
                    ["H", "up"],
                    ["HL", "topRight"],
                    ["HR", "topleft"],
                    ["ML", "left"],
                    ["MR", "right"],
                    ["B", "down"],
                    ["BL", "bottomLeft"],
                    ["BR", "bottomRight"]
                ];
        if (this.id && this.et[this.id] && this.et[this.id].form.id == this.id) { //无需创建
            _UTE = this.et[this.id]; //获取当前窗体属性
            _UTE.form.style.cssText = "";
            (_UTE.body) && (_UTE.body.style.cssText = "");
            U.selectEl(_UTE.form).addAttrArray({
                className: this.className ? this.className : "UD_SYF_S UD_SYKO", //css样式名"UD_SYF_S UD_SYKO"
                close: U.UF.C.apply(_UTE, _UTE.shut),
                "__top__": this.top ? "false" : "", //是否允许点击置顶
                "__right__": this.right || "",
                usform: "true", //设置窗体属性
                "id": this.id || "", //绑定继承ID
                "style": this.style || {}
            });
            ($(_UTE.body).addAttrArray(this.bst));
            (_UTI && (_UTE.title = _UTI)) && (U.UF.C.isString(_UTI) ? (_UTE.head.innerHTML = _UTI) : (_UTE.head.innerHTML = "", U.selectEl(_UTE.head).append(_UTI))); //重新设置标题
            (_UCT && (_UTE.content = _UCT)) && (U.UF.C.isString(_UCT) ? ((U.UF.C.isUrl(_UCT)) ? "" : _UTE.body.innerHTML = _UCT) : (($(_UCT).Parent() != _UTE.body) && (_UTE.body.innerText = "", U.selectEl(_UTE.body).append(_UCT)))); //内容设置
            _UDOD = _UTE.form;
        }
        else { //创建窗体
            (this.form = _UDOD = $$("div", {  //创建元素
                className: this.className ? this.className : "UD_SYF_S UD_SYKO", //css样式名"UD_SYF_S UD_SYKO"
                close: function(){this.shut();},
                "__top__": this.top ? "false" : "", //是否允许点击置顶
                "__right__": this.right || "",
                usform: "true", //设置窗体属性
                "id": this.id || "", //绑定继承ID
                "style": this.style || {}
            })).onresize = U.UF.C.apply(this, [[this.size]]); //设置元素变化事件
            (this.attr) && ($(this.form).addAttrArray(this.attr));
            if (this.title !== false) {
                this.head = _UDTD = $$("div", {
                    className: "UD_SYF_ST",
                    onmousedown: function(){U.UF.F.DragMouseDown(_UDOD, null, this);}  //窗体拖动//鼠标事件按下发生
                }, _UDOD);
                //重载hst为headerStyle,更加语义化.
                (this.headerStyle) && ($(_UDTD).addAttrArray(this.headerStyle));
                (this.hst) && ($(_UDTD).addAttrArray(this.hst)); //给标题头部添加样式
                (_UTI != null) && ($(_UDTD).append(_UTI)); //添加头部
            } else if (this.draw !== false) {
                _UDOD.onmousedown = function(){U.UF.F.DragMouseDown(_UDOD);}; //窗体拖动
            }
            if (this.content !== false) {//判断元素是否有bst,添加
                _UDTD = $$("div", {
                    className: "UD_SYF_SC"
                }, _UDOD);
                this.body = _UDTD = $$("div", {
                    usbody: "true",
                    className: "UD_SYF_SCO"
                }, _UDTD);
                (this.bst) && ($(this.body).addAttrArray(this.bst));
                U.selectEl(_UDTD).bind("scroll", function(){this.scroll();}); //避免闭包耗费资源。
                //iframe的处理方式
                if (_UCT != null) {
                    if (U.UF.C.isUrl(_UCT)) {
                        $$("iframe", {
                            scrolling: this.Scroll || "no",
                            frameBorder: 0,
                            width: "100%",
                            height: "100%",
                            src: _UCT
                        }, _UDTD);
                    } else if (_UCT) {
                        (this.bst) && ($(_UDTD).addAttrArray(this.bst));
                        if (U.UF.C.isString()) {//添加内容
                            _UDTD.innerHTML = _UCT;
                        }
                        else {
                            U.selectEl(_UDTD).append(_UCT); //添加所选元素
                        }
                    }
                }
            }
            this.zie = _UAE = {//添加属性size
                fun: function(){this.size();}
            };
            _UDTD = $$("div", {//创建_UDTD添加到_UDOD
                className: "UD_W_WT"//添加CLASS属性
            }, _UDOD);
            if (this.draw !== false) {
                for (i = 0; i < _UCE.length; i++) {
                    $$("div", {
                        className: "UD_W_WT_" + _UCE[i][0],
                        onmousedown: [//鼠标事件
                                [U.UF.F.RCDG, [_UDOD, _UCE[i][1], _UAE]]
                            ]
                    }, _UDTD);
                }
            } //允许拉伸
            U.selectEl(this.SO ? (this.SO[0] || this.SO) : ($("#UD_SY")[0] || document.body)).append(this.form, 0, this.SO ? this.SO[1] : null);
            _USE = this.head ? U.UF.EL.getElementInfo(this.head) : null;
            _UDSD = $$("div", {
                className: "UD_SYF_SCA",
                style: {
                    "lineHight": _USE ? _USE.CH + "px" : "",
                    "top": _USE ? Math.ceil((_USE.OH - 20) / 2) + "px" : "15px" //定义高度属性为(_USE.OH - 20) / 2
                }
            }, _UDOD); //添加至_UDOD
            //功能将处理
            (this.htask) && ($(_UDSD).addAttrArray(this.htask));
            (this.close !== false) && (this.close = this.close || {}, this.cl = $$("div", {
                className: "UD_SYF_SS U_Boom_Img_ys2017",
                title: "点击关闭",
                onmousedown: U.UF.EV.stopBubble,
                onclick: function(){this.shut();}
            }, _UDSD));
            _USE = this.et[this.id] = this;
            //最大化最小化的按钮
            (this.max !== false) && (this.max = this.max || {}, this.m = _UDTD = $$("div", {
                className: "UD_SYF_SD U_Boom_Img_ys2017",
                title: "最大化",
                onmousedown: U.UF.EV.stopBubble
            }, _UDSD), _UDTD.onclick = U.UF.C.apply(null, [
                    [U.UF.F.windowZooming, ([_UDOD, _UDTD, {
                        fun: U.UF.C.apply(this, [
                            [this.size]
                        ])
                    }, this.head || _UDOD, {
                        "onmousedown": (this.head || _UDOD).onmousedown
                    }])]
                ]), (this.head) && (this.head.ondblclick = U.UF.C.apply(this.head, function () {
                    (event.srcElement == this || U.UF.EL.isChild(this, event.srcElement)) && (_UDTD.onclick());
                }))); //
            (this.min !== false) && (this.min = this.min || {}, this.mi = $$("div", {
                className: "UD_SYF_SF U_Boom_Img_ys2017",
                title: "最小化",
                onmousedown: U.UF.EV.stopBubble,
                onclick: [
                        [U.UF.F.windowMinimize, [_UDOD]]
                    ]
            }, _UDSD));
        }
        //不允许拖动设置
        (_UTE.isContain) && (((_UTE.head) && (_UTE.head.onmousedown = null)) || (_UDOD.onmousedown = null)); //$(_UDOD).css({ position: "static" }),
        _UAE = _UTE.style ? [_UTE.style.top, _UTE.style.left] : [];
        //弹出窗体
        (!this.style || this.style.display != "none") && (U.UF.SI[_UAE[0] && (_UAE[0].indexOf("px") > -1 || _UAE[0].indexOf("%") > -1) || _UAE[1] && (_UAE[1].indexOf("px") > -1 || _UAE[1].indexOf("%") > -1) ? "SetDTop" : "PopupWindow"](_UDOD, true));
        _UTE.form = _UDOD;
        //设置置顶
        (_UTE.top) && ($(_UTE.form).css("zIndex", 9999));
        _UTE.size(true);
        return _UTE;
    },
    //关闭窗体
    shut: function () {
        if (!this.close || !this.close.onclick || this.close.onclick(this.form) !== false) {
            U.UF.F.closeWindow(this.form, this.del ? this.del : null); //关闭窗体
        }
    },
    /**
    * 变大缩小适应
    *
    * @param  {object} 窗体使用传参
    */
    size: function (UTF) {
        if (this.draw !== false && this.max !== false || this.title !== false) {
            if (!(this.bst && this.bst.height) && this.form.style.height != "auto") {  //判断是否为自适应
                var _UH,
            _USE = [this.head ? U.UF.EL.getElementInfo(this.head) : [], U.UF.EL.getElementInfo(this.body)] //获取padding大小
                //|| (US.height * 0.7); //等比例百分比
                if (_UH = U.selectEl(this.form).height()) { U.selectEl(this.body).css("height", _UH - (_USE[0]["OH"] || 0) - (_USE[1]["PD"][0] || 0) - (_USE[1]["PD"][2] || 0) + "px"); } //大小设置
            }
            if (UTF !== true) { //利用回调函数调用
                (!this.TI && this.resize) && (this.resize.call(this, this.form, this.head, this.body)); //回调窗体变化
                clearTimeout(this.TI);
                this.IsSize = true;
                this.TI = setTimeout(function(){this.sizeend();}, 0); //窗体结束调用
            }
        }
    },
    //大小变化结束出发
    sizeend: function () {
        this.TI = null;
        (this.resizeend) && (this.resizeend(this.form));
    },
    //窗体变化
    allSize: function () {
        var i, _UDE = this.et;
        for (i in _UDE) {
            if (_UDE[i].IsSize) {
                _UDE[i].IsSize = false;
            } else {
                _UDE[i].size();
            }
        }
    },
    //滚动使用
    scroll: function () {
        if (this.s || this.ss || this.se) {
            (this.s) && (this.s());
            (!this.iss) && (this.scrollStart());
            this.iss = true; //滚动开始触发
            clearTimeout(this.TI);
            this.TI = setTimeout(function(){this.scrollEnd();}, 0); //触发加载
        }
    },
    //滚动开始
    scrollStart: function () {
        (this.ss) && (this.ss()); //滚动开始回调
    },
    //滚动结束
    scrollEnd: function () {
        (this.se) && (this.se()); //滚动结束回调
        this.iss = false;
    },
    //滚动到底部触发
    scrollBottom: function () {
    },
    //添加属性
    add: function (UDE) {
        U.UF.C.AddObj(this, UDE);
    }
}


/**
* onload成功进入
* @param  {element} 加载的元素
* @param  {function} 回调函数
*/
//U.UF.DL.iframeLoad.AILD = function (UDOD, cb) {
//    var _URS = UDOD.readyState;
//    (_URS == "complete" || _URS == "loaded" || _URS == null) && (UDOD.complete = "complete", UDOD.onreadystatechange = null, (U.UF.C.isFunction(cb) ? cb.call(UDOD) : function(){cb();}()), UDOD.complete = null);
//}

////判断文件是否存在
//U.UF.DL.ISWJCZ = function () {
//    $.ajax(UURL, "", cb, "", { "type": "get" });
//}

/**
设置元素loading
问题:
----添加一个参数,允许往loading中传递元素。
----在第一个loading数据量大未出数据的时候,点第二个loading,第二个先获取到数据,会否第二个会先出效果。
----由于第一次点击数据量大,后台是否能够第二个数据先出。
----由于第一次点击数据量大,前台loading的效果是否支持第二以及后续点击先出。
*
* @param  {element} 元素
* @param  {boolean} loading类型
------------true 、 false 两种loading   
*/
/*U.UF.DL.loading = function (UDOD, UTF) {
    if (UDOD) {
        var i, _UAE, _UDTD, _UDPD = U.selectEl(UDOD).Parent(),
        _UDSD = UDOD ? UDOD.__ULOADElement__ : null, //该元素的loading元素
        _USE = { width: "", height: "", overflow: "", padding: "", borderWidth: "", minHeight: "", minWidth: "", cssText: "" }; //loading设置样式区域
        if (_UDSD) {//loading存在添加计数
            if (UDOD != _UDSD) { _UDSD.P++; }
        }
        else {  //无loading 需要loading的情况
            _UDSD = UDOD.__ULOADElement__ = $$("div", { "P": 0, "className": UDOD.className, //这个为loading元素
                "style": { "cssText": UDOD.style.cssText + ";" + ($(UDOD).css("display") == "none" ? "display:block" : "") },
                "onresize": function(){U.UF.DL.loading.Donresize(this);}
            });
            if (UTF === true) {//loading样式1
                $$("div", { "style": { "cssText": "overflow:hidden;width:40px;height:20px;background:url('/img/Loading.gif') 0px 0px no-repeat;margin:auto"} }, _UDSD);
            }
            else { //loading样式2
                $$("div", { "style": { "cssText": "position:relative;width:" + (UTF && UTF.width ? UTF.width : "33px") + ";height:" + (UTF && UTF.height ? UTF.height : "33px") + ";background:url('" + (UTF && UTF.img ? UTF.img : "/img/UAL.gif") + "') 0px 0px no-repeat;margin:auto"} }, _UDSD);
            }
            try { _UDPD.insertBefore(_UDSD, UDOD); } //loading 添加到指定的位置
            catch (e) { }
            //loading样式设置
            U.UF.DL.loading.Donresize(_UDSD, UDOD, UTF);
            _UAE = UDOD.style;
            U.Json.Each(_USE,function (USV, UTP) { _USE[UTP] = _UAE[UTP]; });
            //原元素缩小
            (UDOD = U.selectEl(UDOD)).addAttrArray({ "__UCS__": _USE, "style": { "cssText": "width:0px;overflow:hidden;height:0px;padding:0;min-height:0px;min-width:0px;border-width:0px;"} });
        }
        return _UDSD;
    }
}*/


/**
* css动画
*
* @return  {array} 过渡属性的值
-----------[0] 动画的css 
-----------[1] 动画的回调函数 
-----------[2] 兼容的前缀 
-----------[3] 浏览器过渡的监视属性 
-----------[4] 浏览器结束的属性 
*/
U.UF.C.CssAm = function () {
    var i, //遍历初始化
    _USE = $$("div").style; //获取div的样式
    //_UDE css动画属性名数组
    var _UDE = {
        "animation": ["animation", "animationEnd", "", "webkitRequest", "webkitCancel"],
        "OTransition": ["-o-transition", "oTransitionEnd", "-o-", "oRequest", "oCancel"],
        "MozTransition": ["-moz-transition", "transitionend", "-moz-", "mozRequest", "mozCancel"],
        "MsTransform": ["-ms-transition", "transitionend", "-ms-"],
        "transition": ["transition", "transitionend", "", "r", "cancel"]
    }
    for (i in _UDE) { //循环判断兼容
        if (_UDE.hasOwnProperty(i) && _USE[i] !== undefined) {
            _UDE[i].push(i);
            return _UDE[i];
        }
    }
}

,

    Auxiliary: {
        an: function (UDE) { //缓存对象设置

        },
        slideToggle: function (UDE, UIE, UL, cb) { //下拉动画回调
            this[UIE].style.cssText = UDE; (UIE == UL - 1 && cb) && (cb());
        },
        animate: function (UDE, UAE, UIE) {//js动画调用使用区域
            var _UTF, _USE, i = UDE[0] || 0,
            _UL = UDE[1] || i + 1,
            _UTID = UDE[2],
            _UCB = UDE[3];
            for (; i < _UL; i++) {
                if (UIE) { _USE = U.UF.C.JsEM(this[i], UAE, UIE); }
                else { _USE = UAE; _UTF = true; } this.addAttrArray(_USE, i);
            }
            if (_UTF) {
                (_UTID == null && _UCB) && (_UCB()); return true;
            }
        },
        selectel: function (UTF, UDE) { //条件选择元素
            var _UFT, i = 0, _UL = UDE.length, _UCE = [], _UAE = U.select(), _UIE = UTF.match(U.UF.S.RNum);
            if (_UIE) { _UIE = _UIE[0].toInt(); switch (UTF.replace(_UIE + "", "")) { case ">": i = _UIE + 1; break; case "<": _UL = _UIE; break; default: i = _UIE; _UL = i + 1; break; } }
            for (; i < _UL; i++) { switch (UTF) { case "even": _UFT = !(i % 2); break; case "odd": _UFT = (i % 2) > 0; break; default: _UFT = true; break; } (_UFT) && (_UCE.push(UDE[i])); _UFT = false; }
            return _UAE.osadd(_UCE);
        }
    }

/**
* css动画异步
*
* @return  {array} 过渡属性的值
*/
U.UF.C.JsEM = function (UDOD, UDE, UHK, UTF) {
    var i, //遍历初始化
    j, //循环初始化
    _UCE, //储存字符串
    _USE = [], //初始化数组
    _UME = {}, //初始化对象
    _UM = /[^\d-|.]+/ig, //正则表达式
    _UNUM = /[\d-|.]+/ig; //正则表达式
    for (i in UDE) {
        if (UDE.hasOwnProperty(i)) {
            if (i == "style") {//style的制作
                _UCE = U.UF.C.jsonToStr(U.UF.C.JsEM(UDOD[i], UDE[i], UHK, true));
                (_UCE.length > 2) && (_UME[i] = { "cssText": _UCE.replace(/["|{|}]+/ig, "").replace(/,/ig, ";") });
            }
            else {//普通动画
                _USE[0] = UDOD[i] || 0; _USE[1] = UDE[i]; for (j = 0; j < _USE.length; j++) {
                    (typeof _USE[j] != "number") && (_USE[j] = Number(_USE[j].replace(_UM, "")));
                } //生成位置
                if (!isNaN(_USE[0])) { //动画获取
                    j = UTF ? U.UF.EL.styleConversion(i, true) : i;
                    _UME[j] = _USE[0] + ((_USE[1] - _USE[0]) * UHK); _USE[1] = UDOD[i] ? UDOD : UDE;
                    (typeof _USE[1][i] == "string") && (_UME[j] = _USE[1][i].replace(_UNUM, _UME[j]));
                }
            }
        }
    }
    return _UME;
}


/**
* 动画初始化
*
* @param  {object} 动画设置对象 
*/
U.UF.C.Animation = function (UDE) { //基础对象
    return new U.UF.C.Animation.init(UDE, U.UF.C.Animation.get());
}

U.UF.C.Animation.get = function () {
    var i, j, //循环变量
    _UFE,
    _UDE = [["r", "cancel"], ["", "moz", "webkit", "o"]]; //兼容
    //获取兼容字符串
    for (i = 0; i < _UDE[0].length; i++) {
        for (j = 0; j < _UDE[1].length; j++) {
            if (_UFE = window[_UDE[1][j] + (j ? _UDE[0][i].replace(/\b(\w)|\s(\w)/g, function (e) { //通过循环和获取 每次获取的时候利用首字母大写设置
                return e.toUpperCase();
            }) : _UDE[0][i]) + "AnimationFrame"]) { _UDE[0][i] = _UFE; break; };
        }
    }
    _UDE = _UDE[0];
    (typeof _UDE[0] == "string") && (_UDE[0] = _UDE[1] = null);
    return _UDE;
}

/**
* 获取鼠标位置
*
* @param  {object} 对象 
*/
U.UF.C.Animation.init = function (UDE, USE) {//动画初始化
    U.UF.C.AddObj(this, UDE); //添加动画对象
    this.type = USE || U.UF.C.Animation.get();
    this.sm = (USE && USE[0]) ? new Date() : Math.ceil(this.ti / 20); //动画开始的时间  
    this.start(USE); //开始动画
}

//动画方法
U.UF.C.Animation.init.prototype = {
    start: function (USE) {//这里开始了动画 
        var _UFN = (USE || this.type)[0];
        this.tm = (_UFN ? _UFN(function(){this.time();}) : window.setInterval(function(){this.time(true);}, 20)); //动画使用开始
    },
    time: function (UTF) {//动画运行
        var _UTI, _UJT, _UST;
        if (UTF == true) { //普通计时器动画
            _UTI = 20 / this.ti;
            (this.ti <= 0) && (this.stop(), _UTI = null);
            this.cb(_UTI); this.ti -= 20;
        }
        else {//利用重绘动画使用
            _UTI = new Date(); //据偶去当前的时间
            _UJT = _UTI - this.sm;
            _UST = _UJT / this.ti;
            this.sm = _UTI; //时间的变化
            this.ti -= _UJT; //总时间的减少
            (this.ti <= 0) && (_UST = null, this.stop()); //调用停止函数
            (_UST !== 0) && (this.cb(_UST)); //结束的回调
            (_UST !== null) && (this.start()); //重复调用
        }
    },
    stop: function () {//动画结束
        (this.type[1] || window.clearInterval)(this.tm);
    }
}


/**
* HTML模版页面 支持js内置 类似于js上的php ejs
*
* @param  {element} 需要变化的元素
* @param  {object} 传参对象
*/
U.UF.C.Simulation = function (UDOD, UDE) {
    new U.UF.C.Simulation.init(UDOD, UDE).exec();
}

/**
* 初始化HTML模版页面 支持js内置 类似于js上的php ejs
*
* @param  {element} 需要变化的元素
* @param  {object} 传参对象
*/
U.UF.C.Simulation.init = function (UDOD, UDE) {
    this.el = UDOD; //
    U.UF.C.AddObj(this, UDE);
    return this;
}

U.UF.C.Simulation.init.prototype = {
    //正则配置
    config: { m: /^\\<{+([\s\S])+\\}>$/, //  /\+=([\s\S])+?\+$/g
        zs: "+=", ze: "+", c: /\\/g,
        d: /(?=["])/g, s: "<{", e: "}>",
        f: "%",
        t: "([\\s\\S])*?"
    },
    //执行
    exec: function () {
        try {
            var i, _UCS = "",
            _UPE = [],
            _UT = this,
            _UKE = this.key,
            _UCE = this.config,
            _USE = (this.el.innerHTML || this.el).trim(" ").replace(_UCE.c, "\\\\").replace(_UCE.d, "\\").replace(this.getConfig("\\\\", "", "", "\\\\"),
            function (UST) { //配置输出查看 
                return UST.replace("\\" + _UCE.s, _UCE.s.replaceHtmlSign()).replace("\\" + _UCE.e, _UCE.e.replaceHtmlSign());
            });

            //函数匹配区域
            _USE = _USE.replace(this.getConfig("", "", _UCE.f), function (UST) {
                return UST.replace(_UCE.s + _UCE.f, "\";").replace(_UCE.e, ";uhtml+=\"");
            });

            _USE = _USE.replace(this.getConfig(), function (UST) {
                return "\"+" + ((UST.replace(_UCE.s, "").replace(_UCE.e, "").replace(_UT.re("\\" + _UCE.zs + _UCE.t + "\\" + _UCE.ze),
                function (UST) {
                    return UST.replace(_UCE.zs, "").replace(_UCE.ze, "").replaceHtmlSign();
                })) || "\"\"") + "+\"";
            }); //配置html输出区域
            _USE = 'var uhtml="' + _USE + '"; return uhtml;';

            //变量传参
            if (_UKE) {
                for (i in _UKE) {
                    (_UKE.hasOwnProperty(i)) && (_UCS += (_UCS ? "," : "") + i, _UPE.push(_UKE[i]));
                }
            };
            _USE = Function(_UCS, _USE).apply(this.that || this, _UPE); //利用函数执行回调处理
            (this.cb) && (this.cb(_USE)); //获取模版回调
        }
        catch (e) { throw new Error(e); }
    },
    /**
    * 获取正则
    *
    * @param  {string} 正则字符串
    */
    re: function (URE) {
        return new RegExp(URE, "g");
    },
    /**
    * 初始化HTML模版页面 支持js内置 类似于js上的php ejs
    *
    * @param  {string} 正则开头
    * @param  {string} 正则结束
    * @param  {string} 正则中间的内容
    * @param  {string} 正则结束的内容
    * @return  {string} 正则内容
    */
    getConfig: function (US, UE, UOS, UOE) { //获取系统配置
        var _UCE = this.config;
        return this.re((US || "") + _UCE.s + (UOS || "") + _UCE.t + (UOE || "") + _UCE.e + (UE || ""));
    },
    getHtml: function () { //获取生成的html代码

    },
    /**
    * 正则对象
    *
    * @param  {object} 正则设置
    */
    set: function (UDE) { //设置config
        var i, _UCE = this.config;
        for (i in _UCE) {
            (UDE.hasOwnProperty(i)) && (UDE[i] = _UCE[i]);
        }
        return this;
    }
}



//#region 处理了用户是否活动在当前页面的处理,当用户活动到当前页面的时候则五秒刷继续运行,当用户没有聚焦五秒刷取消

///**
//*用户页面状态使用次数 统计页面计数 配合统一账号 同一浏览器多登问题
//*本地存储方式进行存储数据 不污染cookie
//*/
//U.MD.D.record = function () {
//    //本地存储需要有一套完整的数据结构及方案。暂时放这里,没用到。
//    U.MD.D.LocalStorage = U.DW.local(); //初始化本地存储
//    U.MD.D.LocalStorage.set("user", { value: "" }); //设置用户访问值
//    U.MD.D.LocalStorage.remove("fm"); //清除前面记录
//    U.MD.D.LocalStorage.set("ati", Number(U.MD.D.LocalStorage.get("ati") || 0) + 1); //添加页面访问值
//}

///**
//* 页面聚焦使用
//*/
//U.MD.D.focus = function () {
//    U.MD.D.LocalStorage.off();    //取消页面消息通知
//    U.MD.C.T.onesetInterval();    //启动页面数据更新
//}

///**
//* 页面失去焦点使用
//*/
//U.MD.D.blur = function () {
//    U.MD.D.LocalStorage.on(U.MD.D.Asynblur);    //重新检视页面
//    if (U.MD.D.LocalStorage.get("ati") > 0) {
//        U.MD.C.T.ClearInterval();    //清理页面数据获取
//    }
//}

///**
//* 这里为数据异步 使得各个页面 共享数据 一个浏览器允许多登 数据共享处理
//*/
//U.MD.D.Asynblur = function (errorobj) {
//    var _userid = US.userInfo.userid; //用户ID
//    var _value = U.UF.C.strToJson(errorobj["newValue"]); //获取页面值
//    if (U.MD.D.LocalStorage.get("ati") > 0) { //如果活动数大于0 停止这个页面活动
//        U.MD.C.T.ClearInterval();
//    }
//    else { //页面活动设置
//        U.MD.C.T.onesetInterval();
//    }
//    //数据共享分类处理
//    switch (errorobj.key) {
//        case "fm": //好友消息数据共享处理
//            if (_value.uid == _userid) {
//                U.MD.F.N.asynMessageService(_value, true);
//            }
//            break;
//        case "user": //用户数据
//            if ((_value.uid == _userid) && _value.value == "upline") {
//                U.MD.U.LO.emptyUserInfo();
//            }
//            break;
//    }
//}

//#endregion




//#region 错误区域,需要在界面中显示,如何显示,先设计,后制作功能。然后重写一个函数,不需要类。

//错误区域初始化
U.A.Error = function () {
    return new U.A.Error.init();
}

//生成错误对象 错误对象的实例
U.A.Error.init = function () {
    this.State = this.LogID = this.Value = this.Dt = this.Type = null;
}

U.A.Error.init.prototype = {
    /**
    * 判断对象是否为错误对象
    *
    * @return  {object} json值
    */
    isError: function (UDE) {
        if (U.UF.C.isObject(UDE)) { //判断是否为对象
            for (var i in this) { if (this.hasOwnProperty(i) && !(i in UDE)) { return false; } }
            return true;
        }
        return false;
    },

    /**
    * 设置错误
    *
    * @return  {object} 错误值
    */
    set: function (UDE) {
        U.UF.C.AddObj(this, UDE); //根据错误值添加错误
        return this;
    }
}

//#endregion





//#region ajax post请求

/**
* post请求
* @param  {object} 传参
----------[url] 请求的地址
----------[parameter] 请求的参数
----------[_context] 请求的回调参数
----------[cb] 回调函数
* @return  {object} post对象
*/
U.A.Post = $.Post = function (UDE) {
    var _UTE = new U.A.Post.init(UDE); //初始化对象
    _UTE.send(); //发送请求
    return _UTE;
}

/**
* 初始化post对象
*
*/
U.A.Post.init = function (UDE) {
    U.UF.C.AddObj(this, UDE);
}

U.A.Post.init.prototype = {
    //发送请求
    send: function () {
        var i, _UDE = [],
            _URL = this.url, //请求的地址
            _UPE = this.parameter, //请求参数
            _UCE = this.context; //请求传参
        //添加参数
        if (_UPE) {
            for (i in _UPE) {
                if (_UPE.hasOwnProperty(i)) {
                    _UDE.push($$("input", { "name": i, "value": _UPE[i] }));
                }
            }
        }
        //发送消息
        U.UF.UP.inputUpload(_UDE, U.UF.C.apply(this, function () { this.success(); }), _UCE, _URL, null, "application/x-www-form-urlencoded");
    },
    /**
    * psot请求成功回调
    * @param  {object} 数据
    */
    success: function (UDE) { //异步回调
        (this.cb) && (this.cb(UDE));
    }
}

//#endregion



/**
* 把json字符串转化成json
*
* @param  {string} 需要判断的对象
* @return  {object} 返回成功过生成后的对象 支持无线树
*/
U.UF.C.strToJson = function (obj) {
    //obj json字符串
    var i; //循环初始化

    if (U.UF.C.isString(obj)) {
        obj = obj.parseJSON();
    }
    if (Array.isArray(obj)) { //设置数组  
        for (i = 0; i < obj.length; i++) {
            if (U.UF.C.isString(obj[i])) {
                obj[i] = obj[i].parseJSON();
            }
            if (Array.isArray(obj[i])) {
                U.UF.C.strToJson(obj[i]);
            }
        }
    }
    return obj;
}


//暂时先屏蔽 网上很少使用
//outerText 最初是由 IE4.0 浏览器实现的私有属性,只有 Firefox 不支持该属性
//兼容outerText
//        if (!!document.getBoxObjectFor || window.mozInnerScreenX != null) {//判断是否为firefox 
//            HTMLElement.prototype.__defineSetter__("outerText", function (str) {
//                var parsedText = document.createTextNode(str); //创建文本节点
//                this.parentNode.replaceChild(parsedText, this); //用创建的文本节点代替this
//                return parsedText;
//            });
//            HTMLElement.prototype.__defineGetter__("outerText", function () {
//                var r = this.ownerDocument.createRange(); //在这个元素的根元素创建一个(Range 对象)
//                r.selectNodeContents(this); //设置该范围的边界点,使它包含指定节点的子孙节点,但不包含指定的节点本身;参数->其子节点将成为当前范围的内容的节点
//                return r.toString(); //把一个逻辑值转换成字符串,并返回结果
//            });
//        }
//暂时先屏蔽
//        if (!("componentFromPoint" in HTMLElement.prototype)) {//通过特定事件返回对象在指定坐标下的位置  
//            U.UF.EV.boundProperties(HTMLElement.prototype, "componentFromPoint", function () {//componentFromPoint("指定x的客户端窗口的坐标","指定y的客户端窗口的坐标")
//                return function () {
//                    var _UE = U.UF.C.GetMousep();
//                    var _UDE = U.UF.EL.getElementInfo(this);
//                    if ((_UE["X"] > _UDE["CW"] + _UDE["TX"]) || (_UE["Y"] > _UDE["CH"] + _UDE["TY"])) {
//                        return "outside";
//                    }
//                    return "";
//                }
//            },
//        function () { });
//        }

//IE的script元素支持onreadystatechange事件,不支持onload事件.
//FF的script元素不支持onreadystatechange事件,只支持onload事件.
//        if (!("onreadystatechange" in HTMLElement.prototype)) {//判断是否是firefox
//            U.UF.EV.boundProperties(HTMLElement.prototype, "onreadystatechange", function () {
//                return this.onload;
//            },
//        function (cb) {
//            this.onload = cb;
//        });
//        }
//        function loadJS(url, success) {
//            var domScript = document.createElement('script');
//            domScript.src = url;
//            success = success || function () { };
//            domScript.onload = domScript.onreadystatechange = function () {
//                if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
//                    success();
//                    this.onload = this.onreadystatechange = null;
//                    this.parentNode.removeChild(this);
//                }
//            }
//            document.getElementsByTagName('head')[0].appendChild(domScript);
//        }        
//        if (!("setCapture" in HTMLElement.prototype)) {//判断是否是firefox
//            U.UF.EV.boundProperties(HTMLElement.prototype, "setCapture", function () {
//                return function () { window.captureEvents(Event.MOUSEMOVE); } //firefox对于鼠标事件的捕捉
//            },
//        function () { });        }
//       
//        if (!("releaseCapture" in HTMLElement.prototype)) {//判断是否是firefox
//            U.UF.EV.boundProperties(HTMLElement.prototype, "releaseCapture", function () {
//                return function () {
//                    window.releaseEvents(Event.MOUSEMOVE); 
//                }
//            },
//        function () { });
//        }
//setCapture和window.captureEvents(Event.MOUSEMOVE)的兼容

//        if (!("event" in window.constructor.prototype)) {/*检测浏览器是否支持鼠标键盘事件*/
//            U.UF.EV.boundProperties(window.constructor.prototype, "event", function () {
//                var _UDE = arguments.callee; //arguments.callee ->指向参数arguments对象的函数
//                while (_UDE.caller) {//一直往上寻找直到 寻找到顶层作用域 返回null 再往下执行
//                    _UDE = _UDE.caller;
//                }
//                return _UDE.arguments ? _UDE.arguments[0] : null; //arguments 是一个对应于传递给函数的参数的类数组对象。
//            }, function () { });
//        }

//            if (!("srcElement" in window.Event.prototype)) {
//                U.UF.EV.boundProperties(window.Event.prototype, "srcElement", function () {
//                    return event.target;
//                },
//        function () { });
//            }
//srcElement 和 target 的兼容
//            var theEvent = window.event || arguments.callee.caller.arguments[0]; //arguments.callee.caller.arguments[0]相当于firefox的获取event
//            var srcElement = theEvent.srcElement; //捕获当前事件作用的对象
//            if (!srcElement) {//Firefox不兼容srcElement
//                srcElement = theEvent.target; //Firefox兼容target
//            }

//            if (!("keyCode" in window.Event.prototype)) {
//                U.UF.EV.boundProperties(window.Event.prototype, "keyCode", function () {
//                    return event.which;
//                },
//        function () { });
//            }
//keyCode - 兼容chrom和Firefox

//        HTMLElement.prototype.__defineGetter__("onmousewheel", function () {
//            return this.onwheel;
//        });
//        HTMLElement.prototype.__defineSetter__("onmousewheel", function (cb) {
//            this.onwheel = cb;
//        });
//        if (!("onmousewheel" in HTMLElement)) {
//            if ("onwheel" in HTMLElement.prototype) {
//                U.UF.EV.boundProperties(HTMLElement.prototype, "onmousewheel", function () {
//                    return this.onwheel;
//                },
//            function (cb) {
//                this.onwheel = cb;
//            });
//            }
//            else {
//                //firefox支持onmousewheel
//                if (browser.firefox) {
//                    (function () {
//                        window.addEventListener("DOMMouseScroll", function (UE) {
//                            //监控Scroll事件
//                            var _UOE = null
//                          , _UDOD = UE.srcElement;  
//                            do {
//                                _UOE = U.selectEl(_UDOD).attr("onmousewheel") || _UDOD.onmousewheel;
//                                _UDOD = U.selectEl(_UDOD).Parent();
//                            } while (!(_UOE || !_UDOD)); //冒泡的顶部获取
//                            if (_UOE) {
//                                (typeof _UOE == "string") && (_UDOD.onmousewheel = new Function(_UOE));
//                                U.M.StopDefault();
//                                //阻止页面固定事件
//                                setTimeout(function () {
//                                    _UOE.call(this, UE);
//                                }
//                            , 0);
//                                //异步执行 解决锁定的bug
//                            }
//                        }
//                    , false);
//                    }
//                )();
//                }
//            }
//        }
//------------------------------------------------------------------------------------------
//        if (!("innerText" in HTMLElement.prototype)) {/*检测浏览器是否支持innerText这个方法*/
//            U.UF.EV.boundProperties(HTMLElement.prototype, "innerText",
//              function () {
//                  return this.textContent;
//              },
//               function (UDE) {
//                   this.textContent = UDE;
//               }
//        );
//        }
//------------------------------------------------------------------------------------------
//        if (!("outerHTML" in HTMLElement.prototype)) {/*检测浏览器是否支持outerHTML这个方法*/
//            U.UF.EV.boundProperties(HTMLElement.prototype, "outerHTML",
//            function () {
//                var _UDOD = this.cloneNode(true),
//                _UDTD = $$("div", {});
//                _UDTD.appendChild(_UDOD);
//                return _UDTD.innerHTML; /*如果不支持就使用innerhtml插入*/
//            },
//             function (UTH) {
//                 var i, _UDOD = U.selectEl(this), _UDPD = _UDOD.Parent(), _UDCD = $$("div", {
//                     "innerHTML": UTH
//                 }).childNodes, _UDTD = document.createDocumentFragment;
//                 for (i = 0; i < _UDCD.length; i++) {
//                     _UDTD.appendChild(_UDCD[i]);
//                 }
//                 ; _UDTD.insertBefore(_UDTD, this);
//                 _UDOD.remove();
//             }
//        );
//         }
//------------------------------------------------------------------------------------------
//        if (!("outerText" in HTMLElement.prototype)) {/*检测浏览器是否支持outerText这个方法*/
//            U.UF.EV.boundProperties(HTMLElement.prototype, "outerText",
//           function () {
//               var _UDOD = this.cloneNode(true)
//                      , _UDTD = $$("div", {});
//               _UDTD.appendChld(_UDOD);
//               return _UDTD.innerText; /*如果不支持就使用innerText插入*/
//           },
//          function (UTH) {
//              var i, _UDOD = U.selectEl(this), _UDPD = _UDOD.Parent(), _UDCD = $$("div", {
//                  "innerText": UTH
//              }).childNodes, _UDTD = document.createDocumentFragment;
//              for (i = 0; i < _UDCD.length; i++) {
//                  _UDTD.appendChild(_UDCD[i]);
//              }
//              _UDTD.insertBefore(_UDTD, this);
//              _UDOD.remove();
//          });
//        }
//------------------------------------------------------------------------------------------
//        if (!("currentStyle" in HTMLElement.prototype)) {
//            U.UF.EV.boundProperties(HTMLElement.prototype, "currentStyle", function () {
//                return getComputedStyle(this, false);
//            },
//        function () { });
//        }
//------------------------------------------------------------------------------------------
//        if (!("onresize" in HTMLElement.prototype) || !browser.msie) {//HTMLElement.prototype内没有onresize 则执行这个函数 
//            U.UF.CP.onresize = function (UDOD, UDTD, cb) {
//                Size事件设置
//                if (cb) {
//                    UDOD.contentDocument.defaultView.onresize = function () { U.UF.C.apply(UDTD, [[cb]])(); }  //
//                }
//                else {
//                    try {
//                        delete this.__SizeElement__;
//                    } catch (e) { }
//                }
//            }
//            U.UF.EV.boundProperties(HTMLElement.prototype, "onresize", function () {
//                try {
//                    this.__SizeElement__.contentDocument.defaultView.onresize;
//                } catch (e) {
//                    return null;
//                }
//            },
//        function (cb) {
//            if (this.tagName) {
//                设置Set事件
//                var _UDOD = this.__SizeElement__;
//                (U.UF.EL.getStyle(this, "position") == "static") && (this.style.position = "relative");
//                if (!_UDOD || U.selectEl(_UDOD).Parent() != this && cb) {
//                    _UDOD = this.__SizeElement__ = $$("object", {
//                        "onload": function(){U.UF.CP.onresize(this, this, cb);},
//                        "type": "text/html",
//                        "data": "about:blank",
//                        "style": {
//                            "cssText": "display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;visibility:hidden;margin:0;padding:0;"
//                        }
//                    }, this)[0];
//                }
//                else {
//                    U.UF.CP.onresize(_UDOD, this, cb);
//                }
//            }
//        });
//        }
//        if (!("componentFromPoint" in HTMLElement.prototype)) {   // --------- 上面有重复代码
//            U.UF.EV.boundProperties(HTMLElement.prototype, "componentFromPoint", function () {
//                return function () {
//                    var _UE = U.UF.EL.getMousePosition();
//                    var _UDE = U.UF.EL.getElementInfo(this);
//                    if ((_UE["X"] > _UDE["CW"] + _UDE["TX"]) || (_UE["Y"] > _UDE["CH"] + _UDE["TY"])) {
//                        return "outside";
//                    }
//                    return "";
//                }
//            },
//        function () { });
//        }



/**
* loading变化设置
* @param  {element} 当前loading元素
*/
/*U.UF.DL.loading.Donresize = function (UDOD, UDTD, UTF) {
    if (UDOD["P"] > -1) { //loading变化设置
        var _UDAD = U.selectEl("div", UDOD),
        _UH = U.selectEl(UDOD).height() - _UDAD[0].offsetHeight; //loading大小变化
        _UDAD[0].style.top = (_UH > 0 ? _UH : 0) / 2 + "px"; //loading图片位置设定
    }
    else { //取消loading
        U.UF.DL.uploading(UDOD);
    }
}*/

/**
* 取消loading
* @param  {element} 当前loading元素
*/
/*U.UF.DL.uploading = function (UDOD) {
UDOD = UDOD[0] || UDOD; //需要loading元素
var i, _UAE = ["__ULOADElement__", "__UCS__"], //loading元素遗留参数
_UDTD = UDOD[_UAE[0]],  //loading
_UME = UDOD[_UAE[1]], //需loading元素原样式
_UCE = UDOD.style,
_UDE = { "width": "0px", "height": "0px", "overflow": "hidden", "padding": "0px", "borderWidth": "0px", "minHeight": "0px", "minWidth": "0px" }; //元素变回参数
//判断元素是否已经可以结束loading
if (_UDTD && ((_UDTD["P"]--) == 0)) {
for (i in _UDE) {
if (_UDE.hasOwnProperty(i)) {
//设置或者取消原参数
if (_UDE[i] == _UCE[i]) { _UDE[i] = _UME[i]; }
else { delete _UDE[i]; }
}
};
UDOD["__UCS__"] = null; //设置样式
$(_UDTD).remove(); //移除loading
$(UDOD).addAttrArray({ "style": _UDE }); //原loading元素样式回归
//清除残留参数
try { delete UDOD[_UAE[0]]; delete UDOD[_UAE[1]] }
catch (e) {
UDOD.removeAttribute(_UAE[0]);
UDOD.removeAttribute(_UAE[1]);
} return true;
}
}*/


////#region 出让命名空间

////出让命名空间
////只有外部项目才会使用 为了和其他框架兼容的方案
//$.noConflict = function (UDE) {
//    var _UDE = window.U.Json_;
//    if (_UDE && _UDE != $) {
//        window.U.Json_ = window.$; window.$ = _UDE;
//        return window.U.Json_;
//    }
//    return $;
//}

////#endregion

    //    filter: function (UTF, UDE) {//结果集筛选
//        UDE = UDE || this; var _UTF, _UCE = [], j, i = 0; if (typeof UTF == "string") { UTF = this.getValue(UTF) } //处理制定的选择 转化成可识别选择
//        for (i = 0; i < this.length; i++) {
//            for (j in UTF) { if (UTF.hasOwnProperty(j)) { if (this[i][j] != UTF[j]) { break; } } }
//            (this[i][j] == UTF[j]) && (_UCE.push(this[i]));
//        }
//        return U.select().osadd(_UCE); //添加子元素到制定的位置
//    },
    //    siblings: function (UIE) { //当前元素所有的兄弟节点
//        var i, _UDE = ["preva", "next"], _UAE = U.select();
//        for (i = 0; i < _UDE.length; i++) { this.celement(_UDE[i] + "All", UIE, _UAE); }
//        return _UAE
//    },
//    celement: function (UTP, UIE, UAE) { //获取元素
//        var _UDOD, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UTF = { "prevaAll": "previousSibling", "nextAll": "nextSibling"}[UTP]; UTP = _UTF || UTP; UAE = UAE || U.select();
//        for (i = 0; i < _UL; i++) { //获取指定元素结果
//            j = 1; _UDOD = this[i]; while ((j > 0 || (_UTF && _UDOD)) && _UDOD[UTP]) {
//                do { _UDOD = _UDOD[UTP]; }
//                while (_UDOD && _UDOD.nodeType !== 1);
//                (_UDOD) && (UAE[UAE.length++] = _UDOD);
//                j--;
//            }
//        }
//        return UAE;
//    },
//    ofparent: function (UIE, UTF) {//获取offsetParent
//        var i = UIE || 0, _UL = UIE + 1 || this.length, UAE = U.select();
//        for (i = 0; i < _UL; i++) { UAE[UAE.length++] = U.UF.EL.offsetParent(this[i]); }
//        return UAE;
//    },
    //    prevaAll: function (UIE) {//当前元素之前所有的兄弟节点
//        return this.celement("prevaAll", UIE);
//    },
//    nextAll: function (UIE) { //当前元素之后所有的兄弟节点
//        return this.celement("nextAll", UIE);
//    },
//    replaceAll: function (UDE, UIE) {
//        var _UME, i = UIE || 0, _UL = UIE + 1 || 1;
//        for (; i < _UL; i++) {
//            if (U.UF.C.isString(UDE)) { _UME = $$(UDE); } else { _UME = U.select(UDE).clone(true); }
//            this.Parent(1, i).replaceChild(this[i], _UME);
//        }
//    },
//    even: function () { //获取偶数元素
//        return this.Auxiliary.selectel("even", this);
//    },
//    odd: function () { //获取奇数元素
//        return this.Auxiliary.selectel("odd", this);
//    },
//    eq: function (UIE) { //索引制定位置的元素
//        return this.Auxiliary.selectel("=" + UIE, this);
//    },
//    gt: function (UIE) { //索引大于的元素
//        return this.Auxiliary.selectel(">" + UIE, this);
//    },
//    lt: function (UIE) {//索引小于的元素
//        return this.Auxiliary.selectel("<" + UIE, this);
//    },
//    each: function (cb, UDE) { //遍历数据
//        if (cb) { var i; UDE = UDE || this; for (i = 0; i < UDE.length; i++) { cb(i, UDE[i]); } }
//    },
//    only: function (UIE) { //选择没有兄弟节点的元素
//        var i, j, _UCE, _UPE, UL = UIE + 1 || this.length;
//        for (i = 0; i < UL; i++) { _UCE = this.parentElement(1, i).Child(); (_UCE.length != 1 || _UCE[0] != this[i]) && (this.del(i, true)); }
//        this.del(); return this;
//    },
//    checked: function (UIE) {//获取所有给单选或者复选的元素
//        var _UCE, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UVE = U.select();
//        for (i = 0; i < _UL; i++) {
//            _UCE = U.select("input@type=checkbox", this[i]); //获取复选框
//            for (j = 0; j < _UCE.length; j++) { (_UCE[j].checked) && (_UVE.osadd(_UCE[j])); } //添加所有给复选的元素
//        }
//        return _UVE;
//    },
//    selected: function (UIE) {//获取下拉列表中给选择的元素
//        var _UCE, j, i = UIE || 0, _UL = UIE + 1 || this.length, _UVE = U.select();
//        for (i = 0; i < _UL; i++) { }
//    },
//    before: function (UDOD, UIE) { //被选择元素前插入指定元素
//        var i = UIE || 0, _UL = (UIE || 0) + 1;
//        for (; i < UIE; i++) { this.append(UDOD, i, this[i].firstChild); }
//    },
//    top: function (UIE) { //获取offsetTop
//        return this[UIE || 0].offsetTop;
//    },
//    left: function (UIE) { //获取offsetLeft
//        return this[UIE || 0].offsetLeft;
//    },
//    width: function (UIE) {//获取长
//        return U.UF.EL.getElementRealWidth(this[UIE || 0]);
//    },
//    innerWidth: function (UIE) { //获取内宽度 包含padding
//        return this[UIE || 0].clientWidth;
//    },
//    outerWidth: function (UIE, UTF) { //获取整体宽度 包含 padding border ture包含margin
//        this[UIE || 0].offsetWidth + this.css("marginLeft") + this.css("marginRight");
//    },
//    height: function (UIE) { //获取宽
//        return U.UF.EL.getElementRealHeight(this[UIE || 0]);
//    },
//    innerHeight: function () { //内高度
//        return this[UIE || 0].clientHeight;
//    },
//    outerHeight: function () { //外高度
//        this[UIE || 0].offsetWidth + this.css("marginTop") + this.css("marginBottom");
//    },
//    replaceC: function (UDOD, UIE) { //元素顶替
//        UIE = UIE || 0; var _UDPD, _UDTD = this[UIE];
//        if (_UDTD) { _UDPD = this.Parent(1, UIE); (_UDPD) && (_UDPD.replaceChild(UDOD, _UDTD)); this[UIE] = UDOD; }; return this;
//    },
//    html: function (UHT, UIE) { return UHT != null ? this.addAttrArray({ "innerHTML": UHT }, UIE) : this[UIE || 0].innerHTML; }, //获取innerhtml
//    text: function (UHT, UIE) { return UHT != null ? this.addAttrArray({ "innerText": UHT }, UIE) : this[UIE || 0].innerText; }, //获取innerText
   
   //    getBackgroundColor: function (UDE) { //获取设置背景图片
//        if (U.UF.C.isString(UDE)) { }
//        else if (Array.isArray(UDE)) { }
//    },
//    first: function () { //获取结果里的第一个元素
//        return U.select(this[0]);
//    },
//    last: function () { //获取最后一个元素
//        return U.select(this[this.length - 1]);
//    },
//    transition: function (UDE, USP, cb, UIE) { //过度动画使用
//        var i, j, _UDW, _UTP, _UFN, _UAE = {}, _UHE = {}, _UME = [["scale", ""], ["translate,perspective", "px"], ["skew,rotate", "deg"]], _UCE = U.UF.EL.GCssAe(); //scale
//        if (_UCE) {//Html5兼容
//            _UTP = _UCE[2] + "transform"; _UAE[_UTP] = "";
//            _UFN: for (i in UDE) {
//                for (j = 0; j < _UME.length; j++) { if (_UME[j][0].split(",").indexOf(i) > -1) { _UDW = _UME[j][1]; _UAE[_UTP] += i + "(" + UDE[i] + _UDW + ") "; continue _UFN; } }
//                _UHE[_UTP + "-" + i] = UDE[i];
//            }
//            this.addAttrArray({ "style": _UHE }).animate(_UAE, USP, cb, UIE); //执行动画
//        }
//    },
//    slideToggle: function (UST, cb, UIE, UTF) {//滑动效果
//        var j, _UTP, _UDE, _USC, i = UIE || 0, _UL = UIE + 1 || this.length, _USE = { height: "", marginBottom: "", marginTop: "", paddingBottom: "", paddingTop: "", display: "block" }, _UKE = _USE; //变化值
//        for (; i < _UL; i++) { //设置动画
//            _USC = this.css("cssText"); U.Json.Each(_USE,U.UF.C.apply(this, function (UAE, UIE) { if (UIE != "display") { if (UIE == "height") { _USE[UIE] = this.height() + "px"; } else { _USE[UIE] = this.css(UIE, null, i); } } })); //原初始值
//            _UDE = [_USE, { "cssText": "height:0px;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;display:block;overflow:hidden"}]; //初始化隐藏动画
//            if ((_UTP = (UTF === false || (UTF == null && this.css("display", "") == "none")))) { _UDE.reverse(); } //设置显示动画
//            this.addAttrArray({ style: _UDE[0] }, i).animate(_UDE[1], UST, function () { this.Auxiliary.slideToggle(_USC + ";display:" + (_UTP ? "block" : "none"), i, _UL, cb); }, i); //设置出现和取消 
//        }
//    },
//    ready: function (cb) { //添加doc ready函数
//        var _UTF = document.attachEvent ? "readystatechange" : "DOMContentLoaded", _UCB = [];
//        _UCB[0] = U.UF.C.apply(document, function () {
//            U.UF.EV.delElementEvent(_UTF, document, _UCB);
//            cb()
//        });
//        U.UF.EV.addElementEvent(_UTF, document, _UCB[0]);
//    },
//    load: function (cb) { //load加载页面
//        (!this.length) && (this.osadd(window)); var _UFN = function () { this.unbind("load", _UFN, 0); cb(); };
//        this.bind("load", _UFN, 0);
//    },
//    contents: function () { },
//    message: function () { //message 事件绑定

//    },
//    mousedown: function (cb, UTF, UIE) { //左右事件
//        (cb) && (this.bind("mousedown", function () { var _UTF = event.button; _UTF = _UTF == 2 || _UTF == 3; if (!UTF || (UTF == "right" && _UTF) || (UTF == "left" && !_UTF)) { cb(); } }, UIE));
//        return this;
//    },

//把数据库的时间戳转换成可读时间
//1、带一个参数  
//参数一:时间格式  
//   1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
//   2、sqlserver 时间格式 /Date(1364812396843)/
//   3、mongodb 时间格式 2018/01/01 01:01:01
//   4、mysql 时间格式 2018-01-01 01:01:01
//   5、nodejs的json时间"2018-03-04T11:14:27.878Z"

//js转换mysql中datetime日期格式为00-00-00 00:00:00,转换后为:2016:11:23 09:09:09格式


//U.UF.D.formatDateToArray = function (UOD, UTF) {
//    var _UTP = typeof UOD == "string",
//        _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"];
//    if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) {
//        UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date());
//        for (i = 0; i < _ude.length; i++) {
//            _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0);
//            _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i];
//        }
//    } //返回时间
//    else if (_UTP) {
//        UOD = new Date(UOD); //获取当前的时间
//        _ude = U.UF.D.formatDateToArray(UOD, true);
//    } //mysql返回的时间


//    return (UTF ? _ude : _ude.slice(0, 3).join("-") + "  " + _ude.slice(3, 6).join(":")); //返回数据

//    ///Date(1364812396843)/
//    //2018/01/01 01:01:01
//    //2018-01-01 01:01:01
//}

//U.UF.D.formatDateToArray = function (UOD, UTF) {
//    try {
//        var _UTP = typeof UOD == "string",
//        _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"];
//        if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) {
//            UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date());
//            for (i = 0; i < _ude.length; i++) {
//                _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0);
//                _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i];
//            }
//        } //返回时间
//        else if (_UTP) {
//            UOD = new Date(UOD); //获取当前的时间
//            _ude = U.UF.D.formatDateToArray(UOD, true);
//        } //mysql返回的时间
//        return (UTF ? _ude : _ude.slice(0, 3).join("-") + "  " + _ude.slice(3, 6).join(":")); //返回数据
//    } catch (e) { return UOD; }
//}



/*-----------------------------------------------未使用的函数------------------------------------------*/
//js倒计处理
U.UF.D.DJS = (function () {
    var _UFN = function (UDE, fun) {
        var _UTF = false,
         _UL = UDE.length - 1,
         i = _UL, _UCE = [1, 24, 60, 60];
        for (; i > -1; i--) {
            if (UDE[i] > 0) {
                UDE[i]--; if (i < _UL) {
                    UDE[i + 1] = _UCE[i + 1] - 1;
                } _UTF = !_UTF; break;
            }
        }
        (_UTF) && ((fun) && (fun(UDE)), setTimeout(function () { _UFN(UDE, fun) }, 1000)); //回调计时
    }
    //设置时间
    return function (UTM, fun) {
        var i, j, _UZ,
        _UKE = [60, 60, 24, 1],
        _ude = [],
        _UTS = ((new Date(UTM[0], UTM[1] - 1, UTM[2],
         UTM[3] || 0, UTM[4] || 0,
         UTM[5] || 0)) - (new Date())) / 1000;
        for (i = _UKE.length - 1; i >= 0; i--) {
            _UZ = _UTS;
            for (j = 0; j <= i; j++) {
                j == i ? _UZ %= _UKE[j] : _UZ /= _UKE[j];
            }
            _ude.push(parseInt(_UZ, 10));
        }
        _UFN(_ude, fun); //获取倒计时的时间
    }
})();



/*
* 获取浏览器信息
*
* @return  {boolean} { chrome: true, msie:false, firefox:false, 360ee:true, ver: 36}
*/
//U.UF.CI.Browser = function () {

////    var i,
////    _UAE = U.UF.CI.userAgent,
////    _USE = {},
////    _UVE = U.UF.S.browser, //区分浏览器
////    _UDE = U.UF.S.browsers, //个版本浏览器正则
////    _UCE = ["360ee", "360se", "se", "lbbrowser", "aoyou", "theworld", "worldchrome", "greenbrowser", "qqbrowser", "baidu", "MicroMessenger", "QQ", "AppleWebKit"]; //知名公司浏览器区分
////    //判断浏览器版本
////    for (i in _UDE) {
////        if (_UDE.hasOwnProperty(i)) {
////            _USE[i] = _UDE[i].test(_UAE);
////        }
////    }
////    //各个公司的版本
////    for (i = 0; i < _UCE.length; i++) {
////        if (_UAE.indexOf(_UCE[i]) > 0) {
////            _USE[_UCE[i]] = true;
////            break;
////        }
////    };
////   _USE.ver = _UAE.match(_UVE); //设置版本
////    return _USE; //获取内核和产商

//    _bri= U.UF.CI.userAgent,//浏览器信息
//    _obj = {},//空对象 用于装浏览器信息
//    _bro = U.UF.S.browser, //区分浏览器

//    _arr = ["360ee", "360se", "se", "lbbrowser", "aoyou", "theworld", "worldchrome", "greenbrowser", "qqbrowser", "baidu", "MicroMessenger", "QQ", "AppleWebKit"]; //知名公司浏览器区分

////判断浏览器类型
//    //各个公司的版本
//    for (i = 0; i < _arr.length; i++) {
//       if (_bri.indexOf(_arr[i]) > 0) {
//        _obj[_arr[i]] = true; //如果是对应版本则为true
//        break;//找到对应版本后就不再循环
//        }
//    };

//        _bri= U.UF.CI.userAgent,//浏览器信息
//         _bro = U.UF.S.browser, //区分浏览器
//    _obj.ver = _bri.match(_bro); //设置浏览器版本等信息
//    return _obj; //将信息返回
//};


/**
* 添加或者删除自定义属性
*

*/
/*U.UF.EL.addAttributes = function (arr, name, value) {



    var i, //用于循环
    j, //用于循环
    _UAE,
    _UTP = UTV != null ? "setAttribute" : "removeAttribute"; //判断是设置还是删除属性
    for (i = 0; i < UDE.length; i++) {//
        _UAE = UDE[i];
        if (_UAE) {
            if (UCE && UCE.length) { //训话属性处理
                for (j = 0; j < UCE.length; j++) {
                    _UAE = _UAE[UCE[j]];
                }
            }
            _UAE[_UTP](USN, UTV); //执行删除获取添加属性
        }
    }
}

U.UF.EL.delAttributes = function (arr, name) {
    var i, //用于循环
    j, //用于循环
    _UAE,
    _UTP = UTV != null ? "setAttribute" : "removeAttribute"; //判断是设置还是删除属性
    for (i = 0; i < UDE.length; i++) {//
        _UAE = UDE[i];
        if (_UAE) {
            if (UCE && UCE.length) { //训话属性处理
                for (j = 0; j < UCE.length; j++) {
                    _UAE = _UAE[UCE[j]];
                }
            }
            _UAE[_UTP](USN, UTV); //执行删除获取添加属性
        }
    }
}*/


/**
* 获取元素所使用的样式
*
* @param  {element} 需要获取样式的元素 
* @param  {string} 样式的key 
*/
/*U.UF.EL.getStyle = function (UDOD, UVE) {
if (UDOD && UDOD.style) {
UVE = U.UF.EL.styleConversion(UVE);
return (UDOD.style[UVE] || UVE == "cssText") ? UDOD.style[UVE] : (UDOD.currentStyle ? UDOD.currentStyle[UVE] || "" : "");
}
return ""; //获取js对应的style值
}*/
/**
* 添加删除获取class
*
* @param  {array} 进行操作的对象 
* @param  {string} 确定循环范围 
* @param  {element} 正则表达式 获取字符 
* @param  {string} 获取或删除指令
* @return  {boolean} 是否存在改样式
*/
/*U.UF.C.ARClass = function (UDE, UIE, UCN, UTF) {
var _UCT, //储存对象样式名
_UFT, //储存索引值
_UIF, //储存索引值
i = UIE || 0; //循环初始化
_UL = UIE + 1 || UDE.length, //确定循环范围
_UL = Math.min(_UL, UDE.length);
_UCE = new RegExp("(\\s|^)" + UCN + "(\\s|$)"); //需要索引的值
for (; i < _UL; i++) {
_UCT = UDE[i].className;
_UFT = _UCT.match(_UCE);
if (UTF == "Add") {
(!_UFT) && (UDE[i].className += (_UCT ? " " : "") + UCN); 
} //添加class
else if (UTF == "RE") { //删除class
(_UFT) && (_UIF = _UCT.indexOf(UCN) + UCN.length, UDE[i].className = _UCT.replace(_UCE, (_UIF == _UCT.length || !_UIF) ? "" : " "));
}
}
return _UFT;
}*/

/*
**作用:用于指定的元素进行删除指定的class,如果class存在,那么class就删除,如果class不存则不处理
**参数一:el1进行操作的对象
**参数二:el2获取className的字符
**参数三:str添加或删除指令,添加classname为Add,删除classname为Remove
*/
/*U.UF.C.ARClass = function (el1, el2, str) {
var _Reg = el1.className.match(new RegExp("(\\s|^)" + el2 + "(\\s|$)")); // ( \\s|^ ) 判断前面是否有空格 (\\s | $ )判断后面是否有空格
var _b = !!(_Reg);  //两个感叹号为转换为布尔值 以方便做判断
if (str == "Add") {//判断是否是添加classname
if (!_b) {//判断元素不存在指定的class
el1.className += " " + el2; //给指定的元素添加指定的class
}
}
if (str == "Remove") {//判断是否删除classname
if (_b) {//判断元素存在指定的class
el1.className = el1.className.replace(new RegExp("(\\s|^)" + el2 + "(\\s|$)"), " "); // replace方法是替换
}
}
}*/


///**
//* 获取css3过渡动画
//*
//* @return  {array} 过渡属性的值
//-----------[0] 过渡的css 
//-----------[1] 过渡的回调函数 
//-----------[2] 兼容的前缀 
//-----------[3] 浏览器过渡的监视属性 
//-----------[4] 浏览器结束的属性 
//*/
//U.UF.EL.GCssAe = function () {
//    var i, //遍历初始化
//    _USE = $$("div").style, //获取div的样式
//    //css兼容的形式
//    _UDE = {
//        "WebkitTransition": ["-webkit-transition", "webkitTransitionEnd", "-webkit-", "webkitRequest", "webkitCancel"], //webkit浏览器的兼容
//        "OTransition": ["-o-transition", "oTransitionEnd", "-o-", "oRequest", "oCancel"], //Op 浏览的兼容
//        "MozTransition": ["-moz-transition", "transitionend", "-moz-", "mozRequest", "mozCancel"], //火狐浏览器的兼容
//        "MsTransform": ["-ms-transition", "transitionend", "-ms-"], //ie低版本的兼容
//        "transition": ["transition", "transitionend", "", "r", "cancel"] //html5的兼容
//    }
//    //循环判断获取
//    for (i in _UDE) {
//        if (_UDE.hasOwnProperty(i) && _USE[i] !== undefined) {
//            _UDE[i].push(i);
//            return _UDE[i];
//        }
//    }
//}



///**
//* css动画异步
//*

//*/
//U.UF.EL.AsynCssEM = function (UDID, UDSD, cb, UIF, UIF) {
//    this.removeClass(UDID, UIF);
//    U.selectEl(UDSD).remove();
//    (cb) && (cb(UIF));
//}



// 窗体全局变量
//U.UF.F.isTop = false;
//U.UF.F._closes = [];
//U.UF.F._index = [];


/*U.UF.F.closefun = function (UDOD) {
U.UF.F._closes.splice(U.UF.F._closes.indexOf(UDOD), 1);
};*/

/**
* 放大窗体
*
* @param  {number} 数字1
* @param  {number} 数字2
* @param  {boolean} 返回数字1是否大于数字2
* @param  {number} 数字2
* @param  {boolean} 返回数字1是否大于数字2
*/
/*U.UF.F.windowZooming = function (UDOD, UDTD, cb, UDOM, UST) {
var _USE, _UCE, _UTE, _UTF = true,
_UDTD = U.selectEl(UDOD),
_UST = UDOD.style,
_UED = U.UF.C.GetPDWH(UDOD),
_UW = US.width,
_UH = US.height;
UDTD = UDTD || (event && event.srcElement); //U.UF.C.getElementInfo(UDOD)
if (_UED["OW"] >= _UW && _UED["OH"] >= _UH) {
_UCE = { "title": "全屏", "onmousedown": UST ? (UST.onmousedown || (UDOM ? UDOM.onmousedown : null)) : null, "style": UST ? UST["style"] || { "width": "80%", "height": "80%", "left": "10%", "top": "10%"} : { "width": "80%", "height": "80%", "left": "10%", "top": "10%"} };
_UTF = false;
}
else {
_UTE = UDOD["style"];
_USE = { "onmousedown": UDOM ? UDOM.onmousedown : null,
"style": { "cssText": _UTE["cssText"] + ";", "width": _UTE.width, "height": _UTE.height, "top": _UTE.top, "left": _UTE.left, "display": "block" }, "width": _UED["CW"], "height": _UED["CH"]
};
_UCE = { "title": "缩小",
"onmousedown": UDOM ? (function(){UDOM.onmousedown], [U.UF.F.DragElement(UDOD, UDTD, cb, UDOM, _USE)}) : null,
"style": { "top": "0px", "left": "0px", "width": (_UW - _UED["PD"][1] - _UED["PD"][3] - _UED["BD"][1] - _UED["BD"][3]) + "px",
"height": (_UH - _UED["PD"][0] - _UED["PD"][2] - _UED["BD"][0] - _UED["BD"][2]) + "px"
}
}; //_UED["PXT"] + _UED["PXL"] +
}
(UDOM) && (UDOM.onmousedown = _UCE.onmousedown);
(UDTD) && ($(UDTD).addAttrArray({ "onclick": [[U.UF.F.windowZooming, [UDOD, UDTD, cb, UDOM, _USE]]], "title": _UCE["title"] })); //拖动  //全屏或者恢复调用
UDOD.style.display = "block";
$(UDOD).animate(_UCE.style, 150, function () {
var _UED = U.UF.C.GetPDWH(UDOD); U.UF.F.withf(cb, [_UED["CW"], UDOD["CH"], _UTF]);
}); //窗体大小设置 //回调大小设置
}*/

//最大化移动窗体
/**
* 放大窗体
*
* @param  {number} 数字1
* @param  {number} 数字2
* @param  {boolean} 返回数字1是否大于数字2
* @param  {number} 数字2
* @param  {boolean} 返回数字1是否大于数字2
*/
/*U.UF.F.DragElement = function (UDOD, UDTD, cb, UDOM, UST) {
if (U.UF.F.DragMouseDown.ST) {
U.UF.F.DragMouseDown.ST.set({ move: function (UTE) { //缩小使用
var _UW = US.width,
_UE = U.UF.C.getMousePosition(UDOD);
(!UST.width) && (UST.width = US.width * 0.8);
(!UST.height) && (UST.height = US.height * 0.8);
U.UF.C.AddObj(UST["style"], {
"top": "0px", "left": Math.min(Math.max((_UE["X"] - UST.width / 2), 0), (_UW - UST.width)) + "px"
});  //设置位置大小
U.UF.F.windowZooming(UDOD, UDTD, cb, UDOM, UST);
(UTE && UTE.move) && (UTE.move = null);  //设置大小
}
});
}
}*/

//窗体最小化
/*U.UF.F.windowMinimize = function (UDOD) {
UDOD = U.selectEl(UDOD);
var i, _UCE, _UW = US.width,
_UH = US.height,
_UGE = UDOD.getElementInfo();
_UDE = { "cssText": UDOD[0].style.cssText, "display": "none" };
UDOD.animate({ "cssText": "overflow:hidden;left:0px;top:" + ((_UH - _UGE["OH"] + 100) / 2) + "px;width:" + (Math.min(_UGE["OW"] / 3, 100)) + "px;height:" + (Math.min(_UGE["OH"] / 3, 100)) + "px;opacity:0.8" }, 200, function(){UDOD.css("cssText", _UDE.cssText]], [UDOD.css, ["display", _UDE.display);});
(parent.U.MD.N) && (setTimeout(function () { parent.U.MD.N.UrlWrite([], ""); }, 0));
}
*/
//关闭窗口
/*U.UF.F.closeWindow = function (UDOD, UTF) {
var _UDTD = U.selectEl(UDOD);
(_UDTD.css("display") != "none") && (_UDTD.fadeIn(150, UTF == "remove" ? function () {
_UDTD.remove(); _UDTD = null;
} : "")); //移除
(parent.U.MD.N && UTF !== true) && (parent.U.MD.N.UrlWrite([], ""));
(U.D && U.MD.D.Tb && U.MD.D.T.taskbars) && (U.MD.D.T.taskbars.close(UDOD)); //异步url重写
(U.UF.F._closes.indexOf(UDOD) == -1) && (U.UF.F._closes.push(UDOD));
setTimeout(function(){U.UF.F.closefun(UDOD);}, 0); //删除处理区
}
*/
//窗口居中
/*U.UF.F.windowTopCenter = function (UDOD, cb) {
var i, _UL, _UT, _UW, _UH,
_UTF = U.selectEl(UDOD).css("display") == "none",
_UDE = U.selectEl(UDOD).addAttrArray({ "style": { "display": "block"} })[0],
_UDPD = U.UF.C.TOSP(UDOD), _UW = _UDPD.offsetWidth || US.width,
_UH = _UDPD.offsetHeight || US.height;
_UL = (_UW - _UDE["offsetWidth"]) / 2 + _UDPD["scrollLeft"];
_UT = (_UH - _UDE["offsetHeight"]) / 2 + _UDPD["scrollTop"];
if (U.UF.F._index[2] && U.UF.F._index[2] !== UDOD && Math.floor(_UL) == U.UF.F._index[2].offsetLeft && Math.ceil(_UT) == U.UF.F._index[2].offsetTop) { _UL += 20; _UT += 20; }
U.UF.F._index[2] = UDOD;
U.UF.F.topWindow($(UDOD).addAttrArray({ "style": { "cssText": "left:" + _UL + "px;top:" + _UT + "px;z-index:" + ((parent.US.ZINDEX ++) + 1)} })[0]);
(U.UF.C.isFunction(cb)) && (cb());
(_UTF && UDOD.onresize) && (UDOD.onresize()); //定位
}*/

//窗体置顶
/*U.UF.F.topWindow = function (UDOD, UTF) {
(U.UF.Ut.isEvent(UDOD)) && (UDOD = null);
UDOD = UDOD || U.UF.F.GetEE();
var i, _UDPD,
_UDE = U.UF.F.getWindow(UDOD);
if (UTF !== true) {
setTimeout(function(){U.UF.F.topWindow(UDOD || _UDE[0], true);}, 0);
}
else {
if (_UDE && _UDE.length) {
for (i = 0; i < _UDE.length; i++) {
if (((_UDPD = U.selectEl(_UDE[i]).Parent()) && (_UDPD == document.body || _UDPD.id == "usestudio-server" || _UDPD.id == "UD_SY")) && U.selectEl(_UDE[i]).attr("__top__") != "false" && (!UTF == true || U.UF.F._closes.indexOf(_UDE[i]) == -1)) { //置顶判断
$(_UDE[i]).addAttrArray({ "style": { "cssText": "z-index:" + (((US || parent.US).ZV++) + 1) + ";display:block"} })
}
};
}
return parent.US.ZINDEX ;
}
}
*/

//获取顶层窗体
/*U.UF.F.getWindow = function (UDOD) {
var i, _UCE = [],
_UDTD = UDOD,
_UDBD = document.body,
_UDSD = U.selectEl("#UD_SY")[0] || U.selectEl("#usestudio-server")[0] || _UDBD;
if (_UDSD) {
while ((_UDTD = U.UF.C.TOSP(_UDTD, true, "absolute")) && (_UDTD && (_UDTD != _UDSD && _UDTD != _UDBD))) {
_UCE.push(_UDTD);
_UDTD = _UDTD.parentNode;
}
return _UCE; //.slice(0, -1);
}
}*/

//主处理分层次系统
/*U.UF.F.clickTopWindow._UFN = function (cb, UTF) { //处理函数
//页面置顶处理
//  try { this.focus(); } catch (e) { }
if (U.UF.F.isTop) { clearTimeout(U.UF.F.isTop); }
else {
if (UTF && !U.UF.F.isTop) {
U.UF.F.isTop = setTimeout(function () {
(cb || top.U.UF.F.topWindow)(null, true);
U.UF.F.isTop = false;
}, 0); return;
}
else if (!U.UF.F.isTop) {
(cb || top.U.UF.F.topWindow)(null, true);
(event && event.type == "mousedown") && (U.UF.F.isTop = true);
}
else if (U.UF.F.isTop == true) { U.UF.F.isTop = false; }
}
U.UF.F.isTop = setTimeout(function () {
U.UF.F.isTop = false;
}, 0);
}*/


//获取置顶元素
U.UF.F.GetEE = function () {
    var _UE = window.event;
    if (!_UE) { return document.activeElement; }
    return _UE.srcElement;
}


////#region 拉伸窗体

////虚拟框
//U.UF.F.maskFrame = function () {
//    return $$("div", { "style": { "cssText": "width:100%;height:100%;position:absolute;top:0;left:0;"} }, document.body);
//}

///*
//* 拖动框
//*
//* @param  {element} 需要创建虚拟框的元素
//* @param  {object} 元素的位置
//----------参数为getElementInfo 返回值
//*/
//U.UF.F.foundVirtualBox = function (UDOD, UE) {
//    UDOD = U.selectEl(UDOD);
//    UE = UE || UDOD.getElementInfo(); //获取元素的位置
//    return $$("div", { "style": { "cssText": "pointer-events:none;border:2px solid Gray;position:absolute;top:" + (UE["OT"] - 2) + "px;left:" + (UE["OL"] - 2) + "px;width:" + (UE["OW"]) + "px;height:" + (UE["OH"]) + "px;z-index:" + (US.ZINDEX  + 10)} }, UDOD.Parent());
//}

///*
//* 拉伸函数处理
//*
//* @param  {element} 需要拉伸的元素
//* @param  {function} 拉伸回调函数
//----------参数为getElementInfo 返回值
//*/
//U.UF.F.AddOM = function (UDOD, cb) {
//    if (!$(".UD_W_WT", UDOD)[0]) { //拉伸对象不存在
//        var i,
//        _UTE = U.UF.F.RCDG(UDOD, null, cb), //创建拉伸处理
//        _UTP = "UD_W_WT",
//        _UDE = [["H", "up"], ["MR", "right"], ["B", "down"], ["ML", "left"], ["HL", "topright"], ["BR", "bottomright"], ["BL", "bottomleft"], ["HR", "topleft"]], //拉伸所有的监视 和 className 的设置
//        _UDTD = $$("div", { "className": "UD_W_WT" }); //新建立一个容器
//        for (i = 0; i < _UDE.length; i++) { //添加上下左右处理元素
//            $$("div", { "className": _UTP + "_" + _UDE[i][0], "onmousedown": _UTE.set(_UDE[i][1]) }, _UDTD);
//        }
//        UDOD.appendChild(_UDTD); //添加拉伸元素
//    }
//}

///*
//* 拉伸执行
//*
//* @param  {element} 需要拉伸的元素
//* @param  {string} 需要调用的回调
//* @param  {function} 拉伸回调函数
//----------参数为getElementInfo 返回值
//*/
//U.UF.F.RCDG = function (UDOD, UTF, cb) {
//    return new U.UF.F.RCDG.init(UDOD, UTF, cb);
//}

///*
//* 拉伸执行
//*
//* @param  {element} 需要拉伸的元素
//* @param  {string} 需要调用的回调
//* @param  {function} 拉伸回调函数
//*/
//U.UF.F.RCDG.init = function (UDOD, UTF, cb) { //拖动的拉伸
//    /*
//    注释:
//    -----cb 回调函数
//    -----UDOD 拉伸的原函数
//    */
//    U.UF.C.AddObj(this, { cb: cb, UDOD: UDOD });
//    (UTF) && (this.set(UTF)); //设置回调
//}

//U.UF.F.RCDG.init.prototype = {
//    /*
//    * 拉伸执行
//    *
//    * @param  {element} 需要拉伸的元素
//    * @param  {string} 
//    * @param  {function} 拉伸回调函数
//    */
//    set: function (UTF) {
//        var i, _UDMD,
//        _UDOD = this.UDOD,
//        _UE = U.UF.EL.getElementInfo(_UDOD), //当前位置
//        _UDE = [["move", UTF], ["up", "mup"]];
//        if (UTF && event.button != 2 && (_UE["OH"] != US.height || _UE["OW"] != US.width)) { //非右键
//            //内部使用变量设置
//            U.UF.C.AddObj(this, {
//                UMD: (_UDMD = U.UF.F.maskFrame()), //拉伸虚拟框
//                UTF: UTF, //拖动时回调函数
//                UTOD: U.UF.F.foundVirtualBox(_UDOD), //虚拟框
//                E: _UE, //当前的位置大小
//                H: _UE.H, //原高
//                W: _UE.W, //原长
//                T: _UE.OT, //原top
//                L: _UE.OL//原left
//            });
//            this.UTOD.setCapture(); //创建使用的变量

//            //虚拟框和拖动看置顶
//            U.UF.F.topWindow(this.UTOD);
//            U.UF.F.topWindow(_UDMD); //虚拟框

//            //拖动元素监视
//            for (i = 0; i < _UDE.length; i++) {
//                document["onmouse" + _UDE[i][0]] = U.UF.C.apply(this, [[this[_UDE[i][1].toLocaleLowerCase()]]]);
//            }

//            //返回拖动对象
//            return this; //设置拉伸
//        }
//    },
//    //向上拉伸
//    up: function () {
//        var _UE = U.UF.EL.getMousePosition(), //获取鼠标的位置
//        _UT = Math.min(Math.max(_UE["Y"], 0), this.T + this.H - 4), //获取拉伸头部的top位置
//        _UH = this.H + (this.T - _UT); //计算高度
//        U.selectEl(this.UTOD).addAttrArray({ "style": { "cssText": "top:" + (_UT - 2) + "px;height:" + (_UH) + "px"} }); //设置样式
//    },
//    //下面拉伸
//    down: function () {
//        var _UE = U.UF.EL.getMousePosition(); //鼠标所在的位置
//        _UE["Y"] = Math.max(Math.min(_UE["Y"], US.height), this.T); //获取拉伸的位置
//        this.UTOD.style.height = (_UE["Y"] - this.T) + "px"; //拉伸后的大小处理
//    },
//    //左边拉伸
//    left: function () {
//        var _UE = U.UF.EL.getMousePosition(), //鼠标所在的位置
//        _UL = Math.min(Math.max(_UE["X"], 0), this.L + this.W - 4), //左边位置处理
//        _UW = this.W + this.L - _UL; //长度变化
//        U.selectEl(this.UTOD).addAttrArray({ "style": { "cssText": "left:" + (_UL - 2) + "px;width:" + (_UW) + "px"} });
//    },
//    //右边
//    right: function () {
//        var _UE = U.UF.EL.getMousePosition();  //鼠标所在的位置
//        _UE["X"] = Math.max(Math.min(_UE["X"], US.width), this.L); //右边位置处理
//        this.UTOD.style.width = (_UE["X"] - this.L) + "px"; //内容大小处理
//    },
//    //左上
//    topleft: function () {
//        this.up(); //向上拉伸
//        this.left(); //左边拉伸
//    },
//    //右上
//    topright: function () {
//        this.up(); //向上拉伸
//        this.right(); //右边拉伸
//    },
//    //左下
//    bottomleft: function () {
//        this.down(); //向下拉伸
//        this.left(); //向左拉伸
//    },
//    //右下
//    bottomright: function () {
//        this.down(); //向下拉伸
//        this.right(); //右边拉伸
//    },
//    //结束拉伸
//    mup: function () {
//        var i, _UPE = this.E.PD,
//        _UBE = this.E.BD,
//        _UDTD = U.selectEl(this.UTOD), //拉伸元素
//        _UCE = U.UF.EL.getElementInfo(this.UTOD), //拉伸元素的大小
//        _UDE = [_UCE["W"], _UCE["H"]];
//        //设置得到的位置和大小
//        for (i = 0; i < _UPE.length; i++) {
//            _UDE[(i + 1) % 2] -= (_UPE[i] + _UBE[i]);
//        }
//        //设置拉伸元素
//        U.selectEl(this.UDOD).addAttrArray({ "style": { "cssText": "left:" + (_UCE["OL"] + 2) + "px;top:" + (_UCE["OT"] + 2) + "px;width:" + _UDE[0] + "px;height:" + _UDE[1] + "px"} }); //设
//        //清空
//        U.selectEl(_UDTD).remove();
//        _UDTD[0].releaseCapture();
//        document.onmousemove = document.onmouseup = null;
//        U.selectEl(this.UMD).remove();
//        //回调设置
//        U.UF.F.withf(this.cb, _UDE);   //清空 //执行回调              
//    }
//}

///*
//* 回调执行
//*
//* @param  {object} 回调函数或者参数
//* @param  {object} 回调的参数
//*/
//U.UF.F.withf = function (UAE, UDE) {
//    if (UAE) {
//        var i, j, k, _UCE, _UDOD,
//        _UKE = {};
//        for (i in UAE) {
//            if (UAE.hasOwnProperty(i)) {
//                //处理元素共同变化处理 这个会更加最大拖拉的元素 自适应
//                if (i == "with") {
//                    for (j = 0; j < UAE[i].length; j++) {
//                        _UCE = UAE[i][j];
//                        _UDOD = _UCE["Element"]; //获取需要变化的元素集
//                        for (k in _UCE) {
//                            if (_UCE.hasOwnProperty(k) && k != "Element") { //变化的样式处理
//                                _UKE[k] = _UCE[k] + UDE[k == "width" ? 0 : 1];
//                            }
//                        }
//                        U.selectEl(_UDOD).addAttrArray({ style: _UKE });
//                    }
//                }
//                //直接回调自己处理
//                else { U.UF.C.apply(null, UAE[i])(UDE); } //执行回调
//            }
//        }
//    }
//}


////#endregion



/**
* style样式转换 如 text-align => textAlign 或者相反的换
*
* @param  {array} 进行操作的对象 
* @param  {string} 确定循环范围 
*/
/*U.UF.EL.styleConversion = function (UST, UTF) {
UTF = UTF ? [/[A-Z]/g, "-", 0, "toLowerCase"] : [/-[a-z ]/g, "", 1, "toUpperCase"]; //转换的样式或者属性
return UST.replace(UTF[0], function (UMS) { //利用正则转换
return UTF[1] + UMS.charAt(UTF[2])[UTF[3]]();
});
}*/


/**
* 获取鼠标位置
*
* @param  {element} 相对对象 
* @param  {element} 进暂无使用行操作的对象 
* @return  {array} 过渡属性的值
*/
/*U.UF.C.GetMousep = function (UDOD, UDTD) {
var _UE = U.UF.EV.getEventSource(), //获取MouseEvent
_UET = (_UE.touches && _UE.touches[0]) ? _UE.touches[0] : _UE, //如果是手机点击则获取touches[0]对象
_UDE = { "X": _UET.clientX || _UET["pageX"] || 0, "Y": _UET.clientY || _UET["pageY"] || 0 }, //储存坐标的对象
_UGE = { BCRL: 0, PXL: 0, BCRT: 0, PXT: 0 }; //用于储存数据sss

(UDTD || UDOD) && (_UGE = UDTD || U.UF.EL.offsetParent(UDOD, true),
_UGE = U.UF.EL.getElementInfo(_UGE)); //获取相对元素的位置
U.UF.C.AddObj(_UDE, { "TX": _UGE.BCRL - _UGE.PXL, "TY": _UGE.BCRT - _UGE.PXT }); //获取位置与上级相对位置
U.UF.C.AddObj(_UDE, { "X": _UDE["X"] - (_UDE["TX"] || 0), "Y": _UDE["Y"] - (_UDE["TY"] || 0), "MX": _UDE.X, "MY": _UDE.Y }); //设置值
return _UDE;
}*/



///**
//* 统一处理函数,解决闭包添加事件的问题
//* 使用apply,把事件与属性添加到对象上,而不是添加到window顶级对象。使用apply而不是call,是因为apply第二个参数可以传递参数数组,代码更少。
//* 调用方法 U.UF.C.apply(this,'执行函数的事件')  例如 U.UF.C.apply(this,'this.style.display="none"');
//*解决作用域的问题函数名称为:U.FC.C.apply,主要用于在javascript中实现类的功能
//* @param  {object} 将要绑定事件与属性的对象,如没有,可以传递null或者this,此处还需要优化,很多地方都会调用此函数,会导致速度降低。
//* @param  {object} 函数与参数组成的数组。

//案例:U.FC.C.apply(this,function(){});  //this用dialog做案例.
//案例: U.FC.C.apply(element,function(){});
//*/
//U.UF.C.apply = function (retElement, obj) {
//    //retElement 将要绑定事件与属性的对象,如没有,可以传递null或者this,此处还需要优化,很多地方都会调用此函数,会导致速度降低。
//    //obj 时间和属性组成的参数数组
//    return function () {
//        if (obj) {
//            var i, //循环初始化
//            j, //循环初始化
//            _URE,
//            _UAE,
//            _UTE = (retElement) || this,
//            _UME = Array.prototype.slice.apply(arguments); //arguments 转化成数组
//            if (typeof obj == "string") { _URE = (new Function(obj)).apply(_UTE, _UME); }
//            else if (typeof obj == "function") { _URE = obj.apply(_UTE, _UME); }
//            else {
//                for (i = 0; i < obj.length; i++) {
//                    if (obj[i] && obj[i][0]) { //函数存在
//                        _UAE = obj[i][1];
//                        (!_UAE) && (_UAE = []);
//                        (!U.UF.Ut.isEvent(_UME[0]) || _UME.length > 1) && (_UAE = _UAE.concat(_UME)); //event == null ||
//                        //循环添加至
//                        for (j = 0; j < _UAE.length; j++) {
//                            if (typeof _UAE[j] == "string") {
//                                try {
//                                    if (_UAE[j].indexOf(this) > -1 || _UAE[j].indexOf("retElement") > -1 || _UAE[j].indexOf("event") > -1) { _UAE[j] = eval("0,(" + _UAE[j] + ")"); } //制定参数解析
//                                    else if (U.UF.S.Num.test(_UAE[j])) { _UAE[j] = Number(_UAE[j]); } //数字转化
//                                } catch (e) { U.UF.C.console(e); }
//                            }
//                        }
//                        try {
//                            if (U.UF.C.isString(obj[i][0])) {
//                                _URE = eval(obj[i][0]).apply(_UTE, _UAE); //eval效率不高 特殊情况才用
//                            }
//                            else if (U.UF.C.isFunction(obj[i][0])) { _URE = obj[i][0].apply(_UTE, _UAE); }
//                        }
//                        catch (e) { U.UF.C.console(e); } //函数执行错误
//                    }
//                }
//            }

//            return _URE;
//        }
//        //直接掉function(){},不传递obj参数时,返回false。
//        else { return false; }
//    }
//}

/**
* 修改设置制定样式后获取所有设置的元素
*
* @param  {element} 元素 
* @param  {string} 获取的类型 
* @param  {string} 是添加还是移除属性 
-----------De 移除属性
* @param  {object} 设置的属性 
* @return  {array} 通过参数2获取的元素 

*/
/*U.UF.EL.SetElement = function (UDE, UTP, URE, UTF) {
    if (UDE) {
        (typeof (UDE) == "string") && (UDE = $$("div", { "innerHTML": UDE }));
        UDE = UDE || document;
        var i, //用于循环
        _UFT,
        _UAE,
        _UDOD,
        _UMS = "",
        _UCE = [];
        UTP = (UTP == "*" || !UTP) ? "&*" : UTP; //需要获取的值
        if (UTF) {
            for (i in UTF) {
                UTP += ("[" + i + (UTF[i] ? ("=" + UTF[i]) : "") + "]"); //属性选择
            }
        }
        if ((_UAE = U.selectEl(UTP, UDE)) && UTF !== false && URE) { //设置
            _UCE = _UAE[(_UFT = URE == "De") ? "remove" : "addAttrArray"](_UFT ? null : URE);
        }
        (URE == "De") && (_UCE = [_UCE.length > 0 ? _UCE : _UAE, UDE]); //如果为删除返回两个值  一个是选中的值 一个是传入的元素集
        return _UCE;
    }
    return [];
}*/
/*
**  作用:修改设置指定样式后获取所有设置的元素
**  @param {element} el 获取需要修改样式的元素
**  @param {element} key 获取属性的名
**  @param {boolean} b 如果b为true,则设置元素属性
**  @param {element} value 获取属性的value值
**  实例:console.log(U.UF.EL.SetElement($("script")[0], 'key', true, 'value'))//设置属性
**        console.log(U.UF.EL.SetElement($("script")[0], 'key'))//获取属性
*/
U.UF.EL.SetElement = function (el, key, b, value) {
    var i; //  用于循环
    if (el) { //  判断元素是否存在
        if (b === true) { // 如果b为true 则设置元素属性
            el.setAttribute(key, value);
            return el.getAttribute(key) // 返回元素的属性值
        }
        for (i = 0; i < el.attributes.length; i++) { // 循环元素的属性
            if (el.attributes[i].nodeName === key) { // 判断元素的属性名是否跟key相同
                return el.attributes[i].nodeValue // 返回获取的元素的属性值
            }
        }
    }
    return 0
}

/**
* 根据ID获取指定的祖先元素
*
* @param  {element} 当前元素
* @param  {string} 祖先元素的id
* @return  {element} 祖先元素 
*/

/*U.UF.EL.getAncestor = function (UDOD, UTID) {
while (UDOD && !(UDOD == UTID || UDOD.id == UTID)) { //递归寻找父级
UDOD = UDOD.parentNode;
}
return UDOD;
}

        number: /\(([\s\S]*?)\)/, //数字的使用
        ename: /=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*/g, //[]选择符的使用
        escape: /(&|![\w\u00c0-\uFFFF\-]|\@[\w\u00c0-\uFFFF\-]+=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*)/g, //需要转义的正则
        nregular: /[>|+|~]/g, //伪类选择
        con: /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, //通用符的使用
        className: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,  //className的定义
        id: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //id的定义
        name: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, //name选择符处理
        attr: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
        tagName: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, child: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, //标签选择符处理
        pos: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/, //子元素选择器
        pseudo: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/


        /**
* 获取元素的位置大小
*
* @param  {element} el 元素
* @return  {object} 返回元素的位置  函数内有详细的注释
*/
U.UF.EL.getElementInfo = function (el) {
    //    UDOD要获取位置的元素    
    if (el) {
        var i, //用于循环
        _arr, //存放所有数据的集合
        _arrbd, //用于获取元素的border属性
        _arrpd = [], //用于获取元素的padding属性
        _arrwh = [], //储存width、height变量 
        _arroffset = ["Top", "Right", "Bottom", "Left"], //用于连接字符串 获得offset属性
        _elgetbc = el.getBoundingClientRect(), //返回一个矩形对象
        _elxy = U.UF.M.pageXY(el), //获取UDOD的位置
        _elp = U.UF.EL.offsetParent(el); //获取元素offsetParent
        for (i = 0; i < _arroffset.length; i++) {  //筛选 padding 和 border
            _arrpd[i] = U.UF.EL.getStyle(el, "padding" + _arroffset[i]).toInt(); //总元素padding属性为获取元素指定的样式padding加上offset属性的整型
            //_arrwh[i] = (_arrbd = U.UF.EL.getStyle(el, "border" + _arroffset[i] + "Width").toInt()).length ? 0 : _arrbd; 
            if ((_arrbd = U.UF.EL.getStyle(el, "border" + _arroffset[i] + "Width").toInt()).length) {//判断是否拥有元素的指定样式border和width两个属性
                _arrwh[i] = 0; //存储border和width变量的则为0
            } else {
                _arrwh[i] = _arrbd//否则,则获取和元素的padding属性一样的值
            }
        }
        _arr = {
            PD: _arrpd, //元素的padding
            BD: _arrwh, //元素的border
            PXT: (document.documentElement.scrollTop) + _elp.scrollTop, //滚动条top位置
            PXL: (document.documentElement.scrollLeft) + _elp.scrollLeft, //滚动条left位置
            SH: el.scrollHeight,  //包含滚动掉的高度
            SW: el.scrollWidth, //包含滚动条的长度
            SL: el.scrollLeft, //滚动条向左的位置
            ST: el.scrollTop, //滚动条向右的位置
            CH: el.clientHeight, //页面不包含 border padding宽度
            CW: el.clientWidth, //页面不包含 border padding长度
            CT: el.clientTop, //页面margin + top的高度
            CL: el.clientLeft, //页面margin + left的长度
            OH: el.offsetHeight, ///页面包含 border padding宽度
            OW: el.offsetWidth,  //页面包含 border padding长度
            OL: el.offsetLeft, //页面left的长度 
            OT: el.offsetTop, //页面top的高度
            BCRH: _elgetbc.bottom - _elgetbc.top, //元素的显示高度
            BCRW: _elgetbc.right - _elgetbc.left, //元素的显示长度
            BCRT: _elgetbc.top, //元素的显示top
            BCRL: _elgetbc.left, //元素的显示left
            BCRB: _elgetbc.bottom, //元素的显示bottom
            BCRR: _elgetbc.right, //元素的显示right
            TX: _elxy[1], //元素的显示高度
            TY: _elxy[0]//元素的显示高度
        };
        _arr.H = _arr["OH"] - _arr["PD"][1] - _arr["PD"][3] - _arr["BD"][1] - _arr["BD"][3]; //原宽度 不包含所有的border padding margin
        _arr.W = _arr["OW"] - _arr["PD"][0] - _arr["PD"][2] - _arr["BD"][0] - _arr["BD"][2]  //原长度 不包含所有的border padding margin

        //        U.UF.C.AddObj(_arr, {
        //            H: _arr["OH"] - _arr["PD"][1] - _arr["PD"][3] - _arr["BD"][1] - _arr["BD"][3], //原宽度 不包含所有的border padding margin
        //            W: _arr["OW"] - _arr["PD"][0] - _arr["PD"][2] - _arr["BD"][0] - _arr["BD"][2]  //原长度 不包含所有的border padding margin
        //        });
        return _arr;
    }
    return {};
}


///**
//* resize变化处理 包含了resizestart endresize 由于resize会出发多次 所有这里可分为 start 和 end
//*
//* @param  {object} resize对象
//*/
//U.UF.EV.resize = function (obj) {
//    var _obj = new U.UF.EV.resize.init(obj); //初始化监视
//    return U.UF.C.apply(_obj, _obj.exec); //设置执行的方式
//}

///**
//* resize方法函数
//*
//* @param  {object} resize对象
//*/
//U.UF.EV.resize.init = function (obj) {
//    U.UF.C.AddObj(this, this.u = obj); //添加事件监视
//}

///**
//* resize方法
//*
//*/
//U.UF.EV.resize.init.prototype = {
//    exec: function () { //执行resize处理
//        this.start(); //onresize回调处理
//        (this.ti) && (clearTimeout(this.ti)); //取消end监视
//        this.ti = setTimeout(function () { this.end(); }, 0); //end处理 
//        (U.UF.C.isFunction(this.u)) && (this.u()); //end事件等待
//    },
//    start: function () {
//        this.iss = true; //设置已经start
//        (!this.iss && this.s) && (this.s()); //函数回调
//    },
//    end: function () {
//        this.iss = false; //end结束
//        (this.e) && (this.e()); //resizeend处理
//    }
//}


        var i, j, k, _UNE, _UTP, _UVE, _UAE, _UST, _UTE = this, i = item || 0, _UL = item + 1 || this.length, _UGE = { "class": "className", "html": "innerHTML", "text": "innerText", "float": "cssFloat" }, _UME = ["width,height,top,bottom,left,right", "px"];
        for (; (i < _UL && i < this.length); i++) {
            for (j in UDE) {
                if (UDE.hasOwnProperty(j)) {
                    if (j == "style") { //style赋值
                        _UVE = ""; _UAE = UDE[j];
                        for (k in _UAE) { //添加cssText
                            if (_UAE.hasOwnProperty(k)) {
                                _UTP = U.UF.EL.styleConversion(k, true); _UNE = _UAE[k];
                                if ((k in this[i][j]) && (_UTP == "css-text" || _UAE[k]) && this[i].cloneNode) {
                                    if (_UTP == "css-text") { _UVE = _UAE[k] + ";" + _UVE; } //cssText赋值
                                    else { (_UME[0].split(",").indexOf(_UTP, null, true) > -1 && U.UF.C.isStringInt(_UNE)) && (_UNE += _UME[1]); _UVE += _UTP + ":" + _UNE + ";"; } //单个属性赋值
                                    continue;
                                }
                                this[i][j][U.UF.EL.styleConversion(k)] = _UAE[k] || "";
                            }
                        }
                        (_UVE != null) && (this[i][j]["cssText"] += ";" + _UVE);  //添加css值
                    }
                    else { //其它属性赋值
                        if (j.indexOf("on") == 0 && "array,string".indexOf(U.UF.C.getType((_UVE = UDE[j]))) > -1) {
                            ((_UVE = UDE[j]) && typeof _UVE[0] == "function") && (_UVE = [_UVE]);
                            UDE[j] = U.UF.C.apply(this[i], _UVE);
                        } //事件特殊处理
                        if (typeof (_UAE = this[i])[j] == "object" && typeof UDE[j] == "object") { U.UF.C.AddObj(_UAE[j], UDE[j]); } //object赋值
                        else { if (_UAE[j] !== UDE[j]) { _UST = _UAE[j]; k = _UGE[j] || j; if (U.UF.C.isString((_UVE = UDE[j])) && U.UF.EL.isCustomAttributes(_UAE, k)) { try { _UAE.setAttribute(k, _UVE); } catch (e) { } } _UAE[k] = UDE[j]; } } //非原属性下的
                    }
                }
            }
        }


        
/**
* 获取大小位置
*
* @param  {element} 元素
* @return  {object} 获取元素的大小 
*/
U.UF.EL.getElementInfo = function (el) {
    var i, _UST, //i用于循环 _UST用于存放width和height
    _UDTD = U.selectEl(el), //获取当前元素
    _UPE = [], //用于存放padding的大小
    _UBE = [], //用于存放border的大小
    _UAE = ["Top", "Right", "Bottom", "Left"]; //用于存放top、left、right、bottom的属性
    //获取padding border
    for (i = 0; i < _UAE.length; i++) {//循环四周有没有padding和border的top、left、right、bottom属性
        _UPE[i] = _UDTD.css("padding" + _UAE[i]).toInt(); //把当前元素获取到的padding属性的大小存放在数组中
        _UBE[i] = _UDTD.css("border" + _UAE[i] + "Width").toInt(); //把当前元素的border属性的大小存放在数组中
        (_UBE[i].length) && (_UBE[i] = 0); //border的长度并且border的长度不为0
    }
    //获取长宽
    _UAE = ["width", "height"]; //用于存放width、height的属性
    for (i = 0; i < _UAE.length; i++) {//循环width和height
        _UST = _UAE[i]; _UAE[i] = _UDTD[_UST]();
    }
    //返回大小处理
    return {
        "PD": _UPE, //padding 
        "BD": _UBE, //border
        "OW": _UAE[0] + _UPE[1] + _UPE[3] + _UBE[1] + _UBE[3], //包含padding border 的长
        "OH": _UAE[1] + _UPE[0] + _UPE[2] + _UBE[0] + _UBE[2], //包含padding border 宽
        "CW": _UAE[0], //不包含padding border 宽
        "CH": _UAE[1]//不包含padding border 宽
    };
}




//,
//    animate: function (UDE, USP, cb, UIF, UGE) { //css3动画效果和js原始动画 动画排队
//        if (UDE) {
//            var i, j, k, _UTE, _UKW, _USE, _UE, _UDID, _UTID, _UME,
//                    _UL = UIF + 1 || this.length,
//                    _UDSD = $$("div").style,
//                    _UAE = [{ "style": {} }, "", {}],
//                    _UCE = ["width", "height", "top", "bottom", "left", "right"],
//                    _UBE = U.UF.CI.getBrowser(), _UTF = _UBE.browser == "msie" && parseInt(_UBE["ver"]), _USD = { "fast": 300, "normal": 1000, "slow": 3000}[USP], _UAF = UDE["IES"]; delete UDE["IES"]; _USD = _USD || USP || 1000;
//            for (i in UDE) { if (UDE.hasOwnProperty(i)) { if (_UDSD[(_UKW = U.UF.EL.styleConversion(i))] === undefined) { _UAE[0][i] = UDE[i]; } else { _UAE[0]["style"][_UKW] = UDE[i]; if (_UKW == "cssText") { _UAE[1] += UDE[i] + ";"; } else { _UAE[1] += (_UKW = U.UF.EL.styleConversion(i, true)) + ":" + UDE[i] + ";"; for (j = 0; j < _UCE.length; j++) { if (_UCE[j] == i || _UKW.indexOf(_UCE[j]) > -1) { _UAE[2][_UKW] = ""; break; } } } } } } //设置css3动画和js动画
//            for (i = (UIF || 0); i < _UL; i++) { _USE = ""; for (j in _UAE[2]) { if (UDE.hasOwnProperty(j)) { j += j.indexOf("padding") > -1 ? "-width" : ""; _UE = this.css(j, null, i); _UE = isNaN(_UE.toInt()) ? ((this[j] ? this[j](i) : 0) + "px") : _UE; _USE += j + ":" + _UE + ";"; } }; (_USE) && (this.addAttrArray({ "style": { "cssText": _USE} }, i)); } //设置初始值
//            if (_UTF && _UTF < 10 && _UAF == null) { this.addAttrArray(_UAE[0], UIF); (U.UF.C.isFunction(cb)) && (cb()); } //Ie8不动画 (cb) && (setTimeout(cb, 0)); 
//            else { //IE9以上动画渲染
//                if (((!_UTF || _UTF > 9) && (_UAE[1] || _UAE[0].className))) { //css3动画加速
//                    _USE = U.UF.EL.GCssAe();
//                    _UDID = "UEM" + Guid.guidNoDash();
//                    _UE = _USE[0] + ":all " + (_USD / 1000) + "s linear;";
//                    if (UGE) {
//                        for (i in UGE) { _UE += _USE[0] + "-" + i + ":" + UGE[i] + ";"; }
//                    }
//                    _UE = "." + _UDID + " {" + _UE + "}"; //设置动画属性
//                    this.bind(_USE[1], (_UTE = U.UF.C.apply(this, function () {
//                        this.unbind(_USE[1], _UTE);
//                        U.UF.EL.AsynCssEM.apply(this, [_UDID, _UDSD, cb, UIF]);
//                    }))); //添加动画
//                    _UDSD = U.UF.DL.LoadStyle(_UE);
//                    U.select.IsAnimate(this, UIF, _UDID);
//                    this.addClass(_UDID, UIF);
//                    (_UAE[0].className) && (this.addClass(_UAE[0].className, UIF), delete _UAE[0].className);
//                    this.addAttrArray(_UAE[0], UIF); delete _UAE[0].className; delete _UAE[0].style; //移除设置回调
//                }
//                for (i in _UAE[0]) {
//                    if (_UAE[0].hasOwnProperty(i)) { //非css动画或者IE8动画
//                        _UME = U.UF.C.Animation({ "cb": function () { this.Auxiliary.animate([UIF, _UL, _UTID, _USE ? null : cb], _UAE[0]); }, "ti": _USD }); //动画加速
//                        U.select.IsAnimate(this, UIF, _UME);
//                        break;
//                    }
//                }
//            }
//        }
//        return this;
//    },
//    stop: function (item) { //停止动画回播
//        var _USE, i = item || 0,
//         _UL = item == null ? this.length : item + 1;
//        for (; i < _UL; i++) {
//            if ((_USE = this[i].__Animate__)) {
//                if (U.UF.C.isString(_USE[2])) {
//                    this[i].className = _USE[2];
//                    this.addClass(_USE[1], i);
//                    this.css("cssText", _USE[0], i);
//                }
//                else {
//                    _USE[2].stop();
//                }
//            }
//        }
//    },
//    opacity: function (UVE, item) { //设置透明度 全兼容
//        if (this.length) {
//            var i, _USE = {}, _UDE = { opacity: 1, "-webkit-opacity": 1, "-moz-opacity": 1, "-khtml-opacity": "", filter: "" };
//            for (i in _UDE) { if (i in this[0].style) { _USE[i] = (_UDE[i] = i == "filter" ? "alpha(opacity=" + (UVE * 100) + ")" : UVE); } }
//        }
//    },
//    fadeIn: function (USP, cb, item) {//动画淡出,,
//        var i, _UKE, _USE = {}, _UDOD = $$("div").style, _UDE = ["opacity", "-webkit-opacity", "-moz-opacity", "-khtml-opacity", "filter"]; cb = U.UF.C.apply(this, function () {
//            this.addAttrArray({ "style": (_UKE = { "display": "none" }) }, item);
//            cb();
//        }); //设置回调 
//        for (i = 0; i < _UDE.length; i++) { if (_UDE[i] in _UDOD) { _UKE[_UDE[i]] = ""; _USE[_UDE[i]] = _UDE[i] == "filter" ? "alpha(opacity=0)" : "0"; break; } }; return this.animate(_USE, USP || "fast", cb, item); //查看
//    },
//    fadeOut: function (USP, cb, item) {//动画淡入
//        var i, _USE = {}, _UDOD = $$("div").style, _UDE = ["opacity", "-webkit-opacity", "-moz-opacity", "-khtml-opacity", "filter"]; for (i = 0; i < _UDE.length; i++) { if (_UDE[i] in _UDOD) { _USE[_UDE[i]] = _UDE[i] == "filter" ? "alpha(opacity=100)" : "1"; _UDE = _UDE[i]; break; } };
//        _USE[_UDE] = _UDE == "filter" ? "alpha(opacity=100)" : "1"; this.addAttrArray({ "style": { "display": "block"} }); return this.animate(_USE, USP || "fast", cb, item); //查看 _USE
//    },
//    slideUp: function (USP, cb, item) { //滑动消失
//        this.slideToggle(USP, cb, item);
//    },
//    slideDown: function (USP, cb, item) { //滑动出现
//        this.slideToggle(USP, cb, item, false);
//    }

//    on: function (UE, US, cb, item) { //事件绑定
//        var _UDE = this; (US) && (_UDE = this.find(US, item)); _UDE.bind(UE, cb, item);
//    },
//    off: function (UE, US, cb, item) { //取消事件绑定
//        var _UDE = this; (US) && (_UDE = this.find(US, item)); _UDE.unbind(UE, cb, item);
//    }

//    resize: function (cb, item) { //resize事件
//        this.bind("resize", U.UF.EV.resize(cb), item);
//    },

//    resizestart: function (cb, item) { //resoze开始
//        this.resize({ s: cb }, item);
//    },
//    resizeend: function (cb, item) { //设置sizeend
//        this.resize({ e: cb }, item);
//    },

//#region 扩展选择器

//U.select.fn.extend({

//});

//    scrollTo: function (UT, UTI) {//移动变化
//        var _UDOD = this[0]; (_UDOD) && (U.UF.EV.scrollToPosition(UT, _UDOD, UTI));
//    }

////#region 事件监听区域

//U.select.fn.extend({
//    cache: [], //保存对象使用选择器保留值
//    cacheE: function (UDOD) {//保存对象的值
//        var i, _UDE = U.select.fn.cache;
//        for (i = 0; i < _UDE.length; i++) { if (_UDE[i].UDOD === UDOD) { return _UDE[i]; } } //获取制定的元素绑定
//        this.events = {}; this.UDOD = UDOD; this.id = Guid.guidNoDash(); _UDE.push(this); return this; //添加事件监听对象
//    }
//});

//U.select.fn.cacheE.prototype = {
//    removeEvent: function (UDE, UAE) { //删除event
//        var i, j, _UME, _UDOD = this.UDOD, _UCE = this.events; (typeof UDE == "string") && (_UME = UDE, (UDE = {})[_UME] = UAE); UDE = UDE || _UCE;
//        for (i in UDE) { if (UDE.hasOwnProperty(i) && (_UME = _UCE[i])) { for (j = 0; j < _UME.length; j++) { if (_UME[j] == UDE[i] || _UCE == UDE || !UDE[i]) { U.UF.EV.delElementEvent(i, _UDOD, _UME.splice(j, 1)[0]); j--; } } } } //清除事件
//    },
//    addevent: function (UDE, UAE) { //添加event监听
//        var i, _UCE = this.events;
//        (!_UCE[UDE]) && (_UCE[UDE] = []); _UCE[UDE].push(UAE);
//    }
//}

////#endregion

////window.$$.NS = function (UNE, UDE, UPE, UCE, UUE) { //创建带有命名空间的元素
////    var _UDOD = U.selectEl(document.createElementNS(UUE || "http://www.w3.org/2000/svg", UNE));
////    _UDOD.addAttrArray(UDE); (UPE) && (_UDOD.appendTo(UPE, 0, UCE)); return _UDOD[0]; //添加属性
////}

////#region 辅助函数

////U.select.fn.extend({
////    selecte: {
////        "only-child": function (UDE) { //获取作为单一孩子节点元素
////            return Array.prototype.slice.call(U.select(UDE).only());
////        },
////        "nth-child": function (UDE, UTP) { //获取第几个元素
////            var i, j, _UCE, _UN = UTP.match(this.match.number)[1], _UTF = _UN.indexOf("n") > -1, _UAE = []; _UN = _UN.toInt();
////            if (!_UTF || _UN) {
////                for (i = 0; i < UDE.length; i++) {
////                    _UCE = U.select(UDE[i]).parentElement().Child();
////                    if (_UTF) { for (j = _UN; j <= _UCE.length; j += _UN) { if (UDE[i] == _UCE[j - 1]) { _UAE.push(UDE[i]); (_UN == 1) && (j++); break; } } } //(xn)查找
////                    else { (_UCE[_UN - 1] == UDE[i]) && (_UAE.push(UDE[i])); } //直接获取第几个
////                }
////            }
////            return _UAE;
////        },
////        "first-child": function (UDE) { //获取开头元素
////            var i, _UAE = [];
////            for (i = 0; i < UDE.length; i++) { (!U.select(UDE[i]).prev().lenght) && (_UAE.push(UDE[i])); }
////            return _UAE;
////        },
////        "last-child": function (UDE) { //获取末尾元素
////            var i, _UAE = [];
////            for (i = 0; i < UDE.length; i++) { (!U.select(UDE[i]).next().length) && (_UAE.push(UDE[i])); }
////            return _UAE;
////        },
////        first: function (UDE) { //获取第一个匹配的元素
////            return UDE.length ? UDE[0] : UDE;
////        },
////        last: function (UDE) { //获取最后一个匹配元素
////            return UDE.length ? UDE[UDE.length - 1] : UDE;
////        },
////        nth: function (UDE, UTP) { //获取匹配的第几个元素
////            var i, _UAE = [], _UN = UTP.match(this.match.number)[1], _UTF = _UN.indexOf("n") > -1; _UN = _UN.toInt();
////            if (_UTF || _UN) {
////                if (_UTF) { for (i = _UN; i <= UDE.length; i += _UN) { _UAE.push(UDE[i - 1]); } }
////                else { (UDE[_UN]) && (_UAE.push(UDE[_UN])); }
////            }
////            return _UAE;
////        },
////        getevenodd: function (UDE, UTP) { //获取奇数和偶数集
////            var i, j, _UDPD, _UCE, _UTF, _UPE = [], _UAE = [];
////            for (i = 0; i < UDE.length; i++) {
////                _UCE = null; _UDPD = UDE[i].parentNode;
////                for (j = 0; j < _UPE.length; j++) { if (_UPE[j][0] == _UDPD) { _UCE = _UPE[j]; _UCE[1].push(UDE[i]); } }
////                (!_UCE) && (_UPE.push((_UCE = [_UDPD, [UDE[i]]]))); _UTF = (_UCE[1].length - 1) % 2; ((UTP == "even" && !_UTF) || (UTP == "odd" && _UTF)) && (_UAE.push(UDE[i]));
////            }
////            return _UAE;
////        },
////        even: function (UDE) { //获取偶数集
////            return this.selecte.getevenodd(UDE, "even");
////        },
////        odd: function (UDE) { //获取奇数集
////            return this.selecte.getevenodd(UDE, "odd");
////        },
////        eq: function (UDE, UTP) { //获取制定的位置列
////            return UDE[UTP.match(this.match.number)[1].toInt()];
////        },
////        gt: function (UDE, UTP) { //索引大于的元素
////            U.select(UDE).gt(UTP.match(this.match.number)[1].toInt());
////        },
////        lt: function (UDE, UTP) {//索引小于的元素
////            U.select(UDE).lt(UTP.match(this.match.number)[1].toInt());
////        },
////        "first-of-type": function () { },
////        "last-of-type": function () { },
////        "only-of-type": function () { },
////        "nth-last-child": function () { },
////        "nth-of-type": function () { },
////        "nth-last-of-type": function () { }
////    }
////});

////简单的复杂的方法统一
////$.SetMethod.prototype = U.select.prototype;

////#endregion

////#endregion


//,
//    length: 0, //初始化长度
//    splice: Array.prototype.splice,
//    constructor: Array

//U.select.fn.init.prototype = U.select.fn; //添加扩展



//        el = el || document;
//        //如果是字符串说明用户要通过选择器找到字符串
//        if (U.UF.C.isString(name)) {
//            var i, j, k, _UTP, _UIE, _UTF, _UVE, _UGE, _UXE, _UJE, _UOT, _UST = "",
//                _UDE = el,
//                _UME = this.match, //获取选取的正则
//                _UCE = name.replace(_UME.escape, U.select.GetSelector),
//                _UCN = _UME.con,
//                _UKE = [],
//                _UBE = U.UF.CI.getBrowser(); //浏览器版本
//            _UBE = (_UBE.browser == "msie" && _UBE.ver.toInt()); //ie的版本

//            //拆分选择器
//            do {
//                _UCN.exec("");
//                _UCE = _UCN.exec(_UCE);
//                _UKE.push(_UCE[1] + (_UCE[2] || ""));
//                _UCE = _UCE[3];
//            }
//            while (_UCE); //生成获取集合
//            _UXE: for (i = 0; (i < _UKE.length && _UDE); i++) {
//                if (_UBE < 6 && _UME.nregular.test((_UTF = _UKE[i + 1]))) {//处理选择伪类等
//                    if (_UTF == "+" || _UTF == "~") { //向下选择
//                        if (_UOT = (_UME.pos.test(_UKE[i]) || _UME.child.test(_UKE[i]))) {
//                            _UVE = this.getelement(_UKE[i], _UDE, _UST);
//                            (U.UF.Ut.isHtmlElement(_UVE)) && (_UVE = [_UVE]);
//                        }
//                        else {
//                            _UJE = this.getType(_UKE[i]);
//                        }
//                        _UIE = this.getType(_UKE[i + 2]);
//                        _UDE = this.gete(_UDE, _UIE[4], _UST, _UIE);
//                        for (j = 0; j < _UDE.length; j++) { //判断获取
//                            _UTP = false;
//                            this.celement.apply[_UDE[j]], [_UTF == "+" ? "previousSibling" : "prevaAll", NaN, _UGE = []]; //获取
//                            for (k = 0; k < _UGE.length; k++) {
//                                if (_UOT) {
//                                    if (_UVE.indexOf(_UGE[k]) > -1) { _UTP = true; break; }
//                                } else if (_UGE[0][_UJE[3]].toLowerCase() == _UKE[i]) { _UTP = true; break; }
//                            }
//                            (!_UTP) && (_UDE.splice(j, 1), j--);
//                        }
//                    }
//                    else if (_UTF == ">") { //子元素
//                        _UVE = this.getelement(_UKE[i], _UDE, _UST);
//                        if (typeof _UVE == "string") {
//                            _UVE == this.gete(_UDE, "", _UST);
//                        }
//                        if ((_UDE = _UVE)) {
//                            (U.UF.Ut.isHtmlElement(_UDE)) && (_UDE = [_UDE]);
//                            _UGE = [];
//                            _UIE = this.getType(_UKE[i + 2]);
//                            _UVE = this.gete(_UDE, _UIE[4], "", _UIE);
//                            for (j = 0; j < _UVE.length; j++) {
//                                for (k = 0; k < _UDE.length; k++) {
//                                    if (_UDE[k] == _UVE[j].parentNode) {
//                                        _UGE.push(_UVE[j]); break;
//                                    }
//                                }
//                            }; _UDE = _UGE;
//                        }
//                    }
//                    _UST = ""; i += 2;
//                    (_UIE[2]) && (_UDE = this.getelement("", _UDE, _UIE[2]));
//                }
//                else {
//                    if (_UKE[i].length > 1 && _UKE[i].indexOf("*") > -1) {
//                        _UKE[i] = _UKE[i].substr(1);
//                        if (!(_UDE = document[_UKE[i]])) {
//                            if (U.UF.CI.getBrowser().browser == "msie") {
//                                _UDE = document.getElementById(_UKE[i]);
//                            } else { _UDE = document.embeds[_UKE[i]]; }
//                        } _UST = "";
//                    }
//                    else {
//                        _UVE = this.getelement(_UKE[i], _UDE, _UST);
//                        if (typeof _UVE == "string") { _UST += _UVE; }
//                        else if (_UVE) { _UDE = _UVE; _UST = ""; }
//                        else if (_UVE === null) { _UDE = null; break _UXE; }
//                        else { _UST += _UKE[i]; }
//                    }
//                }
//            }
//            if (_UST && _UDE) {
//                _UIE = this.getType(_UST);
//                _UTF = (_UIE && !_UIE[2].trim());
//                _UDE = this.gete(_UDE, _UIE ? _UIE[4] : "", _UTF ? "" : _UST, _UTF ? _UIE : null);
//            } //添加元素
//        }
//        else {
//            var _UDE = name || [];
//        }
//        if (_UDE) {
//            this.osadd(_UDE);
//        }
//    //多个选择
//    osel: function (UTP, UTV, UDE, UTE) {
//        var i, j, _UKE, _UAE = [], _UCE = [], _UTP = "parentNode", _UTF = true;
//        if (UTP) { //选择
//            _UCE = [];
//            for (i = 0; i < UDE.length; i++) {
//                if (UDE[i][UTP] == UTV || UDE[i].getAttribute(UTP) == UTV || UTV === undefined) {
//                    _UCE.push(UDE[i]);
//                }
//            }
//        }
//        else {
//            for (i = 0; i < UDE.length; i++) {
//                for (j = 0; j < _UAE.length; j++) {
//                    if (UDE[i][_UTP] == _UAE[j][0]) {
//                        _UAE[j][1].push(UDE[i]); break;
//                    }
//                    _UAE.push[UDE[i][_UTP], [UDE[i]]];
//                }
//            } //选择的元素
//            for (i = 0; i < _UAE.length; i++) { //选择
//                _UKE = (UTE && _UAE[0][UTE]) ? _UAE[0][UTE](UTP) : SelectorElement(UTP, _UAE[0]); //获取
//                for (j = 0; j < _UKE.length; j++) {
//                    if (!_UAE[1].length) { break; }
//                    ((i = _UAE[1].indexOf(_UKE[j])) > -1) && (_UCE.push(_UKE[j]), _UAE[1].splice(i, 1));
//                }
//            }
//        }
//        return _UCE;
//    },

//    //添加选择的元素
//    osadd: function (UDE) {

//        if (U.UF.Ut.isHtmlElement(UDE) || UDE.length == null) {
//            UDE = [UDE];
//        }

//        for (var i = 0; i < UDE.length; i++) {
//            if (UDE[i]) {
//                this[this.length++] = UDE[i];
//                (UDE[i].id) && (this[UDE[i].id] = UDE[i]);
//            }
//        }
//        return this; //添加元素
//    },

//    //移除元素
//    del: function (item, UTF) {
//        var i, _UL = this.length; (item != null) && (this[item] = null);
//        if (!UTF) {
//            for (i = 0; i < _UL; i++) {
//                if (this[i] == null) {
//                    if (this[i + 1]) {
//                        this[i] = this[i + 1];
//                        this[i + 1] = null;
//                    }
//                    else { delete this[i]; } this.length--;
//                }
//            }
//        }
//    },
//    gete: function (UDE, UTP, UTS, USM) {//获取元素
//        var i, _UCE, _UKE = []; (U.UF.Ut.isHtmlElement(UDE)) && (UDE = [UDE]);
//        for (i = 0; i < UDE.length; i++) {
//            _UCE = UDE[i]; _UCE = (!UTS && (USM[1].length >= USM[0].length - 1) && _UCE[UTP]) ? _UCE[UTP](USM[1]) : SelectorElement(UTS + (USM ? USM[0] : ""), _UCE);
//            if (_UCE) { (U.UF.Ut.isHtmlElement(_UCE)) && (_UCE = [_UCE]); _UKE = _UKE.concat(U.UF.C.toArray(_UCE)); }
//        }
//        return _UKE;
//    },
//    getelement: function (UCE, UDE, USE) {//通过选择字符串获取元素
//        var i, _UME = this.match, _UAE = UCE ? this.getType(UCE) : "", _UST = _UAE && _UAE[2], _UBE = U.UF.CI.getBrowser(), _UTF = _UME.pos.test(_UST) || _UME.child.test(_UST); _UBE = (_UBE.browser == "msie", _UBE.ver.toInt()); if (!_UAE && UCE) { return _UAE; }
//        if (_UAE && USE !== true && (_UAE[0] == UCE || _UAE[2].indexOf(":") == -1) || (!_UTF || (!_UBE || _UBE > 8 || (UCE.indexOf("first-child") > -1 && _UBE > 6)))) { return UCE + " "; } //兼容添加选择值
//        else {
//            if (_UTF) { //过滤选择 //伪类选择
//                _UST = _UST.split(":"); _UAE[0] += _UST[0]; UDE = this.gete(UDE, _UAE[4], USE, _UAE);
//                for (i = 1; i < _UST.length; i++) { if (_UST[i] && !U.UF.Ut.isHtmlElement(UDE)) { UDE = this.selecte[_UST[i].split("(")[0]].call(this, UDE, _UST[i]); } }
//            }
//            else { UDE = this.gete(UDE, _UAE[4], "", _UAE); }; return UDE
//        }
//    },
//    getType: function (UCE) {//获取格式
//        var i, _UJE, _UME = this.match, _UAE = { "name": "getElementsByName", "id": "getElementById", "tagName": "getElementsByTagName", "className": "getElementsByClassName" };
//        for (i in _UAE) { if ((_UJE = _UME[i].exec(UCE))) { return [_UJE[0], _UJE[1], UCE.replace(_UJE[0], ""), i, _UAE[i]]; } } //获取值
//    },
//    getValue: function (USE) { //通过选择字符串生成响应的选择
//        var i, _UDE = {}, _UNC = this.common.nregular, _UC = this.common.regular, _UNCA = (USE.match(_UNC) || []), _UCA = USE.match(_UC) || ["*"];
//        for (i = 0; i < _UCA.length; i++) { switch (_UNCA[j]) { case "!": _UDE["name"] = _UCA[j]; break; case "#": _UDE["id"] = _UCA[j]; break; case ".": _UDE["className"] = _UCA[j]; break; case "": case "&": _UDE["tagName"] = _UCA[j]; break; } } //获取
//        return _UDE;
//    },


///**
//* 动画处理使用
//*
//* @param   {string} 选择特殊字符串 包含# & []
//* @param   {document} 搜索的层次
//* @param   {document} 搜索的层次
//*/
//U.select.IsAnimate = function (UDE, item, UCL) {
//    var i = item || 0, _UL = item == null ? UDE.length : item + 1, _UTF = arguments.length > 0;
//    for (; i < _UL; i++) {
//        if (_UTF) {
//            UDE[i].__Animate__ = [UDE[i].style.cssText, UDE[i].className, UCL];
//        }
//        else {
//            UDE[i].__Animate__ = null; delete UDE[i].__Animate__;
//        }
//    }
//};



////通过元素的来获取 
///**
//* 使用正则表带是
//*
//* @param   {string} 选择 
//* @param   {document} 搜索的层次
//*/
//$.getElementByString = function (name, el) {
//    var _e, //这个是获取成功的函数
//        _r = name.substring(0, 1), //获取特殊字符 . # 或者 ""
//        _n = name.substring(1, name.length), //获取标签名
//        _doc = el || document; //去除特殊字符后

//    //这里是判断获取
//    try { //这里利用基础的选择器选取数据 
//        switch (_r) {
//            case "#": //根据id获取 因为id获取只能通过全局搜索 但是由于项目中有存在克隆的情况 会出现id不唯一的情况
//                if (_doc == document && U.UF.S.EN.test(_n)) {
//                    _e = document.getElementById(_n);
//                }
//                break;
//            case ".": //根据className获取
//                if (U.UF.S.EN.test(_n)) {
//                    _e = _doc.getElementsByClassName(_n);
//                }
//                break;
//            case "*": //根据className获取
//                if (U.UF.S.EN.test(_n)) {
//                    _e = _doc.getElementsByTagName("*");
//                }
//                else {
//                    _e = document[_n];
//                    if (U.UF.CI.getBrowser().browser == "msie") {
//                        _e = document.getElementById(_n);
//                    }
//                    else {
//                        _e = document.embeds[_n];
//                    }
//                }
//                break;
//            default: //标签的获取 //获取指定的元素
//                if (U.UF.S.EN.test(name)) {
//                    _e = _doc.getElementsByTagName(name); //除去特殊字符的处理
//                }
//                break;
//        }
//    }
//    catch (e) { }
//    //判断是否获取元素成功,如果上面简单的选择去不成功,那么就通过其他的选择器方案去获取
//    if (_e == null) {
//        _e = U.UF.CP.SelectorElement(name, _doc); //其他选择的方式获取
//    }
//    return new $.SetMethod(_e); //把选择的元素添加方法
//}

///**
//* 元素方法
//*
//* @param   {object} 设置的域
//*/
//$.SetMethod = function (el) {
//    el = el || [];
//    //把所有获取出来的元素转化成数组,以便下面循环添加
//    if (U.UF.Ut.isHtmlElement(el) || el.length == null) {
//        el = [el];
//    }
//    //设置获取元素的长度
//    this.length = el.length;
//    //循环所有的元素,把元素设置到this里面,这样用户获取到的元素集就能通过this[0]或者this[id]去获取了
//    for (var i = 0; i < el.length; i++) {
//        //如果元素存在的处理
//        this[i] = el[i];
//        //如果元素有id,那么给返回值添加一个id的处理,以便返回值中有以id作为key的返回值
//        if (el[i].id) {
//            this[el[i].id] = el[i];
//        }
//    }
//}


///**
//* 初始化编辑区域
//*
//* @param   {string} 选择特殊字符串 包含# & []
//* @param   {document} 搜索的层次
//*/
//U.select.GetSelector = function (UST) { //处理选择器
//    if (UST == "#") { //getElementById 的选择符
//        return " #";
//    }
//    else if (UST == "&") { //className联合的选择符
//        return " ";
//    }
//    else if (UST.charAt(0) == "!") { //自定义参数的选择符
//        return "[name='" + UST.substr(1) + "']";
//    }
//    else { //自定义参数使用
//        return "[" + UST.substr(1).replace(U.select.prototype.match.ename, "='$1'") + "]";
//    }
//};

//    //正则匹配选择器
//    match: {
//        ename: /=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*/g, //[]选择符的使用
//        escape: /(&|![\w\u00c0-\uFFFF\-]|\@[\w\u00c0-\uFFFF\-]+=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*)/g, //需要转义的正则
//        nregular: /[>|+|~]/g, //伪类选择
//        con: /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, //通用符的使用
//        className: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,  //className的定义
//        id: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/, //id的定义
//        name: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/, //name选择符处理
//        attr: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
//        tagName: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/, child: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/, //标签选择符处理
//        pos: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/ //子元素选择器
//    },





///**
//* 初始化对话框实例
//* @returns {function} 回调函数初始化
//* @arguments 对象的 length 属性包含了传递给U.UF.UI.Dialog的参数的数目。
//*/
//U.UF.UI.Confirm.init = function (UDE) {
//    var i, _UCE = ["title", "style", "confirmNoClose", "confirmYesClose", "content", "top"];
//    if (UDE.length < 4) {
//        var _UDOD = U.selectEl("#U_COF"); //创建一个ID为U_COF的对象
//        UDE = ["消息提示", { "width": "300px" }, UDE[2], UDE[1],
//              $$("div", {
//                  "className": "U_UI_OC",
//                  "style": {
//                      "textAlign": "center",
//                      "margin": "25px 0",
//                      "max-width": "400px",
//                      "word-wrap": "break-word",
//                      "max-height": "400px",
//                      "overflow": "auto"
//                  },
//                  innerHTML: UDE[0] ? UDE[0] : ""
//              })];
//    }
//    for (i = 0; i < UDE.length; i++) {
//        this[_UCE[i]] = UDE[i];
//    }
//    this.Create();
//}

//U.UF.UI.Confirm.init.prototype = {
//    /**
//    * 创建对话框的ui
//    */
//    Create: function () {
//        var i, _UDE, _UDOD, _UDTD, _UDID, _UDSD, _UCB, _USE = {
//            width: "auto",
//            height: "auto"
//        },
//       _UEK = (this.style = this.style || {});
//        _USE.forEach(function (UA, UB) {
//            _UEK[UB] = _UEK[UB] || UA;
//        });
//        _UEK.zIndex = 9999;

//        var _frag = $$("frag");

//        _UDOD = $$("div",
//        {
//            "className": "U_UI_OB"
//        });
//        _UDTD = $$("div",
//    {
//        "className": "U_UI_OBA"
//    }, _UDOD);
//        this.No = $$("div", {
//            "onclick": function () {
//                this.confirmYesNo(this.confirmNoClose);
//            },  // [(Array.isArray(this.confirmNoClose) ? this.confirmNoClose : [this.confirmNoClose]), [(_UCB = U.UF.C.apply(_UDE, [[_UDE.shut]]))]],
//            "innerHTML": "取消",
//            "style": { "display": this.Q == true ? "none" : "block" },
//            "className": "U_UI_OBY"
//        }, _UDTD);

//        this.Yes = _UDSD = $$("div", {
//            "onclick": function () {
//                this.confirmYesNo(this.confirmYesClose);
//            }, //[(Array.isArray(this.confirmYesClose) ? this.confirmYesClose : [this.confirmYesClose]), [_UCB]],
//            "innerHTML": "确定",
//            "className": "U_UI_OBY"
//        }, _UDTD); //确定按钮

//        _frag.appendChild(this.content);
//        _frag.appendChild(_UDOD);


//        this.form = _UDE = new U.UF.UI.form({
//            id: "U_COF",
//            top: this.top ? true : false,
//            min: false,
//            max: false,
//            style: this.style,
//            title: "<div class='UD_SYF_STI'>" + (this.title || "对话框") + "</div>",
//            content: _frag,
//            hst: {
//                style: {
//                    padding: "0"
//                }
//            },
//            draw: false
//        }); //创建对话框




//        //    U.selectEl(_UDE.middle).append(_UDOD);

//        _UDID = U.selectEl("input", _UDE.middle);
//        for (i = _UDID.length - 1; i >= 0; i--) {
//            if ("text,password".indexOf(_UDID[i].type) > -1) {
//                _UDID[i].focus();
//                _UDID[i].onkeypress = U.UF.C.apply(_UDID[i], function () {
//                    U.UF.C.returnkeylogin([{
//                        "obj": _UDSD,
//                        "event": 'onclick'
//                    }]);
//                });
//            }
//        }
//        return _UDE;
//    },

//    /**
//    * 给对话框设置事件
//    * @param  {object} 窗体事件使用
//    ----------[yes] {function} 确定的函数事件
//    ----------[no] {function} 取消的函数事件
//    */
//    AddEvent: function (UDE) {
//        for (var i in UDE) {
//            if (UDE.hasOwnProperty(i)) {
//                this[i].onclick = U.UF.C.apply(this.form, function () {
//                    this.form.shut();
//                    UDE[i]();
//                }); //
//            }
//        }
//    },

//    /**
//    * 给对话框设置事件
//    * @param  {object} 窗体事件使用
//    */
//    confirmYesNo: function (fun) {
//        var _UCB = U.UF.C.apply(this.form, this.form.shut), //关闭窗体的函数
//        _UTF = Array.isArray(fun) ? U.UF.C.apply(this, fun)() : (fun) && (fun.call(this));
//        if (_UTF !== false) { //不允许关闭
//            _UCB();
//        }

//        //      [(Array.isArray(this.confirmNoClose) ? this.confirmNoClose : [this.confirmNoClose]), [(_UCB = U.UF.C.apply(_UDE, [[_UDE.shut]]))]]
//    }
//}


/*U.UF.UI.Dialog = function (UDC, UDT, UDID, UDW, UDH) {
(!UDW || !UDH) && (UDW = "400px", UDH = "550px");
return U.UF.UI.form({
id: UDID ? UDID : null,
style: { "width": parseInt(UDW) + "px", "height": parseInt(UDH) + "px" },
content: UDC ? UDC : null, title: UDT ? UDT : "通知",
min: false,
max: false,
draw: false
});
}*/

//U.UF.UI.Confirm = function (UCT, UCBF, UCNF) {
//    var _UDOD = U.selectEl("#U_COF"); //创建一个ID为U_COF的对象
//    if (_UDOD[0]) { //判断是否有U_COF的子节点,没有则创建
//        _UDOD.childs(0, 1).childs(0, 0).html(UCT); //设置内容
//        _UDOD.Center(); //内容居中
//    } else {
//        U.selectEl(U.UF.UI.Dialog("消息提示", {}, UCNF ? U.UF.C.apply(this, [UCNF]) : null, UCBF ? U.UF.C.apply(this, [UCBF]) : null,
//            $$("div", {
//                "className": "U_UI_OC",
//                "style": {
//                    "textAlign": "center",
//                    "padding": "25px 0 25px 0"
//                },
//                innerHTML: UCT
//            })).Create()).addAttrArray({
//                "id": "U_COF"
//            })[0];
//    U.UF.EV.stopBubble(); //阻止冒泡
//    return _UDOD;
//}

/**
* 创建一个通知形式的对话框
*{str} UDC 对话框里面的内容。 
*{str} UDT 标题
*{str} UDID 对话框id
*{int} UDW 宽度
*{int} UDH 高度
* @returns  返回ID为U_COF的对象
**/
//U.UF.UI.Dialog = function (UDC, UDT, UDID, UDW, UDH) {
//    return new U.UF.UI.Dialog.init(arguments);
//}

//U.UF.EV.addPrototype(U.UF.UI.Dialog, U.UF.C.AddObj(U.UF.UI.Dialog, {
//    init: function (UDE) { //添加对话框信息
//        var i, _UCE = ["title", "style", "confirmNoClose", "confirmYesClose", "content", "SO"];
//        for (i = 0; i < UDE.length; i++) {
//            this[_UCE[i]] = UDE[i];
//        }
//    },
//    Create: function () { //创建对话框
//        var i, _UDE, _UDOD, _UDTD, _UDID, _UDSD, _UCB, _USE = {
//            width: "auto",
//            height: "auto",
//            minWidth: "300px"
//        },
//            _UEK = (this.style = this.style || {});
//        _USE.forEach(function (UA, UB) {
//            _UEK[UB] = _UEK[UB] || UA;
//        });
//        _UEK.zIndex = 9999;
//        _UDE = new U.UF.UI.form({
//            top: true,
//            min: false,
//            max: false,
//            style: this.style,
//            title: "<div class='UD_SYF_STI'>" + (this.title || "对话框") + "</div>",
//            content: this.content,
//            hst: {
//                style: {
//                    padding: "0"
//                }
//            }
//        }); //创建对话框
//        _UDOD = $$("div", {
//            "className": "U_UI_OB"
//        });
//        _UDTD = $$("div", {
//            "className": "U_UI_OBA"
//        }, _UDOD);
//        $$("div", {
//            "onclick": [
//                [this.confirmNoClose],
//                [(_UCB = U.UF.C.apply(_UDE, _UDE.close))]
//            ],
//            "innerHTML": "取消",
//            "className": "U_UI_OBY"
//        }, _UDTD);
//        _UDSD = $$("div", {
//            "onclick": [
//                [this.confirmYesClose],
//                [_UCB]
//            ],
//            "innerHTML": "确定",
//            "className": "U_UI_OBY"
//        }, _UDTD); //确定按钮
//        U.selectEl(_UDE.middle).append(_UDOD);
//        _UDID = U.selectEl("input", _UDE.middle);
//        for (i = _UDID.length - 1; i >= 0; i--) {
//            if ("text,password".indexOf(_UDID[i].type) > -1) {
//                _UDID[i].focus();
//                _UDID[i].onkeypress = U.UF.C.apply(_UDID[i], function () {
//                    U.UF.C.returnkeylogin({
//                        "obj": _UDSD,
//                        "event": 'onclick'
//                    });
//                });
//            }
//        }
//    }
//}));



//U.UF.UI.Dialog.init.prototype = U.UF.UI.Dialog.prototype;


///*
//弹出提示框,为了同时弹出多个提示框,为多份实例对象
//1、可以像java语言的用法,用new调用多份,例如: var a=new U.AlertB();
//2、也可以省略new的步骤,直接U.Alert(),出来的结果为多份。
//参数一:UTH 内容
//参数二:UTI 无确认按钮的显示时间
//参数三:是否带确认按钮
//返回值:
//*/
//U.Alert = function (UTH, UTI, IFQ) {
//    IFQ === true ? new U.AlertA(UTH, IFQ) : new U.AlertB(UTH, UTI);
//}

////为了多份实例,另外建立一个类似类的函数。
////带有确定按钮的alert
//U.AlertA = function (UTH) {
//    U.UF.UI.Confirm("提示框", {}, null, null, $$("div", {
//        "style": {
//            "textAlign": "center",
//            "margin": "25px 10px 25px 10px",
//            "max-width": "400px",
//            "word-wrap": "break-word",
//            "max-height": "400px",
//            "overflow": "auto"
//        },
//        innerHTML: UTH
//    }), true);
//}

////自动消失的alert
//U.AlertB = function (UTH, UTI) {
//    this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI);
//    var _UDPD = U.selectEl("body")[0];
//    this.UDOD = U.selectEl($$("div", {
//        "innerHTML": UTH,
//        "className": "USalert",
//        "style": { "cssText": "z-index:9999;left:" + ((US.width / 2 - 160) + _UDPD.scrollLeft) + "px;top:" + ((US.height / 2 - 100) + _UDPD.scrollTop) + "px" },
//        "onclick": function () { this.DAlert(true); }
//    }, U.selectEl("body")[0])).css({
//        "top": US.height / 2 - 80 + _UDPD.scrollTop + "px"
//    });
//}

////为了减少内存消耗,把方法写在原型中。
//U.AlertB.prototype = {
//    //    init: function (UTH, UTI) {//创建alert "id": "USalert",
//    //        this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI); this.UDOD = U.selectEl($$("div", { "innerHTML": UTH, "className": "USalert", "style": { "cssText": "z-index:9999;left:" + (US.width / 2 - 160) + "px;top:" + (US.height / 2 - 100) + "px" }, "onclick": function(){this.DAlert(true);} }, U.selectEl("body")[0])).animate({ "top": US.height / 2 - 80 + "px" }, 300, function(){this.AsynAmAlert();});
//    //    },
//    AsynAmAlert: function () { //等待动画
//        this.UTI = setTimeout(function () { this.AmAlert(); }, this.TI || 1000); //异步等待
//    },
//    AmAlert: function () { //结束动画
//        if (this.UTI) { clearTimeout(this.UTI) };
//        var _UDOD = U.selectEl(this.UDOD);
//        if (_UDOD.Parent() == document.body) {
//            _UDOD.animate({
//                "top": _UDOD[0].offsetTop - 70 + "px"
//            }, 100, function () { this.DAlert(); })
//        };
//    },
//    DAlert: function (UTF) { //移除alert
//        if (this.TI || UTF) {
//            U.selectEl(this.UDOD).remove();
//        }
//    }
//}


//U.UF.EV.addPrototype(U.AlertB, {
//    //    init: function (UTH, UTI) {//创建alert "id": "USalert",
//    //        this.TI = ((UTI == null || UTI < 0) ? 1000 : UTI); this.UDOD = U.selectEl($$("div", { "innerHTML": UTH, "className": "USalert", "style": { "cssText": "z-index:9999;left:" + (US.width / 2 - 160) + "px;top:" + (US.height / 2 - 100) + "px" }, "onclick": function(){this.DAlert(true);} }, U.selectEl("body")[0])).animate({ "top": US.height / 2 - 80 + "px" }, 300, function(){this.AsynAmAlert();});
//    //    },
//    AsynAmAlert: function () {//等待动画
//        this.UTI = setTimeout(function(){this.AmAlert();}, this.TI || 1000); //异步等待
//    },
//    AmAlert: function () {//结束动画
//        (this.UTI) && (clearTimeout(this.UTI)); var _UDOD = U.selectEl(this.UDOD);
//        (_UDOD.Parent() == document.body) && (_UDOD.animate({ "top": US.height / 2 - 70 + "px" }, 100, function(){this.DAlert();}));
//    },
//    DAlert: function (UTF) { //移除alert
//        if (this.TI || UTF) { U.selectEl(this.UDOD).remove(); }
//    }

//}); //U.UF.C.AddObj(U.Alert,})
//U.Alert.prototype.init.prototype = U.Alert.prototype;



////#region 分页控件
//Namespace.register("U.UF.P");

////分页控件设置
///*
//功能:传统分页控件,此函数将预先加载。以后需多做几种样式。
//参数一:UDE代表className为UD_SYFLB的div元素
//参数二:UOD代表聊天条数。
//参数三:UDP为整形1,默认第一页,其他数字,则为相应的显示页。
//参数四: UNP代表一页显示多少条数据
//参数五:USN为打印聊天信息的函数
//*/
//U.UF.P.PPage = function (UOD, USN, UNP, UDN, UCF, UTF) {
//    var i, j, _USE, _UKE,
//            _UME = U.UF.P.PPage.setPage(USN, UNP, UDN, UCF);
//    if (U.UF.C.isFunction(UTF)) {
//        _USE = UTF(this);
//        _UKE = { //按钮对应事件处理
//            "pre": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF);
//            }
//            }, //上一页
//            "next": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF);
//            }
//            }, //下一页
//            "frit": { "onclick": function () {
//                U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF);
//            }
//            }, //第一页
//            "last": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF);
//            }
//            }, //最后一页
//            "input": [
//                {
//                    "onkeyup": [U.UF.C.returnkeylogin, [null, function () {
//                        U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP);
//                    } ]],
//                    "onclick": function () {
//                        U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP);
//                    }
//                }

//                     ], //输入框 按钮
//            "page": [] //页码按钮 变化样式 当前页的样式
//        };
//        for (i in _USE) {
//            if (_USE.hasOwnProperty(i) && _UKE[i]) {
//                if (Array.isArray(_UKE[i])) {
//                    for (j = 0; j < _UKE[i].length; j++) {

//                    }
//                }
//                else {
//                    for (j in _UKE[i]) {
//                        _USE[i][j] = _UKE[i][j]
//                    }
//                }
//            }
//        }
//    }
//    else if (!UTF) { //  创建分页控件
//        U.UF.P.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF)
//    }
//    return _UME;
//}

////分页控件显示
//U.UF.P.PPage.CPage = function (UDE, UOD, UDP, UNP, USN, UDN, UCF, UDOD) {
//    var i, _UN, _USP, _UDOD, _UDTD, _UDSD, _UDGD, _UTE, _UAE, _UCE = [], _UBE = [];
//    for (i = 0; i < 4; i++) {
//        switch (i) {
//            case 0:
//                _UTF = UNP != 1;
//                break;
//            case 1:
//                _UTF = UNP > 1;
//                break;
//            case 2:
//                _UTF = UNP < UDP;
//                break;
//            case 3:
//                _UTF = UNP != UDP;
//                break;
//        }
//        if (_UTF) {
//            _UBE[i] = UDE[i == 3 ? i + 1 : i];
//        } else {
//            _UCE[i] = "O";
//        }
//    }
//    if (UDOD) {
//        //分页控件分页
//        _UDTD = U.selectEl(UDOD).Child(),
//                _UDAD = U.selectEl(_UDTD[0]).childs(),
//                _UTE = [1, UNP - 1, UNP + 1, UDP];
//        U.selectEl(_UDTD[1]).Child()[2].innerText = UNP + "页";
//        _UAE = ["O", "T", "S", "F"];
//        //跳页赋值
//        for (i = 0; i < 4; i++) {
//            _UDAD.addAttrArray({
//                "onclick": _UCE[i] ? "" : function () {
//                    U.UF.P.PPage.exec(_UTE[i], _UBE[i], UOD, USN, UNP, UDN, UCF, UDOD);
//                },
//                "className": "U_Boom_Img_ys2017 UD_SYFYL" + _UAE[i] + (_UCE[i] || "")
//            }, (UCF.isp && i > 1) ? i + 1 : i);
//        }
//        //页码赋值
//        if (UCF.isp) {
//            _UDAD[2].innerText = ""; //清空
//            _UN = UNP > 5 ? UNP - 5 : 0; //当前页的范围
//            _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp;
//            _UAE = U.UF.P.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件
//            for (i = _UN; i < _USP; i++) { //范围使用
//                $$("div", { "onclick": function () {
//                    U.UF.P.PPage.exec(i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, UDOD);
//                },
//                    "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""),
//                    "innerHTML": i + 1
//                }, _UDAD[2]);
//            }
//        }
//        U.selectEl(_UDTD[1]).childs(0, 1).addAttrArray({
//            "onclick": (_UTE = function () {
//                U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, UDOD, UDP);
//            })
//        }, 8);
//        U.selectEl("input", UDOD).addAttrArray({
//            "onkeyup": function () {
//                U.UF.C.returnkeylogin(null, _UTE);
//            }
//        });
//    }
//    else {
//        _UDOD = $$("div", {
//            "className": "UD_SYFY"
//        });
//        _UDTD = $$("div", {
//            "className": "UD_SYFYL"
//        }, _UDOD);
//        $$("div", {
//            "className": "U_Boom_Img_ys2017 UD_SYFYLO" + (_UCE[0] || ""),
//            "onclick": _UCE[0] ? null : function () {
//                U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF, _UDOD);
//            },
//            "title": "首页"
//        }, _UDTD);
//        $$("div", {
//            "className": "U_Boom_Img_ys2017 UD_SYFYLT" + (_UCE[1] || ""),
//            "onclick": _UCE[1] ? null : function () {
//                U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF, _UDOD);
//            },
//            "title": "上一页"
//        }, _UDTD);
//        if (UCF.isp && UDP > 0) {
//            _UDSD = $$("div", { "className": "UD_SYFYN" }, _UDTD);
//            _UN = UNP > 5 ? UNP - 5 : 0;
//            _USP = UNP + UCF.isp > UDP ? UDP : UNP + UCF.isp;
//            _UAE = U.UF.P.PPage.setPage([_UN, _USP], null, null, UCF); //获取点击事件
//            for (i = _UN; i < _USP; i++) {
//                $$("div", { "onclick": function () {
//                    U.UF.P.PPage.exec(i + 1, _UAE[i - _UN], UOD, USN, UNP, UDN, UCF, _UDOD);
//                },
//                    "className": "UD_SYFYNO" + ((i + 1 == UNP) ? " UD_SYFYNOO" : ""),
//                    "innerHTML": i + 1
//                }, _UDSD);
//            }
//        }
//        $$("div", {
//            "className": "U_Boom_Img_ys2017 UD_SYFYLS" + (_UCE[2] || ""),
//            "onclick": _UCE[2] ? null : function () {
//                U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF, _UDOD);
//            },
//            "title": "下一页"
//        }, _UDTD);
//        $$("div", {
//            "className": "U_Boom_Img_ys2017 UD_SYFYLF" + (_UCE[3] || ""),
//            "onclick": _UCE[3] ? null : function () {
//                U.UF.P.PPage.exec(UDP, _UBE[3], UOD, USN, UNP, UDN, UCF, _UDOD);
//            },
//            "title": "尾页"
//        }, _UDTD);
//        _UDTD = $$("div", {
//            "className": "UD_SYFYR"
//        }, _UDOD);
//        _UDSD = $$("div", {
//            "className": "UD_SYFYRL"
//        }, _UDTD);
//        $$("span", {
//            "innerHTML": "到"
//        }, _UDSD);
//        _UDGD = $$("div", {}, _UDSD);
//        $$("input", {
//            "type": "text",
//            "onkeyup": [U.UF.C.returnkeylogin, [null, function () {
//                U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP);
//            } ]]
//        }, _UDGD);
//        $$("span", {
//            "innerHTML": "页"
//        }, _UDSD);
//        $$("div", {
//            "className": "UD_SYFYRZ",
//            "innerHTML": "确定",
//            "onclick": function () {
//                U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, _UDOD, UDP);
//            }
//        }, _UDTD);

//        $$("div", {
//            "className": "UD_SYFYRR",
//            "innerHTML": UNP + "页"
//        }, _UDTD);
//        UOD.appendChild(_UDOD);
//    }
//}
////函数执行
//U.UF.P.PPage.exec = function (UTF, UFN, UOD, USN, UNP, UDN, UCF, UDOD) {
//    if (UFN != null) {
//        var _UDE = U.UF.P.PPage.main(UOD, USN, UTF, UDN, UCF, true);
//        U.UF.P.PPage.CPage(_UDE[0], UOD, Math.ceil(USN / UDN), UTF, USN, UDN, UCF, UDOD);
//        UFN();
//    }
//}

////输入框设置
//U.UF.P.PPage.PageAchieve = function (UFN, UOD, USN, UNP, UDN, UCF, UDOD, UDP) {
//    var _UN = U.selectEl(event.srcElement).parentElement().find("input")[0].value;
//    if (U.UF.S.Number.test(_UN)) {
//        _UN = _UN.toInt();
//        if (_UN <= UDP && _UN > 0) {
//            if (UNP != _UN) { U.UF.P.PPage.exec(_UN, UFN, UOD, USN, UNP, UDN, UCF, UDOD) };
//        }
//        else {
//            parent.U.Alert("输入范围异常!");
//        }
//    }
//    else {
//        parent.U.Alert("无效输入!");
//    }
//};

////设置页数函数
//U.UF.P.PPage.setPage = function (USN, UNP, UDN, UCF) {
//    var i, j, k, _USE, _UKE, _UGE, _UME = [],
//        _UCE = UCF["fun"], //回调函数
//        _UIP = UCF["page"]; //当前使用页数;
//    if (Array.isArray(USN)) {
//        for (i = USN[0]; i < USN[1]; i++) {
//            _UGE = [];
//            for (j = 0; j < _UCE.length; j++) {
//                _USE = _UCE[j][1];
//                if (_UIP[j] != null) {
//                    _USE = _USE.concat();
//                    _USE[_UIP[j]] = i + 1;
//                }
//                _UGE.push[_UCE[j][0], _USE];
//            }
//            _UME.push(_UGE);
//        }
//        return _UME;
//    }

//    else { //添加事件处理
//        var _UDP = Math.ceil(USN / UDN), //总页数
//                _UDE = [1, UNP - 1, UNP + 1, "$(event.srcElement).parentElement().find('input')[0].value", _UDP]; //前一页后一页处理

//        for (i = 0; i < _UDE.length; i++) {
//            _UGE = [];
//            for (j = 0; j < _UCE.length; j++) {
//                _USE = _UCE[j][1];
//                if (_UIP[j] != null) {
//                    _USE = _USE.concat();
//                    _USE[_UIP[j]] = _UDE[i];
//                }
//                _UGE.push[_UCE[j][0], _USE];
//            }
//            _UME.push(_UGE);
//        }
//        return [_UME, _UDP];
//    }
//}

////控件设置
//U.UF.P.PPage.main = function (UOD, USN, UNP, UDN, UCF, UTF) {
//    var i, j, _USE, _UKE,
//            _UME = U.UF.P.PPage.setPage(USN, UNP, UDN, UCF);
//    if (U.UF.C.isFunction(UTF)) {
//        _USE = UTF(this);
//        _UKE = { //按钮对应事件处理
//            "pre": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP - 1, _UBE[1], UOD, USN, UNP, UDN, UCF);
//            } 
//            }, //上一页
//            "next": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF);
//            } 
//            }, //下一页
//            "frit": { "onclick": function () {
//                U.UF.P.PPage.exec(1, _UBE[0], UOD, USN, UNP, UDN, UCF);
//            } 
//            }, //第一页
//            "last": { "onclick": function () {
//                U.UF.P.PPage.exec(UNP + 1, _UBE[2], UOD, USN, UNP, UDN, UCF);
//            } 
//            }, //最后一页
//            "input": [
//                { "onkeyup": [U.UF.C.returnkeylogin, [null, function () {
//                    U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP)
//                } ]]
//                },
//                    { "onclick": function () {
//                        U.UF.P.PPage.PageAchieve(UDE[3], UOD, USN, UNP, UDN, UCF, null, UDP);
//                    } 
//                    }], //输入框 按钮
//            "page": [] //页码按钮 变化样式 当前页的样式
//        };
//        for (i in _USE) {
//            if (_USE.hasOwnProperty(i) && _UKE[i]) {
//                if (Array.isArray(_UKE[i])) {
//                    for (j = 0; j < _UKE[i].length; j++) {

//                    }
//                }
//                else {
//                    for (j in _UKE[i]) {
//                        _USE[i][j] = _UKE[i][j]
//                    }
//                }
//            }
//        }
//    }
//    else if (!UTF) { //  创建分页控件
//        U.UF.P.PPage.CPage(_UME[0], UOD, _UME[1], UNP, USN, UDN, UCF)
//    }
//    return _UME;
//}

////#endregion



////#region

////所有请求的ajax对象.
//U.A.allAjax = [];

////#endregion

///**
//* ajax初始化区域
//*
//* @param  {string} 访问的地址
//* @param  {array} 数据库地址,数据库名,存储过程名,存储过程参数的数组
//* @param  {function} 回调函数
//* @param  {array} 函数传参
//* @returns {object} ajax对象 
//-----------这里的传参第一个为loading元素
//*/
//// 删除了一个参数 UCE
//U.A.Request = $.ajax = function (str, db, cb, arg) {
//    //判断浏览器是否在线联网
//    if (navigator.onLine) {
//        var _ajax, //获取所有的传参,参数说明 win 当前域 、 UR ajax原对象 、 EOR 错误回调函数 、 fun 触发的函数地址 、 UDE 服务器传参 、 cb 回调函数    UPE 回调参数 、 UAE ajax对象属性 、 time当前使用时间
//            _preajax = U.A.allAjax[U.A.allAjax.length - 1]; //ajax对象
//        //判断ajax的时间差,防止恶意用户用循环向服务器不断发送请求,导致服务器瘫痪。
//        //恶意请求大于了50次,则判断此用户有恶意攻击嫌疑。
//        //计算两次ajax请求的时间差
//        var _iftimespan;
//        if (_preajax) {
//            _iftimespan = new Date().getTime() - _preajax.date > 50;
//        }
//        //如果第一次ajax请求,或者ajax请求小于50次。或者2次发送请求的时间差大于50毫秒,都算没有恶意请求。
//        if (!_preajax || _preajax.timespan < 50 || _iftimespan) { //连续发送禁止处理
//            _ajax = new U.A.Request.init(arguments); //生成ajax对象
//            //此处添加二级域名跨域,完全跨域,无跨域的分支。
//            if (_ajax.handleDomain() == true) {
//                return _ajax.create(); //创建连接,无_header分支


//                //                //添加有_header和无_header的两个分支。
//                //                if (_ajax.header) {
//                //                    return _ajax.createHeader(_ajax.header); //创建连接,添加_header的目的是可以自己构建_header
//                //                } else {
//                //                
//                //                }
//            }
//        }
//        else {
//            return { "error": "application has been breached" }; //连接过多错误
//        }
//    } else { U.Alert("网络断开!"); }
//}

///**
//* ajax初始化区域
//*
//* @param  {array} ajax参数
//----------[0] 访问的地址
//----------[1] 服务器传参
//----------[2] 回调函数
//----------[3] 函数传参
//-----------这里的传参第一个为loading元素
//*/
//U.A.Request.init = function (arg) { //初始化Ajax对象
//    /*
//    参数说明 win 当前域 、 UR ajax原对象 、 EOR 错误回调函数 、 fun 触发的函数地址 、 UDE 服务器传参 、 cb 回调函数
//    UPE 回调参数 、 UAE ajax对象属性 、 time当前使用时间
//    */
//    //this.win = window; // win 当前域
//    //ajax原对象{ TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 }
//    //U.A.Request调用示例:U.A.Request("http://cd.1473.cn/php", ["mysql.1473.cn", "CloudSqlTestDb", "selectAllData"],function (r){})
//    this.win = window; // win 当前域
//    this.ajax = null; //ajax原对象{ TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 }  在函数createAjax里面最后一句话会发送此ajax
//    this.err = null; //  err   error是系统关键字
//    this.url = arg[0]; // url   )。后台地址,形如"http://cd.1473.cn/php"。
//    //ajax向后台请求的传参,其形式为:["mysql.1473.cn", "CloudSqlTestDb", "selectAllData","guid","str"],包含了数据库地址,数据库名,数据库存储过程名称,数据库参数...如果没有,则新建一个空数组,用法:var e = U.A.Request("http://cd.1473.cn/ss");.则e为后台返回的值。
//    //UDE改成db
//    this.db = arg[1] || [];
//    this.cb = arg[2] || ""; //回调函数  cb   
//    this.cbparams = arg[3]; //回调参数  cbparams
//    //调用方法:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID], function(){}, [], { type: "Get", "setAsyn": false, "timeout": 1, "CONTENT-TYPE": "application/json" }); //访问日志添加消息
//    this.header = arg[4] || ""; //暂时没有用处。浏览器升级后对ajax的功能进行扩展,加入了"对head头部自定义修改"的功能。CONTENT-TYPE:application/x-www-form-urlencoded;charset=UTF-8.
//    this.time = new Date(); //ajax生成时间..删除,时间保存在第二个参数ajax里面。
//}


//U.A.Request.init.prototype = {
//    /**
//    * Ajax对象创建
//    *
//    * @param  {object} ajax属性
//    */
//    create: function () {
//        //        var _ajax,
//        //            _header = this.header || {}, //header头部设置
//        //            _ajaxtype = _header && _header.type ? _header.type : "GET", //请求格式
//        //            _isasync = U.UF.C.isFunction(this.cb), //默认是同步处理
//        //            _urlandparams = this.toAjaxFormat(), //生成请求参数 数据结构:
//        //            _url = _urlandparams[0], //连接的后台地址 形如"http://cd.1473.cn/php" 
//        //            _db = _urlandparams[1]; //传参参数; 

//        //        //get请求就直接拼接
//        //        if (_ajaxtype.toUpperCase() == "GET") {
//        //            _url += "?" + _db;
//        //        }
//        //        this.ajax = this.createAjax(_url); //生成ajax对象
//        //        _ajax = this.ajax.systemAjax; //获取系统ajax对象
//        //        _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步
//        //        _header["CONTENT-TYPE"] = _header["CONTENT-TYPE"] || "application/x-www-form-urlencoded;charset=UTF-8"; //请求的type
//        //        //设置请求参数
//        //        for (i in _header) {

//        //            if ("type,setAsyn".indexOf(i) == -1) {
//        //                try {
//        //                    if (i in _ajax) {
//        //                        _ajax[i] = _header[i];
//        //                    } else {
//        //                        _ajax.setRequestHeader(i, _header[i]);
//        //                    } //设置head头部
//        //                } catch (e) { }
//        //            }
//        //        }

//        //        // 指定服务器返回数据的MIME类型 firfox设置兼容
//        //        if (_ajax.overrideMimeType) {
//        //            if (_header["responseType"] == "blob") {
//        //                _ajax.overrideMimeType("text/plain; charset=x-user-defined");
//        //            } else {
//        //                _ajax.overrideMimeType("text/html");
//        //            }
//        //        }
//        //        //发送请求
//        //        _ajax.send(_db);




//        //   this.header ? "" : this.header

//        var i,
//            _url,
//            _isdomain,
//            _db,
//            _ajax,
//            _isasync,
//            r;
//        var _ajaxtype = _header.type; //用户请求类型,默认1473全部是post请求。
//        var _urlandparams = this.toAjaxFormat(); //生成请求参数 数据结构:
//        _url = _urlandparams[0]; //连接的后台地址 形如"http://cd.1473.cn/php" 
//        _db = _urlandparams[1]; //传参参数;  
//        //如果不传递回调函数,则为同步请求,示例:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]);。返回json数据,一直等待服务器返回,如果服务器执行1分钟,页面停顿1分钟。
//        if (U.UF.C.isFunction(this.cb)) {
//            _isasync = true; //函数是否异步
//        }
//        //如果请求为get
//        if (_ajaxtype.toUpperCase() == "GET") {
//            _url += "?" + _db;
//        }
//        this.ajax = this.createAjax(_url); //生成ajax对象
//        _ajax = this.ajax.systemAjax; //获取系统ajax对象
//        _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步

//        _header["CONTENT-TYPE"] = _header["CONTENT-TYPE"] || "application/x-www-form-urlencoded;charset=UTF-8"
//        //设置请求参数
//        for (i in _header) {
//            if ("type,setAsyn".indexOf(i) == -1) {
//                try {
//                    if (i in _ajax) {
//                        _ajax[i] = _header[i];
//                    } else {
//                        _ajax.setRequestHeader(i, _header[i]);
//                    } //设置head头部
//                } catch (e) { }
//            }
//        }
//        // 指定服务器返回数据的MIME类型 firfox设置兼容
//        if (_ajax.overrideMimeType) {
//            if (_header["responseType"] == "blob") {
//                _ajax.overrideMimeType("text/plain; charset=x-user-defined");
//            } else {
//                _ajax.overrideMimeType("text/html");
//            }
//        }
//        //发送请求
//        _ajax.send(_db);

//        //得到服务器返回的值,一般为json,也可能为字符串。如果是异步,则走异步逻辑,否则走同步逻辑
//        if (_isasync) {
//            r = this["setAsyn"]();
//        } else {
//            r = this["getAjaxData"]();
//        }
//        //返回
//        return _isdomain;
//    },
//    /**
//    * Ajax对象创建
//    *
//    * @param  {object} ajax属性
//    */
//    //    create: function () {
//    //        var _header = {};
//    //        var i,
//    //            _url,
//    //            _isdomain,
//    //            _db,
//    //            _ajax,
//    //            _isasync,
//    //            r;
//    //        var _ajaxtype = "POST"; //用户请求类型,默认1473全部是post请求。
//    //        var _params = this.toAjaxFormat(); //生成请求参数 数据结构:
//    //        _url = _params[0]; //连接的后台地址 形如"http://cd.1473.cn/php" 
//    //        _db = _params[1]; //传参参数;  
//    //        //如果不传递回调函数,则为同步请求,示例:U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]);。返回json数据,一直等待服务器返回,如果服务器执行1分钟,页面停顿1分钟。
//    //        if (U.UF.C.isFunction(this.cb)) {
//    //            _isasync = true; //函数是否异步
//    //        }
//    //        //如果请求为get
//    //        if (_ajaxtype.toUpperCase() == "GET") {
//    //            _url += "?" + _db;
//    //        }
//    //        //设置请求超时时间
//    //        if (_isasync) {
//    //            // 给_header对象添加属性
//    //            _header.timeout = 90000;
//    //            _header.ontimeout = U.UF.C.apply(this, function () { this.asyn(); });
//    //        }

//    //        this.ajax = this.createAjax(_url); //生成ajax对象
//    //        _ajax = this.ajax.systemAjax; //获取系统ajax对象
//    //        _ajax.open(_ajaxtype, _url, _isasync); //设置ajax请求方法 url 是否异步

//    //        // 指定服务器返回数据的MIME类型 firfox设置兼容
//    //        _ajax.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded;charset=UTF-8");
//    //        // 指定服务器返回数据的MIME类型 firfox设置兼容
//    //        if (_ajax.overrideMimeType) {
//    //            _ajax.overrideMimeType("text/html");
//    //        }

//    //        //发送请求
//    //        _ajax.send(_db);

//    //        //得到服务器返回的值,一般为json,也可能为字符串。
//    //        if (_isasync) {
//    //            r = this.setAsyn();
//    //        } else {
//    //            r = this.getAjaxData();
//    //        }
//    //        //返回
//    //        return r;
//    //    },
//    /**
//    * 根据请求的url判断域名是否存在跨域。三种跨域情况
//    * @return 
//    */
//    handleDomain: function () {
//        //1、二级域名跨域,一般是a.1473.cn访问b.1473.cn。。可能是正常访问,也可能是iframe访问。,
//        //2、完全跨域。www.a.com访问www.b.com。  
//        //3、没有跨域的情况
//        var _isdomain, _url, _frame;
//        var _params = this.toAjaxFormat(); //生成请求参数 数据结构:
//        _url = _params[0]; //连接的后台地址 形如"http://cd.1473.cn/php" 
//        _isdomain = this.isDomain(_url);
//        //1473跨域处理,判断是否是1473域,如果不是,则是外域调用
//        if (_isdomain[0] && !_isdomain[1]) { // 判断是否是1473主域
//            //如果是1473域的处理
//            _frame = window.frames; //所有加载的域,对1473域下所有iframe进行循环,目的是找到可跨域的iframe。
//            for (i = 0; i < _frame.length; i++) {
//                try {
//                    if (!_url.indexOf(_frame[i].location.protocol + "//" + _frame[i].location.host)) { //找到指定的跨域
//                        return _frame[i].U.A.Request(this.url, this.db, this.cb, this.cbparams, this.header); //跨域获取
//                    }
//                } catch (e) { }
//            }
//        }
//        //完全跨域判断非1473的域名, 
//        else if (!_isdomain[1] && _url.indexOf("1473.cn") > -1 && U.selectEl("#U_Domain")[0]) { //其他域名跨域处理
//            //其他站点,跨域形式访问:例如:http://a.com/ 在页面中调用U.A.Request(US.AUTH,"UseStudioManage.AddToLoginLog", [US.userInfo.userid || US.EMPTYGUID, US.city.userAllLocation || "", US.ITID]);
//            this.goDomain(); //外站跨域调用
//            return false;
//        }
//        return true;
//    },
//    //把传参格式转换为Ajax请求格式
//    //              刑如:US.AUTH,"AddToLoginLog", [US.userInfo.userid , US.city.userAllLocation , US.ITID]  转换为下面的格式
//    //              格式:"http://main.1473.cn/Uses.ashx",US.userInfo.userid || US.EMPTYGUID +"&" + US.city.userAllLocation || ""+ "&" + US.ITID, "http://main.1473.cn/Uses.ashx"(默认请求地址,如果第一个参数不在U.A.backAddress中,则使用第三个)
//    /*
//    * @return  {array} 域、 加密参数
//    */
//    toAjaxFormat: function () {
//        var _userinfo,
//            _useurl,
//            _url = this.url, //这个是请求参数
//            _params = U.UF.C.urlEncode(this.db.concat()), //参数进行加密
//            _source = _url.indexOf(":") > -1 && U.UF.C.isUrl(_url), //判断来源是否是链接
//            _requestarr = _url.split("."); //这里拆分1473的请求
//        //通过链接方式去访问
//        //       if (_source) {
//        _useurl = _url;
//        _params = "mode=" + _params; //设置传参
//        //        }
//        //        //相对路径访问方式
//        //        else {
//        //            _useurl = window.location;
//        //            _useurl = window.location ? _useurl.protocol + "//" + _useurl.host + "/" + _url : "./" + _url;
//        //            _params = "mode=" + _params;
//        //        }
//        //请求中添加用户的信息
//        try {
//            //获取全局变量US
//            if (parent.US) {
//                _userinfo = top.US.userInfo; //获取用户的信息
//                //如果用户的信息存在那么拼接用户的信息
//                if (_userinfo && _userinfo.UserId) {
//                    _params += "&UserId=" + _userinfo.UserId + "&LoginId=" + _userinfo.LoginId;
//                }
//                //设置1473项目传参的id
//                _params += "&PageId=" + US.pageId + "&SystemId=" + US.systemId;
//            }
//        }
//        catch (e) { }
//        //请求的地址,参数,请求的后台函数名
//        return [_useurl, _params];
//    },

//    //完全跨域设置(此处非1473域名区域)处理区域
//    goDomain: function () {
//        // 获取回调参数
//        var _loading = this.cbparams ? this.cbparams[0] : null;
//        // 加载loading
//        if (_loading) {
//            U.UF.DL.loading(_loading[0])
//        } else {
//            U.UF.DL.loading(_loading, _loading[1])
//        }
//        // (_UDE) && (U.UF.DL.loading(_UDE[0] || _UDE, _UDE[1])); //设置loading
//        // 页面消息传递
//        new U.UF.EV.message({
//            "obj": "#U_Domain",
//            "Sender": true, //消息发送
//            "me": U.UF.C.apply(this, function (_data) { //接受到跨域的ajax的回调处理
//                var _dataarr = _data[2].split("=");
//                //后台设置了cookie 前台同时响应
//                if (_dataarr[1] == "") {
//                    U.UF.Cookie.del(_dataarr[0]);
//                } else {
//                    U.UF.Cookie.set(_data[2]);
//                }
//                //document.wincookie = _data[2]; //记录cookie
//                if (this.asyn) {//回调函数
//                    this.asyn(_data[0])
//                }
//            })
//        }).post([this.url, this.db], "domain"); //跨域传参
//    },

//    /**
//    * 获取链接地址
//    *
//    * @param  {url} 连接地址
//    -----------[0] 是否为1473域
//    -----------[0] 是否为主域
//    */
//    isDomain: function (URL) {
//        var _url;
//        //用本地html打开网站时,没有window.location。
//        if (window.location) {
//            //获取当前域名地址栏,不包含目录结构。例如:
//            _url = window.location.protocol + "//" + window.location.host; //当前域
//            if (_url.indexOf("1473.cn") > -1 && URL.indexOf("1473.cn") > 0) {
//                return [true, !URL.indexOf(_url)];
//            } else {
//                return [false, false];
//            }
//        }
//    },

//    /**
//    * 创建Ajax对象
//    *
//    * @param  {url} 连接地址
//    * @returns {object} ajax对象
//    */
//    createAjax: function (url) {
//        //从已经存在的ajax对象中找到已经结束请求的ajax对象,重新使用,避免ajax对象没有释放,重新创建的问题。
//        //Ajax兼容  

//        var i, _ajax, _xhr, _url, _ajaxobj = U.A.allAjax,
//            _preajax = _ajaxobj[_ajaxobj.length - 1],
//            _xhr = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; //ajax对象
//        // 获取当前域名
//        if (window.location) {
//            _thisUrl = window.location.protocol + "//" + window.location.host;
//        } else {
//            _thisUrl = "";
//        }
//        //获取可以使用的Ajax对象
//        for (i = 0; i < _ajaxobj.length; i++) { //在ajax里找到使用对象
//            if ((_ajax = _ajaxobj[i].systemAjax).readyState == 4) {
//                _ajax.onreadystatechange = function () { }; //设置回调为空
//                _ajax.abort(); //停止
//                return _ajaxobj[i];
//            }
//        }
//        //这里创建Ajax对象
//        try { _ajax = new window.XMLHttpRequest(); } //浏览器默认ajax对象
//        catch (e) {
//            for (i = 0; i < _xhr.length; i++) { //ie6-系列使用
//                try {
//                    _ajax = new ActiveXObject(_xhr[i]);
//                    break;
//                } catch (e) { }
//            }
//        }
//        //h5创建跨域ajax
//        if (url.indexOf(_thisUrl) == -1 && window.XDomainRequest) {
//            _ajax = new window.XDomainRequest();
//        }
//        //疑似非法ajax请求次数记录
//        var _timespan;
//        //如果当前发送的ajax请求和上一次发送的ajax请求时间小于0.05秒。则判断为循环非法操作。
//        if (_preajax && ((new Date().getTime() - _preajax.date) < 50)) {
//            _timespan = _preajax.timespan + 1; //恶意攻击+1.
//        } else {
//            if (_preajax) {
//                _timespan = _preajax.timespan;
//            } else {
//                _timespan = 0;
//            }
//        }
//        //(_preajax && ((new Date().getTime() - _preajax.D) < 50)) ? _preajax.J + 1 : _preajax ? _preajax.J : 0;
//        //生成ajax请求
//        var ajax = {
//            systemAjax: _ajax, //系统ajax  new window.XMLHttpRequest();  //systemajax
//            date: this.time, //当前时间 new Date();    //date
//            fun: this.url, //向后台发送请求的函数名称。  //fun
//            timespan: _timespan //与上一次发送Ajax请求的时间差距。  //timespan
//        };
//        _ajaxobj.push(ajax); //把这次的ajax请求记录到数组,目的是方便以后获取查询过的ajax。1、为了找错误,2、为了判断ajax的时间差,防止恶意用户用循环向服务器不断发送请求,导致服务器瘫痪。
//        //return (_UDE[_UDE.length] = { TO: _UAE, D: this.time, N: this.fun, J: (_UOE && ((new Date().getTime() - _UOE.D) < 50)) ? _UOE.J + 1 : _UOE ? _UOE.J : 0 });
//        return ajax;
//    },
//    //设置异步请求
//    setAsyn: function () {
//        var _ajax = this.ajax.systemAjax, //ajax对象
//            _loading = this.cbparams, //回调参数 loading
//            _isundefined = U.UF.Ut.isUndefined(_ajax.onload), //判断兼容问题
//            _cb;
//        if (_isundefined) {
//            //回调函数设置
//            _cb = U.UF.C.apply(this, function () {
//                if (this.ajax.systemAjax.readyState == 4) {//已经加载成功
//                    this.asyn();
//                }
//            });
//        }
//        else {
//            _cb = U.UF.C.apply(this, function () {
//                this.ajax.systemAjax.status = 200; //设置成功状态
//                this.asyn(); //调用跨域统一处理
//            }); //回调函数设置
//        }
//        // 设置loading
//        if (_loading && _loading[0]) {
//            if (_loading[0][0]) {
//                U.UF.DL.loading(_loading[0][0], _loading[0][1]);
//            } else {
//                U.UF.DL.loading(_loading[0], _loading[0][1]);
//            }
//        }
//        // (_cbParams && _cbParams[0]) && (U.UF.DL.loading(_cbParams[0][0] || _cbParams[0], _cbParams[0][1]));
//        //设置错误和异步请求
//        // 设置ajax回调函数
//        if (_isundefined) {
//            _ajax.onreadystatechange = _cb;
//        } else {
//            _ajax.onload = _cb;
//        }
//        // 设置ajax错误时的处理
//        try {
//            _ajax.onerror = U.UF.C.apply(this, function () {
//                this.ajax.systemAjax.status = 500; //设置错误为500
//                this.asyn(); //异步处理
//            });
//        } catch (e) { }
//    },
//    /**
//    * 服务器异步加载成功后,得到返回值,取消loading,然后回调.
//    *
//    * @param  {boolean} 是否可以直接通过 不进行ajax流程判断
//    * @param  {string} 绕过ajax流程 传参
//    */
//    asyn: function (data) {
//        try {
//            //ajax请求成功该请求的请求数改成0
//            if (this.ajax) {
//                this.ajax.timespan = 0;
//            }
//            var _loading = this.cbparams, //loading 元素
//                _data = this.getAjaxData(data), //ajax string 数据 生成 json数据集
//                _timeSpan = (new Date()).getTime() - this.time.getTime(); //ajax总共耗时
//            // 取消loading
//            if (_loading && _loading[0]) {
//                if (_loading[0][0]) {
//                    U.UF.DL.uploading(_loading[0][0]);
//                } else {
//                    U.UF.DL.uploading(_loading[0]);
//                }
//            }
//            // (_UPE && _UPE[0]) && (U.UF.DL.uploading(_UPE[0][0] || _UPE[0])); //取消loading
//            //访问时间太长或者出现了错误 输出控制台
//            if (_timeSpan > 1000 || _data.error) {
//                (U.UF.C.console({ "T": _timeSpan, "N": this.url, "V": _data.error }));
//            }
//            //关闭连接
//            if (_data.httpRequest.abort) {
//                _data.httpRequest.abort();
//            }
//            //回调数据
//            if (this.cb && _data.value !== null) {
//                this.cb.call(this.win, _data)
//            }
//        } catch (e) { U.UF.C.console(e); }
//    },

//    /**
//    * 生成数据
//    *
//    * @param  {string} 绕过ajax流程 传参
//    * @return  {string} 数据参数
//    */
//    getAjaxData: function (data) {
//        var _iserror, _ajax;
//        //获取ajajx对象
//        if (this.ajax) {
//            _ajax = this.ajax.systemAjax;
//        }
//        else {
//            _ajax = {};
//        }
//        var _ajaxattr = { httpRequest: _ajax, status: null, value: null, _context: this.cbparams };  //ajax对象使用
//        //请求成功处理
//        if (_ajax.status == 200) {
//            _ajaxattr.value = data || this.getBackStrToJson(); //生成返回的参数
//        }
//        //错误处理.
//        else {
//            _ajaxattr.status = {
//                "status": _ajax.status,
//                "statusText": _ajax.statusText
//            };
//        }
//        return _ajaxattr; //生成数据返回
//    },

//    /**
//    * 得到后台返回的字符串,再把后台返回的字符串生成一个json对象
//    *
//    * @return  {object} json值
//    */
//    getBackStrToJson: function () {
//        var _ajax = this.ajax.systemAjax, //ajax对象
//            _resXml = _ajax.responseXML; //xml对象
//        //如果服务器返回的为xml对象
//        if (_resXml) {
//            _resXml = _resXml.xml
//        }
//        if (!_resXml) {
//            _resXml = _ajax.responseText; //返回的值
//            _resXml = U.UF.C.toJson(_resXml); //生成对象
//        }
//        return _resXml;
//    }
//}




//#endregion



//#region


///**
//* Flash上传初始化
//*
//*/
//U.UF.UP.FOnload = function () {
//    try {
//        var _obj = U.UF.UP.FTF; //当前上传的元素
//        _obj["EL"].SetStage(_obj["WH"], _obj["FT"], _obj["GS"] || "*"); //加载插件初始化
//        return true;
//    }
//    catch (e) {
//        return false;
//    }
//}

///**
//* 上传的错误提示
//*
//* @param  {error} 错误信息
//*/
//U.UF.UP.FLEX = function (err) {
//    U.Alert(err);
//    U.UF.C.console(err); //错误函数控制台处理
//}

///**
//* 添加上传文件 上传文件的显示
//*
//* @param  {error} 错误信息
//*/
//U.UF.UP.FLAdd = function (UDE, UL) {
//    var _UDOD = U.UF.UP.FTF.EL, //当前上传的元素
//    _UDID = _UDOD.ID || _UDOD.name;
//    if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["select"]) {
//        U.UF.UP.FTF[_UDID].FT["select"](UDE, UL);
//    }
//}


////上传所有文件完毕
//U.UF.UP.FLACP = function (UFL) {
//    var _UDOD = U.UF.UP.FTF.EL,
//    _UDID = _UDOD.ID || _UDOD.name;
//    if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["AFCP"]) {
//        U.UF.UP.FTF[_UDID].FT["AFCP"](UFL);
//    }
//}

////上传的进度条
//U.UF.UP.FLJD = function (UDE, FID) {
//    var _UDOD = U.UF.UP.FTF.EL,
//    _UDID = _UDOD.ID || _UDOD.name;

//    if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["progress"]) {
//        U.UF.UP.FTF[_UDID].FT["progress"](UDE, FID);
//    }
//}

////上传文件成功同时服务端返回了数据
//U.UF.UP.FSLCP = function (UDAT, FID) {
//    var _UDOD = U.UF.UP.FTF.EL,
//    _UDID = _UDOD.ID || _UDOD.name;

//    if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["getData"]) {
//        U.UF.UP.FTF[_UDID].FT["getData"](UDAT, FID);
//    }
//}

////上传文件判断是否存在
//U.UF.UP.IsFUp = function (UWJL, FID) {
//    var _UDOD = U.UF.UP.FTF.EL,
//    _UDID = _UDOD.ID || _UDOD.name;

//    if (U.UF.UP.FTF[_UDID] && U.UF.UP.FTF[_UDID].FT && U.UF.UP.FTF[_UDID].FT["FUP"]) {
//        U.UF.UP.FTF[_UDID].FT["FUP"](UWJL, FID);
//    }
//}

////上传单个文件完毕
//U.UF.UP.FLCP = function (data) {
//    U.Alert("等待服务器的响应...");
//}
//#endregion


/**
* 设置文件下载
*
* @param  {string} 上传成功回调函数 
* @param  {string} 上传成功回调函数 
*/
//U.UF.UP.Down = function (str1, str2) {
//    if ("createElementNS" in document) { //html5 文件另存为
//        if (!str2) {
//            str2 = document.documentElement.outerHTML
//        };
//        var url2,
//        _url1 = window.URL || window.webkitURL || window,
//        _str = new Blob[str2];
//        url2 = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
//        url2.href = _url.createObjectURL(_str);
//        url2.download = str1;
//        U.UF.EV.simulateMouseClicks(url2, "click");
//    }
//    else { //IE文件另存为
//        if (str2) {
//            var _iframe = $$("iframe",
//            {
//                "display": "none"
//            });
//            U.UF.C.iframeSameDomain(_iframe, str2, function () {
//                _iframe.contextWindow.document.execCommand("SaveAs");
//            });
//        }
//        else {
//            document.execCommand("SaveAs");
//        } //当前文档保存
//    }
//}


/**
* 根据条件,对json数组进行排序
*
* @param  {array} 需要进行选择的json数组。 
* @param  {number} 排序方式 1正序 -1倒序
* @return  {string} 排序的条件,json数组中的键名  
实例一
var a = [{id:3},{id:1},{id:2}]; 
U.Json.sort(a,"id");
*/
U.Json.sort = function (arr, key, isreverse) { //排序
    isreverse = isreverse || 1;
    arr = arr.sort(function (obj1, obj2) {
        var _value,
            _type, //比较大小的类型
            _isobj = U.UF.C.isObject(obj1); //判断比较的大小是否为对象
        //对象的大小匹配
        if (_isobj) {
            _type = U.UF.C.getType(obj1[key] || obj2[key]).capitalizeFirstLetter(); //由于类型的值有可能是null或者是undefined,判断两种比较安全
            _value = U.UF.Ut["compare" + _type](obj1[key], obj2[key]); //得到匹配的大小
        }
        //非对象的处理方式 U.UF.Ut.compare+type 是一些列的对象比较大小的方法
        else {
            _type = U.UF.C.getType(obj1).capitalizeFirstLetter();
            _value = U.UF.Ut["compare" + _type](obj1, obj2); //得到匹配的大小
        }
        //isreverse 用于判断倒序还是正序,如果是-1就是倒序,如果是1就是正序
        _value = isreverse * (_value ? 1 : -1);
        return _value;
    });
    return arr;
}


/**
* 判断是否为错误
*
* @param  {Error} 错误对象值
* @return  {boolean} 是否为错误类型
*/
U.UF.Ut.isError = function (UDE) {
    return U.UF.C.isObject(UDE) && U.UF.C.objectToString(UDE) == "[object Error]";
}


/**
* 判断是否为正则
*
* @param  {RegExp} 正则值
* @return  {boolean} 是否为RegExp
*/
U.UF.Ut.isRegExp = function (UDE) {
    return U.UF.C.isObject(UDE) && U.UF.C.objectToString(UDE) == "[object RegExp]";
}


/**
* 判断是否为Undefined
*
* @param  {number} 判断数组是否有值
* @return  {boolean} 是否为number
*/
U.UF.Ut.isUndefined = function (UDE) {
    return (UDE === void 0);
}


/**
* 判断是否是无限循环数字
*
* @param  {number} 判断数组是否有值
* @return  {boolean} 是否为number
*/
U.UF.Ut.isFinite = function (UDE) {
    return !isNaN(parseFloat(UDE)) && isFinite(UDE);
}

/**
* 判断是否为NaN
*
* @param  {array} 判断数组是否有值
* @return  {boolean} 是否为number
*/
U.UF.Ut.isNaN = function (UDE) {
    return UDE.toString() == 'NaN'
}


/**
* 判断是否为字符串数字
*
* @param  {array} 判断数组是否有值
* @return  {boolean} 是否为number
*/
U.UF.C.isStringInt = function (UDE) {
    return U.UF.C.isNumber(UDE) || U.UF.S.Num.test(UDE);
}

/**
* 判断是否为空
*
* @param  {object} 判断内容是否为空
* @return  {boolean} 是否为null
*/
U.UF.Ut.isNull = function (UDE) {
    return UDE === null;
}



/**
* 判断是否为bool
*
* @param  {array} 判断数组是否有值
* @return  {boolean} 是否为boolean值
*/
U.UF.Ut.isBoolean = function (UDE) {
    return typeof UDE === "boolean";
}


/**
* 判断数组是否可用
*
* @param   {array} 判断数组是否有值
* @return  {boolean} 是否为有值数组
*/
U.UF.Ut.isArrayLike = function (UDE) {
    return Array.isArray(UDE) && UDE.length > 0;
}

/**
* 判断是否支持播放
*
* @param  {string}  指定的格式 mp3、mpo4
* @return  {number}  是否支持改格式播放
-----------[0] 不支持
-----------[1] 支持
*/
U.UF.C.isPlay = function (type) {
    var _video = U.MD.V.vi(); //获取h5视频播放对象
    //判断浏览器是否支持video标签
    if (_video) {
        if (_video.isPlay(type, $$("video"))) {
            return 1;
        };
        return 0;
    }
    return _video;
}

//#region RadioList

//选择框使用
U.UF.UI.RadioList = function (UDOD, UDE, cb) {
    return new U.UF.UI.RadioList.init(UDOD, UDE, cb);
}

U.UF.EV.addPrototype(U.UF.UI.RadioList,
    U.UF.UI.RadioList.init = function (UDOD, UDE, cb) {
        this.UDTD;
        this.UDE = UDE;
        this.UDOD = UDOD;
        this.cb = cb;
        this.create(UDOD);
    },
    U.UF.UI.RadioList.create = function (UDOD) {
        var i, _UDTD, _UDE = this.UDE,
            _UN = Guid.guidNoDash(),
            _UDFD = $$("frag");
        if (_UDE) {
            UDOD.innerText = "";
            for (i in UDE) {
                if (UDE.hasOwnProperty(i)) {
                    _UDTD = $$("div", {
                        "innerHTML": UDE[i],
                        "style": {
                            "cssText": "margin-left:5px;"
                        }
                    }, _UDFD);
                    _UDTD = $$("input", {
                        "type": "radio",
                        "value": i,
                        "name": _UN,
                        "checked": i ? false : true,
                        "onclick": function () { this.chang(); }
                    }, _UDTD);
                    if (!i) { this.UDTD = _UDTD };
                }
            }
            UDOD.appendChild(_UDFD);
        } else {
            _UDTD = U.selectEl("input[type='radio']", UDOD).addAttrArray({
                "name": _UN,
                "onclick": function () { this.chang(); }
            });
            for (i = 0; i < _UDTD.length; i++) {
                if (_UDTD[i].checked) {
                    this.UDTD = _UDTD[i];
                    break;
                }
            }
        } //设置相同的name
    },
    U.UF.UI.RadioList.value = function () {
        return this.UDTD.value;
    }, //当前聚焦元素的值
    U.UF.UI.RadioList.element = function () {
        return this.UDTD;
    }, //当前聚焦元素
    U.UF.UI.RadioList.chang = function () {
        var _UDOD = event.srcElement;
        if (_UDOD != this.UDTD) { this.UDTD = _UDOD, (this.cb) && (this.cb(_UDOD)) };
    } 
//改变事件
//    U.UF.C.AddObj(U.UF.UI.RadioList, {
//        init: function (UDOD, UDE, cb) {
//            this.UDTD;
//            this.UDE = UDE;
//            this.UDOD = UDOD;
//            this.cb = cb;
//            this.create(UDOD);
//        }, 
//    //生成RadioList
//    create: function (UDOD) {
//        var i, _UDTD, _UDE = this.UDE,
//            _UN = Guid.guidNoDash(),
//            _UDFD = $$("frag");
//        if (_UDE) {
//            UDOD.innerText = "";
//            for (i in UDE) {
//                if (UDE.hasOwnProperty(i)) {
//                    _UDTD = $$("div", {
//                        "innerHTML": UDE[i],
//                        "style": {
//                            "cssText": "margin-left:5px;"
//                        }
//                    }, _UDFD);
//                    _UDTD = $$("input", {
//                        "type": "radio",
//                        "value": i,
//                        "name": _UN,
//                        "checked": i ? false : true,
//                        "onclick": function () { this.chang(); }
//                    }, _UDTD);
//                    if (!i) { this.UDTD = _UDTD };
//                }
//            }
//            UDOD.appendChild(_UDFD);
//        } else {
//            _UDTD = U.selectEl("input[type='radio']", UDOD).addAttrArray({
//                "name": _UN,
//                "onclick": function () { this.chang(); }
//            });
//            for (i = 0; i < _UDTD.length; i++) {
//                if (_UDTD[i].checked) {
//                    this.UDTD = _UDTD[i];
//                    break;
//                }
//            }
//        } //设置相同的name
//    },
//    value: function () {
//        return this.UDTD.value;
//    }, //当前聚焦元素的值
//    element: function () {
//        return this.UDTD;
//    }, //当前聚焦元素
//    chang: function () {
//        var _UDOD = event.srcElement;
//        if (_UDOD != this.UDTD) { this.UDTD = _UDOD, (this.cb) && (this.cb(_UDOD)) };
//    } //改变事件
));

U.UF.UI.RadioList.init.prototype = U.UF.UI.RadioList.prototype;

//#endregion