/***说明：	页面公共脚本文件，主要提供在JSP页面需要调用的公用脚本函数。*日期：	2007-04-11*//**	*功能：	检查复选框(单选)被选中的数目*参数：	str：	radio,checkbox组的名称*返回：	返回被选中的数目*/function getCheckNumber(str) {	var check = 0;	var i=0;	if( document.all(str).length > 0 ) { 			for( i=0; i<document.all(str).length; i++ ) {				if( document.all(str).item( i ).checked  ) {							check += 1;						}		}		}else{			if( document.all(str).checked )			check = 1;		}	return check;}/**	用途：去掉字符串两边的空格输入：str：	有空格的字符串	 iType：	去掉字符串的类型			1=去掉字符串左边的空格			2=去掉字符串左边的空格			0=去掉字符串左边和右边的空格返回：去掉空格后的字符串*/function cTrim(str, iType) {	var sTmpStr = " ";	var i = -1;	if (isNull(str)) {		return "";	}	if (iType == 0 || iType == 1) {		while (sTmpStr == " ") {			++i;			sTmpStr = str.substr(i, 1);		}		str = str.substring(i);	}	if (iType == 0 || iType == 2) {		sTmpStr = " ";		i = str.length;		while (sTmpStr == " ") {			--i;			sTmpStr = str.substr(i, 1);		}		str = str.substring(0, i + 1);	}	return str;}/** *功能：	刷新校验码*参数：	imgId：		校验码图片ID	*返回：		*/ function changeValidateKey(imgId){	var changeURL = "";	changeURL = eval(imgId).src + '&r=' + Math.random();	eval(imgId).src = changeURL;	//eval(imgId).setAttribute('src',changeURL);	 //setTimeout(function(){eval(imgId).src=changeURL; }  ,20);}/**	*功能：	获取字符串的长度*参数：	strVal：	字符串*返回：	返回字符串的字节长度*/function getReaLength(strVal){	var tempStr ;	tempStr = strVal.replace(/(^\s*)|(\s*$)/g, '');	return tempStr.replace(/[^\x00-\xff]/g,"**").length;}/**	*功能：	正确截取单字节和双字节混和字符串*参数：	str：	要截取的字符串×		len：	截取长度*返回：	返回截取后的字符串*/function substr(str, len) {     		if(!str || !len) { return ''; }      		//预期计数：中文2字节，英文1字节     		var a = 0;      //循环计数     		var i = 0;      //临时字串    		var temp = '';      		for (i=0;i<str.length;i++){         			if (str.charCodeAt(i)>255){             				//按照预期计数增加2             				a+=2;         			}         			else         			{             				a++;         			}         			//如果增加计数后长度大于限定长度，就直接返回临时字符串         			if(a > len) { return temp; }          			//将当前内容加到临时字符串         			temp += str.charAt(i);     		}     		//如果全部是单字节字符，就直接返回源字符串     		return str; 	} /**	*功能：	检测是否是空值或零长度数据*参数：	str：		检测要的字符串	  *返回：	如果通过验证则返回true,否则返回false */function isNull(str){	if(str == "" || str == null || str.length == 0) return true;	var regu = "^[ 　]+$";	var re = new RegExp(regu);	return re.test(str);}/**	*功能：	判断是否为数字*参数：	strNumber：		数字字符串*返回：	如果通过验证则返回true,否则返回false */function isNumeric(strNumber){   		if (/^\d+$/.test(strNumber))	{	   return true;	} 	else 	{	   return false;	}}/**	*功能：	校验数字的长度和精度*参数：	strNumber：		数字字符串*		len：			数字位数*		prec：			数字小数位数*返回：	如果通过验证则返回true,否则返回false */ function isDouble(strNumber, len, prec){	var numReg;	var value = strNumber;	var strValueTemp, strInt, strDec;		try	{				numReg =/[\-]/;		strValueTemp = value.replace(numReg, "");		numReg =/[\+]/;		strValueTemp = strValueTemp.replace(numReg, "");		//整数		if(prec==0){			numReg =/[\.]/;			if(numReg.test(value) == true){				alert("参数必须为整数类型");				return false;				}					}				if(strValueTemp.indexOf(".") < 0 ){			if(strValueTemp.length >( len - prec)){				alert("整数位不能超过"+ (len - prec) +"位");				return false;			}				}else{			strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );					if(strInt.length >( len - prec)){				alert("整数位不能超过"+ (len - prec) +"位");				return false;			}			strDec = strValueTemp.substr( (strValueTemp.indexOf(".")+1), strValueTemp.length );				if(strDec.length > prec){				alert("小数位不能超过"+  prec +"位");				return false;			}				}				return true;	}catch(e){		alert("in isDouble = " + e);		return false;	}	}/** *功能：	检查参数对象的值是否符合E-Mail格式 *参数：	str：	参数的字符串 *返回：	如果通过验证返回true,否则返回false */ function isEmail(strEmail)                             {	var myReg = /^[_a-zA-Z][_a-zA-Z0-9]*@[_a-z0-9]+\.[a-zA-Z]{2,5}(\.[a-zA-Z]{2,3})?$/;	var emailReg = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;	if(emailReg.test(strEmail))		return true;	return false;}/***规则：	移动: 前3位 134-139  或者 150-159   一共11位*		联通: 前3位 130-133  或者 150-159   一共11位* 		新增18号段*		小灵通: 第一位为0 一共11位*	     这是最新规则*功能：	检查参数的电话号码格式是否正确（仅手机号）*参数：	str：	字符串*返回：	如果通过验证返回true,否则返回false*/function isMobile(str){   	var regu =/(^[1][3][0-9]{9}$)|(^[1][5][0-9]{9}$)|(^[1][8][0-9]{9}$)|(^[0][1-9]{1}[0-9]{9}$)/;		var reg = new RegExp(regu);		if (reg.test(str)) {			return true;		}else{			return false;	}}/***格式要求 (1)国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(2到5位)*			/^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{2,5}))?$/*		(2)手机号*			/(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}18[0-9]{9}$)/*		(2)小灵通*			/^[0][1-9]{1}[0-9]{9}$/ *功能：	检查参数的电话号码格式是否正确(包含手机)*参数：	str：	字符串*返回：	如果通过验证返回true,否则返回false*/function isPhone(str){   	var regu = /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{2,5}))?$)|(^0{0,1}13[0-9]{9}$)|(^0{0,1}15[0-9]{9}$)|(^0{0,1}18[0-9]{9}$)|(^[0][1-9]{1}[0-9]{9}$)/;		var reg = new RegExp(regu);				if (reg.test(str)) {			return true;		}else{			return false;	}}/** *功能：	判断用户名是否是字母 数字 . _等组成并且4-20位*参数：	str：		参数的字符串 *返回：	如果通过验证返回true,否则返回false */ function isUsername(str){	var filter=/^\s*[.A-Za-z0-9_-]{4,20}\s*$/;	if(!filter.test(str)) return false;	return true;}/** *功能：	判断字符串中是否含有特殊字符*参数：	str：		验证的字符串 *		spChars：	特殊字符*返回：	如果通过验证返回true,否则返回false */ function isValidCode(str, special){	var spChars = /[~!@%^&*();\'\"\"?><\[\]{}\|,:\/=+—“”‘]/;			if(typeof(special) != 'undefined') spChars = special;		if (spChars.test(str)){        alert("不能以含有非法字符("+str.match(spChars)+")！");               return true;	}	return false;}/** *功能：	判断密码是否是字母 数字等组成并且8-16位*参数：	str：		参数的字符串 *返回：	如果通过验证返回true,否则返回false */ function isPassword(str){	var filter = /^([0-9a-zA-Z]){8,16}$/;	if (!filter.exec(str)) return false;		return true;}/** 用途：日期比较输入：strDate1：	日期1 	  strDate2：	日期2返回： */function compareDate(strDate1, strDate2) {	var nStart1;	var nEnd1;	var nYear1;	var nMonth1;	var nDay1;	var nStart2;	var nEnd2;	var nYear2;	var nMonth2;	var nDay2;	strDate1 = cTrim(strDate1, 0);	strDate2 = cTrim(strDate2, 0);	if ((nStart1 = strDate1.indexOf("/", 0)) < 0) {		nStart1 = strDate1.indexOf("-", 0);		nEnd1 = strDate1.indexOf("-", nStart1 + 1);	} else {		nEnd1 = strDate1.indexOf("/", nStart1 + 1);	}	nYear1 = eval(strDate1.substring(0, nStart1));	nMonth1 = eval(strDate1.substring(nStart1 + 1, nEnd1));	nDay1 = eval(strDate1.substring(nEnd1 + 1, strDate1.length));	if ((nStart2 = strDate2.indexOf("/", 0)) < 0) {		nStart2 = strDate2.indexOf("-", 0);		nEnd2 = strDate2.indexOf("-", nStart2 + 1);	} else {		nEnd2 = strDate2.indexOf("/", nStart2 + 1);	}	nYear2 = eval(strDate2.substring(0, nStart2));	nMonth2 = eval(strDate2.substring(nStart2 + 1, nEnd2));	nDay2 = eval(strDate2.substring(nEnd2 + 1, strDate2.length));	if (nYear1 > nYear2) {		return (1);	} else {		if (nYear1 < nYear2) {			return (-1);		} else {			if (nMonth1 > nMonth2) {				return (1);			} else {				if (nMonth1 < nMonth2) {					return (-1);				} else {					if (nDay1 > nDay2) {						return (1);					} else {						if (nDay1 < nDay2) {							return (-1);						} else {							return (-1);						}					}				}			}		}	}}/**	*功能：	日期选项（年）*参数：	obj：		表单的名称*		starYear：	起始日期*		endYear：	结束日期*返回：	返回被选中的数目*/function writeYears(obj, starYear, endYear){	var date = new Date();		if(typeof(obj) == 'undefined' || obj == null)		return;	if(typeof(starYear) == 'undefined' || starYear == null)		starYear = 	date.getFullYear();	if(endYear == null || typeof(endYear) == 'undefined')		endYear = starYear + 10;	obj.options.length = 0;	var optEmpty = document.createElement("option")	optEmpty.text = "年";	optEmpty.value = "";	obj.add(optEmpty);	for (var i = starYear; i <= endYear; i++)	{		var opt = document.createElement("option")		opt.text = opt.value = i		obj.add(opt)	}}/**	*功能：	日期选项（月）*参数：	obj：			表单的名称*		selectedYear：	选中的年*返回：	返回被选中的数目*/function writeMonths(obj, selectedYear){	if(typeof(obj) == 'undefined' || obj == null)		return;	if(typeof(selectedYear) == 'undefined' || selectedYear == null)		selectedYear = 0;	var date = new Date();    var currYear = date.getFullYear();    var currMonth = date.getMonth() + 1;	obj.options.length = 0;	var optEmpty = document.createElement("option")	optEmpty.text = "月";	optEmpty.value = "";	obj.add(optEmpty);	if (selectedYear == currYear) {        for (var i = 1; i <= currMonth; i++) {			var opt = document.createElement("option")			opt.text = opt.value = Math.floor(i/10) ? i : "0"+i			obj.add(opt)        }    }    else {        for (var i = 1; i <= 12; i++) {           var opt = document.createElement("option")			opt.text = opt.value = Math.floor(i/10) ? i : "0"+i			obj.add(opt)        }    }}/**	*功能：	日期选项（日）*参数：	obj：			表单的名称*		selectedYear：	选中的年*		selectedMonth：	选中的月*返回：	返回被选中的数目*/function writeDate(obj, selectedYear, selectedMonth){	var date = new Date();    var currYear = date.getFullYear();    var currMonth = date.getMonth() + 1;    var currDay = date.getDate();    obj.options.length = 0;	var optEmpty = document.createElement("option")	optEmpty.text = "日";	optEmpty.value = "";	obj.add(optEmpty);       if (selectedYear == currYear && selectedMonth == currMonth) {        var tempDate = new Date(currYear, currMonth, 0);        for (var i = 1; i <= currDay; i++) {            var opt = document.createElement("option")			opt.text = opt.value = Math.floor(i/10) ? i : "0"+i			obj.add(opt)        }    }    else {        var tempDate = new Date(selectedYear, selectedMonth, 0);        var days = tempDate.getDate();        for (var i = 1; i <= days; i++) {            var opt = document.createElement("option")			opt.text = opt.value = Math.floor(i/10) ? i : "0"+i			obj.add(opt)        }    }}// 비밀번호가 사용자 ID를 포함하는지 여부를 판단function isContainId(pwd) {    var form    = document.login;    var checkId = form.user_id.value;    var index   = pwd.indexOf(checkId);    if (index == -1) {        return false;    } else {        return true;    }}// 비밀번호가 동일한 문자가 4회 이상 반복되는지 여부를 판단function isContainEquivalentChar(pwd) {    var len = pwd.length;    ch = new Array;    for (var i=0; i<len; i++) {        var c = pwd.charAt(i);        ch[i % 4] = c;        if ((i > 1) && (ch[0] == ch[1]) && (ch[0] == ch[2]) && (ch[0] == ch[3])) {            return true;        }    }    return false;}// 비밀번호가 연속되는 문자가 4회 이상인지 여부를 판단function isContainSequentialChar(pwd) {    var len = pwd.length;    for (var i=0; i<len-3; i++) {        if ((isNextChar(pwd, i) && isNextChar(pwd, i+1) && isNextChar(pwd, i+2)) || (isPreviousChar(pwd, i) && isPreviousChar(pwd, i+1) && isPreviousChar(pwd, i+2)))        return true;    }    return false;}function isNextChar(str, pos) {  var code1 = str.charAt(pos).charCodeAt(0);  var code2 = str.charAt(pos + 1).charCodeAt(0);  if (code1 == (code2 - 1))    return true;  else    return false;}function isPreviousChar(str, pos) {  var code1 = str.charAt(pos).charCodeAt(0);  var code2 = str.charAt(pos + 1).charCodeAt(0);  if (code1 == (code2 + 1))    return true;  else    return false;}// 비밀번호가 영문자와 숫자의 조합인지 여부를 판단function isContainAlpaNum(pwd) {    var len    = pwd.length;    var str    = false;    var number = false;    for (var i=0; i<len; i++) {        var c = pwd.substring(i, i+1).charAt(0);        if (c<48 || c>57) {// 문자인 경우            number = true;        } else {// 숫자인 경우            str = true;        }    }    if (str == true && number == true) {        return false;    } else {        return true;    }}