(function () {
	var resetInput = function () {
		var element = (typeof $(this).hasClassName === 'function') ? $(this) : $(arguments[0]);
		if (!element.hasClassName('prefilled') && element.getValue() === element.defaultValue) {
			element.setValue('');
		}
		return element;
	};
	var clearForms = function () {
		var form_elements = $$('input[type=text]', 'textarea');
		form_elements.invoke('observe', 'focus', resetInput);
		form_elements.invoke('observe', 'blur', function () {
			if ($F(this).blank()) {
				this.setValue(this.defaultValue);
			}
		});
		$$('form').invoke('observe', 'submit', function () {
			this.select('input[type=text]', 'textarea').map(resetInput);
		});
	};

	document.observe('dom:loaded', clearForms);
})();

document.observe('dom:loaded', function () {
	$$('.application_form:not(.fixed)').invoke('hide');
	$$('a[href=#_apply]').invoke('observe', 'click', function (event) {
		event.stop();
		$$('.application_form').each(function (form) {
			Effect.BlindDown(form);
		});
	});
	$$('a[href=#_cancel]').invoke('observe', 'click', function (event) {
		event.stop();
		$$('.application_form').each(function (form) {
			Effect.SlideUp(form, { duration: 0.7 });
		});
	});
	
	var columns = $$('#services .column');
	columns.invoke('setStyle', { height: '' });
	
	var max_height = columns.inject(0, function (accumulator, column) {
		var height = column.getHeight();
		return (height > accumulator) ? height : accumulator;
	});
	
	columns.invoke('setStyle', { height: max_height + 'px' });
});
