Validator=function()
{
	var mRules=new Array()
	this.addRule=function(pRuleParams) 
	{
		mRules[mRules.length]=pRuleParams;
	}
	this.removeRule=function(pRuleId)
	{
		var lPosition=this.getRulePosition(pRuleId);
		mRules.splice(lPosition,1);
	}
	this.getRulePosition=function(pRuleId)
	{
		for (i=0;i<mRules.length;i++) 
		{
			if (mRules[i].id==pRuleId) 
			{
				return i;
			}
		}
		return false;
	}
	this.applyRules=function()
	{
		var lIsValid=true;
		for (var i=0;i<mRules.length;i++) 
		{
			var lValidation=mRules[i].fnc(mRules[i].obj);
			if (!lValidation)
			{
				lIsValid=false;
				mRules[i].status=false;
			}
			else
			{
				mRules[i].status=true;
			}
		}
    
		return lIsValid;
	}
	this.getNoValidRules=function()
	{
		var lAux=Array();
		for (i=0;i<mRules.length;i++) 
		{
			if (mRules[i].status==false)
			{
				lAux[lAux.length]=mRules[i];
			}
		}
		return lAux;
	}
}