/*! http://mths.be/placeholder v2.0.7 by @mathias */
;(function (h, j, e) {
  var a = "placeholder" in j.createElement("input");
  var f = "placeholder" in j.createElement("textarea");
  var k = e.fn;
  var d = e.valHooks;
  var b = e.propHooks;
  var m;
  var l;
  if (a && f) {
    l = k.placeholder = function () {return this;};
    l.input = l.textarea = true;
  } else {
    l = k.placeholder = function () {
      var n = this;
      n.filter((a ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({ "focus.placeholder": c, "blur.placeholder": g }).data("placeholder-enabled", true).trigger("blur.placeholder");
      return n;
    };
    l.input = a;
    l.textarea = f;
    m = {
      get: function (o) {
        var n = e(o);
        var p = n.data("placeholder-password");
        if (p) {return p[0].value;}
        return n.data("placeholder-enabled") && n.hasClass("placeholder") ? "" : o.value;
      }, set: function (o, q) {
        var n = e(o);
        var p = n.data("placeholder-password");
        if (p) {return p[0].value = q;}
        if (!n.data("placeholder-enabled")) {return o.value = q;}
        if (q == "") {
          o.value = q;
          if (o != j.activeElement) {g.call(o);}
        } else {if (n.hasClass("placeholder")) {c.call(o, true, q) || (o.value = q);} else {o.value = q;}}
        return n;
      }
    };
    if (!a) {
      d.input = m;
      b.value = m;
    }
    if (!f) {
      d.textarea = m;
      b.value = m;
    }
    e(function () {
      e(j).delegate("form", "submit.placeholder", function () {
        var n = e(".placeholder", this).each(c);
        setTimeout(function () {n.each(g);}, 10);
      });
    });
    e(h).bind("beforeunload.placeholder", function () {e(".placeholder").each(function () {this.value = "";});});
  }

  function i(o) {
    var n = {};
    var p = /^jQuery\d+$/;
    e.each(o.attributes, function (r, q) {if (q.specified && !p.test(q.name)) {n[q.name] = q.value;}});
    return n;
  }

  function c(o, p) {
    var n = this;
    var q = e(n);
    if (n.value == q.attr("placeholder") && q.hasClass("placeholder")) {
      if (q.data("placeholder-password")) {
        q = q.hide().next().show().attr("id", q.removeAttr("id").data("placeholder-id"));
        if (o === true) {return q[0].value = p;}
        q.focus();
      } else {
        n.value = "";
        q.removeClass("placeholder");
        n == j.activeElement && n.select();
      }
    }
  }

  function g() {
    var r;
    var n = this;
    var q = e(n);
    var p = this.id;
    if (n.value == "") {
      if (n.type == "password") {
        if (!q.data("placeholder-textinput")) {
          try {r = q.clone().attr({ type: "text" });} catch (o) {r = e("<input>").attr(e.extend(i(this), { type: "text" }));}
          r.removeAttr("name").data({ "placeholder-password": q, "placeholder-id": p }).bind("focus.placeholder", c);
          q.data({ "placeholder-textinput": r, "placeholder-id": p }).before(r);
        }
        q = q.removeAttr("id").hide().prev().attr("id", p).show();
      }
      q.addClass("placeholder");
      q[0].value = q.attr("placeholder");
    } else {q.removeClass("placeholder");}
  }
}(this, document, jQuery));

/* Modernizr 2.6.2 (Custom Build) | MIT & BSD
 * Build: http://modernizr.com/download/#-touch-cssclasses-teststyles-prefixes
 */
;window.Modernizr = function (a, b, c) {
  function w(a) {j.cssText = a;}

  function x(a, b) {return w(m.join(a + ";") + (b || ""));}

  function y(a, b) {return typeof a === b;}

  function z(a, b) {return !!~("" + a).indexOf(b);}

  function A(a, b, d) {
    for (var e in a) {
      var f = b[a[e]];
      if (f !== c) return d === !1 ? a[e] : y(f, "function") ? f.bind(d || b) : f;
    }
    return !1;
  }

  var d = "2.6.2", e = {}, f = !0, g = b.documentElement, h = "modernizr", i = b.createElement(h), j = i.style, k, l = {}.toString, m = " -webkit- -moz- -o- -ms- ".split(" "), n = {}, o = {}, p = {}, q = [], r = q.slice, s, t = function (a, c, d, e) {
    var f, i, j, k, l = b.createElement("div"), m = b.body, n = m || b.createElement("body");
    if (parseInt(d, 10)) while (d--) j = b.createElement("div"), j.id = e ? e[d] : h + (d + 1), l.appendChild(j);
    return f = ["&#173;", '<style id="s', h, '">', a, "</style>"].join(""), l.id = h, (m ? l : n).innerHTML += f, n.appendChild(l), m || (n.style.background = "", n.style.overflow = "hidden", k = g.style.overflow, g.style.overflow = "hidden", g.appendChild(n)), i = c(l, a), m ? l.parentNode.removeChild(l) : (n.parentNode.removeChild(n), g.style.overflow = k), !!i;
  }, u = {}.hasOwnProperty, v;
  !y(u, "undefined") && !y(u.call, "undefined") ? v = function (a, b) {return u.call(a, b);} : v = function (a, b) {return b in a && y(a.constructor.prototype[b], "undefined");}, Function.prototype.bind || (Function.prototype.bind = function (b) {
    var c = this;
    if (typeof c != "function") throw new TypeError;
    var d = r.call(arguments, 1), e = function () {
      if (this instanceof e) {
        var a = function () {};
        a.prototype = c.prototype;
        var f = new a, g = c.apply(f, d.concat(r.call(arguments)));
        return Object(g) === g ? g : f;
      }
      return c.apply(b, d.concat(r.call(arguments)));
    };
    return e;
  }), n.touch = function () {
    var c;
    return "ontouchstart" in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : t(["@media (", m.join("touch-enabled),("), h, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function (a) {c = a.offsetTop === 9;}), c;
  };
  for (var B in n) v(n, B) && (s = B.toLowerCase(), e[s] = n[B](), q.push((e[s] ? "" : "no-") + s));
  return e.addTest = function (a, b) {
    if (typeof a == "object") for (var d in a) v(a, d) && e.addTest(d, a[d]); else {
      a = a.toLowerCase();
      if (e[a] !== c) return e;
      b = typeof b == "function" ? b() : b, typeof f != "undefined" && f && (g.className += " " + (b ? "" : "no-") + a), e[a] = b;
    }
    return e;
  }, w(""), i = k = null, e._version = d, e._prefixes = m, e.testStyles = t, g.className = g.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (f ? " js " + q.join(" ") : ""), e;
}(this, this.document);
Modernizr.addTest('android', function () {return !!navigator.userAgent.match(/Android/i);});
Modernizr.addTest('chrome', function () {return !!navigator.userAgent.match(/Chrome/i);});
Modernizr.addTest('firefox', function () {return !!navigator.userAgent.match(/Firefox/i);});
Modernizr.addTest('iemobile', function () {return !!navigator.userAgent.match(/IEMobile/i);});
Modernizr.addTest('ie', function () {return !!navigator.userAgent.match(/MSIE/i);});
Modernizr.addTest('ie8', function () {return !!navigator.userAgent.match(/MSIE 8/i);});
Modernizr.addTest('ie10', function () {return !!navigator.userAgent.match(/MSIE 10/i);});
Modernizr.addTest('ie11', function () {return !!navigator.userAgent.match(/Trident.*rv:11\./);});
Modernizr.addTest('ios', function () {return !!navigator.userAgent.match(/iPhone|iPad|iPod/i);});
Modernizr.addTest('ios7 ipad', function () {return !!navigator.userAgent.match(/iPad;.*CPU.*OS 7_\d/i);});
/*!
* screenfull
* v1.0.4 - 2013-05-26
* https://github.com/sindresorhus/screenfull.js
* (c) Sindre Sorhus; MIT License
*/
(function (a, b) {
  "use strict";
  var c = "undefined" != typeof Element && "ALLOW_KEYBOARD_INPUT" in Element, d = function () {
    for (var a, c, d = [["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"]], e = 0, f = d.length, g = {}; f > e; e++) if (a = d[e], a && a[1] in b) {
      for (e = 0, c = a.length; c > e; e++) g[d[0][e]] = a[e];
      return g;
    }
    return !1;
  }(), e = {
    request: function (a) {
      var e = d.requestFullscreen;
      a = a || b.documentElement, /5\.1[\.\d]* Safari/.test(navigator.userAgent) ? a[e]() : a[e](c && Element.ALLOW_KEYBOARD_INPUT);
    }, exit: function () {b[d.exitFullscreen]();}, toggle: function (a) {this.isFullscreen ? this.exit() : this.request(a);}, onchange: function () {}, onerror: function () {}, raw: d
  };
  return d ? (Object.defineProperties(e, {
    isFullscreen: { get: function () {return !!b[d.fullscreenElement];} },
    element: { enumerable: !0, get: function () {return b[d.fullscreenElement];} },
    enabled: { enumerable: !0, get: function () {return !!b[d.fullscreenEnabled];} }
  }), b.addEventListener(d.fullscreenchange, function (a) {e.onchange.call(e, a);}), b.addEventListener(d.fullscreenerror, function (a) {e.onerror.call(e, a);}), a.screenfull = e, void 0) : a.screenfull = !1;
})(window, document);

function numts(value) {
  if (isNaN(value) || value === undefined || value == '-') {
    return '-';
  }
  var theTime = parseInt(value);// 秒
  if (isNaN(theTime)) {
    return '-';
  }

  if (value < 0) {
    return '超时!';
  }

  var theTime1 = 0;// 分
  var theTime2 = 0;// 小时
  // alert(theTime);
  if (theTime > 60) {
    theTime1 = parseInt(theTime / 60);
    theTime = parseInt(theTime % 60);
    // alert(theTime1+"-"+theTime);
    if (theTime1 > 60) {
      theTime2 = parseInt(theTime1 / 60);
      theTime1 = parseInt(theTime1 % 60);
    }
  }
  var result = padZero(parseInt(theTime));
  if (theTime1 > 0) {
    result = padZero(parseInt(theTime1)) + ":" + result;
  } else {
    result = "00:" + result;
  }
  if (theTime2 > 0) {
    result = padZero(parseInt(theTime2)) + ":" + result;
  }
  return result;
}

function padZero(num) {
  if (!isNaN(num)) {
    if (num.toString().length < 2) {
      return "0" + num;
    } else {
      return num;
    }
  }
  return "00";
}

function numt(num) {
  if (num === undefined || isNaN(num)) {
    return '-';
  }
  return (num + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
}

function nump(v) {
  if (v == '-' || v === undefined || isNaN(v)) {
    return '-';
  }
  return v + "%";
}

function numdateZ(javaTimestamp) {
  var timestamp = moment(new Date(parseInt(javaTimestamp))).subtract(8, 'hours');

  return timestamp.format("YYYY-MM-DD HH:mm:ss");
}

function numdate(javaTimestamp) {
  var timestamp = moment(new Date(parseInt(javaTimestamp)));
  return timestamp.format("YYYY-MM-DD HH:mm:ss");
}

function convertCardId(original) {
  return original;
}

function initDateRangePick(control) {
  control.daterangepicker({
    autoUpdateInput: false,
    ranges: {
      '今日': [moment().startOf('day'), moment()],
      '昨日': [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')],
      '最近7日': [moment().subtract(6, 'days'), moment()],
      '最近30日': [moment().subtract(29, 'days'), moment()]
    },
    locale: {
      'format': "YYYY-MM-DD",
      'separator': ' 至 ',
      'applyLabel': '确定',
      'cancelLabel': '清除',
      'fromLabel': '起始时间',
      'toLabel': '结束时间',
      'customRangeLabel': '自定义',
      'daysOfWeek': ['日', '一', '二', '三', '四', '五', '六'],
      'monthNames': ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
      'firstDay': 1
    }
  });
  control.on('apply.daterangepicker', function (ev, picker) {
    $(this).val(picker.startDate.format('YYYY-MM-DD') + ' 至 ' + picker.endDate.format('YYYY-MM-DD'));
  });
  control.on('cancel.daterangepicker', function (ev, picker) {
    control.val('');
  });
}

(function ($) {

  $.fn.extend({
    serializeObject: function () {
      var o = {};
      var a = this.serializeArray();
      $.each(a, function () {
        if (o[this.name] !== undefined) {
          if (!o[this.name].push) {
            o[this.name] = [o[this.name]];
          }
          o[this.name].push(this.value || '');
        } else {
          o[this.name] = this.value || '';
        }
      });
      return o;
    },
    formGet: function () {
      var jq = this;
      if (jq.length <= 0) {
        return {};
      }

      var vra = [];
      var m = [];

      jq.each(function (index, ele) {
        if (ele.tagName === 'FORM') {
          var $form = $(this);
          m.push({
            id: '',
            obj: $form.serializeObject()
          });
        }
      });

      jq.find('form').each(function (index, form) {
        var $form = $(form);

        if ($form.attr('name')) {
          m.push({
            id: $form.attr('name'),
            obj: $form.serializeObject()
          });
        } else {
          m.push({
            id: '',
            obj: $form.serializeObject()
          });
        }
      });
      var r = {};
      for (var i = 0; i < m.length; i++) {
        if (m[i].id) {
          if (r.hasOwnProperty(m[i].id)) {
            $.extend(r[m[i].id], m[i].obj);
          } else {
            r[m[i].id] = m[i].obj;
          }
        } else {
          $.extend(r, m[i].obj);
        }
      }
      return r;
    },
    formSet: function (data) {
      var jq = this;
      for (var p in data) {
        if (!data.hasOwnProperty(p)) continue;
        jq.find(":input[name='" + p + "']").val(data[p]);
      }
    },
    formClear: function () {
      var jq = this;
      jq.find(":input").val('');
    },
  });

})(jQuery);

// data-shift api 
+function ($) {
  "use strict";

  /* SHIFT CLASS DEFINITION
   * ====================== */

  var Shift = function (element) {
    this.$element = $(element);
    this.$prev = this.$element.prev();
    !this.$prev.length && (this.$parent = this.$element.parent());
  };

  Shift.prototype = {
    constructor: Shift

    , init: function () {
      var $el = this.$element
        , method = $el.data()['toggle'].split(':')[1]
        , $target = $el.data('target');
      $el.hasClass('in') || $el[method]($target).addClass('in');
    }
    , reset: function () {
      this.$parent && this.$parent['prepend'](this.$element);
      !this.$parent && this.$element['insertAfter'](this.$prev);
      this.$element.removeClass('in');
    }
  };

  /* SHIFT PLUGIN DEFINITION
   * ======================= */

  $.fn.shift = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('shift');
      if (!data) $this.data('shift', (data = new Shift(this)));
      if (typeof option == 'string') data[option]();
    });
  };

  $.fn.shift.Constructor = Shift;
}(jQuery);

/*
// data-bjax api
+function ($) { "use strict";
  var Bjax = function (element, options) {
    this.options   = options
    this.$element  = $( this.options.target || 'html' );
    this.start()
  }

  Bjax.DEFAULTS = {
      backdrop: true
    , url: ''
  }

  Bjax.prototype.start = function () {
    var that = this;
    this.backdrop();
    $.ajax(this.options.url).done(function(r){
      that.$content = r;
      that.complete();
    });
  }

  Bjax.prototype.complete = function (){
    var that = this;
    if( this.$element.is('html') || (this.options.replace) ){
      try{
        window.history.pushState({}, '', this.options.url);
      }catch(e){
        window.location.replace(this.options.url)
      }
    }

    this.updateBar(100);
  }

  Bjax.prototype.backdrop = function(){
    this.$element.css('position','relative')
    this.$backdrop = $('<div class="backdrop fade bg-white"></div>')
      .appendTo(this.$element);
    if(!this.options.backdrop) this.$backdrop.css('height', '2');
    this.$backdrop[0].offsetWidth; // force reflow
    this.$backdrop.addClass('in');

    this.$bar = $('<div class="bar b-t b-2x b-info"></div>')
      .width(0)
      .appendTo(this.$backdrop);
  }

  Bjax.prototype.update = function (){
    this.$element.css('position','');
    if( !this.$element.is('html') ){
      if(this.options.el){
        this.$content = $(this.$content).find(this.options.el);
      }
      this.$element.html(this.$content);
    }
    if( this.$element.is('html') ) {
      if( $('.ie').length ){
        location.reload();
        return;
      }
      document.open();
      document.write(this.$content);
      document.close();
    }
  }

  Bjax.prototype.updateBar = function (per){
    var that = this;
    this.$bar.stop().animate({
        width: per + '%'
    }, 500, 'linear', function(){
      if(per == 100) that.update();
    });
  }

  Bjax.prototype.enable = function (e){
    var link = e.currentTarget;
    if ( location.protocol !== link.protocol || location.hostname !== link.hostname )
      return false
    if (link.hash && link.href.replace(link.hash, '') ===
         location.href.replace(location.hash, ''))
      return false
    if (link.href === location.href + '#' || link.href === location.href)
      return false
    if(link.protocol.indexOf('http') ==-1)
      return false
    return true;
  }

  $.fn.bjax = function (option) {
    return this.each(function () {
      var $this   = $(this);
      var data    = $this.data('app.bjax');
      var options = $.extend({}, Bjax.DEFAULTS, $this.data(), typeof option == 'object' && option)
      if (!data) $this.data('app.bjax', (data = new Bjax(this, options)))
      if (data) data['start']()
      if (typeof option == 'string') data[option]()
    })
  }

  $.fn.bjax.Constructor = Bjax

  $(window).on("popstate", function(e) {
    if (e.originalEvent.state !== null) {
      window.location.reload(true);
    }
    e.preventDefault();
  });

  $(document).on('click.app.bjax.data-api', '[data-bjax], .nav-primary a', function (e) {
    if(!Bjax.prototype.enable(e)) return;
    $(this).bjax({url: $(this).attr('href') || $(this).attr('data-url') });
    e.preventDefault();
  })
}(jQuery);
*/

Date.now = Date.now || function () { return +new Date; };

+function ($) {

  $(function () {

    // toogle fullscreen
    $(document).on('click', "[data-toggle=fullscreen]", function (e) {
      e.preventDefault();
      if (screenfull.enabled) {
        screenfull.request();
      }
    });

    // placeholder
    $('input[placeholder], textarea[placeholder]').placeholder();

    // popover
    $("[data-toggle=popover]").popover();
    $(document).on('click', '.popover-title .close', function (e) {
      var $target = $(e.target), $popover = $target.closest('.popover').prev();
      $popover && $popover.popover('hide');
    });

    // ajax modal
    $(document).on('click', '[data-toggle="ajaxModal"]',
      function (e) {
        $('#ajaxModal').remove();
        e.preventDefault();
        var $this = $(this)
          , $remote = $this.data('remote') || $this.attr('href')
          , $modal = $('<div class="modal fade" id="ajaxModal"><div class="modal-body"></div></div>');
        $('body').append($modal);
        $modal.modal();
        $modal.load($remote);
      }
    );

    // dropdown menu
    $.fn.dropdown.Constructor.prototype.change = function (e) {
      e.preventDefault();
      var $item = $(e.target), $select, $checked = false, $menu, $label;
      !$item.is('a') && ($item = $item.closest('a'));
      $menu = $item.closest('.dropdown-menu');
      $label = $menu.parent().find('.dropdown-label');
      $labelHolder = $label.text();
      $select = $item.parent().find('input');
      $checked = $select.is(':checked');
      if ($select.is(':disabled')) return;
      if ($select.attr('type') == 'radio' && $checked) return;
      if ($select.attr('type') == 'radio') $menu.find('li').removeClass('active');
      $item.parent().removeClass('active');
      !$checked && $item.parent().addClass('active');
      $select.prop("checked", !$select.prop("checked"));

      $items = $menu.find('li > input:checked');
      if ($items.length) {
        $text = [];
        $items.each(function () {
          var $str = $(this).parent().text();
          $str && $text.push($.trim($str));
        });

        $text = $text.length < 4 ? $text.join(', ') : $text.length + ' selected';
        $label.html($text);
      } else {
        $label.html($label.data('placeholder'));
      }
    };
    $(document).on('click.dropdown-menu', '.dropdown-select > li > a', $.fn.dropdown.Constructor.prototype.change);

    // tooltip
    $("[data-toggle=tooltip]").tooltip();

    // class
    $(document).on('click', '[data-toggle^="class"]', function (e) {
      e && e.preventDefault();
      var $this = $(e.target), $class, $target, $tmp, $classes, $targets;
      !$this.data('toggle') && ($this = $this.closest('[data-toggle^="class"]'));
      $class = $this.data()['toggle'];
      $target = $this.data('target') || $this.attr('href');
      $class && ($tmp = $class.split(':')[1]) && ($classes = $tmp.split(','));
      $target && ($targets = $target.split(','));
      $classes && $classes.length && $.each($targets, function (index, value) {
        if ($classes[index].indexOf('*') !== -1) {
          var patt = new RegExp('\\s' +
            $classes[index].replace(/\*/g, '[A-Za-z0-9-_]+').split(' ').join('\\s|\\s') +
            '\\s', 'g');
          $($this).each(function (i, it) {
            var cn = ' ' + it.className + ' ';
            while (patt.test(cn)) {
              cn = cn.replace(patt, ' ');
            }
            it.className = $.trim(cn);
          });
        }
        ($targets[index] != '#') && $($targets[index]).toggleClass($classes[index]) || $this.toggleClass($classes[index]);
      });
      $this.toggleClass('active');
    });

    // panel toggle
    $(document).on('click', '.panel-toggle', function (e) {
      e && e.preventDefault();
      var $this = $(e.target), $class = 'collapse', $target;
      if (!$this.is('a')) $this = $this.closest('a');
      $target = $this.closest('.panel');
      $target.find('.panel-body').toggleClass($class);
      $this.toggleClass('active');
    });

    // carousel
    $('.carousel.auto').carousel();

    // button loading
    $(document).on('click.button.data-api', '[data-loading-text]', function (e) {
      var $this = $(e.target);
      $this.is('i') && ($this = $this.parent());
      $this.button('loading');
    });

    var $window = $(window);
    // mobile
    var mobile = function (option) {
      if (option == 'reset') {
        $('[data-toggle^="shift"]').shift('reset');
        return true;
      }
      $('[data-toggle^="shift"]').shift('init');
      return true;
    };
    // unmobile
    $window.width() < 768 && mobile();
    // resize
    var $resize, $width = $window.width();
    $window.resize(function () {
      if ($width !== $window.width()) {
        clearTimeout($resize);
        $resize = setTimeout(function () {
          setHeight();
          $window.width() < 768 && mobile();
          $window.width() >= 768 && mobile('reset') && fixVbox();
          $width = $window.width();
        }, 500);
      }
    });

    // fluid layout
    var setHeight = function () {
      $('.app-fluid #nav > *').css('min-height', $(window).height() - 60);
      return true;
    };
    setHeight();

    // fix vbox
    var fixVbox = function () {
      $('.ie11 .vbox').each(function () {
        $(this).height($(this).parent().height());
      });
      return true;
    };
    fixVbox();

    // collapse nav
    $(document).on('click', '[data-ride="collapse"] a', function (e) {
      var $this = $(e.target), $active;
      $this.is('a') || ($this = $this.closest('a'));

      $active = $this.parent().siblings(".active");
      $active && $active.toggleClass('active').find('> ul:visible').slideUp(200);

      ($this.parent().hasClass('active') && $this.next().slideUp(200)) || $this.next().slideDown(200);
      $this.parent().toggleClass('active');

      $this.next().is('ul') && e.preventDefault();

      setTimeout(function () { $(document).trigger('updateNav'); }, 300);
    });

    // dropdown still
    $(document).on('click.bs.dropdown.data-api', '.dropdown .on, .dropup .on, .open .on', function (e) { e.stopPropagation(); });

  });
}(jQuery);

(function ($) {
  jQuery.fn.setfocus = function () {
    return this.each(function () {
      var dom = this;
      setTimeout(function () {
        try { dom.focus(); } catch (e) { }
      }, 0);
    });
  };
})(jQuery);