$(document).ready(function() {
	$.History.bind('/legend', navbarSelected);
	$.History.bind('/princess', navbarSelected);
	$.History.bind('/crossworlds', navbarSelected);
	$.History.bind(function(state) {
// 		$.jStorage.set('x-jb-kb-category',state);
	});
// }
// 
// $(window).load(function() {
// 	var prevstate = $.jStorage.get('x-jb-kb-category');
	var forcedstate = $('#force-switch').attr('name');
 	if(forcedstate) {
		$.History.go("/"+forcedstate);
	} else if(document.location.hash.length) {
		$.History.go(document.location.hash.substr(1));
	} else {
		$.History.go("/legend");
	}
	$.preLoadImages(
		[
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/top_legend.jpg',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/top_princess.jpg',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/top_crossworlds.jpg',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/menu_button_onmouse.png',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/menu_button_onpress.png',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/slide_button_down_onmouse.png',
		'http://magazyn.jaskiniabehemota.net/kb_legend/img/layout/slide_button_down_onpress.png',
		],function() {
			console.info('Images preloaded.');
		}
	);
	
	$('#menu a.slider, #content a.slider').live('click',function() {
		if($(this).hasClass('disabled'))
			return false;
		$(this).closest('ul, ol').find('li')
			.toggleClass('sl-hidden')
			.not('.menuheader, .sw-hidden').slideToggle($.JB.ifLoaded('fast'));
		$(this).toggleClass('up').toggleClass('down');
		return false;
	});
	$('li.menuheader').not('.empty').append('<a class="slider up" href="#"></a>');
	$('li.menuheader.empty').append('<a class="slider disabled" href="#"></a>');
	
	$('#menu a').not('.slider, .sw-nofollow').click(function() {
		$(this).attr('href', function() {
			var a = this.href;
			if(a.indexOf('#')!=-1) {
				a = a.slice(0,a.indexOf('#'));
			}
			return a+'#'+$.History.getState();
		});
	});
});

function navbarSelected(state) {
	var navclasses = "legend princess crossworlds";
	crossfadeHeader(state.substr(1));
	
	e = $("#content .switchable, #menu .switchable");
	e.not("[class~="+state.substr(1)+"]")
		.addClass('sw-hidden')
		.not('.sl-hidden').slideUp($.JB.ifLoaded('fast'));
	e.filter("[class~="+state.substr(1)+"]")
		.removeClass('sw-hidden')
		.not('.sl-hidden').slideDown($.JB.ifLoaded('fast'));
	
	$("#content .switchclass, #menu .switchclass")
// 		.fadeOut('fast')
		.removeClass(navclasses)
		.addClass(state.substr(1))
// 		.fadeIn('fast')
		;
}


function crossfadeHeader(add) {
	$('#header-fade-helper')
// 		.stop(true,true)
// 		.fadeOut('fast')
		.removeClass()
		.addClass(add)
		.fadeIn($.JB.ifLoaded('slow'), function() {
// 			if(!$(this).filter("[class~="+add.substr(1)+"]").length)
// 				return;
			$('#header')
				.removeClass()
				.addClass(add);
			
		})
		.hide(0);
}

