     if @_changesCount > 0 && !@_submitting
       self = this
       @_submitting = true
+      @_onSyncStart @_changesCount if @_onSyncStart
       for id of @_changes
         if @_changes.hasOwnProperty id
           @_changes[id].submitted = true

      false
  
  @autoSync = (url, options={}) ->
    @onHasChanges (count) ->
      if options.statusDisplay
        options.statusDisplay.html(
          ST.template(options.unsavedTemplate || ':count :changes waiting to save', {
            count:    count
            changes:  if count == 1 then 'change' else 'changes'
          })
        )
    
    @onSyncComplete ->
      if options.statusDisplay
        options.statusDisplay.html(
          options.savedTemplate || 'Saved.'
        )
    
    @onSyncError (errors) ->
      if options.statusDisplay
        options.statusDisplay.html(
          options.errorTemplate || 'Save failed!'
        )

          )
          options.statusDisplay.append ' ', a
    
    @onHasChanges ->
      setTimeout (-> sync true), 100
    
    if options.syncBeforeUnload
      window.onbeforeunload = (e) ->
