(function() {
	function init() {
		// Initiate image rollovers
		$$("img.rollover", "input.rollover").each(rollovers);
		
		// Initiate external links
		$$('a[rel~=external]').each(external_link);
		
		// Initiate form resets
		$$('input.reset', 'textarea.reset').each(reset);
	}
	
	function preload_img(src) {
		var img = new Image();
		img.src = src;
	}
	
	function rollovers(img) {
		img.src_over = img.src.replace(/(\.[^.]+)$/, '_o$1');
		img.src_out = img.src;
		preload_img(img.src_over);
		
		img.observe("mouseover", function() {
			img.src = img.src_over;
		});
		
		img.observe("mouseout", function() {
			img.src = img.src_out;
		});
	}
	
	function external_link(a) {
			a.observe("click", function(event) {
				window.open(a.href);
				event.preventDefault();
			});
	}
	
	function reset(input) {
		if (!input.defaultValue) return;
		input.observe('focus', function() {
			if (this.value == this.defaultValue) {
				this.value = '';
			}
		});
	}
	
	document.observe("dom:loaded", init);
	
})();