/*=========================================================================================
    File Name: app-chat.js
    Description: chat application.
    ----------------------------------------------------------------------------------------
    Item Name: Modern Admin - Clean Bootstrap 4 Dashboard HTML Template
    Author: Pixinvent
    Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/

var chatSidebarListWrapper = $(".chat-sidebar-list-wrapper"),
  chatOverlay = $(".chat-overlay"),
  chatContainer = $(".chat-container"),
  chatSidebarProfileToggle = $(".chat-sidebar-profile-toggle"),
  chatProfileToggle = $(".chat-profile-toggle"),
  chatSidebarClose = $(".chat-sidebar-close"),
  chatProfile = $(".chat-profile"),
  chatUserProfile = $(".chat-user-profile"),
  chatProfileClose = $(".chat-profile-close"),
  chatSidebar = $(".chat-sidebar"),
  chatArea = $(".chat-area"),
  chatStart = $(".chat-start"),
  chatSidebarToggle = $(".chat-sidebar-toggle"),
  chatMessageSend = $(".chat-message-send");

$(document).ready(function () {
  "use strict";

  // if it is not touch device
  if (!$.app.menu.is_touch_device()) {
    // menu user list perfect scrollbar initialization
    if (chatSidebarListWrapper.length > 0) {
      var menu_user_list = new PerfectScrollbar(".chat-sidebar-list-wrapper");
    }
    // user profile sidebar perfect scrollbar initialization
    if ($(".chat-user-profile-scroll").length > 0) {
      var profile_sidebar_scroll = new PerfectScrollbar(".chat-user-profile-scroll");
    }
    // chat area perfect scrollbar initialization
    if (chatContainer.length > 0) {
      var chat_user_user = new PerfectScrollbar(".chat-container");
    }
    if ($(".chat-profile-content").length > 0) {
      var chat_profile_content = new PerfectScrollbar(".chat-profile-content");
    }
  }
  // if it is a touch device
  else {
    $(".chat-sidebar-list-wrapper").css("overflow", "scroll");
    $(".chat-user-profile-scroll").css("overflow", "scroll");
    $(".chat-container").css("overflow", "scroll");
    $(".chat-profile-content").css("overflow", "scroll");
  }

  // user profile sidebar toggle
  chatSidebarProfileToggle.on("click", function () {
    chatUserProfile.addClass("show");
    chatOverlay.addClass("show");
  });
  // user profile sidebar toggle
  chatProfileToggle.on("click", function () {
    chatProfile.addClass("show");
    chatOverlay.addClass("show");
  });
  // on profile close icon click
  chatProfileClose.on("click", function () {
    chatUserProfile.removeClass("show");
    chatProfile.removeClass("show");
    if (!chatSidebar.hasClass("show")) {
      chatOverlay.removeClass("show");
    }
  });
  // On chat menu sidebar close icon click
  chatSidebarClose.on("click", function () {
    chatSidebar.removeClass("show");
    chatOverlay.removeClass("show");
  });
  // on overlay click
  chatOverlay.on("click", function () {
    chatSidebar.removeClass("show");
    chatOverlay.removeClass("show");
    chatUserProfile.removeClass("show");
    chatProfile.removeClass("show");
  });
  // Add class active on click of Chat users list
  $(".chat-sidebar-list-wrapper ul li").on("click", function () {
    if ($(".chat-sidebar-list-wrapper ul li").hasClass("active")) {
      $(".chat-sidebar-list-wrapper ul li").removeClass("active");
    }
    $(this).addClass("active");
    if ($(".chat-sidebar-list-wrapper ul li").hasClass("active")) {
      chatStart.addClass("d-none");
      chatArea.removeClass("d-none");
    } else {
      chatStart.removeClass("d-none");
      chatArea.addClass("d-none");
    }
  });
  // app chat favorite star click
  $(".chat-icon-favorite i").on("click", function (e) {
    $(this).parent(".chat-icon-favorite").toggleClass("warning");
    $(this).toggleClass("bxs-star bx-star");
    e.stopPropagation();
  });
  // menu toggle till medium screen
  if ($(window).width() < 992) {
    chatSidebarToggle.on("click", function () {
      chatSidebar.addClass("show");
      chatOverlay.addClass("show");
    });
  }
  // autoscroll to bottom of Chat area
  $(".chat-sidebar-list li").on("click", function () {
    chatContainer.animate({
      scrollTop: chatContainer[0].scrollHeight
    }, 400)
  });

  // click on main menu toggle will remove sidebars & overlays
  $(".menu-toggle").click(function () {
    chatSidebar.removeClass("show");
    chatOverlay.removeClass("show");
    chatUserProfile.removeClass("show");
    chatProfile.removeClass("show");
  });

  // chat search filter
  $("#chat-search").on("keyup", function () {
    var value = $(this).val().toLowerCase();
    if (value != "") {
      $(".chat-sidebar-list-wrapper .chat-sidebar-list li").filter(function () {
        $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
      });
    } else {
      // if search filter box is empty
      $(".chat-sidebar-list-wrapper .chat-sidebar-list li").show();
    }
  });
  // window resize
  $(window).on("resize", function () {
    // remove show classes from overlay when resize, if size is > 992
    if ($(window).width() > 992) {
      if (chatOverlay.hasClass("show")) {
        chatOverlay.removeClass("show");
      }
    }
    // menu toggle on resize till medium screen
    if ($(window).width() < 992) {
      chatSidebarToggle.on("click", function () {
        chatSidebar.addClass("show");
        chatOverlay.addClass("show");
      });
    }
    // disable on click overlay when resize from medium to large
    if ($(window).width() > 992) {
      chatSidebarToggle.on("click", function () {
        chatOverlay.removeClass("show");
      });
    }
  });
});
// Add message to chat
function chatMessagesSend(source) {
  var message = chatMessageSend.val();
  if (message != "") {
    var html = '<div class="chat-message">' + "<p>" + message + "</p>" + "<div class=" + "chat-time" + ">3:35 AM</div></div>";
    $(".chat-wrapper .chat:last-child .chat-body").append(html);
    chatMessageSend.val("");
    chatContainer.scrollTop($(".chat-container > .chat-content").height());
  }
}
