       window.clearTimeout(@timer)
     @timer = window.setTimeout @save, 2000
 
+  change_select: =>
+    data = Backbone.Syphon.serialize(@)
+    @model.set data
+
+    @rerender()
+
+    if @timer
+      window.clearTimeout(@timer)
+    @timer = window.setTimeout @save, 2000
+
   events: =>
     'submit form': 'submitted'
     'keyup input': 'keyup'
+    'change input': 'keyup'
     'keyup textarea': 'keyup'
+    'change select': 'change_select'
     'change input[type=file]': 'file_chosen'
   
 

  @CompositeModelForm: CompositeModelForm
  @BaseCollectionView: BaseCollectionView
  @ModelFieldView:     ModelFieldView
  @render: (template_name, context) ->
    template = App.Handlebars[template_name]
    if template
      if verbose
        console.log "Rendering template '#{template_name}'"
      output = template context
      return output
    else
      throw "handlebars_render : error : couldn't find template '#{template_name}'"

        url: @model.url

    @_rendered = true
    helpers = (_.result @options, 'helpers') or (_.result @, 'helpers')
    template_result = Guts.render @get_template(), context, helpers
    orphans = @$el.children().detach()
    @$el.html(template_result)

