/**
 * AdminLTE Demo Menu
 * ------------------
 * You should not use this file in production.
 * This file is for demo purposes only.
 */
(function ($, AdminLTE) {
  "use strict";
  /**
   * List of all the available skins
   *
   * @type Array
   */
  var my_skins = [
    "skin-blue",
    "skin-black",
    "skin-red",
    "skin-yellow",
    "skin-purple",
    "skin-green",
    "skin-blue-light",
    "skin-black-light",
    "skin-red-light",
    "skin-yellow-light",
    "skin-purple-light",
    "skin-green-light"
  ];
  //Create the new tab
  var tab_pane = $("
", {
    "id": "control-sidebar-theme-demo-options-tab",
    "class": "tab-pane active"
  });
  //Create the tab button
  var tab_button = $("", {"class": "active"})
      .html(""
      + ""
      + "");
  //Add the tab button to the right sidebar tabs
  $("[href='#control-sidebar-home-tab']")
      .parent()
      .before(tab_button);
  //Create the menu
  var demo_settings = $("");
  //Layout options
  demo_settings.append(
      ""
        //Fixed layout
      + ""
        //Boxed layout
      + ""
        //Sidebar Toggle
      + ""
        //Sidebar mini expand on hover toggle
      + ""
        //Control Sidebar Toggle
      + ""
        //Control Sidebar Skin Toggle
      + ""
  );
  var skins_list = $("", {"class": 'list-unstyled clearfix'});
  //Dark sidebar skins
  var skin_blue =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Blue
");
  skins_list.append(skin_blue);
  var skin_black =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Black
");
  skins_list.append(skin_black);
  var skin_purple =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Purple
");
  skins_list.append(skin_purple);
  var skin_green =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Green
");
  skins_list.append(skin_green);
  var skin_red =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Red
");
  skins_list.append(skin_red);
  var skin_yellow =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Yellow
");
  skins_list.append(skin_yellow);
  //Light sidebar skins
  var skin_blue_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Blue Light
");
  skins_list.append(skin_blue_light);
  var skin_black_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Black Light
");
  skins_list.append(skin_black_light);
  var skin_purple_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Purple Light
");
  skins_list.append(skin_purple_light);
  var skin_green_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Green Light
");
  skins_list.append(skin_green_light);
  var skin_red_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Red Light
");
  skins_list.append(skin_red_light);
  var skin_yellow_light =
      $("", {style: "float:left; width: 33.33333%; padding: 5px;"})
          .append(""
          + "
"
          + "
"
          + ""
          + "Yellow Light
");
  skins_list.append(skin_yellow_light);
  demo_settings.append("");
  demo_settings.append(skins_list);
  tab_pane.append(demo_settings);
  $("#control-sidebar-home-tab").after(tab_pane);
  setup();
  /**
   * Toggles layout classes
   *
   * @param String cls the layout class to toggle
   * @returns void
   */
  function change_layout(cls) {
    $("body").toggleClass(cls);
    AdminLTE.layout.fixSidebar();
    //Fix the problem with right sidebar and layout boxed
    if (cls == "layout-boxed")
      AdminLTE.controlSidebar._fix($(".control-sidebar-bg"));
    if ($('body').hasClass('fixed') && cls == 'fixed') {
      AdminLTE.pushMenu.expandOnHover();
      AdminLTE.layout.activate();
    }
    AdminLTE.controlSidebar._fix($(".control-sidebar-bg"));
    AdminLTE.controlSidebar._fix($(".control-sidebar"));
  }
  /**
   * Replaces the old skin with the new skin
   * @param String cls the new skin class
   * @returns Boolean false to prevent link's default action
   */
  function change_skin(cls) {
    $.each(my_skins, function (i) {
      $("body").removeClass(my_skins[i]);
    });
    $("body").addClass(cls);
    store('skin', cls);
    return false;
  }
  /**
   * Store a new settings in the browser
   *
   * @param String name Name of the setting
   * @param String val Value of the setting
   * @returns void
   */
  function store(name, val) {
    if (typeof (Storage) !== "undefined") {
      localStorage.setItem(name, val);
    } else {
      window.alert('Please use a modern browser to properly view this template!');
    }
  }
  /**
   * Get a prestored setting
   *
   * @param String name Name of of the setting
   * @returns String The value of the setting | null
   */
  function get(name) {
    if (typeof (Storage) !== "undefined") {
      return localStorage.getItem(name);
    } else {
      window.alert('Please use a modern browser to properly view this template!');
    }
  }
  /**
   * Retrieve default settings and apply them to the template
   *
   * @returns void
   */
  function setup() {
    var tmp = get('skin');
    if (tmp && $.inArray(tmp, my_skins))
      change_skin(tmp);
    //Add the change skin listener
    $("[data-skin]").on('click', function (e) {
      if($(this).hasClass('knob'))
        return;
      e.preventDefault();
      change_skin($(this).data('skin'));
    });
    //Add the layout manager
    $("[data-layout]").on('click', function () {
      change_layout($(this).data('layout'));
    });
    $("[data-controlsidebar]").on('click', function () {
      change_layout($(this).data('controlsidebar'));
      var slide = !AdminLTE.options.controlSidebarOptions.slide;
      AdminLTE.options.controlSidebarOptions.slide = slide;
      if (!slide)
        $('.control-sidebar').removeClass('control-sidebar-open');
    });
    $("[data-sidebarskin='toggle']").on('click', function () {
      var sidebar = $(".control-sidebar");
      if (sidebar.hasClass("control-sidebar-dark")) {
        sidebar.removeClass("control-sidebar-dark")
        sidebar.addClass("control-sidebar-light")
      } else {
        sidebar.removeClass("control-sidebar-light")
        sidebar.addClass("control-sidebar-dark")
      }
    });
    $("[data-enable='expandOnHover']").on('click', function () {
      $(this).attr('disabled', true);
      AdminLTE.pushMenu.expandOnHover();
      if (!$('body').hasClass('sidebar-collapse'))
        $("[data-layout='sidebar-collapse']").click();
    });
    // Reset options
    if ($('body').hasClass('fixed')) {
      $("[data-layout='fixed']").attr('checked', 'checked');
    }
    if ($('body').hasClass('layout-boxed')) {
      $("[data-layout='layout-boxed']").attr('checked', 'checked');
    }
    if ($('body').hasClass('sidebar-collapse')) {
      $("[data-layout='sidebar-collapse']").attr('checked', 'checked');
    }
  }
})(jQuery, $.AdminLTE);