var noticetext = {
        t: "提示信息",
        a: "不能为空!",
        n: "请填写数字!",
        s: "不能输入特殊字符!",
        p: "请填写邮政编码!",
        m: "请填写手机号码!",
        e: "邮箱地址格式不对!",
        u: "请填写网址!",
        r: "请填写正确信息!",
        w: "datatype未定义!",
        f: "两次输入的内容不一致!",
        c: "正在检测信息…",        
        v: "所填信息没有经过验证,请稍后…",
        g: "正在提交数据…"
    },
    
regular = {
    a: /^[\w|&|\^|\.|\$|@|%|!|\(|\)|\*|\?|#|,|:|;|~|\\|\/|\[|\]|\-|\+|\||\{|\}|=|\u4E00-\u9FA5\uf900-\ufa2d]+$/,//验证字符
    x: /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s\S]+$/,//验证字符中英文
    w: /^\w+$/,//数字、字母(其他字母俄)、下划线字符
    n: /^\d+$/,//验证数字
    s: /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/,
    h:/^[a-zA-Z0-9_]+$/,//验证数字,英文字母、下划线

    //验证中文字符
    b: /^[\u3400-\u4DB5\u4E00-\u9FA5\u9FA6-\u9FBB\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFF00-\uFFEF\u2E80-\u2EFF\u3000-\u303F\u31C0-\u31EF\w\.\s%\}\{\*\+\-\(\)“”‘’《》()\[\]\(\)\<\>]+$/,
    
    //验证英文大小写
    y: /^(a-z|A-Z)+$/,
    //验证中文
    z: /^[\u4E00-\u9FA5\uf900-\ufa2d]+$/,
    //验证两位小数
    d: /^\d{1,}(\.\d{2})?$/,
    //验证图片后缀
    p: /^(.+)(\.(jpg|JPG)$|\.(jpeg|JPEG)$|\.(gif|GIF)$|\.(png|PNG)$)/,
    //验证网址
    u: /^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/,
    //验证手机号码
    // m: /^13[0-9]{9}|14[57]{1}[0-9]{8}|15[012356789]{1}[0-9]{8}|170[0-9]{8}|18[0-9]{9}|17[678]{1}[0-9]{8}$/,
    m: /^1[34578]\d{9}$/,
    //验证电话号码
    g: /^((\d{3,4})|(\d{3,4}-))?\d{8}$/,
    //验证email
    e: /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
    //验证qq
    q: /^[1-9][0-9]{4,9}$/,
    //验证身份证号
    ic:function (gets){

        var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子;
        var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,10代表X;

        if (gets.length == 15) {
            return isValidityBrithBy15IdCard(gets);
        }else if (gets.length == 18){
            var a_idCard = gets.split("");// 得到身份证数组
            if (isValidityBrithBy18IdCard(gets)&&isTrueValidateCodeBy18IdCard(a_idCard)) {
                return true;
            }
            return false;
        }
        return false;

        function isTrueValidateCodeBy18IdCard(a_idCard) {
            var sum = 0; // 声明加权求和变量
            if (a_idCard[17].toLowerCase() == 'x') {
                a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
            }
            for ( var i = 0; i < 17; i++) {
                sum += Wi[i] * a_idCard[i];// 加权求和
            }
            valCodePosition = sum % 11;// 得到验证码所位置
            if (a_idCard[17] == ValideCode[valCodePosition]) {
                return true;
            }
            return false;
        }

        function isValidityBrithBy18IdCard(idCard18){
            var year = idCard18.substring(6,10);
            var month = idCard18.substring(10,12);
            var day = idCard18.substring(12,14);
            var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
            // 这里用getFullYear()获取年份,避免千年虫问题
            if(temp_date.getFullYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){
                return false;
            }
            return true;
        }

        function isValidityBrithBy15IdCard(idCard15){
            var year =  idCard15.substring(6,8);
            var month = idCard15.substring(8,10);
            var day = idCard15.substring(10,12);
            var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
            // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
            if(temp_date.getYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){
                return false;
            }
            return true;
        }
    },
}

/* 倒计时 */
function clock(e,t) {
    var t = t?t:60,s = $(e);
    s.addClass('disabled');
    var a = setInterval(function() {
        t--;
        s.text(t + '秒后重发'),
        0 == t && (s.removeClass('disabled').text('获取验证码'), clearInterval(a))
    },1e3)   					
}

/* 验证码刷新 */
function flushCode(that) {
    var url = that.src.replace(/((\.html)?|(\/t\/.+)?)$/g,'');
    that.src = url+'/t/'+(new Date()).getTime(); 
}

function ajaxsm(url,data,callback,error,before) {
    $.ajax({
        type:'post',
        dataType:'json',
        data:data,
        url:url,
        time:1000000,
        beforeSend:before,
        success:callback,
        error:error
    });
}

/* 输入检查 */
function check(t) {
    if (!t.is('[datatype]')) {return '';}
    var l = t.attr('type'),
        v=$.trim(t.val()),
        s = t.closest('div').siblings('.o_check_tip'),
        d = t.attr('datatype'),
        f = t.attr('recheck'),p='';
    if (s.length < 1) {s = t.closest('.o_cw').find('.o_check_tip');}
    if (v && v == $.trim(t.attr('placeholder'))) {v = '';}
    if (f) {p=t.closest('form').find('input[name='+f+']');}
    if (d.indexOf('-')>-1) {dr = d.slice(1),dr=dr.split('-'),ds=d.charAt(0),zh=regular[ds]+'';zh=zh.slice(2,-3);r=new RegExp('^'+zh+'{' + dr[0]+ ',' +dr[1]+ '}$');} else {r = regular[d]}   
    if (s.hasClass('o_check_wrong')) {s.removeClass('o_check_wrong').text('');}
    if (l == 'checkbox') {
        if (t.is('[nullmsg]') && !t.is(':checked')) {s.removeClass('o_check_right').addClass('o_check_wrong').text(t.attr('nullmsg'));return false;} 
    } else {
        if (t.is('[nullmsg]') && (/^[a|w|n|s|y|z|d|u|m|e|q|p|g|b|h|(ic)]/.test(d)) && ( v == '')) {s.removeClass('o_check_right').addClass('o_check_wrong').text(t.attr('nullmsg'));return false;}    
        if (typeof r == 'function') {
            if(t.is('[errormsg]') && v && !r(v)) {
                s.removeClass('o_check_right').addClass('o_check_wrong').text(t.attr('errormsg'));return false;
            }
        } else {
            if (t.is('[errormsg]') && (v) && !r.test(v)) {s.removeClass('o_check_right').addClass('o_check_wrong').text(t.attr('errormsg'));return false;}
        }
        
        if (t.is('[errormsg]') && p && p.val() != t.val()) {s.removeClass('o_check_right').addClass('o_check_wrong').text(t.attr('errormsg'));return false;}      
    }
    console.log(v,t.is('[ajaxurl]'),t.attr('ajaxurl'));
    if (v && t.is('[ajaxurl]') && t.attr('ajaxurl')) {
        ajaxdata=t.attr('ajaxdata')+'='+v;
        $.ajax({
            async: false,type:'post',dataType:'json',url:t.attr('ajaxurl'),data:ajaxdata,success:function(data){
                if(data.status==0){
                    s.removeClass('o_check_right').addClass('o_check_wrong').text('*'+data.msg);return false;   
                }
            },error:function(){

            }});
    }
    return true;
}