﻿function IsNumeric(theNum){
//判断是否为数字
if (theNum.strip().empty())
   return false;
for(var i=0;i<theNum.length;i++){
      oneNum=theNum.substring(i,i+1);
         if (oneNum<"0" || oneNum>"9")
           return false;
     }
return true;
}

function IsFloat(theFloat){
//判断是否为浮点数
len=theFloat.length;
dotNum=0;
if (len==0)
   return false;
for(var i=0;i<len;i++){
      oneNum=theFloat.substring(i,i+1);
   if (oneNum==".")
    dotNum++;
         if ( ((oneNum<"0" || oneNum>"9") && oneNum!=".") || dotNum>1)
           return false;
     }
if (len>1 && theFloat.substring(0,1)=="0"){
   if (theFloat.substring(1,2)!=".")
    return false;
}
return true;
}

//js判断是否是日期
function IsDateString(sDate)
{ 
    try
    { 
        var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
        var iaDate = new Array(3)
        var year, month, day

        if (arguments.length != 1) return false
        iaDate = sDate.toString().split("-")
        if (iaDate.length != 3) return false
        if (iaDate[1].length > 2 || iaDate[2].length > 2) return false

        year = parseFloat(iaDate[0])
        month = parseFloat(iaDate[1])
        day=parseFloat(iaDate[2])
        if (year < 1900 || year > 2100) return false
        if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
        if (month < 1 || month > 12) return false
        if (day < 1 || day > iaMonthDays[month - 1]) return false
        return true
    }
    catch(e)
    {
        return false;
    }   
} 
//日期比较函数
function CompareDate(dat0,dat1)
{
    var arr=dat0.split("-"); 
    var starttime=new Date(arr[0],arr[1],arr[2]); 
    var starttimes=starttime.getTime();
    var arrs=dat1.split("-"); 
    var lktime=new Date(arrs[0],arrs[1],arrs[2]); 
    var lktimes=lktime.getTime();
    if(starttimes>lktimes) 
    {
        return -1;
    }
    else if(starttimes==lktimes) 
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

//加法函数
function Addway(arg1,arg2){
    var r1,r2,m;
    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    return (arg1*m+arg2*m)/m
}
//乘法函数
function Mulway(arg1,arg2)
{
    var m=0,s1=arg1.toString(),s2=arg2.toString();
    try{m+=s1.split(".")[1].length}catch(e){}
    try{m+=s2.split(".")[1].length}catch(e){}
    return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
//除法函数
function Divway(arg1,arg2){
    var t1=0,t2=0,r1,r2;
    try{t1=arg1.toString().split(".")[1].length}catch(e){}
    try{t2=arg2.toString().split(".")[1].length}catch(e){}
    with(Math){
        r1=Number(arg1.toString().replace(".",""))
        r2=Number(arg2.toString().replace(".",""))
    }
    return (r1/r2)*pow(10,t2-t1);
}

//设置Cookie
function SetCookie(name,value,expires) 
{ 
var exp=new Date(); 
exp.setTime(exp.getTime()+expires * 24 * 60 * 60 * 1000); 
document.cookie=name+"="+escape(value)+"; expires="+exp.toGMTString()+"; path=/"; 
}
//获取Cookie
function GetCookie(name) 
{ 
	var strArg=name+"="; 
	var nArgLen=strArg.length; 
	var nCookieLen=document.cookie.length; 
	var nEnd; 
	var i=0; 
	var j; 

	while (i<nCookieLen) 
	{ 
		j=i+nArgLen; 
		if (document.cookie.substring(i,j)==strArg) 
		{ 
			nEnd=document.cookie.indexOf (";",j); 
			if (nEnd==-1) nEnd=document.cookie.length; 
			return unescape(document.cookie.substring(j,nEnd)); 
		} 
		i=document.cookie.indexOf(" ",i)+1; 
		if (i==0) break; 
	} 
	return null; 
} 

function getXY(obj){
	var a  = new Array();/*返回对象*/
	var t = obj.offsetTop;
	var l = obj.offsetLeft;
	var w = obj.offsetWidth;
	var h = obj.offsetHeight;
	while(obj=obj.offsetParent){
		t+=obj.offsetTop;
		l+=obj.offsetLeft;
	}
	a[0] = l;
	a[1] = t;
	a[2] = w;
	a[3] = h;
	return a;
}

function ValPnr(id, Errormessage)
{
    var pattern = /[a-zA-Z]{1}[0-9a-zA-Z]{4,5}/
    if (pattern.exec(id.value) != id.value) 
    {
        alert(Errormessage);
        id.focus();
        return false;
    } 
    return true; 
}

function ValDiscount(value)
{
    if (value.empty())
    {
        return true;
    } 
    else
    {
        if (isNaN(parseFloat(value)) || parseFloat(value) != value)
        {
            return false;
        }
        if (parseFloat(value) > 100 || parseFloat(value) < 0)
        {
            return false;
        }
    }  
    return true; 
}

function ValPrice(value)
{
    if (value.empty())
    {
        return true;
    } 
    else
    {
        if (isNaN(parseFloat(value)) || parseFloat(value) != value)
        {
            return false;
        }
    }  
    return true; 
}
 
function ValBerthDiscount(value)
{
    if (value.empty())
    {
        return true;
    } 
    else
    {
        if (isNaN(parseInt(value)) || parseInt(value) != value)
        {
            return false;
        }
        if (parseInt(value) < 0 || parseInt(value) > 150)
        {
            return false;
        }
    }  
    return true; 
}

function ValBerthPrice(value)
{
    if (value.empty())
    {
        return true;
    } 
    else
    {
        if (isNaN(parseInt(value)) || parseInt(value) != value)
        {
            return false;
        }
        if (parseInt(value) < 0)
        {
            return false;
        }
    }  
    return true; 
}

//检验身份证
function isIdCardNo(num) 
{   
    num = num.toUpperCase();  
    //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。   
//    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))   
//    { 
//        alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。'); 
//        return false; 
//    } 
 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))   
    { 
        alert('输入的身份证号格式不正确！'); 
        return false; 
    } 
    //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
    //下面分别分析出生日期和校验位 
    var len, re; 
    len = num.length; 
    if (len == 15) 
    { 
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); 
        var arrSplit = num.match(re); 

        //检查生日日期是否正确 
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); 
        var bGoodDay; 
        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
//        if (!bGoodDay) 
//        { 
//            alert('输入的身份证号里出生日期不对！');   
//            return false; 
//        } 
//        else 
//        { 
        if (!bGoodDay) 
          { 
            alert('输入的身份证号格式不对！');   
            return false; 
          } 
        else 
         { 
        //将15位身份证转成18位 
        //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2','x'); 
            var nTemp = 0, i;   
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); 
            for(i = 0; i < 17; i ++) 
            { 
                nTemp += num.substr(i, 1) * arrInt[i]; 
            } 
            num += arrCh[nTemp % 11];   
            return num;   
        }   
    } 
    if (len == 18) 
    { 
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); 
        var arrSplit = num.match(re); 

        //检查生日日期是否正确 
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); 
        var bGoodDay; 
        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
//        if (!bGoodDay) 
//        { 
//            alert('输入的身份证号里出生日期不对！'); 
//            return false; 
//        } 
//        else 
//        { 
         if (!bGoodDay) 
            { 
            alert('输入的身份证号格式不对！'); 
            return false; 
          } 
          else 
           { 
            //检验18位身份证的校验码是否正确。 
            //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
            var valnum; 
            var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
            var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
            var nTemp = 0, i; 
            for(i = 0; i < 17; i ++) 
            { 
                nTemp += num.substr(i, 1) * arrInt[i]; 
            } 
//            valnum = arrCh[nTemp % 11]; 
//            if (valnum != num.substr(17, 1)) 
//            { 
//                alert('18位身份证的校验码不正确！应该为：' + valnum); 
//                return false; 
//            } 
            valnum = arrCh[nTemp % 11]; 
               if (valnum != num.substr(17, 1)) 
                  { 
                      alert('身份证号输入错误！'); 
                      return false; 
                  } 
            return num; 
        } 
    } 
    return false; 
}   

//检验证件
function chkCertificateID(objCertificateID)
{
        var patern=/[a-zA-Z0-9-]{1,50}/;               
        for(var k=0;k<objCertificateID.value.length;k++)
        {
                if(!patern.exec(objCertificateID.value.substr(k,1)))
                {
                        alert("证件号格式不正确.");
                        objCertificateID.focus();                            
                        return false; 
                }
        } 
        
        return true;
}

//检验姓名
function chkPassenger(objPassenger)
{
        var patrn=/[a-zA-Z]{1,}[\u0391-\uFFE5]{1,}/;
        if (patrn.exec(objPassenger.value))
        {
            alert("乘客名称格式错误.");
            objPassenger.focus();
            return false;
        }

        patrn=/[\u0391-\uFFE5]{1,}/;
        if (!patrn.exec(objPassenger.value) && !objPassenger.value.include("/"))
        {
            alert("乘客名称格式错误.");
            objPassenger.focus();
            return false;
        }
        
        return true;
}
//检查电话
function chkPhone(objPhone)
{
// var patern=/^0\d{2,3}-\d{5,9}|0\d{2,3}\d{5,9}|\d{5,9}$/gi; 
        var patern=/^[0-9-]{8,16}$/gi;
        if(!patern.exec(objPhone.value.strip()))
        {
            alert("电话号码格式错误,电话号码应该是8-16位的数字.");
           objPhone.focus(); 
           return false; 
        }  
        
        return true;
}
//检查手机
function chkMobile(objMobile)
{
    var regu =/^[1][3,5,8]{1}[0-9]{9}$|^[0][0-9]{10}$/;
    var re = new RegExp(regu);
    if (re.test(objMobile)) {
    return true;
    }else{
    return false;
    }
}

//检查名称
function chkName(objName,strError)
{
      var patern=/[a-zA-Z0-9*\u0391-\uFFE5]{1,50}/;
     
      for(var k=0;k<objName.value.length;k++)
        {
                if(!patern.exec(objName.value.substr(k,1)))
                {
                        alert(strError+":"+objName.value.substr(k,1));
                        objName.focus();                            
                        return false; 
                }
        } 
   
      return true;
}

function chkEMail(objEMail)
{
      var Patern=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi; 
      if(!Patern.exec(objEMail.value))
     {
        alert("电子邮件格式错误.");
        return false;
     }  
     
     return true;
}

function chkMSN(objEMail)
{
      var Patern=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi; 
      if(!Patern.exec(objEMail.value))
     {
        alert("MSN格式错误.");
        return false;
     }  
     
     return true;
}

function chkCode(objCode,strError)
{
      var patern=/[_0-9a-zA-Z-\u0391-\uFFE5]{1,20}/gi;
     
      if(objCode.value!=patern.exec(objCode.value))
      {
            alert(strError);
            return false;
      }  
      
      return true;
}

function chkAccount(objAccount,strError)
{
      var patern=/[_0-9a-zA-Z-]{1,20}/gi;
     
      if(objAccount.value!=patern.exec(objAccount.value))
      {
            alert(strError);
            objAccount.focus(); 
            return false;
      }  
      
      return true;
}

function chkZIPCode(objZip)
{
       var patern=/^[0-9]{6}$/gi;
      if(!patern.exec(objZip.value))
      {
           alert("邮政编码格式不正确.");
           objZip.focus(); 
           return false; 
      } 
     
     return true; 
}

function chkTime(objTime,strError)
{
        var patern=/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2}):(\d{2})|(\d{4})\-(\d{2})\-(\d{2})|(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})$/gi;       
        var re = new RegExp(patern); 
        if (!re.test(objTime.value.strip()))
       {
            alert(strError);
            objTime.focus();
            return false;
       }
      return true; 
}


