/**
 * Title: 
 * Description: 有效性检验的JavaScript脚本
 * Copyright: Copyright (c) 2004
 * Company: 深圳太极软件公司
 * @author 陈伟佳
 * @version 1.0
 */
function checkDate(obj, split)
{
	// '^\d{4}-\d{1,2}-\d{1,2}$'
	var str = obj.value;
	var re = '[0-9]{4}' +split+ '[0-9]{1,2}' +split+ '[0-9]{1,2}';
	var r = str.match(re);
	var state = 0;
	var maxDays = 31;
	// alert(str + ' , ' + r);
	if (r==null)
	{
		alert('请输入有效的日期，例如：2004'+split+'01'+split+'23。');
		state = -1;
	}
	else
	{
                var s=str.split(split);
                if (s[1] > 12 || s[1] < 1)
                {
                	alert('请输入有效的月份，月份只能在 1 至 12 之间。');
			state = -1;
                }
                // 每个月的最大日数不一样
		if (s[1]==4 || s[1]==6 || s[1]==9 || s[1]==11) maxDays = 30;
		else if (s[1]==2) {
			if (s[0] % 4 > 0) maxDays = 28;
			else if (s[0] % 100 == 0 && s[0] % 400 > 0) maxDays = 28;
			else maxDays = 29;
		}
		else maxDays = 31;

                if (s[2]>maxDays || s[2]<1)
		{
			alert('请输入有效的日，'+s[0]+'年'+s[1]+'月份的日只能在 1 至 '+maxDays+' 之间。');
			state = -1;
		}
	}
	if (state == -1)
	{
		obj.focus();
		obj.select();
		return false;
	}
	return true;	
}
/**
 * 检查 obj 是否时间类型
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 * split obj 的时间字符串使用哪种分隔符，一般是 '-'
 */
function checkDate(obj, message, split)
{
	// '^\d{4}-\d{1,2}-\d{1,2}$'
	var str = obj.value;
	var re = '[0-9]{4}' +split+ '[0-9]{1,2}' +split+ '[0-9]{1,2}';
	var r = str.match(re);
	var state = 0;
	var maxDays = 31;
	// alert(str + ' , ' + r);
	if (r==null)
	{
		alert(message + '请输入有效的日期，例如：2004'+split+'01'+split+'23。');
		state = -1;
	}
	else
	{
                var s=str.split(split);
                if (s[1] > 12 || s[1] < 1)
                {
                	alert(message + '请输入有效的月份，月份只能在 1 至 12 之间。');
			state = -1;
                }
                // 每个月的最大日数不一样
		if (s[1]==4 || s[1]==6 || s[1]==9 || s[1]==11) maxDays = 30;
		else if (s[1]==2) {
			if (s[0] % 4 > 0) maxDays = 28;
			else if (s[0] % 100 == 0 && s[0] % 400 > 0) maxDays = 28;
			else maxDays = 29;
		}
		else maxDays = 31;

                if (s[2]>maxDays || s[2]<1)
		{
			alert(message + '请输入有效的日，'+s[0]+'年'+s[1]+'月份的日只能在 1 至 '+maxDays+' 之间。');
			state = -1;
		}
	}
	if (state == -1)
	{
		obj.focus();
		obj.select();
		return false;
	}
	return true;	
}

/**
 * 检查 obj 是否有输入值
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 */
function existString(obj, message)
{
	if (obj.value == null || obj.value.length < 1)
	{
		alert('请输入' + message + '。');  // 请输入：。
		obj.select();
		return false;
	}
		
	return true;
}
/**
 * 检查 obj 有没有超过最长长度
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 * maxLength 最长长度
 */
function maxLength(obj, message, maxLength)
{
	if (obj.value == null) {
		return true;
	}	
	if (obj.value.length > maxLength){
	  alert(message + '超过最大长度' + maxLength + '，请重新输入。');
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否有输入值，有没有超过最长长度
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 * maxLength 最长长度
 */
function maxStringLength(obj, message, maxLength)
{
	if (obj.value == null || obj.value.length < 1)
	{
		alert('请输入' + message + '。');  // 请输入：。
		obj.select();
		return false;
	}	
	if (obj.value.length > maxLength){
	  alert(message + '超过最大长度' + maxLength + '，请重新输入。');
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否有输入值，是否足够最短长度，有没有超过最长长度
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 * minLength 最短长度
 * maxLength 最长长度
 */
function existStringLength(obj, message, minLength, maxLength)
{
	if (obj.value == null || obj.value.length < 1)
	{
		alert('\u8bf7\u8f93\u5165\uff1a' + message + '\u3002');  // 请输入：。
		obj.select();
		return false;
	}	
	if (obj.value.length < minLength){
	  alert(message + '不足最小长度' + minLength + '，请重新输入。'); 
		obj.select();
		return false;
	}
	if (obj.value.length > maxLength){
	  alert(message + '超过最大长度' + maxLength + '，请重新输入。');
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否有选择
 * obj 被检查的对象
 * falseValue 失败时的值
 * message obj 的中文意思，用于提示
 */
function checkSelect(obj, flaseValue, message)
{
	if (obj.value == flaseValue)
	{
		alert('请选择：' + message + '。');
		obj.focus();
		return false;
	}
	
	return true;
}
/**
 * 检查 obj 是否有选择(特指radio单选框)
 * obj 被检查的对象
 * message obj 的中文意思，用于提示
 */
function checkRadioSelect(obj,  message)
{

flag=0;
for(i=0;i<obj.length;i++)
  {
    if(obj[i].checked)
	  {
            flag=1;
	  }
  }
if(flag==0)
  {
        alert("请选择"+message);
        return false;
  }
	return true;

}
/**
 * 检查 obj 是否是字符和数字
 * obj 被检查的对象
 * name obj 的中文意思，用于提示
 */
function checkCharAndNum(obj, name)
{
	var str = obj.value;
	var re = '[^a-zA-Z0-9]{1,}';
	var r = str.match(re);	
	//alert("r = " + r + " , " + str);
	if (r!=null)
	{
		alert(name + '只接受字母a-z A-Z 和数字 0-9，不能包含其它字符。');
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否是 EMAIL 地址
 * obj 被检查的对象
 * name obj 的中文意思，用于提示
 * isMust表示Email地址是否可以为空,如果是0为可以为空，如果是1为不能为空
 */
function checkEMail(obj, name, isMust)
{
	var str = obj.value;
	if (str == null)
	  str = "";
	  
	if (isMust == 1){
		if (str.length < 1){
		  alert('请输入' + name + '。');  // 请输入：。
			obj.select();
			return false;
		}
	  }
	if (str.length > 0){
		var r1 = str.match('\\.+');	
		var r2 = str.match('\\@+');	
		if (r1 != null && r2 != null)
		{
		  return true;
		}
		else
		{
			alert(name + ' Email地址必须包括 . 和 @。');
			obj.focus();
			obj.select();
			return false;
		}
		}
	return true;
}
/**
 * 检查 obj 是否是电话号码
 * obj 被检查的对象
 * name obj 的中文意思，用于提示
 */
function checkTel(obj, name)
{
	var str = obj.value;
	var re = '[^0-9-]{1,}';
	var r = str.match(re);	
	if (r!=null)
	{
		alert(name + '只接受数字 0-9 和 -，不能包含其它字符。');
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否是数字
 * obj 被检查的对象
 * name obj 的中文意思，用于提示
 */
function checkNum(obj, name)
{
	var str = obj.value;
	var re = '[^0-9]{1,}';
	var r = str.match(re);	
	if (r!=null)
	{
		alert(name + '只接受数字 0-9，不能包含其它字符。');
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}
/**
 * 检查 obj 是否是数字,
 * obj 被检查的对象
 * name obj 的中文意思，用于提示
 */
function checkNumber(obj, name)
{
	if (obj.value == null) {
		return true;
	}
	var str = obj.value;
	var re = '[^0-9]{1,}';
	var r = str.match(re);	
	if (r!=null)
	{
		alert(name + '只接受数字 0-9，不能包含其它字符。');
		obj.focus();
		obj.select();
		return false;
	}
	return true;
}