/*
旗帜软件通用脚本检测程序V2.0
设计：董勇
制作：董勇
Copywrite by ddy（董勇） (c)2004，All right reserved!
山东旗帜软件版权所有

修改：贾勇 2008-7-10（用于asp.net）
*/
/*

每个表单项可以制定的属性包括：
				0、ischeck..........=true，该表单项需要检测
				1、notnull..........=true不能空
				2、maxlengthbyte....最多输入字符（汉字算两个字符）
				3、isemail..........=true，必须是邮箱格式
				4、isnum............=true必须是数字
				5、ischinese........=true必须是汉字
				6、bytelength.......输入字符的长度
				7、isenglish........=true必须是英文字母
				8、minlengthbyte....最少输入字符
				9、specialchar..... 检测特殊字符（双引号和逗号用汉字输入状态下的替代,）
				10、isenornum.......必须是字母、数字或下划线
				11、istel...........固定电话（可以+开头，可包含短横线）（最新不可加短线）
				12、isurl...........url验证
				13、mustselect......必选（用于下拉列表，值为-1时表示没有选择）	
				14、isequal.........控件值是否相等（该值为需要比较的控件名）
				15、message.........本表单项的描述，用于提示信息
				
				
				所有属性字母均为小写		

*/


function QZFormCheck(which)
{
	var zddy;
	var mess="";
	if(which)
		zddy=document.all[which];
	else
		zddy=document.all;
		
	var l=zddy.length;
	
	for(var i=0;i<l;i++)
	{
		
		var ddyItem=zddy.item(i);
		
		if(ddyItem.type=="submit"||ddyItem.type=="reset"||ddyItem.type=="button")
		{
			if(ddyItem.isdisabled)
			{
				if(ddyItem.isdisabled=="true")
					ddyItem.disabled=true;
			}
			
		}
		
		
		if(ddyItem.ischeck)
		{
			if(ddyItem.ischeck=="true")
			{
				//开始检测该控件的所需项目
				/*
				1、notnull..........不能空
				2、maxlengthbyte....最多输入字符（汉字算两个字符）
				3、isemail..........Email检测
				4、isnum............必须是数字
				5、ischinese........必须是汉字
				6、bytelength.......输入字符必须的长度
				7、isenglish........必须是英文字母
                8、minlengthbyte....最少输入字符
                9、specialchar..... 检测特殊字符（双引号和逗号用汉字输入状态下的替代,）
                10、isenornum.......必须是字母或数字
                11、istel...........固定电话（可以+开头，可包含短横线）
                12、isurl...........url验证
				13、mustselect......必选（用于下拉列表，值为-1时表示没有选择）			
				14、isequal.........控件值是否相等（该值为需要比较的控件名）
				*/
								
				//   1   不能空
				if(ddyItem.notnull)
				{
					if(ddyItem.notnull=="true")
					{
						if(isNull(ddyItem.value))
						{
							if(ddyItem.message)
								mess=ddyItem.message+"不能空！";
							else
								mess=ddyItem.name+"不能空！";
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					}
				}
				
				//   2  最多不能超过N个字节内容
				if(ddyItem.maxlengthbyte)
				{
						if(ddyItem.value!="")
						{
							if(isOverFlow(ddyItem.value,ddyItem.maxlengthbyte))
							{
								if(ddyItem.message)
									mess=ddyItem.message+"不能超过"+ddyItem.maxlengthbyte+"字节（汉字算两字节）！";
								else
									mess=ddyItem.name+"不能超过"+ddyItem.maxlengthbyte+"字节（汉字算两字节）！";	
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
								
							}
						}
					
				}
				
				
				//   3   必须是Email
				
			    if(ddyItem.isemail)
			    {
					if(ddyItem.isemail=="true")
					{
						if(ddyItem.value!="")
						{
							if(!isEmail(ddyItem.value))
							{
								if(ddyItem.message)
									mess="输入的"+ddyItem.message+"格式不正确！";
								else
									mess="输入的"+ddyItem.name+"格式不正确！";
									
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
							}
						}
							
					}
			    }
				
				
				//   4    必须是数字
				
				if(ddyItem.isnum)
				{
					if(ddyItem.isnum=="true")
					{
						if(ddyItem.value!="")
						{
							if(isNaN(ddyItem.value))
							{
								if(ddyItem.message)
									mess=ddyItem.message+"必须是数字！";
								else
									mess=ddyItem.name+"必须是数字！";
								
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
								
							}
						}
					}
				}
				

				//    5    必须是汉字
				
				
				if(ddyItem.ischinese)
				{
					if(ddyItem.ischinese=="true")
					{
						if(ddyItem.value!="")
						{
							if(!isChinese(ddyItem.value))
							{
								if(ddyItem.message)
									mess=ddyItem.message+"必须是汉字！";
									
								else
									mess=ddyItem.name+"必须是汉字！";
								
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
								
							}
						}
					}
				}

				
				//     6   必须输入N字节内容
				
				if(ddyItem.bytelength)
				{
					if(ddyItem.value!="")
					{
						if(!isLen(ddyItem.value,ddyItem.bytelength))
						{
							if(ddyItem.message)
								mess=ddyItem.message+"必须是"+ddyItem.bytelength+"字节（汉字算两字节）！";
							else
								mess=ddyItem.name+"必须是"+ddyItem.bytelength+"字节（汉字算两字节）！";
							
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					}
				}
				
				
				//     7   必须是字母
				
				
				if(ddyItem.isenglish)
				{
					if(ddyItem.isenglish=="true")
					{
						if(ddyItem.value!="")
						{
							if(!isEnglish(ddyItem.value))
							{
								if(ddyItem.message)
									mess=ddyItem.message+"必须是英文字母！";
									
								else
									mess=ddyItem.name+"必须是英文字母！";
								
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
								
							}
						}
					}
				}
				
				

                  //     8    最少输入字节

                 if(ddyItem.minlengthbyte)
				{
						if(ddyItem.value!="")
						{
							if(isUnderL(ddyItem.value,ddyItem.minlengthbyte))
							{
								if(ddyItem.message)
									mess=ddyItem.message+"最少输入"+ddyItem.minlengthbyte+"字节（汉字算两字节）！";
								else
									mess=ddyItem.name+"最少输入"+ddyItem.minlengthbyte+"字节（汉字算两字节）！";	
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
								
							}
						}
					
				}
				
				
				    //    9  检测特殊字符（双引号和逗号用汉字输入状态下的替代,）

                 if(ddyItem.specialchar)
				{
						var s=ddyItem.specialchar.replace(/“/g,"\"");
						
						if(isSpecialChar(ddyItem.value,s))
						{
							var s2=s.replace(/,/g,"、");
								s2=s2.replace(/，/g,",");
							if(ddyItem.message)
								mess=ddyItem.message+"不能输入非法字符："+s2+"！";
							else
								mess=ddyItem.name+"不能输入非法字符："+s2+"！";	
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					
				}
				
			//10 只能是数字、字母或下划线

				if(ddyItem.isenornum)
				{
												
						if(!isEnOrNum(ddyItem.value))
						{
							
							if(ddyItem.message)
								mess=ddyItem.message+"只能是数字、字母或下划线";
							else
								mess=ddyItem.name+"只能是数字、字母或下划线";	
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					
				}	


			//11 电话号码

				if(ddyItem.istel)
				{
												
						if(!isTel(ddyItem.value))
						{
							
							if(ddyItem.message)
								mess=ddyItem.message+"格式：13406937299（手机）053188874600（小灵通）！";//格式：0531-88874600
							else
								mess=ddyItem.name+"格式：13406937299（手机）053188874600（小灵通）！";
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					
				}	

			//12 URL

				if(ddyItem.isurl)
				{
												
						if(!isUrl(ddyItem.value))
						{
							
							if(ddyItem.message)
								mess=ddyItem.message+"格式不正确！";
							else
								mess=ddyItem.name+"格式不正确！";	
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					
				}	

				//13 必选（用于下拉列表，值为-1时表示没有选择）
				if(ddyItem.mustselect)
				{
						if(ddyItem.value=="-1")
						{
								if(ddyItem.message)
									mess="输入的"+ddyItem.message+"为必选项！";
								else
									mess="输入的"+ddyItem.name+"为必选项！";
									
								alert(mess);
								if(ddyItem.type!="hidden")
									ddyItem.focus();
								event.returnValue = false;
								return false;
						}
				}
							

			//14 isequal

				if(ddyItem.isequal != null)
				{
						var obj = ddyItem.isequal;
						var objmessage = "";
						if(document.getElementById(obj).message)
						{
							objmessage = document.getElementById(obj).message;
						}
						var objname = document.getElementById(obj).name;
						if(document.getElementById(obj).value != ddyItem.value)			
						{
							if(ddyItem.message && objmessage!="")
								mess=ddyItem.message+"与"+objmessage+"不相同！";
							else
								mess=ddyItem.name+"与"+objname+"不相同！";
							alert(mess);
							if(ddyItem.type!="hidden")
								ddyItem.focus();
							event.returnValue = false;
							return false;
							
						}
					
				}	

				//结束一个控件的检测
				
			}
		}
	}
	
	return true;
	
}
function isNull(value)
{
	value=value.replace(/\s/g, "");
	if(value=="")
		return true;
	else
		return false;
}

function isSpecialChar(v,str)
{
	

	var strs=str.split(",");
	
	for(var i=0;i<strs.length+1;i++)
	{
		//alert(strs[i]);
		if(strs[i]=="，")
		{
			if(v.indexOf(",")>-1)
				return true
			
		}else
		{
			if(v.indexOf(strs[i])>-1)
				return true;
		}
	}
	return false;
}

function isOverFlow(str,maxnum)
{
	if(maxnum=="-1")
		return false;
	if(parseInt(strlen(str))>parseInt(maxnum))
		return true;
	else
		return false;
}

function isUnderL(str,minnum)
{
	if(parseInt(strlen(str))<parseInt(minnum))
		return true;
	else
		return false;
}


function strlen(str){
    var l=str.length;
    var n=l;
    for(var i=0;i<l;i++)
    {
       if(str.charCodeAt(i)<0||str.charCodeAt(i)>255) n++;
           if(str.charCodeAt(i)==32) n--;
     }
       return n;
}
function isEmail(mail){
	re=/(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
	x=re.exec(mail);
	if(x==null)
		return false;
	else
		return true;
	}
function isEnglish(str)
{
	var re=/[a-zA-Z]/gi;
	var x=str.replace(re,"");
	if(x=="")
		return true;
	else
		return false;
}
function isChinese(str)
{
	var l=str.length;
    var n=l;
    for(var i=0;i<l;i++)
    {
       if(str.charCodeAt(i)>0&&str.charCodeAt(i)<255)
       return false;
       
     }
     return true;
}
function isEnOrNum(str)
{
	var re=/[a-zA-Z0-9_]/gi;
	var x=str.replace(re,"");
	if(x=="")
		return true;
	else
		return false;
}
function isTel(str)
{
	//var re=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	var   re=/(^(0\d{2,3}\d{7,8}$)|(13|15|18)\d{9}$)/;
	var x=str.replace(re,"");
	if(x=="")
		return true;
	else
		return false;
}

function isUrl(str)
{
	var re=/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&amp;?[a-zA-Z0-9_-](\?)?)*)*$/i; 
	var x=str.replace(re,"");
	if(x=="")
		return true;
	else
		return false;
}

function isLen(str,num)
{
	if(parseInt(strlen(str))==parseInt(num))
		return true;
	else
		return false;
}