Guest User

Untitled

a guest
Apr 5th, 2012
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * jScrollPane - v2.0.0beta11 - 2011-07-04
  3.  * http://jscrollpane.kelvinluck.com/
  4.  *
  5.  * Copyright (c) 2010 Kelvin Luck
  6.  * Dual licensed under the MIT and GPL licenses.
  7.  */ (function (b, a, c) {
  8.     b.fn.jScrollPane = function (e) {
  9.         function d(D, O) {
  10.             var az, Q = this,
  11.                 Y, ak, v, am, T, Z, y, q, aA, aF, av, i, I, h, j, aa, U, aq, X, t, A, ar, af, an, G, l, au, ay, x, aw, aI, f, L, aj = true,
  12.                 P = true,
  13.                 aH = false,
  14.                 k = false,
  15.                 ap = D.clone(false, false).empty(),
  16.                 ac = b.fn.mwheelIntent ? "mwheelIntent.jsp" : "mousewheel.jsp";
  17.             aI = D.css("paddingTop") + " " + D.css("paddingRight") + " " + D.css("paddingBottom") + " " + D.css("paddingLeft");
  18.             f = (parseInt(D.css("paddingLeft"), 10) || 0) + (parseInt(D.css("paddingRight"), 10) || 0);
  19.  
  20.             function at(aR) {
  21.                 var aM, aO, aN, aK, aJ, aQ, aP = false,
  22.                     aL = false;
  23.                 az = aR;
  24.                 if (Y === c) {
  25.                     aJ = D.scrollTop();
  26.                     aQ = D.scrollLeft();
  27.                     D.css({
  28.                         overflow: "hidden",
  29.                         padding: 0
  30.                     });
  31.                     ak = D.innerWidth() + f;
  32.                     v = D.innerHeight();
  33.                     D.width(ak);
  34.                     Y = b('<div class="jspPane" />').css("padding", aI).append(D.children());
  35.                     am = b('<div class="jspContainer" />').css({
  36.                         width: ak + "px",
  37.                         height: v + "px"
  38.                     }).append(Y).appendTo(D)
  39.                 } else {
  40.                     D.css("width", "");
  41.                     aP = az.stickToBottom && K();
  42.                     aL = az.stickToRight && B();
  43.                     aK = D.innerWidth() + f != ak || D.outerHeight() != v;
  44.                     if (aK) {
  45.                         ak = D.innerWidth() + f;
  46.                         v = D.innerHeight();
  47.                         am.css({
  48.                             width: ak + "px",
  49.                             height: v + "px"
  50.                         })
  51.                     }
  52.                     if (!aK && L == T && Y.outerHeight() == Z) {
  53.                         D.width(ak);
  54.                         return
  55.                     }
  56.                     L = T;
  57.                     Y.css("width", "");
  58.                     D.width(ak);
  59.                     am.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()
  60.                 }
  61.                 Y.css("overflow", "auto");
  62.                 if (aR.contentWidth) {
  63.                     T = aR.contentWidth
  64.                 } else {
  65.                     T = Y[0].scrollWidth
  66.                 }
  67.                 Z = Y[0].scrollHeight;
  68.                 Y.css("overflow", "");
  69.                 y = T / ak;
  70.                 q = Z / v;
  71.                 aA = q > 1;
  72.                 aF = y > 1;
  73.                 if (!(aF || aA)) {
  74.                     D.removeClass("jspScrollable");
  75.                     Y.css({
  76.                         top: 0,
  77.                         width: am.width() - f
  78.                     });
  79.                     n();
  80.                     E();
  81.                     R();
  82.                     w();
  83.                     ai()
  84.                 } else {
  85.                     D.addClass("jspScrollable");
  86.                     aM = az.maintainPosition && (I || aa);
  87.                     if (aM) {
  88.                         aO = aD();
  89.                         aN = aB()
  90.                     }
  91.                     aG();
  92.                     z();
  93.                     F();
  94.                     if (aM) {
  95.                         N(aL ? (T - ak) : aO, false);
  96.                         M(aP ? (Z - v) : aN, false)
  97.                     }
  98.                     J();
  99.                     ag();
  100.                     ao();
  101.                     if (az.enableKeyboardNavigation) {
  102.                         S()
  103.                     }
  104.                     if (az.clickOnTrack) {
  105.                         p()
  106.                     }
  107.                     C();
  108.                     if (az.hijackInternalLinks) {
  109.                         m()
  110.                     }
  111.                 }
  112.                 if (az.autoReinitialise && !aw) {
  113.                     aw = setInterval(function () {
  114.                         at(az)
  115.                     }, az.autoReinitialiseDelay)
  116.                 } else {
  117.                     if (!az.autoReinitialise && aw) {
  118.                         clearInterval(aw)
  119.                     }
  120.                 }
  121.                 aJ && D.scrollTop(0) && M(aJ, false);
  122.                 aQ && D.scrollLeft(0) && N(aQ, false);
  123.                 D.trigger("jsp-initialised", [aF || aA])
  124.             }
  125.             function aG() {
  126.                 if (aA) {
  127.                     am.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" />')));
  128.                     U = am.find(">.jspVerticalBar");
  129.                     aq = U.find(">.jspTrack");
  130.                     av = aq.find(">.jspDrag");
  131.                     if (az.showArrows) {
  132.                         ar = b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", aE(0, -1)).bind("click.jsp", aC);
  133.                         af = b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", aE(0, 1)).bind("click.jsp", aC);
  134.                         if (az.arrowScrollOnHover) {
  135.                             ar.bind("mouseover.jsp", aE(0, -1, ar));
  136.                             af.bind("mouseover.jsp", aE(0, 1, af))
  137.                         }
  138.                         al(aq, az.verticalArrowPositions, ar, af)
  139.                     }
  140.                     t = v;
  141.                     am.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function () {
  142.                         t -= b(this).outerHeight()
  143.                     });
  144.                     av.hover(function () {
  145.                         av.addClass("jspHover")
  146.                     }, function () {
  147.                         av.removeClass("jspHover")
  148.                     }).bind("mousedown.jsp", function (aJ) {
  149.                         b("html").bind("dragstart.jsp selectstart.jsp", aC);
  150.                         av.addClass("jspActive");
  151.                         var s = aJ.pageY - av.position().top;
  152.                         b("html").bind("mousemove.jsp", function (aK) {
  153.                             V(aK.pageY - s, false)
  154.                         }).bind("mouseup.jsp mouseleave.jsp", ax);
  155.                         return false
  156.                     });
  157.                     o()
  158.                 }
  159.             }
  160.             function o() {
  161.                 aq.height(t + "px");
  162.                 I = 0;
  163.                 X = az.verticalGutter + aq.outerWidth();
  164.                 Y.width(ak - X - f);
  165.                 try {
  166.                     if (U.position().left === 0) {
  167.                         Y.css("margin-left", X + "px")
  168.                     }
  169.                 } catch (s) {}
  170.             }
  171.             function z() {
  172.                 if (aF) {
  173.                     am.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" />')));
  174.                     an = am.find(">.jspHorizontalBar");
  175.                     G = an.find(">.jspTrack");
  176.                     h = G.find(">.jspDrag");
  177.                     if (az.showArrows) {
  178.                         ay = b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", aE(-1, 0)).bind("click.jsp", aC);
  179.                         x = b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", aE(1, 0)).bind("click.jsp", aC);
  180.                         if (az.arrowScrollOnHover) {
  181.                             ay.bind("mouseover.jsp", aE(-1, 0, ay));
  182.                             x.bind("mouseover.jsp", aE(1, 0, x))
  183.                         }
  184.                         al(G, az.horizontalArrowPositions, ay, x)
  185.                     }
  186.                     h.hover(function () {
  187.                         h.addClass("jspHover")
  188.                     }, function () {
  189.                         h.removeClass("jspHover")
  190.                     }).bind("mousedown.jsp", function (aJ) {
  191.                         b("html").bind("dragstart.jsp selectstart.jsp", aC);
  192.                         h.addClass("jspActive");
  193.                         var s = aJ.pageX - h.position().left;
  194.                         b("html").bind("mousemove.jsp", function (aK) {
  195.                             W(aK.pageX - s, false)
  196.                         }).bind("mouseup.jsp mouseleave.jsp", ax);
  197.                         return false
  198.                     });
  199.                     l = am.innerWidth();
  200.                     ah()
  201.                 }
  202.             }
  203.             function ah() {
  204.                 am.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function () {
  205.                     l -= b(this).outerWidth()
  206.                 });
  207.                 G.width(l + "px");
  208.                 aa = 0
  209.             }
  210.             function F() {
  211.                 if (aF && aA) {
  212.                     var aJ = G.outerHeight(),
  213.                         s = aq.outerWidth();
  214.                     t -= aJ;
  215.                     b(an).find(">.jspCap:visible,>.jspArrow").each(function () {
  216.                         l += b(this).outerWidth()
  217.                     });
  218.                     l -= s;
  219.                     v -= s;
  220.                     ak -= aJ;
  221.                     G.parent().append(b('<div class="jspCorner" />').css("width", aJ + "px"));
  222.                     o();
  223.                     ah()
  224.                 }
  225.                 if (aF) {
  226.                     Y.width((am.outerWidth() - f) + "px")
  227.                 }
  228.                 Z = Y.outerHeight();
  229.                 q = Z / v;
  230.                 if (aF) {
  231.                     au = Math.ceil(1 / y * l);
  232.                     if (au > az.horizontalDragMaxWidth) {
  233.                         au = az.horizontalDragMaxWidth
  234.                     } else {
  235.                         if (au < az.horizontalDragMinWidth) {
  236.                             au = az.horizontalDragMinWidth
  237.                         }
  238.                     }
  239.                     h.width(au + "px");
  240.                     j = l - au;
  241.                     ae(aa)
  242.                 }
  243.                 if (aA) {
  244.                     A = Math.ceil(1 / q * t);
  245.                     if (A > az.verticalDragMaxHeight) {
  246.                         A = az.verticalDragMaxHeight
  247.                     } else {
  248.                         if (A < az.verticalDragMinHeight) {
  249.                             A = az.verticalDragMinHeight
  250.                         }
  251.                     }
  252.                     av.height(A + "px");
  253.                     i = t - A;
  254.                     ad(I)
  255.                 }
  256.             }
  257.             function al(aK, aM, aJ, s) {
  258.                 var aO = "before",
  259.                     aL = "after",
  260.                     aN;
  261.                 if (aM == "os") {
  262.                     aM = /Mac/.test(navigator.platform) ? "after" : "split"
  263.                 }
  264.                 if (aM == aO) {
  265.                     aL = aM
  266.                 } else {
  267.                     if (aM == aL) {
  268.                         aO = aM;
  269.                         aN = aJ;
  270.                         aJ = s;
  271.                         s = aN
  272.                     }
  273.                 }
  274.                 aK[aO](aJ)[aL](s)
  275.             }
  276.             function aE(aJ, s, aK) {
  277.                 return function () {
  278.                     H(aJ, s, this, aK);
  279.                     this.blur();
  280.                     return false
  281.                 }
  282.             }
  283.             function H(aM, aL, aP, aO) {
  284.                 aP = b(aP).addClass("jspActive");
  285.                 var aN, aK, aJ = true,
  286.                     s = function () {
  287.                         if (aM !== 0) {
  288.                             Q.scrollByX(aM * az.arrowButtonSpeed)
  289.                         }
  290.                         if (aL !== 0) {
  291.                             Q.scrollByY(aL * az.arrowButtonSpeed)
  292.                         }
  293.                         aK = setTimeout(s, aJ ? az.initialDelay : az.arrowRepeatFreq);
  294.                         aJ = false
  295.                     };
  296.                 s();
  297.                 aN = aO ? "mouseout.jsp" : "mouseup.jsp";
  298.                 aO = aO || b("html");
  299.                 aO.bind(aN, function () {
  300.                     aP.removeClass("jspActive");
  301.                     aK && clearTimeout(aK);
  302.                     aK = null;
  303.                     aO.unbind(aN)
  304.                 })
  305.             }
  306.             function p() {
  307.                 w();
  308.                 if (aA) {
  309.                     aq.bind("mousedown.jsp", function (aO) {
  310.                         if (aO.originalTarget === c || aO.originalTarget == aO.currentTarget) {
  311.                             var aM = b(this),
  312.                                 aP = aM.offset(),
  313.                                 aN = aO.pageY - aP.top - I,
  314.                                 aK, aJ = true,
  315.                                 s = function () {
  316.                                     var aS = aM.offset(),
  317.                                         aT = aO.pageY - aS.top - A / 2,
  318.                                         aQ = v * az.scrollPagePercent,
  319.                                         aR = i * aQ / (Z - v);
  320.                                     if (aN < 0) {
  321.                                         if (I - aR > aT) {
  322.                                             Q.scrollByY(-aQ)
  323.                                         } else {
  324.                                             V(aT)
  325.                                         }
  326.                                     } else {
  327.                                         if (aN > 0) {
  328.                                             if (I + aR < aT) {
  329.                                                 Q.scrollByY(aQ)
  330.                                             } else {
  331.                                                 V(aT)
  332.                                             }
  333.                                         } else {
  334.                                             aL();
  335.                                             return
  336.                                         }
  337.                                     }
  338.                                     aK = setTimeout(s, aJ ? az.initialDelay : az.trackClickRepeatFreq);
  339.                                     aJ = false
  340.                                 },
  341.                                 aL = function () {
  342.                                     aK && clearTimeout(aK);
  343.                                     aK = null;
  344.                                     b(document).unbind("mouseup.jsp", aL)
  345.                                 };
  346.                             s();
  347.                             b(document).bind("mouseup.jsp", aL);
  348.                             return false
  349.                         }
  350.                     })
  351.                 }
  352.                 if (aF) {
  353.                     G.bind("mousedown.jsp", function (aO) {
  354.                         if (aO.originalTarget === c || aO.originalTarget == aO.currentTarget) {
  355.                             var aM = b(this),
  356.                                 aP = aM.offset(),
  357.                                 aN = aO.pageX - aP.left - aa,
  358.                                 aK, aJ = true,
  359.                                 s = function () {
  360.                                     var aS = aM.offset(),
  361.                                         aT = aO.pageX - aS.left - au / 2,
  362.                                         aQ = ak * az.scrollPagePercent,
  363.                                         aR = j * aQ / (T - ak);
  364.                                     if (aN < 0) {
  365.                                         if (aa - aR > aT) {
  366.                                             Q.scrollByX(-aQ)
  367.                                         } else {
  368.                                             W(aT)
  369.                                         }
  370.                                     } else {
  371.                                         if (aN > 0) {
  372.                                             if (aa + aR < aT) {
  373.                                                 Q.scrollByX(aQ)
  374.                                             } else {
  375.                                                 W(aT)
  376.                                             }
  377.                                         } else {
  378.                                             aL();
  379.                                             return
  380.                                         }
  381.                                     }
  382.                                     aK = setTimeout(s, aJ ? az.initialDelay : az.trackClickRepeatFreq);
  383.                                     aJ = false
  384.                                 },
  385.                                 aL = function () {
  386.                                     aK && clearTimeout(aK);
  387.                                     aK = null;
  388.                                     b(document).unbind("mouseup.jsp", aL)
  389.                                 };
  390.                             s();
  391.                             b(document).bind("mouseup.jsp", aL);
  392.                             return false
  393.                         }
  394.                     })
  395.                 }
  396.             }
  397.             function w() {
  398.                 if (G) {
  399.                     G.unbind("mousedown.jsp")
  400.                 }
  401.                 if (aq) {
  402.                     aq.unbind("mousedown.jsp")
  403.                 }
  404.             }
  405.             function ax() {
  406.                 b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
  407.                 if (av) {
  408.                     av.removeClass("jspActive")
  409.                 }
  410.                 if (h) {
  411.                     h.removeClass("jspActive")
  412.                 }
  413.             }
  414.             function V(s, aJ) {
  415.                 if (!aA) {
  416.                     return
  417.                 }
  418.                 if (s < 0) {
  419.                     s = 0
  420.                 } else {
  421.                     if (s > i) {
  422.                         s = i
  423.                     }
  424.                 }
  425.                 if (aJ === c) {
  426.                     aJ = az.animateScroll
  427.                 }
  428.                 if (aJ) {
  429.                     Q.animate(av, "top", s, ad)
  430.                 } else {
  431.                     av.css("top", s);
  432.                     ad(s)
  433.                 }
  434.             }
  435.             function ad(aJ) {
  436.                 if (aJ === c) {
  437.                     aJ = av.position().top
  438.                 }
  439.                 am.scrollTop(0);
  440.                 I = aJ;
  441.                 var aM = I === 0,
  442.                     aK = I == i,
  443.                     aL = aJ / i,
  444.                     s = -aL * (Z - v);
  445.                 if (aj != aM || aH != aK) {
  446.                     aj = aM;
  447.                     aH = aK;
  448.                     D.trigger("jsp-arrow-change", [aj, aH, P, k])
  449.                 }
  450.                 u(aM, aK);
  451.                 Y.css("top", s);
  452.                 D.trigger("jsp-scroll-y", [-s, aM, aK]).trigger("scroll")
  453.             }
  454.             function W(aJ, s) {
  455.                 if (!aF) {
  456.                     return
  457.                 }
  458.                 if (aJ < 0) {
  459.                     aJ = 0
  460.                 } else {
  461.                     if (aJ > j) {
  462.                         aJ = j
  463.                     }
  464.                 }
  465.                 if (s === c) {
  466.                     s = az.animateScroll
  467.                 }
  468.                 if (s) {
  469.                     Q.animate(h, "left", aJ, ae)
  470.                 } else {
  471.                     h.css("left", aJ);
  472.                     ae(aJ)
  473.                 }
  474.             }
  475.             function ae(aJ) {
  476.                 if (aJ === c) {
  477.                     aJ = h.position().left
  478.                 }
  479.                 am.scrollTop(0);
  480.                 aa = aJ;
  481.                 var aM = aa === 0,
  482.                     aL = aa == j,
  483.                     aK = aJ / j,
  484.                     s = -aK * (T - ak);
  485.                 if (P != aM || k != aL) {
  486.                     P = aM;
  487.                     k = aL;
  488.                     D.trigger("jsp-arrow-change", [aj, aH, P, k])
  489.                 }
  490.                 r(aM, aL);
  491.                 Y.css("left", s);
  492.                 D.trigger("jsp-scroll-x", [-s, aM, aL]).trigger("scroll")
  493.             }
  494.             function u(aJ, s) {
  495.                 if (az.showArrows) {
  496.                     ar[aJ ? "addClass" : "removeClass"]("jspDisabled");
  497.                     af[s ? "addClass" : "removeClass"]("jspDisabled")
  498.                 }
  499.             }
  500.             function r(aJ, s) {
  501.                 if (az.showArrows) {
  502.                     ay[aJ ? "addClass" : "removeClass"]("jspDisabled");
  503.                     x[s ? "addClass" : "removeClass"]("jspDisabled")
  504.                 }
  505.             }
  506.             function M(s, aJ) {
  507.                 var aK = s / (Z - v);
  508.                 V(aK * i, aJ)
  509.             }
  510.             function N(aJ, s) {
  511.                 var aK = aJ / (T - ak);
  512.                 W(aK * j, s)
  513.             }
  514.             function ab(aW, aR, aK) {
  515.                 var aO, aL, aM, s = 0,
  516.                     aV = 0,
  517.                     aJ, aQ, aP, aT, aS, aU;
  518.                 try {
  519.                     aO = b(aW)
  520.                 } catch (aN) {
  521.                     return
  522.                 }
  523.                 aL = aO.outerHeight();
  524.                 aM = aO.outerWidth();
  525.                 am.scrollTop(0);
  526.                 am.scrollLeft(0);
  527.                 while (!aO.is(".jspPane")) {
  528.                     s += aO.position().top;
  529.                     aV += aO.position().left;
  530.                     aO = aO.offsetParent();
  531.                     if (/^body|html$/i.test(aO[0].nodeName)) {
  532.                         return
  533.                     }
  534.                 }
  535.                 aJ = aB();
  536.                 aP = aJ + v;
  537.                 if (s < aJ || aR) {
  538.                     aS = s - az.verticalGutter
  539.                 } else {
  540.                     if (s + aL > aP) {
  541.                         aS = s - v + aL + az.verticalGutter
  542.                     }
  543.                 }
  544.                 if (aS) {
  545.                     M(aS, aK)
  546.                 }
  547.                 aQ = aD();
  548.                 aT = aQ + ak;
  549.                 if (aV < aQ || aR) {
  550.                     aU = aV - az.horizontalGutter
  551.                 } else {
  552.                     if (aV + aM > aT) {
  553.                         aU = aV - ak + aM + az.horizontalGutter
  554.                     }
  555.                 }
  556.                 if (aU) {
  557.                     N(aU, aK)
  558.                 }
  559.             }
  560.             function aD() {
  561.                 return -Y.position().left
  562.             }
  563.             function aB() {
  564.                 return -Y.position().top
  565.             }
  566.             function K() {
  567.                 var s = Z - v;
  568.                 return (s > 20) && (s - aB() < 10)
  569.             }
  570.             function B() {
  571.                 var s = T - ak;
  572.                 return (s > 20) && (s - aD() < 10)
  573.             }
  574.             function ag() {
  575.                 am.unbind(ac).bind(ac, function (aM, aN, aL, aJ) {
  576.                     var aK = aa,
  577.                         s = I;
  578.                     Q.scrollBy(aL * az.mouseWheelSpeed, -aJ * az.mouseWheelSpeed, false);
  579.                     return aK == aa && s == I
  580.                 })
  581.             }
  582.             function n() {
  583.                 am.unbind(ac)
  584.             }
  585.             function aC() {
  586.                 return false
  587.             }
  588.             function J() {
  589.                 Y.find(":input,a").unbind("focus.jsp").bind("focus.jsp", function (s) {
  590.                     ab(s.target, false)
  591.                 })
  592.             }
  593.             function E() {
  594.                 Y.find(":input,a").unbind("focus.jsp")
  595.             }
  596.             function S() {
  597.                 var s, aJ, aL = [];
  598.                 aF && aL.push(an[0]);
  599.                 aA && aL.push(U[0]);
  600.                 Y.focus(function () {
  601.                     D.focus()
  602.                 });
  603.                 D.attr("tabindex", 0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp", function (aO) {
  604.                     if (aO.target !== this && !(aL.length && b(aO.target).closest(aL).length)) {
  605.                         return
  606.                     }
  607.                     var aN = aa,
  608.                         aM = I;
  609.                     switch (aO.keyCode) {
  610.                     case 40:
  611.                     case 38:
  612.                     case 34:
  613.                     case 32:
  614.                     case 33:
  615.                     case 39:
  616.                     case 37:
  617.                         s = aO.keyCode;
  618.                         aK();
  619.                         break;
  620.                     case 35:
  621.                         M(Z - v);
  622.                         s = null;
  623.                         break;
  624.                     case 36:
  625.                         M(0);
  626.                         s = null;
  627.                         break
  628.                     }
  629.                     aJ = aO.keyCode == s && aN != aa || aM != I;
  630.                     return !aJ
  631.                 }).bind("keypress.jsp", function (aM) {
  632.                     if (aM.keyCode == s) {
  633.                         aK()
  634.                     }
  635.                     return !aJ
  636.                 });
  637.                 if (az.hideFocus) {
  638.                     D.css("outline", "none");
  639.                     if ("hideFocus" in am[0]) {
  640.                         D.attr("hideFocus", true)
  641.                     }
  642.                 } else {
  643.                     D.css("outline", "");
  644.                     if ("hideFocus" in am[0]) {
  645.                         D.attr("hideFocus", false)
  646.                     }
  647.                 }
  648.                 function aK() {
  649.                     var aN = aa,
  650.                         aM = I;
  651.                     switch (s) {
  652.                     case 40:
  653.                         Q.scrollByY(az.keyboardSpeed, false);
  654.                         break;
  655.                     case 38:
  656.                         Q.scrollByY(-az.keyboardSpeed, false);
  657.                         break;
  658.                     case 34:
  659.                     case 32:
  660.                         Q.scrollByY(v * az.scrollPagePercent, false);
  661.                         break;
  662.                     case 33:
  663.                         Q.scrollByY(-v * az.scrollPagePercent, false);
  664.                         break;
  665.                     case 39:
  666.                         Q.scrollByX(az.keyboardSpeed, false);
  667.                         break;
  668.                     case 37:
  669.                         Q.scrollByX(-az.keyboardSpeed, false);
  670.                         break
  671.                     }
  672.                     aJ = aN != aa || aM != I;
  673.                     return aJ
  674.                 }
  675.             }
  676.             function R() {
  677.                 D.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")
  678.             }
  679.             function C() {
  680.                 if (location.hash && location.hash.length > 1) {
  681.                     var aL, aJ, aK = escape(location.hash);
  682.                     try {
  683.                         aL = b(aK)
  684.                     } catch (s) {
  685.                         return
  686.                     }
  687.                     if (aL.length && Y.find(aK)) {
  688.                         if (am.scrollTop() === 0) {
  689.                             aJ = setInterval(function () {
  690.                                 if (am.scrollTop() > 0) {
  691.                                     ab(aK, true);
  692.                                     b(document).scrollTop(am.position().top);
  693.                                     clearInterval(aJ)
  694.                                 }
  695.                             }, 50)
  696.                         } else {
  697.                             ab(aK, true);
  698.                             b(document).scrollTop(am.position().top)
  699.                         }
  700.                     }
  701.                 }
  702.             }
  703.             function ai() {
  704.                 b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")
  705.             }
  706.             function m() {
  707.                 ai();
  708.                 b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack", function () {
  709.                     var s = this.href.split("#"),
  710.                         aJ;
  711.                     if (s.length > 1) {
  712.                         aJ = s[1];
  713.                         if (aJ.length > 0 && Y.find("#" + aJ).length > 0) {
  714.                             ab("#" + aJ, true);
  715.                             return false
  716.                         }
  717.                     }
  718.                 })
  719.             }
  720.             function ao() {
  721.                 var aK, aJ, aM, aL, aN, s = false;
  722.                 am.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp", function (aO) {
  723.                     var aP = aO.originalEvent.touches[0];
  724.                     aK = aD();
  725.                     aJ = aB();
  726.                     aM = aP.pageX;
  727.                     aL = aP.pageY;
  728.                     aN = false;
  729.                     s = true
  730.                 }).bind("touchmove.jsp", function (aR) {
  731.                     if (!s) {
  732.                         return
  733.                     }
  734.                     var aQ = aR.originalEvent.touches[0],
  735.                         aP = aa,
  736.                         aO = I;
  737.                     Q.scrollTo(aK + aM - aQ.pageX, aJ + aL - aQ.pageY);
  738.                     aN = aN || Math.abs(aM - aQ.pageX) > 5 || Math.abs(aL - aQ.pageY) > 5;
  739.                     return aP == aa && aO == I
  740.                 }).bind("touchend.jsp", function (aO) {
  741.                     s = false
  742.                 }).bind("click.jsp-touchclick", function (aO) {
  743.                     if (aN) {
  744.                         aN = false;
  745.                         return false
  746.                     }
  747.                 })
  748.             }
  749.             function g() {
  750.                 var s = aB(),
  751.                     aJ = aD();
  752.                 D.removeClass("jspScrollable").unbind(".jsp");
  753.                 D.replaceWith(ap.append(Y.children()));
  754.                 ap.scrollTop(s);
  755.                 ap.scrollLeft(aJ)
  756.             }
  757.             b.extend(Q, {
  758.                 reinitialise: function (aJ) {
  759.                     aJ = b.extend({}, az, aJ);
  760.                     at(aJ)
  761.                 },
  762.                 scrollToElement: function (aK, aJ, s) {
  763.                     ab(aK, aJ, s)
  764.                 },
  765.                 scrollTo: function (aK, s, aJ) {
  766.                     N(aK, aJ);
  767.                     M(s, aJ)
  768.                 },
  769.                 scrollToX: function (aJ, s) {
  770.                     N(aJ, s)
  771.                 },
  772.                 scrollToY: function (s, aJ) {
  773.                     M(s, aJ)
  774.                 },
  775.                 scrollToPercentX: function (aJ, s) {
  776.                     N(aJ * (T - ak), s)
  777.                 },
  778.                 scrollToPercentY: function (aJ, s) {
  779.                     M(aJ * (Z - v), s)
  780.                 },
  781.                 scrollBy: function (aJ, s, aK) {
  782.                     Q.scrollByX(aJ, aK);
  783.                     Q.scrollByY(s, aK)
  784.                 },
  785.                 scrollByX: function (s, aK) {
  786.                     var aJ = aD() + Math[s < 0 ? "floor" : "ceil"](s),
  787.                         aL = aJ / (T - ak);
  788.                     W(aL * j, aK)
  789.                 },
  790.                 scrollByY: function (s, aK) {
  791.                     var aJ = aB() + Math[s < 0 ? "floor" : "ceil"](s),
  792.                         aL = aJ / (Z - v);
  793.                     V(aL * i, aK)
  794.                 },
  795.                 positionDragX: function (s, aJ) {
  796.                     W(s, aJ)
  797.                 },
  798.                 positionDragY: function (aJ, s) {
  799.                     V(aJ, s)
  800.                 },
  801.                 animate: function (aJ, aM, s, aL) {
  802.                     var aK = {};
  803.                     aK[aM] = s;
  804.                     aJ.animate(aK, {
  805.                         duration: az.animateDuration,
  806.                         easing: az.animateEase,
  807.                         queue: false,
  808.                         step: aL
  809.                     })
  810.                 },
  811.                 getContentPositionX: function () {
  812.                     return aD()
  813.                 },
  814.                 getContentPositionY: function () {
  815.                     return aB()
  816.                 },
  817.                 getContentWidth: function () {
  818.                     return T
  819.                 },
  820.                 getContentHeight: function () {
  821.                     return Z
  822.                 },
  823.                 getPercentScrolledX: function () {
  824.                     return aD() / (T - ak)
  825.                 },
  826.                 getPercentScrolledY: function () {
  827.                     return aB() / (Z - v)
  828.                 },
  829.                 getIsScrollableH: function () {
  830.                     return aF
  831.                 },
  832.                 getIsScrollableV: function () {
  833.                     return aA
  834.                 },
  835.                 getContentPane: function () {
  836.                     return Y
  837.                 },
  838.                 scrollToBottom: function (s) {
  839.                     V(i, s)
  840.                 },
  841.                 hijackInternalLinks: function () {
  842.                     m()
  843.                 },
  844.                 destroy: function () {
  845.                     g()
  846.                 }
  847.             });
  848.             at(O)
  849.         }
  850.         e = b.extend({}, b.fn.jScrollPane.defaults, e);
  851.         b.each(["mouseWheelSpeed", "arrowButtonSpeed", "trackClickSpeed", "keyboardSpeed"], function () {
  852.             e[this] = e[this] || e.speed
  853.         });
  854.         return this.each(function () {
  855.             var f = b(this),
  856.                 g = f.data("jsp");
  857.             if (g) {
  858.                 g.reinitialise(e)
  859.             } else {
  860.                 g = new d(f, e);
  861.                 f.data("jsp", g)
  862.             }
  863.         })
  864.     };
  865.     b.fn.jScrollPane.defaults = {
  866.         showArrows: false,
  867.         maintainPosition: true,
  868.         stickToBottom: false,
  869.         stickToRight: false,
  870.         clickOnTrack: true,
  871.         autoReinitialise: false,
  872.         autoReinitialiseDelay: 500,
  873.         verticalDragMinHeight: 0,
  874.         verticalDragMaxHeight: 99999,
  875.         horizontalDragMinWidth: 0,
  876.         horizontalDragMaxWidth: 99999,
  877.         contentWidth: c,
  878.         animateScroll: false,
  879.         animateDuration: 300,
  880.         animateEase: "linear",
  881.         hijackInternalLinks: false,
  882.         verticalGutter: 4,
  883.         horizontalGutter: 4,
  884.         mouseWheelSpeed: 0,
  885.         arrowButtonSpeed: 0,
  886.         arrowRepeatFreq: 50,
  887.         arrowScrollOnHover: false,
  888.         trackClickSpeed: 0,
  889.         trackClickRepeatFreq: 70,
  890.         verticalArrowPositions: "split",
  891.         horizontalArrowPositions: "split",
  892.         enableKeyboardNavigation: true,
  893.         hideFocus: false,
  894.         keyboardSpeed: 0,
  895.         initialDelay: 300,
  896.         speed: 30,
  897.         scrollPagePercent: 0.8
  898.     }
  899. })(jQuery, this);
Advertisement
Add Comment
Please, Sign In to add comment