text: jQuery(document).ready(function(b) {
      function l() {
          "undefined" != typeof b.prettyPhoto && b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({
              hook: "data-rel",
              social_tools: !1,
              theme: "pp_woocommerce",
              horizontal_padding: 20,
              opacity: .8,
              deeplinking: !1
          });
          f.off("change");
          f = b('.wishlist_table tbody input[type="checkbox"]');
          "undefined" != typeof b.fn.selectBox && b("select.selectBox").selectBox();
          g()
      }
  
      function r(a) {
          var c = a.data("product-id"),
              d = b(".add-to-wishlist-" + c),
              c = {
                  add_to_wishlist: c,
                  product_type: a.data("product-type"),
                  action: yith_wcwl_l10n.actions.add_to_wishlist_action
              };
          if (yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in) {
              var e = a.parents(".yith-wcwl-popup-footer").prev(".yith-wcwl-popup-content"),
                  m = e.find(".wishlist-select"),
                  f = e.find(".wishlist-name"),
                  e = e.find(".wishlist-visibility");
              c.wishlist_id = m.val();
              c.wishlist_name = f.val();
              c.wishlist_visibility = e.val()
          }
          p() ? b.ajax({
              type: "POST",
              url: yith_wcwl_l10n.ajax_url,
              data: c,
              dataType: "json",
              beforeSend: function() {
                  a.siblings(".ajax-loading").css("visibility", "visible")
              },
              complete: function() {
                  a.siblings(".ajax-loading").css("visibility", "hidden")
              },
              success: function(a) {
                  var c = b("#yith-wcwl-popup-message"),
                      e = a.result,
                      f = a.message;
                  if (yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in) {
                      var m = b("select.wishlist-select");
                      "undefined" != typeof b.prettyPhoto && b.prettyPhoto.close();
                      m.each(function(c) {
                          c = b(this);
                          var d = c.find("option"),
                              d = d.slice(1, d.length - 1);
                          d.remove();
                          if ("undefined" != typeof a.user_wishlists)
                              for (d in d = 0, a.user_wishlists) "1" != a.user_wishlists[d].is_default && b("<option>").val(a.user_wishlists[d].ID).html(a.user_wishlists[d].wishlist_name).insertBefore(c.find("option:last-child"))
                      })
                  }
                  b("#yith-wcwl-message").html(f);
                  c.css("margin-left", "-" + b(c).width() + "px").fadeIn();
                  window.setTimeout(function() {
                      c.fadeOut()
                  }, 2E3);
                  "true" == e ? ((!yith_wcwl_l10n.multi_wishlist || !yith_wcwl_l10n.is_user_logged_in || yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in && yith_wcwl_l10n.hide_add_button) && d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"), d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href", a.wishlist_url), d.find(".yith-wcwl-wishlistaddedbrowse").show().removeClass("hide").addClass("show").find("a").attr("href", a.wishlist_url)) : "exists" == e ? ((!yith_wcwl_l10n.multi_wishlist || !yith_wcwl_l10n.is_user_logged_in || yith_wcwl_l10n.multi_wishlist && yith_wcwl_l10n.is_user_logged_in && yith_wcwl_l10n.hide_add_button) && d.find(".yith-wcwl-add-button").hide().removeClass("show").addClass("hide"), d.find(".yith-wcwl-wishlistexistsbrowse").show().removeClass("hide").addClass("show").find("a").attr("href", a.wishlist_url), d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide").find("a").attr("href", a.wishlist_url)) : (d.find(".yith-wcwl-add-button").show().removeClass("hide").addClass("show"), d.find(".yith-wcwl-wishlistexistsbrowse").hide().removeClass("show").addClass("hide"), d.find(".yith-wcwl-wishlistaddedbrowse").hide().removeClass("show").addClass("hide"));
                  b("body").trigger("added_to_wishlist")
              }
          }) : alert(yith_wcwl_l10n.labels.cookie_disabled)
      }
  
      function t(a) {
          var c = a.parents(".cart.wishlist_table"),
              d = c.data("pagination"),
              e = c.data("per-page"),
              f = c.data("page");
          a = a.parents("tr");
          c.find(".pagination-row");
          a = a.data("row-id");
          var n = c.data("id"),
              h = c.data("token"),
              d = {
                  action: yith_wcwl_l10n.actions.remove_from_wishlist_action,
                  remove_from_wishlist: a,
                  pagination: d,
                  per_page: e,
                  current_page: f,
                  wishlist_id: n,
                  wishlist_token: h
              };
          b("#yith-wcwl-message").html("&nbsp;");
          "undefined" != typeof b.fn.block && c.fadeTo("400", "0.6").block({
              message: null,
              overlayCSS: {
                  background: "transparent url(" + yith_wcwl_l10n.ajax_loader_url + ") no-repeat center",
                  backgroundSize: "16px 16px",
                  opacity: .6
              }
          });
          b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url + " #yith-wcwl-form", d, function() {
              "undefined" != typeof b.fn.unblock && c.stop(!0).css("opacity", "1").unblock();
              l();
              b("body").trigger("removed_from_wishlist")
          })
      }
  
      function u(a, c) {
          var d = a.data("product-id"),
              e = b(document).find(".cart.wishlist_table"),
              f = e.data("pagination"),
              n = e.data("per-page"),
              h = e.data("id"),
              g = e.data("token"),
              d = {
                  action: yith_wcwl_l10n.actions.reload_wishlist_and_adding_elem_action,
                  pagination: f,
                  per_page: n,
                  wishlist_id: h,
                  wishlist_token: g,
                  add_to_wishlist: d,
                  product_type: a.data("product-type")
              };
          p() ? b.ajax({
              type: "POST",
              url: yith_wcwl_l10n.ajax_url,
              data: d,
              dataType: "html",
              beforeSend: function() {
                  "undefined" != typeof b.fn.block && e.fadeTo("400", "0.6").block({
                      message: null,
                      overlayCSS: {
                          background: "transparent url(" + yith_wcwl_l10n.ajax_loader_url + ") no-repeat center",
                          backgroundSize: "16px 16px",
                          opacity: .6
                      }
                  })
              },
              success: function(a) {
                  a = b(a).find("#yith-wcwl-form");
                  c.replaceWith(a);
                  l()
              }
          }) : alert(yith_wcwl_l10n.labels.cookie_disabled)
      }
  
      function v(a) {
          var c = a.parents(".cart.wishlist_table"),
              d = c.data("token"),
              e = c.data("id"),
              f = a.parents("tr").data("row-id");
          a = a.val();
          var g = c.data("pagination"),
              h = c.data("per-page"),
              k = c.data("page"),
              d = {
                  action: yith_wcwl_l10n.actions.move_to_another_wishlist_action,
                  wishlist_token: d,
                  wishlist_id: e,
                  destination_wishlist_token: a,
                  item_id: f,
                  pagination: g,
                  per_page: h,
                  current_page: k
              };
          "" != a && ("undefined" != typeof b.fn.block && c.fadeTo("400", "0.6").block({
              message: null,
              overlayCSS: {
                  background: "transparent url(" + yith_wcwl_l10n.ajax_loader_url + ") no-repeat center",
                  backgroundSize: "16px 16px",
                  opacity: .6
              }
          }), b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url + " #yith-wcwl-form", d, function() {
              "undefined" != typeof b.fn.unblock && c.stop(!0).css("opacity", "1").unblock();
              l();
              b("body").trigger("moved_to_another_wishlist")
          }))
      }
  
      function q(a) {
          var c = b(this);
          a.preventDefault();
          c.parents(".wishlist-title").next().show();
          c.parents(".wishlist-title").hide()
      }
  
      function p() {
          if (navigator.cookieEnabled) return !0;
          document.cookie = "cookietest=1";
          var a = -1 != document.cookie.indexOf("cookietest=");
          document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";
          return a
      }
  
      function g() {
          f.on("change", function() {
              var a = "",
                  c = b(this).parents(".cart.wishlist_table"),
                  d = c.data("id"),
                  c = c.data("token"),
                  e = document.URL;
              f.filter(":checked").each(function() {
                  var c = b(this);
                  a += 0 != a.length ? "," : "";
                  a += c.parents("tr").data("row-id")
              });
              e = k(e, "wishlist_products_to_add_to_cart", a);
              e = k(e, "wishlist_token", c);
              e = k(e, "wishlist_id", d);
              b("#custom_add_to_cart").attr("href", e)
          })
      }
  
      function k(a, b, d) {
          d = b + "=" + d;
          a = a.replace(new RegExp("(&|\\?)" + b + "=[^&]*"), "$1" + d); - 1 < a.indexOf(b + "=") || (a = -1 < a.indexOf("?") ? a + ("&" + d) : a + ("?" + d));
          return a
      }
      var w = "undefined" !== typeof wc_add_to_cart_params ? wc_add_to_cart_params.cart_redirect_after_add : "",
          f = b('.wishlist_table tbody input[type="checkbox"]:not(:disabled)');
      b(document).on("click", ".add_to_wishlist", function(a) {
          var c = b(this);
          a.preventDefault();
          r(c);
          return !1
      });
      b(document).on("click", ".remove_from_wishlist", function(a) {
          var c = b(this);
          a.preventDefault();
          t(c);
          return !1
      });
      b(document).on("adding_to_cart", "body", function(a, b, d) {
          0 != b.closest(".wishlist_table").length && (d.remove_from_wishlist_after_add_to_cart = b.closest("tr").data("row-id"), d.wishlist_id = b.closest("table").data("id"), wc_add_to_cart_params.cart_redirect_after_add = yith_wcwl_l10n.redirect_to_cart)
      });
      b(document).on("added_to_cart", "body", function(a) {
          wc_add_to_cart_params.cart_redirect_after_add = w;
          a = b(".wishlist_table");
          a.find(".added").removeClass("added");
          a.find(".added_to_cart").remove()
      });
      b(document).on("added_to_cart", "body", function() {
          var a = b(".woocommerce-message");
          0 == a.length ? b("#yith-wcwl-form").prepend(yith_wcwl_l10n.labels.added_to_cart_message) : a.fadeOut(300, function() {
              b(this).replaceWith(yith_wcwl_l10n.labels.added_to_cart_message).fadeIn()
          })
      });
      b(document).on("cart_page_refreshed", "body", l);
      b(document).on("click", ".show-title-form", q);
      b(document).on("click", ".wishlist-title-with-form h2", q);
      b(document).on("click", ".hide-title-form", function(a) {
          var c = b(this);
          a.preventDefault();
          c.parents(".hidden-title-form").hide();
          c.parents(".hidden-title-form").prev().show()
      });
      b(document).on("change", ".change-wishlist", function(a) {
          a = b(this);
          v(a);
          return !1
      });
      b(document).on("change", ".yith-wcwl-popup-content .wishlist-select", function(a) {
          a = b(this);
          "new" == a.val() ? a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").css("display", "table-row") : a.parents(".yith-wcwl-first-row").next(".yith-wcwl-second-row").hide()
      });
      b(document).on("change", "#bulk_add_to_cart", function() {
          b(this).is(":checked") ? f.attr("checked", "checked").change() : f.removeAttr("checked").change()
      });
      b(document).on("click", "#custom_add_to_cart", function(a) {
          var c = b(this),
              d = c.parents(".cart.wishlist_table");
          yith_wcwl_l10n.ajax_add_to_cart_enabled && (a.preventDefault(), "undefined" != typeof b.fn.block && d.fadeTo("400", "0.6").block({
              message: null,
              overlayCSS: {
                  background: "transparent url(" + yith_wcwl_l10n.ajax_loader_url + ") no-repeat center",
                  backgroundSize: "16px 16px",
                  opacity: .6
              }
          }), b("#yith-wcwl-form").load(yith_wcwl_l10n.ajax_url + c.attr("href") + " #yith-wcwl-form", {
              action: yith_wcwl_l10n.actions.bulk_add_to_cart_action
          }, function() {
              "undefined" != typeof b.fn.unblock && d.stop(!0).css("opacity", "1").unblock();
              "undefined" != typeof b.prettyPhoto && b('a[data-rel="prettyPhoto[ask_an_estimate]"]').prettyPhoto({
                  hook: "data-rel",
                  social_tools: !1,
                  theme: "pp_woocommerce",
                  horizontal_padding: 20,
                  opacity: .8,
                  deeplinking: !1
              });
              f.off("change");
              f = b('.wishlist_table tbody input[type="checkbox"]');
              "undefined" != typeof b.fn.selectBox && b("select.selectBox").selectBox();
              g()
          }))
      });
      (function() {
          if (0 != b(".yith-wcwl-add-to-wishlist").length && 0 == b("#yith-wcwl-popup-message").length) {
              var a = b("<div>").attr("id", "yith-wcwl-message"),
                  a = b("<div>").attr("id", "yith-wcwl-popup-message").html(a).hide();
              b("body").prepend(a)
          }
      })();
      g();
      "undefined" != typeof b.fn.selectBox && b("select.selectBox").selectBox();
      b(".yith-wfbt-add-wishlist").on("click", function(a) {
          a.preventDefault();
          a = b(this);
          var c = b("#yith-wcwl-form");
          b("html, body").animate({
              scrollTop: c.offset().top
          }, 500);
          u(a, c)
      })
  });;
  var addComment = {
      moveForm: function(a, b, c, d) {
          var e, f = this,
              g = f.I(a),
              h = f.I(c),
              i = f.I("cancel-comment-reply-link"),
              j = f.I("comment_parent"),
              k = f.I("comment_post_ID");
          if (g && h && i && j) {
              f.respondId = c, d = d || !1, f.I("wp-temp-form-div") || (e = document.createElement("div"), e.id = "wp-temp-form-div", e.style.display = "none", h.parentNode.insertBefore(e, h)), g.parentNode.insertBefore(h, g.nextSibling), k && d && (k.value = d), j.value = b, i.style.display = "", i.onclick = function() {
                  var a = addComment,
                      b = a.I("wp-temp-form-div"),
                      c = a.I(a.respondId);
                  if (b && c) return a.I("comment_parent").value = "0", b.parentNode.insertBefore(c, b), b.parentNode.removeChild(b), this.style.display = "none", this.onclick = null, !1
              };
              try {
                  f.I("comment").focus()
              } catch (l) {}
              return !1
          }
      },
      I: function(a) {
          return document.getElementById(a)
      }
  };;
  /*
   * Bootstrap v3.2.0 (http://getbootstrap.com)
   * Copyright 2011-2014 Twitter, Inc.
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
   */
  if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); + function(a) {
      "use strict";
  
      function b() {
          var a = document.createElement("bootstrap"),
              b = {
                  WebkitTransition: "webkitTransitionEnd",
                  MozTransition: "transitionend",
                  OTransition: "oTransitionEnd otransitionend",
                  transition: "transitionend"
              };
          for (var c in b)
              if (void 0 !== a.style[c]) return {
                  end: b[c]
              };
          return !1
      }
      a.fn.emulateTransitionEnd = function(b) {
          var c = !1,
              d = this;
          a(this).one("bsTransitionEnd", function() {
              c = !0
          });
          var e = function() {
              c || a(d).trigger(a.support.transition.end)
          };
          return setTimeout(e, b), this
      }, a(function() {
          a.support.transition = b(), a.support.transition && (a.event.special.bsTransitionEnd = {
              bindType: a.support.transition.end,
              delegateType: a.support.transition.end,
              handle: function(b) {
                  return a(b.target).is(this) ? b.handleObj.handler.apply(this, arguments) : void 0
              }
          })
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var c = a(this),
                  e = c.data("bs.alert");
              e || c.data("bs.alert", e = new d(this)), "string" == typeof b && e[b].call(c)
          })
      }
      var c = '[data-dismiss="alert"]',
          d = function(b) {
              a(b).on("click", c, this.close)
          };
      d.VERSION = "3.2.0", d.prototype.close = function(b) {
          function c() {
              f.detach().trigger("closed.bs.alert").remove()
          }
          var d = a(this),
              e = d.attr("data-target");
          e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, ""));
          var f = a(e);
          b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one("bsTransitionEnd", c).emulateTransitionEnd(150) : c())
      };
      var e = a.fn.alert;
      a.fn.alert = b, a.fn.alert.Constructor = d, a.fn.alert.noConflict = function() {
          return a.fn.alert = e, this
      }, a(document).on("click.bs.alert.data-api", c, d.prototype.close)
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.button"),
                  f = "object" == typeof b && b;
              e || d.data("bs.button", e = new c(this, f)), "toggle" == b ? e.toggle() : b && e.setState(b)
          })
      }
      var c = function(b, d) {
          this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.isLoading = !1
      };
      c.VERSION = "3.2.0", c.DEFAULTS = {
          loadingText: "loading..."
      }, c.prototype.setState = function(b) {
          var c = "disabled",
              d = this.$element,
              e = d.is("input") ? "val" : "html",
              f = d.data();
          b += "Text", null == f.resetText && d.data("resetText", d[e]()), d[e](null == f[b] ? this.options[b] : f[b]), setTimeout(a.proxy(function() {
              "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c))
          }, this), 0)
      }, c.prototype.toggle = function() {
          var a = !0,
              b = this.$element.closest('[data-toggle="buttons"]');
          if (b.length) {
              var c = this.$element.find("input");
              "radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change")
          }
          a && this.$element.toggleClass("active")
      };
      var d = a.fn.button;
      a.fn.button = b, a.fn.button.Constructor = c, a.fn.button.noConflict = function() {
          return a.fn.button = d, this
      }, a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(c) {
          var d = a(c.target);
          d.hasClass("btn") || (d = d.closest(".btn")), b.call(d, "toggle"), c.preventDefault()
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.carousel"),
                  f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b),
                  g = "string" == typeof b ? b : f.slide;
              e || d.data("bs.carousel", e = new c(this, f)), "number" == typeof b ? e.to(b) : g ? e[g]() : f.interval && e.pause().cycle()
          })
      }
      var c = function(b, c) {
          this.$element = a(b).on("keydown.bs.carousel", a.proxy(this.keydown, this)), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter.bs.carousel", a.proxy(this.pause, this)).on("mouseleave.bs.carousel", a.proxy(this.cycle, this))
      };
      c.VERSION = "3.2.0", c.DEFAULTS = {
          interval: 5e3,
          pause: "hover",
          wrap: !0
      }, c.prototype.keydown = function(a) {
          switch (a.which) {
              case 37:
                  this.prev();
                  break;
              case 39:
                  this.next();
                  break;
              default:
                  return
          }
          a.preventDefault()
      }, c.prototype.cycle = function(b) {
          return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this
      }, c.prototype.getItemIndex = function(a) {
          return this.$items = a.parent().children(".item"), this.$items.index(a || this.$active)
      }, c.prototype.to = function(b) {
          var c = this,
              d = this.getItemIndex(this.$active = this.$element.find(".item.active"));
          return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function() {
              c.to(b)
          }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b]))
      }, c.prototype.pause = function(b) {
          return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
      }, c.prototype.next = function() {
          return this.sliding ? void 0 : this.slide("next")
      }, c.prototype.prev = function() {
          return this.sliding ? void 0 : this.slide("prev")
      }, c.prototype.slide = function(b, c) {
          var d = this.$element.find(".item.active"),
              e = c || d[b](),
              f = this.interval,
              g = "next" == b ? "left" : "right",
              h = "next" == b ? "first" : "last",
              i = this;
          if (!e.length) {
              if (!this.options.wrap) return;
              e = this.$element.find(".item")[h]()
          }
          if (e.hasClass("active")) return this.sliding = !1;
          var j = e[0],
              k = a.Event("slide.bs.carousel", {
                  relatedTarget: j,
                  direction: g
              });
          if (this.$element.trigger(k), !k.isDefaultPrevented()) {
              if (this.sliding = !0, f && this.pause(), this.$indicators.length) {
                  this.$indicators.find(".active").removeClass("active");
                  var l = a(this.$indicators.children()[this.getItemIndex(e)]);
                  l && l.addClass("active")
              }
              var m = a.Event("slid.bs.carousel", {
                  relatedTarget: j,
                  direction: g
              });
              return a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one("bsTransitionEnd", function() {
                  e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function() {
                      i.$element.trigger(m)
                  }, 0)
              }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger(m)), f && this.cycle(), this
          }
      };
      var d = a.fn.carousel;
      a.fn.carousel = b, a.fn.carousel.Constructor = c, a.fn.carousel.noConflict = function() {
          return a.fn.carousel = d, this
      }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function(c) {
          var d, e = a(this),
              f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""));
          if (f.hasClass("carousel")) {
              var g = a.extend({}, f.data(), e.data()),
                  h = e.attr("data-slide-to");
              h && (g.interval = !1), b.call(f, g), h && f.data("bs.carousel").to(h), c.preventDefault()
          }
      }), a(window).on("load", function() {
          a('[data-ride="carousel"]').each(function() {
              var c = a(this);
              b.call(c, c.data())
          })
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.collapse"),
                  f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b);
              !e && f.toggle && "show" == b && (b = !b), e || d.data("bs.collapse", e = new c(this, f)), "string" == typeof b && e[b]()
          })
      }
      var c = function(b, d) {
          this.$element = a(b), this.options = a.extend({}, c.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle()
      };
      c.VERSION = "3.2.0", c.DEFAULTS = {
          toggle: !0
      }, c.prototype.dimension = function() {
          var a = this.$element.hasClass("width");
          return a ? "width" : "height"
      }, c.prototype.show = function() {
          if (!this.transitioning && !this.$element.hasClass("in")) {
              var c = a.Event("show.bs.collapse");
              if (this.$element.trigger(c), !c.isDefaultPrevented()) {
                  var d = this.$parent && this.$parent.find("> .panel > .in");
                  if (d && d.length) {
                      var e = d.data("bs.collapse");
                      if (e && e.transitioning) return;
                      b.call(d, "hide"), e || d.data("bs.collapse", null)
                  }
                  var f = this.dimension();
                  this.$element.removeClass("collapse").addClass("collapsing")[f](0), this.transitioning = 1;
                  var g = function() {
                      this.$element.removeClass("collapsing").addClass("collapse in")[f](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
                  };
                  if (!a.support.transition) return g.call(this);
                  var h = a.camelCase(["scroll", f].join("-"));
                  this.$element.one("bsTransitionEnd", a.proxy(g, this)).emulateTransitionEnd(350)[f](this.$element[0][h])
              }
          }
      }, c.prototype.hide = function() {
          if (!this.transitioning && this.$element.hasClass("in")) {
              var b = a.Event("hide.bs.collapse");
              if (this.$element.trigger(b), !b.isDefaultPrevented()) {
                  var c = this.dimension();
                  this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1;
                  var d = function() {
                      this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")
                  };
                  return a.support.transition ? void this.$element[c](0).one("bsTransitionEnd", a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this)
              }
          }
      }, c.prototype.toggle = function() {
          this[this.$element.hasClass("in") ? "hide" : "show"]()
      };
      var d = a.fn.collapse;
      a.fn.collapse = b, a.fn.collapse.Constructor = c, a.fn.collapse.noConflict = function() {
          return a.fn.collapse = d, this
      }, a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function(c) {
          var d, e = a(this),
              f = e.attr("data-target") || c.preventDefault() || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, ""),
              g = a(f),
              h = g.data("bs.collapse"),
              i = h ? "toggle" : e.data(),
              j = e.attr("data-parent"),
              k = j && a(j);
          h && h.transitioning || (k && k.find('[data-toggle="collapse"][data-parent="' + j + '"]').not(e).addClass("collapsed"), e[g.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), b.call(g, i)
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          b && 3 === b.which || (a(e).remove(), a(f).each(function() {
              var d = c(a(this)),
                  e = {
                      relatedTarget: this
                  };
              d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e))
          }))
      }
  
      function c(b) {
          var c = b.attr("data-target");
          c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, ""));
          var d = c && a(c);
          return d && d.length ? d : b.parent()
      }
  
      function d(b) {
          return this.each(function() {
              var c = a(this),
                  d = c.data("bs.dropdown");
              d || c.data("bs.dropdown", d = new g(this)), "string" == typeof b && d[b].call(c)
          })
      }
      var e = ".dropdown-backdrop",
          f = '[data-toggle="dropdown"]',
          g = function(b) {
              a(b).on("click.bs.dropdown", this.toggle)
          };
      g.VERSION = "3.2.0", g.prototype.toggle = function(d) {
          var e = a(this);
          if (!e.is(".disabled, :disabled")) {
              var f = c(e),
                  g = f.hasClass("open");
              if (b(), !g) {
                  "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b);
                  var h = {
                      relatedTarget: this
                  };
                  if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return;
                  e.trigger("focus"), f.toggleClass("open").trigger("shown.bs.dropdown", h)
              }
              return !1
          }
      }, g.prototype.keydown = function(b) {
          if (/(38|40|27)/.test(b.keyCode)) {
              var d = a(this);
              if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) {
                  var e = c(d),
                      g = e.hasClass("open");
                  if (!g || g && 27 == b.keyCode) return 27 == b.which && e.find(f).trigger("focus"), d.trigger("click");
                  var h = " li:not(.divider):visible a",
                      i = e.find('[role="menu"]' + h + ', [role="listbox"]' + h);
                  if (i.length) {
                      var j = i.index(i.filter(":focus"));
                      38 == b.keyCode && j > 0 && j--, 40 == b.keyCode && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).trigger("focus")
                  }
              }
          }
      };
      var h = a.fn.dropdown;
      a.fn.dropdown = d, a.fn.dropdown.Constructor = g, a.fn.dropdown.noConflict = function() {
          return a.fn.dropdown = h, this
      }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function(a) {
          a.stopPropagation()
      }).on("click.bs.dropdown.data-api", f, g.prototype.toggle).on("keydown.bs.dropdown.data-api", f + ', [role="menu"], [role="listbox"]', g.prototype.keydown)
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b, d) {
          return this.each(function() {
              var e = a(this),
                  f = e.data("bs.modal"),
                  g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b);
              f || e.data("bs.modal", f = new c(this, g)), "string" == typeof b ? f[b](d) : g.show && f.show(d)
          })
      }
      var c = function(b, c) {
          this.options = c, this.$body = a(document.body), this.$element = a(b), this.$backdrop = this.isShown = null, this.scrollbarWidth = 0, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function() {
              this.$element.trigger("loaded.bs.modal")
          }, this))
      };
      c.VERSION = "3.2.0", c.DEFAULTS = {
          backdrop: !0,
          keyboard: !0,
          show: !0
      }, c.prototype.toggle = function(a) {
          return this.isShown ? this.hide() : this.show(a)
      }, c.prototype.show = function(b) {
          var c = this,
              d = a.Event("show.bs.modal", {
                  relatedTarget: b
              });
          this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.$body.addClass("modal-open"), this.setScrollbar(), this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function() {
              var d = a.support.transition && c.$element.hasClass("fade");
              c.$element.parent().length || c.$element.appendTo(c.$body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus();
              var e = a.Event("shown.bs.modal", {
                  relatedTarget: b
              });
              d ? c.$element.find(".modal-dialog").one("bsTransitionEnd", function() {
                  c.$element.trigger("focus").trigger(e)
              }).emulateTransitionEnd(300) : c.$element.trigger("focus").trigger(e)
          }))
      }, c.prototype.hide = function(b) {
          b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.$body.removeClass("modal-open"), this.resetScrollbar(), this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal())
      }, c.prototype.enforceFocus = function() {
          a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function(a) {
              this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.trigger("focus")
          }, this))
      }, c.prototype.escape = function() {
          this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function(a) {
              27 == a.which && this.hide()
          }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal")
      }, c.prototype.hideModal = function() {
          var a = this;
          this.$element.hide(), this.backdrop(function() {
              a.$element.trigger("hidden.bs.modal")
          })
      }, c.prototype.removeBackdrop = function() {
          this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
      }, c.prototype.backdrop = function(b) {
          var c = this,
              d = this.$element.hasClass("fade") ? "fade" : "";
          if (this.isShown && this.options.backdrop) {
              var e = a.support.transition && d;
              if (this.$backdrop = a('<div class="modal-backdrop ' + d + '" />').appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function(a) {
                      a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this))
                  }, this)), e && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return;
              e ? this.$backdrop.one("bsTransitionEnd", b).emulateTransitionEnd(150) : b()
          } else if (!this.isShown && this.$backdrop) {
              this.$backdrop.removeClass("in");
              var f = function() {
                  c.removeBackdrop(), b && b()
              };
              a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", f).emulateTransitionEnd(150) : f()
          } else b && b()
      }, c.prototype.checkScrollbar = function() {
          document.body.clientWidth >= window.innerWidth || (this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar())
      }, c.prototype.setScrollbar = function() {
          var a = parseInt(this.$body.css("padding-right") || 0, 10);
          this.scrollbarWidth && this.$body.css("padding-right", a + this.scrollbarWidth)
      }, c.prototype.resetScrollbar = function() {
          this.$body.css("padding-right", "")
      }, c.prototype.measureScrollbar = function() {
          var a = document.createElement("div");
          a.className = "modal-scrollbar-measure", this.$body.append(a);
          var b = a.offsetWidth - a.clientWidth;
          return this.$body[0].removeChild(a), b
      };
      var d = a.fn.modal;
      a.fn.modal = b, a.fn.modal.Constructor = c, a.fn.modal.noConflict = function() {
          return a.fn.modal = d, this
      }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function(c) {
          var d = a(this),
              e = d.attr("href"),
              f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")),
              g = f.data("bs.modal") ? "toggle" : a.extend({
                  remote: !/#/.test(e) && e
              }, f.data(), d.data());
          d.is("a") && c.preventDefault(), f.one("show.bs.modal", function(a) {
              a.isDefaultPrevented() || f.one("hidden.bs.modal", function() {
                  d.is(":visible") && d.trigger("focus")
              })
          }), b.call(f, g, this)
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.tooltip"),
                  f = "object" == typeof b && b;
              (e || "destroy" != b) && (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]())
          })
      }
      var c = function(a, b) {
          this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, b)
      };
      c.VERSION = "3.2.0", c.DEFAULTS = {
          animation: !0,
          placement: "top",
          selector: !1,
          template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
          trigger: "hover focus",
          title: "",
          delay: 0,
          html: !1,
          container: !1,
          viewport: {
              selector: "body",
              padding: 0
          }
      }, c.prototype.init = function(b, c, d) {
          this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(this.options.viewport.selector || this.options.viewport);
          for (var e = this.options.trigger.split(" "), f = e.length; f--;) {
              var g = e[f];
              if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this));
              else if ("manual" != g) {
                  var h = "hover" == g ? "mouseenter" : "focusin",
                      i = "hover" == g ? "mouseleave" : "focusout";
                  this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this))
              }
          }
          this.options.selector ? this._options = a.extend({}, this.options, {
              trigger: "manual",
              selector: ""
          }) : this.fixTitle()
      }, c.prototype.getDefaults = function() {
          return c.DEFAULTS
      }, c.prototype.getOptions = function(b) {
          return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = {
              show: b.delay,
              hide: b.delay
          }), b
      }, c.prototype.getDelegateOptions = function() {
          var b = {},
              c = this.getDefaults();
          return this._options && a.each(this._options, function(a, d) {
              c[a] != d && (b[a] = d)
          }), b
      }, c.prototype.enter = function(b) {
          var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type);
          return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void(c.timeout = setTimeout(function() {
              "in" == c.hoverState && c.show()
          }, c.options.delay.show)) : c.show()
      }, c.prototype.leave = function(b) {
          var c = b instanceof this.constructor ? b : a(b.currentTarget).data("bs." + this.type);
          return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void(c.timeout = setTimeout(function() {
              "out" == c.hoverState && c.hide()
          }, c.options.delay.hide)) : c.hide()
      }, c.prototype.show = function() {
          var b = a.Event("show.bs." + this.type);
          if (this.hasContent() && this.enabled) {
              this.$element.trigger(b);
              var c = a.contains(document.documentElement, this.$element[0]);
              if (b.isDefaultPrevented() || !c) return;
              var d = this,
                  e = this.tip(),
                  f = this.getUID(this.type);
              this.setContent(), e.attr("id", f), this.$element.attr("aria-describedby", f), this.options.animation && e.addClass("fade");
              var g = "function" == typeof this.options.placement ? this.options.placement.call(this, e[0], this.$element[0]) : this.options.placement,
                  h = /\s?auto?\s?/i,
                  i = h.test(g);
              i && (g = g.replace(h, "") || "top"), e.detach().css({
                  top: 0,
                  left: 0,
                  display: "block"
              }).addClass(g).data("bs." + this.type, this), this.options.container ? e.appendTo(this.options.container) : e.insertAfter(this.$element);
              var j = this.getPosition(),
                  k = e[0].offsetWidth,
                  l = e[0].offsetHeight;
              if (i) {
                  var m = g,
                      n = this.$element.parent(),
                      o = this.getPosition(n);
                  g = "bottom" == g && j.top + j.height + l - o.scroll > o.height ? "top" : "top" == g && j.top - o.scroll - l < 0 ? "bottom" : "right" == g && j.right + k > o.width ? "left" : "left" == g && j.left - k < o.left ? "right" : g, e.removeClass(m).addClass(g)
              }
              var p = this.getCalculatedOffset(g, j, k, l);
              this.applyPlacement(p, g);
              var q = function() {
                  d.$element.trigger("shown.bs." + d.type), d.hoverState = null
              };
              a.support.transition && this.$tip.hasClass("fade") ? e.one("bsTransitionEnd", q).emulateTransitionEnd(150) : q()
          }
      }, c.prototype.applyPlacement = function(b, c) {
          var d = this.tip(),
              e = d[0].offsetWidth,
              f = d[0].offsetHeight,
              g = parseInt(d.css("margin-top"), 10),
              h = parseInt(d.css("margin-left"), 10);
          isNaN(g) && (g = 0), isNaN(h) && (h = 0), b.top = b.top + g, b.left = b.left + h, a.offset.setOffset(d[0], a.extend({
              using: function(a) {
                  d.css({
                      top: Math.round(a.top),
                      left: Math.round(a.left)
                  })
              }
          }, b), 0), d.addClass("in");
          var i = d[0].offsetWidth,
              j = d[0].offsetHeight;
          "top" == c && j != f && (b.top = b.top + f - j);
          var k = this.getViewportAdjustedDelta(c, b, i, j);
          k.left ? b.left += k.left : b.top += k.top;
          var l = k.left ? 2 * k.left - e + i : 2 * k.top - f + j,
              m = k.left ? "left" : "top",
              n = k.left ? "offsetWidth" : "offsetHeight";
          d.offset(b), this.replaceArrow(l, d[0][n], m)
      }, c.prototype.replaceArrow = function(a, b, c) {
          this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "")
      }, c.prototype.setContent = function() {
          var a = this.tip(),
              b = this.getTitle();
          a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right")
      }, c.prototype.hide = function() {
          function b() {
              "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type)
          }
          var c = this,
              d = this.tip(),
              e = a.Event("hide.bs." + this.type);
          return this.$element.removeAttr("aria-describedby"), this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one("bsTransitionEnd", b).emulateTransitionEnd(150) : b(), this.hoverState = null, this)
      }, c.prototype.fixTitle = function() {
          var a = this.$element;
          (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "")
      }, c.prototype.hasContent = function() {
          return this.getTitle()
      }, c.prototype.getPosition = function(b) {
          b = b || this.$element;
          var c = b[0],
              d = "BODY" == c.tagName;
          return a.extend({}, "function" == typeof c.getBoundingClientRect ? c.getBoundingClientRect() : null, {
              scroll: d ? document.documentElement.scrollTop || document.body.scrollTop : b.scrollTop(),
              width: d ? a(window).width() : b.outerWidth(),
              height: d ? a(window).height() : b.outerHeight()
          }, d ? {
              top: 0,
              left: 0
          } : b.offset())
      }, c.prototype.getCalculatedOffset = function(a, b, c, d) {
          return "bottom" == a ? {
              top: b.top + b.height,
              left: b.left + b.width / 2 - c / 2
          } : "top" == a ? {
              top: b.top - d,
              left: b.left + b.width / 2 - c / 2
          } : "left" == a ? {
              top: b.top + b.height / 2 - d / 2,
              left: b.left - c
          } : {
              top: b.top + b.height / 2 - d / 2,
              left: b.left + b.width
          }
      }, c.prototype.getViewportAdjustedDelta = function(a, b, c, d) {
          var e = {
              top: 0,
              left: 0
          };
          if (!this.$viewport) return e;
          var f = this.options.viewport && this.options.viewport.padding || 0,
              g = this.getPosition(this.$viewport);
          if (/right|left/.test(a)) {
              var h = b.top - f - g.scroll,
                  i = b.top + f - g.scroll + d;
              h < g.top ? e.top = g.top - h : i > g.top + g.height && (e.top = g.top + g.height - i)
          } else {
              var j = b.left - f,
                  k = b.left + f + c;
              j < g.left ? e.left = g.left - j : k > g.width && (e.left = g.left + g.width - k)
          }
          return e
      }, c.prototype.getTitle = function() {
          var a, b = this.$element,
              c = this.options;
          return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title)
      }, c.prototype.getUID = function(a) {
          do a += ~~(1e6 * Math.random()); while (document.getElementById(a));
          return a
      }, c.prototype.tip = function() {
          return this.$tip = this.$tip || a(this.options.template)
      }, c.prototype.arrow = function() {
          return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
      }, c.prototype.validate = function() {
          this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null)
      }, c.prototype.enable = function() {
          this.enabled = !0
      }, c.prototype.disable = function() {
          this.enabled = !1
      }, c.prototype.toggleEnabled = function() {
          this.enabled = !this.enabled
      }, c.prototype.toggle = function(b) {
          var c = this;
          b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), c.tip().hasClass("in") ? c.leave(c) : c.enter(c)
      }, c.prototype.destroy = function() {
          clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type)
      };
      var d = a.fn.tooltip;
      a.fn.tooltip = b, a.fn.tooltip.Constructor = c, a.fn.tooltip.noConflict = function() {
          return a.fn.tooltip = d, this
      }
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.popover"),
                  f = "object" == typeof b && b;
              (e || "destroy" != b) && (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]())
          })
      }
      var c = function(a, b) {
          this.init("popover", a, b)
      };
      if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js" /*tpa=http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/Popover requires tooltip.js*/ );
      c.VERSION = "3.2.0", c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
          placement: "right",
          trigger: "click",
          content: "",
          template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
      }), c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), c.prototype.constructor = c, c.prototype.getDefaults = function() {
          return c.DEFAULTS
      }, c.prototype.setContent = function() {
          var a = this.tip(),
              b = this.getTitle(),
              c = this.getContent();
          a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content").empty()[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide()
      }, c.prototype.hasContent = function() {
          return this.getTitle() || this.getContent()
      }, c.prototype.getContent = function() {
          var a = this.$element,
              b = this.options;
          return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content)
      }, c.prototype.arrow = function() {
          return this.$arrow = this.$arrow || this.tip().find(".arrow")
      }, c.prototype.tip = function() {
          return this.$tip || (this.$tip = a(this.options.template)), this.$tip
      };
      var d = a.fn.popover;
      a.fn.popover = b, a.fn.popover.Constructor = c, a.fn.popover.noConflict = function() {
          return a.fn.popover = d, this
      }
  }(jQuery), + function(a) {
      "use strict";
  
      function b(c, d) {
          var e = a.proxy(this.process, this);
          this.$body = a("body"), this.$scrollElement = a(a(c).is("body") ? window : c), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", e), this.refresh(), this.process()
      }
  
      function c(c) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.scrollspy"),
                  f = "object" == typeof c && c;
              e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]()
          })
      }
      b.VERSION = "3.2.0", b.DEFAULTS = {
          offset: 10
      }, b.prototype.getScrollHeight = function() {
          return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
      }, b.prototype.refresh = function() {
          var b = "offset",
              c = 0;
          a.isWindow(this.$scrollElement[0]) || (b = "position", c = this.$scrollElement.scrollTop()), this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight();
          var d = this;
          this.$body.find(this.selector).map(function() {
              var d = a(this),
                  e = d.data("target") || d.attr("href"),
                  f = /^#./.test(e) && a(e);
              return f && f.length && f.is(":visible") && [
                  [f[b]().top + c, e]
              ] || null
          }).sort(function(a, b) {
              return a[0] - b[0]
          }).each(function() {
              d.offsets.push(this[0]), d.targets.push(this[1])
          })
      }, b.prototype.process = function() {
          var a, b = this.$scrollElement.scrollTop() + this.options.offset,
              c = this.getScrollHeight(),
              d = this.options.offset + c - this.$scrollElement.height(),
              e = this.offsets,
              f = this.targets,
              g = this.activeTarget;
          if (this.scrollHeight != c && this.refresh(), b >= d) return g != (a = f[f.length - 1]) && this.activate(a);
          if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);
          for (a = e.length; a--;) g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a])
      }, b.prototype.activate = function(b) {
          this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active");
          var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]',
              d = a(c).parents("li").addClass("active");
          d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy")
      };
      var d = a.fn.scrollspy;
      a.fn.scrollspy = c, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function() {
          return a.fn.scrollspy = d, this
      }, a(window).on("load.bs.scrollspy.data-api", function() {
          a('[data-spy="scroll"]').each(function() {
              var b = a(this);
              c.call(b, b.data())
          })
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/bs.tab");
              e || d.data("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/bs.tab", e = new c(this)), "string" == typeof b && e[b]()
          })
      }
      var c = function(b) {
          this.element = a(b)
      };
      c.VERSION = "3.2.0", c.prototype.show = function() {
          var b = this.element,
              c = b.closest("ul:not(.dropdown-menu)"),
              d = b.data("target");
          if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) {
              var e = c.find(".active:last a")[0],
                  f = a.Event("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/show.bs.tab", {
                      relatedTarget: e
                  });
              if (b.trigger(f), !f.isDefaultPrevented()) {
                  var g = a(d);
                  this.activate(b.closest("li"), c), this.activate(g, g.parent(), function() {
                      b.trigger({
                          type: "http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/shown.bs.tab",
                          relatedTarget: e
                      })
                  })
              }
          }
      }, c.prototype.activate = function(b, c, d) {
          function e() {
              f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d()
          }
          var f = c.find("> .active"),
              g = d && a.support.transition && f.hasClass("fade");
          g ? f.one("bsTransitionEnd", e).emulateTransitionEnd(150) : e(), f.removeClass("in")
      };
      var d = a.fn.tab;
      a.fn.tab = b, a.fn.tab.Constructor = c, a.fn.tab.noConflict = function() {
          return a.fn.tab = d, this
      }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(c) {
          c.preventDefault(), b.call(a(this), "show")
      })
  }(jQuery), + function(a) {
      "use strict";
  
      function b(b) {
          return this.each(function() {
              var d = a(this),
                  e = d.data("bs.affix"),
                  f = "object" == typeof b && b;
              e || d.data("bs.affix", e = new c(this, f)), "string" == typeof b && e[b]()
          })
      }
      var c = function(b, d) {
          this.options = a.extend({}, c.DEFAULTS, d), this.$target = a(this.options.target).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(b), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition()
      };
      c.VERSION = "3.2.0", c.RESET = "affix affix-top affix-bottom", c.DEFAULTS = {
          offset: 0,
          target: window
      }, c.prototype.getPinnedOffset = function() {
          if (this.pinnedOffset) return this.pinnedOffset;
          this.$element.removeClass(c.RESET).addClass("affix");
          var a = this.$target.scrollTop(),
              b = this.$element.offset();
          return this.pinnedOffset = b.top - a
      }, c.prototype.checkPositionWithEventLoop = function() {
          setTimeout(a.proxy(this.checkPosition, this), 1)
      }, c.prototype.checkPosition = function() {
          if (this.$element.is(":visible")) {
              var b = a(document).height(),
                  d = this.$target.scrollTop(),
                  e = this.$element.offset(),
                  f = this.options.offset,
                  g = f.top,
                  h = f.bottom;
              "object" != typeof f && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element));
              var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= b - h ? "bottom" : null != g && g >= d ? "top" : !1;
              if (this.affixed !== i) {
                  null != this.unpin && this.$element.css("top", "");
                  var j = "affix" + (i ? "-" + i : ""),
                      k = a.Event(j + ".bs.affix");
                  this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({
                      top: b - this.$element.height() - h
                  }))
              }
          }
      };
      var d = a.fn.affix;
      a.fn.affix = b, a.fn.affix.Constructor = c, a.fn.affix.noConflict = function() {
          return a.fn.affix = d, this
      }, a(window).on("load", function() {
          a('[data-spy="affix"]').each(function() {
              var c = a(this),
                  d = c.data();
              d.offset = d.offset || {}, d.offsetBottom && (d.offset.bottom = d.offsetBottom), d.offsetTop && (d.offset.top = d.offsetTop), b.call(c, d)
          })
      })
  }(jQuery);;
  ! function(a) {
      "use strict";
      "function" == typeof define && define.amd ? define(["jquery"], a) : "undefined" != typeof exports ? module.exports = a(require("jquery")) : a(jQuery)
  }(function(a) {
      "use strict";
      var b = window.Slick || {};
      b = function() {
          function c(c, d) {
              var f, g, e = this;
              if (e.defaults = {
                      accessibility: !0,
                      adaptiveHeight: !1,
                      appendArrows: a(c),
                      appendDots: a(c),
                      arrows: !0,
                      asNavFor: null,
                      prevArrow: '<button type="button" data-role="none" class="slick-prev">Previous</button>',
                      nextArrow: '<button type="button" data-role="none" class="slick-next">Next</button>',
                      autoplay: !1,
                      autoplaySpeed: 3e3,
                      centerMode: !1,
                      centerPadding: "50px",
                      cssEase: "ease",
                      customPaging: function(a, b) {
                          return '<button type="button" data-role="none">' + (b + 1) + "</button>"
                      },
                      dots: !1,
                      dotsClass: "slick-dots",
                      draggable: !0,
                      easing: "linear",
                      fade: !1,
                      focusOnSelect: !1,
                      infinite: !0,
                      initialSlide: 0,
                      lazyLoad: "ondemand",
                      onBeforeChange: null,
                      onAfterChange: null,
                      onInit: null,
                      onReInit: null,
                      onSetPosition: null,
                      pauseOnHover: !0,
                      pauseOnDotsHover: !1,
                      respondTo: "window",
                      responsive: null,
                      rtl: !1,
                      slide: "div",
                      slidesToShow: 1,
                      slidesToScroll: 1,
                      speed: 500,
                      swipe: !0,
                      swipeToSlide: !1,
                      touchMove: !0,
                      touchThreshold: 5,
                      useCSS: !0,
                      variableWidth: !1,
                      vertical: !1,
                      waitForAnimate: !0
                  }, e.initials = {
                      animating: !1,
                      dragging: !1,
                      autoPlayTimer: null,
                      currentDirection: 0,
                      currentLeft: null,
                      currentSlide: 0,
                      direction: 1,
                      $dots: null,
                      listWidth: null,
                      listHeight: null,
                      loadIndex: 0,
                      $nextArrow: null,
                      $prevArrow: null,
                      slideCount: null,
                      slideWidth: null,
                      $slideTrack: null,
                      $slides: null,
                      sliding: !1,
                      slideOffset: 0,
                      swipeLeft: null,
                      $list: null,
                      touchObject: {},
                      transformsEnabled: !1
                  }, a.extend(e, e.initials), e.activeBreakpoint = null, e.animType = null, e.animProp = null, e.breakpoints = [], e.breakpointSettings = [], e.cssTransitions = !1, e.paused = !1, e.positionProp = null, e.respondTo = null, e.shouldClick = !0, e.$slider = a(c), e.$slidesCache = null, e.transformType = null, e.transitionType = null, e.windowWidth = 0, e.windowTimer = null, e.options = a.extend({}, e.defaults, d), e.currentSlide = e.options.initialSlide, e.originalSettings = e.options, f = e.options.responsive || null, f && f.length > -1) {
                  e.respondTo = e.options.respondTo || "window";
                  for (g in f) f.hasOwnProperty(g) && (e.breakpoints.push(f[g].breakpoint), e.breakpointSettings[f[g].breakpoint] = f[g].settings);
                  e.breakpoints.sort(function(a, b) {
                      return b - a
                  })
              }
              e.autoPlay = a.proxy(e.autoPlay, e), e.autoPlayClear = a.proxy(e.autoPlayClear, e), e.changeSlide = a.proxy(e.changeSlide, e), e.clickHandler = a.proxy(e.clickHandler, e), e.selectHandler = a.proxy(e.selectHandler, e), e.setPosition = a.proxy(e.setPosition, e), e.swipeHandler = a.proxy(e.swipeHandler, e), e.dragHandler = a.proxy(e.dragHandler, e), e.keyHandler = a.proxy(e.keyHandler, e), e.autoPlayIterator = a.proxy(e.autoPlayIterator, e), e.instanceUid = b++, e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, e.init(), e.checkResponsive()
          }
          var b = 0;
          return c
      }(), b.prototype.addSlide = function(b, c, d) {
          var e = this;
          if ("boolean" == typeof c) d = c, c = null;
          else if (0 > c || c >= e.slideCount) return !1;
          e.unload(), "number" == typeof c ? 0 === c && 0 === e.$slides.length ? a(b).appendTo(e.$slideTrack) : d ? a(b).insertBefore(e.$slides.eq(c)) : a(b).insertAfter(e.$slides.eq(c)) : d === !0 ? a(b).prependTo(e.$slideTrack) : a(b).appendTo(e.$slideTrack), e.$slides = e.$slideTrack.children(this.options.slide), e.$slideTrack.children(this.options.slide).detach(), e.$slideTrack.append(e.$slides), e.$slides.each(function(b, c) {
              a(c).attr("index", b)
          }), e.$slidesCache = e.$slides, e.reinit()
      }, b.prototype.animateSlide = function(b, c) {
          var d = {},
              e = this;
          if (1 === e.options.slidesToShow && e.options.adaptiveHeight === !0 && e.options.vertical === !1) {
              var f = e.$slides.eq(e.currentSlide).outerHeight(!0);
              e.$list.animate({
                  height: f
              }, e.options.speed)
          }
          e.options.rtl === !0 && e.options.vertical === !1 && (b = -b), e.transformsEnabled === !1 ? e.options.vertical === !1 ? e.$slideTrack.animate({
              left: b
          }, e.options.speed, e.options.easing, c) : e.$slideTrack.animate({
              top: b
          }, e.options.speed, e.options.easing, c) : e.cssTransitions === !1 ? a({
              animStart: e.currentLeft
          }).animate({
              animStart: b
          }, {
              duration: e.options.speed,
              easing: e.options.easing,
              step: function(a) {
                  e.options.vertical === !1 ? (d[e.animType] = "translate(" + a + "px, 0px)", e.$slideTrack.css(d)) : (d[e.animType] = "translate(0px," + a + "px)", e.$slideTrack.css(d))
              },
              complete: function() {
                  c && c.call()
              }
          }) : (e.applyTransition(), d[e.animType] = e.options.vertical === !1 ? "translate3d(" + b + "px, 0px, 0px)" : "translate3d(0px," + b + "px, 0px)", e.$slideTrack.css(d), c && setTimeout(function() {
              e.disableTransition(), c.call()
          }, e.options.speed))
      }, b.prototype.asNavFor = function(b) {
          var c = this,
              d = null != c.options.asNavFor ? a(c.options.asNavFor).getSlick() : null;
          null != d && d.slideHandler(b, !0)
      }, b.prototype.applyTransition = function(a) {
          var b = this,
              c = {};
          c[b.transitionType] = b.options.fade === !1 ? b.transformType + " " + b.options.speed + "ms " + b.options.cssEase : "opacity " + b.options.speed + "ms " + b.options.cssEase, b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c)
      }, b.prototype.autoPlay = function() {
          var a = this;
          a.autoPlayTimer && clearInterval(a.autoPlayTimer), a.slideCount > a.options.slidesToShow && a.paused !== !0 && (a.autoPlayTimer = setInterval(a.autoPlayIterator, a.options.autoplaySpeed))
      }, b.prototype.autoPlayClear = function() {
          var a = this;
          a.autoPlayTimer && clearInterval(a.autoPlayTimer)
      }, b.prototype.autoPlayIterator = function() {
          var a = this;
          a.options.infinite === !1 ? 1 === a.direction ? (a.currentSlide + 1 === a.slideCount - 1 && (a.direction = 0), a.slideHandler(a.currentSlide + a.options.slidesToScroll)) : (0 === a.currentSlide - 1 && (a.direction = 1), a.slideHandler(a.currentSlide - a.options.slidesToScroll)) : a.slideHandler(a.currentSlide + a.options.slidesToScroll)
      }, b.prototype.buildArrows = function() {
          var b = this;
          b.options.arrows === !0 && b.slideCount > b.options.slidesToShow && (b.$prevArrow = a(b.options.prevArrow), b.$nextArrow = a(b.options.nextArrow), b.htmlExpr.test(b.options.prevArrow) && b.$prevArrow.appendTo(b.options.appendArrows), b.htmlExpr.test(b.options.nextArrow) && b.$nextArrow.appendTo(b.options.appendArrows), b.options.infinite !== !0 && b.$prevArrow.addClass("slick-disabled"))
      }, b.prototype.buildDots = function() {
          var c, d, b = this;
          if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) {
              for (d = '<ul class="' + b.options.dotsClass + '">', c = 0; c <= b.getDotCount(); c += 1) d += "<li>" + b.options.customPaging.call(this, b, c) + "</li>";
              d += "</ul>", b.$dots = a(d).appendTo(b.options.appendDots), b.$dots.find("li").first().addClass("slick-active")
          }
      }, b.prototype.buildOut = function() {
          var b = this;
          b.$slides = b.$slider.children(b.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), b.slideCount = b.$slides.length, b.$slides.each(function(b, c) {
              a(c).attr("index", b)
          }), b.$slidesCache = b.$slides, b.$slider.addClass("slick-slider"), b.$slideTrack = 0 === b.slideCount ? a('<div class="slick-track"/>').appendTo(b.$slider) : b.$slides.wrapAll('<div class="slick-track"/>').parent(), b.$list = b.$slideTrack.wrap('<div class="slick-list"/>').parent(), b.$slideTrack.css("opacity", 0), b.options.centerMode === !0 && (b.options.slidesToScroll = 1), a("img[data-lazy]", b.$slider).not("[src]").addClass("slick-loading"), b.setupInfinite(), b.buildArrows(), b.buildDots(), b.updateDots(), b.options.accessibility === !0 && b.$list.prop("tabIndex", 0), b.setSlideClasses("number" == typeof this.currentSlide ? this.currentSlide : 0), b.options.draggable === !0 && b.$list.addClass("draggable")
      }, b.prototype.checkResponsive = function() {
          var c, d, e, b = this,
              f = b.$slider.width(),
              g = window.innerWidth || a(window).width();
          if ("window" === b.respondTo ? e = g : "slider" === b.respondTo ? e = f : "min" === b.respondTo && (e = Math.min(g, f)), b.originalSettings.responsive && b.originalSettings.responsive.length > -1 && null !== b.originalSettings.responsive) {
              d = null;
              for (c in b.breakpoints) b.breakpoints.hasOwnProperty(c) && e < b.breakpoints[c] && (d = b.breakpoints[c]);
              null !== d ? null !== b.activeBreakpoint ? d !== b.activeBreakpoint && (b.activeBreakpoint = d, b.options = a.extend({}, b.originalSettings, b.breakpointSettings[d]), b.refresh()) : (b.activeBreakpoint = d, b.options = a.extend({}, b.originalSettings, b.breakpointSettings[d]), b.refresh()) : null !== b.activeBreakpoint && (b.activeBreakpoint = null, b.options = b.originalSettings, b.refresh())
          }
      }, b.prototype.changeSlide = function(b, c) {
          var f, g, h, i, j, d = this,
              e = a(b.target);
          switch (e.is("a") && b.preventDefault(), h = 0 !== d.slideCount % d.options.slidesToScroll, f = h ? 0 : (d.slideCount - d.currentSlide) % d.options.slidesToScroll, b.data.message) {
              case "previous":
                  g = 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f, d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide - g, !1, c);
                  break;
              case "next":
                  g = 0 === f ? d.options.slidesToScroll : f, d.slideCount > d.options.slidesToShow && d.slideHandler(d.currentSlide + g, !1, c);
                  break;
              case "index":
                  var k = 0 === b.data.index ? 0 : b.data.index || a(b.target).parent().index() * d.options.slidesToScroll;
                  if (i = d.getNavigableIndexes(), j = 0, i[k] && i[k] === k)
                      if (k > i[i.length - 1]) k = i[i.length - 1];
                      else
                          for (var l in i) {
                              if (k < i[l]) {
                                  k = j;
                                  break
                              }
                              j = i[l]
                          }
                      d.slideHandler(k, !1, c);
              default:
                  return
          }
      }, b.prototype.clickHandler = function(a) {
          var b = this;
          b.shouldClick === !1 && (a.stopImmediatePropagation(), a.stopPropagation(), a.preventDefault())
      }, b.prototype.destroy = function() {
          var b = this;
          b.autoPlayClear(), b.touchObject = {}, a(".slick-cloned", b.$slider).remove(), b.$dots && b.$dots.remove(), b.$prevArrow && "object" != typeof b.options.prevArrow && b.$prevArrow.remove(), b.$nextArrow && "object" != typeof b.options.nextArrow && b.$nextArrow.remove(), b.$slides.parent().hasClass("slick-track") && b.$slides.unwrap().unwrap(), b.$slides.removeClass("slick-slide slick-active slick-center slick-visible").removeAttr("index").css({
              position: "",
              left: "",
              top: "",
              zIndex: "",
              opacity: "",
              width: ""
          }), b.$slider.removeClass("slick-slider"), b.$slider.removeClass("slick-initialized"), b.$list.off(".slick"), a(window).off(".slick-" + b.instanceUid), a(document).off(".slick-" + b.instanceUid)
      }, b.prototype.disableTransition = function(a) {
          var b = this,
              c = {};
          c[b.transitionType] = "", b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c)
      }, b.prototype.fadeSlide = function(a, b, c) {
          var d = this;
          d.cssTransitions === !1 ? (d.$slides.eq(b).css({
              zIndex: 1e3
          }), d.$slides.eq(b).animate({
              opacity: 1
          }, d.options.speed, d.options.easing, c), d.$slides.eq(a).animate({
              opacity: 0
          }, d.options.speed, d.options.easing)) : (d.applyTransition(b), d.applyTransition(a), d.$slides.eq(b).css({
              opacity: 1,
              zIndex: 1e3
          }), d.$slides.eq(a).css({
              opacity: 0
          }), c && setTimeout(function() {
              d.disableTransition(b), d.disableTransition(a), c.call()
          }, d.options.speed))
      }, b.prototype.filterSlides = function(a) {
          var b = this;
          null !== a && (b.unload(), b.$slideTrack.children(this.options.slide).detach(), b.$slidesCache.filter(a).appendTo(b.$slideTrack), b.reinit())
      }, b.prototype.getCurrent = function() {
          var a = this;
          return a.currentSlide
      }, b.prototype.getDotCount = function() {
          var a = this,
              b = 0,
              c = 0,
              d = 0;
          if (a.options.infinite === !0) d = Math.ceil(a.slideCount / a.options.slidesToScroll);
          else
              for (; b < a.slideCount;) ++d, b = c + a.options.slidesToShow, c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
          return d - 1
      }, b.prototype.getLeft = function(a) {
          var c, d, g, b = this,
              e = 0;
          return b.slideOffset = 0, d = b.$slides.first().outerHeight(), b.options.infinite === !0 ? (b.slideCount > b.options.slidesToShow && (b.slideOffset = -1 * b.slideWidth * b.options.slidesToShow, e = -1 * d * b.options.slidesToShow), 0 !== b.slideCount % b.options.slidesToScroll && a + b.options.slidesToScroll > b.slideCount && b.slideCount > b.options.slidesToShow && (a > b.slideCount ? (b.slideOffset = -1 * (b.options.slidesToShow - (a - b.slideCount)) * b.slideWidth, e = -1 * (b.options.slidesToShow - (a - b.slideCount)) * d) : (b.slideOffset = -1 * b.slideCount % b.options.slidesToScroll * b.slideWidth, e = -1 * b.slideCount % b.options.slidesToScroll * d))) : a + b.options.slidesToShow > b.slideCount && (b.slideOffset = (a + b.options.slidesToShow - b.slideCount) * b.slideWidth, e = (a + b.options.slidesToShow - b.slideCount) * d), b.slideCount <= b.options.slidesToShow && (b.slideOffset = 0, e = 0), b.options.centerMode === !0 && b.options.infinite === !0 ? b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2) - b.slideWidth : b.options.centerMode === !0 && (b.slideOffset = 0, b.slideOffset += b.slideWidth * Math.floor(b.options.slidesToShow / 2)), c = b.options.vertical === !1 ? -1 * a * b.slideWidth + b.slideOffset : -1 * a * d + e, b.options.variableWidth === !0 && (g = b.slideCount <= b.options.slidesToShow || b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack.children(".slick-slide").eq(a + b.options.slidesToShow), c = g[0] ? -1 * g[0].offsetLeft : 0, b.options.centerMode === !0 && (g = b.options.infinite === !1 ? b.$slideTrack.children(".slick-slide").eq(a) : b.$slideTrack.children(".slick-slide").eq(a + b.options.slidesToShow + 1), c = g[0] ? -1 * g[0].offsetLeft : 0, c += (b.$list.width() - g.outerWidth()) / 2)), c
      }, b.prototype.getNavigableIndexes = function() {
          for (var a = this, b = 0, c = 0, d = []; b < a.slideCount;) d.push(b), b = c + a.options.slidesToScroll, c += a.options.slidesToScroll <= a.options.slidesToShow ? a.options.slidesToScroll : a.options.slidesToShow;
          return d
      }, b.prototype.getSlideCount = function() {
          var c, b = this;
          if (b.options.swipeToSlide === !0) {
              var d = null;
              return b.$slideTrack.find(".slick-slide").each(function(c, e) {
                  return e.offsetLeft + a(e).outerWidth() / 2 > -1 * b.swipeLeft ? (d = e, !1) : void 0
              }), c = Math.abs(a(d).attr("index") - b.currentSlide)
          }
          return b.options.slidesToScroll
      }, b.prototype.init = function() {
          var b = this;
          a(b.$slider).hasClass("slick-initialized") || (a(b.$slider).addClass("slick-initialized"), b.buildOut(), b.setProps(), b.startLoad(), b.loadSlider(), b.initializeEvents(), b.updateArrows(), b.updateDots()), null !== b.options.onInit && b.options.onInit.call(this, b)
      }, b.prototype.initArrowEvents = function() {
          var a = this;
          a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.on("click.slick", {
              message: "previous"
          }, a.changeSlide), a.$nextArrow.on("click.slick", {
              message: "next"
          }, a.changeSlide))
      }, b.prototype.initDotEvents = function() {
          var b = this;
          b.options.dots === !0 && b.slideCount > b.options.slidesToShow && a("li", b.$dots).on("click.slick", {
              message: "index"
          }, b.changeSlide), b.options.dots === !0 && b.options.pauseOnDotsHover === !0 && b.options.autoplay === !0 && a("li", b.$dots).on("mouseenter.slick", function() {
              b.paused = !0, b.autoPlayClear()
          }).on("mouseleave.slick", function() {
              b.paused = !1, b.autoPlay()
          })
      }, b.prototype.initializeEvents = function() {
          var b = this;
          b.initArrowEvents(), b.initDotEvents(), b.$list.on("touchstart.slick mousedown.slick", {
              action: "start"
          }, b.swipeHandler), b.$list.on("touchmove.slick mousemove.slick", {
              action: "move"
          }, b.swipeHandler), b.$list.on("touchend.slick mouseup.slick", {
              action: "end"
          }, b.swipeHandler), b.$list.on("touchcancel.slick mouseleave.slick", {
              action: "end"
          }, b.swipeHandler), b.$list.on("click.slick", b.clickHandler), b.options.pauseOnHover === !0 && b.options.autoplay === !0 && (b.$list.on("mouseenter.slick", function() {
              b.paused = !0, b.autoPlayClear()
          }), b.$list.on("mouseleave.slick", function() {
              b.paused = !1, b.autoPlay()
          })), b.options.accessibility === !0 && b.$list.on("keydown.slick", b.keyHandler), b.options.focusOnSelect === !0 && a(b.options.slide, b.$slideTrack).on("click.slick", b.selectHandler), a(window).on("orientationchange.slick.slick-" + b.instanceUid, function() {
              b.checkResponsive(), b.setPosition()
          }), a(window).on("resize.slick.slick-" + b.instanceUid, function() {
              a(window).width() !== b.windowWidth && (clearTimeout(b.windowDelay), b.windowDelay = window.setTimeout(function() {
                  b.windowWidth = a(window).width(), b.checkResponsive(), b.setPosition()
              }, 50))
          }), a("*[draggable!=true]", b.$slideTrack).on("dragstart", function(a) {
              a.preventDefault()
          }), a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition), a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition)
      }, b.prototype.initUI = function() {
          var a = this;
          a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.show(), a.$nextArrow.show()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.show(), a.options.autoplay === !0 && a.autoPlay()
      }, b.prototype.keyHandler = function(a) {
          var b = this;
          37 === a.keyCode && b.options.accessibility === !0 ? b.changeSlide({
              data: {
                  message: "previous"
              }
          }) : 39 === a.keyCode && b.options.accessibility === !0 && b.changeSlide({
              data: {
                  message: "next"
              }
          })
      }, b.prototype.lazyLoad = function() {
          function g(b) {
              a("img[data-lazy]", b).each(function() {
                  var b = a(this),
                      c = a(this).attr("data-lazy");
                  b.load(function() {
                      b.animate({
                          opacity: 1
                      }, 200)
                  }).css({
                      opacity: 0
                  }).attr("src", c).removeAttr("data-lazy").removeClass("slick-loading")
              })
          }
          var c, d, e, f, b = this;
          b.options.centerMode === !0 ? b.options.infinite === !0 ? (e = b.currentSlide + (b.options.slidesToShow / 2 + 1), f = e + b.options.slidesToShow + 2) : (e = Math.max(0, b.currentSlide - (b.options.slidesToShow / 2 + 1)), f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide) : (e = b.options.infinite ? b.options.slidesToShow + b.currentSlide : b.currentSlide, f = e + b.options.slidesToShow, b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)), c = b.$slider.find(".slick-slide").slice(e, f), g(c), b.slideCount <= b.options.slidesToShow ? (d = b.$slider.find(".slick-slide"), g(d)) : b.currentSlide >= b.slideCount - b.options.slidesToShow ? (d = b.$slider.find(".slick-cloned").slice(0, b.options.slidesToShow), g(d)) : 0 === b.currentSlide && (d = b.$slider.find(".slick-cloned").slice(-1 * b.options.slidesToShow), g(d))
      }, b.prototype.loadSlider = function() {
          var a = this;
          a.setPosition(), a.$slideTrack.css({
              opacity: 1
          }), a.$slider.removeClass("slick-loading"), a.initUI(), "progressive" === a.options.lazyLoad && a.progressiveLazyLoad()
      }, b.prototype.postSlide = function(a) {
          var b = this;
          null !== b.options.onAfterChange && b.options.onAfterChange.call(this, b, a), b.animating = !1, b.setPosition(), b.swipeLeft = null, b.options.autoplay === !0 && b.paused === !1 && b.autoPlay()
      }, b.prototype.progressiveLazyLoad = function() {
          var c, d, b = this;
          c = a("img[data-lazy]", b.$slider).length, c > 0 && (d = a("img[data-lazy]", b.$slider).first(), d.attr("src", d.attr("data-lazy")).removeClass("slick-loading").load(function() {
              d.removeAttr("data-lazy"), b.progressiveLazyLoad()
          }).error(function() {
              d.removeAttr("data-lazy"), b.progressiveLazyLoad()
          }))
      }, b.prototype.refresh = function() {
          var b = this,
              c = b.currentSlide;
          b.destroy(), a.extend(b, b.initials), b.init(), b.changeSlide({
              data: {
                  message: "index",
                  index: c
              }
          }, !0)
      }, b.prototype.reinit = function() {
          var b = this;
          b.$slides = b.$slideTrack.children(b.options.slide).addClass("slick-slide"), b.slideCount = b.$slides.length, b.currentSlide >= b.slideCount && 0 !== b.currentSlide && (b.currentSlide = b.currentSlide - b.options.slidesToScroll), b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0), b.setProps(), b.setupInfinite(), b.buildArrows(), b.updateArrows(), b.initArrowEvents(), b.buildDots(), b.updateDots(), b.initDotEvents(), b.options.focusOnSelect === !0 && a(b.options.slide, b.$slideTrack).on("click.slick", b.selectHandler), b.setSlideClasses(0), b.setPosition(), null !== b.options.onReInit && b.options.onReInit.call(this, b)
      }, b.prototype.removeSlide = function(a, b, c) {
          var d = this;
          return "boolean" == typeof a ? (b = a, a = b === !0 ? 0 : d.slideCount - 1) : a = b === !0 ? --a : a, d.slideCount < 1 || 0 > a || a > d.slideCount - 1 ? !1 : (d.unload(), c === !0 ? d.$slideTrack.children().remove() : d.$slideTrack.children(this.options.slide).eq(a).remove(), d.$slides = d.$slideTrack.children(this.options.slide), d.$slideTrack.children(this.options.slide).detach(), d.$slideTrack.append(d.$slides), d.$slidesCache = d.$slides, d.reinit(), void 0)
      }, b.prototype.setCSS = function(a) {
          var d, e, b = this,
              c = {};
          b.options.rtl === !0 && (a = -a), d = "left" == b.positionProp ? a + "px" : "0px", e = "top" == b.positionProp ? a + "px" : "0px", c[b.positionProp] = a, b.transformsEnabled === !1 ? b.$slideTrack.css(c) : (c = {}, b.cssTransitions === !1 ? (c[b.animType] = "translate(" + d + ", " + e + ")", b.$slideTrack.css(c)) : (c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)", b.$slideTrack.css(c)))
      }, b.prototype.setDimensions = function() {
          var b = this;
          if (b.options.vertical === !1 ? b.options.centerMode === !0 && b.$list.css({
                  padding: "0px " + b.options.centerPadding
              }) : (b.$list.height(b.$slides.first().outerHeight(!0) * b.options.slidesToShow), b.options.centerMode === !0 && b.$list.css({
                  padding: b.options.centerPadding + " 0px"
              })), b.listWidth = b.$list.width(), b.listHeight = b.$list.height(), b.options.vertical === !1 && b.options.variableWidth === !1) b.slideWidth = Math.ceil(b.listWidth / b.options.slidesToShow), b.$slideTrack.width(Math.ceil(b.slideWidth * b.$slideTrack.children(".slick-slide").length));
          else if (b.options.variableWidth === !0) {
              var c = 0;
              b.slideWidth = Math.ceil(b.listWidth / b.options.slidesToShow), b.$slideTrack.children(".slick-slide").each(function() {
                  c += Math.ceil(a(this).outerWidth(!0))
              }), b.$slideTrack.width(Math.ceil(c) + 1)
          } else b.slideWidth = Math.ceil(b.listWidth), b.$slideTrack.height(Math.ceil(b.$slides.first().outerHeight(!0) * b.$slideTrack.children(".slick-slide").length));
          var d = b.$slides.first().outerWidth(!0) - b.$slides.first().width();
          b.options.variableWidth === !1 && b.$slideTrack.children(".slick-slide").width(b.slideWidth - d)
      }, b.prototype.setFade = function() {
          var c, b = this;
          b.$slides.each(function(d, e) {
              c = -1 * b.slideWidth * d, b.options.rtl === !0 ? a(e).css({
                  position: "relative",
                  right: c,
                  top: 0,
                  zIndex: 800,
                  opacity: 0
              }) : a(e).css({
                  position: "relative",
                  left: c,
                  top: 0,
                  zIndex: 800,
                  opacity: 0
              })
          }), b.$slides.eq(b.currentSlide).css({
              zIndex: 900,
              opacity: 1
          })
      }, b.prototype.setHeight = function() {
          var a = this;
          if (1 === a.options.slidesToShow && a.options.adaptiveHeight === !0 && a.options.vertical === !1) {
              var b = a.$slides.eq(a.currentSlide).outerHeight(!0);
              a.$list.css("height", b)
          }
      }, b.prototype.setPosition = function() {
          var a = this;
          a.setDimensions(), a.setHeight(), a.options.fade === !1 ? a.setCSS(a.getLeft(a.currentSlide)) : a.setFade(), null !== a.options.onSetPosition && a.options.onSetPosition.call(this, a)
      }, b.prototype.setProps = function() {
          var a = this,
              b = document.body.style;
          a.positionProp = a.options.vertical === !0 ? "top" : "left", "top" === a.positionProp ? a.$slider.addClass("slick-vertical") : a.$slider.removeClass("slick-vertical"), (void 0 !== b.WebkitTransition || void 0 !== b.MozTransition || void 0 !== b.msTransition) && a.options.useCSS === !0 && (a.cssTransitions = !0), void 0 !== b.OTransform && (a.animType = "OTransform", a.transformType = "-o-transform", a.transitionType = "OTransition", void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.MozTransform && (a.animType = "MozTransform", a.transformType = "-moz-transform", a.transitionType = "MozTransition", void 0 === b.perspectiveProperty && void 0 === b.MozPerspective && (a.animType = !1)), void 0 !== b.webkitTransform && (a.animType = "webkitTransform", a.transformType = "-webkit-transform", a.transitionType = "webkitTransition", void 0 === b.perspectiveProperty && void 0 === b.webkitPerspective && (a.animType = !1)), void 0 !== b.msTransform && (a.animType = "msTransform", a.transformType = "-ms-transform", a.transitionType = "msTransition", void 0 === b.msTransform && (a.animType = !1)), void 0 !== b.transform && a.animType !== !1 && (a.animType = "transform", a.transformType = "transform", a.transitionType = "transition"), a.transformsEnabled = null !== a.animType && a.animType !== !1
      }, b.prototype.setSlideClasses = function(a) {
          var c, d, e, f, b = this;
          b.$slider.find(".slick-slide").removeClass("slick-active").removeClass("slick-center"), d = b.$slider.find(".slick-slide"), b.options.centerMode === !0 ? (c = Math.floor(b.options.slidesToShow / 2), b.options.infinite === !0 && (a >= c && a <= b.slideCount - 1 - c ? b.$slides.slice(a - c, a + c + 1).addClass("slick-active") : (e = b.options.slidesToShow + a, d.slice(e - c + 1, e + c + 2).addClass("slick-active")), 0 === a ? d.eq(d.length - 1 - b.options.slidesToShow).addClass("slick-center") : a === b.slideCount - 1 && d.eq(b.options.slidesToShow).addClass("slick-center")), b.$slides.eq(a).addClass("slick-center")) : a >= 0 && a <= b.slideCount - b.options.slidesToShow ? b.$slides.slice(a, a + b.options.slidesToShow).addClass("slick-active") : d.length <= b.options.slidesToShow ? d.addClass("slick-active") : (f = b.slideCount % b.options.slidesToShow, e = b.options.infinite === !0 ? b.options.slidesToShow + a : a, b.options.slidesToShow == b.options.slidesToScroll && b.slideCount - a < b.options.slidesToShow ? d.slice(e - (b.options.slidesToShow - f), e + f).addClass("slick-active") : d.slice(e, e + b.options.slidesToShow).addClass("slick-active")), "ondemand" === b.options.lazyLoad && b.lazyLoad()
      }, b.prototype.setupInfinite = function() {
          var c, d, e, b = this;
          if (b.options.fade === !0 && (b.options.centerMode = !1), b.options.infinite === !0 && b.options.fade === !1 && (d = null, b.slideCount > b.options.slidesToShow)) {
              for (e = b.options.centerMode === !0 ? b.options.slidesToShow + 1 : b.options.slidesToShow, c = b.slideCount; c > b.slideCount - e; c -= 1) d = c - 1, a(b.$slides[d]).clone(!0).attr("id", "").attr("index", d - b.slideCount).prependTo(b.$slideTrack).addClass("slick-cloned");
              for (c = 0; e > c; c += 1) d = c, a(b.$slides[d]).clone(!0).attr("id", "").attr("index", d + b.slideCount).appendTo(b.$slideTrack).addClass("slick-cloned");
              b.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
                  a(this).attr("id", "")
              })
          }
      }, b.prototype.selectHandler = function(b) {
          var c = this,
              d = parseInt(a(b.target).parents(".slick-slide").attr("index"));
          return d || (d = 0), c.slideCount <= c.options.slidesToShow ? (c.$slider.find(".slick-slide").removeClass("slick-active"), c.$slides.eq(d).addClass("slick-active"), c.options.centerMode === !0 && (c.$slider.find(".slick-slide").removeClass("slick-center"), c.$slides.eq(d).addClass("slick-center")), c.asNavFor(d), void 0) : (c.slideHandler(d), void 0)
      }, b.prototype.slideHandler = function(a, b, c) {
          var d, e, f, g, i = null,
              j = this;
          return b = b || !1, j.animating === !0 && j.options.waitForAnimate === !0 || j.options.fade === !0 && j.currentSlide === a || j.slideCount <= j.options.slidesToShow ? void 0 : (b === !1 && j.asNavFor(a), d = a, i = j.getLeft(d), g = j.getLeft(j.currentSlide), j.currentLeft = null === j.swipeLeft ? g : j.swipeLeft, j.options.infinite === !1 && j.options.centerMode === !1 && (0 > a || a > j.getDotCount() * j.options.slidesToScroll) ? (j.options.fade === !1 && (d = j.currentSlide, c !== !0 ? j.animateSlide(g, function() {
              j.postSlide(d)
          }) : j.postSlide(d)), void 0) : j.options.infinite === !1 && j.options.centerMode === !0 && (0 > a || a > j.slideCount - j.options.slidesToScroll) ? (j.options.fade === !1 && (d = j.currentSlide, c !== !0 ? j.animateSlide(g, function() {
              j.postSlide(d)
          }) : j.postSlide(d)), void 0) : (j.options.autoplay === !0 && clearInterval(j.autoPlayTimer), e = 0 > d ? 0 !== j.slideCount % j.options.slidesToScroll ? j.slideCount - j.slideCount % j.options.slidesToScroll : j.slideCount + d : d >= j.slideCount ? 0 !== j.slideCount % j.options.slidesToScroll ? 0 : d - j.slideCount : d, j.animating = !0, null !== j.options.onBeforeChange && a !== j.currentSlide && j.options.onBeforeChange.call(this, j, j.currentSlide, e), f = j.currentSlide, j.currentSlide = e, j.setSlideClasses(j.currentSlide), j.updateDots(), j.updateArrows(), j.options.fade === !0 ? (c !== !0 ? j.fadeSlide(f, e, function() {
              j.postSlide(e)
          }) : j.postSlide(e), void 0) : (c !== !0 ? j.animateSlide(i, function() {
              j.postSlide(e)
          }) : j.postSlide(e), void 0)))
      }, b.prototype.startLoad = function() {
          var a = this;
          a.options.arrows === !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.hide(), a.$nextArrow.hide()), a.options.dots === !0 && a.slideCount > a.options.slidesToShow && a.$dots.hide(), a.$slider.addClass("slick-loading")
      }, b.prototype.swipeDirection = function() {
          var a, b, c, d, e = this;
          return a = e.touchObject.startX - e.touchObject.curX, b = e.touchObject.startY - e.touchObject.curY, c = Math.atan2(b, a), d = Math.round(180 * c / Math.PI), 0 > d && (d = 360 - Math.abs(d)), 45 >= d && d >= 0 ? e.options.rtl === !1 ? "left" : "right" : 360 >= d && d >= 315 ? e.options.rtl === !1 ? "left" : "right" : d >= 135 && 225 >= d ? e.options.rtl === !1 ? "right" : "left" : "vertical"
      }, b.prototype.swipeEnd = function() {
          var b = this;
          if (b.dragging = !1, b.shouldClick = b.touchObject.swipeLength > 10 ? !1 : !0, void 0 === b.touchObject.curX) return !1;
          if (b.touchObject.swipeLength >= b.touchObject.minSwipe) switch (b.swipeDirection()) {
              case "left":
                  b.slideHandler(b.currentSlide + b.getSlideCount()), b.currentDirection = 0, b.touchObject = {};
                  break;
              case "right":
                  b.slideHandler(b.currentSlide - b.getSlideCount()), b.currentDirection = 1, b.touchObject = {}
          } else b.touchObject.startX !== b.touchObject.curX && (b.slideHandler(b.currentSlide), b.touchObject = {})
      }, b.prototype.swipeHandler = function(a) {
          var b = this;
          if (!(b.options.swipe === !1 || "ontouchend" in document && b.options.swipe === !1 || b.options.draggable === !1 && -1 !== a.type.indexOf("mouse"))) switch (b.touchObject.fingerCount = a.originalEvent && void 0 !== a.originalEvent.touches ? a.originalEvent.touches.length : 1, b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold, a.data.action) {
              case "start":
                  b.swipeStart(a);
                  break;
              case "move":
                  b.swipeMove(a);
                  break;
              case "end":
                  b.swipeEnd(a)
          }
      }, b.prototype.swipeMove = function(a) {
          var c, d, e, f, b = this;
          return f = void 0 !== a.originalEvent ? a.originalEvent.touches : null, !b.dragging || f && 1 !== f.length ? !1 : (c = b.getLeft(b.currentSlide), b.touchObject.curX = void 0 !== f ? f[0].pageX : a.clientX, b.touchObject.curY = void 0 !== f ? f[0].pageY : a.clientY, b.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2))), d = b.swipeDirection(), "vertical" !== d ? (void 0 !== a.originalEvent && b.touchObject.swipeLength > 4 && a.preventDefault(), e = (b.options.rtl === !1 ? 1 : -1) * (b.touchObject.curX > b.touchObject.startX ? 1 : -1), b.swipeLeft = b.options.vertical === !1 ? c + b.touchObject.swipeLength * e : c + b.touchObject.swipeLength * (b.$list.height() / b.listWidth) * e, b.options.fade === !0 || b.options.touchMove === !1 ? !1 : b.animating === !0 ? (b.swipeLeft = null, !1) : (b.setCSS(b.swipeLeft), void 0)) : void 0)
      }, b.prototype.swipeStart = function(a) {
          var c, b = this;
          return 1 !== b.touchObject.fingerCount || b.slideCount <= b.options.slidesToShow ? (b.touchObject = {}, !1) : (void 0 !== a.originalEvent && void 0 !== a.originalEvent.touches && (c = a.originalEvent.touches[0]), b.touchObject.startX = b.touchObject.curX = void 0 !== c ? c.pageX : a.clientX, b.touchObject.startY = b.touchObject.curY = void 0 !== c ? c.pageY : a.clientY, b.dragging = !0, void 0)
      }, b.prototype.unfilterSlides = function() {
          var a = this;
          null !== a.$slidesCache && (a.unload(), a.$slideTrack.children(this.options.slide).detach(), a.$slidesCache.appendTo(a.$slideTrack), a.reinit())
      }, b.prototype.unload = function() {
          var b = this;
          a(".slick-cloned", b.$slider).remove(), b.$dots && b.$dots.remove(), b.$prevArrow && "object" != typeof b.options.prevArrow && b.$prevArrow.remove(), b.$nextArrow && "object" != typeof b.options.nextArrow && b.$nextArrow.remove(), b.$slides.removeClass("slick-slide slick-active slick-visible").css("width", "")
      }, b.prototype.updateArrows = function() {
          var b, a = this;
          b = Math.floor(a.options.slidesToShow / 2), a.options.arrows === !0 && a.options.infinite !== !0 && a.slideCount > a.options.slidesToShow && (a.$prevArrow.removeClass("slick-disabled"), a.$nextArrow.removeClass("slick-disabled"), 0 === a.currentSlide ? (a.$prevArrow.addClass("slick-disabled"), a.$nextArrow.removeClass("slick-disabled")) : a.currentSlide >= a.slideCount - a.options.slidesToShow && a.options.centerMode === !1 ? (a.$nextArrow.addClass("slick-disabled"), a.$prevArrow.removeClass("slick-disabled")) : a.currentSlide > a.slideCount - a.options.slidesToShow + b && a.options.centerMode === !0 && (a.$nextArrow.addClass("slick-disabled"), a.$prevArrow.removeClass("slick-disabled")))
      }, b.prototype.updateDots = function() {
          var a = this;
          null !== a.$dots && (a.$dots.find("li").removeClass("slick-active"), a.$dots.find("li").eq(Math.floor(a.currentSlide / a.options.slidesToScroll)).addClass("slick-active"))
      }, a.fn.slick = function(a) {
          var c = this;
          return c.each(function(c, d) {
              d.slick = new b(d, a)
          })
      }, a.fn.slickAdd = function(a, b, c) {
          var d = this;
          return d.each(function(d, e) {
              e.slick.addSlide(a, b, c)
          })
      }, a.fn.slickCurrentSlide = function() {
          var a = this;
          return a.get(0).slick.getCurrent()
      }, a.fn.slickFilter = function(a) {
          var b = this;
          return b.each(function(b, c) {
              c.slick.filterSlides(a)
          })
      }, a.fn.slickGoTo = function(a, b) {
          var c = this;
          return c.each(function(c, d) {
              d.slick.changeSlide({
                  data: {
                      message: "index",
                      index: parseInt(a)
                  }
              }, b)
          })
      }, a.fn.slickNext = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.changeSlide({
                  data: {
                      message: "next"
                  }
              })
          })
      }, a.fn.slickPause = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.autoPlayClear(), b.slick.paused = !0
          })
      }, a.fn.slickPlay = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.paused = !1, b.slick.autoPlay()
          })
      }, a.fn.slickPrev = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.changeSlide({
                  data: {
                      message: "previous"
                  }
              })
          })
      }, a.fn.slickRemove = function(a, b) {
          var c = this;
          return c.each(function(c, d) {
              d.slick.removeSlide(a, b)
          })
      }, a.fn.slickRemoveAll = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.removeSlide(null, null, !0)
          })
      }, a.fn.slickGetOption = function(a) {
          var b = this;
          return b.get(0).slick.options[a]
      }, a.fn.slickSetOption = function(a, b, c) {
          var d = this;
          return d.each(function(d, e) {
              e.slick.options[a] = b, c === !0 && (e.slick.unload(), e.slick.reinit())
          })
      }, a.fn.slickUnfilter = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick.unfilterSlides()
          })
      }, a.fn.unslick = function() {
          var a = this;
          return a.each(function(a, b) {
              b.slick && b.slick.destroy()
          })
      }, a.fn.getSlick = function() {
          var a = null,
              b = this;
          return b.each(function(b, c) {
              a = c.slick
          }), a
      }
  });;
  ! function() {
      var a, AbstractChosen, Chosen, SelectParser, b, c = {}.hasOwnProperty,
          d = function(a, b) {
              function d() {
                  this.constructor = a
              }
              for (var e in b) c.call(b, e) && (a[e] = b[e]);
              return d.prototype = b.prototype, a.prototype = new d, a.__super__ = b.prototype, a
          };
      SelectParser = function() {
          function SelectParser() {
              this.options_index = 0, this.parsed = []
          }
          return SelectParser.prototype.add_node = function(a) {
              return "OPTGROUP" === a.nodeName.toUpperCase() ? this.add_group(a) : this.add_option(a)
          }, SelectParser.prototype.add_group = function(a) {
              var b, c, d, e, f, g;
              for (b = this.parsed.length, this.parsed.push({
                      array_index: b,
                      group: !0,
                      label: this.escapeExpression(a.label),
                      children: 0,
                      disabled: a.disabled,
                      classes: a.className
                  }), f = a.childNodes, g = [], d = 0, e = f.length; e > d; d++) c = f[d], g.push(this.add_option(c, b, a.disabled));
              return g
          }, SelectParser.prototype.add_option = function(a, b, c) {
              return "OPTION" === a.nodeName.toUpperCase() ? ("" !== a.text ? (null != b && (this.parsed[b].children += 1), this.parsed.push({
                  array_index: this.parsed.length,
                  options_index: this.options_index,
                  value: a.value,
                  text: a.text,
                  html: a.innerHTML,
                  selected: a.selected,
                  disabled: c === !0 ? c : a.disabled,
                  group_array_index: b,
                  classes: a.className,
                  style: a.style.cssText
              })) : this.parsed.push({
                  array_index: this.parsed.length,
                  options_index: this.options_index,
                  empty: !0
              }), this.options_index += 1) : void 0
          }, SelectParser.prototype.escapeExpression = function(a) {
              var b, c;
              return null == a || a === !1 ? "" : /[\&\<\>\"\'\`]/.test(a) ? (b = {
                  "<": "&lt;",
                  ">": "&gt;",
                  '"': "&quot;",
                  "'": "&#x27;",
                  "`": "&#x60;"
              }, c = /&(?!\w+;)|[\<\>\"\'\`]/g, a.replace(c, function(a) {
                  return b[a] || "&amp;"
              })) : a
          }, SelectParser
      }(), SelectParser.select_to_array = function(a) {
          var b, c, d, e, f;
          for (c = new SelectParser, f = a.childNodes, d = 0, e = f.length; e > d; d++) b = f[d], c.add_node(b);
          return c.parsed
      }, AbstractChosen = function() {
          function AbstractChosen(a, b) {
              this.form_field = a, this.options = null != b ? b : {}, AbstractChosen.browser_is_supported() && (this.is_multiple = this.form_field.multiple, this.set_default_text(), this.set_default_values(), this.setup(), this.set_up_html(), this.register_observers(), this.on_ready())
          }
          return AbstractChosen.prototype.set_default_values = function() {
              var a = this;
              return this.click_test_action = function(b) {
                  return a.test_active_click(b)
              }, this.activate_action = function(b) {
                  return a.activate_field(b)
              }, this.active_field = !1, this.mouse_on_container = !1, this.results_showing = !1, this.result_highlighted = null, this.allow_single_deselect = null != this.options.allow_single_deselect && null != this.form_field.options[0] && "" === this.form_field.options[0].text ? this.options.allow_single_deselect : !1, this.disable_search_threshold = this.options.disable_search_threshold || 0, this.disable_search = this.options.disable_search || !1, this.enable_split_word_search = null != this.options.enable_split_word_search ? this.options.enable_split_word_search : !0, this.group_search = null != this.options.group_search ? this.options.group_search : !0, this.search_contains = this.options.search_contains || !1, this.single_backstroke_delete = null != this.options.single_backstroke_delete ? this.options.single_backstroke_delete : !0, this.max_selected_options = this.options.max_selected_options || 1 / 0, this.inherit_select_classes = this.options.inherit_select_classes || !1, this.display_selected_options = null != this.options.display_selected_options ? this.options.display_selected_options : !0, this.display_disabled_options = null != this.options.display_disabled_options ? this.options.display_disabled_options : !0
          }, AbstractChosen.prototype.set_default_text = function() {
              return this.default_text = this.form_field.getAttribute("data-placeholder") ? this.form_field.getAttribute("data-placeholder") : this.is_multiple ? this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text : this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text, this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text
          }, AbstractChosen.prototype.mouse_enter = function() {
              return this.mouse_on_container = !0
          }, AbstractChosen.prototype.mouse_leave = function() {
              return this.mouse_on_container = !1
          }, AbstractChosen.prototype.input_focus = function() {
              var a = this;
              if (this.is_multiple) {
                  if (!this.active_field) return setTimeout(function() {
                      return a.container_mousedown()
                  }, 50)
              } else if (!this.active_field) return this.activate_field()
          }, AbstractChosen.prototype.input_blur = function() {
              var a = this;
              return this.mouse_on_container ? void 0 : (this.active_field = !1, setTimeout(function() {
                  return a.blur_test()
              }, 100))
          }, AbstractChosen.prototype.results_option_build = function(a) {
              var b, c, d, e, f;
              for (b = "", f = this.results_data, d = 0, e = f.length; e > d; d++) c = f[d], b += c.group ? this.result_add_group(c) : this.result_add_option(c), (null != a ? a.first : void 0) && (c.selected && this.is_multiple ? this.choice_build(c) : c.selected && !this.is_multiple && this.single_set_selected_text(c.text));
              return b
          }, AbstractChosen.prototype.result_add_option = function(a) {
              var b, c;
              return a.search_match ? this.include_option_in_results(a) ? (b = [], a.disabled || a.selected && this.is_multiple || b.push("active-result"), !a.disabled || a.selected && this.is_multiple || b.push("disabled-result"), a.selected && b.push("result-selected"), null != a.group_array_index && b.push("group-option"), "" !== a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.style.cssText = a.style, c.setAttribute("data-option-array-index", a.array_index), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : ""
          }, AbstractChosen.prototype.result_add_group = function(a) {
              var b, c;
              return a.search_match || a.group_match ? a.active_options > 0 ? (b = [], b.push("group-result"), a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : ""
          }, AbstractChosen.prototype.results_update_field = function() {
              return this.set_default_text(), this.is_multiple || this.results_reset_cleanup(), this.result_clear_highlight(), this.results_build(), this.results_showing ? this.winnow_results() : void 0
          }, AbstractChosen.prototype.reset_single_select_options = function() {
              var a, b, c, d, e;
              for (d = this.results_data, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a.selected ? e.push(a.selected = !1) : e.push(void 0);
              return e
          }, AbstractChosen.prototype.results_toggle = function() {
              return this.results_showing ? this.results_hide() : this.results_show()
          }, AbstractChosen.prototype.results_search = function() {
              return this.results_showing ? this.winnow_results() : this.results_show()
          }, AbstractChosen.prototype.winnow_results = function() {
              var a, b, c, d, e, f, g, h, i, j, k, l;
              for (this.no_results_clear(), d = 0, f = this.get_search_text(), a = f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), i = new RegExp(a, "i"), c = this.get_search_regex(a), l = this.results_data, j = 0, k = l.length; k > j; j++) b = l[j], b.search_match = !1, e = null, this.include_option_in_results(b) && (b.group && (b.group_match = !1, b.active_options = 0), null != b.group_array_index && this.results_data[b.group_array_index] && (e = this.results_data[b.group_array_index], 0 === e.active_options && e.search_match && (d += 1), e.active_options += 1), (!b.group || this.group_search) && (b.search_text = b.group ? b.label : b.text, b.search_match = this.search_string_match(b.search_text, c), b.search_match && !b.group && (d += 1), b.search_match ? (f.length && (g = b.search_text.search(i), h = b.search_text.substr(0, g + f.length) + "</em>" + b.search_text.substr(g + f.length), b.search_text = h.substr(0, g) + "<em>" + h.substr(g)), null != e && (e.group_match = !0)) : null != b.group_array_index && this.results_data[b.group_array_index].search_match && (b.search_match = !0)));
              return this.result_clear_highlight(), 1 > d && f.length ? (this.update_results_content(""), this.no_results(f)) : (this.update_results_content(this.results_option_build()), this.winnow_results_set_highlight())
          }, AbstractChosen.prototype.get_search_regex = function(a) {
              var b;
              return b = this.search_contains ? "" : "^", new RegExp(b + a, "i")
          }, AbstractChosen.prototype.search_string_match = function(a, b) {
              var c, d, e, f;
              if (b.test(a)) return !0;
              if (this.enable_split_word_search && (a.indexOf(" ") >= 0 || 0 === a.indexOf("[")) && (d = a.replace(/\[|\]/g, "").split(" "), d.length))
                  for (e = 0, f = d.length; f > e; e++)
                      if (c = d[e], b.test(c)) return !0
          }, AbstractChosen.prototype.choices_count = function() {
              var a, b, c, d;
              if (null != this.selected_option_count) return this.selected_option_count;
              for (this.selected_option_count = 0, d = this.form_field.options, b = 0, c = d.length; c > b; b++) a = d[b], a.selected && (this.selected_option_count += 1);
              return this.selected_option_count
          }, AbstractChosen.prototype.choices_click = function(a) {
              return a.preventDefault(), this.results_showing || this.is_disabled ? void 0 : this.results_show()
          }, AbstractChosen.prototype.keyup_checker = function(a) {
              var b, c;
              switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), b) {
                  case 8:
                      if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) return this.keydown_backstroke();
                      if (!this.pending_backstroke) return this.result_clear_highlight(), this.results_search();
                      break;
                  case 13:
                      if (a.preventDefault(), this.results_showing) return this.result_select(a);
                      break;
                  case 27:
                      return this.results_showing && this.results_hide(), !0;
                  case 9:
                  case 38:
                  case 40:
                  case 16:
                  case 91:
                  case 17:
                      break;
                  default:
                      return this.results_search()
              }
          }, AbstractChosen.prototype.clipboard_event_checker = function() {
              var a = this;
              return setTimeout(function() {
                  return a.results_search()
              }, 50)
          }, AbstractChosen.prototype.container_width = function() {
              return null != this.options.width ? this.options.width : "" + this.form_field.offsetWidth + "px"
          }, AbstractChosen.prototype.include_option_in_results = function(a) {
              return this.is_multiple && !this.display_selected_options && a.selected ? !1 : !this.display_disabled_options && a.disabled ? !1 : a.empty ? !1 : !0
          }, AbstractChosen.prototype.search_results_touchstart = function(a) {
              return this.touch_started = !0, this.search_results_mouseover(a)
          }, AbstractChosen.prototype.search_results_touchmove = function(a) {
              return this.touch_started = !1, this.search_results_mouseout(a)
          }, AbstractChosen.prototype.search_results_touchend = function(a) {
              return this.touch_started ? this.search_results_mouseup(a) : void 0
          }, AbstractChosen.prototype.outerHTML = function(a) {
              var b;
              return a.outerHTML ? a.outerHTML : (b = document.createElement("div"), b.appendChild(a), b.innerHTML)
          }, AbstractChosen.browser_is_supported = function() {
              return "Microsoft Internet Explorer" === window.navigator.appName ? document.documentMode >= 8 : /iP(od|hone)/i.test(window.navigator.userAgent) ? !1 : /Android/i.test(window.navigator.userAgent) && /Mobile/i.test(window.navigator.userAgent) ? !1 : !0
          }, AbstractChosen.default_multiple_text = "Select Some Options", AbstractChosen.default_single_text = "Select an Option", AbstractChosen.default_no_result_text = "No results match", AbstractChosen
      }(), a = jQuery, a.fn.extend({
          chosen: function(b) {
              return AbstractChosen.browser_is_supported() ? this.each(function() {
                  var c, d;
                  c = a(this), d = c.data("chosen"), "destroy" === b && d instanceof Chosen ? d.destroy() : d instanceof Chosen || c.data("chosen", new Chosen(this, b))
              }) : this
          }
      }), Chosen = function(c) {
          function Chosen() {
              return b = Chosen.__super__.constructor.apply(this, arguments)
          }
          return d(Chosen, c), Chosen.prototype.setup = function() {
              return this.form_field_jq = a(this.form_field), this.current_selectedIndex = this.form_field.selectedIndex, this.is_rtl = this.form_field_jq.hasClass("chosen-rtl")
          }, Chosen.prototype.set_up_html = function() {
              var b, c;
              return b = ["chosen-container"], b.push("chosen-container-" + (this.is_multiple ? "multi" : "single")), this.inherit_select_classes && this.form_field.className && b.push(this.form_field.className), this.is_rtl && b.push("chosen-rtl"), c = {
                  "class": b.join(" "),
                  style: "width: " + this.container_width() + ";",
                  title: this.form_field.title
              }, this.form_field.id.length && (c.id = this.form_field.id.replace(/[^\w]/g, "_") + "_chosen"), this.container = a("<div />", c), this.is_multiple ? this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>') : this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'), this.form_field_jq.hide().after(this.container), this.dropdown = this.container.find("div.chosen-drop").first(), this.search_field = this.container.find("input").first(), this.search_results = this.container.find("ul.chosen-results").first(), this.search_field_scale(), this.search_no_results = this.container.find("li.no-results").first(), this.is_multiple ? (this.search_choices = this.container.find("ul.chosen-choices").first(), this.search_container = this.container.find("li.search-field").first()) : (this.search_container = this.container.find("div.chosen-search").first(), this.selected_item = this.container.find(".chosen-single").first()), this.results_build(), this.set_tab_index(), this.set_label_behavior()
          }, Chosen.prototype.on_ready = function() {
              return this.form_field_jq.trigger("chosen:ready", {
                  chosen: this
              })
          }, Chosen.prototype.register_observers = function() {
              var a = this;
              return this.container.bind("touchstart.chosen", function(b) {
                  a.container_mousedown(b)
              }), this.container.bind("touchend.chosen", function(b) {
                  a.container_mouseup(b)
              }), this.container.bind("mousedown.chosen", function(b) {
                  a.container_mousedown(b)
              }), this.container.bind("mouseup.chosen", function(b) {
                  a.container_mouseup(b)
              }), this.container.bind("mouseenter.chosen", function(b) {
                  a.mouse_enter(b)
              }), this.container.bind("mouseleave.chosen", function(b) {
                  a.mouse_leave(b)
              }), this.search_results.bind("mouseup.chosen", function(b) {
                  a.search_results_mouseup(b)
              }), this.search_results.bind("mouseover.chosen", function(b) {
                  a.search_results_mouseover(b)
              }), this.search_results.bind("mouseout.chosen", function(b) {
                  a.search_results_mouseout(b)
              }), this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen", function(b) {
                  a.search_results_mousewheel(b)
              }), this.search_results.bind("touchstart.chosen", function(b) {
                  a.search_results_touchstart(b)
              }), this.search_results.bind("touchmove.chosen", function(b) {
                  a.search_results_touchmove(b)
              }), this.search_results.bind("touchend.chosen", function(b) {
                  a.search_results_touchend(b)
              }), this.form_field_jq.bind("chosen:updated.chosen", function(b) {
                  a.results_update_field(b)
              }), this.form_field_jq.bind("chosen:activate.chosen", function(b) {
                  a.activate_field(b)
              }), this.form_field_jq.bind("chosen:open.chosen", function(b) {
                  a.container_mousedown(b)
              }), this.form_field_jq.bind("chosen:close.chosen", function(b) {
                  a.input_blur(b)
              }), this.search_field.bind("blur.chosen", function(b) {
                  a.input_blur(b)
              }), this.search_field.bind("keyup.chosen", function(b) {
                  a.keyup_checker(b)
              }), this.search_field.bind("keydown.chosen", function(b) {
                  a.keydown_checker(b)
              }), this.search_field.bind("focus.chosen", function(b) {
                  a.input_focus(b)
              }), this.search_field.bind("cut.chosen", function(b) {
                  a.clipboard_event_checker(b)
              }), this.search_field.bind("paste.chosen", function(b) {
                  a.clipboard_event_checker(b)
              }), this.is_multiple ? this.search_choices.bind("click.chosen", function(b) {
                  a.choices_click(b)
              }) : this.container.bind("click.chosen", function(a) {
                  a.preventDefault()
              })
          }, Chosen.prototype.destroy = function() {
              return a(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action), this.search_field[0].tabIndex && (this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex), this.container.remove(), this.form_field_jq.removeData("chosen"), this.form_field_jq.show()
          }, Chosen.prototype.search_field_disabled = function() {
              return this.is_disabled = this.form_field_jq[0].disabled, this.is_disabled ? (this.container.addClass("chosen-disabled"), this.search_field[0].disabled = !0, this.is_multiple || this.selected_item.unbind("focus.chosen", this.activate_action), this.close_field()) : (this.container.removeClass("chosen-disabled"), this.search_field[0].disabled = !1, this.is_multiple ? void 0 : this.selected_item.bind("focus.chosen", this.activate_action))
          }, Chosen.prototype.container_mousedown = function(b) {
              return this.is_disabled || (b && "mousedown" === b.type && !this.results_showing && b.preventDefault(), null != b && a(b.target).hasClass("search-choice-close")) ? void 0 : (this.active_field ? this.is_multiple || !b || a(b.target)[0] !== this.selected_item[0] && !a(b.target).parents("a.chosen-single").length || (b.preventDefault(), this.results_toggle()) : (this.is_multiple && this.search_field.val(""), a(this.container[0].ownerDocument).bind("click.chosen", this.click_test_action), this.results_show()), this.activate_field())
          }, Chosen.prototype.container_mouseup = function(a) {
              return "ABBR" !== a.target.nodeName || this.is_disabled ? void 0 : this.results_reset(a)
          }, Chosen.prototype.search_results_mousewheel = function(a) {
              var b;
              return a.originalEvent && (b = a.originalEvent.deltaY || -a.originalEvent.wheelDelta || a.originalEvent.detail), null != b ? (a.preventDefault(), "DOMMouseScroll" === a.type && (b = 40 * b), this.search_results.scrollTop(b + this.search_results.scrollTop())) : void 0
          }, Chosen.prototype.blur_test = function() {
              return !this.active_field && this.container.hasClass("chosen-container-active") ? this.close_field() : void 0
          }, Chosen.prototype.close_field = function() {
              return a(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action), this.active_field = !1, this.results_hide(), this.container.removeClass("chosen-container-active"), this.clear_backstroke(), this.show_search_field_default(), this.search_field_scale()
          }, Chosen.prototype.activate_field = function() {
              return this.container.addClass("chosen-container-active"), this.active_field = !0, this.search_field.val(this.search_field.val()), this.search_field.focus()
          }, Chosen.prototype.test_active_click = function(b) {
              var c;
              return c = a(b.target).closest(".chosen-container"), c.length && this.container[0] === c[0] ? this.active_field = !0 : this.close_field()
          }, Chosen.prototype.results_build = function() {
              return this.parsing = !0, this.selected_option_count = null, this.results_data = SelectParser.select_to_array(this.form_field), this.is_multiple ? this.search_choices.find("li.search-choice").remove() : this.is_multiple || (this.single_set_selected_text(), this.disable_search || this.form_field.options.length <= this.disable_search_threshold ? (this.search_field[0].readOnly = !0, this.container.addClass("chosen-container-single-nosearch")) : (this.search_field[0].readOnly = !1, this.container.removeClass("chosen-container-single-nosearch"))), this.update_results_content(this.results_option_build({
                  first: !0
              })), this.search_field_disabled(), this.show_search_field_default(), this.search_field_scale(), this.parsing = !1
          }, Chosen.prototype.result_do_highlight = function(a) {
              var b, c, d, e, f;
              if (a.length) {
                  if (this.result_clear_highlight(), this.result_highlight = a, this.result_highlight.addClass("highlighted"), d = parseInt(this.search_results.css("maxHeight"), 10), f = this.search_results.scrollTop(), e = d + f, c = this.result_highlight.position().top + this.search_results.scrollTop(), b = c + this.result_highlight.outerHeight(), b >= e) return this.search_results.scrollTop(b - d > 0 ? b - d : 0);
                  if (f > c) return this.search_results.scrollTop(c)
              }
          }, Chosen.prototype.result_clear_highlight = function() {
              return this.result_highlight && this.result_highlight.removeClass("highlighted"), this.result_highlight = null
          }, Chosen.prototype.results_show = function() {
              return this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", {
                  chosen: this
              }), !1) : (this.container.addClass("chosen-with-drop"), this.results_showing = !0, this.search_field.focus(), this.search_field.val(this.search_field.val()), this.winnow_results(), this.form_field_jq.trigger("chosen:showing_dropdown", {
                  chosen: this
              }))
          }, Chosen.prototype.update_results_content = function(a) {
              return this.search_results.html(a)
          }, Chosen.prototype.results_hide = function() {
              return this.results_showing && (this.result_clear_highlight(), this.container.removeClass("chosen-with-drop"), this.form_field_jq.trigger("chosen:hiding_dropdown", {
                  chosen: this
              })), this.results_showing = !1
          }, Chosen.prototype.set_tab_index = function() {
              var a;
              return this.form_field.tabIndex ? (a = this.form_field.tabIndex, this.form_field.tabIndex = -1, this.search_field[0].tabIndex = a) : void 0
          }, Chosen.prototype.set_label_behavior = function() {
              var b = this;
              return this.form_field_label = this.form_field_jq.parents("label"), !this.form_field_label.length && this.form_field.id.length && (this.form_field_label = a("label[for='" + this.form_field.id + "']")), this.form_field_label.length > 0 ? this.form_field_label.bind("click.chosen", function(a) {
                  return b.is_multiple ? b.container_mousedown(a) : b.activate_field()
              }) : void 0
          }, Chosen.prototype.show_search_field_default = function() {
              return this.is_multiple && this.choices_count() < 1 && !this.active_field ? (this.search_field.val(this.default_text), this.search_field.addClass("default")) : (this.search_field.val(""), this.search_field.removeClass("default"))
          }, Chosen.prototype.search_results_mouseup = function(b) {
              var c;
              return c = a(b.target).hasClass("active-result") ? a(b.target) : a(b.target).parents(".active-result").first(), c.length ? (this.result_highlight = c, this.result_select(b), this.search_field.focus()) : void 0
          }, Chosen.prototype.search_results_mouseover = function(b) {
              var c;
              return c = a(b.target).hasClass("active-result") ? a(b.target) : a(b.target).parents(".active-result").first(), c ? this.result_do_highlight(c) : void 0
          }, Chosen.prototype.search_results_mouseout = function(b) {
              return a(b.target).hasClass("active-result") ? this.result_clear_highlight() : void 0
          }, Chosen.prototype.choice_build = function(b) {
              var c, d, e = this;
              return c = a("<li />", {
                  "class": "search-choice"
              }).html("<span>" + b.html + "</span>"), b.disabled ? c.addClass("search-choice-disabled") : (d = a("<a />", {
                  "class": "search-choice-close",
                  "data-option-array-index": b.array_index
              }), d.bind("click.chosen", function(a) {
                  return e.choice_destroy_link_click(a)
              }), c.append(d)), this.search_container.before(c)
          }, Chosen.prototype.choice_destroy_link_click = function(b) {
              return b.preventDefault(), b.stopPropagation(), this.is_disabled ? void 0 : this.choice_destroy(a(b.target))
          }, Chosen.prototype.choice_destroy = function(a) {
              return this.result_deselect(a[0].getAttribute("data-option-array-index")) ? (this.show_search_field_default(), this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1 && this.results_hide(), a.parents("li").first().remove(), this.search_field_scale()) : void 0
          }, Chosen.prototype.results_reset = function() {
              return this.reset_single_select_options(), this.form_field.options[0].selected = !0, this.single_set_selected_text(), this.show_search_field_default(), this.results_reset_cleanup(), this.form_field_jq.trigger("change"), this.active_field ? this.results_hide() : void 0
          }, Chosen.prototype.results_reset_cleanup = function() {
              return this.current_selectedIndex = this.form_field.selectedIndex, this.selected_item.find("abbr").remove()
          }, Chosen.prototype.result_select = function(a) {
              var b, c;
              return this.result_highlight ? (b = this.result_highlight, this.result_clear_highlight(), this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field_jq.trigger("chosen:maxselected", {
                  chosen: this
              }), !1) : (this.is_multiple ? b.removeClass("active-result") : this.reset_single_select_options(), c = this.results_data[b[0].getAttribute("data-option-array-index")], c.selected = !0, this.form_field.options[c.options_index].selected = !0, this.selected_option_count = null, this.is_multiple ? this.choice_build(c) : this.single_set_selected_text(c.text), (a.metaKey || a.ctrlKey) && this.is_multiple || this.results_hide(), this.search_field.val(""), (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) && this.form_field_jq.trigger("change", {
                  selected: this.form_field.options[c.options_index].value
              }), this.current_selectedIndex = this.form_field.selectedIndex, this.search_field_scale())) : void 0
          }, Chosen.prototype.single_set_selected_text = function(a) {
              return null == a && (a = this.default_text), a === this.default_text ? this.selected_item.addClass("chosen-default") : (this.single_deselect_control_build(), this.selected_item.removeClass("chosen-default")), this.selected_item.find("span").text(a)
          }, Chosen.prototype.result_deselect = function(a) {
              var b;
              return b = this.results_data[a], this.form_field.options[b.options_index].disabled ? !1 : (b.selected = !1, this.form_field.options[b.options_index].selected = !1, this.selected_option_count = null, this.result_clear_highlight(), this.results_showing && this.winnow_results(), this.form_field_jq.trigger("change", {
                  deselected: this.form_field.options[b.options_index].value
              }), this.search_field_scale(), !0)
          }, Chosen.prototype.single_deselect_control_build = function() {
              return this.allow_single_deselect ? (this.selected_item.find("abbr").length || this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'), this.selected_item.addClass("chosen-single-with-deselect")) : void 0
          }, Chosen.prototype.get_search_text = function() {
              return this.search_field.val() === this.default_text ? "" : a("<div/>").text(a.trim(this.search_field.val())).html()
          }, Chosen.prototype.winnow_results_set_highlight = function() {
              var a, b;
              return b = this.is_multiple ? [] : this.search_results.find(".result-selected.active-result"), a = b.length ? b.first() : this.search_results.find(".active-result").first(), null != a ? this.result_do_highlight(a) : void 0
          }, Chosen.prototype.no_results = function(b) {
              var c;
              return c = a('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>'), c.find("span").first().html(b), this.search_results.append(c), this.form_field_jq.trigger("chosen:no_results", {
                  chosen: this
              })
          }, Chosen.prototype.no_results_clear = function() {
              return this.search_results.find(".no-results").remove()
          }, Chosen.prototype.keydown_arrow = function() {
              var a;
              return this.results_showing && this.result_highlight ? (a = this.result_highlight.nextAll("li.active-result").first()) ? this.result_do_highlight(a) : void 0 : this.results_show()
          }, Chosen.prototype.keyup_arrow = function() {
              var a;
              return this.results_showing || this.is_multiple ? this.result_highlight ? (a = this.result_highlight.prevAll("li.active-result"), a.length ? this.result_do_highlight(a.first()) : (this.choices_count() > 0 && this.results_hide(), this.result_clear_highlight())) : void 0 : this.results_show()
          }, Chosen.prototype.keydown_backstroke = function() {
              var a;
              return this.pending_backstroke ? (this.choice_destroy(this.pending_backstroke.find("a").first()), this.clear_backstroke()) : (a = this.search_container.siblings("li.search-choice").last(), a.length && !a.hasClass("search-choice-disabled") ? (this.pending_backstroke = a, this.single_backstroke_delete ? this.keydown_backstroke() : this.pending_backstroke.addClass("search-choice-focus")) : void 0)
          }, Chosen.prototype.clear_backstroke = function() {
              return this.pending_backstroke && this.pending_backstroke.removeClass("search-choice-focus"), this.pending_backstroke = null
          }, Chosen.prototype.keydown_checker = function(a) {
              var b, c;
              switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), 8 !== b && this.pending_backstroke && this.clear_backstroke(), b) {
                  case 8:
                      this.backstroke_length = this.search_field.val().length;
                      break;
                  case 9:
                      this.results_showing && !this.is_multiple && this.result_select(a), this.mouse_on_container = !1;
                      break;
                  case 13:
                      this.results_showing && a.preventDefault();
                      break;
                  case 32:
                      this.disable_search && a.preventDefault();
                      break;
                  case 38:
                      a.preventDefault(), this.keyup_arrow();
                      break;
                  case 40:
                      a.preventDefault(), this.keydown_arrow()
              }
          }, Chosen.prototype.search_field_scale = function() {
              var b, c, d, e, f, g, h, i, j;
              if (this.is_multiple) {
                  for (d = 0, h = 0, f = "position:absolute; left: -1000px; top: -1000px; display:none;", g = ["font-size", "font-style", "font-weight", "font-family", "line-height", "text-transform", "letter-spacing"], i = 0, j = g.length; j > i; i++) e = g[i], f += e + ":" + this.search_field.css(e) + ";";
                  return b = a("<div />", {
                      style: f
                  }), b.text(this.search_field.val()), a("body").append(b), h = b.width() + 25, b.remove(), c = this.container.outerWidth(), h > c - 10 && (h = c - 10), this.search_field.css({
                      width: h + "px"
                  })
              }
          }, Chosen
      }(AbstractChosen)
  }.call(this);;
  ! function() {
      var AbstractChosen, SelectParser, a, b = {}.hasOwnProperty,
          c = function(a, c) {
              function d() {
                  this.constructor = a
              }
              for (var e in c) b.call(c, e) && (a[e] = c[e]);
              return d.prototype = c.prototype, a.prototype = new d, a.__super__ = c.prototype, a
          };
      SelectParser = function() {
          function SelectParser() {
              this.options_index = 0, this.parsed = []
          }
          return SelectParser.prototype.add_node = function(a) {
              return "OPTGROUP" === a.nodeName.toUpperCase() ? this.add_group(a) : this.add_option(a)
          }, SelectParser.prototype.add_group = function(a) {
              var b, c, d, e, f, g;
              for (b = this.parsed.length, this.parsed.push({
                      array_index: b,
                      group: !0,
                      label: this.escapeExpression(a.label),
                      children: 0,
                      disabled: a.disabled,
                      classes: a.className
                  }), f = a.childNodes, g = [], d = 0, e = f.length; e > d; d++) c = f[d], g.push(this.add_option(c, b, a.disabled));
              return g
          }, SelectParser.prototype.add_option = function(a, b, c) {
              return "OPTION" === a.nodeName.toUpperCase() ? ("" !== a.text ? (null != b && (this.parsed[b].children += 1), this.parsed.push({
                  array_index: this.parsed.length,
                  options_index: this.options_index,
                  value: a.value,
                  text: a.text,
                  html: a.innerHTML,
                  selected: a.selected,
                  disabled: c === !0 ? c : a.disabled,
                  group_array_index: b,
                  classes: a.className,
                  style: a.style.cssText
              })) : this.parsed.push({
                  array_index: this.parsed.length,
                  options_index: this.options_index,
                  empty: !0
              }), this.options_index += 1) : void 0
          }, SelectParser.prototype.escapeExpression = function(a) {
              var b, c;
              return null == a || a === !1 ? "" : /[\&\<\>\"\'\`]/.test(a) ? (b = {
                  "<": "&lt;",
                  ">": "&gt;",
                  '"': "&quot;",
                  "'": "&#x27;",
                  "`": "&#x60;"
              }, c = /&(?!\w+;)|[\<\>\"\'\`]/g, a.replace(c, function(a) {
                  return b[a] || "&amp;"
              })) : a
          }, SelectParser
      }(), SelectParser.select_to_array = function(a) {
          var b, c, d, e, f;
          for (c = new SelectParser, f = a.childNodes, d = 0, e = f.length; e > d; d++) b = f[d], c.add_node(b);
          return c.parsed
      }, AbstractChosen = function() {
          function AbstractChosen(a, b) {
              this.form_field = a, this.options = null != b ? b : {}, AbstractChosen.browser_is_supported() && (this.is_multiple = this.form_field.multiple, this.set_default_text(), this.set_default_values(), this.setup(), this.set_up_html(), this.register_observers(), this.on_ready())
          }
          return AbstractChosen.prototype.set_default_values = function() {
              var a = this;
              return this.click_test_action = function(b) {
                  return a.test_active_click(b)
              }, this.activate_action = function(b) {
                  return a.activate_field(b)
              }, this.active_field = !1, this.mouse_on_container = !1, this.results_showing = !1, this.result_highlighted = null, this.allow_single_deselect = null != this.options.allow_single_deselect && null != this.form_field.options[0] && "" === this.form_field.options[0].text ? this.options.allow_single_deselect : !1, this.disable_search_threshold = this.options.disable_search_threshold || 0, this.disable_search = this.options.disable_search || !1, this.enable_split_word_search = null != this.options.enable_split_word_search ? this.options.enable_split_word_search : !0, this.group_search = null != this.options.group_search ? this.options.group_search : !0, this.search_contains = this.options.search_contains || !1, this.single_backstroke_delete = null != this.options.single_backstroke_delete ? this.options.single_backstroke_delete : !0, this.max_selected_options = this.options.max_selected_options || 1 / 0, this.inherit_select_classes = this.options.inherit_select_classes || !1, this.display_selected_options = null != this.options.display_selected_options ? this.options.display_selected_options : !0, this.display_disabled_options = null != this.options.display_disabled_options ? this.options.display_disabled_options : !0
          }, AbstractChosen.prototype.set_default_text = function() {
              return this.default_text = this.form_field.getAttribute("data-placeholder") ? this.form_field.getAttribute("data-placeholder") : this.is_multiple ? this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text : this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text, this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text
          }, AbstractChosen.prototype.mouse_enter = function() {
              return this.mouse_on_container = !0
          }, AbstractChosen.prototype.mouse_leave = function() {
              return this.mouse_on_container = !1
          }, AbstractChosen.prototype.input_focus = function() {
              var a = this;
              if (this.is_multiple) {
                  if (!this.active_field) return setTimeout(function() {
                      return a.container_mousedown()
                  }, 50)
              } else if (!this.active_field) return this.activate_field()
          }, AbstractChosen.prototype.input_blur = function() {
              var a = this;
              return this.mouse_on_container ? void 0 : (this.active_field = !1, setTimeout(function() {
                  return a.blur_test()
              }, 100))
          }, AbstractChosen.prototype.results_option_build = function(a) {
              var b, c, d, e, f;
              for (b = "", f = this.results_data, d = 0, e = f.length; e > d; d++) c = f[d], b += c.group ? this.result_add_group(c) : this.result_add_option(c), (null != a ? a.first : void 0) && (c.selected && this.is_multiple ? this.choice_build(c) : c.selected && !this.is_multiple && this.single_set_selected_text(c.text));
              return b
          }, AbstractChosen.prototype.result_add_option = function(a) {
              var b, c;
              return a.search_match ? this.include_option_in_results(a) ? (b = [], a.disabled || a.selected && this.is_multiple || b.push("active-result"), !a.disabled || a.selected && this.is_multiple || b.push("disabled-result"), a.selected && b.push("result-selected"), null != a.group_array_index && b.push("group-option"), "" !== a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.style.cssText = a.style, c.setAttribute("data-option-array-index", a.array_index), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : ""
          }, AbstractChosen.prototype.result_add_group = function(a) {
              var b, c;
              return a.search_match || a.group_match ? a.active_options > 0 ? (b = [], b.push("group-result"), a.classes && b.push(a.classes), c = document.createElement("li"), c.className = b.join(" "), c.innerHTML = a.search_text, this.outerHTML(c)) : "" : ""
          }, AbstractChosen.prototype.results_update_field = function() {
              return this.set_default_text(), this.is_multiple || this.results_reset_cleanup(), this.result_clear_highlight(), this.results_build(), this.results_showing ? this.winnow_results() : void 0
          }, AbstractChosen.prototype.reset_single_select_options = function() {
              var a, b, c, d, e;
              for (d = this.results_data, e = [], b = 0, c = d.length; c > b; b++) a = d[b], a.selected ? e.push(a.selected = !1) : e.push(void 0);
              return e
          }, AbstractChosen.prototype.results_toggle = function() {
              return this.results_showing ? this.results_hide() : this.results_show()
          }, AbstractChosen.prototype.results_search = function() {
              return this.results_showing ? this.winnow_results() : this.results_show()
          }, AbstractChosen.prototype.winnow_results = function() {
              var a, b, c, d, e, f, g, h, i, j, k, l;
              for (this.no_results_clear(), d = 0, f = this.get_search_text(), a = f.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), i = new RegExp(a, "i"), c = this.get_search_regex(a), l = this.results_data, j = 0, k = l.length; k > j; j++) b = l[j], b.search_match = !1, e = null, this.include_option_in_results(b) && (b.group && (b.group_match = !1, b.active_options = 0), null != b.group_array_index && this.results_data[b.group_array_index] && (e = this.results_data[b.group_array_index], 0 === e.active_options && e.search_match && (d += 1), e.active_options += 1), (!b.group || this.group_search) && (b.search_text = b.group ? b.label : b.text, b.search_match = this.search_string_match(b.search_text, c), b.search_match && !b.group && (d += 1), b.search_match ? (f.length && (g = b.search_text.search(i), h = b.search_text.substr(0, g + f.length) + "</em>" + b.search_text.substr(g + f.length), b.search_text = h.substr(0, g) + "<em>" + h.substr(g)), null != e && (e.group_match = !0)) : null != b.group_array_index && this.results_data[b.group_array_index].search_match && (b.search_match = !0)));
              return this.result_clear_highlight(), 1 > d && f.length ? (this.update_results_content(""), this.no_results(f)) : (this.update_results_content(this.results_option_build()), this.winnow_results_set_highlight())
          }, AbstractChosen.prototype.get_search_regex = function(a) {
              var b;
              return b = this.search_contains ? "" : "^", new RegExp(b + a, "i")
          }, AbstractChosen.prototype.search_string_match = function(a, b) {
              var c, d, e, f;
              if (b.test(a)) return !0;
              if (this.enable_split_word_search && (a.indexOf(" ") >= 0 || 0 === a.indexOf("[")) && (d = a.replace(/\[|\]/g, "").split(" "), d.length))
                  for (e = 0, f = d.length; f > e; e++)
                      if (c = d[e], b.test(c)) return !0
          }, AbstractChosen.prototype.choices_count = function() {
              var a, b, c, d;
              if (null != this.selected_option_count) return this.selected_option_count;
              for (this.selected_option_count = 0, d = this.form_field.options, b = 0, c = d.length; c > b; b++) a = d[b], a.selected && (this.selected_option_count += 1);
              return this.selected_option_count
          }, AbstractChosen.prototype.choices_click = function(a) {
              return a.preventDefault(), this.results_showing || this.is_disabled ? void 0 : this.results_show()
          }, AbstractChosen.prototype.keyup_checker = function(a) {
              var b, c;
              switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), b) {
                  case 8:
                      if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) return this.keydown_backstroke();
                      if (!this.pending_backstroke) return this.result_clear_highlight(), this.results_search();
                      break;
                  case 13:
                      if (a.preventDefault(), this.results_showing) return this.result_select(a);
                      break;
                  case 27:
                      return this.results_showing && this.results_hide(), !0;
                  case 9:
                  case 38:
                  case 40:
                  case 16:
                  case 91:
                  case 17:
                      break;
                  default:
                      return this.results_search()
              }
          }, AbstractChosen.prototype.clipboard_event_checker = function() {
              var a = this;
              return setTimeout(function() {
                  return a.results_search()
              }, 50)
          }, AbstractChosen.prototype.container_width = function() {
              return null != this.options.width ? this.options.width : "" + this.form_field.offsetWidth + "px"
          }, AbstractChosen.prototype.include_option_in_results = function(a) {
              return this.is_multiple && !this.display_selected_options && a.selected ? !1 : !this.display_disabled_options && a.disabled ? !1 : a.empty ? !1 : !0
          }, AbstractChosen.prototype.search_results_touchstart = function(a) {
              return this.touch_started = !0, this.search_results_mouseover(a)
          }, AbstractChosen.prototype.search_results_touchmove = function(a) {
              return this.touch_started = !1, this.search_results_mouseout(a)
          }, AbstractChosen.prototype.search_results_touchend = function(a) {
              return this.touch_started ? this.search_results_mouseup(a) : void 0
          }, AbstractChosen.prototype.outerHTML = function(a) {
              var b;
              return a.outerHTML ? a.outerHTML : (b = document.createElement("div"), b.appendChild(a), b.innerHTML)
          }, AbstractChosen.browser_is_supported = function() {
              return "Microsoft Internet Explorer" === window.navigator.appName ? document.documentMode >= 8 : /iP(od|hone)/i.test(window.navigator.userAgent) ? !1 : /Android/i.test(window.navigator.userAgent) && /Mobile/i.test(window.navigator.userAgent) ? !1 : !0
          }, AbstractChosen.default_multiple_text = "Select Some Options", AbstractChosen.default_single_text = "Select an Option", AbstractChosen.default_no_result_text = "No results match", AbstractChosen
      }(), this.Chosen = function(b) {
          function Chosen() {
              return a = Chosen.__super__.constructor.apply(this, arguments)
          }
          return c(Chosen, b), Chosen.prototype.setup = function() {
              return this.current_selectedIndex = this.form_field.selectedIndex, this.is_rtl = this.form_field.hasClassName("chosen-rtl")
          }, Chosen.prototype.set_default_values = function() {
              return Chosen.__super__.set_default_values.call(this), this.single_temp = new Template('<a class="chosen-single chosen-default" tabindex="-1"><span>#{default}</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'), this.multi_temp = new Template('<ul class="chosen-choices"><li class="search-field"><input type="text" value="#{default}" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'), this.no_results_temp = new Template('<li class="no-results">' + this.results_none_found + ' "<span>#{terms}</span>"</li>')
          }, Chosen.prototype.set_up_html = function() {
              var a, b;
              return a = ["chosen-container"], a.push("chosen-container-" + (this.is_multiple ? "multi" : "single")), this.inherit_select_classes && this.form_field.className && a.push(this.form_field.className), this.is_rtl && a.push("chosen-rtl"), b = {
                  "class": a.join(" "),
                  style: "width: " + this.container_width() + ";",
                  title: this.form_field.title
              }, this.form_field.id.length && (b.id = this.form_field.id.replace(/[^\w]/g, "_") + "_chosen"), this.container = this.is_multiple ? new Element("div", b).update(this.multi_temp.evaluate({
                  "default": this.default_text
              })) : new Element("div", b).update(this.single_temp.evaluate({
                  "default": this.default_text
              })), this.form_field.hide().insert({
                  after: this.container
              }), this.dropdown = this.container.down("div.chosen-drop"), this.search_field = this.container.down("input"), this.search_results = this.container.down("ul.chosen-results"), this.search_field_scale(), this.search_no_results = this.container.down("li.no-results"), this.is_multiple ? (this.search_choices = this.container.down("ul.chosen-choices"), this.search_container = this.container.down("li.search-field")) : (this.search_container = this.container.down("div.chosen-search"), this.selected_item = this.container.down(".chosen-single")), this.results_build(), this.set_tab_index(), this.set_label_behavior()
          }, Chosen.prototype.on_ready = function() {
              return this.form_field.fire("chosen:ready", {
                  chosen: this
              })
          }, Chosen.prototype.register_observers = function() {
              var a = this;
              return this.container.observe("touchstart", function(b) {
                  return a.container_mousedown(b)
              }), this.container.observe("touchend", function(b) {
                  return a.container_mouseup(b)
              }), this.container.observe("mousedown", function(b) {
                  return a.container_mousedown(b)
              }), this.container.observe("mouseup", function(b) {
                  return a.container_mouseup(b)
              }), this.container.observe("mouseenter", function(b) {
                  return a.mouse_enter(b)
              }), this.container.observe("mouseleave", function(b) {
                  return a.mouse_leave(b)
              }), this.search_results.observe("mouseup", function(b) {
                  return a.search_results_mouseup(b)
              }), this.search_results.observe("mouseover", function(b) {
                  return a.search_results_mouseover(b)
              }), this.search_results.observe("mouseout", function(b) {
                  return a.search_results_mouseout(b)
              }), this.search_results.observe("mousewheel", function(b) {
                  return a.search_results_mousewheel(b)
              }), this.search_results.observe("DOMMouseScroll", function(b) {
                  return a.search_results_mousewheel(b)
              }), this.search_results.observe("touchstart", function(b) {
                  return a.search_results_touchstart(b)
              }), this.search_results.observe("touchmove", function(b) {
                  return a.search_results_touchmove(b)
              }), this.search_results.observe("touchend", function(b) {
                  return a.search_results_touchend(b)
              }), this.form_field.observe("chosen:updated", function(b) {
                  return a.results_update_field(b)
              }), this.form_field.observe("chosen:activate", function(b) {
                  return a.activate_field(b)
              }), this.form_field.observe("chosen:open", function(b) {
                  return a.container_mousedown(b)
              }), this.form_field.observe("chosen:close", function(b) {
                  return a.input_blur(b)
              }), this.search_field.observe("blur", function(b) {
                  return a.input_blur(b)
              }), this.search_field.observe("keyup", function(b) {
                  return a.keyup_checker(b)
              }), this.search_field.observe("keydown", function(b) {
                  return a.keydown_checker(b)
              }), this.search_field.observe("focus", function(b) {
                  return a.input_focus(b)
              }), this.search_field.observe("cut", function(b) {
                  return a.clipboard_event_checker(b)
              }), this.search_field.observe("paste", function(b) {
                  return a.clipboard_event_checker(b)
              }), this.is_multiple ? this.search_choices.observe("click", function(b) {
                  return a.choices_click(b)
              }) : this.container.observe("click", function(a) {
                  return a.preventDefault()
              })
          }, Chosen.prototype.destroy = function() {
              return this.container.ownerDocument.stopObserving("click", this.click_test_action), this.form_field.stopObserving(), this.container.stopObserving(), this.search_results.stopObserving(), this.search_field.stopObserving(), null != this.form_field_label && this.form_field_label.stopObserving(), this.is_multiple ? (this.search_choices.stopObserving(), this.container.select(".search-choice-close").each(function(a) {
                  return a.stopObserving()
              })) : this.selected_item.stopObserving(), this.search_field.tabIndex && (this.form_field.tabIndex = this.search_field.tabIndex), this.container.remove(), this.form_field.show()
          }, Chosen.prototype.search_field_disabled = function() {
              return this.is_disabled = this.form_field.disabled, this.is_disabled ? (this.container.addClassName("chosen-disabled"), this.search_field.disabled = !0, this.is_multiple || this.selected_item.stopObserving("focus", this.activate_action), this.close_field()) : (this.container.removeClassName("chosen-disabled"), this.search_field.disabled = !1, this.is_multiple ? void 0 : this.selected_item.observe("focus", this.activate_action))
          }, Chosen.prototype.container_mousedown = function(a) {
              return this.is_disabled || (a && "mousedown" === a.type && !this.results_showing && a.stop(), null != a && a.target.hasClassName("search-choice-close")) ? void 0 : (this.active_field ? this.is_multiple || !a || a.target !== this.selected_item && !a.target.up("a.chosen-single") || this.results_toggle() : (this.is_multiple && this.search_field.clear(), this.container.ownerDocument.observe("click", this.click_test_action), this.results_show()), this.activate_field())
          }, Chosen.prototype.container_mouseup = function(a) {
              return "ABBR" !== a.target.nodeName || this.is_disabled ? void 0 : this.results_reset(a)
          }, Chosen.prototype.search_results_mousewheel = function(a) {
              var b;
              return b = a.deltaY || -a.wheelDelta || a.detail, null != b ? (a.preventDefault(), "DOMMouseScroll" === a.type && (b = 40 * b), this.search_results.scrollTop = b + this.search_results.scrollTop) : void 0
          }, Chosen.prototype.blur_test = function() {
              return !this.active_field && this.container.hasClassName("chosen-container-active") ? this.close_field() : void 0
          }, Chosen.prototype.close_field = function() {
              return this.container.ownerDocument.stopObserving("click", this.click_test_action), this.active_field = !1, this.results_hide(), this.container.removeClassName("chosen-container-active"), this.clear_backstroke(), this.show_search_field_default(), this.search_field_scale()
          }, Chosen.prototype.activate_field = function() {
              return this.container.addClassName("chosen-container-active"), this.active_field = !0, this.search_field.value = this.search_field.value, this.search_field.focus()
          }, Chosen.prototype.test_active_click = function(a) {
              return a.target.up(".chosen-container") === this.container ? this.active_field = !0 : this.close_field()
          }, Chosen.prototype.results_build = function() {
              return this.parsing = !0, this.selected_option_count = null, this.results_data = SelectParser.select_to_array(this.form_field), this.is_multiple ? this.search_choices.select("li.search-choice").invoke("remove") : this.is_multiple || (this.single_set_selected_text(), this.disable_search || this.form_field.options.length <= this.disable_search_threshold ? (this.search_field.readOnly = !0, this.container.addClassName("chosen-container-single-nosearch")) : (this.search_field.readOnly = !1, this.container.removeClassName("chosen-container-single-nosearch"))), this.update_results_content(this.results_option_build({
                  first: !0
              })), this.search_field_disabled(), this.show_search_field_default(), this.search_field_scale(), this.parsing = !1
          }, Chosen.prototype.result_do_highlight = function(a) {
              var b, c, d, e, f;
              return this.result_clear_highlight(), this.result_highlight = a, this.result_highlight.addClassName("highlighted"), d = parseInt(this.search_results.getStyle("maxHeight"), 10), f = this.search_results.scrollTop, e = d + f, c = this.result_highlight.positionedOffset().top, b = c + this.result_highlight.getHeight(), b >= e ? this.search_results.scrollTop = b - d > 0 ? b - d : 0 : f > c ? this.search_results.scrollTop = c : void 0
          }, Chosen.prototype.result_clear_highlight = function() {
              return this.result_highlight && this.result_highlight.removeClassName("highlighted"), this.result_highlight = null
          }, Chosen.prototype.results_show = function() {
              return this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field.fire("chosen:maxselected", {
                  chosen: this
              }), !1) : (this.container.addClassName("chosen-with-drop"), this.results_showing = !0, this.search_field.focus(), this.search_field.value = this.search_field.value, this.winnow_results(), this.form_field.fire("chosen:showing_dropdown", {
                  chosen: this
              }))
          }, Chosen.prototype.update_results_content = function(a) {
              return this.search_results.update(a)
          }, Chosen.prototype.results_hide = function() {
              return this.results_showing && (this.result_clear_highlight(), this.container.removeClassName("chosen-with-drop"), this.form_field.fire("chosen:hiding_dropdown", {
                  chosen: this
              })), this.results_showing = !1
          }, Chosen.prototype.set_tab_index = function() {
              var a;
              return this.form_field.tabIndex ? (a = this.form_field.tabIndex, this.form_field.tabIndex = -1, this.search_field.tabIndex = a) : void 0
          }, Chosen.prototype.set_label_behavior = function() {
              var a = this;
              return this.form_field_label = this.form_field.up("label"), null == this.form_field_label && (this.form_field_label = $$("label[for='" + this.form_field.id + "']").first()), null != this.form_field_label ? this.form_field_label.observe("click", function(b) {
                  return a.is_multiple ? a.container_mousedown(b) : a.activate_field()
              }) : void 0
          }, Chosen.prototype.show_search_field_default = function() {
              return this.is_multiple && this.choices_count() < 1 && !this.active_field ? (this.search_field.value = this.default_text, this.search_field.addClassName("default")) : (this.search_field.value = "", this.search_field.removeClassName("default"))
          }, Chosen.prototype.search_results_mouseup = function(a) {
              var b;
              return b = a.target.hasClassName("active-result") ? a.target : a.target.up(".active-result"), b ? (this.result_highlight = b, this.result_select(a), this.search_field.focus()) : void 0
          }, Chosen.prototype.search_results_mouseover = function(a) {
              var b;
              return b = a.target.hasClassName("active-result") ? a.target : a.target.up(".active-result"), b ? this.result_do_highlight(b) : void 0
          }, Chosen.prototype.search_results_mouseout = function(a) {
              return a.target.hasClassName("active-result") || a.target.up(".active-result") ? this.result_clear_highlight() : void 0
          }, Chosen.prototype.choice_build = function(a) {
              var b, c, d = this;
              return b = new Element("li", {
                  "class": "search-choice"
              }).update("<span>" + a.html + "</span>"), a.disabled ? b.addClassName("search-choice-disabled") : (c = new Element("a", {
                  href: "#",
                  "class": "search-choice-close",
                  rel: a.array_index
              }), c.observe("click", function(a) {
                  return d.choice_destroy_link_click(a)
              }), b.insert(c)), this.search_container.insert({
                  before: b
              })
          }, Chosen.prototype.choice_destroy_link_click = function(a) {
              return a.preventDefault(), a.stopPropagation(), this.is_disabled ? void 0 : this.choice_destroy(a.target)
          }, Chosen.prototype.choice_destroy = function(a) {
              return this.result_deselect(a.readAttribute("rel")) ? (this.show_search_field_default(), this.is_multiple && this.choices_count() > 0 && this.search_field.value.length < 1 && this.results_hide(), a.up("li").remove(), this.search_field_scale()) : void 0
          }, Chosen.prototype.results_reset = function() {
              return this.reset_single_select_options(), this.form_field.options[0].selected = !0, this.single_set_selected_text(), this.show_search_field_default(), this.results_reset_cleanup(), "function" == typeof Event.simulate && this.form_field.simulate("change"), this.active_field ? this.results_hide() : void 0
          }, Chosen.prototype.results_reset_cleanup = function() {
              var a;
              return this.current_selectedIndex = this.form_field.selectedIndex, a = this.selected_item.down("abbr"), a ? a.remove() : void 0
          }, Chosen.prototype.result_select = function(a) {
              var b, c;
              return this.result_highlight ? (b = this.result_highlight, this.result_clear_highlight(), this.is_multiple && this.max_selected_options <= this.choices_count() ? (this.form_field.fire("chosen:maxselected", {
                  chosen: this
              }), !1) : (this.is_multiple ? b.removeClassName("active-result") : this.reset_single_select_options(), b.addClassName("result-selected"), c = this.results_data[b.getAttribute("data-option-array-index")], c.selected = !0, this.form_field.options[c.options_index].selected = !0, this.selected_option_count = null, this.is_multiple ? this.choice_build(c) : this.single_set_selected_text(c.text), (a.metaKey || a.ctrlKey) && this.is_multiple || this.results_hide(), this.search_field.value = "", "function" != typeof Event.simulate || !this.is_multiple && this.form_field.selectedIndex === this.current_selectedIndex || this.form_field.simulate("change"), this.current_selectedIndex = this.form_field.selectedIndex, this.search_field_scale())) : void 0
          }, Chosen.prototype.single_set_selected_text = function(a) {
              return null == a && (a = this.default_text), a === this.default_text ? this.selected_item.addClassName("chosen-default") : (this.single_deselect_control_build(), this.selected_item.removeClassName("chosen-default")), this.selected_item.down("span").update(a)
          }, Chosen.prototype.result_deselect = function(a) {
              var b;
              return b = this.results_data[a], this.form_field.options[b.options_index].disabled ? !1 : (b.selected = !1, this.form_field.options[b.options_index].selected = !1, this.selected_option_count = null, this.result_clear_highlight(), this.results_showing && this.winnow_results(), "function" == typeof Event.simulate && this.form_field.simulate("change"), this.search_field_scale(), !0)
          }, Chosen.prototype.single_deselect_control_build = function() {
              return this.allow_single_deselect ? (this.selected_item.down("abbr") || this.selected_item.down("span").insert({
                  after: '<abbr class="search-choice-close"></abbr>'
              }), this.selected_item.addClassName("chosen-single-with-deselect")) : void 0
          }, Chosen.prototype.get_search_text = function() {
              return this.search_field.value === this.default_text ? "" : this.search_field.value.strip().escapeHTML()
          }, Chosen.prototype.winnow_results_set_highlight = function() {
              var a;
              return this.is_multiple || (a = this.search_results.down(".result-selected.active-result")), null == a && (a = this.search_results.down(".active-result")), null != a ? this.result_do_highlight(a) : void 0
          }, Chosen.prototype.no_results = function(a) {
              return this.search_results.insert(this.no_results_temp.evaluate({
                  terms: a
              })), this.form_field.fire("chosen:no_results", {
                  chosen: this
              })
          }, Chosen.prototype.no_results_clear = function() {
              var a, b;
              for (a = null, b = []; a = this.search_results.down(".no-results");) b.push(a.remove());
              return b
          }, Chosen.prototype.keydown_arrow = function() {
              var a;
              return this.results_showing && this.result_highlight ? (a = this.result_highlight.next(".active-result")) ? this.result_do_highlight(a) : void 0 : this.results_show()
          }, Chosen.prototype.keyup_arrow = function() {
              var a, b, c;
              return this.results_showing || this.is_multiple ? this.result_highlight ? (c = this.result_highlight.previousSiblings(), a = this.search_results.select("li.active-result"), b = c.intersect(a), b.length ? this.result_do_highlight(b.first()) : (this.choices_count() > 0 && this.results_hide(), this.result_clear_highlight())) : void 0 : this.results_show()
          }, Chosen.prototype.keydown_backstroke = function() {
              var a;
              return this.pending_backstroke ? (this.choice_destroy(this.pending_backstroke.down("a")), this.clear_backstroke()) : (a = this.search_container.siblings().last(), a && a.hasClassName("search-choice") && !a.hasClassName("search-choice-disabled") ? (this.pending_backstroke = a, this.pending_backstroke && this.pending_backstroke.addClassName("search-choice-focus"), this.single_backstroke_delete ? this.keydown_backstroke() : this.pending_backstroke.addClassName("search-choice-focus")) : void 0)
          }, Chosen.prototype.clear_backstroke = function() {
              return this.pending_backstroke && this.pending_backstroke.removeClassName("search-choice-focus"), this.pending_backstroke = null
          }, Chosen.prototype.keydown_checker = function(a) {
              var b, c;
              switch (b = null != (c = a.which) ? c : a.keyCode, this.search_field_scale(), 8 !== b && this.pending_backstroke && this.clear_backstroke(), b) {
                  case 8:
                      this.backstroke_length = this.search_field.value.length;
                      break;
                  case 9:
                      this.results_showing && !this.is_multiple && this.result_select(a), this.mouse_on_container = !1;
                      break;
                  case 13:
                      this.results_showing && a.preventDefault();
                      break;
                  case 32:
                      this.disable_search && a.preventDefault();
                      break;
                  case 38:
                      a.preventDefault(), this.keyup_arrow();
                      break;
                  case 40:
                      a.preventDefault(), this.keydown_arrow()
              }
          }, Chosen.prototype.search_field_scale = function() {
              var a, b, c, d, e, f, g, h, i;
              if (this.is_multiple) {
                  for (c = 0, g = 0, e = "position:absolute; left: -1000px; top: -1000px; display:none;", f = ["font-size", "font-style", "font-weight", "font-family", "line-height", "text-transform", "letter-spacing"], h = 0, i = f.length; i > h; h++) d = f[h], e += d + ":" + this.search_field.getStyle(d) + ";";
                  return a = new Element("div", {
                      style: e
                  }).update(this.search_field.value.escapeHTML()), document.body.appendChild(a), g = Element.measure(a, "width") + 25, a.remove(), b = this.container.getWidth(), g > b - 10 && (g = b - 10), this.search_field.setStyle({
                      width: g + "px"
                  })
              }
          }, Chosen
      }(AbstractChosen)
  }.call(this);;
  /* fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
  (function(r, G, f, v) {
      var J = f("html"),
          n = f(r),
          p = f(G),
          b = f.fancybox = function() {
              b.open.apply(this, arguments)
          },
          I = navigator.userAgent.match(/msie/i),
          B = null,
          s = G.createTouch !== v,
          t = function(a) {
              return a && a.hasOwnProperty && a instanceof f
          },
          q = function(a) {
              return a && "string" === f.type(a)
          },
          E = function(a) {
              return q(a) && 0 < a.indexOf("%")
          },
          l = function(a, d) {
              var e = parseInt(a, 10) || 0;
              d && E(a) && (e *= b.getViewport()[d] / 100);
              return Math.ceil(e)
          },
          w = function(a, b) {
              return l(a, b) + "px"
          };
      f.extend(b, {
          version: "2.1.5",
          defaults: {
              padding: 15,
              margin: 20,
              width: 800,
              height: 600,
              minWidth: 100,
              minHeight: 100,
              maxWidth: 9999,
              maxHeight: 9999,
              pixelRatio: 1,
              autoSize: !0,
              autoHeight: !1,
              autoWidth: !1,
              autoResize: !0,
              autoCenter: !s,
              fitToView: !0,
              aspectRatio: !1,
              topRatio: 0.5,
              leftRatio: 0.5,
              scrolling: "auto",
              wrapCSS: "",
              arrows: !0,
              closeBtn: !0,
              closeClick: !1,
              nextClick: !1,
              mouseWheel: !0,
              autoPlay: !1,
              playSpeed: 3E3,
              preload: 3,
              modal: !1,
              loop: !0,
              ajax: {
                  dataType: "html",
                  headers: {
                      "X-fancyBox": !0
                  }
              },
              iframe: {
                  scrolling: "auto",
                  preload: !0
              },
              swf: {
                  wmode: "transparent",
                  allowfullscreen: "true",
                  allowscriptaccess: "always"
              },
              keys: {
                  next: {
                      13: "left",
                      34: "up",
                      39: "left",
                      40: "up"
                  },
                  prev: {
                      8: "right",
                      33: "down",
                      37: "right",
                      38: "down"
                  },
                  close: [27],
                  play: [32],
                  toggle: [70]
              },
              direction: {
                  next: "left",
                  prev: "right"
              },
              scrollOutside: !0,
              index: 0,
              type: null,
              href: null,
              content: null,
              title: null,
              tpl: {
                  wrap: '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
                  image: '<img class="fancybox-image" src="{href}" alt="" />',
                  iframe: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' +
                      (I ? ' allowtransparency="true"' : "") + "></iframe>",
                  error: '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
                  closeBtn: '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
                  next: '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
                  prev: '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
              },
              openEffect: "fade",
              openSpeed: 250,
              openEasing: "swing",
              openOpacity: !0,
              openMethod: "zoomIn",
              closeEffect: "fade",
              closeSpeed: 250,
              closeEasing: "swing",
              closeOpacity: !0,
              closeMethod: "zoomOut",
              nextEffect: "elastic",
              nextSpeed: 250,
              nextEasing: "swing",
              nextMethod: "changeIn",
              prevEffect: "elastic",
              prevSpeed: 250,
              prevEasing: "swing",
              prevMethod: "changeOut",
              helpers: {
                  overlay: !0,
                  title: !0
              },
              onCancel: f.noop,
              beforeLoad: f.noop,
              afterLoad: f.noop,
              beforeShow: f.noop,
              afterShow: f.noop,
              beforeChange: f.noop,
              beforeClose: f.noop,
              afterClose: f.noop
          },
          group: {},
          opts: {},
          previous: null,
          coming: null,
          current: null,
          isActive: !1,
          isOpen: !1,
          isOpened: !1,
          wrap: null,
          skin: null,
          outer: null,
          inner: null,
          player: {
              timer: null,
              isActive: !1
          },
          ajaxLoad: null,
          imgPreload: null,
          transitions: {},
          helpers: {},
          open: function(a, d) {
              if (a && (f.isPlainObject(d) || (d = {}), !1 !== b.close(!0))) return f.isArray(a) || (a = t(a) ? f(a).get() : [a]), f.each(a, function(e, c) {
                  var k = {},
                      g, h, j, m, l;
                  "object" === f.type(c) && (c.nodeType && (c = f(c)), t(c) ? (k = {
                      href: c.data("fancybox-href") || c.attr("href"),
                      title: c.data("fancybox-title") || c.attr("title"),
                      isDom: !0,
                      element: c
                  }, f.metadata && f.extend(!0, k, c.metadata())) : k = c);
                  g = d.href || k.href || (q(c) ? c : null);
                  h = d.title !== v ? d.title : k.title || "";
                  m = (j = d.content || k.content) ? "html" : d.type || k.type;
                  !m && k.isDom && (m = c.data("fancybox-type"), m || (m = (m = c.prop("class").match(/fancybox\.(\w+)/)) ? m[1] : null));
                  q(g) && (m || (b.isImage(g) ? m = "image" : b.isSWF(g) ? m = "swf" : "#" === g.charAt(0) ? m = "inline" : q(c) && (m = "html", j = c)), "ajax" === m && (l = g.split(/\s+/, 2), g = l.shift(), l = l.shift()));
                  j || ("inline" === m ? g ? j = f(q(g) ? g.replace(/.*(?=#[^\s]+$)/, "") : g) : k.isDom && (j = c) : "html" === m ? j = g : !m && (!g && k.isDom) && (m = "inline", j = c));
                  f.extend(k, {
                      href: g,
                      type: m,
                      content: j,
                      title: h,
                      selector: l
                  });
                  a[e] = k
              }), b.opts = f.extend(!0, {}, b.defaults, d), d.keys !== v && (b.opts.keys = d.keys ? f.extend({}, b.defaults.keys, d.keys) : !1), b.group = a, b._start(b.opts.index)
          },
          cancel: function() {
              var a = b.coming;
              a && !1 !== b.trigger("onCancel") && (b.hideLoading(), b.ajaxLoad && b.ajaxLoad.abort(), b.ajaxLoad = null, b.imgPreload && (b.imgPreload.onload = b.imgPreload.onerror = null), a.wrap && a.wrap.stop(!0, !0).trigger("onReset").remove(), b.coming = null, b.current || b._afterZoomOut(a))
          },
          close: function(a) {
              b.cancel();
              !1 !== b.trigger("beforeClose") && (b.unbindEvents(), b.isActive && (!b.isOpen || !0 === a ? (f(".fancybox-wrap").stop(!0).trigger("onReset").remove(), b._afterZoomOut()) : (b.isOpen = b.isOpened = !1, b.isClosing = !0, f(".fancybox-item, .fancybox-nav").remove(), b.wrap.stop(!0, !0).removeClass("fancybox-opened"), b.transitions[b.current.closeMethod]())))
          },
          play: function(a) {
              var d = function() {
                      clearTimeout(b.player.timer)
                  },
                  e = function() {
                      d();
                      b.current && b.player.isActive && (b.player.timer = setTimeout(b.next, b.current.playSpeed))
                  },
                  c = function() {
                      d();
                      p.unbind(".player");
                      b.player.isActive = !1;
                      b.trigger("onPlayEnd")
                  };
              if (!0 === a || !b.player.isActive && !1 !== a) {
                  if (b.current && (b.current.loop || b.current.index < b.group.length - 1)) b.player.isActive = !0, p.bind({
                      "onCancel.player beforeClose.player": c,
                      "onUpdate.player": e,
                      "beforeLoad.player": d
                  }), e(), b.trigger("onPlayStart")
              } else c()
          },
          next: function(a) {
              var d = b.current;
              d && (q(a) || (a = d.direction.next), b.jumpto(d.index + 1, a, "next"))
          },
          prev: function(a) {
              var d = b.current;
              d && (q(a) || (a = d.direction.prev), b.jumpto(d.index - 1, a, "prev"))
          },
          jumpto: function(a, d, e) {
              var c = b.current;
              c && (a = l(a), b.direction = d || c.direction[a >= c.index ? "next" : "prev"], b.router = e || "jumpto", c.loop && (0 > a && (a = c.group.length + a % c.group.length), a %= c.group.length), c.group[a] !== v && (b.cancel(), b._start(a)))
          },
          reposition: function(a, d) {
              var e = b.current,
                  c = e ? e.wrap : null,
                  k;
              c && (k = b._getPosition(d), a && "scroll" === a.type ? (delete k.position, c.stop(!0, !0).animate(k, 200)) : (c.css(k), e.pos = f.extend({}, e.dim, k)))
          },
          update: function(a) {
              var d = a && a.type,
                  e = !d || "orientationchange" === d;
              e && (clearTimeout(B), B = null);
              b.isOpen && !B && (B = setTimeout(function() {
                  var c = b.current;
                  c && !b.isClosing && (b.wrap.removeClass("fancybox-tmp"), (e || "load" === d || "resize" === d && c.autoResize) && b._setDimension(), "scroll" === d && c.canShrink || b.reposition(a), b.trigger("onUpdate"), B = null)
              }, e && !s ? 0 : 300))
          },
          toggle: function(a) {
              b.isOpen && (b.current.fitToView = "boolean" === f.type(a) ? a : !b.current.fitToView, s && (b.wrap.removeAttr("style").addClass("fancybox-tmp"), b.trigger("onUpdate")), b.update())
          },
          hideLoading: function() {
              p.unbind(".loading");
              f("#fancybox-loading").remove()
          },
          showLoading: function() {
              var a, d;
              b.hideLoading();
              a = f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");
              p.bind("keydown.loading", function(a) {
                  if (27 === (a.which || a.keyCode)) a.preventDefault(), b.cancel()
              });
              b.defaults.fixed || (d = b.getViewport(), a.css({
                  position: "absolute",
                  top: 0.5 * d.h + d.y,
                  left: 0.5 * d.w + d.x
              }))
          },
          getViewport: function() {
              var a = b.current && b.current.locked || !1,
                  d = {
                      x: n.scrollLeft(),
                      y: n.scrollTop()
                  };
              a ? (d.w = a[0].clientWidth, d.h = a[0].clientHeight) : (d.w = s && r.innerWidth ? r.innerWidth : n.width(), d.h = s && r.innerHeight ? r.innerHeight : n.height());
              return d
          },
          unbindEvents: function() {
              b.wrap && t(b.wrap) && b.wrap.unbind(".fb");
              p.unbind(".fb");
              n.unbind(".fb")
          },
          bindEvents: function() {
              var a = b.current,
                  d;
              a && (n.bind("orientationchange.fb" + (s ? "" : " http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/resize.fb") + (a.autoCenter && !a.locked ? " http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/scroll.fb" : ""), b.update), (d = a.keys) && p.bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/keydown.fb", function(e) {
                  var c = e.which || e.keyCode,
                      k = e.target || e.srcElement;
                  if (27 === c && b.coming) return !1;
                  !e.ctrlKey && (!e.altKey && !e.shiftKey && !e.metaKey && (!k || !k.type && !f(k).is("[contenteditable]"))) && f.each(d, function(d, k) {
                      if (1 < a.group.length && k[c] !== v) return b[d](k[c]), e.preventDefault(), !1;
                      if (-1 < f.inArray(c, k)) return b[d](), e.preventDefault(), !1
                  })
              }), f.fn.mousewheel && a.mouseWheel && b.wrap.bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/mousewheel.fb", function(d, c, k, g) {
                  for (var h = f(d.target || null), j = !1; h.length && !j && !h.is(".fancybox-skin") && !h.is(".fancybox-wrap");) j = h[0] && !(h[0].style.overflow && "hidden" === h[0].style.overflow) && (h[0].clientWidth && h[0].scrollWidth > h[0].clientWidth || h[0].clientHeight && h[0].scrollHeight > h[0].clientHeight), h = f(h).parent();
                  if (0 !== c && !j && 1 < b.group.length && !a.canShrink) {
                      if (0 < g || 0 < k) b.prev(0 < g ? "down" : "left");
                      else if (0 > g || 0 > k) b.next(0 > g ? "up" : "right");
                      d.preventDefault()
                  }
              }))
          },
          trigger: function(a, d) {
              var e, c = d || b.coming || b.current;
              if (c) {
                  f.isFunction(c[a]) && (e = c[a].apply(c, Array.prototype.slice.call(arguments, 1)));
                  if (!1 === e) return !1;
                  c.helpers && f.each(c.helpers, function(d, e) {
                      if (e && b.helpers[d] && f.isFunction(b.helpers[d][a])) b.helpers[d][a](f.extend(!0, {}, b.helpers[d].defaults, e), c)
                  });
                  p.trigger(a)
              }
          },
          isImage: function(a) {
              return q(a) && a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)
          },
          isSWF: function(a) {
              return q(a) && a.match(/\.(swf)((\?|#).*)?$/i)
          },
          _start: function(a) {
              var d = {},
                  e, c;
              a = l(a);
              e = b.group[a] || null;
              if (!e) return !1;
              d = f.extend(!0, {}, b.opts, e);
              e = d.margin;
              c = d.padding;
              "number" === f.type(e) && (d.margin = [e, e, e, e]);
              "number" === f.type(c) && (d.padding = [c, c, c, c]);
              d.modal && f.extend(!0, d, {
                  closeBtn: !1,
                  closeClick: !1,
                  nextClick: !1,
                  arrows: !1,
                  mouseWheel: !1,
                  keys: null,
                  helpers: {
                      overlay: {
                          closeClick: !1
                      }
                  }
              });
              d.autoSize && (d.autoWidth = d.autoHeight = !0);
              "auto" === d.width && (d.autoWidth = !0);
              "auto" === d.height && (d.autoHeight = !0);
              d.group = b.group;
              d.index = a;
              b.coming = d;
              if (!1 === b.trigger("beforeLoad")) b.coming = null;
              else {
                  c = d.type;
                  e = d.href;
                  if (!c) return b.coming = null, b.current && b.router && "jumpto" !== b.router ? (b.current.index = a, b[b.router](b.direction)) : !1;
                  b.isActive = !0;
                  if ("image" === c || "swf" === c) d.autoHeight = d.autoWidth = !1, d.scrolling = "visible";
                  "image" === c && (d.aspectRatio = !0);
                  "iframe" === c && s && (d.scrolling = "scroll");
                  d.wrap = f(d.tpl.wrap).addClass("fancybox-" + (s ? "mobile" : "desktop") + " fancybox-type-" + c + " fancybox-tmp " + d.wrapCSS).appendTo(d.parent || "body");
                  f.extend(d, {
                      skin: f(".fancybox-skin", d.wrap),
                      outer: f(".fancybox-outer", d.wrap),
                      inner: f(".fancybox-inner", d.wrap)
                  });
                  f.each(["Top", "Right", "Bottom", "Left"], function(a, b) {
                      d.skin.css("padding" + b, w(d.padding[a]))
                  });
                  b.trigger("onReady");
                  if ("inline" === c || "html" === c) {
                      if (!d.content || !d.content.length) return b._error("content")
                  } else if (!e) return b._error("href");
                  "image" === c ? b._loadImage() : "ajax" === c ? b._loadAjax() : "iframe" === c ? b._loadIframe() : b._afterLoad()
              }
          },
          _error: function(a) {
              f.extend(b.coming, {
                  type: "html",
                  autoWidth: !0,
                  autoHeight: !0,
                  minWidth: 0,
                  minHeight: 0,
                  scrolling: "no",
                  hasError: a,
                  content: b.coming.tpl.error
              });
              b._afterLoad()
          },
          _loadImage: function() {
              var a = b.imgPreload = new Image;
              a.onload = function() {
                  this.onload = this.onerror = null;
                  b.coming.width = this.width / b.opts.pixelRatio;
                  b.coming.height = this.height / b.opts.pixelRatio;
                  b._afterLoad()
              };
              a.onerror = function() {
                  this.onload = this.onerror = null;
                  b._error("image")
              };
              a.src = b.coming.href;
              !0 !== a.complete && b.showLoading()
          },
          _loadAjax: function() {
              var a = b.coming;
              b.showLoading();
              b.ajaxLoad = f.ajax(f.extend({}, a.ajax, {
                  url: a.href,
                  error: function(a, e) {
                      b.coming && "abort" !== e ? b._error("ajax", a) : b.hideLoading()
                  },
                  success: function(d, e) {
                      "success" === e && (a.content = d, b._afterLoad())
                  }
              }))
          },
          _loadIframe: function() {
              var a = b.coming,
                  d = f(a.tpl.iframe.replace(/\{rnd\}/g, (new Date).getTime())).attr("scrolling", s ? "auto" : a.iframe.scrolling).attr("src", a.href);
              f(a.wrap).bind("onReset", function() {
                  try {
                      f(this).find("iframe").hide().attr("src", "//about:blank").end().empty()
                  } catch (a) {}
              });
              a.iframe.preload && (b.showLoading(), d.one("load", function() {
                  f(this).data("ready", 1);
                  s || f(this).bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/load.fb", b.update);
                  f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();
                  b._afterLoad()
              }));
              a.content = d.appendTo(a.inner);
              a.iframe.preload || b._afterLoad()
          },
          _preloadImages: function() {
              var a = b.group,
                  d = b.current,
                  e = a.length,
                  c = d.preload ? Math.min(d.preload, e - 1) : 0,
                  f, g;
              for (g = 1; g <= c; g += 1) f = a[(d.index + g) % e], "image" === f.type && f.href && ((new Image).src = f.href)
          },
          _afterLoad: function() {
              var a = b.coming,
                  d = b.current,
                  e, c, k, g, h;
              b.hideLoading();
              if (a && !1 !== b.isActive)
                  if (!1 === b.trigger("afterLoad", a, d)) a.wrap.stop(!0).trigger("onReset").remove(), b.coming = null;
                  else {
                      d && (b.trigger("beforeChange", d), d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());
                      b.unbindEvents();
                      e = a.content;
                      c = a.type;
                      k = a.scrolling;
                      f.extend(b, {
                          wrap: a.wrap,
                          skin: a.skin,
                          outer: a.outer,
                          inner: a.inner,
                          current: a,
                          previous: d
                      });
                      g = a.href;
                      switch (c) {
                          case "inline":
                          case "ajax":
                          case "html":
                              a.selector ? e = f("<div>").html(e).find(a.selector) : t(e) && (e.data("fancybox-placeholder") || e.data("fancybox-placeholder", f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()), e = e.show().detach(), a.wrap.bind("onReset", function() {
                                  f(this).find(e).length && e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder", !1)
                              }));
                              break;
                          case "image":
                              e = a.tpl.image.replace("{href}", g);
                              break;
                          case "swf":
                              e = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + g + '"></param>', h = "", f.each(a.swf, function(a, b) {
                                  e += '<param name="' + a + '" value="' + b + '"></param>';
                                  h += " " + a + '="' + b + '"'
                              }), e += '<embed src="' + g + '" type="application/x-shockwave-flash" width="100%" height="100%"' + h + "></embed></object>"
                      }(!t(e) || !e.parent().is(a.inner)) && a.inner.append(e);
                      b.trigger("beforeShow");
                      a.inner.css("overflow", "yes" === k ? "scroll" : "no" === k ? "hidden" : k);
                      b._setDimension();
                      b.reposition();
                      b.isOpen = !1;
                      b.coming = null;
                      b.bindEvents();
                      if (b.isOpened) {
                          if (d.prevMethod) b.transitions[d.prevMethod]()
                      } else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();
                      b.transitions[b.isOpened ? a.nextMethod : a.openMethod]();
                      b._preloadImages()
                  }
          },
          _setDimension: function() {
              var a = b.getViewport(),
                  d = 0,
                  e = !1,
                  c = !1,
                  e = b.wrap,
                  k = b.skin,
                  g = b.inner,
                  h = b.current,
                  c = h.width,
                  j = h.height,
                  m = h.minWidth,
                  u = h.minHeight,
                  n = h.maxWidth,
                  p = h.maxHeight,
                  s = h.scrolling,
                  q = h.scrollOutside ? h.scrollbarWidth : 0,
                  x = h.margin,
                  y = l(x[1] + x[3]),
                  r = l(x[0] + x[2]),
                  v, z, t, C, A, F, B, D, H;
              e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");
              x = l(k.outerWidth(!0) - k.width());
              v = l(k.outerHeight(!0) - k.height());
              z = y + x;
              t = r + v;
              C = E(c) ? (a.w - z) * l(c) / 100 : c;
              A = E(j) ? (a.h - t) * l(j) / 100 : j;
              if ("iframe" === h.type) {
                  if (H = h.content, h.autoHeight && 1 === H.data("ready")) try {
                      H[0].contentWindow.document.location && (g.width(C).height(9999), F = H.contents().find("body"), q && F.css("overflow-x", "hidden"), A = F.outerHeight(!0))
                  } catch (G) {}
              } else if (h.autoWidth || h.autoHeight) g.addClass("fancybox-tmp"), h.autoWidth || g.width(C), h.autoHeight || g.height(A), h.autoWidth && (C = g.width()), h.autoHeight && (A = g.height()), g.removeClass("fancybox-tmp");
              c = l(C);
              j = l(A);
              D = C / A;
              m = l(E(m) ? l(m, "w") - z : m);
              n = l(E(n) ? l(n, "w") - z : n);
              u = l(E(u) ? l(u, "h") - t : u);
              p = l(E(p) ? l(p, "h") - t : p);
              F = n;
              B = p;
              h.fitToView && (n = Math.min(a.w - z, n), p = Math.min(a.h - t, p));
              z = a.w - y;
              r = a.h - r;
              h.aspectRatio ? (c > n && (c = n, j = l(c / D)), j > p && (j = p, c = l(j * D)), c < m && (c = m, j = l(c / D)), j < u && (j = u, c = l(j * D))) : (c = Math.max(m, Math.min(c, n)), h.autoHeight && "iframe" !== h.type && (g.width(c), j = g.height()), j = Math.max(u, Math.min(j, p)));
              if (h.fitToView)
                  if (g.width(c).height(j), e.width(c + x), a = e.width(), y = e.height(), h.aspectRatio)
                      for (;
                          (a > z || y > r) && (c > m && j > u) && !(19 < d++);) j = Math.max(u, Math.min(p, j - 10)), c = l(j * D), c < m && (c = m, j = l(c / D)), c > n && (c = n, j = l(c / D)), g.width(c).height(j), e.width(c + x), a = e.width(), y = e.height();
                  else c = Math.max(m, Math.min(c, c - (a - z))), j = Math.max(u, Math.min(j, j - (y - r)));
              q && ("auto" === s && j < A && c + x + q < z) && (c += q);
              g.width(c).height(j);
              e.width(c + x);
              a = e.width();
              y = e.height();
              e = (a > z || y > r) && c > m && j > u;
              c = h.aspectRatio ? c < F && j < B && c < C && j < A : (c < F || j < B) && (c < C || j < A);
              f.extend(h, {
                  dim: {
                      width: w(a),
                      height: w(y)
                  },
                  origWidth: C,
                  origHeight: A,
                  canShrink: e,
                  canExpand: c,
                  wPadding: x,
                  hPadding: v,
                  wrapSpace: y - k.outerHeight(!0),
                  skinSpace: k.height() - j
              });
              !H && (h.autoHeight && j > u && j < p && !c) && g.height("auto")
          },
          _getPosition: function(a) {
              var d = b.current,
                  e = b.getViewport(),
                  c = d.margin,
                  f = b.wrap.width() + c[1] + c[3],
                  g = b.wrap.height() + c[0] + c[2],
                  c = {
                      position: "absolute",
                      top: c[0],
                      left: c[3]
                  };
              d.autoCenter && d.fixed && !a && g <= e.h && f <= e.w ? c.position = "fixed" : d.locked || (c.top += e.y, c.left += e.x);
              c.top = w(Math.max(c.top, c.top + (e.h - g) * d.topRatio));
              c.left = w(Math.max(c.left, c.left + (e.w - f) * d.leftRatio));
              return c
          },
          _afterZoomIn: function() {
              var a = b.current;
              a && (b.isOpen = b.isOpened = !0, b.wrap.css("overflow", "visible").addClass("fancybox-opened"), b.update(), (a.closeClick || a.nextClick && 1 < b.group.length) && b.inner.css("cursor", "pointer").bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/click.fb", function(d) {
                  !f(d.target).is("a") && !f(d.target).parent().is("a") && (d.preventDefault(), b[a.closeClick ? "close" : "next"]())
              }), a.closeBtn && f(a.tpl.closeBtn).appendTo(b.skin).bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/click.fb", function(a) {
                  a.preventDefault();
                  b.close()
              }), a.arrows && 1 < b.group.length && ((a.loop || 0 < a.index) && f(a.tpl.prev).appendTo(b.outer).bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/click.fb", b.prev), (a.loop || a.index < b.group.length - 1) && f(a.tpl.next).appendTo(b.outer).bind("http://demo.roadthemes.com/maroko/wp-content/cache/minify/000000/click.fb", b.next)), b.trigger("afterShow"), !a.loop && a.index === a.group.length - 1 ? b.play(!1) : b.opts.autoPlay && !b.player.isActive && (b.opts.autoPlay = !1, b.play()))
          },
          _afterZoomOut: function(a) {
              a = a || b.current;
              f(".fancybox-wrap").trigger("onReset").remove();
              f.extend(b, {
                  group: {},
                  opts: {},
                  router: !1,
                  current: null,
                  isActive: !1,
                  isOpened: !1,
                  isOpen: !1,
                  isClosing: !1,
                  wrap: null,
                  skin: null,
                  outer: null,
                  inner: null
              });
              b.trigger("afterClose", a)
          }
      });
      b.transitions = {
          getOrigPosition: function() {
              var a = b.current,
                  d = a.element,
                  e = a.orig,
                  c = {},
                  f = 50,
                  g = 50,
                  h = a.hPadding,
                  j = a.wPadding,
                  m = b.getViewport();
              !e && (a.isDom && d.is(":visible")) && (e = d.find("img:first"), e.length || (e = d));
              t(e) ? (c = e.offset(), e.is("img") && (f = e.outerWidth(), g = e.outerHeight())) : (c.top = m.y + (m.h - g) * a.topRatio, c.left = m.x + (m.w - f) * a.leftRatio);
              if ("fixed" === b.wrap.css("position") || a.locked) c.top -= m.y, c.left -= m.x;
              return c = {
                  top: w(c.top - h * a.topRatio),
                  left: w(c.left - j * a.leftRatio),
                  width: w(f + j),
                  height: w(g + h)
              }
          },
          step: function(a, d) {
              var e, c, f = d.prop;
              c = b.current;
              var g = c.wrapSpace,
                  h = c.skinSpace;
              if ("width" === f || "height" === f) e = d.end === d.start ? 1 : (a - d.start) / (d.end - d.start), b.isClosing && (e = 1 - e), c = "width" === f ? c.wPadding : c.hPadding, c = a - c, b.skin[f](l("width" === f ? c : c - g * e)), b.inner[f](l("width" === f ? c : c - g * e - h * e))
          },
          zoomIn: function() {
              var a = b.current,
                  d = a.pos,
                  e = a.openEffect,
                  c = "elastic" === e,
                  k = f.extend({
                      opacity: 1
                  }, d);
              delete k.position;
              c ? (d = this.getOrigPosition(), a.openOpacity && (d.opacity = 0.1)) : "fade" === e && (d.opacity = 0.1);
              b.wrap.css(d).animate(k, {
                  duration: "none" === e ? 0 : a.openSpeed,
                  easing: a.openEasing,
                  step: c ? this.step : null,
                  complete: b._afterZoomIn
              })
          },
          zoomOut: function() {
              var a = b.current,
                  d = a.closeEffect,
                  e = "elastic" === d,
                  c = {
                      opacity: 0.1
                  };
              e && (c = this.getOrigPosition(), a.closeOpacity && (c.opacity = 0.1));
              b.wrap.animate(c, {
                  duration: "none" === d ? 0 : a.closeSpeed,
                  easing: a.closeEasing,
                  step: e ? this.step : null,
                  complete: b._afterZoomOut
              })
          },
          changeIn: function() {
              var a = b.current,
                  d = a.nextEffect,
                  e = a.pos,
                  c = {
                      opacity: 1
                  },
                  f = b.direction,
                  g;
              e.opacity = 0.1;
              "elastic" === d && (g = "down" === f || "up" === f ? "top" : "left", "down" === f || "right" === f ? (e[g] = w(l(e[g]) - 200), c[g] = "+=200px") : (e[g] = w(l(e[g]) + 200), c[g] = "-=200px"));
              "none" === d ? b._afterZoomIn() : b.wrap.css(e).animate(c, {
                  duration: a.nextSpeed,
                  easing: a.nextEasing,
                  complete: b._afterZoomIn
              })
          },
          changeOut: function() {
              var a = b.previous,
                  d = a.prevEffect,
                  e = {
                      opacity: 0.1
                  },
                  c = b.direction;
              "elastic" === d && (e["down" === c || "up" === c ? "top" : "left"] = ("up" === c || "left" === c ? "-" : "+") + "=200px");
              a.wrap.animate(e, {
                  duration: "none" === d ? 0 : a.prevSpeed,
                  easing: a.prevEasing,
                  complete: function() {
                      f(this).trigger("onReset").remove()
                  }
              })
          }
      };
      b.helpers.overlay = {
          defaults: {
              closeClick: !0,
              speedOut: 200,
              showEarly: !0,
              css: {},
              locked: !s,
              fixed: !0
          },
          overlay: null,
          fixed: !1,
          el: f("html"),
          create: function(a) {
              a = f.extend({}, this.defaults, a);
              this.overlay && this.close();
              this.overlay = f('<div class="fancybox-overlay"></div>').appendTo(b.coming ? b.coming.parent : a.parent);
              this.fixed = !1;
              a.fixed && b.defaults.fixed && (this.overlay.addClass("fancybox-overlay-fixed"), this.fixed = !0)
          },
          open: function(a) {
              var d = this;
              a = f.extend({}, this.defaults, a);
              this.overlay ? this.overlay.unbind(".overlay").width("auto").height("auto") : this.create(a);
              this.fixed || (n.bind("resize.overlay", f.proxy(this.update, this)), this.update());
              a.closeClick && this.overlay.bind("click.overlay", function(a) {
                  if (f(a.target).hasClass("fancybox-overlay")) return b.isActive ? b.close() : d.close(), !1
              });
              this.overlay.css(a.css).show()
          },
          close: function() {
              var a, b;
              n.unbind("resize.overlay");
              this.el.hasClass("fancybox-lock") && (f(".fancybox-margin").removeClass("fancybox-margin"), a = n.scrollTop(), b = n.scrollLeft(), this.el.removeClass("fancybox-lock"), n.scrollTop(a).scrollLeft(b));
              f(".fancybox-overlay").remove().hide();
              f.extend(this, {
                  overlay: null,
                  fixed: !1
              })
          },
          update: function() {
              var a = "100%",
                  b;
              this.overlay.width(a).height("100%");
              I ? (b = Math.max(G.documentElement.offsetWidth, G.body.offsetWidth), p.width() > b && (a = p.width())) : p.width() > n.width() && (a = p.width());
              this.overlay.width(a).height(p.height())
          },
          onReady: function(a, b) {
              var e = this.overlay;
              f(".fancybox-overlay").stop(!0, !0);
              e || this.create(a);
              a.locked && (this.fixed && b.fixed) && (e || (this.margin = p.height() > n.height() ? f("html").css("margin-right").replace("px", "") : !1), b.locked = this.overlay.append(b.wrap), b.fixed = !1);
              !0 === a.showEarly && this.beforeShow.apply(this, arguments)
          },
          beforeShow: function(a, b) {
              var e, c;
              b.locked && (!1 !== this.margin && (f("*").filter(function() {
                  return "fixed" === f(this).css("position") && !f(this).hasClass("fancybox-overlay") && !f(this).hasClass("fancybox-wrap")
              }).addClass("fancybox-margin"), this.el.addClass("fancybox-margin")), e = n.scrollTop(), c = n.scrollLeft(), this.el.addClass("fancybox-lock"), n.scrollTop(e).scrollLeft(c));
              this.open(a)
          },
          onUpdate: function() {
              this.fixed || this.update()
          },
          afterClose: function(a) {
              this.overlay && !b.coming && this.overlay.fadeOut(a.speedOut, f.proxy(this.close, this))
          }
      };
      b.helpers.title = {
          defaults: {
              type: "float",
              position: "bottom"
          },
          beforeShow: function(a) {
              var d = b.current,
                  e = d.title,
                  c = a.type;
              f.isFunction(e) && (e = e.call(d.element, d));
              if (q(e) && "" !== f.trim(e)) {
                  d = f('<div class="fancybox-title fancybox-title-' + c + '-wrap">' + e + "</div>");
                  switch (c) {
                      case "inside":
                          c = b.skin;
                          break;
                      case "outside":
                          c = b.wrap;
                          break;
                      case "over":
                          c = b.inner;
                          break;
                      default:
                          c = b.skin, d.appendTo("body"), I && d.width(d.width()), d.wrapInner('<span class="child"></span>'), b.current.margin[2] += Math.abs(l(d.css("margin-bottom")))
                  }
                  d["top" === a.position ? "prependTo" : "appendTo"](c)
              }
          }
      };
      f.fn.fancybox = function(a) {
          var d, e = f(this),
              c = this.selector || "",
              k = function(g) {
                  var h = f(this).blur(),
                      j = d,
                      k, l;
                  !g.ctrlKey && (!g.altKey && !g.shiftKey && !g.metaKey) && !h.is(".fancybox-wrap") && (k = a.groupAttr || "data-fancybox-group", l = h.attr(k), l || (k = "rel", l = h.get(0)[k]), l && ("" !== l && "nofollow" !== l) && (h = c.length ? f(c) : e, h = h.filter("[" + k + '="' + l + '"]'), j = h.index(this)), a.index = j, !1 !== b.open(h, a) && g.preventDefault())
              };
          a = a || {};
          d = a.index || 0;
          !c || !1 === a.live ? e.unbind("click.fb-start").bind("click.fb-start", k) : p.undelegate(c, "click.fb-start").delegate(c + ":not('.fancybox-item, .fancybox-nav')", "click.fb-start", k);
          this.filter("[data-fancybox-start=1]").trigger("click");
          return this
      };
      p.ready(function() {
          var a, d;
          f.scrollbarWidth === v && (f.scrollbarWidth = function() {
              var a = f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),
                  b = a.children(),
                  b = b.innerWidth() - b.height(99).innerWidth();
              a.remove();
              return b
          });
          if (f.support.fixedPosition === v) {
              a = f.support;
              d = f('<div style="position:fixed;top:20px;"></div>').appendTo("body");
              var e = 20 === d[0].offsetTop || 15 === d[0].offsetTop;
              d.remove();
              a.fixedPosition = e
          }
          f.extend(b.defaults, {
              scrollbarWidth: f.scrollbarWidth(),
              fixed: f.support.fixedPosition,
              parent: f("body")
          });
          a = f(r).width();
          J.addClass("fancybox-lock-test");
          d = f(r).width();
          J.removeClass("fancybox-lock-test");
          f("<style type='text/css'>.fancybox-margin{margin-right:" + (d - a) + "px;}</style>").appendTo("head")
      })
  })(window, document, jQuery);;
  /*
   * Buttons helper for fancyBox
   * version: 1.0.5 (Mon, 15 Oct 2012)
   * @requires fancyBox v2.0 or later
   *
   * Usage:
   *     $(".fancybox").fancybox({
   *         helpers : {
   *             buttons: {
   *                 position : 'top'
   *             }
   *         }
   *     });
   *
   */
  (function($) {
      var F = $.fancybox;
      F.helpers.buttons = {
          defaults: {
              skipSingle: false,
              position: 'top',
              tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
          },
          list: null,
          buttons: null,
          beforeLoad: function(opts, obj) {
              if (opts.skipSingle && obj.group.length < 2) {
                  obj.helpers.buttons = false;
                  obj.closeBtn = true;
                  return;
              }
              obj.margin[opts.position === 'bottom' ? 2 : 0] += 30;
          },
          onPlayStart: function() {
              if (this.buttons) {
                  this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
              }
          },
          onPlayEnd: function() {
              if (this.buttons) {
                  this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
              }
          },
          afterShow: function(opts, obj) {
              var buttons = this.buttons;
              if (!buttons) {
                  this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
                  buttons = {
                      prev: this.list.find('.btnPrev').click(F.prev),
                      next: this.list.find('.btnNext').click(F.next),
                      play: this.list.find('.btnPlay').click(F.play),
                      toggle: this.list.find('.btnToggle').click(F.toggle),
                      close: this.list.find('.btnClose').click(F.close)
                  }
              }
              if (obj.index > 0 || obj.loop) {
                  buttons.prev.removeClass('btnDisabled');
              } else {
                  buttons.prev.addClass('btnDisabled');
              }
              if (obj.loop || obj.index < obj.group.length - 1) {
                  buttons.next.removeClass('btnDisabled');
                  buttons.play.removeClass('btnDisabled');
              } else {
                  buttons.next.addClass('btnDisabled');
                  buttons.play.addClass('btnDisabled');
              }
              this.buttons = buttons;
              this.onUpdate(opts, obj);
          },
          onUpdate: function(opts, obj) {
              var toggle;
              if (!this.buttons) {
                  return;
              }
              toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
              if (obj.canShrink) {
                  toggle.addClass('btnToggleOn');
              } else if (!obj.canExpand) {
                  toggle.addClass('btnDisabled');
              }
          },
          beforeClose: function() {
              if (this.list) {
                  this.list.remove();
              }
              this.list = null;
              this.buttons = null;
          }
      };
  }(jQuery));;
  /*
   * Media helper for fancyBox
   * version: 1.0.6 (Fri, 14 Jun 2013)
   * @requires fancyBox v2.0 or later
   *
   * Usage:
   *     $(".fancybox").fancybox({
   *         helpers : {
   *             media: true
   *         }
   *     });
   *
   * Set custom URL parameters:
   *     $(".fancybox").fancybox({
   *         helpers : {
   *             media: {
   *                 youtube : {
   *                     params : {
   *                         autoplay : 0
   *                     }
   *                 }
   *             }
   *         }
   *     });
   *
   * Or:
   *     $(".fancybox").fancybox({,
   *         helpers : {
   *             media: true
   *         },
   *         youtube : {
   *             autoplay: 0
   *         }
   *     });
   *
   *  Supports:
   *
   *      Youtube
   *          http://www.youtube.com/watch?v=opj24KnzrWo
   *          http://www.youtube.com/embed/opj24KnzrWo
   *          http://youtu.be/opj24KnzrWo
   *   http://www.youtube-nocookie.com/embed/opj24KnzrWo
   *      Vimeo
   *          http://vimeo.com/40648169
   *          http://vimeo.com/channels/staffpicks/38843628
   *          http://vimeo.com/groups/surrealism/videos/36516384
   *          http://player.vimeo.com/video/45074303
   *      Metacafe
   *          http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
   *          http://www.metacafe.com/watch/7635964/
   *      Dailymotion
   *          http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
   *      Twitvid
   *          http://twitvid.com/QY7MD
   *      Twitpic
   *          http://twitpic.com/7p93st
   *      Instagram
   *          http://instagr.am/p/IejkuUGxQn/
   *          http://instagram.com/p/IejkuUGxQn/
   *      Google maps
   *          http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
   *          http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
   *          http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
   */
  (function($) {
      "use strict";
      var F = $.fancybox,
          format = function(url, rez, params) {
              params = params || '';
              if ($.type(params) === "object") {
                  params = $.param(params, true);
              }
              $.each(rez, function(key, value) {
                  url = url.replace('$' + key, value || '');
              });
              if (params.length) {
                  url += (url.indexOf('?') > 0 ? '&' : '?') + params;
              }
              return url;
          };
      F.helpers.media = {
          defaults: {
              youtube: {
                  matcher: /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
                  params: {
                      autoplay: 1,
                      autohide: 1,
                      fs: 1,
                      rel: 0,
                      hd: 1,
                      wmode: 'opaque',
                      enablejsapi: 1
                  },
                  type: 'iframe',
                  url: '//www.youtube.com/embed/$3'
              },
              vimeo: {
                  matcher: /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
                  params: {
                      autoplay: 1,
                      hd: 1,
                      show_title: 1,
                      show_byline: 1,
                      show_portrait: 0,
                      fullscreen: 1
                  },
                  type: 'iframe',
                  url: '//player.vimeo.com/video/$1'
              },
              metacafe: {
                  matcher: /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
                  params: {
                      autoPlay: 'yes'
                  },
                  type: 'swf',
                  url: function(rez, params, obj) {
                      obj.swf.flashVars = 'playerVars=' + $.param(params, true);
                      return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
                  }
              },
              dailymotion: {
                  matcher: /dailymotion.com\/video\/(.*)\/?(.*)/,
                  params: {
                      additionalInfos: 0,
                      autoStart: 1
                  },
                  type: 'swf',
                  url: '//www.dailymotion.com/swf/video/$1'
              },
              twitvid: {
                  matcher: /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
                  params: {
                      autoplay: 0
                  },
                  type: 'iframe',
                  url: 'http://www.twitvid.com/embed.php?guid=$1'
              },
              twitpic: {
                  matcher: /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
                  type: 'image',
                  url: '//twitpic.com/show/full/$1/'
              },
              instagram: {
                  matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
                  type: 'image',
                  url: '//$1/p/$2/media/?size=l'
              },
              google_maps: {
                  matcher: /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
                  type: 'iframe',
                  url: function(rez) {
                      return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
                  }
              }
          },
          beforeLoad: function(opts, obj) {
              var url = obj.href || '',
                  type = false,
                  what, item, rez, params;
              for (what in opts) {
                  if (opts.hasOwnProperty(what)) {
                      item = opts[what];
                      rez = url.match(item.matcher);
                      if (rez) {
                          type = item.type;
                          params = $.extend(true, {}, item.params, obj[what] || ($.isPlainObject(opts[what]) ? opts[what].params : null));
                          url = $.type(item.url) === "function" ? item.url.call(this, rez, params, obj) : format(item.url, rez, params);
                          break;
                      }
                  }
              }
              if (type) {
                  obj.href = url;
                  obj.type = type;
                  obj.autoHeight = false;
              }
          }
      };
  }(jQuery));