jQuery(function($) {

    var eventName = 'emchange';
    
    $.em = $.extend({

        version: '1.0',

        delay: 200,
        
        element: $('<div />').css({ left:     '-100em',
                                    position: 'absolute',
                                    width:    '100em' })
                             .prependTo('body')[0],
        
        action: function() {
            var currentWidth = $.em.element.offsetWidth / 100;
            
            if ( currentWidth != $.em.current ) {

                $.em.previous = $.em.current;
                
                $.em.current = currentWidth;
                
                $.event.trigger(eventName, [$.em.current, $.em.previous]);
            }
        }
    }, $.em );
    
    $.fn[eventName] = function(fn) { return fn ? this.bind(eventName, fn)
                                               : this.trigger(eventName); };

    $.em.current = $.em.element.offsetWidth / 100;
    
    $.em.iid = setInterval( $.em.action, $.em.delay );
});
