function isBetween (val,lo,hi) {
	if ((val<lo)||(val>hi)) 
	{
		return(false);
	}
	else {
		 return(true);
	}
}


function isTime(theStr) {
	var colonDex=theStr.indexOf(':');
	if ((colonDex<1)||(colonDex>2))
	{
		return(false);
	}
	else {
		var hh=theStr.substring(0,colonDex);
		var ss=theStr.substring(colonDex+1,theStr.length);
	if ((hh.length<1)||(hh.length>2)||(!isInt(hh)))
	{
		return(false);
	}
	else if ((ss.length<1)||(ss.length>2)||(!isInt(ss)))
	{
		return(false);
	}
	else if ((!isBetween(hh,0,23))||(!isBetween(ss,0,59)))
	{
		return(false);
	}
	else {return(true);}
	}
}
function isDigit(theNum) {
	//String theMask='0123456789';
	if (isEmpty(theNum))
	{
		return(false);
	}
	else if (theNum>="0"&&theNum<="9")
	{
		return(true);
	}else{
		return(false);
	}
}
function isChar(theNum) {
	if (isEmpty(theNum))
	{
		return(false);
	}
	else if ((theNum>="A"&&theNum<="Z")||(theNum>="a"&&theNum<="z"))
	{
		return(true);
	}else{
		return(false);
	}
}
function isEmail(theStr) {
	var atIndex=theStr.indexOf('@');
	var dotIndex=theStr.indexOf('.',atIndex);
    var flag=true;
	theSub=theStr.substring(0,dotIndex+1);
	if ((atIndex<1)||(atIndex!=theStr.lastIndexOf('@'))||(dotIndex<atIndex+2)||(theStr.length<=theSub.length))
	{
		flag=true;
	}
	else { flag=false; }
	return(flag);
}
function isEmpty(str) {
	if ((str==null)||(str.length==0))
	{
		return(true);
	}
	else { return(false) };
}
function isInt(theStr) {
	var flag=true;
	if (isEmpty(theStr))
	{
		flag=false;
	}
	else {
		for (var i=0;i<theStr.length;i++)
		{
	      if (isDigit(theStr.substring(i,i+1))==false)
	      {
			  flag=false;
			  break;
	      }	
		}
	}
	return(flag);
}

function isLegalChar(theStr) {
	var flag=true;
	if (isEmpty(theStr))
	{
		flag=false;
	}
	else {
		for (var i=0;i<theStr.length;i++)
		{
	      if (isDigit(theStr.substring(i,i+1))==false&&isChar(theStr.substring(i,i+1))==false)
	      {
			  flag=false;
			  break;
	      }	
		}
	}
	return(flag);
}


function IsNum( numstr ) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;

	var isValid = true;
	var decCount = 0;		

	numstr += "";	

	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == ".")
			decCount++;

    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
				(numstr.charAt(i) == "-") || (numstr.charAt(i) == "."))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "-" && i != 0) ||
				(numstr.charAt(i) == "." && numstr.length == 1) ||
			  (numstr.charAt(i) == "." && decCount > 1)) {
       	isValid = false;
       	break;
      }         	         	       
   } // END for   
   
   	return isValid;
}  // end IsNum
/*====================================================================== */
function IsInteger( numstr ) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;

	var isValid = true;
	var decCount = 0;		

	numstr += "";	

	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == "."){
       	isValid = false;
       	break;
      }

    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") )) {
       	isValid = false;
       	break;
		} 
        if ((numstr.charAt(i) == "0" && i == 0 && numstr.length>1) ) {
       	isValid = false;
       	break;
      }         	         	       
   } // END for   
   
   return isValid;
}  // end IsInteger
/*====================================================================== */
function IsLegalReal( numstr ) {
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;

	var isValid = true;
	var decCount = 0;		// number of decimal points in the string

	numstr += "";	

	for (i = 0; i < numstr.length; i++) {
		if (numstr.charAt(i) == ".")
			decCount++;

    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9") || 
			(numstr.charAt(i) == "."))) {
       	isValid = false;
       	break;
		} else if ((numstr.charAt(i) == "." && i == 0) ||
				(numstr.charAt(i) == "." && numstr.length == 1) ||
			  (numstr.charAt(i) == "." && decCount > 1)) {
       	isValid = false;
       	break;
      }         	         	       
   } // END for   
   
   	return isValid;
}  // end IsLegalReal
/*====================================================================== */
function IsYear( numstr ) {
	var curr_date,curr_year;
	if (numstr+"" == "undefined" || numstr+"" == "null" || numstr+"" == "")	
		return false;
	var isValid = true;
	var decCount = 0;		// number of decimal points in the string
   if ( numstr.length!=4 ) 
		return false;
	numstr += "";	
	for (i = 0; i < numstr.length; i++) {
    	if (!((numstr.charAt(i) >= "0") && (numstr.charAt(i) <= "9"))) {
       	isValid = false;
       	break;
		}     	         	       
   } // END for   
   curr_date=new Date();
   curr_year=curr_date.getYear();
   if ( curr_year<numstr ) {
   	isValid= false;
	}
   	return isValid;
}  // end IsYear
/*====================================================================== */
function numberOfDays( month,year ) {
	var numDays=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	n=numDays[month-1];
	if(month==2&&year%4==0)++n;
	return n;
}  // end numberOfDays

/* ======================================================================
====================================================================== */
function IsLegalDate( Yearstr,Monthstr,Daystr ) {
	// 是否为合适的实数，即.1为非法，排斥负数
	if ( !IsYear(Yearstr)||!IsInteger(Monthstr)||!IsInteger(Daystr)) 
		return false;
	var isValid = true;
   var numDays=numberOfDays(Monthstr,Yearstr);
	if (Daystr>numDays)	
		return isValid =false;
   return isValid;
}  // end IsLegalDate

//判断输入的日期格式是否合法；一般针对出生日期；
function IsDate(strDate){
	var isValid=true;
	var stryear="",strmonth="",strday="";
	var intyear=0,intmonth=0,intday=0;
	stryear=strDate.substring(0,4);
	if (!isInt(stryear))
	{
		isValid=false;
		return isValid;
	}
	intyear=parseInt(stryear);
	strmonth=strDate.substring(5,7);
	if (!isInt(strmonth))
	{
		isValid=false;
		return isValid;
	}
	intmonth=parseInt(strmonth);
	strday=strDate.substring(8,10);
	if (!isInt(strday))
	{
		isValid=false;
		return isValid;
	}
	intday=parseInt(strday);
	if(intyear<1900||intmonth>12||intday>31)
		isValid=false;
	return isValid;
}