/*
		author：小福   Version:2.1	
		表单验证主类，负责表单验证、数据绑定、表单完成执行方法
*/	
	function formCheck(formId)
	{
	  //初始化表单ID
		this.domId = formId; 
		//初始化需验证数组
		this.queryObj = [];
		//初始化验证完成函数
		this.finish = function(){return true;};
	}
	
	formCheck.prototype = {
	
		//数据绑定
		bindData:function(data){
			//数据绑定
			var oThis = this;
			this.queryObj = data.arr;
			var arr = this.queryObj;
			
			for(var i=0;i<arr.length;i++)
			{			
				if(arr[i].blur == 1 && arr[i].ajaxData)
				{					
					$Doc(arr[i].id).onblur = function(){oThis.ajaxCheck(this);};
				}			
				else if(arr[i].blur == 1)
					$Doc(arr[i].id).onblur = function(){oThis.check(this);};	
				$Doc(arr[i].id).setAttribute("arrIndex",i);
			}
			//绑定表单DOM
			this.dom = $Doc(this.domId);
			
			//绑定表单提交函数，验证数据完整性
			this.dom.onsubmit = function(){
				//表单验证
				var error = oThis.checkAll();
				if(error)
					oThis.finish();
				else
					return false;
			}
		},				
		//表单验证函数
		checkAll:function()
		{
			var tempValue;
			var ret = true;
			//遍历验证数组，检测是否符合条件，条件为正则和空字符
			var arr = this.queryObj;
			var arrReg;
				for(var i=0;i<arr.length;i++)
				{
					tempValue = $Doc(arr[i].id).value; 
					if(typeof(arr[i].reg.value)  != "undefined")
						{
							if(arr[i].reg.value!=tempValue){
								str = "<img src='images/error.gif' /> " + arr[i].info;
								ret = false;
								}
							else{
								str = "<img src='images/ok.gif' /> ";
							}
							try{
								$Doc(arr[i].txt).innerHTML = str;
							}catch(e){
								if(!ret)
									alert(arr[i].txt+"："+ tempValue +"\n填写数据不正确！\n错误信息："+ arr[i].info);
							}									
					}
					else {
						arrReg = arr[i].reg;
						if((typeof(arrReg)!="string" && !arrReg.test(tempValue)) || tempValue == arrReg){
							if($Doc(arr[i].txt) == null)
								alert(arr[i].txt+"："+ tempValue +"\n填写数据不正确！\n错误信息："+ arr[i].info);
							else
								$Doc(arr[i].txt).innerHTML = "<img src='images/error.gif' /> " +  arr[i].info;							
							ret = false;
						}
						else
							try{
								$Doc(arr[i].txt).innerHTML = "<img src='images/ok.gif' /> ";
							}catch(e){}
					}
				}				
				return ret;				
		},
		//单项验证函数
		check:function(obj)
		{
			var tempValue;
			var ret = true;
			var arr = this.queryObj;
			var i = obj.getAttribute("arrIndex");
			tempValue = $Doc(arr[i].id).value; 
			var arrReg;
			var str = "";
			if(typeof(arr[i].reg.value) != "undefined")
				{
					if(arr[i].reg.value!=tempValue){
						str = "<img src='images/error.gif' /> " + arr[i].info;
						ret = false;
						}
					else{
						str = "<img src='images/ok.gif' /> ";
						ret = true;
					}
					try{
						$Doc(arr[i].txt).innerHTML = str;
					}catch(e){
						if(!ret)
							alert(arr[i].txt+"："+ tempValue +"\n填写数据不正确！\n错误信息："+ arr[i].info);
					}	
					return ret;
				}
			arrReg = arr[i].reg;
			if((typeof(arrReg)!="string" && !arrReg.test(tempValue)) || tempValue == arrReg){
				if($Doc(arr[i].txt) == null)
					alert(arr[i].txt+"："+ tempValue +"\n填写数据不正确！\n错误信息："+ arr[i].info);
				else
					$Doc(arr[i].txt).innerHTML ="<img src='images/error.gif' /> " + arr[i].info;							
				ret = false;		
				}
			else 
				try{
					$Doc(arr[i].txt).innerHTML = "<img src='images/ok.gif' /> ";
				}catch(e){}
			return ret;	
		},		
		ajaxCheck:function(obj){
			var arr =  this.queryObj;
			if(!this.check(obj)) return;			
			var i = obj.getAttribute("arrIndex");
			try{
				$Doc(arr[i].txt).innerHTML = "<img src='images/loading.gif' /> ";
			}
			catch(e){}
			var ajaxData = arr[i].ajaxData;
			tempValue = $Doc(arr[i].id).value;
			var url = ajaxData.url;
			ajaxData.id = tempValue;
			$.post(url, ajaxData, function (data, textStatus){							
							//返回的 data 可以是 xmlDoc, jsonObj, html, text, 等等.
							if(data.result == "error" && $Doc(arr[i].txt) != null)
								$Doc(arr[i].txt).innerHTML = "<img src='images/error.gif' /> " + data.msg;
							else if(data.result != "ok")
								alert(arr[i].txt+"："+ tempValue +"\n填写数据不正确！\n错误信息："+ data.msg);
							else
								try{
									$Doc(arr[i].txt).innerHTML = "<img src='images/ok.gif' /> ";
								}catch(e){}
					},"json"); 
		},
		//设置验证完成函数
		setFinish:function(func){
			if(typeof(func)!="function")
				return;
			this.finish = func;	
		}		
	}
/*
	formCheckData类，包含，文本框ID，正则表达式(空字符),提示说明信息(提示说明id)，错误说明信息,事件绑定
*/	
	function formCheckData(key,value,text,info,blur,ajaxData)
	{
		this.id = key;
		this.reg = value;
		this.txt = text;
		this.info = info;
		this.blur = blur;
		this.ajaxData = ajaxData;
	}
	formCheckData.prototype = {
		//设置所有信息
		setAll:function(key,value,text,info,blur,ajaxData){
			this.id = key;
			this.reg = value;
			this.txt = text;
			this.info = info;		
			this.blur = blur;
			this.ajaxData = ajaxData;
		},
		//设置指定信息
		set:function(key,value){
			this[key] = value;
		}
	}
/* formCDataList类，保存一组formCheckData对象*/	
	function formCDataList()
	{
		this.arr = [];
	}
	formCDataList.prototype = {
	//添加
		add:function(data){
			data.index = this.arr.length;
			this.arr.push(data);
		},
	//删除	
		del:function(data){
			this.arr.splice(data.index,1);
		}
	}
	
