function navigate(action, index) {
	var menu = document.getElementById('btn_' + index);
	var part = document.getElementById('part_' + index);
	
	switch (action) {
		case "open":
			openPart(menu, part);
		break;
		
		case "close":
			closePart(menu, part);
		break;
		
		default:
			throw "Unknown navigate action";
		
	}
	
	location = generateLink();
}

function generateLink() {
	var s = "#";
	
	$('.menuButton').find('input').each(function() {   
			
		if ($(this).parent().css('color') != "#e3007a") return;
		
		if (this.value.length > 0) s += this.value + "+";
	});
	
	return (s.length > 1) ? s.substring(0, s.length-1) : "#";
}


function openPart(menu, part) {
	
	$(part).css("visibility", "visible");
	//Color menu text pink
	$(menu).css("color", "#e3007a"); ;
}


function closePart(menu, part) {
	
	$(part).css("visibility", "hidden");
	//Color menu text black
	$(menu).css("color", "#000000"); ;
}



//DOM LOADED ACTIONS
$(function() {
	
	
	$(".menuButton").click(function() {   
		var idParts = this.id.split("_");
		var btnNumber = idParts[1];
		
		//Open matching part if not already displayed
		if ($("#part_" + btnNumber).css("visibility") == "hidden") {
			navigate("open", btnNumber)
		} else {
			navigate("close", btnNumber);
		}
	});
	
	$(".closeButton").click(function() {   
		//Close part
		navigate("close", $(this).parent().attr("id").split("_")[1])
	});
	
	//URL Rewrite script
	var sOpenedParts = (document.URL.indexOf("#") < 0) ? "" : document.URL.split("#")[1];
				
	if (sOpenedParts.length > 0)
	{
		aParts = sOpenedParts.split("+");
		for (i in aParts) {
			$(".menuButton input[value=" + aParts[i] + "]").click();	
		}
	}
	//---------------------------
	
	
});


function html_entity_decode(str) {
	$("#entityDecoder").html(str);
	return $("#entityDecoder").val();
}