1/* jQuery Carousel 0.9.8 2Copyright 2010 Thomas Lanciaux and Pierre Bertet. 3This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/> 4 */ 5(function($) { 6 $.fn.carousel = function(config) 7 { 8 var settings = $.extend({ 9 direction : "horizontal", 10 loop : false, 11 dispItems : 1, 12 enableTouch: true, 13 pagination : false, 14 paginationPosition : "inside", 15 autoSlide : false, 16 autoSlideInterval : 3000, 17 arrowKey: false, 18 19 stopSlideBtn : false, 20 stopSlideTextPause : "Pause", 21 stopSlideTextPlay : "Play", 22 23 nextBtnText: "Next", 24 prevBtnText: "Previous", 25 btnsPosition : "inside", 26 prevBtnInsert : "insertBefore", 27 nextBtnInsert : "insertAfter", 28 nextBtnInsertFn : false, 29 prevBtnInsertFn : false, 30 delayAutoSlide : false, 31 combinedClasses : false, 32 effect : "slide", 33 slideEasing : "swing", 34 animSpeed : 300, 35 equalWidths : "true", 36 verticalMargin : 0, 37 callback : function() { 38 }, 39 useAddress : false, 40 adressIdentifier : "carousel", 41 tabLabel : function(r) { 42 return r 43 }, 44 showEmptyItems : true, 45 ajaxMode : false, 46 ajaxUrl : "" 47 }, config); 48 49 settings.delayAutoSlide = 0 + settings.delayAutoSlide; 50 51 return this.each(function() { 52 var carouselObject = { 53 $elts : { /* nothing */ }, 54 params : settings, 55 launchOnLoad : [] 56 }; 57 carouselObject.$elts.carousel = $(this).addClass("js"); 58 carouselObject.$elts.content = $(this).children().css({ 59 position : "absolute", 60 top : 0 61 }); 62 carouselObject.$elts.content.find("script[type='text/javascript']").remove(); 63 carouselObject.$elts.wrap = carouselObject.$elts.content.wrap('<div class="carousel-wrap"></div>').parent() 64 carouselObject.$elts.wrap.css({ 65 overflow : "hidden", 66 position : "relative" 67 }); 68 69 70 function init() 71 { 72 carouselObject.steps = { 73 first : 0, 74 count : carouselObject.$elts.content.children("li").length 75 }; 76 carouselObject.$elts.loader = $('<div class="loader"></div>').css({ position : "absolute" }); 77 carouselObject.steps.last = carouselObject.steps.count - 1; 78 79 if (carouselObject.$elts.content.children().length <= 1) 80 { 81 carouselObject.params.pagination = false; 82 carouselObject.params.autoSlide = false; 83 carouselObject.params.enableTouch = false; 84 } 85 86 // TOUCH HANDLING 87 if (settings.enableTouch) 88 { 89 carouselObject.$elts.content.touchwipe({ 90 wipeStart: function(startX, startY) { 91 if (carouselObject.$elts.stopSlideBtn) 92 { 93 carouselObject.$elts.stopSlideBtn.trigger('pause'); 94 } 95 96 var jul = carouselObject.$elts.content; 97 jul[0].initialLeft = jul.position().left; 98 jul[0].initialTop = jul.position().top; 99 jul[0].onesizeWidth = jul.children("li").width(); 100 jul[0].onesizeHeight = jul.children("li").height(); 101 jul[0].maxLeft = -(jul.width() - jul[0].onesizeWidth); 102 jul[0].maxTop = -(jul.height() - jul[0].onesizeHeight); 103 }, 104 wipeDown: settings.direction == "horizontal" ? null : function(dy) { 105 var ul = carouselObject.$elts.content[0]; 106 ul.percentAnim = dy / ul.onesizeHeight; 107 switch (settings.effect) 108 { 109 case "no": 110 break; 111 case "fade": 112 break; 113 case "slidein": 114 default: 115 ul.style.top = Math.max(ul.maxTop - 50, ul.initialTop - dy) + "px"; 116 } 117 }, 118 wipeUp: settings.direction == "horizontal" ? null : function(dy) { 119 var ul = carouselObject.$elts.content[0]; 120 ul.percentAnim = dy / ul.onesizeHeight; 121 switch (settings.effect) 122 { 123 case "no": 124 break; 125 case "fade": 126 break; 127 case "slidein": 128 default:
129 ul.style.top = Math.min(50, ul.initialTop - dy) + "px"; 130 } 131 }, 132 wipeLeft: settings.direction == "horizontal" ? function(dx) { 133 var ul = carouselObject.$elts.content[0]; 134 ul.percentAnim = dx / ul.onesizeWidth; 135 switch (settings.effect) 136 { 137 case "no": 138 break; 139 case "fade": 140 $(ul).children("li").stop(true, true); 141 $(ul).children("li:eq(" + carouselObject.steps.first + ")").css("opacity", 1 - Math.abs(ul.percentAnim)) 142 $(ul).children("li:eq(" + (carouselObject.steps.first + 1) + ")").css('visibility', 'visible').css("opacity", Math.abs(ul.percentAnim)) 143 break; 144 case "slidein": 145 default: 146 ul.style.left = Math.max(ul.maxLeft - 50, ul.initialLeft - dx) + "px"; 147 } 148 } : null, 149 wipeRight: settings.direction == "horizontal" ? function(dx) { 150 var ul = carouselObject.$elts.content[0]; 151 ul.percentAnim = dx / ul.onesizeWidth; 152 switch (settings.effect) 153 { 154 case "no": 155 break; 156 case "fade": 157 $(ul).children("li").stop(true, true); 158 $(ul).children("li:eq(" + carouselObject.steps.first + ")").css("opacity", 1 - Math.abs(ul.percentAnim)) 159 if (carouselObject.steps.first >= 1) 160 { 161 $(ul).children("li:eq(" + (carouselObject.steps.first - 1) + ")").css('visibility', 'visible').css("opacity", Math.abs(ul.percentAnim)) 162 } 163 break; 164 case "slidein": 165 default: 166 ul.style.left = Math.min(50, ul.initialLeft - dx) + "px"; 167 } 168 } : null, 169 wipeCancel: function() { 170 var ul = carouselObject.$elts.content[0]; 171 switch (settings.effect) 172 { 173 case "no": 174 break; 175 case "fade": 176 $(ul).children("li").stop(true, false); 177 $(ul).children("li:eq(" + (carouselObject.steps.first > 0 ? carouselObject.steps.first : 0) + ")").css("opacity", 1); 178 $(ul).children("li:not(:eq(" + (carouselObject.steps.first > 0 ? carouselObject.steps.first : 0) + "))").css('visibility', 'hidden').css("opacity", 0); 179 break; 180 case "slidein": 181 default: 182 ul.style.left = ul.initialLeft; 183 } 184 }, 185 wipeStop: function() { 186 var ul = carouselObject.$elts.content[0]; 187 var active = $(carouselObject.$elts.paginationBtns[0].parentNode).find("a.active"); 188 if (ul.percentAnim < 0) 189 { 190 var prev = active.prev('a'); 191 if (prev.length == 0) 192 { 193 active.click(); 194 } 195 else 196 { 197 prev.click(); 198 } 199 } 200 else 201 { 202 var next = active.next('a'); 203 if (next.length == 0) 204 { 205 active.click(); 206 } 207 else 208 { 209 next.click(); 210 } 211 } 212 213 }, 214 min_move_x: 24, 215 min_move_y: 24, 216 preventDefaultEvents: true 217 }); 218 } 219 220 createPagination(carouselObject); 221 if (!carouselObject.params.pagination) { 222 carouselObject.$elts.pagination[0].style.position = "absolute"; 223 carouselObject.$elts.pagination[0].style.top = "-10000px"; 224 carouselObject.$elts.pagination[0].style.left = "-10000px"; 225 } 226 if ($.isFunction(carouselObject.params.prevBtnInsertFn)) 227 { 228 carouselObject.$elts.prevBtn = carouselObject.params.prevBtnInsertFn(carouselObject.$elts) 229 } 230 else 231 { 232 if (settings.btnsPosition == "outside") 233 { 234 carouselObject.$elts.prevBtn = $('<input type="button" value="' + settings.prevBtnText + '" title="' + settings.prevBtnText + '" />')[settings.prevBtnInsert](carouselObject.$elts.carousel); 235 } 236 else if (settings.btnsPosition == "pagination") 237 { 238 carouselObject.$elts.prevBtn = $('<input type="button" value="' + settings.prevBtnText + '" title="' + settings.prevBtnText + '" />')[settings.prevBtnInsert](carouselObject.$elts.paginationBtns[0]); 239 } 240 else 241 { 242 carouselObject.$elts.prevBtn = $('<input type="button" value="' + settings.prevBtnText + '" title="' + settings.prevBtnText + '" />')[settings.prevBtnInsert](carouselObject.$elts.wrap); 243 } 244 } 245 if ($.isFunction(carouselObject.params.nextBtnInsertFn)) 246 { 247 carouselObject.$elts.nextBtn = carouselObject.params.nextBtnInsertFn(carouselObject.$elts); 248 } 249 else 250 { 251 if (settings.btnsPosition == "outside") 252 { 253 carouselObject.$elts.nextBtn = $('<input type="button" value="' + settings.nextBtnText + '" title="' + settings.nextBtnText + '" />')[settings.nextBtnInsert](carouselObject.$elts.carousel); 254 } 255 else if (settings.btnsPosition == "pagination") 256 { 257 carouselObject.$elts.nextBtn = $('<input type="button" value="' + settings.nextBtnText + '" title="' + settings.nextBtnText + '" />')[settings.nextBtnInsert](carouselObject.$elts.paginationBtns[carouselObject.$elts.paginationBtns.length - 1]); 258 } 259 else 260 { 261 carouselObject.$elts.nextBtn = $('<input type="button" value="' + settings.nextBtnText + '" title="' + settings.nextBtnText + '" />')[settings.nextBtnInsert](carouselObject.$elts.wrap); 262 } 263 } 264 carouselObject.$elts.nextBtn.addClass("carousel-control next carousel-next"); 265 carouselObject.$elts.prevBtn.addClass("carousel-control previous carousel-previous"); 266 carouselObject.lastItemsToLoad; 267 268 initNextPreviousButton(carouselObject); 269 270 if (carouselObject.params.arrowKey) 271 { 272 var children = carouselObject.$elts.carousel.attr("tabindex", 0).add(carouselObject.$elts.carousel.children()); 273 children.bind( 274 { 275 focus : function(s) { 276 $(document).bind("keypress", 277 function(t) 278 { 279 switch (t.keyCode) 280 { 281 case 39: 282 carouselObject.$elts.nextBtn.click(); 283 break; 284 case 37: 285 carouselObject.$elts.prevBtn.click(); 286 break 287 } 288 switch (t.charCode) 289 { 290 case 110: 291 carouselObject.$elts.nextBtn.click(); 292 break; 293 case 112: 294 carouselObject.$elts.prevBtn.click(); 295 break 296 } 297 } 298 ); 299 }, 300 blur : function() {
301 $(document).unbind("keypress"); 302 } 303 } 304 ); 305 } 306 307 initAddress(carouselObject); 308 309 initialize(carouselObject); 310 311 $.each(carouselObject.launchOnLoad, 312 function(index, functionToLoad) 313 { 314 functionToLoad(); 315 } 316 ); 317 318 if (carouselObject.params.autoSlide) 319 { 320 startAutoSlide(carouselObject); 321 } 322 323 // stop button 324 if (settings.stopSlideBtn == true) 325 { 326 carouselObject.$elts.stopSlideBtn = $('<button type="button" class="slide-control play" title="' + settings.stopSlideTextPause + '">' + settings.stopSlideTextPause + "</button>"); 327 bindStopButtonActions(carouselObject) 328 } 329 } 330 331 function onloadinit() 332 { 333 var liItem = carouselObject.$elts.content.children("li:eq(0)"); 334 var imageInFirst = liItem.find("img:eq(0)")[0]; 335 var jImageInFirst = $(imageInFirst); 336 337 if (!imageInFirst || imageInFirst.complete || (imageInFirst.readyState == 'loading' && jImageInFirst.height() > 30)) 338 { 339 window.setTimeout(function() { init(); }, 1); 340 } 341 else 342 { 343 jImageInFirst.load(init); 344 jImageInFirst.error( 345 function() 346 { 347 console && console.info("[Carousel] Cannot load image of the first slide to determine the carousel size: removing it."); 348 carouselObject.$elts.content.children("li:eq(0)").remove(); 349 onloadinit(); 350 } 351 ); 352 } 353 } 354 355 $(onloadinit); 356 357 // FOCUS HANDLING 358 var car = $(this); 359 $('a', car).each(function(index, element) { 360 $(element).focus(function() { 361 var liindex = $(this).parents("div.carousel-wrap > ul > li").first().prevAll("li").length; 362 363 gotoPage(carouselObject, liindex); 364 if (carouselObject.$elts.stopSlideBtn) 365 { 366 carouselObject.$elts.stopSlideBtn.trigger("pause") 367 } 368 else 369 { 370 stopAutoSlide(carouselObject) 371 } 372 373 var jul = $('.carousel-wrap > ul', car); 374 jul.css('opacity', '0').css('position', 'fixed'); 375 window.setTimeout(function() { jul.css('opacity', '1').css('position', 'absolute'); }, 1); 376 377 }); 378 }); 379 }) 380 }; 381 382 function initialize(carouselObject) 383 { 384 var t = carouselObject.$elts.content.children("li"); 385 var r = 0; 386 387 t.each( 388 function() 389 { 390 $item = $(this); 391 $itemHeight = $item.outerHeight(); 392 if ($itemHeight > r) 393 { 394 r = $itemHeight 395 } 396 } 397 ); 398 399 if (carouselObject.params.verticalMargin > 0) 400 { 401 r = r + carouselObject.params.verticalMargin; 402 } 403 t.height(r); 404 var q = carouselObject.$elts.content.children(":first"); 405 carouselObject.itemWidth = q.outerWidth(); 406 407 switch (carouselObject.params.effect) 408 { 409 case "fade": 410 carouselObject.$elts.content.children("li").css('position', 'absolute'); 411 carouselObject.$elts.content.children("li:not(:eq(0))").css('opacity', 0).css('visibility', 'hidden'); 412 break; 413 } 414 415 if (carouselObject.params.direction == "vertical") 416 { 417 carouselObject.contentWidth = carouselObject.itemWidth 418 } 419 else 420 { 421 if (carouselObject.params.equalWidths) { 422 carouselObject.contentWidth = carouselObject.itemWidth * carouselObject.steps.count 423 } 424 else 425 { 426 carouselObject.contentWidth = (function() { 427 var u = 0; 428 carouselObject.$elts.content.children().each( 429 function() 430 { 431 u += $(this).outerWidth() 432 } 433 ); 434 return u 435 })(); 436 } 437 } 438 439 carouselObject.$elts.content.width(carouselObject.contentWidth); 440 carouselObject.itemHeight = r; 441 442 if (carouselObject.params.direction == "vertical") 443 { 444 carouselObject.$elts.content.css({ height : carouselObject.itemHeight * carouselObject.steps.count + "px" }); 445 carouselObject.$elts.content.parent().css({ height : carouselObject.itemHeight * carouselObject.params.dispItems + "px" }); 446 } 447 else 448 { 449 carouselObject.$elts.content.parent().css({ height : carouselObject.itemHeight + "px" }); 450 } 451 updatePaginationButtons(carouselObject); 452 } 453 454 function initNextPreviousButton(carouselObject) { 455 var button = carouselObject.$elts.nextBtn.add(carouselObject.$elts.prevBtn); 456 button.bind("enable", function() { 457 var jButton = $(this); 458 jButton.unbind("click"); 459 jButton.bind("click", function() { 460 if (carouselObject.params.ajaxMode && jButton.is(".next") 461 && getCurrentPaginationPosition(carouselObject) == (getPaginationSize(carouselObject) - 1) 462 && !carouselObject.lastItemsToLoad) 463 { 464 ajaxLoad(carouselObject); 465 carouselObject.$elts.content.ajaxSuccess(function() { });
466 } 467 else 468 { 469 gotoPage(carouselObject, countItems(carouselObject, (jButton.is(".next") ? "next" : "prev"))); 470 if (carouselObject.params.stopSlideBtn == true) 471 { 472 carouselObject.$elts.stopSlideBtn.trigger("pause"); 473 } 474 else 475 { 476 stopAutoSlide(carouselObject); 477 } 478 } 479 }); 480 jButton.removeClass("disabled").removeAttr("disabled"); 481 482 if (carouselObject.params.combinedClasses) 483 { 484 jButton.removeClass("next-disabled previous-disabled"); 485 jButton.removeAttr("disabled") 486 } 487 }); 488 489 button.bind("disable", 490 function() 491 { 492 var jButton = $(this); 493 jButton.unbind("click"); 494 jButton.addClass("disabled"); 495 jButton.attr("disabled", "disabled"); 496 497 if (carouselObject.params.combinedClasses) 498 { 499 if (jButton.is(".next")) 500 { 501 jButton.addClass("next-disabled") 502 } 503 else 504 { 505 if (jButton.is(".previous")) 506 { 507 jButton.addClass("previous-disabled"); 508 } 509 } 510 } 511 } 512 ); 513 514 button.hover( 515 function() 516 { 517 $(this).toggleClass("hover"); 518 } 519 ); 520 } 521 function createPagination(carouselObject) 522 { 523 var position = ((carouselObject.params.paginationPosition == "outside") ? "insertAfter" : "appendTo"); 524 525 carouselObject.$elts.pagination = $('<div class="center-wrap"><div class="carousel-pagination"><p></p></div></div>')[position](carouselObject.$elts.carousel).find("p"); 526 carouselObject.$elts.paginationBtns = $([]); 527 carouselObject.$elts.content.children("li").each(function(liIndex) { 528 if (liIndex % carouselObject.params.dispItems == 0) { 529 createPaginationButton(carouselObject, liIndex) 530 } 531 }) 532 } 533 function createPaginationButton(carouselObject, liIndex) 534 { 535 var link = $('<a ' + (carouselObject.params.setInternalAttribute ? 'internal="internal" ' : '') 536 + 'href="#" role="button"><span>'
537 + carouselObject.params.tabLabel(carouselObject.$elts.paginationBtns.length + 1) 538 + "</span></a>").data("firstStep", liIndex); 539 540 carouselObject.$elts.paginationBtns = carouselObject.$elts.paginationBtns.add(link); 541 carouselObject.$elts.paginationBtns.appendTo(carouselObject.$elts.pagination); 542 carouselObject.$elts.paginationBtns.slice(0, 1).addClass("active"); 543 carouselObject.$elts.paginationBtns.click( 544 function(s) 545 { 546 gotoPage(carouselObject, $(this).data("firstStep")); 547 if (carouselObject.params.stopSlideBtn == true) 548 { 549 carouselObject.$elts.stopSlideBtn.trigger("pause") 550 } 551 else 552 { 553 stopAutoSlide(carouselObject) 554 } 555 return false; 556 } 557 ); 558 } 559 function initAddress(carouselObject) 560 { 561 if (carouselObject.params.useAddress && $.isFunction($.fn.address)) 562 { 563 $.address.init( 564 function(s) 565 { 566 var r = $.address.pathNames(); 567 if (r[0] === carouselObject.params.adressIdentifier && !!r[1]) 568 { 569 gotoPage(carouselObject, r[1] - 1); 570 } 571 else 572 { 573 $.address.value("/" + carouselObject.params.adressIdentifier + "/1"); 574 } 575 } 576 ).change( 577 function(s) 578 { 579 var r = $.address.pathNames(); 580 if (r[0] === carouselObject.params.adressIdentifier && !!r[1]) 581 { 582 gotoPage(carouselObject, r[1] - 1); 583 } 584 } 585 ); 586 } 587 else 588 { 589 carouselObject.params.useAddress = false; 590 } 591 } 592 593 function gotoPage(carouselObject, pageIndex) 594 { 595 carouselObject.params.callback(pageIndex); 596 597 showPage(carouselObject, pageIndex); 598 599 carouselObject.steps.first = pageIndex; 600 601 updatePaginationButtons(carouselObject); 602 603 if (carouselObject.params.useAddress) 604 { 605 $.address.value("/" + carouselObject.params.adressIdentifier + "/" + (pageIndex + 1)); 606 } 607 } 608 609 function countItems(carouselObject, command) 610 { 611 if (command == "prev") 612 { 613 if (!carouselObject.params.showEmptyItems) 614 { 615 if (carouselObject.steps.first == 0) 616 { 617 return ((carouselObject.params.loop) ? (carouselObject.steps.count - carouselObject.params.dispItems) : false); 618 } 619 else 620 { 621 return Math.max(0, carouselObject.steps.first - carouselObject.params.dispItems); 622 } 623 } 624 else 625 { 626 if ((carouselObject.steps.first - carouselObject.params.dispItems) >= 0) 627 { 628 return carouselObject.steps.first - carouselObject.params.dispItems; 629 } 630 else 631 { 632 return ((carouselObject.params.loop) ? (carouselObject.steps.count - carouselObject.params.dispItems) : false); 633 } 634 } 635 } 636 else if (command == "next") 637 { 638 if ((carouselObject.steps.first + carouselObject.params.dispItems) < carouselObject.steps.count) 639 { 640 if (!carouselObject.params.showEmptyItems) 641 { 642 return Math.min(carouselObject.steps.first + carouselObject.params.dispItems, carouselObject.steps.count - carouselObject.params.dispItems) 643 } 644 else 645 { 646 return carouselObject.steps.first + carouselObject.params.dispItems 647 } 648 } 649 else 650 { 651 return ((carouselObject.params.loop) ? 0 : false) 652 } 653 } 654 } 655 656 function showPage(carouselObject, pageIndex) 657 { 658 switch (carouselObject.params.effect) 659 { 660 case "no": 661 if (carouselObject.params.direction == "vertical") 662 { 663 carouselObject.$elts.content.css("top", -(carouselObject.itemHeight * pageIndex) + "px"); 664 } 665 else 666 { 667 carouselObject.$elts.content.css("left", -(carouselObject.itemWidth * pageIndex) + "px"); 668 } 669 break; 670 671 case "fade": 672 carouselObject.$elts.content.children("li").stop(true, false); 673 carouselObject.$elts.content.children("li:not(:eq(" + (pageIndex+0) + "))").fadeTo(carouselObject.params.animSpeed, 0, function() { $(this).css('visibility', 'hidden'); }); 674 carouselObject.$elts.content.children("li:eq(" + (pageIndex+0) + ")").css('visibility', 'visible').fadeTo(carouselObject.params.animSpeed, 1); 675 break; 676 677 case "slide": 678 default: 679 if (carouselObject.params.direction == "vertical") 680 { 681 carouselObject.$elts.content.stop().animate({ top : -(carouselObject.itemHeight * pageIndex) + "px" }, carouselObject.params.animSpeed, carouselObject.params.slideEasing); 682 } 683 else 684 { 685 carouselObject.$elts.content.stop().animate({ left : -(carouselObject.itemWidth * pageIndex) + "px" }, carouselObject.params.animSpeed, carouselObject.params.slideEasing); 686 } 687 break; 688 } 689 } 690 691 function updatePaginationButtons(carouselObject) 692 { 693 if (countItems(carouselObject, "prev") !== false) 694 { 695 carouselObject.$elts.prevBtn.trigger("enable"); 696 } 697 else 698 { 699 carouselObject.$elts.prevBtn.trigger("disable"); 700 } 701 702 if (countItems(carouselObject, "next") !== false) 703 { 704 carouselObject.$elts.nextBtn.trigger("enable"); 705 } 706 else 707 { 708 carouselObject.$elts.nextBtn.trigger("disable"); 709 } 710 711 function filterFunction() 712 { 713 return ($(this).data("firstStep") == carouselObject.steps.first); 714 } 715 carouselObject.$elts.paginationBtns.removeClass("active").filter(filterFunction).addClass("active"); 716 } 717 718 function startAutoSlide(carouselObject) 719 { 720 carouselObject.delayAutoSlide = window.setTimeout( 721 function() 722 { 723 carouselObject.autoSlideInterval = window.setInterval( 724 function() 725 { 726 gotoPage(carouselObject, countItems(carouselObject, "next")) 727 }, 728 carouselObject.params.autoSlideInterval 729 ); 730 }, 731 carouselObject.params.delayAutoSlide 732 ); 733 } 734 735 function stopAutoSlide(carouselObject) 736 {
737 window.clearTimeout(carouselObject.delayAutoSlide); 738 window.clearInterval(carouselObject.autoSlideInterval); 739 carouselObject.params.delayAutoSlide = 0 740 } 741 742 function bindStopButtonActions(carouselObject) 743 { 744 var actionButton = carouselObject.$elts.stopSlideBtn; 745 actionButton.bind( 746 { 747 play : function() 748 { 749 startAutoSlide(carouselObject); 750 actionButton.removeClass("pause"); 751 actionButton.addClass("play"); 752 actionButton.html(carouselObject.params.stopSlideTextPause); 753 actionButton.attr('title', carouselObject.params.stopSlideTextPause); 754 }, 755 pause : function() 756 { 757 stopAutoSlide(carouselObject); 758 actionButton.removeClass("play"); 759 actionButton.addClass("pause"); 760 actionButton.html(carouselObject.params.stopSlideTextPlay); 761 actionButton.attr('title', carouselObject.params.stopSlideTextPlay); 762 } 763 } 764 ); 765 766 actionButton.click( 767 function(event) 768 { 769 if (actionButton.is(".play")) 770 { 771 actionButton.trigger("pause"); 772 } 773 else 774 { 775 if (actionButton.is(".pause")) 776 { 777 actionButton.trigger("play"); 778 } 779 } 780 } 781 ); 782 actionButton.prependTo(carouselObject.$elts.pagination); 783 } 784 785 function getPaginationSize(carouselObject) 786 { 787 return carouselObject.$elts.pagination.children().length 788 } 789 790 function getCurrentPaginationPosition(carouselObject) 791 { 792 return carouselObject.steps.first / carouselObject.params.dispItems; 793 } 794 795 function ajaxLoad(carouselObject) 796 { 797 carouselObject.$elts.carousel.prepend(carouselObject.$elts.loader); 798 $.ajax({ 799 url : carouselObject.params.ajaxUrl, 800 dataType : "json", 801 success : function(response) { 802 carouselObject.lastItemsToLoad = response.bLastItemsToLoad; 803 $(carouselObject.$elts.content).append(response.shtml); 804 carouselObject.steps = { 805 first : carouselObject.steps.first + carouselObject.params.dispItems, 806 count : carouselObject.$elts.content.children().length 807 }; 808 carouselObject.steps.last = carouselObject.steps.count - 1; 809 initialize(carouselObject); 810 createPaginationButton(carouselObject, carouselObject.steps.first); 811 gotoPage(carouselObject, carouselObject.steps.first); 812 if (carouselObject.params.stopSlideBtn == true) 813 { 814 carouselObject.$elts.stopSlideBtn.trigger("pause") 815 } 816 else 817 { 818 stopAutoSlide(carouselObject) 819 } 820 carouselObject.$elts.loader.remove() 821 } 822 }) 823 } 824})(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.