/**
 * Generic Validate Script
 * Dependencies: Mootools v1.1+
 * @author Kevin Dew <kev@dewsolutions.co.uk>
 * @copyright Copyright Kevin Dew, 2007
 */

window.addEvent('domready', function()
{
	if($('val_form'))
	{
		var validator = new Validation(validationRules, validationTop, 'error', 'val_form');
		
		$('val_form').addEvent('submit', function(e)
		{
			if($('address_message'))
				$('address_message').remove();
			if(typeof tinyMCE != 'undefined')
				tinyMCE.triggerSave();
			if(!validator.run())
				new Event(e).stop();
		});
	}
});

/** 
 * Validation functions 
 */

var valFuncts = 
{


	/**
	 * Method to validate a generic category situation where there's a select category or a new category
	 * Where a category is essential
	 * must be named category and new_category
	 */
	selectCategory: function(fieldStr)
	{
		return valFuncts.genericSelect(fieldStr, 'category', 'category');
	},
	selectMailingGroup: function(fieldStr)
	{
		return valFuncts.genericSelect(fieldStr, 'mailing_group', 'group');
	},
	selectMemberGroup: function(fieldStr)
	{
		return valFuncts.genericSelect(fieldStr, 'member_group', 'group');
	},
	genericSelect: function(fieldStr, fieldNameStr, fieldDisplayStr)
	{
		//check first if a category field exists
		if(!$(fieldNameStr))
		{
			if(fieldStr.trim() == '')
				return 'Please enter a '+fieldDisplayStr;
		}
	
		if(($(fieldNameStr).getValue() == '0' || $(fieldNameStr).getValue() == 'Other') && fieldStr.trim() == '')
			return 'Please select a '+fieldDisplayStr+' or enter a new one';

		return '';
	}
}

