// Creato e ideato da Emanuela Pitassi e Marco Lestuzzi (CC 2.5 - Creative Commons BY-NC-ND ITA)

// valore Per tenere a memoria Il percorso attuale
var actual_path = "empty";

// nome -> range nel menu sottostante -> href

if (show_extra) {
	var terzo_livello =		new Array(
								null,
								"I",			"",		"index.php?page=5-9-0",
								"II",			"",		"index.php?page=5-9-1",
								"III",			"",		"index.php?page=5-9-2",
								"IV",			"",		"index.php?page=5-9-3",
								"V",			"",		"index.php?page=5-9-4"
								);
	var secondo_livello =	new Array(
								terzo_livello,
								work_1,			"",		"index.php?page=0-0",
								work_2,			"",		"index.php?page=0-1",
								work_3,			"",		"index.php?page=0-2",
								work_4,			"",		"index.php?page=0-3",
								work_5,			"",		"index.php?page=0-4",
								work_6,			"",		"index.php?page=0-5",
								work_7,			"",		"index.php?page=0-6",
								
								"PRINT SALES",	"",		"index.php?page=2-7",
								"CASTING",		"",		"index.php?page=2-8",
								
								"EDITORIALS",	"0-4",	"#",
								"GALLERY",		"",		"index.php?page=5-10",
								"IMAGES",		"",		"index.php?page=5-11"
								);
	var primo_livello = 	new Array(
								secondo_livello,
								"WORKS",		"0-6",	"#",
								"EXHIBITIONS",	"",		"index.php?page=1",
								"INFORMATION",	"7-8",	"#",
								"CONTACT",		"",		"index.php?page=3",
								"NEWS",			"",		"index.php?page=4",
								"STUDIO",		"9-11",	"#"
								);
} else {
	var secondo_livello =	new Array(
								null,
								work_1,			"",		"index.php?page=0-0",
								work_2,			"",		"index.php?page=0-1",
								work_3,			"",		"index.php?page=0-2",
								work_4,			"",		"index.php?page=0-3",
								work_5,			"",		"index.php?page=0-4",
								work_6,			"",		"index.php?page=0-5",
								work_7,			"",		"index.php?page=0-6",
								
								"PRINT SALES",	"",		"index.php?page=2-7",
								"CASTING",		"",		"index.php?page=2-8"
								);
	var primo_livello = 	new Array(
								secondo_livello,
								"WORKS",		"0-6",	"#",
								"EXHIBITIONS",	"",		"index.php?page=1",
								"INFORMATION",	"7-8",	"#",
								"CONTACT",		"",		"index.php?page=3",
								"NEWS",			"",		"index.php?page=4",
								"STUDIO",		"",		"index.php?page=5"
								);
}

// Torna la profondità dell'albero
function max_number_of_levels(level) {
	if (level == null) {
		return 0;
	} else {
		return max_number_of_levels(level[0]) + 1;
	}
}

// estra il nome di un menu in un determinato livello
function get_element_name(level, index) {
	if (level != null) {
		return level[1+(index*3)];
	} else {
		return "";
	}
}

// estrae l'Array con il range di figli del menu SottoStante
function get_element_range(level, index) {
	if (level != null) {
		var value = level[2+(index*3)];
		if (value != null) {
			if (value != "") {
				return value.split("-");
			} 
		}
	}
	return new Array();
}

// estrae il link di un menu In un determinato livello
function get_element_href(level, index) {
	if (level != null) {
		return level[3+(index*3)];
	}
	return "";
}

function pop_array_text(indici) {
	var value = indici.split("-");
	var result = "";
	if (value.length == 2) {
		return ""+value[1];
	} else if (value.length > 2) {
		for (i = 2; i < value.length; i++) {
			result += "-"+value[i];
		}
		return value[1]+result;
	} else {
		return "";
	}
}

function length_array_text(indici) {
	if (indici == "") return 0;
	var value = indici.split("-");
	return value.length;
}

function top_array_text(indici) {
	var value = indici.split("-");
	if (value.length > 0) return value[0];
	else return null;
}

function init_menu() {
	var mnol = max_number_of_levels(primo_livello);
	var menu_zone = document.getElementById("menu");
	var menu_zone_sector = null;
	for (i = 0; i < mnol; i++) {
		menu_zone_sector = document.createElement("ul");
		menu_zone_sector.id = "menuphotography"+i;
		menu_zone.appendChild(menu_zone_sector);
	}
	show_menu(default_path);
}

function show_menu(level) {
	if (actual_path == level) return;
	actual_path = level;
	var mnol = max_number_of_levels(primo_livello);
	var menu_zone_sector = null;
	for (i = 0; i < mnol; i++) {
		menu_zone_sector = document.getElementById("menuphotography"+i);
		menu_zone_sector.innerHTML = "";
	}
	show_menu_recursive(primo_livello, level, null, 0, "");
}

function find_max_element() {
	var menu_zone = document.getElementById("menu");
	var mnol = max_number_of_levels(primo_livello);
	var menu_level = null;
	for (i = 0; i < mnol; i++) {
		menu_level = document.getElementById("menuphotography"+i);
		if (menu_level == null) return (i - 1);
	}
	return null;
}

function add_to_row(elemento, name, href, tree) {
	if (name == null) return;
	if (tree == "") {
		if (href != "") {
			elemento.innerHTML = elemento.innerHTML + "<li><a href=\""+href+"\">"+name+"</a></li>";
		} else {
			elemento.innerHTML = elemento.innerHTML + "<li>"+name+"</li>";
		}
	} else {
		if (href != "") {
			elemento.innerHTML = elemento.innerHTML + "<li><a onclick=\"return true;\" onmousemove=\"show_menu('"+tree+"')\" onmouseout=\"show_menu('"+tree+"')\" href=\""+href+"\">"+name+"</a></li>";
		} else {
			elemento.innerHTML = elemento.innerHTML + "<li><a onclick=\"return true;\" onmousemove=\"show_menu('"+tree+"')\" onmouseout=\"show_menu('"+tree+"')\" href=\"#\">"+name+"</a></li>";
		}
	}
}

function show_menu_recursive(level, indici, range, deep, tree) {
	if (level != null) {
		var menu_zone = document.getElementById("menu");
		var from = 0;
		var to = (level.length - 1) / 3;
		if (range != null) {
			if (range.length == 2) {
				var from = range[0] * 1;
				var to = range[1] * 1 + 1;
			}
		}
		
		
		menu_level = document.getElementById("menuphotography"+deep);

		var temp_tree = "";
		if (length_array_text(indici) == 0) {
			var text_level = "";
			var href_level = "";
			if (range != "") {
				for (i = from; i < to; i++) {
					text_level = get_element_name(level, i);
					href_level = get_element_href(level, i);
					if (tree == "") temp_tree = ""+i;
					else temp_tree = tree + "-" + i;
					add_to_row(menu_level, text_level, href_level, temp_tree);
				}
			}
		} else {
			var text_level = "";
			var href_level = "";
			for (i = from; i < to; i++) {
				text_level = get_element_name(level, i);
				href_level = get_element_href(level, i);
				if (tree == "") temp_tree = ""+i;
				else temp_tree = tree + "-" + i;
				add_to_row(menu_level, text_level, href_level, temp_tree);
			}
			var prox = top_array_text(indici);
			indici = pop_array_text(indici);
			if (tree == "") temp_tree = ""+prox;
			else temp_tree = tree + "-" + prox;
			prox = parseInt(prox);

			show_menu_recursive(level[0], indici, get_element_range(level, prox), deep+1, temp_tree);
		}
	}
}
