/*
* jquery.tools 1.1.2 - The missing UI library for the Web
* 
* [tools.tabs-1.0.4, tools.tabs.slideshow-1.0.2, tools.tabs.history-1.0.2, tools.tooltip-1.1.3, tools.tooltip.slide-1.0.0, tools.tooltip.dynamic-1.0.1, tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.scrollable.autoscroll-1.0.1, tools.scrollable.navigator-1.0.2, tools.scrollable.mousewheel-1.0.1, tools.overlay-1.1.2, tools.overlay.gallery-1.0.0, tools.overlay.apple-1.0.1, tools.expose-1.0.5]
* 
* Copyright (c) 2009 Tero Piirainen
* http://flowplayer.org/tools/
*
* Dual licensed under MIT and GPL 2+ licenses
* http://www.opensource.org/licenses
* 
* -----
* 
* jquery.event.wheel.js - rev 1 
* Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
* Liscensed under the MIT License (MIT-LICENSE.txt)
* http://www.opensource.org/licenses/mit-license.php
* Created: 2008-07-01 | Updated: 2008-07-14
* 
* -----
* 
* File generated: Wed Dec 16 12:30:00 GMT 2009
*/
(function(d) { d.tools = d.tools || {}; d.tools.tabs = { version: "1.0.4", conf: { tabs: "a", current: "current", onBeforeClick: null, onClick: null, effect: "default", initialIndex: 0, event: "click", api: false, rotate: false }, addEffect: function(e, f) { c[e] = f } }; var c = { "default": function(f, e) { this.getPanes().hide().eq(f).show(); e.call() }, fade: function(g, e) { var f = this.getConf(), j = f.fadeOutSpeed, h = this.getPanes(); if (j) { h.fadeOut(j) } else { h.hide() } h.eq(g).fadeIn(f.fadeInSpeed, e) }, slide: function(f, e) { this.getPanes().slideUp(200); this.getPanes().eq(f).slideDown(400, e) }, ajax: function(f, e) { this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"), e) } }; var b; d.tools.tabs.addEffect("horizontal", function(f, e) { if (!b) { b = this.getPanes().eq(0).width() } this.getCurrentPane().animate({ width: 0 }, function() { d(this).hide() }); this.getPanes().eq(f).animate({ width: b }, function() { d(this).show(); e.call() }) }); function a(g, h, f) { var e = this, j = d(this), i; d.each(f, function(k, l) { if (d.isFunction(l)) { j.bind(k, l) } }); d.extend(this, { click: function(k, n) { var o = e.getCurrentPane(); var l = g.eq(k); if (typeof k == "string" && k.replace("#", "")) { l = g.filter("[href*=" + k.replace("#", "") + "]"); k = Math.max(g.index(l), 0) } if (f.rotate) { var m = g.length - 1; if (k < 0) { return e.click(m, n) } if (k > m) { return e.click(0, n) } } if (!l.length) { if (i >= 0) { return e } k = f.initialIndex; l = g.eq(k) } if (k === i) { return e } n = n || d.Event(); n.type = "onBeforeClick"; j.trigger(n, [k]); if (n.isDefaultPrevented()) { return } c[f.effect].call(e, k, function() { n.type = "onClick"; j.trigger(n, [k]) }); n.type = "onStart"; j.trigger(n, [k]); if (n.isDefaultPrevented()) { return } i = k; g.removeClass(f.current); l.addClass(f.current); return e }, getConf: function() { return f }, getTabs: function() { return g }, getPanes: function() { return h }, getCurrentPane: function() { return h.eq(i) }, getCurrentTab: function() { return g.eq(i) }, getIndex: function() { return i }, next: function() { return e.click(i + 1) }, prev: function() { return e.click(i - 1) }, bind: function(k, l) { j.bind(k, l); return e }, onBeforeClick: function(k) { return this.bind("onBeforeClick", k) }, onClick: function(k) { return this.bind("onClick", k) }, unbind: function(k) { j.unbind(k); return e } }); g.each(function(k) { d(this).bind(f.event, function(l) { e.click(k, l); return false }) }); if (location.hash) { e.click(location.hash) } else { if (f.initialIndex === 0 || f.initialIndex > 0) { e.click(f.initialIndex) } } h.find("a[href^=#]").click(function(k) { e.click(d(this).attr("href"), k) }) } d.fn.tabs = function(i, f) { var g = this.eq(typeof f == "number" ? f : 0).data("tabs"); if (g) { return g } if (d.isFunction(f)) { f = { onBeforeClick: f} } var h = d.extend({}, d.tools.tabs.conf), e = this.length; f = d.extend(h, f); this.each(function(l) { var j = d(this); var k = j.find(f.tabs); if (!k.length) { k = j.children() } var m = i.jquery ? i : j.children(i); if (!m.length) { m = e == 1 ? d(i) : j.parent().find(i) } g = new a(k, m, f); j.data("tabs", g) }); return f.api ? g : this } })(jQuery);
(function(b) { var a = b.tools.tabs; a.plugins = a.plugins || {}; a.plugins.slideshow = { version: "1.0.2", conf: { next: ".forward", prev: ".backward", disabledClass: "disabled", autoplay: false, autopause: true, interval: 3000, clickable: true, api: false} }; b.prototype.slideshow = function(e) { var f = b.extend({}, a.plugins.slideshow.conf), c = this.length, d; e = b.extend(f, e); this.each(function() { var p = b(this), m = p.tabs(), i = b(m), o = m; b.each(e, function(t, u) { if (b.isFunction(u)) { m.bind(t, u) } }); function n(t) { return c == 1 ? b(t) : p.parent().find(t) } var s = n(e.next).click(function() { m.next() }); var q = n(e.prev).click(function() { m.prev() }); var h, j, l, g = false; b.extend(m, { play: function() { if (h) { return } var t = b.Event("onBeforePlay"); i.trigger(t); if (t.isDefaultPrevented()) { return m } g = false; h = setInterval(m.next, e.interval); i.trigger("onPlay"); m.next() }, pause: function() { if (!h) { return m } var t = b.Event("onBeforePause"); i.trigger(t); if (t.isDefaultPrevented()) { return m } h = clearInterval(h); l = clearInterval(l); i.trigger("onPause") }, stop: function() { m.pause(); g = true }, onBeforePlay: function(t) { return m.bind("onBeforePlay", t) }, onPlay: function(t) { return m.bind("onPlay", t) }, onBeforePause: function(t) { return m.bind("onBeforePause", t) }, onPause: function(t) { return m.bind("onPause", t) } }); if (e.autopause) { var k = m.getTabs().add(s).add(q).add(m.getPanes()); k.hover(function() { m.pause(); j = clearInterval(j) }, function() { if (!g) { j = setTimeout(m.play, e.interval) } }) } if (e.autoplay) { l = setTimeout(m.play, e.interval) } else { m.stop() } if (e.clickable) { m.getPanes().click(function() { m.next() }) } if (!m.getConf().rotate) { var r = e.disabledClass; if (!m.getIndex()) { q.addClass(r) } m.onBeforeClick(function(u, t) { if (!t) { q.addClass(r) } else { q.removeClass(r); if (t == m.getTabs().length - 1) { s.addClass(r) } else { s.removeClass(r) } } }) } }); return e.api ? d : this } })(jQuery);
(function(d) { var a = d.tools.tabs; a.plugins = a.plugins || {}; a.plugins.history = { version: "1.0.2", conf: { api: false} }; var e, b; function c(f) { if (f) { var g = b.contentWindow.document; g.open().close(); g.location.hash = f } } d.fn.onHash = function(g) { var f = this; if (d.browser.msie && d.browser.version < "8") { if (!b) { b = d("<iframe/>").attr("src", "javascript:false;").hide().get(0); d("body").append(b); setInterval(function() { var i = b.contentWindow.document, j = i.location.hash; if (e !== j) { d.event.trigger("hash", j); e = j } }, 100); c(location.hash || "#") } f.bind("click.hash", function(h) { c(d(this).attr("href")) }) } else { setInterval(function() { var j = location.hash; var i = f.filter("[href$=" + j + "]"); if (!i.length) { j = j.replace("#", ""); i = f.filter("[href$=" + j + "]") } if (i.length && j !== e) { e = j; d.event.trigger("hash", j) } }, 100) } d(window).bind("hash", g); return this }; d.fn.history = function(g) { var h = d.extend({}, a.plugins.history.conf), f; g = d.extend(h, g); this.each(function() { var j = d(this).tabs(), i = j.getTabs(); if (j) { f = j } i.onHash(function(k, l) { if (!l || l == "#") { l = j.getConf().initialIndex } j.click(l) }); i.click(function(k) { location.hash = d(this).attr("href").replace("#", "") }) }); return g.api ? f : this } })(jQuery);
(function(c) { var d = []; c.tools = c.tools || {}; c.tools.tooltip = { version: "1.1.3", conf: { effect: "toggle", fadeOutSpeed: "fast", tip: null, predelay: 0, delay: 30, opacity: 1, lazy: undefined, position: ["top", "center"], offset: [0, 0], cancelDefault: true, relative: false, oneInstance: true, events: { def: "mouseover,mouseout", input: "focus,blur", widget: "focus mouseover,blur mouseout", tooltip: "mouseover,mouseout" }, api: false }, addEffect: function(e, g, f) { b[e] = [g, f] } }; var b = { toggle: [function(e) { var f = this.getConf(), g = this.getTip(), h = f.opacity; if (h < 1) { g.css({ opacity: h }) } g.show(); e.call() }, function(e) { this.getTip().hide(); e.call() } ], fade: [function(e) { this.getTip().fadeIn(this.getConf().fadeInSpeed, e) }, function(e) { this.getTip().fadeOut(this.getConf().fadeOutSpeed, e) } ] }; function a(f, g) { var p = this, k = c(this); f.data("tooltip", p); var l = f.next(); if (g.tip) { l = c(g.tip); if (l.length > 1) { l = f.nextAll(g.tip).eq(0); if (!l.length) { l = f.parent().nextAll(g.tip).eq(0) } } } function o(u) { var t = g.relative ? f.position().top : f.offset().top, s = g.relative ? f.position().left : f.offset().left, v = g.position[0]; t -= l.outerHeight() - g.offset[0]; s += f.outerWidth() + g.offset[1]; var q = l.outerHeight() + f.outerHeight(); if (v == "center") { t += q / 2 } if (v == "bottom") { t += q } v = g.position[1]; var r = l.outerWidth() + f.outerWidth(); if (v == "center") { s -= r / 2 } if (v == "left") { s -= r } return { top: t, left: s} } var i = f.is(":input"), e = i && f.is(":checkbox, :radio, select, :button"), h = f.attr("type"), n = g.events[h] || g.events[i ? (e ? "widget" : "input") : "def"]; n = n.split(/,\s*/); if (n.length != 2) { throw "Tooltip: bad events configuration for " + h } f.bind(n[0], function(r) { if (g.oneInstance) { c.each(d, function() { this.hide() }) } var q = l.data("trigger"); if (q && q[0] != this) { l.hide().stop(true, true) } r.target = this; p.show(r); n = g.events.tooltip.split(/,\s*/); l.bind(n[0], function() { p.show(r) }); if (n[1]) { l.bind(n[1], function() { p.hide(r) }) } }); f.bind(n[1], function(q) { p.hide(q) }); if (!c.browser.msie && !i && !g.predelay) { f.mousemove(function() { if (!p.isShown()) { f.triggerHandler("mouseover") } }) } if (g.opacity < 1) { l.css("opacity", g.opacity) } var m = 0, j = f.attr("title"); if (j && g.cancelDefault) { f.removeAttr("title"); f.data("title", j) } c.extend(p, { show: function(r) { if (r) { f = c(r.target) } clearTimeout(l.data("timer")); if (l.is(":animated") || l.is(":visible")) { return p } function q() { l.data("trigger", f); var t = o(r); if (g.tip && j) { l.html(f.data("title")) } r = r || c.Event(); r.type = "onBeforeShow"; k.trigger(r, [t]); if (r.isDefaultPrevented()) { return p } t = o(r); l.css({ position: "absolute", top: t.top, left: t.left }); var s = b[g.effect]; if (!s) { throw 'Nonexistent effect "' + g.effect + '"' } s[0].call(p, function() { r.type = "onShow"; k.trigger(r) }) } if (g.predelay) { clearTimeout(m); m = setTimeout(q, g.predelay) } else { q() } return p }, hide: function(r) { clearTimeout(l.data("timer")); clearTimeout(m); if (!l.is(":visible")) { return } function q() { r = r || c.Event(); r.type = "onBeforeHide"; k.trigger(r); if (r.isDefaultPrevented()) { return } b[g.effect][1].call(p, function() { r.type = "onHide"; k.trigger(r) }) } if (g.delay && r) { l.data("timer", setTimeout(q, g.delay)) } else { q() } return p }, isShown: function() { return l.is(":visible, :animated") }, getConf: function() { return g }, getTip: function() { return l }, getTrigger: function() { return f }, bind: function(q, r) { k.bind(q, r); return p }, onHide: function(q) { return this.bind("onHide", q) }, onBeforeShow: function(q) { return this.bind("onBeforeShow", q) }, onShow: function(q) { return this.bind("onShow", q) }, onBeforeHide: function(q) { return this.bind("onBeforeHide", q) }, unbind: function(q) { k.unbind(q); return p } }); c.each(g, function(q, r) { if (c.isFunction(r)) { p.bind(q, r) } }) } c.prototype.tooltip = function(e) { var f = this.eq(typeof e == "number" ? e : 0).data("tooltip"); if (f) { return f } var g = c.extend(true, {}, c.tools.tooltip.conf); if (c.isFunction(e)) { e = { onBeforeShow: e} } else { if (typeof e == "string") { e = { tip: e} } } e = c.extend(true, g, e); if (typeof e.position == "string") { e.position = e.position.split(/,?\s/) } if (e.lazy !== false && (e.lazy === true || this.length > 20)) { this.one("mouseover", function(h) { f = new a(c(this), e); f.show(h); d.push(f) }) } else { this.each(function() { f = new a(c(this), e); d.push(f) }) } return e.api ? f : this } })(jQuery);
(function(b) { var a = b.tools.tooltip; a.effects = a.effects || {}; a.effects.slide = { version: "1.0.0" }; b.extend(a.conf, { direction: "up", bounce: false, slideOffset: 10, slideInSpeed: 200, slideOutSpeed: 200, slideFade: !b.browser.msie }); var c = { up: ["-", "top"], down: ["+", "top"], left: ["-", "left"], right: ["+", "left"] }; b.tools.tooltip.addEffect("slide", function(d) { var f = this.getConf(), g = this.getTip(), h = f.slideFade ? { opacity: f.opacity} : {}, e = c[f.direction] || c.up; h[e[1]] = e[0] + "=" + f.slideOffset; if (f.slideFade) { g.css({ opacity: 0 }) } g.show().animate(h, f.slideInSpeed, d) }, function(e) { var g = this.getConf(), i = g.slideOffset, h = g.slideFade ? { opacity: 0} : {}, f = c[g.direction] || c.up; var d = "" + f[0]; if (g.bounce) { d = d == "+" ? "-" : "+" } h[f[1]] = d + "=" + i; this.getTip().animate(h, g.slideOutSpeed, function() { b(this).hide(); e.call() }) }) })(jQuery);
(function(d) { var c = d.tools.tooltip; c.plugins = c.plugins || {}; c.plugins.dynamic = { version: "1.0.1", conf: { api: false, classNames: "top right bottom left"} }; function b(h) { var e = d(window); var g = e.width() + e.scrollLeft(); var f = e.height() + e.scrollTop(); return [h.offset().top <= e.scrollTop(), g <= h.offset().left + h.width(), f <= h.offset().top + h.height(), e.scrollLeft() >= h.offset().left] } function a(f) { var e = f.length; while (e--) { if (f[e]) { return false } } return true } d.fn.dynamic = function(g) { var h = d.extend({}, c.plugins.dynamic.conf), f; if (typeof g == "number") { g = { speed: g} } g = d.extend(h, g); var e = g.classNames.split(/\s/), i; this.each(function() { if (d(this).tooltip().jquery) { throw "Lazy feature not supported by dynamic plugin. set lazy: false for tooltip" } var j = d(this).tooltip().onBeforeShow(function(n, o) { var m = this.getTip(), l = this.getConf(); if (!i) { i = [l.position[0], l.position[1], l.offset[0], l.offset[1], d.extend({}, l)] } d.extend(l, i[4]); l.position = [i[0], i[1]]; l.offset = [i[2], i[3]]; m.css({ visibility: "hidden", position: "absolute", top: o.top, left: o.left }).show(); var k = b(m); if (!a(k)) { if (k[2]) { d.extend(l, g.top); l.position[0] = "top"; m.addClass(e[0]) } if (k[3]) { d.extend(l, g.right); l.position[1] = "right"; m.addClass(e[1]) } if (k[0]) { d.extend(l, g.bottom); l.position[0] = "bottom"; m.addClass(e[2]) } if (k[1]) { d.extend(l, g.left); l.position[1] = "left"; m.addClass(e[3]) } if (k[0] || k[2]) { l.offset[0] *= -1 } if (k[1] || k[3]) { l.offset[1] *= -1 } } m.css({ visibility: "visible" }).hide() }); j.onShow(function() { var l = this.getConf(), k = this.getTip(); l.position = [i[0], i[1]]; l.offset = [i[2], i[3]] }); j.onHide(function() { var k = this.getTip(); k.removeClass(g.classNames) }); f = j }); return g.api ? f : this } })(jQuery);
(function(b) { b.tools = b.tools || {}; b.tools.scrollable = { version: "1.1.2", conf: { size: 5, vertical: false, speed: 400, keyboard: true, keyboardSteps: null, disabledClass: "disabled", hoverClass: null, clickable: true, activeClass: "active", easing: "swing", loop: false, items: ".items", item: null, prev: ".prev", next: ".next", prevPage: ".prevPage", nextPage: ".nextPage", api: false} }; var c; function a(o, m) { var r = this, p = b(this), d = !m.vertical, e = o.children(), k = 0, i; if (!c) { c = r } b.each(m, function(s, t) { if (b.isFunction(t)) { p.bind(s, t) } }); if (e.length > 1) { e = b(m.items, o) } function l(t) { var s = b(t); return m.globalNav ? s : o.parent().find(t) } o.data("finder", l); var f = l(m.prev), h = l(m.next), g = l(m.prevPage), n = l(m.nextPage); b.extend(r, { getIndex: function() { return k }, getClickIndex: function() { var s = r.getItems(); return s.index(s.filter("." + m.activeClass)) }, getConf: function() { return m }, getSize: function() { return r.getItems().size() }, getPageAmount: function() { return Math.ceil(this.getSize() / m.size) }, getPageIndex: function() { return Math.ceil(k / m.size) }, getNaviButtons: function() { return f.add(h).add(g).add(n) }, getRoot: function() { return o }, getItemWrap: function() { return e }, getItems: function() { return e.children(m.item) }, getVisibleItems: function() { return r.getItems().slice(k, k + m.size) }, seekTo: function(s, w, t) { if (s < 0) { s = 0 } if (k === s) { return r } if (b.isFunction(w)) { t = w } if (s > r.getSize() - m.size) { return m.loop ? r.begin() : this.end() } var u = r.getItems().eq(s); if (!u.length) { return r } var v = b.Event("onBeforeSeek"); p.trigger(v, [s]); if (v.isDefaultPrevented()) { return r } if (w === undefined || b.isFunction(w)) { w = m.speed } function x() { if (t) { t.call(r, s) } p.trigger("onSeek", [s]) } if (d) { e.animate({ left: -u.position().left }, w, m.easing, x) } else { e.animate({ top: -u.position().top }, w, m.easing, x) } c = r; k = s; v = b.Event("onStart"); p.trigger(v, [s]); if (v.isDefaultPrevented()) { return r } f.add(g).toggleClass(m.disabledClass, s === 0); h.add(n).toggleClass(m.disabledClass, s >= r.getSize() - m.size); return r }, move: function(u, t, s) { i = u > 0; return this.seekTo(k + u, t, s) }, next: function(t, s) { return this.move(1, t, s) }, prev: function(t, s) { return this.move(-1, t, s) }, movePage: function(w, v, u) { i = w > 0; var s = m.size * w; var t = k % m.size; if (t > 0) { s += (w > 0 ? -t : m.size - t) } return this.move(s, v, u) }, prevPage: function(t, s) { return this.movePage(-1, t, s) }, nextPage: function(t, s) { return this.movePage(1, t, s) }, setPage: function(t, u, s) { return this.seekTo(t * m.size, u, s) }, begin: function(t, s) { i = false; return this.seekTo(0, t, s) }, end: function(t, s) { i = true; var u = this.getSize() - m.size; return u > 0 ? this.seekTo(u, t, s) : r }, reload: function() { p.trigger("onReload"); return r }, focus: function() { c = r; return r }, click: function(u) { var v = r.getItems().eq(u), s = m.activeClass, t = m.size; if (u < 0 || u >= r.getSize()) { return r } if (t == 1) { if (m.loop) { return r.next() } if (u === 0 || u == r.getSize() - 1) { i = (i === undefined) ? true : !i } return i === false ? r.prev() : r.next() } if (t == 2) { if (u == k) { u-- } r.getItems().removeClass(s); v.addClass(s); return r.seekTo(u, time, fn) } if (!v.hasClass(s)) { r.getItems().removeClass(s); v.addClass(s); var x = Math.floor(t / 2); var w = u - x; if (w > r.getSize() - t) { w = r.getSize() - t } if (w !== u) { return r.seekTo(w) } } return r }, bind: function(s, t) { p.bind(s, t); return r }, unbind: function(s) { p.unbind(s); return r } }); b.each("onBeforeSeek,onStart,onSeek,onReload".split(","), function(s, t) { r[t] = function(u) { return r.bind(t, u) } }); f.addClass(m.disabledClass).click(function() { r.prev() }); h.click(function() { r.next() }); n.click(function() { r.nextPage() }); if (r.getSize() < m.size) { h.add(n).addClass(m.disabledClass) } g.addClass(m.disabledClass).click(function() { r.prevPage() }); var j = m.hoverClass, q = "keydown." + Math.random().toString().substring(10); r.onReload(function() { if (j) { r.getItems().hover(function() { b(this).addClass(j) }, function() { b(this).removeClass(j) }) } if (m.clickable) { r.getItems().each(function(s) { b(this).unbind("click.scrollable").bind("click.scrollable", function(t) { if (b(t.target).is("a")) { return } return r.click(s) }) }) } if (m.keyboard) { b(document).unbind(q).bind(q, function(t) { if (t.altKey || t.ctrlKey) { return } if (m.keyboard != "static" && c != r) { return } var u = m.keyboardSteps; if (d && (t.keyCode == 37 || t.keyCode == 39)) { r.move(t.keyCode == 37 ? -u : u); return t.preventDefault() } if (!d && (t.keyCode == 38 || t.keyCode == 40)) { r.move(t.keyCode == 38 ? -u : u); return t.preventDefault() } return true }) } else { b(document).unbind(q) } }); r.reload() } b.fn.scrollable = function(d) { var e = this.eq(typeof d == "number" ? d : 0).data("scrollable"); if (e) { return e } var f = b.extend({}, b.tools.scrollable.conf); d = b.extend(f, d); d.keyboardSteps = d.keyboardSteps || d.size; this.each(function() { e = new a(b(this), d); b(this).data("scrollable", e) }); return d.api ? e : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.circular = { version: "0.5.1", conf: { api: false, clonedClass: "cloned"} }; b.fn.circular = function(e) { var d = b.extend({}, a.plugins.circular.conf), c; b.extend(d, e); this.each(function() { var i = b(this).scrollable(), n = i.getItems(), k = i.getConf(), f = i.getItemWrap(), j = 0; if (i) { c = i } if (n.length < k.size) { return false } n.slice(0, k.size).each(function(o) { b(this).clone().appendTo(f).click(function() { i.click(n.length + o) }).addClass(d.clonedClass) }); var l = b.makeArray(n.slice(-k.size)).reverse(); b(l).each(function(o) { b(this).clone().prependTo(f).click(function() { i.click(-o - 1) }).addClass(d.clonedClass) }); var m = f.children(k.item); var h = k.hoverClass; if (h) { m.hover(function() { b(this).addClass(h) }, function() { b(this).removeClass(h) }) } function g(o) { var p = m.eq(o); if (k.vertical) { f.css({ top: -p.position().top }) } else { f.css({ left: -p.position().left }) } } g(k.size); b.extend(i, { move: function(s, r, p, q) { var u = j + s + k.size; var t = u > i.getSize() - k.size; if (u <= 0 || t) { var o = j + k.size + (t ? -n.length : n.length); g(o); u = o + s } if (q) { m.removeClass(k.activeClass).eq(u + Math.floor(k.size / 2)).addClass(k.activeClass) } if (u === j + k.size) { return self } return i.seekTo(u, r, p) }, begin: function(p, o) { return this.seekTo(k.size, p, o) }, end: function(p, o) { return this.seekTo(n.length, p, o) }, click: function(p, r, q) { if (!k.clickable) { return self } if (k.size == 1) { return this.next() } var s = p - j, o = k.activeClass; s -= Math.floor(k.size / 2); return this.move(s, r, q, true) }, getIndex: function() { return j }, setPage: function(p, q, o) { return this.seekTo(p * k.size + k.size, q, o) }, getPageAmount: function() { return Math.ceil(n.length / k.size) }, getPageIndex: function() { if (j < 0) { return this.getPageAmount() - 1 } if (j >= n.length) { return 0 } var o = (j + k.size) / k.size - 1; return o }, getVisibleItems: function() { var o = j + k.size; return m.slice(o, o + k.size) } }); i.onStart(function(p, o) { j = o - k.size; return false }); i.getNaviButtons().removeClass(k.disabledClass) }); return d.api ? c : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.autoscroll = { version: "1.0.1", conf: { autoplay: true, interval: 3000, autopause: true, steps: 1, api: false} }; b.fn.autoscroll = function(d) { if (typeof d == "number") { d = { interval: d} } var e = b.extend({}, a.plugins.autoscroll.conf), c; b.extend(e, d); this.each(function() { var g = b(this).scrollable(); if (g) { c = g } var i, f, h = true; g.play = function() { if (i) { return } h = false; i = setInterval(function() { g.move(e.steps) }, e.interval); g.move(e.steps) }; g.pause = function() { i = clearInterval(i) }; g.stop = function() { g.pause(); h = true }; if (e.autopause) { g.getRoot().add(g.getNaviButtons()).hover(function() { g.pause(); clearInterval(f) }, function() { if (!h) { f = setTimeout(g.play, e.interval) } }) } if (e.autoplay) { setTimeout(g.play, e.interval) } }); return e.api ? c : this } })(jQuery);
(function(b) { var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.navigator = { version: "1.0.2", conf: { navi: ".navi", naviItem: null, activeClass: "active", indexed: false, api: false, idPrefix: null} }; b.fn.navigator = function(d) { var e = b.extend({}, a.plugins.navigator.conf), c; if (typeof d == "string") { d = { navi: d} } d = b.extend(e, d); this.each(function() { var i = b(this).scrollable(), f = i.getRoot(), l = f.data("finder").call(null, d.navi), g = null, k = i.getNaviButtons(); if (i) { c = i } i.getNaviButtons = function() { return k.add(l) }; function j() { if (!l.children().length || l.data("navi") == i) { l.empty(); l.data("navi", i); for (var m = 0; m < i.getPageAmount(); m++) { l.append(b("<" + (d.naviItem || "a") + "/>")) } g = l.children().each(function(n) { var o = b(this); o.click(function(p) { i.setPage(n); return p.preventDefault() }); if (d.indexed) { o.text(n) } if (d.idPrefix) { o.attr("id", d.idPrefix + n) } }) } else { g = d.naviItem ? l.find(d.naviItem) : l.children(); g.each(function(n) { var o = b(this); o.click(function(p) { i.setPage(n); return p.preventDefault() }) }) } g.eq(0).addClass(d.activeClass) } i.onStart(function(o, n) { var m = d.activeClass; g.removeClass(m).eq(i.getPageIndex()).addClass(m) }); i.onReload(function() { j() }); j(); var h = g.filter("[href=" + location.hash + "]"); if (h.length) { i.move(g.index(h)) } }); return d.api ? c : this } })(jQuery);
(function(b) { b.fn.wheel = function(e) { return this[e ? "bind" : "trigger"]("wheel", e) }; b.event.special.wheel = { setup: function() { b.event.add(this, d, c, {}) }, teardown: function() { b.event.remove(this, d, c) } }; var d = !b.browser.mozilla ? "mousewheel" : "DOMMouseScroll" + (b.browser.version < "1.9" ? " mousemove" : ""); function c(e) { switch (e.type) { case "mousemove": return b.extend(e.data, { clientX: e.clientX, clientY: e.clientY, pageX: e.pageX, pageY: e.pageY }); case "DOMMouseScroll": b.extend(e, e.data); e.delta = -e.detail / 3; break; case "mousewheel": e.delta = e.wheelDelta / 120; break } e.type = "wheel"; return b.event.handle.call(this, e, e.delta) } var a = b.tools.scrollable; a.plugins = a.plugins || {}; a.plugins.mousewheel = { version: "1.0.1", conf: { api: false, speed: 50} }; b.fn.mousewheel = function(f) { var g = b.extend({}, a.plugins.mousewheel.conf), e; if (typeof f == "number") { f = { speed: f} } f = b.extend(g, f); this.each(function() { var h = b(this).scrollable(); if (h) { e = h } h.getRoot().wheel(function(i, j) { h.move(j < 0 ? 1 : -1, f.speed || 50); return false }) }); return f.api ? e : this } })(jQuery);
(function(c) { c.tools = c.tools || {}; c.tools.overlay = { version: "1.1.2", addEffect: function(e, f, g) { b[e] = [f, g] }, conf: { top: "15%", left: "center", absolute: false, speed: "normal", closeSpeed: "fast", effect: "default", close: null, oneInstance: true, closeOnClick: true, closeOnEsc: true, api: false, expose: null, target: null} }; var b = {}; c.tools.overlay.addEffect("default", function(e) { this.getOverlay().fadeIn(this.getConf().speed, e) }, function(e) { this.getOverlay().fadeOut(this.getConf().closeSpeed, e) }); var d = []; function a(g, k) { var o = this, m = c(this), n = c(window), j, i, h, e = k.expose && c.tools.expose.version; var f = k.target || g.attr("rel"); i = f ? c(f) : null || g; if (!i.length) { throw "Could not find Overlay: " + f } if (g && g.index(i) == -1) { g.click(function(p) { o.load(p); return p.preventDefault() }) } c.each(k, function(p, q) { if (c.isFunction(q)) { m.bind(p, q) } }); c.extend(o, { load: function(u) { if (o.isOpened()) { return o } var r = b[k.effect]; if (!r) { throw 'Overlay: cannot find effect : "' + k.effect + '"' } if (k.oneInstance) { c.each(d, function() { this.close(u) }) } u = u || c.Event(); u.type = "onBeforeLoad"; m.trigger(u); if (u.isDefaultPrevented()) { return o } h = true; if (e) { i.expose().load(u) } var t = k.top; var s = k.left; var p = i.outerWidth({ margin: true }); var q = i.outerHeight({ margin: true }); if (typeof t == "string") { t = t == "center" ? Math.max((n.height() - q) / 2, 0) : parseInt(t, 10) / 100 * n.height() } if (s == "center") { s = Math.max((n.width() - p) / 2, 0) } if (!k.absolute) { t += n.scrollTop(); s += n.scrollLeft() } i.css({ top: t, left: s, position: "absolute" }); u.type = "onStart"; m.trigger(u); r[0].call(o, function() { if (h) { u.type = "onLoad"; m.trigger(u) } }); if (k.closeOnClick) { c(document).bind("click.overlay", function(w) { if (!o.isOpened()) { return } var v = c(w.target); if (v.parents(i).length > 1) { return } c.each(d, function() { this.close(w) }) }) } if (k.closeOnEsc) { c(document).unbind("keydown.overlay").bind("keydown.overlay", function(v) { if (v.keyCode == 27) { c.each(d, function() { this.close(v) }) } }) } return o }, close: function(q) { if (!o.isOpened()) { return o } q = q || c.Event(); q.type = "onBeforeClose"; m.trigger(q); if (q.isDefaultPrevented()) { return } h = false; b[k.effect][1].call(o, function() { q.type = "onClose"; m.trigger(q) }); var p = true; c.each(d, function() { if (this.isOpened()) { p = false } }); if (p) { c(document).unbind("click.overlay").unbind("keydown.overlay") } return o }, getContent: function() { return i }, getOverlay: function() { return i }, getTrigger: function() { return g }, getClosers: function() { return j }, isOpened: function() { return h }, getConf: function() { return k }, bind: function(p, q) { m.bind(p, q); return o }, unbind: function(p) { m.unbind(p); return o } }); c.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","), function(p, q) { o[q] = function(r) { return o.bind(q, r) } }); if (e) { if (typeof k.expose == "string") { k.expose = { color: k.expose} } c.extend(k.expose, { api: true, closeOnClick: k.closeOnClick, closeOnEsc: false }); var l = i.expose(k.expose); l.onBeforeClose(function(p) { o.close(p) }); o.onClose(function(p) { l.close(p) }) } j = i.find(k.close || ".axis-close"); if (!j.length && !k.close) { j = c('<div class="close"></div>'); i.prepend(j) } j.click(function(p) { o.close(p) }) } c.fn.overlay = function(e) { var f = this.eq(typeof e == "number" ? e : 0).data("overlay"); if (f) { return f } if (c.isFunction(e)) { e = { onBeforeLoad: e} } var g = c.extend({}, c.tools.overlay.conf); e = c.extend(true, g, e); this.each(function() { f = new a(c(this), e); d.push(f); c(this).data("overlay", f) }); return e.api ? f : this } })(jQuery);
(function(b) { var a = b.tools.overlay; a.plugins = a.plugins || {}; a.plugins.gallery = { version: "1.0.0", conf: { imgId: "img", next: ".next", prev: ".prev", info: ".info", progress: ".progress", disabledClass: "disabled", activeClass: "active", opacity: 0.8, speed: "slow", template: "<strong>${title}</strong> <span>Image ${index} of ${total}</span>", autohide: true, preload: true, api: false} }; b.fn.gallery = function(d) { var o = b.extend({}, a.plugins.gallery.conf), m; b.extend(o, d); m = this.overlay(); var r = this, j = m.getOverlay(), k = j.find(o.next), g = j.find(o.prev), e = j.find(o.info), c = j.find(o.progress), h = g.add(k).add(e).css({ opacity: o.opacity }), s = m.getClosers(), l; function p(u) { c.fadeIn(); h.hide(); s.hide(); var t = u.attr("href"); var v = new Image(); v.onload = function() { c.fadeOut(); var y = b("#" + o.imgId, j); if (!y.length) { y = b("<img/>").attr("id", o.imgId).css("visibility", "hidden"); j.prepend(y) } y.attr("src", t).css("visibility", "hidden"); var z = v.width; var A = (b(window).width() - z) / 2; l = r.index(r.filter("[href=" + t + "]")); r.removeClass(o.activeClass).eq(l).addClass(o.activeClass); var w = o.disabledClass; h.removeClass(w); if (l === 0) { g.addClass(w) } if (l == r.length - 1) { k.addClass(w) } var B = o.template.replace("${title}", u.attr("title") || u.data("title")).replace("${index}", l + 1).replace("${total}", r.length); var x = parseInt(e.css("paddingLeft"), 10) + parseInt(e.css("paddingRight"), 10); e.html(B).css({ width: z - x }); j.animate({ width: z, height: v.height, left: A }, o.speed, function() { y.hide().css("visibility", "visible").fadeIn(function() { if (!o.autohide) { h.fadeIn(); s.show() } }) }) }; v.onerror = function() { j.fadeIn().html("Cannot find image " + t) }; v.src = t; if (o.preload) { r.filter(":eq(" + (l - 1) + "), :eq(" + (l + 1) + ")").each(function() { var w = new Image(); w.src = b(this).attr("href") }) } } function f(t, u) { t.click(function() { if (t.hasClass(o.disabledClass)) { return } var v = r.eq(i = l + (u ? 1 : -1)); if (v.length) { p(v) } }) } f(k, true); f(g); b(document).keydown(function(t) { if (!j.is(":visible") || t.altKey || t.ctrlKey) { return } if (t.keyCode == 37 || t.keyCode == 39) { var u = t.keyCode == 37 ? g : k; u.click(); return t.preventDefault() } return true }); function q() { if (!j.is(":animated")) { h.show(); s.show() } } if (o.autohide) { j.hover(q, function() { h.fadeOut(); s.hide() }).mousemove(q) } var n; this.each(function() { var v = b(this), u = b(this).overlay(), t = u; u.onBeforeLoad(function() { p(v) }); u.onClose(function() { r.removeClass(o.activeClass) }) }); return o.api ? n : this } })(jQuery);
(function(d) { var b = d.tools.overlay; b.effects = b.effects || {}; b.effects.apple = { version: "1.0.1" }; d.extend(b.conf, { start: { absolute: true, top: null, left: null }, fadeInSpeed: "fast", zIndex: 9999 }); function c(f) { var g = f.offset(); return [g.top + f.height() / 2, g.left + f.width() / 2] } var e = function(n) { var k = this.getOverlay(), f = this.getConf(), i = this.getTrigger(), q = this, r = k.outerWidth({ margin: true }), m = k.data("img"); if (!m) { var l = k.css("backgroundImage"); if (!l) { throw "background-image CSS property not set for overlay" } l = l.substring(l.indexOf("(") + 1, l.indexOf(")")).replace(/\"/g, ""); k.css("backgroundImage", "none"); m = d('<img src="' + l + '"/>'); m.css({ border: 0, position: "absolute", display: "none" }).width(r); d("body").append(m); k.data("img", m) } var o = d(window), j = f.start.top || Math.round(o.height() / 2), h = f.start.left || Math.round(o.width() / 2); if (i) { var g = c(i); j = g[0]; h = g[1] } if (!f.start.absolute) { j += o.scrollTop(); h += o.scrollLeft() } m.css({ top: j, left: h, width: 0, zIndex: f.zIndex }).show(); m.animate({ top: k.css("top"), left: k.css("left"), width: r }, f.speed, function() { k.css("zIndex", f.zIndex + 1).fadeIn(f.fadeInSpeed, function() { if (q.isOpened() && !d(this).index(k)) { n.call() } else { k.hide() } }) }) }; var a = function(f) { var h = this.getOverlay(), i = this.getConf(), g = this.getTrigger(), l = i.start.top, k = i.start.left; h.hide(); if (g) { var j = c(g); l = j[0]; k = j[1] } h.data("img").animate({ top: l, left: k, width: 0 }, i.closeSpeed, f) }; b.addEffect("apple", e, a) })(jQuery);
(function(b) { b.tools = b.tools || {}; b.tools.expose = { version: "1.0.5", conf: { maskId: null, loadSpeed: "slow", closeSpeed: "fast", closeOnClick: true, closeOnEsc: true, zIndex: 9998, opacity: 0.8, color: "#456", api: false} }; function a() { if (b.browser.msie) { var f = b(document).height(), e = b(window).height(); return [window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, f - e < 20 ? e : f] } return [b(window).width(), b(document).height()] } function c(h, g) { var e = this, j = b(this), d = null, f = false, i = 0; b.each(g, function(k, l) { if (b.isFunction(l)) { j.bind(k, l) } }); b(window).resize(function() { e.fit() }); b.extend(this, { getMask: function() { return d }, getExposed: function() { return h }, getConf: function() { return g }, isLoaded: function() { return f }, load: function(n) { if (f) { return e } i = h.eq(0).css("zIndex"); if (g.maskId) { d = b("#" + g.maskId) } if (!d || !d.length) { var l = a(); d = b("<div/>").css({ position: "absolute", top: 0, left: 0, width: l[0], height: l[1], display: "none", opacity: 0, zIndex: g.zIndex }); if (g.maskId) { d.attr("id", g.maskId) } b("body").append(d); var k = d.css("backgroundColor"); if (!k || k == "transparent" || k == "rgba(0, 0, 0, 0)") { d.css("backgroundColor", g.color) } if (g.closeOnEsc) { b(document).bind("keydown.unexpose", function(o) { if (o.keyCode == 27) { e.close() } }) } if (g.closeOnClick) { d.bind("click.unexpose", function(o) { e.close(o) }) } } n = n || b.Event(); n.type = "onBeforeLoad"; j.trigger(n); if (n.isDefaultPrevented()) { return e } b.each(h, function() { var o = b(this); if (!/relative|absolute|fixed/i.test(o.css("position"))) { o.css("position", "relative") } }); h.css({ zIndex: Math.max(g.zIndex + 1, i == "auto" ? 0 : i) }); var m = d.height(); if (!this.isLoaded()) { d.css({ opacity: 0, display: "block" }).fadeTo(g.loadSpeed, g.opacity, function() { if (d.height() != m) { d.css("height", m) } n.type = "onLoad"; j.trigger(n) }) } f = true; return e }, close: function(k) { if (!f) { return e } k = k || b.Event(); k.type = "onBeforeClose"; j.trigger(k); if (k.isDefaultPrevented()) { return e } d.fadeOut(g.closeSpeed, function() { k.type = "onClose"; j.trigger(k); h.css({ zIndex: b.browser.msie ? i : null }) }); f = false; return e }, fit: function() { if (d) { var k = a(); d.css({ width: k[0], height: k[1] }) } }, bind: function(k, l) { j.bind(k, l); return e }, unbind: function(k) { j.unbind(k); return e } }); b.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","), function(k, l) { e[l] = function(m) { return e.bind(l, m) } }) } b.fn.expose = function(d) { var e = this.eq(typeof d == "number" ? d : 0).data("expose"); if (e) { return e } if (typeof d == "string") { d = { color: d} } var f = b.extend({}, b.tools.expose.conf); d = b.extend(f, d); this.each(function() { e = new c(b(this), d); b(this).data("expose", e) }); return d.api ? e : this } })(jQuery);
