text: /*
   *  Document   : dolphin.js
   *  Author     : CaiWeiMing <314013107@qq.com>
   */
  
  var Dolphin = function () {
      /**
       * 处理ajax方式的post提交
       * @author CaiWeiMing <314013107@qq.com>
       */
      var ajaxPost = function () {
          jQuery(document).delegate('.ajax-post', 'click', function () {
              var msg, self   = jQuery(this), ajax_url = self.attr("href") || self.data("url");
              var target_form = self.attr("target-form");
              var text        = self.data('tips');
              var title       = self.data('title') || '确定要执行该操作吗？';
              var confirm_btn = self.data('confirm') || '确定';
              var cancel_btn  = self.data('cancel') || '取消';
              var form        = jQuery('form[name=' + target_form + ']');
              if (form.length === 0) {
                  form = jQuery('.' + target_form);
              }
              var form_data   = form.serialize();
  
              if ("submit" === self.attr("type") || ajax_url) {
                  // 不存在“.target-form”元素则返回false
                  if (undefined === form.get(0)) return false;
                  // 节点标签名为FORM表单
                  if ("FORM" === form.get(0).nodeName) {
                      ajax_url = ajax_url || form.get(0).getAttribute('action');;
  
                      // 提交确认
                      if (self.hasClass('confirm')) {
                          swal({
                              title: title,
                              text: text || '',
                              type: 'warning',
                              showCancelButton: true,
                              confirmButtonColor: '#d26a5c',
                              confirmButtonText: confirm_btn,
                              cancelButtonText: cancel_btn,
                              closeOnConfirm: true,
                              html: false
                          }, function () {
                              pageLoader();
                              self.attr("autocomplete", "off").prop("disabled", true);
  
                              // 发送ajax请求
                              jQuery.post(ajax_url, form_data, {}, 'json').success(function(res) {
                                  pageLoader('hide');
                                  msg = res.msg;
                                  if (res.code) {
                                      if (res.url && !self.hasClass("no-refresh")) {
                                          msg += " 页面即将自动跳转~";
                                      }
                                      tips(msg, 'success');
                                      setTimeout(function () {
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                                      }, 1500);
                                  } else {
                                      jQuery(".reload-verify").length > 0 && jQuery(".reload-verify").click();
                                      tips(msg, 'danger');
                                      setTimeout(function () {
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                      }, 2000);
                                  }
                              }).fail(function (res) {
                                  pageLoader('hide');
                                  tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                                  self.attr("autocomplete", "on").prop("disabled", false);
                              });
                          });
                          return false;
                      } else {
                          self.attr("autocomplete", "off").prop("disabled", true);
                      }
                  } else if ("INPUT" === form.get(0).nodeName || "SELECT" === form.get(0).nodeName || "TEXTAREA" === form.get(0).nodeName) {
                      // 如果是多选，则检查是否选择
                      if (form.get(0).type === 'checkbox' && form_data === '') {
                          Dolphin.notify('请选择要操作的数据', 'warning');
                          return false;
                      }
  
                      // 提交确认
                      if (self.hasClass('confirm')) {
                          swal({
                              title: title,
                              text: text || '',
                              type: 'warning',
                              showCancelButton: true,
                              confirmButtonColor: '#d26a5c',
                              confirmButtonText: confirm_btn,
                              cancelButtonText: cancel_btn,
                              closeOnConfirm: true,
                              html: false
                          }, function () {
                              pageLoader();
                              self.attr("autocomplete", "off").prop("disabled", true);
  
                              // 发送ajax请求
                              jQuery.post(ajax_url, form_data, {}, 'json').success(function(res) {
                                  pageLoader('hide');
                                  msg = res.msg;
                                  if (res.code) {
                                      if (res.url && !self.hasClass("no-refresh")) {
                                          msg += " 页面即将自动跳转~";
                                      }
                                      tips(msg, 'success');
                                      setTimeout(function () {
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                                      }, 1500);
                                  } else {
                                      jQuery(".reload-verify").length > 0 && jQuery(".reload-verify").click();
                                      tips(msg, 'danger');
                                      setTimeout(function () {
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                      }, 2000);
                                  }
                              }).fail(function (res) {
                                  pageLoader('hide');
                                  tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                                  self.attr("autocomplete", "on").prop("disabled", false);
                              });
                          });
                          return false;
                      } else {
                          self.attr("autocomplete", "off").prop("disabled", true);
                      }
                  } else {
                      if (self.hasClass("confirm")) {
                          swal({
                              title: title,
                              text: text || '',
                              type: 'warning',
                              showCancelButton: true,
                              confirmButtonColor: '#d26a5c',
                              confirmButtonText: confirm_btn,
                              cancelButtonText: cancel_btn,
                              closeOnConfirm: true,
                              html: false
                          }, function () {
                              pageLoader();
                              self.attr("autocomplete", "off").prop("disabled", true);
                              form_data = form.find("input,select,textarea").serialize();
  
                              // 发送ajax请求
                              jQuery.post(ajax_url, form_data, {}, 'json').success(function(res) {
                                  pageLoader('hide');
                                  msg = res.msg;
                                  if (res.code) {
                                      if (res.url && !self.hasClass("no-refresh")) {
                                          msg += " 页面即将自动跳转~";
                                      }
                                      tips(msg, 'success');
                                      setTimeout(function () {
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                                      }, 1500);
                                  } else {
                                      jQuery(".reload-verify").length > 0 && jQuery(".reload-verify").click();
                                      tips(msg, 'danger');
                                      setTimeout(function () {
                                          // 刷新父窗口
                                          if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                              res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                              return false;
                                          }
                                          // 关闭弹出框
                                          if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                              var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                              parent.layer.close(index);return false;
                                          }
                                          // 新窗口打开
                                          if (res.data && (res.data === '_blank' || res.data._blank)) {
                                              window.open(res.url === '' ? location.href : res.url);
                                              return false;
                                          }
                                          self.attr("autocomplete", "on").prop("disabled", false);
                                      }, 2000);
                                  }
                              }).fail(function (res) {
                                  pageLoader('hide');
                                  tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                                  self.attr("autocomplete", "on").prop("disabled", false);
                              });
                          });
                          return false;
                      } else {
                          form_data = form.find("input,select,textarea").serialize();
                          self.attr("autocomplete", "off").prop("disabled", true);
                      }
                  }
  
                  // 直接发送ajax请求
                  pageLoader();
                  jQuery.post(ajax_url, form_data, {}, 'json').success(function(res) {
                      pageLoader('hide');
                      msg = res.msg;
  
                      if (res.code) {
                          if (res.url && !self.hasClass("no-refresh")) {
                              msg += "， 页面即将自动跳转~";
                          }
                          tips(msg, 'success');
                          setTimeout(function () {
                              self.attr("autocomplete", "on").prop("disabled", false);
                              // 刷新父窗口
                              if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                  res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                  return false;
                              }
                              // 关闭弹出框
                              if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                  var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                  parent.layer.close(index);return false;
                              }
                              // 新窗口打开
                              if (res.data && (res.data === '_blank' || res.data._blank)) {
                                  window.open(res.url === '' ? location.href : res.url);
                                  return false;
                              }
                              return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                          }, 1500);
                      } else {
                          jQuery(".reload-verify").length > 0 && jQuery(".reload-verify").click();
                          tips(msg, 'danger');
                          setTimeout(function () {
                              // 刷新父窗口
                              if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                  res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                  return false;
                              }
                              // 关闭弹出框
                              if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                  var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                  parent.layer.close(index);return false;
                              }
                              // 新窗口打开
                              if (res.data && (res.data === '_blank' || res.data._blank)) {
                                  window.open(res.url === '' ? location.href : res.url);
                                  return false;
                              }
                              self.attr("autocomplete", "on").prop("disabled", false);
                          }, 2000);
                      }
                  }).fail(function (res) {
                      pageLoader('hide');
                      tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                      self.attr("autocomplete", "on").prop("disabled", false);
                  });
              }
  
              return false;
          });
      };
  
      /**
       * 处理ajax方式的get提交
       * @author CaiWeiMing <314013107@qq.com>
       */
      var ajaxGet = function () {
          jQuery(document).delegate('.ajax-get', 'click', function () {
              var msg, self = $(this), text = self.data('tips'), ajax_url = self.attr("href") || self.data("url");
              var title       = self.data('title') || '确定要执行该操作吗？';
              var confirm_btn = self.data('confirm') || '确定';
              var cancel_btn  = self.data('cancel') || '取消';
              // 执行确认
              if (self.hasClass('confirm')) {
                  swal({
                      title: title,
                      text: text || '',
                      type: 'warning',
                      showCancelButton: true,
                      confirmButtonColor: '#d26a5c',
                      confirmButtonText: confirm_btn,
                      cancelButtonText: cancel_btn,
                      closeOnConfirm: true,
                      html: false
                  }, function () {
                      pageLoader();
                      self.attr("autocomplete", "off").prop("disabled", true);
  
                      // 发送ajax请求
                      jQuery.get(ajax_url, {}, {}, 'json').success(function(res) {
                          pageLoader('hide');
                          msg = res.msg;
                          if (res.code) {
                              if (res.url && !self.hasClass("no-refresh")) {
                                  msg += " 页面即将自动跳转~";
                              }
                              tips(msg, 'success');
                              setTimeout(function () {
                                  self.attr("autocomplete", "on").prop("disabled", false);
                                  // 刷新父窗口
                                  if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                      res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                      return false;
                                  }
                                  // 关闭弹出框
                                  if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                      var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                      parent.layer.close(index);return false;
                                  }
                                  // 新窗口打开
                                  if (res.data && (res.data === '_blank' || res.data._blank)) {
                                      window.open(res.url === '' ? location.href : res.url);
                                      return false;
                                  }
                                  return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                              }, 1500);
                          } else {
                              tips(msg, 'danger');
                              setTimeout(function () {
                                  // 刷新父窗口
                                  if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                      res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                      return false;
                                  }
                                  // 关闭弹出框
                                  if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                      var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                      parent.layer.close(index);return false;
                                  }
                                  // 新窗口打开
                                  if (res.data && (res.data === '_blank' || res.data._blank)) {
                                      window.open(res.url === '' ? location.href : res.url);
                                      return false;
                                  }
                                  self.attr("autocomplete", "on").prop("disabled", false);
                              }, 2000);
                          }
                      }).fail(function (res) {
                          pageLoader('hide');
                          tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                          self.attr("autocomplete", "on").prop("disabled", false);
                      });
                  });
              } else {
                  pageLoader();
                  self.attr("autocomplete", "off").prop("disabled", true);
  
                  // 发送ajax请求
                  jQuery.get(ajax_url, {}, {}, 'json').success(function(res) {
                      pageLoader('hide');
                      msg = res.msg;
                      if (res.code) {
                          if (res.url && !self.hasClass("no-refresh")) {
                              msg += " 页面即将自动跳转~";
                          }
                          tips(msg, 'success');
                          setTimeout(function () {
                              self.attr("autocomplete", "on").prop("disabled", false);
                              // 刷新父窗口
                              if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                  res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                  return false;
                              }
                              // 关闭弹出框
                              if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                  var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                  parent.layer.close(index);return false;
                              }
                              // 新窗口打开
                              if (res.data && (res.data === '_blank' || res.data._blank)) {
                                  window.open(res.url === '' ? location.href : res.url);
                                  return false;
                              }
                              return self.hasClass("no-refresh") ? false : void(res.url && !self.hasClass("no-forward") ? location.href = res.url : location.reload());
                          }, 1500);
                      } else {
                          tips(msg, 'danger');
                          setTimeout(function () {
                              // 刷新父窗口
                              if (res.data && (res.data === '_parent_reload' || res.data._parent_reload)) {
                                  res.url === '' || res.url === location.href ? parent.location.reload() : parent.location.href = res.url;
                                  return false;
                              }
                              // 关闭弹出框
                              if (res.data && (res.data === '_close_pop' || res.data._close_pop)) {
                                  var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
                                  parent.layer.close(index);return false;
                              }
                              // 新窗口打开
                              if (res.data && (res.data === '_blank' || res.data._blank)) {
                                  window.open(res.url === '' ? location.href : res.url);
                                  return false;
                              }
                              self.attr("autocomplete", "on").prop("disabled", false);
                          }, 2000);
                      }
                  }).fail(function (res) {
                      pageLoader('hide');
                      tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                      self.attr("autocomplete", "on").prop("disabled", false);
                  });
              }
  
              return false;
          });
      };
  
      /**
       * 处理普通方式的get提交
       * @author CaiWeiMing <314013107@qq.com>
       */
      var jsGet = function () {
          jQuery(document).delegate('.js-get', 'click', function () {
              var self = $(this), text = self.data('tips'), url = self.attr("href") || self.data("url");
              var target_form = self.attr("target-form");
              var form        = jQuery('form[name=' + target_form + ']');
              var form_data   = form.serialize() || [];
              var title       = self.data('title') || '确定要执行该操作吗？';
              var confirm_btn = self.data('confirm') || '确定';
              var cancel_btn  = self.data('cancel') || '取消';
  
              if (form.length === 0) {
                  form = jQuery('.' + target_form + '[type=checkbox]:checked');
                  form.each(function () {
                      form_data.push($(this).val());
                  });
                  form_data = form_data.join(',');
              }
  
              if (form_data === '') {
                  Dolphin.notify('请选择要操作的数据', 'warning');
                  return false;
              }
  
              if (url.indexOf('?') !== -1) {
                  url += '&' + target_form + '=' + form_data;
              } else {
                  url += '?' + target_form + '=' + form_data;
              }
  
              // 执行确认
              if (self.hasClass('confirm')) {
                  swal({
                      title: title,
                      text: text || '',
                      type: 'warning',
                      showCancelButton: true,
                      confirmButtonColor: '#d26a5c',
                      confirmButtonText: confirm_btn,
                      cancelButtonText: cancel_btn,
                      closeOnConfirm: true,
                      html: false
                  }, function () {
                      if (self.hasClass('js-blank')) {
                          window.open(url);
                      }  else {
                          location.href = url;
                      }
                  });
              } else {
                  if (self.hasClass('js-blank')) {
                      window.open(url);
                  }  else {
                      location.href = url;
                  }
              }
  
              return false;
          });
      };
  
      /**
       * 顶部菜单
       * @author CaiWeiMing <314013107@qq.com>
       */
      var topMenu = function () {
          $('.top-menu').click(function () {
              var $target = $(this).attr('target');
              var data = {
                  module_id: $(this).data('module-id') || '',
                  module: $(this).data('module') || '',
                  controller: $(this).data('controller') || ''
              };
  
              if ($('#nav-' + data.module_id).length) {
                  location.href = $('#nav-' + data.module_id).find('a').not('.nav-submenu').first().attr('href');
              } else {
                  $.post(dolphin.top_menu_url, data, function (res) {
                      if (res.code) {
                          if (res.data === '') {
                              tips('暂无无节点权限', 'danger');return false;
                          }
                          if ($target === '_self') {
                              location.href = res.data;
                          } else {
                              window.open(res.data);
                          }
                      } else {
                          tips(res.msg, 'danger');
                          setTimeout(function () {
                              location.reload();
                          }, 1500);
                      }
                  }).fail(function (res) {
                      tips($(res.responseText).find('h1').text() || '服务器内部错误~', 'danger');
                  });
              }
              return false;
          });
      };
  
      /**
       * 页面小提示
       * @param $msg 提示信息
       * @param $type 提示类型:'info', 'success', 'warning', 'danger'
       * @param $icon 图标，例如：'fa fa-user' 或 'glyphicon glyphicon-warning-sign'
       * @param $from 'top' 或 'bottom'
       * @param $align 'left', 'right', 'center'
       * @author CaiWeiMing <314013107@qq.com>
       */
      var tips = function ($msg, $type, $icon, $from, $align) {
          $type  = $type || 'info';
          $from  = $from || 'top';
          $align = $align || 'center';
          $enter = $type === 'success' ? 'animated fadeInUp' : 'animated shake';
  
          jQuery.notify({
              icon: $icon,
              message: $msg
          },
          {
              element: 'body',
              type: $type,
              allow_dismiss: true,
              newest_on_top: true,
              showProgressbar: false,
              placement: {
                  from: $from,
                  align: $align
              },
              offset: 20,
              spacing: 10,
              z_index: 10800,
              delay: 3000,
              timer: 1000,
              animate: {
                  enter: $enter,
                  exit: 'animated fadeOutDown'
              }
          });
      };
  
      /**
       * 页面加载提示
       * @param $mode 'show', 'hide'
       * @author CaiWeiMing <314013107@qq.com>
       */
      var pageLoader = function ($mode) {
          var $loadingEl = jQuery('#loading');
          $mode          = $mode || 'show';
  
          if ($mode === 'show') {
              if ($loadingEl.length) {
                  $loadingEl.fadeIn(250);
              } else {
                  jQuery('body').prepend('<div id="loading"><div class="loading-box"><i class="fa fa-2x fa-cog fa-spin"></i> <span class="loding-text">请稍等...</span></div></div>');
              }
          } else if ($mode === 'hide') {
              if ($loadingEl.length) {
                  $loadingEl.fadeOut(250);
              }
          }
  
          return false;
      };
  
      /**
       * 启用图标搜索
       * @author CaiWeiMing <314013107@qq.com>
       */
      var iconSearchLoader = function () {
          // Set variables
          var $searchItems = jQuery('.js-icon-list > li');
          var $searchValue = '';
  
          // When user types
          jQuery('.js-icon-search').on('keyup', function(){
              $searchValue = jQuery(this).val().toLowerCase();
  
              if ($searchValue.length) { // If more than 2 characters, search the icons
                  $searchItems.hide();
  
                  jQuery('code', $searchItems)
                      .each(function(){
                          if (jQuery(this).text().match($searchValue)) {
                              jQuery(this).parent('li').show();
                          }
                      });
              } else if ($searchValue.length === 0) { // If text deleted show all icons
                  $searchItems.show();
              }
          });
      };
  
      /**
       * 刷新页面
       * @author CaiWeiMing <314013107@qq.com>
       */
      var pageReloadLoader = function () {
          // 刷新页面
          $('.page-reload').click(function () {
              location.reload();
          });
      };
  
      /**
       * 初始化图片查看
       * @author CaiWeiMing <314013107@qq.com>
       */
      var viewerLoader = function () {
          $('.gallery-list,.uploader-list').each(function () {
              $(this).viewer('destroy');
              $(this).viewer({url: 'data-original'});
          });
      };
  
      return {
          // 初始化
          init: function () {
              ajaxPost();
              ajaxGet();
              jsGet();
              topMenu();
              pageReloadLoader();
          },
          // 页面加载提示
          loading: function ($mode) {
              pageLoader($mode);
          },
          // 页面小提示
          notify: function ($msg, $type, $icon, $from, $align) {
              tips($msg, $type, $icon, $from, $align);
          },
          // 启用图标搜索
          iconSearch: function () {
              iconSearchLoader();
          },
          // 初始化图片查看
          viewer: function () {
              viewerLoader();
          }
      };
  }();
  
  // Initialize app when page loads
  jQuery(function () {
      Dolphin.init();
  });