document.observe('dom:loaded', function() {
	Cufon.replace('.cufon');
	apply_form.initialize();
	
	if (!Prototype.Browser.WebKit) {
		placeholders.initialize();
	}
	
	if ($('feedback')) {
		feedback.initialize();
	}
});

var apply_form = {
	initialize: function() {
		this.form = $$('form')[0];
		this.form.down('input').value = authenticity_token;
		if (this.form) {
			this.query = $H(document.location.href.toQueryParams());
			if (this.query.get("apply")) {
				$$('.form_element').invoke('show');
				$$('.signup')[0].hide();
				$(this.query.get("apply")).checked = true;
			}
		}
	},
	on_complete: function() {
		$$('.form_element').invoke('hide');
	}
}

var placeholders = {
	initialize: function() {
		this.elements = $$('input[placeholder]');
		this.elements.each(function(element) {
			this.add(element);
		}, this);
	},
	add: function(element) {
		element.addClassName('placeholder');
		element.value = element.readAttribute('placeholder');
		element.observe('mousedown', this.hide.bind(this));
		element.observe('focus', this.hide.bind(this));
		element.observe('blur', this.show.bind(this));
	},
	hide: function(e) {
		var element = Event.element(e);
		if (element.value == element.readAttribute('placeholder')) {
			element.removeClassName('placeholder');
			element.value = '';
		}
		element.focus();
	},
	show: function(e) {
		var element = Event.element(e);
		if (element.value == '') {
			element.addClassName('placeholder');
			element.value = element.readAttribute('placeholder');
		}
	}
}

var feedback = {
	initialize: function() {
		this.element = $('feedback');
		this.button = $$('a[href=/contacts/]')[0];
		this.close = this.element.down('img');
		this.close.observe('click', function() {
			feedback.element.fade({duration: 0.25});
		});
		this.button.observe('click', function(e) {
			Event.stop(e);
			feedback.element.appear({duration: 0.25});
		});
	}
}