$(document).ready(function () {
    Site.onLoad();
    MainMenu.init();
});

var Site = {
	onLoad: function()
	{
		Site.expandDl();
		Site.hitlightImage();
	},
	expandDl: function()
	{
		$('.dl-expand dd').css('display', 'none');
		$('.dl-expand dt a').bind('click', function() {
			var oA = $(this);
			if (!$('.dl-expand dt a.current').attr('href')) {
				$(oA.attr('href')).slideDown('fast');
				oA.addClass('current');
			} else {
				$($('.dl-expand dt a.current').attr('href')).slideUp('fast', function() {
					if (oA.attr('href') != $('.dl-expand dt a.current').attr('href')) {
						$(oA.attr('href')).slideDown('fast');
						$('.dl-expand dt a.current').removeClass('current');
						oA.addClass('current');
					} else {
						$('.dl-expand dt a.current').removeClass('current');
					}
				});	
			}
			/*
			if ($($(this).attr('href')).css('display') == 'block') {
				$($(this).attr('href')).slideUp('fast');
				$(this).removeClass('current');
			} else {
				$($(this).attr('href')).slideDown('fast');
				$(this).addClass('current');
			}
			*/
			return false;
		})
	},
	hitlightImage: function()
	{
		$('a img').bind('mouseover', function() {
			var el = $(this).parent().parent().hasClass('hp') ? $(this).parent().parent() : $(this).parent();
			el.css('opacity', 0.5);
		});
		$('a img').bind('mouseout', function() {
			var el = $(this).parent().parent().hasClass('hp') ? $(this).parent().parent() : $(this).parent();
			el.css('opacity', 1);
		});
	}
}

var MainMenu = {
	blocked: false,
	image: false,
	init: function()
	{
		MainMenu.image = $('#iphone img');
		MainMenu.image
			.load( MainMenu._unblock )
			.error( function() { MainMenu._unblock(true) } );
		$('#main-menu a').bind('click', MainMenu.onClick);
		$('#main-menu a').each(function() {
			if ($(location).attr('hash') == '#' + $(this).attr('href').replace('/?p=', '')) { $(this).click(); }
		});
		return false;
	},
	onClick: function()
	{
		if (MainMenu.blocked) return false;
		MainMenu._block();
				
		$(location).attr('hash', $(this).attr('href').replace('/?p=', ''));
		$('#main-menu a.current').removeClass('current');
		$(this).addClass('current');
		MainMenu.image
			.css('display', 'none')
			.attr('src', $(this).attr('rel'));
		return false;
	},
	_block: function()
	{
		MainMenu.blocked = true;
		MainMenu.image.addClass('blocked');
		return false;
	},
	_unblock: function(error)
	{
		if (error == true) {
			alert('Image could not be loaded.');
		} else {
			MainMenu.image.css('display', 'block');
		}
		MainMenu.blocked = false;
		$('#main-menu').removeClass('blocked');
		return false;
	}
}