(function (a) { var b = new Array; var c = new Array; var d = new Array; var e = new Array; var f = new Array; var g = new Array; var h = new Array; var l = new Array; var m = new Array; var n = new Array; var o = new Array; var p = new Array; a.fn.coinslider = a.fn.CoinSlider = function (q) { init = function (h) { c[h.id] = new Array; d[h.id] = new Array; e[h.id] = new Array; f[h.id] = new Array; g[h.id] = new Array; l[h.id] = 0; n[h.id] = 0; o[h.id] = 1; p[h.id] = new Array; b[h.id] = a.extend({}, a.fn.coinslider.defaults, q); a.each(a("#" + h.id + " img"), function (b, c) { d[h.id][b] = a(c).attr("src"); e[h.id][b] = a(c).parent().is("a") ? a(c).parent().attr("href") : ""; p[h.id][b] = a(c).parent().is("a") ? a(c).parent().attr("onclick") : ""; f[h.id][b] = a(c).parent().is("a") ? a(c).parent().attr("target") : ""; g[h.id][b] = a(c).next().is("span") ? a(c).next().html() : ""; a(c).hide(); a(c).next().hide() }); a(h).css({ "background-image": "url(" + d[h.id][0] + ")", width: b[h.id].width, height: b[h.id].height, position: "relative", "background-position": "top left" }).wrap("<div class='coin-slider' id='coin-slider-" + h.id + "' />"); a("#" + h.id).append("<div class='cs-title' id='cs-title-" + h.id + "' style='position: absolute; bottom:0; left: 0; z-index: 1000;'></div>"); a.setFields(h); if (b[h.id].navigation) a.setNavigation(h); a.transition(h, 0); a.transitionCall(h) }; a.setFields = function (d) { tWidth = sWidth = parseInt(b[d.id].width / b[d.id].spw); tHeight = sHeight = parseInt(b[d.id].height / b[d.id].sph); counter = sLeft = sTop = 0; tgapx = gapx = b[d.id].width - b[d.id].spw * sWidth; tgapy = gapy = b[d.id].height - b[d.id].sph * sHeight; for (i = 1; i <= b[d.id].sph; i++) { gapx = tgapx; if (gapy > 0) { gapy--; sHeight = tHeight + 1 } else { sHeight = tHeight } for (j = 1; j <= b[d.id].spw; j++) { if (gapx > 0) { gapx--; sWidth = tWidth + 1 } else { sWidth = tWidth } c[d.id][counter] = i + "" + j; counter++; if (b[d.id].links) a("#" + d.id).append("<a href='" + e[d.id][0] + "' class='cs-" + d.id + "' id='cs-" + d.id + i + j + "' style='width:" + sWidth + "px; height:" + sHeight + "px; float: left; position: absolute;'></a>"); else a("#" + d.id).append("<div class='cs-" + d.id + "' id='cs-" + d.id + i + j + "' style='width:" + sWidth + "px; height:" + sHeight + "px; float: left; position: absolute;'></div>"); a("#cs-" + d.id + i + j).css({ "background-position": -sLeft + "px " + (-sTop + "px"), left: sLeft, top: sTop }); sLeft += sWidth } sTop += sHeight; sLeft = 0 } a(".cs-" + d.id).mouseover(function () { a("#cs-navigation-" + d.id).show() }); a(".cs-" + d.id).mouseout(function () { a("#cs-navigation-" + d.id).hide() }); a("#cs-title-" + d.id).mouseover(function () { a("#cs-navigation-" + d.id).show() }); a("#cs-title-" + d.id).mouseout(function () { a("#cs-navigation-" + d.id).hide() }); if (b[d.id].hoverPause) { a(".cs-" + d.id).mouseover(function () { b[d.id].pause = true }); a(".cs-" + d.id).mouseout(function () { b[d.id].pause = false }); a("#cs-title-" + d.id).mouseover(function () { b[d.id].pause = true }); a("#cs-title-" + d.id).mouseout(function () { b[d.id].pause = false }) } }; a.transitionCall = function (c) { clearInterval(h[c.id]); delay = b[c.id].delay + b[c.id].spw * b[c.id].sph * b[c.id].sDelay; h[c.id] = setInterval(function () { a.transition(c) }, delay) }; a.transition = function (e, f) { if (b[e.id].pause == true) return; a.effect(e); n[e.id] = 0; m[e.id] = setInterval(function () { a.appereance(e, c[e.id][n[e.id]]) }, b[e.id].sDelay); a(e).css({ "background-image": "url(" + d[e.id][l[e.id]] + ")" }); if (typeof f == "undefined") l[e.id]++; else if (f == "prev") l[e.id]--; else l[e.id] = f; if (l[e.id] == d[e.id].length) { l[e.id] = 0 } if (l[e.id] == -1) { l[e.id] = d[e.id].length - 1 } a(".cs-button-" + e.id).removeClass("cs-active"); a("#cs-button-" + e.id + "-" + (l[e.id] + 1)).addClass("cs-active"); if (g[e.id][l[e.id]]) { a("#cs-title-" + e.id).css({ opacity: 0 }).animate({ opacity: b[e.id].opacity }, b[e.id].titleSpeed); a("#cs-title-" + e.id).html(g[e.id][l[e.id]]) } else { a("#cs-title-" + e.id).css("opacity", 0) } }; a.appereance = function (c, g) { a(".cs-" + c.id).attr("href", e[c.id][l[c.id]]).attr("target", f[c.id][l[c.id]]); if (p[c.id][l[c.id]] != undefined) a(".cs-" + c.id).attr("onclick", p[c.id][l[c.id]]); else a(".cs-" + c.id).removeAttr("onclick"); if (n[c.id] == b[c.id].spw * b[c.id].sph) { clearInterval(m[c.id]); return } a("#cs-" + c.id + g).css({ opacity: 0, "background-image": "url(" + d[c.id][l[c.id]] + ")" }); a("#cs-" + c.id + g).animate({ opacity: 1 }, 300); n[c.id]++ }; a.setNavigation = function (c) { a(c).append("<div id='cs-navigation-" + c.id + "'></div>"); a("#cs-navigation-" + c.id).hide(); a("#cs-navigation-" + c.id).append("<a href='#' id='cs-prev-" + c.id + "' class='cs-prev'>prev</a>"); a("#cs-navigation-" + c.id).append("<a href='#' id='cs-next-" + c.id + "' class='cs-next'>next</a>"); a("#cs-prev-" + c.id).css({ position: "absolute", top: b[c.id].height / 2 - 15, left: 0, "z-index": 1001, "line-height": "30px", opacity: b[c.id].opacity }).click(function (b) { b.preventDefault(); a.transition(c, "prev"); a.transitionCall(c) }).mouseover(function () { a("#cs-navigation-" + c.id).show() }); a("#cs-next-" + c.id).css({ position: "absolute", top: b[c.id].height / 2 - 15, right: 0, "z-index": 1001, "line-height": "30px", opacity: b[c.id].opacity }).click(function (b) { b.preventDefault(); a.transition(c); a.transitionCall(c) }).mouseover(function () { a("#cs-navigation-" + c.id).show() }); a("<div id='cs-buttons-" + c.id + "' class='cs-buttons'></div>").appendTo(a("#coin-slider-" + c.id)); for (k = 1; k < d[c.id].length + 1; k++) { a("#cs-buttons-" + c.id).append("<a href='#' class='cs-button-" + c.id + "' id='cs-button-" + c.id + "-" + k + "'>" + k + "</a>") } a.each(a(".cs-button-" + c.id), function (b, d) { a(d).click(function (d) { a(".cs-button-" + c.id).removeClass("cs-active"); a(this).addClass("cs-active"); d.preventDefault(); a.transition(c, b); a.transitionCall(c) }) }); a("#cs-navigation-" + c.id + " a").mouseout(function () { a("#cs-navigation-" + c.id).hide(); b[c.id].pause = false }); a("#cs-buttons-" + c.id).css({ left: "50%", "margin-left": -d[c.id].length * 15 / 2 - 5, position: "relative" }) }; a.effect = function (d) { effA = ["random", "swirl", "rain", "straight"]; if (b[d.id].effect == "") eff = effA[Math.floor(Math.random() * effA.length)]; else eff = b[d.id].effect; c[d.id] = new Array; if (eff == "random") { counter = 0; for (i = 1; i <= b[d.id].sph; i++) { for (j = 1; j <= b[d.id].spw; j++) { c[d.id][counter] = i + "" + j; counter++ } } a.random(c[d.id]) } if (eff == "rain") { a.rain(d) } if (eff == "swirl") a.swirl(d); if (eff == "straight") a.straight(d); o[d.id] *= -1; if (o[d.id] > 0) { c[d.id].reverse() } }; a.random = function (a) { var b = a.length; if (b == 0) return false; while (--b) { var c = Math.floor(Math.random() * (b + 1)); var d = a[b]; var e = a[c]; a[b] = e; a[c] = d } }; a.swirl = function (d) { var e = b[d.id].sph; var f = b[d.id].spw; var g = 1; var h = 1; var j = 0; var k = 0; var l = 0; var m = true; while (m) { k = j == 0 || j == 2 ? f : e; for (i = 1; i <= k; i++) { c[d.id][l] = g + "" + h; l++; if (i != k) { switch (j) { case 0: h++; break; case 1: g++; break; case 2: h--; break; case 3: g--; break } } } j = (j + 1) % 4; switch (j) { case 0: f--; h++; break; case 1: e--; g++; break; case 2: f--; h--; break; case 3: e--; g--; break } check = a.max(e, f) - a.min(e, f); if (f <= check && e <= check) m = false } }; a.rain = function (a) { var d = b[a.id].sph; var e = b[a.id].spw; var f = 0; var g = to2 = from = 1; var h = true; while (h) { for (i = from; i <= g; i++) { c[a.id][f] = i + "" + parseInt(to2 - i + 1); f++ } to2++; if (g < d && to2 < e && d < e) { g++ } if (g < d && d >= e) { g++ } if (to2 > e) { from++ } if (from > g) h = false } }; a.straight = function (a) { counter = 0; for (i = 1; i <= b[a.id].sph; i++) { for (j = 1; j <= b[a.id].spw; j++) { c[a.id][counter] = i + "" + j; counter++ } } }; a.min = function (a, b) { if (a > b) return b; else return a }; a.max = function (a, b) { if (a < b) return b; else return a }; this.each(function () { init(this) }) }; a.fn.coinslider.defaults = { width: 565, height: 290, spw: 7, sph: 5, delay: 3e3, sDelay: 30, opacity: .7, titleSpeed: 500, effect: "", navigation: true, links: true, hoverPause: true} })(jQuery)
