(function (a) {
  a.fn.undoChanges = function () {
    rotator.undoChanges();
    return this
  };

  a.fn.updateChanges = function () {
    rotator.updateChanges();
    return this
  };

  a.fn.setTransition = function (b) {
    rotator.setTransition(b);
    return this
  };

  a.fn.setEasing = function (b) {
    rotator.setEasing(b);
    return this
  };

  a.fn.setTextEffect = function (b) {
    rotator.setTextEffect(b);
    return this
  };

  a.fn.setTooltipType = function (b) {
    rotator.setTooltipType(b);
    return this
  };

  a.fn.setCpanelAlign = function (b) {
    rotator.setCpanelAlign(b);
    return this
  };

  a.fn.setCpanelPos = function (b) {
    rotator.setCpanelPos(b);
    return this
  };

  a.fn.setThumbs = function (b) {
    rotator.setThumbs(b);
    return this
  };

  a.fn.setDButtons = function (b) {
    rotator.setDButtons(b);
    return this
  };

  a.fn.setPlayButton = function (b) {
    rotator.setPlayButton(b);
    return this
  };

  a.fn.setTooltip = function (b) {
    rotator.setTooltip(b);
    return this
  };

  a.fn.setTimerBar = function (b) {
    rotator.setTimerBar(b);
    return this
  };

  a.fn.setMouseoverPause = function (b) {
    rotator.setMouseoverPause(b);
    return this
  };

  a.fn.setMouseoverCPanel = function (b) {
    rotator.setMouseoverCPanel(b);
    return this
  };

  a.fn.setMouseoverText = function (b) {
    rotator.setMouseoverText(b);
    return this
  };

  a.fn.wtRotator = function (z) {
    var l = "inside";
    var r = "outside";
    var B = 0;
    var C = 1;
    var k = {
      TL: 0,
      TC: 1,
      TR: 2,
      BL: 3,
      BC: 4,
      BR: 5
    };
    var e = 0;
    var h = {
      "block.top": e++,
      "block.right": e++,
      "block.bottom": e++,
      "block.left": e++,
      "block.drop": e++,
      "diag.fade": e++,
      "diag.exp": e++,
      "rev.diag.fade": e++,
      "rev.diag.exp": e++,
      "block.fade": e++,
      "block.exp": e++,
      "block.top.zz": e++,
      "block.bottom.zz": e++,
      "block.left.zz": e++,
      "block.right.zz": e++,
      "spiral.in": e++,
      "spiral.out": e++,
      "vert.tl": e++,
      "vert.tr": e++,
      "vert.bl": e++,
      "vert.br": e++,
      "fade.left": e++,
      "fade.right": e++,
      "alt.left": e++,
      "alt.right": e++,
      "blinds.left": e++,
      "blinds.right": e++,
      "vert.random.fade": e++,
      "horz.tl": e++,
      "horz.tr": e++,
      "horz.bl": e++,
      "horz.br": e++,
      "fade.top": e++,
      "fade.bottom": e++,
      "alt.top": e++,
      "alt.bottom": e++,
      "blinds.top": e++,
      "blinds.bottom": e++,
      "horz.random.fade": e++,
      none: e++,
      fade: e++,
      "h.slide": e++,
      "v.slide": e++,
      random: e++
    };

    var x = {
      fade: 0,
      down: 1,
      right: 2,
      up: 3,
      left: 4,
      none: 5
    };

    var o = 250;
    var f = 75;
    var b = 50;
    var q = 5000;
    var w = 800;
    var v = 600;
    var n = 600;
    var g = "updatetext";

    function c(G, P, N, R, M, H, I) {
      var J;
      var E;
      var L;
      var Q = null;
      var S = function () {
        L = Math.ceil(P / R);
        if (L > o) {
          R = Math.ceil(P / o);
          L = Math.ceil(P / R)
        }
        var U = "";
        for (var T = 0; T < L; T++) {
          U += "<div class='vpiece' id='" + T + "'></div>"
        }
        G.addToScreen(U);
        J = G.$el.find("div.vpiece");
        E = new Array(L);
        J.each(function (V) {
          a(this).css({
            left: (V * R), height: N
          });
          E[V] = a(this)
        })
      };

      this.clear = function () {
        clearInterval(Q);
        J.stop(true).css({
          "z-index": 2,
          opacity: 0
        })
      };

      this.displayContent = function (T, U) {
        D(T, U);
        if (U == h["vert.random.fade"]) {
          O(T)
        } else {
          F(T, U)
        }
      };

      var D = function (T, U) {
        switch (U) {
          case h["vert.tl"]: case h["vert.tr"]: K(T, -N, 1, R, false);
            break;
          case h["vert.bl"]: case h["vert.br"]: K(T, N, 1, R, false);
            break;
          case h["alt.left"]: case h["alt.right"]: K(T, 0, 1, R, true);
            break;
          case h["blinds.left"]: case h["blinds.right"]: K(T, 0, 1, 0, false);
            break;
          default: K(T, 0, 0, R, false)
        }
      };

      var K = function (W, T, U, Y, aa) {
        var X = W.attr("src");
        var Z = 0;
        var V = 0;
        if (G.autoCenter()) {
          Z = (N - W.height()) / 2;
          V = (P - W.width()) / 2
        }
        J.each(function (ac) {
          var ab = ((-ac * R) + V);
          if (aa) {
            T = (ac % 2) == 0 ? -N : N
          }
          a(this).css({
            background: M + " url('" + X + "') no-repeat", backgroundPosition: ab + "px " + Z + "px", opacity: U, top: T, width: Y, "z-index": 3
          })
        })
      };

      var F = function (V, W) {
        var Y, U, X, T;
        switch (W) {
          case h["vert.tl"]: case h["vert.bl"]: case h["fade.left"]: case h["blinds.left"]: case h["alt.left"]: Y = 0; U = L - 1; X = 1;
            break;
          default: Y = L - 1; U = 0; X = -1
        } Q = setInterval(function () {
          a(J.get(Y)).animate({ top: 0, opacity: 1, width: R }, H, G.easing(), function () {
            if (a(this).attr("id") == U) {
              G.setComplete(V)
            }
          });
          if (Y == U) {
            clearInterval(Q)
          }
          Y += X
        }, I)
      };

      var O = function (U) {
        t(E);
        var T = 0;
        var V = 0;
        Q = setInterval(function () {
          E[T++].animate({ opacity: 1 }, H, G.easing(), function () {
            if (++V == L) {
              G.setComplete(U)
            }
          });
          if (T == L) {
            clearInterval(Q)
          }
        }, I)
      };

      S()
    }

    function u(G, P, N, R, M, H, I) {
      var J;
      var E;
      var L;
      var Q = null;
      var S = function () {
        L = Math.ceil(N / R);
        if (L > o) {
          R = Math.ceil(N / o);
          L = Math.ceil(N / R)
        }
        var U = "";
        for (var T = 0; T < L; T++) {
          U += "<div class='hpiece' id='" + T + "'><!-- --></div>"
        } G.addToScreen(U);
        J = G.$el.find("div.hpiece");
        E = new Array(L);
        J.each(function (V) {
          a(this).css({ top: (V * R), width: P });
          E[V] = a(this)
        })
      };

      this.clear = function () {
        clearInterval(Q);
        J.stop(true).css({ "z-index": 2, opacity: 0 })
      };
      this.displayContent = function (T, U) {
        D(T, U);
        if (U == h["horz.random.fade"]) {
          O(T)
        } else {
          F(T, U)
        }
      };

      var D = function (T, U) {
        switch (U) {
          case h["horz.tr"]: case h["horz.br"]: K(T, P, 1, R, false);
            break;
          case h["horz.tl"]: case h["horz.bl"]: K(T, -P, 1, R, false);
            break;
          case h["alt.top"]: case h["alt.bottom"]: K(T, 0, 1, R, true);
            break;
          case h["blinds.top"]: case h["blinds.bottom"]: K(T, 0, 1, 0, false);
            break;
          default: K(T, 0, 0, R, false)
        }
      };
      var K = function (X, W, U, T, aa) {
        var Y = X.attr("src");
        var Z = 0;
        var V = 0;
        if (G.autoCenter()) {
          Z = (N - X.height()) / 2;
          V = (P - X.width()) / 2
        }
        J.each(function (ac) {
          var ab = ((-ac * R) + Z);
          if (aa) {
            W = (ac % 2) == 0 ? -P : P
          }
          a(this).css({
            background: M + " url('" + Y + "') no-repeat", backgroundPosition: V + "px " + ab + "px", opacity: U, left: W, height: T, "z-index": 3
          })
        })
      };

      var F = function (U, V) {
        var X, T, W; switch (V) {
          case h["horz.tl"]: case h["horz.tr"]: case h["fade.top"]: case h["blinds.top"]: case h["alt.top"]: X = 0; T = L - 1; W = 1;
            break;
          default: X = L - 1; T = 0; W = -1
        } Q = setInterval(function () {
          a(J.get(X)).animate({
            left: 0, opacity: 1, height: R
          }, H, G.easing(), function () {
            if (a(this).attr("id") == T) {
              G.setComplete(U)
            }
          });
          if (X == T) {
            clearInterval(Q)
          } X += W
        }, I)
      };

      var O = function (U) {
        t(E);
        var T = 0;
        var V = 0;
        Q = setInterval(function () {
          E[T++].animate({ opacity: 1 }, H, G.easing(), function () {
            if (++V == L) {
              G.setComplete(U)
            }
          });
          if (T == L) {
            clearInterval(Q)
          }
        }, I)
      };
      S()
    }

    function m(N, O, J, P, M, D, W) {
      var L;
      var E;
      var Q;
      var I;
      var K;
      var Y;
      var X;
      var V = function () {
        I = Math.ceil(J / P);
        K = Math.ceil(O / P);
        Y = I * K;
        if (Y > o) {
          P = Math.ceil(Math.sqrt((J * O) / o));
          I = Math.ceil(J / P);
          K = Math.ceil(O / P);
          Y = I * K
        }
        var ac = "";
        for (var ab = 0; ab < I; ab++) {
          for (var aa = 0; aa < K; aa++) {
            ac += "<div class='block' id='" + ab + "-" + aa + "'></div>"
          }
        }
        N.addToScreen(ac);
        E = N.$el.find("div.block");
        E.data({
          tlId: "0-0",
          trId: "0-" + (K - 1),
          blId: (I - 1) + "-0",
          brId: (I - 1) + "-" + (K - 1)
        });

        var Z = 0;
        Q = new Array(Y);
        L = new Array(I);
        for (var ab = 0; ab < I; ab++) {
          L[ab] = new Array(K);
          for (var aa = 0; aa < K; aa++) {
            L[ab][aa] = Q[Z++] = E.filter("#" + (ab + "-" + aa)).data("top", ab * P)
          }
        }
      };

      this.clear = function () {
        clearInterval(X);
        E.stop(true).css({ "z-index": 2, opacity: 0 })
      };

      this.displayContent = function (Z, aa) {
        switch (aa) {
          case h["diag.fade"]: S(Z, 0, P, 0); T(Z, { opacity: 1 }, false);
            break;
          case h["diag.exp"]: S(Z, 0, 0, 0); T(Z, { opacity: 1, width: P, height: P }, false);
            break;
          case h["rev.diag.fade"]: S(Z, 0, P, 0); T(Z, { opacity: 1 }, true);
            break;
          case h["rev.diag.exp"]: S(Z, 0, 0, 0); T(Z, { opacity: 1, width: P, height: P }, true);
            break;
          case h["block.fade"]: S(Z, 0, P, 0); F(Z);
            break;
          case h["block.exp"]: S(Z, 1, 0, 0); F(Z);
            break;
          case h["block.drop"]: S(Z, 1, P, -(I * P)); F(Z);
            break;
          case h["block.top.zz"]: case h["block.bottom.zz"]: S(Z, 0, P, 0); H(Z, aa);
            break;
          case h["block.left.zz"]: case h["block.right.zz"]: S(Z, 0, P, 0); R(Z, aa);
            break;
          case h["spiral.in"]: S(Z, 0, P, 0); U(Z, false);
            break;
          case h["spiral.out"]: S(Z, 0, P, 0); U(Z, true);
            break;
          default: S(Z, 1, 0, 0); G(Z, aa)
        }
      };

      var S = function (Z, af, aj, ae) {
        var ag = 0;
        var ab = 0;
        if (N.autoCenter()) {
          ag = (J - Z.height()) / 2;
          ab = (O - Z.width()) / 2
        }
        var ah = Z.attr("src");
        for (var ad = 0; ad < I; ad++) {
          for (var ac = 0; ac < K; ac++) {
            var ai = ((-ad * P) + ag);
            var aa = ((-ac * P) + ab);
            L[ad][ac].css({ background: M + " url('" + ah + "') no-repeat", backgroundPosition: aa + "px " + ai + "px", opacity: af, top: (ad * P) + ae, left: (ac * P), width: aj, height: aj, "z-index": 3 })
          }
        }
      };

      var T = function (Z, ah, ae) {
        var ag = new Array(Y);
        var aa, ad, ab, ac;
        var ai = (I - 1) + (K - 1);
        if (ae) {
          aa = ai;
          ad = -1;
          ab = -1;
          ac = E.data("tlId")
        } else {
          aa = 0;
          ad = ai + 1;
          ab = 1;
          ac = E.data("brId")
        }
        var af = 0;
        while (aa != ad) {
          i = Math.min(I - 1, aa);
          while (i >= 0) {
            j = Math.abs(i - aa);
            if (j >= K) {
              break
            }
            ag[af++] = L[i][j];
            i--
          }
          aa += ab
        }
        af = 0;
        X = setInterval(function () {
          ag[af++].animate(ah, D, N.easing(), function () {
            if (a(this).attr("id") == ac) {
              N.setComplete(Z)
            }
          });
          if (af == Y) {
            clearInterval(X)
          }
        }, W)
      };
      var R = function (ac, ad) {
        var ab = true;
        var aa = 0, Z, af, ae;
        if (ad == h["block.left.zz"]) {
          ae = (K % 2 == 0) ? E.data("trId") : E.data("brId"); Z = 0; af = 1
        }
        else {
          ae = (K % 2 == 0) ? E.data("tlId") : E.data("blId"); Z = K - 1; af = -1
        }
        X = setInterval(function () {
          L[aa][Z].animate({ opacity: 1 }, D, N.easing(), function () {
            if (a(this).attr("id") == ae) { N.setComplete(ac) }
          });
          if (L[aa][Z].attr("id") == ae) {
            clearInterval(X)
          } (ab ? aa++ : aa--);
          if (aa == I || aa < 0) {
            ab = !ab; aa = (ab ? 0 : I - 1); Z += af
          }
        }, W)
      };

      var H = function (ac, ad) {
        var ab = true;
        var aa, Z = 0, af, ae;
        if (ad == h["block.top.zz"]) {
          ae = (I % 2 == 0) ? E.data("blId") : E.data("brId"); aa = 0; af = 1
        }
        else {
          ae = (I % 2 == 0) ? E.data("tlId") : E.data("trId"); aa = I - 1; af = -1
        }
        X = setInterval(function () {
          L[aa][Z].animate({ opacity: 1 }, D, N.easing(), function () {
            if (a(this).attr("id") == ae) { N.setComplete(ac) }
          });
          if (L[aa][Z].attr("id") == ae) {
            clearInterval(X)
          } (ab ? Z++ : Z--);
          if (Z == K || Z < 0) {
            ab = !ab; Z = (ab ? 0 : K - 1); aa += af
          }
        }, W)
      };
      var G = function (ab, ac) {
        var ae = new Array(Y);
        var af;
        var ad = 0;
        switch (ac) {
          case h["block.left"]: af = E.data("brId");
            for (var Z = 0; Z < K; Z++) {
              for (var aa = 0; aa < I; aa++) {
                ae[ad++] = L[aa][Z]
              }
            }
            break;
          case h["block.right"]: af = E.data("blId");
            for (var Z = K - 1; Z >= 0; Z--) {
              for (var aa = 0; aa < I; aa++) {
                ae[ad++] = L[aa][Z]
              }
            }
            break;
          case h["block.top"]: af = E.data("brId");
            for (var aa = 0; aa < I; aa++) {
              for (var Z = 0; Z < K; Z++) {
                ae[ad++] = L[aa][Z]
              }
            }
            break;
          default: af = E.data("trId");
            for (var aa = I - 1; aa >= 0; aa--) {
              for (var Z = 0; Z < K; Z++) {
                ae[ad++] = L[aa][Z]
              }
            }
        }
        ad = 0;
        X = setInterval(function () {
          ae[ad++].animate({ width: P, height: P }, D, N.easing(), function () {
            if (a(this).attr("id") == af) {
              N.setComplete(ab)
            }
          });
          if (ad == Y) {
            clearInterval(X)
          }
        }, W)
      };
      var F = function (aa) {
        t(Q); var Z = 0; count = 0;
        X = setInterval(function () {
          Q[Z].animate({ top: Q[Z].data("top"), width: P, height: P, opacity: 1 }, D, N.easing(), function () {
            if (++count == Y) {
              N.setComplete(aa)
            }
          });
          Z++;
          if (Z == Y) {
            clearInterval(X)
          }
        }, W)
      };
      var U = function (Z, ah) {
        var ag = 0, af = 0;
        var ak = I - 1;
        var al = K - 1;
        var ab = 0;
        var ae = al;
        var aj = new Array();
        while (ak >= 0 && al >= 0) {
          var ai = 0;
          while (true) {
            aj[aj.length] = L[ag][af];
            if ((++ai) > ae) {
              break
            }
            switch (ab) {
              case 0: af++;
                break;
              case 1: ag++;
                break;
              case 2: af--;
                break;
              case 3: ag--
            }
          }
          switch (ab) {
            case 0: ab = 1;
              ae = (--ak);
              ag++;
              break;
            case 1: ab = 2;
              ae = (--al);
              af--;
              break;
            case 2: ab = 3;
              ae = (--ak);
              ag--;
              break;
            case 3: ab = 0;
              ae = (--al);
              af++
          }
        }
        if (aj.length > 0) {
          if (ah) {
            aj.reverse()
          }
          var ad = aj.length - 1;
          var aa = aj[ad].attr("id");
          var ac = 0;
          X = setInterval(function () {
            aj[ac].animate({ opacity: 1 }, D, N.easing(), function () {
              if (a(this).attr("id") == aa) {
                N.setComplete(Z)
              }
            });
            if (ac == ad) {
              clearInterval(X)
            } ac++
          }, W)
        }
      };
      V()
    }

    function y(by, bt) {
      var an;
      var ar = d(bt.width, 976);
      var bo = d(bt.height, 200);
      var bh = A(bt.button_margin, 4);
      var ao = bt.transition.toLowerCase();
      var aw = d(bt.transition_speed, w);
      var X = d(bt.delay, q);
      var aM = bt.auto_start;
      var V = bt.cpanel_position.toLowerCase();
      var a5 = bt.cpanel_align.toUpperCase();
      var ah = d(bt.button_width, 24);
      var aY = d(bt.button_height, 24);
      var G = bt.display_thumbs;
      var aK = bt.display_dbuttons;
      var aI = bt.display_playbutton;
      var aS = bt.display_numbers;
      var bf = bt.display_thumbimg;
      var ac = bt.display_timer;
      var aC = bt.cpanel_mouseover;
      var aA = bt.text_mouseover;
      var ab = bt.mouseover_pause;
      var ak = bt.tooltip_type.toLowerCase();
      var ay = bt.text_effect.toLowerCase();
      var bu = bt.text_sync;
      var ax = bt.play_once;
      var Y = bt.auto_center;
      var a6 = bt.easing;
      var aj;
      var au;
      var J;
      var I;
      var Q;
      var aO;
      var a0;
      var bc;
      var ap;
      var a7;
      var aR;
      var ag;
      var ai;
      var aU;
      var a9;
      var av;
      var aQ;
      var E;
      var U;
      var F;
      var a1;
      var ad;
      var L;
      var R;
      var P;
      var bd;
      var S;
      var M;
      var aE;
      var aa;
      this.$el = by;
      this.init = function () {
        an = by.find(">div:first").clone();
        ai = by.find(".wt-rotator");
        aU = ai.find("div.screen");
        F = ai.find("div.c-panel");
        L = F.find("div.buttons");
        a1 = F.find("div.thumbnails");
        ad = a1.find(">ul:first>li");
        M = a("<div id='rotator-tooltip'></div>");
        bc = null;
        au = 0;
        J = -1;
        aj = ad.size();
        aE = new Array(aj);
        ap = a7 = aR = false;
        bi(h[ao]);
        aJ();
        a3();
        aV();
        bs();
        aB();
        ai.css({
          width: ar, height: bo + (V == r ? U.outerHeight() : 0)
        });
        if (aA) {
          ai.hover(af, am)
        }
        else {
          ai.bind(g, a4)
        }
        var bz = aU.css("background-color");
        if (aR) {
          Q = new c(this, ar, bo, d(bt.vert_size, b), bz, aw, d(bt.vstripe_delay, 75))
        }
        if (a7) {
          aO = new u(this, ar, bo, d(bt.horz_size, b), bz, aw, d(bt.hstripe_delay, 75))
        }
        if (ap) {
          a0 = new m(this, ar, bo, d(bt.block_size, f), bz, aw, d(bt.block_delay, 25))
        }
        ba(0);
        aH(au)
      };

      this.setComplete = function (bz) {
        D(bz)
      };

      this.addToScreen = function (bz) {
        av.append(bz)
      };

      this.autoCenter = function () {
        return Y
      };

      this.easing = function () {
        return a6
      };

      var aJ = function () {
        var bz = "<div class='desc'><div class='inner-bg'></div><div class='inner-text'></div></div>								<div class='preloader'></div>								<div id='timer'></div>";
        aU.append(bz);
        aQ = aU.find("div.desc");
        E = aU.find("div.preloader");
        aU.css({ width: ar, height: bo });
        aa = aQ.find("div.inner-text");
        a9 = a("<div id='strip'></div>");
        if (ao == "h.slide") {
          aU.append(a9);
          a9.css({
            width: 2 * ar, height: bo
          });
          ad.removeAttr("effect")
        } else {
          if (ao == "v.slide") {
            aU.append(a9);
            a9.css({
              width: ar, height: 2 * bo
            });
            ad.removeAttr("effect")
          } else {
            aU.append("<a href='#'></a>"); av = aU.find(">a:first")
          }
        }
      };

      var bs = function () {
        if (G || aK || aI) {
          var bA = ar - (L.width() + bh);
          if (a1.width() > bA) {
            a1.width(bA)
          }
          if (V == l) {
            F.css({
              "margin-top": bh,
              "margin-right": 0,
              "margin-bottom": bh,
              "margin-left": 0
            });
            var bz = F.outerHeight(true);
            switch (k[a5]) {
              case k.TL: bl(0, -bz);
                a8("left");
                break;
              case k.TC: bl(0, -bz);
                a8("center");
                break;
              case k.TR: bl(0, -bz);
                a8("right");
                break;
              case k.BL: bl((bo - bz), bo);
                a8("left");
                break;
              case k.BC: bl((bo - bz), bo);
                a8("center");
                break;
              default: bl((bo - bz), bo);
                a8("right")
            }
            if (aC) { ai.hover(bv, aD) }
          }
          else {
            F.wrap("<div class='outer-cp'></div>");
            U = ai.find(".outer-cp");
            U.css({
              "padding-top": bh,
              "padding-bottom": bh, height: F.height()
            });
            switch (k[a5]) {
              case k.TL: bx(true);
                a8("left");
                break;
              case k.TC: bx(true);
                a8("center");
                break;
              case k.TR: bx(true);
                a8("right");
                break;
              case k.BL: bx(false);
                a8("left");
                break;
              case k.BC: bx(false);
                a8("center");
                break;
              default: bx(false);
                a8("right")
            }
          }
          F.css("visibility", "visible").click(al)
        }
      };

      var bl = function (bz, bA) {
        F.data({ offset: bA, pos: bz }).css({ top: (aC ? bA : bz) })
      };

      var bx = function (bz) {
        if (bz) {
          U.css({ "border-top": "none", top: 0 });
          aU.css("top", U.outerHeight())
        }
        else {
          U.css({ "border-bottom": "none", top: bo });
          aU.css("top", 0)
        }
        F.css("top", bh)
      };

      var a8 = function (bz) {
        if (bz == "center") {
          F.css("left", Math.round((ar - F.outerWidth(true) - bh) / 2));
          a1.css("float", "left");
          L.css("float", "left");
          F.prepend(a1)
        }
        else {
          if (bz == "left") {
            F.css("left", bh);
            a1.css("float", "left");
            L.css("float", "left")
          }
          else {
            F.css("right", 0);
            a1.css("float", "right");
            L.css("float", "right")
          }
        }
        if (G) {
          F.height(a1.height())
        } else {
          F.height(L.height())
        }
      };

      var aV = function () {
        R = L.find("div.play-btn");
        P = L.find("div.prev-btn");
        bd = L.find("div.next-btn");
        var bz = {
          "margin-right": bh, width: ah, height: aY
        };
        if (aK) {
          P.css(bz).click(at).mouseover(H).mouseout(aZ).mousedown(al);
          bd.css(bz).click(K).mouseover(H).mouseout(aZ).mousedown(al)
        }
        else {
          P.hide();
          bd.hide()
        }
        if (aI) {
          if (aM) {
            R.addClass("pause")
          }
          R.css(bz).click(ae).mouseover(H).mouseout(aZ).mousedown(al)
        }
        else {
          R.hide()
        }
        if (ab) { ai.hover(aP, Z) }
      };
      var aB = function () {
        S = aU.find("#timer").data("pct", 1);
        if (ac) {
          var bz = bt.timer_align.toLowerCase();
          S.css("visibility", "visible");
          S.css("top", bz == "top" ? 0 : bo - S.height())
          S.css("width", "100px");
        }
        else {
          S.hide()
        }
      };
      var a3 = function () {
        var bz = aa.outerHeight() - aa.height();
        ad.each(function (bC) {
          var bB = a(this).find(">a:first");
          var bA = h[a(this).attr("effect")];
          if (bA == undefined || bA == h["h.slide"] || bA == h["v.slide"]) {
            bA = h[ao]
          }
          else {
            bi(bA)
          }
          a(this).data({
            imgurl: bB.attr("href"),
            caption: bB.attr("title"),
            effect: bA,
            delay: d(a(this).attr("delay"),
           X)
          });
          bk(a(this), bz);
          aE[bC] = a(this);
          if (aS) { a(this).append(bC + 1) }
        });
        aa.css({ width: "auto", height: "auto" }).html("");
        aQ.css("visibility", "visible");

        if (bf) {
          ad.addClass("image");
          ad.find(">a:first").removeAttr("title").find(">img").removeAttr("alt")
        }
        if (bt.shuffle) { O() }
        if (G) {
          ad.css({ width: ah, height: aY, "line-height": aY + "px", "margin-right": bh }).mouseover(bn).mouseout(W).mousedown(al);
          a1.height(ad.outerHeight(true)).click(az);
          if (ak == "text" || ak == "image") { bm() }
        } else {
          ad.hide()
        }
      };

      var bk = function (bz, bB) {
        var bA = bz.find(">div:hidden");
        var bD = d(parseInt(bA.css("width")) - bB, 300);
        var bC = d(parseInt(bA.css("height")) - bB, 0);
        aa.width(bD).html(bA.html());
        if (bC < aa.height()) {
          bC = aa.height()
        }
        bz.data("textbox", {
          x: bA.css("left"),
          y: bA.css("top"),
          w: bD + bB,
          h: bC + bB + 1,
          color: bA.css("color"),
          bgcolor: bA.css("background-color")
        })
      };
      var bm = function () {
        a("body").append(M);
        var bz, bA;
        if (ak == "text") {
          M.append("<div class='tt-txt'></div>");
          bz = "txt-up";
          bA = "txt-down";
          ad.mouseover(bq).mouseout(aN).bind("mousemove", T)
        }
        else {
          if (ak == "image") {
            aX();
            bz = "img-up"; bA = "img-down";
            ad.mouseover(bj).mouseout(aN)
          }
        }
        switch (k[a5]) {
          case k.TL: case k.TC: case k.TR: M.data("bottom", true).addClass(bA);
            break;
          default: M.data("bottom", false).addClass(bz)
        }
        if (jQuery.browser.msie && parseInt(jQuery.browser.version) <= 6) {
          M.css("background-image", "none").children().css("margin", 0)
        }
      };
      var bj = function (bA) {
        var bz = aE[a(this).index()].data("ttImg");
        if (bz != undefined) {
          M.find(">img").hide();
          bz.show();
          if (bz[0].complete || bz[0].readyState == "complete") {
            var bC = M.data("bottom") ? a(this).outerHeight() : -M.outerHeight();
            var bB = a(this).offset();
            M.css({
              top: bB.top + bC, left: bB.left + ((a(this).outerWidth() - M.outerWidth()) / 2)
            }).stop(true, true).delay(n).fadeIn(300)
          }
        }
      };
      var bq = function (bA) {
        var bz = aE[a(this).index()].data("caption");
        if (bz != "") {
          M.find(">div.tt-txt").html(bz);
          var bB = M.data("bottom") ? 0 : -M.outerHeight(true);
          M.css({ top: bA.pageY + bB, left: bA.pageX }).stop(true, true).delay(n).fadeIn(300)
        }
      };
      var T = function (bz) {
        var bA = M.data("bottom") ? 0 : -M.outerHeight(true);
        M.css({
          top: bz.pageY + bA,
          left: bz.pageX
        })
      };
      var aN = function () {
        M.stop(true, true).fadeOut(0)
      };
      var bv = function () {
        F.stop(true).animate({
          top: F.data("pos"), opacity: 1
        }, v)
      };
      var aD = function () {
        F.stop(true).animate({
          top: F.data("offset"), opacity: 0
        }, v)
      };
      var az = function (bB) {
        var bz = a(bB.target);
        if (bz[0].nodeName != "LI") {
          bz = bz.parents("li").eq(0)
        }
        var bA = bz.index();
        if (bA > -1 && bA != au) {
          ag = bA < au ? B : C; be();
          J = au; au = bA; aH(au); aN()
        }
        return false
      };
      var bn = function () {
        a(this).addClass("thumb-over")
      };
      var W = function () {
        a(this).removeClass("thumb-over")
      };
      var at = function () {
        ag = B; be();
        J = au;
        au = (au > 0) ? (au - 1) : (aj - 1);
        aH(au);
        return false
      };
      var K = function () {
        ag = C;
        be();
        J = au;
        au = (au < aj - 1) ? (au + 1) : 0;
        aH(au);
        return false
      };
      var ae = function () {
        aM = !aM;
        a(this).toggleClass("pause", aM);
        aM ? aT() : N();
        return false
      };
      var Z = function () {
        aM = true;
        R.toggleClass("pause", aM);
        aT()
      };
      var aP = function () {
        aM = false;
        R.toggleClass("pause", aM); N()
      };
      var aF = function (bz) {
        if (bz == aj - 1) { aM = false; R.toggleClass("pause", aM) }
      };
      var H = function () {
        a(this).addClass("button-over")
      };
      var aZ = function () {
        a(this).removeClass("button-over")
      };
      var a4 = function (bA) {
        if (!aQ.data("visible")) {
          aQ.data("visible", true);
          var bB = aE[au].find(">div:first").html();
          if (bB && bB.length > 0) {
            var bz = aE[au].data("textbox");
            aa.css("color", bz.color);
            aQ.find(".inner-bg").css({ "background-color": bz.bgcolor, height: bz.h - 1 });
            switch (x[ay]) {
              case x.fade: aW(bB, bz);
                break;
              case x.down: bg(bB, bz, { width: bz.w, height: 0 }, { height: bz.h });
                break;
              case x.right: bg(bB, bz, { width: 0, height: bz.h }, { width: bz.w });
                break;
              case x.left: bg(bB, bz, { "margin-left": bz.w, width: 0, height: bz.h }, { width: bz.w, "margin-left": 0 });
                break;
              case x.up: bg(bB, bz, { "margin-top": bz.h, height: 0, width: bz.w }, { height: bz.h, "margin-top": 0 });
                break;
              default: bw(bB, bz)
            }
          }
        }
      };

      var bp = function () {
        aQ.data("visible", false).stop(true, true);
        switch (x[ay]) {
          case x.fade: case x.down: case x.right: case x.left: case x.up: if (jQuery.browser.msie) {
              aa.css("opacity", 0)
            } aQ.fadeOut(v, function () { a(this).css("display", "none") });
            break;
          default: aQ.css("display", "none")
        }
      };

      var bg = function (bC, bB, bA, bz) {
        aa.css("opacity", 1).html("");
        aQ.stop(true, true).css({
          display: "block",
          top: bB.y,
          left: bB.x,
          "margin-top": 0,
          "margin-left": 0
        }).css(bA).animate(bz, v, function () {
          aa.html(bC)
        })
      };

      var aW = function (bA, bz) {
        aa.css("opacity", 1).html(bA);
        aQ.css({ top: bz.y,
          left: bz.x,
          width: bz.w,
          height: bz.h
        }).stop(true, true).fadeIn(v, function () {
          if (jQuery.browser.msie) {
            aa[0].style.removeAttribute("filter")
          }
        })
      };

      var bw = function (bA, bz) {
        aQ.stop(true).css({
          display: "block",
          top: bz.y,
          left: bz.x,
          width: bz.w,
          height: bz.h
        });
        aa.html(bA)
      };

      var af = function () {
        ai.unbind(g).bind(g, a4).trigger(g)
      };

      var am = function () {
        ai.unbind(g); bp()
      };

      var aH = function (bB) {
        if (ax) {
          aF(bB)
        }
        ad.filter(".curr-thumb").removeClass("curr-thumb");
        a(ad.get(bB)).addClass("curr-thumb");
        I = aE[bB].data("delay");
        bp();
        if (!bu) {
          ai.trigger(g)
        }
        if (av) {
          var bC = aE[bB].find(">a:nth-child(2)");
          var bz = bC.attr("href");
          if (bz) {
            av.unbind("click", al).css("cursor", "pointer").attr({ href: bz, target: bC.attr("target") })
          }
          else {
            av.click(al).css("cursor", "default")
          }
        }
        if (aE[bB].data("img")) {
          E.hide(); aL(aE[bB].data("img"))
        }
        else {
          var bA = a("<img class='main-img'/>");
          bA.load(function () {
            E.hide();
            br(aE[bB], a(this)); aL(a(this))
          }).error(function () {
            alert("Error loading image")
          });
          E.show();
          bA.attr("src", aE[bB].data("imgurl"))
        }
      };
      var aL = function (bz) {
        if (aR) {
          Q.clear();
          aq()
        }
        if (a7) {
          aO.clear();
          aq()
        }
        if (ap) {
          a0.clear();
          aq()
        }
        var bA = aE[au].data("effect");
        if (bA == h.none || bA == undefined) {
          D(bz); return
        }
        else {
          if (bA == h.fade) {
            bb(bz);
            return
          } else {
            if (bA == h["h.slide"]) {
              a2(bz, "left", ar);
              return
            }
            else {
              if (bA == h["v.slide"]) { a2(bz, "top", bo); return }
            }
          }
        }
        if (bA == h.random) {
          bA = Math.floor(Math.random() * (e - 5))
        }
        if (bA <= h["spiral.out"]) {
          a0.displayContent(bz, bA)
        }
        else {
          if (bA <= h["vert.random.fade"]) {
            Q.displayContent(bz, bA)
          }
          else {
            aO.displayContent(bz, bA)
          }
        }
      };

      var aq = function () {
        if (J >= 0) {
          var bA = av.find("img#curr-img").attr("src");
          var bB = aE[J].data("imgurl");
          if (bA != bB) {
            av.find("img.main-img").attr("id", "").hide();
            var bz = av.find("img.main-img").filter(function () {
              return a(this).attr("src") == bB
            });
            a(bz.get(0)).show()
          }
        }
      };
      var D = function (bz) {
        if (bu) {
          ai.trigger(g)
        }
        av.find("img.main-img").attr("id", "").hide();
        bz.attr("id", "curr-img").show();
        aT()
      };
      var bb = function (bz) {
        av.find("img#curr-img").stop(true, true);
        av.find("img.main-img").attr("id", "").css("z-index", 0);
        bz.attr("id", "curr-img").stop(true, true).css({
          opacity: 0,
          "z-index": 1
        }).show().animate({
          opacity: 1
        }, aw, a6, function () {
          av.find("img.main-img:not('#curr-img')").hide();
          if (bu) {
            ai.trigger(g)
          }
          aT()
        })
      };

      var a2 = function (bD, bF, bC) {
        a9.stop(true, true);
        var bz = a("#curr-img", a9);
        if (bz.size() > 0) {
          a9.find(".main-img").attr("id", "").parents(".content-box").css({ top: 0, left: 0 });
          bD.attr("id", "curr-img").parents(".content-box").show();
          var bB, bA;
          if (ag == B) {
            a9.css(bF, -bC);
            bB = bz;
            bA = 0
          }
          else {
            bB = bD; bA = -bC
          }
          bB.parents(".content-box").css(bF, bC);
          var bE = (bF == "top") ? {
            top: bA
          } : {
            left: bA
          };
          a9.stop(true, true).animate(bE, aw, a6, function () {
            a9.find(".main-img:not('#curr-img')").parents(".content-box").hide();
            bB.parents(".content-box").css({ top: 0, left: 0 });
            a9.css({ top: 0, left: 0 });
            if (bu) { ai.trigger(g) } aT()
          })
        }
        else {
          a9.css({ top: 0, left: 0 });
          a9.find(".main-img").parents(".content-box").hide().css({ top: 0, left: 0 });
          bD.attr("id", "curr-img").parents(".content-box").show();
          if (bu) { ai.trigger(g) }
          aT()
        }
      };

      var aX = function (bB) {
        for (var bB = 0; bB < aj; bB++) {
          var bz = aE[bB];
          var bA = bz.find(">a:first>img");
          if (bA.size() == 1) {
            bA.addClass("tt-img");
            M.append(bA);
            bz.data("ttImg", bA)
          }
        }
      };

      var ba = function (bA) {
        try {
          var bz = aE[bA];
          var bC = a("<img class='main-img'/>");
          bC.load(function () {
            if (!bz.data("img")) {
              br(bz, a(this))
            } bA++;
            if (bA < aj) {
              ba(bA)
            }
          }).error(function () {
            bA++;
            if (bA < aj) { ba(bA) }
          });
          bC.attr("src", bz.data("imgurl"))
        }
        catch (bB) { }
      };
      var br = function (bB, bC) {
        if (ao == "h.slide" || ao == "v.slide") {
          a9.append(bC);
          aG(bC);
          var bz = a("<div class='content-box'></div>").css({ width: ar, height: bo });
          bC.wrap(bz);
          bC.css("display", "block");
          var bA = bB.find(">a:nth-child(2)");
          if (bA) { bC.wrap(bA) }
        }
        else {
          av.append(bC);
          aG(bC)
        } bB.data("img", bC)
      };
      var aG = function (bC) {
        if (Y && bC.width() > 0 && bC.height() > 0) {
          var bF = (bo - bC.height()) / 2;
          var bB = (ar - bC.width()) / 2;
          var bE = 0, bD = 0, bA = 0, bz = 0;
          if (bF > 0) {
            bA = bF
          } else {
            if (bF < 0) {
              bE = bF
            }
          } if (bB > 0) {
            bz = bB
          }
          else {
            if (bB < 0) {
              bD = bB
            }
          }

          bC.css({
            top: bE,
            left: bD,
            "padding-top": bA,
            "padding-bottom": bA,
            "padding-left": bz,
            "padding-right": bz
          })
        }
      };
      var aT = function () {
        if (aM && bc == null) {
          var bz = Math.round(S.data("pct") * I);
          S.animate({ width: (ar + 1) }, bz, "linear");
          bc = setTimeout(K, bz)
        }
      };
      var be = function () {
        clearTimeout(bc);
        bc = null;
        S.stop(true).width(0).data("pct", 1)
      };
      var N = function () {
        clearTimeout(bc);
        bc = null;
        var bz = 1 - (S.width() / (ar + 1));
        S.stop(true).data("pct", bz)
      };
      var O = function () {
        for (var bB = 0; bB < aE.length; bB++) {
          var bz = Math.floor(Math.random() * aE.length);
          var bA = aE[bB];
          aE[bB] = aE[bz];
          aE[bz] = bA
        }
      };
      var bi = function (bz) {
        if (bz == h.random) {
          ap = a7 = aR = true
        }
        else {
          if (bz <= h["spiral.out"]) {
            ap = true
          }
          else {
            if (bz <= h["vert.random.fade"]) {
              aR = true
            }
            else {
              if (bz <= h["horz.random.fade"]) {
                a7 = true
              }
            }
          }
        }
      };

      var al = function () { return false };
      this.undoChanges = function () {
        be();
        if (aR) { Q.clear() }
        if (a7) { aO.clear() }
        if (ap) { a0.clear() }
        a("#rotator-tooltip").remove();
        by.empty();
        by.append(an)
      };

      this.updateChanges = function () {
        this.init()
      };

      this.setMouseoverPause = function (bz) {
        ab = bz
      };

      this.setMouseoverText = function (bz) {
        aA = bz
      };

      this.setMouseoverCPanel = function (bz) {
        aC = bz
      };

      this.setTransition = function (bz) {
        ao = bz
      };

      this.setEasing = function (bz) { a6 = bz };

      this.setTextEffect = function (bz) {
        ay = bz
      };

      this.setThumbs = function (bz) {
        G = bz
      };

      this.setDButtons = function (bz) {
        aK = bz
      };

      this.setPlayButton = function (bz) {
        aI = bz
      };

      this.setTimerBar = function (bz) {
        ac = bz
      };

      this.setCpanelAlign = function (bz) {
        a5 = bz
      };

      this.setCpanelPos = function (bz) {
        V = bz
      };

      this.setTooltipType = function (bz) {
        ak = bz
      }
    }

    var d = function (D, E) {
      if (!isNaN(D) && D > 0) {
        return D
      }
      return E
    };

    var A = function (D, E) {
      if (!isNaN(D) && D >= 0) {
        return D
      }
      return E
    };

    var t = function (D) {
      var H = D.length;
      for (var G = 0; G < H; G++) {
        var E = Math.floor(Math.random() * H);
        var F = D[G];
        D[G] = D[E];
        D[E] = F
      }
    };

    var p = { 
      width: 976,
      height: 200,
      button_width: 24,
      button_height: 24,
      button_margin: 4,
      auto_start: true,
      delay: q,
      transition: "fade",
      transition_speed: w,
      cpanel_position: l,
      cpanel_align: "BR",
      timer_align: "top",
      display_thumbs: true,
      display_dbuttons: true,
      display_playbutton: true,
      display_imgtooltip: true,
      display_numbers: true,
      display_thumbimg: false,
      display_timer: true,
      mouseover_pause: false,
      cpanel_mouseover: false,
      text_mouseover: false,
      text_effect: "fade",
      text_sync: true,
      tooltip_type: "text",
      shuffle: false,
      play_once: false,
      auto_center: false,
      block_size: f,
      vert_size: b,
      horz_size: b,
      block_delay: 25,
      vstripe_delay: 75,
      hstripe_delay: 75,
      easing: ""
    };

    var s = a.extend({}, p, z);
    return this.each(function () {
      rotator = new y(a(this), s);
      rotator.init()
    })
  }
})(jQuery);
