 (($, window, document, undefined_) ->
     "use strict"
 
-    pluginName = 'responsiveBreacrumbs'
+    pluginName = 'responsiveBreadcrumbs'
     defaults =
-        onLoad: ->
-        onDestroy: ->
+        allowance:              10
+        compressed:
+            wrapperClass: "#{ pluginName.toLowerCase() }-compressed-wrapper"
+            beforeOpen:   (obj) ->
+            open:         (obj) ->
+            afterOpen:    (obj) ->
+            beforeClose:  (obj) ->
+            close:        (obj) ->
+            afterClose:   (obj) ->
+        debounceTime:           200
+        enhanceAnimation:       true
+        exposeItems:            false
+        fixIEResize:            false
+        wrapperClass:           "#{ pluginName.toLowerCase() }-wrapper"
+        wrappedClass:           "#{ pluginName.toLowerCase() }-wrapped"
+        onBeforeCompress:       (obj) ->
+        onCompress:             (obj) ->
+        onAfterCompress:        (obj) ->
+        onBeforeShowCompressed: (obj) ->
+        onShowCompressed:       (obj) ->
+        onAfterShowCompressed:  (obj) ->
+        onBeforeLoad:           (obj) ->
+        onLoad:                 (obj) ->
+        onAfterLoad:            (obj) ->
+        onDestroy:              (obj) ->
 
-    ResponsiveBreacrumbs = (el, options) ->
+    ResponsiveBreadcrumbs = (el, options) ->
         o        = ($ el).data '_obj', {}
         _this    = this
         metadata = ($ el).data "#{ pluginName.toLowerCase() }-options"
+
+        resize =
+            main: (e) ->
+                current      = $ this
+                optimalWidth = o.el.data "#{ pluginName.toLowerCase() }-optimalwidth"
+
+                crumbHeights = o.el
+                    .children('li')
+                    .map( ->
+                        return ($ this).outerHeight true
+                    )
+                    .get()
+
+                optimalCrumbHeight = _.max crumbHeights
+
+                if typeof optimalWidth is "undefined"
+                    if optimalCrumbHeight isnt o.el.height()
+                        o.el
+                            .data("#{ pluginName.toLowerCase() }-optimalwidth", (current.width() + o.opts.allowance))
+                            .addClass o.opts.wrappedClass
+                else
+                    if current.width() >= optimalWidth
+                        console.log 'remove'
+                        o.el.removeClass o.opts.wrappedClass
+                    else
+                        console.log 'add'
+                        o.el.addClass o.opts.wrappedClass
+
+                return null
 
         o.debug = ->
             # Skip browsers w/o firebug or console


    $.fn[pluginName] = (options) ->
        @each ->
            $.data this, pluginName, new FrozPluginName(this, options) unless $.data(this, pluginName)

) jQuery, window, document
                    args.push arguments_[n]
                    args.push " >> "

                args.push(o.el) if args.length is 1
                args.push "[#{ pluginName }]"

                console.log.apply console, args
