$(function() { var gndata; // loaded once for all to use process_json = function(data) { populate_species(); return apply_default(); }; $.getJSON(gn_server_url+"/int/menu/main.json", function(data) { gndata = data; console.log("***** GOT DATA from GN_SERVER ****"); console.log(gndata); populate_species(); }).error(function() { console.log("ERROR: GN_SERVER not responding"); alert("ERROR: GN_SERVER internal REST API is not responding"); }); var populate_species = function() { var species_list = Object.keys(gndata.menu).map(function(species) { var mitem = gndata.menu[species].menu // console.log("Species menu:",species,mitem) return [species,mitem]; }); redo_dropdown($('#species'), species_list); return populate_group(); }; window.populate_species = populate_species; var populate_group = function() { var species = $('#species').val(); var groups = gndata.groups[species].map(function(item) { console.log("group:",item); return item.slice(1,3); }) redo_dropdown($('#group'), groups); return populate_type(); }; window.populate_group = populate_group; var populate_type = function() { var species = $('#species').val(); var group = $('#group').val(); var type_list = gndata.menu[species].types[group].map(function(item) { return [item,item]; }); redo_dropdown($('#type'), type_list); return populate_dataset(); }; window.populate_type = populate_type; var populate_dataset = function() { var species = $('#species').val(); var group = $('#group').val(); var type = $('#type').val(); var dataset_list = gndata.datasets[species][group][type].map(function(item) { return item.slice(1,3); }) return redo_dropdown($('#dataset'), dataset_list); }; window.populate_dataset = populate_dataset; var redo_dropdown = function(dropdown, items) { var item, _i, _len, _results; console.log("in redo:", dropdown, items); dropdown.empty(); _results = []; for (_i = 0, _len = items.length; _i < _len; _i++) { item = items[_i]; if (item.length > 2){ _results.push(dropdown.append($("