var xmlHttp;
var catId = "";
var subItemLoadId = "";
var subItemId = "";
var mainItemId = "";
var lastmainItemId = "";

function createXMLHttpRequest() {
	if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}
}

function readData(id, method) {
	if (method != false) method = true;
	url = "./ajax/category.php?mcid="+ id;
	catId = id;
	if (id != ""){
		mainItemId = id;
	}

	createXMLHttpRequest();
	xmlHttp.open("GET", url, method);
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.send(null);
}

function handleStateChange() {
	if (xmlHttp.readyState == 4) {													
		if(xmlHttp.status == 200) {
			clearPreviousMenu();
			buildMenu(catId);
			postProcess();
		}
		else {
			window.status = "cannot read data!";
		}
	}
}

function clearPreviousMenu() {
	var submenu = document.getElementById("submenu");
	if (submenu) {															// submenu existuje - muzu ho smazat nez vytvorim jine
		submenu.parentNode.removeChild(submenu);
	}
}

function buildMenu() {													// zjisti kolik je polozek v xmlku, vytahne jejich atributy a udela z nich root menu nebo submenu
	var xmlDoc = xmlHttp.responseXML;
	var items = xmlDoc.getElementsByTagName("item");
	var list = document.createElement("ul");

	for(var i = 0; i < items.length; i++) {
		var item = items[i];
		text = item.firstChild.nodeValue;
		id = item.getAttribute('id');
		itemlink = item.getAttribute('link');
		listItem = addListItem(text, id, itemlink);
		list.appendChild(listItem);
	}
	
	if (catId != "") {
		list.id = "submenu";
		list.className = "children";
		list.style.display = 'block';
		if (document.getElementById(catId)) document.getElementById(catId).appendChild(list);
	}
	else {
		list.id = "categories";
		document.getElementById("categoriesajax").appendChild(list);
	}
}

function addListItem(text, id, itemlink) {									// prida Acko a TEXT do LIcka
	var listItem = document.createElement("li");
	listItem.id = id;														// li priradim id, abych mu mohl pripadne pridat submenu nebo ho zvyraznit
	listItem.className = 'parent';
	
	var a = document.createElement("a");
	var textNode = document.createTextNode(text);
	if (itemlink != "") { 
		a.href = itemlink;
	}
	else {
		a.href = "javascript:readData('" + id + "')";
		a.className = "nolink";
	}
	a.appendChild(textNode);
	listItem.appendChild(a);
	return listItem;															// vratim se do buildMenu a vytvorene li pripojim k ul
}

function postProcess(){
	if (subItemLoadId != ""){
		subItemId = subItemLoadId;
		readData(mainItemId);
		subItemLoadId = "";
	}
	else {
		if (subItemId != "") {
			el = document.getElementById(subItemId);
			if (el) el.firstChild.className += 'found';
			subItemId = "";
		}
		if (lastmainItemId != ""){
			el = document.getElementById(lastmainItemId);
			if (el) {
				if (el.firstChild.className.indexOf('nolink') != -1){
					el.firstChild.className = 'nolink';
				}
				else{
					el.firstChild.className = '';
				}
			}
			lastmainItemId = "";
		}
		if (mainItemId != "") {
			el = document.getElementById(mainItemId);
			if (el) el.firstChild.className += ' found';
			lastmainItemId = mainItemId;
			mainItemId = "";
		}
	}

}

function buildRoot() {
	readData("");
}

function setAjaxParams(mainItem, subItem){
	window.onload = buildRoot;
	
	if (subItem != 0) {
		subItemLoadId = subItem;
	}
	if (mainItem != 0) {
		mainItemId = mainItem;
	}
}