1/* 2* jQuery RBSlider v2.0 3* 4* Copyright @2016, Overflow Kft. 5* 6* All right reserved 7*/ 8 9(function ($) { 10 11 $.fn.RBSlider2 = function (options) { 12 13 var defaults = { 14 azon: '', 15 parameters: '', 16 transition: 'scroll', // 'normal', 'fade', 'scroll' 17 speed: 4000, // integer - in ms 18 fadespeed: 500, // integer - in ms 19 swipetype: 'normal', // 'none','normal', 'pager' 20 pageSize: 1, 21 totalitemcount: 0, 22 loadall: false, 23 pagertype: '', // 'NextPrev', ...,'AutoScroll' 24 mediapagesizelist: '', 25 mediaState: '', 26 orientationState: '', 27 refreshtime: 0, // milisec 28 autoStart: true, 29 autoControls: true, 30 hoverstop: true, 31 imagegrouptype: "", 32 autosizepageritem: "", 33 controllername: "", 34 startid: "", 35 noData: "", 36 showNoData: false, 37 noFixData: false, 38 vertical: false, 39 flood: false, 40 marker: "", 41 groups: "", 42 startloadpage: 0, 43 startpage: -1, 44 beforeafter: 0, 45 actPageDiff: 0, 46 diffPageSize: false, 47 noPagerItem: false, 48 onlyOnePage: false, 49 maxcount: 0, 50 maxpagecount: 0, 51 lastitemid: 0, 52 skipcount: 0, 53 skippagecount: 0, 54 thumbcount: 0, 55 onlythumb: false, 56 thumbhover: false, 57 random: 0, 58 otherslider: "", 59 parentlistboxid: "", 60 imageTitle: "", 61 nameHtmlItemCode: "", 62 cleardiv: "", 63 clearselectclass: "", 64 sectionclass: "", 65 sliderparam: "", 66 showtype: "", 67 showtypetosummary: false, 68 showtypetext: false, 69 quickfirst: true, 70 infiniteLoop: false, 71 pagewidth: 100, 72 pagediff: 0, 73 loadpagejumpOffset: 0, 74 startGotoId: 0, 75 startGotoIdOffset: 0, 76 nextstr: "", 77 prevstr: "", 78 showpager3number: true, 79 enableKeyPress: 0, 80 ajaxurl: '' 81 } 82 83 var options = $.extend(defaults, options); 84 85 if (options.swipetype == 'normal') 86 if (options.autoStart || options.autoControls || options.transition != 'scroll') 87 options.swipetype = 'pager'; 88 89 var base = this; 90 var id = this[0].id; 91 92 var $root = ''; 93 var $container = ''; 94 var $containeritems = ''; 95 var $children = ''; 96 var $autoControls = ''; 97 var $pager = ""; 98 var $pagerbottom = ""; // TopAndBottom 99 100 var stateSaved = false; 101 102 var interval = ''; // NextPage intervallum 103 var autoPlaying = false; 104 var hooverAutoPlaying = false; 105 var mouseOver = false; 106 var autoscrollnext = true; 107 var needloadpagejump = false; 108 109 var dataversio = 1; 110 var totalitemcount = 0; 111 var pageSize = 0; 112 var actPage = options.startpage; // -1; 113 var loadedPage = 0; 114 var lastloadeditemid = options.lastitemid; 115 var swipedistX = 0; 116 var newswipedistX = 0; 117 var actShowType = options.showtype; 118 var swipesecondpagechecked = false; 119 var visibilityChangeShowStoped = false; 120 121 var lastothersliderdata = ""; 122 123 var isWorking = false; 124 var isLoading = false; 125 var justReloaded = true; // elsÅre nem kell refresh 126 127 var mediaState = ''; 128 var orientationState = ""; 129 var resizing = false; 130 var enableResize = false; 131 if (options.mediapagesizelist != '') 132 if (options.mediapagesizelist.length > 0) { 133 enableResize = true; 134 resizing = true; 135 if (options.mediaState) { 136 mediaState = options.mediaState; 137 orientationState = options.orientationState; 138 } 139 } 140 141 $(window).bind("load", function (event) { 142 if (stateSaved) 143 return; 144 var itemData = LoadState(); 145 if (itemData) { 146 ReloadAfterBack(itemData); 147 } 148 else { 149 SaveState(); 150 } 151 }); 152 153 154 var started = false; 155 156 // PUBLIC FUNCTIONS 157 158 /* 159 * Initialize 160 */ 161 this.initShow = function () { 162 $root = $(this); 163 $container = $root.find('#' + id + '-container'); 164 $containeritems = $root.find('#' + id + '-container-items'); 165 $children = $containeritems.children();
166 $autoControls = $root.find('#' + id + '-autocontrols'); 167 $pager = $root.find('#' + id + '-pager'); 168 $pagerbottom = $root.find('#' + id + '-pager-bottom'); 169 170 InitPageSize(options.pageSize); 171 totalitemcount = options.totalitemcount; 172 173 InitCss(); 174 InitItems(); 175 SetEmptyClass(totalitemcount == 0); 176 177 if (resizing) { 178 CheckResize(true); 179 } 180 else { 181 GoToPage(options.startloadpage, false); 182 if (options.startpage > 0) 183 GotoSwipePage(actPage); 184 } 185 186 if (options.thumbcount > 0) 187 InitThumbs(); 188 189 if (options.autoStart) 190 StartShow(); 191 192 if (options.autoControls) 193 SetAutoControl(); 194 195 RefreshEventHandler(); 196 if (options.refreshtime > 0) 197 RefreshInit(); 198 199 started = true; 200 if (options.startGotoId == 1) 201 RBGoToId(id, options.startGotoIdOffset); 202 203 if (options.pagewidth != 100) 204 CheckMoreData(); 205 206 /*leállÃtani, ha nem aktÃv az oldal*/ 207 document.addEventListener('visibilitychange', function () { 208 if (document.visibilityState == 'visible') { 209 if (visibilityChangeShowStoped) { 210 StartShow(); 211 visibilityChangeShowStoped = false; 212 } 213 } else { 214 if (autoPlaying) { 215 StopShow(); 216 visibilityChangeShowStoped = true; 217 } 218 } 219 }); 220 }; 221 222 // PRIVATE FUNCTIONS 223 function ReloadAfterBack(itemData) { 224 if (isLoading) { 225 setTimeout(function () { 226 ReloadAfterBack(itemData); 227 }, 100); // <-- time in milliseconds 228 return; 229 } 230 try { 231 isLoading = true; 232 233 $containeritems.html(JSON.parse(itemData).containeritemsHtml); 234 totalitemcount = JSON.parse(itemData).totalitemcount; 235 lastloadeditemid = JSON.parse(itemData).lastloadeditemid; 236 loadedPage = JSON.parse(itemData).loadedPage; 237 $containeritems.find('.rb2-slider-pager-item').addClass('rb2-slider-pager-item-firstinit'); 238 $containeritems.find('.rb2-slider-item').addClass('rb2-slider-item-firstinit'); 239 /* $root.find('.rb2-pager-item').addClass('rb2-pager-item-init');*/ 240 InitItems(); 241 SetPageActive(JSON.parse(itemData).actPage); 242 } 243 finally { 244 isLoading = false; 245 } 246 } 247 248 function LoadState() { 249 try { 250 return localStorage.getItem("RBSlider-" + id); 251 } 252 catch (ex) { } 253 } 254 255 function SaveState() { 256 stateSaved = true; 257 try { 258 DoSaveState(); 259 return; 260 } 261 catch (ex) { 262 localStorage.clear(); 263 } 264 try { 265 DoSaveState(); 266 } 267 catch (ex) { 268 } 269 } 270 271 function DoSaveState() { 272 var itemData = { id: id, actPage: actPage, loadedPage: loadedPage, totalitemcount: totalitemcount, lastloadeditemid: lastloadeditemid, 273 containeritemsHtml: $containeritems.html() 274 } 275 localStorage.setItem("RBSlider-" + id, JSON.stringify(itemData)); 276 } 277 278 function InitCss() { 279 280 } 281 282 function CanUseInfiniteLoop() { 283 284 if (!options.infiniteLoop) 285 return false; 286 287 if (options.transition != 'scroll') 288 return false; 289 290 if (options.pagewidth != 100) 291 return false; 292 293 if (options.pagertype == 'AutoScroll' || 294 options.pagertype == 'ScrollDown' || 295 options.pagertype == 'ScrollDownName' || 296 options.pagertype == 'Number' || 297 options.pagertype == 'NumberPrevNext' || 298 options.pagertype == 'NumberPrevNextArrow') 299 return false; 300 301 if (GetMaxPage() <= 1) 302 return false; 303 304 return true; 305 } 306 307 function InitInfiniteLoop() { 308 $containeritems.children('.rb2-slider-loop-clone').remove(); 309 310 if (!CanUseInfiniteLoop()) 311 return; 312 313 var maxPage = GetMaxPage(); 314 315 var realPages = $containeritems 316 .children('.rb2-slider-pager-item') 317 .not('.rb2-slider-loop-clone'); 318 319 if (realPages.length < maxPage) 320 return; 321 322 var firstPage = $containeritems 323 .children('.rb2-slider-pager-item-0') 324 .first(); 325 326 var lastPage = $containeritems 327 .children('.rb2-slider-pager-item-' + (maxPage - 1)) 328 .first(); 329 330 if (firstPage.length == 0) 331 return; 332 333 if (lastPage.length == 0) 334 return; 335 336 // elsÅ oldal klónja az utolsó után 337 var firstClone = firstPage.clone(false); 338 339 firstClone.find('[id]').addBack('[id]').removeAttr('id'); 340 341 firstClone.removeClass( 342 'rb2-slider-pager-item-0 ' + 343 'rb2-slider-pager-item-firstinit ' + 344 'rb2-slider-pager-item-active ' + 345 'rb2-slider-pager-item-beforeactive ' + 346 'rb2-slider-pager-item-afteractive' 347 ); 348 349 firstClone.addClass('rb2-slider-loop-clone rb2-slider-loop-clone-first'); 350 firstClone.attr('data-page', maxPage); 351 firstClone.css('left', (maxPage * options.pagewidth) + '%'); 352 353 $containeritems.append(firstClone); 354 355 // utolsó oldal klónja az elsÅ elé
356 var lastClone = lastPage.clone(false); 357 358 lastClone.find('[id]').addBack('[id]').removeAttr('id'); 359 360 lastClone.removeClass( 361 'rb2-slider-pager-item-' + (maxPage - 1) + ' ' + 362 'rb2-slider-pager-item-firstinit ' + 363 'rb2-slider-pager-item-active ' + 364 'rb2-slider-pager-item-beforeactive ' + 365 'rb2-slider-pager-item-afteractive' 366 ); 367 368 lastClone.addClass('rb2-slider-loop-clone rb2-slider-loop-clone-last'); 369 lastClone.attr('data-page', -1); 370 lastClone.css('left', (-options.pagewidth) + '%'); 371 372 $containeritems.append(lastClone); 373 $containeritems.width(((maxPage + 2) * options.pagewidth) + '%'); 374 } 375 376 function InitItems() { 377 var pageitemcount = $containeritems.children().length; 378 if ((options.pagertype == 'AutoScroll') || (options.pagertype == 'ScrollDown') || (options.pagertype == 'ScrollDownName')) 379 pageitemcount = 1; 380 if (options.transition == 'fade') 381 pageitemcount = 1; 382 $containeritems.width((pageitemcount * options.pagewidth) + "%"); 383 InitInfiniteLoop(); 384 if (!started) 385 if (options.pagediff > 0) 386 $containeritems.css('left', options.pagediff + "%"); 387 388 if (options.pagertype != 'Number') 389 if (options.pagertype != 'NumberPrevNext') 390 if (options.pagertype != 'NumberPrevNextArrow') 391 if (options.autosizepageritem == "1") { 392 if (pageitemcount > 0) { 393 var pageritemwidth = options.pagewidth / pageitemcount; 394 $containeritems.find(".rb2-slider-pager-item").width(pageritemwidth + "%"); 395 } 396 } 397 if (options.swipetype != "none") 398 SetSwipe(); 399 SetPageHover(); 400 $containeritems.find('.rb2-slider-item-firstinit img').on('error', function () { 401 $(this).unbind("error").not('.variable-image').addClass('rb-imageerror'); 402 }); 403 404 $containeritems.find('.rb2-slider-pager-item-firstinit').removeClass('rb2-slider-pager-item-firstinit'); 405 $containeritems.find('.rb2-slider-item-firstinit').removeClass('rb2-slider-item-firstinit'); 406 407 if (!started) { 408 if (options.pagertype == 'AutoScroll') 409 SetAutoScroll(); 410 411 if (options.hoverstop) 412 SetAutoHover(); 413 414 $containeritems.keydown(function (event) { 415 KeyPress(event); 416 }); 417 if (enableResize) 418 $(window).on('resize', ResizePage); 419 } 420 421 $root.find('.rb2-nextprev-prev.rb2-pager-item-init').click(function (event) { 422 GotoPrev(); 423 RestartAutoPlaying(); 424 RBStopEvent(event); 425 return false; 426 }); 427 $root.find('.rb2-nextprev-next.rb2-pager-item-init').click(function (event) { 428 GotoNext(); 429 RestartAutoPlaying(); 430 RBStopEvent(event); 431 return false; 432 }); 433 434 AddPagerClick($pager); 435 if ($pagerbottom) 436 AddPagerClick($pagerbottom); 437 438 if (options.showtype) 439 InitShowType(); 440 } 441 442 function AddPagerClick(pager) { 443 pager.find('.rb2-pager-item-prev.rb2-pager-item-init').click(function (event) { 444 needloadpagejump = true; 445 GotoPrev(); 446 RestartAutoPlaying(); 447 RBStopEvent(event); 448 return false; 449 }); 450 pager.find('.rb2-pager-item-next.rb2-pager-item-init').click(function (event) { 451 needloadpagejump = true; 452 GotoNext(); 453 RestartAutoPlaying(); 454 RBStopEvent(event); 455 return false; 456 }); 457 pager.find('.rb2-pager-item').removeClass('rb2-pager-item-init'); 458 } 459 460 function InitThumbs() { 461 if (options.thumbhover) { 462 $root.find('.rb2-slider-thumb-item').hover(function () { 463 var thumbPage = $(this).data('thumbpage'); 464 if (actPage != thumbPage) 465 GoToPage(thumbPage, true); 466 }, function () { 467 468 }); 469 } 470 else { 471 $root.find('.rb2-slider-thumb-item').click(function () { 472 var thumbPage = $(this).data('thumbpage'); 473 if (options.onlythumb) 474 SetThumbSelected(thumbPage); 475 else 476 GoToPage(thumbPage, true); 477 }); 478 } 479 } 480 481 function SetEmptyClass(empty) { 482 if (options.showNoData) 483 empty = false; 484 if (empty) { 485 $root.addClass("rb2-slider-empty"); 486 if (options.sectionclass) 487 $("." + options.sectionclass).addClass("rb2-sectionslider-empty"); 488 } 489 else { 490 $root.removeClass("rb2-slider-empty"); 491 if (options.sectionclass) 492 $("." + options.sectionclass).removeClass("rb2-sectionslider-empty"); 493 } 494 } 495 496 function SetThumbSelected(number) { 497 $root.find('.rb2-slider-thumb-item').removeClass("rb2-slider-thumb-selected"); 498 $root.find('.rb2-slider-thumb-' + number).addClass("rb2-slider-thumb-selected"); 499 } 500 501 function InitShowType() { 502 $root.find('.rb2-showtype-item-firstinit').click(function () { 503 var newShopType = $(this).data('showtype'); 504 if (!newShopType) 505 return;
506 if (actShowType == newShopType) 507 return; 508 $root.find('.rb2-showtype-item').removeClass("rb2-showtype-item-selected"); 509 $containeritems.removeClass("rb2-container-items-" + actShowType); 510 actShowType = newShopType; 511 $root.find('.rb2-showtype-item-' + actShowType).addClass("rb2-showtype-item-selected"); 512 $containeritems.addClass("rb2-container-items-" + actShowType); 513 StartReload(); 514 }); 515 $root.find('.rb2-showtype-item-firstinit').removeClass('rb2-showtype-item-firstinit'); 516 } 517 518 function InitPageSize(newPageSize) { 519 $containeritems.removeClass("rb2-slider-pagesize-" + pageSize); 520 pageSize = newPageSize; 521 $containeritems.addClass("rb2-slider-pagesize-" + pageSize); 522 } 523 524 function KeyPress(event) { 525 if (mouseOver) { 526 if (event.which == 37) { 527 GotoPrev(); 528 } 529 if (event.which == 39) { 530 GotoNext(); 531 } 532 } 533 } 534 535 function GotoNext(stopshow) { 536 if (isWorking) 537 return; 538 539 if (stopshow === undefined) 540 stopshow = true; 541 542 if (CanUseInfiniteLoop()) { 543 if (actPage == GetMaxPage() - 1) { 544 ClearOther(); 545 546 if (GoToInfiniteFirstPage(stopshow)) 547 return; 548 } 549 550 } 551 552 if ((totalitemcount > ((actPage + 1) * pageSize)) || (options.diffPageSize && (lastloadeditemid > 0))) { 553 ClearOther(); 554 555 if (options.refreshtime > 0) { 556 Reload(actPage + 1); 557 } 558 else { 559 GoToPage(actPage + 1, stopshow); 560 GotoSwipePage(actPage); 561 } 562 563 if (options.marker) 564 RBScrollToId(options.marker); 565 } 566 } 567 568 function GoToInfiniteFirstPage(stopshow) { 569 if (!CanUseInfiniteLoop()) 570 return false; 571 572 var maxPage = GetMaxPage(); 573 574 if (actPage != maxPage - 1) 575 return false; 576 577 var clone = $containeritems.children('.rb2-slider-loop-clone-first'); 578 579 if (clone.length == 0) 580 return false; 581 582 if (stopshow && autoPlaying) 583 StopShow(); 584 585 isWorking = true; 586 587 $containeritems.stop(true, true).animate( 588 { 589 left: (-maxPage * options.pagewidth + options.pagediff) + "%" 590 }, 591 options.fadespeed, 592 function () { 593 SetPageActive(0, true); 594 } 595 ); 596 597 return true; 598 } 599 600 function GoToInfiniteLastPage(stopshow) { 601 if (!CanUseInfiniteLoop()) 602 return false; 603 604 if (actPage != 0) 605 return false; 606 607 var maxPage = GetMaxPage(); 608 609 var clone = $containeritems.children('.rb2-slider-loop-clone-last'); 610 611 if (clone.length == 0) 612 return false; 613 614 if (stopshow && autoPlaying) 615 StopShow(); 616 617 isWorking = true; 618 619 $containeritems.stop(true, true).animate( 620 { 621 left: (options.pagewidth + options.pagediff) + "%" 622 }, 623 options.fadespeed, 624 function () { 625 SetPageActive(maxPage - 1, true); 626 } 627 ); 628 629 return true; 630 } 631 632 function GotoPrev(stopshow) { 633 if (isWorking) 634 return; 635 636 if (stopshow === undefined) 637 stopshow = true; 638 639 if (CanUseInfiniteLoop()) { 640 if (actPage == 0) { 641 ClearOther(); 642 643 if (GoToInfiniteLastPage(stopshow)) 644 return; 645 } 646 } 647 648 if (actPage > 0) { 649 ClearOther(); 650 651 if (options.refreshtime > 0) { 652 Reload(actPage - 1); 653 } 654 else { 655 GoToPage(actPage - 1, stopshow); 656 GotoSwipePage(actPage); 657 } 658 659 if (options.marker) 660 RBScrollToId(options.marker); 661 } 662 } 663 664 function GotoSwipePage(number) { 665 if (options.transition == 'scroll') 666 if (options.swipetype == "normal") { 667 var imgwidth = $containeritems.find(".rb2-slider-pager-item").width(); 668 if (imgwidth > 0) 669 swipedistX = -number * imgwidth; 670 $containeritems.animate({ left: (-number * o
670ptions.pagewidth + options.pagediff) + "%" }, options.fadespeed); 671 } 672 } 673 674 function RefreshEventHandler() { 675 $root[0].onchange = function (e) { 676 FireEvent(e.id, e.azon); 677 } 678 } 679 680 function Refresh() { 681 if (autoPlaying) 682 return; 683 if (actPage != 0) 684 return; 685 if (isWorking) 686 return; 687 if (isLoading) 688 return; 689 if (justReloaded) { 690 justReloaded = false; 691 return; 692 } 693 Reload(); 694 } 695 696 function RefreshInit() { 697 $root.everyTime(options.refreshtime, function () { 698 Refresh(); 699 }); 700 } 701 702 function FireEvent(id, azon) { 703 if (!id && !azon) 704 return; 705 if (id == "Page") { 706 azon -= 1; 707 StartReload(azon); 708 return; 709 } 710 if (id == "GotoPage") { 711 GoToPage(azon, false); 712 return; 713 } 714 if (azon == "StartShow") { 715 StartShow(); 716 return; 717 } 718 if (azon == "NextPage") { 719 GotoNext(); 720 return; 721 } 722 if (azon == "PrevPage") { 723 GotoPrev(); 724 return; 725 } 726 if (azon == "DeleteAndStartShow") { 727 DeleteFirst(); 728 StartShow(); 729 return; 730 } 731 if (id == "Parameters") { 732 if (options.parameters == azon) 733 return; 734 options.parameters = azon; 735 StartReload(); 736 return; 737 } 738 if ((azon == "Reload") || (id == "Reload")) { 739 needloadpagejump = true; 740 StartReload(); 741 return; 742 } 743 } 744 745 function DeleteFirst() { 746 if (totalitemcount > 0) { 747 $containeritems.find(".rb2-slider-pager-item-0").remove(); 748 totalitemcount--; 749 InitItems(); 750 } 751 } 752 753 /* 754 * Go to Slide 755 */ 756 function GoToPage(number, stopshow, quick) { 757 758 isWorking = true; // Csakhogy az autoplay tudjon róla 759 760 if (stopshow) 761 StopShow(); 762 763 SetPageActive(number, quick); 764 } 765 766 function CheckData(success, gotoPage) { 767 CheckResize(false); 768 if (success) { 769 if ((gotoPage) && (gotoPage != actPage)) { 770 GoToPage(gotoPage, true, true); 771 } 772 else { 773 CheckMoreData(); 774 } 775 autoscrollnext = true; 776 if (options.pagertype == 'AutoScroll') 777 CheckAutoScrollNext(); 778 } 779 } 780 781 function CheckMoreData() { 782 if (isWorking) 783 return; 784 if (isLoading) 785 return; 786 if (options.loadall) 787 if (loadedPage != -1) 788 return; 789 if (options.onlyOnePage) 790 if (loadedPage != -1) 791 return; 792 if (options.maxpagecount > 0) { 793 if (actPage >= options.maxpagecount) 794 return; 795 } 796 if ((options.pagertype == 'Number') || (options.pagertype == 'NumberPrevNext') || (options.pagertype == 'NumberPrevNextArrow')) { 797 if (loadedPage != actPage) 798 GetAjaxData(actPage); 799 return; 800 } 801 if (options.refreshtime > 0) { 802 if (loadedPage < actPage) 803 GetAjaxData(actPage); 804 return; 805 } 806 var moredata = false; 807 if ((loadedPage < actPage) || ((loadedPage == actPage) && (options.pagertype != 'AutoScroll') && (options.pagertype != 'ScrollDown') && 808 (options.pagertype != 'ScrollDownName'))) { 809 if (!((loadedPage == 0) && (actPage == 0) && ((options.swipetype == "none") || (options.swipetype == "pager")))) 810 moredata = true; 811 } 812 if (options.pagewidth != 100) { 813 if (loadedPage <= actPage + 1) 814 moredata = true; 815 if (options.beforeafter > 1) 816 if (loadedPage <= actPage + options.beforeafter) 817 moredata = true; 818 } 819 820 /*if (options.startloadpage) 821 if (loadedPage < (options.startloadpage - 1)) 822 moredata = true;*/ 823 if (moredata) 824 if ((totalitemcount > ((loadedPage + 1) * pageSize)) || (options.refreshtime > 0) || (options.noFixData && ((actPage == 0) || (loadedPage == -1))) || (options.diffPageSize && (lastloadeditemid > 0))) 825 GetAjaxData(loadedPage + 1); 826 } 827 828 function CheckResize(init) { 829 if (!enableResize) 830 return; 831 if (!resizing) 832 return; 833 if (isWorking) 834 return; 835 if (isLoading) 836 return; 837 838 var bestMediaState = -1; 839 var bodyWidth = RBGetWindowsWidth(); 840 var bodyHeight = RBGetWindowsHeight(); 841 for (var i = 0; i < options.mediapagesizelist.length; i++) { 842 var item = options.mediapagesizelist[i]; 843 if ((bodyWidth < item.width) || (item.width == 0)) 844 if ((bestMediaState == -1) || (item.width > options.mediapagesizelist[bestMediaState])) 845 bestMediaState = i; 846 } 847 var newOrientation = "Landscape"; 848 if (bodyHeight > bodyWidth) 849 newOrientation = "Portrait"; 850 if (bestMediaState != -1) { 851 if ((mediaState != options.mediapagesizelist[bestMediaState].azon) || (newOrientation != orientationState)) { 852 mediaState = options.mediapagesizelist[bestMediaState].azon; 853 orientationState = newOrientation; 854 InitPageSize(options.mediapagesizelist[bestMediaState].pagesize); 855 init = false; 856 ClearOther(); 857 StartReload(); 858 } 859 } 860 resizing = false; 861 if (init) { 862 var newgotopage = options.startloadpage; 863 if (options.startpage > 0) { 864 if (options.startpage > newgotopage) 865 newgotopage = options.startpage; 866 } 867 GoToPage(newgotopage, false); 868 if (options.startpage > 0) 869 GotoSwipePage(actPage); 870 } 871 } 872 873 function GetAjaxData(number) { 874 DoGetAjaxData(number, dataversio); 875 } 876 877 function DoGetAjaxData(number, actdataversio) { 878 isLoading = true; 879 RBAjaxLoadingStart(number); 880 var loadall = options.loadall; 881 if (pageSize == 1) 882 if (number == 0)
883 if ((options.autoStart) || (totalitemcount < 10)) 884 if (totalitemcount > 0) 885 if (options.pagertype != 'None') 886 if (!options.flood) 887 loadall = true; 888 var startid = ""; 889 if (!started) 890 if (options.startid) { 891 startid = options.startid; 892 loadall = true; 893 } 894 var showNoData = "0"; 895 if (options.showNoData) 896 showNoData = "1"; 897 var skippagecount = options.skippagecount; 898 if ((options.pagertype == 'Number') || (options.pagertype == 'NumberPrevNext') || (options.pagertype == 'NumberPrevNextArrow')) 899 skippagecount = 0; 900 901 $.post(options.ajaxurl, { 902 id: id, pageindex: number, pagesize: pageSize, loadall: loadall, azon: options.azon, parameters: options.parameters, controllername: options.controllername, 903 mediastate: mediaState, orientationstate: orientationState, imagegrouptype: options.imagegrouptype, pagerType: options.pagertype, startid: startid, 904 showtype: actShowType, showtypetosummary: options.showtypetosummary, showtypetext: options.showtypetext, showNoData: showNoData, diffPageSize: options.diffPageSize, 905 lastitemid: lastloadeditemid, noPagerItem: options.noPagerItem, random: options.random, flood: options.flood, groups: options.groups, skipcount: options.skipcount, 906 skippagecount: skippagecount, onlyonepage: options.onlyOnePage, 907 maxcount: options.maxcount, otherslider: options.otherslider, sliderparam: options.sliderparam, thumbcount: options.thumbcount, onlythumb: options.onlythumb,
908 parentlistboxid: options.parentlistboxid, imageTitle: options.imageTitle, nameHtmlItemCode: options.nameHtmlItemCode 909 }, function (response) { 910 RBAjaxLoadingEnd(); 911 if (actdataversio != dataversio) { 912 isLoading = false; 913 CheckData(true, 0); 914 return; 915 } 916 var success = false; 917 var gotoPage = 0; 918 if (response) { 919 if (response.message != '') { 920 SetPageActive(actPage); 921 alert(response.message); 922 } 923 else { 924 if (response.summary != '') { 925 $root.find('.rb2-slider-summary-full').html(response.summary); 926 $root.find('.rb2-slider-summary-full').css('display', 'block'); 927 } 928 if (response.header != '') { 929 if (response.header == 'XXX') { 930 $root.find('.rb2-slider-header-refresh').html(""); 931 $root.find('.rb2-slider-header-refresh').css('display', 'none'); 932 } 933 else { 934 $root.find('.rb2-slider-header-refresh').html(response.header); 935 $root.find('.rb2-slider-header-refresh').css('display', 'block'); 936 } 937 } 938 if (number == 0) { 939 SetEmptyClass(response.totalItemCount == 0); 940 } 941 if (number == 0) { 942 if (options.thumbcount) { 943 $root.find('.rb2-slider-thumb-full').html(response.thumb); 944 InitThumbs(); 945 } 946 } 947 if (response.containeritems != '') { 948 // $containeritems.html(response.containeritems); 949 if (showNoData == "1") 950 response.containeritems = response.containeritems.replace("%NoData%", options.noData); 951 if (response.pageitemheader) 952 $containeritems.append(response.pageitemheader); 953 if (options.refreshtime > 0) { 954 if (response.containeritems != $containeritems.html()) 955 $containeritems.html(response.containeritems); 956 } 957 else { 958 if (options.flood) { 959 if ((number == 0) && ((response.totalItemCount == 0) || loadall)) { 960 $containeritems.html(''); 961 $containeritems.append(response.containeritems); 962 } 963 else { 964 CheckFloodGroups(); 965 for (var i = 0; i < pageSize; i++) { 966 var html = $(response.containeritems).find(".rb2-slider-flood-group-" + (i + 1)); 967 if (html.length > 0) 968 $containeritems.find(".rb2-slider-flood-group-" + (i + 1)).append(html.html()); 969 } 970 } 971 } 972 else { 973 if ((options.pagertype == 'Number') || (options.pagertype == 'NumberPrevNext') || (options.pagertype == 'NumberPrevNextArrow')) 974 $containeritems.html(''); 975 $containeritems.append(response.containeritems); 976 } 977 } 978 if ((options.refreshtime > 0) || (options.noFixData && (number == 0))) 979 totalitemcount = response.totalItemCount; 980 gotoPage = response.gotoPage; 981 InitItems();
982 loadedPage = number; 983 if (loadall) 984 if (totalitemcount > 0) 985 loadedPage = totalitemcount - 1; 986 lastloadeditemid = response.lastitemid; 987 success = true; 988 989 if (options.diffPageSize) 990 if (lastloadeditemid < 1) 991 $root.find('#' + id + '-pager').addClass("rb2-pager-disable"); 992 // if ((options.refreshtime > 0)) 993 SetPageActive(actPage); 994 if (options.thumbcount > 0) 995 SetThumbSelected(number); 996 SaveState(); 997 } 998 if (response.urlChange) 999 RBChangeUrl("111", response.urlChange); 1000 } 1001 } 1002 isLoading = false; 1003 CheckData(success, gotoPage); 1004 }).fail(function (response) { 1005 RBAjaxLoadingEnd(); 1006 isLoading = false; 1007 /* RBAjaxPostError();*/ 1008 }); 1009 } 1010 1011 function SetPageActive(number, quick) { 1012 var oldactpage = actPage; 1013 actPage = number; 1014 if (started) { 1015 if (options.swipetype != 'normal') { 1016 if (options.loadall) { 1017 if (options.transition == 'fade') { 1018 var fadespeed = options.fadespeed; 1019 if (!started) 1020 fadespeed = 0; 1021 $children.not(':eq(' + actPage + ')').fadeOut(fadespeed); 1022 $children.eq(actPage).fadeIn(fadespeed); 1023 } 1024 if (options.transition == 'scroll') { 1025 if (options.pagertype != 'AutoScroll') 1026 if (options.pagertype != 'ScrollDown') 1027 if (options.pagertype != 'Number') 1028 if (options.pagertype != 'NumberPrevNext') 1029 if (options.pagertype != 'NumberPrevNextArrow') 1030 if (options.pagertype != 'ScrollDownName') { 1031 if (quick) 1032 $containeritems.css('left', (-number * options.pagewidth + options.pagediff) + "%"); 1033 else 1034 $containeritems.animate({ left: (-number * options.pagewidth + options.pagediff) + "%" }, options.fadespeed); 1035 } 1036 } 1037 } 1038 else { 1039 if (options.transition == 'scroll') 1040 if (options.pagertype != 'AutoScroll') 1041 if (options.pagertype != 'ScrollDown') 1042 if (options.pagertype != 'Number') 1043 if (options.pagertype != 'NumberPrevNext') 1044 if (options.pagertype != 'NumberPrevNextArrow') 1045 if (options.pagertype != 'ScrollDownName') { 1046 if (options.startpage > 0) 1047 quick = true; 1048 if (quick) 1049 $containeritems.css('left', (-number * options.pagewidth + options.pagediff) + "%"); 1050 else 1051 $containeritems.animate({ left: (-number * options.pagewidth + options.pagediff) + "%" }, options.fadespeed); 1052 } 1053 // $containeritems.animate({ left: "0%" }, options.fadespeed); 1054 } 1055 } 1056 } 1057 1058 if ($autoControls) {
1059 $autoControls.find('.rb2-autocontrols-item').removeClass("rb2-autocontrols-active"); 1060 $autoControls.find('.rb2-autocontrols-item').eq(actPage).addClass("rb2-autocontrols-active"); 1061 } 1062 1063 $root.find('.rb2-nextprev').addClass("rb2-nextprev-disable"); 1064 $pager.find('.rb2-pager-item-link').addClass("rb2-pager-item-disable"); 1065 if ($pagerbottom) 1066 $pagerbottom.find('.rb2-pager-item-link').addClass("rb2-pager-item-disable"); 1067 var validPage = actPage + 1 + options.actPageDiff; 1068 if (validPage > 1) { 1069 $root.find('.rb2-nextprev-prev').removeClass("rb2-nextprev-disable"); 1070 $pager.find('.rb2-pager-item-prev').removeClass("rb2-pager-item-disable"); 1071 if ($pagerbottom) 1072 $pagerbottom.find('.rb2-pager-item-prev').removeClass("rb2-pager-item-disable"); 1073 } 1074 if ((totalitemcount > (validPage * pageSize)) || options.diffPageSize) { 1075 $root.find('.rb2-nextprev-next').removeClass("rb2-nextprev-disable"); 1076 $pager.find('.rb2-pager-item-next').removeClass("rb2-pager-item-disable"); 1077 if ($pagerbottom) 1078 $pagerbottom.find('.rb2-pager-item-next').removeClass("rb2-pager-item-disable"); 1079 } 1080 $pager.find('.rb2-pager-item-counter-actpage').html(validPage); 1081 if ($pagerbottom) 1082 $pagerbottom.find('.rb2-pager-item-counter-actpage').html(validPage); 1083 var actItems = validPage * pageSize; 1084 if (actItems > totalitemcount) 1085 actItems = totalitemcount; 1086 $pager.find('.rb2-pager-itemcounter-actitems').html(actItems); 1087 if ($pagerbottom) 1088 $pagerbottom.find('.rb2-pager-itemcounter-actitems').html(actItems); 1089 1090 $root.find('.rb2-slider-pager-item').removeClass("rb2-slider-pager-item-active"); 1091 $root.find('.rb2-slider-pager-item').removeClass("rb2-slider-pager-item-beforeactive"); 1092 $root.find('.rb2-slider-pager-item').removeClass("rb2-slider-pager-item-afteractive"); 1093 $root.find('.rb2-slider-pager-item-' + number).addClass("rb2-slider-pager-item-active"); 1094 $root.find('.rb2-slider-pager-item-' + (number - 1)).addClass("rb2-slider-pager-item-beforeactive"); 1095 $root.find('.rb2-slider-pager-item-' + (number + 1)).addClass("rb2-slider-pager-item-afteractive"); 1096 if (options.beforeafter > 0) { 1097 for (var i = 0; i < 100; i++) { 1098 if (i < options.beforeafter) { 1099 $root.find('.rb2-slider-pager-item').removeClass("rb2-slider-pager-item-beforeactive-" + (i + 1)); 1100 $root.find('.rb2-slider-pager-item').removeClass("rb2-slider-pager-item-afteractive-" + (i + 1)); 1101 } 1102 if (i > 0) { 1103 $root.find('.rb2-slider-pager-item-' + (number - (i + 1))).addClass("rb2-slider-pager-item-beforeactive"); 1104 $root.find('.rb2-slider-pager-item-' + (number + (i + 1))).addClass("rb2-slider-pager-item-afteractive"); 1105 } 1106 if (i < options.beforeafter) { 1107 $root.find('.rb2-slider-pager-item-' + (number - (i + 1))).addClass("rb2-slider-pager-item-beforeactive-" + (i + 1)); 1108 $root.find('.rb2-slider-pager-item-' + (number + (i + 1))).addClass("rb2-slider-pager-item-afteractive-" + (i + 1)); 1109 } 1110 } 1111 } 1112 1113 var maxPage = GetMaxPage(); 1114 var enablepager = false; 1115 if (maxPage > 1) 1116 enablepager = true; 1117 if (options.diffPageSize) 1118 // if ((actPage == 1) || (lastloadeditemid > 0)) 1119 enablepager = true; 1120 if (enablepager) { 1121 $pager.find('.rb2-pager-item-counter-maxpage').html(maxPage); 1122 if ($pagerbottom) 1123 $pagerbottom.find('.rb2-pager-item-counter-maxpage').html(maxPage); 1124 $pager.find('.rb2-pager-itemcounter-maxitems').html(total
1124itemcount); 1125 if ($pagerbottom) 1126 $pagerbottom.find('.rb2-pager-itemcounter-maxitems').html(totalitemcount); 1127 $pager.removeClass("rb2-pager-disable"); 1128 if ($pagerbottom) 1129 $pagerbottom.removeClass("rb2-pager-disable"); 1130 RBUpdateItemHRefAttr('#' + id + ' .rb2-pager-item-link-prev', 'page', validPage - 2); 1131 RBUpdateItemHRefAttr('#' + id + ' .rb2-pager-item-link-next', 'page', validPage); 1132 } 1133 else { 1134 $pager.addClass("rb2-pager-disable"); 1135 if ($pagerbottom) 1136 $pagerbottom.addClass("rb2-pager-disable"); 1137 } 1138 1139 if (options.thumbcount > 0) 1140 SetThumbSelected(actPage); 1141 1142 if ((options.pagertype == 'Number') || (options.pagertype == 'NumberPrevNext') || (options.pagertype == 'NumberPrevNextArrow')) { 1143 var numberactpage = actPage; 1144 if (!started) 1145 if (options.skippagecount > 0) 1146 numberactpage = options.skippagecount; 1147 SetNumberPager($pager, numberactpage, maxPage - 1); 1148 if ($pagerbottom) 1149 SetNumberPager($pagerbottom, numberactpage, maxPage - 1); 1150 if (started) 1151 RBGoToId(id); 1152 } 1153 if (options.loadpagejumpOffset) 1154 if (started) 1155 if (needloadpagejump) { 1156 needloadpagejump = false; 1157 RBGoToId(id, options.loadpagejumpOffset); 1158 } 1159 1160 isWorking = false; 1161 1162 if (options.otherslider) { 1163 var othersliderdiv = $root.find('.rb2-otherslider-' + actPage); 1164 var othersliderdata = $(othersliderdiv).data("othersliderparam"); 1165 if (othersliderdata) { 1166 if (othersliderdata != lastothersliderdata) { 1167 lastothersliderdata = othersliderdata; 1168 FireRefreshEventHandler(options.otherslider, "Parameters", othersliderdata); 1169 } 1170 } 1171 } 1172 1173 CheckData(true, 0); 1174 } 1175 1176 function SetNumberPager(pager, actPage, maxPage) { 1177 pager.html(""); 1178 if (maxPage > 0) 1179 AddNumberPagerItem(pager, actPage - 1, actPage, options.prevstr, actPage > 0); 1180 if (maxPage > 0) 1181 AddNumberPagerItem(pager, 0, actPage, "", true); 1182 if (maxPage > 0) 1183 AddNumberPagerItem(pager, 1, actPage, "", true); 1184 if (options.showpager3number) 1185 if (maxPage > 1) 1186 AddNumberPagerItem(pager, 2, actPage, "", true); 1187 1188 var diff = 0; 1189 if (!options.showpager3number) 1190 diff = -1; 1191 1192 if (maxPage > 5) { 1193 if ((actPage > (1 + diff)) && (actPage < maxPage - (1 + diff))) { 1194 if (actPage > (4 + diff)) 1195 AddNumberPagerDelimItem(pager); 1196 if (actPage > (3 + diff)) 1197 AddNumberPagerItem(pager, actPage - 1, actPage, "", true); 1198 if ((actPage > (2 + diff)) && (actPage < maxPage - (2 + diff))) 1199 AddNumberPagerItem(pager, actPage, actPage, "", true); 1200 if (actPage < maxPage - (3 + diff)) 1201 AddNumberPagerItem(pager, actPage + 1, actPage, "", true); 1202 if (actPage < maxPage - (4 + diff)) 1203 AddNumberPagerDelimItem(pager); 1204 } 1205 if ((actPage < (2 + diff)) || (actPage > maxPage - (2 + diff))) { 1206 AddNumberPagerDelimItem(pager); 1207 } 1208 } 1209 1210 if (options.showpager3number) 1211 if (maxPage > (4 + diff)) 1212 AddNumberPagerItem(pager, maxPage - 2, actPage, "", true); 1213 if (maxPage > (3 + diff)) 1214 AddNumberPagerItem(pager, maxPage - 1, actPage, "", true); 1215 if (maxPage > (2 + diff)) 1216 AddNumberPagerItem(pager, maxPage, actPage, "", true); 1217 if (maxPage > 0) 1218 AddNumberPagerItem(pager, actPage + 1, actPage, options.nextstr, actPage < maxPage); 1219 } 1220 1221 function AddNumberPagerItem(pager, pageNum, actPage, title, enabled) { 1222 var rootClass = "rb2-pager-item-number"; 1223 var itemClass = "rb2-pager-item-number-" + pageNum; 1224 var className = rootClass + " " + itemClass; 1225 if (pageNum == actPage) 1226 className += " " + rootClass + "-selected"; 1227 if (title == '') 1228 title = (pageNum + 1).toString(); 1229 else 1230 className += " " + rootClass + "-prevnext"; 1231 if (!enabled) 1232 className += " " + rootClass + "-disabled"; 1233 if (title == '.') 1234 title = ""; 1235 var numberItem = "<div class='" + className + "'>" + title + "</div>"; 1236 pager.append(numberItem); 1237 1238 if (enabled) 1239 if (pageNum != actPage) 1240 pager.find('.' + itemClass).click(function () { 1241 GoToPage(pageNum, true); 1242 }); 1243 } 1244 1245 function AddNumberPagerDelimItem(pager) { 1246 var delimitem = "<div class='rb2-pager-item-number-delim'>...</div>"; 1247 pager.append(delimitem); 1248 } 1249 1250 function ClearOther() { 1251 if (!options.cleardiv) 1252 return; 1253 if (!options.clearselectclass) 1254 return; 1255 $(options.cleardiv).removeClass(options.clearselectclass); 1256 } 1257 1258 function StartShow() { 1259 if (autoPlaying) 1260 return; 1261 1262 autoPlaying = true; 1263 1264 interval = setInterval(function () { 1265 if (!isWorking) { 1266 if (CanUseInfiniteLoop()) { 1267 GotoNext(false); 1268 } 1269 else { 1270 var number = 0;
1271 if (totalitemcount > ((actPage + 1) * pageSize)) { 1272 number = actPage + 1; 1273 } 1274 var quickfirst = false; 1275 if (options.quickfirst) 1276 if (number == 0) 1277 quickfirst = true; 1278 GoToPage(number, false, quickfirst); 1279 } 1280 } 1281 }, options.speed); 1282 1283 if ($autoControls) { 1284 $autoControls.find('.rb2-autocontrols-startstop') 1285 .removeClass('rb2-autocontrols-start') 1286 .addClass('rb2-autocontrols-stop'); 1287 } 1288 } 1289 1290 /* 1291 * Stop the show 1292 */ 1293 function StopShow() { 1294 hooverAutoPlaying = false; 1295 if (autoPlaying) { 1296 clearInterval(interval); 1297 1298 if ($autoControls) { 1299 $autoControls.find('.rb2-autocontrols-startstop').removeClass('rb2-autocontrols-stop').addClass('rb2-autocontrols-start'); 1300 } 1301 autoPlaying = false; 1302 } 1303 } 1304 1305 function RestartAutoPlaying() { 1306 if (!options.autoStart) 1307 return; 1308 1309 if (options.hoverstop && mouseOver) { 1310 hooverAutoPlaying = true; 1311 return; 1312 } 1313 1314 StartShow(); 1315 } 1316 1317 function RBAjaxLoadingStart(number) { 1318 var enableAjaxLoading = false; 1319 if (!started) 1320 enableAjaxLoading = true; 1321 if ((options.pagertype == 'AutoScroll') || (options.pagertype == 'ScrollDown') || (options.pagertype == 'ScrollDownName')) 1322 enableAjaxLoading = true; 1323 1324 if (enableAjaxLoading) 1325 $root.find('.rb2-slider-loading').addClass('ajax-loading'); 1326 if ((number == 0) || ((options.pagertype == 'Number') || (options.pagertype == 'NumberPrevNext') || (options.pagertype == 'NumberPrevNextArrow'))) 1327 $container.addClass('ajax-loading'); 1328 } 1329 1330 function RBAjaxLoadingEnd() { 1331 $root.find('.rb2-slider-loading').removeClass('ajax-loading'); 1332 $container.removeClass('ajax-loading'); 1333 } 1334 1335 /* 1336 * Handles hover events for auto shows 1337 */ 1338 function SetAutoHover() { 1339 // hover over the slider window 1340 $container.hover(function () { 1341 mouseOver = true; 1342 hooverAutoPlaying = false; 1343 if (autoPlaying) { 1344 StopShow(); 1345 hooverAutoPlaying = true; 1346 } 1347 if (options.enableKeyPress == 1) 1348 $containeritems.focus(); 1349 }, function () { 1350 mouseOver = false; 1351 if (hooverAutoPlaying) { 1352 StartShow(); 1353 hooverAutoPlaying = false; 1354 } 1355 }); 1356 } 1357 1358 /* 1359 * Resize 1360 */ 1361 var ResizePage = function () { 1362 resizing = true; 1363 CheckResize(false); 1364 } 1365 1366 function StartReload(newpage) { 1367 dataversio++; 1368 justReloaded = true; 1369 Reload(newpage); 1370 } 1371 1372 function CheckFloodGroups() { 1373 if (pageSize > 0) { 1374 var groups = $containeritems.find(".rb2-slider-flood-group-1"); 1375 if (groups.length == 0) { 1376 var grouppagewidth = options.pagewidth / pageSize + "%"; 1377 for (var i = 0; i < pageSize; i++) { 1378 var floodgroup = "<div class='rb2-slider-flood-group rb2-slider-flood-group-" + (i + 1) + "' style='width: " + grouppagewidth + "'></div>"; 1379 $containeritems.append(floodgroup); 1380 } 1381 } 1382 } 1383 } 1384 1385 function Reload(newpage) { 1386 if (!newpage) 1387 newpage = 0; 1388 if (newpage < 0) 1389 newpage = 0; 1390 swipesecondpagechecked = false; 1391 loadedPage = newpage - 1; 1392 lastloadeditemid = 0; 1393 var fullreload = false; 1394 if ((newpage == 0) || (options.refreshtime > 0)) { 1395 fullreload = true; 1396 if (options.refreshtime == 0) { 1397 $containeritems.html(''); 1398 if (options.flood) 1399 CheckFloodGroups(); 1400 } 1401 if (options.startpage > 0) 1402 if (newpage < (options.startpage)) 1403 newpage = options.startpage; 1404 if (options.startloadpage) 1405 if (newpage < (options.startloadpage)) 1406 newpage = options.startloadpage; 1407 } 1408 else { 1409 if (options.pagertype == 'AutoScroll') 1410 do { 1411 var pages = $root.find('.rb2-slider-pager-item'); 1412 if (!pages) 1413 break; 1414 if (pages.length == 0) 1415 break; 1416 var page = $(pages[pages.length - 1]); 1417 if (!page) 1418 break; 1419 var pagenum = page.data("page"); 1420 if (!pagenum) 1421 break; 1422 if (pagenum < newpage) 1423 break; 1424 page.remove(); 1425 } while (true); 1426 } 1427 actPage = newpage - 1; 1428 $containeritems.width("0%"); 1429 if (options.transition == 'scroll') { 1430 if (options.swipetype != "pager") { 1431 swipedistX = 0; 1432 if (options.pagertype != 'AutoScroll') 1433 if (options.pagertype != 'ScrollDown') 1434 if (options.pagertype != 'ScrollDownName') 1435 if (options.pagertype != 'Number') 1436 if (options.pagertype != 'NumberPrevNext') 1437 if (options.pagertype != 'NumberPrevNextArrow') 1438 $containeritems.css('left', '0%'); 1439 } 1440 } 1441 GoToPage(newpage, false); 1442 if (fullreload) 1443 if (options.startpage > 0) 1444 GotoSwipePage(actPage); 1445 } 1446 1447 /* 1448 * Set AutoControls 1449 */ 1450 function SetAutoControl() {
1451 $autoControls.find('.rb2-autocontrols-startstop').click(function () { 1452 if ($(this).hasClass('rb2-autocontrols-stop')) { 1453 StopShow(); 1454 } else if ($(this).hasClass('rb2-autocontrols-start')) { 1455 StartShow(); 1456 } 1457 return false; 1458 }); 1459 1460 $autoControls.find('.rb2-autocontrols-item').click(function () { 1461 var number = $autoControls.children().index(this) - 1; 1462 GoToPage(number, true); 1463 return false; 1464 }); 1465 } 1466 1467 function GetMaxPage() { 1468 if (totalitemcount < 1) 1469 return 0; 1470 if (pageSize < 1) 1471 return 0; 1472 var maxPage = Math.ceil(totalitemcount / pageSize); 1473 if (options.maxpagecount > 0) 1474 if (maxPage > options.maxpagecount) 1475 maxPage = options.maxpagecount; 1476 return maxPage; 1477 } 1478 1479 /* 1480 * Swipe 1481 */ 1482 function SetSwipe() { 1483 if (pageSize > 0) 1484 if (actPage < 1) 1485 if (!options.noFixData) 1486 if (!options.diffPageSize) 1487 if (pageSize >= totalitemcount) 1488 return; 1489 $containeritems.find('.rb2-slider-pager-item-firstinit') 1490 //.removeClass('rb2-slider-pager-item-firstinit') 1491 //$container.find('.rb2-slider-item-firstinit') 1492 //.removeClass('rb2-slider-item-firstinit') 1493 .on('swipeleft', function (e) { 1494 if (options.swipetype == "pager") { 1495 ClearOther(); 1496 1497 if (CanUseInfiniteLoop() && actPage == GetMaxPage() - 1) { 1498 GoToInfiniteFirstPage(true); 1499 RestartAutoPlaying(); 1500 return; 1501 } 1502 1503 if (totalitemcount > ((actPage + 1) * pageSize)) { 1504 GoToPage(actPage + 1, true); 1505 RestartAutoPlaying(); 1506 } 1507 } 1508 }) 1509 1510 .on('swiperight', function (e) { 1511 if (options.swipetype == "pager") { 1512 ClearOther(); 1513 1514 if (CanUseInfiniteLoop() && actPage == 0) { 1515 GoToInfiniteLastPage(true); 1516 RestartAutoPlaying(); 1517 return; 1518 } 1519 1520 if (actPage > 0) { 1521 GoToPage(actPage - 1, true); 1522 RestartAutoPlaying(); 1523 } 1524 } 1525 }) 1526 .on('movestart', function (e) { 1527 // If the movestart heads off in a upwards or downwards 1528 // direction, prevent it so that the browser scrolls normally. 1529 if ((e.distX > e.distY && e.distX < -e.distY) || 1530 (e.distX < e.distY && e.distX > -e.distY)) { 1531 e.preventDefault(); 1532 return; 1533 } 1534 }) 1535 .on('move', function (e) { 1536 StopShow(); 1537 if (!swipesecondpagechecked) { 1538 swipesecondpagechecked = true; 1539 if (loadedPage == 0) 1540 CheckMoreData(); 1541 } 1542 var imgwidth = $containeritems.find(".rb2-slider-pager-item").width(); 1543 if (imgwidth > 0) { 1544 var d = options.pagewidth; 1545 if (options.swipetype == "pager") { 1546 if (actPage == 0 && !CanUseInfiniteLoop()) 1547 d = 50; 1548 if (totalitemcount <= ((actPage + 1) * pageSize)) 1549 d = 50; 1550 $containeritems.css('left', ((-actPage * options.pagewidth + options.pagediff) + (e.distX / imgwidth * d)) + '%'); 1551 } 1552 else { 1553 newswipedistX = e.distX; 1554 distX = swipedistX + e.distX; 1555 if (distX > (imgwidth / 2)) 1556 distX = imgwidth / 2; 1557 var maxPage = GetMaxPage(); 1558 if (distX < -(maxPage - 1) * imgwidth - imgwidth / 2) 1559 distX = -(maxPage - 1) * imgwidth - imgwidth / 2; 1560 $containeritems.css('left', (distX / imgwidth * d) + '%'); 1561 1562 if (maxPage > 0) { 1563 var swipeActPage = -Math.ceil(distX / (imgwidth)); 1564 if (swipeActPage < 1) 1565 swipeActPage = 0; 1566 if (swipeActPage > maxPage) 1567 swipeActPage = maxPage; 1568 if (actPage != swipeActPage) { 1569 ClearOther(); 1570 SetPageActive(swipeActPage); 1571 } 1572 } 1573 } 1574 } 1575 }) 1576 .on('moveend', function (e) { 1577 if (options.swipetype == "pager") { 1578 if (CanUseInfiniteLoop() && 1579 ((actPage == GetMaxPage() - 1 && e.distX < 0) || 1580 (actPage == 0 && e.distX > 0))) { 1581 RestartAutoPlaying(); 1582 return; 1583 } 1584 1585 ClearOther(); 1586 GoToPage(actPage, false); 1587 RestartAutoPlaying(); 1588 } 1589 else { 1590 swipedistX = swipedistX + newswipedistX; 1591 if (swipedistX > 0) { 1592 swipedistX = 0; 1593 $containeritems.css('left', '0%'); 1594 } 1595 var imgwidth = $containeritems.find(".rb2-slider-pager-item").width(); 1596 if (imgwidth > 0) { 1597 var maxPage = GetMaxPage(); 1598 if (swipedistX < -(maxPage - 1) * imgwidth) { 1599 swipedistX = -(maxPage - 1) * imgwidth;
1600 $containeritems.css('left', (swipedistX / imgwidth * options.pagewidth + options.pagediff) + '%'); 1601 } 1602 } 1603 RestartAutoPlaying(); 1604 } 1605 }) 1606 } 1607 /* 1608 * PageHover 1609 */ 1610 1611 function SetPageHover() { 1612 $containeritems.find('.rb2-slider-pager-item-firstinit').find('.rb2-slider-item').hover(function () { 1613 $(this).find('.hover_full').css('display', 'block'); 1614 }, function () { 1615 $(this).find('.hover_full').css('display', 'none'); 1616 }); 1617 } 1618 1619 /* 1620 * AutoScroll 1621 */ 1622 function SetAutoScroll() { 1623 $(window).scroll(function () { 1624 CheckAutoScrollNext(); 1625 }); 1626 } 1627 1628 function CheckAutoScrollNext() { 1629 var diff = $(window).height(); 1630 if (options.flood) 1631 diff += $(window).height(); 1632 if ((($(window).scrollTop() + $(window).height() + diff) >= ($root.position().top + $root.height())) || 1633 (($(window).scrollTop() + $(window).height()) == $(document).height())) { 1634 if (autoscrollnext) 1635 if (loadedPage == actPage) { 1636 autoscrollnext = false; 1637 GotoNext(); 1638 } 1639 } 1640 } 1641 1642 /* 1643 Start The Show 1644 */ 1645 this.each(function () { 1646 base.initShow(); 1647 }); 1648 1649 1650 return this; 1651 } 1652 1653 1654 1655})(jQuery); 1656
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.