var ajax_root = 'ajax.php';

function ajaxStart() {
	var doc = typeof(parent) != 'undefined' ? parent.document : document;

	progress = doc.getElementById('ajax-progress');
	progress.style.display = 'block';
	
	if (typeof parent != 'undefined')
		parent.centerElement(progress);
	else
		centerElement(progress);
}

function ajaxEnd() {
	var doc = typeof(parent) == 'undefined' ? document : parent.document;

	doc.getElementById('ajax-progress').style.display = 'none';
}

function ajaxRequest(post_data, stateChangedFunction) {
	var url = ajax_root;
	var xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null) {
		alert ("Browser does not support HTTP Request");
		return;
	}
	xmlHttp.onreadystatechange = function() {
		if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
			stateChangedFunction(xmlHttp.responseText);
			ajaxEnd();
		}
		
	}
	ajaxStart();
	xmlHttp.open("POST", url, true)
	xmlHttp.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.send(post_data);
}


function GetXmlHttpObject() {
	var objXMLHttp=null;

	if (window.XMLHttpRequest) {
		objXMLHttp = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}


function ajaxTreeMoveBranch(id_cats, id_parent) { 
	var post_data = "s=tree-move-branch" + "&id_cats=" + id_cats + "&id_parent=" + id_parent;
	ajaxRequest(post_data, treeMoveBranchStateChanged);
}

function treeMoveBranchStateChanged(text) { 
	if (text != '') alert('Došlo k chybě: ' + text);
} 



function ajaxSubcatsInsert(id_parent) {
	var post_data = "s=cats-insert&id_parent=" + id_parent + (parent.logged ? "&id_users=" + parent.id_users : '');
	ajaxRequest(post_data, subcatsInsertStateChanged);
}

function subcatsInsertStateChanged(text) {
//	alert(text);
	var data = eval('(' + text + ')');
	subcatsAddItem(data);
	setProperHeight();
}

function ajaxGetSubcats(id_cats) {
	var post_data = "s=get-subcats&id_cats=" + id_cats;
	ajaxRequest(post_data, getSubcatsStateChanged);
}
	
function getSubcatsStateChanged(text) {
//	alert(text);
	if (text == '') return;
	
	var data = eval('(' + text + ')');
	subcats_list.innerHTML = '';
	for (var i = 0; i < data.length; i++)
		subcatsAddItem(data[i]);
}

function ajaxSubcatsDelete(id_cats) {
	var post_data = "s=cats-delete&id_cats=" + id_cats;
	ajaxRequest(post_data, subcatsDeleteStateChanged);
}

function subcatsDeleteStateChanged(text) {
	if (text != '0') {
		var id = (parent.user_cat ? 'u' : '') + text;
		parent.tree.removeBranch(id);
		parent.tree_choose.removeBranch(id);
		id = 'c' + text;
		var remove = document.getElementById(id);
		remove.parentNode.removeChild(remove);
		
	}
	setProperHeight();
}


function ajaxCatSave(str) {
	var post_data = "s=cats-save&str=" + str;
	ajaxRequest(post_data, catSaveStateChanged);
}

function catSaveStateChanged(text) {
	var data = eval('(' + text + ')');
	var branch;
	var parent_branch;
	
	for (var i = 0; i < data.length; i++) {
		var id_parent = (parent.user_cat ? 'u' : '') + data[i].id_parent;
		var id_cats = (parent.user_cat ? 'u' : '') + data[i].id_cats;

		// v hlavnim strome
		branch = parent.tree.getBranchById(id_cats);
		if (branch && branch != null) {
			branch.setText(data[i].title);
			branch.move(id_parent);
		} else {
			parent_branch = parent.tree.getBranchById(id_parent)
			parent_branch.insertIntoLast({'id':id_cats, 'txt':data[i].title});
		}
		
		// ve vybiracim strome
		branch = parent.tree_choose.getBranchById(id_cats);
		if (branch && branch != null) {
			branch.setText(data[i].title);
			branch.move(id_parent);
		} else {
			parent_branch = parent.tree_choose.getBranchById(id_parent)
			parent_branch.insertIntoLast({'id':id_cats, 'txt':data[i].title});
		}

		
	}
	try {
		(parent.tree.getBranchById(data[0].id_parent)).expend();
	} catch (err) {}
	alert('Změny byly uloženy');
		
/*
	if (text == '') {
		TreeUpdateSubcats
		document.getElementById('tree').innerHTML = '';
		tree.baseStruct = eval(text);
		tree.generate();
	} else {
		alert('Došlo k chybě!!!');
		alert(text);
	}
*/
}




function ajaxSourcesInsert(id_cats) {
	var post_data = "s=sources-insert&id_cats=" + id_cats;
	ajaxRequest(post_data, sourcesInsertStateChanged);
}

function sourcesInsertStateChanged(text) {
	var data = eval('(' + text + ')');
	sourcesAddItem(data);
	setProperHeight();
}


function ajaxGetSources(id_cats) {
	var post_data = "s=get-sources&id_cats=" + id_cats;
	ajaxRequest(post_data, getSourcesStateChanged);
}
	
function getSourcesStateChanged(text) {
	var data = eval('(' + text + ')');
	sources_list.innerHTML = '';
	for (var i = 0; i < data.length; i++)
		sourcesAddItem(data[i]);
	setProperHeight();
}



function ajaxSourcesDelete(id_sources) {
	var post_data = "s=sources-delete&id_sources=" + id_sources;
	ajaxRequest(post_data, sourcesDeleteStateChanged);
}

function sourcesDeleteStateChanged(text) {
	if (text != '0') {
		var id = 's' + text;
		var remove = document.getElementById(id);
		remove.parentNode.removeChild(remove);
	}
	setProperHeight();
}

function ajaxSourcesSave(str) {
//	alert(str);
	var post_data = "s=sources-save&str=" + str;
	ajaxRequest(post_data, sourcesSaveStateChanged);
}

function sourcesSaveStateChanged(text) {
//	alert(text);
	if (text == 'ok') {
		alert('Změny byly uloženy');
	} else {
		alert('Došlo k chybě: ' + text);
	}
}


function ajaxSourcesMove(id_sources, id_cats) {
	var post_data = "s=sources-move&id_sources=" + id_sources + "&id_cats=" + id_cats;
//	alert(post_data);
	ajaxRequest(post_data, sourcesMoveStateChanged);
}

function sourcesMoveStateChanged(text) {
//	alert(text);
	var remove = frames['iframe'].document.getElementById('s' + text);
	remove.parentNode.removeChild(remove);
	moving_to_cat = -1;
	personalChooseClose();
	frames['iframe'].setProperHeight();
}

function ajaxSourcesCopy(id_sources, id_cats) {
	ajaxRequest("s=sources-copy&id_sources=" + id_sources + "&id_cats=" + id_cats, sourcesCopyStateChanged);
}

function sourcesCopyStateChanged(text) {
//	alert(text);
	personalChooseClose();
}

