
var G_DeletedItem=null;
var G_TopicChangesAjaxSender=null;

function showResponseTopicDelete()
{
	if (!G_TopicChangesAjaxSender || !G_TopicChangesAjaxSender.httpObj)
			return;
	var readyState = G_TopicChangesAjaxSender.httpObj.readyState;
	if (readyState!=4)
		return;	
	var XmlDoc = G_TopicChangesAjaxSender.httpObj.responseXML;
	var resTxt = G_TopicChangesAjaxSender.httpObj.responseText;
	if (resTxt && resTxt!="")
	{
		G_DeletedItem=null;	
		G_TopicChangesAjaxSender=null;
		alert(resTxt);
	}
	else
	{	
		if(G_DeletedItem)
			G_DeletedItem.parentNode.removeChild(G_DeletedItem);		
		G_DeletedItem=null;	
		G_TopicChangesAjaxSender=null;
	}
}

function showResponseSave()
{
	if (!G_TopicChangesAjaxSender || !G_TopicChangesAjaxSender.httpObj)
			return;
	var readyState = G_TopicChangesAjaxSender.httpObj.readyState;
	if (readyState!=4)
		return;	
	var resTxt = G_TopicChangesAjaxSender.httpObj.responseText;
	if (resTxt && resTxt!="")
	{
		alert(resTxt);
	}
	G_TopicChangesAjaxSender=null;
}


function RemoveListItem(itemID)
{
	if (G_DeletedItem || G_TopicChangesAjaxSender)
	{
		alert("Another item is being deleted.\n Please wait for its removal to end.");
		return;
	}
	G_TopicChangesAjaxSender = new AjaxSender();
	var elem = g_dc.getElemFormID(itemID);
	if (!elem)
		return;
	var answer = confirm("You are about to permanently delete the selected topic. Continue?");
	if (!answer)
		return;
	G_DeletedItem = elem;
	var regEx = new RegExp ('TopicListItem', 'gi') ;
	tpId = itemID.replace(regEx, '');
	str = 'xml='+'<root><Topic id = \'' + tpId+ '\' delete=\'yes\' ></Topic></root>';
	G_TopicChangesAjaxSender.SendAjax("POST", str, homeurl+"/userActions.php", showResponseTopicDelete);
	//var myAjax = new Ajax.Request(
	//homeurl+"/userActions.php", 
	//{
	//	method: 'post', 
	//	parameters: str, 
	//	onComplete: showResponseTopicDelete
	//});
}

function EditItem(itemID)
{
	var elem = g_dc.getElemFormID(itemID);
	if (!elem)
		return;
	elem.prevInner = elem.innerHTML;
	
	var tpNameOrig = g_dc.GetObjInnerByName(elem, "topicNameLink")[0].innerHTML;
	var tpsharingMode = g_dc.GetObjInnerByName(elem, "sharingMode")[0].innerHTML;
	var shareModeIndex=0;
	switch (tpsharingMode)
	{
		case 'private':
			shareModeIndex=0;
			break;
		case 'shared':
			shareModeIndex=1;
			break;
		case 'public':
			shareModeIndex=2;
			break;
	}
	
	
	var editLine = g_dc.getElemFormID('TopicEditLine');
	elem.innerHTML = editLine.innerHTML;
	var cancelLink = g_dc.GetObjInnerByName(elem, "cancelLink")[0];
	cancelLink.setAttribute("href", "javascript:CancelTopicChanges('"+itemID+"')");
	
	var saveLink = g_dc.GetObjInnerByName(elem, "saveLink")[0];
	saveLink.setAttribute("href", "javascript:SaveTopicChanges('"+itemID+"')");
	
	
	var tpNameEdit = g_dc.GetObjInnerByName(elem, "editTopicName")[0];
	tpNameEdit.value = HtmlDecode(tpNameOrig);
	
	var shareRadios = g_dc.GetObjInnerByName(elem, "share");
	shareRadios[shareModeIndex].checked='true';
	
}


function CancelTopicChanges(objID)
{
	var elem = g_dc.getElemFormID(objID);
	elem.innerHTML = elem.prevInner;
}

function SaveTopicChanges(objID)
{
	if (G_TopicChangesAjaxSender)
	{
		alert("Another topic is being saved. Wait for the ongoing save to end.");
		return;
	}
	G_TopicChangesAjaxSender = new AjaxSender();
	var elem = g_dc.getElemFormID(objID);
	var newName = g_dc.GetObjInnerByName(elem, "editTopicName")[0].value;
	var shareRadios = g_dc.GetObjInnerByName(elem, "share");
	var shmode = shareRadios[0].checked?'private':(shareRadios[1].checked?'shared':'public');
	
	elem.innerHTML = elem.prevInner;
	
	var tpNameOrig = g_dc.GetObjInnerByName(elem, "topicNameLink")[0];
	tpNameOrig.innerHTML = HtmlEncode(newName);
	var tpsharingMode = g_dc.GetObjInnerByName(elem, "sharingMode")[0];
	tpsharingMode.innerHTML = shmode;
	
	var regEx = new RegExp ('TopicListItem', 'gi') ;
	tpId = objID.replace(regEx, '');
	newNameEncoded = encodeURIComponent(HtmlEncode(newName));
	str = 'xml='+'<root><Topic id = \'' + tpId+ '\' newName=\''+newNameEncoded+'\' newShareMode=\''+shmode+'\' ></Topic></root>';
	
	G_TopicChangesAjaxSender.SendAjax("POST", str, homeurl+"/userActions.php", showResponseSave);
	//var myAjax = new Ajax.Request(
	//homeurl+"/userActions.php", 
	//{
	//	method: 'post', 
	//	parameters: str, 
	//	onComplete: showResponse
	//});
}


