﻿(function (b) { b.fn.sudoSlider = function (j) { if (typeof (j) != "object" && j != "" && j) { return this.each(function () { b(this).trigger("sudoSliderEvent", [j]) }) } else { var r = { prevNext: true, prevHtml: '<a href="#" class="prevBtn"> previous </a>', nextHtml: '<a href="#" class="nextBtn"> next </a>', controlsShow: true, controlsAttr: 'id="controls"', controlsFadeSpeed: "400", controlsFade: true, insertAfter: true, firstShow: false, firstHtml: '<a href="#" class="firstBtn"> first </a>', lastShow: false, lastHtml: '<a href="#" class="lastBtn"> last </a>', numericAttr: 'class="controls"', numericText: ["1"], vertical: false, speed: "800", ease: "swing", auto: false, pause: "2000", continuous: false, clickableAni: false, numeric: false, updateBefore: false, history: false, speedhistory: "400", autoheight: true, customLink: false, fade: false, crossFade: true, fadespeed: "1000", ajax: false, loadingText: false, preloadAjax: false, startSlide: false, imgAjaxFunction: false, docAjaxFunction: false, beforeAniFunc: false, afterAniFunc: false, uncurrentFunc: false, currentFunc: false }; var j = b.extend(r, j); var D = j.controlsFadeSpeed; var G = j.controlsFade; var w = j.firstShow; var s = j.lastShow; var c = j.vertical; var g = j.speed; var m = j.ease; var H = j.auto; var A = j.pause; var d = j.continuous; var u = j.prevNext; var h = j.numeric; var l = j.numericAttr; var f = j.numericText; var q = j.history; var k = j.speedhistory; var e = j.autoheight; var I = j.customLink; var o = j.fade; var t = j.crossFade; var C = j.fadespeed; var E = j.updateBefore; var i = j.ajax; var F = j.startSlide; var x = j.imgAjaxFunction; var v = j.docAjaxFunction; var n = j.beforeAniFunc; var z = j.afterAniFunc; var y = j.uncurrentFunc; var B = j.currentFunc; return this.each(function () { var ax = true; if (H) { d = true } var M = b(this); var ai = M.children("ul"); var ah = ai.children("li"); var ap = ah.length; var an = ah.eq(0).width(); var aA = M.height(); if (i) { if (ai.length == 0) { M.append("<ul></ul>"); ai = M.children("ul") } if (i.length > ap) { for (var az = 1; az <= i.length - ap; az++) { ai.append("<li><p>" + O() + "</p></li>") } ah = ai.children("li"); ap = ah.length; an = ah.eq(0).width() } } function O() { var aF = ["Spinning up the hamster", "&pi; &times; 1337% == 42", "Programming the flux capacitor", "The last time I tried this the monkey didn't survive", "Testing data on Timmy... ... ... We need another Timmy", "Warming up Large Hadron Collider", "It looks like you're waiting for something to load"]; return j.loadingText ? j.loadingText : (aF[Math.round(Math.random() * (aF.length - 1))] + "...") } var ao = 0; var ad = ao; var aw = ao; var aD = ap - 1; var ay = true; var av = false; var J = false; var K = false; var U = 0; var P = new Array(); var W = false; var aE = false; M.css("overflow", "hidden"); if (o && M.css("position") == "static") { M.css("position", "relative") } ah.css("float", "left"); for (var az = 0; az < ap; az++) { if (f[az] == undefined) { f[az] = (az + 1) } if (i && i[az] == undefined) { i[az] = false } } if (d) { if (c) { ai.prepend(ah.filter(":last-child").clone().css("margin-top", "-" + aA + "px")); ai.append(ah.filter(":nth-child(2)").clone()); ai.height((ap + 1) * aA) } else { ai.prepend(ah.filter(":last-child").clone().css("margin-left", "-" + an + "px")); ai.append(ah.filter(":nth-child(2)").clone()); ai.width((ap + 1) * an) } if (i) { if (i[0]) { aj("last", 0, false, 0) } if (i[ap - 1]) { aj("first", (ap - 1), false, 0); aj(aD, aD, false, 0); i[ap - 1] = false } } } else { if (c) { ai.height(ap * aA) } else { ai.width(ap * an) } } if (j.preloadAjax) { for (var az = 0; az <= ap - subtract; az++) { if (i[az]) { aj(az, az, false, 0); i[az] = false } } } if (j.controlsShow) { var ab = b("<span " + j.controlsAttr + "></span>"); if (j.insertAfter) { b(M).after(ab) } else { b(M).before(ab) } var ac = j.controlsBefore; if (h) { W = ab.prepend("<ol " + l + "></ol>").children(); for (var az = 0; az < ap; az++) { P[az] = b(document.createElement("li")).attr({ rel: (az + 1) }).html('<a href="#"><span>' + f[az] + "</span></a>").appendTo(W).click(function () { aq(b(this).attr("rel") - 1, true); return false }) } } if (w) { var ae = al(j.firstHtml, "first") } if (s) { var T = al(j.lastHtml, "last") } if (u) { var aC = al(j.nextHtml, "next"); var R = al(j.prevHtml, "prev") } } function aq(aG, aF) { if (!aE) { if (o) { V(aG, aF) } else { au(aG, aF, true) } } } function al(aG, aH) { var aF = b(aG); ab.prepend(aF); aF.click(function () { aq(aH, true); return false }); return aF } D = L(D); g = L(g); A = L(A); k = L(k); C = L(C); function L(aF) { if (parseInt(aF)) { var aG = parseInt(aF) } else { switch (aF) { case "fast": var aG = 200; break; case "normal": var aG = 400; break; case "medium": var aG = 400; break; case "slow": var aG = 600; break; default: var aG = 400 } } return aG } function Z(aG, aF) { aG.each(function () { var aI = (this.tagName.toLowerCase() === "img") ? b(this) : b("img", this), aJ = this, aH = 0, aK = function () { if (typeof aF === "function") { aF(aJ) } }; if (aI.length) { aI.each(function () { var aL = this, aM = function (aN) { if ((aL.complete) || (aL.readyState == "complete" && aN.type == "readystatechange")) { if (++aH === aI.length) { aK() } } else { if (aL.readyState === undefined) { b(aL).attr("src", b(aL).attr("src")) } } }; b(aL).bind("load readystatechange", function (aN) { aM(aN) }); aM({ type: "readystatechange" }) }) } else { aK() } }) } function X(aF) { var aI = new Array(".jpg", ".png", ".bmp", ".gif"); var aJ = false; while (aF.indexOf("\\") != -1) { var aF = aF.slice(aF.indexOf("\\") + 1) } var aH = aF.slice(aF.indexOf(".")).toLowerCase(); for (var aG = 0; aG < aI.length; aG++) { if (aI[aG] == aH) { aJ = true; break } } return aJ } function af(aK, aJ, aF) { if (aF) { var aI = aC; var aG = T; var aL = "next"; var aH = "last"; var aM = s } else { var aI = R; var aG = ae; var aL = "prev"; var aH = "first"; var aM = w } if (!d) { if (u) { aI.fadeTo(aJ, aK, function () { if (aK == 0) { b(this).hide() } }) } if (aM) { aG.fadeTo(aJ, aK, function () { if (aK == 0) { b(this).hide() } }) } if (I) { b(I).filter(function (aN) { return (b(this).attr("rel") == aL || b(this).attr("rel") == aH) }).fadeTo(aJ, aK, function () { if (aK == 0) { b(this).hide() } }) } } } function N(aF, aG) { if (aF == 0) { af(0, aG, false) } else { af(1, aG, false) } if (aF == aD) { af(0, aG, true) } else { af(1, aG, true) } } function Q(aG) { aG = parseInt((aG > aD) ? aG = 0 : ((aG < 0) ? aG = aD : aG)) + 1; for (var aF = 0; aF < P.length; aF++) { ar(P[aF], aG) } if (I) { ar(I, aG) } } function ar(aG, aF) { b(aG).filter(".current").removeClass("current").each(function () { if (b.isFunction(y)) { y.call(this, b(this).attr("rel")) } }); b(aG).filter(function () { return b(this).attr("rel") == aF }).addClass("current").each(function (aH) { if (b.isFunction(B)) { B.call(this, aF) } }) } function Y(aG) { var aH = 0; for (var aF = 0; aF <= ap; aF = aF + 1) { if (f[aF] == aG) { aH = aF } } return aH } function S(aG, aH) { if (aG == ap) { aG = 0 } var aI = ah.eq(aG); var aF = aI.height(); if (aF != 0) { ak(aF, aH) } Z(aI, function (aJ) { aF = b(aJ).height(); if (aF != 0) { ak(aF, aH) } }) } function ak(aF, aG) { M.animate({ height: aF }, { queue: false, duration: aG, easing: m }) } function aB() { if (ao > aD) { ao = 0 } if (ao < 0) { ao = aD } if (!E) { Q(ao) } if (c) { ai.css("margin-top", (ao * aA * -1)) } else { ai.css("margin-left", (ao * an * -1)) } ay = true; if (q && av) { window.location.hash = f[ao] } if (!J) { if (b.isFunction(z)) { z.call(ah.eq(ao), ao + 1) } } } function ag(aF, aH) { var aG = ao; switch (aF) { case "next": aG = (aH >= aD) ? (d ? aG + 1 : aD) : aG + 1; break; case "prev": aG = (ao <= 0) ? (d ? aG - 1 : 0) : aG - 1; break; case "first": aG = 0; break; case "last": aG = aD; break; default: aG = parseInt(aF); break } return aG } function aj(aI, aF, aL, aK) { var aH = false; if (parseInt(aI) || aI == 0) { aH = ah.eq(aI) } else { if (aI == "last") { aH = b("li:last", M) } else { aH = b("li:first", M) } } var aG = (J) ? (!t ? parseInt(C * (2 / 5)) : C) : aK; var aJ = aF + 1; if (X(i[aF])) { aH.html(" ").append(b(new Image()).attr("src", i[aF])); Z(aH, function (aN) { var aP = b(aN).children(); var aO = aP.width(); var aM = aP.height(); aP.attr({ oldheight: aM, oldwidth: aO }); if (aO > an) { aP.animate({ width: an, height: (aM / aO) * an }, 0) } if (b.isFunction(x)) { x.call(b(aN), aJ) } if (e && aL) { S(ao, aG) } }) } else { aH.load(i[aF], function (aO, aM, aP) { if (aM == "error" || !b(this).html()) { b(this).html("Sorry but there was an error: " + (aP.status ? aP.status : "no content") + " " + aP.statusText) } if (aM != "error" && b.isFunction(v)) { v.call(b(this), aJ) } var aN = b(this).height(); if (e && aL) { S(aF, aG) } }) } } function V(aJ, aI) { if (aJ != ao && !aE) { if (ay) { K = false; if (aI) { clearTimeout(at) } if (E) { Q(ag(aJ, ad)) } ay = !aI; var aK = (!aI && !H && q) ? C * (k / g) : C; var aM = ag(aJ, ad); if (aM > aD) { aM = 0 } if (aM < 0) { aM = aD } if (G) { N(aM, D) } if (e) { if (i) { if (!i[aM]) { S(aM, C) } } else { S(aM, C) } } var aL = ah.eq(aM); if (b.isFunction(n)) { n.call(aL, aM + 1) } if (t) { var aH = aL.clone().prependTo(M).css({ "z-index": "100000", position: "absolute", "list-style": "none", top: "0", left: "0" }); if (i[aM]) { aj(0, aM, false, aK); if (X(i[aM])) { aj(aM + 1, aM, false, aK); Z(ah.eq(aM + 1), function () { if (e) { S(aM, C) } }) } else { aj(aM + 1, aM, true, aK) } i[aM] = false } aH.hide().fadeIn(C, function () { ay = true; J = true; au(aJ, false, false); b(this).remove(); if (q && aI) { window.location.hash = f[ao] } J = false; if (b.isFunction(z)) { z.call(aL, aM + 1) } }) } else { var aG = parseInt((aK) * (3 / 5)); var aF = aK - aG; M.children().fadeTo(aF, 0.00001, function () { ay = true; J = true; au(aJ, false, false); ay = !aI; M.children().fadeTo(aG, 1, function () { if (q && aI) { window.location.hash = f[ao] } ay = true; J = false; if (b.isFunction(z)) { z.call(aL, aM + 1) } }) }) } } } } function au(aG, aJ, aM) { if (ay && !aE) { K = false; ay = (!aJ && !H) ? true : j.clickableAni; av = aJ; ad = ao; ao = ag(aG, ad); if (E) { Q(ao) } var aL = Math.sqrt(Math.abs(ad - ao)); var aK = parseInt(aL * g); if (!aJ && !H) { aK = parseInt(aL * k) } if (!aM) { aK = 0 } var aI = ao; if (ao > aD) { aI = 0 } if (ao < 0) { aI = aD } if (i) { if (i[aI]) { aj(aI, aI, true, aK); i[aI] = false; K = true } if (!J) { var aF = 0; if (ad > ao) { for (a = ao; a <= ad; a++) { if (a <= aD && a >= 0) { if (i[a]) { aj(a, a, false, aK); i[a] = false; aF++ } } if (aF == 10) { a = ad } } } else { for (a = ad; a <= ao; a++) { if (a <= aD && a >= 0) { if (i[a]) { aj(a, a, false, aK); i[a] = false; aF++ } } if (aF == 10) { a = ao } } } } if ((aI + 1 <= aD) && !ax) { if (i[aI + 1]) { aj(aI + 1, aI + 1, false, 0); i[aI + 1] = false } } if (aI - 1 >= 0 && !ax) { if (i[aI - 1]) { aj(aI - 1, aI - 1, false, 0); i[aI - 1] = false } } } if (!J) { if (b.isFunction(n)) { n.call(ah.eq(aI), aI + 1); if (ao == -1 || ao == ap) { n.call(ai.children("li").eq((ao == -1) ? 0 : -1), aI + 1) } } } if (!c) { if (e && !J && !K) { S(ao, aK) } p = (ao * an * -1); ai.animate({ marginLeft: p }, { queue: false, duration: aK, easing: m, complete: aB }) } else { p = (ao * aA * -1); ai.animate({ marginTop: p }, { queue: false, duration: aK, easing: m, complete: aB }) } if (G) { var aH = D; if (!aJ && !H) { aH = (k / g) * D } if (!aM) { aH = 0 } if (J) { aH = parseInt((C) * (3 / 5)) } N(ao, aH) } if (aJ) { clearTimeout(at) } if (H && aG == "next" && !aJ) { at = aa(A + g) } } } var at; if (H) { at = aa(A) } function aa(aF) { return setTimeout(function () { aq("next", false) }, aF) } if (I) { b(I).live("click", function () { var aF = b(this).attr("rel"); if (aF) { am(aF) } return false }) } M.bind("sudoSliderEvent", function (aG, aF) { am(aF); return false }); function am(aF) { if (aF == "stop") { clearTimeout(at) } else { if (aF == "start") { at = aa(A); H = true } else { if (aF == "block") { ay = false } else { if (aF == "unblock") { ay = true } else { if (aF == "action") { alert("The slider just performed an action") } else { if (aF == "destroy") { ab.remove(); aE = true; b(I).die("click"); if (d) { ai.children("li").eq(0).remove(); ai.children("li").eq(-1).remove() } } else { if (ay) { aq((aF == parseInt(aF)) ? aF - 1 : aF, true) } } } } } } } } ax = false; if (q) { b.address.init(function (aG) { var aF = Y(aG.value); au(aF, false, false) }).change(function (aG) { var aF = Y(aG.value); if (aF != ao) { aq(aF, false) } }) } else { if (F) { au(F - 1, false, false) } else { au(0, false, false) } } }) } } })(jQuery);
