// **************************************************************** //
// Global variables
// **************************************************************** //
var smenu_timeout = 10;
var smenu_timeouts = new Array();

// **************************************************************** //
// **************************************************************** //
function chg_menu_image (elem, status) {

    x = document.getElementById('menuimg_'+elem);
    if (x != null) {
	x.src = '/usr/templates/images/menu/' + (status == 'over' ? 's' : '') + 'menu_' + elem + '.gif';
    }
}

// **************************************************************** //
// **************************************************************** //
function Get_Elements_By_SubID (tagname, subid) {

    sublist = new Array();
    tds = document.getElementsByTagName (tagname);
    if (tds != null) {
	for (var i = 0; i < tds.length; i++) {
	    s = tds[i].id.substring(0,subid.length);
	    if (s == subid) {
		sublist.push(tds[i]);
	    }
	}
    }
    if (sublist.length > 0)
	return sublist;
	else return null;
}

// **************************************************************** //
// **************************************************************** //
function display_submenu (main_elem) {

    // Turn off all divs except current
    divs = Get_Elements_By_SubID ('DIV', 'submenu_');
    if (divs != null) {
	for (var i = 0; i < divs.length; i++) {
	    if (divs[i].id == 'submenu_' + main_elem) {
		divs[i].style.display = 'block';
		// Set correct position
		offs = 0;
		try {
		    main_width = document.getElementById('slide_table').clientWidth;
		    main_pos = document.getElementById('menuimg_'+main_elem).offsetParent.offsetLeft;
		    div_width = document.getElementById('menutable_'+main_elem).clientWidth;
		    //d = document.getElementById('debug_str');
		    //d.innerHTML = '' + main_width + ', ' + main_pos + ', ' + div_width + ';';
		    if (main_pos + div_width <= main_width) {
			offs = main_pos;
		    } else {
			offs = main_width - div_width;
			if (offs < 0)
			    offs = 0;
		    }
		} catch (e) {
		    offs = 0;
		}
		divs[i].style.paddingLeft = '' + offs + 'px';
	    } else {
		divs[i].style.display = 'none';
	    }
	}
    }
}
		    
// **************************************************************** //
// **************************************************************** //
function show_submenu (main_elem, sub_elem, status) {

    try {
	if (menu_def_elem == undefined) menu_def_elem = '';
    } catch (e) {
	menu_def_elem = '';
    }
    menu_cur_elem = (main_elem == '') ? menu_def_elem : main_elem;

    try {
	if (smenu_def_elem == undefined) smenu_def_elem = '';
    } catch (e) {
	smenu_def_elem = '';
    }
			
    if (status == 'over') {
	// Clear all functions on timeout
	for (x in smenu_timeouts) {
	    clearTimeout(smenu_timeouts[x]);
	}
	
	// Make changes in main menu
	chg_menu_image (menu_def_elem, 'out');
	chg_menu_image (menu_cur_elem, status);

	// Make changes in submenu
	display_submenu (menu_cur_elem);
	if (sub_elem != '') {
	    chg_menu_image (smenu_def_elem, 'out');
	    chg_menu_image (sub_elem, 'over');
	} else {
	    chg_menu_image (smenu_def_elem, 'over');
	}
    } else { // out
	if (sub_elem != '') {
	    chg_menu_image (sub_elem, 'out');
	} //else {
	    if (main_elem != '')
		chg_menu_image (main_elem, 'out');
	//}
	id = setTimeout ("restore_start_status();", smenu_timeout);
	smenu_timeouts.push(id);
    }
}

// **************************************************************** //
// **************************************************************** //
function restore_start_status () {

    if (smenu_def_elem != '')
	chg_menu_image (smenu_def_elem, 'over');
    display_submenu (menu_def_elem);
    if (menu_def_elem != '')
	chg_menu_image (menu_def_elem, 'over');
}

// **************************************************************** //
// **************************************************************** //
