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 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 isnumber(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 errhandel(ele,errmsg){
	alert (errmsg);
	ele.focus();
	return (false);
}
function isChinaIDCard_J(sNo){
    // add by kexin for not check start at 2001/5/9
    return true
    // add by kexin for not check end at 2001/5/9
	sNo = sNo.toString()
    if (sNo.length==18)
    {
		var a,b,c
		if (!isInteger(sNo.substr(0,17))) {return false}
		
		a=parseInt(sNo.substr(0,1))*7+parseInt(sNo.substr(1,1))*9+parseInt(sNo.substr(2,1))*10;
		a=a+parseInt(sNo.substr(3,1))*5+parseInt(sNo.substr(4,1))*8+parseInt(sNo.substr(5,1))*4;
		a=a+parseInt(sNo.substr(6,1))*2+parseInt(sNo.substr(7,1))*1+parseInt(sNo.substr(8,1))*6;	
		a=a+parseInt(sNo.substr(9,1))*3+parseInt(sNo.substr(10,1))*7+parseInt(sNo.substr(11,1))*9;	
		a=a+parseInt(sNo.substr(12,1))*10+parseInt(sNo.substr(13,1))*5+parseInt(sNo.substr(14,1))*8;	
		a=a+parseInt(sNo.substr(15,1))*4+parseInt(sNo.substr(16,1))*2;
		b=a%11;
			
		if (b==2)
		{
			c=sNo.substr(17,1).toUpperCase();
		}
		else
		{
			c=parseInt(sNo.substr(17,1));
		}
		
		switch(b)
		{
			case 0: if ( c!=1 ) {return false;}break;
			case 1: if ( c!=0 ) {return false;}break;
			case 2: if ( c!="X") {return false;}break;
			case 3: if ( c!=9 ) {return false;}break;
			case 4: if ( c!=8 ) {return false;}break;
			case 5: if ( c!=7 ) {return false;}break;
			case 6: if ( c!=6 ) {return false;}break;
			case 7: if ( c!=5 ) {return false;}break;
			case 8: if ( c!=4 ) {return false;}break;
			case 9: if ( c!=3 ) {return false;}break;
			case 10: if ( c!=2 ){return false}
		}
	}
	else
	{
		if (!isInteger(sNo)) {return false}	
	}
		
	switch(sNo.length){
		case 15: if (isValidDate(sNo.substr(6,2),sNo.substr(8,2),sNo.substr(10,2))) {return true}
		case 18: if (isValidDate(sNo.substr(6,4),sNo.substr(10,2),sNo.substr(12,2))) {return true}
		}
	return false
}
