(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);
})();

var location_sub = /([^\/]+?)\/([^\/]+?)\.aspx/;
var address = location_sub.exec(window.location.href);

if (window.top.location.href == window.location.href &&
	address[0] !== 'home/home.aspx' &&
	address[0] !== 'error-pages/404.aspx' &&
	address[0] !== 'error-pages/500.aspx' &&
	address[0] !== 'legal/legal.aspx') {
	window.location.href = '../home/home.aspx#/' + address[0].replace(/[\.\/]/g, '');
}

document.observe('dom:loaded', function () {
	var offset = 30;
	var boxes = $$('.content_box').invoke('setOpacity', 0.1).invoke('addClassName', 'disabled');
	var navigation_links = $$('#navigation a');
	var active_element = boxes[0]; active_element.setOpacity(1).removeClassName('disabled');
	
	boxes.invoke('observe', 'box:activated', function (event) {
		navigation_links.each(function (link, i) {
			link.up().removeClassName('selected');
			if (i == event.memo.number) { link.ancestors().select(function (el) {
				return (el.tagName.toUpperCase() === 'LI');
			}).invoke('addClassName', 'selected'); }
		});
		
		if (active_element !== $(this)) {
			active_element.morph('opacity:0.1').addClassName('disabled');
		
			active_element = $(this);
			var element_offset = $A([active_element.positionedOffset().left - offset, active_element.positionedOffset().top - offset]);
			active_element.removeClassName('disabled').morph('opacity:1');
			$('container').morph({
				left: -(element_offset[0]) + 'px',
				top: -(element_offset[1]) + 'px'
			});
			window.location.hash = '/' + active_element.up().id;
		}
	});
	
	try {
		navigation_links.each(function (el) {
			if (location_sub.exec(el.readAttribute('href'))[0] == address[0]) {
				var active_elements = el.ancestors().select(function (el) {
					return (el.tagName.toUpperCase() === 'LI');
				}).invoke('addClassName', 'selected');
			}
		});
	} catch (address_error) {}

	
	if (boxes.length > 1) {
		var initial_index = 0;
		var hash = window.location.hash.substr(2);
		if (hash && document.getElementById(hash)) {
			initial_index = boxes.indexOf($(hash).down('div')) || 0;
		}

		navigation_links[initial_index].up('li').addClassName('selected');
		$(boxes[initial_index]).fire('box:activated', { number: initial_index });
		
		$$('#logo a').invoke('observe', 'click', function (event) {
			event.stop();
			var event_memo = {
				number: 0
			};
			$(boxes[0]).fire('box:activated', event_memo);
		});
	
		navigation_links.each(function (link, i) {
			link.observe('click', function (event) {
				if (boxes[i]) {
					event.stop();
					var event_memo = {
						number: i
					};
					$(boxes[i]).fire('box:activated', event_memo);
				}
			});
		});
	
		boxes.each(function (box, i) {
			box.observe('click', function (event) {
				var event_memo = {
					number: i
				};
				box.fire('box:activated', event_memo);
			});
		});
	}
});