
function InputValid(d_input, d_notnull, d_type, d_limited, d_low, d_up, d_str) {
	if (d_input.length > 1) {
		var obj = d_input;
		var m;
		m = d_input.length;
		m = m.toString();
		for (var i = 0; i < m; i++) {
			if (!InputValid_A(obj[i], d_notnull, d_type, d_limited, d_low, d_up, d_str)) {
				return (false);
			}
		}
	} else {
		if (!InputValid_A(d_input, d_notnull, d_type, d_limited, d_low, d_up, d_str)) {
			return false;
		}
	}
	return true;
}
/**
* d_input
* d_notnull 是否为空：0 ＝可以为空 ; 1 = 必须填写
* d_type 类型 int string float date time email fax auto zip
* d_limited  是否显示
*/
function InputValid_A(d_input, d_notnull, d_type, d_limited, d_low, d_up, d_str) {
//不能以空格开头
	if (d_input.value.charAt(0) == " ") {
       alert(d_str+" 输入框不能以空格开头" );
		d_input.focus();
		return (false);
	}
// not null
	if (d_notnull == 1 && d_input.value.length == 0) {
       alert(" 必须输入" + d_str );
		d_input.focus();
		return (false);
	}
//不能包含&
  // if ( -1 < d_input.value.indexOf('&'))
 //  {
 //  	alert(d_str+" 输入框不能有特殊字符&!" );
 //  	return false ;
  // }
//
	var tmpValue = doReplace(d_input.value);
	d_input.value = tmpValue;
// "int"
	if (d_type == "int") {
		if (!isInt(d_input.value)) {
			alert( d_str+ "只能是整数");
			d_input.focus();
			return (false);
		}
		if (d_limited == 1 && !(d_low <= d_input.value && d_input.value <= d_up)) {
			alert(d_str+"输入数字不合法,请检查");
			d_input.focus();
			return (false);
		}
		return true;
	}

//mobile
	if (d_type == "mobile") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		if (!d_input.value.isMobile()) {
			alert( "手机号码格式不正确,请检查" );
			d_input.focus();
			return (false);
		}
		return true;
	}

//tel
	if (d_type == "tel") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		if (!d_input.value.isTel()) {
			alert( "座机号码格式不正确,请检查" );
			d_input.focus();
			return (false);
		}
		return true;
	}

// "float"
	if (d_type == "float") {
		if (!isFloat(d_input.value)) {
			alert( d_str+" 只能输入数字及小数点" );
			d_input.focus();
			return (false);
		}
		if (d_limited == 1 && !(d_low <= d_input.value && d_input.value <= d_up)) {
			alert(d_str+"输入数字不合法,请检查");
			d_input.focus();
			return (false);
		}
		return true;
	}

// "string"
	if (d_type == "string") {
		//alert();
		tmpValue = d_input.value;
		var valueLen = strlen(tmpValue);
		if (d_limited == 1 && !(d_low <= valueLen && valueLen <= d_up)) {
			if (d_low > 0) {
				alert(d_str + "的汉字内容长度只能在 " + d_low / 2 + " 和 " + d_up / 2 + "之间" + " 或字符内容长度只能在 " + d_low + " 和 " + d_up + "之间" );
			} else {

				alert( d_str + " 的内容长度不能超过 " + d_up / 2 + " 个汉字或 " + d_up + " 英文");
			}
			d_input.focus();
			return (false);
		}
		return (true);
	}
// "pwd"
	if (d_type == "pwd") {
		//alert();
		tmpValue = d_input.value;
		var valueLen = strlen(tmpValue);
		if (d_limited == 1 && !(d_low <= valueLen && valueLen <= d_up)) {
			alert(d_str+ " 的内容长度在 "+d_low +"--"+d_up+"个字符之间");
			d_input.focus();
			return (false);
		}
		return (true);
	}

// "date"
	if (d_type == "date") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		//if ((!isDate(d_input.value)) || (d_input.value.length != 10)) {
		if ((!isDate(d_input.value))) {
			alert("请在"+d_str+"处输入正确的日期格式");
			d_input.focus();
			return (false);
		}
		return (true);
	}
// "time"
	if (d_type == "time") {
		if ((!isTime(d_input.value)) || (d_input.value.length != 5)) {
			alert("请在"+d_str+"处输入24小时制时间格式如下");
			d_input.focus();
			return (false);
		}
		return (true);
	}

// "email"
	if (d_type == "email") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		if (!isEmail(d_input.value)) {
			alert("请在 <" + d_str + "> 处输入正确的Email地址。");
			d_input.focus();
			return (false);
		}
		//limit
		if (d_limited == 1 && !(d_low <= d_input.value.length && d_input.value.length <= d_up)) {
			alert("<" + d_str + "> 的长度只能在 " + d_low + " 和 " + d_up + " 之间");
			d_input.focus();
			return (false);
		}
		return (true);
	}

	//"身份证cert"
	if (d_type == "cert") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		if (!certValidation(d_input.value)) {
			alert("<" + d_str + "> 的输入格式不正确");
			d_input.focus();
			return (false);
		}
		//limit
		if (d_limited == 1 && !(d_low <= d_input.value.length && d_input.value.length <= d_up)) {
			alert("<" + d_str + "> \u7684\u957f\u5ea6\u53ea\u80fd\u5728 " + d_low + " \u548c " + d_up + " \u4e4b\u95f4.");
			d_input.focus();
			return (false);
		}
		return (true);
	}
	//"postcode 邮编"
	if (d_type == "postcode") {
		if (d_notnull == 0 && d_input.value.length == 0) {
			return (true);
		}
		if (!postcodeValidation(d_input.value)) {
			alert("请在 <" + d_str + "> 处输入正确的邮编.");
			d_input.focus();
			return (false);
		}
		//limit
		if (d_limited == 1 && !(d_low <= d_input.value.length && d_input.value.length <= d_up)) {
			alert("<" + d_str + "> \u7684\u957f\u5ea6\u53ea\u80fd\u5728 " + d_low + " \u548c " + d_up + " \u4e4b\u95f4.");
			d_input.focus();
			return (false);
		}
		return (true);
	}
// "fax"
	if (d_type == "fax") {
		//is int
		if (!isFax(d_input.value)) {
			alert("<" + d_str + "> 只能输入数字和'- '");
			d_input.focus();
			return (false);
		}
		//limit
		if (d_limited == 1 && !(d_low <= d_input.value.length && d_input.value.length <= d_up)) {
			alert("<" + d_str + "> 的长度只能在 " + d_low + " 和 " + d_up + " 之间.");
			d_input.focus();
			return (false);
		}
		return true;
	}

     // auto
	if (d_type == "auto") {
		//limit
		if (d_input.value == 0) {
			alert("请输入 " + d_str);
			return (false);
		}
		return true;
	}

// "zip"
	if (d_type == "zip") {
		if (!isInt(d_input.value)) {
			alert(d_str + " 只能是数字");
			d_input.focus();
			return (false);
		}
		if (d_limited == 1) {
			if ((d_low == d_up) && (d_input.value.length != d_low) && d_input.value.length != 0) {
				alert( d_str+ "的长度只能是 "+ d_low +" 位." );
				d_input.focus();
				return (false);
			} else {
				if ((d_low < d_input.value.length && d_input.value.length < d_up)) {
					alert(d_str + "的长度只能为 " + d_up + " 位.");
					d_input.focus();
					return (false);
				}
			}
		}
		return true;
	}
	return (true);
}
/**
* 获取指定字符串长度，汉字按双字节算（即一个汉字的长度为2）
*/
function strlen(value) {
	if (value == null) {
		return 0;
	}
	var str = value;
	var len = 0;
	for (var i = 0; i < str.length; i++) {
		len++;
		if (str.charCodeAt(i) > 255) {
			len++;
		}
	}
	return len;
}
//下面定义了一些过滤规则
var filterRules = new Array();
filterRules[0] = new Array();
filterRules[0][0] = /\"/g;//过滤单字节的双引号,替换成汉字中双字节的双引号
filterRules[0][1] = "”" ;
filterRules[1] = new Array();//过滤单字节的单引号,替换成汉字中的双字节的单引号
filterRules[1][0] = /\'/g;
filterRules[1][1] = "’" ;
filterRules[2] = new Array();//过滤单字节的<,替换成双字节的〈
filterRules[2][0] = /</g;
filterRules[2][1] = "〈" ;
filterRules[3] = new Array();////过滤单字节的>,替换成双字节的〉
filterRules[3][0] = />/g;
filterRules[3][1] = "〉" ;
/**
*过滤函数，把上面定义的规则过滤字符串
*/
function doReplace(strValue) {
	var tempValue = strValue;
	for (var i = 0; i < 2; i++) {
		tempValue = tempValue.replace(filterRules[i][0], filterRules[i][1]);
	}
	return tempValue;
}
function isInt(d_int) {
	var checkOK = "0123456789-,";
	var checkStr = d_int;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++) {
			if (ch == checkOK.charAt(j)) {
				break;
			}
		}
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
		if (ch != ",") {
			allNum += ch;
		}
	}
	return (allValid);
}
function isFloat(d_float) {
	var checkOK = "0123456789-,.";
	var checkStr = d_float;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++) {
			if (ch == checkOK.charAt(j)) {
				break;
			}
		}
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
		if ((ch == "-") && (i != 0)) {
			allValid = false;
			break;
		}
		if (ch != ",") {
			allNum += ch;
		}
		if (ch == ".") {
			decPoints += 1;
		}
	}
	if (decPoints > 1) {
		allValid = false;
	}
	return (allValid);
}
function isDate(d_date) {
	var checkStr = d_date;
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if ((i == 4) || (i == 7)) {
			if (ch != "-") {
				return (false);
			}
		} else {
			if (ch < "0" || ch > "9") {
				return (false);
			}
			if ((i == 5 && ch > "1") || (i == 8 && ch > "3")) {
				return (false);
			}
		}
	}
	return (true);
}
function isTime(d_time) {
	var checkStr = d_time;
	var hour1 = "0";
	var hour2 = "0";
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if (i == 2) {
			if (ch != ":") {
				return (false);
			}
		} else {
			if (ch < "0" || ch > "9") {
				return (false);
			}
			if ((i == 0 && ch > "2") || (i == 3 && ch > "5")) {
				return (false);
			}
			if (i == 0) {
				hour1 = ch;
			}
			if (i == 1) {
				hour2 = ch;
			}
			if ((hour1 == "2") && (hour2 > "3")) {
				return (false);
			}
		}
	}
	return (true);
}
function isEmail(d_email) {
	var checkStr = d_email;
	var emailtag = false;
	var emaildot = 0;
	var emailat = 0;
	if (checkStr.length < 7) {
		return (false);
	}
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if (ch == "@") {
			emailat++;
		}
		if (ch == ".") {
			emaildot++;
		}
	}
	if ((emailat == 1) && (emaildot >= 1)) {
		emailtag = true;
	}
	return (emailtag);
}
function isFax(d_int) {
	var checkOK = "0123456789 -() $ ";
	var checkStr = d_int;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++) {
			if (ch == checkOK.charAt(j)) {
				break;
			}
		}
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
		if (ch != ",") {
			allNum += ch;
		}
	}
	return (allValid);
}


String.prototype.Trim = function() {
  var m = this.match(/^\s*(\S+(\s+\S+)*)\s*$/);
  return (m == null) ? "" : m[1];
}

String.prototype.isMobile = function() {
	 var mobile=this.Trim();
	 var reg0=/^13\d{9}$/;
	 var reg1=/^15\d{9}$/;
	 var my=false;
	 if (reg0.test(mobile))my=true;
	 if (reg1.test(mobile))my=true;
	 return my;
}

String.prototype.isTel = function()
{
    //"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
    return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/.test(this.Trim()));
}

/**
* 选中所有的checkbox框。
* @param name checkbox框对象
* @param showName checkbox框的显式值。
*/
function checkall(checkObj, isCheckedAll, showName) {
	if (null == checkObj) {
      alert("没有你能选择所需要的"+showName+".");
		return false;
	} else {
		if (null == checkObj[0]) {
			checkObj.checked = isCheckedAll;
		} else {
			for (var i = 0; i < checkObj.length; i++) {
				checkObj[i].checked = isCheckedAll;
			}
		}
	}
	return true;
}
/**
  *页面流转。
  *@param gotoPage:控制页面流程的隐藏变量
  */
function gotoPage(formObj, toPage) {
	formObj.command.value = toPage;
	formObj.submit();
}
/**
  *获取单选框选择的选择值。
  *@param radioOjb:单选框对象(radiobox)|多宣框对象(checkbox)
  *@param showName:单框显示值
  *@return 字符串.若没有选择，但存在复选框，则返回空字符串,并提示选择;
  *        若没有复选框则出现提示信息。
  */
function getFirstCheckedValue(radioOjb, showName) {
	var tempValue = null;
	if (null == radioOjb) {
      alert("没有"+showName+"供选择！");
		return null;
	} else {
		if (null == radioOjb[0]) {
			if (radioOjb.checked) {
				tempValue = radioOjb.value;
			}
		} else {
			for (var i = 0; i < radioOjb.length; i++) {
				if (radioOjb[i].checked) {
					tempValue = radioOjb[i].value;
					break;
				}
			}
		}
	}
	if (tempValue == null) {
	  alert("请选择所需要的"+showName+".");
	}
	return tempValue;
}
//获得SELECT中第一个被选中的项
function getFirstSelectedOption(objSelect) {
	var selectedOption = null;
	for (var i = 0; i < objSelect.options.length; i++) {
		if (objSelect.options[i].selected) {
			selectedOption = new Option(objSelect.options[i].text, objSelect.options[i].value);
			break;
		}
	}
	return selectedOption;
}
//点击radio后的文字，选中radio
function checkedRadio(obj) {
	obj.checked = true;
}
/**
  *字符串截取。
  *@param str:原字符串
  *@param len:要截取的长度(字节数)
  *@param place:从左还是从右截取 输入'left''right' 正常情况下从左截取可以不输入这个参数
  *@return 截取后的字符串。
  */
function sub_str(str, len, place) {
	if (str.length == 0) {
		return "&nbsp;";
	}
	tempstr = str;
	if (place == undefined) {
		place = "left";
	}
	if (str.replace(/[^\x00-\xff]/gi, "xx").length <= len) {
		return str;
	}
	if (place == "left") {
		var temp_len = len;
		str = str.substr(0, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(0, --temp_len);
		}
	}
	if (place == "right") {
		var temp_startn = 0;
		str = str.substr(str.length - len, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(1, len);
		}
	}
	if (str != tempstr) {
		str += "...";
	}
	return str;
}
/**
 * 获取输入字符串的长度，按字节计算
 *
 */
function lengthOfInputByByte(strInput) {
	var tempstr = strInput;
	tempstr = tempstr.replace(/[^\x00-\xff]/gi, "xx");
	return tempstr.length;
}
/**
  *字符串截取。
  *@param str:原字符串
  *@param len:要截取的长度(字节数)
  *@param place:从左还是从右截取 输入'left''right' 正常情况下从左截取可以不输入这个参数
  *@return 截取后的字符串。
  */
function chop(str, len, place) {
	tempstr = str;
	if (place == undefined) {
		place = "left";
	}
	if (str.replace(/[^\x00-\xff]/gi, "xx").length <= len) {
		return str;
	}
	if (place == "left") {
		var temp_len = len;
		str = str.substr(0, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(0, --temp_len);
		}
	}
	if (place == "right") {
		var temp_startn = 0;
		str = str.substr(str.length - len, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(1, len);
		}
	}
	if (str != tempstr) {
		str += "";
	}
	return str;
}
/* 检查数据类型，整数、实数、空 */
function isInteger(inputVal) {
	return !isNaI(inputVal);
}
function isNaI(inputVal) {
	var rtn = false;
	inputStr = inputVal.toString();
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if ((i == 0 && oneChar == "-" && inputStr.length > 1) || (oneChar >= "0" && oneChar <= "9")) {
			rtn = false;
		} else {
			rtn = true;
			break;
		}
	}
	return rtn;
}
function loadScript(url) {
	document.write("<script type=\"text/javascript\" src=\"" + url + "\" onerror=\"alert('Error loading ' + this.src);\"></script>");
}
/**
 * 检验Form上的Check groups是否有选择
 */
function checkCheckGroup(formField) {
	var selected = false;

    // 没有定义
	if (typeof (formField) == "object") {
        // 只有一个选项
		if (typeof (formField.value) != "undefined") {
			selected = formField.checked;
		} else { // 多个选项
			for (i = 0; i < formField.length; i++) {
				if (formField[i].checked) {
					selected = true;
					break;
				}
			}
		}
	}
	return selected;
}
/**
* 检查下来框内容是否选择了项，要求提示内容的value值为-1
*/
function checkSelect(obj) {
	if (obj.value == "-1") {
		return false;
	}
	return true;
}
/**
* 替换
*/
function replaceAll(input, srcCharacter, aimCharacter) {
	if (input.length == 0) {
		return input;
	}
	var result = input;
	while (input.indexOf(srcCharacter) > -1) {
		result = result.replace(srcCharacter, aimCharacter);
	}
	return result;
}
function sub(str, len, place) {
	if (str.length == 0) {
		return "&nbsp;";
	}
	tempstr = str;
	if (place == undefined) {
		place = "left";
	}
	if (str.replace(/[^\x00-\xff]/gi, "xx").length <= len) {
		return str;
	}
	if (place == "left") {
		var temp_len = len;
		str = str.substr(0, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(0, --temp_len);
		}
	}
	if (place == "right") {
		var temp_startn = 0;
		str = str.substr(str.length - len, len);
		while (str.replace(/[^\x00-\xff]/gi, "xx").length > len) {
			str = str.substr(1, len);
		}
	}
	return str;
}
function certValidation(fieldValue) {
	if (fieldValue == "") {
		return true;
	}
	var isnull = /^[a-zA-Z0-9]{15}$|^[a-zA-Z0-9]{18}$/;
	if (isnull.exec(fieldValue) == null) {
		return false;
	} else {
		return true;
	}
}
function postcodeValidation(fieldValue) {
	if (fieldValue == "") {
		return true;
	}
	var isnull = /^[0-9]{6}$/;
	if (isnull.exec(fieldValue) == null) {
		return false;
	} else {
		return true;
	}

}
///利用正则表达式进行验证
function reg_validation(field_input,fieldName,regexp) {
	if (!regexp.exec(field_input.value)) {
		alert("<"+fieldName+"> 输入格式不正确,请重新输入");
		field_input.focus();
		return false;
	}
	return true;
}
