             o.el            = $ el
             o.cloneEl       = o.el.clone() # Reference to the old untouched element
             o.browserWindow = $ window
+            o.windowWidth   = o.browserWindow.width()
 
             o.opts.onLoad(_this) if $.isFunction(o.opts.onLoad)
 

                )
                .get()

            optimalCrumbHeight = _.max crumbHeights

            if optimalCrumbHeight isnt o.el.height()
                o.compress()
            else
                console.log 'must be decompressed'

            # if typeof optimalWidth is "undefined"
            #     if optimalCrumbHeight isnt o.el.height()

                # set the state to compressed
                current.data o.stateKey, 'compressed'

                if holder.length is 0
                    holder = ($ "<li class=\"#{ o.opts.holder.class }\"><a href=\"#\">#{ o.opts.holder.text }</a><ul class=\"clearfix\" /></li>").insertAfter items.first()

                # initialize an array for storage of the hidden items
                hiddenItems = []

                # loop through the breadcrumb children starting from the element after the holder element until the element before the active element
                current
                    .children(".#{ o.opts.holder.class }")
                    .nextUntil('.active')
                    .each ->
                        crumb = $ this

                        hiddenItems.push(crumb.detach().get(0)) if o.optimalCrumbHeight isnt o.el.height()

                        # delete the reference since it does not correctly point it anymore the element
                        crumb = null

                o.opts.onCompress(_this) if $.isFunction(o.opts.onCompress)

