/**
 * Created by guojie on 2015/1/24.
 * 静态工具类
 */

var Utils = {};

//处理字符串
Utils.String = {
    //修剪两端空白字符和换行符
    trim:function (s){
        return s.replace(/(^\s*)|(\s*$)|(\n)/g, "");
    },
    //修剪左端空白字符和换行符
    leftTrim:function (s){
        return s.replace(/(^\s*)|(^\n)/g, "");
    },
    //修剪右端空白字符和换行符
    rightTrim:function (s){
        return s.replace(/(\s*$)|(\n$)/g, "");
    },
    // 是否是URL
    isUrl: function(s) {
        //var p = /^((https|http|ftp|rtsp|mms)?:\/\/)(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5]$)|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,6})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/;
        var p = /^((https|http|ftp|rtsp|mms)?:\/\/)[A-Za-z0-9-]+\.[A-Za-z0-9-]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
        s = s.toLowerCase();
        return p.test(s);
    },
    //格式化数字
    numberFormat:function (s,l){
        if (!l || l < 1)l = 3;
        s=String(s).split(".");
        s[0]=s[0].replace(new RegExp('(\\d)(?=(\\d{'+l+'})+$)','ig'),"$1,");
        return s.join(".");
    },
    //字母类型检测
    isString:function (s){
        var patrn=/^([a-z]|[A-Z])+$/;
        return patrn.exec(s);
    },
    //浮点数类型检测
    isNumber:function (s){
        var patrn=/^\d+\.\d+$/;
        return patrn.exec(s);
    },
    //整数类型检测
    isInt:function (s){
        var patrn=/^-?\d+$/;
        return patrn.exec(s);
    },
    //正整数类型检测
    isUint:function (s){
        var patrn=/^\d+$/;
        return patrn.exec(s);
    },
    //星号字节
    asteriskByte:function(s,start,end)
    {
        var startStr = start?s.substr(0,start):"";
        var endStr = end?s.substr(end+1):"";
        var star = "",l;
        l = !start && !end?s.length:(start && !end?s.length - start:end);
        while(star.length < l)star += "*";
        return startStr + star + endStr;
    },
    //四舍五入保留n位小数(默认保留两位小数)
    twoDecimalPlaces:function(s,l)
    {
        if (isNaN(parseFloat(s))||s==0) return "0.00";
        var bit = !l?100:Math.pow(10,l);
        var str = String(Math.round(s * bit) / bit);
        while (str.indexOf(".") != -1 && str.length <= str.indexOf(".") + l)str += '0';
        return str;
    }
};

//获取地址栏参数
Utils.getQueryString = function(attr)
{
    var parameter = window.location.search;
    var reg = new RegExp(attr+"=([^&]*)")
    var result = parameter.substr(1).match(reg);
    return (result!=null&&result.length>1)?result[1]:null;
}

//滚动到页面底部
Utils.isScrollBottom = function()
{
    var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
    var clientHeight = document.documentElement.clientHeight;
    if(scrollTop + clientHeight >= document.body.scrollHeight) return true;
    return false;
}


//设置cookie
Utils.setCookie = function(name,value,iDay)
{
    //当前时间和过期时间相加
    var date = new Date();
    date.setDate(date.getDate()+iDay);
    //给cookie赋值
    document.cookie = name+"="+value+";expires="+date;
}
//获取cookie
Utils.getCookie = function(name)
{
    //cookie转换成数组
    var arr = document.cookie.split("; ");
    for(var i = 0; i<arr.length;i++)
    {
        //每个数组元素再进行分割,第一个是名字第二个是值
        var arr2 = arr[i].split("=");
        //只需判断名字存在就把值反出去
        if(name == arr2[0])return arr2[1];
    }
    //当前搜索的cookie不存在返回空值
    return null;
}
//删除cookie
Utils.removeCookie = function(name)
{
    //在设置的时候让他的时间过期,预览器将自动清除过期的cookie
    setCookie(name,"",-1);
}
//获取json数据长度
Utils.getJsonLength = function(json)
{
    var len = 0,key;
    for(key in json)len++;
    return len;
}

//小于ie9以下的古老ie
Utils.antiIE = function () {
    var ua = window.navigator.userAgent;
    this.browser = {};
    /* jshint ignore:start */
    var reg = new RegExp('MSIE ([0-9]{1,}[\.0-9]{0,})');
    /* jshint ignore:end */
    var IEVersion;
    if (ua.match(reg)) {
        this.browser.msie = true;
        IEVersion = parseFloat(ua.match(reg)[1]);
        if (IEVersion < 9) {
            alert('您还在使用老旧的IE' + IEVersion +'浏览器,部分功能将不被支持,建议升级浏览器试试吧~');
        }
    } else {
        this.browser.msie = false;
    }
};