
validacion = Class.create();
validacion.prototype = {
	//constructor
	initialize: function(form){
		this.msg = $('mensaje');
		this.idForm = form.id;
		this.accion = true;
		elementos = $(this.idForm).getElements();
		
			for(i=0; i < elementos.length; i++)
			{
				var elemento_n = elementos[i];
				
				//Propiedades del elemento_n
				this.id = elemento_n.id;
				this.nombre = elemento_n.name;
				this.tamaņo = elemento_n.size;
				this.tipo = elemento_n.type;
				this.valor = elemento_n.value;
				
				if(this.tipo != 'hidden' && this.tipo != 'button' && this.tipo !== 'submit')
				{
					this.validarElemento();
				}
			}		
	},
	
	//Metodos de la clase
	validarElemento	: function()
	{
		this.resetearEstilo();
	 	if( (/^(.*)\_{1}t{1}e{1}x{1}$/i.test(this.nombre)) )  //_tex  validacion de tipo texto y obligatorio
		{
			if(this.valor == '')
			{
				this.aplicarEstilo('Complete el campo');
			}
		}

		if( (/^(.*)\_{1}c{1}o{1}r{1}$/i.test(this.nombre)) )  //_cor validacion de correo y obligatorio
		{
			if(this.valor !== '')
			{
				if(!(/^(.+)@{1}(.+)[\.]{1}[a-zA-Z]{3}(\.{1}[a-z]{2,3})?$/i.test(this.valor)))
				{
					this.aplicarEstilo('Sintaxis de correo no valida');
				}
			}
			else
				this.aplicarEstilo('Complete el campo');
		}
	},
	
	//aplica un estilo a los elementos que no cumnplan con la validacion
	aplicarEstilo:	function(msg)
	{
		$(this.id).setStyle({
		  backgroundColor: '#FF9',
		  border: '1px solid #F00'
		});	
		$(this.id).clear();
		//$(this.id).focus();
		this.accion = false;
		this.msg.update(msg).style.color = 'red';
	},	
	
	resetearEstilo : function()
	{
		$(this.id).setStyle({
		  backgroundColor: '#FFFFFF',
		  border: '1px solid #5E6A72'
		});	
	}
	
}






