﻿/***取客户端浏览器类型***/
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;
/***简化获取ID方法***/
function $(id){return document.getElementById(id);}
/***获取URL参数***/
function GetUrlParam()
{
    var args = new Object( );
    var query = document.location.search.substring(1);//获取查询字符串
    var pairs = query.split("&");//分割符
    for(var i = 0; i < pairs.length; i++)
    {
        var pos = pairs[i].indexOf('=');//查找"name=value"
        if (pos == -1) continue;//如果没找到则跳过
        var argname = pairs[i].substring(0,pos);//变量名称
        var value = pairs[i].substring(pos+1);//获取变量
        value = decodeURIComponent(value);//解码
        args[argname] = value;//存入数组
    }
    return args;//返回对象
}
/***创建XMLHTTPRequest对象***/
function CreateXmlHttpRequest()
{
    var XHRequest = false;
    try{ XHRequest = new XMLHttpRequest(); }
    catch(trymicrosoft)
    {
        try{ XHRequest = new ActiveXObject("MSXML2.XMLHTTP.3.0"); }
        catch(othermicrosoft)
        {
            try{ XHRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch(failed){ XHRequest = false; }
        }
    }
    if (!XHRequest){ alert("创建对象失败！"); }
    return XHRequest;
}
/***创建XML对象***/
function GetXmlData()
{
    var xmlDoc = null;
    try//IE浏览器
    { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); }
    catch(e)
    {
        try//兼容其他浏览器
        { xmlDoc = document.implementation.createDocument("","",null); }
        catch(e)
        { xmlDoc = false; }
    }
    if(!xmlDoc)
    { alert("创建XML对象失败，请刷新页面重试！") }
    return xmlDoc;
}
/***异步调用方法***/
//opens:值为1时使用GET方式，否则使用POST方式
//urls:请求地址
//params:使用send方法传递的参数，GET方式时应为Null，以免FF报错
//method:回调函数，值为Null时不对返回值进行任何处理
//retype:回调函数的返回类,1、字符串;2、XML数据;3、流数据
function XHReturn(opens,urls,params,method,retype)
{
    var XHRequest = CreateXmlHttpRequest();
    if(opens == 1)
    { XHRequest.open("GET", urls, true); }
    else
    {
        XHRequest.open("POST", urls, true);
        XHRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    }
    if(method != null)
    {
        XHRequest.onreadystatechange = function()
        {
            if(XHRequest.readyState == 4)
            {
                switch(retype)
                {
                    case 1:
                        method(XHRequest.responseText);
                    break;
                    case 2:
                        method(XHRequest.responseXML);
                    break;
                    case 3:
                        method(XHRequest.responseStream);
                    break;
                }
            }
            else
            { method(false); }//回调函数据此做正在获取数据等处理
        }
    }
    XHRequest.send(params);
}
/*****加载外部JS文件，加载成功后执行一个回调函数*****/
//files:文件地址
//callback:回调函数
function IncludeJs(files, callback)
{
    var heads = document.getElementsByTagName("head")[0];
    var jscode = document.createElement("script");
    jscode.setAttribute("type", "text/javascript");
    jscode.setAttribute("src", files);
    heads.appendChild(jscode);
    if(!/*@cc_on!@*/0)//no IE
    { jscode.onload = function(){ callback(); } }
    else//IE
    {
        jscode.onreadystatechange = function()
        {
            if (jscode.readyState == 'loaded' || jscode.readyState == 'complete')
            { callback(); }
        }
    }
    return false;
}
/***去除空格***/
String.prototype.Trim = function()
{ return this.replace(/^\s+/g,"").replace(/\s+$/g,""); }
///截取字符串///
String.prototype.sub = function(n)
{
    var r = /[^\x00-\xff]/g;
    if(this.replace(r, "mm").length <= n)
    { return this; }
    var m = Math.floor(n/2);
    for(var i=m; i<this.length; i++)
    {
        if(this.substr(0, i).replace(r, "mm").length >= n)
        { return this.substr(0, i) +"..."; }
    }
    return this;
};
/***日期格式化***/
Date.prototype.format = function(format)
{
    var o = { "M+" : this.getMonth()+1, "d+" : this.getDate(), "h+" : this.getHours(), "m+" : this.getMinutes(), "s+" : this.getSeconds(), "q+" : Math.floor((this.getMonth()+3)/3), "S" : this.getMilliseconds() };
    if(/(y+)/.test(format))
    { format = format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length)); }
    for(var k in o)
    {
        if(new RegExp("("+ k +")").test(format))
        { format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length)); }
    }
    return format;
};
