// JavaScript Document
//所有函数的调用方法见bb.htm文件}
/*
	功能：检测Email格式
				
	参数：str:控件值
				
	返回：符合格式 true 否则 false
*/
function IsEmail(objT,strEmail)
{
	var rRegExp = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	if(!rRegExp.test(strEmail)&&strEmail!="")
	{
		alert('Email 格式有误');
		objT.select();
		return false;
	}
	return true;
}
/*
	功能：检测电话格式
				
	参数：strValue:控件值
				
	返回：符合格式 true 否则 false
							0551-1245788
*/
function IsTel(objT,strValue)
{
	var rRegExp = /\d{4}-?\d{7,8}/;
	if(!rRegExp.test(strEmail))
	{
		alert('电话 格式有误');
		objT.select();
	}
}






/*
 * 函数名称 ：
 *   checkRequired
 * 功能说明 ：
 *   该项文字列输入是必要的CHECK
 * 参数 ：
 *   String      strValue      文字列  (IN)
 * 返回值 ：
 *      true  ： 正常
 *      false ： 异常
 * 备注 ：
 *   无
 */
function checkRequired(strValue) {
	if (strValue == null || strValue == "") {
		return false;
	} else {
	    return true;
	}
	
}

function getRequiredMsg(strItemName) {
	return "" + strItemName + "不能为空值。" + strItemName + "请输入正确的值。";
}

















/*
	功能：去除字符串中的首尾空格
				
	参数：str:控件值
				
	返回：去空格后的字符串
*/
String.prototype.trim=function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
/*
	功能：取得字符串长度包括中文
				
	参数：str:控件值
				
	返回：长度
*/
String.prototype.len=function()
{
	return this.replace(/[^\x00-\xff]/g,"**").length;
}
/*
	功能：是否超过预设字符串长度
				
	参数：str:控件值,intLen:控件值最大长度,objElement:检查的控件
				
	返回：没有超过长度true 否则 false
*/
function IsMaxLen(str,intLen,objElement)
{	
	if(str.len()<=intLen)
		return true
	else
	{
		alert(objElement.ChName + " 只能输入"+intLen/2+"个汉字或"+intLen+" 字符");
		objElement.focus();
		objElement.select();
		return false	
	}	
}	
/*
	功能：LTrim(去除左空格） RTrim（去除右空格） Trim（去除所有空格）
				
	参数：字符串
				
	返回：返回去除空格后的字符串
*/
function LTrim(str)
{
	var rtnStr;
	rtnStr=""
	for (var i=0;i<str.length;i++)
	{
		if (str.charAt(i)!=" ")
		{
			rtnStr=str.substr(i);
			break;
		}
	}
	return rtnStr;
}	
function RTrim(str)
{
	var rtnStr;
	rtnStr=""
	for (var i=str.length-1;i>=0;i--)
	{
		if (str.charAt(i)!=" ")
		{
			rtnStr=str.substring(0,i+1);
			break;
		}
	}
	return rtnStr;
}

function Trim(str)
{
	return(LTrim(RTrim(str)));
}	
/*
	功能：判断是否为指定类型的数字
				thisElement 接受检查的控件
	参数：
				intFlag (1、整型 2、浮点型)
	返回：true/false
*/
function checkNum(thisElement,dataCheType)
{
	if(dataCheType=="int")											//整型。可以自己设置
	{ 
		var rPattern = /^(0|([1-9]\d{0,14}))$/;	
		if(!rPattern.test(thisElement.value)) 				
		{
			alert("您在 " + thisElement.ChName + " 中只能输入整型的数据！");
			thisElement.focus();
			thisElement.select();
			return false;
		}
	}	//end Int
	else if(dataCheType=="float")											//浮点型。可以自己设置
	{
		var rPattern = /^(\-)?(0|([1-9]\d{0,14}))((\.)\d{1,4})?$/;
		if(!rPattern.test(thisElement.value))
		{
			alert("您在 " + thisElement.ChName + "  中只能输入数值型的数据！");
			thisElement.focus();
			thisElement.select();
			return false;
		}
	}//end float	
	return true;
}
/*
	功能：判断整个页面上的控件是否符合逻辑判断。
				
	参数：objForm 页面上的Form表单对象
				
	返回：true/false
*/
function checkFrm(objForm)
{
	if(objForm.length>0)
	{
		for(var i=0;i<objForm.length;i++)
		{			
			var dataCheName,dateCheType,thisElement,thisValue,isNull,objT,blnIsShow=true;
			isNull = objForm.elements[i].IsNull;							//值是否可以为空
			thisValue = objForm.elements[i].value;						//取得控件的值。
			thisElement = objForm.elements[i]									//取得控件对象
			dataCheName = objForm.elements[i].ChName;					//取得控件的CheName值用来在提示错误信息进行显示，dataCheName自己可以设置为别的名称。
			dataCheType = objForm.elements[i].DataType;				//取得控件的数据类型，DataType自己可以设置为别的名称。					
			objT=thisElement;
			while(objT.parentElement)//控件是否可见
			{	
				objT=objT.parentElement;
				if(objT.style.display=="none")
				{
					blnIsShow=false;
					break;
				}				
			}			
			if(blnIsShow)
			{
				if(Trim(thisValue)==""&&isNull=="false")					//如果为False则此控件不能为空。
				{
					alert(objForm.elements[i].ChName + " 不能为空！");
					thisElement.focus();
					if(thisElement.type == "text" || thisElement.type == "textarea")		//如果页面上的控件是text或textarea
					thisElement.select();
					return false;
				}					
				if(thisElement.type == "text" || thisElement.type == "textarea")		//如果页面上的控件是text或textarea
				{
					if(dataCheType=="int"&&Trim(thisValue)!="")											//整型。可以自己设置
					{ 
						var rPattern = /^(0|([1-9]\d{0,14}))$/;	
						if(!rPattern.test(thisValue)) 				
						{
							alert("您在 " + objForm.elements[i].ChName + " 中只能输入整型的数据！");
							thisElement.focus();
							thisElement.select();
							return false;
						}
					}	//end Int
					else if(dataCheType=="float"&&Trim(thisValue)!="")											//浮点型。可以自己设置
					{
						var rPattern = /^(\-)?(0|([1-9]\d{0,14}))((\.)\d{1,4})?$/;
						if(thisValue != "")
						{
							if(!rPattern.test(thisValue))
							{
								alert("您在 " + objForm.elements[i].ChName + "  中只能输入数值型的数据！");
								thisElement.focus();
								thisElement.select();
								return false;
							}
						}
					}//end float
					else if(dataCheType=="date"&&Trim(thisValue)!="")
					{
						var reg =/^(\d+)-(\d{1,2})-(\d{1,2})$/;    
						var r=thisValue.match(reg);    
						if(r==null){
							alert("您在 " + objForm.elements[i].ChName + "  中输入的日期格式不正确！");
							thisElement.focus();
							thisElement.select();
							return false;    
						} 
						r[2]=r[2]-1;    
						var d=new Date(r[1],r[2],r[3]);    
						if(d.getFullYear()!=r[1]){
							alert("您在 " + objForm.elements[i].ChName + "  中输入的日期格式不正确！");
							thisElement.focus();
							thisElement.select();
							return false;    
						}
						if(d.getMonth()!=r[2]){
							alert("您在 " + objForm.elements[i].ChName + "  中输入的日期格式不正确！");
							thisElement.focus();
							thisElement.select();
							return false;    
						}    
						if(d.getDate()!=r[3]){
							alert("您在 " + objForm.elements[i].ChName + "  中输入的日期格式不正确！");
							thisElement.focus();
							thisElement.select();
							return false;    
						} 					
					}//end date
					else if(dataCheType=="email")											//email格式。可以自己设置
					{
						if(!IsEmail(thisElement,thisValue))
						{
							return false;
						}
					}//end email
				}//end if
			}//end display
		}//end for		
	}//end length 	
	return true;
}//end fun
