function JSONRuleLoaderFactory(js)
{
	var currentRuleOrdinal;
	var EOF = false;
	var json = eval(js);
	var closure =
	{
		up : function()
		{
			currentRuleOrdinal = 0;
			EOF = json.rules.length == 0;		
			return(this);
		},
		down : function () {},
		hasMoreRules : function() { return(!EOF); },
		getRule : function()
		{
			var rule = null;
			if (currentRuleOrdinal < json.rules.length)
			{
				var hash =
				{
					fieldName : json.rules[currentRuleOrdinal].fieldName,
					caption : json.rules[currentRuleOrdinal].caption,
					depend : json.rules[currentRuleOrdinal].depend,
					pattern : json.rules[currentRuleOrdinal].pattern,
					hint : json.rules[currentRuleOrdinal].hint
				};
				rule = new Rule(hash);
				EOF = ++currentRuleOrdinal >= json.rules.length;
			}
			else
			{
				EOF = true;
			}
			return(rule);	
		}
	};
	return(closure);
}

