
(function($){
	$.inputValidator = {
		initConfig : function(){},
		isEmpty : function(id){
			return $.inputValidator.getLength(id)==0?true:false; 
		},
		getLength : function(id){
			return $("#"+id)[0].value.length;
		},
		ltMinValue : function(id , min){
			return $.inputValidator.getLength(id)<min?true:false;
		},
		gtMaxValue : function(id , max){
			return $.inputValidator.getLength(id)>max?true:false;
		},
		isOncorrect : function(options){
			var option ={rtu:false,msg:""};
			option.rtu = false;
			if($.inputValidator.isEmpty(options.id)){
				option.msg = options.msg.empty;
			}else if($.inputValidator.ltMinValue(options.id , options.min)){
				option.msg = options.msg.less;
			}else if($.inputValidator.gtMaxValue(options.id,options.max)){
				option.msg = options.msg.more;
			}else{
				option.rtu = true;
				if(options.msg.normal !== undefined){
					option.msg = options.msg.normal;
				} 
			}
			return option;
		},
		validatePassword : function(options){
			var option ={rtu:false,msg:""};
			if($("#"+options.id).val()=="" || $("#"+options.id).val()!=$("#"+options.parentId).val()){
				option.msg = options.msg.error
			}else{
				option.rtu = true;
				if(options.msg.normal !== undefined){
					option.msg = options.msg.normal;
				} 
			}
			return option;
		},
		resetValue : function(id){
			$("#"+id).val("");
		},
		validateEmail : function(options){
			var option ={rtu:false,msg:""};
			var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{1,4}){1,4})$/;
			if(! reg.test($("#"+options.id).val())){
				option.msg = options.msg.error;
			}else{
				if(options.msg.normal !== undefined){
					option.msg = options.msg.normal;
				} 
				option.rtu = true;
			}
		    return option;
		}
	};
	$.fn.ygzInputValidator = function(options){
		var __optReturn = {rtu:false,msg:""};
		if(options.type == "password"){
			__optReturn = $.inputValidator.validatePassword(options);
		}else if(options.type == "text"){
			__optReturn = $.inputValidator.isOncorrect(options);
		}else if(options.type == "email"){
			__optReturn = $.inputValidator.validateEmail(options);
		}else if(options.type == "reset"){
			__optReturn = $.inputValidator.resetValue(options);
		}
		$("#"+options.divId).html(__optReturn.msg);
		return __optReturn.rtu;
    };
	$.fn.ygzAlertInputValidator = function(options){
		if($.inputValidator.isEmpty(options.id)){
			alert(options.msg);
		}
	};
	$.fn.ygzInputBlurValidator = function(options){
		$("#"+options.id).blur(function(){
			$.fn.ygzInputValidator(options);
		});
	};
	$.fn.ygzGroupInputValidate = function(array){
		var rtu = true;
		for(var i = 0 ; i < array.length ; i ++){
			var __t = $().ygzInputBlurValidator(array[i]);
			if(! __t){
				rtu = false;
			}
		}
		return rtu;
	};
	$.fn.ygzGroupEndInputValidate = function(array){
		var rtu = true;
		for(var i = 0 ; i < array.length ; i ++){
			var __t = $().ygzInputValidator(array[i]);
			if(! __t){
				rtu = false;
			}
		}
		return rtu;
	};
})(jQuery);



