/**
 * In The Name of Allah, The Most Gracious, The Most Merciful
 */
var RegExpPatterns = {
	"STRING" : /./,
	"En_STRING" : /\w+/,
	"Fa_STRING" : /./,
	"NAME" : /./,
	"USERNAME" : /^[0-9a-zA-Z-_&#^!~]{5,15}$/,
	"PASSWORD" : /^[0-9a-zA-Z-_&#^!~]{5,15}$/,
	"EMAIL" : /^[\w-\.]{1,}\@([a-zA-Z0-9\x60-\x69-_]{1,}\.){1,}[a-zA-Z0-9\x60-\x69-_]{2,}$/,
	"URL" : /./,
	"NUMBER" : /^[-+]{0,1}[0-9\x60-\x69]*[\.]{0,1}[0-9\x60-\x69]*$/,
	"NONNUMERIC" : /[^0-9\x60-\x69-+]{1,}/,
	"PHONE_NUMBER" : /^[0-9\x60-\x69]{1,}$/,
	"ISBN" : /^[0-9\x60-\x69-]{4,}$/,
	"AGE" : /./,
	"DATE" : /^[1-9]{1}[0-9]{3}\/(([0]{1}[1-9]{1})|([1]{1}[0-2]{1}))\/(([0-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))$/,
	"YEAR" : /./,
	"MONTH" : /./,
	"DAY" : /./,
	"TIME" : /./,
	"HOUR" : /./,
	"MINUTE" : /./,
	"SECOND" : /./,
	"PERCENT" : /^([%]{0,1}(([1\x61]{1,1}[0\x60]{2,2})|([0-9\x60-\x69]{1,1}[0-9\x60-\x69]{0,1})))|((([1\x61]{1,1}[0\x60]{2,2})|([0-9\x60-\x69]{1,1}[0-9\x60-\x69]{0,1}))[%]{0,1})$/,
	"NUMERICPERCENT" : /^([1\x61]{1,1}[0\x60]{2,2})|([0-9\x60-\x69]{1,1}[0-9\x60-\x69]{0,1})$/
};

function Validate(Value, Type, Force)
{
	Value = trim(Value);
	if (Value)
	{
		if (typeof RegExpPatterns[Type] != 'undefined')
		{
			if (!RegExpPatterns[Type].test(Value))
			{
				return -1;
			}
			return true;
		}
	}
	else if (!Force)
	{
		return true;
	}
	else
	{
		return 0;
	}
}
