       @options = $.extend({}, @defaults, options)
 
       @initEvents()
+      @initInvade()
       true
 
     initEvents: ->
       @panel.on 'click', '.selection', (event) => @toggle()
       @panel.on 'click', '.selection-clear', (event) => @clear() and false
       @panel.on 'click', '[data-item-value]', (event) => @val($(event.currentTarget).data('item-value')) and false
+
+    initInvade: ->
+      return if @options.invade == false || @options.invade == 'false'
+      @home = @panel.parent()
+      @away = $("<div class='col-xs-12 effective_panel_select'></div>")
 
     # Rest of these are commands
 

      placeholder: 'Please choose'
      invade: '.row'

    panel: null     # Our root node. the .panel element
    input: null     # The input[type=hidden] field where we keep the selected value
    selected: null  # Contains either a %span.selection-placeholder, or a %span.selection-clear and %span.selection-label
    selector: null  # Root node of the expanded container

    constructor: (el, options) ->
      @panel = $(el)


    expand: ->
      @panel.addClass('expanded')
      @invade() if @options.invade

    invade: ->
      target = @home.closest(@options.invade)
      return unless target.length && !@invading

      @panel.detach()
      target.children().hide()
      @away.append(@panel).show()
      target.append(@away)

      @invading = true

    retreat: ->
      target = @away.closest(@options.invade)
      return unless target.length && @invading

      @panel.detach()
      target.children().show()
      @away.hide()

      hint = @home.children('p')
      if hint.length then @panel.insertBefore(hint) else @home.append(@panel)

      @invading = false

    collapse: ->
      @panel.removeClass('expanded')
      @retreat() if @options.invade

    # Get / Set / Clear selection
    val: (args...) ->
