(function($) {
$.widget('ui.autoreplies', {
  _create: function () {
          var self = this;
          self.element.empty();
          self._generateSelectHead();
          self._getReplies(self.options.QueueID);
  },
  
  update: function(newargs) {
      this.args = $.extend(this.args, newargs);
      this._getReplies(this.args.QueueID);
  },

  _getReplies: function(queueID) {
      var self = this;
      $.post('/otrs', {
          Action: 'AgentXJSON',
          Subaction: 'AutoReplies',
          QueueID: queueID,
          ext: self.options.ext || 0
          }, function(data) {
          
          var replies = data.replies;

          if ( ! self.options.admin && 0 == replies.length ) {
              self.select
                .empty();
              return false;
          }

          self.select
            .empty()
            .append( 
                $('<option></option>') 
                .attr({value: 0})
             );
          
          if ( self.options.admin ) {
              self.select
                    .children('option:first')
                    .text('Добавить...');

          }
          
          for ( var i = 0; i < replies.length; i++ ) {
              self.select.append( 
                $('<option></option>')
                    .text(replies[i].subject)
                    .val(replies[i].id)
                );
          }

          self.element
            .css({float:'left'})
            .append(self.select);
      });
   },
   _generateSelectHead: function() {
       var self = this;
      self.select = $('<select></select>').attr({
          ID: 'autoreplies-select'
      }).change( function() {
          var replyID = $(this).children('option:selected').val();

          if ( replyID > 0 ) {

              $.post('/otrs', {
                  Action: 'AgentXJSON',
                  Subaction: 'AutoReply',
                  ID: replyID 
              }, function(data) {
                  $(self.options.subject).val(data.subject);
                  $(self.options.textfield).val(data.body);
              });

          } else {
              $(self.options.subject).val("");
              $(self.options.textfield).val("");
          }  
      });
   
   }

});
})(jQuery);      

