function PopulateFields( arrStreams, arrCourseTypes, arrCourseCategories, arrLocations, strCoursesReturned ){

var selectedStreamSelect = $( "#selectedStream" );
var selectedCourseCategorySelect = $( "#selectedCourseCategory" );
var selectedCourseTypeSelect = $( "#selectedCourseType" );
var selectedLocationSelect = $( "#selectedLocation" );

var strSelected = "";

auxArr = [];
$.each(arrStreams, function(i, option)
{
    auxArr[i] = "<option value='" + option.label + "'>" + option.value + "</option>";
});

strSelected = selectedStreamSelect.val();
selectedStreamSelect.html($('option:first', selectedStreamSelect));
selectedStreamSelect.append(auxArr.join(''));
selectedStreamSelect.val(strSelected);

auxArr = [];
$.each(arrCourseTypes, function(i, option)
{
    auxArr[i] = "<option value='" + option.label + "'>" + option.value + "</option>";
});
strSelected = selectedCourseTypeSelect.val();
selectedCourseTypeSelect.html($('option:first', selectedCourseTypeSelect));
selectedCourseTypeSelect.append(auxArr.join(''));
selectedCourseTypeSelect.val(strSelected);

//auxArr = [];

//$.each(arrCourseCategories, function(i, option)
//{
//    auxArr[i] = "<option value='" + option.label + "'>" + option.value + "</option>";
//});
//strSelected = selectedCourseCategorySelect.val();
//selectedCourseCategorySelect.html($('option:first', selectedCourseCategorySelect));
//selectedCourseCategorySelect.append(auxArr.join(''));
//selectedCourseCategorySelect.val(strSelected);

auxArr = [];
$.each(arrLocations, function(i, option)
{
    auxArr[i] = "<option value='" + option.label + "'>" + option.value + "</option>";
});
strSelected = selectedLocationSelect.val();
selectedLocationSelect.html($('option:first', selectedLocationSelect));
selectedLocationSelect.append(auxArr.join(''));
selectedLocationSelect.val(strSelected);

selectedStreamSelect.removeAttr("disabled");
selectedCourseTypeSelect.removeAttr("disabled");
//selectedCourseCategorySelect.removeAttr("disabled");
selectedLocationSelect.removeAttr("disabled");
hideLoading(strCoursesReturned)

}

function GetAJAXValues( strLanguageId, strStreamId, strCourseTypeId, strCourseCategoryId, strLocationId, fnCallback ){
    if (GetAJAXValues.Xhr){
        GetAJAXValues.Xhr.abort();
    }
    GetAJAXValues.Xhr = $.ajax({type: "post",url: "/ajax/updateCategories.html",data: {selectedLanguage: strLanguageId, selectedStream: strStreamId, selectedCourseType: strCourseTypeId,selectedCourseCategory: strCourseCategoryId, selectedLocation: strLocationId},dataType: "json",success: function( objData ){fnCallback({Value1: objData.streams,Value2: objData.courseTypes,Value3: objData.courseCategories,Value4: objData.locations,Value5: objData.coursesReturned});},error: function(){fnCallback({Value1: "unable",Value2: "unable",Value3: "unable",Value4: "unable",Value5: "unable"});},complete: function(){GetAJAXValues.Xhr = null;}});
}

function UpdateFormFields(){
    var selectedStreamSelect = $( "#selectedStream" );
    //var selectedCourseCategorySelect = $( "#selectedCourseCategory" );
    var selectedCourseTypeSelect = $( "#selectedCourseType" );
    var selectedLocationSelect = $( "#selectedLocation" );
    var selectedLanguageSelect = $( "#selectedLanguage" );
    var objData = null;
    selectedStreamSelect.attr("disabled", true);
    selectedCourseTypeSelect.attr("disabled", true);
    //selectedCourseCategorySelect.attr("disabled", true);
    selectedLocationSelect.attr("disabled", true);
    showLoading();
    GetAJAXValues(selectedLanguageSelect.val(),selectedStreamSelect.val(),selectedCourseTypeSelect.val(),'',selectedLocationSelect.val(),function( objRemoteData ){PopulateFields(objRemoteData.Value1,objRemoteData.Value2,objRemoteData.Value3,objRemoteData.Value4,objRemoteData.Value5);});
}

$(function(){
    var selectedStreamSelect = $( "#selectedStream" );
    //var selectedCourseCategorySelect = $( "#selectedCourseCategory" );
    var selectedCourseTypeSelect = $( "#selectedCourseType" );
    var selectedLocationSelect = $( "#selectedLocation" );
    var selectedLanguageSelect = $( "#selectedLanguage" );
    selectedStreamSelect.change( UpdateFormFields );
    selectedCourseTypeSelect.change( UpdateFormFields );
    //selectedCourseCategorySelect.change( UpdateFormFields );
    selectedLocationSelect.change( UpdateFormFields );
    selectedLanguageSelect.change( UpdateFormFields );
});

function showLoading() {
  $("#loading").html('<p><img src="/images/updateCategories.gif" />&nbsp;Courses</p>');
}

function hideLoading(strCoursesReturned) {
  $("#loading").html('<p><b>' + strCoursesReturned + '</b>&nbsp;Courses</p>');
}
