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

          )
          options.statusDisplay.append ' ', a
    
    sync = (async) ->
      ST.Model.sync(url, async, options.data || {})
    
    setInterval(->
      if sync(true)
        if options.statusDisplay
          count = ST.Model.changes()
          options.statusDisplay.html(
            ST.template(options.savingTemplate || 'Saving :count :changes...', {
              count:   count
              changes: if count == 1 then 'change' else 'changes'
            })
          )
    options.interval || 10000)
    
    if options.syncBeforeUnload
      window.onbeforeunload = (e) ->

          @_changes[id].submitted = false
          @_onSyncError errors if @_onSyncError
          return false
      unless @_changesCount
        @_onSyncComplete() if @_onSyncComplete
      true
    else
