var category_list_cb = function(obj, link) {
	var category = obj['category'];
	url=link + encodeURI(category);
	jQuery('#qdf-category').append('<option value="'+url+'">'+category+'</option>');
};

var level_list_cb_each = function(obj, link) {
	var level = obj['level'];
	url=link + encodeURI(level);
	jQuery('#qdf-level').append('<option value="'+url+'">'+level+'</option>');
};

var level_list_cb_post = function(obj, link) {
	jQuery('#qdf-level :selected').remove();
	jQuery('#qdf-level').prepend('<option value="" SELECTED> - level - </option>');
};

var subject_list_cb_each = function(obj, link) {
	var subject = obj['subject'];
	url=link + encodeURI(subject);
	jQuery('#qdf-subject').append('<option value="'+url+'">'+subject+'</option>');
};

var subject_list_cb_post = function(obj, link) {
	jQuery('#qdf-subject :selected').remove();
	jQuery('#qdf-subject').prepend('<option value="" SELECTED> - subject - </option>');
};

var category_reset = function() {
	jQuery('#qdf-category').children().remove().end();
	jQuery('#qdf-category').append('<option value="" SELECTED> - category - </option>');

	category="";
	level_reset();
}

var level_onload = function() {
	jQuery('#qdf-level').attr('disabled', false);
	jQuery('#qdf-level :selected').remove();
	jQuery('#qdf-level').append('<option value="" SELECTED> loading... </option>');
}

var subject_onload = function() {
	jQuery('#qdf-level').attr('disabled', false);
	jQuery('#qdf-subject').attr('disabled', false);
	jQuery('#qdf-subject :selected').remove();
	jQuery('#qdf-subject').append('<option value="" SELECTED> loading... </option>');
}

var level_reset = function() {
	jQuery('#qdf-level').children().remove().end();
	jQuery('#qdf-level').append('<option value="" SELECTED> - level - </option>');
	jQuery('#qdf-level').attr('disabled', true);

	level="";
	subject_reset();
}

var subject_reset = function() {
	jQuery('#qdf-subject').children().remove().end();
	jQuery('#qdf-subject').append('<option value="" SELECTED> - subject - </option>');
	jQuery('#qdf-subject').attr('disabled', true);

	subject="";
}

var category="";
var level="";
var subject="";

jQuery('document').ready(function(){
	category_reset();

		api = apiserver + '&type=list'
	link = '';
	cb = category_list_cb;
	get_data(api,link,cb);

	jQuery('#qdf-category').change(function() {
		level_reset();
		level_onload();

		val=jQuery(this).val();
		category=val;
		api = apiserver + '&type=category&category=' + urlencode(category);
		link = '';
		cb_each = level_list_cb_each;
		cb_post = level_list_cb_post;
		get_data(api,link,cb_each,cb_post);
	});

	jQuery('#qdf-level').change(function() {
		subject_reset();
		subject_onload();

		val=jQuery(this).val();
		level=val;
		api = apiserver + '&type=level&category=' + urlencode(category) + '&level=' + urlencode(level);
		link = '';
		cb_each = subject_list_cb_each;
		cb_post = subject_list_cb_post;
		get_data(api,link,cb_each,cb_post);
	});

	jQuery('#qdf-subject').change(function() {
		jQuery('#qdf-subject').attr('disabled', false);

		val=jQuery(this).val();
		subject=val;
		link = apiserver + '&type=subject&category=' + urlencode(category) + '&level=' + urlencode(level)+ '&subject=' + urlencode(subject);
		//link = apiserver + urlencode('api/program/listby/category/' + category + '/level/' + level + '/subject/' + subject);
		
		//jQuery('.qdf-submit').attr('disabled', false);		
	});
});

