PageSourceSearch

https://www.venomgt.com/wp-content/plugins/slider-wd/js/jquery.featureCarouselslider.js?ver=2.1.58

js venomgt.com collected 2026-10-02 18:05:00 UTC 27,973 bytes, 624 lines download raw bytes

1(function($){
2  $.fn.featureCarouselslider = function (options) {
3    // Adds support for multiple carousels on one page.
4    if (this.length > 1) {
5      this.each(function() {
6        $(this).featureCarouselslider(options);
7      });
8      return this;
9    }
10
11    // override the default options with user defined options
12    options = $.extend({}, $.fn.featureCarouselslider.defaults, options || {});
13
14    /* These are univeral values that are used throughout the plugin. Do not modify them
15     * unless you know what you're doing. Most of them feed off the options
16     * so most customization can be achieved by modifying the options values 
17    */
18    var pluginData = {      
19     
20      containerWidth:       0,
21      containerHeight:      0,
22      largeFeatureWidth:    0,
23      largeFeatureHeight:   0,
24      smallFeatureHeight:   0,
25      smallFeatureWidth:    0,       
26      totalFeatureCount:    $(this).children().first().children().first().children("span").length,
27      featuresContainer:    $(this),
28      featuresArray:        [],
29      containerIDTag:       "." + $(this).attr("id"),
30      timeoutVar:           null,
31      rotationsRemaining:   0,
32      itemsToAnimate:       0,
33      borderWidth:		      0,     
34      autoTime:             0   
35    };
36
37    /**
38     * Function to preload the images in the carousel if desired.
39     * This is not recommended if there are a lot of images in the carousel because
40     * it may take a while. Functionality does not depend on preloading the images 
41     */ 
42    var preload = function(callback) {
43      callback(); 
44    }
45 
46    // Gets the feature container based on the number
47    var getContainer = function(featureNum) {
48      return pluginData.featuresArray[featureNum-1];
49    }
50
51    // get previous feature number
52    var getPreviousNum = function(num) {
53      if ((num - 1) == 0) {
54        return pluginData.totalFeatureCount;
55      } else {
56        return num - 1;
57      }
58    }
59
60    // get next feature number
61    var getNextNum = function(num) {
62      if ((num + 1) > pluginData.totalFeatureCount) {
63        return 1;
64      } else {
65        return num + 1;
66      }
67    }
68
69    /**
70     * Because there are several options the user can set for the width and height
71     * of the feature images, this function is used to determine which options were set
72     * and to set the appropriate dimensions used for a small and large feature	
73     */
74    var setupFeatureDimensions = function() {
75      // Set the height and width of the entire carousel container
76      options.containerWidth = pluginData.featuresContainer.width();
77      options.containerHeight = pluginData.featuresContainer.height();
78    
79      // Grab the first image for reference
80      var $firstFeatureImage = $(pluginData.containerIDTag).find(".wds_slider_car_image" + options.wds_number + ":first");
81 
82      // Large Feature Width
83      if (options.largeFeatureWidth > 1) {
84        pluginData.largeFeatureWidth = options.largeFeatureWidth;
85      }
86	    else if (options.largeFeatureWidth > 0 && options.largeFeatureWidth < 1) {
87        pluginData.largeFeatureWidth = $firstFeatureImage.width() * options.largeFeatureWidth;
88      }
89      else {
90        pluginData.largeFeatureWidth = $firstFeatureImage.outerWidth();
91      }
92      // Large Feature Height
93      if (options.largeFeatureHeight > 1) {
94        pluginData.largeFeatureHeight = options.largeFeatureHeight;
95      }
96      else if (options.largeFeatureHeight > 0 && options.largeFeatureHeight < 1) {
97        pluginData.largeFeatureHeight = $firstFeatureImage.height() * options.largeFeatureHeight;
98      }
99      else {
100        pluginData.largeFeatureHeight = $firstFeatureImage.outerHeight();
101      }
102    }
103
104    /**
105     * Function to take care of setting up various aspects of the carousel,
106     * most importantly the default positions for the features	
107     */
108    var setupCarousel = function() {
109      // Set the total feature count to the amount the user wanted to cutoff
110      if (options.displayCutoff > 0 && options.displayCutoff < pluginData.totalFeatureCount) {
111        pluginData.totalFeatureCount = options.displayCutoff;
112      }
113
114      // Fill in the features array .
115      pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).each(function (index) {
116        if (index < pluginData.totalFeatureCount) {
117          pluginData.featuresArray[index] = $(this);
118        }
119      });
120 
121      // Determine the total border width around the feature if there is one.
122      if (pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).first().css("borderLeftWidth") != "medium") {
123        pluginData.borderWidth = parseInt(pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).first().css("borderLeftWidth"))*2;
124      }
125      // Place all the features in a center hidden position to start off.
126      if (options.imagecount != 1) {
127        pluginData.featuresContainer
128        .find(".wds_slider_car_image" + options.wds_number).each(function () {
129          // Center all the features in the middle and hide them.
130          jQuery(this).css({
131            'left': (options.containerWidth / 2) - (options.largeFeatureWidth * options.smallFeaturePar / 2) - (pluginData.borderWidth / 2) - options.parf,
132            'width': options.largeFeatureWidth * options.smallFeaturePar * options.parametr / 100,
133            'height': options.largeFeatureHeight * options.smallFeaturePar * options.parametr / 100,
134            'top': options.smallFeatureOffset + options.topPadding + options.parf,
135            'opacity': 0,
136            'filter': 'Alpha(opacity=0)'
137          });
138        });
139      } 
140      else {
141        pluginData.featuresContainer
142        .find(".wds_slider_car_image" + options.wds_number).each(function () {
143          // Center all the features in the middle and hide them.
144          jQuery(this).css({
145            'left': 0,
146            'width': options.largeFeatureWidth * options.smallFeaturePar,
147            'height': options.largeFeatureHeight * options.smallFeaturePar,
148            'top': 0,
149            'opacity': 0,
150            'filter': 'Alpha(opacity=0)'
151          });
152        });
153      }        
154      // Set position to relative of captions if displaying below image.
155      if (options.captionBelow) {
156        pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).css('position','absolute');
157      }
158
159      // Figure out number of items that will rotate each time.
160      if (pluginData.totalFeatureCount < options.imagecount) {
161        pluginData.itemsToAnimate = pluginData.totalFeatureCount;  
162      }  else {
163        pluginData.itemsToAnimate = options.imagecount + 2 ;
164      }       
165    }
166
167    /**
168     * Here all the position data is set for the features.
169     * This is an important part of the carousel to keep track of where
170     * each feature within the carousel is	 
171     */
172    var setupFeaturePositions = function() {
173      // give all features a set number that won't change so they remember their
174      // original order 
175      $.each(pluginData.featuresArray, function (i) {
176        $(this).data('setPosition', i + 1);
177      });
178
179      // Go back one - This is done because we call the move function right away, which
180      // shifts everything to the right. So we set the current center back one, so that
181      // it displays in the center when that happens
182      var oneBeforeStarting = getPreviousNum(window["wds_currentCenterNum" +options.wds_number]);
183
184      window["wds_currentCenterNum" +options.wds_number] = oneBeforeStarting;
185
186      // Center feature will be position 1
187      var $centerFeature = getContainer(oneBeforeStarting);
188      $centerFeature.data('position', 1);
189
190      // Everything before that center feature...
191      var $prevFeatures = $centerFeature.prevAll();
192      $prevFeatures.each(function (i) {
193        $(this).data('position', (pluginData.totalFeatureCount - i
193));
194      });
195        
196      // And everything after that center feature...
197      var $nextFeatures = $centerFeature.nextAll();
198      $nextFeatures.each(function (i) {
199        if ($(this).data('setPosition') != undefined) {
200          $(this).data('position',(i + 2));
201        }
202      });
203    }
204
205    /**
206     * This function will set the autoplay for the carousel to
207     * automatically rotate it given the time in the options
208     * pass in TRUE to just clear the timer
209     */
210    var setTimer = function(stop) {
211      return;
212      /*// clear the timeout var if it exists
213      clearTimeout(pluginData.timeoutVar);
214
215      // set interval for moving if autoplay is set
216      if (!stop && options.autoPlay != 0) {
217        var autoTime = (Math.abs(options.autoPlay) < options.carouselSpeed) ? options.carouselSpeed : Math.abs(options.autoPlay);
218        pluginData.timeoutVar = setTimeout(function () {
219          (options.autoPlay > 0) ? initiateMove(true,1) : initiateMove(false,1);
220        }, autoTime);
221      }*/
222    }
223 
224    // This is a helper function for the animateFeature function that
225    // will update the positions of all the features based on the direction
226    var rotatePositions = function(direction) {
227      $.each(pluginData.featuresArray, function () {
228        var newPos;
229        if (direction == false) {
230          newPos = getNextNum($(this).data().position);
231        } else {
232          newPos = getPreviousNum($(this).data().position);
233        }
234
235        $(this).data('position',newPos);
236      });
237    }
238
239    /* Animate the given feature to the given location. Valid locations are "left", "right", "center", "hidden".*/
240    var animateFeature = function($feature, direction, onload) {
241      if (typeof onload == "undefined") {
242        var onload = 0;
243      }
244      $feature.find(".wds_slideshow_image_" + options.wds_number).children().each(function() {
245        jQuery(this).hide();
246      });
247      $feature.find(".wds_video_hide" + options.wds_number).each(function() {
248        jQuery(this).show();
249      });
250      var new_width, new_height, new_top, new_left, new_zindex, new_padding, new_fade, new_fade1, new_left1;
251      // Determine the old and new positions of the feature.
252      var oldPosition = $feature.data('position');
253      var newPosition;
254      if (direction == true) {
255        newPosition = getPreviousNum(oldPosition);
256      }
257      else {
258        newPosition = getNextNum(oldPosition);
259      }
260      // Callback for moving out of center pos.
261      if (oldPosition == 1) {
262        options.leavingCenter($feature);
263      }
264      var multiplier = Math.cos(options.carousel_degree / 180* Math.PI);
265      // Caculate new new css values depending on where the feature will be located center.
266      if (newPosition == 1) {
267        new_width = pluginData.largeFeatureWidth;        
268        new_height = pluginData.largeFeatureHeight;
269        new_top =(options.containerHeight / 2 - new_height / 2 );
270        new_zindex = $feature.css("z-index");
271        new_left = (options.containerWidth / 2) - (pluginData.largeFeatureWidth / 2) - (pluginData.borderWidth / 2);
272        new_fade = 1.0;
273        new_fade1 = 100;
274        new_f = "translateZ(0px) rotateY(0deg)";
275        new_gray = "grayscale(0%)";
276        $feature.find(".wds_slideshow_image_" + options.wds_number).children().each(function() {
277          jQuery(this).show();
278        });
279        $feature.find(".wds_video_hide" + options.wds_number).each(function() {
280          jQuery(this).hide();
281        });
282      }
283      else {
284        // Left.
285        if (newPosition <= pluginData.totalFeatureCount && newPosition > pluginData.totalFeatureCount - options.imagecount / 2 + 1) {
286          new_width = (pluginData.largeFeatureWidth * Math.pow(options.smallFeaturePar, pluginData.totalFeatureCount - newPosition + 1));      
287          new_height = (pluginData.largeFeatureHeight * Math.pow(options.smallFeaturePar, pluginData.totalFeatureCount - newPosition + 1));
288          new_top = (options.containerHeight/ 2  - new_height / 2 ) ;         
289          new_fade = 1 - options.carousel_transparency / 100;        
290          new_fade1 = 100; 
291          new_f = "translateX("+ (-1) * options.parametr * Math.abs(options.carousel_degree)  / multiplier +"px) translateZ("+ (-1) *options.parametr / multiplier * 2 * Math.abs(options.carousel_degree) + "px) rotateY("+ options.carousel_degree +"deg)";
292          new_gray = "grayscale("+ options.carousel_grayscale +"%)";
293          if(options.fit_containerWidth == false && options.smallFeaturePar < 1){
294            new_left = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2)-(pluginData.largeFeatureWidth * (1 - options.smallFeaturePar) * options.smallFeaturePar * (pluginData.totalFeatureCount - newPosition + 1));             
295          } else if(options.fit_containerWidth == false && options.smallFeaturePar == 1){
296            new_left = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2)-(pluginData.largeFeatureWidth * ( options.smallFeaturePar) * options.smallFeaturePar * (pluginData.totalFeatureCount - newPosition + 1));             
297          } else {
298              new_left1 = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2) / (options.imagecount / 2 - 0.5);
299              new_left =  ((options.containerWidth / 2) - (pluginData.largeFeatureWidth / 2) - (pluginData.borderWidth / 2)) - (new_left1 * (pluginData.totalFeatureCount - newPosition+1  ));             
300          }                        
301        }
302        // Right.
303        else if (newPosition >
303= 2 && newPosition <= options.imagecount / 2 + 1) {
304          new_width = (pluginData.largeFeatureWidth * Math.pow(options.smallFeaturePar,newPosition - 1));
305          new_height =( pluginData.largeFeatureHeight * Math.pow(options.smallFeaturePar, newPosition - 1));
306          new_top = ( options.containerHeight / 2 - new_height / 2);
307          new_fade = 1 - options.carousel_transparency / 100;
308          new_fade1 = 100;
309          new_f = "translateX("+ options.parametr * Math.abs(options.carousel_degree) / multiplier   +"px) translateZ("+ (-1) * options.parametr / multiplier * 2 * Math.abs(options.carousel_degree) +"px) rotateY("+ (-1) * options.carousel_degree +"deg)" ;
310          new_gray = "grayscale("+ options.carousel_grayscale + "%)";
311          if (options.fit_containerWidth == false && options.smallFeaturePar < 1) {
312            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) + (pluginData.largeFeatureWidth * options.smallFeaturePar * (1 - options.smallFeaturePar) * (newPosition - 1)) - new_width;
313          } else if (options.fit_containerWidth == false && options.smallFeaturePar == 1) {
314            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) + (pluginData.largeFeatureWidth * options.smallFeaturePar * (options.smallFeaturePar) * (newPosition - 1)) - new_width;
315          } else {
316            new_left1 = ( (options.containerWidth / 2 -pluginData.largeFeatureWidth / 2)) / (options.imagecount / 2 - 0.5);
317            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) - new_width + (new_left1 * (newPosition - 1));
318          }
319        }
320        // Hidden.
321        else {
322          new_left = (options.containerWidth / 2) - (pluginData.largeFeatureWidth * options.smallFeaturePar / 2) - (pluginData.borderWidth / 2);
323          new_fade = 0;
324          new_fade1 = 0;
325        }
326      }
327      // This code block takes care of hiding the feature information if the feature is leaving the center.
328      if (oldPosition == 1) {
329        // Slide up the story information.
330        $feature.find(".wds_slider_car_image" + options.wds_number).hide();
331      }
332
333      // Animate the feature div to its new location.
334      jQuery(".wds_slide_bg_" + options.wds_number).css('perspective', 1000);
335      jQuery(".wds_slide_container_" + options.wds_number).css({'zIndex': 99});
336      jQuery(".wds_slide_" + options.wds_number).css({"transformStyle":"preserve-3d"});
337      $feature.css({
338        "-webkit-transform":new_f,
339        "-moz-transform:":new_f,
340        "-ms-transform":new_f,
341        "-o-transform":new_f,
342        "transform":new_f,
343        "-webkit-filter":new_gray,
344        "-moz-filter":new_gray,
345        "-ms-filter":new_gray,
346        "-o-filter":new_gray,
347        "filter":new_gray,
348        "progid":"DXImageTransform.Microsoft.BasicImage(grayscale=1)",}),
349      $feature
350        .animate(
351          {
352            width: new_width,
353            height: new_height,
354            top: new_top,
355            left: new_left,                      
356            opacity: new_fade,
357            filter: new_fade1
358          },
359          onload ? 0 : options.carouselSpeed,
360          options.animationEasing,
361          function () {
362            // Take feature info out of hiding if new position is center
363            if (newPosition == 1) {
364              // need to set the height to auto to accomodate caption if displayed below image
365              if (options.captionBelow)
366               $feature.css('height','auto');
367              // fade in the feature information
368              $feature.find(".wds_slider_car_image" + options.wds_number)
369                .fadeTo("fast",0.85);
370              // callback for moved to center
371              options.movedToCenter($feature);
372            }
373            // decrement the animation queue
374            pluginData.rotationsRemaining = pluginData.rotationsRemaining - 1;
375            // have to change the z-index after the animation is done
376            $feature.css("z-index", new_zindex);
377            // change trackers if using them
378            if (options.trackerIndividual || options.trackerSummation) {
379              // just update the tracker once; once the new center feature has arrived in center
380              if (newPosition == 1) {
381                // figure out what item was just in the center, and what item is now in the center
382                var newCenterItemNum = pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).index($feature) + 1;
383                var oldCenterItemNum;
384                if (direction == false) {
385                  oldCenterItemNum = getNextNum(newCenterItemNum);
386                }
387                else {
388                  oldCenterItemNum = getPreviousNum(newCenterItemNum);
389                }
390              }
391            }
392
393            // did all the the animations finish yet?
394            var divide = pluginData.rotationsRemaining / pluginData.itemsToAnimate;
395            if (divide % 1 == 0) {
396              // Set moving to false.
397              window["wds_currentlyMoving" +options.wds_number]   = false;
398              // Change positions for all items.
399              rotatePositions(direction);
400
401              // Move carousel again if queue is not empty.
402              if (pluginData.rotationsRemaining > 0)
403                move(direction);
404            }
405            // Reset timer and auto rotate again.
406            setTimer(false); 
407          }
408        )
409        .end();
410    }
411
412    /* Move the carousel to the left or to the right. The features that
413     * will move into the four positions are calculated and then animated
414     * rotate to the RIGHT when direction is TRUE and
415     * rotate to the LEFT when direction is FALSE.
416     */
417    var move = function(direction, onload) {
418      // Set the carousel to currently moving
419      window["wds_currentlyMoving" + options.wds_number]  = true;
420      // Obtain the new feature positions based on the direction that the carousel is moving
421      var $newCenter, $newLefts, $newRights, $newHidden, $curNum;
422
423      if (direction == true) {
424        // Shift features to the left
425        $newCenter = getContainer(getNextNum(window["wds_currentCenterNum" +options.wds_number]));
426        $newLefts = [];
427        $curNum = window["wds_currentCenterNum" +options.wds_number];        
428        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
429          $newLefts.push(getContainer($curNum));
430          $curNum = getPreviousNum($curNum);
431        }
432        $newRights = [];
433        $curNum = getNextNum(window["wds_currentCenterNum" + options.wds_number]);
434        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
435          $curNum = getNextNum($curNum);
436          $newRights.push(getContainer($curNum));
437        }
438        window["wds_currentCenterNum" + options.wds_number] = getNextNum(window["wds_currentCenterNum" + options.wds_number]);
439      }
440      else {
441        $newCenter = getContainer(getPreviousNum(window["wds_currentCenterNum" +options.wds_number]));
442        $newLefts = [];
443        $curNum = getPreviousNum(window["wds_currentCenterNum" +options.wds_number]);        
444        for (var i = 1; i <= options.imagecount / 2 +1; ++i) {
445          $curNum = getPreviousNum($curNum);   
446          $newLefts.push(getContainer($curNum));
447        }
448        $newRights = [];
449        $curNum = window["wds_currentCenterNum" + options.wds_number];
450        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
451          $newRights.push(getContainer($curNum));
452          $curNum = getNextNum($curNum);
453        }
454        window["wds_currentCenterNum" +options.wds_number] = getPreviousNum(window["wds_currentCenterNum" + options.wds_number]);
455      }
456      // Animate the features into their new positions.
457      for (i = 0; i < $newLefts.length; i++) {
458        $newLefts[i].css("z-index", $newLefts.length - i + 3);
459        animateFeature($newLefts[i], direction, onload);
460      }
461      $newCenter.css("z-index", Math.max($newLefts.length, $newRights.length) + 4);
462      animateFeature($newCenter, direction, onload);
463      for (i = 0; i < $newRights.length; i++) {
464        $newRights[i].css("z-index", $newRights.length - i + 3);
465        animateFeature($newRights[i], direction, onload);
466      }
467    }
468
469    // This is used to relegate carousel movement throughout the plugin.
470    // It will only initiate a move if the carousel isn't currently moving.
471    // It will set the animation queue to the number of rotations given.
472    var initiateMove = function(direction, rotations, onload) {
473      if (typeof onload == "undefined") {
474        var onload = 0;
475      }
476      if (window["wds_currentlyMoving" +options.wds_number]  == false) {
477        var queue = rotations * pluginData.itemsToAnimate ;
478        pluginData.rotationsRemaining = queue ;      
479        window["wds_set_filmstrip_class_" + options.wds_number]();
480        window["wds_set_dots_class_" + options.wds_number]();
481        move(direction, onload);
482      }
483    }
484
485    // Add event listener to all clicks within the features container
486    // This is done to disable any links that aren't within the center feature
487    $("a", pluginData.containerIDTag).on("click", function (event) {
488      // travel up to the container
489      var $parents = $(this).parentsUntil(pluginData.containerIDTag);
490      // now check each of the feature divs within it
491      $parents.each(function () {
492        var position = $(this).data('position');
493        // if there are more than just feature divs within the container, they will
494        // not have a position and it may come back as undefined. Throw these out
495        if (position != undefined) {
496          // if any of the links on a feature OTHER THAN the center feature were clicked,
497          // initiate a carousel move but then throw the link action away
498          if (position != 1) {
499            if (position == pluginData.totalFeatureCount) {
500              initiateMove(false,1);
501            } else if (position == 2) {
502              initiateMove(true, 1);
503            }
504            event.preventDefault();
505            return false;
506          // if the position WAS the center (i.e. 1), fire callback
507          } else {
508            options.clickedCenter($(this));
509          }
510        }
511      });
512    });
513
514    // Public functions.
515    this.initialize = function () {
516      jQuery("#wds_container2_" + options.wds_number).css({visibility: 'visible'});
517      jQuery(".wds_loading").hide();
518      // Call the preloader and pass in our callback, which is just a slew of function calls
519      // that should only be executed after the images have been loaded
520      preload(function () {
521        setupFeatureDimensions();
522        setupCarousel();
523        if (window["wds_currentlyMoving" +options.wds_number]  == false ) {
524          setupFeaturePositions();
525          initiateMove(true, 1, 1);
526        }
527      }); 
528      return this;
529    };
530
531    this.next = function() {
532      initiateMove(true, 1);
533    }
534    this.prev = function () {
535      initiateMove(false, 1);
536    }
537    this.shift = function (that) {
538      var position = $(that).data('position');
539      if (position == 1) {
540        return;
541      }
542      if (position > pluginData.totalFeatureCount / 2 + 1) {
543        initiateMove(false, pluginData.totalFeatureCount - position + 1);
544        options.carouselSpeed = 400;
545        options.animationEasing;
546      }
547      else {
548        initiateMove(true, position - 1);
549        options.carouselSpeed = 400;
550        options.animationEasing;
551      }
552    }
553    this.pause = function () {
554      options.autoPlay = false;
555      setTimer(true);
556    }
557    this.start = function () {
558      options.autoPlay = options.interval;
559      setTimer(false);
560    }
561    // Initialize the plugin.
562    return this.initialize();
563  };
564
565  $.fn.featureCarouselslider.defaults = {
566    // If zero, take original width and height of image
567    // If between 0 and 1, multiply by original width and height (acts as a percentage)
568    // If greater than one, use as a forced width/height for all of the images
569    largeFeatureWidth :   0,
570    largeFeatureHeight:		0,
571    containerWidth:       0,
572    containerHeight:      0,
573    fit_containerWidth:   0,
574    wds_number:           0,
575    // how much to pad the top of the carousel
576    topPadding:           20,
577    // spacing between the sides of the container
578    sidePadding:          50,
579    // the additional offset to pad the side features from the top of the carousel
580    smallFeatureOffset:		50,
581    //smallFeature parameters
582    smallFeaturePar:      0,
583    // indicates which feature to start the carousel at
584    startingFeature:      1,
585    // speed in milliseconds it takes to rotate the carousel
586    carouselSpeed:        400,
587    // time in milliseconds to set interval to autorotate the carousel
588    // set to zero to disable it, negative to go left
589    autoPlay:             4000,
590    carousel_degree: 50,
591    carousel_grayscale: 0,
592    carousel_transparency: 50,
593    interval:             true,
594    //imagecounts
595    imagecount:           7,
596    // with autoplay enabled, set this option to true to have the carousel pause rotating
597    // when a user hovers over any feature
598    pauseOnHover:         true,
599    // with autoplay enabled, set this option to completely stop the autorotate functionality
600    stopOnHover:          false,
601    // numbered blips can appear and be used to track the currently centered feature, as well as 
602    // allow the user to click a number to move to that feature. Set to false to not process these at all
603    // and true to process and display them//and true to process and display them
604    trackerIndividual:    true,
605    // a summation of the features can also be used to display an "x Of y" style of tracking
606    // this can be combined with the above option as well
607    trackerSummation:     true,
608    // Will only display this many features in the carousel
609    // set to zero to disable
610    displayCutoff:        0,
611    data:                 "",
612    // an easing can be specified for the animation of the carousel
613    animationEasing:      'swing',
614    // display captions below the image instead of on top
615    captionBelow:         false,
616    parf:                 0,
617    // callback function for when a feature has animated to the center
618    movedToCenter:        $.noop,
619    // callback function for when feature left center
620    leavingCenter:        $.noop,
621    // callback function for when center feature was clicked
622    clickedCenter:        $.noop
623  };
624})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.