var warnDateFormatError = "\u65e5\u671f\u683c\u5f0f\u9519\u8bef";
var warnMonth = "\u6708\u6570\u4e0d\u80fd\u8d85\u8fc712";
var warnDay = "\u5929\u6570\u4e0d\u80fd\u8d85\u8fc731";
var warnInputNotNull = "\u4e0d\u80fd\u4e3a\u7a7a";
var warnLength = "\u8f93\u5165\u7684\u5b57\u7b26\u592a\u957f";
var warnInputFeifa = "\u8f93\u5165\u975e\u6cd5";
var warnInteger = "\u6574\u6570\u4e0d\u80fd\u8d85\u8fc7\u89c4\u5b9a\u7684\u4f4d\u6570";
var warnDecimal = "\u5c0f\u6570\u4e0d\u80fd\u8d85\u8fc7\u89c4\u5b9a\u7684\u4f4d\u6570";
var warnInt = "\u5fc5\u987b\u662f\u6574\u6570";
var warString="\u8f93\u5165\u4e0d\u6b63\u786e";
var warnCharAndNum="\u53ea\u80fd\u662f\u82f1\u6587\u5b57\u6bcd\u548c\u6570\u5b57";
var warnPwd="\u5fc5\u987b\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u957f\u5ea6\u57286\uff5e18\u4e4b\u95f4\uff0c\u53ea\u80fd\u5305\u542b\u5b57\u7b26\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf";
var warnStr="\u8f93\u5165\u7684\u683c\u5f0f\u4e0d\u6b63\u786e";
var warnAllNum="\u4e0d\u80fd\u4e3a\u7eaf\u6570\u5b57";
//去掉左右空格
String.prototype.trim = function(){
			return this.replace(/(^\s*)|(\s*$)/g,"");
		}
//整数不能超过int1位  小数不能超过float2位
function checkFloat(str,strName, int1, float2) { 
	if (str.value.trim()) {
		if (isNaN(str.value.trim())) {
			alert(strName+warnInputFeifa);
			str.select();
			return false;
		}
		//var patrn = /^([+]?)\d*\.\d+$/;
		var arr = str.value.trim().split(".");
		if (arr[0].length > int1) {
			alert(strName+warnInteger+":"+int1);
			str.select();
			return false;
		}
		if(arr.length>1){
			if (arr[1].length > float2) {
				alert(strName+warnDecimal+":"+float2);
				str.select();
				return false;
			   }
		  }
		  return true;
		//if (patrn.test(str.value.trim())) {
		//	return true;
		//}
	} else {
		return true;
	}
}

//整数校验
function checkIsInteger(str,strName) {
	if (str.value.trim()) {
		var patrn = /^([+-]?)(\d+)$/;
		if (patrn.test(str.value.trim())) {
			return true;
		} else {
			alert(strName+warnInt);
			str.select();
			return false;
		}
	} else {
		return true;
	}
}
//日期验证
function checkIsDate(str,strName) {
	if (str.value.trim()) {
		if (!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str.value.trim())) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var r = str.value.trim().match(/\d{1,4}/g);
		if (r == null) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var d = new Date(r[0], r[1] - 1, r[2]);
		if (r[1] > 12) {
			alert(strName+warnMonth);
			str.select();
			return false;
		}
		if (r[2] > 31) {
			alert(strName+warnDay);
			str.select();
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}
//非空校验
function checkIsNotNull(str,strName) { 
	if(str==null){
		return false;
	} 
	if (str.value.trim() == "" || null == str.value.trim()) { 
		alert(strName+warnInputNotNull);
		try{
			str.focus();
		}catch(e){
		}
		return false;
	} else {
		return true;
	}
}
//只能为数字的 字符不能超过leng的长度校验 
function checkLength(str,strName, leng) {
	if (str.value.trim()) {
		if (isNaN(str.value.trim())) {
			alert(strName+warnInputFeifa);
			str.select();
			return false;
		}
		if (str.value.trim().length > leng) {
			alert(strName+warnLength);
			str.select();
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}
//中英文都可以的长度校验且字符不能超过leng
function checkLength2(str,strName, leng) {
	if (getBytesLength(str.value.trim()) > leng) {
		alert(strName+warnLength);
		str.select();
		return false;
	} else {
		return true;
	}
}

//只能输入数字
function justNumber() {
	// alert(event.keyCode);
	// 13 -- enter 46 -- tab     
	if (document.all) {
		if (!(((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 13) || (event.keyCode == 46))) {
			event.keyCode = 0;
		}
	}
}

//主子表非空验证
function justNumber() {
	// alert(event.keyCode);
	// 13 -- enter 46 -- tab     
	if (document.all) {
		if (!(((event.keyCode >= 48) && (event.keyCode <= 57)) || (event.keyCode == 13) || (event.keyCode == 46))) {
			event.keyCode = 0;
		}
	}
}
// 得到字符串的字符长度（一个汉字占两个字符长）
function getBytesLength(str) {
		// 在GBK编码里，除了ASCII字符，其它都占两个字符宽除-外
		return (replaceStr(str)).replace(/[^x00-xff]/g, 'xx').length;
}
//指定特殊字符所点的长度
function replaceStr(str){
        str = str.replace(/-/g,'x');
        return str;
}
//用正则表达式验证邮件
function checkEmail(str,strName){
	if (str.value.trim()) {
		var patrn = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
		if (patrn.test(str.value.trim())) {
			return true;
		} else {
			alert(strName+warString);
			str.select();
			return false;
		}
	} else {
		return true;
	}
}

//---手机输入的值只能是11个数字 ---str=手机值,strName=“名称”,telRemark=“返回文本框对象”
function checkTelRemarkStr(str,strName,telRemark){
	var ptn2 = /\d\d\d\d\d\d\d\d\d\d\d/; //匹配11个数字
	var arrayStr = str.split(",");
	if (str.trim() == "" || null == str.trim()) { 
		return true;
	}else{
		for(var i=0;i<arrayStr.length;i++) {
			var nextStr = arrayStr[i];
			if(!ptn2.test(nextStr.trim()) || nextStr.length!=11 ){	//长度11位
				alert(strName+warString);
				telRemark.select();
				return false;
			}
		}
	}
	return true;
}
function TimeCom( dateValue )
{
    var newCom = new Date( dateValue );
    this.year = newCom.getYear();
    this.month = newCom.getMonth()+1;
    this.day = newCom.getDate();
    this.hour = newCom.getHours();
    this.minute = newCom.getMinutes();
    this.second = newCom.getSeconds();
    this.msecond = newCom.getMilliseconds();
    this.week = newCom.getDay();
}
//得到两个日期之间的差别
function DateDiff(interval,date1,date2)
{
    var TimeCom1 = new TimeCom(date1);
    var TimeCom2 = new TimeCom(date2);
    var result;
    switch(String(interval).toLowerCase())
    {
        case "y":
        case "year":
        result = TimeCom1.year-TimeCom2.year;
        break;
        case "n":
        case "month":
        result = (TimeCom1.year-TimeCom2.year)*12+(TimeCom1.month-TimeCom2.month);
        break;
        case "d":
        case "day":
        result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24));
        break;
        case "h":
        case "hour":
        result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour))/(1000*60*60));
        break;
        case "m":
        case "minute":
        result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute))/(1000*60));
        break;
        case "s":
        case "second":
        result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second))/1000);
        break;
        case "ms":
        case "msecond":
        result = Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second,TimeCom1.msecond)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second,TimeCom1.msecond);
        break;
        case "w":
        case "week":
        result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24)) % 7;
        break;
        default:
        result = "invalid";
    }
    return(result);
}
//日期校验
function checkDateMaxToday(str,strName){
	if (str.value.trim()) {
		if (!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str.value.trim())) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var r = str.value.trim().match(/\d{1,4}/g);
		if (r == null) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var d = new Date(r[0], r[1] - 1, r[2]);
		if (r[1] > 12) {
			alert(strName+warnMonth);
			str.select();
			return false;
		}
		if (r[2] > 31) {
			alert(strName+warnDay);
			str.select();
			return false;
		} else {
			var dt = new Date();
			var today = ''+dt.getFullYear()+'/'+ (dt.getMonth()+1)+'/'+ dt.getDate();
			var expire = ''+d.getFullYear()+'/'+ (d.getMonth()+1)+'/'+ d.getDate();
			var dif = DateDiff('day',expire,today);
			if(dif<0){
				alert(strName+"必须大于等于"+today.replace('/','-').replace('/','-'));
				return false;
			}
			return true;
		}
	} else {
		return true;
	}
}
function checkDateMinToday(str,strName){
	if (str.value.trim()) {
		if (!/\d{4}(\.|\/|\-)\d{1,2}(\.|\/|\-)\d{1,2}/.test(str.value.trim())) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var r = str.value.trim().match(/\d{1,4}/g);
		if (r == null) {
			alert(strName+warnDateFormatError);
			str.select();
			return false;
		}
		var d = new Date(r[0], r[1] - 1, r[2]);
		if (r[1] > 12) {
			alert(strName+warnMonth);
			str.select();
			return false;
		}
		if (r[2] > 31) {
			alert(strName+warnDay);
			str.select();
			return false;
		} else {
			var dt = new Date();
			var today = ''+dt.getFullYear()+'/'+ (dt.getMonth()+1)+'/'+ dt.getDate();
			var expire = ''+d.getFullYear()+'/'+ (d.getMonth()+1)+'/'+ d.getDate();
			var dif = DateDiff('day',expire,today);
			if(dif>0){
				alert(strName+"必须小于等于"+today.replace('/','-').replace('/','-'));
				return false;
			}
			return true;
		}
	} else {
		return true;
	}
}
//只能输入英文字符和数字 
function checkIsCharAndNum(str,strName){
	if(str.value.trim()){
		var patrn = /^[A-Za-z0-9]+$/;//只能是英文字母和数字
		if(!patrn.test(str.value.trim())){
			alert(strName+warnCharAndNum);
			str.select();
			return false;
		}
		return true;
	}else{
		return true;
	}
}
//控制不能输入纯数字，主要用于验证地址等
function checkIsAllNum(str,strName){
	if(str.value.trim()){
		var patrn = /^[0-9]+$/;//全为数字
		if(patrn.test(str.value.trim())){
			alert(strName+warnAllNum);
			str.focus();
			return false;
		}
		return true;
	}else{
		return true;
	}
}
//用户密码校验：正确格式为：以字母开头，长度在6～18之间，只能包含字符、数字和下划线
function checkPassword(str,strName){
	if(str.value.trim()){
		var patrn = /^[a-zA-Z]\w{5,17}$/;
		if(!patrn.test(str.value.trim())){
			alert(strName+warnPwd);
			return false;
		}
		return true;
	}else{
		return true;
	}
}
//用正则表达式验证手机合法性
function checkTel(str,strName){
	if (str.value.trim()) {
		//var patrn =/[1](\d{10})/;
		 var patrn=/^1[3,5]\d{9}$/;
		if (patrn.test(str.value.trim())) {
			return true;
		} else {
			alert(strName+warString);
			str.select();
			return false;
		}
	} else {
		return true;
	}
}
/*验证电话号码合法性*/
	function checkPhone(str,strName){
		if (str.value.trim()) {
			//var patrn =/((\d{3,4})|(\d{3,4}-))?(\d{7,8})(-\d{3})*/;
			var patrn = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
			if (patrn.test(str.value.trim())) {
				return true;
			} else {
				alert(strName+"输入不正确 正确格式为：021-54585848");
				str.select();
				return false;
			}
		} else {
			return true;
		}
	}
//用正则表达式验证身份证号（15位或18位数字） 
function checkID(str,strName){
	//if (str.value.trim()) {
		var patrn = /^\d{15}|\d{}18$/;
		if (patrn.test(str.value.trim())) {
			return true;
		} else {
			alert(strName+warString);
			//str.select();
			return false;
		}
	//} else {
		//return true;
	//}
}


function checkIdcard(idcard){
	var Errors=new Array(
	"验证通过!",
	"身份证号码位数不对!",
	"身份证号码出生日期超出范围或含有非法字符!",
	"身份证号码校验错误!",
	"身份证地区非法!"
	);
	var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	
	var idcard,Y,JYM;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	//地区检验
	if(area[parseInt(idcard.substr(0,2))]==null) return Errors[4];
	//身份号码位数及格式检验
	switch(idcard.length){
	case 15:
	if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
		ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;//测试出生日期的合法性
	} else {
		ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;//测试出生日期的合法性
	}
	if(ereg.test(idcard)) return Errors[0];
	else return Errors[2];
	break;
	case 18:
	//18位身份号码检测
	//出生日期的合法性检查 
	//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
	//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
	if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
		ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式
	} else {
		ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式
	}
	if(ereg.test(idcard)){//测试出生日期的合法性
	//计算校验位
	S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
	+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
	+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
	+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
	+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
	+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
	+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
	+ parseInt(idcard_array[7]) * 1 
	+ parseInt(idcard_array[8]) * 6
	+ parseInt(idcard_array[9]) * 3 ;
	Y = S % 11;
	M = "F";
	JYM = "10X98765432";
	M = JYM.substr(Y,1);//判断校验位
	if(M == idcard_array[17]||"X"==idcard_array[17]||'x'== idcard_array[17]) return Errors[0]; //检测ID的校验位
	else return Errors[3];
	}
	else return Errors[2];
	break;
	default:
	return Errors[1];
	break;
	}
}


/*  
* ForDight(Dight,How):数值格式化函数，Dight要  
* 格式化的   数字，How要保留的小数位数。  
*/  

function ForDight(Dight,How)  {  
 Dight = Math.round   (Dight*Math.pow(10,How))/Math.pow(10,How);
 
 if(isNaN(Dight)){
 	return 0;
 }  
 return Dight;  
}

/*字符大写*/
function changeCase(fromObj)
    {
       var index;

       var tmpStr;

       var tmpChar;

       var poreString;

       var postString;

       var strLen;

       tmpStr = fromObj.value.toLowerCase();

       strLen = tmpStr.length;

       if(strLen>0)

       {

           for(index=0;index<strLen;index++)

           {

              if(index==0)

              {

                  tmpChar=tmpStr.substring(0,1).toUpperCase();

                  postString = tmpStr.substring(1,strLen);

                  tmpStr = tmpChar+postString;

              }else

              {

                  tmpChar = tmpStr.substring(index,index+1);

                  if(tmpChar==" "&&index<(strLen-1))

                  {

                     tmpChar = tmpStr.substring(index+1,index+2).toUpperCase();

                     preString = tmpStr.substring(0,index+1);

                     postString = tmpStr.substring(index+2,strLen);

                     tmpStr = preString+tmpChar+postString;

                  }

              }

           }

       }

       

       fromObj.value=tmpStr;

    }   
    
    function checkCustomerLinkman(name){
		// 智能验证汉字或英文
		var nam=/^[\u4E00-\u9FA5]{0,}$/;
        var ch= /^([a-zA-Z]|[\s]){0,25}$/;
		var proName = name;
       if(!nam.test(proName.value)){
           if(!ch.test(proName.value))
           {
              alert('联系人名称只能输入汉字或英文字母！');
              proName.select();
              return false;
           }else if(ch.test(proName.value))
           {
              changeCase(proName);
           }
       }
       else if(!ch.test(proName.value)){
           if(!nam.test(proName.value))
           {
              alert('联系人名称只能输入汉字或英文字母！');
              proName.select();
              return false;

           }else if(nam.test(proName.value))
           {
               if(proName.value.length!=4&&proName.value.length!=2&&proName.value.length!=3&&proName.value.length>10)
              {
                  alert("请输入正确的姓名");
                  proName.select();
                  return false;
              }
           }
       }
}



/*验证输入数字的地方必须大于0*/
function checkWhether(str,strName){
		if(str.value <= 0 && str.value != ""){
			alert(strName+"必须大于0");
			return false;
	}
	return true;
}

/*验证日期不能大于系统当前日期*/
function checkCurrentlyDate(str,strName){
	var today = new Date();
	var day = today.getDate();
	var month = today.getMonth()+1;
	var year = today.getYear();
	var date = year + "-" +month + "-"+day;
	var dOne = new Date(date.replace(/-/g,"/"));
	var dTwo = new Date(str.value.replace(/-/g,"/"));
	if(Date.parse(dTwo)-Date.parse(dOne)>0)
	{
		window.alert(strName+"不能晚于当前日期");
		return false;
	}
		return true;
}

/*验证时间段的开始日期不能大于结束的日期*/
function checkDateSpace(str1,str2,strName){
	var date1 = new Date(str1.value.replace(/-/g,"/"));
	var date2 = new Date(str2.value.replace(/-/g,"/"));
	if(Date.parse(date1)-Date.parse(date2)>0)
	{
		window.alert(strName+" 的开始时间不能大于结束时间！");
		return false;
	}
		return true;
}

/***更严格的严重手机号码**/
function isMobile(mobile){
	var regexp = /^(\+86)?((14\d)|(13\d)|(15[^4,\D])|(18[0-9]))\d{8}$/;
	return regexp.test(mobile);
}
