    /*!
     * Ext JS Library 3.3.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * licensing@extjs.com
     * http://www.extjs.com/license
     */
    /**
     * @class Ext.calendar.DayBodyTemplate
     * @extends Ext.XTemplate
     * This is the template used to render the scrolling body container used in {@link Ext.calendar.DayView DayView} and
     * {@link Ext.calendar.WeekView WeekView}. This template is automatically bound to the underlying event store by the
     * calendar components and expects records of type {@link Ext.calendar.EventRecord}.
     * Note that this template would not normally be used directly. Instead you would use the {@link Ext.calendar.DayViewTemplate}
     * that internally creates an instance of this template along with a {@link Ext.calendar.DayHeaderTemplate}.
     * @constructor
     * @param {Object} config The config object
     */
    Ext.calendar.DayBodyTemplate = function(config){

        Ext.apply(this, config);

        Ext.calendar.DayBodyTemplate.superclass.constructor.call(this,
            '',
                '',
                    '',
                        '',
                        '',
                            '',
                                '',
                                    '',
                                        '',
                                            '',
                                        '',
                                    '',
                                '',
                            '',
                        '',
                    '',
                    '',
                        '',
                            '',
                                '',
                                    '{.}',
                                '',
                            '',
                        '',
                        '',
                            '',
                                '',
                                    '',
                                '',
                            '',
                        '',
                    '',
                '',
            ''
        );
    };

    Ext.extend(Ext.calendar.DayBodyTemplate, Ext.XTemplate, {
        // private
        applyTemplate : function(o){
            this.today = new Date().clearTime();
            this.dayCount = this.dayCount || 1;

            var i = 0, days = [],
                dt = o.viewStart.clone(),
                times;

            for(; i<this.dayCount; i++){
                days[i] = dt.add(Date.DAY, i);
            }

            times = [];
            dt = new Date().clearTime();
            for(i=0; i<24; i++){
                times.push(dt.format('ga'));
                dt = dt.add(Date.HOUR, 1);
            }

            return Ext.calendar.DayBodyTemplate.superclass.applyTemplate.call(this, {
                days: days,
                dayCount: days.length,
                times: times
            });
        }
    });

    Ext.calendar.DayBodyTemplate.prototype.apply = Ext.calendar.DayBodyTemplate.prototype.applyTemplate;
    </pre>