    /*!
     * Ext JS Library 3.3.0
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * licensing@extjs.com
     * http://www.extjs.com/license
     */
    /**
     * @class Ext.calendar.EventMappings
     * @extends Object
     * A simple object that provides the field definitions for EventRecords so that they can be easily overridden.
     */
    Ext.calendar.EventMappings = {
        EventId: {
            name: 'EventId',
            mapping: 'id',
            type: 'int'
        },
        CalendarId: {
            name: 'CalendarId',
            mapping: 'cid',
            type: 'int'
        },
        Title: {
            name: 'Title',
            mapping: 'title',
            type: 'string'
        },
        StartDate: {
            name: 'StartDate',
            mapping: 'start',
            type: 'date',
            dateFormat: 'c'
        },
        EndDate: {
            name: 'EndDate',
            mapping: 'end',
            type: 'date',
            dateFormat: 'c'
        },
        Location: {
            name: 'Location',
            mapping: 'loc',
            type: 'string'
        },
        Notes: {
            name: 'Notes',
            mapping: 'notes',
            type: 'string'
        },
        Url: {
            name: 'Url',
            mapping: 'url',
            type: 'string'
        },
        IsAllDay: {
            name: 'IsAllDay',
            mapping: 'ad',
            type: 'boolean'
        },
        Reminder: {
            name: 'Reminder',
            mapping: 'rem',
            type: 'string'
        },
        IsNew: {
            name: 'IsNew',
            mapping: 'n',
            type: 'boolean'
        }
    };

    /**
     * @class Ext.calendar.EventRecord
     * @extends Ext.data.Record
     * This is the {@link Ext.data.Record Record} specification for calendar event data used by the
     * {@link Ext.calendar.CalendarPanel CalendarPanel}'s underlying store. It can be overridden as
     * necessary to customize the fields supported by events, although the existing column names should
     * not be altered. If your model fields are named differently you should update the mapping
     * configs accordingly.
     * The only required fields when creating a new event record instance are StartDate and
     * EndDate.  All other fields are either optional are will be defaulted if blank.
     * Here is a basic example for how to create a new record of this type:
    rec = new Ext.calendar.EventRecord({
        StartDate: '2101-01-12 12:00:00',
        EndDate: '2101-01-12 13:30:00',
        Title: 'My cool event',
        Notes: 'Some notes'
    });

     * If you have overridden any of the record's data mappings via the Ext.calendar.EventMappings object
     * you may need to set the values using this alternate syntax to ensure that the fields match up correctly:
    var M = Ext.calendar.EventMappings;

    rec = new Ext.calendar.EventRecord();
    rec.data[M.StartDate.name] = '2101-01-12 12:00:00';
    rec.data[M.EndDate.name] = '2101-01-12 13:30:00';
    rec.data[M.Title.name] = 'My cool event';
    rec.data[M.Notes.name] = 'Some notes';

     * @constructor
     * @param {Object} data (Optional) An object, the properties of which provide values for the new Record's
     * fields. If not specified the {@link Ext.data.Field#defaultValue defaultValue}
     * for each field will be assigned.
     * @param {Object} id (Optional) The id of the Record. The id is used by the
     * {@link Ext.data.Store} object which owns the Record to index its collection
     * of Records (therefore this id should be unique within each store). If an
     * id is not specified a {@link #phantom}
     * Record will be created with an {@link #Record.id automatically generated id}.
     */
     (function() {
        var M = Ext.calendar.EventMappings;

        Ext.calendar.EventRecord = Ext.data.Record.create([
        M.EventId,
        M.CalendarId,
        M.Title,
        M.StartDate,
        M.EndDate,
        M.Location,
        M.Notes,
        M.Url,
        M.IsAllDay,
        M.Reminder,
        M.IsNew
        ]);

        /**
         * Reconfigures the default record definition based on the current Ext.calendar.EventMappings object
         */
        Ext.calendar.EventRecord.reconfigure = function() {
            Ext.calendar.EventRecord = Ext.data.Record.create([
            M.EventId,
            M.CalendarId,
            M.Title,
            M.StartDate,
            M.EndDate,
            M.Location,
            M.Notes,
            M.Url,
            M.IsAllDay,
            M.Reminder,
            M.IsNew
            ]);
        };
    })();