       @submitOnEnter = true if !@multiline
       @$form.on('reset', @handleReset)
 
+  # get clipboard content from given event or windows clipboardData
+  _getClipboardContent: (e)->
+    if e.originalEvent?.clipboardData
+      e.originalEvent.clipboardData.getData('text/plain')
+    else if window.clipboardData?.getData
+      window.clipboardData.getData('Text')
+
+  _getRange: (block)->
+    selection = rangy.getSelection()
+    range = selection.getRangeAt(0)
+    selection.setSingleRange(range)
+    block(range, selection)
+
+  # insert a node at current cursor position
+  # sets cursor after node
+  _insertNode: (node)->
+    @_getRange (range, selection)->
+      range.insertNode(node)
+      range.selectNodeContents(node)
+      selection.collapseToEnd()
+
+  # insert a plain text at current cursor position
+  # substitutes line breaks with <br>
+  # sets cursor to end of inserted text
+  _insertText: (text)->
+    lines = text.split("\n")
+    nodes = []
+    for line in lines
+      nodes.push document.createTextNode(line)
+      nodes.push document.createElement('BR')
+    nodes.pop() # remove last br
+
+    @_getRange (range, selection)->
+      range.deleteContents()
+      reverse = nodes.reverse()
+      for node in reverse
+        range.insertNode(node)
+      range.selectNodeContents(reverse[0])
+      selection.collapseToEnd()
+
+    undefined
+
   # if we remove items from nodeList it is updated live, that results in missed nodes
   # therefore we save the node references in an array and iterate over that
   cloneReferences = (nodes)->

    }

    tempMention = @_current.$tempMention.get(0)
    selection = rangy.getSelection()
    range = selection.getRangeAt(0)
    range.insertNode(tempMention)
    range.selectNodeContents(tempMention)
    selection.setSingleRange(range)

    @_current.autocompleter = new @_current.triggerOptions.autocompleter(mentionsKind: @)
    @_current.autocompleter.done(@handleAutocompleteDone)


  # Event handler
  # paste
  handlePaste: (e)=>
    if (content = @_getClipboardContent(e))
      e.preventDefault()
      @_insertText(content)
    else
      setTimeout(@cleanEditable, 0)

  # Event handler
  # (form) reset
