Event.observe(window, 'load', 
	function () {
		
		if($('nonprofit_no').checked) {
			$('for-profit-warning').style.display = 'block';
		}
		else {
			$('for-profit-warning').style.display = 'none';
			$('nonprofit_yes').checked = true;
		}
		
		Event.observe($('nonprofit_no'), 'click',
			function() {
				if(!$('for-profit-warning').visible()) {
					Effect.SlideDown('for-profit-warning');
				}
			}
		);

		Event.observe($('nonprofit_yes'), 'click',
			function() {
				if($('for-profit-warning').visible()) {
					Effect.SlideUp('for-profit-warning');
				}
			}
		);
		
		if($('on_behalf').checked) {
			$('behalf_of').style.display = 'block';
		}
		else {
			$('behalf_of').style.display = 'none';
		}
		
		Event.observe($('on_behalf'), 'click',
			function() {
				if($('on_behalf').checked && !$('behalf_of').visible()) {
					Effect.SlideDown('behalf_of');
				}
				else if(!$('on_behalf').checked && $('behalf_of').visible()) {
					Effect.SlideUp('behalf_of');
				}
			}
		);

		if($('donation-type-other').checked) {
			$('donation-type-details').style.display = 'block';
		}
		else {
			$('donation-type-details').style.display = 'none';
			$('donation-type-ticket').checked = true;
		}

		Event.observe($('donation-type-other'), 'click',
			function() {
				if(!$('donation-type-details').visible()) {
					Effect.SlideDown('donation-type-details');
				}
			}
		);

		Event.observe($('donation-type-ticket'), 'click',
			function() {
				if($('donation-type-details').visible()) {
					Effect.SlideUp('donation-type-details');
				}
			}
		);
		
		if($('reception-type-other').checked) {
			$('reception-type-details').style.display = 'block';
		}
		else {
			$('reception-type-details').style.display = 'none';
		}
		
		if($('reception-type-in-person').checked) {
			$('pickup-message').style.display = 'block';
		}
		else {
			$('pickup-message').style.display = 'none';
		}
		
		Event.observe($('reception-type-other'), 'click',
			function() {
				if(!$('reception-type-details').visible()) {
					Effect.SlideDown('reception-type-details');
				}
				
				if($('pickup-message').visible()) {
					Effect.SlideUp('pickup-message');
				}
			}
		);
		
		Event.observe($('reception-type-in-person'), 'click',
			function() {
				if($('reception-type-details').visible()) {
					Effect.SlideUp('reception-type-details');
				}
				
				if(!$('pickup-message').visible()) {
					Effect.SlideDown('pickup-message');
				}
			}
		);

		Event.observe($('reception-type-mail'), 'click',
			function() {
				if($('reception-type-details').visible()) {
					Effect.SlideUp('reception-type-details');
				}
				
				if($('pickup-message').visible()) {
					Effect.SlideUp('pickup-message');
				}
			}
		);
		
		$('date').DateChooser = new DateChooser();

		// Check if the browser has fully loaded the DateChooser object, and supports it.
		if (!$('date').DateChooser.display)
		{
			return false;
		}
		$('date').DateChooser.setYOffset(22);
		$('date').DateChooser.setUpdateField('date', 'm/d/Y');
		$('date').onclick = $('date').DateChooser.display;
		
		/*
		 * Add stuff in this section to be included after initial window load
		 */
		
		setMaxLength();
		
		$('antispam').style.display = 'none';
		$('antispam-label').style.display = 'none';
		Event.observe($('donation-request'), 'submit',
			function() {
				//alert($('antispam').value);
				$('antispam').value = '';
			}
		);
	}
);

function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength')+' allowed characters';
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = checkMaxLength;
			x[i].onclick = function() { this.removeAttribute('readonly'); };
			x[i].onkeyup();
		}
	}
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength >= maxLength) {
		this.relatedElement.className = 'toomuch';
		this.setAttribute('readonly', 'readonly');
		this.value = this.value.substring(0, 254);
		this.blur();
	}
	else {
		this.relatedElement.className = '';
	}
	
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}

