var ValidatorUnidad = function(pForm)
{
	this.inheritFrom = Validator;
	this.inheritFrom();
	this.oForm=pForm;
	this.validate=function()
	{		
		this.addRule({fnc:existMax100,obj:$("txtNomYApe"),id:"txtNomYApe",msg:msgNames});
		this.addRule({fnc:existMax100,obj:$("txtEmail"),id:"txtEmail",msg:msgEmail});
		this.addRule({fnc:isMail,obj:$("txtEmail"),id:"txtEmail",msg:msgEmailIncorrecto});

		var lIsValid=this.applyRules();
		return lIsValid;
	}

	existMax100=function(pObj)
	{
		if ((trim(pObj.value)!="")&& (pObj.value.length<=100))
			return true
		return false;
	}

	//chequeo simple de mail
	function isMail(pObj)
	{
		var s1;
		var s2;
		var chars_ok=true;
		var letra="";
		var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		
		if(!existMax100(pObj)) return true; 

		for (var i=0; i < pObj.value.length; i++) {
			letra = pObj.value.charAt(i).toLowerCase();
			if (validchars.indexOf(letra) != -1)
			  continue;
			chars_ok = false;
			break;
		}

		if(chars_ok)
		{
			if (pObj.value.indexOf("@") < 1) 
			{
				return false;
			} 
			else if (pObj.value.lastIndexOf(".") <= pObj.value.indexOf("@")) 
			{
				return false;
			} 
			else if (pObj.value.indexOf("@") == pObj.value.length) 
			{
				return false;
			} 
			else if (pObj.value.indexOf("..") >=0) 
			{
				return false;
			} 
			else if (pObj.value.indexOf(".") == pObj.value.length) 
			{
				return false;
			}
			else
				return true;
		}
		return false;
	}
}

/*****************************************************/

function validar()
{

	oForm = $("frmContacto");
		
	var validator=new ValidatorUnidad(oForm);
	aux="";

	if (!validator.validate())
	{
		var lNoValidRules=validator.getNoValidRules();
		for (var i=0;i<lNoValidRules.length;i++)
		{
			aux+=lNoValidRules[i].msg+"\n";
		}
		alert(msgDatos + ":\n\n" + aux);
	}
	else
	
		oForm.submit();
}