
var listCourses = "/system/listCourses.php";
var listGroups = "/system/listCourseGroups.php";
var listProviders = "/system/listProviders.php";

var viewProvider = "/providers/view.php";
var viewCourse = "/courses/view.php";

var pendingCourseGroupId = null;
var pendingCourseId = null;
var pendingCoursesId = null;

function initialiseCourses(courseGroupId, courseId, coursesId, messageId, linkId)
{
	clearSelect(courseGroupId);
	clearSelect(courseId);
	clearList(coursesId);
	
	$(courseId).style.display = "none";
	$(messageId).style.display = "none";
	$(linkId).style.display = "none";
	
	if (pendingCourseGroupId == null)
	{
		pendingCourseGroupId = courseGroupId;
			
		new Ajax.Request(listGroups, 
		{
			parameters: "", 
			method: "post",
			onSuccess:function(t) 
			{
				addToSelect(pendingCourseGroupId, 0, "Select Category...");

				// alert(t.responseText);
				var lines = t.responseText.split('\n');
				
				for (var i = 0; i < lines.length; i++)
				{
					var line = lines[i];
					if (line.length > 0)
					{
						var index = line.indexOf(':');
						var key = line.substr(0, index);
						var text = line.substr(index + 1);
						
						addToSelect(pendingCourseGroupId, key, text);						
					}
				}
				pendingCourseGroupId = null;
			 }, 
			 onFailure:function(t) 
			 {
			    alert('Error ' + t.status + ' -- ' + t.statusText)
		 	 }
		 });		
	}
}

function courseGroupChanged(courseGroupId, courseId, coursesId, messageId, linkId)
{
	var cg = $(courseGroupId);
	var selectedGroup = cg.options[cg.selectedIndex];
		
	if (selectedGroup != null)
	{
		clearSelect(courseId);
		clearList(coursesId);
		$(messageId).style.display = "none";
		$(linkId).style.display = "none";
		
		
		if (selectedGroup.value > 0 && pendingCourseId == null)
		{
			$(courseId).style.display = "inline";

			var s = "gid=" + selectedGroup.value;
			pendingCourseId = courseId;
				
			new Ajax.Request(listCourses, 
			{
				parameters: s, 
				method: "post",
				onSuccess:function(t) 
				{
					addToSelect(pendingCourseId, 0, "Select Course...");
	
					// alert(t.responseText);
					var lines = t.responseText.split('\n');
					
					for (var i = 0; i < lines.length; i++)
					{
						var line = lines[i];
						if (line.length > 0)
						{
							var index = line.indexOf(':');
							var key = line.substr(0, index);
							var text = line.substr(index + 1);
							
							addToSelect(pendingCourseId, key, text);						
						}
					}
					pendingCourseId = null;
				 }, 
				 onFailure:function(t) 
				 {
				    alert('Error ' + t.status + ' -- ' + t.statusText)
			 	 }
			 });		
		}		
		else
		{
			$(courseId).style.display = "none";
		}
	}
}


function courseChanged(courseGroupId, courseId, coursesId, messageId, linkId)
{
	var c = $(courseId);
	var selectedCourse = c.options[c.selectedIndex];
		
	if (selectedCourse != null)
	{
		clearList(coursesId);
		
		if (selectedCourse.value > 0 && pendingCoursesId == null)
		{
			var s = "cid=" + selectedCourse.value;
			pendingCoursesId = coursesId;
				
			new Ajax.Request(listProviders, 
			{
				parameters: s, 
				method: "post",
				onSuccess:function(t) 
				{
					// alert(t.responseText);
					var lines = t.responseText.split('\n');
					var added = 0;
					
					for (var i = 0; i < lines.length; i++)
					{
						var line = lines[i];
						if (line.length > 0)
						{
							var index = line.indexOf(':');
							var key = line.substr(0, index);
							var text = line.substr(index + 1);
							var link = viewProvider + "?id=" + key;
							
							addToList(pendingCoursesId, text, link);	
							added++;					
						}
					}

					$(linkId).innerHTML = "<a href=\"" + viewCourse 
							+ "?id=" + selectedCourse.value + "\">View course details</a>";
					$(linkId).style.display = "block";						

					if (added > 0)
					{
						$(messageId).style.display = "block";
					}
					else
					{
						addToList(pendingCoursesId, "No providers are currently offering this course");
						$(messageId).style.display = "none";
					}
					
					pendingCoursesId = null;
				 }, 
				 onFailure:function(t) 
				 {
				    alert('Error ' + t.status + ' -- ' + t.statusText)
			 	 }
			 });		
		}		
	}
}

