﻿/*
AnythingSlider v1.5.7.3 minified using Google Closure Compiler
By Chris Coyier: http://css-tricks.com
with major improvements by Doug Neiner: http://pixelgraphics.us/
based on work by Remy Sharp: http://jqueryfordesigners.com/
*/

(function(c) { c.anythingSlider = function(g, i) { var a = this; a.$el = c(g).addClass("anythingBase").wrap('<div class="anythingSlider"><div class="anythingWindow" /></div>'); a.$el.data("AnythingSlider", a); a.init = function() { a.options = c.extend({}, c.anythingSlider.defaults, i); c.isFunction(a.options.onBeforeInitialize) && a.$el.bind("before_initialize", a.options.onBeforeInitialize); a.$el.trigger("before_initialize", a); a.$wrapper = a.$el.parent().closest("div.anythingSlider").addClass("anythingSlider-" + a.options.theme); a.$window = a.$el.closest("div.anythingWindow"); a.$controls = c('<div class="anythingControls"></div>').appendTo(a.options.appendControlsTo !== null && c(a.options.appendControlsTo).length ? c(a.options.appendControlsTo) : a.$wrapper); a.win = window; a.$win = c(a.win); a.$nav = c('<ul class="thumbNav" />').appendTo(a.$controls); a.timer = null; a.flag = false; a.playing = false; a.hovered = false; a.panelSize = []; a.currentPage = a.options.startPanel; a.adjustLimit = a.options.infiniteSlides ? 0 : 1; a.options.playRtl && a.$wrapper.addClass("rtl"); a.original = [a.options.autoPlay, a.options.buildNavigation, a.options.buildArrows]; a.updateSlider(); a.$currentPage = a.$items.eq(a.currentPage); a.$lastPage = a.$currentPage; a.runTimes = c("div.anythingSlider").index(a.$wrapper) + 1; a.regex = RegExp("panel" + a.runTimes + "-(\\d+)", "i"); if (!c.isFunction(c.easing[a.options.easing])) a.options.easing = "swing"; a.options.theme !== "default" && !c("link[href*=" + a.options.theme + "]").length && c("body").append('<link rel="stylesheet" href="' + a.options.themeDirectory.replace(/\{themeName\}/g, a.options.theme) + '" type="text/css" />'); a.options.pauseOnHover && a.$wrapper.hover(function() { if (a.playing) { a.$el.trigger("slideshow_paused", a); a.clearTimer(true) } }, function() { if (a.playing) { a.$el.trigger("slideshow_unpaused", a); a.startStop(a.playing, true) } }); var b = a.options.hashTags ? a.gotoHash() || a.options.startPanel : a.options.startPanel; a.setCurrentPage(b, false); a.slideControls(false); a.$wrapper.bind("mouseenter mouseleave", function(e) { a.hovered = e.type === "mouseenter" ? true : false; a.slideControls(a.hovered, false) }); a.options.enableKeyboard && c(document).keyup(function(e) { if (a.$wrapper.is(".activeSlider")) switch (e.which) { case 39: a.goForward(); break; case 37: a.goBack() } }); var d = "slideshow_paused slideshow_unpaused slide_init slide_begin slideshow_stop slideshow_start initialized swf_completed".split(" "); c.each("onShowPause onShowUnpause onSlideInit onSlideBegin onShowStop onShowStart onInitialized onSWFComplete".split(" "), function(e, f) { c.isFunction(a.options[f]) && a.$el.bind(d[e], a.options[f]) }); c.isFunction(a.options.onSlideComplete) && a.$el.bind("slide_complete", function() { setTimeout(function() { a.options.onSlideComplete(a) }, 0) }); a.$el.trigger("initialized", a) }; a.updateSlider = function() { a.$el.find("li.cloned").remove(); a.$nav.empty(); a.$items = a.$el.find("> li"); a.pages = a.$items.length; if (a.options.resizeContents) { a.options.width && a.$wrapper.add(a.$items).css("width", a.options.width); a.options.height && a.$wrapper.add(a.$items).css("height", a.options.height) } if (a.pages === 1) { a.options.autoPlay = false; a.options.buildNavigation = false; a.options.buildArrows = false; a.$controls.hide(); a.$nav.hide(); a.$forward && a.$forward.add(a.$back).hide() } else { a.options.autoPlay = a.original[0]; a.options.buildNavigation = a.original[1]; a.options.buildArrows = a.original[2]; a.$controls.show(); a.$nav.show(); a.$forward && a.$forward.add(a.$back).show() } a.buildNavigation(); if (a.options.autoPlay) { a.playing = !a.options.startStopped; a.buildAutoPlay() } a.options.buildArrows && a.buildNextBackButtons(); a.$el.prepend(a.options.infiniteSlides ? a.$items.filter(":last").clone().addClass("cloned").removeAttr("id") : c('<li class="cloned" />')); a.$el.append(a.options.infiniteSlides ? a.$items.filter(":first").clone().addClass("cloned").removeAttr("id") : c('<li class="cloned" />')); a.$el.find("li.cloned").each(function() { c(this).html(c(this).html().replace(/<a/gi, "<span").replace(/\/a>/gi, "/span>")); c(this).find("[id]").removeAttr("id") }); a.$items = a.$el.find("> li").addClass("panel"); a.setDimensions(); a.options.resizeContents || a.$win.load(function() { a.setDimensions() }); if (a.currentPage > a.pages) { a.currentPage = a.pages; a.setCurrentPage(a.pages, false) } a.$nav.find("a").eq(a.currentPage - 1).addClass("cur"); a.hasEmb = a.$items.find("embed[src*=youtube]").length; a.hasSwfo = typeof swfobject !== "undefined" && swfobject.hasOwnProperty("embedSWF") && c.isFunction(swfobject.embedSWF) ? true : false; a.hasEmb && a.hasSwfo && a.$items.find("embed[src*=youtube]").each(function(b) { var d = c(this).parent()[0].tagName === "OBJECT" ? c(this).parent() : c(this); d.wrap('<div id="ytvideo' + b + '"></div>'); swfobject.embedSWF(c(this).attr("src") + "&enablejsapi=1&version=3&playerapiid=ytvideo" + b, "ytvideo" + b, d.attr("width"), d.attr("height"), "10", null, null, { allowScriptAccess: "always", wmode: a.options.addWmodeToObject, allowfullscreen: true }, { "class": d.attr("class"), style: d.attr("style") }, function() { b >= a.hasEmb - 1 && a.$el.trigger("swf_completed", a) }) }); a.$items.find("a").unbind("focus").bind("focus", function(b) { a.$items.find(".focusedLink").removeClass("focusedLink"); c(this).addClass("focusedLink"); var d = c(this).closest(".panel"); if (!d.is(".activePage")) { a.gotoPage(a.$items.index(d)); b.preventDefault() } }) }; a.buildNavigation = function() { a.options.buildNavigation && a.pages > 1 && a.$items.filter(":not(.cloned)").each(function(b) { var d = b + 1; b = (d === 1 ? "first" : "") + (d === a.pages ? "last" : ""); b = c('<a href="#"></a>').addClass("panel" + d).wrap('<li class="' + b + '" />'); a.$nav.append(b.parent()); if (c.isFunction(a.options.navigationFormatter)) { var e = a.options.navigationFormatter(d, c(this)); b.html(e); parseInt(b.css("text-indent"), 10) < 0 && b.addClass(a.options.tooltipClass).attr("title", e) } else b.text(d); b.bind(a.options.clickControls, function(f) { if (!a.flag && a.options.enableNavigation) { a.flag = true; setTimeout(function() { a.flag = false }, 100); a.gotoPage(d); a.options.hashTags && a.setHash(d) } f.preventDefault() }) }) }; a.buildNextBackButtons = function() { if (!a.$forward) { a.$forward = c('<span class="arrow forward"><a href="#">' + a.options.forwardText + "</a></span>"); a.$back = c('<span class="arrow back"><a href="#">' + a.options.backText + "</a></span>"); a.$back.bind(a.options.clickArrows, function(b) { a.goBack(); b.preventDefault() }); a.$forward.bind(a.options.clickArrows, function(b) { a.goForward(); b.preventDefault() }); a.$back.add(a.$forward).find("a").bind("focusin focusout", function() { c(this).toggleClass("hover") }); a.$wrapper.prepend(a.$forward).prepend(a.$back); a.$arrowWidth = a.$forward.width() } }; a.buildAutoPlay = function() { if (!a.$startStop) { a.$startStop = c("<a href='#' class='start-stop'></a>").html(a.playing ? a.options.stopText : a.options.startText); a.$controls.prepend(a.$startStop); a.$startStop.bind(a.options.clickSlideshow, function(b) { if (a.options.enablePlay) { a.startStop(!a.playing); if (a.playing) a.options.playRtl ? a.goBack(true) : a.goForward(true) } b.preventDefault() }).bind("focusin focusout", function() { c(this).toggleClass("hover") }); a.startStop(a.playing) } }; a.setDimensions = function() { var b, d, e, f, j, h = 0, k = a.$window.width(), l = a.$win.width(); a.$items.each(function(m) { e = c(this).children("*"); if (a.options.resizeContents) { b = parseInt(a.options.width, 10) || k; d = parseInt(a.options.height, 10) || a.$window.height(); c(this).css({ width: b, height: d }); if (e.length === 1) { e.css({ width: "100%", height: "100%" }); e[0].tagName === "OBJECT" && e.find("embed").andSelf().attr({ width: "100%", height: "100%" }) } } else { b = c(this).width(); j = b >= l ? true : false; if (e.length === 1 && j) { f = e.width() >= l ? k : e.width(); c(this).css("width", f); e.css("max-width", f); b = f } b = j ? a.options.width || k : b; c(this).css("width", b); d = c(this).outerHeight(); c(this).css("height", d) } a.panelSize[m] = [b, d, h]; h += b }); a.$el.css("width", h < a.options.maxOverallWidth ? h : a.options.maxOverallWidth) }; a.gotoPage = function(b, d, e) { if (a.pages !== 1) { a.$lastPage = a.$items.eq(a.currentPage); if (typeof b !== "number") { b = a.options.startPage; a.setCurrentPage(a.options.startPage) } if (!(a.hasEmb && a.checkVideo(a.playing))) { if (b > a.pages + 1 - a.adjustLimit) b = !a.options.infiniteSlides && !a.options.stopAtEnd ? 1 : a.pages; if (b < a.adjustLimit) b = !a.options.infiniteSlides && !a.options.stopAtEnd ? a.pages : 1; a.$currentPage = a.$items.eq(b); a.currentPage = b; a.$el.trigger("slide_init", a); a.slideControls(true, false); if (d !== true) d = false; if (!d || a.options.stopAtEnd && b === a.pages) a.startStop(false); a.$el.trigger("slide_begin", a); a.options.resizeContents || a.$wrapper.filter(":not(:animated)").animate({ width: a.panelSize[b][0], height: a.panelSize[b][1] }, { queue: false, duration: a.options.animationTime, easing: a.options.easing }); a.$window.filter(":not(:animated)").animate({ scrollLeft: a.panelSize[b][2] }, { queue: false, duration: a.options.animationTime, easing: a.options.easing, complete: function() { a.endAnimation(b, e) } }) } } }; a.endAnimation = function(b, d) { if (b === 0) { a.$window.scrollLeft(a.panelSize[a.pages][2]); b = a.pages } else if (b > a.pages) { a.$window.scrollLeft(a.panelSize[1][2]); b = 1 } a.setCurrentPage(b, false); a.$items.removeClass("activePage").eq(b).addClass("activePage"); a.hovered || a.slideControls(false); if (a.hasEmb) { var e = a.$currentPage.find("object[id*=ytvideo], embed[id*=ytvideo]"); e.length && c.isFunction(e[0].getPlayerState) && e[0].getPlayerState() > 0 && e[0].getPlayerState() !== 5 && e[0].playVideo() } a.$el.trigger("slide_complete", a); typeof d === "function" && d(a); a.options.autoPlayLocked && !a.playing && setTimeout(function() { a.startStop(true) }, a.options.resumeDelay - a.options.delay) }; a.setCurrentPage = function(b, d) { if (b > a.pages + 1 - a.adjustLimit) b = a.pages - a.adjustLimit; if (b < a.adjustLimit) b = 1; if (a.options.buildNavigation) { a.$nav.find(".cur").removeClass("cur"); a.$nav.find("a").eq(b - 1).addClass("cur") } if (!a.options.infiniteSlides && a.options.stopAtEnd) { a.$wrapper.find("span.forward")[b === a.pages ? "addClass" : "removeClass"]("disabled"); a.$wrapper.find("span.back")[b === 1 ? "addClass" : "removeClass"]("disabled"); b === a.pages && a.playing && a.startStop() } if (!d) { a.$wrapper.css({ width: a.panelSize[b][0], height: a.panelSize[b][1] }); a.$wrapper.scrollLeft(0); a.$window.scrollLeft(a.panelSize[b][2]) } a.currentPage = b; if (!a.$wrapper.is(".activeSlider")) { c(".activeSlider").removeClass("activeSlider"); a.$wrapper.addClass("activeSlider") } }; a.goForward = function(b) { if (b !== true) { b = false; a.startStop(false) } a.gotoPage(a.currentPage + 1, b) }; a.goBack = function(b) { if (b !== true) { b = false; a.startStop(false) } a.gotoPage(a.currentPage - 1, b) }; a.gotoHash = function() { var b = a.win.location.hash.match(a.regex); return b === null ? "" : parseInt(b[1], 10) }; a.setHash = function(b) { var d = "panel" + a.runTimes + "-", e = a.win.location.hash; if (typeof e !== "undefined") a.win.location.hash = e.indexOf(d) > 0 ? e.replace(a.regex, d + b) : e + "&" + d + b }; a.slideControls = function(b) { var d = b ? "slideDown" : "slideUp", e = b ? 0 : a.options.animationTime, f = b ? a.options.animationTime : 0; b = b ? 0 : 1; a.options.toggleControls && a.$controls.stop(true, true).delay(e)[d](a.options.animationTime / 2).delay(f); if (a.options.buildArrows && a.options.toggleArrows) { if (!a.hovered && a.playing) { b = 1; f = 0 } a.$forward.stop(true, true).delay(e).animate({ right: b * a.$arrowWidth, opacity: f }, a.options.animationTime / 2); a.$back.stop(true, true).delay(e).animate({ left: b * a.$arrowWidth, opacity: f }, a.options.animationTime / 2) } }; a.clearTimer = function(b) { if (a.timer) { a.win.clearInterval(a.timer); b || a.$el.trigger("slideshow_stop", a) } }; a.startStop = function(b, d) { if (b !== true) b = false; b && !d && a.$el.trigger("slideshow_start", a); a.playing = b; if (a.options.autoPlay) { a.$startStop.toggleClass("playing", b).html(b ? a.options.stopText : a.options.startText); if (parseInt(a.$startStop.css("text-indent"), 10) < 0) a.$startStop.addClass(a.options.tooltipClass).attr("title", b ? "Stop" : "Start") } if (b) { a.clearTimer(true); a.timer = a.win.setInterval(function() { a.hasEmb && a.checkVideo(b) || (a.options.playRtl ? a.goBack(true) : a.goForward(true)) }, a.options.delay) } else a.clearTimer() }; a.checkVideo = function(b) { var d, e, f = false; a.$items.find("object[id*=ytvideo], embed[id*=ytvideo]").each(function() { d = c(this); if (d.length && c.isFunction(d[0].getPlayerState)) { e = d[0].getPlayerState(); if (b && (e === 1 || e > 2) && a.$items.index(d.closest("li.panel")) === a.currentPage && a.options.resumeOnVideoEnd) f = true; else e > 0 && d[0].pauseVideo() } }); return f }; a.init() }; c.anythingSlider.defaults = { width: null, height: null, resizeContents: true, tooltipClass: "tooltip", theme: "default", themeDirectory: "css/theme-{themeName}.css", startPanel: 1, hashTags: true, infiniteSlides: true, enableKeyboard: true, buildArrows: true, toggleArrows: false, buildNavigation: true, enableNavigation: true, toggleControls: false, appendControlsTo: null, navigationFormatter: null, forwardText: "&raquo;", backText: "&laquo;", enablePlay: true, autoPlay: true, autoPlayLocked: false, startStopped: false, pauseOnHover: true, resumeOnVideoEnd: true, stopAtEnd: false, playRtl: false, startText: "Start", stopText: "Stop", delay: 3E3, resumeDelay: 15E3, animationTime: 600, easing: "swing", clickArrows: "click", clickControls: "click focusin", clickSlideshow: "click", addWmodeToObject: "opaque", maxOverallWidth: 32766 }; c.fn.anythingSlider = function(g, i) { return this.each(function() { var a = c(this).data("AnythingSlider"); if ((typeof g).match("object|undefined")) if (a) a.updateSlider(); else new c.anythingSlider(this, g); else if (/\d/.test(g) && !isNaN(g) && a) { var b = typeof g === "number" ? g : parseInt(c.trim(g), 10); b >= 1 && b <= a.pages && a.gotoPage(b, false, i) } }) } })(jQuery);

