function getRealId(id)
{
	if(id == 0)
	{
		return 0;
	}
	if(id.length == 1)
		return id;
	return id.substr(1, id.length-1);
};

function getRealIdArray(fullIdArray)
{
	var idArray = new Array();
	for(var i = 0; i < fullIdArray.length; i++)
		idArray[i] = getRealId(fullIdArray[i]);
	return idArray;
}

function ajaxSetTopicText(fullId, newText){
	$.get("ajax/out.php", { saveName: "true", id: getRealId(fullId), text: urlencode(newText) }, function(){
		$("ul[id="+fullId+"]").siblings("div.topic-header").append(newText);
		$("ul[id="+fullId+"]").siblings("div.topic-header").removeClass("editing").children("input").remove();
	} );
};

function ajaxSetItemText(fullId, newText){
	$.get("ajax/out.php", { saveName: "true", id: getRealId(fullId), text: urlencode(newText) }, function(data){
		$("li[id="+fullId+"]").append(newText)
		$("li[id="+fullId+"]").removeClass("editing").children("input").remove();
		$("li[id="+fullId+"]").parent().buildColumns(true);
	} );
};

function ajaxDeleteItem(fullId){
	$.get("ajax/out.php", { deleteItem: "true", id: getRealId(fullId)}, function(){
		var parentTopic = $("li[id="+fullId+"]").parent();
		$("li[id="+fullId+"]").remove();
		parentTopic.buildColumns(true);
	} );
};

function ajaxDeleteItems(fullIdArray){
	var idArray = getRealIdArray(fullIdArray);
	var idString = idArray.join(",");
	$.get("ajax/out.php", { deleteItems: "true", ids: idString}, function(data){
		if(fullIdArray.length > 0)
		{
			var selector = "";
			for(var i = 0; i < fullIdArray.length; i++)
				selector += "li[id="+fullIdArray[i]+"], ";
			selector = selector.substring(0, selector.length - 2);
			var parentTopic = $(selector).parent();
			$(selector).remove();
			parentTopic.buildColumns(true);
		}
	} );
};

function ajaxDeleteTopic(fullId){
	$.get("ajax/out.php", { deleteTopic: "true", id:getRealId(fullId)}, function(data){
		$("ul[id="+fullId+"]").parent().remove();
	} );
}

function ajaxNewTopic()
{
	var callFunction = function(data)
	{
		var newTopicId = trim(data);
		$("<li><div class=\"topic-header\"></div><ul class=\"topic\" id=\"t"+newTopicId+"\"></ul><span class=\"newItem\">" + textNewItem + "</span></li>").appendTo("ul.container").children("ul.topic").makeTopicEditable().siblings("div.topic-header").click();
	}
	$.get("ajax/out.php", { newTopic: "true"}, callFunction );
}

function ajaxNewItem(parentFullId){
	$.get("ajax/out.php", { newItem: "true", parent: getRealId(parentFullId) }, function(data)
	{
		var id = trim(data);
		var item = $("<li class=\"item\" id=\"i"+id+"\">&nbsp;</li>").appendTo($("ul.topic[id="+parentFullId+"]"));
		$("ul.topic[id="+parentFullId+"]").buildColumns(false);
		item.makeItemEditable();
		item.click();
	} );
};

function ajaxSetColNum(num)
{
	$.get("ajax/out.php", { saveColumns: "true", columns: num }, function(){
		maxColumns = num;
		$("ul.topic").buildColumns(true);
	} );
};

function ajaxChangeStatus(fullIdArray, newStatus){
	var idArray = getRealIdArray(fullIdArray);
	var idString = idArray.join(",");
	$.get("ajax/out.php", { saveStatus: "true", nodes:idString, status: newStatus}, function(){
		for(var i = 0; i < fullIdArray.length; i++)
		{
			if(newStatus == 1)
				$("li.item[id="+fullIdArray[i]+"]").addClass("done");
			else
				$("li.item[id="+fullIdArray[i]+"]").removeClass("done");
		}
	});
};

function ajaxChangeMark(fullIdArray, newMark){
	var idArray = getRealIdArray(fullIdArray);
	var idString = idArray.join(",");
	$.get("ajax/out.php", { saveMark: "true", nodes:idString, mark: newMark}, function(data){
		for(var i = 0; i < fullIdArray.length; i++)
		{
			if(newMark == 1)
			{
				$("li.item[id="+fullIdArray[i]+"]").removeClass("mark2").removeClass("mark3").addClass("mark1");
			}
			else if(newMark == 2)
			{
				$("li.item[id="+fullIdArray[i]+"]").removeClass("mark1").removeClass("mark3").addClass("mark2");
			}
			else if(newMark == 3)
			{
				$("li.item[id="+fullIdArray[i]+"]").removeClass("mark1").removeClass("mark2").addClass("mark3");
			}
		}
	} );
};

function ajaxSetItemPositions(fullIdArray, parentId, nextId){
	var idArray = getRealIdArray(fullIdArray);
	var idString = idArray.join(",");
	$.get("ajax/out.php", { savePositions: "true", ids: idString, parent: getRealId(parentId), next:getRealId(nextId) } );
};