
function set_event_handler_by_id(elem_id, event_name, handler)
{
	var elem;

	elem = document.getElementById(elem_id);
	elem['on'+event_name] = handler;
}

function get_event_elem(e)
{
	var elem;
	var prop;

	elem = null;

	for (prop in e) {
		if (prop == 'target' || prop == 'srcElement') {
			elem = e[prop];
			break;
		}
	}

	return elem;
}

/*** ***/

var menu_entries = new Array(
	'hypoconsulting',
	'podle_ceho_vybirat_uver_banku',
	'aktuality',
	'slovnik_pojmu',
	'otazky_a_odpovedi'
);

var menu_images;

function get_mentry_elem(mentry_name)
{
	return document.getElementById('nav_' + mentry_name);
}

function menu_entry_is_current(entry_name)
{
	var elem = get_mentry_elem(entry_name);

	return elem.className == 'aktualni';
}

function menu_entry_get_url(mentry_name, state_name)
{
	return "main/image/navigace/" + state_name + "/" + mentry_name + ".png";
}

function menu_entry_set_image(mentry_name, state_name)
{
	var elem, url;

	elem = get_mentry_elem(mentry_name);
	url = menu_entry_get_url(mentry_name, state_name);
	elem.style.backgroundImage = "url('" + url + "')";
}

function menu_handle_mouseover(e)
{
	var obj, key;

	if (!e) e = window.event;

	obj = get_event_elem(e);
	key = obj.id.substring(4);

	if (obj.id !== '')
		menu_entry_set_image(key, 'aktivni');
}

function menu_handle_mouseout(e)
{
	var obj, key;

	if (!e) e = window.event;

	obj = get_event_elem(e);
	key = obj.id.substring(4);

	if (obj.id !== '')
		menu_entry_set_image(key, 'neaktivni');
}

function menu_handle_click(e)
{
	var obj, key;
	var url;

	if (!e) e = window.event;

	obj = get_event_elem(e);
	key = obj.id.substring(4);

	if (obj.id == '') {
		/* trefilo to span uvnitr (vypnute styly).
		   to znamena, ze se prejde pomoci obycejneho odkazu.
		   nemusime nic delat */
		return;
	}

	if (key != menu_entries[0])
		url = '/' + key + '/';
	else
		url = '/';

	window.location = url;
}

function menu_entries_set_handler(event_name, handler)
{
	var i;

	for (i=0; i<menu_entries.length; i++) {
		if (menu_entry_is_current(menu_entries[i])) continue;
		set_event_handler_by_id(
			'nav_' + menu_entries[i],
			event_name, handler
		);
	}
}

function menu_images_preload()
{
	var i;

	menu_images = new Array();

	for (i=0; i<menu_entries.length; i++) {
		var img = new Image();
		img.src = menu_entry_get_url(menu_entries[i], 'neaktivni');
		menu_images[2*i] = img;

		var img = new Image();
		img.src = menu_entry_get_url(menu_entries[i], 'aktivni');
		menu_images[2*i+1] = img;
	}
}

function menu_init()
{
	menu_images_preload();

	menu_entries_set_handler('mouseover', menu_handle_mouseover);
	menu_entries_set_handler('mouseout', menu_handle_mouseout);
	menu_entries_set_handler('click', menu_handle_click);
}

page_onload_register(menu_init);
