    /*!
     * Ext JS Library 3.3.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * licensing@extjs.com
     * http://www.extjs.com/license
     */
    /**
     * @class Ext.calendar.DayViewTemplate
     * @extends Ext.XTemplate
     * This is the template used to render the all-day event container used in {@link Ext.calendar.DayView DayView} and
     * {@link Ext.calendar.WeekView WeekView}. Internally this class simply defers to instances of {@link Ext.calerndar.DayHeaderTemplate}
     * and  {@link Ext.calerndar.DayBodyTemplate} to perform the actual rendering logic, but it also provides the overall calendar view
     * container that contains them both.  As such this is the template that should be used when rendering day or week views.
     * This template is automatically bound to the underlying event store by the
     * calendar components and expects records of type {@link Ext.calendar.EventRecord}.
     * @constructor
     * @param {Object} config The config object
     */
    Ext.calendar.DayViewTemplate = function(config){

        Ext.apply(this, config);

        this.headerTpl = new Ext.calendar.DayHeaderTemplate(config);
        this.headerTpl.compile();

        this.bodyTpl = new Ext.calendar.DayBodyTemplate(config);
        this.bodyTpl.compile();

        Ext.calendar.DayViewTemplate.superclass.constructor.call(this,
            '',
                '{headerTpl}',
                '{bodyTpl}',
            ''
        );
    };

    Ext.extend(Ext.calendar.DayViewTemplate, Ext.XTemplate, {
        // private
        applyTemplate : function(o){
            return Ext.calendar.DayViewTemplate.superclass.applyTemplate.call(this, {
                headerTpl: this.headerTpl.apply(o),
                bodyTpl: this.bodyTpl.apply(o)
            });
        }
    });

    Ext.calendar.DayViewTemplate.prototype.apply = Ext.calendar.DayViewTemplate.prototype.applyTemplate;