function showErrMsg(str){
	alert(str);
}
function CheckResult(ctrlname, err){
	this.ctrlname = ctrlname;
	this.err = err;
}
function checkFields(validators){
	var row;	
	var i;
	if (null == validators)
		return null;
	for (i = 0; i < validators.rows.length; i++) {
		if (!checkControlExist(validators.rows(i).cells(0).innerText)) continue;
		
		if (validators.rows(i).cells(1).innerText == "Required"){
			if (!CheckRequiredField(validators.rows(i).cells(0).innerText))
				return new CheckResult(validators.rows(i).cells(0).innerText, validators.rows(i).cells(4).innerText);
		}else if(validators.rows(i).cells(1).innerText == "RegularExpression") {
			if (!CheckRegularExpressionField(validators.rows(i).cells(0).innerText, validators.rows(i).cells(3).innerText))
				return new CheckResult(validators.rows(i).cells(0).innerText, validators.rows(i).cells(4).innerText);
		}else if(validators.rows(i).cells(1).innerText == "Range") {
			if (!CheckRangeFiled(validators.rows(i).cells(0).innerText, validators.rows(i).cells(2).innerText, validators.rows(i).cells(3).innerText))
				return new CheckResult(validators.rows(i).cells(0).innerText, validators.rows(i).cells(4).innerText);
		}else if(validators.rows(i).cells(1).innerText == "Date") {
			if (!checkDate(validators.rows(i).cells(0).innerText))
				return new CheckResult(validators.rows(i).cells(0).innerText, validators.rows(i).cells(4).innerText);
		}
	}
	return null;
}/*checkFields()*/
function CheckRegularExpressionField(ctrl, exp) {
	var value = ValidatorGetValue(ctrl);
	
	return CheckRegularExpressionString(value, exp);
}/*CheckRegularExpressionField*/

function CheckRegularExpressionString(str, exp) {
	if (ValidatorTrim(str).length == 0)
		return true;        
	var rx = new RegExp(exp);
	var matches = rx.exec(str);
	return (matches != null && str == matches[0]);
}/*CheckRegularExpressionField*/

function CheckRequiredField(ctrl) {
	return (ValidatorTrim(ValidatorGetValue(ctrl)) != "")
}/*CheckRequiredField()*/
function checkDate(ctrl){
	var strDate = ValidatorGetValue(ctrl);
	if (strDate.length == 8){
		strDate = isDate2(strDate);
		if (strDate.length < 1) return false;
		//use right format to update control value
		try{
			document.all[ctrl].value = strDate;
		}catch(e){
			//it is safe right now.
		}
		//return true;
	}
	return isDate(strDate);
}
/*checkValidDate*/
/*not only checkvalidate but show the error message */
function checkValidDate(ctrl){
	var strDate = ValidatorGetValue(ctrl);
	
	if (strDate.length == 8){
		strDate = isValidDate2(strDate);
		if (strDate.length < 1) return false;
		//use right format to update control value
		try{
			document.all[ctrl].value = strDate;
		}catch(e){
			//it is safe right now.
		}
		//return true;
	}
	return isValidDate(strDate);
}
function checkBeforeToday(ctrl){
	var strDate = ValidatorGetValue(ctrl);
	if (strDate.length == 8){
		strDate = isDate2(strDate);
	}	
	try{
		var d = new Date();
		var strMonth = d.getMonth()+ 1;
		var strDay = d.getDate();
		if (strMonth < 10)
		strMonth = '0' + strMonth;
		if (strDay < 10)
		strDay = '0' + strDay;
		var strtoday = d.getFullYear() + '-' + strMonth + '-' +  strDay;
		if (strDate >= strtoday)
			return false;
	}catch(e){
		//it is safe right now.
	}
	return true;
}
function checkBeforeDay(ctrl, dayCtrl){
	var strDate = ValidatorGetValue(ctrl);
	var theDate = ValidatorGetValue(dayCtrl);
	if (strDate.length == 8){
		strDate = isDate2(strDate);
	}
	if (theDate.length == 8){
		theDate = isDate2(theDate);
	}
	try{
		if (strDate < theDate)
			return true;
	}catch(e){
		//it is safe right now.
	}
	return false;
}
//比较日期前后，两个日期相等也返回true
function compareDay(ctrl1,ctrl2){

	var strDate = ValidatorGetValue(ctrl1);
	var theDate = ValidatorGetValue(ctrl2);
	if (strDate.length == 8){
		strDate = isDate2(strDate);
	}
	if (theDate.length == 8){
		theDate = isDate2(theDate);
	}
	try{
		if (strDate <= theDate)
			return true;
	}catch(e){
		//it is safe right now.
	}
	return false;

}
function CheckRangeFiled(ctrl, datatype, valuedomain) {
	var value = ValidatorGetValue(ctrl);
	if (ValidatorTrim(value).length == 0) 
		return true;
	//* only IE6.0 recognize expression in /.../ 
	//var exp = /\s*([\(|\[])\s*(-{0,1}[\d|\.]+)\s*,\s*([\d|\.]+)\s*(-{0,1}[\)\]])\s*/; 
	var exp = "\\s*([\\(|\\[])\\s*(-{0,1}[\\d|\\.]+)\\s*,\\s*([\\d|\\.]+)\\s*(-{0,1}[\\)\\]])\\s*";
	var rx = new RegExp(exp);
	var matches = rx.exec(valuedomain);
	if (matches == null) {
		alert("值域表达式格式错误，应为(min, max)或[min, max]");
		return false;
	}
	var lo = RegExp.$1;
	var minval = RegExp.$2;
	var maxval = RegExp.$3;
	var ro = RegExp.$4;
	
	if(null == lo || null == ro || null == minval || null == maxval){
		alert("值域表达式格式错误，应为(min, max)或[min, max]");
		return false;
	}
	
	lop = "GreaterThan";
	if (lo != "(") lop = "GreaterThanEqual";
	
	rop = "LessThan";
	if (ro != ")") rop = "LessThanEqual";
	
	return (ValidatorCompare(value, minval, lop, datatype, ctrl) &&
			ValidatorCompare(value, maxval, rop, datatype, ctrl));
}/*CheckNumberRange()*/
function ValidatorTrim(s) {
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? "" : m[1];
}/*ValidatorTrim()*/
function ValidatorCompare(operand1, operand2, operator, dataType, ctrl) {
	var op1, op2;
	try {
		if ((op1 = ValidatorConvert(operand1, dataType, ctrl)) == null)
			return false;    
		if (operator == "DataTypeCheck")
			return true;
		if ((op2 = ValidatorConvert(operand2, dataType, ctrl)) == null)
			return true;
		switch (operator) {
			case "NotEqual":
				return (op1 != op2);
			case "GreaterThan":
				return (op1 > op2);
			case "GreaterThanEqual":
				return (op1 >= op2);
			case "LessThan":
				return (op1 < op2);
			case "LessThanEqual":
				return (op1 <= op2);
			default:
				return (op1 == op2);            
		}
	}catch(e){
		alert("Runtime Error:" + e);
		return false;
	}
}/*ValidatorCompare()*/
function ValidatorGetValue(id) {
	var control;
	// if id is an object
	if (typeof(id) == "object"){
		control = id;
	}else{
		control = document.all[id];
	}
	if(typeof(control) == "undefined" || null ==control)
		return id; //variable
	if (typeof(control.value) == "string") {
		return control.value;
	}
	if (typeof(control.tagName) == "undefined" && typeof(control.length) == "number") {
		var j;
		for (j=0; j < control.length; j++) {
			var inner = control[j];
			if (typeof(inner.value) == "string" && (inner.type != "radio" || inner.status == true)) {
				return inner.value;
			}
		}
	}
	else {
		return ValidatorGetValueRecursive(control);
	}
	return "";
}/*ValidatorGetValue()*/
function ValidatorConvert(op, dataType, val) {
	val = document.all[val];
	function GetFullYear(year) {
		return (year + parseInt(val.century)) - ((year < val.cutoffyear) ? 0 : 100);
	}
	var num, cleanInput, m, exp;
	if (dataType == "Integer") {
		//exp = /^\s*[-\+]?\d+\s*$/;
		exp = "^\\s*[-\\+]?\\d+\\s*$";
		if (op.match(exp) == null) 
			return null;
		num = parseInt(op, 10);
		return (isNaN(num) ? null : num);
	}
	else if(dataType == "Double") {
		exp = new RegExp("^\\s*([-\\+])?(\\d+)?(\\" + "." + "(\\d+))?\\s*$");
		m = op.match(exp);
		if (m == null)
			return null;
		cleanInput = m[1] + (m[2].length>0 ? m[2] : "0") + "." + m[4];
		num = parseFloat(cleanInput);
		return (isNaN(num) ? null : num);            
	} 
	else if (dataType == "Currency") {
		exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + "," + ")*)(\\d+)"
						+ ((val.digits > 0) ? "(\\" + "." + "(\\d{1," + 12 + "}))?" : "")
						+ "\\s*$");
		m = op.match(exp);
		if (m == null)
			return null;
		var intermed = m[2] + m[5] ;
		cleanInput = m[1] + intermed.replace(new RegExp("(\\" + "," + ")", "g"), "") + "." + 0;
		num = parseFloat(cleanInput);
		return (isNaN(num) ? null : num);            
	}
	else if (dataType == "Date") {
		var yearFirstExp = new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$");
		m = op.match(yearFirstExp);
		var day, month, year;
		if (m != null && (m[2].length == 4 || val.dateorder == "ymd")) {
			day = m[6];
			month = m[5];
			year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10))
		}
		else {
			if (val.dateorder == "ymd"){
				return null;		
			}						
			var yearLastExp = new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$");
			m = op.match(yearLastExp);
			if (m == null) {
				return null;
			}
			if (val.dateorder == "mdy") {
				day = m[3];
				month = m[1];
			}
			else {
				day = m[1];
				month = m[3];
			}
			year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10))
		}
		month -= 1;
		var date = new Date(year, month, day);
		return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate()) ? date.valueOf() : null;
	}
	else {
		return op.toString();
	}
}/*ValidatorConvert()*/

function checkControlExist(id){
	control = document.all[id];	
	if(null == control)
		return false;
	if (typeof(control.tagName) == "undefined" || typeof(control.length) == "number") {
		return false;
	}
	return true;
}

/*functions used in validate date*/
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30};
		if (i==2) {this[i] = 29};
   } 
   return this;
}
function isDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("-");
	var pos2=dtStr.indexOf("-",pos1+1);
	var strYear=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strDay=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth, 10);
	day=parseInt(strDay, 10);
	year=parseInt(strYr, 10);
	if (pos1==-1 || pos2==-1){
		//alert("数据格式应为 : yyyy-mm-dd")
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("请输入有效月份！")
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("请输入有效天数！")
		return false;
	}
	if (strYear.length != 4 || year==0 || year<1900 || year>2100){
		//alert("请输入1900到2100之间的4位年数！")
		return false;
	}
	if (dtStr.indexOf("-",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "-"))==false){
		//alert("请输入有效日期！")
		return false;
	}
	return true;
}


function checkValidDate2(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("-");
	var pos2=dtStr.indexOf("-",pos1+1);
	var strYear=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strDay=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth, 10);
	day=parseInt(strDay, 10);
	year=parseInt(strYr, 10);
	var error="";
	if (pos1==-1 || pos2==-1){
		//alert("数据格式应为 : yyyy-mm-dd")
		error=error+"数据格式应为 : yyyy-mm-dd\n";
		return error;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("请输入有效月份！")
		error=error+"请输入有效月份！\n";
		return error;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("请输入有效天数！")
		error=error+"请输入有效天数！\n";
		return error;
	}
	if (strYear.length != 4 || year==0 || year<1900 || year>2100){
		//alert("请输入1900到2100之间的4位年数！")
		error=error+"请输入1900到2100之间的4位年数！\n";
		return error;
	}
	if (dtStr.indexOf("-",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "-"))==false){
		//alert("请输入有效日期！")
		error=error+"请输入有效日期！\n";
		return error;
	}
	return "";
}
function isValidDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf("-");
	var pos2=dtStr.indexOf("-",pos1+1);
	var strYear=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strDay=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth, 10);
	day=parseInt(strDay, 10);
	year=parseInt(strYr, 10);
	if (pos1==-1 || pos2==-1){
		//alert("数据格式应为 : yyyy-mm-dd")
		error=error+"数据格式应为 : yyyy-mm-dd\n";
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("请输入有效月份！")
		error=error+"请输入有效月份！\n";
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("请输入有效天数！")
		error=error+"请输入有效天数！\n";
		return false;
	}
	if (strYear.length != 4 || year==0 || year<1900 || year>2100){
		//alert("请输入1900到2100之间的4位年数！")
		error=error+"请输入1900到2100之间的4位年数！\n";
		return false;
	}
	if (dtStr.indexOf("-",pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, "-"))==false){
		//alert("请输入有效日期！")
		error=error+"请输入有效日期！\n";
		return false;
	}
	return true;
}

function isDate2(dtStr){
	var daysInMonth = DaysArray(12);
	var strYear=dtStr.substring(0,4);
	var strMonth=dtStr.substring(4,6);
	var strDay=dtStr.substring(6);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth, 10);
	day=parseInt(strDay, 10);
	year=parseInt(strYr, 10);
	if (strMonth.length<1 || month<1 || month>12){
		//alert("请输入有效月份！")
		return "";
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("请输入有效天数！")
		return "";
	}
	if (strYear.length != 4 || year==0 || year<1900 || year>2100){
		//alert("请输入1900到2100之间的4位年数！")
		return "";
	}
	if (1 == strMonth.length) strMonth="0"+strMonth;
	if (1 == strDay.length) strDay="0"+strDay;
	return strYear+"-"+strMonth+"-"+strDay;
}

function isValidDate2(dtStr){
    
	var daysInMonth = DaysArray(12);
	var strYear=dtStr.substring(0,4);
	var strMonth=dtStr.substring(4,6);
	var strDay=dtStr.substring(6);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth, 10);
	day=parseInt(strDay, 10);
	year=parseInt(strYr, 10);
	if (strMonth.length<1 || month<1 || month>12){
		//alert("请输入有效月份！")
		error=error+"请输入有效月份！\n";
		return "";
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("请输入有效天数！")
		error=error+"请输入有效天数！\n";
		return "";
	}
	if (strYear.length != 4 || year==0 || year<1900 || year>2100){
		//alert("请输入1900到2100之间的4位年数！")
		error=error+"请输入1900到2100之间的4位年数！\n";
		return "";
	}
	if (1 == strMonth.length) strMonth="0"+strMonth;
	if (1 == strDay.length) strDay="0"+strDay;
	return strYear+"-"+strMonth+"-"+strDay;
}

function setFocus(id){
	if ("object" == typeof(id)){
		id.focus();
		selectText(id);
		return;
	}
	
	var obj = document.all[id];
	if(null == obj) return;
	obj.focus();
	selectText(obj);
	return;
}
function selectText(obj){
	if (!isTextControl(obj)) 
		return ;
	obj.select();
	
}
function checkString(obj){

	var error="";

	for(var i=0;i<obj.elements.length;i++){
		e = obj.elements[i];
		if((e.type=="text")||(e.type=="textarea")){
			str = e.value = ValidatorTrim(e.value);
			if(str.indexOf("\"")>-1){
				error=error+""+e.name+"含有双引号";
				return error;
			}else if(str.indexOf("\'")>-1){
				error=error+""+e.name+"含有单引号";
				return error;
			}else if(str.indexOf("%")>-1){
				error=error+""+e.name+"含有百分号";
				return error;
			}
			 
		}
	}
	return "";
}

function checkcitycode(str){
	var error = "";
	var strcpy ;
	for (var i = 0; i < portcode.length; i++) {
	strcpy = str.toUpperCase();

		if(strcpy == portcode[i][0]){
			return "";
		}
	}
	error ="不存在这个城市三字码";
	return error;
}

function isTextControl(obj){
	if ("object" != typeof(obj))
		return false;
	if ("INPUT" != obj.tagName.toUpperCase())
		return false;
	if (null != obj.type && "TEXT" == obj.type.toUpperCase())
		return true
	return false;
}

/*验证输入是否全是数字*/
function isNum(num)
{
	var reg = /\D/; /*非数字字符*/
	if(reg.test(num)) return false;
	return true; /*全部为数字，则返回true*/
}
/*验证输入是否全是手机号*/
function isValidCellNum(num)
{
	var errstr = "";
    
    var len = num.length;
    
    var num = num.toUpperCase();
	    
	if(!(len == 11))
	{
		errstr = "输入的手机号码位数不对";
		return errstr;
	}
	else
	{
		if(!isNum(num))
		{
			errstr = "请确认手机号全部为数字";
			return errstr;
		}
		if("13"!=num.substr(0,2))
		{
			errstr = "请确认手机号以‘13’开头";
			return errstr;
		}
	}
	return "";
}
/** 身份证的验证
 *  验证正确返回空字符串“”，否则返回错误信息。
 */
function isIdCardNo(num)
{
    var errstr = "";
    
    var len = num.length;
    
    var num = num.toUpperCase();
	    
	if(!(len == 15 || len ==18))
	{
		errstr = "输入的身份证号码位数不对";
	}
	else
	{
		if(len == 15)
		{
			if(!isNum(num))
			{
				errstr = "如果您的身份证号码为15位，请确认输入全部为数字";
			}
			else
			{
				var re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
				var a = num.match(re);
				if (a != null)
				{
					var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
		        	var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
		        	if (!B) {errstr = "输入的身份证号 "+ a[0] +" 里出生日期不对";}
				}
			}
		}
		else //len ==18
		{
			if(  !( isNum(num) || ( isNum(num.substring(0,17)) && ( num.indexOf("X") == 17 ) ) ) )   
			{
				errstr = "如果您的身份证号码为18位，请确认输入是否正确";
			}
			else
			{
				var re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
				var a = num.match(re);
				if (a != null)
				{
					var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
		        	var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
		        	if (!B) {errstr = "输入的身份证号 "+ a[0] +" 里出生日期不对";}
				}
			}  
		}
	}
	
    return errstr;
}
function validateEI(info){
	var errstr = "";
	if (true == pnr_bContainChinesePunc(info)) {
		errstr = "EI项中不能包含中文标点";
		return errstr;
	}
	
	if (false == pnr_checkLength(info,30)){
		errstr = "EI项不能超过30个字符";
		return errstr;
	}
	return "";
}
function validateTC(info){
	var errstr = "";
	if (true == pnr_bContainChinese(info)){
		errstr = "TC项中不能包含中文";
		return errstr;
	}
	if (true == pnr_bContainChinesePunc(info)){
		errstr = "RMK项中不能包含中文标点";
		return errstr;
	}
	if (false == pnr_checkLength(info,10)){
		errstr = "TC项不能超过10个字符";
		return errstr;
	}
	return ""
}
function validatePNRRMK(info){
	var errstr = "";
	if (true == pnr_bContainChinese(info)){
		errstr = "RMK项中不能包含中文";
		return errstr;
	}
	if (true == pnr_bContainChinesePunc(info)){
		errstr = "RMK项中不能包含中文标点";
		return errstr;
	}
	return ""
}

function validatePNRPassengerName(name){

	var errstr = "";

	name =ValidatorTrim(name)  

	if ("" == name){
		errstr = "姓名不能为空";
		return errstr;
	}
	
	if (true == pnr_bContainChinesePunc(name)) {
		errstr = "姓名中不能包含中文标点";
		return errstr;
	}
	
	if (true == pnr_bContainNumber(name)) {
		errstr = "姓名中不能包含数字";
		return errstr;
	}
	
	if (true == CheckRegularExpressionString(name,".*/.*/.*")){
		errstr = "姓名中分隔符/只能出现一次";
		return errstr;
	}

	if (true == CheckRegularExpressionString(name, ".*/.*") && false == CheckRegularExpressionString(name,".*[a-zA-Z ]{2}/[a-zA-Z ]+.*")){
		errstr = "姓名中分隔符/两边必须是英文并且/之前至少2个英文字符";
		return errstr;
	}

	if (pnr_bContainChinese(name)==true){
	 	if (true == CheckRegularExpressionString(name,".*[a-zA-Z/]+[\u4e00-\u9fa5]+.*")) {
	 		errstr = "姓名中所有中文在英文之前";
	 		return errstr;
	 	}
	 	
		if (true == CheckRegularExpressionString(name,".*[\u4e00-\u9fa5]+ [\u4e00-\u9fa5].*")){
			errstr = "中文之间不能有空格";
			return errstr;
		}		

		if (false == pnr_checkLength(name,24)){
			errstr = "包含汉字的姓名长度最大24个字符";
			return errstr;
		}
	}else{
		if (false == CheckRegularExpressionString(name, ".*/.*")){
			errstr = "英文名必须以/为分隔";
			return errstr;
		}
			
		if (false == pnr_checkLength(name,28)){
			errstr = "不包含汉字的姓名长度最大为28个字符";
			return errstr;
		}
	}
	return "";
}


function checkname_field(name)
{

var errstr = "";

	name =ValidatorTrim(name)  

	if ("" == name){
		errstr = "姓名不能为空";
		return errstr;
	}


  if (true == pnr_bContainChinesePunc(name)) {
		errstr = "姓名中不能包含中文标点";
		return errstr;
	}
	
	if (true == pnr_bContainNumber(name)) {
		errstr = "姓名中不能包含数字";
		return errstr;
	}
	
	
	if (true == CheckRegularExpressionString(name,"/[^ ]*")){
			errstr = "英文之间不能有空格";
			return errstr;
		}		
	
	
	if (true == CheckRegularExpressionString(name,".*/.*/.*")){
		errstr = "姓名中分隔符/只能出现一次";
		return errstr;
	}

	if (true == CheckRegularExpressionString(name, ".*/.*") && false == CheckRegularExpressionString(name,".*[a-zA-Z ]{2}/[a-zA-Z ]+.*")){
		errstr = "姓名中分隔符/两边必须是英文并且/之前至少2个英文字符";
		return errstr;
	}

	if (pnr_bContainChinese(name)==true){
	 	if (true == CheckRegularExpressionString(name,".*[a-zA-Z/]+[\u4e00-\u9fa5]+.*")) {
	 		errstr = "姓名中所有中文在英文之前";
	 		return errstr;
	 	}
	 	
		if (true == CheckRegularExpressionString(name,".*[\u4e00-\u9fa5]+ [\u4e00-\u9fa5].*")){
			errstr = "中文之间不能有空格";
			return errstr;
		}		

		if (false == pnr_checkLength(name,24)){
			errstr = "包含汉字的姓名长度最大24个字符";
			return errstr;
		}
	}else{
		if (false == (CheckRegularExpressionString(name, ".*/.*")||CheckRegularExpressionString(name,"[a-zA-Z/]*"))){
			errstr = "英文名必须以/为分隔";
			return errstr;
		}
			
		if (false == pnr_checkLength(name,28)){
			errstr = "不包含汉字的姓名长度最大为28个字符";
			return errstr;
		}
	}
	return "";

}


function pnr_bContainNumber(str) {
	if(CheckRegularExpressionString(str, ".*[0-9].*")){
		return true;
	}
	return false;
}

function pnr_bContainChinese(str) {
	if(CheckRegularExpressionString(str, ".*[\u4e00-\u9fa5].*")){
		return true;
	}
	return false;
}

function pnr_bContainChinesePunc(str) {
	if(CheckRegularExpressionString(str, ".*[，|。|‘|’|“|”|《|》|、|：|？|！|〈|〉|（|）].*")){
		return true;
	}
	return false;
}

function pnr_getLength(str) {
	var newstr = str.replace(/[\u4e00-\u9fa5]/g, "aa");
	if (null == newstr)
		return 0;
	return newstr.length;
}
function pnr_checkLength(str, max) {
	i = pnr_getLength(str);
	if (i>max) return false;
	else return true;
}
function checkTel(tel) {
	
}
