var errorColor = "#FFD7D8";
var okColor = "#ccffcc";

/*
            文件名: check_data.js
            功  能: 主要进行数据校验
            更  新: 是建荣 2004年7月1日
 */
//利用Javascript中每个对象(Object)的prototype属性我们可以为Javascript中的内置对象添加我们自己的方法和属性。
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim = function()
{
    return this.replace(/(^\s*)/g, "");
}
String.prototype.rtrim = function()
{
    return this.replace(/(\s*$)/g, "");
}
String.prototype._length = function()
{   
    var len=0;   
    for(var i=0;i<this.length;i++)  
        if (this.charCodeAt(i)>=10000) {len+=2;} else {len++;}
    return len;   
} 
//错误提示 需要id为sysMessage的标签
function ErrorMsg(strMsg, obj){
    var str="<div style=\"color:red\">";
    str+="<strong>提示:</strong>"+strMsg;
    str+="</div>";
    $(obj).empty();
    $(str).appendTo(obj);
    //$("div[flag='main']").corner("bottom");
}
//错误提示 需要id为sysMessage的标签
function ErrorInfor(strMsg, obj){
	alert(srrMsg);
    $(strMsg).appendTo(obj);
}
//验证，不能为空
function notNull(i_field,obj)
{

    var i_value=obj.value.trim();
    if (i_value=="" || i_value==null)
    {
        return "'"+i_field+"' 不可为空！";
    }
    return 1;
}
//检验登陆名
function username(i_field, obj){
    var value = obj.value.trim();
    var   patrn=/^[a-zA-Z0-9]{1}([a-zA-Z0-9]|[._-]){4,19}$/;
    if (!patrn.exec(value)){
        return i_field+"格式错误";
    }else{
		return 1;
    }
}
//检验密码
function password(i_field, obj){
    var s = obj.value.trim();
    var   patrn=/^(\w){6,20}$/;      
    if   (!patrn.exec(s)){
		return i_field+"格式错误";
    }else{
        return 1;
    }
}
//检验汉字
function isChinese(i_field,i_length, obj) 
{ 
	var i_value = obj.value.trim();
    i_value=delspace(obj.value);
    var hzyz = notNull(i_field, obj);
    if(hzyz != 1) 
        return hzyz; 
    var hzcd = dyLength(i_field,i_length,obj);
    if (hzcd!=1){
        return hzcd;
    }
    for(i = 0; i < i_value.length; i++){ 
        if(i_value.charCodeAt(i) < 128) 
            return "'"+i_field+"'只能为汉字"; 
    } 
    return 1;
} 
//检验包含汉字
function hasChinese(i_field, obj)
{
    var i_value = obj.value.trim();
    i_value=delspace(obj.value);
    var hzyz = notNull(i_field, obj);
    if(hzyz != 1)
        return hzyz;
    for(i = 0; i < i_value.length; i++){
        if(i_value.charCodeAt(i) > 128)
            return "'"+i_field+"'不能包含汉字";
    }
    return 1;
}
//检验证件号码 zjmc：A 18位身份证， H 15位身份证  B 组织机构代码
function check_zjhm(zjmc, zjhmObj) {
    var birthday = "";
    var zjhm1 = "";
    var zjhm2 = "";
    var s = "";
    zjhmObj.value=zjhmObj.value.trim();
    zjhmObj.value=zjhmObj.value.toUpperCase();
    var zjhm = delspace(zjhmObj.value);
    var sfzmhmyz = notNull("证件号码", zjhmObj);
    if (sfzmhmyz != 1) {
        return sfzmhmyz;
    }
    if (zjmc == "A" || zjmc == "H" ) { //身份证号码
        if (! (zjhm.length == 15 || zjhm.length == 18)) {
            return "身份证明号码长度不对,请检查！";
        }
        zjhm1 = zjhm;
        if (zjhm.length == 18) {
            zjhm1 = zjhm.substr(0, 17);
            zjhm2 = zjhm.substr(17, 1);
        }

        re = new RegExp("[^0-9]");
        s = zjhm1.match(re);
        if (s !=null && s!="") {
            return "输入的值中含有非法字符'" + s + "'请检查！";
        }
        //取出生日期
        if (zjhm.length == 15) {
            birthday = "19" + zjhm.substr(6, 6);
        }
        else {
            re = new RegExp("[^0-9A-Z]");
            s = zjhm2.match(re);
            if (s !=null && s!="") { //18位身份证对末位要求数字或字符
                return "输入的值中含有非法字符'" + s + "'请检查！";
            }
            birthday = zjhm.substr(6, 8);
        }
        birthday = birthday.substr(0, 4) + "-" + birthday.substr(4, 2) + "-" + birthday.substr(6, 2);
        var birthyz = isDateBirthday("身份证号码出生日期", birthday, zjhmObj);
        if ( birthyz != 1) { //检查日期的合法性
            return birthyz;
        }
        if (zjhm.length == 18) {
            return (sfzCheck(zjhm, zjhmObj)); //对18位长的身份证进行末位校验
        }
        else{
            zjhmObj.value=id15to18(zjhm);
        }
    }
    if (zjmc == "B") {
        if (! (zjhm.length == 9 || zjhm.length == 10)) {
            return "组织机构代码长度应为9位或10位！";
        }
                     
    }
    return 1;
}
function isDateBirthday(i_field,thedate,obj){
    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
    var r = thedate.match(reg);
    if (r==null)
    {
        return "'"+i_field+"' 含非法字符！";

    }
    var d= new Date(r[1],r[3]-1,r[4]);
    var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
    var newDate=r[1]+r[2]+(r[3]-0)+r[2]+(r[4]-0)
    if (newStr==newDate)
    {; 
        return 1;
    }
    return "'"+i_field+"'日期格式不对,应为YYYY-MM-DD！";
}
function sfzCheck(hm,obj)
{

    var w=new Array();
    var ll_sum;
    var ll_i;
    var ls_check;

    w[0]=7;
    w[1]=9;
    w[2]=10;
    w[3]=5;
    w[4]=8;
    w[5]=4;
    w[6]=2;
    w[7]=1;
    w[8]=6;
    w[9]=3;
    w[10]=7;
    w[11]=9;
    w[12]=10;
    w[13]=5;
    w[14]=8;
    w[15]=4;
    w[16]=2;
    ll_sum=0;

    for (ll_i=0;ll_i<=16;ll_i++)
    {   
        ll_sum=ll_sum+(hm.substr(ll_i,1)-0)*w[ll_i];

    }
    ll_sum=ll_sum % 11;


    switch (ll_sum)
    {
        case 0 :
            ls_check="1";
            break;
        case 1 :
            ls_check="0";
            break;
        case 2 :
            ls_check="X";
            break;
        case 3 :
            ls_check="9";
            break;
        case 4 :
            ls_check="8";
            break;
        case 5 :
            ls_check="7";
            break;
        case 6 :
            ls_check="6";
            break;
        case 7 :
            ls_check="5";
            break;
        case 8 :
            ls_check="4";
            break;
        case 9 :
            ls_check="3";
            break;
        case 10 :
            ls_check="2";
            break;
    }

    if (hm.substr(17,1) != ls_check)
    {   
        return "身份证号码错误";
    }
    return 1
}


function id15to18(zjhm)
{


    var strJiaoYan =new  Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");
    var intQuan =new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
    var ll_sum=0;
    var i;
    var ls_check;
    zjhm = zjhm.substring(0, 6) + "19" + zjhm.substring(6);
    for (i=0;i<=16;i++){
        ll_sum=ll_sum+(parseFloat(zjhm.substr(i,1)))*intQuan[i];
    }
    ll_sum = ll_sum % 11;
    zjhm=zjhm + strJiaoYan[ll_sum];
    return zjhm;
}
            
//检测vin的合法性

function vinCheck(obj)
{
  
    var i_value=delspace(obj.value);
    var hm = i_value;
    if (!(i_value.length==17))
    {
        return "车架号长度不正确!";
    }

    var q=new Array();
    var z=new Array();
    var sz=new Array()
    var vin_sum;
    var vin_sumover;
    var ll_sum;
    var ll_i;
    var ls_check;
    var single_c;
    var vinall="ABCDEFGHJKLMNPRSTUVWXYZ0123456789";
    var wz;
    q[0]=8;
    q[1]=7;
    q[2]=6;
    q[3]=5;
    q[4]=4;
    q[5]=3;
    q[6]=2;
    q[7]=10;
    q[8]=0;
    q[9]=9;
    q[10]=8;
    q[11]=7;
    q[12]=6;
    q[13]=5;
    q[14]=4;
    q[15]=3;
    q[16]=2;


    z[0]=1;
    z[1]=2;
    z[2]=3;
    z[3]=4;
    z[4]=5;
    z[5]=6;
    z[6]=7;
    z[7]=8;
    z[8]=1;
    z[9]=2;
    z[10]=3;
    z[11]=4;
    z[12]=5;
    z[13]=7;
    z[14]=9;
    z[15]=2;
    z[16]=3;
    z[17]=4;
    z[18]=5;
    z[19]=6;
    z[20]=7;
    z[21]=8;
    z[22]=9;


    ll_i=0;
    vin_sum=0;
    for (ll_i=0;ll_i<=16;ll_i++)
    {  
        single_c=hm.substr(ll_i,1);
        wz=vinall.indexOf(single_c);
        if (wz!= -1) //vialid chars
        {
          
            if (wz < 23 ) //is char
            {
                sz[ll_i]= z[wz];
                        
            }
            else  // is num
            {
                sz[ll_i]= wz - 23;
            }
            vin_sum=vin_sum + q[ll_i]*sz[ll_i];

        }
        else  // in vialid chars
        {
            vin_sum= -1;
            break;
        }
    }   //end for

    vin_sumover=vin_sum % 11;


    if  (((hm.substr(8,1) == "X" && vin_sumover == 10) || (hm.substr(8,1) == vin_sumover)) && (vin_sum != -1))

    {

        return 1;
    }

    else

    {
        return "车架号不符合要求!";

    }


} //end function
            
//自动清除输入框中的空格
function delspace(string) {
    var temp = "";
    string = '' + string;
    splitstring = string.split(" "); //双引号之间是个空格；
    for(i = 0; i < splitstring.length; i++)
        temp += splitstring[i];
    return temp;
}
//检查手机号
function check_sjhm(obj)
{
    obj.value=obj.value.trim();
    var sjyz = isLength("手机号码","11",obj);
    if (sjyz!=1)
    {    
        return sjyz;
    }
    sjyz = isNum("手机号码",obj)
    if (sjyz!=1)
    {  
        return sjyz;
    }
    return 1;
}
//检查长度
function isLength(i_field,i_length,obj)
{//  alert("---长度要求:"+i_length+" "+i_value.length);
    obj.value=obj.value.trim();
    var i_value=delspace(obj.value);
    if (!(i_value.length==i_length))
    {
        return "'"+i_field+"' 的长度要求为' "+i_length+" '！";
    }
    return 1;
}
//检查是否为数字
function isNum(i_field,obj)
{
    obj.value=obj.value.trim();
    var i_value=delspace(obj.value);
    var lengthyz = notNull(i_field,obj);
    if (lengthyz!=1)
    {   
        return lengthyz;
    }

    re=new RegExp("[^0-9.-]");
    var s=i_value.match(re);
    if(s!=null && s!=""){
        return "'"+i_field+"' 中含有非法字符 '"+s+"' ！";
    }
    return 1;
}
            
function check_yzbm(obj)
{
    obj.value=obj.value.trim();
    var yzbmyz = isLength("邮政编码","6",obj);
    if (yzbmyz!=1)
    {   
        return yzbmyz;
    }
    yzbmyz = isNum("邮政编码",obj);
    if (yzbmyz!=1)
    {    
        return yzbmyz;
    }
    return 1;
}
//检验长度最大为i_length位
function xyLength(i_field,i_length,obj)
{
    obj.value=obj.value.trim();
    var i_value=delspace(obj.value);
    if (i_value._length()>i_length)
    {
        return "'"+i_field+"' 的长度最长为 '"+i_length+"' ！";
    }
    return 1;
}
//长度至少为i_length位
function dyLength(i_field,i_length,obj)
{ 
    obj.value=obj.value.trim();
    var i_value=delspace(obj.value);
    if (i_value.length<i_length)
    { 
        return "'"+i_field+"' 的长度至少为 '"+i_length+"'！";
    }
    return 1;
}

//
$.ajaxSetup({
	global: true,
	contentType : "application/x-www-form-urlencoded; charset=utf-8"
});
