﻿/*******************************************************************************************************************************/
/*
页面标签的操作封装 2011 11 30 ray
*/
var PageLableManage = {
    /**
    * 判断并清空<input type="text" />的输入非数字
    * @param str 待检测字符串.
    */
    InputMustIsNumber: function(InputId) {
        var objInput = document.getElementById(InputId);
        if (!PageCheckInput.IsNumber(objInput.value)) {
            objInput.value = "";
        }

    }

};

/*******************************************************************************************************************************/
/*
进行页面的输入操作 ray 2011 11 08 
*/
var PageCheckInput = {
    /*判断固定格式*/

    /**
    * Email格式检测.
    * @param str 待检测字符串.
    * @return 是Email格式返回真.
    */
    IsEmail: function(str) {
        if (str == null || str == "")
        { return false; }
        else {
            var res = /^[0-9a-zA-Z_\-\.]+@[0-9a-zA-Z_\-]+(\.[0-9a-zA-Z_\-]+)*$/;
            var re = new RegExp(res);
            return !(str.match(re) == null);
        }
    },
    /**
    * Phone格式检测.
    * @param str 待检测字符串.
    * @return 是Phone格式返回真.
    */
    IsPhone: function(str) {
        if (PageCheckInput.IsNullOrEmty(str)) { return false; }
        var res = /^1[35|36|38|50|51|52|55]\d{9}$/i;
        var re = new RegExp(res);
        return !(str.match(re) == null);
    },
    /**
    * IsTell格式检测.
    * @param str 待检测字符串.
    * @return 是Tell格式返回真.
    */
    IsTell: function(str) {
        var partten = /^(\d{3,4}\-)?\d{7,8}$/i;   //座机格式是 010-98909899
        var re = new RegExp(partten);
        return !(str.match(re) == null);
    },
    /**
    * IsNullOrEmty格式检测.
    * @param str 待检测字符串.
    * @return 是空值返回真.
    */
    IsNullOrEmty: function(str) {
        if (str == "" || str == null || str == NaN) { return true; } else { return false; }
    },
    /**
    * 数字格式检测.
    * @param str 待检测字符串.
    * @return 是数字返回真.
    */
    IsNumber: function(str) {
        if (isNaN(str)) {
            return false;
        }
        var r, re;
        re = /\d*/i; //\d表示数字,*表示匹配多个数字
        return re.test(str);
        //r = str.test();//.match("/\d*/i");

        //return (r == str) ? true : false;

    },
    IsDouble: function(str) {
        //...........................
    },
    IsChinese: function(str) {
        var badChar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        badChar += "abcdefghijklmnopqrstuvwxyz";
        badChar += "0123456789";
        badChar += " " + "　"; //半角与全角空格     
        badChar += "`~!@#$%^&()-_=+]\\|:;\"\\'<,>?/"; //不包含*或.的英文符号     
        if ("" == str) {
            return false;
        }
        for (var i = 0; i < badChar.length; i++) {
            var c = str.charAt(i);
            if (badChar.indexOf(c) > -1) {
                return false;
            }
        }
        return true;
    },
    /*
    进行判断时输入
    */
    CheckInputText: function(str, length) {
        if (!PageCheckInput.IsNullOrEmty(str)) {
            if (str.length > length) { return false; }
        } else { return false; }
    }
};
/*******************************************************************************************************************************/
var PageConvert = {
    ToInt: function(str) {
        if (str + "a" == "a") { return 0; };
        try {
            var _temp = parseInt(str);
            if (isNaN(_temp)) { return 0; }
            return _temp;
        }
        catch (err) {
            return 0;
        }
    },
    ToInt: function(str, defaultValue) {
        if (str + "a" == "a") { return 0; };
        try {
            var _temp = parseInt(str);
            if (isNaN(_temp)) { return defaultValue; }
            return _temp;
        }
        catch (err) {
            return defaultValue;
        }
    },
    ToFloat: function(str) {
        if (str + "a" == "a") { return 0; };
        try {
            var _temp = parseFloat(str);
            if (isNaN(_temp)) { return 0; }
            return _temp;
        }
        catch (err) {
            return 0;
        }
    },
    ToFloat: function(str, defaultValue) {
        if (str + "a" == "a") { return 0; };
        try {
            var _temp = parseFloat(str);
            if (isNaN(_temp)) { return defaultValue; }
            return _temp;
        }
        catch (err) {
            return defaultValue;
        }
    },
    ToJosn: function(obj) {
        var json = eval('(' + obj + ')');
        return json;
    },
    JsonToStr: function(o) {
        var arr = [];
        var fmt = function(s) {
        if (typeof s == 'object' && s != null) return PageConvert.JsonToStr(s);
            return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
        }
        for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));
        return '{' + arr.join(',') + '}';
    }
};
/*******************************************************************************************************************************/
/*用户操作方面*/
var PageUserSet = {
    /*用户加入收藏夹*/
    AddFavorite: function(Address, name) {
        if (document.all) {
            window.external.AddFavorite(Address, name);
        }
        else if (window.sidebar) {
            window.sidebar.addPanel(name, Address, "")
        }

    }
};


/*******************************************************************************************************************************/
/**/
var PageSyetemGet = {
    /*获取完整的:路径+域名*/
    HttpPathHref: function() {
        //        alert(window.location.href);
        //        alert(window.location);
        //        alert(location.href);
        //        alert(parent.location.href);
        //        alert(top.location.href);
        //        alert(document.location.href);
        //        alert(document.URL);
        //alert(location.href.substring(0,location.href.lastIndexOf('/'));
        return window.location.href;
    },
    /*获取页面名称:demo.aspx*/
    PageNamePath: function() {
        var path = PageSyetemGet.HttpPathHref();
        if (!PageCheckInput.IsNullOrEmty(path)) {
            path = path.substring(0, path.lastIndexOf('/'));
        }
        return path;
    },
    /*获取浏览器名称*/
    BrowserFullName: function() {
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
        (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
        (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;

        var userAgentstr = "";
        if (Sys.ie) userAgentstr = ('IE: ' + Sys.ie);
        if (Sys.firefox) userAgentstr = ('Firefox: ' + Sys.firefox);
        if (Sys.chrome) userAgentstr = ('Chrome: ' + Sys.chrome);
        if (Sys.opera) userAgentstr = ('Opera: ' + Sys.opera);
        if (Sys.safari) userAgentstr = ('Safari: ' + Sys.safari);
        return userAgentstr;
    },
    /*获取当前浏览器名称*/
    BrowserName: function() {
        BrowserDetect.init();
        return BrowserDetect.browser;
    },
    /*获取系统软件名称*/
    SyetemSoft: function() {
        BrowserDetect.init();
        return BrowserDetect.OS;
    },
    /*获取Cpu的等信息//只兼容IE浏览器*/
    SyetemMachineInfo: function() {
        var locator = new ActiveXObject("WbemScripting.SWbemLocator");
        var service = locator.ConnectServer(".");
        var properties = service.ExecQuery("SELECT * FROM Win32_Processor");
        var e = new Enumerator(properties);
        var _ret = "{\"InfoList\":[";
        var _temp = "";
        var _content = "";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            _temp = "{";
            _temp += "\"Caption\":" + p.Caption + ",";
            _temp += "\"DeviceID\":" + p.DeviceID + ",";
            _temp += "\"Name\":" + p.Name + ",";
            _temp += "\"CpuStatus\":" + p.CpuStatus + ",";
            _temp += "\"Availability\":" + p.Availability + ",";
            _temp += "\"Level\":" + p.Level + "},";
            _temp += "\"ProcessorID\":" + p.ProcessorID + ",";
            _temp += "\"SystemName\":" + p.SystemName + ",";
            _temp += "\"ProcessorType\":" + p.ProcessorType + "";
            _temp += "},";
            _content += _temp;
        }
        _content = _content.substring(0, _content.length - 1);
        _ret += _content;
        _ret += "]}";
        return _ret;
    },
    /*获取主板信息//只兼容IE浏览器*/
    SystemBoardInfo: function() {
        var locator = new ActiveXObject("WbemScripting.SWbemLocator");
        var service = locator.ConnectServer(".");
        var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");
        var e = new Enumerator(properties);
        var _ret = "{\"InfoList\":[";
        var _temp = "";
        var _content = "";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            _temp = "{";
            _temp += "\"HostingBoard\":" + p.HostingBoard + ",";
            _temp += "\"Manufacturer\":" + p.Manufacturer + ",";
            _temp += "\"PoweredOn\":" + p.PoweredOn + ",";
            _temp += "\"Product\":" + p.Product + ",";
            _temp += "\"SerialNumber\":" + p.SerialNumber + ",";
            _temp += "\"Version\":" + p.Version + "";
            _temp += "},";
            _content += _temp;
        }
        _content = _content.substring(0, _content.length - 1);
        _ret += _content;
        _ret += "]}";
        return _ret;
    },
    /*获取硬件列表//只兼容IE浏览器*/
    SystemBoardInfos: function() {
        var locator = new ActiveXObject("WbemScripting.SWbemLocator");
        var service = locator.ConnectServer(".");
        var properties = service.ExecQuery("SELECT * FROM Win32_OnBoardDevice");
        var e = new Enumerator(properties);
        var _ret = "{\"InfoList\":[";
        var _temp = "";
        var _content = "";
        for (; !e.atEnd(); e.moveNext()) {
            var p = e.item();
            _temp = "{";
            _temp += "\"Description\":" + p.Description + ",";
            _temp += "\"DeviceType\":" + p.DeviceType + ",";
            _temp += "\"Enabled\":" + p.Enabled + ",";
            _temp += "\"Tag\":" + p.Tag + "";
            _temp += "},";
            _content += _temp;
        }
        _content = _content.substring(0, _content.length - 1);
        _ret += _content;
        _ret += "]}";
        return _ret;
    }


};

var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
     || this.searchVersion(navigator.appVersion)
     || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
    {
        string: navigator.userAgent,
        subString: "Chrome",
        identity: "Chrome"
    },
    { string: navigator.userAgent,
        subString: "OmniWeb",
        versionSearch: "OmniWeb/",
        identity: "OmniWeb"
    },
    {
        string: navigator.vendor,
        subString: "Apple",
        identity: "Safari",
        versionSearch: "Version"
    },
    {
        prop: window.opera,
        identity: "Opera"
    },
    {
        string: navigator.vendor,
        subString: "iCab",
        identity: "iCab"
    },
    {
        string: navigator.vendor,
        subString: "KDE",
        identity: "Konqueror"
    },
    {
        string: navigator.userAgent,
        subString: "Firefox",
        identity: "Firefox"
    },
    {
        string: navigator.vendor,
        subString: "Camino",
        identity: "Camino"
    },
    {
        // for newer Netscapes (6+)
        string: navigator.userAgent,
        subString: "Netscape",
        identity: "Netscape"
    },
    {
        string: navigator.userAgent,
        subString: "MSIE",
        identity: "Explorer",
        versionSearch: "MSIE"
    },
    {
        string: navigator.userAgent,
        subString: "Gecko",
        identity: "Mozilla",
        versionSearch: "rv"
    },
    {    // for older Netscapes (4-)
        string: navigator.userAgent,
        subString: "Mozilla",
        identity: "Netscape",
        versionSearch: "Mozilla"
    }
   ],
    dataOS: [
    {
        string: navigator.platform,
        subString: "Win",
        identity: "Windows"
    },
    {
        string: navigator.platform,
        subString: "Mac",
        identity: "Mac"
    },
    {
        string: navigator.userAgent,
        subString: "iPhone",
        identity: "iPhone/iPod"
    },
    {
        string: navigator.platform,
        subString: "Linux",
        identity: "Linux"
    }
   ]

};











