// ---------------------- 常用JavaScript验证函数及通用函数库 -------------------------- //
// 用法：<script language="javascript" src=/js/check.js></script>                       //
//
// testObjNumber     -  判断某控件值是否是数值型
// testEmpty         -  验证是否为空
// testLength        -  判断某控件值是否>,<或=设定值
// GetStrLength      -  获取字符串的实际长度
// testPassword      -  检查密码格式是否正确
// testIpAddress     -  检查IP地址格式是否正确（不完全）
// testEmail         -  检查Email地址格式是否正确
// testIDC           -  检查身份证件号码格式是否正确
// testY2KMMDD       -  检查日期格式是否正确(YYYY-MM-DD)
// testY2KMMDD2      -  检查日期格式是否正确(YYYYMMDD)
// test200YMMDD      -  检查日期格式是否正确
// testNumber        -  检查是否是数字字符串
// testCustID1       -  检查客户的ID[字母开头]
// testCustID2       -  检查客户的ID[全是数字]
// testAmount        -  检查金额的格式
// testTeleNo        -  检查电话号码格式
//
// getTodayDate      -  得到今天的日期
// setInputV         -  设置EDIT的内容
// getInputV         -  得到EDIT的内容
// setCheckboxV      -  设置当前选择
// getCheckboxV      -  得到选中的字符串
// testCheckboxItem  -  检查是否有选择  
// setSelectV        -  设置当前选择
// getSelectV        -  得到当前选择的值
// testSelect        -  检查是否有选择
// setRadioV         -  设置当前选择
// getRadioV         -  得到当前选择的值
// testRadioItem     -  检查是否有选择
// --------------------------------------- ---------------------------------------- //


// ---------------------------------- 数据验证类 ----------------------------------- //
function isDateTime(str)
{ 
    if(str == null || str == "")
        return true;
        
    var a = str.match(/^(\d{0,4})-(\d{0,2})-(\d{0,2}) (\d{0,2}):(\d{0,2})(:(\d{0,2})){0,1}$/); 
    if (a == null) return false; 
    if ( a[2]>=13 || a[3]>=32 || a[4]>=24 || a[5]>=60 || a[6]>=60) return false; 
    return true; 
} 


//获取指定小数位数，如:GetDecimal(1.125,2)=1.13
function GetDecimal(num,len)
{
	var Num2 = parseFloat(num);
	return Math.round(Num2*Math.pow(10,len))/Math.pow(10,len);
}

function Trim(s)
{
	if(s==null)
		return "";
	else
        return s.replace(/(^\s*)|(\s*$)/g, "");
}

function testObjAmount(objID,strError)
{
	if(objID.value=="")
		return true;
	if(testAmount(objID.value))
	{
		return true;
	}
	else if(testObjNumber(objID,""))
	{
		return true;
	}
	else if(strError!="" && strError!=null)
	{
		alert(strError);
		objID.focus();
		return false;
	}
}

function testObjIDC(objID,strError)
{
	if(objID.value=="")
		return true;
		
	var isIDCard1 = new Object();
	var isIDCard2 = new Object();

	//身份证正则表达式(15位) 
	isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; 
	//身份证正则表达式(18位) 
	isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 

	//验证身份证
	if (isIDCard1.test(objID.value)||isIDCard2.test(objID.value))
	{
		return true;
	}
	else if(strError!="" && strError!=null)
	{
		alert(strError);
		objID.focus();
		return false;
	}
}

function testObjYYYYMMDD(objID,strError)
{
//	if(!testYYYYMMDD(objID.value))
//	{
//		if(strError!="" && strError!=null)
//		{
//			alert(strError);
//			objID.focus();
//		}
//		return false;
//	}
	return true;
}

function testObjDateTime(objID,strError)
{
	if(!isDateTime(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testObjTeleNo(objID,strError)
{
	if(!testTeleNo(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testObjEmail(objID,strError)
{
	if(!testEmail(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testObjIP(objID,strError)
{
	if(!testIpAddress(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testURL(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = "http://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?";
	
	return varPattern.test(varValue);
}

function testObjNumber(objID,strError)
{
	objID.value = Trim(objID.value);
	
	if(!testNumber(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testObjAlpha(objID,strError)
{
	objID.value = Trim(objID.value);
	
	if(!testAlpha(objID.value))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function testObjEmpty(objID,strError)
{ 
	if(objID==null || objID.disabled)
		return true;
	
	objID.value = Trim(objID.value);
	
	if(objID.value=="")
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			if(!objID.readOnly && objID.type!="hidden")
			{
			    try   //如果父控件被隐藏也会引起错误，所以用try catch
			    {
			        objID.focus();
			    }
			    catch(e)
			    {
			    }
			}
		}
		return false;
	}
	else
	{
		return true;
	}
} 

function testRadioEmpty(varRadio,strError)
{
	if(varRadio.disabled)
		return true;

	var num = varRadio.length;

	for(var count=0; count<num; count++) 
	{
		if(varRadio[count].checked==true)
		{
			return true;
		}
	}
	
	if(strError!="" && strError!=null)
	{
		alert(strError);
	}
	return false;
}

//例：testLength(Form1.UserID,">",10,"您输入的用户名过长！");
//意：如果Form1.UserID.value.length>10，则提示"您输入的用户名过长！"，并返回false
function testObjLength(objID,operation,compareValue,strError)
{
	var StrLength = GetStrLength(objID.value);
	if(eval(StrLength + operation + compareValue))
	{
		if(strError!="" && strError!=null)
		{
			alert(strError);
			objID.focus();
		}
		return false;
	}
	return true;
}

function GetStrLength(str) 
{ 
	var num=str.length;
	var arr=str.match(/[^\\\\\\\\\\\\\\\\x00-\\\\\\\\\\\\\\\\x80]/ig);
	if(arr!=null)
	{
		num += arr.length;
	}
	return num;
} 

function testPassword(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^([a-zA-Z0-9_-]){6,8}$/;
	if(!varPattern.test(varValue))
		alert("你所输入的密码格式或者位数不对，请检查！");
	return varPattern.test(varValue);
}

function testIpAddress(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^(\d){1,3}(\.(\d){1,3}){3}$/;
	
	return varPattern.test(varValue);
}

function testEmail(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^([\.a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	
	return varPattern.test(varValue);
}

function testIDC(varValue,varType)
{
	if(varValue.length==0)  return true;
	
	var varPattern="";
	var varTypeValue = varType[varType.options.selectedIndex].value;
	
	switch(varTypeValue)
	{
		case "0":	varPattern = /^(\d){15}((\d){3})?$/;   break;
		case "1":	varPattern = /^([a-zA-Z0-9]){6,}$/;   break;
		case "2":	varPattern = /^(\d){6,}$/;   break;
	}

	if(!varPattern.test(varValue))
		alert("你所输入的身份证件格式不对，请检查！");
	return varPattern.test(varValue);
}

function testYYYYMMDD(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^[1,2]{1}(\d){3}[-]{1}(([0]{1}(\d){1})|([1]{1}[0,1,2]{1}))[-]{1}(([0,1,2]{1}(\d){1})|([3]{1}[0,1]{1}))$/;
	
	return varPattern.test(varValue);
}

function testYYYYMMDD2(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^[1,2]{1}(\d){3}(([0]{1}(\d){1})|([1]{1}[0,1,2]{1}))(([0,1,2]{1}(\d){1})|([3]{1}[0,1]{1}))$/;

	return varPattern.test(varValue);
}

function testY2KMMDD(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern  = /^200(\d){1}[-]{1}(([0]{1}(\d){1})|([1]{1}[0,1,2]{1}))[-]{1}(([0,1,2]{1}(\d){1})|([3]{1}[0,1]{1}))$/;
	if(!varPattern.test(varValue))
		alert("你所输入的日期格式不对，请检查！");
	return varPattern.test(varValue);
}

function testY2KMMDD2(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern  = /^200(\d){1}(([0]{1}(\d){1})|([1]{1}[0,1,2]{1}))(([0,1,2]{1}(\d){1})|([3]{1}[0,1]{1}))$/;
	if(!varPattern.test(varValue))
		alert("你所输入的日期格式不对，请检查！");
	return varPattern.test(varValue);
}

function testNumber(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^(\d)+$/;
	
	return varPattern.test(varValue);
}
//add by xf，检测是否为字母
function testAlpha(varValue)
{
    if(varValue.length==0)  return true;
	
	var varPattern = /^[a-zA-Z]+$/;
	
	return varPattern.test(varValue);
}

function testCustID1(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^([a-zA-Z]){1}([a-zA-Z0-9_-]){2,}$/;
	if(!varPattern.test(varValue))
		alert("你所输入的客户号码格式不对，请检查！");
	return varPattern.test(varValue);
}

function testCustID2(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^(\d){1,30}$/;
	if(!varPattern.test(varValue))
		alert("你所输入的客户号码格式不对，请检查！");
	return varPattern.test(varValue);
}

function testAmount(varValue)
{
	if(varValue.length==0)  return true;
	
	var varPattern = /^(\d)+\.{0,1}(\d)+$/;
	if(!varPattern.test(varValue))
	{
	}
	return varPattern.test(varValue);
}

function testTeleNo(varValue)
{
	if(varValue.length==0)  return true;
	
	var varValue2 = varValue + ";";
	var varPattern = /^((\d)+[-]{0,1}(\d)+\;)+$/;
	return varPattern.test(varValue2);
}

// -------------------------------- 其他功能函数 ------------------------------------ //
function getTodayDate(varType)
{
	var varDate = new Date();
	var varDay = eval(varDate.getDate());
	var varMonth = eval(varDate.getMonth())+1;
	
	var varRet = "" + varDate.getFullYear();
	if(varType==0)
		varRet += "-" + ((varMonth<10)?"0":"") + varMonth;
	else
		varRet += ((varMonth<10)?"0":"") + varMonth;
		
	if(varType==0)
		varRet += "-" + ((varDay<10)?"0":"") + varDay;
	else
		varRet += ((varDay<10)?"0":"") + varDay;

	return varRet;
}

function setInputV(varInput, varCurStr)
{
	varInput.value = varCurStr;
}

function getInputV(varInput)
{
	return varInput.value;
}

function setCheckboxV(varArray, varCurStr)
{
	if(varCurStr=="")
	{
		for(var count=0; count<varArray.length; count++)
			varArray[count].checked = false;
	}
	else
	{
		varMatch = /((\d)+\,)/ig;
		varOrgStr = varCurStr + ",";
		
		while(varOrgStr!="")
		{
			varFlag = varMatch.exec(varOrgStr)
			varTmpStr = varFlag[0].substring(0,varFlag[0].length-1);
			varOrgStr = varOrgStr.substring(varTmpStr.length+1,varOrgStr.length);

			for(var count=0; count<varArray.length; count++)
			{
				if(varArray[count].value==varTmpStr)
				{
					varArray[count].checked=true;
					break;
				}
			}
		}
	}
}

function getCheckboxV(varArray)
{
	var varRet = "";
	for(var count=0; count<varArray.length; count++)
	{
		if(varArray[count].checked)
			varRet += varArray[count].value +",";
	}
	
	return varRet;
}

function testCheckboxItem(varArray, varCurStr)
{
	var varRet = false;
	for(var count=0; count<varArray.length; count++)
	{
		if(varArray[count].value==varCurStr&&varArray[count].checked)
		{
			varRet = true;
			break;
		}
	}
	
	return varRet;
}

function testCheckbox(varArray)
{
	if(getCheckboxV(varArray)=="")
		return false;
	else
		return true;
}

function setSelectV(varArray, varCurStr)
{
	for(var count=0; count<varArray.length; count++)
	{
		if(varArray[count].value == varCurStr)
		{
			varArray[count].selected=true;
			break;
		}
	}
}

function getSelectV(varArray)
{
	var varIndex = varArray.options.selectedIndex;
	return varArray[varIndex].value;
}

function testSelectItem(varArray, varCurStr)
{
	var varRet =false;
	for(var count=0; count<varArray.length; count++)
	{
		if(varArray[count].value==varCurStr&&varArray[count].selected)
		{
			varRet = true;
			break;
		}
	}
	
	return varRet;
}

function testSelect(varArray)
{
	var varIndex = varArray.options.selectedIndex;
	if(varArray[varIndex].value!="")
		return true;
	else
		return false;
}

function setRadioV(varArray, varCurStr)
{
	if(varCurStr=="")
	{
		for(var count=0; count<varArray.length; count++)
			varArray[count].checked=false;
	}
	else
	{
		for(var count=0; count<varArray.length; count++)
		{
			if(varArray[count].value == varCurStr)
			{
				varArray[count].checked=true;
				break;
			}
		}
	}
}
	
function getRadioV(varRadio)
{
	var varRet = "";
	var num = varRadio.length;

	for(var count=0; count<num; count++) 
	{
		if(varRadio[count].checked==true)
		{
			varRet = varRadio[count].value;
			break;
		}
	}
	
	return varRet;
}

function testRadioItem(varRadio, varCurStr)
{
	var varRet = false;
	var num = varRadio.length;
	
	for(var count=0; count<num; count++) 
	{
		if(varRadio[count].value==varCurStr&&varRadio[count].checked)
		{
			varRet = true;	
			break;
		}
	}
	
	return  varRet;
}

function  testRadio(varRadio)
{
	var varRet = false;
	var num = varRadio.length;
	
	for(var count=0; count<num; count++)
	{
		if(varRadio[count].checked)
		{
			varRet = true;
			break;
		}
	}
	
	return varRet;
}

