var BM = BM ||{};

BM.Contact = function() {
	
	var forms = {};
	var conditionals = {
		'eventDate' : ['eventMonth', 'eventDay', 'eventYear']
	};
		
	return {
		
		initialize: function() {
			
			this.addValidations();

			forms.newInquiry = $('newInq');
			forms.songList = $('songList');
			forms.songRequests = $('songRequests');
			
			$each(forms, function(f){
				if (f) {
					f.validator = new FormValidator(f.id);
					
					$each(conditionals, function(fields, key){
						key = $(key);
						if (key && key.type && key.type === 'checkbox') {

							key.updateConditionals = function() {
								if (this.checked) {
									fields.each(function(field){
										f.validator.ignoreField(field);
									});
								} else {
									fields.each(function(field){
										f.validator.enforceField(field);
									});
								}
							};

							key.addEvent('click', key.updateConditionals.bindWithEvent(key));

						}
					});
					
				}
			});
		},
		
		addValidations: function() {
			FormValidator.add('selectMonth', {
				errorMsg: 'Please select the month.',
				test: function(field){
					return (field.get('value') !== "");
				}
			});

			FormValidator.add('selectDay', {
				errorMsg: 'Please select the day.',
				test: function(field){
					return (field.get('value') !== "");
				}
			});

			FormValidator.add('selectYear', {
				errorMsg: 'Please select the year.',
				test: function(field){
					return (field.get('value') !== "");
				}
			});
			
			FormValidator.add('notSet', {
				errorMsg: 'If the date of your event is not set, please check "Date not set"',
				test: function(field){
					return (field.checked);
				}
			});
		}
	};

}();

window.addEvent('domready', BM.Contact.initialize.bindWithEvent(BM.Contact));
