function JHshStrLen(sString){
	var sStr,iCount,i,strTemp ;
	iCount = 0 ;
	sStr = sString.split("");
	for (i = 0 ; i < sStr.length ; i ++){
		strTemp = escape(sStr[i]);
		if (strTemp.indexOf("%u",0) == -1){ 	 // 表示是汉字
			iCount = iCount + 1 ;
		}else{
			iCount = iCount + 2 ;
		}
	}
	return iCount ;
}
function is_en_int_number(snumber){
	var checkOK = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
	var checkStr = snumber;
	var allValid = true;
	var obj;
	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){
			return (false);
		}
	}
	return (true);
}

function is_en_intnum_chinese(sString){
	var sStr,i,strTemp ;
	sStr = sString.split("");
	for (i = 0 ; i < sStr.length ; i ++){
		strTemp = escape(sStr[i]);
//		alert (strTemp)
		if (strTemp.indexOf("%u",0) == -1){		// 如果不是汉字
			if (!is_en_int_number(strTemp)){	//如果也不是英文或数字
				return (false);
			}
		}
	}
	return (true);
}

function if_inc_02(checkitem){
	if ((checkitem.indexOf('　',0)!==-1) || (checkitem.indexOf(' ',0)!==-1) || (checkitem.indexOf('\'',0)!==-1) || (checkitem.indexOf('\"',0)!==-1) || (checkitem.indexOf('\!',0)!==-1) || (checkitem.indexOf('\@',0)!==-1) || (checkitem.indexOf('\#',0)!==-1) || (checkitem.indexOf('\$',0)!==-1) || (checkitem.indexOf('\%',0)!==-1) || (checkitem.indexOf('\^',0)!==-1) || (checkitem.indexOf('\&',0)!==-1) || (checkitem.indexOf('\*',0)!==-1) || (checkitem.indexOf('\(',0)!==-1) || (checkitem.indexOf('\)',0)!==-1) || (checkitem.indexOf('\+',0)!==-1) || (checkitem.indexOf('\=',0)!==-1) || (checkitem.indexOf('\\',0)!==-1) || (checkitem.indexOf('\|',0)!==-1) || (checkitem.indexOf('\:',0)!==-1) || (checkitem.indexOf('\;',0)!==-1) || (checkitem.indexOf('\<',0)!==-1) || (checkitem.indexOf('\>',0)!==-1) || (checkitem.indexOf('\?',0)!==-1) || (checkitem.indexOf('\/',0)!==-1) || (checkitem.indexOf('\,',0)!==-1) || (checkitem.indexOf('\.',0)!==-1)){
		return (false);
	}
	return (true);
}
function if_inc_01(checkitem){
	if ((checkitem.indexOf(' ',0)!==-1) || (checkitem.indexOf('\'',0)!==-1) || (checkitem.indexOf('"',0)!==-1)){
		return (false);
	}
	return (true);
}

function is_int_number(snumber){
	var checkOK = "0123456789";
	var checkStr = snumber;
	var allValid = true;
	var obj;
	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){
			return (false);
		}
	}
	return (true);
}

function is_float_number(snumber){
	var checkOK = "0123456789.";
	var checkStr = snumber;
	var allValid = true;
	var obj;
	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){
			return (false);
		}
	}
	return (true);
}

function isDate(sDate) {
	var iYear, iMonth, iDay, iIndex

	var	reg
	reg = new RegExp('[^0-9-]','')
	if (sDate.search(reg) >= 0)
		return false;
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else {
		iYear = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iYear) || iYear < 1900 || iYear > 2099 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex == -1 )
		return false;
	else {
		iMonth = parseFloat(sDate.substr(0, iIndex));
		if ( isNaN(iMonth) || iMonth < 1 || iMonth > 12 )
			return false;
		else
			sDate = sDate.substring(iIndex + 1, sDate.length);
	}
	
	iIndex = sDate.indexOf('-');
	if ( iIndex >= 0 )
		return false;
	else {
		iDay = parseFloat(sDate);
		if ( isNaN(iDay) || iDay < 1 || iDay > 31 )
			return false;
	}
	
	
	switch(iMonth) {
		case 4:
		case 6:
		case 9:
		case 11:
			if ( iDay > 30 )
				return false;
			else
				break;
		case 2:
			if ( ( ( iYear % 4 == 0 && iYear % 100 != 0 ) || iYear % 400 == 0 ) && iDay > 29 )
				return false;
			else if ( (iYear % 4 != 0 || (iYear % 100 == 0 && iYear % 400 != 0)) && iDay > 28 )
				return false;
			else
				break;
		default:
	}
	return true;
}

function isDateString(sDate){
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day

	if (arguments.length != 1) return false
	iaDate = sDate.toString().split("-")
	if (iaDate.length != 3) return false
	if (iaDate[1].length > 2 || iaDate[2].length > 2) return false

	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day=parseFloat(iaDate[2])

	if (year < 1900 || year > 2100) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
}

function stringToDate(sDate, bIgnore){
	var bValidDate, year, month, day
	var iaDate = new Array(3)
	
	if (bIgnore) bValidDate = true
	else bValidDate = isDateString(sDate)
	
	if (bValidDate)
	{  iaDate = sDate.toString().split("-")
		year = parseFloat(iaDate[0])
		month = parseFloat(iaDate[1]) - 1
		day=parseFloat(iaDate[2])
		return (new Date(year,month,day))
	}
	else return (new Date(1900,1,1))
}

function isDate1(strDate){
	var dDate = new Date(strDate);
	if (dDate == "NaN"){
		return (false);
	}
	return (true);
}

function trim(str) {
	var i=0;
	var j=str.length;
	for (i=0; i<str.length; i++)
	if (str.charAt(i)!=' ')  break;
	for (j=str.length-1; j>=0; j--)
	if (str.charAt(j)!=' ')  break;
	if (i>j)  return "";
	return str.substring(i, j+1);
}

function isEmpty(obj) {
	obj.value = trim(obj.value);    
	if (obj.value.length <= 0)  return(true);
	return(false);
}

function errhandel(ele,errmsg){
	alert (errmsg);
	ele.focus();
	return (false);
}
