$slideshow = {    context: false,    tabs: false,    timeout: 4000,      // time before next slide appears (in ms)    slideSpeed: 1000,   // time it takes to slide in each slide (in ms)    tabSpeed: 300,      // time it takes to slide in each slide (in ms) when clicking through tabs    fx: 'scrollLeft',   // the slide effect to use        init: function() {        // set the context to help speed up selectors/improve performance        this.context = $('#slideshow');                // set tabs to current hard coded navigation items        this.tabs = $('ul.slides-nav li', this.context);                // remove hard coded navigation items from DOM         // because they aren't hooked up to jQuery cycle        this.tabs.remove();                // prepare slideshow and jQuery cycle tabs        this.prepareSlideshow();    },        prepareSlideshow: function() {        // initialise the jquery cycle plugin -        // for information on the options set below go to:         // http://malsup.com/jquery/cycle/options.html        $('div.slides > ul', $slideshow.context).cycle({            fx: $slideshow.fx,            timeout: $slideshow.timeout,            speed: $slideshow.slideSpeed,            fastOnEvent: $slideshow.tabSpeed,            pager: $('ul.slides-nav', $slideshow.context),            pagerAnchorBuilder: $slideshow.prepareTabs,            before: $slideshow.activateTab,            pauseOnPagerHover: true,            pause: true        });                },        prepareTabs: function(i, slide) {        // return markup from hardcoded tabs for use as jQuery cycle tabs        // (attaches necessary jQuery cycle events to tabs)        return $slideshow.tabs.eq(i);    },    activateTab: function(currentSlide, nextSlide) {        // get the active tab        var activeTab = $('a[href="#' + nextSlide.id + '"]', $slideshow.context);                // if there is an active tab        if(activeTab.length) {            // remove active styling from all other tabs            $slideshow.tabs.removeClass('on');                        // add active styling to active button            activeTab.parent().addClass('on');        }                }            };$(function() {    // add a 'js' class to the body    $('body').addClass('js');        // initialise the slideshow when the DOM is ready    $slideshow.init();});  
