function __init(event)
{
	if (getHash() != 'complete') {
		hideTabs();
		showTabFromHash();
		
		var everyTabHidden = true;
		$$('div#content div.tab').each(function(tab) {
			if (tab.getStyle('display') != 'none') {
				everyTabHidden = false;
			}
		});
		
		if (everyTabHidden) {
			$('tab-profile').setStyle('display', 'block');
		}
	}
	
	var zoomAccordion = new Accordion($('tab-achievements'), 'a.zoomer', 'div.zoom', {
		opacity: true,
		display: -1,
		alwaysHide: true,
		onActive: function(zoomer, zoom){
			zoomer.set('text', LANG.less);
			zoomer.addClass('expanded');
			zoomer.removeClass('collapsed');
		},
		onBackground: function(zoomer, zoom){
			zoomer.set('text', LANG.more);
			zoomer.addClass('collapsed');
			zoomer.removeClass('expanded');
		}
	});
	
	$$('div#menu a.postit').each(function(postit) {
		postit.addEvent('click', postitClick);
	});
}

function getHash(hash)
{
	if (!$chk(hash)) {
		hash = window.location.hash;
	}
	return hash.substring(hash.indexOf('#')+1);
}

function showTabFromHash()
{
	var hash = getHash();
	if (!$chk(hash)) {
		hash = 'objective';
	}
	showTab(hash, 'fast');
	return false;
}

function postitClick(element)
{
	if ($type(element) == 'event') {
		element = element.target;
	} else if ($type(element) == 'string') {
		element = $(element);
	}
	if ($defined(element)) {
		showTab(getHash(element.get('href')));
	}
}

function hideTabs()
{
	$$('div#content div.tab').each(function(tab) {
		tab.setStyle('display', 'none');
	});
}

function hideZooms()
{
	$$('div#achievements div.zoom').each(function(zoom) {
		zoom.setStyle('display', 'none');
	});
}

function showTab(string, fast)
{
	var tab = $('tab-'+string);
	if ($defined(tab)) {
		var tabs = $$('div#content div.tab');
		var count = tabs.length;
		
		if (!fast) {
			tabs.each(function(hide) {
				var fx = new Fx.Tween(hide, {
					property: 'opacity',
				});
				if (--count < 1) {
					fx.addEvent('complete', function() {
						hideTabs();
						tab.set('opacity', 0);
						tab.setStyle('display', 'block');
						tab.fade(1);
					});
				}
				fx.start(0);
			});
		} else {
			tab.setStyle('display', '');
		}
		$('language').set('href', '/'+LANG.switcher+'/#'+string);
		return true;
	}
	return false;
}

window.addEvent('domready', __init);