/**
 * A drag proxy for day style events.
 */
Ext.define('Ext.calendar.dd.DaysProxy', {
    extend: 'Ext.drag.proxy.Placeholder',
    alias: 'drag.proxy.calendar-days',

    config: {
        cursorOffset: null
    },

    draggingCls: Ext.baseCSSPrefix + 'calendar-event-dragging',

    getElement: function(info) {
        var me = this,
            view = info.view,
            widget = info.widget,
            clone = widget.cloneForProxy(),
            el = clone.element,
            eventColumn = view.getEventColumn(0);

        clone.removeCls(view.$staticEventCls);
        clone.addCls(me.draggingCls);
        clone.setWidth(Ext.fly(eventColumn).getWidth());
        clone.setHeight(widget.getHeight());
        view.bodyWrap.appendChild(el);
        me.element = el;
        me.clone = clone;
        info.widgetClone = clone;

        return el;
    },

    cleanup: function(info) {
        if (info && info.deferCleanup) {
            return;
        }

        this.clone = Ext.destroy(this.clone);

        this.callParent();
    }
});
