function formmanager_validate( frm, e ) {

	var error = false;
	var skip_types = ['button','submit','radio'];

	frm.select('input','textarea').each( function( element ) {
		if ( skip_types.indexOf( element.getAttribute('type') ) != -1 )
		{
			return;
		}
		var rel = element.getAttribute('rel');
		if ( rel )
		{
			if ( rel.indexOf('required') != -1 && formmanager_trim( element.value ) == '' )
			{
				error = true;
				alert('Debes rellenar todos los campos obligatorios');
				element.focus();
			}
			else if ( rel.indexOf('email') != -1 && !formmanager_isValidEmail( element.value ) )
			{
				error = true;
				alert('Email incorrecto');
				element.select();
				element.focus();
			}
		}
		if ( error )
		{
			throw $break;
		}
	} );

	if ( error )
	{
		Event.stop(e);
	}
}

function formmanager_trim( str )
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

function formmanager_isValidEmail(pValue)
{
	var x = pValue;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9_\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
// 	if (filter.test(x))	{ return checkEmail(pValue); }
	if (filter.test(x))
	{
		return true;
	}
	return false;
}
