var current_hash = undefined;
var initial = true;

function processHash()
{
	var s = window.location.hash;

	if (!busy && s != current_hash)
	{
		current_hash = s;
		parseHash(current_hash);
	}

	setTimeout(processHash, 100);
}

function parseHash(h)
{
	var a = h.substr(2).split('-');

	switch (a[0])
	{
		case '':
		case 'home':
		case 'news': set_tab('news'); break;

		case 'projects': set_tab('projects'); break;
		case 'durable': set_tab('durable'); break;
		case 'firm': set_tab('firm'); break;

		case 'contact':
			set_tab('firm', true, 3);
		break;

		case 'en':
		case 'fr': set_language(a[0]); break;

		case 'gallery': do_gallery(a); break;
		case 'credits': do_credits(a); break;

		case 'creditsgallery':
			a.splice(0, 1);
			var args = a.join('-').split('!');
			do_credits(('credits-' + args[0]).split('-'), true);
			do_gallery(('gallery-' + args[1]).split('-'));
		break;

		case 'newsletter': break;

		default: alert('Unknown page: ' + h.substr(2)); break;
	}
}

function update_breadcrumbs()
{
	var s = '';
	var i = 0;

	$('body').find('.highlight').each(function()
	{
		if ($(this).parent().is(':visible'))
		{
			if (i != 0) s += '<span class="spacer">&gt;</span>';
			s += $(this).text();
			i++;
		}
	});
	
	$('#crumbs').html(s);
}

function do_gallery(a)
{
	var path = '';
	set_tab(a[1], false);

	for (var i = 0; i < a.length; i++)
	{
		if (i > 2)
		{
			path += a[i];
			if (a[i + 1]) path += '-';
		}
		else path += a[i] + '/';
	}

	gallery(path);
}

function do_credits(a, offset)
{
	var path = '';
	set_tab(a[1], false);

	if (initial)
	{
		set_bg('', a[1]);
		initial = false;
	}

	for (var i = 0; i < a.length; i++)
	{
		if (i > 1)
		{
			path += a[i];
			if (a[i + 1]) path += '-';
		}
		else path += a[i] + '/';
	}

	credits(path, offset);
}

function get_language()
{
	$.ajax(
	{
		type: "POST",
		url: 'lib/lang.php',
		async: false,
		success: function(data)
		{
			return data;
		}
	});
}

function set_language(s)
{
	var lang = false;

	$.ajax(
	{
		type: "POST",
		url: 'lib/lang.php',
		data: 'lang=' + s,
		async: false,
		success: function(data)
		{
			language = s;
			window.location.hash = '!home';
			window.location.reload();
		}
	});
}

