text: var AppInbox = function () {
  
      var content = $('.inbox-content');
      var loading = $('.inbox-loading');
      var listListing = '';
  
      var loadInbox = function (el, name) {
          var url = 'app_inbox_inbox.html';
          var title = $('.inbox-nav > li.' + name + ' a').attr('data-title');
          listListing = name;
  
          loading.show();
          content.html('');
          toggleButton(el);
  
          $.ajax({
              type: "GET",
              cache: false,
              url: url,
              dataType: "html",
              success: function(res) 
              {
                  toggleButton(el);
  
                  $('.inbox-nav > li.active').removeClass('active');
                  $('.inbox-nav > li.' + name).addClass('active');
                  $('.inbox-header > h1').text(title);
  
                  loading.hide();
                  content.html(res);
                  if (Layout.fixContentHeight) {
                      Layout.fixContentHeight();
                  }
              },
              error: function(xhr, ajaxOptions, thrownError)
              {
                  toggleButton(el);
              },
              async: false
          });
  
          // handle group checkbox:
          jQuery('body').on('change', '.mail-group-checkbox', function () {
              var set = jQuery('.mail-checkbox');
              var checked = jQuery(this).is(":checked");
              jQuery(set).each(function () {
                  alert(checked);
                  $(this).attr("checked", checked);
              });
          });
      }
  
      var loadMessage = function (el, name, resetMenu) {
          var url = 'app_inbox_view.html';
  
          loading.show();
          content.html('');
          toggleButton(el);
  
          var message_id = el.parent('tr').attr("data-messageid");  
          
          $.ajax({
              type: "GET",
              cache: false,
              url: url,
              dataType: "html",
              data: {'message_id': message_id},
              success: function(res) 
              {
                  toggleButton(el);
  
                  if (resetMenu) {
                      $('.inbox-nav > li.active').removeClass('active');
                  }
                  $('.inbox-header > h1').text('View Message');
  
                  loading.hide();
                  content.html(res);
                  Layout.fixContentHeight();
              },
              error: function(xhr, ajaxOptions, thrownError)
              {
                  toggleButton(el);
              },
              async: false
          });
      }
  
      var initWysihtml5 = function () {
          $('.inbox-wysihtml5').wysihtml5({
              "stylesheets": ["../assets/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css"]
          });
      }
  
      var initFileupload = function () {
  
          $('#fileupload').fileupload({
              // Uncomment the following to send cross-domain cookies:
              //xhrFields: {withCredentials: true},
              url: '../assets/global/plugins/jquery-file-upload/server/php/',
              autoUpload: true
          });
  
          // Upload server status check for browsers with CORS support:
          if ($.support.cors) {
              $.ajax({
                  url: '../assets/global/plugins/jquery-file-upload/server/php/',
                  type: 'HEAD'
              }).fail(function () {
                  $('<span class="alert alert-error"/>')
                      .text('Upload server currently unavailable - ' +
                      new Date())
                      .appendTo('#fileupload');
              });
          }
      }
  
      var loadCompose = function (el) {
          var url = 'app_inbox_compose.html';
  
          loading.show();
          content.html('');
          toggleButton(el);
  
          // load the form via ajax
          $.ajax({
              type: "GET",
              cache: false,
              url: url,
              dataType: "html",
              success: function(res) 
              {
                  toggleButton(el);
  
                  $('.inbox-nav > li.active').removeClass('active');
                  $('.inbox-header > h1').text('Compose');
  
                  loading.hide();
                  content.html(res);
  
                  initFileupload();
                  initWysihtml5();
  
                  $('.inbox-wysihtml5').focus();
                  Layout.fixContentHeight();
                  App.initUniform();
              },
              error: function(xhr, ajaxOptions, thrownError)
              {
                  toggleButton(el);
              },
              async: false
          });
      }
  
      var loadReply = function (el) {
          var messageid = $(el).attr("data-messageid");
          var url = 'app_inbox_reply.html&messageid=' + messageid;
          
          loading.show();
          content.html('');
          toggleButton(el);
  
          // load the form via ajax
          $.ajax({
              type: "GET",
              cache: false,
              url: url,
              dataType: "html",
              success: function(res) 
              {
                  toggleButton(el);
  
                  $('.inbox-nav > li.active').removeClass('active');
                  $('.inbox-header > h1').text('Reply');
  
                  loading.hide();
                  content.html(res);
                  $('[name="message"]').val($('#reply_email_content_body').html());
  
                  handleCCInput(); // init "CC" input field
  
                  initFileupload();
                  initWysihtml5();
                  Layout.fixContentHeight();
                  App.initUniform();
              },
              error: function(xhr, ajaxOptions, thrownError)
              {
                  toggleButton(el);
              },
              async: false
          });
      }
  
      var loadSearchResults = function (el) {
          var url = 'app_inbox_inbox.html';
  
          loading.show();
          content.html('');
          toggleButton(el);
  
          $.ajax({
              type: "GET",
              cache: false,
              url: url,
              dataType: "html",
              success: function(res) 
              {
                  toggleButton(el);
  
                  $('.inbox-nav > li.active').removeClass('active');
                  $('.inbox-header > h1').text('Search');
  
                  loading.hide();
                  content.html(res);
                  Layout.fixContentHeight();
                  App.initUniform();
              },
              error: function(xhr, ajaxOptions, thrownError)
              {
                  toggleButton(el);
              },
              async: false
          });
      }
  
      var handleCCInput = function () {
          var the = $('.inbox-compose .mail-to .inbox-cc');
          var input = $('.inbox-compose .input-cc');
          the.hide();
          input.show();
          $('.close', input).click(function () {
              input.hide();
              the.show();
          });
      }
  
      var handleBCCInput = function () {
  
          var the = $('.inbox-compose .mail-to .inbox-bcc');
          var input = $('.inbox-compose .input-bcc');
          the.hide();
          input.show();
          $('.close', input).click(function () {
              input.hide();
              the.show();
          });
      }
  
      var toggleButton = function(el) {
          if (typeof el == 'undefined') {
              return;
          }
          if (el.attr("disabled")) {
              el.attr("disabled", false);
          } else {
              el.attr("disabled", true);
          }
      }
  
      return {
          //main function to initiate the module
          init: function () {
  
              // handle compose btn click
              $('.inbox').on('click', '.compose-btn a', function () {
                  loadCompose($(this));
              });
  
              // handle discard btn
              $('.inbox').on('click', '.inbox-discard-btn', function(e) {
                  e.preventDefault();
                  loadInbox($(this), listListing);
              });
  
              // handle reply and forward button click
              $('.inbox').on('click', '.reply-btn', function () {
                  loadReply($(this));
              });
  
              // handle view message
              $('.inbox-content').on('click', '.view-message', function () {
                  loadMessage($(this));
              });
  
              // handle inbox listing
              $('.inbox-nav > li.inbox > a').click(function () {
                  loadInbox($(this), 'inbox');
              });
  
              // handle sent listing
              $('.inbox-nav > li.sent > a').click(function () {
                  loadInbox($(this), 'sent');
              });
  
              // handle draft listing
              $('.inbox-nav > li.draft > a').click(function () {
                  loadInbox($(this), 'draft');
              });
  
              // handle trash listing
              $('.inbox-nav > li.trash > a').click(function () {
                  loadInbox($(this), 'trash');
              });
  
              //handle compose/reply cc input toggle
              $('.inbox-content').on('click', '.mail-to .inbox-cc', function () {
                  handleCCInput();
              });
  
              //handle compose/reply bcc input toggle
              $('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {
                  handleBCCInput();
              });
  
              //handle loading content based on URL parameter
              if (App.getURLParameter("a") === "view") {
                  loadMessage();
              } else if (App.getURLParameter("a") === "compose") {
                  loadCompose();
              } else {
                 $('.inbox-nav > li.inbox > a').click();
              }
  
          }
  
      };
  
  }();
  
  jQuery(document).ready(function() {
      AppInbox.init();
  });