/**
 * Check类
 * 功能：表单验证
 *     
 *     说明：
 *     1.text、select使用的是id，radio、checkbox使用的是name，提示信息ID的命名：msg_[id/name]
 *     2.event支持
 *     (1)noNull              不允许为空
 *     (2)null                允许为空
 *     (3)exp:正则表达式       正则验证
 *     (4)ajax:url            Ajax验证  
 *     url代码说明： echo "1";表示验证通过
 *     (5)same:id             控件值跟id控件的值是否相等
 *     (6)noSame:id           控件值跟id控件的值是否不相等
 *     (7)len:6,20   或者  len:20       长度验证
 *     
 *     3.myclass为成功失败的样式
 *     
 *     例子：
		<form id="fmTest">
		<input type="text" id="texttest" value="" event="noNull--exp:/^\d+$/--ajax:http://www.yesoa.com" msg="ok:ok|err:err|ajax:ajaxerr" myclass="success|fail"/><span id="msg_texttest"></span>
		<input type="text" id="texttest2" value="" event="exp:/^123\d+$/" msg="ok:ok|err:err" /><span id="msg_texttest2"></span>
		<input type="text" id="password" value="" event="exp:/^123\d+$/" msg="ok:ok|err:err" /><span id="msg_password"></span>
		<input type="text" id="password2" value="" event="exp:/^123\d+$/,same:password" ignore="aaa" msg="ok:ok|err:不一致" /><span id="msg_password2"></span>
		<br />
		<select id="test3" event="noNull" msg="ok:ok|err:err">
			<option value="">--</option>
			<option value="1">1</option>
			<option value="2">2</option>
			<option value="3">3</option>
		</select>
		<span id="msg_test3"></span>
		<br />
		<input type="checkbox" name="tt" event="noNull" msg="ok:ok|err:err"/>aa<br />
		<input type="checkbox" name="tt" />bb<br />
		<input type="checkbox" name="tt" />cc<br />
		<input type="checkbox" name="tt" />dd<br />
		<input type="checkbox" name="tt" />ee<br />
		<input type="submit" id="fmsubmit" value="提交" />
		<span id="msg_tt"></span>
		</form>
 */	
var gAjaxArr = Array();
var gFormArrOld = Array();
var gFormArrNew = Array();
var gCurForm = null;
if( typeof(Check) != 'function' ){
	var defaultOkMsg = "操作成功，3秒后自动关闭";
	var defaultErrMsg = "操作失败，3秒后自动关闭";
	var defaultNullNoticeMsg = "请输入公告内容";	
	var defaultNoChangedMsg = "设置没有改变，不需要保存";
	var Check = function (formId){
		gAjaxArr[formId] = 0;
		Check.superclass.constructor.call(this);
		var browserName = this.browserName;
		var browserVersion = this.browserVersion;
		var formId = formId;
		if(typeof($("#"+formId).attr("way")) != 'undefined'){
			var formWay = $("#"+formId).attr("way");
			var formAction = $("#"+formId).attr("action");
			if(typeof($("#"+formId).attr("reFresh")) != 'undefined'){
				var formReFresh = $("#"+formId).attr("reFresh");
			}else{
				var formReFresh = 1;
			}
			if(typeof($("#"+formId).attr("noChangeMsg")) != 'undefined'){
				if(!_isNull($("#"+formId).attr("noChangeMsg"))){
					var noChangeMsg = $("#"+formId).attr("noChangeMsg");
				}else{
					var noChangeMsg = defaultNoChangedMsg;
				}				
			}else{
				var noChangeMsg = defaultNoChangedMsg;
			}
		}else{
			var formWay = null;
		};
		//保存提交前数据
		this.save = function(){
			gFormArrOld[formId] = saveFormData(formId);
		};
		
		/**
		 * 失去焦点事件
		 */
		this.blur = function(){
			$("#"+formId+" input[type=text][event],#"+formId+" input[type=file][event],#"+formId+" input[type=password][event],#"+formId+" select[event],#"+formId+" textarea[event]").each(function(){
				this.onblur = function(){
					_action("text", $(this), formId);
				};
			});
			$("#"+formId+" select[event]").each(function(){
				this.onblur = function(){
					_action("select", $(this), formId);
				};
			});
			$("#"+formId+" input[type=radio][event]").each(function(){
				this.onblur = function(){
					_action("radio", $(this), formId);
				};
			});
			$("#"+formId+" input[type=checkbox][event]").each(function(){
				this.onblur = function(){					
					_action("checkbox", $(this), formId);
				};
			});
		};
		
		/**
		 * 获得焦点事件
		 */
		this.focus = function(){
			$("#"+formId+" input[type=text][event],#"+formId+" input[type=password][event],#"+formId+" select[event],#"+formId+" textarea[event],#"+formId+" select[event]").each(function(){
				this.onfocus = function(){
					_actionDefaultMsg($(this));
				};
			});
		};
		
		if(browserName == 'chrome'){
			var checkboxArr = Array();
			$("#"+formId+" input[type=checkbox][event]").each(function(){
				var inputName = $(this).attr("name");
				if(!_isNull(inputName) && !checkboxArr.inArray(inputName)){
					checkboxArr[checkboxArr.length] = inputName;
				}
			});			
			this.click = function(){
				for(var i=0; i<checkboxArr.length; i++){
					var inputName = checkboxArr[i];
					$("#"+formId+" input[type=checkbox][name="+inputName+"]").each(function(){
						this.onclick = function(){						
							$(this).focus();
						}
					});
				}
			}			
		};
		
		/**
		 * 提交事件
		 */
		this.submit = function(){
			$("#"+formId).submit(function(obj){
				if(formWay == "ajax"){
					gFormArrNew[formId] = saveFormData(formId);
					if(typeof($("#"+formId).attr("event")) != 'undefined'){
						var eventArrTmp = $("#"+formId).attr("event").split("--");
						var eventArr = Array(eventArrTmp.length);
						for(var i = 0; i < eventArrTmp.length; i++){
							var tmpIndex = eventArrTmp[i].indexOf(":");
							var tmpLen = eventArrTmp[i].length;
							if(tmpIndex > 0){
								eventArr[eventArrTmp[i].substring(0,tmpIndex)] = eventArrTmp[i].substring(tmpIndex+1, tmpLen);
							}else{
								eventArr[eventArrTmp[i]] = 1;
							}
						}
						if(typeof(eventArr['noCompare']) == 'undefined'){
							if(fnIsChanged(formId) == false){TINY.box.show(noChangeMsg,0,0,0,0,3); return false;}
						}	
					}else{
						if(fnIsChanged(formId) == false){TINY.box.show(noChangeMsg,0,0,0,0,3); return false;}
					}				
				}
				var bool = true;
				$("#"+formId+" input[type=text][event],#"+formId+" input[type=file][event],#"+formId+" input[type=hidden][event],#"+formId+" input[type=password][event],#"+formId+" textarea[event]").each(function(){
					if(_action("text", $(this), formId, 'submit') == false){
						bool = false;
					}					
				});
				$("#"+formId+" select[event]").each(function(){
					if(_action("select", $(this), formId, 'submit') == false){
						bool = false;
					}
				});
				$("#"+formId+" input[type=radio][event]").each(function(){					
					if(_action("radio", $(this), formId, 'submit') == false){
						bool = false;
					}
				});					
				$("#"+formId+" input[type=checkbox][event]").each(function(){					
					if(_action("checkbox", $(this), formId, 'submit') == false){
						bool = false;
					}
				});	
				if(bool==true && formWay == "ajax"){
					var params = _getFormItem(formId);
					var msgArr = Array();
					if(typeof($("#"+formId).attr("msg")) != "undefined"){
						var msgArrTmp = $("#"+formId).attr("msg").split("|");
						var msgArr = Array(msgArrTmp.length);
						for(var i = 0; i < msgArrTmp.length; i++){
							var tmp = msgArrTmp[i].split(":");
							msgArr[tmp[0]] = typeof(tmp[1]) == "undefined" ? null : tmp[1];
						}
					}
					if(typeof(msgArr['ok']) == "undefined"){
						okMsg = defaultOkMsg;
					}else{
						okMsg = msgArr['ok']+"  3秒后自动关闭";
					}
					if(typeof(msgArr['err']) == "undefined"){
						errMsg = defaultErrMsg;
					}else{
						errMsg = msgArr['err']+"  3秒后自动关闭";
					}
					$.ajax({
						type: "POST",
						url: $("#"+formId).attr("action"),
						dataType:"text",
						data: params,
						beforeSend: function(XMLHttpRequest){showLoading();},
						success: function(msg){
							if(msg=="success"){
								if(browserVersion == 6){hiddenselect();}
								if(formReFresh==1){
									TINY.box.show(okMsg,0,0,0,0,2);
									setInterval("myReload()",2000);
								}else{
									gCurForm = formId;
									TINY.box.show(okMsg,0,0,0,0,2);
									setInterval("myBack()",2000);
									if(browserVersion == 6){showselect();}
								}								
							}else{
								if(browserVersion == 6){showselect();}
								TINY.box.show(errMsg,0,0,0,0,2);
								setInterval("myReload()",2000);
							}},
						complete: function(XMLHttpRequest, textStatus){hideLoading();},
						error: function(){TINY.box.show(errMsg,0,0,0,0,3);}
					}); 
					return false;					
				}else{
					return bool;
				};		
			});			
		};
		
		function _getFormItem(formId){
			var str = '';
			$("#"+formId+" input[type=text],#"+formId+" input[type=hidden],#"+formId+" input[type=password],#"+formId+" textarea,#"+formId+" select").each(function(){
				var inputName = $(this).attr("name");
				var inputValue = $(this).val();
				if(!_isNull(inputName)){
					if(str == ''){
						str = str + inputName+'='+encodeURIComponent(inputValue);
					}else{
						str = str + '&'+inputName+'='+encodeURIComponent(inputValue);
					}		
				}	
			});
			$("#"+formId+" input[type=radio]").each(function(){
				var inputName = $(this).attr("name");
				if(!_isNull(inputName) && $(this).attr("checked")==true){
					var inputValue = $(this).val();
					if(str == ''){
						str = str + inputName+'='+inputValue;
					}else{
						str = str + '&'+inputName+'='+inputValue;
					}	
				}
			});
			var checkboxArr = Array();
			$("#"+formId+" input[type=checkbox]").each(function(){
				var inputName = $(this).attr("name");
				if(!_isNull(inputName) && !checkboxArr.inArray(inputName)){
					checkboxArr[checkboxArr.length] = inputName;
				}
			});
			for(var i=0; i<checkboxArr.length; i++){
				var inputName = checkboxArr[i];
				var myInputName = inputName.replace(/\[\]/,"");
				var j=0;
				$("#"+formId+" input[type=checkbox][name="+inputName+"]").each(function(){
					var inputValue = $(this).val();
					if(!_isNull(inputValue) && $(this).attr("checked")==true){
						str = str + '&'+myInputName+'['+j+']='+inputValue;
						j++;
					}					
				});
				if(j == 0){
					str = str + '&'+inputName+'='+"";
				}				
			}
			return str;
		};
		
		/**
		 * 事件处理
		 * @param object obj
		 * @return boolean
		 */
		function _action(tagName, obj, formId, actionType){
			if(typeof(arguments[3]) != "undefined"){
				var isSubmit = true;
			}else{var isSubmit = false;}
			var eventArrTmp = $(obj).attr("event").split("--");
			var eventArr = Array(eventArrTmp.length);
			for(var i = 0; i < eventArrTmp.length; i++){
				var tmpIndex = eventArrTmp[i].indexOf(":");
				var tmpLen = eventArrTmp[i].length;
				if(tmpIndex > 0){
					eventArr[eventArrTmp[i].substring(0,tmpIndex)] = eventArrTmp[i].substring(tmpIndex+1, tmpLen);
				}else{
					eventArr[eventArrTmp[i]] = 1;
				}
			}
			var msgArr = Array(3);
			if(typeof($(obj).attr("msg")) == "undefined"){
				msgArr['default'] = '';
				msgArr['ok'] = '';
				msgArr['err'] = '';
			}else{
				var msgArrTmp = $(obj).attr("msg").split("|");
				var msgArr = Array(msgArrTmp.length);
				for(var i = 0; i < msgArrTmp.length; i++){
					var tmp = msgArrTmp[i].split(":");
					msgArr[tmp[0]] = typeof(tmp[1]) == "undefined" ? null : tmp[1];
				}
				if(typeof(msgArr['default']) == "undefined"){msgArr['default'] = "";}
				if(typeof(msgArr['ok']) == "undefined"){msgArr['ok'] = "";}
				if(typeof(msgArr['err']) == "undefined"){msgArr['err'] = "";}
			}
			if(msgArr['default'] == ""){
				//if(typeof($("#msg_"+id) != "undefined")){msgArr['default'] = $("#msg_"+id).html();}
			}
			var classNameArr = Array(2);
			if(typeof($(obj).attr("myclass")) == "undefined"){
				classNameArr[0] = "register_ok";
				classNameArr[1] = "register_err";				
			}else{				
				var classNameArr = $(obj).attr("myclass").split("|");
				if(typeof(classNameArr[0]) == "undefined"){classNameArr[0] = "register_ok";}
				if(typeof(classNameArr[1]) == "undefined"){classNameArr[1] = "register_err";}
			}			
			if(tagName == "text"){
				var inputType = $(obj).attr("type");
				var bool = true;
				var id = obj.attr("id");
				var value = $(obj).val().trim();
				if(typeof($(obj).attr("ignore"))!='undefined'){
					if(value==$(obj).attr("ignore")){value='';};
				}				
				if(typeof(eventArr['noNull']) != 'undefined'){
					if( !_isNull(value) ){
						if(typeof(eventArr['same']) == 'undefined' && typeof(eventArr['length']) == 'undefined' && typeof(eventArr['exp']) == 'undefined' && typeof(eventArr['ajax']) == 'undefined'){
							if(isSubmit && typeof($("#msg_"+id).attr("class")) != "undefined"){
								if(inputType == "hidden"){
									$("#msg_"+id).removeClass(classNameArr[0]);
									$("#msg_"+id).removeClass(classNameArr[1]);
									$("#msg_"+id).html(msgArr['default']);	
								}else{
									if($("#msg_"+id).attr("class").indexOf(classNameArr[1]) == -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);	
									}else{
										return false;
									}		
								}				
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]); 
								$("#msg_"+id).html(msgArr['ok']);
							}							
						}			
					}else{
						$("#msg_"+id).removeClass(classNameArr[0]);
						$("#msg_"+id).addClass(classNameArr[1]);
						$("#msg_"+id).html(msgArr['err']);
						return false;
					}
				}
				if(typeof(eventArr['null']) != 'undefined'){
					if( _isNull(value) ){
						$("#msg_"+id).removeClass(classNameArr[0]);
						$("#msg_"+id).removeClass(classNameArr[1]);
						$("#msg_"+id).html(msgArr['default']);
						return true;
					}
				}
				if(typeof(eventArr['nullNotice']) != 'undefined'){
					if( $("#"+id).val() == '' && $("#"+eventArr['nullNotice']).val()=='' ){
						TINY.box.show(defaultNullNoticeMsg,0,0,0,0,2);
						return false;
					}
				}
				if(typeof(eventArr['len']) != 'undefined'){
					var lengthVal = eventArr['len'].toString();
					if(lengthVal.indexOf(",") == -1){
						var maxLen = lengthVal;
						var bool = fnStrLen(value,maxLen);
					}else{
						var tmp = lengthVal.split(",");
						var minLen = tmp[0];
						var maxLen = tmp[1];
						var bool = fnStrLen(value,maxLen,minLen);
					}
					if(bool){
						if(typeof(eventArr['same']) == 'undefined' && typeof(eventArr['exp']) == 'undefined' && typeof(eventArr['ajax']) == 'undefined'){
							if(isSubmit && typeof($("#msg_"+id).attr("class")) != "undefined"){
								if(inputType == "hidden"){
									$("#msg_"+id).removeClass(classNameArr[0]);
									$("#msg_"+id).removeClass(classNameArr[1]);
									$("#msg_"+id).html(msgArr['default']);	
								}else{
									if($("#msg_"+id).attr("class").indexOf(classNameArr[1]) == -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);	
									}else{
										return false;
									}		
								}				
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]); 
								$("#msg_"+id).html(msgArr['ok']);
							}							
						}	
					}else{
						$("#msg_"+id).removeClass(classNameArr[0]);
						$("#msg_"+id).addClass(classNameArr[1]);
						$("#msg_"+id).html(msgArr['err']);
						return false;
					}
				}
				if(typeof(eventArr['same']) != 'undefined'){
					if( $("#"+id).val() == $("#"+eventArr['same']).val() ){
						if(typeof(eventArr['exp']) == 'undefined' && typeof(eventArr['ajax']) == 'undefined'){
							if(isSubmit){
								if(typeof($("#msg_"+id).attr("class")) != "undefined"){
									if($("#msg_"+id).attr("class").indexOf(classNameArr[1]) == -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);	
									}else{
										return false;
									}
								}
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]); 
								$("#msg_"+id).html(msgArr['ok']);
							}
						}
					}else{
						if( _isNull($("#"+id).val()) ){
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).removeClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['default']);	
						}else{
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).addClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['err']);								
						}
						return false;
					}
				}
				if(typeof(eventArr['exp']) != 'undefined'){
					if( _exp(eventArr['exp'],value) ){
						if(typeof(eventArr['ajax']) == 'undefined'){							
							if(isSubmit){
								if(typeof($("#msg_"+id).attr("class")) != "undefined"){
									if($("#msg_"+id).attr("class") .indexOf(classNameArr[0]) != -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);
									}
								}
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]);
								$("#msg_"+id).html(msgArr['ok']);
							}
						}
					}else{
						if( _isNull(value) ){
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).removeClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['default']);
						}else{
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).addClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['err']);	
						}						
						return false;
					}
				}
				if(typeof(eventArr['range']) != 'undefined'){
					if( _range(eventArr['range'],value) ){
						if(typeof(eventArr['ajax']) == 'undefined'){							
							if(isSubmit){
								if(typeof($("#msg_"+id).attr("class")) != "undefined"){
									if($("#msg_"+id).attr("class") .indexOf(classNameArr[0]) != -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);
									}
								}
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]);
								$("#msg_"+id).html(msgArr['ok']);
							}
						}
					}else{
						if( _isNull(value) ){
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).removeClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['default']);
						}else{
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).addClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['err']);	
						}						
						return false;
					}
				}
				if(typeof(eventArr['fun']) != 'undefined'){
					if( _fun(eventArr['fun']) ){
						if(typeof(eventArr['ajax']) == 'undefined'){							
							if(isSubmit){
								if(typeof($("#msg_"+id).attr("class")) != "undefined"){
									if($("#msg_"+id).attr("class") .indexOf(classNameArr[0]) != -1){
										$("#msg_"+id).removeClass(classNameArr[0]);
										$("#msg_"+id).removeClass(classNameArr[1]);
										$("#msg_"+id).html(msgArr['default']);
									}
								}
							}else{
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).addClass(classNameArr[0]);
								$("#msg_"+id).html(msgArr['ok']);
							}
						}
					}else{
						if( _isNull(value) ){
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).removeClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['default']);
						}else{
							$("#msg_"+id).removeClass(classNameArr[0]);
							$("#msg_"+id).addClass(classNameArr[1]);
							$("#msg_"+id).html(msgArr['err']);	
						}						
						return false;
					}
				}
				if(typeof(eventArr['ajax']) != 'undefined'){
					if(isSubmit){
						if(gAjaxArr[formId]>0){return false;}
						if(typeof($("#msg_"+id).attr("class")) != "undefined"){
							if($("#msg_"+id).attr("class").indexOf(classNameArr[1]) != -1){
								return false;								
							}else{
								$("#msg_"+id).removeClass(classNameArr[0]);
								$("#msg_"+id).removeClass(classNameArr[1]);
								$("#msg_"+id).html(msgArr['default']);					
							}	
						}					
					}else{
						var oAjax = new Ajax();
						gAjaxArr[formId] = gAjaxArr[formId] + 1;
						oAjax.postCheck(eventArr['ajax'],{textVal:value}, formId, "msg_"+id, "POST", msgArr, classNameArr);
					}
				}
				return bool;
			}else if(tagName == "select"){
				var id = obj.attr("id");
				if(typeof(eventArr['noNull']) != "undefined"){
					var selectVal = $("select[id="+id+"]").val();
					if( !_isNull(selectVal) ){						
						if(isSubmit){
							if(typeof($("#msg_"+id).attr("class")) != "undefined"){
								if($("#msg_"+id).attr("class").indexOf(classNameArr[1]) == -1){
									$("#msg_"+id).removeClass(classNameArr[0]);
									$("#msg_"+id).removeClass(classNameArr[1]);
									$("#msg_"+id).html(msgArr['default']);
								}
							}							
						}else{
							$("#msg_"+id).removeClass(classNameArr[1]);
							$("#msg_"+id).addClass(classNameArr[0]);
							$("#msg_"+id).html(msgArr['ok']);
						}
						return true;
					}else{
						$("#msg_"+id).removeClass(classNameArr[0]);
						$("#msg_"+id).addClass(classNameArr[1]);
						$("#msg_"+id).html(msgArr['err']);
						return false;
					}
				}
			}else if(tagName == "radio" || tagName == "checkbox") {
				var name = obj.attr("name");				
				if(typeof(eventArr['noNull']) != 'undefined'){
					var selectedNum = 0;
					$("#"+formId+" input[type="+tagName+"][name="+name+"]").each(function(){
						if($(this).attr("checked")==true){
							selectedNum ++;
						}
					});
					if( selectedNum ){
						if(isSubmit){
							if(typeof($("#msg_"+name).attr("class")) != "undefined"){
								if($("#msg_"+name).attr("class").indexOf(classNameArr[1]) == -1){
									$("#msg_"+name).removeClass(classNameArr[0]);
									$("#msg_"+name).removeClass(classNameArr[1]);
									$("#msg_"+name).html(msgArr['default']);
								}
							}
						}else{
							$("#msg_"+name).removeClass(classNameArr[1]);
							$("#msg_"+name).addClass(classNameArr[0]);
							$("#msg_"+name).html(msgArr['ok']);
						}
						return true;
					}else{
						$("#msg_"+name).removeClass(classNameArr[0]);
						$("#msg_"+name).addClass(classNameArr[1]);
						$("#msg_"+name).html(msgArr['err']);
						return false;
					}
				}
			}
		};
		
		/**
		 * 恢复默认提示
		 * @param object obj
		 */
		function _actionDefaultMsg(obj){
			var id = obj.attr("id");
			var msgArr = Array(3);
			if(typeof($(obj).attr("msg")) == "undefined"){
				msgArr['default'] = '';
				msgArr['ok'] = '';
				msgArr['err'] = '';
			}else{
				var msgArrTmp = $(obj).attr("msg").split("|");
				var msgArr = Array(msgArrTmp.length);
				for(var i = 0; i < msgArrTmp.length; i++){
					var tmp = msgArrTmp[i].split(":");
					msgArr[tmp[0]] = typeof(tmp[1]) == "undefined" ? null : tmp[1];
				}
				if(typeof(msgArr['default']) == "undefined"){msgArr['default'] = "";}
				if(typeof(msgArr['ok']) == "undefined"){msgArr['ok'] = "";}
				if(typeof(msgArr['err']) == "undefined"){msgArr['err'] = "";}
			}
			if(msgArr['default'] == ""){
				//if(typeof($("#msg_"+id) != "undefined")){msgArr['default'] = $("#msg_"+id).html();}
			}
			var classNameArr = Array(2);
			if(typeof($(obj).attr("myclass")) == "undefined"){
				classNameArr[0] = "register_ok";
				classNameArr[1] = "register_err";				
			}else{
				var classNameArr = $(obj).attr("myclass").split("|");
				if(typeof(classNameArr[0]) == "undefined"){classNameArr[0] = "register_ok";}
				if(typeof(classNameArr[1]) == "undefined"){classNameArr[1] = "register_err";}
			}
			var value = $(obj).val();
			$("#msg_"+id).removeClass(classNameArr[0]);
			$("#msg_"+id).removeClass(classNameArr[1]);
			$("#msg_"+id).html(msgArr['default']);
		};
		
		/**
		 * 正则验证
		 * @param string pat   格式
		 * @param string val   需验证的值
		 * @return boolean
		 */
		function _exp( pat, val){
			if( pat =='' || pat == null || pat.length<1 ){
				return false;
			}else{
				pat = eval(pat);
				return pat.test( val );			
			}
		};	
		
		/**
		 * 范围验证
		 * @param string str   范围
		 * @param string val   需验证的值
		 * @return boolean
		 */
		function _range( str, val){
			if( str =='' || str == null || str == '-'){
				return true;
			}else{
				try{
					var arrStr = str.split("-");
					if(arrStr[0] != '' && val < parseInt(arrStr[0])){return false;}
					if(arrStr[1] != '' && val > parseInt(arrStr[1])){return false;}
					return true;
				}catch (e){
					return false;
				}
			}
		};	
		
		/**
		 * 执行外部函数验证
		 * @param string str   范围
		 * @return boolean
		 */
		function _fun(str){
			if(str != ''){return eval(str);}
		};	
		
		if(formWay == "ajax"){this.save();}		
		this.blur();
		this.focus();
		this.submit();
		if(typeof(this.click)=="function"){
			this.click();
		}
	}
	extend(Check,Base);
	
	$(document).ready(function(){
		$("form[id]").each(function(){
			if($(this).attr("id") != ''){
				new Check($(this).attr("id"));
			}			
		});
	});
	
	/**
	 * 是否为空
	 * @params string str
	 * @return boolean
	 */
	function _isNull(str){
		if(str=='' || str==null || str.length<1) {return true};
		return false;
	}
	
	function showLoading(){
		//alert("loading");	
	}
	
	function hideLoading(){		
		//alert("end");
	}
	
	function myReload(){
		document.location.reload();
	}
	
	function hiddenselect(){
		$("form").each(function(){
			for(var i=0; i<this.elements.length; i++){
				if(this.elements[i].type == "select-one"){
					$(this.elements[i]).css("display","none");
				}
			}
		});
	}
	
	function showselect(){
		$("form").each(function(){
			for(var i=0; i<this.elements.length; i++){
				if(this.elements[i].type == "select-one"){
					$(this.elements[i]).css("display","");
				}
			}
		});
	}
	
	function checkImageUrl(id, browserName){
		var obj = document.getElementById(id);
		if(browserName == "ie"){
			obj.select();  
			var url = document.selection.createRange().text;
			
		}else if(browserName == "firefox"){
			if(obj.files){
				var data = obj.files.item(0).getAsDataURL();
				
			}else{
				return obj.value;
			}
		}else{
			return obj.value;
		}
	}
	
	function saveFormData(formId){
		var formArr = Array();
		$("#"+formId+" input[type=text],#"+formId+" select,#"+formId+" input[type=file],#"+formId+" input[type=password],#"+formId+" textarea").each(function(){
			var inputId = $(this).attr("id");
			var inputValue = $(this).val();
			formArr[inputId] = inputValue;					
		});
		$("#"+formId+" input[type=radio]").each(function(){					
			var inputName = $(this).attr("name");
			if(!_isNull(inputName) && $(this).attr("checked")==true){
				var inputValue = $(this).val();
				formArr[inputName] = inputValue;
			}			
		});	
		
		var checkboxArr = Array();
		$("#"+formId+" input[type=checkbox]").each(function(){
			var inputName = $(this).attr("name");
			if(!_isNull(inputName) && !checkboxArr.inArray(inputName)){
				checkboxArr[checkboxArr.length] = inputName;
			}
		});
		for(var i=0; i<checkboxArr.length; i++){
			var inputName = checkboxArr[i];
			var myInputName = inputName.replace(/\[\]/,"");
			formArr[myInputName] = "";
			var j=0;
			$("#"+formId+" input[type=checkbox][name="+inputName+"]").each(function(){
				var inputValue = $(this).val();
				if(!_isNull(inputValue) && $(this).attr("checked")==true){
					if(j == 0){
						formArr[myInputName] = inputValue;
					}else{
						formArr[myInputName] = formArr[myInputName] + "," +inputValue;
					}
					j++;
				}					
			});
		}
		return formArr;
	}
	
	/**
	 * 表单是否改变
	 * @param formId
	 * @return boolean
	 */
	function fnIsChanged(formId){
		var formOld = gFormArrOld[formId];
		var formNew = gFormArrNew[formId];
		var isChanged = false;
		for (e in formNew){
			if(typeof(formNew[e]) == "string"){				
				if(formOld[e].trim() != formNew[e].trim()){isChanged = true;}
			}
		}
		return isChanged;
	}
	
	 /**
	  * 计算字符串长度
	  * @param str
	  * @param maxLen
	  * @param mimLen
	  * @return boolean
	  */
	function fnStrLen(str,maxLen,minLen) {
		var len = 0;
		for (var i = 0; i < str.length; i++) {
		    if (str.charCodeAt(i) > 255) len += 3; else len ++;
		}		
		if(typeof(arguments[2]) != "undefined"){
			if(len>maxLen || len<minLen){return false;}else{return true;}
		}else{
			if(len>maxLen){return false;}else{return true;}
		}
	}
	 
	/**
	 * 提交前数据
	 * @return
	 */
	function myBack(){
		var formId=gCurForm;
		gCurForm = null;
		$("#"+formId+" input[type=text],#"+formId+" select,#"+formId+" input[type=file],#"+formId+" input[type=password],#"+formId+" textarea").each(function(){
			$(this).val("");
		});
	}
}
