/*
本脚本函数文件提供在客户端进行用户输入检测的所有函数。
比如检查是否合法的正整数，日期，电子邮件地址，邮政编码等等。
*/

//功能:检查不能为空的项
//为空则返回strErr错误信息，否则返回空串
//参数:ctlName为控件名(document.all.txtName)，strErr为错误信息
function CheckNotAllowNull(ctlName,strErr)
{
	ctlName.value = JTrim(ctlName.value);
	if (ctlName.value == "")
	{
		return strErr;
	}
	else
	{
		return "";
	}
}

//功能:	检查是否是合法年份
//注意: 
//参数: n 待检测的值
//返回：合法返回true，不合法返回false 
function chkYear(n)
{
	var b = false;	
	if (chkNumber(n))
	{
		if (Number(n) >= 1900 && Number(n) <= 2079)
			b = true;
	}
	return b;
}

//功能:	检查是否是合法的数值（包括正负数、小数等）
//注意: 
//参数: n 待检测的值
//返回：合法返回true，不合法返回false 
function chkFloat(n)
{
	var re,tmp
	re = true;
	try
	{
		tmp = Number(n);
		if (isNaN(tmp))
		{
			re = false;
		}
	}
	catch(e)
	{
		re = false;
	}
	return re;
}

//功能:	检查是否是正整数
//注意: 
//参数: n 待检测的值
//返回：合法返回true，不合法返回false 
function chkPlusInt(n)
{
	var re
	re = new RegExp("^[0-9]+$","g");
	return re.test(n);

}
//功能:	检查输入的的字符是否为数字符字母和下划线
//注意: 
//参数: n 待检测的值
//返回：合法返回true，不合法返回false 
function chkCharNum(n)
{
	var re;
	re = new RegExp("^[0-9a-zA-Z_]+$","g");
	return re.test(n);
}

//功能:	检查是否合法的Email地址
//注意: 
//参数: strEmail 待检测的值
//返回：合法返回true，不合法返回false 
function chkEmail(strEmail)
{
	var re;
	re = new RegExp("(^([_.0-9a-z-])+)@{1}(([0-9a-z][0-9a-z-]+.)+)([a-z]{2,3}$)","i");

	return re.test(strEmail);
}

//功能:	检查是否合法的邮政编码
//注意: 
//参数: nPostCode 待检测的值
//返回：合法返回true，不合法返回false 
function chkPostCode(nPostCode)
{
	var b;
	b = true;
	//首先检测是否数字
	b = b && chkNumber(nPostCode);
	//然后检测长度
	b = b && (nPostCode.length == 6);
	return b;
}

//功能:	实现跳转页面时的客户端检测
//注意: 
//参数: txtPageNum:text元素，用来记录跳转的页数
//参数: nPageCount:数值，用来记录当前表的总页数
//返回： 一个布尔值，合法返回true，不合法返回false 
function checkPageNum(txtPageNum,nPageCount)
{
	var nPage = JTrim(txtPageNum.value);
	
	if (nPage == "")
	{
		alert("您还没有输入页码！");
		txtPageNum.select();
		return false;
	}
	if (chkNumber(nPage) == false)
	{
		alert("对不起，页码只能是正整数！");
		txtPageNum.select();
		return false;
	}
	
	if ( nPage <= 0 || Number(nPage) > Number(nPageCount) )
	{
		alert("对不起，您输入的页码范围不正确，请重新输入！");
		txtPageNum.select();
		return false;
	}
	return true;
}

//功能:	检查用户输入的用户名和角色名是否包含（, ' " ;）,
//      并除去两边空格。
//注意：参数为空返回false;
//参数: objTxt:要检查的text对象
//返回：包含返回--false,不包含返回--true;
// Creater:赵炳慧
// CreateDate:2004-03-01
function checkInvalidSymbol(objTxt)
{
	var b= true;
	if(JTrim(objTxt.value) != "")
	{
		var strTemp = new String(objTxt.value);
		
		//除去两边空格
		strTemp = JTrim(strTemp);
		objTxt.value = strTemp;
		//查找“，”
		if(strTemp.indexOf(",") != -1)
		{
			b = false;
		}
		//查找“'”
		if(strTemp.indexOf("'") != -1)
		{
			b = false;
		}
		//查找“"”
		if(strTemp.indexOf('"') != -1)
		{
			b = false;
		}
		//查找“;”
		if(strTemp.indexOf(";") != -1)
		{
			b = false;
		}
		objTxt.select();
	}
	else
	{
		b = true;
	}
	return b; 	 
}
//功能:检查并修改日期输入框中日期值
//此函数可能会改变传入元素的值，若不是合法日期，则返回False
//参数:txtDate输入的文本框 
//返回:正确或空值返回True，错误返回False
function checkDate(txtDate)
{
	if (JTrim(txtDate.value) != "")
	{
		var date1;
		var str = txtDate.value
		arrTemp = str.split("-");
		if (arrTemp.length == 3)
		{
			var y = Number(arrTemp[0]);
			if (y < 1900 || y > 2079)
			{
				return false;
			}
			var m = Number(arrTemp[1]) - 1;
			var d = Number(arrTemp[2]);
			var dtTemp = new Date(y,m,d);
			//alert(dtTemp);
			return ((dtTemp.getMonth() == m));
		}
		return false;
	}
	return true;
}
