function GetTopics()
{
	var WebServiceURL		= "/API/server/system/SystemServer.php";
	var RPCName				= "system.contactustopics";		
	var	Parameters			= new Object;
//	TopicParent should be global variable showing the current topic
	Parameters.ParentID	=	TopicParent;
	
	$("tr#parenttopics").hide();
	$("tr#messagebox").hide();
	$("tr#submitbutton").hide();
	$("tr#prevnext").hide();
	$("tr#topic").hide();
	$("tr#resetform").hide();
	$("tr#resetform a").attr('href','#');
	
	GetSimpleRPCData(DrawInitialTopicsList,WebServiceURL,RPCName,Parameters);
}

function DrawInitialTopicsList(xml,result)
{
	TopicDataXML = xml;
	var ParentTree		=	$("vector[id='ParentTree'] scalar[type='int']",xml);
	//var ParentTree		=	$("vector[id='ParentTree']",xml);
	var LastTopicType;
	var Topic;

	var i;
	for (i=0;i<ParentTree.length;i++) {
//		var TopicID	= 	ParentTree.next().text();
//		var ScalarObj	=	$("scalar
		//var TopicID 		=	ParentTree[i].textContent;
		var TopicID 	=	ParentTree[i].firstChild.nodeValue;
		Topic	=	$("vector[id='Topic_Parent_"+TopicID+"']",xml);
		LastTopicType = DrawTopicQuestion(Topic, TopicID);
	}

	// Type 0 means give an edit box and a submit
	if (LastTopicType==0) {
		$("tr#messagebox").show();
		$("tr#topic").hide();
		$("tr#prevnext").hide();
		var BackButton = $("tr#submitbutton div#back");
		BackButton.empty();
		if (ParentTree.length>0) {
			var OldParentID = $("scalar[id='ParentID']",Topic).text();
			//BackButtonText = "<a href='?ParentID="+OldParentID+"'>Back</a>";
			var BackButtonText = "<a href='#' onclick='javascript:GoBackToTopic("+OldParentID+")'>Back</a>";
			BackButton.append(BackButtonText);
			BackButton.show();
		} else {
			BackButton.hide();
		}
		$("tr#submitbutton").show();
	}
	// Type 1 means give show the prev next buttons
	if (LastTopicType==1) {
		$("tr#messagebox").hide();
		$("tr#submitbutton").hide();
		$("tr#topic").hide();

		var prev=$("tr#prevnext div#prev");
		var next=$("tr#prevnext div#next");
		prev.empty();
		next.empty();
		var PrevText	= $("scalar[id='Prev']",Topic).text();
		var NextText	= $("scalar[id='Next']",Topic).text();
		prev.append(PrevText);
		next.append(NextText);
		var PrevA = $("a",prev);
		var NextA = $("a",next);
		if (PrevA.attr('onclick')!=undefined) {
			PrevA.attr('href','#');
		}
		if (NextA.attr('onclick')!=undefined) {
			NextA.attr('href','#');
			}
		$("tr#prevnext").show();
	}
	if (LastTopicType==2 || ParentTree.length==0) {
		$("tr#prevnext").hide();
		var Topics			=	$("vector[id='Topics']",xml);
		var N_Topics		=	$("scalar[id='NumberTopics']",xml).text();
		try {
			N_Topics = parseInt(N_Topics);
		} catch (e){
			N_Topics = 0;
		}

		if (N_Topics>0) {
			var ReadOnlySelect	=	false;
			if (N_Topics==1) {
				ReadOnlySelect = true;
			}
			UpdateTopicsList(Topics, N_Topics, ReadOnlySelect);
		} else {
			$("tr#topic").hide();
			$("tr#messagebox").show();
			$("tr#submitbutton").show();
		}
	}
}
/*
function DrawChangedTopicsList(xml, result)
{
	TopicDataXML = xml;
	
}
*/
function DrawTopicQuestion(topic, TopicID)
{
	
	var TopicRow 		= $("tr#topic_"+TopicID);
	var ParentTopics	=	$("tr#parenttopics");

	$("tr#resetform").show();

	if (TopicRow.length==0) {
		var ParentTopicsTable = $("table#parenttopicstable");
		// If TopicRow.length is 0 we need to create the row
		var Subject 	= $("scalar[id='Subject']",topic).text();
		var Hint		= $("scalar[id='Hint']",topic).text();
		if (Subject.length==0) {
//			TopicRow 		= 	"<tr id=topic_"+TopicID+">\n"+
//								"	<td colspan=2 class=hint>"+Hint+"</td>\n"+
//								"</tr>\n";
			TopicRow 		= 	"<tr id=topic_"+TopicID+">\n"+
								"	<td colspan=2 class=hint><p>"+Hint+"</p></td>\n"+
								"</tr>\n";
		} else {
//			TopicRow 		= 	"<tr id=topic_"+TopicID+">\n"+
//								"	<td class=title><a href='#' "+
//											"onclick='javascript:GoBackToTopic("+TopicID+")'>"+Subject+"</a></td>\n"+
//								"	<td class=hint>"+Hint+"</td>\n"+
//								"</tr>\n";
			TopicRow 		= 	"<tr id=topic_"+TopicID+">\n"+
								"	<td colspan=2>"+
								"		<a class=ContactTopicTitle "+
										"href='#' onclick='javascript:GoBackToTopic("+TopicID+")'>"+Subject+"</a>"+
								"		<p>"+Hint+"</p></td>\n"+
								"</tr>\n";
		}
		var Type	= $("scalar[id='Type']",topic).text();
		try {
			Type	=	parseInt(Type);
		} catch (e) {
			Type	=	0;
		}
		if (Type==0) {
		}
		// Type 1 means give show the prev next buttons
		if (Type==1) {
		}
		ParentTopicsTable.append(TopicRow);
		ParentTopics.show();
		return Type;
	}
	return -1;
}

function ChangeTopic(NewTopicID)
{
	//var NewTopicTR=$("tr#topic");
	//var NewTopicSelect=$("tr#topic select");
	var NewTopic=$("tr#topic select").val();
	//var NewTopicSelect=$("tr#topic select option[selected]").val();
	//var NewTopic=$("tr#topic select option[selected]").val();

	if (NewTopicID==undefined) {
		NewTopicID=NewTopic;
	}
	
	var WebServiceURL		= "/API/server/system/SystemServer.php";
	var RPCName				= "system.contactustopics";		
	var	Parameters			= new Object;
//	TopicParent should be global variable showing the current topic
	Parameters.ParentID	=	NewTopicID;
	
//	$("tr#messagebox").hide();
//	$("tr#submitbutton").hide();
//	$("tr#topic").show();
	
	//GetSimpleRPCData(DrawChangedTopicsList,WebServiceURL,RPCName,Parameters);
	GetSimpleRPCData(DrawInitialTopicsList,WebServiceURL,RPCName,Parameters);
}

function GoBackToTopic(TopicID)
{
	//var BackTopic=$("tr#topic_"+TopicID);
	//var Siblings = $("tr#topic_"+TopicID+" ~ tr",BackTopic);
	//$("~ tr",BackTopic).css("border", "3px groove blue");
	var ParentTopicsTable = $("table#parenttopicstable");
	ParentTopicsTable.empty();
	
	var WebServiceURL		= "/API/server/system/SystemServer.php";
	var RPCName				= "system.contactustopics";		
	var	Parameters			= new Object;
	Parameters.ParentID	=	TopicID;
	
	$("tr#messagebox").hide();
	$("tr#submitbutton").hide();
	$("tr#prevnext").hide();
	$("tr#topic").hide();
	$("tr#resetform").hide();
	
	GetSimpleRPCData(DrawInitialTopicsList,WebServiceURL,RPCName,Parameters);
}

function UpdateTopicsList(Topics, N_Topics, ReadOnly)
{
	var n;

    SubjectRow=$("tr#topic");
	if (N_Topics==0) {
		SubjectRow.hide();
	} else {
		SubjectRow.show();

		SelectTopic=$("select", SubjectRow);
		SelectTopic.empty();
		SelectTopic.append("<option value=0>Please tell us the subject of your message</option>");
    	for(n=1;n<(N_Topics+1);n++) {
			var Option;
			Topic=$("vector[id='Topic_"+n+"']",Topics);
			TopicID=$("scalar[id='ContactUsTopicID']",Topic).text();
			Subject=$("scalar[id='Subject']",Topic).text();
			Option="<option value="+TopicID;
			// If we're readonly, there should only be one Topic, and thats selected
			if (ReadOnly) {
				Option=Option+" selected";
			}
			Option=Option+">";
			Option=Option+Subject+"</option>";
			SelectTopic.append(Option);
    	}
		if (ReadOnly) {
			SelectTopic.attr('readonly');
		}
	}
}
