//-------------------------------------------//
//客户输入合法性检查v2.0
//增加ip地址合法检查
//author:znsoft http://www.phpease.com
//date:2000-09-26 11:32
//-------------------------------------------//
function MM_findObj(n, d) { //查找对象
var p,i,x;
if(!d) d=document; 
if((p=n.indexOf("?"))>0&&parent.frames.length) 
	{
	d=parent.frames[n.substring(p+1)].document;
	n=n.substring(0,p);
	}
if(!(x=d[n])&&d.all) 
	x=d.all[n]; 
for (i=0;!x&&i<d.forms.length;i++) 
	x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
	x=MM_findObj(n,d.layers[i].document); 

return x;
}
function check_valid()//变量是否为空检查,第一个参数为变量名，第二个为出错提示信息,第三个为数据类型和长度
{
var val,val2,args=check_valid.arguments,i,flag=true,flagt=true;
for(i=0;i<(args.length-2);i+=3)
{
val=MM_findObj(args[i]);
if(val)//form元素存在
{
if(val.value==""&&(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R"))//是否为空检查
{
flag=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不能为空，请输入!");
else
alert(args[i+1]+"不能为空，请输入!");
break;
}
if(i<args.length-3)//是否为口令检查
{
val2=MM_findObj(args[i+3]);
if(val2&&val&&(args[i+1].charAt(0).toUpperCase()=="P"))
{
if(val.value!=val2.value)
{
flag=false; 
alert("两次"+args[i+1].substring(1,args[i+1].length)+"不一致，请重来!");
break; 
}
}
}
if(val.value!="")
switch(args[i+2].charAt(0).toUpperCase())
{
case "M"://是邮件
{
var mail=/^[_\.0-9a-z\-]+@([_0-9a-z\-]+\.){1,4}[a-z]{2,3}$/i;
if(!mail.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!格式如:mygod@god.com");
else
alert(args[i+1]+"不合法，请重来!格式如:mygod@god.com");
}
}
break;
case "N"://是数字
{
var num=parseInt(args[i+2].substring(1,args[i+2].length));
var l;
for(l=0;l<val.value.length;l++)
if((val.value.charAt(l)>"9"||val.value.charAt(l)<"0" ) && val.value.charAt(l)!="." ) 
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"中有非数字字符，请重来!");
else
alert(args[i+1]+"中有非数字字符，请重来!");
break;
}
if(parseInt(val.value)>num)
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"的值太大了，请重输入!\n提示：应小于"+num);
else
alert(args[i+1]+"的值太大了，请重输入!\n提示：应小于"+num);
}
}
break;
case "S"://是字符串
{
var num,str;
str=args[i+2].substring(1,args[i+2].length);
if(str!="")//后面有最小位数限制
{
num=parseInt(args[i+2].substring(1,args[i+2].length));
if(val.value.length<num)
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"的长度太小了,请重输入!\n提示：应大于"+num+"个字符.");
else
alert(args[i+1]+"的长度太小了,请重输入!\n提示：应大于"+num+"个字符.");
}
}
}
break;
case "T"://是电话或传真
{
var tel=/^[0-9\(\)\-]*$/i;
if(!tel.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示:格式为:(区号-电话号码),\n如 010-12345678");
else
alert(args[i+1]+"不合法，请重来!\n提示:格式为:(区号-电话号码),\n如 010-12345678");
}
}
break;
case "H"://是主页地址
{
var home=/^http:\/\/([0-9a-z\-_]+\.){2,3}[a-z]{2,3}(:[0-9]+)?(\/[^\/]*)*$/i;
if(!home.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示：必须以\"http://\"开头\n例如:http://www.sina.com.cn");
else
alert(args[i+1]+"不合法，请重来!\n提示：必须以\"http://\"开头\n例如:http://www.sina.com.cn");
}
}
break;
case "B"://是身份证号
{
var pid=/^([0-9]){15,18}$/i;
if(!pid.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示：为了少麻烦，请输入真实身份证号");
else
alert(args[i+1]+"不合法，请重来!\n提示：为了少麻烦，请输入真实身份证号");
}
}
break;
case "P"://是法人代码
{
var pid=/^([0-9]){8}\-[0-9]$/i;
if(!pid.test(val.value))
	{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示：为了少麻烦，请输入真实法人代码");
else
alert(args[i+1]+"不合法，请重来!\n提示：为了少麻烦，请输入真实法人代码");
	}
}
break;
case "D"://是日期
{
var mdate=/^[1-9][0-9]{3}\-[0-1]{0,1}[0-9]\-[0-3]{0,1}[0-9]$/i;
if(!mdate.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示:格式如:1999-04-02");
else
alert(args[i+1]+"不合法，请重来!\n提示:格式如为:格式如:1999-04-02");
}
}
break;
case "I"://是ip
{
var ip=/^([0-2]{0,1}[0-9]{0,1}[0-9]\.){3}[0-2]{0,1}[0-9]{0,1}[0-9]$/i;
if(!ip.test(val.value))
{
flagt=false;
if(args[i+1].charAt(0).toUpperCase()=="P"||args[i+1].charAt(0).toUpperCase()=="R")
alert(args[i+1].substring(1,args[i+1].length)+"不合法，请重来!\n提示:格式如:255.255.255.255");
else
alert(args[i+1]+"不合法，请重来!\n提示:格式如为:(255.255.255.255)");
}
}
break;
}//end of switch 
if(flagt==false)//类型检查没通过
break;
//字符替代

}

}
if(flag&&flagt)//所有检查都通过，提交
return true;//
else
	{
	val.focus();
	if(val.type=="INPUT")
	val.select();
return false;//否则不动作
	}

}
//说明:每个待检元素有三个参数,第一个为变量名，第二个为出错提示串，如果为口令，则在前面加p,
//如果为必须有的项则为r;第三个为数据类型：
//m,邮件；
//h,主页;
//s，字符串，后面为最小长度;
//n,数字,后为最大值;
//t,电话或传真;
//b,身份证号码
//p,法人代码
//i,IP地址
//d,日期

//检查是不是汉字,并只允许汉字输入
function checkhz()
{
if(event.keyCode<0xA0&&event.keyCode!=8){
event.cancelBubble=true;
event.returnValue=false;
}
}


//
// 取得Radio的值
//
function GetRadio(rname)
{
	for(i=0;i<rname.length;i++)
	if(rname[i].checked)
	{
	  return rname[i].value;

	}
return 0;
}
