/*
=========================================================
 Version: Jax 0.5
 Date: 2006-5-1
 Script Written by Utoper Jax Group
 Copyright (C) 2006 Utoper Corp. All rights reserved.
 Web: http://Jax.Utoper.com
 Email: UtoJax@163.com
=========================================================
****************************************************************** 
** 名: check  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-8  修改: welsham 2006-7-8
** 描述: parser之验证模块，验证form中的数据格式和有效性
** 修改描述: 
******************************************************************
*/

//**************初始化parser对象和check对象************************
if(typeof parser != "object") { var parser={}; }
if(typeof parser.check != "object") { parser.check={}; }

/****************************************************************** 
** 名: check form  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-8  修改: welsham 2006-7-8
** 描述: form各控件的验证
** 修改描述: 
******************************************************************/
//**************空值判断*******************************************
parser.check.isNull=function(id,name)
{
	var key,o,ids = id.split(","),names=name.split(",");
	for(key in ids)
	{
		o=$(ids[key]);
		if(o.value.length<1||o.value==""||o.value==null) 
		{ if(names[key].length>0) alert(names[key]+"为空");o.focus();return true; }
	}
	return false;
};

//**************字符判断*******************************************
parser.check.isString=function(str)
{
	var p=new RegExp("[a-zA-Z0-9\.\_@]*");
	var strs=str.match(p);
	if(strs&&strs[0]==str) return true;
	else return false;
};

//**************数字判断*******************************************
parser.check.isNumeric=function(str)
{
	var p=new RegExp("[0-9]*[\.]{0,1}[0-9]*");
	var strs=str.match(p);
	if(strs&&strs[0]==str) return true;
	else return false;
};
parser.check.isNumbers=function(id,name)
{
	var key,o,oValue,ids = id.split(","),names=name.split(",");
	for(key in ids)
	{
		o=$(ids[key]);
		oValue=$$(ids[key]);
		if( oValue.length>0 && !parser.check.isNumeric(oValue) ) 
		{ alert(names[key]+"不是数字！");o.focus();return false; }
	}
	return true;
};

//**************日期时间判断*******************************************
//_notYear,_notMonth,_notDay:1或true 没有该段；0或false有该段(默认)。如parser.check.isDate("2006-1",false,false,true)
parser.check.isDate=function(str,_notYear,_notMonth,_notDay)
{
	var e="";
	if(!_notYear) e += "[0-9]{4}\-";
	if(!_notMonth) e += "[0-9]{1,2}";
	if(!_notDay) e += "\-[0-9]{1,2}";
	var p=new RegExp(e);
	var strs=str.match(p);
	if(strs&&strs[0]==str) return true;
	else return false;
};
parser.check.isDates=function(id,name)
{
	var key,o,oValue,ids = id.split(","),names=name.split(",");
	for(key in ids)
	{
		o=$(ids[key]);
		oValue=$$(ids[key]);
		if( oValue.length>0 && !parser.check.isDate(oValue) ) 
		{ alert(names[key]+"不是日期！\n标准格式如：2007-1-1");o.focus();return false; }
	}
	return true;
};

parser.check.isTime=function(str)
{
	
};
parser.check.isDateTime=function(str)
{
	
};
//_part："y","m","d"
parser.check.getDatePart=function(_date,_part)
{
	var e = "([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})";
	var p=new RegExp(e);
	var strs=_date.match(p);
	switch(_part)
	{
		case "y":{return strs[1];break;}
		case "m":{return strs[2];break;}
		case "d":{return strs[3];break;}
	}
};

//**************Email判断*******************************************
parser.check.isEmail=function(str)
{
	var p=new RegExp("[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9_\.\-]+[\.]{1}[a-zA-Z]+");
	var strs=str.match(p);
	if(strs&&strs[0]==str) return true;
	else return false;
};

//**************用户名判断*******************************************
parser.check.isUserName=function(str,minLen,maxLen)
{
	var len=str.length;
	if(len<minLen || len>maxLen) return false;
	return parser.check.isString(str);
};

//**************密码判断*******************************************
parser.check.isPwd=function(pwd,pwd2,minLen,maxLen)
{
	var len=pwd.length;
	if(len<minLen || len>maxLen) return false;
	if(pwd==pwd2) return true;
	else return false;
};

/****************************************************************** 
** 名: check selection  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-8  修改: welsham 2006-7-8
** 描述: 多选框的选择
** 修改描述: 
******************************************************************/
//**************选择checkbox*******************************************
//参数：_selName-选择checkbox的name；_selAll－选择所有checkbox的name,_oSelAll-当前选中所有对象；_selValue-选定值，选中部分
parser.check.select=function(_selName,_selAll,_oSelAll,_selValue)
{
	var i,j;
	var sels=document.getElementsByName(_selName);	
	if(_selValue)
	{
		_selValue=","+_selValue+",";
		for(i=0;i<sels.length;i++)
		{
			if( _selValue.indexOf(sels[i].value)>=0 ) { if(!sels[i].checked) sels[i].click(); }
			else sels[i].checked=false;
		}
	}
	else
	{
		var selAlls=document.getElementsByName(_selAll);
		var _checked=_oSelAll.checked;		
		for(j=0;j<selAlls.length;j++)
		{	selAlls[j].checked=_checked; }		
		for(i=0;i<sels.length;i++)
		{	if(sels[i].checked!=_checked) sels[i].click(); }
	}
};

//**************选择判断*******************************************
//参数：_selName-选择checkbox的name；_selNum-判断选择数，0表示任意
parser.check.isSelected=function(_selName,_selNum)
{
	var i,selectedNum=0;
	var sels=document.getElementsByName(_selName);
	for(i=0;i<sels.length;i++)
	{	if(sels[i].checked) selectedNum += 1;	}
	if( (_selNum==0 && selectedNum>0) || (_selNum>0 && _selNum==selectedNum) ) return true;
	else return false;
};

/****************************************************************** 
** 名: handle  属于JFC － Jax Foundation Class
** 创建：welsham 2006-7-11  修改: welsham 2006-7-11
** 描述: list的各种处理
** 修改描述: 
******************************************************************/
//***************list通用处理***************************************
parser.check.handle=function(_url,_isSubmit,_confirm,_type,_formID,_idName,_selNum)
{
	var msg;
	if(!_isSubmit)
	{
		if(_confirm) {if(!confirm(_confirm)) return;}	
		self.location.href=_url;
	}
	else
	{
		if(!_selNum) _selNum=0;
		if(parser.check.isSelected(_idName,_selNum))
		{	
			if(_confirm) {if(!confirm(_confirm)) return;}	
			$(_formID).action=_url;$(_formID).submit();
		}
		else
		{	
			msg="请选择"+_type+"!";
			if(_selNum>0) msg += "且只能选择"+_selNum+"个";
			alert(msg);
		}
	}
};