﻿(function()
{
    var eaglesoft = eg = ac = aochensoft =
        {
            pageLoadBefore: function () {
                EgReady.pageBefore();
            },
            window:
            {
                width: 0,
                height: 0
            },
            point: { x: 0, y: 0 },
            //网站根目录地址
            siteUrl: "",
            wsUrl: "",
            projectName: "",
            projectText: "",
            cacheTimer:"",
            imageType: "bmp|gif|png|jpg|jpeg|",
            audioType: "wav|wma|mp3|mid|",
            videoType: "flv|swf|avi|rm|rmvb|3gp|mp4|webm|ogv|",
            fileType: "bmp|gif|png|jpg|jpeg|doc|docx|xls|xlsx|ppt|pptx|htm|html|pdf|rar|zip|txt|xml|css|wmv|wma|mp3|mid|flv|swf|rm|rmvb|avi|mp4|webm|ogv|3gp|default|",
            convertPDFFileType: "doc|docx|xls|xlsx|ppt|pptx|",
            notHZM: "|aspx|asp|php|jsp|exe|",
            isEgFileType: function (hzm) {
                if (("|" + eg.fileType).indexOf("|" + hzm + "|") == -1) {
                    return false;
                }
                return true;
            },
            isEgImageType: function (hzm) {
                if (("|" + eg.imageType).indexOf("|" + hzm + "|") == -1) {
                    return false;
                }
                return true;
            },
            isEgVideoType: function (hzm) {
                if (("|" + eg.videoType).indexOf("|" + hzm + "|") == -1) {
                    return false;
                }
                return true;
            },
            isEgAudioType: function (hzm) {
                if (("|" + eg.audioType).indexOf("|" + hzm + "|") == -1) {
                    return false;
                }
                return true;
            },
            isEgPDFType: function (hzm) {
                if (("|" + eg.convertPDFFileType + "pdf|").indexOf("|" + hzm + "|") == -1) {
                    return false;
                }
                return true;
            },
            matchFileType: function (path, type) {
                //path:路径,type:文件类型,多个用"|"分割
                if (type.toLowerCase() != "all") {
                    if (type.toLowerCase() == "image")
                        type = this.imageType;
                    else if (type.toLowerCase() == "audio")
                        type = this.audioType;
                    else if (type.toLowerCase() == "video")
                        type = this.videoType;
                    var hzm = this.getFileHZM(path);
                    if (!type.endsWith("|"))
                        type = type + "|";
                    if (type.toUpperCase().indexOf(hzm.toUpperCase() + "|") == -1) {
                        return type;
                    }
                }
            return "";
        },
        getFileHZM:function(path)
        {
            //获取文件后缀名
            return path.substr(path.lastIndexOf(".") + 1);
        },
        getFileName: function ( path, hasHZM  ) {
            //获取文件名
            if ( hasHZM == null )
                hasHZM = true;
            var a = path.lastIndexOf( "/" );
            if ( hasHZM ) {
                return path.substr( a + 1 );
            }
            else {
                var b = path.lastIndexOf( "." );
                return path.substr( a + 1, b - a - 1 );
            }
        },
        //设置背景图片
        setBackgroundImage: function ( o, callback, baseUrl,autoSize)
        {
            if ( autoSize == null )
                autoSize = false;
            o=typeof(o)=="string"?$("#"+o):$(o);
            var src=o.attr("xsrc");
            if(src==null)
                src=o.attr("src");
            if(src!=null&&src.length>0)
            {
                var createImg=document.createElement("img");
                createImg.onload=function()
                {
                    if(o.is("img"))
                    {
                        o.attr("src",src);
                    }
                    else
                    {
                        o.css("background-image","url('"+src+"')");
                    }
                    var imgWidth,imgHeight;
                    imgWidth=createImg.width;
                    imgHeight=createImg.height;
                    $(createImg).remove();
                    if(callback!=null)
                        callback(o,"success",imgWidth,imgHeight,src);
                };
                createImg.onerror=function()
                {
                    //var errorSrc="/asset/css/pictureError.png";
                    //if(o.is("img"))
                    //{
                    //    o.attr("src",errorSrc);
                    //}
                    //else
                    //{
                    //    o.css({"background-image":"url('"+errorSrc+"')","background-size":"64px 64px"});
                    //}
                
                    $(createImg).remove();
                    if(callback!=null)
                        callback(o,"error");
                };
                if(baseUrl!=null&&baseUrl.length>0)
                {
                    if(src.startsWith("/"))
                        src=(baseUrl+src.substr(1));
                }
                createImg.src=src;
            }
        },
        getUrlByBackgroundImage:function(bgImage)
        {
            //根据背景图片获取图片路径
            var url = null;
            if (bgImage != null && bgImage.length > 0)
            {
                var reg = /url\('?([^']+)'?\)/gi;
                url = bgImage.replace(reg, function ()
                {
                    return arguments[1].replace(/\"/gi,"");
                });
            }
            return url;
        },
        getUpLoadPicture: function ( imgContainer ) {
            var o = typeof ( imgContainer ) == "string" ? $( "#" + imgContainer ) : imgContainer;
            var pic;
            if ( o.is( ":visible" ) ) {
                var bg = o.css( "background-image" );
                pic = eg.getUrlByBackgroundImage( bg );
                if ( pic == null )
                    pic = "";
            }
            else {
                pic = "";
            }
            return pic;
        },
        getImageSize:function(imgPath,callback)
        {
            var createImg=document.createElement("img");
            createImg.onload=function()
            {
                var width=createImg.width;
                var height=createImg.height;
                $(createImg).remove();
                if(callback!=null)
                    callback(width,height);
            };
            createImg.src=imgPath;
        },
        showShadowOpacity0:function()
        {
            var EgShadow_opacity0=top.$("#EgShadow_opacity0");
            if(EgShadow_opacity0.length==0)
            {
                top.$("body").append("<div id=\"EgShadow_opacity0\"></div>");
                EgShadow_opacity0=top.$("#EgShadow_opacity0");
            }
            EgShadow_opacity0.show();
        },
        hideShadowOpacity0:function()
        {
            top.$("#EgShadow_opacity0").hide();
        },
        pageUrl:window.location.toString(),
        pageName:window.location.toString().replace(new RegExp(".*\/","g"),"").replace(/\..*/g,""),
        getPageID:function(s)
        {
            var pageID="";
            var url=window.location.toString();
            if(url.indexOf("localhost")==-1)
            {
                var reg=/[\.][^/,\.]+?\/([^\.]+)/gi;
	            url.replace(reg,function()
	            {
		            pageID=arguments[1];
	            });
            }
            else
            {
                pageID=url.replace(eg.siteUrl,"");
            }
            if(s!=null)
            {
                var s_0=pageID.lastIndexOf("/")+1;
                var s_1=pageID.lastIndexOf(".");
                pageID=pageID.substr(0,s_0)+s+pageID.substr(s_1);
                //pageID=pageID.substr(0,pageID.lastIndexOf("/")+1)+s+pageID.substr(pageID.lastIndexOf("/")+1)
            }
            pageID=pageID.replace("stManage/","").replace("admin/","").replace("manage/","").replace(".aspx","");
	        pageID=pageID.replace(/[\/]/gi,"-");
            var ix=pageID.indexOf("?");
            if(ix!=-1)
            {
                pageID=pageID.substr(0,ix);
            }
            return pageID;
        },
        request: function ( paramKey, url ) {
            var json = null;
            if ( url == null ) {
                url = window.location.toString();
            }
            url = url
                .replace( /(.*\?)/g, "" )
                .replace( /=&/g, "= &" );
            if ( url.endsWith( "=" ) )
                url += " ";
            //var reg = new RegExp("[^(=,&)]+", "g");
            var reg = new RegExp( "[^=&]+", "g" );
            var m = url.match( reg );
            var n = m.length;
            if ( n >= 2 ) {
                json = {};
                for ( var i = 0; i < n; i += 2 ) {
                    try {
                        var key = m[i].toString().trim();
                        var v = m[i + 1].toString().trim();
                        if ( paramKey != null && paramKey == key ) {
                            return v;
                        }
                        json[key] = v;
                    }
                    catch ( ex ) {
                    }
                }
            }
            if ( json != null ) {
                if ( paramKey != null ) {
                    return json[paramKey];
                }
                else {
                    return json;
                }
            }
            else {
                return null;
            }
        },
        getUrlRequest: function ( url ) {
            return this.request( null, url );
        },
       getEvent:function()
       {
            if(window.event)
            {
                return window.event;
            }
            var f = arguments.callee.caller;
            do
            {
                var e = f.arguments[0];
                if(e && (e.constructor === Event || e.constructor===MouseEvent || e.constructor===KeyboardEvent))
                {
    　　　　    return e;
                }
            }
            while(f=f.caller);
        },
        stopPropagation:function(ev)
        {
            ev=ev==null?this.getEvent():ev;
            ev.stopPropagation();
        },
        stopEvent:function(ev)
        {
            this.stopPropagation(ev);
        },
        loading: function (truefalse,loader)
        {
            //加载等待动画效果
            if(loader==null)
            {
                var o=top.$("#EgLoading");
                if(o.length==0)
                {
                    var str="<div id=\"EgLoading\">";
                    str+="<div id=\"EgLoading_canvas\">";
                    str+="<div id=\"EgLoading_logo\"></div>";
                    str+="<div id=\"EgLoading_circle\"></div>";
                    str+="</div>";
                    str+="</div>";
                    top.$("body").append(str);
                    o=top.$("#EgLoading");
                }
                if(truefalse)
                {
                    o.fadeIn(200,function()
                    {
                        o.find("#EgLoading_circle").addClass("EgLoading_rotate");
                    });
        
                }
                else
                {
                    o.fadeOut(200,function()
                    {
                        o.find("#EgLoading_circle").removeClass("EgLoading_rotate");
                    });        
                }
            }
            else
            {
                loader = typeof (loader) == "string" ? $("#" + loader) : $(loader);
                if (truefalse)
                {
                    var str = "<div class=\"EgLoader\">";
                    str += "<div class=\"EgLoaderInner\">";
                    str += "<div class=\"dot\"><div></div></div>\r\n";
                    str += "<div class=\"dot\"><div></div></div>\r\n";
                    str += "<div class=\"dot\"><div></div></div>\r\n";
                    str += "<div class=\"dot\"><div></div></div>\r\n";
                    str += "<div class=\"dot\"><div></div></div>";
                    str += "</div>";
                    str += "</div>";
                    loader.append(str);
                }
                else
                {
                    loader.find(".EgLoader:first").remove();
                }
            }
        },
        animate: function (o, className, callback)
        {
            if(typeof(o)==="string")
                o=$("#"+o);
            else
                o=$(o);
            if (!o.is(":visible"))
                o.show();
            else if(o.css("visibility")=="hidden")
            {
                o.css("visibility","visible");
            }
            if (className != null && className.length > 0)
            {
                if (className.startsWith("EgAnimate_"))
                {
                    if (className == "EgAnimate_filp")
                    {
                        //翻转
                        var flip_in = o.find(".EgAnimate_filpCanvas:visible:first");
                        var flip_out = o.find(".EgAnimate_filpCanvas:hidden:first");
                        flip_in.one("webkitAnimationEnd", function ()
                        {
                            flip_in.hide().removeClass("EgAnimate_filpOut");
                            flip_out.show().one("webkitAnimationEnd", function ()
                            {
                                flip_out.removeClass("EgAnimate_filpIn");
                                if (callback != null)
                                    callback();
                            }).addClass("EgAnimate_filpIn");
                        }).addClass("EgAnimate_filpOut");
                    }
                    else
                    {
                        o.one("webkitAnimationEnd", function ()
                        {
                            o.removeClass(className);
                            if (callback != null)
                                callback(o);
                        }).addClass(className);
                    }
                }
                else
                {
                    o.one("webkitAnimationEnd", function ()
                    {
                        o.removeClass(className + " animated");
                        if (callback != null)
                            callback(o);
                    }).addClass(className + " animated");
                }
            }
            else
            {
                if (callback != null)
                    callback(o);
            }
        },
        specialsign:
        {
            _SLASH: "@---slash---@",
            _RETURN: "@---return---@",
            _NEWLINE: "@---newline---@",
            _TAB: "@---tab---@",
            _PAGE: "@---page---@",
            _SEMICOLON: "@---semicolon---@",
            _QUOTATION_ONE: "@---quotation_one---@",
            _QUOTATION_TWO: "@---quotation_two---@",
            _COLON: "@---colon---@",
            _COMMA: "@---comma---@",
            _LISTFLAG: "@---listflag---@",
            _LEFTBRACE: "@---leftbrace---@",
            _RIGHTBRACE: "@---rightbrace---@",
            //        _LEFTSHARP:"@---leftsharp---@",
            //        _RIGHTSHARP:"@---rightsharp---@",
             _EgAutoCompleteFlag:"@EgAutoComplete@",
            _STRING: "@---string---@",
            _BOOLEAN: "@---boolean---@",
            _JSON: "@---json---@",
            _ARRAY: "@---array---@",
            _DATATABLE: "@---datatable---@",
            _DATATABLE_ROW: "@---datatable_row---@",
            _DATATABLE_COLUMN: "@---datatable_column---@",
            _OBJECT: "@---object---@",
            _EGLISTITEM: "@---eglistitem---@",
            _EXECUTESCRIPT: "@---executescript---@",
            _ERROR: "@---error---@",
            _FLAG: "▓",
            _EGKEYWORDFLAG:"▓▓▓▓▓▓",
            _EAGLESOFTAJAXWITHNODATAKEY: "eaglesoftajaxwithnodatakey", //无参数的数据传递key
            _EAGLESOFTAJAXWITHNODATAVALUE: "@---eaglesoftajaxwithnodatavalue---@"//无参数的数据传递value
        },
        createUpLoad:function(o)
        {
            o=typeof(o)=="string"?$("#"+o):$(o);
            var id=o.attr("id");
            if(id==null)
            {
                id=eg.guid();
                o.attr("id",id);
            }
            var iframeID="EgUpLoadIframe_"+id;
            if($("#"+iframeID).length==0)
            {
                var src="/UserControls/EgUpLoad/EgUpLoad.aspx?id="+id+"&timer="+new Date().getTime();
                o.append("<iframe id=\""+iframeID+"\" class=\"EgUpLoadIframe\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" src=\""+src+"\"></iframe>");
            }
        },
        random:function(n)
        {
            //获取n位随机数,n为null则默认是32位(数字)
            n = n || 32;
            var rnd = "";
            for (var i = 0; i < n; i++)
            {
                rnd += Math.floor(Math.random() * 10).toString();
            }
            return rnd;
        },
        guid:function(n)
        {
            //获取n位随机数,n为null则默认是32位(字母+数字)
            n = (n==null?32:n);
            var guid = "";
            if (n % 2 == 0)
            {
                for (var i = 0; i < n; i += 2)
                {
                    guid += String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0));
                    guid += this.random(1);
                }
            }
            else
            {
                for (var i = 0; i < n - 1; i += 2)
                {
                    guid += String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0));
                    guid += this.random(1);
                }
                guid += String.fromCharCode(Math.floor(Math.random() * 26) + "A".charCodeAt(0));
            }
            return guid;
        },
        changeZMByNumber:function(num)
        {
            //数字转字母
            return String.fromCharCode(64 + parseInt(num));
        },
        getAgeBySFZHM:function(sfzhm)
        {
            if (sfzhm.length >= 15)
            {
                var year="";
                if (sfzhm.length == 15)
                {
                    year = "19" + sfzhm.substr(6, 2);
                }
                else
                {
                    year = sfzhm.substr(6, 4);
                }
                return (new Date().getFullYear-parseInt(year,10)+1).toString();
            }
            return "";
        },
        getXBBySFZHM:function(sfzhm)
        {
            if (sfzhm.length >= 15)
            {
                var xb =parseInt(sfzhm.substr(14, 1),10)
                if (xb % 2 == 0)
                    return "男";
                else
                    return "女";
            }
            return "";
        },
        getCSRQBySFZHM:function(sfzhm)
        {
            var csrq = null;
            if (sfzhm.length >= 15)
            {
                if (sfzhm.length == 15)
                    csrq = "19" + sfzhm.substr(6, 2) + "-" + sfzhm.substr(8, 2) + "-" + sfzhm.substr(10, 2);
                else
                    csrq = sfzhm.substr(6, 4) + "-" + sfzhm.substr(10, 2) + "-" + sfzhm.substr(12, 2);
            }
            if(eg.date.validate(csrq))
            {
                return csrq;
            }
            return null;
        },
        getJsonBySFZHM:function(sfzhm)
        {
            var json;
            var csrq=this.getCSRQBySFZHM(sfzhm);
            if(csrq!=null&&csrq.length>0)
            {
                var year=csrq.substr(0,4);
                var month=csrq.substr(5,2);
                var day=csrq.substr(8,2);
                var xb=this.getXBBySFZHM(sfzhm);
                var age=this.getAgeBySFZHM(sfzhm);
                json=
                {
                    year:year,
                    month:month,
                    day:day,
                    csrq:csrq,
                    xb:xb,
                    age:age
                }
            }
            return json;
        },
        setHref:function(url,target)
        {
            //var isRemove = false;
            var obj=top.$("#EG_HREF");
            if (obj.length == 0)
            {
                //isRemove = true;
                top.$("body").append("<a id=\"EG_HREF\" style=\"display:none;\"><span>超链接</span></a>");
                obj = top.$("#EG_HREF");
            }
            if(target==null)
            {
                if(top.ipc==null)
                {
                    target="_blank";
                }
                else
                {
                    target="_self";
                }
            }
            obj.attr({"href":url,"target":target});
            obj.find("span").click();
            //if(isRemove)
            //    obj.remove();
        },
        addFloat:function(num1,num2,xsd)
        {
            var sq1,sq2,m;
             try 
             {
                sq1 = num1.toString().split(".")[1].length;
             }
             catch (e)
             {
                sq1 = 0;
             }
             try 
             {
                sq2 = num2.toString().split(".")[1].length;
             }
             catch (e) 
             {
                sq2 = 0;
             }
             m = Math.pow(10,Math.max(sq1, sq2));
             var v=(num1 * m + num2 * m) / m;
             if(xsd!=null&&xsd>0)
             {
                return eg.formatFloat(v,xsd);
             }
             else
             {
                return v;
             }
             
        },
        parseFloat: function (f,digit)
        {
            return this.formatFloat(f,digit);
        },
        formatFloat: function (f,digit)
        {
            if (digit == null)
                digit = 4;
            var m = Math.pow(10, digit);
            var s = (f * m).toFixed(digit);
            s = parseFloat(s);
            return (parseInt(s, 10) / m); 
        },
        formatQFW:function(num)
        {
            //千分位格式化
            var reg=/\d{1,3}(?=(\d{3})+$)/g;   
            return (num + '').replace(reg, '$&,'); 
        },
        formatFileName:function(fileName,type)
        {
            try 
	        {
                if (type == "big" || type == "original")
                    type = "";
		        if (fileName.length > 0)
                {
                    if (fileName.indexOf(".") != -1)
                    {
                        var before = fileName.substr(0, fileName.lastIndexOf("."));
                        var hzm = fileName.substr(fileName.lastIndexOf(".") + 1);
                        before = before.replace("_small", "").replace("_original", "");
                        if(type.length>0)
                            return before + "_" + type + "." + hzm;
                        else
                            return before +"." + hzm;
                    }
                    else
                    {
                        return fileName;
                    }
                }
                else
                {
                    return "";
                }
	        }
	        catch (ex)
	        {
                return "";
	        }
        },
        onlyNum:function(ev)
        {
            var returnValue=true;
            var keyCode=ev.keyCode;
            if(!(keyCode==46)&&!(keyCode==8)&&!(keyCode==37)&&!(keyCode==39))
            {
                if(!((keyCode>=48&&keyCode<=57)||(keyCode>=96&&keyCode<=105)))
                {
                    returnValue=false;
                }
            }
            return returnValue;
        },
        changeValidateCode:function(obj)
        {
            obj=$(obj);
            var src=obj.attr("src");
            src=src.replace(/timer=.*/g,"");//+"timer="+new Date().getTime();
	        if(src.indexOf("?")==-1)
		        src+="?timer="+new Date().getTime();
	        else
	        {
		        if(src.endsWith("?")||src.endsWith("&"))
		        {
			        src+="timer="+new Date().getTime();
		        }
		        else
		        {
			        src+="&timer="+new Date().getTime();
		        }
	        }
            obj.attr("src",src);
        },
        getYZM_phone: function ( pageID, o, phoneObj ) {
            var o = window.phone_yzm_obj = $( o );
            //if ( phoneObj == null ) {
            //    phoneObj = o.prev();
            //}
            //else {
            //    phoneObj = typeof ( phoneObj ) == "string" ? $( "#" + phoneObj ) : $( phoneObj );
            //}
            phoneObj = typeof ( phoneObj ) == "string" ? $( "#" + phoneObj ) : $( phoneObj );
            
            var phoneNum = phoneObj.val();
            var validateOptions = [
                { id: phoneObj.attr( "id" ), format: "&phone" }
            ];
            if ( eg.validate( validateOptions ) ) {
                var text = o.html();
                if ( text == "获取验证码" ) {
                    var data = {};
                    if ( typeof ( pageID ) == "string" ) {
                        data["pageID"] = pageID;
                    }
                    else {
                        data = pageID;
                    }
                    if ( data["phone"] == null )
                        data["phone"] = phoneNum;
                    eg.ajax( {
                        name: "SetPhoneYZM",
                        //loader:false,
                        url: "/Public/ajaxServer.aspx",
                        data: data,
                        success: function ( result ) {
                            if ( result == "exist" ) {
                                eg.notify( "此手机号码已被注册" );
                            }
                            else if ( result == "0" ) {
                                eg.notify( "获取失败" );
                            }
                            else {
                                var leftSecond = 60;
                                if ( result == "1" ) {
                                    o.addClass( "phone_yzm_on" ).html( leftSecond + "秒后重新获取" );
                                    window.phone_yzm_timer = setInterval( function () {
                                        if ( leftSecond > 0 ) {
                                            leftSecond--;
                                            o.html( leftSecond + "秒后重新获取" );
                                        }
                                        else {
                                            clearInterval( window.phone_yzm_timer );
                                            o.removeClass( "phone_yzm_on" ).html( "获取验证码" );
                                        }
                                    }, 1000 );
                                }
                            }
                        }
                    } );
                }
            }
        },
        resetYZM_phone: function () {
            if ( window.phone_yzm_timer != null ) {
                clearInterval( window.phone_yzm_timer );
            }
            var o = window.phone_yzm_obj;
            o.removeClass( "phone_yzm_on" ).addClass( "phone_yzm_off" ).html( "获取验证码" );
            $( "#phone_yzm_on_ok" ).hide();
        },
        setPasswordFormat:function(password)
        {
            $(".EgPasswordInput").attr({"bindPwdValue":password,"type":"text"}).val("******");
        },
        colorRGBA:function(color,opacity)
        {
            //十六进制颜色值的正则表达式  
            var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;  
            /*16进制颜色转为RGB格式*/  
            var sColor = color.toLowerCase();  
            if(sColor && reg.test(sColor))
            {  
                if(sColor.length === 4)
                {  
                    var sColorNew = "#";  
                    for(var i=1; i<4; i+=1)
                    {  
                        sColorNew += sColor.slice(i,i+1).concat(sColor.slice(i,i+1));     
                    }  
                    sColor = sColorNew;  
                }  
                //处理六位的颜色值  
                var sColorChange = [];  
                for(var i=1; i<7; i+=2)
                {  
                    sColorChange.push(parseInt("0x"+sColor.slice(i,i+2)));    
                }  
                return "rgba(" + sColorChange.join(",") + ","+opacity+")";
            }
            else
            {  
                return sColor;    
            }   
        },
        colorHex: function ( color ) {
            //rgb转16进制
            var rgb = color.split( ',' );
            if ( rgb.length > 1 ) {
                var r = parseInt( rgb[0].split( '(' )[1] );
                var g = parseInt( rgb[1] );
                var b = parseInt( rgb[2].split( ')' )[0] );
                var hex = "#" + ( ( 1 << 24 ) + ( r << 16 ) + ( g << 8 ) + b ).toString( 16 ).slice( 1 );
                return hex;
            }
            return color;
        },
        loadJS:function(path,callback)
        {
            $.getScript(path, function(data, status, jqxhr) 
            {
                if(callback!=null)
                {
                    try
                    {
                        callback(data, status, jqxhr);
                    }
                    catch(ex)
                    {
                        callback();
                    }
                }
            });
        },

        getRegList: function ( str, reg, groups ) {
            var list = [];
            if ( typeof ( groups ) == "number" ) {
                str.replace( reg, function () {
                    list.push( arguments[groups] );
                } );
            }
            else {
                str.replace( reg, function () {
                    var cList = [];
                    for ( var i = 0; i < groups.length; i++ ) {
                        cList.push( arguments[groups[i]] );
                    }
                    list.push( cList );
                } );
            }
            return list;
        },
        loadResourcesList: function ( list, callback ) {
            var len = list.length;
            if ( len > 0 ) {
                var k = 0;

                function end() {
                    k++;
                    if ( k == len ) {
                        //完全加载后执行
                        if ( callback != null ) {
                            callback();
                        }
                    }
                }

                for ( var i = 0; i < len; i++ ) {
                    var rs = list[i];
                    var url = "";
                    if ( rs.startsWith( "/" ) )
                        url += eg.siteUrl;
                    url += rs;
                    eg.loadResources( url, end );
                }
            }
            else {
                if ( callback != null ) {
                    callback();
                }
            }
        },
        loadResources: function ( url, callback ) {
            var oHead = document.getElementsByTagName( 'HEAD' ).item( 0 );
            var type = "js";
            if ( url.indexOf( ".css" ) != -1 )
                type = "css";
            if ( type == "js" ) {
                //异步加载JS
                var script = document.createElement( "script" )
                script.type = "text/javascript";
                script.onload = function () {
                    callback();
                }
                script.src = url;
                oHead.appendChild( script );
            } else if ( type == "css" ) {
                var css = document.createElement( "link" )
                css.type = "text/css";
                css.rel = "stylesheet";
                css.onload = function () {
                    callback();
                }
                css.href = url;
                oHead.appendChild( css );
            }
        },
        formatUrlLevel: function ( destUrl, thisUrl) {
            //路径层级处理
            if ( destUrl.startsWith( "/" ) ) {
                return eg.siteUrl + destUrl.substr( 1 );
            }
            else if ( destUrl.startsWith( "http" ) ) {
                return destUrl;
            }
            else {
                thisUrl = thisUrl == null ? window.location.toString() : thisUrl;
                var replaceStr = "../";
                var destLength = destUrl.length;
                var newUrl_end = destUrl.replace( /(\.\.\/)/gi, "" );
                var qzLen = ( destLength - newUrl_end.length ) /3;
                var match = thisUrl.match( /[^\/]+\/\/?/gi );
                if ( qzLen > 0 ) {
                    match.splice( match.length - qzLen, qzLen );
                }
                var newUrl = "";
                for ( var i = 0; i < match.length; i++ ) {
                    newUrl += match[i];
                }
                newUrl += newUrl_end;
                return newUrl;
            }
        },
        websocket: {
            ws: null,
            isOpen: null,
            receiveCallback: null,
            init: function ( receiveCallback, url ) {
                if ( url == null )
                    url = eg.wsUrl;
                var that = this;
                if ( this.ws == null ) {
                    this.ws = new WebSocket( url );
                    //注册各类回调
                    this.ws.onopen = function ( event ) {
                        that.isOpen = true;
                    };
                    this.ws.onerror = function ( event ) {
                        eg.alert( "连接错误" );
                    };
                    this.ws.onclose = function ( event ) {
                        that.close();
                    };
                    this.ws.onmessage = function ( event ) {
                        if ( that.isOpen ) {
                            var receiveData = event.data;
                            if ( receiveData != null && receiveData.length > 0 ) {
                                var json = eg.json.makeSimple( receiveData );
                                if ( receiveCallback != null ) {
                                    receiveCallback( json );
                                }
                            }
                        }
                    };
                }
            },
            bind: function ( type, data ) {
                if ( data == null )
                    this.ws.send( "{type:'" + type + "',isFirst:true}" );
                else {
                    this.ws.send( "{type:'" + type + "',isFirst:true,data:'" + data + "'}" );
                }
            },
            close: function () {
                this.isOpen = false;
            }
        },
        isNullOrEmpty: function (str) {
            if (str == null || str.length == 0) {
                return true;
            }
            return false;
        },
        deepClone:function(obj)
        {
            //对象深度复制
            var proxy = JSON.stringify(obj); //把parent对象转换成字符串
            var target = JSON.parse(proxy);
            proxy = null; //因为proxy是中间对象，可以将它回收掉
            return target;
        },
        extend:function(fs)
        {
            for(var fn in fs)
            {
                eg[fn]=fs[fn];
            }
        }
    };
    window.eaglesoft = eaglesoft=eg;
})(window);
$(function()
{
   var windowWidth=$(window).width();
   var windowHeight=$(window).height();
   eg.window.width=windowWidth;
   eg.window.height=windowHeight;
   if(EgSetModelData!=null)
   {
        var fn=EgSetModelData.fn;
        var params=EgSetModelData.params;
        eval(fn+"('"+params+"')");
   }
});

