/*==============================
作者：唐小刚/展亮
功能：主要完成前台数据验证
开发时间：2002.10
修改日期：2004.10
参数说明：frm:为待检查的对象,str:为提示语句,len:为求的长度
修改者：
修改日期：
说明：本代码为自由代码，用户可以自由使用，但请保留作者文件头部说明
　　　在使用过程中如出现什么问题请及时与作者联系。
　　　联系方式：电子邮件：ae.ru@263.net QQ:159357
　　　　　　　　电子邮件：zlbox@yeah.net QQ:2343397
================================*/
//检查数据是否为空
function checnull(frm,str)
{
  var tempstr = eval("'"+str+"'")
  re=/^\s{0,}$/
  if(re.test(frm.value))
	{
      alert(tempstr)
	  frm.select()
	  return false
	}else
	{
      return true
	}
}
//检查数据是否全为数字
function checnumber(frm,str)
{
  if(isNaN(frm.value) && frm.value!="")
	  {
         alert(str);
		 frm.select();
		 return false;
	  }else
	  {
         return true;
	  }
}
//检查数据是否全为整数
function checint(frm,str)
{
  re = /^-{0,1}\d+$/
  if(!re.test(frm.value) && frm.value!="")
	  {
         alert(str);
		 frm.select();
		 return false;
	  }else
	  {
         return true;
	  }
}
//检查数据是否全为正整数
function checplusint(frm,str)
{
  re = /^\d+$/
  if(!re.test(frm.value) && frm.value!="")
	  {
         alert(str);
		 frm.select();
		 return false;
	  }else
	  {
         return true;
	  }
}
//检查电话号码
function chectelphone(frm,str)
{
  re=/^\d{3}-{0,1}\d{7,8}$/
  if(!re.test(frm.value) && frm.value!="")
	{
      alert(str)
	  frm.select()
	  return false;
	}else
	{
      return true;
	}
}
//检查手机号码
function checmobilephone(frm,str)
{
  re=/^0{0,1}13[0-9]{9}$/
  if(!re.test(frm.value) && frm.value!="")
	{
      alert(str)
	  frm.select()
	  return false;
	}else
	{
      return true;
	}
}
//检查电子邮件
function checemail(frm,str)
{
   re=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/
   if(!re.test(frm.value) && frm.value!="")
	{
      alert(str)
      frm.select()
	  return false
	}else
	{
      return true
	}
}
//检查身份证
function checidcard(frm,str)
{
  re=/^\d{15,18}$/
  if(!re.test(frm.value) && frm.value!="")
	{
      alert(str);
	  frm.select();
	  return false
	}else
	{
      return true
	}
}
//检查邮编
function checpost(frm,str)
{
  re=/^\d{6}$/
  if(!re.test(frm.value))
	{
      alert(str)
	  frm.select()
	  return false
  	}else
    {
      return true
	}
}
//文件名检查,mode的格式应为：html|htm|word|xls等
function checfilename(frm,str,mode)
{
  if(frm.value!="")
	{
	  re="/^"+mode+"$/"
	  var checstr=frm.value;
	  var checarray=checstr.split(".");//分离文件名，取文件后缀名
	  var checmode=mode.split("|");//取检验对象
	  var checbool=false;
	  for(var i=0;i<checmode.length;i++)
		{
            if(checarray[checarray.length-1].toUpperCase()==checmode[i].toUpperCase())
			{
              checbool=true
			}
		}
	  if(checbool==false)
		{
           alert(str);
		   frm.select();
		   return false
		}
	  else
	    {
           return true;
		}
	}
  else
	{
      return true
	}
}
//检查字符串长度
function checlen(frm,str,len)
{
  if(frm.value!=""&&frm.value.length<len)
  {
      alert(str)
      frm.select()
      return false
  }else
  {
      return true
  }
}
//检查密码是否一致
function checpass(frm,str,frm1)
{
  var tempstr = eval("'"+str+"'")
  if(frm.value!=frm1.value)
  {
      alert(tempstr)
      frm.value=frm1.value=""
      frm1.select()
      return false
  }else
  {
      return true
  }
}
//检查是否为日期
function checdate(frm,str)
{
    if(frm.value=="") return true
    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
    result = frm.value.match(reg);
    if(result == null)
    {
      alert(str);
      return false
    }
    var d = new Date(result[1],result[3]-1,result[4])
    if(frm.value!=d.getFullYear()+result[2]+(d.getMonth()+1)+result[2]+d.getDate())
    {
      alert(str);
      return false
    }
    return true
}

//表单自动验证函数(text,password,select)
function checknull(form)
{
	var INPUT;//保存现在访问的表单元件
	var i=0;
	for(i=0;i<form.elements.length;i++)
	{
		INPUT=form.elements[i];
		if(INPUT.type!="submit" &&
		   INPUT.type!="button" &&
		   INPUT.type!="reset" &&
		   INPUT.type!="hidden" &&
		   INPUT.type!="radio" &&
		   INPUT.type!="checkbox")
		{
			if (INPUT.check_null && !checnull(INPUT,INPUT.check_null)) return false;//是否为空
			if (INPUT.check_umber && !checnumber(INPUT,INPUT.check_umber)) return false;//是否为数字
			if (INPUT.check_int && !checint(INPUT,INPUT.check_int)) return false;//是否为整数
			if (INPUT.check_plusint && !checplusint(INPUT,INPUT.check_plusint)) return false;//是否为正整数
			if (INPUT.check_telphone && !chectelphone(INPUT,INPUT.check_telphone)) return false;//是否为电话号码
			if (INPUT.check_mobilephone && !checmobilephone(INPUT,INPUT.check_mobilephone)) return false;//是否为手机号码
			if (INPUT.check_email && !checemail(INPUT,INPUT.check_email)) return false;//是否为电子邮件
			if (INPUT.check_idcard && !checidcard(INPUT,INPUT.check_idcard)) return false;//是否为身份证
			if (INPUT.check_post && !checpost(INPUT,INPUT.check_post)) return false;//是否为邮编
			if (INPUT.check_filename && INPUT.sufname && !checfilename(INPUT,INPUT.check_filename,INPUT.sufname)) return false;//文件名检查
			if (INPUT.check_len && !checlen(INPUT,INPUT.check_len,INPUT.len)) return false;//检查字符串长度
			if (INPUT.check_pass && INPUT.pass && !eval('checpass(INPUT,INPUT.check_pass,INPUT.form.'+INPUT.pass+')')) return false;//检查密码是否一致
			if (INPUT.check_date && !checdate(INPUT,INPUT.check_date)) return false;//是否为日期
		}
	}
	return true;
}
// Useage: HCmarquee(滚动对象id, 可见范围宽度, 可见范围高度, 滚动速度, 停留时间, 方向); 方向有left和up两种
function HCmarquee(id,mw,mh,mr,sr,ms,pause,dr)
{	
	var obj=document.getElementById(id);
	obj.ss=false; //stop tag
	obj.mr=mr; //marquee rows
	obj.sr=sr; //marquee display rows
	obj.mw=mw; //marquee width
	obj.mh=mh; //marquee height
	obj.ms=ms; //marquee speed
	obj.pause=pause; //pause time
	obj.pt=0; //pre top
	obj.st=0; //stop time
	obj.dr=dr; //direction

	with(obj){
		style.width=mw+"px";
		style.height=mh+"px";
		noWrap=false;
		onmouseover=stopm;
		onmouseout=startm;
		scrollTop=0+"px";
		scrollLeft=0+"px";
	}
	
	if(obj.mr!=1){
		switch(obj.dr){
			case("up"):
				obj.tt=mh*mr/sr;
				obj.ct=mh; //current top
				obj.innerHTML+=obj.innerHTML;
				setInterval(scrollUp,obj.ms); break;
			default://("left"):
				obj.tt=mw*mr/sr;
				obj.ct=mw;
				obj.innerHTML='<div style="width:'+(obj.tt*2)+'px;"><div style="float:left;">'+obj.innerHTML+'</div><div style="float:right;">'+obj.innerHTML+'</div></div>';
				document.write('<style type="text/css">#'+id+' table{width:'+mw*mr+'px;} #'+id+' td{width:'+mw+'px;}</style>');
				setInterval(scrollLeft,obj.ms); break;
		}
	}

	function scrollUp(){
		if(obj.ss==true) return;
		obj.ct+=1;
		if(obj.ct==obj.mh+1){
			obj.st+=1; obj.ct-=1;
			if(obj.st==obj.pause){obj.ct=0; obj.st=0;}
		}else {
			obj.pt=(++obj.scrollTop);
			if(obj.pt==obj.tt){obj.scrollTop=0;}
		}
	}

	function scrollLeft(){
		if(obj.ss==true) return;
		obj.ct+=1;
		if(obj.ct==obj.mw+1){
			obj.st+=1; obj.ct-=1;
			if(obj.st==obj.pause){obj.ct=0; obj.st=0;}
		}else {
			obj.pt=(++obj.scrollLeft);
			if(obj.pt==obj.tt){obj.scrollLeft=0;}
		}
	}

	function stopm(){obj.ss=true;}
	function startm(){obj.ss=false;}
}

