var imenu_subheight, imenu_curimg, imenu_overimg;
var imenu_lines = new Array;

var imenu_entries = new Array;
var imenu_open = -1;
var imenu_opennext = -1;
var imenu_anim = -1;
var imenu_closing = 0;
var imenu_sel = -1;

var imenu_dly = new Array(0.0, 0.04, 0.08, 0.2, 0.5, 0.7, 0.8, 0.92, 0.96, 0.98, 1.0);

function imenu_over(n)
{
	if (imenu_anim != -1) return;
	
	var e = document.getElementById('imenu'+n);
	if (e.className.indexOf('imenu_over')==-1)
		e.className += ' imenu_over';
		
	if (imenu_overimg!='') {
		e = document.getElementById('imenudot'+n);
		e.src = e.src.replace(/dot\.gif/, 'dot-over.gif');
	}
}

function imenu_out(n)
{
	if (imenu_anim != -1) return;

	var e = document.getElementById('imenu'+n);
	if (e.className.indexOf('imenu_over')!=-1) {
		e.className = e.className.substr(0, e.className.length-11);
	}
	
	if (imenu_overimg!='') {
		e = document.getElementById('imenudot'+n);
		e.src = e.src.replace(/dot-over\.gif/, 'dot.gif');
	}	
}

function imenu_showsub(n, show)
{
	var h = 0;

	for (var i=2; i<32; i+=2) {
		var e = document.getElementById('imenu'+(n+i));
		if (e) {
			if (e.className.indexOf('imenu_sub')==-1) break;
			h++;
			e.style.display = (show?'block':'none');
		}
	}
}

function imenu_doanim()
{
	if (imenu_closing) {
		if (imenu_anim == 0) {
			imenu_anim = -1;
			imenu_closing = 0;
			imenu_open = -1;
			if (imenu_opennext != -1) {
				var o = imenu_opennext;
				imenu_opennext = -1;
				imenu_click(o);
			}
		} else {
			window.setTimeout("imenu_doanim()", 50);
			imenu_anim--;
		}
	}
	else {
		if (imenu_anim >= 10) {
			imenu_showsub(imenu_open, 1);
			imenu_anim = -1;
		} else {
			window.setTimeout("imenu_doanim()", 50);
			imenu_anim++;
		}
	}
		
	if (imenu_anim != -1) {
		document.getElementById('imenu_sc'+imenu_open).style.height = (imenu_dly[imenu_anim]*(imenu_subheight*imenu_lines[imenu_open]))+'px';				
	}
}

function imenu_click(n)
{
	imenu_out(n);
	if (imenu_anim != -1) return;
	if (n == imenu_open || imenu_open != -1) {
		imenu_showsub(imenu_open, 0);	
		imenu_closing = 1;
		imenu_anim = 9;
		if (imenu_open != n) {
			imenu_opennext = n;
		}
	} else {
		if (imenu_open == -1) {
			imenu_open = n;
			imenu_anim = 0;
		}
	}

	imenu_doanim();
}

function imenu()
{
	var menu = '';
	var curtop = -1;
	var insub = 0;
	
	for (var a=0; a<imenu_entries.length; a+=2) {
		var entry = imenu_entries[a];
		
		if (entry.charAt(0) == ' ') {
			if (!insub) {
				curtop = a-2;
				menu += '<div class="imenu_sc" id="imenu_sc'+(a-2)+'">';
			}
			insub++;
		}
		
		if (insub && entry.charAt(0) != ' ') {
			imenu_lines[curtop] = insub;
			insub = 0;
			menu += '</div>';
			curtop = -1;
		}
		
		menu += '<div id="imenu'+a;
		menu += '" class="imenu_item';
		if (insub) menu += ' imenu_sub';
		
		if (imenu_sel == a) menu += ' imenu_sel';
		
		var img = ' <img id="imenudot'+a+'" src="imenu/'+(insub?'sub':'')+'dot'+(imenu_sel==a?'-sel':'')+'.gif" border=0 alt=""> ';
		if (imenu_curimg == 'left') entry = img + entry;
		else if (imenu_curimg == 'right') entry += img;
			
		menu += '" onMouseOver="imenu_over('+a+')" onMouseOut="imenu_out('+a+')"';
		
		if (insub && (imenu_open == -1 || imenu_open != curtop)) menu += ' style="display:none"';
		
		var qs = imenu_entries[a+1] + '&imenu_open=' + curtop + '&imenu_sel='+a;
		
		if (imenu_entries[a+1] == '') {
			menu += ' onclick="imenu_click('+a+')"';
		} else {
			menu += ' onclick="location.href=\''+qs+'\'"';
		}
		
		menu += '>' + "<a";
		
		if (imenu_entries[a+1] != '') menu += ' href="'+qs+'"';
		
		menu += ">" + entry + "</a>\n" + "</div>\n";
	}
	
	document.write(menu);
	if (imenu_open != -1) {
		document.getElementById('imenu_sc'+imenu_open).style.height = (imenu_subheight*imenu_lines[imenu_open])+'px';				
	}
}

