/*
prova
*/

window.onload=startList;		// per Internet Explorer

function startList() {			// per Internet Explorer
	if(!document.body.currentStyle) return;
	
	if (menu_isObject(document.getElementsByName('submenu_v'))) {
		var subs = document.getElementsByName('submenu_v');
		for(var i=0; i<subs.length; i++) {
			var li = subs[i].parentNode;
			if(li && li.lastChild.style) {
				li.onmouseover = function() {
					this.lastChild.style.visibility = 'visible';
				}
				li.onmouseout = function() {
					this.lastChild.style.visibility = 'hidden';
				}
				/*li.onfocusin = function() {
					this.lastChild.style.visibility = 'hidden';
				}*/
			}
		}
	}
	
	if (menu_isObject(document.getElementsByName('submenu_h'))) {
		var subs = document.getElementsByName('submenu_h');
		for(var i=0; i<subs.length; i++) {
			var li = subs[i].parentNode;
			if(li && li.lastChild.style) {
				li.onmouseover = function() {
					this.lastChild.style.visibility = 'visible';
				}
				li.onmouseout = function() {
					this.lastChild.style.visibility = 'hidden';
				}
				li.onkeypress = function() {
					this.lastChild.style.visibility = 'visible';
				}
				/*li.onmouseout = function() {
					this.lastChild.style.visibility = 'hidden';
				}*/
			}
		}
	}
}


// costruisce l'html del menu' verticale. va richiamata nel punto in cui si vuole inserire il menu'
function create_vertical_menu() {
	document.write(	'<div id="menu_v">' +
						'<ul id=menuList_v>');
							
							for (i=0; i<tree_v.length; i++) {
								document.write(	'<li>' +
													'<a href="' + tree_v[i][1] + '" name="submenu_v" class="submenu_v">' + tree_v[i][0] + '</a>');
													
													// sotto-menu' livello 1
													if (menu_isArray(tree_v[i][2]) && tree_v[i][2].length>0) {
														document.write('<ul>');
														
														for (j=0; j<tree_v[i][2].length; j++) {
															document.write(	'<li>' +
																				'<a href="' + tree_v[i][2][j][1] + '" ');
																				
																				if (menu_isArray(tree_v[i][2][j][2]) && tree_v[i][2][j][2].length>0)		// se ha sotto-menu'
																					document.write(' name="submenu_v" class="submenu_v"');
																				
															document.write(		'>' + tree_v[i][2][j][0] + '</a>');
																				
																				// sotto-menu' livello 2
																				if (menu_isArray(tree_v[i][2][j][2]) && tree_v[i][2][j][2].length>0) {
																					document.write('<ul>');
																					
																					for (k=0; k<tree_v[i][2][j][2].length; k++)
																						document.write('<li><a href="' + tree_v[i][2][j][2][k][1] + '">' + tree_v[i][2][j][2][k][0] + '</a></li>');
																					
																					document.write('</ul>');
																				}
																				
															document.write(	'</li>');
														}
														
														document.write('</ul>');
													}
													
								document.write(	'</li>');
							}
							
	document.write(		'</ul>' +
					'</div>');
}


// costruisce l'html del menu' orizzontale. va richiamata nel punto in cui si vuole inserire il menu'
function create_horizontal_menu() {
	document.write(	'<div id="menu_h">' +
						'<ul id="menuList_h">');
							
							for (i=0; i<tree_h.length; i++) {
								document.write(	'<li>' +
													'<a href="' + tree_h[i][1] + '" name="submenu_h" class="submenu_h">' + tree_h[i][0] + '</a>');
													
													// sotto-menu' livello 1
													if (menu_isArray(tree_h[i][2]) && tree_h[i][2].length>0) {
														document.write('<ul>');
														
														for (j=0; j<tree_h[i][2].length; j++) {
															document.write(	'<li>' +
																				'<a href="' + tree_h[i][2][j][1] + '" ');
																				
																				if (menu_isArray(tree_h[i][2][j][2]) && tree_h[i][2][j][2].length>0)		// se ha sotto-menu'
																					document.write(' name="submenu_h" class="submenu_h"');
																				
															document.write(		'>' + tree_h[i][2][j][0] + '</a>');
																				
																				// sotto-menu' livello 2
																				if (menu_isArray(tree_h[i][2][j][2]) && tree_h[i][2][j][2].length>0) {
																					document.write('<ul>');
																					
																					for (k=0; k<tree_h[i][2][j][2].length; k++)
																						document.write('<li><a href="' + tree_h[i][2][j][2][k][1] + '">' + tree_h[i][2][j][2][k][0] + '</a></li>');
																					
																					document.write('</ul>');
																				}
																				
															document.write(	'</li>');
														}
														
														document.write('</ul>');
													}
													
								document.write(	'</li>');
							}
							
	document.write(		'</ul>' +
					'</div>');
}

function menu_isArray(a) {
	return menu_isObject(a) && a.constructor == Array;
}

function menu_isFunction(a) {
	return typeof a == 'function';
}

function menu_isObject(a) {
	return (a && typeof a == 'object') || menu_isFunction(a);
}
