/* jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider Copyright (c) 2009 Niall Doherty This plugin available for use in all personal or commercial projects under both MIT and GPL licenses. */ $(function(){ // Preloader $(".content-banner").children('.panel').hide().end().prepend('

Loading...
loading...

'); }); var sliderCount = 1; $.fn.codaSlider = function(settings) { settings = $.extend({ autoHeight: true, autoHeightEaseDuration: 1000, autoHeightEaseFunction: "easeInOutExpo", autoSlide: false, autoSlideInterval: 7000, autoSlideStopWhenClicked: false, crossLinking: true, dynamicArrows: true, dynamicArrowLeftText: "Previous", dynamicArrowRightText: "Next", dynamicTabs: false, dynamicTabsAlign: "center", dynamicTabsPosition: "top", //externalTriggerSelector: "a.xtrig", firstPanelToLoad: 1, //panelTitleSelector: "h2.title", slideEaseDuration: 1000, slideEaseFunction: "easeInOutExpo" }, settings); return this.each(function(){ // Uncomment the line below to test your preloader // alert("Testing preloader"); var slider = $(this); // If we need arrows if (settings.dynamicArrows) { //slider.parent().addClass("arrows"); slider.find(".content-banner").before('' + settings.dynamicArrowLeftText + ''); slider.find(".content-banner").after('' + settings.dynamicArrowRightText + ''); }; var panelWidth = slider.find(".panel").width(); var panelCount = slider.find(".panel").size(); var panelContainerWidth = panelWidth*panelCount; var navClicks = 0; // Used if autoSlideStopWhenClicked = true // Surround the collection of panel divs with a container div (wide enough for all panels to be lined up end-to-end) $('.panel', slider).wrapAll('
'); // Specify the width of the container div (wide enough for all panels to be lined up end-to-end) $(".panel-container", slider).css({ width: panelContainerWidth }); // Specify the current panel. // If the loaded URL has a hash (cross-linking), we're going to use that hash to give the slider a specific starting position... if (settings.crossLinking && location.hash && parseInt(location.hash.slice(1)) <= panelCount) { var currentPanel = parseInt(location.hash.slice(1)); var offset = - (panelWidth*(currentPanel - 1)); $('.panel-container', slider).css({ marginLeft: offset }); // If that's not the case, check to see if we're supposed to load a panel other than Panel 1 initially... } else if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) { var currentPanel = settings.firstPanelToLoad; var offset = - (panelWidth*(currentPanel - 1)); $('.panel-container', slider).css({ marginLeft: offset }); // Otherwise, we'll just set the current panel to 1... } else { var currentPanel = 1; }; // Left arrow click $("#arrow-nav-left" + sliderCount).click(function(){ navClicks++; if (currentPanel == 1) { offset = - (panelWidth*(panelCount - 1)); alterPanelHeight(panelCount - 1); currentPanel = panelCount; //slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('li:last a').addClass('current'); } else { currentPanel -= 1; alterPanelHeight(currentPanel - 1); offset = - (panelWidth*(currentPanel - 1)); //slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().prev().find('a').addClass('current'); }; $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction); if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking) return false; }); // Right arrow click $('#arrow-nav-right' + sliderCount).click(function(){ navClicks++; if (currentPanel == panelCount) { offset = 0; currentPanel = 1; alterPanelHeight(0); //slider.siblings('.coda-nav').find('a.current').removeClass('current').parents('ul').find('a:eq(0)').addClass('current'); } else { offset = - (panelWidth*currentPanel); alterPanelHeight(currentPanel); currentPanel += 1; //slider.siblings('.coda-nav').find('a.current').removeClass('current').parent().next().find('a').addClass('current'); }; $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction); if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking) return false; }); // Set the height of the first panel if (settings.autoHeight) { panelHeight = $('.panel:eq(' + (currentPanel - 1) + ')', slider).height(); slider.css({ height: panelHeight }); }; // Trigger autoSlide if (settings.autoSlide) { slider.ready(function() { setTimeout(autoSlide,settings.autoSlideInterval); }); }; function alterPanelHeight(x) { if (settings.autoHeight) { panelHeight = $('.panel:eq(' + x + ')', slider).height() slider.animate({ height: panelHeight }, settings.autoHeightEaseDuration, settings.autoHeightEaseFunction); }; }; function autoSlide() { if (navClicks == 0 || !settings.autoSlideStopWhenClicked) { if (currentPanel == panelCount) { var offset = 0; currentPanel = 1; } else { var offset = - (panelWidth*currentPanel); currentPanel += 1; }; alterPanelHeight(currentPanel - 1); // Switch the current tab: //slider.siblings('.coda-nav').find('a').removeClass('current').parents('ul').find('li:eq(' + (currentPanel - 1) + ') a').addClass('current'); // Slide: $('.panel-container', slider).animate({ marginLeft: offset }, settings.slideEaseDuration, settings.slideEaseFunction); setTimeout(autoSlide,settings.autoSlideInterval); }; }; // Kill the preloader $('.panel', slider).show().end().find("p.loading").remove(); slider.removeClass("preload"); sliderCount++; }); };