//--- 显示提示信息
function showMessage(div,msg,valid){
	var divobj=document.getElementById(div);
	if(valid){
		divobj.innerHTML="<font style='color:#009900;background:url(../images/standard_msg_ok.gif) left center no-repeat;"
					 +"padding-left:20px;'>"+msg+"</font>";
	}else{
		divobj.innerHTML="<font style='color:#dd0000;background:url(../images/standard_msg_error.gif) left center no-repeat;"
					 +"padding-left:20px;'>"+msg+"</font>";
	}
}
//--- 清除信息
function clearMessage(div){
	var divobj=document.getElementById(div);
	divobj.innerHTML="";
}
//消除输入字符串前后的半角和全角空格
function Trim(str) {
	str = str.replace(/(^[\s\u3000]*)|([\s\u3000]*$)/g, "");
	return str;
}

//去左空格,只能去除半角 
function ltrim(s) {
	return s.replace(/^\s*/, "");
} 

//去右空格,只能去除半角 
function rtrim(s) {
	return s.replace(/\s*$/, "");
} 

//去左右空格,只能去除半角
function trim(s) {
	return rtrim(ltrim(s));
}

//是否为空值; 
function IsEmpty(_str) {
	var tmp_str = Trim(_str);
	return tmp_str.length === 0;
}

//是否有效的正整数; 
function IsPositiveInteger(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[0-9]*[1-9][0-9]*$/;
	return pattern.test(tmp_str);
} 

//是否有效的非正整数
function IsNonPositiveInteger(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^((-\d+)|(0+))$/;
	return pattern.test(tmp_str);
}

//是否有效的负整数
function IsNegativeInteger(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^((-\d+)|(0+))$/;
	return pattern.test(tmp_str);
}

//是否有效的非负整数
function IsNonNegativeInteger(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^\d+$/;
	return pattern.test(tmp_str);
}

//是否有效的整数
function IsInteger(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^-?\d+$/;
	return pattern.test(tmp_str);
}

//是否有效的正浮点数
function IsPositiveFloat(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
	return pattern.test(tmp_str);
}

//是否有效的非正浮点数
function IsNonPositiveFloat(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
	return pattern.test(tmp_str);
}

//是否有效的负浮点数
function IsNegativeFloat(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
	return pattern.test(tmp_str);
}

//是否有效的非负浮点数
function IsNonNegativeFloat(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^\d+(\.\d+)?$/;
	return pattern.test(tmp_str);
}

//是否有效的浮点数
function IsFloat(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^(-?\d+)(\.\d+)?$/;
	return pattern.test(tmp_str);
}

//是否有效的大写字母组合
function IsCapitalLetter(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[A-Z]+$/;
	return pattern.test(tmp_str);
}

//是否有效的小写字母组合
function IsLowercaseLetter(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[a-z]+$/;
	return pattern.test(tmp_str);
}

//是否有效的小写字母组合
function IsLetter(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[A-Za-z]+$/;
	return pattern.test(tmp_str);
}

//是否有效的大写字母和数字的组合
function IsCapitalLetterDigit(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[A-Z0-9]+$/;
	return pattern.test(tmp_str);
}

//是否有效的小写字母和数字的组合
function IsLowercaseLetterDigit(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[a-z0-9]+$/;
	return pattern.test(tmp_str);
}

//是否有效的字母和数字的组合
function IsLetterDigit(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^[A-Za-z0-9]+$/;
	return pattern.test(tmp_str);
}

//是否有效的字母和数字以及下划线的组合
function IsAccount(_str) {
	var tmp_str = Trim(_str);
	var pattern = /^\w+$/;
	return pattern.test(tmp_str);
}


//邮件校验
//通过校验返回ture,否则返回false 
function isEmail(emailStr) {
	var emailPat = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	if (emailPat.test(emailStr)) {
		return true;
	} else {
		return false;
	}
} 


//IP地址校验
//正确的IP地址回ture,否则返回false 
function isIp(strIp) {
	var ipDomainPat = /^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$/;
	var matchArray = strIp.match(ipDomainPat);
	if (matchArray != null) {
		return true;
	}
} 


//电话号码校验
//正确的电话号码（包括区号和“-”如0571-1234567[8] 010-1234567[8] ）则返回ture,否则返回false 
function isTelphoneNum(telNum) {
	var telphoneNumPat = /^0d{2}-d{7,8}|0d{3}-d{7,8}$/;
	var matchArray = telNum.match(telphoneNumPat);
	if (matchArray != null) {
		return true;
	}
} 


//手机号码校验
//正确的手机号码(如:13800571506 013800571505)则返回ture,否则返回false 
function isMobilephoneNum(mobileNum) {
	var mobilephoneNumPat = /^((\(\d{2,3}\))|(\d{3}\-))?1[3|5]\d{9}$/;
	var matchArray = mobileNum.match(mobilephoneNumPat);
	if (matchArray != null) {
		return true;
	}
} 

//纯数字验证输入,输入为纯数字则返回ture,否则返回false 
function isDigital(str) {
	var digitalPot = /^\d+$/;
	var matchArray = str.match(digitalPot);
	if (matchArray != null) {
		return true;
	}
} 
//18位身份证验证,输入正确的号码返回ture,否则返回false 
function card(id) {
	var Wi = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);
	var ai = "10X98765432";
	var sum = 0;
	var ssum = 0; 
//alert(id.charAt(i)); 
	for (var i = 0; i < 17; i++) {
		ssum = eval(Wi[i] * id.charAt(i));
		sum = ssum + sum;
	}
	var modNum = sum % 11;
	if (ai.charAt(modNum) == id.charAt(17)) {
		return true;
	}
} 

//自定义规则,mask为正确的正则表达式
//返回通过自定义验证的字符串 
function matchPattern(value, mask) {
	return mask.exec(value);
} 

//判断是否为英文,正确返回ture,否则返回false 
function isEnglish(name) {
	if (name.length == 0) {
		return false;
	}
	for (i = 0; i < name.length; i++) {
		if (name.charCodeAt(i) > 128) {
			return false;
		}
	}
	return true;
} 

//判断是否为中文,正确返回 ture,否则返回false 
function isChinese(name) {
	if (name.length == 0) {
		return false;
	}
	for (i = 0; i < name.length; i++) {
		if (name.charCodeAt(i) > 128) {
			return true;
		}
	}
	return false;
} 

//非法字符判断,str中有charset则返回ture, 
function contain(str, charset) {
	var i;
	for (i = 0; i < charset.length; i++) {
		if (str.indexOf(charset.charAt(i)) >= 0) {
			return true;
		}
		return false;
	}
} 

//选中文本框或文本域文本,在input位置加上 onClick/onFocus="textSelect();" 即可 
function textSelect() {
	var obj = document.activeElement;
	if (obj.tagName == "TEXTAREA") {
		obj.select();
	}
	if (obj.tagName == "INPUT") {
		if (obj.type == "text") {
			obj.select();
		}
	}
} 

//只允许输入数字 字母 下划线 
function textOnly() {
	var i = window.event.keyCode; 
//8=backspace
//9=tab
//37=left arrow
//39=right arrow
//46=delete
//48~57=0~9
//97~122=a~z
//65~90=A~Z
//95=_ 
	if (!((i <= 57 && i >= 48) || (i >= 97 && i <= 122) || (i >= 65 && i <= 90) || (i == 95) || (i == 8) || (i == 9) || (i == 37) || (i == 39) || (i == 46))) { 
//window.event.keyCode=27; 
		event.returnValue = false;
		return false;
	} else { 
//window.event.keyCode=keycode; 
		return true;
	}
} 

//判断URL,正确的URL返回true,否则返回false 
function isURL(URL) {
	var urlPat = /^http:\/\/[A-Za-z0-9]+(\.[A-Za-z0-9]+)*[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
	var matchArray = URL.match(urlPat);
	if (matchArray != null) {
		return true;
	} else {
		return false;
	}
} 

//判断短日期
function isDateCheck(date) {
	var r = date.match(/^(d{1,4})(-|\/)(d{1,2})(d{1,2})$/);
	if (r == null) {
		return false;
	}
	if (r[1] < 1 || r[3] < 1 || r[3] - 1 > 12 || r[4] < 1 || r[4] > 31) {
		return false;
	}
	var d = new Date(r[1], r[3] - 1, r[4]);
	if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {
		return true;
	}
}

//判断短日期(如2003-12-05) 
function isDate(date) {
	var datePat = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
	var r = date.match(datePat);
	if (r == null) {
		return false;
	} else {
		return true;
	}
} 


//判断短时间（HH:MM:SS） 
function isTime(time) {
	var a = time.match(/^(d{1,2})(:)?(d{1,2})(d{1,2})$/);
	if (a == null) {
		return false;
	}
	if (a[1] > 23 || a[1] < 0 || a[3] > 60 || a[3] < 0 || a[4] > 60 || a[4] < 0) {
		return false;
	}
	return true;
} 

//在表单元素中除button外,按回车键模拟TAB功能 
function enterToTab() {
	if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false) {
		if (window.event.srcElement.type != "button") {
			window.event.keyCode = 9;
		}
	} else {
		return true;
	}
} 

//在填写表单时按回车键提交表单,name为sumbit控件名 
function enterTOSubmit(name) {
	if (window.event.keyCode == 13 && window.event.ctrlKey == false && window.event.altKey == false) {
		var objSubmit = document.getElementById(name);
		objSubmit.focus;
	} else {
		return true;
	}
} 

//返回去前后全角半角空格后的字符串 
function trimFullSpace(strIn) {
	if (strIn == null) {
		return null;
	} else {
		var len = strIn.length;
		var start = 0;
		var end = strIn.length;
		for (var i = 0; i < len; i++) {
			if (strIn.charAt(i) == " " || strIn.charAt(i) == " ") {
				start++;
			} else {
				break;
			}
		}
		for (var i = len - 1; i > -1; i--) {
			if (strIn.charAt(i) == " " || strIn.charAt(i) == " ") {
				end--;
			} else {
				break;
			}
		}
		if (start >= end) {
			return "";
		} else {
			return strIn.substring(start, end);
		}
	}
} 

//判断是否为浮点数,并且小数点后面为index位,正确返回true 
function isFloat(float, index) {
	var floatPat = /^(d{1,})[.](d{1,})$/;
	var matchArray = float.match(floatPat);
	if (matchArray != null) {
		if (matchArray[2].length == index) {
			return true;
		}
	}
} 

//判断字符最大长度,如果strin的长度不大于maxLen返回ture 
function maxLength(strin, maxLen) {
	var len = 0;
	for (var i = 0; i < strin.length; i++) {
		if (strin.charCodeAt(i) > 256) {
			len += 2;
		} else {
			len++;
		}
	}
	if (len <= maxLen) {
		return true;
	}
} 

//判断字符最小长度,如果的长度不小于minLen返回ture 
function minLength(strin, minLen) {
	var len = 0;
	for (var i = 0; i < strin.length; i++) {
		if (strin.charCodeAt(i) > 256) {
			len += 2;
		} else {
			len++;
		}
	}
	if (len >= minLen) {
		return true;
	}
} 

//由三个函数组成checkPassWord(),charMode(),bitTotal()
//校验密码复杂度,密码由数字,大小写字母,特殊字符中的任意三种组合,通过则返回true 
function checkPassWord(passWord, maxLen) {
	if (passWord.length <= maxLen) {
		return false;
	} //密码太短 
	Modes = 0;
	for (i = 0; i < passWord.length; i++) { 
//测试一个字符并判断一共有多少种模式. 
		Modes |= charMode(passWord.charCodeAt(i));
	}
	return bitTotal(Modes);
} 

//CharMode函数
//判断某个字符是属于哪一种类型. 
function charMode(iN) {
	if (iN >= 48 && iN <= 57) { //数字 
		return 1;
	}
	if (iN >= 65 && iN <= 90) { //大写字母 
		return 2;
	}
	if (iN >= 97 && iN <= 122) { //小写 
		return 4;
	} else {
		return 8; //特殊字符 
	}
} 

//bitTotal函数
//计算出当前密码当中一共有多少种模式 
function bitTotal(num) {
	modes = 0;
	for (i = 0; i < 4; i++) {
		if (num & 1) {
			modes++;
		}
		num >>>= 1;
	}
	if (modes == 3) {
		return true;
	}
} 

//判断是否为合法的用户名，合法返回true,否则返回flase
//用户名由字母和数字、下划线组成，且只能以字母开头，且长度最小为6位 
function isAccount(str) {
	if (/^[a-z]w{3,}$/i.test(str)) {
		return true;
	} else {
		return false;
	}
} 

//取得字符串中中文字的个数 
function getChineseNum(obstring) {
	var pattern = /^[\u4e00-\u9fa5]+$/i;
	var maxL, minL;
	maxL = obstring.length;    //原始长度
	obstring = obstring.replace(pattern, "");
	minL = obstring.length;    //处理后的长度
	return (maxL - minL);
} 

//判断输入的字符是否为Integer类型，是返回true，否则返回false 
function isInteger(str) {
	var integerPat = /^[-+]?d+$/;
	var matchArray = str.match(integerPat);
	if (matchArray != null) {
		return true;
	} else {
		return false;
	}
} 

//判断输入的字符是否为Double类型，是返回true，否则返回false 
function isDouble(str) {
	var doublePat = /^[-+]?d+(.d+)?$/;
	var matchArray = str.match(doublePat);
	if (matchArray != null) {
		return true;
	} else {
		return false;
	}
}

//判断是否是QQ
function isQQ(value){
	var qqPat=/^[1-9]\d{4,8}$/;
	if(qqPat.test(value)){
		return true;
	}
	return false;
}

