(function (c) {
  var M = function (a) {
    a = c.extend(c.Event(a), function () {
      for (var a = {
      }, z = c.address.parameterNames(), d = 0, e = z.length; d < e; d++) a[z[d]] = c.address.parameter(z[d]);
      return {
        value: c.address.value(),
        path: c.address.path(),
        pathNames: c.address.pathNames(),
        parameterNames: z,
        parameters: a,
        queryString: c.address.queryString()
      }
    }.call(c.address));
    c(c.address).trigger(a);
    return a
  },
  u = function (a) {
    return Array.prototype.slice.call(a)
  },
  A = function (a, b, z) {
    c().bind.apply(c(c.address), Array.prototype.slice.call(arguments));
    return c.address
  },
  $ = function (a, b) {
    c().unbind.apply(c(c.address), Array.prototype.slice.call(arguments));
    return c.address
  },
  B = function () {
    return v.pushState && d.state !== j
  },
  Q = function () {
    return ('/' + k.pathname.replace(RegExp(d.state), '') + k.search + (I() ? '#' + I()  : '')).replace(P, '/')
  },
  I = function () {
    var a = k.href.indexOf('#');
    return - 1 != a ? p(k.href.substr(a + 1), h)  : ''
  },
  q = function () {
    return B() ? Q()  : I()
  },
  N = function (a) {
    a = a.toString();
    return (d.strict && '/' != a.substr(0, 1) ? '/' : '') + a
  },
  p = function (a, b) {
    return d.crawlable && b ? ('' !== a ? '!' : '') + a : a.replace(/^\!/, '')
  },
  r = function (a, b) {
    return parseInt(a.css(b), 10)
  },
  E = function () {
    if (!t) {
      var a = q();
      decodeURI(e) != decodeURI(a) && (s && 7 > w ? k.reload()  : (s && (!C && d.history) && n(J, 50), _old = e, e = a, D(h)))
    }
  },
  D = function (a) {
    var b = M(R);
    a = M(a ? S : T);
    n(aa, 10);
    if (b.isDefaultPrevented() || a.isDefaultPrevented()) e = _old,
    B() ? v.popState({
    }, '', d.state.replace(/\/$/, '') + ('' === e ? '/' : e))  : (t = l, x ? d.history ? k.hash = '#' + p(e, l)  : k.replace('#' + p(e, l))  : e != q() && (d.history ? k.hash = '#' + p(e, l)  : k.replace('#' + p(e, l))), s && !C && d.history && n(J, 50), x ? n(function () {
      t = h
    }, 1)  : t = h)
  },
  aa = function () {
    if ('null' !== d.tracker && d.tracker !== F) {
      var a = c.isFunction(d.tracker) ? d.tracker : f[d.tracker],
      b = (k.pathname + k.search + (c.address && !B() ? c.address.value()  : '')).replace(/\/\//, '/').replace(/^\/$/, '');
      c.isFunction(a) ? a(b)  : c.isFunction(f.urchinTracker) ? f.urchinTracker(b)  : f.pageTracker !== j && c.isFunction(f.pageTracker._trackPageview) ? f.pageTracker._trackPageview(b)  : f._gaq !== j && c.isFunction(f._gaq.push) && f._gaq.push(['_trackPageview',
      decodeURI(b)])
    }
  },
  J = function () {
    var a = 'javascript:' + h + ';document.open();document.writeln(\'<html><head><title>' + m.title.replace(/\'/g, '\\\'') + '</title><script>var ' + y + ' = "' + encodeURIComponent(q()).replace(/\'/g, '\\\'') + (m.domain != k.hostname ? '";document.domain="' + m.domain : '') + '";</script></head></html>\');document.close();';
    7 > w ? g.src = a : g.contentWindow.location.replace(a)
  },
  V = function () {
    if (G && - 1 != U) {
      var a,
      b,
      c = G.substr(U + 1).split('&');
      for (a = 0; a < c.length; a++) b = c[a].split('='),
      /^(autoUpdate|crawlable|history|strict|wrap)$/.test(b[0]) && (d[b[0]] = isNaN(b[1]) ? /^(true|yes)$/i.test(b[1])  : 0 !== parseInt(b[1], 10)),
      /^(state|tracker)$/.test(b[0]) && (d[b[0]] = b[1]);
      G = F
    }
    _old = e;
    e = q()
  },
  X = function () {
    if (!W) {
      W = l;
      V();
      var a = function () {
        var a,
        b = c('a'),
        e = b.size(),
        f = - 1,
        j = function () {
          ++f != e && (a = c(b.get(f)), a.is('[rel*="address:"]') && a.address('[rel*="address:"]'), n(j, 1))
        };
        n(j, 1);
        if (d.crawlable) {
          var h = k.pathname.replace(/\/$/, '');
          - 1 != c('body').html().indexOf('_escaped_fragment_') && c('a[href]:not([href^=http]), a[href*="' + document.domain + '"]').each(function () {
            var a = c(this).attr('href').replace(/^http:/, '').replace(RegExp(h + '/?$'), '');
            ('' === a || - 1 != a.indexOf('_escaped_fragment_')) && c(this).attr('href', '#' + encodeURI(decodeURIComponent(a.replace(/\/(.*)\?_escaped_fragment_=(.*)$/, '!$2'))))
          })
        }
      },
      b = c('body').ajaxComplete(a);
      a();
      d.wrap && (c('body > *').wrapAll('<div style="padding:' + (r(b, 'marginTop') + r(b, 'paddingTop')) + 'px ' + (r(b, 'marginRight') + r(b, 'paddingRight')) + 'px ' + (r(b, 'marginBottom') + r(b, 'paddingBottom')) + 'px ' + (r(b, 'marginLeft') + r(b, 'paddingLeft')) + 'px;" />').parent().wrap('<div id="' + y + '" style="height:100%;overflow:auto;position:relative;' + (x && !window.statusbar.visible ? 'resize:both;' : '') + '" />'), c('html, body').css({
        height: '100%',
        margin: 0,
        padding: 0,
        overflow: 'hidden'
      }), x && c('<style type="text/css" />').appendTo('head').text('#' + y + '::-webkit-resizer { background-color: #fff; }'));
      s && !C && (a = m.getElementsByTagName('frameset') [0], g = m.createElement((a ? '' : 'i') + 'frame'), g.src = 'javascript:' + h, a ? (a.insertAdjacentElement('beforeEnd', g), a[a.cols ? 'cols' : 'rows'] += ',0', g.noResize = l, g.frameBorder = g.frameSpacing = 0)  : (g.style.display = 'none', g.style.width = g.style.height = 0, g.tabIndex = - 1, m.body.insertAdjacentElement('afterBegin', g)), n(function () {
        c(g).bind('load', function () {
          var a = g.contentWindow;
          _old = e;
          e = a[y] !== j ? a[y] : '';
          e != q() && (D(h), k.hash = p(e, l))
        });
        g.contentWindow[y] === j && J()
      }, 50));
      n(function () {
        M('init');
        D(h)
      }, 1);
      B() || (s && 7 < w || !s && C ? f.addEventListener ? f.addEventListener(H, E, h)  : f.attachEvent && f.attachEvent('on' + H, E)  : ba(E, 50));
      'state' in window.history && c(window).trigger('popstate')
    }
  },
  j,
  F = null,
  y = 'jQueryAddress',
  H = 'hashchange',
  R = 'change',
  S = 'internalChange',
  T = 'externalChange',
  l = !0,
  h = !1,
  d = {
    autoUpdate: l,
    crawlable: h,
    history: l,
    strict: l,
    wrap: h
  },
  K = navigator.userAgent.toLowerCase(),
  w = 9,
  s = - 1 !== K.search('msie'),
  x = - 1 !== K.search('webkit'),
  f;
  try {
    f = top.document !== j && top.document.title !== j ? top : window
  } catch (da) {
    f = window
  }
  var m = f.document,
  v = f.history,
  k = f.location,
  ba = setInterval,
  n = setTimeout,
  P = /\/{2,9}/g,
  C = 'on' + H in f,
  g,
  G = c('script:last').attr('src'),
  U = G ? G.indexOf('?')  : - 1,
  O = m.title,
  t = h,
  W = h,
  Y = l,
  L = h,
  e = q();
  _old = e;
  if (s) {
    w = parseFloat(K.substr(K.indexOf('msie') + 4));
    m.documentMode && m.documentMode != w && (w = 8 != m.documentMode ? 7 : 8);
    var Z = m.onpropertychange;
    m.onpropertychange = function () {
      Z && Z.call(m);
      m.title != O && - 1 != m.title.indexOf('#' + q()) && (m.title = O)
    }
  }
  v.navigationMode && (v.navigationMode = 'compatible');
  if ('complete' == document.readyState) var ca = setInterval(function () {
    c.address && (X(), clearInterval(ca))
  }, 50);
   else V(),
  c(X);
  c(window).bind('popstate', function () {
    decodeURI(e) != decodeURI(q()) && (_old = e, e = q(), D(h))
  }).bind('unload', function () {
    f.removeEventListener ? f.removeEventListener(H, E, h)  : f.detachEvent && f.detachEvent('on' + H, E)
  });
  c.address = {
    bind: function (a, b, c) {
      return A.apply(this, u(arguments))
    },
    unbind: function (a, b) {
      return $.apply(this, u(arguments))
    },
    init: function (a, b) {
      return A.apply(this, [
        'init'
      ].concat(u(arguments)))
    },
    change: function (a, b) {
      return A.apply(this, [
        R
      ].concat(u(arguments)))
    },
    internalChange: function (a, b) {
      return A.apply(this, [
        S
      ].concat(u(arguments)))
    },
    externalChange: function (a, b) {
      return A.apply(this, [
        T
      ].concat(u(arguments)))
    },
    baseURL: function () {
      var a = k.href;
      - 1 != a.indexOf('#') && (a = a.substr(0, a.indexOf('#')));
      /\/$/.test(a) && (a = a.substr(0, a.length - 1));
      return a
    },
    autoUpdate: function (a) {
      return a !== j ? (d.autoUpdate = a, this)  : d.autoUpdate
    },
    crawlable: function (a) {
      return a !== j ? (d.crawlable = a, this)  : d.crawlable
    },
    history: function (a) {
      return a !== j ? (d.history = a, this)  : d.history
    },
    state: function (a) {
      if (a !== j) {
        d.state = a;
        var b = Q();
        d.state !== j && (v.pushState ? '/#/' == b.substr(0, 3) && k.replace(d.state.replace(/^\/$/, '') + b.substr(2))  : '/' != b && b.replace(/^\/#/, '') != I() && n(function () {
          k.replace(d.state.replace(/^\/$/, '') + '/#' + b)
        }, 1));
        return this
      }
      return d.state
    },
    strict: function (a) {
      return a !== j ? (d.strict = a, this)  : d.strict
    },
    tracker: function (a) {
      return a !== j ? (d.tracker = a, this)  : d.tracker
    },
    wrap: function (a) {
      return a !== j ? (d.wrap = a, this)  : d.wrap
    },
    update: function () {
      L = l;
      this.value(e);
      L = h;
      return this
    },
    title: function (a) {
      return a !== j ? (n(function () {
        O = m.title = a;
        Y && (g && g.contentWindow && g.contentWindow.document) && (g.contentWindow.document.title = a, Y = h)
      }, 50), this)  : m.title
    },
    value: function (a) {
      if (a !== j) {
        a = N(a);
        '/' == a && (a = '');
        if (e == a && !L) return;
        _old = e;
        e = a;
        if (d.autoUpdate || L) if (D(l), B()) v[d.history ? 'pushState' : 'replaceState']({
        }, '', d.state.replace(/\/$/, '') + ('' === e ? '/' : e));
         else t = l,
        x ? d.history ? k.hash = '#' + p(e, l)  : k.replace('#' + p(e, l))  : e != q() && (d.history ? k.hash = '#' + p(e, l)  : k.replace('#' + p(e, l))),
        s && !C && d.history && n(J, 50),
        x ? n(function () {
          t = h
        }, 1)  : t = h;
        return this
      }
      return N(e)
    },
    path: function (a) {
      if (a !== j) {
        var b = this.queryString(),
        c = this.hash();
        this.value(a + (b ? '?' + b : '') + (c ? '#' + c : ''));
        return this
      }
      return N(e).split('#') [0].split('?') [0]
    },
    pathNames: function () {
      var a = this.path(),
      b = a.replace(P, '/').split('/');
      ('/' == a.substr(0, 1) || 0 === a.length) && b.splice(0, 1);
      '/' == a.substr(a.length - 1, 1) && b.splice(b.length - 1, 1);
      return b
    },
    queryString: function (a) {
      if (a !== j) {
        var b = this.hash();
        this.value(this.path() + (a ? '?' + a : '') + (b ? '#' + b : ''));
        return this
      }
      a = e.split('?');
      return a.slice(1, a.length).join('?').split('#') [0]
    },
    parameter: function (a, b, d) {
      var e,
      f;
      if (b !== j) {
        var h = this.parameterNames();
        f = [
        ];
        b = b === j || b === F ? '' : b.toString();
        for (e = 0; e < h.length; e++) {
          var k = h[e],
          g = this.parameter(k);
          'string' == typeof g && (g = [
            g
          ]);
          k == a && (g = b === F || '' === b ? [
          ] : d ? g.concat([b])  : [
            b
          ]);
          for (var l = 0; l < g.length; l++) f.push(k + '=' + g[l])
        }
        - 1 == c.inArray(a, h) && (b !== F && '' !== b) && f.push(a + '=' + b);
        this.queryString(f.join('&'));
        return this
      }
      if (b = this.queryString()) {
        d = [
        ];
        f = b.split('&');
        for (e = 0; e < f.length; e++) b = f[e].split('='),
        b[0] == a && d.push(b.slice(1).join('='));
        if (0 !== d.length) return 1 != d.length ? d : d[0]
      }
    },
    parameterNames: function () {
      var a = this.queryString(),
      b = [
      ];
      if (a && - 1 != a.indexOf('=')) for (var a = a.split('&'), d = 0; d < a.length; d++) {
        var e = a[d].split('=') [0];
        - 1 == c.inArray(e, b) && b.push(e)
      }
      return b
    },
    hash: function (a) {
      if (a !== j) return this.value(e.split('#') [0] + (a ? '#' + a : '')),
      this;
      a = e.split('#');
      return a.slice(1, a.length).join('#')
    }
  };
  c.fn.address = function (a) {
    var b;
    'string' == typeof a && (b = a, a = void 0);
    c(this).attr('address') || c(b ? b : this).live('click', function (b) {
      if (b.shiftKey || b.ctrlKey || b.metaKey || 2 == b.which) return !0;
      c(this).is('a') && (b.preventDefault(), b = a ? a.call(this)  : /address:/.test(c(this).attr('rel')) ? c(this).attr('rel').split('address:') [1].split(' ') [0] : void 0 !== c.address.state() && !/^\/?$/.test(c.address.state()) ? c(this).attr('href').replace(RegExp('^(.*' + c.address.state() + '|\\.)'), '')  : c(this).attr('href').replace(/^(#\!?|\.)/, ''), c.address.value(b))
    }).live('submit', function (b) {
      c(this).is('form') && (b.preventDefault(), b = c(this).attr('action'), b = a ? a.call(this)  : ( - 1 != b.indexOf('?') ? b.replace(/&$/, '')  : b + '?') + c(this).serialize(), c.address.value(b))
    }).attr('address', !0);
    return this
  }
}) (jQuery);
(function () {
  function z() {
    G = !1;
    for (V = t; V--; ) {
      A = h[V];
      if (!A) break;
      A.isCSS || (A.cycle() ? G = !0 : A.stop(!1, A.complete, !1, !0))
    }
    O ? G ? O(z)  : (H(z), A = F = null)  : G ? u || (W = setInterval(z, na))  : (clearInterval(W), A = F = null);
    u = G
  }
  function X(a) {
    a.cjFadeIn ? (delete a.cjFadeIn, a.style.opacity = 1, a.style.visibility = 'visible')  : a.cjFadeOut && (delete a.cjFadeOut, a.style.display = 'none')
  }
  function Y() {
    u || z()
  }
  function P(a, b, c, d) {
    h.splice(h.indexOf(a), 1);
    t = h.length;
    c && c(b, d)
  }
  function fa(a) {
    a.stopPropagation();
    (a = this.cj) && a.stop(a.complete)
  }
  function ga(a, b, c) {
    var d = {
    },
    n;
    b = b.to;
    for (n in b) b.hasOwnProperty(n) && (d[n] = b[n]);
    Jacked.tween(a, d, c)
  }
  function ha(a, b) {
    return this['webkit' + a + b] || this['moz' + a + b] || this['o' + a + b] || this[a + b] || null
  }
  function ia(a) {
    var b;
    if (b = oa.exec(a)) return [parseInt(b[1], 16),
    parseInt(b[2], 16),
    parseInt(b[3], 16),
    1];
    if (b = pa.exec(a)) return [17 * parseInt(b[1], 16),
    17 * parseInt(b[2], 16),
    17 * parseInt(b[3], 16),
    1]
  }
  function ja() {
    for (var a in I) if (I.hasOwnProperty(a) && a === Q) {
      Z = I[a];
      break
    }
  }
  function qa() {
    if ('ontouchend' in document) {
      if ( - 1 !== y.search('iphone') || - 1 !== y.search('ipad')) return 'ios';
      if ( - 1 !== y.search('android') || - 1 !== y.search('applewebkit')) return 'android';
      if ( - 1 !== y.search('msie')) return 'winMobile'
    }
    return null
  }
  var R = window.getComputedStyle ? document.defaultView.getComputedStyle : null,
  O = ha('Request', 'AnimationFrame'),
  H = ha('Cancel', 'AnimationFrame'),
  s = document.createElement('span').style,
  y = navigator.userAgent.toLowerCase(),
  J = 'Quint.easeOut',
  K = 500,
  f;
  f = y.search('msie');
  - 1 === f ? f = [
    33.3,
    0
  ] : (f = parseInt(y.substr(f + 4, f + 5), 10), f = [
    9 <= f ? 16.6 : 33.3,
    f
  ]);
  var h = [
  ],
  l = 'WebkitTransition' in s ? [
    'webkitTransitionEnd',
    '-webkit-transition',
    - 1 !== y.search('chrome') ? 'chrome' : 'safari'
  ] : 'MozTransition' in s ? [
    'transitionend',
    '-moz-transition',
    'firefox'
  ] : 'MSTransition' in s ? [
    'transitionend',
    '-ms-transition',
    'ie'
  ] : 'OTransition' in s ? [
    'otransitionend',
    '-o-transition',
    'opera'
  ] : 'transition' in s ? [
    'transitionend',
    'transition',
    null
  ] : null,
  u,
  L,
  t = 0,
  ka,
  Q,
  Z,
  $,
  W,
  F,
  G,
  V,
  aa,
  A,
  ba,
  S,
  T,
  ca,
  la,
  ra = /,/g,
  sa = /[A-Z]/g,
  ta = / cj-tween/g,
  ua = /^\s+|\s+$/g,
  va = /{props}/,
  wa = /{easing}/,
  xa = /{duration}/,
  ma = /(right|bottom|center)/,
  pa = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,
  oa = /#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/,
  I = {
    ios: !1,
    android: !1,
    winMobile: !1,
    firefox: !1,
    chrome: !1,
    safari: !1,
    opera: !1,
    ie: !1
  },
  na = f[0];
  f = f[1];
  var E = 0 !== f && 9 > f;
  if (!O || !H) O = H = null;
  if (l) {
    var U = l[1],
    da = document.createElement('style');
    L = 'WebkitTransform' in s ? 'WebkitTransform' : 'MozTransform' in s ? 'MozTransform' : 'msTransform' in s ? 'msTransform' : 'OTransform' in s ? 'OTransform' : 'transform' in s ? 'transform' : null;
    S = qa();
    da.type = 'text/css';
    da.innerHTML = '.cj-tween{' + U + '-property:none !important;}';
    document.getElementsByTagName('head') [0].appendChild(da);
    ka = U + '-property:{props};' + U + '-duration:{duration}s;' + U + '-timing-function:cubic-bezier({easing});';
    Q = !S ? l[2] : S;
    la = /(chrome|opera)/.test(Q);
    l = l[0];
    ja()
  }
  if (E) if (8 === f) ba = /(#|rgb|red|blue|green|black|white|yellow|pink|gray|grey|orange|purple)/,
  T = /(auto|inherit|rgb|%|#|red|blue|green|black|white|yellow|pink|gray|grey|orange|purple)/,
  ca = {
    red: '#F00',
    blue: '#00F',
    green: '#0F0',
    black: '#000',
    white: '#FFF',
    yellow: '#FF0',
    pink: '#FFC0CB',
    gray: '#808080',
    grey: '#808080',
    orange: '#FFA500',
    purple: '#800080'
  };
   else return;
   else ba = /(#|rgb)/,
  T = /(auto|inherit|rgb|%|#)/;
  Array.prototype.indexOf || (Array.prototype.indexOf = function (a) {
    for (var b = this.length; b--; ) if (this[b] === a) return b;
    return - 1
  });
  Date.now || (Date.now = function () {
    return + new Date
  });
  this.Jacked = {
    ready: function (a) {
      window.onload = a
    },
    setEngines: function (a) {
      for (var b in a) I.hasOwnProperty(b) && (I[b] = a[b]);
      ja()
    },
    tween: function (a, b, c) {
      a.cj && a.cj.stop();
      c || (c = {
      });
      c.mode ? 'timeline' === c.mode || !l ? new CJ(a, b, c)  : new CJcss(a, b, c)  : !l || !Z ? new CJ(a, b, c)  : new CJcss(a, b, c)
    },
    fadeIn: function (a, b) {
      b || (b = {
      });
      b.fadeIn = !0;
      Jacked.tween(a, {
        opacity: 1
      }, b)
    },
    fadeOut: function (a, b) {
      b || (b = {
      });
      b.fadeOut = !0;
      Jacked.tween(a, {
        opacity: 0
      }, b)
    },
    percentage: function (a, b, c) {
      a.cj && a.cj.stop();
      if ('from' in b && 'to' in b) {
        c || (c = {
        });
        var d = c.mode;
        d ? 'css3' === d && l ? ga(a, b, c)  : new CJpercentage(a, b, c)  : l && Z ? ga(a, b, c)  : new CJpercentage(a, b, c)
      }
    },
    special: function (a, b) {
      a.cj && a.cj.stop();
      new CJspecial(a, b)
    },
    transform: function (a, b, c, d) {
      a.cj && a.cj.stop();
      l && L ? (c || (c = {
      }), c.mode = 'css3', 'transform' in b && (b[L] = b.transform, delete b.transform), new Jacked.tween(a, b, c))  : d && new Jacked.tween(a, d, c)
    },
    stopTween: function (a, b, c) {
      (a = a.cj) && (a.isCSS ? a.stop(c)  : a.stop(b, c))
    },
    stopAll: function (a) {
      H ? H(z)  : clearInterval(W);
      var b = h.length,
      c;
      for (t = 0; b--; ) c = h[b],
      c.isCSS ? c.stop(!1, !0)  : c.stop(a, !1, !0, !0);
      h = [
      ];
      u = !1;
      F = null
    },
    setEase: function (a) {
      var b = a.toLowerCase().split('.');
      2 > b.length || M[b[0]] && M[b[0]][b[1]] && (J = a)
    },
    setDuration: function (a) {
      isNaN(a) || (K = a)
    },
    getMobile: function () {
      return S
    },
    getIE: function () {
      return E
    },
    getBrowser: function () {
      return Q
    },
    getTransition: function () {
      return l
    },
    getEngine: function () {
      return u
    },
    getTransform: function () {
      return L
    }
  };
  this.CJ = function (a, b, c) {
    t = h.length;
    var d = a.cj = h[t++] = this;
    this.runner = function (n) {
      d.obj = a;
      d.complete = c.callback;
      d.completeParams = c.callbackParams;
      if (!0 === n) d.transitions = [
      ];
       else {
        var m;
        n = 0;
        var g = [
        ],
        e = a.style,
        p = c.duration || K,
        r = (c.ease || J).toLowerCase().split('.'),
        r = M[r[0]][r[1]];
        e.visibility = 'visible';
        c.fadeIn && (e.display = c.display || 'block', e.opacity = 0);
        E && 'opacity' in b && (e.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (c.fadeIn ? 0 : 100) + ')');
        b.borderColor && !la && (e = b.borderColor, b.borderTopColor = e, b.borderRightColor = e, b.borderBottomColor = e, b.borderLeftColor = e, delete b.borderColor);
        for (m in b) b.hasOwnProperty(m) && ('backgroundPosition' !== m ? g[n++] = d.animate(a, m, b[m], p, r)  : g[n++] = d.bgPosition(a, m, b[m], p, r));
        d.transitions = g;
        u ? setTimeout(Y, 10)  : z()
      }
    };
    c.fadeOut ? a.cjFadeOut = !0 : c.fadeIn && (a.cjFadeIn = !0);
    0 === c.duration ? (this.runner(!0), this.stop())  : c.delay ? this.delayed = setTimeout(this.runner, c.delay)  : this.runner()
  };
  CJ.prototype.cycle = function () {
    F = this.transitions;
    if (!F) return !0;
    aa = F.length;
    for ($ = !1; aa--; ) F[aa]() && ($ = !0);
    return $
  };
  CJ.prototype.animate = function (a, b, c, d, n) {
    function m() {
      t = Date.now();
      ea += t - f;
      e = n(ea, h, N, d);
      f = t;
      e = !k || E ? q ? e + 0.5 | 0 : e - 0.5 | 0 : e.toFixed(2);
      if (e === l) return !0;
      if (q) {
        if (e >= c) return p[b] = v,
        !1
      } else if (e <= c) return p[b] = v,
      !1;
      l = e;
      p[b] = e + B;
      return !0
    }
    function g() {
      return !1
    }
    var e,
    p,
    r,
    k = 'opacity' === b,
    j = !0;
    !k || !E ? (p = a.style, r = p[b], e = '' !== r ? r : R ? R(a, null) [b] : a.currentStyle[b])  : (p = a.filters.item('DXImageTransform.Microsoft.Alpha'), b = 'Opacity', e = p[b], c *= 100);
    if (T.test(e)) if (ba.test(e)) {
      if ( - 1 === c.search('rgb')) return E && e in ca && (e = ca[e]),
      this.color(a, b, e, c, d, n);
      j = !1
    } else e = 0;
     else e = parseFloat(e);
    var B = !k ? 'px' : 0,
    N = c - e,
    q = e < c,
    f = Date.now(),
    h = e,
    ea = 0,
    v,
    l,
    t;
    v = c + B;
    !k || E ? q ? c -= 0.25 : c += 0.25 : q ? c -= 0.025 : c += 0.025;
    if (j) return m.stored = [
      b,
      v
    ],
    m;
    g.stored = [
      b,
      v
    ];
    return g
  };
  CJ.prototype.color = function (a, b, c, d, n, m) {
    function g() {
      f = Date.now();
      N += f - r;
      r = f;
      c = m(N, 0, 1, n);
      if (0.99 > c) {
        q = - 1;
        for (l = 'rgb('; 3 > ++q; ) h = j[q],
        l += h + c * (B[q] - h) | 0,
        2 > q && (l += ',');
        k[b] = l + ')';
        return !0
      }
      k[b] = p;
      return !1
    }
    function e() {
      return !1
    }
    var p = ( - 1 !== d.search('#') ? '' : '#') + d,
    r = Date.now(),
    k = a.style;
    a = !1;
    var j = [
    ],
    B = [
    ],
    N = 0,
    q = - 1,
    f,
    h,
    l;
    if ( - 1 !== c.search('rgb')) {
      q = - 1;
      for (j = c.split('(') [1].split(')') [0].split(','); 3 > ++q; ) j[q] = parseInt(j[q], 10)
    } else j = ia(c);
    B = ia(d);
    for (q = - 1; 3 > ++q; ) j[q] !== B[q] && (a = !0);
    if (a) return g.stored = [
      b,
      p
    ],
    g;
    e.stored = [
      b,
      p
    ];
    return e
  };
  CJ.prototype.bgPosition = function (a, b, c, d, n) {
    function m() {
      y = Date.now();
      B += y - r;
      r = y;
      u = n(B, 0, 1, d);
      if (0.99 > u) {
        v && (C = w + z * u + 0.5 | 0);
        s && (D = x + A * u + 0.5 | 0);
        if (C === h && D === t) return !0;
        h = C;
        t = D;
        j ? (e.backgroundPositionX = C + 'px', e.backgroundPositionY = D + 'px')  : e.backgroundPosition = C + 'px ' + D + 'px';
        return !0
      }
      j ? (e.backgroundPositionX = f, e.backgroundPositionY = q)  : e[b] = l;
      return !1
    }
    function g() {
      return !1
    }
    var e = a.style,
    p = e[b],
    r = Date.now(),
    k = !0,
    j = E,
    B = 0,
    f,
    q,
    l,
    h,
    t,
    v,
    s,
    z,
    A,
    u,
    y,
    C,
    D,
    w,
    x;
    if (j) {
      w = a.currentStyle.backgroundPositionX;
      x = a.currentStyle.backgroundPositionY;
      if (ma.test(w) || ma.test(x)) k = !1;
      'left' === w && (w = 0);
      'top' === x && (x = 0)
    } else u = '' !== p ? p.split(' ')  : R(a, null).backgroundPosition.split(' '),
    w = u[0],
    x = u[1];
    - 1 !== w.search('%') && '0%' !== w && (k = !1);
    - 1 !== x.search('%') && '0%' !== x && (k = !1);
    w = parseInt(w, 10);
    x = parseInt(x, 10);
    c.hasOwnProperty('x') ? (C = c.x, v = !0)  : (C = w, v = !1);
    c.hasOwnProperty('y') ? (D = c.y, s = !0)  : (D = x, s = !1);
    v = v && w !== C;
    s = s && x !== D;
    !v && !s && (k = !1);
    z = C - w;
    A = D - x;
    f = C + 'px';
    q = D + 'px';
    l = !j ? f + ' ' + q : [
      f,
      q
    ];
    if (k) return m.stored = [
      b,
      l
    ],
    m;
    g.stored = [
      b,
      l
    ];
    return g
  };
  CJ.prototype.stop = function (a, b, c) {
    var d = this.obj;
    if (d) {
      delete d.cj;
      if (a) {
        a = this.transitions;
        for (var n = a.length, m, g; n--; ) if (m = a[n].stored, g = m[0], E) switch (g) {
          case 'Opacity':
            d.filters.item('DXImageTransform.Microsoft.Alpha').Opacity = 100 * m[1];
            break;
          case 'backgroundPosition':
            g = d.style;
            g.backgroundPositionX = m[1][0];
            g.backgroundPositionY = m[1][1];
            break;
          default:
            d.style[g] = m[1]
        } else d.style[g] = m[1]
      }
      X(d);
      b && (b = this.complete);
      c || P(this, d, b, this.completeParams)
    } else clearTimeout(this.delayed),
    this.runner(!0),
    this.stop(a, b)
  };
  this.CJcss = function (a, b, c) {
    t = h.length;
    var d = a.cj = h[t++] = this,
    n = a.style,
    m = L in b;
    this.isCSS = !0;
    this.storage = a;
    this.complete = c.callback;
    this.completeParams = c.callbackParams;
    this.runner = function () {
      c.cssStep ? (n.visibility = 'visible', d.stepped = setTimeout(d.step, 30))  : d.step()
    };
    this.step = function (g) {
      d.obj = a;
      if (!0 === g) d.moves = '';
       else {
        var e,
        p,
        r,
        k,
        j,
        f = 0,
        h;
        h = [
        ];
        var q = [
        ];
        g = a.getAttribute('style') || '';
        var t = c.duration || K,
        s = (c.ease || J).toLowerCase().split('.');
        for (p in b) if (b.hasOwnProperty(p)) {
          r = p;
          if (j = r.match(sa)) for (e = j.length; e--; ) k = j[e],
          r = r.replace(RegExp(k, 'g'), '-' + k.toLowerCase());
          k = e = b[p];
          j = 'backgroundPosition' === p;
          if (!T.test(k) && 'opacity' !== p && !j && !m) k += 'px;';
           else if (j) {
            k = e.x;
            e = e.y;
            j = isNaN(k);
            var u = isNaN(e);
            if (!j && !u) k += 'px',
            e += 'px';
             else {
              var v = n.backgroundPosition,
              v = '' !== v ? v.split(' ')  : R(a, null).backgroundPosition.split(' ');
              !j ? k += 'px' : k = v[0];
              !u ? e += 'px' : e = v[1]
            }
            k = k + ' ' + e + ';'
          } else k += ';';
          h[f] = r + ':' + k;
          q[f++] = r;
          if (g && (j = g.search(r), - 1 !== j)) {
            r = g.length - 1;
            for (e = j - 1; ++e < r && ';' !== g[e]; );
            g = g.split(g.substring(j, e + 1)).join('')
          }
        }
        d.moves = p = ka.replace(va, q.toString()).replace(xa, (0.001 * t).toFixed(2)).replace(wa, ya[s[0]][s[1]]);
        h = h.toString();
        m || (h = h.replace(ra, ''));
        a.className = a.className.replace(ta, '');
        a.addEventListener(l, fa, !1);
        a.setAttribute('style', g.replace(ua, '') + p + h)
      }
    };
    c.fadeIn ? (a.cjFadeIn = !0, n.display = c.display || 'block', n.opacity = 0)  : c.fadeOut && (a.cjFadeOut = !0);
    0 === c.duration ? (this.runner(!0), this.stop())  : (c.cssStep || (n.visibility = 'visible'), this.delayed = c.delay ? setTimeout(this.runner, 30 < c.delay ? c.delay : 30)  : setTimeout(this.runner, 30))
  };
  CJcss.prototype.stop = function (a, b) {
    var c = this.obj;
    a && (a = this.complete);
    c ? (delete c.cj, c.removeEventListener(l, fa, !1), c.className += ' cj-tween', c.setAttribute('style', c.getAttribute('style').split(this.moves).join(';').split(';;').join(';')), X(c))  : (clearTimeout(this.delayed), clearTimeout(this.stepped), X(this.storage));
    b || P(this, c, a, this.completeParams)
  };
  this.CJpercentage = function (a, b, c) {
    t = h.length;
    var d = a.cj = h[t++] = this;
    this.obj = a;
    this.complete = c.callback;
    this.completeParams = c.callbackParams;
    this.runner = function () {
      var n = 0,
      m = [
      ],
      g,
      e,
      p,
      h = b.to,
      k = b.from,
      j = c.duration || K,
      f = (c.ease || J).toLowerCase().split('.'),
      f = M[f[0]][f[1]];
      for (g in k) k.hasOwnProperty(g) && (p = parseInt(h[g], 10), e = parseInt(k[g], 10), m[n++] = [
        p > e,
        g,
        p,
        e
      ]);
      a.style.visibility = 'visible';
      d.transitions = d.animate(a, m, j, f);
      u ? setTimeout(Y, 10)  : z()
    };
    0 === c.duration ? this.stop()  : c.delay ? this.delayed = setTimeout(this.runner, c.delay)  : this.runner()
  };
  CJpercentage.prototype.cycle = function () {
    return this.transitions()
  };
  CJpercentage.prototype.animate = function (a, b, c, d) {
    var n,
    m = 0,
    g = Date.now(),
    e,
    f,
    h = a.style,
    k = b.length,
    j,
    l;
    return function (a) {
      e = Date.now();
      m += e - g;
      g = e;
      n = d(m, 0, 1, c);
      f = k;
      if (0.99 > n && !a) {
        for (; f--; ) j = b[f],
        l = j[3],
        h[j[1]] = j[0] ? l + (j[2] - l) * n + '%' : l - (l - j[2]) * n + '%';
        return !0
      }
      for (; f--; ) j = b[f],
      h[j[1]] = j[2] + '%';
      return !1
    }
  };
  CJpercentage.prototype.stop = function (a, b, c) {
    'delayed' in this && clearTimeout(this.delayed);
    var d = this.obj;
    delete d.cj;
    a && this.transitions && this.transitions(!0);
    b && (b = this.complete);
    c || P(this, d, b, this.completeParams)
  };
  this.CJspecial = function (a, b) {
    if (b && b.callback) {
      t = h.length;
      h[t++] = a.cj = this;
      var c = this.complete = b.callback,
      d = b.ease || J,
      d = d.toLowerCase().split('.'),
      d = M[d[0]][d[1]];
      this.obj = a;
      this.transitions = this.numbers(a, b.duration || K, d, c);
      u ? setTimeout(Y, 10)  : z()
    }
  };
  CJspecial.prototype.cycle = function () {
    return this.transitions()
  };
  CJspecial.prototype.numbers = function (a, b, c, d) {
    var f,
    h = 0,
    g = Date.now(),
    e;
    return function () {
      e = Date.now();
      h += e - g;
      g = e;
      f = c(h, 0, 1, b);
      return 0.97 > f ? (d(a, f), !0)  : !1
    }
  };
  CJspecial.prototype.stop = function (a, b, c, d) {
    var f = this.obj;
    f && (delete f.cj, c || P(this), (a || d) && this.complete(f, 1, b))
  };
  var M = {
    linear: {
      easenone: function (a, b, c, d) {
        return c * a / d + b
      },
      easein: function (a, b, c, d) {
        return c * a / d + b
      },
      easeout: function (a, b, c, d) {
        return c * a / d + b
      },
      easeinout: function (a, b, c, d) {
        return c * a / d + b
      }
    },
    quint: {
      easeout: function (a, b, c, d) {
        return c * ((a = a / d - 1) * a * a * a * a + 1) + b
      },
      easein: function (a, b, c, d) {
        return c * (a /= d) * a * a * a * a + b
      },
      easeinout: function (a, b, c, d) {
        return 1 > (a /= d / 2) ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b
      }
    },
    quad: {
      easein: function (a, b, c, d) {
        return c * (a /= d) * a + b
      },
      easeout: function (a, b, c, d) {
        return - c * (a /= d) * (a - 2) + b
      },
      easeinout: function (a, b, c, d) {
        return 1 > (a /= d / 2) ? c / 2 * a * a + b : - c / 2 * (--a * (a - 2) - 1) + b
      }
    },
    quart: {
      easein: function (a, b, c, d) {
        return c * (a /= d) * a * a * a + b
      },
      easeout: function (a, b, c, d) {
        return - c * ((a = a / d - 1) * a * a * a - 1) + b
      },
      easeinout: function (a, b, c, d) {
        return 1 > (a /= d / 2) ? c / 2 * a * a * a * a + b : - c / 2 * ((a -= 2) * a * a * a - 2) + b
      }
    },
    cubic: {
      easein: function (a, b, c, d) {
        return c * (a /= d) * a * a + b
      },
      easeout: function (a, b, c, d) {
        return c * ((a = a / d - 1) * a * a + 1) + b
      },
      easeinout: function (a, b, c, d) {
        return 1 > (a /= d / 2) ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b
      }
    },
    circ: {
      easein: function (a, b, c, d) {
        return - c * (Math.sqrt(1 - (a /= d) * a) - 1) + b
      },
      easeout: function (a, b, c, d) {
        return c * Math.sqrt(1 - (a = a / d - 1) * a) + b
      },
      easeinout: function (a, b, c, d) {
        return 1 > (a /= d / 2) ? - c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b
      }
    },
    sine: {
      easein: function (a, b, c, d) {
        return - c * Math.cos(a / d * (Math.PI / 2)) + c + b
      },
      easeout: function (a, b, c, d) {
        return c * Math.sin(a / d * (Math.PI / 2)) + b
      },
      easeinout: function (a, b, c, d) {
        return - c / 2 * (Math.cos(Math.PI * a / d) - 1) + b
      }
    },
    expo: {
      easein: function (a, b, c, d) {
        return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b
      },
      easeout: function (a, b, c, d) {
        return a === d ? b + c : c * ( - Math.pow(2, - 10 * a / d) + 1) + b
      },
      easeinout: function (a, b, c, d) {
        return 0 === a ? b : a === d ? b + c : 1 > (a /= d / 2) ? c / 2 * Math.pow(2, 10 * (a - 1)) + b : c / 2 * ( - Math.pow(2, - 10 * --a) + 2) + b
      }
    }
  },
  ya = {
    linear: {
      easenone: '0.250, 0.250, 0.750, 0.750',
      easein: '0.420, 0.000, 1.000, 1.000',
      easeout: '0.000, 0.000, 0.580, 1.000',
      easeinout: '0.420, 0.000, 0.580, 1.000'
    },
    quint: {
      easein: '0.755, 0.050, 0.855, 0.060',
      easeout: '0.230, 1.000, 0.320, 1.000',
      easeinout: '0.860, 0.000, 0.070, 1.000'
    },
    quad: {
      easein: '0.550, 0.085, 0.680, 0.530',
      easeout: '0.250, 0.460, 0.450, 0.940',
      easeinout: '0.455, 0.030, 0.515, 0.955'
    },
    quart: {
      easein: '0.895, 0.030, 0.685, 0.220',
      easeout: '0.165, 0.840, 0.440, 1.000',
      easeinout: '0.770, 0.000, 0.175, 1.000'
    },
    cubic: {
      easein: '0.550, 0.055, 0.675, 0.190',
      easeout: '0.215, 0.610, 0.355, 1.000',
      easeinout: '0.645, 0.045, 0.355, 1.000'
    },
    circ: {
      easein: '0.600, 0.040, 0.980, 0.335',
      easeout: '0.075, 0.820, 0.165, 1.000',
      easeinout: '0.785, 0.135, 0.150, 0.860'
    },
    sine: {
      easein: '0.470, 0.000, 0.745, 0.715',
      easeout: '0.390, 0.575, 0.565, 1.000',
      easeinout: '0.445, 0.050, 0.550, 0.950'
    },
    expo: {
      easein: '0.950, 0.050, 0.795, 0.035',
      easeout: '0.190, 1.000, 0.220, 1.000',
      easeinout: '1.000, 0.000, 0.000, 1.000'
    }
  };
  f = s = null
}) (window); (function (m) {
  function h(a, b) {
    b || (delete a.swipeLeft, delete a.swipeRight, delete a.stopProp);
    delete a.newPageX;
    delete a.pageX
  }
  function g(a) {
    var b = a.touches ? a.touches[0] : a;
    this.stopProp && a.stopImmediatePropagation();
    this.pageX = b.pageX;
    this.addEventListener(e, j);
    this.addEventListener(f, k)
  }
  function k(a) {
    var b = this.newPageX = (a.touches ? a.touches[0] : a).pageX;
    10 < Math.abs(this.pageX - b) && a.preventDefault()
  }
  function j() {
    var a = this.newPageX,
    b = this.pageX,
    c = this.cjThumbs;
    this.removeEventListener(f, k);
    this.removeEventListener(e, j);
    30 > Math.abs(b - a) || (c || this.removeEventListener(d, g), b > a ? this.swipeLeft && (a = this.swipeLeft, h(this, c), a())  : this.swipeRight && (a = this.swipeRight, h(this, c), a(1)))
  }
  var e,
  f,
  d,
  l = {
    touchSwipe: function (a, b) {
      l.touchSwipeLeft(a, b);
      l.touchSwipeRight(a, b)
    },
    touchSwipeLeft: function (a, b, c) {
      c && (a.stopProp = !0);
      a.swipeLeft || (a.swipeLeft = b);
      a.swipeRight || a.addEventListener(d, g)
    },
    touchSwipeRight: function (a, b, c) {
      c && (a.stopProp = !0);
      a.swipeRight || (a.swipeRight = b);
      a.swipeLeft || a.addEventListener(d, g)
    },
    unbindSwipe: function (a) {
      a.removeEventListener(d, g);
      a.removeEventListener(f, k);
      a.removeEventListener(e, j);
      h(a)
    }
  };
  'ontouchend' in document ? (e = 'touchend', f = 'touchmove', d = 'touchstart')  : (e = 'mouseup', f = 'mousemove', d = 'mousedown');
  m.fn.cjSwipe = function (a, b, c) {
    l[a](this[0], b, c)
  }
}) (jQuery); (function () {
  function I() {
    this.a = this.b = this.g = this.r = 0;
    this.next = null
  }
  var K = [
    512,
    512,
    456,
    512,
    328,
    456,
    335,
    512,
    405,
    328,
    271,
    456,
    388,
    335,
    292,
    512,
    454,
    405,
    364,
    328,
    298,
    271,
    496,
    456,
    420,
    388,
    360,
    335,
    312,
    292,
    273,
    512,
    482,
    454,
    428,
    405,
    383,
    364,
    345,
    328,
    312,
    298,
    284,
    271,
    259,
    496,
    475,
    456,
    437,
    420,
    404,
    388,
    374,
    360,
    347,
    335,
    323,
    312,
    302,
    292,
    282,
    273,
    265,
    512,
    497,
    482,
    468,
    454,
    441,
    428,
    417,
    405,
    394,
    383,
    373,
    364,
    354,
    345,
    337,
    328,
    320,
    312,
    305,
    298,
    291,
    284,
    278,
    271,
    265,
    259,
    507,
    496,
    485,
    475,
    465,
    456,
    446,
    437,
    428,
    420,
    412,
    404,
    396,
    388,
    381,
    374,
    367,
    360,
    354,
    347,
    341,
    335,
    329,
    323,
    318,
    312,
    307,
    302,
    297,
    292,
    287,
    282,
    278,
    273,
    269,
    265,
    261,
    512,
    505,
    497,
    489,
    482,
    475,
    468,
    461,
    454,
    447,
    441,
    435,
    428,
    422,
    417,
    411,
    405,
    399,
    394,
    389,
    383,
    378,
    373,
    368,
    364,
    359,
    354,
    350,
    345,
    341,
    337,
    332,
    328,
    324,
    320,
    316,
    312,
    309,
    305,
    301,
    298,
    294,
    291,
    287,
    284,
    281,
    278,
    274,
    271,
    268,
    265,
    262,
    259,
    257,
    507,
    501,
    496,
    491,
    485,
    480,
    475,
    470,
    465,
    460,
    456,
    451,
    446,
    442,
    437,
    433,
    428,
    424,
    420,
    416,
    412,
    408,
    404,
    400,
    396,
    392,
    388,
    385,
    381,
    377,
    374,
    370,
    367,
    363,
    360,
    357,
    354,
    350,
    347,
    344,
    341,
    338,
    335,
    332,
    329,
    326,
    323,
    320,
    318,
    315,
    312,
    310,
    307,
    304,
    302,
    299,
    297,
    294,
    292,
    289,
    287,
    285,
    282,
    280,
    278,
    275,
    273,
    271,
    269,
    267,
    265,
    263,
    261,
    259
  ],
  L = [
    9,
    11,
    12,
    13,
    13,
    14,
    14,
    15,
    15,
    15,
    15,
    16,
    16,
    16,
    16,
    17,
    17,
    17,
    17,
    17,
    17,
    17,
    18,
    18,
    18,
    18,
    18,
    18,
    18,
    18,
    18,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    19,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    20,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    21,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    22,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    23,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24,
    24
  ];
  window.StackBlurImage = function (m, E, r) {
    var y = document.getElementById(m),
    m = y.naturalWidth,
    w = y.naturalHeight,
    c = document.getElementById(E);
    c.style.width = m + 'px';
    c.style.height = w + 'px';
    c.width = m;
    c.height = w;
    c = c.getContext('2d');
    c.clearRect(0, 0, m, w);
    c.drawImage(y, 0, 0);
    if (!(isNaN(r) || 1 > r)) if (!(isNaN(r) || 1 > r)) {
      var r = r | 0,
      E = document.getElementById(E).getContext('2d'),
      y = E.getImageData(0, 0, m, w),
      c = y.data,
      s,
      x,
      a,
      d,
      e,
      F,
      f,
      g,
      h,
      t,
      u,
      v,
      i,
      j,
      k,
      n,
      p,
      q,
      z,
      b = a = null,
      A = K[r],
      B = L[r];
      s = r + r + 1;
      var G = m - 1,
      H = w - 1,
      l = r + 1,
      C = l * (l + 1) / 2,
      D = new I,
      b = D;
      for (a = 1; a < s; a++) if (b = b.next = new I, a == l) var J = b;
      b.next = D;
      for (x = F = e = 0; x < w; x++) {
        i = j = k = f = g = h = 0;
        t = l * (n = c[e]);
        u = l * (p = c[e + 1]);
        v = l * (q = c[e + 2]);
        f += C * n;
        g += C * p;
        h += C * q;
        b = D;
        for (a = 0; a < l; a++) b.r = n,
        b.g = p,
        b.b = q,
        b = b.next;
        for (a = 1; a < l; a++) d = e + ((G < a ? G : a) << 2),
        f += (b.r = n = c[d]) * (z = l - a),
        g += (b.g = p = c[d + 1]) * z,
        h += (b.b = q = c[d + 2]) * z,
        i += n,
        j += p,
        k += q,
        b = b.next;
        a = D;
        b = J;
        for (s = 0; s < m; s++) c[e] = f * A >> B,
        c[e + 1] = g * A >> B,
        c[e + 2] = h * A >> B,
        f -= t,
        g -= u,
        h -= v,
        t -= a.r,
        u -= a.g,
        v -= a.b,
        d = F + ((d = s + r + 1) < G ? d : G) << 2,
        i += a.r = c[d],
        j += a.g = c[d + 1],
        k += a.b = c[d + 2],
        f += i,
        g += j,
        h += k,
        a = a.next,
        t += n = b.r,
        u += p = b.g,
        v += q = b.b,
        i -= n,
        j -= p,
        k -= q,
        b = b.next,
        e += 4;
        F += m
      }
      for (s = 0; s < m; s++) {
        j = k = i = g = h = f = 0;
        e = s << 2;
        t = l * (n = c[e]);
        u = l * (p = c[e + 1]);
        v = l * (q = c[e + 2]);
        f += C * n;
        g += C * p;
        h += C * q;
        b = D;
        for (a = 0; a < l; a++) b.r = n,
        b.g = p,
        b.b = q,
        b = b.next;
        d = m;
        for (a = 1; a <= r; a++) e = d + s << 2,
        f += (b.r = n = c[e]) * (z = l - a),
        g += (b.g = p = c[e + 1]) * z,
        h += (b.b = q = c[e + 2]) * z,
        i += n,
        j += p,
        k += q,
        b = b.next,
        a < H && (d += m);
        e = s;
        a = D;
        b = J;
        for (x = 0; x < w; x++) d = e << 2,
        c[d] = f * A >> B,
        c[d + 1] = g * A >> B,
        c[d + 2] = h * A >> B,
        f -= t,
        g -= u,
        h -= v,
        t -= a.r,
        u -= a.g,
        v -= a.b,
        d = s + ((d = x + l) < H ? d : H) * m << 2,
        f += i += a.r = c[d],
        g += j += a.g = c[d + 1],
        h += k += a.b = c[d + 2],
        a = a.next,
        t += n = b.r,
        u += p = b.g,
        v += q = b.b,
        i -= n,
        j -= p,
        k -= q,
        b = b.next,
        e += m
      }
      E.putImageData(y, 0, 0)
    }
  }
}) (); (function (c) {
  function ub() {
    J = c(window);
    ac = c('body');
    $a = c('body, html');
    v = c('<div />').addClass('jackbox-modal');
    w = c('<div />').addClass('jackbox-holder');
    ia = c('<div />').addClass('jackbox-wrapper');
    Z = c('<div />').addClass('jackbox-preloader');
    ja = c('<span />').addClass('jackbox-panel jackbox-panel-left');
    ta = c('<span />').addClass('jackbox-panel jackbox-panel-right');
    var a = r.createDocumentFragment();
    a.appendChild(ia[0]);
    a.appendChild(Z[0]);
    v[0].appendChild(a);
    a = r.createDocumentFragment();
    a.appendChild(ja[0]);
    a.appendChild(ta[0]);
    a.appendChild(w[0]);
    ia[0].appendChild(a);
    ka = c('<div />').addClass('jackbox-container');
    ua || (a = c('<span />').addClass('jackbox-pre-outside').appendTo(Z), c('<span />').addClass('jackbox-pre-inside').appendTo(a));
    $ *= 2;
    Oa = 0;
    a = r.createDocumentFragment();
    vb && (B = c(vb).hide(), a.appendChild(B[0]));
    a.appendChild(ka[0]);
    wb && (C = c(wb).hide(), a.appendChild(C[0]));
    w[0].appendChild(a);
    xb = - (G + Ea);
    va = [
    ];
    Pa = [
    ];
    K = [
    ];
    L = [
    ];
    yb.each(Vc);
    W && (c.address.internalChange(zb), c.address.externalChange(Wc));
    bc = !0;
    Qa && (W ? setTimeout(Qa, 250)  : Qa(), Qa = null);
    yb = Pa = vb = wb = va = null
  }
  function cc(a, b) {
    var d = c(this),
    m = L.length,
    g = - 1,
    e,
    l;
    if (a && 'object' === typeof a) {
      var f,
      h = d.attr('href');
      for (l in a) a.hasOwnProperty(l) && 'trigger' !== l && (f = a[l], 'href' === l && h || d.attr('data-' + l, f), 'group' === l && (e = f))
    }
    e || (e = d.attr('data-group'));
    if (e) {
      for (e = e.split(' ').join('').toLowerCase(); m--; ) if (L[m] === e) {
        g = m;
        break
      }
      if ( - 1 < g) {
        e = K[g];
        for (m = e.length; m--; ) if (l = e[m], l[0] === d[0]) {
          if (b) if (e.splice(m, 1), l.off('click.jackbox'), d = e.length) for (g = 0; g < d; g++) e[g].data('id', g);
           else K.splice(g, 1),
          L.splice(g, 1),
          Ra--;
          return
        }
        m = e.length;
        e[m] = d
      } else {
        if (b) return;
        g = L.length;
        m = K.length;
        L[g] = e;
        Ra++;
        K[m] = [
          d
        ];
        m = 0
      }
      dc(d);
      d.data({
        id: m,
        cat: g
      });
      a && a.trigger && d.trigger('click')
    }
  }
  function Vc() {
    var a = c(this).attr('data-group').split(' ').join('').toLowerCase();
    if (ua) {
      for (var b = L.length, d = !1; b--; ) if (L[b] === a) {
        d = !0;
        break
      }
      d || ec(a)
    } else - 1 === L.indexOf(a) && ec(a)
  }
  function ec(a) {
    L[L.length] = a;
    Pa = [
    ];
    c(fc + '[data-group=' + a + ']').each(dc);
    K[K.length] = Pa;
    Ra++
  }
  function dc(a) {
    isNaN(a) ? e = a : (e = c(this).data({
      id: a,
      cat: Ra
    }), Pa[a] = e);
    if (p = e.attr('href') || e.attr('data-href')) {
      var b;
      a = '#' !== p.charAt(0) ? p.toLowerCase().split('.').pop()  : 'inline';
      b = p;
      if (b = - 1 !== b.search('youtube.com') ? 'youtube' : - 1 !== b.search('vimeo.com') ? 'vimeo' : 'mp4' === a ? 'local' : !1) e.data('type', b),
      e.attr('data-thumbnail') || ('vimeo' === b ? Xc(e, p)  : 'youtube' === b && e.attr('data-thumbnail', 'http://img.youtube.com/vi/' + p.split('http://www.youtube.com/watch?v=') [1] + '/1.jpg'));
       else if ('jpg' === a || 'png' === a || 'jpeg' === a || 'gif' === a) e.data('type', 'image');
       else switch (a) {
        case 'mp3':
          e.data('type', 'audio');
          break;
        case 'swf':
          e.data('type', 'swf');
          break;
        case 'inline':
          e.data('type', 'inline');
          break;
        default:
          e.data('type', 'iframe')
      }
      e.on('click.jackbox', Yc);
      if (Q = e.attr('data-description')) {
        if (va) if (a = va.indexOf(Q), - 1 === a) {
          Q = c(Q);
          if (!Q.length) return;
          va[va.length] = Q
        } else Q = va[a];
         else if (Q = c(Q), !Q.length) return;
        e.data('description', Q)
    }
  }
}
function Wc(a) {
  if (gc) {
    gc = !1;
    var b = r.URL.split('?url=');
    if (2 === b.length) {
      window.location = b[0] + '#/' + b[1];
      return
    }
  }
  clearTimeout(Sa);
  hc(a.value);
  - 1 !== H ? ic ? (ic = !1, zb())  : Sa = setTimeout(zb, 750)  : aa && Ab()
}
function zb(a) {
  'object' === typeof a && (clearTimeout(Sa), hc(a.value));
  - 1 !== H ? jc()  : aa && Ab()
}
function hc(a) {
  !M || la || Fa || x[f].removeClass('jb-thumb-active');
  '/' !== a ? (a = a.split('/'), 3 === a.length ? (f = parseInt(a[2], 10) - 1, isNaN(f) && (f = 0), ma = a[1])  : isNaN(a[1]) ? (f = 0, ma = a[1])  : (f = parseInt(a[1], 10) - 1, ma = '/'))  : (ma = '/', f = 0);
  if ('/' !== ma) for (a = Ra; a--; ) {
    if (L[a] === ma) {
      H = a;
      R = K[H].length;
      X = 1 !== R;
      break
    }
  } else H = - 1;
  Fa = !1
}
function ab() {
  clearTimeout(kc);
  kc = setTimeout(na, 100)
}
function Yc(a) {
  a.stopPropagation();
  a.preventDefault();
  a = c(this).data();
  bb(a.cat, a.id, !0)
}
function bb(a, b, d) {
  clearTimeout(Sa);
  if (!d) {
    if (M) for (d = x.length; d--; ) x[d].off('click.jackbox');
    ja.off('.jackbox');
    ta.off('.jackbox');
    Ga && Ha.off('keydown.jackbox');
    s && Bb && h.cjSwipe('unbindSwipe')
  }
  W ? c.address.value(L[a] + '/' + (b + 1))  : (!M || la || Fa || x[f].removeClass('jb-thumb-active'), f = b, H = a, R = K[H].length, X = 1 !== R, jc())
}
function cb(a) {
  if (a && (a.stopPropagation(), Ta)) return !1;
  aa && (M && !la && x[f].removeClass('jb-thumb-active'), f < K[H].length - 1 ? f++ : f = 0, Fa = !0, bb(H, f))
}
function db(a) {
  if (a && (a.stopPropagation(), Ta)) return !1;
  aa && (M && !la && x[f].removeClass('jb-thumb-active'), 0 < f ? f-- : f = K[H].length - 1, Fa = !0, bb(H, f))
}
function lc() {
  for (var a = [
    v[0],
    ia[0],
    w[0],
    ka[0]
  ], b = 4; b--; ) a[b].removeEventListener('touchstart', D, !1),
  a[b].removeEventListener('touchmove', D, !1),
  a[b].removeEventListener('touchend', D, !1)
}
function jc() {
  eb = K[H];
  if (e = eb[f]) {
    if (s) for (var a = [
      v[0],
      ia[0],
      w[0],
      ka[0]
    ], b = 4; b--; ) a[b].addEventListener('touchstart', D, !1),
    a[b].addEventListener('touchmove', D, !1),
    a[b].addEventListener('touchend', D, !1);
    p = e.attr('href') || e.attr('data-href');
    if (aa) Ta = !0,
    mc(),
    nc();
     else {
      aa = !0;
      s || $a.stop();
      Oa = J.scrollTop();
      v.appendTo(ac).one('click.jackbox', Cb);
      Ia || (oc = v.parents().each(Zc));
      if (Ga) Ha.on('keydown.jackbox_keyboard', $c);
      pc || (pc = !0, fb = parseInt(w.css('padding-left'), 10) + parseInt(w.css('padding-right'), 10), Ja = parseInt(w.css('padding-top'), 10) + parseInt(w.css('padding-bottom'), 10), Db = parseInt(ja.css('width'), 10) + 14, gb = Ja + $, Eb = G + (Ea << 1), hb = parseInt(Z.css('margin-top'), 10), qc = hb - (Eb >> 1), rc = parseInt(w.css('padding-left'), 10), sc = parseInt(w.css('padding-top'), 10), S = c('.jackbox-fullscreen'), S.length || (S = null), wa = !s && 'safari' !== ib && ('webkitRequestFullScreen' in v[0] || 'mozFullScreenEnabled' in r));
      oa = !Fb && jb && X ? 0 : xb;
      I = J.width();
      N = J.height();
      w.css({
        width: I,
        height: N,
        marginLeft: - (I >> 1) - rc,
        marginTop: - (N >> 1) - sc
      });
      Jacked.fadeIn(v[0], {
        callback: ad
      });
      tc = setTimeout(nc, 250);
      ia.on('click.jackbox', uc)
    }
  }
}
function Zc() {
  c(this).addClass('jackbox-overflow')
}
function bd() {
  c(this).removeClass('jackbox-overflow')
}
function ad() {
  Ia || J[0].scrollTo(0, 0)
}
function nc() {
  M && (x[f].addClass('jb-thumb-active'), la ? la = !1 : vc(!1, !0));
  var a;
  a = e.attr('data-autoplay') ? e.attr('data-autoplay')  : wc;
  a = 'true' === a || !0 === a;
  var b = e.data('description') || null,
  d = e.attr('data-title') || '',
  m;
  kb = 'true' === e.attr('data-scaleUp');
  lb = b && 'string' !== typeof b ? b.html()  : !1;
  O = e.data('type');
  a = 'true' === a || !0 === a;
  d ? (Gb = d, pa = escape(Gb))  : (pa = !1, 'undefined' !== typeof E && (E.data('links') && E.data('links').off('.jackbox'), E.empty()));
  s && (Bb = 'image' === O, 'inline' !== O && 'iframe' !== O && r.addEventListener('touchmove', D, !1));
  'image' !== O && xc();
  Ua = !1;
  568 < I ? Z.css('margin-top', 0 === oa ? qc : hb)  : Z.css('margin-top', hb);
  ia.show();
  Z.addClass('jackbox-spin-preloader');
  switch (O) {
    case 'image':
      Va = !0;
      h = c('<img />').addClass('jackbox-content').one('load.jackbox', mb).prependTo(ka);
      s && (h[0].addEventListener('touchstart', D, !1), h[0].addEventListener('touchmove', D, !1), h[0].addEventListener('touchend', D, !1));
      h.attr('src', p);
      break;
    case 'youtube':
      s && (Ua = !0);
      Ka(cd.split('{url}').join(p.split('watch?v=') [1]).split('{autoplay}').join(a ? 1 : 0));
      break;
    case 'vimeo':
      s && (Ua = !0);
      Ka(dd.split('{url}').join(p.substring(p.lastIndexOf('/'))).split('{autoplay}').join(a));
      break;
    case 'local':
      var b = Hb(),
      d = 'true' === e.attr('data-firefoxUsesFlash') ? 'true' : 'false',
      g = e.attr('data-flashHasPriority') ? e.attr('data-flashHasPriority')  : yc.toString();
      m = 'false' === g && wa && 'firefox' !== ib;
      b = e.attr('data-poster') ? b + e.attr('data-poster')  : 'false';
      Ka(Ib + '?video=' + p + '&autoplay=' + a + '&flashing=' + g + '&width=' + T + '&height=' + U + '&poster=' + b + '&firefox=' + d, !0);
      break;
    case 'audio':
      Hb();
      Ka(Jb + '?audio=' + p + '&title=' + (e.attr('data-audiotitle') ? e.attr('data-audiotitle')  : pa) + '&autoplay=' + a);
      break;
    case 'swf':
      Hb();
      Ka(Kb + '?swf=' + p + '&width=' + (q.toString() + '&height=' + n.toString()));
      break;
    case 'inline':
      a = c(p);
      a = a.length ? a.html()  : '';
      h = c('<div />').addClass('jackbox-content jackbox-html').html(a).prependTo(ka);
      h.css('width', q).find('a').on('click', qa);
      e.attr('data-height', h.outerHeight(!0));
      xc();
      mb();
      break;
    default:
      Ka(p, !1, !0)
  }
  wa && (m ? S.hide()  : S.show())
}
function Hb() {
  if ( - 1 !== p.search('http')) return '';
  var a = r.URL.split('#') [0];
  '/' !== a[a.length - 1] && (a = a.substring(0, a.lastIndexOf('/') + 1));
  p = a + p;
  return a
}
function ed(a) {
  switch (a.keyCode) {
    case 39:
      cb();
      break;
    case 37:
      db();
      break;
    case 40:
      Lb();
      break;
    case 38:
      Lb()
  }
}
function $c(a) {
  27 === a.keyCode && Cb(a)
}
function fd() {
  F.css('visibility', 'hidden')
}
function gd() {
  u.data('offLeft', u.offset().left)
}
function zc() {
  La.css({
    opacity: 0,
    visibility: 'hidden'
  })
}
function Ac(a) {
  'object' === typeof a && a.stopPropagation();
  y < R - ra && (y++, Mb(!1, !0))
}
function Bc(a) {
  'object' === typeof a && a.stopPropagation();
  0 < y && (y--, Mb(!1, !0))
}
function hd(a) {
  a.stopPropagation();
  a = c(this).parent();
  a.addClass('jb-thumb-fadein');
  s || a.addClass('jb-thumb-hover');
  a.data('id') === f && a.addClass('jb-thumb-active')
}
function Cc(a) {
  a.stopPropagation();
  if (Ta) return !1;
  a = c(this).data('id');
  a !== f && (M && x[f].removeClass('jb-thumb-active'), f = a, la = !0, bb(H, f))
}
function id() {
  Wa ? Dc()  : (J.off('.jackbox'), Wa = !0, r.mozFullScreenEnabled ? (r.addEventListener('mozfullscreenchange', nb, !1), v[0].mozRequestFullScreen())  : v[0].webkitRequestFullScreen && (r.addEventListener('webkitfullscreenchange', nb, !1), v[0].webkitRequestFullScreen()))
}
function nb() {
  r.webkitIsFullScreen || r.mozFullScreen ? na()  : Dc(!0)
}
function Nb(a) {
  r.removeEventListener(a.type, Nb, !1);
  na();
  J.on('resize.jackbox', ab)
}
function Dc(a) {
  Wa = !1;
  r.mozFullScreenEnabled ? (r.removeEventListener('mozfullscreenchange', nb, !1), a ? (na(), J.on('resize.jackbox', ab))  : (r.addEventListener('mozfullscreenchange', Nb, !1), r.mozCancelFullScreen()))  : v[0].webkitRequestFullScreen && (r.removeEventListener('webkitfullscreenchange', nb, !1), a ? (na(), J.on('resize.jackbox', ab))  : (r.addEventListener('webkitfullscreenchange', Nb, !1), r.webkitCancelFullScreen()))
}
function xc() {
  Va = !1;
  T = e.attr('data-width') ? parseInt(e.attr('data-width'), 10)  : Ec;
  U = e.attr('data-height') ? parseInt(e.attr('data-height'), 10)  : Fc;
  kb = 'true' === e.attr('data-scaleUp');
  Gc()
}
function Gc() {
  ob = T + fb + Db + $;
  Ob = U + gb;
  na('true')
}
function mc() {
  clearTimeout(tc);
  Jacked.stopTween(w[0]);
  J.off('.jackbox');
  s && r.removeEventListener('touchmove', D, !1);
  h && (Jacked.stopTween(h[0]), h.remove(), h = null);
  pb && (pb.remove(), pb = null);
  B && (Jacked.stopTween(B[0], !0), B.hide());
  C && (Jacked.stopTween(C[0], !0), C.hide());
  z && (z.removeClass('jb-info-inactive'), Jacked.stopTween(P[0]), P.empty().hide())
}
function Cb(a) {
  a.stopPropagation();
  W ? c.address.value('')  : Ab()
}
function Ab() {
  clearTimeout(Sa);
  mc();
  v.unbind('.jackbox');
  Ga && Ha.off('keydown.jackbox_keyboard');
  if (X) {
    Ga && Ha.off('keydown.jackbox');
    xa && xa.off('.jackbox');
    ya && ya.off('.jackbox');
    Xa && u && u.off('.jackbox');
    Jacked.stopTween(ta[0], !0);
    Jacked.stopTween(ja[0], !0);
    var a = {
      opacity: 0,
      visibility: 'hidden'
    };
    ta.off('.jackbox').css(a);
    ja.off('.jackbox').css(a)
  } else za && za.show(),
  A && A.show();
  ia.hide().off('.jackbox');
  Z.removeClass('jackbox-spin-preloader');
  'undefined' !== typeof E && (E.data('links') && E.data('links').off('.jackbox'), E.empty());
  wa && S.off('.jackbox');
  Aa && Aa.unbind('.jackbox');
  z && z.off('.jackbox');
  if (M) {
    Jacked.stopTween(ba[0]);
    for (ba.off('.jackbox').hide(); x.length; ) a = x[0],
    Jacked.stopTween(a[0]),
    a.remove(),
    x.shift();
    ca.off('.jackbox').hide();
    da.off('.jackbox').hide();
    s && u.cjSwipe('unbindSwipe');
    Jacked.stopTween(V[0]);
    V.empty().css('margin-left', 0);
    A && (A.off('.jackbox'), A && (Y.hide(), ea.show()));
    M = x = null
  }
  Ia || oc.each(bd);
  Jacked.fadeOut(v[0], {
    duration: 1000,
    callback: jd
  });
  w.css({
    marginLeft: kd,
    marginTop: ld
  });
  s && (lc(), r.removeEventListener('touchmove', D, !1));
  setTimeout(md, 10);
  F && (F.css('visibility', 'hidden'), s && (F[0].removeEventListener('touchstart', qa, !1), F[0].removeEventListener('touchmove', qa, !1), F[0].removeEventListener('touchend', qa, !1)));
  e = aa = Wa = la = Pb = qb = Fa = Qb = Ma = null
}
function md() {
  0 !== Oa && (Ia || s ? $a.scrollTop(Oa)  : $a.animate({
    scrollTop: Oa
  }, {
    duration: 300,
    queue: !1
  }))
}
function jd() {
  v.detach()
}
function nd(a) {
  a ? db()  : cb()
}
function D(a) {
  a.preventDefault()
}
function od(a, b) {
  if (!aa && 'success' === b.toLowerCase() && a) {
    var d = a.length,
    m = document.URL;
    for (m.substring(0, m.lastIndexOf('/')); d--; ) c('<img />').attr('src', sa + '/' + a[d].split('../').join(''))
  }
}
function Xc(a, b) {
  c.getJSON('http://vimeo.com/api/v2/video/' + b.split('http://vimeo.com/') [1] + '.json?callback=?', {
    format: 'json'
  }, function (b) {
    a.attr('data-thumbnail', b[0].thumbnail_small)
  })
}
function pd() {
  var a = c(this),
  b = a.next('img'),
  d = b.attr('src');
  b.length && (a = c('<img />').attr({
    width: b.attr('width'),
    height: b.attr('height')
  }).data('parent', a).one('load.jackbox', qd).insertAfter(b), b.remove(), a.attr('src', d))
}
function qd() {
  var a = c(this),
  b = a.data('parent'),
  d = parseInt(b.css('width'), 10) || b.width(),
  m = parseInt(b.css('height'), 10) || b.height(),
  b = c('<canvas />').addClass('jackbox-canvas-blur').attr({
    width: d,
    height: m
  }).insertBefore(b),
  m = Date.now(),
  d = m + 1,
  m = m + 2;
  a.attr('id', d);
  b.attr('id', m);
  StackBlurImage(d, m, 29)
}
function rd() {
  var a = c(this);
  a.parent().data({
    tip: a,
    tipWidth: a.width() - 27,
    tipHeight: a.height() + 17
  }).on('mouseenter.jackbox', sd).on('mouseleave.jackbox', td)
}
function sd() {
  var a = c(this),
  b = a.offset(),
  d = a.data();
  d.tipX = b.left;
  d.tipY = b.top;
  d.tip.css({
    opacity: 1,
    visibility: 'visible'
  });
  a.on('mousemove.jackbox', ud)
}
function td() {
  var a = c(this).off('mousemove.jackbox');
  ua ? a.data('tip').css('opacity', 0)  : a.data('tip').css({
    opacity: 0,
    visibility: 'hidden'
  })
}
function qa(a) {
  a.stopImmediatePropagation()
}
function uc(a) {
  c(a.target).is('a') || (a.stopPropagation(), a.preventDefault())
}
var k = {
  useThumbs: !0,
  deepLinking: !0,
  autoPlayVideo: !1,
  flashVideoFirst: !1,
  defaultVideoWidth: 960,
  defaultVideoHeight: 540,
  thumbnailWidth: 75,
  thumbnailHeight: 50,
  useThumbTooltips: !0,
  dynamic: !1,
  baseName: 'jackbox',
  className: '.jackbox',
  preloadGraphics: !0,
  showInfoByDefault: !1,
  thumbsStartHidden: !1,
  showPageScrollbar: !1,
  useKeyboardControls: !0,
  fullscreenScalesContent: !0,
  defaultShareImage: 'jackbox/img/default_share.jpg'
},
$ = 10,
Ea = 2,
Rb = '/php/graphics.php',
Kb = '/modules/jackbox_swf.html',
Sb = '/img/thumbs/default.jpg',
Ib = '/modules/jackbox_video.html',
Jb = '/modules/jackbox_audio.html',
Tb = '/modules/jackbox_social.php',
dd = 'http://player.vimeo.com/video{url}?title=0&byline=0&portrait=0&autoplay={autoplay}&color=FFFFFF&wmode=transparent',
cd = 'http://www.youtube.com/embed/{url}?autoplay={autoplay}&autohide=1&hd=1&iv_load_policy=3&showinfo=0&showsearch=0&wmode=transparent',
vb = '<div class="jackbox-top clearfix"><div class="jackbox-social"></div><div class="jackbox-top-icons"><span class="jackbox-fullscreen"><span class="jackbox-button jackbox-fs"></span><span class="jackbox-button jackbox-ns"></span></span><span class="jackbox-button jackbox-button-margin jackbox-close"></span></div><div />',
wb = '<div class="jackbox-bottom clearfix"><div class="jackbox-controls"><span class="jackbox-button jackbox-arrow-left"></span><span class="jackbox-button jackbox-arrow-right"></span></div><div class="jackbox-title-text"><span class="jb-current"></span><span class="jb-divider">/</span><span class="jb-total"></span><span class="jackbox-title-txt"></span></div><div class="jackbox-bottom-icons"><span class="jackbox-button jackbox-info"></span><span class="jackbox-button-margin jackbox-button-thumbs"><span class="jackbox-button jackbox-hide-thumbs"></span><span class="jackbox-button jackbox-show-thumbs"></span></span></div></div>',
kc,
C,
wa,
rc,
sc,
Ub,
Eb,
rb,
xb,
Wa,
Vb,
Hc,
Ja,
fb,
Ic,
F,
Db,
Wb,
V,
u,
Xb,
da,
B,
P,
fa,
Y,
ea,
ta,
S,
Oa,
ja,
pa,
ca,
ka,
Z,
ra,
va,
Yb,
Gb,
Bb,
fc,
sa,
Ma,
La,
oa,
A,
Aa,
lb,
za,
Jc,
Xa,
Kc,
Ba,
Na,
y,
ia,
Ca,
ya,
X,
hb,
xa,
kb,
Lc,
s,
gb,
sb,
Ya,
v,
E,
e,
Pa,
z,
Ha,
r,
p,
q,
J,
R,
Mc,
L,
n,
ma,
K,
ua,
Da,
Zb,
tc,
Qa,
x,
ac,
w,
yb,
T,
tb,
Sa,
Nc,
h,
U,
Va,
I,
N,
ob,
Ob,
O,
oc,
ib,
ga,
Q,
aa,
pc,
$a,
Ga,
Ua,
jb,
Ta,
la,
M,
ld,
Pb,
eb,
Ia,
W,
Za,
pb,
ba,
qb,
qc,
kd,
Oc,
Fa,
$b,
Qb,
wc,
ha,
bc,
G,
yc,
Pc,
Qc,
Fb,
Ec,
Fc,
f = 1,
H = - 1,
Ra = 0,
ic = !0,
gc = !0,
Rc = {
  init: function (a, b) {
    Oc || 'undefined' === typeof Jacked || (b && c.extend(k, b), fc = k.className, jb = k.useThumbs, W = k.deepLinking, Xa = k.useThumbTooltips, wc = k.autoPlayVideo, Ga = k.useKeyboardControls, Ia = k.showPageScrollbar, ha = k.thumbnailWidth, Nc = k.fullscreenScalesContent, G = k.thumbnailHeight, yc = k.flashVideoFirst, Qc = k.showInfoByDefault, Fb = k.thumbsStartHidden, Pc = k.defaultShareImage, Ec = k.defaultVideoWidth, Fc = k.defaultVideoHeight, sa = k.baseName, Kb = sa + Kb, Ib = sa + Ib, Jb = sa + Jb, Rb = sa + Rb, Sb = sa + Sb, Tb = sa + Tb, r = document, Ha = c(document), Oc = !0, ga = ha + Ea, tb = - 1 !== r.URL.search('file:///'), Jacked.setEngines({
      ios: !0,
      safari: !0,
      opera: !0,
      firefox: !0
    }), k.preloadGraphics && !tb && c.getJSON(Rb + '?jackbox_path=../img/graphics/', od), yb = a, ua = Jacked.getIE(), s = Jacked.getMobile(), ib = Jacked.getBrowser(), Mc = 'ie' === ib, s && (Ia = !1), 'undefined' !== typeof c.address && W ? Mc || k.dynamic ? (ub(), c.address.update())  : c.address.init(ub)  : (W = !1, ub()), 'undefined' === typeof StackBlurImage || tb || ua || c('.jackbox-hover-blur').each(pd), c('.jackbox-tooltip').each(rd), k = null)
  },
  frameReady: function () {
    aa && mb()
  },
  newItem: function (a, b) {
    a.each(cc, [
      b
    ])
  },
  removeItem: function (a) {
    a.each(cc, [
      !1,
      !0
    ])
  }
},
Ka = function () {
  var a = {
    type: 'text/html',
    frameborder: 0,
    mozallowfullscreen: 'mozallowfullscreen',
    webkitallowfullscreen: 'webkitallowfullscreen',
    allowfullscreen: 'allowfullscreen'
  };
  return function (b, d, m) {
    a.width = q;
    a.height = n;
    a.scrolling = m ? 'auto' : 'no';
    h = c('<iframe />').attr(a);
    Ua ? h.addClass('jackbox-youtube')  : h.addClass('jackbox-content');
    h.prependTo(ka);
    if (!d) h.one('load.jackbox', mb);
    h.attr('src', b)
  }
}(),
mb = function () {
  var a = {
  };
  return function (b) {
    b && b.stopPropagation();
    Va && (T = this.width || h.width(), U = this.height || h.height(), Gc());
    a.width = q;
    a.height = n;
    h.css(a);
    Sc(!0);
    Vb && Vb();
    J.on('resize.jackbox', ab)
  }
}(),
Sc = function () {
  var a = {
  },
  b = {
  },
  d = {
  };
  return function (c) {
    if (c) {
      260 > q && (Da += 260 - q);
      c = Math.max(q, 260);
      if (c === Ma && n === Yb) {
        Tc();
        return
      }
      a.callback = Tc;
      a.duration = Ma ? 50 < Math.abs(c - Ma) || 50 < Math.abs(n - Yb) ? 600 : 300 : 600
    } else c = q,
    d.width = c,
    a.duration = 300,
    delete a.callback,
    B && Jacked.tween(B[0], d, a),
    C && Jacked.tween(C[0], d, a),
    d.height = n,
    Jacked.stopTween(h[0], !0),
    Jacked.tween(h[0], d, a);
    b.marginLeft = - ((Da >> 1) + 0.5 | 0);
    b.marginTop = - ((Zb >> 1) + 0.5 | 0);
    b.height = n;
    b.width = c;
    Ma || (b.opacity = 1);
    Jacked.tween(w[0], b, a);
    Ma = c;
    Yb = n
  }
}(),
Tc = function () {
  var a = {
  },
  b = {
    opacity: 1,
    visibility: 'visible'
  };
  return function () {
    vd();
    Z.removeClass('jackbox-spin-preloader');
    var d = Math.max(q, 260);
    a.duration = 600;
    Va && !ua ? Jacked.fadeIn(h[0], a)  : (Ua ? h.css('visibility', 'visible')  : h.show(), 'audio' !== O && 'local' !== O || h[0].contentWindow.cjInit());
    a.duration = 300;
    ua ? (B && B.css('width', d).show(), C && C.css('width', d).show())  : (B && (B.css('width', d), Jacked.fadeIn(B[0], a)), C && (C.css('width', d), Jacked.fadeIn(C[0], a)));
    z && lb ? (z.show(), P.html(lb).show(), fa = - P.outerHeight(), F.css('height', - fa < n ? - fa : n), Qc ? (Na = !0, z.addClass('jb-info-inactive'), P.css({
      visibility: 'visible',
      marginTop: 0
    }))  : (Na = !1, P.css('margin-top', fa)))  : z && (z.hide(), P.hide());
    Ta = !1;
    !qb && X && (ja.css(b), ta.css(b));
    if (!Qb && jb && X) {
      var d = K[H],
      e = [
      ],
      g = R,
      f,
      l,
      k,
      t,
      p;
      for (Qb = !0; g--; ) k = d[g],
      k.attr('data-thumbnail') ? e[g] = !1 : (f = k.children('img'), f.length ? (k.attr('data-thumbnail', f.attr('src')), e[g] = f)  : ('image' === k.data('type') ? k.attr('data-thumbnail', k.attr('href') || k.attr('data-href'))  : k.attr('data-thumbnail', Sb), e[g] = !1));
      x = [
      ];
      ba || (g = r.createDocumentFragment(), k = G >> 1, ba = c('<div />').addClass('jackbox-thumb-holder').css('height', G).appendTo(v), u = c('<div />').addClass('jackbox-thumb-panel').css('height', G), da = c('<div />').addClass('jackbox-thumb-right'), ca = c('<div />').addClass('jackbox-thumb-left'), g.appendChild(u[0]), g.appendChild(da[0]), g.appendChild(ca[0]), u[0].cjThumbs = !0, ba[0].appendChild(g), V = c('<div />').addClass('jackbox-thumb-strip').appendTo(u), ca.css('top', k), da.css('top', k));
      k = r.createDocumentFragment();
      for (g = 0; g < R; g++) {
        l = x[g] = c('<div />').data('id', g).addClass('jackbox-thumb').css({
          width: ha,
          height: G,
          left: ga * g
        }).on('click.jackbox', Cc);
        if (Xa && (f = eb[g].attr('data-thumbTooltip') || eb[g].attr('data-title'))) l.data('theTitle', f).on('mouseenter.jackbox', wd).on('mouseleave.jackbox', zc);
        k.appendChild(l[0]);
        f = c('<img />').addClass('jb-thumb').one('load.jackbox', hd).appendTo(l);
        l.data('theThumb', f);
        e[g] ? (l = e[g].attr('width') || e[g].width(), t = e[g].attr('height') || e[g].height())  : (l = ha, t = G);
        l > ha && t > G && (p = l > t ? ha / l : G / t, l *= p, t *= p, t < G && (p = (G - t) / G, l += l * p, t += t * p), l < ha && (p = (ha - l) / ha, l += l * p, t += t * p), l !== (l | 0) && (l = l + 1 | 0), t !== (t | 0) && (t = t + 1 | 0));
        f.attr({
          width: l,
          height: t,
          src: d[g].attr('data-thumbnail')
        })
      }
      V[0].appendChild(k);
      Ic = x.length;
      Xb = ga * g;
      M = !0;
      y = 0;
      ba.on('click.jackbox', uc).show();
      Uc();
      A && (Fb ? (ea.hide(), Y.show(), ba.css('bottom', oa))  : (Y.hide(), ea.show(), ba.css('bottom', 0)), A.on('click.jackbox', Lb))
    }
    if (!qb) {
      qb = !0;
      if (wa) S.on('click.jackbox', id);
      if (Aa) Aa.one('click.jackbox', Cb);
      if (z) z.on('click.jackbox', xd);
      if (X) {
        if (ya) ya.on('click.jackbox', cb);
        if (xa) xa.on('click.jackbox', db);
        if (Xa && u) u.on('mouseenter.jackbox', gd);
        s && F && (F[0].addEventListener('touchstart', qa, !1), F[0].addEventListener('touchmove', qa, !1), F[0].addEventListener('touchend', qa, !1))
      }
    }
    s && (h[0].removeEventListener('touchstart', D, !1), h[0].removeEventListener('touchmove', D, !1), h[0].removeEventListener('touchend', D, !1), lc());
    if (X) {
      if (M) for (d = x.length; d--; ) x[d].on('click.jackbox', Cc);
      ja.on('click.jackbox', db);
      ta.on('click.jackbox', cb);
      if (Ga) Ha.on('keydown.jackbox', ed);
      s && Bb && h.cjSwipe('touchSwipe', nd)
    }
    'inline' === O && na()
  }
}(),
vd = function () {
  var a = {
    type: 'text/html',
    frameborder: 0,
    mozallowfullscreen: 'mozallowfullscreen',
    webkitallowfullscreen: 'webkitallowfullscreen',
    allowfullscreen: 'allowfullscreen',
    scrolling: 'no'
  };
  return function () {
    Jc || (Jc = !0, Ya = c('.jb-total'), z = c('.jackbox-info'), Ba = c('.jb-divider'), Ca = c('.jb-current'), Aa = c('.jackbox-close'), sb = c('.jackbox-title-text'), E = c('.jackbox-title-txt'), za = c('.jackbox-controls'), xa = c('.jackbox-arrow-left'), Za = c('.jackbox-social'), ya = c('.jackbox-arrow-right'), A = c('.jackbox-button-thumbs'), Y = c('.jackbox-show-thumbs'), ea = c('.jackbox-hide-thumbs'), E.length || (E = null), sb.length || (sb = null), xa.length || (xa = null), Ba.length || (Ba = null), ya.length || (ya = null), za.length || (za = null), Aa.length || (Aa = null), Za.length || (Za = null), Ca.length && Ya.length || (Ca = null), wa ? (c('.jackbox-ns').hide(), S.length || (S = wa = null))  : S && S.hide(), jb ? A.length && Y.length && ea.length ? Y.hide()  : A = Y = ea = null : (A.hide(), A = Y = ea = null), z.length ? (F = c('<div />').addClass('jackbox-info-text').appendTo(ka).css('visibility', 'hidden'), P = c('<div />').addClass('jackbox-description-text').appendTo(F))  : z = null, Xa && (La = c('<span />').addClass('jackbox-thumb-tip').css('bottom', G), Ub = c('<span />').addClass('jackbox-thumb-tip-text').text('render me').appendTo(La), La.appendTo(v), Hc = (parseInt(La.css('padding-left'), 10) << 1) - (Ea << 1)));
    X || (za && za.hide(), A && A.hide());
    if (sb) {
      'false' === pa && (pa = !1);
      var b = E && pa,
      d = b ? ' -&nbsp;' : '';
      Ca && X ? (Ca.text(f + 1).show(), Ya.html(R + d).show(), Ba && Ba.show())  : (Ya && Ya.hide(), Ca && Ca.hide(), Ba && Ba.hide());
      b && (E.html(Gb), b = E.find('a'), b.length && (b.on('click.jackbox', qa), E.data('links', b)))
    }
    if (Za && !tb) {
      var m,
      b = r.URL.split('#') [0],
      d = b.length - 1;
      - 1 !== b.search('/') && ('/' !== b.charAt(d) ? (W ? m = b + '#/' + ma + '/' + (f + 1)  : m = b, b = b.substring(0, b.lastIndexOf('/')))  : (b = b.substring(0, d), W ? m = b + '/#/' + ma + '/' + (f + 1)  : m = b));
      Va ? d = e.attr('href') || e.attr('data-href')  : (d = e.children('img'), d = d.length ? d.attr('src')  : Pc);
      - 1 === d.search('http') && (d = '/' !== d.charAt(0) ? b + '/' + d : b + d);
      b = pa ? pa.replace(/(<([^>]+)>)/gi, '')  : r.title;
      b = b.split('.').join('');
      a.width = 200;
      a.height = 21;
      a.src = Tb + '?url=' + encodeURIComponent(m) + '&poster=' + encodeURIComponent(d) + '&title=' + escape(b);
      pb = c('<iframe />').attr(a).appendTo(Za)
    }
  }
}(),
xd = function () {
  var a = {
  },
  b = {
    duration: 300
  };
  return function (d) {
    d && d.stopPropagation();
    Na ? (a.marginTop = fa, b.callback = fd, z.removeClass('jb-info-inactive'))  : (z.addClass('jb-info-inactive'), F.css('visibility', 'visible'), a.marginTop = 0, delete b.callback);
    Jacked.tween(P[0], a, b);
    Na = !Na
  }
}(),
wd = function () {
  var a = {
    opacity: 1,
    visibility: 'visible'
  };
  return function () {
    s && (clearTimeout(Lc), Lc = setTimeout(zc, 2000));
    var b = c(this),
    d,
    e,
    g;
    Ub.text(b.data('theTitle'));
    d = parseInt(Ub.css('width'), 10);
    g = u.data('offLeft');
    b = b.offset().left;
    e = g + u.width() - d - Hc;
    a.width = d;
    a.left = b < g ? g : b > e ? e : b;
    La.css(a)
  }
}(),
Lb = function () {
  var a = {
  },
  b = {
    duration: 300
  };
  return function (d) {
    d && d.stopPropagation();
    0 === oa ? (oa = xb, A && (ea.hide(), Y.show()))  : (oa = 0, A && (Y.hide(), ea.show()));
    a.bottom = oa;
    Jacked.tween(ba[0], a, b);
    569 > I || (na('true'), Sc())
  }
}(),
Uc = function () {
  var a = {
  };
  return function (b) {
    var d = I - 160;
    Xb < d ? (ra = Ic, $b = !1)  : (ra = d / ga | 0, $b = !0);
    rb = ga * ra - Ea;
    Wb = ra - 1;
    a.marginLeft = - (rb >> 1) - Ea;
    a.width = rb;
    u.css(a);
    V.css('width', Xb);
    vc(b)
  }
}(),
vc = function () {
  var a = {
  },
  b = {
    duration: 300
  };
  return function (d, c) {
    if (d) y = f,
    0 !== f && f + ra > R && (y = R - ra),
    Jacked.stopTween(V[0]),
    V.css('left', y * - ga);
     else {
      if (0 === f) y = 0;
       else if (f > y + Wb) for (; f > y + Wb; ) y++;
      c ? (a.left = y * - ga, Jacked.tween(V[0], a, b))  : (Jacked.stopTween(V[0]), V.css('left', y * - ga))
    }
    Mb(d, !1)
  }
}(),
Mb = function () {
  var a = {
  },
  b = {
    duration: 300
  };
  return function (d, c) {
    ca.off('.jackbox');
    da.off('.jackbox');
    if ($b) if (s && u.cjSwipe('unbindSwipe'), y < R - ra ? (da.on('click.jackbox', Ac).show(), s && u.cjSwipe('touchSwipeLeft', Ac, !0))  : da.hide(), 0 < y ? (ca.on('click.jackbox', Bc).show(), s && u.cjSwipe('touchSwipeRight', Bc, !0))  : ca.hide(), c) a.left = y * - ga,
    Jacked.tween(V[0], a, b);
     else {
      if (d || !Pb) {
        var e = u.offset().left;
        ca.css('left', e);
        da.css('left', e + rb);
        Pb = !0
      }
    } else ca.hide(),
    da.hide()
  }
}(),
na = function () {
  var a = {
    opacity: 1
  },
  b = {
  };
  return function (d) {
    I = J.width();
    N = Math.max(J.height(), 226);
    var c = 568 < I && 0 === oa ? Eb : 0;
    Kc = 'audio' !== O && 'inline' !== O ? Wa ? kb || Nc : kb : !1;
    if (ob < I && Ob + c < N && !Kc) q = T,
    n = U;
     else {
      q = I / ob;
      n = N / Ob;
      var e = q > n ? n : q;
      q = T * e;
      n = U * e;
      I > N ? n + gb + c > N && (n = N - Ja - $ - c, q = n / U * T)  : q > n ? q + ob > I && (q = I - $, n = q / T * U)  : n + gb + c > N && (n = N - Ja - $ - c, q = n / U * T);
      q !== (q | 0) && (q = q + 1 | 0);
      n !== (n | 0) && (n = n + 1 | 0)
    }
    if ('inline' === O) {
      var e = I - fb - Db - $,
      f = N - Ja - $ - c;
      q = T > e ? e : T;
      n = U < f ? U : n
    }
    Da = q + fb;
    Zb = n + Ja + c;
    'true' !== d && (Jacked.stopTween(w[0], !1, !0), h && Jacked.stopTween(h[0], !0, !0), 260 > q && (Da += 260 - q), d = Math.max(260, q), a.width = d, a.height = n, b.marginLeft = - (0.5 * Da + 0.5 | 0), b.marginTop = - (0.5 * Zb + 0.5 | 0), b.width = d, b.height = n, w.css(b), h.css(a), C && (Jacked.stopTween(C[0]), C.css('width', d)), B && (Jacked.stopTween(B[0]), B.css('width', d)), z && lb && (fa = - P.outerHeight(), F.css('height', - fa < n ? - fa : n), Na || (Jacked.stopTween(P[0], !1, !0), P.css('margin-top', fa))), M && Uc(!0))
  }
}(),
ud = function () {
  var a = {
  };
  return function (b) {
    var d = c(this).data();
    a.left = b.pageX - d.tipX - d.tipWidth;
    a.top = b.pageY - d.tipY - d.tipHeight;
    d.tip.css(a)
  }
}();
c.fn.jackBox = function (a, b) {
  if (Rc.hasOwnProperty(a)) Rc[a](this, b);
  return this
};
c.jackBox = {
  available: function (a) {
    a && (bc ? W ? setTimeout(a, 250)  : a()  : Qa = a)
  },
  itemLoaded: function (a) {
    Vb = a
  }
}
}) (jQuery);
function jackboxFrameReady() {
jQuery.fn.jackBox('frameReady')
};
