window.addEvent('domready', function() {
	new CustomSelect("test-date-div");
	
	var validator = new Validate($('error_report'),{errorClass: 'red'});
	$$('#issues input.required').each(function(item) {validator.elements.erase(item);});
	
	$$('input[type=checkbox]', 'input[type=radio]').each(function(cbox) {
		if (cbox.getParent().getElement('.hidden')) {
			var mySlide = new Fx.Slide(cbox.getParent().getElement('.hidden'), {
				onComplete: function() {if (this.open) this.wrapper.setStyle('height','auto'); else this.wrapper.setStyle('height', '0'); }}).hide();
			cbox.addEvent('click', function(e) {
				if (this.checked) {
					mySlide.slideIn();
					
					// add child elements to validator
					if (this.getParent().getElement('.hidden').getChildren('.radio-group').length > 0) {
						this.getParent().getElement('.hidden').getElement('.radio-group').getElements('input[type=radio].required').each(function(item) {
							validator.elements.include(item);
						});
					}
					else {
						this.getParent().getElement('.hidden').getElements('input[type=text].required').each(function(item) {
							validator.elements.include(item);
						});
					}
				} else {
					mySlide.slideOut();
					
					// clear the child form fields and remove them from validator
					this.getParent().getElement('.hidden').getElements('input[type=text],textarea').each(function(item) {
						item.set('value', '');
						validator.elements.erase(item);
					});
					this.getParent().getElement('.hidden').getElements('input[type=checkbox],input[type=radio]').each(function(item) {
						item.removeProperty('checked');
						validator.elements.erase(item);
					});
				}
				//console.log(validator.elements.length);
			}.bind(cbox));
			
			if (cbox.getProperty('type') == 'radio') {
				var rad = $A($('error_report')[cbox.name]);
				rad.each(function(item) {
					if (item != cbox) {
						//console.log(cbox.name + '=====' + item.name + '=====' + item.value);
						item.addEvent('click', function() {
							mySlide.slideOut();
							
							cbox.getParent().getElement('.hidden').getElements('input[type=text],textarea').each(function(item) {
								item.set('value', '');
								validator.elements.erase(item);
							});
							cbox.getParent().getElement('.hidden').getElements('input[type=checkbox],input[type=radio]').each(function(item) {
								item.removeProperty('checked');
								validator.elements.erase(item);
							});
				//console.log(validator.elements.length);
						});
					}
				});
			}
		}
	});
	
});