// Generated by CoffeeScript 1.8.0
$(function() {
    var apply_default, check_search_term, dataset_info, group_info, make_default, open_window, populate_dataset, populate_group, populate_species, populate_type, process_json, redo_dropdown, gndata;
  process_json = function(data) {
    window.jdata = data;
    populate_species();
    return apply_default();
  };
  $.ajax('/static/new/javascript/dataset_menu_structure.json', {
    dataType: 'json',
    success: process_json
  });
  $.getJSON("http://localhost:8880/int/menu/main",
     function(data) {
        gndata = data;
        console.log("***** GOT DATA from GN_SERVER ****");
        console.log(gndata);
        var species = gndata.species.map(function(item) {
            // console.log(item)
            menu = [item[1],item[2]]
            // console.log(menu)
            return menu;
        });
        console.log(species);
        redo_dropdown($('#species'), species);
        populate_group();
  });
    
  populate_species = function() {
    // var species_list;
    // species_list = this.jdata.species;
    // redo_dropdown($('#species'), species_list);
    return populate_group();
  };
  window.populate_species = populate_species;
  populate_group = function() {
    console.log("in populate group");
    var species = $('#species').val();
    var groups = gndata.groups[species].map(function(item) {
        console.log(item);
        return [item[1],item[2]];
    })
    redo_dropdown($('#group'), groups);
    return populate_type();
  };
  window.populate_group = populate_group;
  populate_type = function() {
    var group, species, type_list;
    console.log("in populate type");
    species = $('#species').val();
    group = $('#group').val();
    type_list = this.jdata.types[species][group];
    redo_dropdown($('#type'), type_list);
    return populate_dataset();
  };
  window.populate_type = populate_type;
  populate_dataset = function() {
    var dataset_list, group, species, type;
    console.log("in populate dataset");
    species = $('#species').val();
    group = $('#group').val();
    type = $('#type').val();
    console.log("sgt:", species, group, type);
    dataset_list = this.jdata.datasets[species][group][type];
    console.log("pop_dataset:", dataset_list);
    return redo_dropdown($('#dataset'), dataset_list);
  };
  window.populate_dataset = populate_dataset;
  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($("<option data-id=\""+item[0]+"\" />").val(item[1]).text(item[2])));
      } else {
        _results.push(dropdown.append($("<option />").val(item[0]).text(item[1])));
      }
    }
    return _results;
  };
  $('#species').change((function(_this) {
    return function() {
      return populate_group();
    };
  })(this));
  $('#group').change((function(_this) {
    return function() {
      return populate_type();
    };
  })(this));
  $('#type').change((function(_this) {
    return function() {
      return populate_dataset();
    };
  })(this));
  open_window = function(url, name) {
    var options;
    options = "menubar=1,toolbar=1,location=1,resizable=1,status=1,scrollbars=1,directories=1,width=900";
    return open(url, name, options).focus();
  };
  group_info = function() {
    var group, species, url;
    species = $('#species').val();
    group = $('#group').val();
    url = "/" + species + "Cross.html#" + group;
    return open_window(url, "Group Info");
  };
  $('#group_info').click(group_info);
  dataset_info = function() {
    var dataset, url;
    accession_id = $('#dataset option:selected').data("id");
    url = "http://genenetwork.org/webqtl/main.py?FormID=sharinginfo&GN_AccessionId=" + accession_id;
    return open_window(url, "Dataset Info");
  };
  $('#dataset_info').click(dataset_info);
  make_default = function() {
    var holder, item, jholder, _i, _len, _ref;
    alert("The current settings are now your default.")
    holder = {};
    _ref = ['species', 'group', 'type', 'dataset'];
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
      item = _ref[_i];
      holder[item] = $("#" + item).val();
    }
    jholder = JSON.stringify(holder);
    return $.cookie('search_defaults', jholder, {
      expires: 365
    });
  };
  apply_default = function() {
    var defaults, item, populate_function, _i, _len, _ref, _results;
    defaults = $.cookie('search_defaults');
    if (defaults) {
      defaults = $.parseJSON(defaults);
    } else {
      defaults = {
        species: "mouse",
        group: "BXD",
        type: "Hippocampus mRNA",
        dataset: "HC_M2_0606_P"
      };
    }
    _ref = [['species', 'group'], ['group', 'type'], ['type', 'dataset'], ['dataset', null]];
    _results = [];
    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
      item = _ref[_i];
      $("#" + item[0]).val(defaults[item[0]]);
      if (item[1]) {
        populate_function = "populate_" + item[1];
        console.log("Calling:", populate_function);
        _results.push(window[populate_function]());
      } else {
        _results.push(void 0);
      }
    }
    return _results;
  };
  check_search_term = function() {
    var or_search_term, and_search_term;
    or_search_term = $('#or_search').val();
    and_search_term = $('#and_search').val();
    console.log("or_search_term:", or_search_term);
    console.log("and_search_term:", and_search_term);
    if (or_search_term === "" && and_search_term === "") {
      alert("Please enter one or more search terms or search equations.");
      return false;
    }
  };
  $("#make_default").click(make_default);
  return $("#btsearch").click(check_search_term);
});