/*字符串去空格*/
function trimStrOT(str){
    return str==null||str==''?'':str.replace(/\s+/g,'');
}
/*字符串类型验证*/
function strTypeJdg(str,jdgType){
    if (trimStrOT(str)!=''){
        var jdgStr='';
        switch(jdgType){
            case null:
                jdgStr='required';/*非空*/
                break;
            case 'digital':/*数字*/
                jdgStr=/^[0-9]+([.]\d{1,4})?$/;
                break;
            case 'pInteger':/*非0正整数*/
                jdgStr=/^\+?[1-9][0-9]*$/;
                break;
            case 'money':/*金钱*/
                jdgStr=/^[0-9]*(\.[0-9]{1,7})?$/;
                break;
            case 'username':/*数字、26个英文字母或者下划线组成*/
                jdgStr=/[\u4E00-\u9FA5\w]{2,}$/;
                break;
            case 'password':/*密码组成判断，字母开头，长度在6~20之间，只能包含字符、数字和下划线*/
                jdgStr=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,19}$/;
                break;
            case 'chn':/*汉字*/
                jdgStr=/^[\u4e00-\u9fa5]{0,}$/;
                break;
            case 'tel':/*座机、传真号码*/
                jdgStr=/^[0-9]{3,4}(\-)[0-9]{7,8}(\-[0-9]{1,4})?$/;
                break;
            case 'mobile':/*手机号码*/
                jdgStr=/^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$/;
                break;
            case 'mail':/*邮箱*/
                jdgStr=/^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$/;
                break;
            case 'postal':/*邮政编码*/
                jdgStr=/^[0-9]{6}$/;
                break;
            case 'date':/*中文日期*/
                jdgStr=/^(\d{4})-(0\d{1}|1[0-2])-(0\d{1}|[12]\d{1}|3[01])$/;
                break;
            case 'ID':/*身份证*/
                jdgStr=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
                break;
            default:
                break;
        }
        return jdgStr!=''?jdgStr!='required'?jdgStr.test(str):trimStrOT(str)!='':false;
    }else{
        return false;
    }
}
/*提示组件显示隐藏*/
function tipsEleOperation(obj,tipsText,isValidatePass){
    /*判断组件是否存在*/
    var eleContainer=obj.parents('.eleContainer:first');/*提示组件的元素容器*/
    /*寻找提示组件*/
    var tipsEle=eleContainer.find('.tipsEle');
    if(tipsEle.size()==0){/*提示不存在，插入组件*/
        /*组件拼装*/
        var tipsEleStr='<span class="tipsEle eleVAlignM">'
            +'<div class="tipsContent eleShadow eleRadius">'
            +'<div class="tipsArrow"><div></div></div>'
            +'<div class="tipsTitle">'
            +'<span class="commonIcon icon-warning eleVAlignM"></span>'
            +'<span class="titleText textS12 eleVAlignM"></span>'
            +'</div>'
            +'</div>'
            +'</span>';
        /*组件插入*/
        eleContainer.append(tipsEleStr);
        /*插入完毕后先隐藏*/
        tipsEle=eleContainer.find('.tipsEle');/*刷新获取的组件*/
        tipsEle.hide();
    }
    /*改变文本*/
    tipsEle.find('.titleText').html(tipsText);
    /*判断是否验证通过*/
    if(isValidatePass){/*验证通过*/
        /*操作提示组件，若显示则隐藏，若隐藏则不做操作*/
        if(!tipsEle.is(":hidden")){
            tipsEle.hide();
        }
    }else{/*验证不通过*/
        /*操作提示组件，若隐藏则显示，若显示则不做操作*/
        if(tipsEle.is(":hidden")){
            tipsEle.show();
        }
    }
}
/*
* 清除区域内提示组件
* areaID:区域ID
*/
function clearAreaTipsEle(areaID){
    $('#'+areaID).find('.tipsEle').hide();
}
/*
* 控件值类型验证
* jdgType:验证类型，值如下：
* 数字（digital），非0正整数（pInteger），金钱（money），用户名（username）
* 密码（password），汉字（chn），固定电话、传真（tel），手机（mobile）
* 邮箱（mail），日期（date），身份证（ID），非空验证（null）
* tipsText：提示文本
* required：是否必填项，值：true/false
* */
function commonTypeJdg(id,jdgType,tipsText,required){
    var obj = $("#" + id);
    var str=obj.val();
    var validateResult=required?strTypeJdg(str,jdgType):trimStrOT(str)!=''?strTypeJdg(str,jdgType):true;
    tipsEleOperation(obj,tipsText,validateResult);
    return validateResult;
}
/*
 * 金钱、长度验证
 * jdgType:验证类型，值如下：
 * 数字（digital），非0正整数（pInteger），金钱（money），用户名（username）
 * 密码（password），汉字（chn），固定电话、传真（tel），手机（mobile）
 * 邮箱（mail），日期（date），身份证（ID），非空验证（null）
 * startLen：开始日期
 * endLen：结束日期
 * tipsText：提示文本
 * required：是否必填项，值：true/false
 * */
function moneyAndLengthJdg(id, jdgType, startLen, endLen, tipsText, required){
    var obj = $('#' + id);
    var str = obj.val();    /*获取该对象的值*/
    var validateResult = false;
    if(trimStrOT(str) != ''){/*对当前对象去空格之后判断不为空*/
        if(startLen!=null&&endLen!=null&&startLen<endLen){
            /*开始 结束长度均不为空 且 开始值小于结束值*/
            if(typeof str!='string')str += '';
            var length = str.replace(/[^x00-xff]/g,'01').length;
            validateResult=(startLen<=length&&length<=endLen)&&strTypeJdg(str,jdgType);
        }else{
            validateResult=false;
        }
    }else {/*对其是否必填*/
        validateResult=required?false:true;
    }
    tipsEleOperation(obj,tipsText,validateResult);
    return validateResult;
}
/*
*字符串长度验证
* startLen：最小长度
* endLen：最大长度
* tipsText：提示文本
* required：是否必填项，值：true/false
* */
function commonLengthJdg(id,startLen,endLen,tipsText,required){
    var obj = $("#" + id);
    var str=obj.val();
    var validateResult=false;
    if (trimStrOT(str)!=''){
        if(startLen!=null&&endLen!=null&&startLen<endLen){
            if (typeof str != 'string')str += '';
            var length=str.replace(/[^x00-xff]/g,'01').length;
            validateResult=startLen<=length&&length<=endLen;
        }else{
            validateResult=false;
        }
    }else{
        validateResult=required?false:true;
    }
    tipsEleOperation(obj,tipsText,validateResult);
    return validateResult;
}
/*
*2个日期前后验证
* startID：开始日期控件id
* endID：结束日期控件id
* tipsText：提示文本
* required：是否必填项
* */
function doubleDateJdg(startID, endID, tipsText,required) {
    var startDateObj = $("#" + startID);
    var endDateObj = $("#" + endID);
    var startDate=trimStrOT(startDateObj.val());
    var endDate=trimStrOT(endDateObj.val());
    var validateResult=false;
    if(startDate!=''&&endDate!=''){
        var d1 = new Date(startDate.replace(/\-/g, "\/"));
        var d2 = new Date(endDate.replace(/\-/g, "\/"));
        validateResult=startDate!=''&&endDate!=''&&d1<d2;
        tipsEleOperation(startDateObj,tipsText,validateResult);
    }else{
        validateResult=required?false:true;
    }
    return validateResult;
}
/*
 * 重复密码验证
 * pwdID：密码控件id
 * rePwdID：重复密码控件id
 * tipsText：提示文本
 * required：是否必填项
 * */
function passwordJdg(pwdID,rePwdID,tipsText,required) {
    var passwordObj = $("#" + pwdID);
    var rePasswordObj = $("#" + rePwdID);
    var password=trimStrOT(passwordObj.val());
    var rePassword=trimStrOT(rePasswordObj.val());
    var validateResult=false;
    if(password!=''&&rePassword!=''){
        validateResult=password===rePassword;
        tipsEleOperation(rePasswordObj,tipsText,validateResult);
    }else{
        validateResult=required?false:true;
    }
    return validateResult;
}

/*对比前后两个值*/
function compareValJdg(beforeID, afterID){
    var beforeObj = $("#" + beforeID);
    var afterObj = $("#" + afterID);
    var beforeVal = trimStrOT(beforeObj.val());
    var afterVal = trimStrOT(afterObj.val());
    if(beforeVal == afterVal){
        beforeObj.hide();
    }else{
        beforeObj.show();
    }
}