//函数名：chkspc
//功能介绍：检查是否含有空格
//参数说明：要检查的字符串
//返回值：0：是  -1：不是
function checkSpc( InputString )
{
	var i=InputString.length;
	var j = 0;
	var k = 0;
	
	for( var i=0; i<InputString.length; i++ ){
		if( InputString.charAt(i) == " " ){
			return -1;
		}
	}
	
	return 0;
}

//函数名：checkEmail
//功能介绍：检查是否为Email Address
//参数说明：要检查的字符串
//返回值：0：是  -1：不是
function checkEmail(email)
{
	var i=email.length;
 	var temp = a.indexOf('@');
 	var tempd = a.indexOf('.');
 	if (temp > 1) {
  		if ((i-temp) > 3){

    		if ((i-tempd)>0){
     			return 0;
    		}
  		}
 	}
 	
 	return -1;
}

//函数名：checkLength
//功能介绍：检查字符串的长度
//参数说明：要检查的字符串
//返回值：长度值
function checkLength(str)
{
 	var i,sum;
 	sum=0;
 	
 	for(i=0;i<str.length;i++){
 		//alert( str.charCodeAt(i) );
  		if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255))
   			sum=sum+1;
  		else
   			sum=sum+2;
 	}
 	
 	return sum;
}

//函数名：checkCharIsGBK
//功能介绍：检查字符串是否含有中文
//参数说明：要检查的字符串
//返回值：1为含有中文，0为不含中文
function checkCharIsGBK(str)
{
 	var i,sum;
 	sum=0;
 	
 	for(i=0;i<str.length;i++){
 		//alert( str.charCodeAt(i) );
  		if (str.charCodeAt(i)>255)
			return 1 ;
 	}
 	
 	return 0;
}

/*

==================================================================

LTrim(string):去除左边的空格

==================================================================

*/

function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;

        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }

        s = s.substring(j, i);
    }

    return s;
}



/*

==================================================================

RTrim(string):去除右边的空格

==================================================================

*/

function RTrim(str)

{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;

        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }

        s = s.substring(0, i+1);
    }

    return s;
}



/*

==================================================================

Trim(string):去除前后空格

==================================================================

*/

function Trim(str)
{
    return RTrim(LTrim(str))+'';
}

function trim(str){
	return RTrim(LTrim(str))+'';
}

/*

================================================================================

验证类函数

================================================================================

*/



function IsEmpty(obj)
{
    obj=document.getElementsByName(obj).item(0);

    if(Trim(obj.value)=="")
    {
        alert("字段不能为空。");
        if(obj.disabled==false && obj.readOnly==false)
        {
            obj.focus();
        }
    }
}

/*

IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)

功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0

*/

function IsInt(objStr,sign,zero)
{
    var reg;
    var bolzero;

    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign)
    {
        case "+-":
            //整数
            reg=/(^-?|^\+?)\d+$/;
            break;

        case "+":
            if(!bolzero)
            {
                //正整数
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //正整数+0
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }

            break;

        case "-":
            if(!bolzero)
            {
                //负整数
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }

            else
            {
                //负整数+0
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }

            break;

        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function checkIntNUM( obj ){
	obj=document.getElementsByName(obj).item(0);
	var objStr = Trim(obj.value);
	//alert( objStr );
	var flag = IsInt(objStr);

	if( flag == false ){
		alert("请输入[0-9]的数字。");
        if(obj.disabled==false && obj.readOnly==false)
        {
        	obj.value = "";
            obj.focus();
        }
	}
}

/*

IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)

功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0

*/

function IsFloat(objStr,sign,zero)
{
    var reg;
    var bolzero;

    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }

    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }

    switch(sign)
    {
        case "+-":
            //浮点数
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;

        case "+":
            if(!bolzero)
            {
                //正浮点数
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //正浮点数+0
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;

        case "-":
            if(!bolzero)
            {
                //负浮点数
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //负浮点数+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }
            break;

        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }

    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function checkFloatNUM( obj ){
	obj=document.getElementsByName(obj).item(0);
	var objStr = Trim(obj.value);
	//alert( objStr );
	var flag = IsFloat(objStr);

	if( flag == false ){
		alert("请输入数字。");
        if(obj.disabled==false && obj.readOnly==false)
        {
        	obj.value = "";
            obj.focus();
        }
	}
}

/*
      函数功能：判断值是否是合法的时间格式hh:mi:ss
      value：待检测值
*/

function isTime(timeStr)
{
      if(timeStr!="")
      {
            var timeList = timeStr.split(":");
            if(timeList.length!=3)
            {
                  alert("时间格式不合法，正确的时间格式为hh:mi:ss");
                  return false;
            }

            //检查小时
            var hour = parseInt(timeList[0],10);
            if(timeList[0].length>2)
            {
                  alert("小时长度不可大于2");
                  return false;
            }
            if(isNaN(hour))
            {
                  alert("小时中包含非法字符");
                  return false;
            }else if(hour<0||hour>23)
            {
                  alert("小时应在0与23之间");
                  return false;
            }
            //检查分钟
            var minute = parseInt(timeList[1],10);
            if(timeList[1].length>2)
            {
                  alert("分钟长度不可大于2");
                  return false;
            }
            if(isNaN(minute))
            {
                  alert("分钟中包含非法字符");
                  return false;
            }else if(minute<0||minute>59)
            {
                  alert("分钟应在0与59之间");
                  return false;
            }

            //检查秒
            var second = parseInt(timeList[2],10);
            /*
            if(timeList[2].length>2)
            {
                  alert("秒长度不可大于2");
                  return false;
            }
            */
            if(isNaN(second))
            {
                  alert("秒中包含非法字符");
                  return false;
            }else if(second<0||second>59)
            {
                  alert("秒应在0与59之间");
                  return false;
            }
      }
      return true;
}

function isDate( dateStr ){
	if(dateStr!="")
	{
		var dateList = dateStr.split("-" );
		
		if( dateList.length != 3 ){
			alert("错误的日期时间格式，请按照yyyy-mm-dd的格式输入！");
			return false;
		}
		
		//检查年份
		var year = parseInt(dateList[0],10);
		if(dateList[0].length!=4)
		{
			alert("年份长度必须为4");
			return false;
		}
		if(isNaN(year))
		{
			alert("年份中包含非法字符");
			return false;
		}else if(year<1900)
		{
			alert("年份应大于1900");
			return false;
		}else if(year>9999)
		{
			alert("年份应小于9999");
			return false;
		}
		
		//检查月份
			
		var month = parseInt(dateList[1],10);
		if(dateList[1].length>2)
		{
			alert("月份长度不可大于2");
			return false;
		}
		if(isNaN(month))
		{
			alert("月份中包含非法字符");
			return false;
		}else if(month<1||month>12)
		{
			alert("月份应在1与12之间");
			return false;
		}
		//检查日份
		var day = parseInt(dateList[2],10);
		if(dateList[2].length>2)
		{
			alert("日期长度不可大于2");
			return false;
		}
		var maxDayOfMonth = 30;
		switch(month)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
			{
				maxDayOfMonth = 31;
				break;
			}
			case 4:
			case 6:
			case 9:
			case 11:
			{
				maxDayOfMonth = 30;
				break;
			}
			case 2:
			{
				if((year % 4)==0)
				{
					maxDayOfMonth = 29;
				}else
				{
					maxDayOfMonth = 28;
				}
				break;
			}
		}
		if(isNaN(day))
		{
			alert("日期中包含非法字符");
			return false;
		}else if(day<1||day>maxDayOfMonth)
		{
			alert("日期应在1与"+maxDayOfMonth+"之间");
			return false;
		}
	}
	return true;
}

function IsDate( dateStr ){
	
	if(dateStr!="")
	{
		var dateTimeList = dateStr.split(" ");
		var dateStr = "";
		var timeStr = "";
		if(dateTimeList.length==1)
		{
			dateStr = dateTimeList[0];
		}else if(dateTimeList.length==2)
		{
			dateStr = dateTimeList[0];
			timeStr = dateTimeList[1];
		}else
		{
			alert("错误的日期时间格式，请按照yyyy-mm-dd hh:mi:ss的格式输入！");
			return false;
		}
		//alert("date:"+dateStr);
		//alert("time:"+timeStr);
		if(isDate(dateStr)==false)return false;
		if(isTime(timeStr)==false)return false;
	}
	return true;
}

/***********************************************
//函数名：InitVOWebToScript
//功能介绍：将JavaBean中的数据赋给JavaScriptVO
//参数说明：
	scriptVOStr ：scriptVO的对象名字，是字符串
	len :					JavaBean的链表长度
	beanStr : 		JavaBean的名字，是字符串
//返回值：揶
***********************************************/
function InitVOWebToScript(scriptVOStr,len,beanStr){
	if( arguments.length != 3 ){
			alert( '函数调用错误！请用function_name(str,int,str)' );
			return;
	}
	len = parseInt(len) ;
	var scriptVO ;
	scriptVO = eval(scriptVOStr) ;
	var SetList = scriptVO.funcNameSetList() ;
	var GetList = scriptVO.funcNameGetList() ;
	for(var i=0; i<len; i++){
		for(var j=0; j<SetList.length; j++){
			eval(scriptVOStr + SetList[j] + "('<%=" + beanStr + GetList[j] + "(" + i + ")%>')") ;
		}
		eval(scriptVOStr + ".add()") ;
	}
}

/***********************************************
//函数名：ASSERT
//功能介绍：进行断言处理
//参数说明：
	condition ：断言条件
	strMeg :		出错信息
//返回值：condition为true，程序继续运行
					condition为false，打印出错信息strMeg，程序终止运行
***********************************************/
function ASSERT(condition,strMeg){
	if( arguments.length != 1 && arguments.length != 2 ){
			alert( 'ASSERT函数调用错误！请用function_name(boolean,str)' );
			return false ;
	}
	if(!condition){
			alert("ASSERTION FAILURE:"+strMeg) ;
			return false ;
	}else{
			return true ;
	}
}

/*
function hidemenu(){
	return false;
}
document.oncontextmenu=hidemenu;
*/
