/*
 * jScrollPane - v2.0.0beta11 - 2011-04-21
 * http://jscrollpane.kelvinluck.com/
 *
 * Copyright (c) 2010 Kelvin Luck
 * Dual licensed under the MIT and GPL licenses.
 */
(function (b, a, c) {
	b.fn.jScrollPane = function (f) {
		function d(E, P) {
			var aA, R = this,
				Z, al, w, an, U, aa, z, r, aB, aG, aw, j, J, i, k, ab, V, ar, Y, u, B, at, ag, ao, H, m, av, az, y, ax, aJ, g, M, ak = true,
				Q = true,
				aI = false,
				l = false,
				aq = E.clone(false, false).empty(),
				ad = b.fn.mwheelIntent ? "mwheelIntent.jsp" : "mousewheel.jsp";
			aJ = E.css("paddingTop") + " " + E.css("paddingRight") + " " + E.css("paddingBottom") + " " + E.css("paddingLeft");
			g = (parseInt(E.css("paddingLeft"), 10) || 0) + (parseInt(E.css("paddingRight"), 10) || 0);

			function au(aS) {
				var aN, aP, aO, aL, aK, aR, aQ = false,
					aM = false;
				aA = aS;
				if (Z === c) {
					aK = E.scrollTop();
					aR = E.scrollLeft();
					E.css({
						overflow: "hidden",
						padding: 0
					});
					al = E.innerWidth() + g;
					w = E.innerHeight();
					E.width(al);
					Z = b('<div class="jspPane" />').css("padding", aJ).append(E.children());
					an = b('<div class="jspContainer" />').css({
						width: al + "px",
						height: w + "px"
					}).append(Z).appendTo(E)
				} else {
					E.css("width", "");
					aQ = aA.stickToBottom && L();
					aM = aA.stickToRight && C();
					aL = E.innerWidth() + g != al || E.outerHeight() != w;
					if (aL) {
						al = E.innerWidth() + g;
						w = E.innerHeight();
						an.css({
							width: al + "px",
							height: w + "px"
						})
					}
					if (!aL && M == U && Z.outerHeight() == aa) {
						E.width(al);
						return
					}
					M = U;
					Z.css("width", "");
					E.width(al);
					an.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()
				}
				Z.css("overflow", "auto");
				if (aS.contentWidth) {
					U = aS.contentWidth
				} else {
					U = Z[0].scrollWidth
				}
				aa = Z[0].scrollHeight;
				Z.css("overflow", "");
				z = U / al;
				r = aa / w;
				aB = r > 1;
				aG = z > 1;
				if (!(aG || aB)) {
					E.removeClass("jspScrollable");
					Z.css({
						top: 0,
						width: an.width() - g
					});
					o();
					F();
					S();
					x();
					aj()
				} else {
					E.addClass("jspScrollable");
					aN = aA.maintainPosition && (J || ab);
					if (aN) {
						aP = aE();
						aO = aC()
					}
					aH();
					A();
					G();
					if (aN) {
						O(aM ? (U - al) : aP, false);
						N(aQ ? (aa - w) : aO, false)
					}
					K();
					ah();
					ap();
					if (aA.enableKeyboardNavigation) {
						T()
					}
					if (aA.clickOnTrack) {
						q()
					}
					D();
					if (aA.hijackInternalLinks) {
						n()
					}
				}
				if (aA.autoReinitialise && !ax) {
					ax = setInterval(function () {
						au(aA)
					}, aA.autoReinitialiseDelay)
				} else {
					if (!aA.autoReinitialise && ax) {
						clearInterval(ax)
					}
				}
				aK && E.scrollTop(0) && N(aK, false);
				aR && E.scrollLeft(0) && O(aR, false);
				E.trigger("jsp-initialised", [aG || aB])
			}

			function aH() {
				if (aB) {
					an.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'), b('<div class="jspDragBottom" />'))), b('<div class="jspCap jspCapBottom" />')));
					V = an.find(">.jspVerticalBar");
					ar = V.find(">.jspTrack");
					aw = ar.find(">.jspDrag");
					if (aA.showArrows) {
						at = b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", aF(0, -1)).bind("click.jsp", aD);
						ag = b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", aF(0, 1)).bind("click.jsp", aD);
						if (aA.arrowScrollOnHover) {
							at.bind("mouseover.jsp", aF(0, -1, at));
							ag.bind("mouseover.jsp", aF(0, 1, ag))
						}
						am(ar, aA.verticalArrowPositions, at, ag)
					}
					u = w;
					an.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function () {
						u -= b(this).outerHeight()
					});
					aw.hover(function () {
						aw.addClass("jspHover")
					}, function () {
						aw.removeClass("jspHover")
					}).bind("mousedown.jsp", function (aK) {
						b("html").bind("dragstart.jsp selectstart.jsp", aD);
						aw.addClass("jspActive");
						var s = aK.pageY - aw.position().top;
						b("html").bind("mousemove.jsp", function (aL) {
							W(aL.pageY - s, false)
						}).bind("mouseup.jsp mouseleave.jsp", ay);
						return false
					});
					p()
				}
			}

			function p() {
				ar.height(u + "px");
				J = 0;
				Y = aA.verticalGutter + ar.outerWidth();
				Z.width(al - Y - g);
				try {
					if (V.position().left === 0) {
						Z.css("margin-left", Y + "px")
					}
				} catch (s) {}
			}

			function A() {
				if (aG) {
					an.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'), b('<div class="jspDragRight" />'))), b('<div class="jspCap jspCapRight" />')));
					ao = an.find(">.jspHorizontalBar");
					H = ao.find(">.jspTrack");
					i = H.find(">.jspDrag");
					if (aA.showArrows) {
						az = b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", aF(-1, 0)).bind("click.jsp", aD);
						y = b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", aF(1, 0)).bind("click.jsp", aD);
						if (aA.arrowScrollOnHover) {
							az.bind("mouseover.jsp", aF(-1, 0, az));
							y.bind("mouseover.jsp", aF(1, 0, y))
						}
						am(H, aA.horizontalArrowPositions, az, y)
					}
					i.hover(function () {
						i.addClass("jspHover")
					}, function () {
						i.removeClass("jspHover")
					}).bind("mousedown.jsp", function (aK) {
						b("html").bind("dragstart.jsp selectstart.jsp", aD);
						i.addClass("jspActive");
						var s = aK.pageX - i.position().left;
						b("html").bind("mousemove.jsp", function (aL) {
							X(aL.pageX - s, false)
						}).bind("mouseup.jsp mouseleave.jsp", ay);
						return false
					});
					m = an.innerWidth();
					ai()
				}
			}

			function ai() {
				an.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function () {
					m -= b(this).outerWidth()
				});
				H.width(m + "px");
				ab = 0
			}

			function G() {
				if (aG && aB) {
					var aK = H.outerHeight(),
						s = ar.outerWidth();
					u -= aK;
					b(ao).find(">.jspCap:visible,>.jspArrow").each(function () {
						m += b(this).outerWidth()
					});
					m -= s;
					w -= s;
					al -= aK;
					H.parent().append(b('<div class="jspCorner" />').css("width", aK + "px"));
					p();
					ai()
				}
				if (aG) {
					Z.width((an.outerWidth() - g) + "px")
				}
				aa = Z.outerHeight();
				r = aa / w;
				if (aG) {
					av = Math.ceil(1 / z * m);
					if (av > aA.horizontalDragMaxWidth) {
						av = aA.horizontalDragMaxWidth
					} else {
						if (av < aA.horizontalDragMinWidth) {
							av = aA.horizontalDragMinWidth
						}
					}
					i.width(av + "px");
					k = m - av;
					af(ab)
				}
				if (aB) {
					B = Math.ceil(1 / r * u);
					if (B > aA.verticalDragMaxHeight) {
						B = aA.verticalDragMaxHeight
					} else {
						if (B < aA.verticalDragMinHeight) {
							B = aA.verticalDragMinHeight
						}
					}
					aw.height(B + "px");
					j = u - B;
					ae(J)
				}
			}

			function am(aL, aN, aK, s) {
				var aP = "before",
					aM = "after",
					aO;
				if (aN == "os") {
					aN = /Mac/.test(navigator.platform) ? "after" : "split"
				}
				if (aN == aP) {
					aM = aN
				} else {
					if (aN == aM) {
						aP = aN;
						aO = aK;
						aK = s;
						s = aO
					}
				}
				aL[aP](aK)[aM](s)
			}

			function aF(aK, s, aL) {
				return function () {
					I(aK, s, this, aL);
					this.blur();
					return false
				}
			}

			function I(aN, aM, aQ, aP) {
				aQ = b(aQ).addClass("jspActive");
				var aO, aL, aK = true,
					s = function () {
						if (aN !== 0) {
							R.scrollByX(aN * aA.arrowButtonSpeed)
						}
						if (aM !== 0) {
							R.scrollByY(aM * aA.arrowButtonSpeed)
						}
						aL = setTimeout(s, aK ? aA.initialDelay : aA.arrowRepeatFreq);
						aK = false
					};
				s();
				aO = aP ? "mouseout.jsp" : "mouseup.jsp";
				aP = aP || b("html");
				aP.bind(aO, function () {
					aQ.removeClass("jspActive");
					aL && clearTimeout(aL);
					aL = null;
					aP.unbind(aO)
				})
			}

			function q() {
				x();
				if (aB) {
					ar.bind("mousedown.jsp", function (aP) {
						if (aP.originalTarget === c || aP.originalTarget == aP.currentTarget) {
							var aN = b(this),
								aQ = aN.offset(),
								aO = aP.pageY - aQ.top - J,
								aL, aK = true,
								s = function () {
									var aT = aN.offset(),
										aU = aP.pageY - aT.top - B / 2,
										aR = w * aA.scrollPagePercent,
										aS = j * aR / (aa - w);
									if (aO < 0) {
										if (J - aS > aU) {
											R.scrollByY(-aR)
										} else {
											W(aU)
										}
									} else {
										if (aO > 0) {
											if (J + aS < aU) {
												R.scrollByY(aR)
											} else {
												W(aU)
											}
										} else {
											aM();
											return
										}
									}
									aL = setTimeout(s, aK ? aA.initialDelay : aA.trackClickRepeatFreq);
									aK = false
								},
								aM = function () {
									aL && clearTimeout(aL);
									aL = null;
									b(document).unbind("mouseup.jsp", aM)
								};
							s();
							b(document).bind("mouseup.jsp", aM);
							return false
						}
					})
				}
				if (aG) {
					H.bind("mousedown.jsp", function (aP) {
						if (aP.originalTarget === c || aP.originalTarget == aP.currentTarget) {
							var aN = b(this),
								aQ = aN.offset(),
								aO = aP.pageX - aQ.left - ab,
								aL, aK = true,
								s = function () {
									var aT = aN.offset(),
										aU = aP.pageX - aT.left - av / 2,
										aR = al * aA.scrollPagePercent,
										aS = k * aR / (U - al);
									if (aO < 0) {
										if (ab - aS > aU) {
											R.scrollByX(-aR)
										} else {
											X(aU)
										}
									} else {
										if (aO > 0) {
											if (ab + aS < aU) {
												R.scrollByX(aR)
											} else {
												X(aU)
											}
										} else {
											aM();
											return
										}
									}
									aL = setTimeout(s, aK ? aA.initialDelay : aA.trackClickRepeatFreq);
									aK = false
								},
								aM = function () {
									aL && clearTimeout(aL);
									aL = null;
									b(document).unbind("mouseup.jsp", aM)
								};
							s();
							b(document).bind("mouseup.jsp", aM);
							return false
						}
					})
				}
			}

			function x() {
				if (H) {
					H.unbind("mousedown.jsp")
				}
				if (ar) {
					ar.unbind("mousedown.jsp")
				}
			}

			function ay() {
				b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
				if (aw) {
					aw.removeClass("jspActive")
				}
				if (i) {
					i.removeClass("jspActive")
				}
			}

			function W(s, aK) {
				if (!aB) {
					return
				}
				if (s < 0) {
					s = 0
				} else {
					if (s > j) {
						s = j
					}
				}
				if (aK === c) {
					aK = aA.animateScroll
				}
				if (aK) {
					R.animate(aw, "top", s, ae)
				} else {
					aw.css("top", s);
					ae(s)
				}
			}

			function ae(aK) {
				if (aK === c) {
					aK = aw.position().top
				}
				an.scrollTop(0);
				J = aK;
				var aN = J === 0,
					aL = J == j,
					aM = aK / j,
					s = -aM * (aa - w);
				if (ak != aN || aI != aL) {
					ak = aN;
					aI = aL;
					E.trigger("jsp-arrow-change", [ak, aI, Q, l])
				}
				v(aN, aL);
				Z.css("top", s);
				E.trigger("jsp-scroll-y", [-s, aN, aL]).trigger("scroll")
			}

			function X(aK, s) {
				if (!aG) {
					return
				}
				if (aK < 0) {
					aK = 0
				} else {
					if (aK > k) {
						aK = k
					}
				}
				if (s === c) {
					s = aA.animateScroll
				}
				if (s) {
					R.animate(i, "left", aK, af)
				} else {
					i.css("left", aK);
					af(aK)
				}
			}

			function af(aK) {
				if (aK === c) {
					aK = i.position().left
				}
				an.scrollTop(0);
				ab = aK;
				var aN = ab === 0,
					aM = ab == k,
					aL = aK / k,
					s = -aL * (U - al);
				if (Q != aN || l != aM) {
					Q = aN;
					l = aM;
					E.trigger("jsp-arrow-change", [ak, aI, Q, l])
				}
				t(aN, aM);
				Z.css("left", s);
				E.trigger("jsp-scroll-x", [-s, aN, aM]).trigger("scroll")
			}

			function v(aK, s) {
				if (aA.showArrows) {
					at[aK ? "addClass" : "removeClass"]("jspDisabled");
					ag[s ? "addClass" : "removeClass"]("jspDisabled")
				}
			}

			function t(aK, s) {
				if (aA.showArrows) {
					az[aK ? "addClass" : "removeClass"]("jspDisabled");
					y[s ? "addClass" : "removeClass"]("jspDisabled")
				}
			}

			function N(s, aK) {
				var aL = s / (aa - w);
				W(aL * j, aK)
			}

			function O(aK, s) {
				var aL = aK / (U - al);
				X(aL * k, s)
			}

			function ac(aX, aS, aL) {
				var aP, aM, aN, s = 0,
					aW = 0,
					aK, aR, aQ, aU, aT, aV;
				try {
					aP = b(aX)
				} catch (aO) {
					return
				}
				aM = aP.outerHeight();
				aN = aP.outerWidth();
				an.scrollTop(0);
				an.scrollLeft(0);
				while (!aP.is(".jspPane")) {
					s += aP.position().top;
					aW += aP.position().left;
					aP = aP.offsetParent();
					if (/^body|html$/i.test(aP[0].nodeName)) {
						return
					}
				}
				aK = aC();
				aQ = aK + w;
				if (s < aK || aS) {
					aT = s - aA.verticalGutter
				} else {
					if (s + aM > aQ) {
						aT = s - w + aM + aA.verticalGutter
					}
				}
				if (aT) {
					N(aT, aL)
				}
				aR = aE();
				aU = aR + al;
				if (aW < aR || aS) {
					aV = aW - aA.horizontalGutter
				} else {
					if (aW + aN > aU) {
						aV = aW - al + aN + aA.horizontalGutter
					}
				}
				if (aV) {
					O(aV, aL)
				}
			}

			function aE() {
				return -Z.position().left
			}

			function aC() {
				return -Z.position().top
			}

			function L() {
				var s = aa - w;
				return (s > 20) && (s - aC() < 10)
			}

			function C() {
				var s = U - al;
				return (s > 20) && (s - aE() < 10)
			}

			function ah() {
				an.unbind(ad).bind(ad, function (aN, aO, aM, aK) {
					var aL = ab,
						s = J;
					R.scrollBy(aM * aA.mouseWheelSpeed, -aK * aA.mouseWheelSpeed, false);
					return aL == ab && s == J
				})
			}

			function o() {
				an.unbind(ad)
			}

			function aD() {
				return false
			}

			function K() {
				Z.find(":input,a").unbind("focus.jsp").bind("focus.jsp", function (s) {
					ac(s.target, false)
				})
			}

			function F() {
				Z.find(":input,a").unbind("focus.jsp")
			}

			function T() {
				var s, aK, aM = [];
				aG && aM.push(ao[0]);
				aB && aM.push(V[0]);
				Z.focus(function () {
					E.focus()
				});
				E.attr("tabindex", 0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp", function (aP) {
					if (aP.target !== this && !(aM.length && b(aP.target).closest(aM).length)) {
						return
					}
					var aO = ab,
						aN = J;
					switch (aP.keyCode) {
					case 40:
					case 38:
					case 34:
					case 32:
					case 33:
					case 39:
					case 37:
						s = aP.keyCode;
						aL();
						break;
					case 35:
						N(aa - w);
						s = null;
						break;
					case 36:
						N(0);
						s = null;
						break
					}
					aK = aP.keyCode == s && aO != ab || aN != J;
					return !aK
				}).bind("keypress.jsp", function (aN) {
					if (aN.keyCode == s) {
						aL()
					}
					return !aK
				});
				if (aA.hideFocus) {
					E.css("outline", "none");
					if ("hideFocus" in an[0]) {
						E.attr("hideFocus", true)
					}
				} else {
					E.css("outline", "");
					if ("hideFocus" in an[0]) {
						E.attr("hideFocus", false)
					}
				}

				function aL() {
					var aO = ab,
						aN = J;
					switch (s) {
					case 40:
						R.scrollByY(aA.keyboardSpeed, false);
						break;
					case 38:
						R.scrollByY(-aA.keyboardSpeed, false);
						break;
					case 34:
					case 32:
						R.scrollByY(w * aA.scrollPagePercent, false);
						break;
					case 33:
						R.scrollByY(-w * aA.scrollPagePercent, false);
						break;
					case 39:
						R.scrollByX(aA.keyboardSpeed, false);
						break;
					case 37:
						R.scrollByX(-aA.keyboardSpeed, false);
						break
					}
					aK = aO != ab || aN != J;
					return aK
				}
			}

			function S() {
				E.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")


			}

			function D() {
				if (location.hash && location.hash.length > 1) {
					var aL, aK;
					try {
						aL = b(location.hash)
					} catch (s) {
						return
					}
					if (aL.length && Z.find(location.hash)) {
						if (an.scrollTop() === 0) {
							aK = setInterval(function () {
								if (an.scrollTop() > 0) {
									ac(location.hash, true);
									b(document).scrollTop(an.position().top);
									clearInterval(aK)
								}
							}, 50)
						} else {
							ac(location.hash, true);
							b(document).scrollTop(an.position().top)
						}
					}
				}
			}

			function aj() {
				b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")
			}

			function n() {
				aj();
				b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack", function () {
					var s = this.href.split("#"),
						aK;
					if (s.length > 1) {
						aK = s[1];
						if (aK.length > 0 && Z.find("#" + aK).length > 0) {
							ac("#" + aK, true);
							return false
						}
					}
				})
			}

			function ap() {
				var aL, aK, aN, aM, aO, s = false;
				an.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp", function (aP) {
					var aQ = aP.originalEvent.touches[0];
					aL = aE();
					aK = aC();
					aN = aQ.pageX;
					aM = aQ.pageY;
					aO = false;
					s = true
				}).bind("touchmove.jsp", function (aS) {
					if (!s) {
						return
					}
					var aR = aS.originalEvent.touches[0],
						aQ = ab,
						aP = J;
					R.scrollTo(aL + aN - aR.pageX, aK + aM - aR.pageY);
					aO = aO || Math.abs(aN - aR.pageX) > 5 || Math.abs(aM - aR.pageY) > 5;
					return aQ == ab && aP == J
				}).bind("touchend.jsp", function (aP) {
					s = false
				}).bind("click.jsp-touchclick", function (aP) {
					if (aO) {
						aO = false;
						return false
					}
				})
			}

			function h() {
				var s = aC(),
					aK = aE();
				E.removeClass("jspScrollable").unbind(".jsp");
				E.replaceWith(aq.append(Z.children()));
				aq.scrollTop(s);
				aq.scrollLeft(aK)
			}
			b.extend(R, {
				reinitialise: function (aK) {
					aK = b.extend({}, aA, aK);
					au(aK)
				},
				scrollToElement: function (aL, aK, s) {
					ac(aL, aK, s)
				},
				scrollTo: function (aL, s, aK) {
					O(aL, aK);
					N(s, aK)
				},
				scrollToX: function (aK, s) {
					O(aK, s)
				},
				scrollToY: function (s, aK) {
					N(s, aK)
				},
				scrollToPercentX: function (aK, s) {
					O(aK * (U - al), s)
				},
				scrollToPercentY: function (aK, s) {
					N(aK * (aa - w), s)
				},
				scrollBy: function (aK, s, aL) {
					R.scrollByX(aK, aL);
					R.scrollByY(s, aL)
				},
				scrollByX: function (s, aL) {
					s = (s >= 0) ? Math.max(s, 1) : Math.min(s, -1);
					var aK = aE() + s,
						aM = aK / (U - al);
					X(aM * k, aL)
				},
				scrollByY: function (s, aL) {
					s = (s >= 0) ? Math.max(s, 1) : Math.min(s, -1);
					var aK = aC() + s,
						aM = aK / (aa - w);
					W(aM * j, aL)
				},
				positionDragX: function (s, aK) {
					X(s, aK)
				},
				positionDragY: function (aK, s) {
					W(aK, s)
				},
				animate: function (aK, aN, s, aM) {
					var aL = {};
					aL[aN] = s;
					aK.animate(aL, {
						duration: aA.animateDuration,
						ease: aA.animateEase,
						queue: false,
						step: aM
					})
				},
				getContentPositionX: function () {
					return aE()
				},
				getContentPositionY: function () {
					return aC()
				},
				getContentWidth: function () {
					return U
				},
				getContentHeight: function () {
					return aa
				},
				getPercentScrolledX: function () {
					return aE() / (U - al)
				},
				getPercentScrolledY: function () {
					return aC() / (aa - w)
				},
				getIsScrollableH: function () {
					return aG
				},
				getIsScrollableV: function () {
					return aB
				},
				getContentPane: function () {
					return Z
				},
				scrollToBottom: function (s) {
					W(j, s)
				},
				hijackInternalLinks: function () {
					n()
				},
				destroy: function () {
					h()
				}
			});
			au(P)
		}
		f = b.extend({}, b.fn.jScrollPane.defaults, f);
		b.each(["mouseWheelSpeed", "arrowButtonSpeed", "trackClickSpeed", "keyboardSpeed"], function () {
			f[this] = f[this] || f.speed
		});
		var e;
		this.each(function () {
			var g = b(this),
				h = g.data("jsp");
			if (h) {
				h.reinitialise(f)
			} else {
				h = new d(g, f);
				g.data("jsp", h)
			}
			e = e ? e.add(g) : g
		});
		return e
	};
	b.fn.jScrollPane.defaults = {
		showArrows: true,
		maintainPosition: true,
		stickToBottom: false,
		stickToRight: false,
		clickOnTrack: true,
		autoReinitialise: true,
		autoReinitialiseDelay: 500,
		verticalDragMinHeight: 0,
		verticalDragMaxHeight: 99999,
		horizontalDragMinWidth: 0,
		horizontalDragMaxWidth: 99999,
		contentWidth: c,
		animateScroll: true,
		animateDuration: 300,
		animateEase: "linear",
		hijackInternalLinks: false,
		verticalGutter: 4,
		horizontalGutter: 4,
		mouseWheelSpeed: 50,
		arrowButtonSpeed: 0,
		arrowRepeatFreq: 50,
		arrowScrollOnHover: false,
		trackClickSpeed: 0,
		trackClickRepeatFreq: 70,
		verticalArrowPositions: "split",
		horizontalArrowPositions: "split",
		enableKeyboardNavigation: true,
		hideFocus: false,
		keyboardSpeed: 0,
		initialDelay: 300,
		speed: 30,
		scrollPagePercent: 0.8
	}
})(jQuery, this);

