text: $(document).ready(function(){
  /* ==========================================================================
      Scroll
      ========================================================================== */
  
      if (!("ontouchstart" in document.documentElement)) {
  
          document.documentElement.className += " no-touch";
  
          var jScrollOptions = {
              autoReinitialise: true,
              autoReinitialiseDelay: 100,
              contentWidth: '0px'
          };
  
          $('.scrollable .box-typical-body').jScrollPane(jScrollOptions);
          $('.side-menu').jScrollPane(jScrollOptions);
          $('.side-menu-addl').jScrollPane(jScrollOptions);
          $('.scrollable-block').jScrollPane(jScrollOptions);
      }
  
  /* ==========================================================================
      Header search
      ========================================================================== */
  
      $('.site-header .site-header-search').each(function(){
          var parent = $(this),
              overlay = parent.find('.overlay');
  
          overlay.click(function(){
              parent.removeClass('closed');
          });
  
          parent.clickoutside(function(){
              if (!parent.hasClass('closed')) {
                  parent.addClass('closed');
              }
          });
      });
  
  /* ==========================================================================
      Header mobile menu
      ========================================================================== */
  
      // Dropdowns
      $('.site-header-collapsed .dropdown').each(function(){
          var parent = $(this),
              btn = parent.find('.dropdown-toggle');
  
          btn.click(function(){
              if (parent.hasClass('mobile-opened')) {
                  parent.removeClass('mobile-opened');
              } else {
                  parent.addClass('mobile-opened');
              }
          });
      });
  
      $('.dropdown-more').each(function(){
          var parent = $(this),
              more = parent.find('.dropdown-more-caption'),
              classOpen = 'opened';
  
          more.click(function(){
              if (parent.hasClass(classOpen)) {
                  parent.removeClass(classOpen);
              } else {
                  parent.addClass(classOpen);
              }
          });
      });
  
      // Left mobile menu
      $('.hamburger').click(function(){
          if ($('body').hasClass('menu-left-opened')) {
              $(this).removeClass('is-active');
              $('body').removeClass('menu-left-opened');
              $('html').css('overflow','auto');
          } else {
              $(this).addClass('is-active');
              $('body').addClass('menu-left-opened');
              $('html').css('overflow','hidden');
          }
      });
  
      $('.mobile-menu-left-overlay').click(function(){
          $('.hamburger').removeClass('is-active');
          $('body').removeClass('menu-left-opened');
          $('html').css('overflow','auto');
      });
  
      // Right mobile menu
      $('.site-header .burger-right').click(function(){
          if ($('body').hasClass('menu-right-opened')) {
              $('body').removeClass('menu-right-opened');
              $('html').css('overflow','auto');
          } else {
              $('.hamburger').removeClass('is-active');
              $('body').removeClass('menu-left-opened');
              $('body').addClass('menu-right-opened');
              $('html').css('overflow','hidden');
          }
      });
  
      $('.mobile-menu-right-overlay').click(function(){
          $('body').removeClass('menu-right-opened');
          $('html').css('overflow','auto');
      });
  
  /* ==========================================================================
      Header help
      ========================================================================== */
  
      $('.help-dropdown').each(function(){
          var parent = $(this),
              btn = parent.find('>button'),
              popup = parent.find('.help-dropdown-popup'),
              jscroll
          ;
  
          btn.click(function(){
              if (parent.hasClass('opened')) {
                  parent.removeClass('opened');
                  jscroll.destroy();
              } else {
                  parent.addClass('opened');
  
                  if (!("ontouchstart" in document.documentElement)) {
                      setTimeout(function(){
                          jscroll = parent.find('.jscroll').jScrollPane(jScrollOptions).data().jsp;
                      },0);
                  }
              }
          });
  
          $('html').click(function(event) {
              if (
                  !$(event.target).closest('.help-dropdown-popup').length
                  &&
                  !$(event.target).closest('.help-dropdown>button').length
                  &&
                  !$(event.target).is('.help-dropdown-popup')
                  &&
                  !$(event.target).is('.help-dropdown>button')
              ) {
                  if (parent.hasClass('opened')) {
                      parent.removeClass('opened');
                      jscroll.destroy();
                  }
              }
          });
      });
  
  /* ==========================================================================
      Side menu list
      ========================================================================== */
  
      $('.side-menu-list li.with-sub').each(function(){
          var parent = $(this),
              clickLink = parent.find('>span'),
              subMenu = parent.find('>ul');
  
          clickLink.click(function() {
              if (parent.hasClass('opened')) {
                  parent.removeClass('opened');
                  subMenu.slideUp();
                  subMenu.find('.opened').removeClass('opened');
              } else {
                  if (clickLink.parents('.with-sub').length == 1) {
                      $('.side-menu-list .opened').removeClass('opened').find('ul').slideUp();
                  }
                  parent.addClass('opened');
                  subMenu.slideDown();
              }
          });
      });
  
  
  /* ==========================================================================
      Dashboard
      ========================================================================== */
  
      $(window).resize(function(){
          $('body').trigger('click');
      });
  
      // Collapse box
      $('.box-typical-dashboard').each(function(){
          var parent = $(this),
              btnCollapse = parent.find('.action-btn-collapse');
  
          btnCollapse.click(function(){
              if (parent.hasClass('box-typical-collapsed')) {
                  parent.removeClass('box-typical-collapsed');
              } else {
                  parent.addClass('box-typical-collapsed');
              }
          });
      });
  
      // Full screen box
      $('.box-typical-dashboard').each(function(){
          var parent = $(this),
              btnExpand = parent.find('.action-btn-expand'),
              classExpand = 'box-typical-full-screen';
  
          btnExpand.click(function(){
              if (parent.hasClass(classExpand)) {
                  parent.removeClass(classExpand);
                  $('html').css('overflow','auto');
              } else {
                  parent.addClass(classExpand);
                  $('html').css('overflow','hidden');
              }
          });
      });
  
  /* ==========================================================================
      Select
      ========================================================================== */
  
      if ($('.bootstrap-select').length) {
          // Bootstrap-select
          $('.bootstrap-select').selectpicker({
              style: '',
              width: '100%',
              size: 8
          });
      }
  
      if ($('.select2').length) {
          // Select2
          //$.fn.select2.defaults.set("minimumResultsForSearch", "Infinity");
  
          $('.select2').not('.manual').select2();
  
          $(".select2-icon").not('.manual').select2({
              templateSelection: select2Icons,
              templateResult: select2Icons
          });
  
          $(".select2-arrow").not('.manual').select2({
              theme: "arrow"
          });
  
          $('.select2-no-search-arrow').select2({
              minimumResultsForSearch: "Infinity",
              theme: "arrow"
          });
  
          $('.select2-no-search-default').select2({
              minimumResultsForSearch: "Infinity"
          });
  
          $(".select2-white").not('.manual').select2({
              theme: "white"
          });
  
          $(".select2-photo").not('.manual').select2({
              templateSelection: select2Photos,
              templateResult: select2Photos
          });
      }
  
      function select2Icons (state) {
          if (!state.id) { return state.text; }
          var $state = $(
              '<span class="font-icon ' + state.element.getAttribute('data-icon') + '"></span><span>' + state.text + '</span>'
          );
          return $state;
      }
  
      function select2Photos (state) {
          if (!state.id) { return state.text; }
          var $state = $(
              '<span class="user-item"><img src="' + state.element.getAttribute('data-photo') + '"/>' + state.text + '</span>'
          );
          return $state;
      }
  
  /* ==========================================================================
      Tooltips
      ========================================================================== */
  
      // Tooltip
      $('[data-toggle="tooltip"]').tooltip({
          html: true
      });
  
      // Popovers
      $('[data-toggle="popover"]').popover({
          trigger: 'focus'
      });
      
  /* ==========================================================================
      Full height box
      ========================================================================== */
  
      function boxFullHeight() {
          var sectionHeader = $('.section-header');
          var sectionHeaderHeight = 0;
  
          if (sectionHeader.length) {
              sectionHeaderHeight = parseInt(sectionHeader.height()) + parseInt(sectionHeader.css('padding-bottom'));
          }
  
          $('.box-typical-full-height').css('min-height',
              $(window).height() -
              parseInt($('.page-content').css('padding-top')) -
              parseInt($('.page-content').css('padding-bottom')) -
              sectionHeaderHeight -
              parseInt($('.box-typical-full-height').css('margin-bottom')) - 2
          );
          $('.box-typical-full-height>.tbl, .box-typical-full-height>.box-typical-center').height(parseInt($('.box-typical-full-height').css('min-height')));
      }
  
      boxFullHeight();
  
      $(window).resize(function(){
          boxFullHeight();
      });
  
  /* ==========================================================================
      Chat
      ========================================================================== */
  
      function chatHeights() {
          $('.chat-dialog-area').height(
              $(window).height() -
              parseInt($('.page-content').css('padding-top')) -
              parseInt($('.page-content').css('padding-bottom')) -
              parseInt($('.chat-container').css('margin-bottom')) - 2 -
              $('.chat-area-header').outerHeight() -
              $('.chat-area-bottom').outerHeight()
          );
          $('.chat-list-in')
              .height(
                  $(window).height() -
                  parseInt($('.page-content').css('padding-top')) -
                  parseInt($('.page-content').css('padding-bottom')) -
                  parseInt($('.chat-container').css('margin-bottom')) - 2 -
                  $('.chat-area-header').outerHeight()
              )
              .css('min-height', parseInt($('.chat-dialog-area').css('min-height')) + $('.chat-area-bottom').outerHeight());
      }
  
      chatHeights();
  
      $(window).resize(function(){
          chatHeights();
      });
  
  /* ==========================================================================
      Box typical full height with header
      ========================================================================== */
  
      function boxWithHeaderFullHeight() {
          // /*
          $('.box-typical-full-height-with-header').each(function(){
              var box = $(this),
                  boxHeader = box.find('.box-typical-header'),
                  boxBody = box.find('.box-typical-body');
  
              boxBody.height(
                  $(window).height() -
                  parseInt($('.page-content').css('padding-top')) -
                  parseInt($('.page-content').css('padding-bottom')) -
                  parseInt(box.css('margin-bottom')) - 2 -
                  boxHeader.outerHeight()
              );
          });
          // */
      }
  
      boxWithHeaderFullHeight();
  
      $(window).resize(function() {
          boxWithHeaderFullHeight();
      });
  
  /* ==========================================================================
      File manager
      ========================================================================== */
  
      function fileManagerHeight() {
          $('.files-manager').each(function(){
              var box = $(this),
                  boxColLeft = box.find('.files-manager-side'),
                  boxSubHeader = box.find('.files-manager-header'),
                  boxCont = box.find('.files-manager-content-in'),
                  boxColRight = box.find('.files-manager-aside');
  
              var paddings = parseInt($('.page-content').css('padding-top')) +
                              parseInt($('.page-content').css('padding-bottom')) +
                              parseInt(box.css('margin-bottom')) + 2;
  
              boxColLeft.height('auto');
              boxCont.height('auto');
              boxColRight.height('auto');
  
              if ( boxColLeft.height() <= ($(window).height() - paddings) ) {
                  boxColLeft.height(
                      $(window).height() - paddings
                  );
              }
  
              if ( boxColRight.height() <= ($(window).height() - paddings - boxSubHeader.outerHeight()) ) {
                  boxColRight.height(
                      $(window).height() -
                      paddings -
                      boxSubHeader.outerHeight()
                  );
              }
  
              boxCont.height(
                  boxColRight.height()
              );
          });
      }
  
      fileManagerHeight();
  
      $(window).resize(function(){
          fileManagerHeight();
      });
  
  /* ==========================================================================
      Mail
      ========================================================================== */
  
      function mailBoxHeight() {
          $('.mail-box').each(function(){
              var box = $(this),
                  boxHeader = box.find('.mail-box-header'),
                  boxColLeft = box.find('.mail-box-list'),
                  boxSubHeader = box.find('.mail-box-work-area-header'),
                  boxColRight = box.find('.mail-box-work-area-cont');
  
              boxColLeft.height(
                  $(window).height() -
                  parseInt($('.page-content').css('padding-top')) -
                  parseInt($('.page-content').css('padding-bottom')) -
                  parseInt(box.css('margin-bottom')) - 2 -
                  boxHeader.outerHeight()
              );
  
              boxColRight.height(
                  $(window).height() -
                  parseInt($('.page-content').css('padding-top')) -
                  parseInt($('.page-content').css('padding-bottom')) -
                  parseInt(box.css('margin-bottom')) - 2 -
                  boxHeader.outerHeight() -
                  boxSubHeader.outerHeight()
              );
          });
      }
  
      mailBoxHeight();
  
      $(window).resize(function(){
          mailBoxHeight();
      });
  
  /* ==========================================================================
      Nestable
      ========================================================================== */
  
      $('.dd-handle').hover(function(){
          $(this).prev('button').addClass('hover');
          $(this).prev('button').prev('button').addClass('hover');
      }, function(){
          $(this).prev('button').removeClass('hover');
          $(this).prev('button').prev('button').removeClass('hover');
      });
  
  /* ==========================================================================
      Addl side menu
      ========================================================================== */
  
      setTimeout(function(){
          if (!("ontouchstart" in document.documentElement)) {
              $('.side-menu-addl').jScrollPane(jScrollOptions);
          }
      },1000);
  
  
  /* ==========================================================================
      Header notifications
      ========================================================================== */
  
      // Tabs hack
      $('.dropdown-menu-messages a[data-toggle="tab"]').click(function (e) {
          e.stopPropagation();
          e.preventDefault();
          $(this).tab('show');
  
          // Scroll
          if (!("ontouchstart" in document.documentElement)) {
              jspMessNotif = $('.dropdown-notification.messages .tab-pane.active').jScrollPane(jScrollOptions).data().jsp;
          }
      });
  
      // Scroll
      var jspMessNotif,
          jspNotif;
  
      $('.dropdown-notification.messages').on('show.bs.dropdown', function () {
          if (!("ontouchstart" in document.documentElement)) {
              jspMessNotif = $('.dropdown-notification.messages .tab-pane.active').jScrollPane(jScrollOptions).data().jsp;
          }
      });
  
      $('.dropdown-notification.messages').on('hide.bs.dropdown', function () {
          if (!("ontouchstart" in document.documentElement)) {
              jspMessNotif.destroy();
          }
      });
  
      $('.dropdown-notification.notif').on('show.bs.dropdown', function () {
          if (!("ontouchstart" in document.documentElement)) {
              jspNotif = $('.dropdown-notification.notif .dropdown-menu-notif-list').jScrollPane(jScrollOptions).data().jsp;
          }
      });
  
      $('.dropdown-notification.notif').on('hide.bs.dropdown', function () {
          if (!("ontouchstart" in document.documentElement)) {
              jspNotif.destroy();
          }
      });
  
  /* ==========================================================================
      Steps progress
      ========================================================================== */
  
      function stepsProgresMarkup() {
          $('.steps-icon-progress').each(function(){
              var parent = $(this),
                  cont = parent.find('ul'),
                  padding = 0,
                  padLeft = (parent.find('li:first-child').width() - parent.find('li:first-child .caption').width())/2,
                  padRight = (parent.find('li:last-child').width() - parent.find('li:last-child .caption').width())/2;
  
              padding = padLeft;
  
              if (padLeft > padRight) padding = padRight;
  
              cont.css({
                  marginLeft: -padding,
                  marginRight: -padding
              });
          });
      }
  
      stepsProgresMarkup();
  
      $(window).resize(function(){
          stepsProgresMarkup();
      });
  
  /* ========================================================================== */
  
      $('.control-panel-toggle').on('click', function() {
          var self = $(this);
          
          if (self.hasClass('open')) {
              self.removeClass('open');
              $('.control-panel').removeClass('open');
          } else {
              self.addClass('open');
              $('.control-panel').addClass('open');
          }
      });
  
      $('.control-item-header .icon-toggle, .control-item-header .text').on('click', function() {
          var content = $(this).closest('li').find('.control-item-content');
  
          if (content.hasClass('open')) {
              content.removeClass('open');
          } else {
              $('.control-item-content.open').removeClass('open');
              content.addClass('open');
          }
      });
  
      $.browser = {};
      $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
      $.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
      $.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());
  
      if ($.browser.chrome) {
          $('body').addClass('chrome-browser');
      } else if ($.browser.msie) {
          $('body').addClass('msie-browser');
      } else if ($.browser.mozilla) {
          $('body').addClass('mozilla-browser');
      }
  
      $('#show-hide-sidebar-toggle').on('click', function() {
          if (!$('body').hasClass('sidebar-hidden')) {
              $('body').addClass('sidebar-hidden');
          } else {
              $('body').removeClass('sidebar-hidden');
          }
      });
  });