$(function() { $("body").removeClass("coda-slider-no-js") }); var sliderCount = 1; $.fn.codaSlider = function(j) { j = $.extend({ autoHeight: true, autoHeightEaseDuration: 1000, autoHeightEaseFunction: "easeInOutExpo", autoSlide: false, autoSlideInterval: 7000, autoSlideStopWhenClicked: true, crossLinking: true, dynamicArrows: true, dynamicArrowLeftText: "&#171; left", dynamicArrowRightText: "right &#187;", dynamicTabs: true, dynamicTabsAlign: "center", dynamicTabsPosition: "top", externalTriggerSelector: "a.xtrig", firstPanelToLoad: 1, panelTitleSelector: "h2.title", slideEaseDuration: 500, slideEaseFunction: "easeInOutExpo" }, j); return this.each(function() { var b = $(this); if (j.dynamicArrows) { b.parent().addClass("arrows"); b.before('<div class="coda-nav-left" id="coda-nav-left-' + sliderCount + '"><a href="#">' + j.dynamicArrowLeftText + '</a></div>'); b.after('<div class="coda-nav-right" id="coda-nav-right-' + sliderCount + '"><a href="#">' + j.dynamicArrowRightText + '</a></div>') }; var c = b.find(".panel").width(); var d = b.find(".panel").size(); var e = c * d; var f = 0; $('.panel', b).wrapAll('<div class="panel-container"></div>'); $(".panel-container", b).css({ width: e }); if (j.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= d) { var g = parseInt(location.hash.slice(1)); var h = -(c * (g - 1)); $('.panel-container', b).css({ marginLeft: h }) } else if (j.firstPanelToLoad != 1 && j.firstPanelToLoad <= d) { var g = j.firstPanelToLoad; var h = -(c * (g - 1)); $('.panel-container', b).css({ marginLeft: h }) } else { var g = 1 }; $("#coda-nav-left-" + sliderCount + " a").click(function() { f++; if (g == 1) { h = -(c * (d - 1)); alterPanelHeight(d - 1); g = d; b.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('li:last a').addClass('current') } else { g -= 1; alterPanelHeight(g - 1); h = -(c * (g - 1)); b.siblings('.coda-nav').find('a.current').removeClass('current').parent().prev().find('a').addClass('current') }; $('.panel-container', b).animate({ marginLeft: h }, j.slideEaseDuration, j.slideEaseFunction); if (j.crossLinking) { location.hash = g }; return false }); $('#coda-nav-right-' + sliderCount + ' a').click(function() { f++; if (g == d) { h = 0; g = 1; alterPanelHeight(0); b.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current') } else { h = -(c * g); alterPanelHeight(g); g += 1; b.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current') }; $('.panel-container', b).animate({ marginLeft: h }, j.slideEaseDuration, j.slideEaseFunction); if (j.crossLinking) { location.hash = g }; return false }); if (j.dynamicTabs) { var i = '<div class="coda-nav" id="coda-nav-' + sliderCount + '"><ul></ul></div>'; switch (j.dynamicTabsPosition) { case "bottom": b.parent().append(i); break; default: b.parent().prepend(i); break }; ul = $('#coda-nav-' + sliderCount + ' ul'); $('.panel', b).each(function(n) { ul.append('<li class="tab' + (n + 1) + '"><a href="#' + (n + 1) + '">' + $(this).find(j.panelTitleSelector).text() + '</a></li>') }); navContainerWidth = b.width() + b.siblings('.coda-nav-left').width() + b.siblings('.coda-nav-right').width(); ul.parent().css({ width: navContainerWidth }); switch (j.dynamicTabsAlign) { case "center": ul.css({ width: ($("li", ul).width() + 2) * d }); break; case "right": ul.css({ float: 'right' }); break } }; $('#coda-nav-' + sliderCount + ' a').each(function(z) { $(this).bind("click", function() { f++; $(this).addClass('current').parents('ul').find('a').not($(this)).removeClass('current'); h = -(c * z); alterPanelHeight(z); g = z + 1; $('.panel-container', b).animate({ marginLeft: h }, j.slideEaseDuration, j.slideEaseFunction); if (!j.crossLinking) { return false } }) }); $(j.externalTriggerSelector).each(function() { if (sliderCount == parseInt($(this).attr("rel").slice(12))) { $(this).bind("click", function() { f++; targetPanel = parseInt($(this).attr("href").slice(1)); h = -(c * (targetPanel - 1)); alterPanelHeight(targetPanel - 1); g = targetPanel; b.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (targetPanel - 1) + ') a').addClass('current'); $('.panel-container', b).animate({ marginLeft: h }, j.slideEaseDuration, j.slideEaseFunction); if (!j.crossLinking) { return false } }) } }); if (j.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= d) { $("#coda-nav-" + sliderCount + " a:eq(" + (location.hash.slice(1) - 1) + ")").addClass("current") } else if (j.firstPanelToLoad != 1 && j.firstPanelToLoad <= d) { $("#coda-nav-" + sliderCount + " a:eq(" + (j.firstPanelToLoad - 1) + ")").addClass("current") } else { $("#coda-nav-" + sliderCount + " a:eq(0)").addClass("current") }; if (j.autoHeight) { panelHeight = $('.panel:eq(' + (g - 1) + ')', b).height(); b.css({ height: panelHeight }) }; if (j.autoSlide) { b.ready(function() { setTimeout(autoSlide, j.autoSlideInterval) }) }; function alterPanelHeight(x) { if (j.autoHeight) { panelHeight = $('.panel:eq(' + x + ')', b).height(); b.animate({ height: panelHeight }, j.autoHeightEaseDuration, j.autoHeightEaseFunction) } }; function autoSlide() { if (f == 0 || !j.autoSlideStopWhenClicked) { if (g == d) { var a = 0; g = 1 } else { var a = -(c * g); g += 1 }; alterPanelHeight(g - 1); b.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (g - 1) + ') a').addClass('current'); $('.panel-container', b).animate({ marginLeft: a }, j.slideEaseDuration, j.slideEaseFunction); setTimeout(autoSlide, j.autoSlideInterval) } }; $('.panel', b).show().end().find("p.loading").remove(); b.removeClass("preload"); sliderCount++ }) };
