var page_cache = new Object();
var current_letter = location.hash[1];

page_loaded = function(data, textStatus){
	// update the cache
	var data = eval('('+data+')');
	page_cache[data[0]]=$(data[1]);
	// load the page if necessary
	
	if(current_letter == data[0]){
		load_page(current_letter);
	}
}

load_page = function(letter){
	var fragment = page_cache[letter];

	$("div#manpage_list").html(fragment);
}

ajax_loader = function(letter){
	// Request the new page
	$.get(location.pathname+letter+"/async/", page_loaded);

	// Add the loader icon
	if($("img#page_loader").length == 0){
		var loader = $("<img src=\"/medias/layout/big_loader.gif\" id=\"page_loader\"/>");
		loader.width("32px");
		loader.height("32px");
		$("div#manpage_list").prepend(loader);
	}
}

link_loader = function(link){
	var letter = link.text;
	if(letter in page_cache){
		load_page(letter);
	}else{
		if(letter.length != 1)
			return;
		current_letter = letter;
		ajax_loader(letter);
		location.hash = letter;
	}
}

$(function(){
	$("ul.hmenu>li>a").each(function(){
		$(this).click(function(){
			link_loader(this);
			return false;
		});
	});
	if(location.hash){
		ajax_loader(current_letter);
	}
});

