// twin
// require jquery.js
$("form").submit(function(){
	var check = new Check();
	for(var i in aCheckData)
	{
		var bIsCheck = true;
		// 数据合法性检查
		qData = $('#' + aCheckData[i]['name']).val();
		if(aCheckData[i]['isOptional'])　bIsCheck = qData != '';
		if(bIsCheck)
		{
			eval('var cType = typeof(check.' + aCheckData[i]['type'] + ');');
			if(cType == 'function')
			{
				if($('#' + aCheckData[i]['name']).attr('type') != 'checkbox')
				{
					eval('var bool = check.' + aCheckData[i]['type'] + '("' + qData + '");');
					if(bool == false)
					{
						alert('"' + aCheckData[i]['title'] + '"' + check.cMsg);
						$('#' + aCheckData[i]['name']).focus();
						return false;
					}
				} else {
					// 检查多选框的值
					/*
					$('.' + aCheckData[i]['name']).each( function(){
						eval('var bool = check.' + aCheckData[i]['type'] + '("' + $(this).val() + '");');
						if(bool == false)
						{
							alert(aCheckData[i]['title'] + check.cMsg);
							$('.' + aCheckData[i]['name']).focus();
							return false;
						}
					});
					*/
				}
			}
			// 长度检查
			if(aCheckData[i]['length'])
			{
				var bool = check.autoLength(qData, aCheckData[i]['length']);
				if(bool == false)
				{
					alert('"' + aCheckData[i]['title'] + '"' + check.cMsg);
					$('#' + aCheckData[i]['name']).focus();
					return false;
				}
			}
		}
	}
	return true;
});

function Check()
{
	var _this = this;
	this.cMsg = '';
	
	this.isNumber = function(qData)
	{
		var valid = /^[0-9]*$/;
		
		var bool = valid.test(qData);
   		if(bool == false) _this.cMsg = '必需为数字';
		
		return bool;
	}
	
	this.isNotBlank = function(qData)
	{
		var bool = $.trim(qData) != '' ? true : false;
		if(bool == false) _this.cMsg = '不能为空';
		return bool;
	}
	
	this.isEmail = function(qData)
	{
		var valid = /^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,5}$/;
		
		var bool = valid.test(qData);
   		if(bool == false) _this.cMsg = '不是合法的邮箱格式';
		
		return bool;
	}
	
	
	this.isPositiveNumber = function(qData)
	{
		var bool = _this.isNumber(qData) && qData > 0;
		if(bool == false) _this.cMsg = '应为正数';
		
		return bool;
	}
	
	this.isInArray = function()
	{
		return true;
	}
	
	this.returnTrue = function()
	{
		
	}
	
	this.isLength = function(str, num)
	{
		var bool = str.length == num;
		if(bool == false) _this.cMsg = '长度应为 ' + num + ' 个字节';
		
		return bool;
	}
	
	// 是否长于
	this.isLonger = function(str, num)
	{
		var bool = str.length >= num;
		if(bool == false) _this.cMsg = '长度应大于等于 ' + num  + ' 个字节';
		
		return bool;
	}
	
	// 是否短于
	this.isShorter = function(str, num)
	{
		var bool = str.length <= num;
		if(bool == false) _this.cMsg = '长度应小于等于 ' + num + ' 个字节';
		
		return bool;
	}
	
	// 是否在指定长度之间
	this.isBetween = function(str, minN, maxN)
	{
		var bool = _this.isLonger(str, minN) && _this.isShorter(str, maxN);
		if(bool == false) _this.cMsg = '长度应控制在 ' + minN + '-' + maxN + ' 字节以内';
		
		return bool; 
	}
	
	this.autoLength = function(cStr, cResource)
	{
		var bCheck;
		cResource = '' + cResource;
		var iBool = cResource.indexOf('-');
		if(iBool != -1)
		{
			var aData = cResource.split('-');
			if(aData[0] != 'n')
			{
				if(aData[1] != 'n')
				{
					bCheck = _this.isBetween(cStr, aData[0], aData[1]);
				} else {
					bCheck = _this.isLonger(cStr, aData[0]);
				}
			} else {
				bCheck = _this.isShorter(cStr, aData[1]);
			}
		} else {
			// 确定的长度值
			bCheck = _this.isLength(cStr, cResource);
		}
		return bCheck;
	}
	
}