// This is a dropdown menu module.
define(["model"], function (Model){
  return function Dropdown(containerNode){

    var container = d3.select(containerNode),
        menu = container.append("select"),
        model = Model();

    model.when("data", function (data){
      var options = menu.selectAll("option").data(data);
      options.enter().append("option");
      options
        .attr("value", function(d){ return d.name; })
        .text(function(d){ return d.label; });
      options.exit().remove();
    });
    
    menu.on("change", function(d){
      model.selectedValue = this.value;
    });

    model.when("selectedValue", function (selectedValue){
      menu.node().value = selectedValue;
    });

    return model;
  };
});