var degree;
var category;

function getPrograms (chosenDegree)
{
	degree = chosenDegree;

	if (degree != '')
	{
		var requestUrl = 'areastudies';
		
		$.ajax
		(
			{
				url: requestUrl,
				data: {'degree': degree},
				type: 'GET',
				dataType: 'json',
				cache: false,
				beforeSend: function()
				{
					$('#program-select').attr('disabled', true); 
					$('#program-select option').remove();
					$('#program-select').append($('<option />').val('').text('- loading program list -'));
					
					$('#subject-select').attr('disabled', true); 
					$('#subject-select option').remove();
					$('#subject-select').append($('<option />').val('').text('- loading program list -'));
					
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').attr('disabled', true); 
					}
				},
				success: function(data)
				{
					$('#subject-select').attr('disabled', true); 
					$('#subject-select option').remove();
					$('#subject-select').append($('<option />').val('').text('- Pick a Subject -'));
					
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').removeAttr('disabled');
					}
					
					$('#program-select option').remove();
					
					$('#program-select').append($('<option />').val('').text('- select -'));
					
					$.each
					(
						data,
						function()
						{
							$('#program-select').append($('<option />').val(this.url_slug).text(this.name));
						}
					);
					
					$('#program-select').removeAttr('disabled');
				},
				error: function(request, textStatus, errorThrown)
				{
					alert('Error: ' + textStatus + ", " + errorThrown);
				}
			}
		);	
	}
	else
	{
		$('#program-select').attr('disabled', true); 
		$('#program-select option').remove();
		$('#program-select').append($('<option />').val('').text('- Select a Category -'));

		$('#subject-select').attr('disabled', true); 
		$('#subject-select option').remove();
		$('#subject-select').append($('<option />').val('').text('- Pick a Subject -'));
	}
}

function getSubjects (chosenCategory)
{
	category = chosenCategory;

	if (category != '')
	{
		var requestUrl = 'areastudies';
		
		$.ajax
		(
			{
				url: requestUrl,
				data: {'degree': degree, 'category': category},
				type: 'GET',
				dataType: 'json',
				cache: false,
				beforeSend: function()
				{
					$('#subject-select').attr('disabled', true); 
					$('#subject-select option').remove();
					$('#subject-select').append($('<option />').val('').text('- loading program list -'));
					
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').attr('disabled', true); 
					}
				},
				success: function(data)
				{
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').removeAttr('disabled');
					}
					
					$('#subject-select option').remove();
					
					$('#subject-select').append($('<option />').val('').text('- select -'));
					
					$.each
					(
						data,
						function()
						{
							$('#subject-select').append($('<option />').val(this.url_slug).text(this.name));
						}
					);
					
					$('#subject-select').removeAttr('disabled');
				},
				error: function(request, textStatus, errorThrown)
				{
					alert('Error: ' + textStatus + ", " + errorThrown);
				}
			}
		);	
	}
	else
	{
		$('#subject-select').attr('disabled', true); 
		$('#subject-select option').remove();
		$('#subject-select').append($('<option />').val('').text('- Pick a Subject -'));
	}
}

function getSubjectsByDegree (chosenDegree)
{
	degree = chosenDegree;

	if (degree != '')
	{
		var requestUrl = 'areastudies';
		
		$.ajax
		(
			{
				url: requestUrl,
				data: {'degree': degree, 'category': category},
				type: 'GET',
				dataType: 'json',
				cache: false,
				beforeSend: function()
				{
					$('#subject-select').attr('disabled', true); 
					$('#subject-select option').remove();
					$('#subject-select').append($('<option />').val('').text('- loading program list -'));
					
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').attr('disabled', true); 
					}
				},
				success: function(data)
				{
					if ($('#button-find-schools').size() > 0)
					{
						$('#button-find-schools').removeAttr('disabled');
					}
					
					$('#subject-select option').remove();
					
					$('#subject-select').append($('<option />').val('').text('- select -'));
					
					$.each
					(
						data,
						function()
						{
							$('#subject-select').append($('<option />').val(this.url_slug).text(this.name));
						}
					);
					
					$('#subject-select').removeAttr('disabled');
				},
				error: function(request, textStatus, errorThrown)
				{
					alert('Error: ' + textStatus + ", " + errorThrown);
				}
			}
		);	
	}
}

function findSchools ()
{
	var degree = $('#degree-select').val();
	
	if (category != '')
	{
		areaStudy = category;
	}
	else
	{
		var areaStudy = $('#program-select').val();
	}
	
	var subject = $('#subject-select').val();
	
	if ((degree != '') && (areaStudy != '') && (subject != ''))
	{
		url = '';
		url += '/' + degree;
		url += '/' + areaStudy;
		url += '/' + subject;
		
		if ($('#loader').size() > 0 && $('#button-find-schools').size() > 0)
		{
			$('#button-find-schools').hide();
			$('#loader').show();
		}
		
        var url = window.location.protocol + '//' + window.location.host + url;
		document.location.href = url;
	}
	else
	{
		alert ('Please choose a Degree, Program and Subject');
	}
	
	return false;
}

function updateLink ()
{
	if ($('#link-find-schools').size() > 0)
	{
		var degree = $('#degree-select').val();
		var areaStudy = $('#program-select').val();
		var subject = $('#subject-select').val();
		
        var url = window.location.protocol + '//' + window.location.host;
		
		if (degree != '')
		{
			url += '/' + degree;
		}
		
		if (areaStudy != '')
		{
			url += '/' + areaStudy;
		}
		
		if (subject != '')
		{
			url += '/' + subject;
		}
		
		$('#link-find-schools').attr('href', url); 
	}
}