//$.getScript( '/js/vne/ContentAddSettings.js' );

/**
 * Define the ContentAddSettings class/prototype
 */
ContentAddSettings_Message$Class = {

  sAddresseeList      : '',
  sSenderUrn          : '',
  sSubject            : '',
  sAttachedObjectUrn  : '',
  bIsReply            : false,
  bIsPublish          : false,
  sMessageUrn         : '',

  __construct : function()
  {
    var oContentAddSettings = new ContentAddSettings();

    jQuery.extend( true, this, oContentAddSettings );
    jQuery.extend( true, this, ContentAddSettings_Message$Class );

    this.__super = oContentAddSettings;

    this.__setContentType( 'MESSAGE' );
  },

  setAddresseeList : function( sAddresseeList )
  {
    this.sAddresseeList = sAddresseeList;

    return this;
  },

  setSenderUrn : function( sSenderUrn )
  {
    this.sSenderUrn = sSenderUrn;

    return this;
  },

  setSubject : function( sSubject )
  {
    this.sSubject = sSubject;

    return this;
  },

  setAttachedObjectUrn : function( sObjectUrn )
  {
    this.sAttachedObjectUrn = sObjectUrn;

    return this;
  },

  setIsReply : function( bIsReply )
  {
    this.bIsReply = bIsReply;

    return this;
  },

  setIsPublish : function( bIsPublish )
  {
    this.bIsPublish = bIsPublish;

    return this;
  },

  setMessageUrn : function( sMessageUrn )
  {
    this.sMessageUrn = sMessageUrn;

    return this;
  },

  /**
   *
   * QuickAddSettings['defaultSettings']['preferences']['sAddresseeList']
   * QuickAddSettings['defaultSettings']['preferences']['sSenderUrn']
   * QuickAddSettings['defaultSettings']['preferences']['sCurrentSubject']
   *
   */
  getFullSettings : function()
  {
    var retval = this.__super.getFullSettings();

    this.__initDefaultSettings( retval );

    retval['defaultSettings']['preferences']['sAddresseeList']      = this.sAddresseeList;
    retval['defaultSettings']['preferences']['sSenderUrn']          = this.sSenderUrn;
    retval['defaultSettings']['preferences']['sCurrentSubject']     = this.sSubject;
    retval['defaultSettings']['preferences']['sAttachedObjectUrn']  = this.sAttachedObjectUrn;
    retval['defaultSettings']['preferences']['bIsReply']            = this.bIsReply;
    retval['defaultSettings']['preferences']['bIsPublish']          = this.bIsPublish;
    retval['defaultSettings']['preferences']['sMessageUrn']         = this.sMessageUrn;

    if( this.bIsPublish === true )
    {
      if( typeof retval['oEventTriggers'] !== 'object' || retval['oEventTriggers'] === null )
      {
        retval['oEventTriggers'] = {};
      }

      if( typeof retval['oEventTriggers'].success !== 'object' || retval['oEventTriggers'].success === null )
      {
        retval['oEventTriggers'].success = {};
      }

      if( typeof retval['oEventTriggers'].success.events !== 'object' || retval['oEventTriggers'].success.events.length !== 'number' )
      {
        retval['oEventTriggers'].success.events = [];
      }

      retval['oEventTriggers'].success.events.push( 'ContentAddMessagePublished' );
    }

    return retval;
  }
}

/**
 * Alias the constructor, thus defining the "instantiable"
 * class.
 */
ContentAddSettings_Message = ContentAddSettings_Message$Class.__construct;
