       @element.setAttribute "enctype", "multipart/form-data"
       @element.setAttribute "method", "post"
     form ? fields
+
+
+  # Returns the fallback elements if they exist already
+  # 
+  # This code has to pass in IE7 :(
+  getExistingFallback: ->
+    getFallback = (elements) -> return el for el in elements when /fallback/.test el.className
+
+    for tagName in [ "div", "form" ]
+      return fallback if fallback = getFallback @element.getElementsByTagName "div"
+
 
   # Activates all listeners stored in @listeners
   setupEventListeners: ->

  # Returns a form that can be used as fallback if the browser does not support DragnDrop
  #
  # If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.
  getFallbackForm: ->
    # This code has to pass in IE6 :(
    fields = createElement """<div class="fallback-elements"><input type="file" name="#{@options.paramName}" multiple="multiple" /><button type="submit">Upload!</button></div>"""
    if @element.tagName isnt "FORM"
      form = createElement("""<form action="#{@options.url}" enctype="multipart/form-data" method="post"></form>""")
      form.appendChild fields


    # Called when the browser does not support drag and drop
    fallback: ->
      # This code should pass in IE7... :(
      @element.className = "#{@element.className} browser-not-supported"

      for child in @element.getElementsByTagName "div"
