function trimString(str)
{
  var i,j;

  if(str == "") return "";

  for(i=0;i<str.length;i++)
    if(str.charAt(i) != ' ') break;
  if(i >= str.length) return "";

  for(j=str.length-1;j>=0;j--)
    if(str.charAt(j) != ' ') break;

  return str.substring(i,j+1);
}

function checknumber(str)
{
    var reg = /^[0-9]*$/;
    return (reg.test(str));
}


function checkzip(str)
{
    var zipstr = "0123456789";
	var i;
	if(str.length!=6)return true;
	for(i=0;i<str.length;i++){
		if(zipstr.indexOf(str.charAt(i))==-1){
			return true;
		}
	}
    return false;
}

function checkMail(email)
{
	var pattern = /\S+@\S+/;
	return pattern.test(email);
}

function checkuserchar(str){
	var valuechar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
	var i;
	for(i=0;i<str.length;i++){
		if(valuechar.indexOf(str.charAt(i))==-1){
			return true;
		}
	}
	return false;
}
function checkphone(str){
	var valuechar = "0123456789-";
	var i;
	for(i=0;i<str.length;i++){
		if(valuechar.indexOf(str.charAt(i))==-1){
			return true;
		}
	}
	return false;
}
function checkchar(str){
	var valuechar = "'<>%";
	var i;
	for(i=0;i<str.length;i++){
		if(valuechar.indexOf(str.charAt(i))!=-1){
			return true;
		}
	}
	return false;
}

function check_date( year, mon, day )
{
	var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if(year < 1920 || year > 2050)
		return false;
	if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) 
	   monthDays[1]=29;
	if(!checknumber(year) || !checknumber(mon) || !checknumber(day) || mon<1 || mon>12 || day>monthDays[mon-1]) 
	   return false;
	return true;
}

	//函数名：CheckDate
	//功能介绍：检查是否为日期
	//参数说明：要检查的字符串
	//返回值：0：不是日期  1：是日期
	function CheckDate(datestr)
	{
		var lthdatestr
		if (datestr != "")
			lthdatestr= datestr.length ;
		else
			lthdatestr=0;
			
		var tmpy="";
		var tmpm="";
		var tmpd="";
		//var datestr;
		var status;
		status=0;
		if ( lthdatestr== 0)
			return 0
	
		
		for (i=0;i<lthdatestr;i++)
		{	if (datestr.charAt(i)== '-')
			{
				status++;
			}
			if (status>2)
			{
				//alert("Invalid format of date!");
				return 0;
			}
			if ((status==0) && (datestr.charAt(i)!='-'))
			{
				tmpy=tmpy+datestr.charAt(i)
			}
			if ((status==1) && (datestr.charAt(i)!='-'))
			{
				tmpm=tmpm+datestr.charAt(i)
			}
			if ((status==2) && (datestr.charAt(i)!='-'))
			{
				tmpd=tmpd+datestr.charAt(i)
			}
	
		}
		year=new String (tmpy);
		month=new String (tmpm);
		day=new String (tmpd)
		//tempdate= new String (year+month+day);
		//alert(tempdate);
		if (((tmpy.length!=4) && (tmpy.length!=2)) || (tmpm.length>2) || (tmpd.length>2))
		{
			//alert("Invalid format of date!");
			return 0;
		}
		if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
		{
			//alert ("Invalid month or day!");
			return 0;
		}
		if (!((year % 4)==0) && (month==2) && (day==29))
		{
			//alert ("This is not a leap year!");
			return 0;
		}
		if ((month<=7) && ((month % 2)==0) && (day>=31))
		{
			//alert ("This month is a small month!");
			return 0;
		
		}
		if ((month>=8) && ((month % 2)==1) && (day>=31))
		{
			//alert ("This month is a small month!");
			return 0;
		}
		if ((month==2) && (day==30))
		{
			//alert("The Febryary never has this day!");
			return 0;
		}
		
		return 1;
	}
	function validateCnsUrl(cns_url)
	{
	  var i;
	  var invalidcharlist = new Array();
	  invalidcharlist[0] = "'";
	  invalidcharlist[1] = '"';
	
	  if(cns_url == "") return 1;  // cns_url can not be empty
	  if(cns_url == "http://") return 0;
	  cns_url = cns_url.toLowerCase();
	  i = cns_url.indexOf("http://");
	  if(i==-1) return 2;
	  if(i!=0) return 3;
	  if(cns_url.length<8) return 4;
	  if( -1 == cns_url.indexOf(".")) return 3;
	  if(0 < cns_url.indexOf("@")) return 5 ;
	  for( var j=0; j<invalidcharlist.length; j++ )
	  {
	  	if(0 < cns_url.indexOf(invalidcharlist[j])) return 6 ;
	  }
	  if(cns_url.length == cns_url.indexOf(".")+1) return 3; 
	  return 0;
	}
	
	function trimEnter(str)
	{
		//由于只判断到第一个和最后一个字符所以不用区分汉字和英文
		if("%0D%0A"==escape(str)) return ""; //"%0D%0A": 回车
		
		for(i=0;i<str.length;i++)
		{
			if("%0D"!=escape(str.charAt(i)))
				break;
			else
				if((i+1) < str.length)					
					if("%0A"==escape(str.charAt(i+1)))
						i++;
		}
		if(i >= str.length) return "";
		
		for(j=str.length-1;j>=0;j--)
		{
			if("%0A"!=escape(str.charAt(j)))
				break;
			else
				if((j-1)>=0)
					if("%0D"==escape(str.charAt(j-1)))
						j--;
		}
		
		return str.substring(i,j+1);
	}
	//get char or Chinese length
	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 ;
	}
	//check trim invalid char or Chinese
	function trimInvalidChar(str)
	{
		str = trimString(str);
		str = trimEnter(str);
		
		if(str.length > 0)
		{
			if(" "==str.charAt(0) || "%0D"==escape(str.charAt(0)))
			{
				return trimInvalidChar(str);
			}
			if(" "==str.charAt(str.length-1) || "%0A"==escape(str.charAt(str.length-1)))
			{
				return trimInvalidChar(str);
			}
			return str;			
		}
		return "";
	}
//----------------------------------------- add by ty on 2003-6-30 16:55 end -------------------------------------------//
//----------------------------------------------------------------------------------------------------------------------//
//---------------------------------------- add by ty on 2003-6-30 14:47 start ------------------------------------------//
//----------------------------------------------- input order check ----------------------------------------------------//

    function chkdate( frm )
    {
    	sy = trimString( frm.StartYear.value );
    	sm = trimString( frm.StartMonth.value );
    	sd = trimString( frm.StartDay.value );
    	ey = trimString( frm.EndYear.value );
    	em = trimString( frm.EndMonth.value );
    	ed = trimString( frm.EndDay.value );
    	
    	sDate = "" + sy + "-" + sm + "-" + sd;
    	eDate = "" + ey + "-" + em + "-" + ed;
    	
    	if( 0==CheckDate(sDate) || 0==CheckDate(eDate) )
    	{
    		alert("选择的日期值超出日期范围！");
    		return false;
    	}
    	
    	ret = IsStartDataSmallEndDate( sy, sm, sd, ey, em, ed );
    	
    	if( ret )
    	{
	    	return true;
    	}
    	alert("起始日期晚与截至日期！");
    	
    	return false;
    }