1EC$(function($) { 2 var filter = "win16|win32|win64|mac|macintel"; 3 var device = "pc"; 4 if (navigator.platform) { 5 if (filter.indexOf(navigator.platform.toLowerCase()) < 0) { device = "mobile"; } 6 } 7 8 /** 9 * ìíìì¸, ìí íë보기(íì ) - ìë¹ìê° í ì¸íì */ 10 var oPriceInfoEl = $('#ec-product-price-info'); 11 if (oPriceInfoEl.length > 0) { 12 var salePriceEl = $('#span_product_price_text'); 13 percentageCul(oPriceInfoEl, salePriceEl); 14 } 15 16 /** 17 * ìí목ë¡/ë©ì¸ì§ì´ - ìë¹ìê° í ì¸íì*/ 18 var mainEl = $("#wrap"); 19 if (mainEl.length > 0) { 20 var productListEl = $('.xans-product-listmain, .xans-product-listrecommend, .xans-product-listnew, .xans-product-listnormal'); 21 for (var i = 0; i < productListEl.length; i++) { 22 var prdListEl = productListEl.eq(i).find('.prdList > li'); 23 for (var j = 0; j < prdListEl.length; j++) { 24 var priceEl = prdListEl.eq(j).find('.description'), 25 salePriceEl = priceEl.find('.xans-product > li').eq(1).find('span:eq(1)'); 26 27 if (device == "mobile") { 28 salePriceEl = priceEl.find('.spec >li.price'); 29 } percentageCul(priceEl, salePriceEl); 30 } 31 } 32 } 33 34 function percentageCul(target, salePriceEl) { 35 var iCustomPrice = parseInt(target.attr('ec-data-custom')), 36 iPrice = parseInt(target.attr('ec-data-price')), 37 sDisplayAmount = 'p', // p:í ì¸ì¨, w:í ì¸ê¸ì¡ 38 iOfftoFixed = 0, // í ì¸ì¨ ììì ì릿ì 39 sSaleText = '', 40 regexp = /B(?=(d{3})+(?!d))/g; 41 42 if (iCustomPrice > 0 && iPrice > 0 && iPrice != iCustomPrice) { 43 if (sDisplayAmount == 'p') { 44 sSaleText = '(' + (((iCustomPrice - iPrice) / iCustomPrice) * 100).toFixed(iOfftoFixed) + '% í ì¸)'; 45 /* sSaleText = (((iCustomPrice - iPrice) / iCustomPrice) * 100).toFixed(iOfftoFixed) + '% í ì¸'; */ 46 } else if (sDisplayAmount == 'w') { 47 sSaleText = parseInt(iCustomPrice - iPrice).toString().replace(regexp, ',') + 'ì OFF'; 48 } 49 salePriceEl.append('<span class="ec-sale-rate"> ' + sSaleText + '</span>'); 50 } 51 } 52}); 53/** 54 * ìì§ì´ë ë°°ë Jquery Plug-in 55 * @author cafe24 56 */ 57 58(function($){ 59 60 $.fn.floatBanner = function(options) { 61 options = $.extend({}, $.fn.floatBanner.defaults , options); 62 63 return this.each(function() { 64 var aPosition = $(this).position(); 65 var jbOffset = $(this).offset(); 66 var node = this; 67 68 $(window).scroll(function() { 69 var _top = $(document).scrollTop(); 70 _top = (aPosition.top < _top) ? _top : aPosition.top; 71 72 setTimeout(function () { 73 var newinit = $(document).scrollTop(); 74 75 if ( newinit > jbOffset.top ) { 76 _top -= jbOffset.top; 77 var container_height = $("#wrap").height(); 78 var quick_height = $(node).height(); 79 var cul = container_height - quick_height; 80 if(_top > cul){ 81 _top = cul; 82 } 83 }else { 84 _top = 0; 85 } 86 87 $(node).stop().animate({top: _top}, options.animate); 88 }, options.delay); 89 }); 90 }); 91 }; 92 93 $.fn.floatBanner.defaults = { 94 'animate' : 500, 95 'delay' : 500 96 }; 97 98})(jQuery); 99 100/** 101 * 문ì 구ëí ìì 102 */ 103$(document).ready(function(){ 104 $('#banner:visible, #quick:visible').floatBanner(); 105 106 //placeholder 107 $(".ePlaceholder input, .ePlaceholder textarea").each(function(i){ 108 var placeholderName = $(this).parents().attr('title'); 109 $(this).attr("placeholder", placeholderName); 110 }); 111 /* placeholder ie8, ie9 */ 112 $.fn.extend({ 113 placeholder : function() { 114 //IE 8 ë²ì ìë hasPlaceholderSupport() ê°ì´ false를 ë¦¬í´ 115 if (hasPlaceholderSupport() === true) { 116 return this; 117 } 118 //hasPlaceholderSupport() ê°ì´ false ì¼ ê²½ì° ìë ì½ë를 ì¤í 119 return this.each(function(){ 120 var findThis = $(this); 121 var sPlaceholder = findThis.attr('placeholder'); 122 if ( ! sPlaceholder) { 123 return; 124 } 125 findThis.wrap('<label class="ePlaceholder" />'); 126 var sDisplayPlaceHolder = $(this).val() ? ' style="display:none;"' : ''; 127 findThis.before('<span' + sDisplayPlaceHolder + '>' + sPlaceholder + '</span>'); 128 this.onpropertychange = function(e){ 129 e = event || e; 130 if (e.propertyName == 'value') { 131 $(this).trigger('focusout'); 132 } 133 }; 134 //ê³µíµ class 135 var agent = navigator.userAgent.toLowerCase(); 136 if (agent.indexOf("msie") != -1) { 137 $(".ePlaceholder").css({"position":"relative"}); 138 $(".ePlaceholder span").css({"position":"absolute", "padding":"0 4px", "color":"#878787"}); 139 $(".ePlaceholder label").css({"padding":"0"}); 140 } 141 }); 142 } 143 }); 144 145 $(':input[placeholder]').placeholder(); //placeholder() í¨ì를 í¸ì¶ 146 147 //í´ë¦íë©´ placeholder ì¨ê¹ 148 $('body').delegate('.ePlaceholder span', 'click', function(){ 149 $(this).hide(); 150 }); 151 152 //inputì°½ í¬ì»¤ì¤ ì¸ ì¼ë placeholder ì¨ê¹ 153 $('body').delegate('.ePlaceholder :input', 'focusin', function(){ 154 $(this).prev('span').hide(); 155 }); 156 157 //inputì°½ í¬ì»¤ì¤ ìì ì¼ë value ê° true ì´ë©´ ì¨ê¹, false ì´ë©´ ë³´ì¬ì§ 158 $('body').delegate('.ePlaceholder :input', 'focusout', function(){ 159 if (this.value) { 160 $(this).prev('span').hide(); 161 } else { 162 $(this).prev('span').show(); 163 } 164 }); 165 166 //inputì placeholderê° ì§ìì´ ëë©´ true를 ìëë©´ false를 리í´ê°ì¼ë¡ ëì ¸ì¤ 167 function hasPlaceholderSupport() { 168 if ('placeholder' in document.createElement('input')) { 169 return true; 170 } else { 171 return false;
172 } 173 } 174}); 175 176/** 177 * ì¸ë¤ì¼ ì´ë¯¸ì§ ìë°ì¼ê²½ì° ê¸°ë³¸ê° ì¤ì 178 */ 179$(window).load(function() { 180 $("img.thumb,img.ThumbImage,img.BigImage").each(function($i,$item){ 181 var $img = new Image(); 182 $img.onerror = function () { 183 $item.src="//img.echosting.cafe24.com/thumb/img_product_big.gif"; 184 } 185 $img.src = this.src; 186 }); 187}); 188$('img[src="https://app-storage-006.cafe24.com/bannermanage2/funbiz6/2018/12/26/1c4532b13ac2007c141c1a782fff5204.jpg"]').each(function() { 189 $(this).parents("a").css("cursor","default"); 190 }); 191(function ($) { 192 var jQuery = $; 193 $(function() { 194 195 // ìë¨ ìí ë©ë´ ì¤ë² ì ì문 ë©ë´ ë ¸ì¶ 196 $('.top-product-category-wrap ul>li.cate-one').hover(function() { 197 //$(this).find('span.over-cate').stop(true).fadeIn(200); 198 $(this).find('span.hover-border').stop(true).fadeIn(); 199 },function() { 200 //$(this).find('span.over-cate').stop(true).fadeOut(200); 201 $(this).find('span.hover-border').stop(true).fadeOut(); 202 }); 203 204 // ìí ì¹´í ê³ ë¦¬ ì¤ë² ì íì ì¹´í ê³ ë¦¬ ë ¸ì¶ 205 var methods = { 206 aCategory : [], 207 aSubCategory : {}, 208 209 get: function() 210 { 211 $.ajax({ 212 url : '/exec/front/Product/SubCategory', 213 dataType: 'json', 214 success: function(aData) { 215 216 if (aData == null || aData == 'undefined') return; 217 for (var i=0; i<aData.length; i++) 218 { 219 var sParentCateNo = aData[i].parent_cate_no; 220 221 if (!methods.aSubCategory[sParentCateNo]) { 222 methods.aSubCategory[sParentCateNo] = []; 223 } 224 225 methods.aSubCategory[sParentCateNo].push( aData[i] ); 226 } 227 } 228 }); 229 }, 230 231 getParam: function(sUrl, sKey) { 232 233 var aUrl = sUrl.split('?'); 234 var sQueryString = aUrl[1]; 235 var aParam = {}; 236 237 if (sQueryString) { 238 var aFields = sQueryString.split("&"); 239 var aField = []; 240 for (var i=0; i<aFields.length; i++) { 241 aField = aFields[i].split('='); 242 aParam[aField[0]] = aField[1]; 243 } 244 } 245 return sKey ? aParam[sKey] : aParam; 246 }, 247 248 getParamSeo: function(sUrl) { 249 var aUrl = sUrl.split('/'); 250 return aUrl[3] ? aUrl[3] : null; 251 }, 252 253 show: function(overNode, iCateNo) { 254 255 if (methods.aSubCategory[iCateNo].length == 0) { 256 return; 257 } 258 259 var aHtml = []; 260 aHtml.push('<ul>'); 261 $(methods.aSubCategory[iCateNo]).each(function() { 262 aHtml.push('<li><a href="'+this.link_product_list+'">'+this.name+'</a></li>'); 263 }); 264 aHtml.push('</ul>'); 265 266 267 var offset = $(overNode).offset(); 268 $('<div class="sub-category"></div>') 269 .appendTo(overNode) 270 .html(aHtml.join('')) 271 .find('li').mouseover(function(e) { 272 $(this).addClass('over').find('a').stop(true).animate({'color':'#ea8b91'},200); 273 }).mouseout(function(e) { 274 $(this).removeClass('over').find('a').stop(true).animate({'color':'#7b7b7b'},200); 275 }); 276 }, 277 278 close: function() { 279 $('.sub-category').remove(); 280 } 281 }; 282 283 methods.get(); 284 285 $('.xans-layout-category li').mouseenter(function(e) { 286 var $this = $(this).addClass('on'), 287 iCateNo = Number(methods.getParam($this.find('a').attr('href'), 'cate_no')); 288 289 if (!iCateNo) { 290 iCateNo = Number(methods.getParamSeo($this.find('a').attr('href'))); 291 } 292 293 if (!iCateNo) { 294 return; 295 } 296 297 298 methods.show($this, iCateNo); 299 }).mouseleave(function(e) { 300 $(this).removeClass('on'); 301 302 methods.close(); 303 }); 304 305 // ì ì²´ ì¹´í ê³ ë¦¬ ë ¸ì¶ 306 if( $('[rel="jourboo"]').size() == 0 ){ 307 var $cate = ''; 308 $.ajax({ 309 url: '/exec/front/Product/SubCategory', 310 dataType : 'json', 311 success: function(data) { 312 // name,param,cate_no,parent_cate_no,design_page_url 313 $.each(data, function(m,key) { 314 if(key.parent_cate_no=='1'){ 315 $cate += '<li class="all-category-list"><a class="fade" href="/product/list.html' + key.param +'">'+ key.name +'</a>'; 316 $cate += ' <ul class="all-sub-category-list-wrap">'; 317 $.each(data, function(n,sub) { 318 if( key.cate_no == sub.parent_cate_no ){ 319 $cate += '<li class="all-sub-category-list"><a href="/product/list.html' + sub.param +'">'+ sub.name +'</a></li>'; 320 } 321 }); 322 $cate += ' </ul>'; 323 $cate += '</li>'; 324 }; 325 }); 326 327 // ì ì²´ì¹´í ê³ ë¦¬ ì½ì íë ¤ë ì íì ì í 328 $('.all-category-wrap .all-category-list-wrap').each(function() { 329 $(this).append( '<ul class="all-category-wrap">'+ $cate +'</ul>' ).find('ul.all-sub-category-list-wrap>li>a').hover(function() { 330 $(this).stop(true).animate({'color':'#ea8b91'}); 331 },function() { 332 $(this).stop(true).animate({'color':'#7b7b7b'}); 333 }).end().find('a.fade').hover(function() { 334 $(this).stop(true).animate({'opacity':'.4'},200); 335 },function() { 336 $(this).stop(true).animate({'opacity':'1'},200); 337 }); 338 }); 339 340 } 341 }); 342 }; 343 344 // ê³µíµ ë©ë´ ì¤ë² ì 345 $('.fade, .ec-base-button a').hover(function() { 346 $(this).stop(true).animate({'opacity':'.4'},200); 347 },function() { 348 $(this).stop(true).animate({'opacity':'1'},200); 349 }); 350 351 // ìë¨ ìí ë©ë´ ì¤ë² ì ì문 ë©ë´ ë ¸ì¶ 352 $('.header-bottom-wrap .top-product-category-wrap ul>
352li.cate-one').hover(function() { 353 //$(this).find('span.over-cate').stop(true).fadeIn(200); 354 },function() { 355 //$(this).find('span.over-cate').stop(true).fadeOut(200); 356 }); 357 358 // ìë¨ ìì ìë¸ ë©ë´ ì¤ë² ì 359 $('.header-bottom-wrap .top-product-category-wrap ul li .sub-category li a, .header-bottom-wrap .top-event-category-wrap ul li .sub-category-two li a').hover(function() { 360 $(this).stop(true).animate({'color':'#ea8b91'}); 361 },function() { 362 $(this).stop(true).animate({'color':'#7b7b7b'}); 363 }); 364 365 // sns ë©ë´ ì¤ë² ì 366 $('ul.sns-list li').hover(function() { 367 $(this).find('img.hover-img').fadeIn(200); 368 },function() { 369 $(this).find('img.hover-img').fadeOut(200); 370 }); 371 372 //ìë¨ ë ë°°ë ë«ê¸° 373 $('a.btn-top-banner-close').click(function(e) { 374 375 if($('.top-banner-wrap').css('display') == 'block') { 376 Cookies.set('lts', 'lts',{ expires: 1, path: '/' }); 377 $('.top-banner-wrap').slideUp(); 378 $(this).hide(); 379 } else { 380 Cookies.remove('lts',{ path: '/' }); 381 } 382 e.preventDefault(); 383 }); 384 385 if(Cookies.get('lts') == 'lts') { 386 $('.top-banner-wrap').hide(); 387 $('a.btn-top-banner-close').hide(); 388 }else{ 389 $('.top-banner-wrap').show(); 390 $('a.btn-top-banner-close').show(); 391 } 392 393 // ì ì²´ ì¹´í ê³ ë¦¬ ë ¸ì¶ 394 $('.all-category-wrap').hover(function() { 395 $(this).find('.all-category-list-wrap').show(); 396 },function() { 397 $(this).find('.all-category-list-wrap').hide(); 398 }); 399 400 // ì¤í¬ë¡¤ ì í½ì¤ ìë¨ ìì ë ¸ì¶/ë¹ë ¸ì¶ 401 $(window).scroll(function() { 402 if($(this).scrollTop() > 287) { 403 $('#fix-header').stop(true).animate({'top':'0'},200); 404 $('a.btn-top-banner-close').fadeOut(); 405 } else { 406 $('#fix-header').stop(true).animate({'top':'-60px'},200); 407 $('a.btn-top-banner-close').fadeIn(); 408 } 409 }); 410 411 // ìí ëë²ë§, ìíëª ê¸ìì ì í 412 $('.ec-base-product .prdList > li').each(function(numz) { 413 var $prdText = $(this).find('span.product-name > span').text().substring(0,40); 414 numz ++; 415 416 $('span.product-count',this).append(numz); 417 $(this).find('span.product-name > span').text($prdText+'...'); 418 }); 419 420 // ì°ì¸¡ ì¬ì´ë ë©ë´ í ê¸ ë²í¼ ê´ë ¨ 421 var _rbtz = $('#side-wrap a.btn-side-toggle'); 422 423 $(_rbtz).on('click',function(e){ 424 var _posir = $('#side-wrap').css('right'); 425 if(_posir == '0px'){ 426 $('#side-wrap').animate({'right':'-175px'}); 427 _rbtz.addClass('on'); 428 _rbtz.css('right','14px'); 429 $('.side-slide-banner-wrap').hide(); 430 $('.xans-layout-productrecent').removeClass('on'); 431 Cookies.remove('cks',{ path: '/' }); 432 }else if(_posir == '-175px'){ 433 $('#side-wrap').animate({'right':'0px'}); 434 _rbtz.removeClass('on'); 435 _rbtz.css('right','189px'); 436 Cookies.set('cks', 'cks',{ expires: 1, path: '/' }); 437 $('.side-slide-banner-wrap').show(); 438 $('.xans-layout-productrecent').addClass('on'); 439 } 440 e.preventDefault(); 441 442 }); 443 444 // ì°ì¸¡ ì¬ì´ë ë©ë´ ì¿ í¤ê° ë¡ë ì 445 if(Cookies.get('cks') == 'cks'){ 446 $('#side-wrap').animate({'right':'-0px'}); 447 _rbtz.removeClass('on').css('right','189px'); 448 $('.side-slide-banner-wrap').show(); 449 $('.xans-layout-productrecent').addClass('on'); 450 }else{ 451 $('#side-wrap').animate({'right':'-175px'}); 452 _rbtz.addClass('on').css('right','14px'); 453 $('.side-slide-banner-wrap').hide(); 454 455 } 456 457 // ì¤í¬ë¡¤ í ë²í¼ í´ë¦ ì íì´ì§ ì¤í¬ë¡¤ ì´ë 458 $('a.btn-scroll-up').click(function(e) { 459 $('html, body').animate({scrollTop:0},400); 460 e.preventDefault(); 461 }); 462 463 // ì¤í¬ë¡¤ íë¨ ë²í¼ í´ë¦ ì íì´ì§ ì¤í¬ë¡¤ ì´ë 464 $('a.btn-scroll-down').click(function(e) { 465 $('html, body').animate({scrollTop:$(document).height()},400); 466 e.preventDefault(); 467 }); 468 469 // íì´ì§ ë¤ë¹ê²ì´ì 470 $('.path li:eq(0) a').text('HOME'); 471 $('.path li.displaynone').prev('li').addClass('on'); 472 473 //íì´ì§ ë²í¼ ê´ë ¨ 474 $('.ec-base-paginate a.first img').attr('src','/web/designwib/btn/btn-page-first.png'); 475 $('.ec-base-paginate a.first').next('a').find('img').attr('src','/web/designwib/btn/btn-page-prev.png'); 476 $('.ec-base-paginate a.last img').attr('src','/web/designwib/btn/btn-page-last.png'); 477 $('.ec-base-paginate a.last').prev('a').find('img').attr('src','/web/designwib/btn/btn-page-next.png'); 478 $('.mypage-pagination a.first img').attr('src','/web/designwib/btn/btn-mypage-page-first.jpg'); 479 $('.mypage-pagination a.first').next('a').find('img').attr('src','/web/designwib/btn/btn-mypage-page-prev.jpg'); 480 $('.mypage-pagination a.last img').attr('src','/web/designwib/btn/btn-mypage-page-last.jpg'); 481 $('.mypage-pagination a.last').prev('a').find('img').attr('src','/web/designwib/btn/btn-mypage-page-next.jpg'); 482 483 // ê²ì íì´ì§ íí° í´ëì¤ ì§ì 484 $('.xans-search-form .searchResult .listType li[style="font-weight:bold"]').addClass('on'); 485 486 // ì´ì©ìë´ í ë©ë´ í´ë¦ ì ì¤í¬ë¡¤ ì´ë 487 $('.xans-mall-faq .ec-base-tab[class*="grid"] .menu li a').click(function() { 488 var $thisScroll = $(this.hash).offset().top; 489 $('html, body').animate({scrollTop : $thisScroll - 100},400); 490 }); 491 492 // ê²ìí ê´ë ¨ 493 $('.board-menu-list-wrap ul li').each(function() { 494 if($('.path li strong').text() == $(this).text()) { 495 $(this).find('a').addClass('current').end().parents('.board-menu-list-wrap').show(); 496 } 497 if($('.path li strong').text() == 'ì¬ì©í기') { 498 $('.board-banner-wrap.review').show(); 499 } 500 if($('.path li strong').text() == 'ë² ì´ë¹ì í¬í ì') { 501 $('.board-banner-wrap.photo-review').show(); 502 } 503 if($('.path li strong').text() == 'ì´ë¬ì ì´ë²¤í¸') { 504 $('.board-banner-wrap.event').show(); 505 } 506 if($('.path li strong').text() == 'ì¶ì°ìì ì´ë²¤í¸') { 507 $('.board-banner-wrap.due-date').show(); 508 } 509 }); 510 511 // íë¨ ì í´ë¬¸ì íì ë°°ë 512 $('footer .footer-top-wrap .footer-top-left-menu ul li.partnership a.fade').click(function(e) { 513 $(this).next('.popup-partnership').show(); 514 e.preventDefault(); 515 }); 516 517 $('footer .popup-partnership .x').click(function(e) { 518 $('.popup-partnership').hide(); 519 e.preventDefault(); 520 }); 521 522 523 }); 524 525})(jQuery1_11_0); 526 527 528// ì ë¦½ê¸ ìì´ì½ í¨ê³¼ 529 530upDown = setInterval(function() { 531 $('.header-top-wrap .header-top-right ul>li.join span').animate({'bottom':'-15'},600,function() { 532 $('.header-top-wrap .header-top-right ul>li.join span').animate({'bottom':'-20'},600); 533 }); 534 $('.btn-scroll-wrap a span').animate({'top':'5px'},600,function() { 535 $('.btn-scroll-wrap a span').animate({'top':'8px'},600); 536 }); 537},1200); 538/*! 539* jQuery Cycle2; version: 2.1.6 build: 20141007 540* http://jquery.malsup.com/cycle2/ 541* Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL 542*/ 543(function ($) { 544 var jQuery = $;
vendor: 10,280 bytes, line 545
545!function(a){"use strict";function b(a){return(a||"").toLowerCase()}var c="2.1.6";a.fn.cycle=function(c){var d;return 0!==this.length||a.isReady?this.each(function(){var d,e,f,g,h=a(this),i=a.fn.cycle.log;if(!h.data("cycle.opts")){(h.data("cycle-log")===!1||c&&c.log===!1||e&&e.log===!1)&&(i=a.noop),i("--c2 init--"),d=h.data();for(var j in d)d.hasOwnProperty(j)&&/^cycle[A-Z]+/.test(j)&&(g=d[j],f=j.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),i(f+":",g,"("+typeof g+")"),d[f]=g);e=a.extend({},a.fn.cycle.defaults,d,c||{}),e.timeoutId=0,e.paused=e.paused||!1,e.container=h,e._maxZ=e.maxZ,e.API=a.extend({_container:h},a.fn.cycle.API),e.API.log=i,e.API.trigger=function(a,b){return e.container.trigger(a,b),e.API},h.data("cycle.opts",e),h.data("cycle.API",e.API),e.API.trigger("cycle-bootstrap",[e,e.API]),e.API.addInitialSlides(),e.API.preInitSlideshow(),e.slides.length&&e.API.initSlideshow()}}):(d={s:this.selector,c:this.context},a.fn.cycle.log("requeuing slideshow (dom not ready)"),a(function(){a(d.s,d.c).cycle(c)}),this)},a.fn.cycle.API={opts:function(){return this._container.data("cycle.opts")},addInitialSlides:function(){var b=this.opts(),c=b.slides;b.slideCount=0,b.slides=a(),c=c.jquery?c:b.container.find(c),b.random&&c.sort(function(){return Math.random()-.5}),b.API.add(c)},preInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-pre-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.preInit)&&c.preInit(b),b._preInitialized=!0},postInitSlideshow:function(){var b=this.opts();b.API.trigger("cycle-post-initialize",[b]);var c=a.fn.cycle.transitions[b.fx];c&&a.isFunction(c.postInit)&&c.postInit(b)},initSlideshow:function(){var b,c=this.opts(),d=c.container;c.API.calcFirstSlide(),"static"==c.container.css("position")&&c.container.css("position","relative"),a(c.slides[c.currSlide]).css({opacity:1,display:"block",visibility:"visible"}),c.API.stackSlides(c.slides[c.currSlide],c.slides[c.nextSlide],!c.reverse),c.pauseOnHover&&(c.pauseOnHover!==!0&&(d=a(c.pauseOnHover)),d.hover(function(){c.API.pause(!0)},function(){c.API.resume(!0)})),c.timeout&&(b=c.API.getSlideOpts(c.currSlide),c.API.queueTransition(b,b.timeout+c.delay)),c._initialized=!0,c.API.updateView(!0),c.API.trigger("cycle-initialized",[c]),c.API.postInitSlideshow()},pause:function(b){var c=this.opts(),d=c.API.getSlideOpts(),e=c.hoverPaused||c.paused;b?c.hoverPaused=!0:c.paused=!0,e||(c.container.addClass("cycle-paused"),c.API.trigger("cycle-paused",[c]).log("cycle-paused"),d.timeout&&(clearTimeout(c.timeoutId),c.timeoutId=0,c._remainingTimeout-=a.now()-c._lastQueue,(c._remainingTimeout<0||isNaN(c._remainingTimeout))&&(c._remainingTimeout=void 0)))},resume:function(a){var b=this.opts(),c=!b.hoverPaused&&!b.paused;a?b.hoverPaused=!1:b.paused=!1,c||(b.container.removeClass("cycle-paused"),0===b.slides.filter(":animated").length&&b.API.queueTransition(b.API.getSlideOpts(),b._remainingTimeout),b.API.trigger("cycle-resumed",[b,b._remainingTimeout]).log("cycle-resumed"))},add:function(b,c){var d,e=this.opts(),f=e.slideCount,g=!1;"string"==a.type(b)&&(b=a.trim(b)),a(b).each(function(){var b,d=a(this);c?e.container.prepend(d):e.container.append(d),e.slideCount++,b=e.API.buildSlideOpts(d),e.slides=c?a(d).add(e.slides):e.slides.add(d),e.API.initSlide(b,d,--e._maxZ),d.data("cycle.opts",b),e.API.trigger("cycle-slide-added",[e,b,d])}),e.API.updateView(!0),g=e._preInitialized&&2>f&&e.slideCount>=1,g&&(e._initialized?e.timeout&&(d=e.slides.length,e.nextSlide=e.reverse?d-1:1,e.timeoutId||e.API.queueTransition(e)):e.API.initSlideshow())},calcFirstSlide:function(){var a,b=this.opts();a=parseInt(b.startingSlide||0,10),(a>=b.slides.length||0>a)&&(a=0),b.currSlide=a,b.reverse?(b.nextSlide=a-1,b.nextSlide<0&&(b.nextSlide=b.slides.length-1)):(b.nextSlide=a+1,b.nextSlide==b.slides.length&&(b.nextSlide=0))},calcNextSlide:function(){var a,b=this.opts();b.reverse?(a=b.nextSlide-1<0,b.nextSlide=a?b.slideCount-1:b.nextSlide-1,b.currSlide=a?0:b.nextSlide+1):(a=b.nextSlide+1==b.slides.length,b.nextSlide=a?0:b.nextSlide+1,b.currSlide=a?b.slides.length-1:b.nextSlide-1)},calcTx:function(b,c){var d,e=b;return e._tempFx?d=a.fn.cycle.transitions[e._tempFx]:c&&e.manualFx&&(d=a.fn.cycle.transitions[e.manualFx]),d||(d=a.fn.cycle.transitions[e.fx]),e._tempFx=null,this.opts()._tempFx=null,d||(d=a.fn.cycle.transitions.fade,e.API.log('Transition "'+e.fx+'" not found. Using fade.')),d},prepareTx:function(a,b){var c,d,e,f,g,h=this.opts();return h.slideCount<2?void(h.timeoutId=0):(!a||h.busy&&!h.manualTrump||(h.API.stopTransition(),h.busy=!1,clearTimeout(h.timeoutId),h.timeoutId=0),void(h.busy||(0!==h.timeoutId||a)&&(d=h.slides[h.currSlide],e=h.slides[h.nextSlide],f=h.API.getSlideOpts(h.nextSlide),g=h.API.calcTx(f,a),h._tx=g,a&&void 0!==f.manualSpeed&&(f.speed=f.manualSpeed),h.nextSlide!=h.currSlide&&(a||!h.paused&&!h.hoverPaused&&h.timeout)?(h.API.trigger("cycle-before",[f,d,e,b]),g.before&&g.before(f,d,e,b),c=function(){h.busy=!1,h.container.data("cycle.opts")&&(g.after&&g.after(f,d,e,b),h.API.trigger("cycle-after",[f,d,e,b]),h.API.queueTransition(f),h.API.updateView(!0))},h.busy=!0,g.transition?g.transition(f,d,e,b,c):h.API.doTransition(f,d,e,b,c),h.API.calcNextSlide(),h.API.updateView()):h.API.queueTransition(f))))},doTransition:function(b,c,d,e,f){var g=b,h=a(c),i=a(d),j=function(){i.animate(g.animIn||{opacity:1},g.speed,g.easeIn||g.easing,f)};i.css(g.cssBefore||{}),h.animate(g.animOut||{},g.speed,g.easeOut||g.easing,function(){h.css(g.cssAfter||{}),g.sync||j()}),g.sync&&j()},queueTransition:function(b,c){var d=this.opts(),e=void 0!==c?c:b.timeout;return 0===d.nextSlide&&0===--d.loop?(d.API.log("terminating; loop=0"),d.timeout=0,e?setTimeout(function(){d.API.trigger("cycle-finished",[d])},e):d.API.trigger("cycle-finished",[d]),void(d.nextSlide=d.currSlide)):void 0!==d.continueAuto&&(d.continueAuto===!1||a.isFunction(d.continueAuto)&&d.continueAuto()===!1)?(d.API.log("terminating automatic transitions"),d.timeout=0,void(d.timeoutId&&clearTimeout(d.timeoutId))):void(e&&(d._lastQueue=a.now(),void 0===c&&(d._remainingTimeout=b.timeout),d.paused||d.hoverPaused||(d.timeoutId=setTimeout(function(){d.API.prepareTx(!1,!d.reverse)},e))))},stopTransition:function(){var a=this.opts();a.slides.filter(":animated").length&&(a.slides.stop(!1,!0),a.API.trigger("cycle-transition-stopped",[a])),a._tx&&a._tx.stopTransition&&a._tx.stopTransition(a)},advanceSlide:function(a){var b=this.opts();return clearTimeout(b.timeoutId),b.timeoutId=0,b.nextSlide=b.currSlide+a,b.nextSlide<0?b.nextSlide=b.slides.length-1:b.nextSlide>=b.slides.length&&(b.nextSlide=0),b.API.prepareTx(!0,a>=0),!1},buildSlideOpts:function(c){var d,e,f=this.opts(),g=c.data()||{};for(var h in g)g.hasOwnProperty(h)&&/^cycle[A-Z]+/.test(h)&&(d=g[h],e=h.match(/^cycle(.*)/)[1].replace(/^[A-Z]/,b),f.API.log("["+(f.slideCount-1)+"]",e+":",d,"("+typeof d+")"),g[e]=d);g=a.extend({},a.fn.cycle.defaults,f,g),g.slideNum=f.slideCount;try{delete g.API,delete g.slideCount,delete g.currSlide,delete g.nextSlide,delete g.slides}catch(i){}return g},getSlideOpts:function(b){var c=this.opts();void 0===b&&(b=c.currSlide);var d=c.slides[b],e=a(d).data("cycle.opts");return a.extend({},c,e)},initSlide:function(b,c,d){var e=this.opts();c.css(b.slideCss||{}),d>0&&c.css("zIndex",d),isNaN(b.speed)&&(b.speed=a.fx.speeds[b.speed]||a.fx.speeds._default),b.sync||(b.speed=b.speed/2),c.addClass(e.slideClass)},updateView:function(a,b){var c=this.opts();if(c._initialized){var d=c.API.getSlideOpts(),e=c.slides[c.currSlide];!a&&b!==!0&&(c.API.trigger("cycle-update-view-before",[c,d,e]),c.updateView<0)||(c.slideActiveClass&&c.slides.removeClass(c.slideActiveClass).eq(c.currSlide).addClass(c.slideActiveClass),a&&c.hideNonActive&&c.slides.filter(":not(."+c.slideActiveClass+")").css("visibility","hidden"),0===c.updateView&&setTimeout(function(){c.API.trigger("cycle-update-view",[c,d,e,a])},d.speed/(c.sync?2:1)),0!==c.updateView&&c.API.trigger("cycle-update-view",[c,d,e,a]),a&&c.API.trigger("cycle-update-view-after",[c,d,e]))}},getComponent:function(b){var c=this.opts(),d=c[b];return"string"==typeof d?/^\s*[\>|\+|~]/.test(d)?c.container.find(d):a(d):d.jquery?d:a(d)},stackSlides:function(b,c,d){var e=this.opts();b||(b=e.slides[e.currSlide],c=e.slides[e.nextSlide],d=!e.reverse),a(b).css("zIndex",e.maxZ);var f,g=e.maxZ-2,h=e.slideCount;if(d){for(f=e.currSlide+1;h>f;f++)a(e.slides[f]).css("zIndex",g--);for(f=0;f<e.currSlide;f++)a(e.slides[f]).css("zIndex",g--)}else{for(f=e.currSlide-1;f>=0;f--)a(e.slides[f]).css("zIndex",g--);for(f=h-1;f>e.currSlide;f--)a(e.slides[f]).css("zIndex",g--)}a(c).css("zIndex",e.maxZ-1)},getSlideIndex:function(a){return this.opts().slides.index(a)}},a.fn.cycle.log=function(){window.console&&console.log&&console.log("[cycle2] "+Array.prototype.join.call(arguments," "))},a.fn.cycle.version=function(){return"Cycle2: "+c},a.fn.cycle.transitions={custom:{},none:{before:function(a,b,c,d){a.API.stackSlides(c,b,d),a.cssBefore={opacity:1,visibility:"visible",display:"block"}}},fade:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:0,visibility:"visible",display:"block"}),b.animIn={opacity:1},b.animOut={opacity:0}}},fadeout:{before:function(b,c,d,e){var f=b.API.getSlideOpts(b.nextSlide).slideCss||{};b.API.stackSlides(c,d,e),b.cssBefore=a.extend(f,{opacity:1,visibility:"visible",display:"block"}),b.animOut={opacity:0}}},scrollHorz:{before:function(a,b,c,d){a.API.stackSlides(b,c,d);var e=a.container.css("overflow","hidden").width();a.cssBefore={left:d?e:-e,top:0,opacity:1,visibility:"visible",display:"block"},a.cssAfter={zIndex:a._maxZ-2,left:0},a.animIn={left:0},a.animOut={left:d?-e:e}}}},a.fn.cycle.defaults={allowWrap:!0,autoSelector:".cycle-slideshow[data-cycle-auto-init!=false]",delay:0,easing:null,fx:"fade",hideNonActive:!0,loop:0,manualFx:void 0,manualSpeed:void 0,manualTrump:!0,maxZ:100,pauseOnHover:!1,reverse:!1,slideActiveClass:"cycle-slide-active",slideClass:"cycle-slide",slideCss:{position:"absolute",top:0,left:0},slides:"> img",speed:500,startingSlide:0,sync:!0,timeout:4e3,updateView:0},a(document).ready(function(){a(a.fn.cycle.defaults.autoSelector).cycle()})}(jQuery),/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */
vendor: 13,969 bytes, lines 545-625
545 546function(a){"use strict";function b(b,d){var e,f,g,h=d.autoHeight;if("container"==h)f=a(d.slides[d.currSlide]).outerHeight(),d.container.height(f);else if(d._autoHeightRatio)d.container.height(d.container.width()/d._autoHeightRatio);else if("calc"===h||"number"==a.type(h)&&h>=0){if(g="calc"===h?c(b,d):h>=d.slides.length?0:h,g==d._sentinelIndex)return;d._sentinelIndex=g,d._sentinel&&d._sentinel.remove(),e=a(d.slides[g].cloneNode(!0)),e.removeAttr("id name rel").find("[id],[name],[rel]").removeAttr("id name rel"),e.css({position:"static",visibility:"hidden",display:"block"}).prependTo(d.container).addClass("cycle-sentinel cycle-slide").removeClass("cycle-slide-active"),e.find("*").css("visibility","hidden"),d._sentinel=e}}function c(b,c){var d=0,e=-1;return c.slides.each(function(b){var c=a(this).height();c>e&&(e=c,d=b)}),d}function d(b,c,d,e){var f=a(e).outerHeight();c.container.animate({height:f},c.autoHeightSpeed,c.autoHeightEasing)}function e(c,f){f._autoHeightOnResize&&(a(window).off("resize orientationchange",f._autoHeightOnResize),f._autoHeightOnResize=null),f.container.off("cycle-slide-added cycle-slide-removed",b),f.container.off("cycle-destroyed",e),f.container.off("cycle-before",d),f._sentinel&&(f._sentinel.remove(),f._sentinel=null)}a.extend(a.fn.cycle.defaults,{autoHeight:0,autoHeightSpeed:250,autoHeightEasing:null}),a(document).on("cycle-initialized",function(c,f){function g(){b(c,f)}var h,i=f.autoHeight,j=a.type(i),k=null;("string"===j||"number"===j)&&(f.container.on("cycle-slide-added cycle-slide-removed",b),f.container.on("cycle-destroyed",e),"container"==i?f.container.on("cycle-before",d):"string"===j&&/\d+\:\d+/.test(i)&&(h=i.match(/(\d+)\:(\d+)/),h=h[1]/h[2],f._autoHeightRatio=h),"number"!==j&&(f._autoHeightOnResize=function(){clearTimeout(k),k=setTimeout(g,50)},a(window).on("resize orientationchange",f._autoHeightOnResize)),setTimeout(g,30))})}(jQuery),/*! caption plugin for Cycle2; version: 20130306 */ 547function(a){"use strict";a.extend(a.fn.cycle.defaults,{caption:"> .cycle-caption",captionTemplate:"{{slideNum}} / {{slideCount}}",overlay:"> .cycle-overlay",overlayTemplate:"<div>{{title}}</div><div>{{desc}}</div>",captionModule:"caption"}),a(document).on("cycle-update-view",function(b,c,d,e){if("caption"===c.captionModule){a.each(["caption","overlay"],function(){var a=this,b=d[a+"Template"],f=c.API.getComponent(a);f.length&&b?(f.html(c.API.tmpl(b,d,c,e)),f.show()):f.hide()})}}),a(document).on("cycle-destroyed",function(b,c){var d;a.each(["caption","overlay"],function(){var a=this,b=c[a+"Template"];c[a]&&b&&(d=c.API.getComponent("caption"),d.empty())})})}(jQuery),/*! command plugin for Cycle2; version: 20140415 */ 548function(a){"use strict";var b=a.fn.cycle;a.fn.cycle=function(c){var d,e,f,g=a.makeArray(arguments);return"number"==a.type(c)?this.cycle("goto",c):"string"==a.type(c)?this.each(function(){var h;return d=c,f=a(this).data("cycle.opts"),void 0===f?void b.log('slideshow must be initialized before sending commands; "'+d+'" ignored'):(d="goto"==d?"jump":d,e=f.API[d],a.isFunction(e)?(h=a.makeArray(g),h.shift(),e.apply(f.API,h)):void b.log("unknown command: ",d))}):b.apply(this,arguments)},a.extend(a.fn.cycle,b),a.extend(b.API,{next:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?-1:1;a.allowWrap===!1&&a.currSlide+b>=a.slideCount||(a.API.advanceSlide(b),a.API.trigger("cycle-next",[a]).log("cycle-next"))}},prev:function(){var a=this.opts();if(!a.busy||a.manualTrump){var b=a.reverse?1:-1;a.allowWrap===!1&&a.currSlide+b<0||(a.API.advanceSlide(b),a.API.trigger("cycle-prev",[a]).log("cycle-prev"))}},destroy:function(){this.stop();var b=this.opts(),c=a.isFunction(a._data)?a._data:a.noop;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stop(),b.API.trigger("cycle-destroyed",[b]).log("cycle-destroyed"),b.container.removeData(),c(b.container[0],"parsedAttrs",!1),b.retainStylesOnDestroy||(b.container.removeAttr("style"),b.slides.removeAttr("style"),b.slides.removeClass(b.slideActiveClass)),b.slides.each(function(){var d=a(this);d.removeData(),d.removeClass(b.slideClass),c(this,"parsedAttrs",!1)})},jump:function(a,b){var c,d=this.opts();if(!d.busy||d.manualTrump){var e=parseInt(a,10);if(isNaN(e)||0>e||e>=d.slides.length)return void d.API.log("goto: invalid slide index: "+e);if(e==d.currSlide)return void d.API.log("goto: skipping, already on slide",e);d.nextSlide=e,clearTimeout(d.timeoutId),d.timeoutId=0,d.API.log("goto: ",e," (zero-index)"),c=d.currSlide<d.nextSlide,d._tempFx=b,d.API.prepareTx(!0,c)}},stop:function(){var b=this.opts(),c=b.container;clearTimeout(b.timeoutId),b.timeoutId=0,b.API.stopTransition(),b.pauseOnHover&&(b.pauseOnHover!==!0&&(c=a(b.pauseOnHover)),c.off("mouseenter mouseleave")),b.API.trigger("cycle-stopped",[b]).log("cycle-stopped")},reinit:function(){var a=this.opts();a.API.destroy(),a.container.cycle()},remove:function(b){for(var c,d,e=this.opts(),f=[],g=1,h=0;h<e.slides.length;h++)c=e.slides[h],h==b?d=c:(f.push(c),a(c).data("cycle.opts").slideNum=g,g++);d&&(e.slides=a(f),e.slideCount--,a(d).remove(),b==e.currSlide?e.API.advanceSlide(1):b<e.currSlide?e.currSlide--:e.currSlide++,e.API.trigger("cycle-slide-removed",[e,b,d]).log("cycle-slide-removed"),e.API.updateView())}}),a(document).on("click.cycle","[data-cycle-cmd]",function(b){b.preventDefault();var c=a(this),d=c.data("cycle-cmd"),e=c.data("cycle-context")||".cycle-slideshow";a(e).cycle(d,c.data("cycle-arg"))})}(jQuery),/*! hash plugin for Cycle2; version: 20130905 */ 549function(a){"use strict";function b(b,c){var d;return b._hashFence?void(b._hashFence=!1):(d=window.location.hash.substring(1),void b.slides.each(function(e){if(a(this).data("cycle-hash")==d){if(c===!0)b.startingSlide=e;else{var f=b.currSlide<e;b.nextSlide=e,b.API.prepareTx(!0,f)}return!1}}))}a(document).on("cycle-pre-initialize",function(c,d){b(d,!0),d._onHashChange=function(){b(d,!1)},a(window).on("hashchange",d._onHashChange)}),a(document).on("cycle-update-view",function(a,b,c){c.hash&&"#"+c.hash!=window.location.hash&&(b._hashFence=!0,window.location.hash=c.hash)}),a(document).on("cycle-destroyed",function(b,c){c._onHashChange&&a(window).off("hashchange",c._onHashChange)})}(jQuery),/*! loader plugin for Cycle2; version: 20131121 */ 550function(a){"use strict";a.extend(a.fn.cycle.defaults,{loader:!1}),a(document).on("cycle-bootstrap",function(b,c){function d(b,d){function f(b){var f;"wait"==c.loader?(h.push(b),0===j&&(h.sort(g),e.apply(c.API,[h,d]),c.container.removeClass("cycle-loading"))):(f=a(c.slides[c.currSlide]),e.apply(c.API,[b,d]),f.show(),c.container.removeClass("cycle-loading"))}function g(a,b){return a.data("index")-b.data("index")}var h=[];if("string"==a.type(b))b=a.trim(b);else if("array"===a.type(b))for(var i=0;i<b.length;i++)b[i]=a(b[i])[0];b=a(b);var j=b.length;j&&(b.css("visibility","hidden").appendTo("body").each(function(b){function g(){0===--i&&(--j,f(k))}var i=0,k=a(this),l=k.is("img")?k:k.find("img");return k.data("index",b),l=l.filter(":not(.cycle-loader-ignore)").filter(':not([src=""])'),l.length?(i=l.length,void l.each(function(){this.complete?g():a(this).load(function(){g()}).on("error",function(){0===--i&&(c.API.log("slide skipped; img not loaded:",this.src),0===--j&&"wait"==c.loader&&e.apply(c.API,[h,d]))})})):(--j,void h.push(k))}),j&&c.container.addClass("cycle-loading"))}var e;c.loader&&(e=c.API.add,c.API.add=d)})}(jQuery),/*! pager plugin for Cycle2; version: 20140415 */ 551function(a){"use strict";function b(b,c,d){var e,f=b.API.getComponent("pager");f.each(function(){var f=a(this);if(c.pagerTemplate){var g=b.API.tmpl(c.pagerTemplate,c,b,d[0]);e=a(g).appendTo(f)}else e=f.children().eq(b.slideCount-1);e.on(b.pagerEvent,function(a){b.pagerEventBubble||a.preventDefault(),b.API.page(f,a.currentTarget)})})}function c(a,b){var c=this.opts();if(!c.busy||c.manualTrump){var d=a.children().index(b),e=d,f=c.currSlide<e;c.currSlide!=e&&(c.nextSlide=e,c._tempFx=c.pagerFx,c.API.prepareTx(!0,f),c.API.trigger("cycle-pager-activated",[c,a,b]))}}a.extend(a.fn.cycle.defaults,{pager:"> .cycle-pager",pagerActiveClass:"cycle-pager-active",pagerEvent:"click.cycle",pagerEventBubble:void 0,pagerTemplate:"<span>•</span>"}),a(document).on("cycle-bootstrap",function(a,c,d){d.buildPagerLink=b}),a(document).on("cycle-slide-added",function(a,b,d,e){b.pager&&(b.API.buildPagerLink(b,d,e),b.API.page=c)}),a(document).on("cycle-slide-removed",function(b,c,d){if(c.pager){var e=c.API.getComponent("pager");e.each(function(){var b=a(this);a(b.children()[d]).remove()})}}),a(document).on("cycle-update-view",function(b,c){var d;c.pager&&(d=c.API.getComponent("pager"),d.each(function(){a(this).children().removeClass(c.pagerActiveClass).eq(c.currSlide).addClass(c.pagerActiveClass)}))}),a(document).on("cycle-destroyed",function(a,b){var c=b.API.getComponent("pager");c&&(c.children().off(b.pagerEvent),b.pagerTemplate&&c.empty())})}(jQuery),/*! prevnext plugin for Cycle2; version: 20140408 */ 552function(a){"use strict";a.extend(a.fn.cycle.defaults,{next:"> .cycle-next",nextEvent:"click.cycle",disabledClass:"disabled",prev:"> .cycle-prev",prevEvent:"click.cycle",swipe:!1}),a(document).on("cycle-initialized",function(a,b){if(b.API.getComponent("next").on(b.nextEvent,function(a){a.preventDefault(),b.API.next()}),b.API.getComponent("prev").on(b.prevEvent,function(a){a.preventDefault(),b.API.prev()}),b.swipe){var c=b.swipeVert?"swipeUp.cycle":"swipeLeft.cycle swipeleft.cycle",d=b.swipeVert?"swipeDown.cycle":"swipeRight.cycle swiperight.cycle";b.container.on(c,function(){b._tempFx=b.swipeFx,b.API.next()}),b.container.on(d,function(){b._tempFx=b.swipeFx,b.API.prev()})}}),a(document).on("cycle-update-view",function(a,b){if(!b.allowWrap){var c=b.disabledClass,d=b.API.getComponent("next"),e=b.API.getComponent("prev"),f=b._prevBoundry||0,g=void 0!==b._nextBoundry?b._nextBoundry:b.slideCount-1;b.currSlide==g?d.addClass(c).prop("disabled",!0):d.removeClass(c).prop("disabled",!1),b.currSlide===f?e.addClass(c).prop("disabled",!0):e.removeClass(c).prop("disabled",!1)}}),a(document).on("cycle-destroyed",function(a,b){b.API.getComponent("prev").off(b.nextEvent),b.API.getComponent("next").off(b.prevEvent),b.container.off("swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle")})}(jQuery),/*! progressive loader plugin for Cycle2; version: 20130315 */ 553function(a){"use strict";a.extend(a.fn.cycle.defaults,{progressive:!1}),a(document).on("cycle-pre-initialize",function(b,c){if(c.progressive){var d,e,f=c.API,g=f.next,h=f.prev,i=f.prepareTx,j=a.type(c.progressive);if("array"==j)d=c.progressive;else if(a.isFunction(c.progressive))d=c.progressive(c);else if("string"==j){if(e=a(c.progressive),d=a.trim(e.html()),!d)return;if(/^(\[)/.test(d))try{d=a.parseJSON(d)}catch(k){return void f.log("error parsing progressive slides",k)}else d=d.split(new RegExp(e.data("cycle-split")||"\n")),d[d.length-1]||d.pop()}i&&(f.prepareTx=function(a,b){var e,f;return a||0===d.length?void i.apply(c.API,[a,b]):void(b&&c.currSlide==c.slideCount-1?(f=d[0],d=d.slice(1),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.API.advanceSlide(1)},50)}),c.API.add(f)):b||0!==c.currSlide?i.apply(c.API,[a,b]):(e=d.length-1,f=d[e],d=d.slice(0,e),c.container.one("cycle-slide-added",function(a,b){setTimeout(function(){b.currSlide=1,b.API.advanceSlide(-1)},50)}),c.API.add(f,!0)))}),g&&(f.next=function(){var a=this.opts();if(d.length&&a.currSlide==a.slideCount-1){var b=d[0];d=d.slice(1),a.container.one("cycle-slide-added",function(a,b){g.apply(b.API),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(b)}else g.apply(a.API)}),h&&(f.prev=function(){var a=this.opts();if(d.length&&0===a.currSlide){var b=d.length-1,c=d[b];d=d.slice(0,b),a.container.one("cycle-slide-added",function(a,b){b.currSlide=1,b.API.advanceSlide(-1),b.container.removeClass("cycle-loading")}),a.container.addClass("cycle-loading"),a.API.add(c,!0)}else h.apply(a.API)})}})}(jQuery),/*! tmpl plugin for Cycle2; version: 20121227 */ 554function(a){"use strict";a.extend(a.fn.cycle.defaults,{tmplRegex:"{{((.)?.*?)}}"}),a.extend(a.fn.cycle.API,{tmpl:function(b,c){var d=new RegExp(c.tmplRegex||a.fn.cycle.defaults.tmplRegex,"g"),e=a.makeArray(arguments);return e.shift(),b.replace(d,function(b,c){var d,f,g,h,i=c.split(".");for(d=0;d<e.length;d++)if(g=e[d]){if(i.length>1)for(h=g,f=0;f<i.length;f++)g=h,h=h[i[f]]||c;else h=g[c];if(a.isFunction(h))return h.apply(g,e);if(void 0!==h&&null!==h&&h!=c)return h}return c})}})}(jQuery); 555 })(jQuery1_11_0); 556/** 557 * bxSlider v4.2.12 558 * Copyright 2013-2015 Steven Wanderski 559 * Written while drinking Belgian ales and listening to jazz 560 * Licensed under MIT (http://opensource.org/licenses/MIT) 561 */ 562(function ($) { 563 var jQuery = $; 564 565;(function($) { 566 567 var defaults = { 568 569 // GENERAL 570 mode: 'horizontal', 571 slideSelector: '', 572 infiniteLoop: true, 573 hideControlOnEnd: false, 574 speed: 500, 575 easing: null, 576 slideMargin: 0, 577 startSlide: 0, 578 randomStart: false, 579 captions: false, 580 ticker: false, 581 tickerHover: false, 582 adaptiveHeight: false, 583 adaptiveHeightSpeed: 500, 584 video: false, 585 useCSS: true, 586 preloadImages: 'visible', 587 responsive: true, 588 slideZIndex: 50, 589 wrapperClass: 'bx-wrapper', 590 591 // TOUCH 592 touchEnabled: true, 593 swipeThreshold: 50, 594 oneToOneTouch: true, 595 preventDefaultSwipeX: true, 596 preventDefaultSwipeY: false, 597 598 // ACCESSIBILITY 599 ariaLive: true, 600 ariaHidden: true, 601 602 // KEYBOARD 603 keyboardEnabled: false, 604 605 // PAGER 606 pager: true, 607 pagerType: 'full', 608 pagerShortSeparator: ' / ', 609 pagerSelector: null, 610 buildPager: null, 611 pagerCustom: null, 612 613 // CONTROLS 614 controls: true, 615 nextText: 'Next', 616 prevText: 'Prev', 617 nextSelector: null, 618 prevSelector: null, 619 autoControls: false, 620 startText: 'Start', 621 stopText: 'Stop', 622 autoControlsCombine: false, 623 autoControlsSelector: null, 624 625 // AUTO
vendor: 25,441 bytes, lines 626-1190
626 auto: false, 627 pause: 4000, 628 autoStart: true, 629 autoDirection: 'next', 630 stopAutoOnClick: false, 631 autoHover: false, 632 autoDelay: 0, 633 autoSlideForOnePage: false, 634 635 // CAROUSEL 636 minSlides: 1, 637 maxSlides: 1, 638 moveSlides: 0, 639 slideWidth: 0, 640 shrinkItems: false, 641 642 // CALLBACKS 643 onSliderLoad: function() { return true; }, 644 onSlideBefore: function() { return true; }, 645 onSlideAfter: function() { return true; }, 646 onSlideNext: function() { return true; }, 647 onSlidePrev: function() { return true; }, 648 onSliderResize: function() { return true; } 649 }; 650 651 $.fn.bxSlider = function(options) { 652 653 if (this.length === 0) { 654 return this; 655 } 656 657 // support multiple elements 658 if (this.length > 1) { 659 this.each(function() { 660 $(this).bxSlider(options); 661 }); 662 return this; 663 } 664 665 // create a namespace to be used throughout the plugin 666 var slider = {}, 667 // set a reference to our slider element 668 el = this, 669 // get the original window dimens (thanks a lot IE) 670 windowWidth = $(window).width(), 671 windowHeight = $(window).height(); 672 673 // Return if slider is already initialized 674 if ($(el).data('bxSlider')) { return; } 675 676 /** 677 * =================================================================================== 678 * = PRIVATE FUNCTIONS 679 * =================================================================================== 680 */ 681 682 /** 683 * Initializes namespace settings to be used throughout plugin 684 */ 685 var init = function() { 686 // Return if slider is already initialized 687 if ($(el).data('bxSlider')) { return; } 688 // merge user-supplied options with the defaults 689 slider.settings = $.extend({}, defaults, options); 690 // parse slideWidth setting 691 slider.settings.slideWidth = parseInt(slider.settings.slideWidth); 692 // store the original children 693 slider.children = el.children(slider.settings.slideSelector); 694 // check if actual number of slides is less than minSlides / maxSlides 695 if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; } 696 if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; } 697 // if random start, set the startSlide setting to random number 698 if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); } 699 // store active slide information 700 slider.active = { index: slider.settings.startSlide }; 701 // store if the slider is in carousel mode (displaying / moving multiple slides) 702 slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false; 703 // if carousel, force preloadImages = 'all' 704 if (slider.carousel) { slider.settings.preloadImages = 'all'; } 705 // calculate the min / max width thresholds based on min / max number of slides 706 // used to setup and update carousel slides dimensions 707 slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin); 708 slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); 709 // store the current state of the slider (if currently animating, working is true) 710 slider.working = false; 711 // initialize the controls object 712 slider.controls = {}; 713 // initialize an auto interval 714 slider.interval = null; 715 // determine which property to use for transitions 716 slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left'; 717 // determine if hardware acceleration can be used 718 slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() { 719 // create our test div element 720 var div = document.createElement('div'), 721 // css transition properties 722 props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; 723 // test for each property 724 for (var i = 0; i < props.length; i++) { 725 if (div.style[props[i]] !== undefined) { 726 slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase(); 727 slider.animProp = '-' + slider.cssPrefix + '-transform'; 728 return true; 729 } 730 } 731 return false; 732 }()); 733 // if vertical mode always make maxSlides and minSlides equal 734 if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; } 735 // save original style data 736 el.data('origStyle', el.attr('style')); 737 el.children(slider.settings.slideSelector).each(function() { 738 $(this).data('origStyle', $(this).attr('style')); 739 }); 740 741 // perform all DOM / CSS modifications 742 setup(); 743 }; 744 745 /** 746 * Performs all DOM and CSS modifications 747 */ 748 var setup = function() { 749 var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible) 750 751 // wrap el in a wrapper 752 el.wrap('<div class="' + slider.settings.wrapperClass + '"><div class="bx-viewport"></div></div>'); 753 // store a namespace reference to .bx-viewport 754 slider.viewport = el.parent(); 755 756 // add aria-live if the setting is enabled and ticker mode is disabled 757 if (slider.settings.ariaLive && !slider.settings.ticker) { 758 slider.viewport.attr('aria-live', 'polite'); 759 } 760 // add a loading div to display while images are loading 761 slider.loader = $('<div class="bx-loading" />'); 762 slider.viewport.prepend(slider.loader); 763 // set el to a massive width, to hold any needed slides 764 // also strip any margin and padding from el 765 el.css({ 766 width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto', 767 position: 'relative' 768 }); 769 // if using CSS, add the easing property 770 if (slider.usingCSS && slider.settings.easing) { 771 el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing); 772 // if not using CSS and no easing value was supplied, use the default JS animation easing (swing) 773 } else if (!slider.settings.easing) { 774 slider.settings.easing = 'swing'; 775 } 776 // make modifications to the viewport (.bx-viewport) 777 slider.viewport.css({ 778 width: '100%', 779 overflow: 'hidden', 780 position: 'relative' 781 }); 782 slider.viewport.parent().css({ 783 maxWidth: getViewportMaxWidth() 784 }); 785 // apply css to all slider children 786 slider.children.css({ 787 float: slider.settings.mode === 'horizontal' ? 'left' : 'none', 788 listStyle: 'none', 789 position: 'relative' 790 }); 791 // apply the calculated width after the float is applied to prevent scrollbar interference 792 slider.children.css('width', getSlideWidth()); 793 // if slideMargin is supplied, add the css 794 if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); } 795 if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); } 796 // if "fade" mode, add positioning and z-index CSS 797 if (slider.settings.mode === 'fade') { 798 slider.children.css({ 799 position: 'absolute', 800 zIndex: 0, 801 display: 'none' 802 }); 803 // prepare the z-index on the showing element 804 slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'}); 805 } 806 // create an element to contain all slider controls (pager, start / stop, etc) 807 slider.controls.el = $('<div class="bx-controls" />'); 808 // if captions are requested, add them 809 if (slider.settings.captions) { appendCaptions(); } 810 // check if startSlide is last slide 811 slider.active.last = slider.settings.startSlide === getPagerQty() - 1; 812 // if video is true, set up the fitVids plugin 813 if (slider.settings.video) { el.fitVids(); } 814 if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; } 815 // only check for control addition if not in "ticker" mode 816 if (!slider.settings.ticker) { 817 // if controls are requested, add them 818 if (slider.settings.controls) { appendControls(); } 819 // if auto is true, and auto controls are requested, add them 820 if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); } 821 // if pager is requested, add it 822 if (slider.settings.pager) { appendPager(); } 823 // if any control option is requested, add the controls wrapper 824 if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); } 825 // if ticker mode, do not allow a pager 826 } else { 827 slider.settings.pager = false; 828 } 829 loadElements(preloadSelector, start); 830 }; 831 832 var loadElements = function(selector, callback) { 833 var total = selector.find('img:not([src=""]), iframe').length, 834 count = 0; 835 if (total === 0) { 836 callback(); 837 return; 838 } 839 selector.find('img:not([src=""]), iframe').each(function() { 840 $(this).one('load error', function() { 841 if (++count === total) { callback(); } 842 }).each(function() { 843 if (this.complete) { $(this).trigger('load'); } 844 }); 845 }); 846 }; 847 848 /** 849 * Start the slider 850 */ 851 var start = function() { 852 // if infinite loop, prepare additional slides 853 if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) { 854 var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides, 855 sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'), 856 slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone'); 857 if (slider.settings.ariaHidden) { 858 sliceAppend.attr('aria-hidden', true); 859 slicePrepend.attr('aria-hidden', true); 860 } 861 el.append(sliceAppend).prepend(slicePrepend); 862 } 863 // remove the loading DOM element 864 slider.loader.remove(); 865 // set the left / top position of "el" 866 setSlidePosition(); 867 // if "vertical" mode, always use adaptiveHeight to prevent odd behavior 868 if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; } 869 // set the viewport height 870 slider.viewport.height(getViewportHeight()); 871 // make sure everything is positioned just right (same as a window resize) 872 el.redrawSlider(); 873 // onSliderLoad callback 874 slider.settings.onSliderLoad.call(el, slider.active.index); 875 // slider has been fully initialized 876 slider.initialized = true; 877 // bind the resize call to the window 878 if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); } 879 // if auto is true and has more than 1 page, start the show 880 if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); } 881 // if ticker is true, start the ticker 882 if (slider.settings.ticker) { initTicker(); } 883 // if pager is requested, make the appropriate pager link active 884 if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); } 885 // check for any updates to the controls (like hideControlOnEnd updates) 886 if (slider.settings.controls) { updateDirectionControls(); } 887 // if touchEnabled is true, setup the touch events 888 if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); } 889 // if keyboardEnabled is true, setup the keyboard events 890 if (slider.settings.keyboardEnabled && !slider.settings.ticker) { 891 $(document).keydown(keyPress); 892 } 893 }; 894 895 /** 896 * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value 897 */ 898 var getViewportHeight = function() { 899 var height = 0; 900 // first determine which children (slides) should be used in our height calculation 901 var children = $(); 902 // if mode is not "vertical" and adaptiveHeight is false, include all children 903 if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) { 904 children = slider.children; 905 } else { 906 // if not carousel, return the single active child 907 if (!slider.carousel) { 908 children = slider.children.eq(slider.active.index); 909 // if carousel, return a slice of children 910 } else { 911 // get the individual slide index 912 var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy(); 913 // add the current slide to the children 914 children = slider.children.eq(currentIndex); 915 // cycle through the remaining "showing" slides 916 for (i = 1; i <= slider.settings.maxSlides - 1; i++) { 917 // if looped back to the start 918 if (currentIndex + i >= slider.children.length) { 919 children = children.add(slider.children.eq(i - 1)); 920 } else { 921 children = children.add(slider.children.eq(currentIndex + i)); 922 } 923 } 924 } 925 } 926 // if "vertical" mode, calculate the sum of the heights of the children 927 if (slider.settings.mode === 'vertical') { 928 children.each(function(index) { 929 height += $(this).outerHeight(); 930 }); 931 // add user-supplied margins 932 if (slider.settings.slideMargin > 0) { 933 height += slider.settings.slideMargin * (slider.settings.minSlides - 1); 934 } 935 // if not "vertical" mode, calculate the max height of the children 936 } else { 937 height = Math.max.apply(Math, children.map(function() { 938 return $(this).outerHeight(false); 939 }).get()); 940 } 941 942 if (slider.viewport.css('box-sizing') === 'border-box') { 943 height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) + 944 parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width')); 945 } else if (slider.viewport.css('box-sizing') === 'padding-box') { 946 height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')); 947 } 948 949 return height; 950 }; 951 952 /** 953 * Returns the calculated width to be used for the outer wrapper / viewport 954 */ 955 var getViewportMaxWidth = function() { 956 var width = '100%'; 957 if (slider.settings.slideWidth > 0) { 958 if (slider.settings.mode === 'horizontal') { 959 width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin); 960 } else { 961 width = slider.settings.slideWidth; 962 } 963 } 964 return width; 965 }; 966 967 /** 968 * Returns the calculated width to be applied to each slide 969 */ 970 var getSlideWidth = function() { 971 var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width 972 wrapWidth = slider.viewport.width(); // get the current viewport width 973 // if slide width was not supplied, or is larger than the viewport use the viewport width 974 if (slider.settings.slideWidth === 0 || 975 (slider.settings.slideWidth > wrapWidth && !slider.carousel) || 976 slider.settings.mode === 'vertical') { 977 newElWidth = wrapWidth; 978 // if carousel, use the thresholds to determine the width 979 } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') { 980 if (wrapWidth > slider.maxThreshold) { 981 return newElWidth; 982 } else if (wrapWidth < slider.minThreshold) { 983 newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides; 984 } else if (slider.settings.shrinkItems) { 985 newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin); 986 } 987 } 988 return newElWidth; 989 }; 990 991 /** 992 * Returns the number of slides currently visible in the viewport (includes partially visible slides) 993 */ 994 var getNumberSlidesShowing = function() { 995 var slidesShowing = 1, 996 childWidth = null; 997 if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) { 998 // if viewport is smaller than minThreshold, return minSlides 999 if (slider.viewport.width() < slider.minThreshold) { 1000 slidesShowing = slider.settings.minSlides; 1001 // if viewport is larger than maxThreshold, return maxSlides 1002 } else if (slider.viewport.width() > slider.maxThreshold) { 1003 slidesShowing = slider.settings.maxSlides; 1004 // if viewport is between min / max thresholds, divide viewport width by first child width 1005 } else { 1006 childWidth = slider.children.first().width() + slider.settings.slideMargin; 1007 slidesShowing = Math.floor((slider.viewport.width() + 1008 slider.settings.slideMargin) / childWidth); 1009 } 1010 // if "vertical" mode, slides showing will always be minSlides 1011 } else if (slider.settings.mode === 'vertical') { 1012 slidesShowing = slider.settings.minSlides; 1013 } 1014 return slidesShowing; 1015 }; 1016 1017 /** 1018 * Returns the number of pages (one full viewport of slides is one "page") 1019 */ 1020 var getPagerQty = function() { 1021 var pagerQty = 0, 1022 breakPoint = 0, 1023 counter = 0; 1024 // if moveSlides is specified by the user 1025 if (slider.settings.moveSlides > 0) { 1026 if (slider.settings.infiniteLoop) { 1027 pagerQty = Math.ceil(slider.children.length / getMoveBy()); 1028 } else { 1029 // when breakpoint goes above children length, counter is the number of pages 1030 while (breakPoint < slider.children.length) { 1031 ++pagerQty; 1032 breakPoint = counter + getNumberSlidesShowing(); 1033 counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing(); 1034 } 1035 } 1036 // if moveSlides is 0 (auto) divide children length by sides showing, then round up 1037 } else { 1038 pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing()); 1039 } 1040 return pagerQty; 1041 }; 1042 1043 /** 1044 * Returns the number of individual slides by which to shift the slider 1045 */ 1046 var getMoveBy = function() { 1047 // if moveSlides was set by the user and moveSlides is less than number of slides showing 1048 if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) { 1049 return slider.settings.moveSlides; 1050 } 1051 // if moveSlides is 0 (auto) 1052 return getNumberSlidesShowing(); 1053 }; 1054 1055 /** 1056 * Sets the slider's (el) left or top position 1057 */ 1058 var setSlidePosition = function() { 1059 var position, lastChild, lastShowingIndex; 1060 // if last slide, not infinite loop, and number of children is larger than specified maxSlides 1061 if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) { 1062 if (slider.settings.mode === 'horizontal') { 1063 // get the last child's position 1064 lastChild = slider.children.last(); 1065 position = lastChild.position(); 1066 // set the left position 1067 setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0); 1068 } else if (slider.settings.mode === 'vertical') { 1069 // get the last showing index's position 1070 lastShowingIndex = slider.children.length - slider.settings.minSlides; 1071 position = slider.children.eq(lastShowingIndex).position(); 1072 // set the top position 1073 setPositionProperty(-position.top, 'reset', 0); 1074 } 1075 // if not last slide 1076 } else { 1077 // get the position of the first showing slide 1078 position = slider.children.eq(slider.active.index * getMoveBy()).position(); 1079 // check for last slide 1080 if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; } 1081 // set the respective position 1082 if (position !== undefined) { 1083 if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } 1084 else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } 1085 } 1086 } 1087 }; 1088 1089 /** 1090 * Sets the el's animating property position (which in turn will sometimes animate el). 1091 * If using CSS, sets the transform property. If not using CSS, sets the top / left property. 1092 * 1093 * @param value (int) 1094 * - the animating property's value 1095 * 1096 * @param type (string) 'slide', 'reset', 'ticker' 1097 * - the type of instance for which the function is being 1098 * 1099 * @param duration (int) 1100 * - the amount of time (in ms) the transition should occupy 1101 * 1102 * @param params (array) optional 1103 * - an optional parameter containing any variables that need to be passed in 1104 */ 1105 var setPositionProperty = function(value, type, duration, params) { 1106 var animateObj, propValue; 1107 // use CSS transform 1108 if (slider.usingCSS) { 1109 // determine the translate3d value 1110 propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)'; 1111 // add the CSS transition-duration 1112 el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's'); 1113 if (type === 'slide') { 1114 // set the property value 1115 el.css(slider.animProp, propValue); 1116 if (duration !== 0) { 1117 // bind a callback method - executes when CSS transition completes 1118 el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { 1119 //make sure it's the correct one 1120 if (!$(e.target).is(el)) { return; } 1121 // unbind the callback 1122 el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); 1123 updateAfterSlideTransition(); 1124 }); 1125 } else { //duration = 0 1126 updateAfterSlideTransition(); 1127 } 1128 } else if (type === 'reset') { 1129 el.css(slider.animProp, propValue); 1130 } else if (type === 'ticker') { 1131 // make the transition use 'linear' 1132 el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear'); 1133 el.css(slider.animProp, propValue); 1134 if (duration !== 0) { 1135 el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) { 1136 //make sure it's the correct one 1137 if (!$(e.target).is(el)) { return; } 1138 // unbind the callback 1139 el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd'); 1140 // reset the position 1141 setPositionProperty(params.resetValue, 'reset', 0); 1142 // start the loop again 1143 tickerLoop(); 1144 }); 1145 } else { //duration = 0 1146 setPositionProperty(params.resetValue, 'reset', 0); 1147 tickerLoop(); 1148 } 1149 } 1150 // use JS animate 1151 } else { 1152 animateObj = {}; 1153 animateObj[slider.animProp] = value; 1154 if (type === 'slide') { 1155 el.animate(animateObj, duration, slider.settings.easing, function() { 1156 updateAfterSlideTransition(); 1157 }); 1158 } else if (type === 'reset') { 1159 el.css(slider.animProp, value); 1160 } else if (type === 'ticker') { 1161 el.animate(animateObj, duration, 'linear', function() { 1162 setPositionProperty(params.resetValue, 'reset', 0); 1163 // run the recursive loop after animation 1164 tickerLoop(); 1165 }); 1166 } 1167 } 1168 }; 1169 1170 /** 1171 * Populates the pager with proper amount of pages 1172 */ 1173 var populatePager = function() { 1174 var pagerHtml = '', 1175 linkContent = '', 1176 pagerQty = getPagerQty(); 1177 // loop through each pager item 1178 for (var i = 0; i < pagerQty; i++) { 1179 linkContent = ''; 1180 // if a buildPager function is supplied, use it to get pager link value, else use index + 1 1181 if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) { 1182 linkContent = slider.settings.buildPager(i); 1183 slider.pagerEl.addClass('bx-custom-pager'); 1184 } else { 1185 linkContent = i + 1; 1186 slider.pagerEl.addClass('bx-default-pager'); 1187 } 1188 // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1; 1189 // add the markup to the string 1190 pagerHtml += '<div class="bx-pager-item">
1190<a href="" data-slide-index="' + i + '" class="bx-pager-link">' + linkContent + '</a></div>'; 1191 } 1192 // populate the pager element with pager links 1193 slider.pagerEl.html(pagerHtml); 1194 }; 1195 1196 /** 1197 * Appends the pager to the controls element 1198 */ 1199 var appendPager = function() { 1200 if (!slider.settings.pagerCustom) { 1201 // create the pager DOM element 1202 slider.pagerEl = $('<div class="bx-pager" />'); 1203 // if a pager selector was supplied, populate it with the pager 1204 if (slider.settings.pagerSelector) { 1205 $(slider.settings.pagerSelector).html(slider.pagerEl); 1206 // if no pager selector was supplied, add it after the wrapper 1207 } else { 1208 slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl); 1209 } 1210 // populate the pager 1211 populatePager(); 1212 } else { 1213 slider.pagerEl = $(slider.settings.pagerCustom); 1214 } 1215 // assign the pager click binding 1216 slider.pagerEl.on('click touchend', 'a', clickPagerBind); 1217 }; 1218 1219 /** 1220 * Appends prev / next controls to the controls element 1221 */ 1222 var appendControls = function() { 1223 slider.controls.next = $('<a class="bx-next" href="">' + slider.settings.nextText + '</a>'); 1224 slider.controls.prev = $('<a class="bx-prev" href="">' + slider.settings.prevText + '</a>'); 1225 // bind click actions to the controls 1226 slider.controls.next.bind('click touchend', clickNextBind); 1227 slider.controls.prev.bind('click touchend', clickPrevBind); 1228 // if nextSelector was supplied, populate it 1229 if (slider.settings.nextSelector) { 1230 $(slider.settings.nextSelector).append(slider.controls.next); 1231 } 1232 // if prevSelector was supplied, populate it 1233 if (slider.settings.prevSelector) { 1234 $(slider.settings.prevSelector).append(slider.controls.prev); 1235 } 1236 // if no custom selectors were supplied 1237 if (!slider.settings.nextSelector && !slider.settings.prevSelector) { 1238 // add the controls to the DOM 1239 slider.controls.directionEl = $('<div class="bx-controls-direction" />'); 1240 // add the control elements to the directionEl 1241 slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next); 1242 // slider.viewport.append(slider.controls.directionEl); 1243 slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl); 1244 } 1245 }; 1246 1247 /** 1248 * Appends start / stop auto controls to the controls element 1249 */ 1250 var appendControlsAuto = function() { 1251 slider.controls.start = $('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + slider.settings.startText + '</a></div>'); 1252 slider.controls.stop = $('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + slider.settings.stopText + '</a></div>'); 1253 // add the controls to the DOM 1254 slider.controls.autoEl = $('<div class="bx-controls-auto" />'); 1255 // bind
vendor: 7,154 bytes, lines 1255-1453
1255 click actions to the controls 1256 slider.controls.autoEl.on('click', '.bx-start', clickStartBind); 1257 slider.controls.autoEl.on('click', '.bx-stop', clickStopBind); 1258 // if autoControlsCombine, insert only the "start" control 1259 if (slider.settings.autoControlsCombine) { 1260 slider.controls.autoEl.append(slider.controls.start); 1261 // if autoControlsCombine is false, insert both controls 1262 } else { 1263 slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop); 1264 } 1265 // if auto controls selector was supplied, populate it with the controls 1266 if (slider.settings.autoControlsSelector) { 1267 $(slider.settings.autoControlsSelector).html(slider.controls.autoEl); 1268 // if auto controls selector was not supplied, add it after the wrapper 1269 } else { 1270 slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl); 1271 } 1272 // update the auto controls 1273 updateAutoControls(slider.settings.autoStart ? 'stop' : 'start'); 1274 }; 1275 1276 /** 1277 * Appends image captions to the DOM 1278 */ 1279 var appendCaptions = function() { 1280 // cycle through each child 1281 slider.children.each(function(index) { 1282 // get the image title attribute 1283 var title = $(this).find('img:first').attr('title'); 1284 // append the caption 1285 if (title !== undefined && ('' + title).length) { 1286 $(this).append('<div class="bx-caption"><span>' + title + '</span></div>'); 1287 } 1288 }); 1289 }; 1290 1291 /** 1292 * Click next binding 1293 * 1294 * @param e (event) 1295 * - DOM event object 1296 */ 1297 var clickNextBind = function(e) { 1298 e.preventDefault(); 1299 if (slider.controls.el.hasClass('disabled')) { return; } 1300 // if auto show is running, stop it 1301 if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } 1302 el.goToNextSlide(); 1303 }; 1304 1305 /** 1306 * Click prev binding 1307 * 1308 * @param e (event) 1309 * - DOM event object 1310 */ 1311 var clickPrevBind = function(e) { 1312 e.preventDefault(); 1313 if (slider.controls.el.hasClass('disabled')) { return; } 1314 // if auto show is running, stop it 1315 if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } 1316 el.goToPrevSlide(); 1317 }; 1318 1319 /** 1320 * Click start binding 1321 * 1322 * @param e (event) 1323 * - DOM event object 1324 */ 1325 var clickStartBind = function(e) { 1326 el.startAuto(); 1327 e.preventDefault(); 1328 }; 1329 1330 /** 1331 * Click stop binding 1332 * 1333 * @param e (event) 1334 * - DOM event object 1335 */ 1336 var clickStopBind = function(e) { 1337 el.stopAuto(); 1338 e.preventDefault(); 1339 }; 1340 1341 /** 1342 * Click pager binding 1343 * 1344 * @param e (event) 1345 * - DOM event object 1346 */ 1347 var clickPagerBind = function(e) { 1348 var pagerLink, pagerIndex; 1349 e.preventDefault(); 1350 if (slider.controls.el.hasClass('disabled')) { 1351 return; 1352 } 1353 // if auto show is running, stop it 1354 if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); } 1355 pagerLink = $(e.currentTarget); 1356 if (pagerLink.attr('data-slide-index') !== undefined) { 1357 pagerIndex = parseInt(pagerLink.attr('data-slide-index')); 1358 // if clicked pager link is not active, continue with the goToSlide call 1359 if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); } 1360 } 1361 }; 1362 1363 /** 1364 * Updates the pager links with an active class 1365 * 1366 * @param slideIndex (int) 1367 * - index of slide to make active 1368 */ 1369 var updatePagerActive = function(slideIndex) { 1370 // if "short" pager type 1371 var len = slider.children.length; // nb of children 1372 if (slider.settings.pagerType === 'short') { 1373 if (slider.settings.maxSlides > 1) { 1374 len = Math.ceil(slider.children.length / slider.settings.maxSlides); 1375 } 1376 slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len); 1377 return; 1378 } 1379 // remove all pager active classes 1380 slider.pagerEl.find('a').removeClass('active'); 1381 // apply the active class for all pagers 1382 slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); }); 1383 }; 1384 1385 /** 1386 * Performs needed actions after a slide transition 1387 */ 1388 var updateAfterSlideTransition = function() { 1389 // if infinite loop is true 1390 if (slider.settings.infiniteLoop) { 1391 var position = ''; 1392 // first slide 1393 if (slider.active.index === 0) { 1394 // set the new position 1395 position = slider.children.eq(0).position(); 1396 // carousel, last slide 1397 } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) { 1398 position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position(); 1399 // last slide 1400 } else if (slider.active.index === slider.children.length - 1) { 1401 position = slider.children.eq(slider.children.length - 1).position(); 1402 } 1403 if (position) { 1404 if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); } 1405 else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); } 1406 } 1407 } 1408 // declare that the transition is complete 1409 slider.working = false; 1410 // onSlideAfter callback 1411 slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); 1412 }; 1413 1414 /** 1415 * Updates the auto controls state (either active, or combined switch) 1416 * 1417 * @param state (string) "start", "stop" 1418 * - the new state of the auto show 1419 */ 1420 var updateAutoControls = function(state) { 1421 // if autoControlsCombine is true, replace the current control with the new state 1422 if (slider.settings.autoControlsCombine) { 1423 slider.controls.autoEl.html(slider.controls[state]); 1424 // if autoControlsCombine is false, apply the "active" class to the appropriate control 1425 } else { 1426 slider.controls.autoEl.find('a').removeClass('active'); 1427 slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active'); 1428 } 1429 }; 1430 1431 /** 1432 * Updates the direction controls (checks if either should be hidden) 1433 */ 1434 var updateDirectionControls = function() { 1435 if (getPagerQty() === 1) { 1436 slider.controls.prev.addClass('disabled'); 1437 slider.controls.next.addClass('disabled'); 1438 } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) { 1439 // if first slide 1440 if (slider.active.index === 0) { 1441 slider.controls.prev.addClass('disabled'); 1442 slider.controls.next.removeClass('disabled'); 1443 // if last slide 1444 } else if (slider.active.index === getPagerQty() - 1) { 1445 slider.controls.next.addClass('disabled'); 1446 slider.controls.prev.removeClass('disabled'); 1447 // if any slide in the middle 1448 } else { 1449 slider.controls.prev.removeClass('disabled'); 1450 slider.controls.next.removeClass('disabled'); 1451 } 1452 } 1453 };
1454 1455 /** 1456 * Initializes the auto process 1457 */ 1458 var initAuto = function() { 1459 // if autoDelay was supplied, launch the auto show using a setTimeout() call 1460 if (slider.settings.autoDelay > 0) { 1461 var timeout = setTimeout(el.startAuto, slider.settings.autoDelay); 1462 // if autoDelay was not supplied, start the auto show normally 1463 } else { 1464 el.startAuto(); 1465 1466 //add focus and blur events to ensure its running if timeout gets paused 1467 $(window).focus(function() { 1468 el.startAuto(); 1469 }).blur(function() { 1470 el.stopAuto(); 1471 }
vendor: 6,234 bytes, lines 1471-1631
1471); 1472 } 1473 // if autoHover is requested 1474 if (slider.settings.autoHover) { 1475 // on el hover 1476 el.hover(function() { 1477 // if the auto show is currently playing (has an active interval) 1478 if (slider.interval) { 1479 // stop the auto show and pass true argument which will prevent control update 1480 el.stopAuto(true); 1481 // create a new autoPaused value which will be used by the relative "mouseout" event 1482 slider.autoPaused = true; 1483 } 1484 }, function() { 1485 // if the autoPaused value was created be the prior "mouseover" event 1486 if (slider.autoPaused) { 1487 // start the auto show and pass true argument which will prevent control update 1488 el.startAuto(true); 1489 // reset the autoPaused value 1490 slider.autoPaused = null; 1491 } 1492 }); 1493 } 1494 }; 1495 1496 /** 1497 * Initializes the ticker process 1498 */ 1499 var initTicker = function() { 1500 var startPosition = 0, 1501 position, transform, value, idx, ratio, property, newSpeed, totalDimens; 1502 // if autoDirection is "next", append a clone of the entire slider 1503 if (slider.settings.autoDirection === 'next') { 1504 el.append(slider.children.clone().addClass('bx-clone')); 1505 // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position 1506 } else { 1507 el.prepend(slider.children.clone().addClass('bx-clone')); 1508 position = slider.children.first().position(); 1509 startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top; 1510 } 1511 setPositionProperty(startPosition, 'reset', 0); 1512 // do not allow controls in ticker mode 1513 slider.settings.pager = false; 1514 slider.settings.controls = false; 1515 slider.settings.autoControls = false; 1516 // if autoHover is requested 1517 if (slider.settings.tickerHover) { 1518 if (slider.usingCSS) { 1519 idx = slider.settings.mode === 'horizontal' ? 4 : 5; 1520 slider.viewport.hover(function() { 1521 transform = el.css('-' + slider.cssPrefix + '-transform'); 1522 value = parseFloat(transform.split(',')[idx]); 1523 setPositionProperty(value, 'reset', 0); 1524 }, function() { 1525 totalDimens = 0; 1526 slider.children.each(function(index) { 1527 totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); 1528 }); 1529 // calculate the speed ratio (used to determine the new speed to finish the paused animation) 1530 ratio = slider.settings.speed / totalDimens; 1531 // determine which property to use 1532 property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; 1533 // calculate the new speed 1534 newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value)))); 1535 tickerLoop(newSpeed); 1536 }); 1537 } else { 1538 // on el hover 1539 slider.viewport.hover(function() { 1540 el.stop(); 1541 }, function() { 1542 // calculate the total width of children (used to calculate the speed ratio) 1543 totalDimens = 0; 1544 slider.children.each(function(index) { 1545 totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true); 1546 }); 1547 // calculate the speed ratio (used to determine the new speed to finish the paused animation) 1548 ratio = slider.settings.speed / totalDimens; 1549 // determine which property to use 1550 property = slider.settings.mode === 'horizontal' ? 'left' : 'top'; 1551 // calculate the new speed 1552 newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property))))); 1553 tickerLoop(newSpeed); 1554 }); 1555 } 1556 } 1557 // start the ticker loop 1558 tickerLoop(); 1559 }; 1560 1561 /** 1562 * Runs a continuous loop, news ticker-style 1563 */ 1564 var tickerLoop = function(resumeSpeed) { 1565 var speed = resumeSpeed ? resumeSpeed : slider.settings.speed, 1566 position = {left: 0, top: 0}, 1567 reset = {left: 0, top: 0}, 1568 animateProperty, resetValue, params; 1569 1570 // if "next" animate left position to last child, then reset left to 0 1571 if (slider.settings.autoDirection === 'next') { 1572 position = el.find('.bx-clone').first().position(); 1573 // if "prev" animate left position to 0, then reset left to first non-clone child 1574 } else { 1575 reset = slider.children.first().position(); 1576 } 1577 animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top; 1578 resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top; 1579 params = {resetValue: resetValue}; 1580 setPositionProperty(animateProperty, 'ticker', speed, params); 1581 }; 1582 1583 /** 1584 * Check if el is on screen 1585 */ 1586 var isOnScreen = function(el) { 1587 var win = $(window), 1588 viewport = { 1589 top: win.scrollTop(), 1590 left: win.scrollLeft() 1591 }, 1592 bounds = el.offset(); 1593 1594 viewport.right = viewport.left + win.width(); 1595 viewport.bottom = viewport.top + win.height(); 1596 bounds.right = bounds.left + el.outerWidth(); 1597 bounds.bottom = bounds.top + el.outerHeight(); 1598 1599 return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom)); 1600 }; 1601 1602 /** 1603 * Initializes keyboard events 1604 */ 1605 var keyPress = function(e) { 1606 var activeElementTag = document.activeElement.tagName.toLowerCase(), 1607 tagFilters = 'input|textarea', 1608 p = new RegExp(activeElementTag,['i']), 1609 result = p.exec(tagFilters); 1610 1611 if (result == null && isOnScreen(el)) { 1612 if (e.keyCode === 39) { 1613 clickNextBind(e); 1614 return false; 1615 } else if (e.keyCode === 37) { 1616 clickPrevBind(e); 1617 return false; 1618 } 1619 } 1620 }; 1621 1622 /** 1623 * Initializes touch events 1624 */ 1625 var initTouch = function() { 1626 // initialize object to contain all touch values 1627 slider.touch = { 1628 start: {x: 0, y: 0}, 1629 end: {x: 0, y: 0} 1630 }; 1631 slider.viewport.
vendor: 6,558 bytes, lines 1631-1792
1631bind('touchstart MSPointerDown pointerdown', onTouchStart); 1632 1633 //for browsers that have implemented pointer events and fire a click after 1634 //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not 1635 slider.viewport.on('click', '.bxslider a', function(e) { 1636 if (slider.viewport.hasClass('click-disabled')) { 1637 e.preventDefault(); 1638 slider.viewport.removeClass('click-disabled'); 1639 } 1640 }); 1641 }; 1642 1643 /** 1644 * Event handler for "touchstart" 1645 * 1646 * @param e (event) 1647 * - DOM event object 1648 */ 1649 var onTouchStart = function(e) { 1650 //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls 1651 slider.controls.el.addClass('disabled'); 1652 1653 if (slider.working) { 1654 e.preventDefault(); 1655 slider.controls.el.removeClass('disabled'); 1656 } else { 1657 // record the original position when touch starts 1658 slider.touch.originalPos = el.position(); 1659 var orig = e.originalEvent, 1660 touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig]; 1661 // record the starting touch x, y coordinates 1662 slider.touch.start.x = touchPoints[0].pageX; 1663 slider.touch.start.y = touchPoints[0].pageY; 1664 1665 if (slider.viewport.get(0).setPointerCapture) { 1666 slider.pointerId = orig.pointerId; 1667 slider.viewport.get(0).setPointerCapture(slider.pointerId); 1668 } 1669 // bind a "touchmove" event to the viewport 1670 slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove); 1671 // bind a "touchend" event to the viewport 1672 slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd); 1673 slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel); 1674 } 1675 }; 1676 1677 /** 1678 * Cancel Pointer for Windows Phone 1679 * 1680 * @param e (event) 1681 * - DOM event object 1682 */ 1683 var onPointerCancel = function(e) { 1684 /* onPointerCancel handler is needed to deal with situations when a touchend 1685 doesn't fire after a touchstart (this happens on windows phones only) */ 1686 setPositionProperty(slider.touch.originalPos.left, 'reset', 0); 1687 1688 //remove handlers 1689 slider.controls.el.removeClass('disabled'); 1690 slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel); 1691 slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); 1692 slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); 1693 if (slider.viewport.get(0).releasePointerCapture) { 1694 slider.viewport.get(0).releasePointerCapture(slider.pointerId); 1695 } 1696 }; 1697 1698 /** 1699 * Event handler for "touchmove" 1700 * 1701 * @param e (event) 1702 * - DOM event object 1703 */ 1704 var onTouchMove = function(e) { 1705 var orig = e.originalEvent, 1706 touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], 1707 // if scrolling on y axis, do not prevent default 1708 xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x), 1709 yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y), 1710 value = 0, 1711 change = 0; 1712 1713 // x axis swipe 1714 if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) { 1715 e.preventDefault(); 1716 // y axis swipe 1717 } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) { 1718 e.preventDefault(); 1719 } 1720 if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) { 1721 // if horizontal, drag along x axis 1722 if (slider.settings.mode === 'horizontal') { 1723 change = touchPoints[0].pageX - slider.touch.start.x; 1724 value = slider.touch.originalPos.left + change; 1725 // if vertical, drag along y axis 1726 } else { 1727 change = touchPoints[0].pageY - slider.touch.start.y; 1728 value = slider.touch.originalPos.top + change; 1729 } 1730 setPositionProperty(value, 'reset', 0); 1731 } 1732 }; 1733 1734 /** 1735 * Event handler for "touchend" 1736 * 1737 * @param e (event) 1738 * - DOM event object 1739 */ 1740 var onTouchEnd = function(e) { 1741 slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove); 1742 //enable slider controls as soon as user stops interacing with slides 1743 slider.controls.el.removeClass('disabled'); 1744 var orig = e.originalEvent, 1745 touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig], 1746 value = 0, 1747 distance = 0; 1748 // record end x, y positions 1749 slider.touch.end.x = touchPoints[0].pageX; 1750 slider.touch.end.y = touchPoints[0].pageY; 1751 // if fade mode, check if absolute x distance clears the threshold 1752 if (slider.settings.mode === 'fade') { 1753 distance = Math.abs(slider.touch.start.x - slider.touch.end.x); 1754 if (distance >= slider.settings.swipeThreshold) { 1755 if (slider.touch.start.x > slider.touch.end.x) { 1756 el.goToNextSlide(); 1757 } else { 1758 el.goToPrevSlide(); 1759 } 1760 el.stopAuto(); 1761 } 1762 // not fade mode 1763 } else { 1764 // calculate distance and el's animate property 1765 if (slider.settings.mode === 'horizontal') { 1766 distance = slider.touch.end.x - slider.touch.start.x; 1767 value = slider.touch.originalPos.left; 1768 } else { 1769 distance = slider.touch.end.y - slider.touch.start.y; 1770 value = slider.touch.originalPos.top; 1771 } 1772 // if not infinite loop and first / last slide, do not attempt a slide transition 1773 if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) { 1774 setPositionProperty(value, 'reset', 200); 1775 } else { 1776 // check if distance clears threshold 1777 if (Math.abs(distance) >= slider.settings.swipeThreshold) { 1778 if (distance < 0) { 1779 el.goToNextSlide(); 1780 } else { 1781 el.goToPrevSlide(); 1782 } 1783 el.stopAuto(); 1784 } else { 1785 // el.animate(property, 200); 1786 setPositionProperty(value, 'reset', 200); 1787 } 1788 } 1789 } 1790 slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd); 1791 if (slider.viewport.get(0).releasePointerCapture) { 1792 slider.viewport.get(0).releasePointerCapture(slider.pointerId
vendor: 8,775 bytes, lines 1792-1987
1792); 1793 } 1794 }; 1795 1796 /** 1797 * Window resize event callback 1798 */ 1799 var resizeWindow = function(e) { 1800 // don't do anything if slider isn't initialized. 1801 if (!slider.initialized) { return; } 1802 // Delay if slider working. 1803 if (slider.working) { 1804 window.setTimeout(resizeWindow, 10); 1805 } else { 1806 // get the new window dimens (again, thank you IE) 1807 var windowWidthNew = $(window).width(), 1808 windowHeightNew = $(window).height(); 1809 // make sure that it is a true window resize 1810 // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements 1811 // are resized. Can you just die already?* 1812 if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) { 1813 // set the new window dimens 1814 windowWidth = windowWidthNew; 1815 windowHeight = windowHeightNew; 1816 // update all dynamic elements 1817 el.redrawSlider(); 1818 // Call user resize handler 1819 slider.settings.onSliderResize.call(el, slider.active.index); 1820 } 1821 } 1822 }; 1823 1824 /** 1825 * Adds an aria-hidden=true attribute to each element 1826 * 1827 * @param startVisibleIndex (int) 1828 * - the first visible element's index 1829 */ 1830 var applyAriaHiddenAttributes = function(startVisibleIndex) { 1831 var numberOfSlidesShowing = getNumberSlidesShowing(); 1832 // only apply attributes if the setting is enabled and not in ticker mode 1833 if (slider.settings.ariaHidden && !slider.settings.ticker) { 1834 // add aria-hidden=true to all elements 1835 slider.children.attr('aria-hidden', 'true'); 1836 // get the visible elements and change to aria-hidden=false 1837 slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false'); 1838 } 1839 }; 1840 1841 /** 1842 * Returns index according to present page range 1843 * 1844 * @param slideOndex (int) 1845 * - the desired slide index 1846 */ 1847 var setSlideIndex = function(slideIndex) { 1848 if (slideIndex < 0) { 1849 if (slider.settings.infiniteLoop) { 1850 return getPagerQty() - 1; 1851 }else { 1852 //we don't go to undefined slides 1853 return slider.active.index; 1854 } 1855 // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop) 1856 } else if (slideIndex >= getPagerQty()) { 1857 if (slider.settings.infiniteLoop) { 1858 return 0; 1859 } else { 1860 //we don't move to undefined pages 1861 return slider.active.index; 1862 } 1863 // set active index to requested slide 1864 } else { 1865 return slideIndex; 1866 } 1867 }; 1868 1869 /** 1870 * =================================================================================== 1871 * = PUBLIC FUNCTIONS 1872 * =================================================================================== 1873 */ 1874 1875 /** 1876 * Performs slide transition to the specified slide 1877 * 1878 * @param slideIndex (int) 1879 * - the destination slide's index (zero-based) 1880 * 1881 * @param direction (string) 1882 * - INTERNAL USE ONLY - the direction of travel ("prev" / "next") 1883 */ 1884 el.goToSlide = function(slideIndex, direction) { 1885 // onSlideBefore, onSlideNext, onSlidePrev callbacks 1886 // Allow transition canceling based on returned value 1887 var performTransition = true, 1888 moveBy = 0, 1889 position = {left: 0, top: 0}, 1890 lastChild = null, 1891 lastShowingIndex, eq, value, requestEl; 1892 // store the old index 1893 slider.oldIndex = slider.active.index; 1894 //set new index 1895 slider.active.index = setSlideIndex(slideIndex); 1896 1897 // if plugin is currently in motion, ignore request 1898 if (slider.working || slider.active.index === slider.oldIndex) { return; } 1899 // declare that plugin is in motion 1900 slider.working = true; 1901 1902 performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index); 1903 1904 // If transitions canceled, reset and return 1905 if (typeof (performTransition) !== 'undefined' && !performTransition) { 1906 slider.active.index = slider.oldIndex; // restore old index 1907 slider.working = false; // is not in motion 1908 return; 1909 } 1910 1911 if (direction === 'next') { 1912 // Prevent canceling in future functions or lack there-of from negating previous commands to cancel 1913 if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { 1914 performTransition = false; 1915 } 1916 } else if (direction === 'prev') { 1917 // Prevent canceling in future functions or lack there-of from negating previous commands to cancel 1918 if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) { 1919 performTransition = false; 1920 } 1921 } 1922 1923 // check if last slide 1924 slider.active.last = slider.active.index >= getPagerQty() - 1; 1925 // update the pager with active class 1926 if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); } 1927 // // check for direction control update 1928 if (slider.settings.controls) { updateDirectionControls(); } 1929 // if slider is set to mode: "fade" 1930 if (slider.settings.mode === 'fade') { 1931 // if adaptiveHeight is true and next height is different from current height, animate to the new height 1932 if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { 1933 slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); 1934 } 1935 // fade out the visible child and reset its z-index value 1936 slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0}); 1937 // fade in the newly requested slide 1938 slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() { 1939 $(this).css('zIndex', slider.settings.slideZIndex); 1940 updateAfterSlideTransition(); 1941 }); 1942 // slider mode is not "fade" 1943 } else { 1944 // if adaptiveHeight is true and next height is different from current height, animate to the new height 1945 if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) { 1946 slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed); 1947 } 1948 // if carousel and not infinite loop 1949 if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) { 1950 if (slider.settings.mode === 'horizontal') { 1951 // get the last child position 1952 lastChild = slider.children.eq(slider.children.length - 1); 1953 position = lastChild.position(); 1954 // calculate the position of the last slide 1955 moveBy = slider.viewport.width() - lastChild.outerWidth(); 1956 } else { 1957 // get last showing index position 1958 lastShowingIndex = slider.children.length - slider.settings.minSlides; 1959 position = slider.children.eq(lastShowingIndex).position(); 1960 } 1961 // horizontal carousel, going previous while on first slide (infiniteLoop mode) 1962 } else if (slider.carousel && slider.active.last && direction === 'prev') { 1963 // get the last child position 1964 eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides); 1965 lastChild = el.children('.bx-clone').eq(eq); 1966 position = lastChild.position(); 1967 // if infinite loop and "Next" is clicked on the last slide 1968 } else if (direction === 'next' && slider.active.index === 0) { 1969 // get the last clone position 1970 position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position(); 1971 slider.active.last = false; 1972 // normal non-zero requests 1973 } else if (slideIndex >= 0) { 1974 //parseInt is applied to allow floats for slides/page 1975 requestEl = slideIndex * parseInt(getMoveBy()); 1976 position = slider.children.eq(requestEl).position(); 1977 } 1978 1979 /* If the position doesn't exist 1980 * (e.g. if you destroy the slider on a next click), 1981 * it doesn't throw an error. 1982 */ 1983 if (typeof (position) !== 'undefined') { 1984 value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top; 1985 // plugin values to be animated 1986 setPositionProperty(value, 'slide', slider.settings.speed); 1987 }
1987 else { 1988 slider.working = false; 1989 } 1990 } 1991 if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } 1992 }; 1993 1994 /** 1995 * Transitions to the next slide in the show 1996 */ 1997 el.goToNextSlide = function() { 1998 // if infiniteLoop is false and last page is showing, disregard call 1999 if (!slider.settings.infiniteLoop && slider.active.last) { return; } 2000 var pagerIndex = parseInt(slider.active.index) + 1; 2001 el.goToSlide(pagerIndex, 'next'); 2002 }; 2003 2004 /** 2005 * Transitions to the prev slide in the show 2006 */ 2007 el.goToPrevSlide = function() { 2008 // if infiniteLoop is false and last page is showing, disregard call 2009 if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; } 2010 var pagerIndex = parseInt(slider.active.index) - 1; 2011 el.goToSlide(pagerIndex, 'prev'); 2012 }; 2013 2014 /** 2015 * Starts the auto show 2016 * 2017 * @param preventControlUpdate (boolean) 2018 * - if true, auto controls state will not be updated 2019 */ 2020 el.startAuto = function(preventControlUpdate) { 2021 // if an interval already exists, disregard call 2022 if (slider.interval) { return; } 2023 // create an interval 2024 slider.interval = setInterval(function() { 2025 if (slider.settings.autoDirection === 'next') { 2026 el.goToNextSlide(); 2027 } else { 2028 el.goToPrevSlide(); 2029 } 2030 }, slider.settings.pause); 2031 // if auto controls are displayed and preventControlUpdate is not true 2032 if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); } 2033 }; 2034 2035 /** 2036 * Stops the auto show 2037 * 2038 * @param preventControlUpdate (boolean) 2039 * - if true, auto controls state will not be updated 2040 */ 2041 el.stopAuto = function(preventControlUpdate) { 2042 // if no interval exists, disregard call 2043 if (!slider.interval) { return; } 2044 // clear the interval 2045 clearInterval(slider.interval); 2046 slider.interval = null; 2047 // if auto controls are displayed and preventControlUpdate is not true 2048 if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); } 2049 }; 2050 2051 /** 2052 * Returns current slide index (zero-based) 2053 */ 2054 el.getCurrentSlide = function() { 2055 return slider.active.index; 2056 }; 2057 2058 /** 2059 * Returns current slide element 2060 */ 2061 el.getCurrentSlideElement = function() { 2062 return slider.children.eq(slider.active.index); 2063 }; 2064 2065 /** 2066 * Returns a slide element 2067 * @param index (int) 2068 * - The index (zero-based) of the element you want returned. 2069 */ 2070 el.getSlideElement = function(index) { 2071 return slider.children.eq(index); 2072 }; 2073 2074 /** 2075 * Returns number of slides in show 2076 */ 2077 el.getSlideCount = function() { 2078 return slider.children.length; 2079 }; 2080 2081 /** 2082 * Return slider.working variable 2083 */ 2084 el.isWorking = function() { 2085 return slider.working; 2086 }; 2087 2088 /** 2089 * Update all dynamic slider elements 2090 */ 2091 el.redrawSlider = function() { 2092 // resize all children in ratio to new screen size 2093 slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth()); 2094 // adjust the height
vendor: 3,187 bytes, lines 2095-2180
2095 slider.viewport.css('height', getViewportHeight()); 2096 // update the slide position 2097 if (!slider.settings.ticker) { setSlidePosition(); } 2098 // if active.last was true before the screen resize, we want 2099 // to keep it last no matter what screen size we end on 2100 if (slider.active.last) { slider.active.index = getPagerQty() - 1; } 2101 // if the active index (page) no longer exists due to the resize, simply set the index as last 2102 if (slider.active.index >= getPagerQty()) { slider.active.last = true; } 2103 // if a pager is being displayed and a custom pager is not being used, update it 2104 if (slider.settings.pager && !slider.settings.pagerCustom) { 2105 populatePager(); 2106 updatePagerActive(slider.active.index); 2107 } 2108 if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); } 2109 }; 2110 2111 /** 2112 * Destroy the current instance of the slider (revert everything back to original state) 2113 */ 2114 el.destroySlider = function() { 2115 // don't do anything if slider has already been destroyed 2116 if (!slider.initialized) { return; } 2117 slider.initialized = false; 2118 $('.bx-clone', this).remove(); 2119 slider.children.each(function() { 2120 if ($(this).data('origStyle') !== undefined) { 2121 $(this).attr('style', $(this).data('origStyle')); 2122 } else { 2123 $(this).removeAttr('style'); 2124 } 2125 }); 2126 if ($(this).data('origStyle') !== undefined) { 2127 this.attr('style', $(this).data('origStyle')); 2128 } else { 2129 $(this).removeAttr('style'); 2130 } 2131 $(this).unwrap().unwrap(); 2132 if (slider.controls.el) { slider.controls.el.remove(); } 2133 if (slider.controls.next) { slider.controls.next.remove(); } 2134 if (slider.controls.prev) { slider.controls.prev.remove(); } 2135 if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); } 2136 $('.bx-caption', this).remove(); 2137 if (slider.controls.autoEl) { slider.controls.autoEl.remove(); } 2138 clearInterval(slider.interval); 2139 if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); } 2140 if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); } 2141 //remove self reference in data 2142 $(this).removeData('bxSlider'); 2143 }; 2144 2145 /** 2146 * Reload the slider (revert all DOM changes, and re-initialize) 2147 */ 2148 el.reloadSlider = function(settings) { 2149 if (settings !== undefined) { options = settings; } 2150 el.destroySlider(); 2151 init(); 2152 //store reference to self in order to access public functions later 2153 $(el).data('bxSlider', this); 2154 }; 2155 2156 init(); 2157 2158 $(el).data('bxSlider', this); 2159 2160 // returns the current jQuery object 2161 return this; 2162 }; 2163 2164})(jQuery); 2165})(jQuery1_11_0); 2166/* 2167 * jQuery carouFredSel 6.2.1 2168 * Demo's and documentation: 2169 * caroufredsel.dev7studios.com 2170 * 2171 * Copyright (c) 2013 Fred Heusschen 2172 * www.frebsite.nl 2173 * 2174 * Dual licensed under the MIT and GPL licenses. 2175 * http://en.wikipedia.org/wiki/MIT_License 2176 * http://en.wikipedia.org/wiki/GNU_General_Public_License 2177 */ 2178 2179(function ($) { 2180 var jQuery = $;
vendor: 54,468 bytes, lines 2180-2182
2180 2181(function($){function sc_setScroll(a,b,c){return"transition"==c.transition&&"swing"==b&&(b="ease"),{anims:[],duration:a,orgDuration:a,easing:b,startTime:getTime()}}function sc_startScroll(a,b){for(var c=0,d=a.anims.length;d>c;c++){var e=a.anims[c];e&&e[0][b.transition](e[1],a.duration,a.easing,e[2])}}function sc_stopScroll(a,b){is_boolean(b)||(b=!0),is_object(a.pre)&&sc_stopScroll(a.pre,b);for(var c=0,d=a.anims.length;d>c;c++){var e=a.anims[c];e[0].stop(!0),b&&(e[0].css(e[1]),is_function(e[2])&&e[2]())}is_object(a.post)&&sc_stopScroll(a.post,b)}function sc_afterScroll(a,b,c){switch(b&&b.remove(),c.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":a.css("opacity",1),a.css("filter","")}}function sc_fireCallbacks(a,b,c,d,e){if(b[c]&&b[c].call(a,d),e[c].length)for(var f=0,g=e[c].length;g>f;f++)e[c][f].call(a,d);return[]}function sc_fireQueue(a,b,c){return b.length&&(a.trigger(cf_e(b[0][0],c),b[0][1]),b.shift()),b}function sc_hideHiddenItems(a){a.each(function(){var a=$(this);a.data("_cfs_isHidden",a.is(":hidden")).hide()})}function sc_showHiddenItems(a){a&&a.each(function(){var a=$(this);a.data("_cfs_isHidden")||a.show()})}function sc_clearTimers(a){return a.auto&&clearTimeout(a.auto),a.progress&&clearInterval(a.progress),a}function sc_mapCallbackArguments(a,b,c,d,e,f,g){return{width:g.width,height:g.height,items:{old:a,skipped:b,visible:c},scroll:{items:d,direction:e,duration:f}}}function sc_getDuration(a,b,c,d){var e=a.duration;return"none"==a.fx?0:("auto"==e?e=b.scroll.duration/b.scroll.items*c:10>e&&(e=d/e),1>e?0:("fade"==a.fx&&(e/=2),Math.round(e)))}function nv_showNavi(a,b,c){var d=is_number(a.items.minimum)?a.items.minimum:a.items.visible+1;if("show"==b||"hide"==b)var e=b;else if(d>b){debug(c,"Not enough items ("+b+" total, "+d+" needed): Hiding navigation.");var e="hide"}else var e="show";var f="show"==e?"removeClass":"addClass",g=cf_c("hidden",c);a.auto.button&&a.auto.button[e]()[f](g),a.prev.button&&a.prev.button[e]()[f](g),a.next.button&&a.next.button[e]()[f](g),a.pagination.container&&a.pagination.container[e]()[f](g)}function nv_enableNavi(a,b,c){if(!a.circular&&!a.infinite){var d="removeClass"==b||"addClass"==b?b:!1,e=cf_c("disabled",c);if(a.auto.button&&d&&a.auto.button[d](e),a.prev.button){var f=d||0==b?"addClass":"removeClass";a.prev.button[f](e)}if(a.next.button){var f=d||b==a.items.visible?"addClass":"removeClass";a.next.button[f](e)}}}function go_getObject(a,b){return is_function(b)?b=b.call(a):is_undefined(b)&&(b={}),b}function go_getItemsObject(a,b){return b=go_getObject(a,b),is_number(b)?b={visible:b}:"variable"==b?b={visible:b,width:b,height:b}:is_object(b)||(b={}),b}function go_getScrollObject(a,b){return b=go_getObject(a,b),is_number(b)?b=50>=b?{items:b}:{duration:b}:is_string(b)?b={easing:b}:is_object(b)||(b={}),b}function go_getNaviObject(a,b){if(b=go_getObject(a,b),is_string(b)){var c=cf_getKeyCode(b);b=-1==c?$(b):c}return b}function go_getAutoObject(a,b){return b=go_getNaviObject(a,b),is_jquery(b)?b={button:b}:is_boolean(b)?b={play:b}:is_number(b)&&(b={timeoutDuration:b}),b.progress&&(is_string(b.progress)||is_jquery(b.progress))&&(b.progress={bar:b.progress}),b}function go_complementAutoObject(a,b){return is_function(b.button)&&(b.button=b.button.call(a)),is_string(b.button)&&(b.button=$(b.button)),is_boolean(b.play)||(b.play=!0),is_number(b.delay)||(b.delay=0),is_undefined(b.pauseOnEvent)&&(b.pauseOnEvent=!0),is_boolean(b.pauseOnResize)||(b.pauseOnResize=!0),is_number(b.timeoutDuration)||(b.timeoutDuration=10>b.duration?2500:5*b.duration),b.progress&&(is_function(b.progress.bar)&&(b.progress.bar=b.progress.bar.call(a)),is_string(b.progress.bar)&&(b.progress.bar=$(b.progress.bar)),b.progress.bar?(is_function(b.progress.updater)||(b.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(b.progress.interval)||(b.progress.interval=50)):b.progress=!1),b}function go_getPrevNextObject(a,b){return b=go_getNaviObject(a,b),is_jquery(b)?b={button:b}:is_number(b)&&(b={key:b}),b}function go_complementPrevNextObject(a,b){return is_function(b.button)&&(b.button=b.button.call(a)),is_string(b.button)&&(b.button=$(b.button)),is_string(b.key)&&(b.key=cf_getKeyCode(b.key)),b}function go_getPaginationObject(a,b){return b=go_getNaviObject(a,b),is_jquery(b)?b={container:b}:is_boolean(b)&&(b={keys:b}),b}function go_complementPaginationObject(a,b){return is_function(b.container)&&(b.container=b.container.call(a)),is_string(b.container)&&(b.container=$(b.container)),is_number(b.items)||(b.items=!1),is_boolean(b.keys)||(b.keys=!1),is_function(b.anchorBuilder)||is_false(b.anchorBuilder)||(b.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(b.deviation)||(b.deviation=0),b}function go_getSwipeObject(a,b){return is_function(b)&&(b=b.call(a)),is_undefined(b)&&(b={onTouch:!1}),is_true(b)?b={onTouch:b}:is_number(b)&&(b={items:b}),b}function go_complementSwipeObject(a,b){return is_boolean(b.onTouch)||(b.onTouch=!0),is_boolean(b.onMouse)||(b.onMouse=!1),is_object(b.options)||(b.options={}),is_boolean(b.options.triggerOnTouchEnd)||(b.options.triggerOnTouchEnd=!1),b}function go_getMousewheelObject(a,b){return is_function(b)&&(b=b.call(a)),is_true(b)?b={}:is_number(b)?b={items:b}:is_undefined(b)&&(b=!1),b}function go_complementMousewheelObject(a,b){return b}function gn_getItemIndex(a,b,c,d,e){if(is_string(a)&&(a=$(a,e)),is_object(a)&&(a=$(a,e)),is_jquery(a)?(a=e.children().index(a),is_boolean(c)||(c=!1)):is_boolean(c)||(c=!0),is_number(a)||(a=0),is_number(b)||(b=0),c&&(a+=d.first),a+=b,d.total>0){for(;a>=d.total;)a-=d.total;for(;0>a;)a+=d.total}return a}function gn_getVisibleItemsPrev(a,b,c){for(var d=0,e=0,f=c;f>=0;f--){var g=a.eq(f);if(d+=g.is(":visible")?g[b.d.outerWidth](!0):0,d>b.maxDimension)return e;0==f&&(f=a.length),e++}}function gn_getVisibleItemsPrevFilter(a,b,c){return gn_getItemsPrevFilter(a,b.items.filter,b.items.visibleConf.org,c)}function gn_getScrollItemsPrevFilter(a,b,c,d){return gn_getItemsPrevFilter(a,b.items.filter,d,c)}function gn_getItemsPrevFilter(a,b,c,d){for(var e=0,f=0,g=d,h=a.length;g>=0;g--){if(f++,f==h)return f;var i=a.eq(g);if(i.is(b)&&(e++,e==c))return f;0==g&&(g=h)}}function gn_getVisibleOrg(a,b){return b.items.visibleConf.org||a.children().slice(0,b.items.visible).filter(b.items.filter).length}function gn_getVisibleItemsNext(a,b,c){for(var d=0,e=0,f=c,g=a.length-1;g>=f;f++){var h=a.eq(f);if(d+=h.is(":visible")?h[b.d.outerWidth](!0):0,d>b.maxDimension)return e;if(e++,e==g+1)return e;f==g&&(f=-1)}}function gn_getVisibleItemsNextTestCircular(a,b,c,d){var e=gn_getVisibleItemsNext(a,b,c);return b.circular||c+e>d&&(e=d-c),e}function gn_getVisibleItemsNextFilter(a,b,c){return gn_getItemsNextFilter(a,b.items.filter,b.items.visibleConf.org,c,b.circular)}function gn_getScrollItemsNextFilter(a,b,c,d){return gn_getItemsNextFilter(a,b.items.filter,d+1,c,b.circular)-1}function gn_getItemsNextFilter(a,b,c,d){for(var f=0,g=0,h=d,i=a.length-1;i>=h;h++){if(g++,g>=i)return g;var j=a.eq(h);if(j.is(b)&&(f++,f==c))return g;h==i&&(h=-1)}}function gi_getCurrentItems(a,b){return a.slice(0,b.items.visible)}function gi_getOldItemsPrev(a,b,c){return a.slice(c,b.items.visibleConf.old+c)}function gi_getNewItemsPrev(a,b){return a.slice(0,b.items.visible)}function gi_getOldItemsNext(a,b){return a.slice(0,b.items.visibleConf.old)}function gi_getNewItemsNext(a,b,c){return a.slice(c,b.items.visible+c)}function sz_storeMargin(a,b,c){b.usePadding&&(is_string(c)||(c="_cfs_origCssMargin"),a.each(function(){var a=$(this),d=parseInt(a.css(b.d.marginRight),10);is_number(d)||(d=0),a.data(c,d)}))}function sz_resetMargin(a,b,c){if(b.usePadding){var d=is_boolean(c)?c:!1;is_number(c)||(c=0),sz_storeMargin(a,b,"_cfs_tempCssMargin"),a.each(function(){var a=$(this);a.css(b.d.marginRight,d?a.data("_cfs_tempCssMargin"):c+a.data("_cfs_origCssMargin"))})}}function sz_storeOrigCss(a){a.each(function(){var a=$(this);a.data("_cfs_origCss",a.attr("style")||"")})}function sz_restoreOrigCss(a){a.each(function(){var a=$(this);a.attr("style",a.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(a,b){var d=(a.items.visible,a.items[a.d.width]),e=a[a.d.height],f=is_percentage(e);b.each(function(){var b=$(this),c=d-ms_getPaddingBorderMargin(b,a,"Width");b[a.d.width](c),f&&b[a.d.height](ms_getPercentage(c,e))})}function sz_setSizes(a,b){var c=a.parent(),d=a.children(),e=gi_getCurrentItems(d,b),f=cf_mapWrapperSizes(ms_getSizes(e,b,!0),b,!1);if(c.css(f),b.usePadding){var g=b.padding,h=g[b.d[1]];b.align&&0>h&&(h=0);var i=e.last();i.css(b.d.marginRight,i.data("_cfs_origCssMargin")+h),a.css(b.d.top,g[b.d[0]]),a.css(b.d.left,g[b.d[3]])}return a.css(b.d.width,f[b.d.width]+2*ms_getTotalSize(d,b,"width")),a.css(b.d.height,ms_getLargestSize(d,b,"height")),f}function ms_getSizes(a,b,c){return[ms_getTotalSize(a,b,"width",c),ms_getLargestSize(a,b,"height",c)]}function ms_getLargestSize(a,b,c,d){return is_boolean(d)||(d=!1),is_number(b[b.d[c]])&&d?b[b.d[c]]:is_number(b.items[b.d[c]])?b.items[b.d[c]]:(c=c.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",ms_getTrueLargestSize(a,b,c))}function ms_getTrueLargestSize(a,b,c){for(var d=0,e=0,f=a.length;f>e;e++){var g=a.eq(e),h=g.is(":visible")?g[b.d[c]](!0):0;h>d&&(d=h)}return d}function ms_getTotalSize(a,b,c,d){if(is_boolean(d)||(d=!1),is_number(b[b.d[c]])&&d)return b[b.d[c]];if(is_number(b.items[b.d[c]]))return b.items[b.d[c]]*a.length;for(var e=c.toLowerCase().indexOf("width")>-1?"outerWidth":"outerHeight",f=0,g=0,h=a.length;h>g;g++){var i=a.eq(g);f+=i.is(":visible")?i[b.d[e]](!0):0}return f}function ms_getParentSize(a,b,c){var d=a.is(":visible");d&&a.hide();var e=a.parent()[b.d[c]]();return d&&a.show(),e}function ms_getMaxDimension(a,b){return is_number(a[a.d.width])?a[a.d.width]:b}function ms_hasVariableSizes(a,b,c){for(var d=!1,e=!1,f=0,g=a.length;g>f;f++){var h=a.eq(f),i=h.is(":visible")?h[b.d[c]](!0):0;d===!1?d=i:d!=i&&(e=!0),0==d&&(e=!0)}return e}function ms_getPaddingBorderMargin(a,b,c){return a[b.d["outer"+c]](!0)-a[b.d[c.toLowerCase()]]()}function ms_getPercentage(a,b){if(is_percentage(b)){if(b=parseInt(b.slice(0,-1),10),!is_number(b))return a;a*=b/100}return a}function cf_e(a,b,c,d,e){return is_boolean(c)||(c=!0),is_boolean(d)||(d=!0),is_boolean(e)||(e=!1),c&&(a=b.events.prefix+a),d&&(a=a+"."+b.events.namespace),d&&e&&(a+=b.serialNumber),a}function cf_c(a,b){return is_string(b.classnames[a])?b.classnames[a]:a}function cf_mapWrapperSizes(a,b,c){is_boolean(c)||(c=!0);var d=b.usePadding&&c?b.padding:[0,0,0,0],e={};return e[b.d.width]=a[0]+d[1]+d[3],e[b.d.height]=a[1]+d[0]+d[2],e}function cf_sortParams(a,b){for(var c=[],d=0,e=a.length;e>d;d++)for(var f=0,g=b.length;g>f;f++)if(b[f].indexOf(typeof a[d])>-1&&is_undefined(c[f])){c[f]=a[d];break}return c}function cf_getPadding(a){if(is_undefined(a))return[0,0,0,0];if(is_number(a))return[a,a,a,a];if(is_string(a)&&(a=a.split("px").join("").split("em").join("").split(" ")),!is_array(a))return[0,0,0,0];for(var b=0;4>b;b++)a[b]=parseInt(a[b],10);switch(a.length){case 0:return[0,0,0,0];case 1:return[a[0],a[0],a[0],a[0]];case 2:return[a[0],a[1],a[0],a[1]];case 3:return[a[0],a[1],a[2],a[1]];default:return[a[0],a[1],a[2],a[3]]}}function cf_getAlignPadding(a,b){var c=is_number(b[b.d.width])?Math.ceil(b[b.d.width]-ms_getTotalSize(a,b,"width")):0;switch(b.align){case"left":return[0,c];case"right":return[c,0];case"center":default:return[Math.ceil(c/2),Math.floor(c/2)]}}function cf_getDimensions(a){for(var b=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],c=b[0].length,d="right"==a.direction||"left"==a.direction?0:1,e={},f=0;c>f;f++)e[b[0][f]]=b[d][f];return e}function cf_getAdjust(a,b,c,d){var e=a;if(is_function(c))e=c.call(d,e);else if(is_string(c)){var f=c.split("+"),g=c.split("-");if(g.length>f.length)var h=!0,i=g[0],j=g[1];else var h=!1,i=f[0],j=f[1];switch(i){case"even":e=1==a%2?a-1:a;break;case"odd":e=0==a%2?a-1:a;break;default:e=a}j=parseInt(j,10),is_number(j)&&(h&&(j=-j),e+=j)}return(!is_number(e)||1>e)&&(e=1),e}function cf_getItemsAdjust(a,b,c,d){return cf_getItemAdjustMinMax(cf_getAdjust(a,b,c,d),b.items.visibleConf)}function cf_getItemAdjustMinMax(a,b){return is_number(b.min)&&b.min>a&&(a=b.min),is_number(b.max)&&a>b.max&&(a=b.max),1>a&&(a=1),a}function cf_getSynchArr(a){is_array(a)||(a=[[a]]),is_array(a[0])||(a=[a]);for(var b=0,c=a.length;c>b;b++)is_string(a[b][0])&&(a[b][0]=$(a[b][0])),is_boolean(a[b][1])||(a[b][1]=!0),is_boolean(a[b][2])||(a[b][2]=!0),is_number(a[b][3])||(a[b][3]=0);return a}function cf_getKeyCode(a){return"right"==a?39:"left"==a?37:"up"==a?38:"down"==a?40:-1}function cf_setCookie(a,b,c){if(a){var d=b.triggerHandler(cf_e("currentPosition",c));$.fn.carouFredSel.cookie.set(a,d)}}function cf_getCookie(a){var b=$.fn.carouFredSel.cookie.get(a);return""==b?0:b}function in_mapCss(a,b){for(var c={},d=0,e=b.length;e>d;d++)c[b[d]]=a.css(b[d]);return c}function in_complementItems(a,b,c,d){return is_object(a.visibleConf)||(a.visibleConf={}),is_object(a.sizesConf)||(a.sizesConf={}),0==a.start&&is_number(d)&&(a.start=d),is_object(a.visible)?(a.visibleConf.min=a.visible.min,a.visibleConf.max=a.visible.max,a.visible=!1):is_string(a.visible)?("variable"==a.visible?a.visibleConf.variable=!0:a.visibleConf.adjust=a.visible,a.visible=!1):is_function(a.visible)&&(a.visibleConf.adjust=a.visible,a.visible=!1),is_string(a.filter)||(a.filter=c.filter(":hidden").length>0?":visible":"*"),a[b.d.width]||(b.responsive?(debug(!0,"Set a "+b.d.width+" for the items!"),a[b.d.width]=ms_getTrueLargestSize(c,b,"outerWidth")):a[b.d.width]=ms_hasVariableSizes(c,b,"outerWidth")?"variable":c[b.d.outerWidth](!0)),a[b.d.height]||(a[b.d.height]=ms_hasVariableSizes(c,b,"outerHeight")?"variable":c[b.d.outerHeight](!0)),a.sizesConf.width=a.width,a.sizesConf.height=a.height,a}function in_complementVisibleItems(a,b){return"variable"==a.items[a.d.width]&&(a.items.visibleConf.variable=!0),a.items.visibleConf.variable||(is_number(a[a.d.width])?a.items.visible=Math.floor(a[a.d.width]/a.items[a.d.width]):(a.items.visible=Math.floor(b/a.items[a.d.width]),a[a.d.width]=a.items.visible*a.items[a.d.width],a.items.visibleConf.adjust||(a.align=!1)),("Infinity"==a.items.visible||1>a.items.visible)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),a.items.visibleConf.variable=!0)),a}function in_complementPrimarySize(a,b,c){return"auto"==a&&(a=ms_getTrueLargestSize(c,b,"outerWidth")),a}function in_complementSecondarySize(a,b,c){return"auto"==a&&(a=ms_getTrueLargestSize(c,b,"outerHeight")),a||(a=b.items[b.d.height]),a}function in_getAlignPadding(a,b){var c=cf_getAlignPadding(gi_getCurrentItems(b,a),a);return a.padding[a.d[1]]=c[1],a.padding[a.d[3]]=c[0],a}function in_getResponsiveValues(a,b){var d=cf_getItemAdjustMinMax(Math.ceil(a[a.d.width]/a.items[a.d.width]),a.items.visibleConf);d>b.length&&(d=b.length);var e=Math.floor(a[a.d.width]/d);return a.items.visible=d,a.items[a.d.width]=e,a[a.d.width]=d*e,a}function bt_pauseOnHoverConfig(a){if(is_string(a))var b=a.indexOf("immediate")>-1?!0:!1,c=a.indexOf("resume")>-1?!0:!1;else var b=c=!1;return[b,c]}function bt_mousesheelNumber(a){return is_number(a)?a:null}function is_null(a){return null===a}function is_undefined(a){return is_null(a)||a===void 0||""===a||"undefined"===a}function is_array(a){return a instanceof Array}function is_jquery(a){return a instanceof jQuery}function is_object(a){return(a instanceof Object||"object"==typeof a)&&!is_null(a)&&!is_jquery(a)&&!is_array(a)&&!is_function(a)}function is_number(a){return(a instanceof Number||"number"==typeof a)&&!isNaN(a)}function is_string(a){return(a instanceof String||"string"==typeof a)&&!is_undefined(a)&&!is_true(a)&&!is_false(a)}function is_function(a){return a instanceof Function||"function"==typeof a}function is_boolean(a){return a instanceof Boolean||"boolean"==typeof a||is_true(a)||is_false(a)}function is_true(a){return a===!0||"true"===a}function is_false(a){return a===!1||"false"===a}function is_percentage(a){return is_string(a)&&"%"==a.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(a,b){debug(!0,a+" is DEPRECATED, support for it will be removed. Use "+b+" instead.")}function debug(a,b){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){if(is_object(a)){var c=" ("+a.selector+")";a=a.debug}else var c="";if(!a)return!1;b=is_string(b)?"carouFredSel"+c+": "+b:["carouFredSel"+c+":",b],window.console.log(b)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1;$cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0]));var FN={};FN._init=function(a,b,c){a=go_getObject($tt0,a),a.items=go_getItemsObject($tt0,a.items),a.scroll=go_getScrollObject($tt0,a.scroll),a.auto=go_getAutoObject($tt0,a.auto),a.prev=go_getPrevNextObject($tt0,a.prev),a.next=go_getPrevNextObject($tt0,a.next),a.pagination=go_getPaginationObject($tt0,a.pagination),a.swipe=go_getSwipeObject($tt0,a.swipe),a.mousewheel=go_getMousewheelObject($tt0,a.mousewheel),b&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,a)),opts=$.extend(!0,{},$.fn.carouFredSel.defaults,a),opts.d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var d=$cfs.children(),e=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,e),opts.items=in_complementItems(opts.items,opts,d,c),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,d),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,d),opts.responsive&&(is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%")),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(e,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!1,opts.padding=[0,0,0,0],opts.align=!1,opts.items.visibleConf.variable=!1):(opts.items.visible||(opts=in_complementVisibleItems(opts,e)),opts[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=is_number(opts[opts.d.width])?"center":!1),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(d,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(d,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,d,e);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&(opts=in_getAlignPadding(opts,d),opts.usePadding=!0);break;default:opts.align=!1,opts.usePadding=0==opts.padding[0]&&0==opts.padding[1]&&0==opts.padding[2]&&0==opts.padding[3]?!1:!0}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},FN._build=function(){$cfs.data("_cfs_isCarousel",!0);var a=$cfs.children(),b=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),c="relative";switch(b.position){case"absolute":case"fixed":c=b.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(b),$wrp.css({overflow:"hidden",position:c}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",b.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(a,opts),sz_storeOrigCss(a),opts.responsive&&sz_setResponsiveSizes(opts,a)},FN._bind_events=function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(a,b){return a.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),b)),!0}),$cfs.bind(cf_e("finish",conf),function(a){return a.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(a,b,c){if(a.stopPropagation(),tmrs=sc_clearTimers(tmrs),b&&crsl.isScrolling){scrl.isStopped=!0;var d=getTime()-scrl.startTime;scrl.duration-=d,scrl.pre&&(scrl.pre.duration-=d),scrl.post&&(scrl.post.duration-=d),sc_stopScroll(scrl,!1)}if(crsl.isPaused||crsl.isScrolling||c&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause){var e=opts.auto.timeoutDuration-tmrs.timePassed,f=100-Math.ceil(100*e/opts.auto.timeoutDuration);opts.auto.onTimeoutPause.call($tt0,f,e)}return!0}),$cfs.bind(cf_e("play",conf),function(a,b,c,d){a.stopPropagation(),tmrs=sc_clearTimers(tmrs);var e=[b,c,d],f=["string","number","boolean"],g=cf_sortParams(e,f);if(b=g[0],c=g[1],d=g[2],"prev"!=b&&"next"!=b&&(b=crsl.direction),is_number(c)||(c=0),is_boolean(d)||(d=!1),d&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return a.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var h=opts.auto.timeoutDuration+c;return dur2=h-tmrs.timePassed,perc=100-Math.ceil(100*dur2/h),opts.auto.progress&&(tmrs.progress=setInterval(function(){var a=getTime()-tmrs.startTime+tmrs.timePassed,b=Math.ceil(100*a/h);opts.auto.progress.updater.call(opts.auto.progress.bar[0],b)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),b):$cfs.trigger(cf_e(b,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(a){return a.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(a,b,c,d,e){if(a.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return a.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var f=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(f>itms.total)return a.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+f+" needed): Not scrolling.");var g=[b,c,d,e],h=["object","number/string","function","boolean"],i=cf_sortParams(g,h);b=i[0],c=i[1],d=i[2],e=i[3];var j=a.type.slice(conf.events.prefix.length);if(is_object(b)||(b={}),is_function(d)&&(b.onAfter=d),is_boolean(e)&&(b.queue=e),b=$.extend(!0,{},opts[j],b),b.conditions&&!b.conditions.call($tt0,j))return a.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(c)){if("*"!=opts.items.filter)c="visible";else for(var k=[c,b.items,opts[j].items],i=0,l=k.length;l>i;i++)if(is_number(k[i])||"page"==k[i]||"visible"==k[i]){c=k[i];break}switch(c){case"page":return a.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(j+"Page",conf),[b,d]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(c=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[j,[b,c,d]]),a.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(b.duration>0&&crsl.isScrolling)return b.queue&&("last"==b.queue&&(queu=[]),("first"!=b.queue||0==queu.length)&&$cfs.trigger(cf_e("queue",conf),[j,[b,c,d]])),a.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+j,conf),[b,c]),opts.synchronise)for(var m=opts.synchronise,n=[b,c],o=0,l=m.length;l>o;o++){var p=j;m[o][2]||(p="prev"==p?"next":"prev"),m[o][1]||(n[0]=m[o][0].triggerHandler("_cfs_triggerEvent",["configuration",p])),n[1]=c+m[o][3],m[o][0].trigger("_cfs_triggerEvent",["slide_"+p,n])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(a,b,c){a.stopPropagation();var d=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),a.stopImmediatePropagation();if(sz_resetMargin(d,opts),!is_number(c)){if(opts.items.visibleConf.variable)c=gn_getVisibleItemsPrev(d,opts,itms.total-1);else if("*"!=opts.items.filter){var e=is_number(b.items)?b.items:gn_getVisibleOrg($cfs,opts);c=gn_getScrollItemsPrevFilter(d,opts,itms.total-1,e)}else c=opts.items.visible;c=cf_getAdjust(c,opts,b.items,$tt0)}if(opts.circular||itms.total-c<itms.first&&(c=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){var f=cf_getItemsAdjust(gn_getVisibleItemsNext(d,opts,itms.total-c),opts,opts.items.visibleConf.adjust,$tt0);f>=opts.items.visible+c&&itms.total>c&&(c++,f=cf_getItemsAdjust(gn_getVisibleItemsNext(d,opts,itms.total-c),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=f}else if("*"!=opts.items.filter){var f=gn_getVisibleItemsNextFilter(d,opts,itms.total-c);opts.items.visible=cf_getItemsAdjust(f,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(d,opts,!0),0==c)return a.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+c+" items backward."),itms.first+=c;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&b.onEnd&&b.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-c,itms.total).prependTo($cfs),itms.total<opts.items.visible+c&&$cfs.children().slice(0,opts.items.visible+c-itms.total).clone(!0).appendTo($cfs);var d=$cfs.children(),g=gi_getOldItemsPrev(d,opts,c),h=gi_getNewItemsPrev(d,opts),i=d.eq(c-1),j=g.last(),k=h.last();sz_resetMargin(d,opts);var l=0,m=0;if(opts.align){var n=cf_getAlignPadding(h,opts);l=n[0],m=n[1]}var o=0>l?opts.padding[opts.d[3]]:0,p=!1,q=$();if(c>opts.items.visible&&(q=d.slice(opts.items.visibleConf.old,c),"directscroll"==b.fx)){var r=opts.items[opts.d.width];p=q,i=k,sc_hideHiddenItems(p),opts.items[opts.d.width]="variable"}var s=!1,t=ms_getTotalSize(d.slice(0,c),opts,"width"),u=cf_mapWrapperSizes(ms_getSizes(h,opts,!0),opts,!opts.usePadding),v=0,w={},x={},y={},z={},A={},B={},C={},D=sc_getDuration(b,opts,c,t);switch(b.fx){case"cover":case"cover-fade":v=ms_getTotalSize(d.slice(0,opts.items.visible),opts,"width")}p&&(opts.items[opts.d.width]=r),sz_resetMargin(d,opts,!0),m>=0&&sz_resetMargin(j,opts,opts.padding[opts.d[1]]),l>=0&&sz_resetMargin(i,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=m,opts.padding[opts.d[3]]=l),B[opts.d.left]=-(t-o),C[opts.d.left]=-(v-o),x[opts.d.left]=u[opts.d.width];var E=function(){},F=function(){},G=function(){},H=function(){},I=function(){},J=function(){},K=function(){},L=function(){},M=function(){},N=function(){},O=function(){};switch(b.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":s=$cfs.clone(!0).appendTo($wrp)}switch(b.fx){case"crossfade":case"uncover":case"uncover-fade":s.children().slice(0,c).remove(),s.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":s.children().slice(opts.items.visible).remove(),s.css(C)}if($cfs.css(B),scrl=sc_setScroll(D,b.easing,conf),w[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(E=function(){$wrp.css(u)},F=function(){scrl.anims.push([$wrp,u])}),opts.usePadding){switch(k.not(i).length&&(y[opts.d.marginRight]=i.data("_cfs_origCssMargin"),0>l?i.css(y):(K=function(){i.css(y)},L=function(){scrl.anims.push([i,y])})),b.fx){case"cover":case"cover-fade":s.children().eq(c-1).css(y)}k.not(j).length&&(z[opts.d.marginRight]=j.data("_cfs_origCssMargin"),G=function(){j.css(z)},H=function(){scrl.anims.push([j,z])}),m>=0&&(A[opts.d.marginRight]=k.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],I=function(){k.css(A)},J=function(){scrl.anims.push([k,A])})}O=function(){$cfs.css(w)};var P=opts.items.visible+c-itms.total;N=function(){if(P>0&&($cfs.children().slice(itms.total).remove(),g=$($cfs.children().slice(itms.total-(opts.items.visible-P)).get().concat($cfs.children().slice(0,P).get()))),sc_showHiddenItems(p),opts.usePadding){var a=$cfs.children().eq(opts.items.visible+c-1);a.css(opts.d.marginRight,a.data("_cfs_origCssMargin"))}};var Q=sc_mapCallbackArguments(g,q,h,c,"prev",D,u);switch(M=function(){sc_afterScroll($cfs,s,b),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,b,"onAfter",Q,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,b,"onBefore",Q,clbk),b.fx){case"none":$cfs.css(w),E(),G(),I(),K(),O(),N(),M();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){E(),G(),I(),K(),O(),N(),scrl=sc_setScroll(D,b.easing,conf),scrl.anims.push([$cfs,{opacity:1},M]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([s,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},M]),F(),G(),I(),K(),O(),N();break;case"cover":scrl.anims.push([s,w,function(){G(),I(),K(),O(),N(),M()}]),F();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([s,w,function(){G(),I(),K(),O(),N(),M()}]),F();break;case"uncover":scrl.anims.push([s,x,M]),F(),G(),I(),K(),O(),N();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([s,x,M]),F(),G(),I(),K(),O(),N();break;default:scrl.anims.push([$cfs,w,function(){N(),M()}]),F(),H(),J(),L()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,u]),!0 2182}),$cfs.bind(cf_e("slide_next",conf),function(a,b,c){a.stopPropagation();var d=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),a.stopImmediatePropagation();if(sz_resetMargin(d,opts),!is_number(c)){if("*"!=opts.items.filter){var e=is_number(b.items)?b.items:gn_getVisibleOrg($cfs,opts);c=gn_getScrollItemsNextFilter(d,opts,0,e)}else c=opts.items.visible;c=cf_getAdjust(c,opts,b.items,$tt0)}var f=0==itms.first?itms.total:itms.first;if(!opts.circular){if(opts.items.visibleConf.variable)var g=gn_getVisibleItemsNext(d,opts,c),e=gn_getVisibleItemsPrev(d,opts,f-1);else var g=opts.items.visible,e=opts.items.visible;c+g>f&&(c=f-e)}if(opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var g=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(d,opts,c,f),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-c>=g&&itms.total>c;)c++,g=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(d,opts,c,f),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=g}else if("*"!=opts.items.filter){var g=gn_getVisibleItemsNextFilter(d,opts,c);opts.items.visible=cf_getItemsAdjust(g,opts,opts.items.visibleConf.adjust,$tt0)}if(sz_resetMargin(d,opts,!0),0==c)return a.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+c+" items forward."),itms.first-=c;0>itms.first;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&b.onEnd&&b.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+c&&$cfs.children().slice(0,opts.items.visible+c-itms.total).clone(!0).appendTo($cfs);var d=$cfs.children(),h=gi_getOldItemsNext(d,opts),i=gi_getNewItemsNext(d,opts,c),j=d.eq(c-1),k=h.last(),l=i.last();sz_resetMargin(d,opts);var m=0,n=0;if(opts.align){var o=cf_getAlignPadding(i,opts);m=o[0],n=o[1]}var p=!1,q=$();if(c>opts.items.visibleConf.old&&(q=d.slice(opts.items.visibleConf.old,c),"directscroll"==b.fx)){var r=opts.items[opts.d.width];p=q,j=k,sc_hideHiddenItems(p),opts.items[opts.d.width]="variable"}var s=!1,t=ms_getTotalSize(d.slice(0,c),opts,"width"),u=cf_mapWrapperSizes(ms_getSizes(i,opts,!0),opts,!opts.usePadding),v=0,w={},x={},y={},z={},A={},B=sc_getDuration(b,opts,c,t);switch(b.fx){case"uncover":case"uncover-fade":v=ms_getTotalSize(d.slice(0,opts.items.visibleConf.old),opts,"width")}p&&(opts.items[opts.d.width]=r),opts.align&&0>opts.padding[opts.d[1]]&&(opts.padding[opts.d[1]]=0),sz_resetMargin(d,opts,!0),sz_resetMargin(k,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=n,opts.padding[opts.d[3]]=m),A[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var C=function(){},D=function(){},E=function(){},F=function(){},G=function(){},H=function(){},I=function(){},J=function(){},K=function(){};switch(b.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":s=$cfs.clone(!0).appendTo($wrp),s.children().slice(opts.items.visibleConf.old).remove()}switch(b.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),s.css("zIndex",0)}if(scrl=sc_setScroll(B,b.easing,conf),w[opts.d.left]=-t,x[opts.d.left]=-v,0>m&&(w[opts.d.left]+=m),("variable"==opts[opts.d.width]||"variable"==opts[opts.d.height])&&(C=function(){$wrp.css(u)},D=function(){scrl.anims.push([$wrp,u])}),opts.usePadding){var L=l.data("_cfs_origCssMargin");n>=0&&(L+=opts.padding[opts.d[1]]),l.css(opts.d.marginRight,L),j.not(k).length&&(z[opts.d.marginRight]=k.data("_cfs_origCssMargin")),E=function(){k.css(z)},F=function(){scrl.anims.push([k,z])};var M=j.data("_cfs_origCssMargin");m>0&&(M+=opts.padding[opts.d[3]]),y[opts.d.marginRight]=M,G=function(){j.css(y)},H=function(){scrl.anims.push([j,y])}}K=function(){$cfs.css(A)};var N=opts.items.visible+c-itms.total;J=function(){N>0&&$cfs.children().slice(itms.total).remove();var a=$cfs.children().slice(0,c).appendTo($cfs).last();if(N>0&&(i=gi_getCurrentItems(d,opts)),sc_showHiddenItems(p),opts.usePadding){if(itms.total<opts.items.visible+c){var b=$cfs.children().eq(opts.items.visible-1);b.css(opts.d.marginRight,b.data("_cfs_origCssMargin")+opts.padding[opts.d[1]])}a.css(opts.d.marginRight,a.data("_cfs_origCssMargin"))}};var O=sc_mapCallbackArguments(h,q,i,c,"next",B,u);switch(I=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,s,b),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,b,"onAfter",O,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))},crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,b,"onBefore",O,clbk),b.fx){case"none":$cfs.css(w),C(),E(),G(),K(),J(),I();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){C(),E(),G(),K(),J(),scrl=sc_setScroll(B,b.easing,conf),scrl.anims.push([$cfs,{opacity:1},I]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([s,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},I]),D(),E(),G(),K(),J();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,A,I]),D(),E(),G(),J();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([s,{opacity:0}]),scrl.anims.push([$cfs,A,I]),D(),E(),G(),J();break;case"uncover":scrl.anims.push([s,x,I]),D(),E(),G(),K(),J();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([s,x,I]),D(),E(),G(),K(),J();break;default:scrl.anims.push([$cfs,w,function(){K(),J(),I()}]),D(),F(),H()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,u]),!0}),$cfs.bind(cf_e("slideTo",conf),function(a,b,c,d,e,f,g){a.stopPropagation();var h=[b,c,d,e,f,g],i=["string/number/object","number","boolean","object","string","function"],j=cf_sortParams(h,i);return e=j[3],f=j[4],g=j[5],b=gn_getItemIndex(j[0],j[1],j[2],itms,$cfs),0==b?!1:(is_object(e)||(e=!1),"prev"!=f&&"next"!=f&&(f=opts.circular?itms.total/2>=b?"next":"prev":0==itms.first||itms.first>b?"next":"prev"),"prev"==f&&(b=itms.total-b),$cfs.trigger(cf_e(f,conf),[e,b,g]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(a,b,c){a.stopPropagation();var d=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[d-1,b,"prev",c])}),$cfs.bind(cf_e("nextPage",conf),function(a,b,c){a.stopPropagation();var d=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[d+1,b,"next",c])}),$cfs.bind(cf_e("slideToPage",conf),function(a,b,c,d,e){a.stopPropagation(),is_number(b)||(b=$cfs.triggerHandler(cf_e("currentPage",conf)));var f=opts.pagination.items||opts.items.visible,g=Math.ceil(itms.total/f)-1;return 0>b&&(b=g),b>g&&(b=0),$cfs.triggerHandler(cf_e("slideTo",conf),[b*f,0,!0,c,d,e])}),$cfs.bind(cf_e("jumpToStart",conf),function(a,b){if(a.stopPropagation(),b=b?gn_getItemIndex(b,0,!0,itms,$cfs):0,b+=itms.first,0!=b){if(itms.total>0)for(;b>itms.total;)b-=itms.total;$cfs.prepend($cfs.children().slice(b,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(a,b){if(a.stopPropagation(),b)b=cf_getSynchArr(b);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");b=opts.synchronise}for(var c=$cfs.triggerHandler(cf_e("currentPosition",conf)),d=!0,e=0,f=b.length;f>e;e++)b[e][0].triggerHandler(cf_e("slideTo",conf),[c,b[e][3],!0])||(d=!1);return d}),$cfs.bind(cf_e("queue",conf),function(a,b,c){return a.stopPropagation(),is_function(b)?b.call($tt0,queu):is_array(b)?queu=b:is_undefined(b)||queu.push([b,c]),queu}),$cfs.bind(cf_e("insertItem",conf),function(a,b,c,d,e){a.stopPropagation();var f=[b,c,d,e],g=["string/object","string/number/object","boolean","number"],h=cf_sortParams(f,g);if(b=h[0],c=h[1],d=h[2],e=h[3],is_object(b)&&!is_jquery(b)?b=$(b):is_string(b)&&(b=$(b)),!is_jquery(b)||0==b.length)return debug(conf,"Not a valid object.");is_undefined(c)&&(c="end"),sz_storeMargin(b,opts),sz_storeOrigCss(b);var i=c,j="before";"end"==c?d?(0==itms.first?(c=itms.total-1,j="after"):(c=itms.first,itms.first+=b.length),0>c&&(c=0)):(c=itms.total-1,j="after"):c=gn_getItemIndex(c,e,d,itms,$cfs);var k=$cfs.children().eq(c);return k.length?k[j](b):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(b)),"end"==i||d||itms.first>c&&(itms.first+=b.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(a,b,c,d){a.stopPropagation();var e=[b,c,d],f=["string/number/object","boolean","number"],g=cf_sortParams(e,f);if(b=g[0],c=g[1],d=g[2],b instanceof $&&b.length>1)return i=$(),b.each(function(){var e=$cfs.trigger(cf_e("removeItem",conf),[$(this),c,d]);e&&(i=i.add(e))}),i;if(is_undefined(b)||"end"==b)i=$cfs.children().last();else{b=gn_getItemIndex(b,d,c,itms,$cfs);var i=$cfs.children().eq(b);i.length&&itms.first>b&&(itms.first-=i.length)}return i&&i.length&&(i.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf))),i}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(a,b){a.stopPropagation();var c=a.type.slice(conf.events.prefix.length);return is_array(b)&&(clbk[c]=b),is_function(b)&&clbk[c].push(b),clbk[c]}),$cfs.bind(cf_e("currentPosition",conf),function(a,b){if(a.stopPropagation(),0==itms.first)var c=0;else var c=itms.total-itms.first;return is_function(b)&&b.call($tt0,c),c}),$cfs.bind(cf_e("currentPage",conf),function(a,b){a.stopPropagation();var e,c=opts.pagination.items||opts.items.visible,d=Math.ceil(itms.total/c-1);return e=0==itms.first?0:itms.first<itms.total%c?0:itms.first!=c||opts.circular?Math.round((itms.total-itms.first)/c):d,0>e&&(e=0),e>d&&(e=d),is_function(b)&&b.call($tt0,e),e}),$cfs.bind(cf_e("currentVisible",conf),function(a,b){a.stopPropagation();var c=gi_getCurrentItems($cfs.children(),opts);return is_function(b)&&b.call($tt0,c),c}),$cfs.bind(cf_e("slice",conf),function(a,b,c,d){if(a.stopPropagation(),0==itms.total)return!1;var e=[b,c,d],f=["number","number","function"],g=cf_sortParams(e,f);if(b=is_number(g[0])?g[0]:0,c=is_number(g[1])?g[1]:itms.total,d=g[2],b+=itms.first,c+=itms.first,items.total>0){for(;b>itms.total;)b-=itms.total;for(;c>itms.total;)c-=itms.total;for(;0>b;)b+=itms.total;for(;0>c;)c+=itms.total}var i,h=$cfs.children();return i=c>b?h.slice(b,c):$(h.slice(b,itms.total).get().concat(h.slice(0,c).get())),is_function(d)&&d.call($tt0,i),i}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(a,b){a.stopPropagation();var c=a.type.slice(conf.events.prefix.length),d=crsl[c];return is_function(b)&&b.call($tt0,d),d}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),b!==!1?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),c!==!1?reInit=!0:eval("opts."+a+" = b")}if(reInit){sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons();var sz=sz_setSizes($cfs,opts);$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])}return opts}),$cfs.bind(cf_e("linkAnchors",conf),function(a,b,c){return a.stopPropagation(),is_undefined(b)?b=$("body"):is_string(b)&&(b=$(b)),is_jquery(b)&&0!=b.length?(is_string(c)||(c="a.caroufredsel"),b.find(c).each(function(){var a=this.hash||"";a.length>0&&-1!=$cfs.children().index($(a))&&$(this).unbind("click").click(function(b){b.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),a)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(a,b){if(a.stopPropagation(),opts.pagination.container){var d=opts.pagination.items||opts.items.visible,e=Math.ceil(itms.total/d);b&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var a=0;e>a;a++){var b=$cfs.children().eq(gn_getItemIndex(a*d,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(b[0],a+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(a){$(this).bind(opts.pagination.event,function(b){b.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[a*d,-opts.pagination.deviation,!0,opts.pagination])})})}));var f=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation;return f>=e&&(f=0),0>f&&(f=e-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(f).addClass(cf_c("selected",conf))}),!0}}),$cfs.bind(cf_e("updateSizes",conf),function(){var b=opts.items.visible,c=$cfs.children(),d=ms_getParentSize($wrp,opts,"width");if(itms.total=c.length,crsl.primarySizePercentage?(opts.maxDimension=d,opts[opts.d.width]=ms_getPercentage(d,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,d),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,opts=in_getResponsiveValues(opts,c,d),b=opts.items.visible,sz_setResponsiveSizes(opts,c)):opts.items.visibleConf.variable?b=gn_getVisibleItemsNext(c,opts,0):"*"!=opts.items.filter&&(b=gn_getVisibleItemsNextFilter(c,opts,0)),!opts.circular&&0!=itms.first&&b>itms.first){if(opts.items.visibleConf.variable)var e=gn_getVisibleItemsPrev(c,opts,itms.first)-itms.first;else if("*"!=opts.items.filter)var e=gn_getVisibleItemsPrevFilter(c,opts,itms.first)-itms.first;else var e=opts.items.visible-itms.first;debug(conf,"Preventing non-circular: sliding "+e+" items backward."),$cfs.trigger(cf_e("prev",conf),e)}opts.items.visible=cf_getItemsAdjust(b,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,c);var f=sz_setSizes($cfs,opts);return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,f]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),f}),$cfs.bind(cf_e("destroy",conf),function(a,b){return a.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),b&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(a,b,c){return a.stopPropagation(),$cfs.triggerHandler(cf_e(b,conf),c)})},FN._unbind_events=function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},FN._bind_buttons=function(){if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover){var a=bt_pauseOnHoverConfig(opts.auto.pauseOnHover);$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),a)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(a){a.preventDefault();var b=!1,c=null;crsl.isPaused?b="play":opts.auto.pauseOnEvent&&(b="pause",c=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),b&&$cfs.trigger(cf_e(b,conf),c)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(a){a.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover)){var a=bt_pauseOnHoverConfig(opts.prev.pauseOnHover);opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),a)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(a){a.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover)){var a=bt_pauseOnHoverConfig(opts.next.pauseOnHover);opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),a)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if(opts.pagination.container&&opts.pagination.pauseOnHover){var a=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover);opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),a)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})}if((opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(a){var b=a.keyCode;b==opts.next.key&&(a.preventDefault(),$cfs.trigger(cf_e("next",conf))),b==opts.prev.key&&(a.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(a){var b=a.keyCode;b>=49&&58>b&&(b=(b-49)*opts.items.visible,itms.total>=b&&(a.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[b,0,!0,opts.pagination])))}),$.fn.swipe){var b="ontouchstart"in window;if(b&&opts.swipe.onTouch||!b&&opts.swipe.onMouse){var c=$.extend(!0,{},opts.prev,opts.swipe),d=$.extend(!0,{},opts.next,opts.swipe),e=function(){$cfs.trigger(cf_e("prev",conf),[c])},f=function(){$cfs.trigger(cf_e("next",conf),[d])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=f,opts.swipe.options.swipeDown=e;break;default:opts.swipe.options.swipeLeft=f,opts.swipe.options.swipeRight=e}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}if($.fn.mousewheel&&opts.mousewheel){var g=$.extend(!0,{},opts.prev,opts.mousewheel),h=$.extend(!0,{},opts.next,opts.mousewheel);crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(a,b){a.preventDefault(),b>0?$cfs.trigger(cf_e("prev",conf),[g]):$cfs.trigger(cf_e("next",conf),[h])}),crsl.mousewheel=!0}if(opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize){var i=function(){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},j=$(window),k=null;if($.debounce&&"debounce"==conf.onWindowResize)k=$.debounce(200,i);else if($.throttle&&"throttle"==conf.onWindowResize)k=$.throttle(300,i);else{var l=0,m=0;k=function(){var a=j.width(),b=j.height();(a!=l||b!=m)&&(i(),l=a,m=b)}}j.bind(cf_e("resize",conf,!1,!0,!0),k)}},FN._unbind_buttons=function(){var b=(cf_e("",conf),cf_e("",conf,!1));ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(b),opts.auto.button&&opts.auto.button.unbind(b),opts.prev.button&&opts.prev.button.unbind(b),opts.next.button&&opts.next.button.unbind(b),opts.pagination.container&&(opts.pagination.container.unbind(b),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)},is_boolean(configs)&&(configs={debug:configs});var crsl={direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1},itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp="parent"==conf.wrapper?$cfs.parent():$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />').parent();if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start))var start_arr=opts.items.start;else{var start_arr=[];0!=opts.items.start&&start_arr.push(opts.items.start)}if(opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),start_arr.length>0)for(var a=0,l=start_arr.length;l>a;a++){var s=start_arr[a];if(0!=s){if(s===!0){if(s=window.location.hash,1>s.length)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!1,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(a){return'<a href="#"><span>'+a+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(a){$(this).css("width",a+"%")},$.fn.carouFredSel.cookie={get:function(a){a+="=";for(var b=document.cookie.split(";"),c=0,d=b.length;d>c;c++){for(var e=b[c];" "==e.charAt(0);)e=e.slice(1);if(0==e.indexOf(a))return e.slice(a.length)}return 0},set:function(a,b,c){var d="";if(c){var e=new Date;e.setTime(e.getTime()+1e3*60*60*24*c),d="; expires="+e.toGMTString()}document.cookie=a+"="+b+d+"; path=/"},remove:function(a){$.fn.carouFredSel.cookie.set(a,"",-1)}},$.extend($.easing,{quadratic:function(a){var b=a*a;return a*(-b*a+4*b-6*a+4)},cubic:function(a){return a*(4*a*a-9*a+6)},elastic:function(a){var b=a*a;return a*(33*b*b-106*b*a+126*b-67*a+15)}}))})(jQuery);
2182 2183 2184})(jQuery1_11_0); 2185/*! 2186 * Javascript Cookie v1.5.1 2187 * https://github.com/js-cookie/js-cookie 2188 * 2189 * Copyright 2006, 2014 Klaus Hartl 2190 * Released under the MIT license 2191 */ 2192(function (factory) { 2193 var jQuery; 2194 if (typeof define === 'function' && define.amd) { 2195 // AMD (Register as an anonymous module) 2196 define(['jquery'], factory); 2197 } else if (typeof exports === 'object') { 2198 // Node/CommonJS 2199 try { 2200 jQuery = require('jquery'); 2201 } catch(e) {} 2202 module.exports = factory(jQuery); 2203 } else { 2204 // Browser globals 2205 var _OldCookies = window.Cookies; 2206 var api = window.Cookies = factory(window.jQuery); 2207 api.noConflict = function() { 2208 window.Cookies = _OldCookies; 2209 return api; 2210 }; 2211 } 2212}(function ($) { 2213 2214 var pluses = /\+/g; 2215 2216 function encode(s) { 2217 return api.raw ? s : encodeURIComponent(s); 2218 } 2219 2220 function decode(s) { 2221 return api.raw ? s : decodeURIComponent(s); 2222 } 2223 2224 function stringifyCookieValue(value) { 2225 return encode(api.json ? JSON.stringify(value) : String(value)); 2226 } 2227 2228 function parseCookieValue(s) { 2229 if (s.indexOf('"') === 0) { 2230 // This is a quoted cookie as according to RFC2068, unescape... 2231 s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); 2232 } 2233 2234 try { 2235 // Replace server-side written pluses with spaces. 2236 // If we can't decode the cookie, ignore it, it's unusable. 2237 // If we can't parse the cookie, ignore it, it's unusable. 2238 s = decodeURIComponent(s.replace(pluses, ' ')); 2239 return api.json ? JSON.parse(s) : s; 2240 } catch(e) {} 2241 } 2242 2243 function read(s, converter) { 2244 var value = api.raw ? s : parseCookieValue(s); 2245 return isFunction(converter) ? converter(value) : value; 2246 } 2247 2248 function extend() { 2249 var key, options; 2250 var i = 0; 2251 var result = {}; 2252 for (; i < arguments.length; i++) { 2253 options = arguments[ i ]; 2254 for (key in options) { 2255 result[key] = options[key]; 2256 } 2257 } 2258 return result; 2259 } 2260 2261 function isFunction(obj) { 2262 return Object.prototype.toString.call(obj) === '[object Function]'; 2263 } 2264 2265 var api = function (key, value, options) { 2266 2267 // Write 2268 2269 if (arguments.length > 1 && !isFunction(value)) { 2270 options = extend(api.defaults, options); 2271 2272 if (typeof options.expires === 'number') { 2273 var days = options.expires, t = options.expires = new Date(); 2274 t.setMilliseconds(t.getMilliseconds() + days * 864e+5); 2275 } 2276 2277 return (document.cookie = [ 2278 encode(key), '=', stringifyCookieValue(value), 2279 options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 2280 options.path ? '; path=' + options.path : '', 2281 options.domain ? '; domain=' + options.domain : '', 2282 options.secure ? '; secure' : '' 2283 ].join('')); 2284 } 2285 2286 // Read 2287 2288 var result = key ? undefined : {}, 2289 // To prevent the for loop in the first place assign an empty array 2290 // in case there are no cookies at all. Also prevents odd result when 2291 // calling "get()". 2292 cookies = document.cookie ? document.cookie.split('; ') : [], 2293 i = 0, 2294 l = cookies.length; 2295 2296 for (; i < l; i++) { 2297 var parts = cookies[i].split('='), 2298 name = decode(parts.shift()), 2299 cookie = parts.join('='); 2300 2301 if (key === name) { 2302 // If second argument (value) is a function it's a converter... 2303 result = read(cookie, value); 2304 break; 2305 } 2306 2307 // Prevent storing a cookie that we couldn't decode. 2308 if (!key && (cookie = read(cookie)) !== undefined) { 2309 result[name] = cookie; 2310 } 2311 } 2312 2313 return result; 2314 }; 2315 2316 api.get = api.set = api; 2317 api.defaults = {}; 2318 2319 api.remove = function (key, options) { 2320 // Must not alter options, thus extending a fresh object... 2321 api(key, '', extend(options, { expires: -1 })); 2322 return !api(key); 2323 }; 2324 2325 if ( $ ) { 2326 $.cookie = api; 2327 $.removeCookie = api.remove; 2328 } 2329 2330 return api; 2331})); 2332 2333/* 2334 _ _ _ _ 2335 ___| (_) ___| | __ (_)___ 2336/ __| | |/ __| |/ / | / __| 2337\__ \ | | (__| < _ | \__ \ 2338|___/_|_|\___|_|\_(_)/ |___/ 2339 |__/ 2340 2341 Version: 1.9.0 2342 Author: Ken Wheeler 2343 Website: http://kenwheeler.github.io 2344 Docs: http://kenwheeler.github.io/slick 2345 Repo: http://github.com/kenwheeler/slick 2346 Issues: http://github.com/kenwheeler/slick/issues 2347 2348 */ 2349/* global window, document, define, jQuery, setInterval, clearInterval */ 2350(function ($) { 2351 var jQuery = $; 2352 2353;(function(factory) { 2354 'use strict'; 2355 if (typeof define === 'function' && define.amd) { 2356 define(['jquery'], factory); 2357 } else if (typeof exports !== 'undefined') { 2358 module.exports = factory(require('jquery')); 2359 } else { 2360 factory(jQuery); 2361 } 2362 2363}(function($) { 2364 'use strict';
vendor: 29,656 bytes, lines 2364-3352
2364 2365 var Slick = window.Slick || {}; 2366 2367 Slick = (function() { 2368 2369 var instanceUid = 0; 2370 2371 function Slick(element, settings) { 2372 2373 var _ = this, dataSettings; 2374 2375 _.defaults = { 2376 accessibility: true, 2377 adaptiveHeight: false, 2378 appendArrows: $(element), 2379 appendDots: $(element), 2380 arrows: true, 2381 asNavFor: null, 2382 prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>', 2383 nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>', 2384 autoplay: false, 2385 autoplaySpeed: 3000, 2386 centerMode: false, 2387 centerPadding: '50px', 2388 cssEase: 'ease', 2389 customPaging: function(slider, i) { 2390 return $('<button type="button" />').text(i + 1); 2391 }, 2392 dots: false, 2393 dotsClass: 'slick-dots', 2394 draggable: true, 2395 easing: 'linear', 2396 edgeFriction: 0.35, 2397 fade: false, 2398 focusOnSelect: false, 2399 focusOnChange: false, 2400 infinite: true, 2401 initialSlide: 0, 2402 lazyLoad: 'ondemand', 2403 mobileFirst: false, 2404 pauseOnHover: true, 2405 pauseOnFocus: true, 2406 pauseOnDotsHover: false, 2407 respondTo: 'window', 2408 responsive: null, 2409 rows: 1, 2410 rtl: false, 2411 slide: '', 2412 slidesPerRow: 1, 2413 slidesToShow: 1, 2414 slidesToScroll: 1, 2415 speed: 500, 2416 swipe: true, 2417 swipeToSlide: false, 2418 touchMove: true, 2419 touchThreshold: 5, 2420 useCSS: true, 2421 useTransform: true, 2422 variableWidth: false, 2423 vertical: false, 2424 verticalSwiping: false, 2425 waitForAnimate: true, 2426 zIndex: 1000 2427 }; 2428 2429 _.initials = { 2430 animating: false, 2431 dragging: false, 2432 autoPlayTimer: null, 2433 currentDirection: 0, 2434 currentLeft: null, 2435 currentSlide: 0, 2436 direction: 1, 2437 $dots: null, 2438 listWidth: null, 2439 listHeight: null, 2440 loadIndex: 0, 2441 $nextArrow: null, 2442 $prevArrow: null, 2443 scrolling: false, 2444 slideCount: null, 2445 slideWidth: null, 2446 $slideTrack: null, 2447 $slides: null, 2448 sliding: false, 2449 slideOffset: 0, 2450 swipeLeft: null, 2451 swiping: false, 2452 $list: null, 2453 touchObject: {}, 2454 transformsEnabled: false, 2455 unslicked: false 2456 }; 2457 2458 $.extend(_, _.initials); 2459 2460 _.activeBreakpoint = null; 2461 _.animType = null; 2462 _.animProp = null; 2463 _.breakpoints = []; 2464 _.breakpointSettings = []; 2465 _.cssTransitions = false; 2466 _.focussed = false; 2467 _.interrupted = false; 2468 _.hidden = 'hidden'; 2469 _.paused = true; 2470 _.positionProp = null; 2471 _.respondTo = null; 2472 _.rowCount = 1; 2473 _.shouldClick = true; 2474 _.$slider = $(element); 2475 _.$slidesCache = null; 2476 _.transformType = null; 2477 _.transitionType = null; 2478 _.visibilityChange = 'visibilitychange'; 2479 _.windowWidth = 0; 2480 _.windowTimer = null; 2481 2482 dataSettings = $(element).data('slick') || {}; 2483 2484 _.options = $.extend({}, _.defaults, settings, dataSettings); 2485 2486 _.currentSlide = _.options.initialSlide; 2487 2488 _.originalSettings = _.options; 2489 2490 if (typeof document.mozHidden !== 'undefined') { 2491 _.hidden = 'mozHidden'; 2492 _.visibilityChange = 'mozvisibilitychange'; 2493 } else if (typeof document.webkitHidden !== 'undefined') { 2494 _.hidden = 'webkitHidden'; 2495 _.visibilityChange = 'webkitvisibilitychange'; 2496 } 2497 2498 _.autoPlay = $.proxy(_.autoPlay, _); 2499 _.autoPlayClear = $.proxy(_.autoPlayClear, _); 2500 _.autoPlayIterator = $.proxy(_.autoPlayIterator, _); 2501 _.changeSlide = $.proxy(_.changeSlide, _); 2502 _.clickHandler = $.proxy(_.clickHandler, _); 2503 _.selectHandler = $.proxy(_.selectHandler, _); 2504 _.setPosition = $.proxy(_.setPosition, _); 2505 _.swipeHandler = $.proxy(_.swipeHandler, _); 2506 _.dragHandler = $.proxy(_.dragHandler, _); 2507 _.keyHandler = $.proxy(_.keyHandler, _); 2508 2509 _.instanceUid = instanceUid++; 2510 2511 // A simple way to check for HTML strings 2512 // Strict HTML recognition (must start with <) 2513 // Extracted from jQuery v1.11 source 2514 _.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/; 2515 2516 2517 _.registerBreakpoints(); 2518 _.init(true); 2519 2520 } 2521 2522 return Slick; 2523 2524 }()); 2525 2526 Slick.prototype.activateADA = function() { 2527 var _ = this; 2528 2529 _.$slideTrack.find('.slick-active').attr({ 2530 'aria-hidden': 'false' 2531 }).find('a, input, button, select').attr({ 2532 'tabindex': '0' 2533 }); 2534 2535 }; 2536 2537 Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) { 2538 2539 var _ = this; 2540 2541 if (typeof(index) === 'boolean') { 2542 addBefore = index; 2543 index = null; 2544 } else if (index < 0 || (index >= _.slideCount)) { 2545 return false; 2546 } 2547 2548 _.unload(); 2549 2550 if (typeof(index) === 'number') { 2551 if (index === 0 && _.$slides.length === 0) { 2552 $(markup).appendTo(_.$slideTrack); 2553 } else if (addBefore) { 2554 $(markup).insertBefore(_.$slides.eq(index)); 2555 } else { 2556 $(markup).insertAfter(_.$slides.eq(index)); 2557 } 2558 } else { 2559 if (addBefore === true) { 2560 $(markup).prependTo(_.$slideTrack); 2561 } else { 2562 $(markup).appendTo(_.$slideTrack); 2563 } 2564 } 2565 2566 _.$slides = _.$slideTrack.children(this.options.slide); 2567 2568 _.$slideTrack.children(this.options.slide).detach(); 2569 2570 _.$slideTrack.append(_.$slides); 2571 2572 _.$slides.each(function(index, element) { 2573 $(element).attr('data-slick-index', index); 2574 }); 2575 2576 _.$slidesCache = _.$slides; 2577 2578 _.reinit(); 2579 2580 }; 2581 2582 Slick.prototype.animateHeight = function() { 2583 var _ = this; 2584 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 2585 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 2586 _.$list.animate({ 2587 height: targetHeight 2588 }, _.options.speed); 2589 } 2590 }; 2591 2592 Slick.prototype.animateSlide = function(targetLeft, callback) { 2593 2594 var animProps = {}, 2595 _ = this; 2596 2597 _.animateHeight(); 2598 2599 if (_.options.rtl === true && _.options.vertical === false) { 2600 targetLeft = -targetLeft; 2601 } 2602 if (_.transformsEnabled === false) { 2603 if (_.options.vertical === false) { 2604 _.$slideTrack.animate({ 2605 left: targetLeft 2606 }, _.options.speed, _.options.easing, callback); 2607 } else { 2608 _.$slideTrack.animate({ 2609 top: targetLeft 2610 }, _.options.speed, _.options.easing, callback); 2611 } 2612 2613 } else { 2614 2615 if (_.cssTransitions === false) { 2616 if (_.options.rtl === true) { 2617 _.currentLeft = -(_.currentLeft); 2618 } 2619 $({ 2620 animStart: _.currentLeft 2621 }).animate({ 2622 animStart: targetLeft 2623 }, { 2624 duration: _.options.speed, 2625 easing: _.options.easing, 2626 step: function(now) { 2627 now = Math.ceil(now); 2628 if (_.options.vertical === false) { 2629 animProps[_.animType] = 'translate(' + 2630 now + 'px, 0px)'; 2631 _.$slideTrack.css(animProps); 2632 } else { 2633 animProps[_.animType] = 'translate(0px,' + 2634 now + 'px)'; 2635 _.$slideTrack.css(animProps); 2636 } 2637 }, 2638 complete: function() { 2639 if (callback) { 2640 callback.call(); 2641 } 2642 } 2643 }); 2644 2645 } else { 2646 2647 _.applyTransition(); 2648 targetLeft = Math.ceil(targetLeft); 2649 2650 if (_.options.vertical === false) { 2651 animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)'; 2652 } else { 2653 animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)'; 2654 } 2655 _.$slideTrack.css(animProps); 2656 2657 if (callback) { 2658 setTimeout(function() { 2659 2660 _.disableTransition(); 2661 2662 callback.call(); 2663 }, _.options.speed); 2664 } 2665 2666 } 2667 2668 } 2669 2670 }; 2671 2672 Slick.prototype.getNavTarget = function() { 2673 2674 var _ = this, 2675 asNavFor = _.options.asNavFor; 2676 2677 if ( asNavFor && asNavFor !== null ) { 2678 asNavFor = $(asNavFor).not(_.$slider); 2679 } 2680 2681 return asNavFor; 2682 2683 }; 2684 2685 Slick.prototype.asNavFor = function(index) { 2686 2687 var _ = this, 2688 asNavFor = _.getNavTarget(); 2689 2690 if ( asNavFor !== null && typeof asNavFor === 'object' ) { 2691 asNavFor.each(function() { 2692 var target = $(this).slick('getSlick'); 2693 if(!target.unslicked) { 2694 target.slideHandler(index, true); 2695 } 2696 }); 2697 } 2698 2699 }; 2700 2701 Slick.prototype.applyTransition = function(slide) { 2702 2703 var _ = this, 2704 transition = {}; 2705 2706 if (_.options.fade === false) { 2707 transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase; 2708 } else { 2709 transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase; 2710 } 2711 2712 if (_.options.fade === false) { 2713 _.$slideTrack.css(transition); 2714 } else { 2715 _.$slides.eq(slide).css(transition); 2716 } 2717 2718 }; 2719 2720 Slick.prototype.autoPlay = function() { 2721 2722 var _ = this; 2723 2724 _.autoPlayClear(); 2725 2726 if ( _.slideCount > _.options.slidesToShow ) { 2727 _.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed ); 2728 } 2729 2730 }; 2731 2732 Slick.prototype.autoPlayClear = function() { 2733 2734 var _ = this; 2735 2736 if (_.autoPlayTimer) { 2737 clearInterval(_.autoPlayTimer); 2738 } 2739 2740 }; 2741 2742 Slick.prototype.autoPlayIterator = function() { 2743 2744 var _ = this, 2745 slideTo = _.currentSlide + _.options.slidesToScroll; 2746 2747 if ( !_.paused && !_.interrupted && !_.focussed ) { 2748 2749 if ( _.options.infinite === false ) { 2750 2751 if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) { 2752 _.direction = 0; 2753 } 2754 2755 else if ( _.direction === 0 ) { 2756 2757 slideTo = _.currentSlide - _.options.slidesToScroll; 2758 2759 if ( _.currentSlide - 1 === 0 ) { 2760 _.direction = 1; 2761 } 2762 2763 } 2764 2765 } 2766 2767 _.slideHandler( slideTo ); 2768 2769 } 2770 2771 }; 2772 2773 Slick.prototype.buildArrows = function() { 2774 2775 var _ = this; 2776 2777 if (_.options.arrows === true ) { 2778 2779 _.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow'); 2780 _.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow'); 2781 2782 if( _.slideCount > _.options.slidesToShow ) { 2783 2784 _.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'); 2785 _.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex'); 2786 2787 if (_.htmlExpr.test(_.options.prevArrow)) { 2788 _.$prevArrow.prependTo(_.options.appendArrows); 2789 } 2790 2791 if (_.htmlExpr.test(_.options.nextArrow)) { 2792 _.$nextArrow.appendTo(_.options.appendArrows); 2793 } 2794 2795 if (_.options.infinite !== true) { 2796 _.$prevArrow 2797 .addClass('slick-disabled') 2798 .attr('aria-disabled', 'true'); 2799 } 2800 2801 } else { 2802 2803 _.$prevArrow.add( _.$nextArrow ) 2804 2805 .addClass('slick-hidden') 2806 .attr({ 2807 'aria-disabled': 'true', 2808 'tabindex': '-1' 2809 }); 2810 2811 } 2812 2813 } 2814 2815 }; 2816 2817 Slick.prototype.buildDots = function() { 2818 2819 var _ = this, 2820 i, dot; 2821 2822 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 2823 2824 _.$slider.addClass('slick-dotted'); 2825 2826 dot = $('<ul />').addClass(_.options.dotsClass); 2827 2828 for (i = 0; i <= _.getDotCount(); i += 1) { 2829 dot.append($('<li />').append(_.options.customPaging.call(this, _, i))); 2830 } 2831 2832 _.$dots = dot.appendTo(_.options.appendDots); 2833 2834 _.$dots.find('li').first().addClass('slick-active'); 2835 2836 } 2837 2838 }; 2839 2840 Slick.prototype.buildOut = function() { 2841 2842 var _ = this; 2843 2844 _.$slides = 2845 _.$slider 2846 .children( _.options.slide + ':not(.slick-cloned)') 2847 .addClass('slick-slide'); 2848 2849 _.slideCount = _.$slides.length; 2850 2851 _.$slides.each(function(index, element) { 2852 $(element) 2853 .attr('data-slick-index', index) 2854 .data('originalStyling', $(element).attr('style') || ''); 2855 }); 2856 2857 _.$slider.addClass('slick-slider'); 2858 2859 _.$slideTrack = (_.slideCount === 0) ? 2860 $('<div class="slick-track"/>').appendTo(_.$slider) : 2861 _.$slides.wrapAll('<div class="slick-track"/>').parent(); 2862 2863 _.$list = _.$slideTrack.wrap( 2864 '<div class="slick-list"/>').parent(); 2865 _.$slideTrack.css('opacity', 0); 2866 2867 if (_.options.centerMode === true || _.options.swipeToSlide === true) { 2868 _.options.slidesToScroll = 1; 2869 } 2870 2871 $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading'); 2872 2873 _.setupInfinite(); 2874 2875 _.buildArrows(); 2876 2877 _.buildDots(); 2878 2879 _.updateDots(); 2880 2881 2882 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 2883 2884 if (_.options.draggable === true) { 2885 _.$list.addClass('draggable'); 2886 } 2887 2888 }; 2889 2890 Slick.prototype.buildRows = function() { 2891 2892 var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection; 2893 2894 newSlides = document.createDocumentFragment(); 2895 originalSlides = _.$slider.children(); 2896 2897 if(_.options.rows > 0) { 2898 2899 slidesPerSection = _.options.slidesPerRow * _.options.rows; 2900 numOfSlides = Math.ceil( 2901 originalSlides.length / slidesPerSection 2902 ); 2903 2904 for(a = 0; a < numOfSlides; a++){ 2905 var slide = document.createElement('div'); 2906 for(b = 0; b < _.options.rows; b++) { 2907 var row = document.createElement('div'); 2908 for(c = 0; c < _.options.slidesPerRow; c++) { 2909 var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c)); 2910 if (originalSlides.get(target)) { 2911 row.appendChild(originalSlides.get(target)); 2912 } 2913 } 2914 slide.appendChild(row); 2915 } 2916 newSlides.appendChild(slide); 2917 } 2918 2919 _.$slider.empty().append(newSlides); 2920 _.$slider.children().children().children() 2921 .css({ 2922 'width':(100 / _.options.slidesPerRow) + '%', 2923 'display': 'inline-block' 2924 }); 2925 2926 } 2927 2928 }; 2929 2930 Slick.prototype.checkResponsive = function(initial, forceUpdate) { 2931 2932 var _ = this, 2933 breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false; 2934 var sliderWidth = _.$slider.width(); 2935 var windowWidth = window.innerWidth || $(window).width(); 2936 2937 if (_.respondTo === 'window') { 2938 respondToWidth = windowWidth; 2939 } else if (_.respondTo === 'slider') { 2940 respondToWidth = sliderWidth; 2941 } else if (_.respondTo === 'min') { 2942 respondToWidth = Math.min(windowWidth, sliderWidth); 2943 } 2944 2945 if ( _.options.responsive && 2946 _.options.responsive.length && 2947 _.options.responsive !== null) { 2948 2949 targetBreakpoint = null; 2950 2951 for (breakpoint in _.breakpoints) { 2952 if (_.breakpoints.hasOwnProperty(breakpoint)) { 2953 if (_.originalSettings.mobileFirst === false) { 2954 if (respondToWidth < _.breakpoints[breakpoint]) { 2955 targetBreakpoint = _.breakpoints[breakpoint]; 2956 } 2957 } else { 2958 if (respondToWidth > _.breakpoints[breakpoint]) { 2959 targetBreakpoint = _.breakpoints[breakpoint]; 2960 } 2961 } 2962 } 2963 } 2964 2965 if (targetBreakpoint !== null) { 2966 if (_.activeBreakpoint !== null) { 2967 if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) { 2968 _.activeBreakpoint = 2969 targetBreakpoint; 2970 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 2971 _.unslick(targetBreakpoint); 2972 } else { 2973 _.options = $.extend({}, _.originalSettings, 2974 _.breakpointSettings[ 2975 targetBreakpoint]); 2976 if (initial === true) { 2977 _.currentSlide = _.options.initialSlide; 2978 } 2979 _.refresh(initial); 2980 } 2981 triggerBreakpoint = targetBreakpoint; 2982 } 2983 } else { 2984 _.activeBreakpoint = targetBreakpoint; 2985 if (_.breakpointSettings[targetBreakpoint] === 'unslick') { 2986 _.unslick(targetBreakpoint); 2987 } else { 2988 _.options = $.extend({}, _.originalSettings, 2989 _.breakpointSettings[ 2990 targetBreakpoint]); 2991 if (initial === true) { 2992 _.currentSlide = _.options.initialSlide; 2993 } 2994 _.refresh(initial); 2995 } 2996 triggerBreakpoint = targetBreakpoint; 2997 } 2998 } else { 2999 if (_.activeBreakpoint !== null) { 3000 _.activeBreakpoint = null; 3001 _.options = _.originalSettings; 3002 if (initial === true) { 3003 _.currentSlide = _.options.initialSlide; 3004 } 3005 _.refresh(initial); 3006 triggerBreakpoint = targetBreakpoint; 3007 } 3008 } 3009 3010 // only trigger breakpoints during an actual break. not on initialize. 3011 if( !initial && triggerBreakpoint !== false ) { 3012 _.$slider.trigger('breakpoint', [_, triggerBreakpoint]); 3013 } 3014 } 3015 3016 }; 3017 3018 Slick.prototype.changeSlide = function(event, dontAnimate) { 3019 3020 var _ = this, 3021 $target = $(event.currentTarget), 3022 indexOffset, slideOffset, unevenOffset; 3023 3024 // If target is a link, prevent default action. 3025 if($target.is('a')) { 3026 event.preventDefault(); 3027 } 3028 3029 // If target is not the <li> element (ie: a child), find the <li>. 3030 if(!$target.is('li')) { 3031 $target = $target.closest('li'); 3032 } 3033 3034 unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0); 3035 indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll; 3036 3037 switch (event.data.message) { 3038 3039 case 'previous': 3040 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset; 3041 if (_.slideCount > _.options.slidesToShow) { 3042 _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate); 3043 } 3044 break; 3045 3046 case 'next': 3047 slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset; 3048 if (_.slideCount > _.options.slidesToShow) { 3049 _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate); 3050 } 3051 break; 3052 3053 case 'index': 3054 var index = event.data.index === 0 ? 0 : 3055 event.data.index || $target.index() * _.options.slidesToScroll; 3056 3057 _.slideHandler(_.checkNavigable(index), false, dontAnimate); 3058 $target.children().trigger('focus'); 3059 break; 3060 3061 default: 3062 return; 3063 } 3064 3065 }; 3066 3067 Slick.prototype.checkNavigable = function(index) { 3068 3069 var _ = this, 3070 navigables, prevNavigable; 3071 3072 navigables = _.getNavigableIndexes(); 3073 prevNavigable = 0; 3074 if (index > navigables[navigables.length - 1]) { 3075 index = navigables[navigables.length - 1]; 3076 } else { 3077 for (var n in navigables) { 3078 if (index < navigables[n]) { 3079 index = prevNavigable; 3080 break; 3081 } 3082 prevNavigable = navigables[n]; 3083 } 3084 } 3085 3086 return index; 3087 }; 3088 3089 Slick.prototype.cleanUpEvents = function() { 3090 3091 var _ = this; 3092 3093 if (_.options.dots && _.$dots !== null) { 3094 3095 $('li', _.$dots) 3096 .off('click.slick', _.changeSlide) 3097 .off('mouseenter.slick', $.proxy(_.interrupt, _, true)) 3098 .off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 3099 3100 if (_.options.accessibility === true) { 3101 _.$dots.off('keydown.slick', _.keyHandler); 3102 } 3103 } 3104 3105 _.$slider.off('focus.slick blur.slick'); 3106 3107 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 3108 _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide); 3109 _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide); 3110 3111 if (_.options.accessibility === true) { 3112 _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler); 3113 _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler); 3114 } 3115 } 3116 3117 _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler); 3118 _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler); 3119 _.$list.off('touchend.slick mouseup.slick', _.swipeHandler); 3120 _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler); 3121 3122 _.$list.off('click.slick', _.clickHandler); 3123 3124 $(document).off(_.visibilityChange, _.visibility); 3125 3126 _.cleanUpSlideEvents(); 3127 3128 if (_.options.accessibility === true) { 3129 _.$list.off('keydown.slick', _.keyHandler); 3130 } 3131 3132 if (_.options.focusOnSelect === true) { 3133 $(_.$slideTrack).children().off('click.slick', _.selectHandler); 3134 } 3135 3136 $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange); 3137 3138 $(window).off('resize.slick.slick-' + _.instanceUid, _.resize); 3139 3140 $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault); 3141 3142 $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition); 3143 3144 }; 3145 3146 Slick.prototype.cleanUpSlideEvents = function() { 3147 3148 var _ = this; 3149 3150 _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true)); 3151 _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false)); 3152 3153 }; 3154 3155 Slick.prototype.cleanUpRows = function() { 3156 3157 var _ = this, originalSlides; 3158 3159 if(_.options.rows > 0) { 3160 originalSlides = _.$slides.children().children(); 3161 originalSlides.removeAttr('style'); 3162 _.$slider.empty().append(originalSlides); 3163 } 3164 3165 }; 3166 3167 Slick.prototype.clickHandler = function(event) { 3168 3169 var _ = this; 3170 3171 if (_.shouldClick === false) { 3172 event.stopImmediatePropagation(); 3173 event.stopPropagation(); 3174 event.preventDefault(); 3175 } 3176 3177 }; 3178 3179 Slick.prototype.destroy = function(refresh) { 3180 3181 var _ = this; 3182 3183 _.autoPlayClear(); 3184 3185 _.touchObject = {}; 3186 3187 _.cleanUpEvents(); 3188 3189 $('.slick-cloned', _.$slider).detach(); 3190 3191 if (_.$dots) { 3192 _.$dots.remove(); 3193 } 3194 3195 if ( _.$prevArrow && _.$prevArrow.length ) { 3196 3197 _.$prevArrow 3198 .removeClass('slick-disabled slick-arrow slick-hidden') 3199 .removeAttr('aria-hidden aria-disabled tabindex') 3200 .css('display',''); 3201 3202 if ( _.htmlExpr.test( _.options.prevArrow )) { 3203 _.$prevArrow.remove(); 3204 } 3205 } 3206 3207 if ( _.$nextArrow && _.$nextArrow.length ) { 3208 3209 _.$nextArrow 3210 .removeClass('slick-disabled slick-arrow slick-hidden') 3211 .removeAttr('aria-hidden aria-disabled tabindex') 3212 .css('display',''); 3213 3214 if ( _.htmlExpr.test( _.options.nextArrow )) { 3215 _.$nextArrow.remove(); 3216 } 3217 } 3218 3219 3220 if (_.$slides) { 3221 3222 _.$slides 3223 .removeClass('slick-slide slick-active slick-center slick-visible slick-current') 3224 .removeAttr('aria-hidden') 3225 .removeAttr('data-slick-index') 3226 .each(function(){ 3227 $(this).attr('style', $(this).data('originalStyling')); 3228 }); 3229 3230 _.$slideTrack.children(this.options.slide).detach(); 3231 3232 _.$slideTrack.detach(); 3233 3234 _.$list.detach(); 3235 3236 _.$slider.append(_.$slides); 3237 } 3238 3239 _.cleanUpRows(); 3240 3241 _.$slider.removeClass('slick-slider'); 3242 _.$slider.removeClass('slick-initialized'); 3243 _.$slider.removeClass('slick-dotted'); 3244 3245 _.unslicked = true; 3246 3247 if(!refresh) { 3248 _.$slider.trigger('destroy', [_]); 3249 } 3250 3251 }; 3252 3253 Slick.prototype.disableTransition = function(slide) { 3254 3255 var _ = this, 3256 transition = {}; 3257 3258 transition[_.transitionType] = ''; 3259 3260 if (_.options.fade === false) { 3261 _.$slideTrack.css(transition); 3262 } else { 3263 _.$slides.eq(slide).css(transition); 3264 } 3265 3266 }; 3267 3268 Slick.prototype.fadeSlide = function(slideIndex, callback) { 3269 3270 var _ = this; 3271 3272 if (_.cssTransitions === false) { 3273 3274 _.$slides.eq(slideIndex).css({ 3275 zIndex: _.options.zIndex 3276 }); 3277 3278 _.$slides.eq(slideIndex).animate({ 3279 opacity: 1 3280 }, _.options.speed, _.options.easing, callback); 3281 3282 } else { 3283 3284 _.applyTransition(slideIndex); 3285 3286 _.$slides.eq(slideIndex).css({ 3287 opacity: 1, 3288 zIndex: _.options.zIndex 3289 }); 3290 3291 if (callback) { 3292 setTimeout(function() { 3293 3294 _.disableTransition(slideIndex); 3295 3296 callback.call(); 3297 }, _.options.speed); 3298 } 3299 3300 } 3301 3302 }; 3303 3304 Slick.prototype.fadeSlideOut = function(slideIndex) { 3305 3306 var _ = this; 3307 3308 if (_.cssTransitions === false) { 3309 3310 _.$slides.eq(slideIndex).animate({ 3311 opacity: 0, 3312 zIndex: _.options.zIndex - 2 3313 }, _.options.speed, _.options.easing); 3314 3315 } else { 3316 3317 _.applyTransition(slideIndex); 3318 3319 _.$slides.eq(slideIndex).css({ 3320 opacity: 0, 3321 zIndex: _.options.zIndex - 2 3322 }); 3323 3324 } 3325 3326 }; 3327 3328 Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) { 3329 3330 var _ = this; 3331 3332 if (filter !== null) { 3333 3334 _.$slidesCache = _.$slides; 3335 3336 _.unload(); 3337 3338 _.$slideTrack.children(this.options.slide).detach(); 3339 3340 _.$slidesCache.filter(filter).appendTo(_.$slideTrack); 3341 3342 _.reinit(); 3343 3344 } 3345 3346 }; 3347 3348 Slick.prototype.focusHandler = function() { 3349 3350 var _ = this; 3351 3352
3352// If any child element receives focus within the slider we need to pause the autoplay 3353 _.$slider 3354 .off('focus.slick blur.slick') 3355 .on( 3356 'focus.slick', 3357 '*', 3358 function(event) { 3359 var $sf = $(this); 3360 3361 setTimeout(function() { 3362 if( _.options.pauseOnFocus ) { 3363 if ($sf.is(':focus')) { 3364 _.focussed = true; 3365 _.autoPlay(); 3366 } 3367 } 3368 }, 0); 3369 } 3370 ).on( 3371 'blur.slick', 3372 '*', 3373 function(event) { 3374 var $sf = $(this); 3375 3376 // When a blur occurs on any elements within the slider we become unfocused 3377 if( _.options.pauseOnFocus ) { 3378 _.focussed = false; 3379 _.autoPlay(); 3380 } 3381 } 3382 ); 3383 }; 3384 3385 Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() { 3386 3387 var _ = this; 3388 return _.currentSlide; 3389 3390 }; 3391 3392 Slick.prototype.getDotCount = function() { 3393 3394 var _ = this; 3395 3396 var breakPoint = 0; 3397 var counter = 0; 3398 var pagerQty = 0; 3399 3400 if (_.options.infinite === true) { 3401 if (_.slideCount <= _.options.slidesToShow) { 3402 ++pagerQty; 3403 } else { 3404 while (breakPoint < _.slideCount) { 3405 ++pagerQty; 3406 breakPoint = counter + _.options.slidesToScroll; 3407 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 3408 } 3409 } 3410 } else if (_.options.centerMode === true) { 3411 pagerQty = _.slideCount; 3412 } else if(!_.options.asNavFor) { 3413 pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll); 3414 }else { 3415 while (breakPoint < _.slideCount) { 3416 ++pagerQty; 3417 breakPoint = counter + _.options.slidesToScroll; 3418 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 3419 } 3420 } 3421 3422 return pagerQty - 1; 3423 3424 }; 3425 3426 Slick.prototype.getLeft = function(slideIndex) { 3427 3428 var _ = this, 3429 targetLeft, 3430 verticalHeight, 3431 verticalOffset = 0, 3432 targetSlide, 3433 coef; 3434 3435 _.slideOffset = 0; 3436 verticalHeight = _.$slides.first().outerHeight(true); 3437 3438 if (_.options.infinite === true) { 3439 if (_.slideCount > _.options.slidesToShow) { 3440 _.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1; 3441 coef = -1 3442 3443 if (_.options.vertical === true && _.options.centerMode === true) { 3444 if (_.options.slidesToShow === 2) { 3445 coef = -1.5; 3446 } else if (_.options.slidesToShow === 1) { 3447 coef = -2
vendor: 4,950 bytes, lines 3447-3576
3447 3448 } 3449 } 3450 verticalOffset = (verticalHeight * _.options.slidesToShow) * coef; 3451 } 3452 if (_.slideCount % _.options.slidesToScroll !== 0) { 3453 if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) { 3454 if (slideIndex > _.slideCount) { 3455 _.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1; 3456 verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1; 3457 } else { 3458 _.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1; 3459 verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1; 3460 } 3461 } 3462 } 3463 } else { 3464 if (slideIndex + _.options.slidesToShow > _.slideCount) { 3465 _.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth; 3466 verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight; 3467 } 3468 } 3469 3470 if (_.slideCount <= _.options.slidesToShow) { 3471 _.slideOffset = 0; 3472 verticalOffset = 0; 3473 } 3474 3475 if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) { 3476 _.slideOffset = ((_.slideWidth * Math.floor(_.options.slidesToShow)) / 2) - ((_.slideWidth * _.slideCount) / 2); 3477 } else if (_.options.centerMode === true && _.options.infinite === true) { 3478 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth; 3479 } else if (_.options.centerMode === true) { 3480 _.slideOffset = 0; 3481 _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2); 3482 } 3483 3484 if (_.options.vertical === false) { 3485 targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset; 3486 } else { 3487 targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset; 3488 } 3489 3490 if (_.options.variableWidth === true) { 3491 3492 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 3493 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 3494 } else { 3495 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow); 3496 } 3497 3498 if (_.options.rtl === true) { 3499 if (targetSlide[0]) { 3500 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 3501 } else { 3502 targetLeft = 0; 3503 } 3504 } else { 3505 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 3506 } 3507 3508 if (_.options.centerMode === true) { 3509 if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) { 3510 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex); 3511 } else { 3512 targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1); 3513 } 3514 3515 if (_.options.rtl === true) { 3516 if (targetSlide[0]) { 3517 targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1; 3518 } else { 3519 targetLeft = 0; 3520 } 3521 } else { 3522 targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0; 3523 } 3524 3525 targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2; 3526 } 3527 } 3528 3529 return targetLeft; 3530 3531 }; 3532 3533 Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) { 3534 3535 var _ = this; 3536 3537 return _.options[option]; 3538 3539 }; 3540 3541 Slick.prototype.getNavigableIndexes = function() { 3542 3543 var _ = this, 3544 breakPoint = 0, 3545 counter = 0, 3546 indexes = [], 3547 max; 3548 3549 if (_.options.infinite === false) { 3550 max = _.slideCount; 3551 } else { 3552 breakPoint = _.options.slidesToScroll * -1; 3553 counter = _.options.slidesToScroll * -1; 3554 max = _.slideCount * 2; 3555 } 3556 3557 while (breakPoint < max) { 3558 indexes.push(breakPoint); 3559 breakPoint = counter + _.options.slidesToScroll; 3560 counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow; 3561 } 3562 3563 return indexes; 3564 3565 }; 3566 3567 Slick.prototype.getSlick = function() { 3568 3569 return this; 3570 3571 }; 3572 3573 Slick.prototype.getSlideCount = function() { 3574 3575 var _ = this, 3576 slidesTraversed, swipedSlide,
3576swipeTarget, centerOffset; 3577 3578 centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0; 3579 swipeTarget = (_.swipeLeft * -1) + centerOffset; 3580 3581 if (_.options.swipeToSlide === true) { 3582 3583 _.$slideTrack.find('.slick-slide').each(function(index, slide) { 3584 3585 var slideOuterWidth, slideOffset, slideRightBoundary; 3586 slideOuterWidth = $(slide).outerWidth(); 3587 slideOffset = slide.offsetLeft; 3588 if (_.options.centerMode !== true) { 3589 slideOffset += (slideOuterWidth / 2); 3590 } 3591 3592 slideRightBoundary = slideOffset + (slideOuterWidth); 3593 3594 if (swipeTarget < slideRightBoundary) { 3595 swipedSlide = slide; 3596 return false; 3597 } 3598 }); 3599 3600 slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1; 3601 3602 return slidesTraversed; 3603 3604 } else { 3605 return _.options.slidesToScroll; 3606 } 3607 3608 }; 3609 3610 Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) { 3611 3612 var _ = this; 3613 3614 _.changeSlide({ 3615 data: { 3616 message: 'index', 3617 index: parseInt(slide) 3618 } 3619 }, dontAnimate); 3620 3621 }; 3622 3623 Slick.prototype.init = function(creation) { 3624 3625 var _ = this; 3626 3627 if (!$(_.$slider).hasClass('slick-initialized')) { 3628 3629 $(_.$slider).addClass('slick-initialized'); 3630 3631 _.buildRows(); 3632 _.buildOut(); 3633 _.setProps(); 3634 _.startLoad(); 3635 _.loadSlider(); 3636 _.initializeEvents(); 3637 _.updateArrows(); 3638 _.updateDots(); 3639 _.checkResponsive(true); 3640 _.focusHandler(); 3641 3642 } 3643 3644 if (creation) { 3645 _.$slider.trigger('init', [_]); 3646 } 3647 3648 if (_.options.accessibility === true) { 3649 _.initADA(); 3650 } 3651 3652 if ( _.options.autoplay ) { 3653 3654 _.paused = false;
vendor: 1,103 bytes, lines 3655-3686
3655 _.autoPlay(); 3656 3657 } 3658 3659 }; 3660 3661 Slick.prototype.initADA = function() { 3662 var _ = this, 3663 numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow), 3664 tabControlIndexes = _.getNavigableIndexes().filter(function(val) { 3665 return (val >= 0) && (val < _.slideCount); 3666 }); 3667 3668 _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({ 3669 'aria-hidden': 'true', 3670 'tabindex': '-1' 3671 }).find('a, input, button, select').attr({ 3672 'tabindex': '-1' 3673 }); 3674 3675 if (_.$dots !== null) { 3676 _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) { 3677 var slideControlIndex = tabControlIndexes.indexOf(i); 3678 3679 $(this).attr({ 3680 'role': 'tabpanel', 3681 'id': 'slick-slide' + _.instanceUid + i, 3682 'tabindex': -1 3683 }); 3684 3685 if (slideControlIndex !== -1) { 3686 var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex
vendor: 39,773 bytes, lines 3686-5062
3686 3687 if ($('#' + ariaButtonControl).length) { 3688 $(this).attr({ 3689 'aria-describedby': ariaButtonControl 3690 }); 3691 } 3692 } 3693 }); 3694 3695 _.$dots.attr('role', 'tablist').find('li').each(function(i) { 3696 var mappedSlideIndex = tabControlIndexes[i]; 3697 3698 $(this).attr({ 3699 'role': 'presentation' 3700 }); 3701 3702 $(this).find('button').first().attr({ 3703 'role': 'tab', 3704 'id': 'slick-slide-control' + _.instanceUid + i, 3705 'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex, 3706 'aria-label': (i + 1) + ' of ' + numDotGroups, 3707 'aria-selected': null, 3708 'tabindex': '-1' 3709 }); 3710 3711 }).eq(_.currentSlide).find('button').attr({ 3712 'aria-selected': 'true', 3713 'tabindex': '0' 3714 }).end(); 3715 } 3716 3717 for (var i=_.currentSlide, max=i+_.options.slidesToShow; i < max; i++) { 3718 if (_.options.focusOnChange) { 3719 _.$slides.eq(i).attr({'tabindex': '0'}); 3720 } else { 3721 _.$slides.eq(i).removeAttr('tabindex'); 3722 } 3723 } 3724 3725 _.activateADA(); 3726 3727 }; 3728 3729 Slick.prototype.initArrowEvents = function() { 3730 3731 var _ = this; 3732 3733 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 3734 _.$prevArrow 3735 .off('click.slick') 3736 .on('click.slick', { 3737 message: 'previous' 3738 }, _.changeSlide); 3739 _.$nextArrow 3740 .off('click.slick') 3741 .on('click.slick', { 3742 message: 'next' 3743 }, _.changeSlide); 3744 3745 if (_.options.accessibility === true) { 3746 _.$prevArrow.on('keydown.slick', _.keyHandler); 3747 _.$nextArrow.on('keydown.slick', _.keyHandler); 3748 } 3749 } 3750 3751 }; 3752 3753 Slick.prototype.initDotEvents = function() { 3754 3755 var _ = this; 3756 3757 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 3758 $('li', _.$dots).on('click.slick', { 3759 message: 'index' 3760 }, _.changeSlide); 3761 3762 if (_.options.accessibility === true) { 3763 _.$dots.on('keydown.slick', _.keyHandler); 3764 } 3765 } 3766 3767 if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) { 3768 3769 $('li', _.$dots) 3770 .on('mouseenter.slick', $.proxy(_.interrupt, _, true)) 3771 .on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 3772 3773 } 3774 3775 }; 3776 3777 Slick.prototype.initSlideEvents = function() { 3778 3779 var _ = this; 3780 3781 if ( _.options.pauseOnHover ) { 3782 3783 _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true)); 3784 _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false)); 3785 3786 } 3787 3788 }; 3789 3790 Slick.prototype.initializeEvents = function() { 3791 3792 var _ = this; 3793 3794 _.initArrowEvents(); 3795 3796 _.initDotEvents(); 3797 _.initSlideEvents(); 3798 3799 _.$list.on('touchstart.slick mousedown.slick', { 3800 action: 'start' 3801 }, _.swipeHandler); 3802 _.$list.on('touchmove.slick mousemove.slick', { 3803 action: 'move' 3804 }, _.swipeHandler); 3805 _.$list.on('touchend.slick mouseup.slick', { 3806 action: 'end' 3807 }, _.swipeHandler); 3808 _.$list.on('touchcancel.slick mouseleave.slick', { 3809 action: 'end' 3810 }, _.swipeHandler); 3811 3812 _.$list.on('click.slick', _.clickHandler); 3813 3814 $(document).on(_.visibilityChange, $.proxy(_.visibility, _)); 3815 3816 if (_.options.accessibility === true) { 3817 _.$list.on('keydown.slick', _.keyHandler); 3818 } 3819 3820 if (_.options.focusOnSelect === true) { 3821 $(_.$slideTrack).children().on('click.slick', _.selectHandler); 3822 } 3823 3824 $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _)); 3825 3826 $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _)); 3827 3828 $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault); 3829 3830 $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition); 3831 $(_.setPosition); 3832 3833 }; 3834 3835 Slick.prototype.initUI = function() { 3836 3837 var _ = this; 3838 3839 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 3840 3841 _.$prevArrow.show(); 3842 _.$nextArrow.show(); 3843 3844 } 3845 3846 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 3847 3848 _.$dots.show(); 3849 3850 } 3851 3852 }; 3853 3854 Slick.prototype.keyHandler = function(event) { 3855 3856 var _ = this; 3857 //Dont slide if the cursor is inside the form fields and arrow keys are pressed 3858 if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) { 3859 if (event.keyCode === 37 && _.options.accessibility === true) { 3860 _.changeSlide({ 3861 data: { 3862 message: _.options.rtl === true ? 'next' : 'previous' 3863 } 3864 }); 3865 } else if (event.keyCode === 39 && _.options.accessibility === true) { 3866 _.changeSlide({ 3867 data: { 3868 message: _.options.rtl === true ? 'previous' : 'next' 3869 } 3870 }); 3871 } 3872 } 3873 3874 }; 3875 3876 Slick.prototype.lazyLoad = function() { 3877 3878 var _ = this, 3879 loadRange, cloneRange, rangeStart, rangeEnd; 3880 3881 function loadImages(imagesScope) { 3882 3883 $('img[data-lazy]', imagesScope).each(function() { 3884 3885 var image = $(this), 3886 imageSource = $(this).attr('data-lazy'), 3887 imageSrcSet = $(this).attr('data-srcset'), 3888 imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'), 3889 imageToLoad = document.createElement('img'); 3890 3891 imageToLoad.onload = function() { 3892 3893 image 3894 .animate({ opacity: 0 }, 100, function() { 3895 3896 if (imageSrcSet) { 3897 image 3898 .attr('srcset', imageSrcSet ); 3899 3900 if (imageSizes) { 3901 image 3902 .attr('sizes', imageSizes ); 3903 } 3904 } 3905 3906 image 3907 .attr('src', imageSource) 3908 .animate({ opacity: 1 }, 200, function() { 3909 image 3910 .removeAttr('data-lazy data-srcset data-sizes') 3911 .removeClass('slick-loading'); 3912 }); 3913 _.$slider.trigger('lazyLoaded', [_, image, imageSource]); 3914 }); 3915 3916 }; 3917 3918 imageToLoad.onerror = function() { 3919 3920 image 3921 .removeAttr( 'data-lazy' ) 3922 .removeClass( 'slick-loading' ) 3923 .addClass( 'slick-lazyload-error' ); 3924 3925 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 3926 3927 }; 3928 3929 imageToLoad.src = imageSource; 3930 3931 }); 3932 3933 } 3934 3935 if (_.options.centerMode === true) { 3936 if (_.options.infinite === true) { 3937 rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1); 3938 rangeEnd = rangeStart + _.options.slidesToShow + 2; 3939 } else { 3940 rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1)); 3941 rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide; 3942 } 3943 } else { 3944 rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide; 3945 rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow); 3946 if (_.options.fade === true) { 3947 if (rangeStart > 0) rangeStart--; 3948 if (rangeEnd <= _.slideCount) rangeEnd++; 3949 } 3950 } 3951 3952 loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd); 3953 3954 if (_.options.lazyLoad === 'anticipated') { 3955 var prevSlide = rangeStart - 1, 3956 nextSlide = rangeEnd, 3957 $slides = _.$slider.find('.slick-slide'); 3958 3959 for (var i = 0; i < _.options.slidesToScroll; i++) { 3960 if (prevSlide < 0) prevSlide = _.slideCount - 1; 3961 loadRange = loadRange.add($slides.eq(prevSlide)); 3962 loadRange = loadRange.add($slides.eq(nextSlide)); 3963 prevSlide--; 3964 nextSlide++; 3965 } 3966 } 3967 3968 loadImages(loadRange); 3969 3970 if (_.slideCount <= _.options.slidesToShow) { 3971 cloneRange = _.$slider.find('.slick-slide'); 3972 loadImages(cloneRange); 3973 } else 3974 if (_.currentSlide >= _.slideCount - _.options.slidesToShow) { 3975 cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow); 3976 loadImages(cloneRange); 3977 } else if (_.currentSlide === 0) { 3978 cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1); 3979 loadImages(cloneRange); 3980 } 3981 3982 }; 3983 3984 Slick.prototype.loadSlider = function() { 3985 3986 var _ = this; 3987 3988 _.setPosition(); 3989 3990 _.$slideTrack.css({ 3991 opacity: 1 3992 }); 3993 3994 _.$slider.removeClass('slick-loading'); 3995 3996 _.initUI(); 3997 3998 if (_.options.lazyLoad === 'progressive') { 3999 _.progressiveLazyLoad(); 4000 } 4001 4002 }; 4003 4004 Slick.prototype.next = Slick.prototype.slickNext = function() { 4005 4006 var _ = this; 4007 4008 _.changeSlide({ 4009 data: { 4010 message: 'next' 4011 } 4012 }); 4013 4014 }; 4015 4016 Slick.prototype.orientationChange = function() { 4017 4018 var _ = this; 4019 4020 _.checkResponsive(); 4021 _.setPosition(); 4022 4023 }; 4024 4025 Slick.prototype.pause = Slick.prototype.slickPause = function() { 4026 4027 var _ = this; 4028 4029 _.autoPlayClear(); 4030 _.paused = true; 4031 4032 }; 4033 4034 Slick.prototype.play = Slick.prototype.slickPlay = function() { 4035 4036 var _ = this; 4037 4038 _.autoPlay(); 4039 _.options.autoplay = true; 4040 _.paused = false; 4041 _.focussed = false; 4042 _.interrupted = false; 4043 4044 }; 4045 4046 Slick.prototype.postSlide = function(index) { 4047 4048 var _ = this; 4049 4050 if( !_.unslicked ) { 4051 4052 _.$slider.trigger('afterChange', [_, index]); 4053 4054 _.animating = false; 4055 4056 if (_.slideCount > _.options.slidesToShow) { 4057 _.setPosition(); 4058 } 4059 4060 _.swipeLeft = null; 4061 4062 if ( _.options.autoplay ) { 4063 _.autoPlay(); 4064 } 4065 4066 if (_.options.accessibility === true) { 4067 _.initADA(); 4068 4069 if (_.options.focusOnChange) { 4070 var $currentSlide = $(_.$slides.get(_.currentSlide)); 4071 $currentSlide.attr('tabindex', 0).focus(); 4072 } 4073 } 4074 4075 } 4076 4077 }; 4078 4079 Slick.prototype.prev = Slick.prototype.slickPrev = function() { 4080 4081 var _ = this; 4082 4083 _.changeSlide({ 4084 data: { 4085 message: 'previous' 4086 } 4087 }); 4088 4089 }; 4090 4091 Slick.prototype.preventDefault = function(event) { 4092 4093 event.preventDefault(); 4094 4095 }; 4096 4097 Slick.prototype.progressiveLazyLoad = function( tryCount ) { 4098 4099 tryCount = tryCount || 1; 4100 4101 var _ = this, 4102 $imgsToLoad = $( 'img[data-lazy]', _.$slider ), 4103 image, 4104 imageSource, 4105 imageSrcSet, 4106 imageSizes, 4107 imageToLoad; 4108 4109 if ( $imgsToLoad.length ) { 4110 4111 image = $imgsToLoad.first(); 4112 imageSource = image.attr('data-lazy'); 4113 imageSrcSet = image.attr('data-srcset'); 4114 imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes'); 4115 imageToLoad = document.createElement('img'); 4116 4117 imageToLoad.onload = function() { 4118 4119 if (imageSrcSet) { 4120 image 4121 .attr('srcset', imageSrcSet ); 4122 4123 if (imageSizes) { 4124 image 4125 .attr('sizes', imageSizes ); 4126 } 4127 } 4128 4129 image 4130 .attr( 'src', imageSource ) 4131 .removeAttr('data-lazy data-srcset data-sizes') 4132 .removeClass('slick-loading'); 4133 4134 if ( _.options.adaptiveHeight === true ) { 4135 _.setPosition(); 4136 } 4137 4138 _.$slider.trigger('lazyLoaded', [ _, image, imageSource ]); 4139 _.progressiveLazyLoad(); 4140 4141 }; 4142 4143 imageToLoad.onerror = function() { 4144 4145 if ( tryCount < 3 ) { 4146 4147 /** 4148 * try to load the image 3 times, 4149 * leave a slight delay so we don't get 4150 * servers blocking the request. 4151 */ 4152 setTimeout( function() { 4153 _.progressiveLazyLoad( tryCount + 1 ); 4154 }, 500 ); 4155 4156 } else { 4157 4158 image 4159 .removeAttr( 'data-lazy' ) 4160 .removeClass( 'slick-loading' ) 4161 .addClass( 'slick-lazyload-error' ); 4162 4163 _.$slider.trigger('lazyLoadError', [ _, image, imageSource ]); 4164 4165 _.progressiveLazyLoad(); 4166 4167 } 4168 4169 }; 4170 4171 imageToLoad.src = imageSource; 4172 4173 } else { 4174 4175 _.$slider.trigger('allImagesLoaded', [ _ ]); 4176 4177 } 4178 4179 }; 4180 4181 Slick.prototype.refresh = function( initializing ) { 4182 4183 var _ = this, currentSlide, lastVisibleIndex; 4184 4185 lastVisibleIndex = _.slideCount - _.options.slidesToShow; 4186 4187 // in non-infinite sliders, we don't want to go past the 4188 // last visible index. 4189 if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) { 4190 _.currentSlide = lastVisibleIndex; 4191 } 4192 4193 // if less slides than to show, go to start. 4194 if ( _.slideCount <= _.options.slidesToShow ) { 4195 _.currentSlide = 0; 4196 4197 } 4198 4199 currentSlide = _.currentSlide; 4200 4201 _.destroy(true); 4202 4203 $.extend(_, _.initials, { currentSlide: currentSlide }); 4204 4205 _.init(); 4206 4207 if( !initializing ) { 4208 4209 _.changeSlide({ 4210 data: { 4211 message: 'index', 4212 index: currentSlide 4213 } 4214 }, false); 4215 4216 } 4217 4218 }; 4219 4220 Slick.prototype.registerBreakpoints = function() { 4221 4222 var _ = this, breakpoint, currentBreakpoint, l, 4223 responsiveSettings = _.options.responsive || null; 4224 4225 if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) { 4226 4227 _.respondTo = _.options.respondTo || 'window'; 4228 4229 for ( breakpoint in responsiveSettings ) { 4230 4231 l = _.breakpoints.length-1; 4232 4233 if (responsiveSettings.hasOwnProperty(breakpoint)) { 4234 currentBreakpoint = responsiveSettings[breakpoint].breakpoint; 4235 4236 // loop through the breakpoints and cut out any existing 4237 // ones with the same breakpoint number, we don't want dupes. 4238 while( l >= 0 ) { 4239 if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) { 4240 _.breakpoints.splice(l,1); 4241 } 4242 l--; 4243 } 4244 4245 _.breakpoints.push(currentBreakpoint); 4246 _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings; 4247 4248 } 4249 4250 } 4251 4252 _.breakpoints.sort(function(a, b) { 4253 return ( _.options.mobileFirst ) ? a-b : b-a; 4254 }); 4255 4256 } 4257 4258 }; 4259 4260 Slick.prototype.reinit = function() { 4261 4262 var _ = this; 4263 4264 _.$slides = 4265 _.$slideTrack 4266 .children(_.options.slide) 4267 .addClass('slick-slide'); 4268 4269 _.slideCount = _.$slides.length; 4270 4271 if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) { 4272 _.currentSlide = _.currentSlide - _.options.slidesToScroll; 4273 } 4274 4275 if (_.slideCount <= _.options.slidesToShow) { 4276 _.currentSlide = 0; 4277 } 4278 4279 _.registerBreakpoints(); 4280 4281 _.setProps(); 4282 _.setupInfinite(); 4283 _.buildArrows(); 4284 _.updateArrows(); 4285 _.initArrowEvents(); 4286 _.buildDots(); 4287 _.updateDots(); 4288 _.initDotEvents(); 4289 _.cleanUpSlideEvents(); 4290 _.initSlideEvents(); 4291 4292 _.checkResponsive(false, true); 4293 4294 if (_.options.focusOnSelect === true) { 4295 $(_.$slideTrack).children().on('click.slick', _.selectHandler); 4296 } 4297 4298 _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0); 4299 4300 _.setPosition(); 4301 _.focusHandler(); 4302 4303 _.paused = !_.options.autoplay; 4304 _.autoPlay(); 4305 4306 _.$slider.trigger('reInit', [_]); 4307 4308 }; 4309 4310 Slick.prototype.resize = function() { 4311 4312 var _ = this; 4313 4314 if ($(window).width() !== _.windowWidth) { 4315 clearTimeout(_.windowDelay); 4316 _.windowDelay = window.setTimeout(function() { 4317 _.windowWidth = $(window).width(); 4318 _.checkResponsive(); 4319 if( !_.unslicked ) { _.setPosition(); } 4320 }, 50); 4321 } 4322 }; 4323 4324 Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) { 4325 4326 var _ = this; 4327 4328 if (typeof(index) === 'boolean') { 4329 removeBefore = index; 4330 index = removeBefore === true ? 0 : _.slideCount - 1; 4331 } else { 4332 index = removeBefore === true ? --index : index; 4333 } 4334 4335 if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) { 4336 return false; 4337 } 4338 4339 _.unload(); 4340 4341 if (removeAll === true) { 4342 _.$slideTrack.children().remove(); 4343 } else { 4344 _.$slideTrack.children(this.options.slide).eq(index).remove(); 4345 } 4346 4347 _.$slides = _.$slideTrack.children(this.options.slide); 4348 4349 _.$slideTrack.children(this.options.slide).detach(); 4350 4351 _.$slideTrack.append(_.$slides); 4352 4353 _.$slidesCache = _.$slides; 4354 4355 _.reinit(); 4356 4357 }; 4358 4359 Slick.prototype.setCSS = function(position) { 4360 4361 var _ = this, 4362 positionProps = {}, 4363 x, y; 4364 4365 if (_.options.rtl === true) { 4366 position = -position; 4367 } 4368 x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px'; 4369 y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px'; 4370 4371 positionProps[_.positionProp] = position; 4372 4373 if (_.transformsEnabled === false) { 4374 _.$slideTrack.css(positionProps); 4375 } else { 4376 positionProps = {}; 4377 if (_.cssTransitions === false) { 4378 positionProps[_.animType] = 'translate(' + x + ', ' + y + ')'; 4379 _.$slideTrack.css(positionProps); 4380 } else { 4381 positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)'; 4382 _.$slideTrack.css(positionProps); 4383 } 4384 } 4385 4386 }; 4387 4388 Slick.prototype.setDimensions = function() { 4389 4390 var _ = this; 4391 4392 if (_.options.vertical === false) { 4393 if (_.options.centerMode === true) { 4394 _.$list.css({ 4395 padding: ('0px ' + _.options.centerPadding) 4396 }); 4397 } 4398 } else { 4399 _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow); 4400 if (_.options.centerMode === true) { 4401 _.$list.css({ 4402 padding: (_.options.centerPadding + ' 0px') 4403 }); 4404 } 4405 } 4406 4407 _.listWidth = _.$list.width(); 4408 _.listHeight = _.$list.height(); 4409 4410 4411 if (_.options.vertical === false && _.options.variableWidth === false) { 4412 _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow); 4413 _.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length))); 4414 4415 } else if (_.options.variableWidth === true) { 4416 _.$slideTrack.width(5000 * _.slideCount); 4417 } else { 4418 _.slideWidth = Math.ceil(_.listWidth); 4419 _.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length))); 4420 } 4421 4422 var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width(); 4423 if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset); 4424 4425 }; 4426 4427 Slick.prototype.setFade = function() { 4428 4429 var _ = this, 4430 targetLeft; 4431 4432 _.$slides.each(function(index, element) { 4433 targetLeft = (_.slideWidth * index) * -1; 4434 if (_.options.rtl === true) { 4435 $(element).css({ 4436 position: 'relative', 4437 right: targetLeft, 4438 top: 0, 4439 zIndex: _.options.zIndex - 2, 4440 opacity: 0 4441 }); 4442 } else { 4443 $(element).css({ 4444 position: 'relative', 4445 left: targetLeft, 4446 top: 0, 4447 zIndex: _.options.zIndex - 2, 4448 opacity: 0 4449 }); 4450 } 4451 }); 4452 4453 _.$slides.eq(_.currentSlide).css({ 4454 zIndex: _.options.zIndex - 1, 4455 opacity: 1 4456 }); 4457 4458 }; 4459 4460 Slick.prototype.setHeight = function() { 4461 4462 var _ = this; 4463 4464 if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) { 4465 var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true); 4466 _.$list.css('height', targetHeight); 4467 } 4468 4469 }; 4470 4471 Slick.prototype.setOption = 4472 Slick.prototype.slickSetOption = function() { 4473 4474 /** 4475 * accepts arguments in format of: 4476 * 4477 * - for changing a single option's value: 4478 * .slick("setOption", option, value, refresh ) 4479 * 4480 * - for changing a set of responsive options: 4481 * .slick("setOption", 'responsive', [{}, ...], refresh ) 4482 * 4483 * - for updating multiple values at once (not responsive) 4484 * .slick("setOption", { 'option': value, ... }, refresh ) 4485 */ 4486 4487 var _ = this, l, item, option, value, refresh = false, type; 4488 4489 if( $.type( arguments[0] ) === 'object' ) { 4490 4491 option = arguments[0]; 4492 refresh = arguments[1]; 4493 type = 'multiple'; 4494 4495 } else if ( $.type( arguments[0] ) === 'string' ) { 4496 4497 option = arguments[0]; 4498 value = arguments[1]; 4499 refresh = arguments[2]; 4500 4501 if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) { 4502 4503 type = 'responsive'; 4504 4505 } else if ( typeof arguments[1] !== 'undefined' ) { 4506 4507 type = 'single'; 4508 4509 } 4510 4511 } 4512 4513 if ( type === 'single' ) { 4514 4515 _.options[option] = value; 4516 4517 4518 } else if ( type === 'multiple' ) { 4519 4520 $.each( option , function( opt, val ) { 4521 4522 _.options[opt] = val; 4523 4524 }); 4525 4526 4527 } else if ( type === 'responsive' ) { 4528 4529 for ( item in value ) { 4530 4531 if( $.type( _.options.responsive ) !== 'array' ) { 4532 4533 _.options.responsive = [ value[item] ]; 4534 4535 } else { 4536 4537 l = _.options.responsive.length-1; 4538 4539 // loop through the responsive object and splice out duplicates. 4540 while( l >= 0 ) { 4541 4542 if( _.options.responsive[l].breakpoint === value[item].breakpoint ) { 4543 4544 _.options.responsive.splice(l,1); 4545 4546 } 4547 4548 l--; 4549 4550 } 4551 4552 _.options.responsive.push( value[item] ); 4553 4554 } 4555 4556 } 4557 4558 } 4559 4560 if ( refresh ) { 4561 4562 _.unload(); 4563 _.reinit(); 4564 4565 } 4566 4567 }; 4568 4569 Slick.prototype.setPosition = function() { 4570 4571 var _ = this; 4572 4573 _.setDimensions(); 4574 4575 _.setHeight(); 4576 4577 if (_.options.fade === false) { 4578 _.setCSS(_.getLeft(_.currentSlide)); 4579 } else { 4580 _.setFade(); 4581 } 4582 4583 _.$slider.trigger('setPosition', [_]); 4584 4585 }; 4586 4587 Slick.prototype.setProps = function() { 4588 4589 var _ = this, 4590 bodyStyle = document.body.style; 4591 4592 _.positionProp = _.options.vertical === true ? 'top' : 'left'; 4593 4594 if (_.positionProp === 'top') { 4595 _.$slider.addClass('slick-vertical'); 4596 } else { 4597 _.$slider.removeClass('slick-vertical'); 4598 } 4599 4600 if (bodyStyle.WebkitTransition !== undefined || 4601 bodyStyle.MozTransition !== undefined || 4602 bodyStyle.msTransition !== undefined) { 4603 if (_.options.useCSS === true) { 4604 _.cssTransitions = true; 4605 } 4606 } 4607 4608 if ( _.options.fade ) { 4609 if ( typeof _.options.zIndex === 'number' ) { 4610 if( _.options.zIndex < 3 ) { 4611 _.options.zIndex = 3; 4612 } 4613 } else { 4614 _.options.zIndex = _.defaults.zIndex; 4615 } 4616 } 4617 4618 if (bodyStyle.OTransform !== undefined) { 4619 _.animType = 'OTransform'; 4620 _.transformType = '-o-transform'; 4621 _.transitionType = 'OTransition'; 4622 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 4623 } 4624 if (bodyStyle.MozTransform !== undefined) { 4625 _.animType = 'MozTransform'; 4626 _.transformType = '-moz-transform'; 4627 _.transitionType = 'MozTransition'; 4628 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false; 4629 } 4630 if (bodyStyle.webkitTransform !== undefined) { 4631 _.animType = 'webkitTransform'; 4632 _.transformType = '-webkit-transform'; 4633 _.transitionType = 'webkitTransition'; 4634 if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false; 4635 } 4636 if (bodyStyle.msTransform !== undefined) { 4637 _.animType = 'msTransform'; 4638 _.transformType = '-ms-transform'; 4639 _.transitionType = 'msTransition'; 4640 if (bodyStyle.msTransform === undefined) _.animType = false; 4641 } 4642 if (bodyStyle.transform !== undefined && _.animType !== false) { 4643 _.animType = 'transform'; 4644 _.transformType = 'transform'; 4645 _.transitionType = 'transition'; 4646 } 4647 _.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false); 4648 }; 4649 4650 4651 Slick.prototype.setSlideClasses = function(index) { 4652 4653 var _ = this, 4654 centerOffset, allSlides, indexOffset, remainder; 4655 4656 allSlides = _.$slider 4657 .find('.slick-slide') 4658 .removeClass('slick-active slick-center slick-current') 4659 .attr('aria-hidden', 'true'); 4660 4661 _.$slides 4662 .eq(index) 4663 .addClass('slick-current'); 4664 4665 if (_.options.centerMode === true) { 4666 4667 var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0; 4668 4669 centerOffset = Math.floor(_.options.slidesToShow / 2); 4670 4671 if (_.options.infinite === true) { 4672 4673 if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) { 4674 _.$slides 4675 .slice(index - centerOffset + evenCoef, index + centerOffset + 1) 4676 .addClass('slick-active') 4677 .attr('aria-hidden', 'false'); 4678 4679 } else { 4680 4681 indexOffset = _.options.slidesToShow + index; 4682 allSlides 4683 .slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2) 4684 .addClass('slick-active') 4685 .attr('aria-hidden', 'false'); 4686 4687 } 4688 4689 if (index === 0) { 4690 4691 allSlides 4692 .eq(allSlides.length - 1 - _.options.slidesToShow) 4693 .addClass('slick-center'); 4694 4695 } else if (index === _.slideCount - 1) { 4696 4697 allSlides 4698 .eq(_.options.slidesToShow) 4699 .addClass('slick-center'); 4700 4701 } 4702 4703 } 4704 4705 _.$slides 4706 .eq(index) 4707 .addClass('slick-center'); 4708 4709 } else { 4710 4711 if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) { 4712 4713 _.$slides 4714 .slice(index, index + _.options.slidesToShow) 4715 .addClass('slick-active') 4716 .attr('aria-hidden', 'false'); 4717 4718 } else if (allSlides.length <= _.options.slidesToShow) { 4719 4720 allSlides 4721 .addClass('slick-active') 4722 .attr('aria-hidden', 'false'); 4723 4724 } else { 4725 4726 remainder = _.slideCount % _.options.slidesToShow; 4727 indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index; 4728 4729 if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) { 4730 4731 allSlides 4732 .slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder) 4733 .addClass('slick-active') 4734 .attr('aria-hidden', 'false'); 4735 4736 } else { 4737 4738 allSlides 4739 .slice(indexOffset, indexOffset + _.options.slidesToShow) 4740 .addClass('slick-active') 4741 .attr('aria-hidden', 'false'); 4742 4743 } 4744 4745 } 4746 4747 } 4748 4749 if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') { 4750 _.lazyLoad(); 4751 } 4752 }; 4753 4754 Slick.prototype.setupInfinite = function() { 4755 4756 var _ = this, 4757 i, slideIndex, infiniteCount; 4758 4759 if (_.options.fade === true) { 4760 _.options.centerMode = false; 4761 } 4762 4763 if (_.options.infinite === true && _.options.fade === false) { 4764 4765 slideIndex = null; 4766 4767 if (_.slideCount > _.options.slidesToShow) { 4768 4769 if (_.options.centerMode === true) { 4770 infiniteCount = _.options.slidesToShow + 1; 4771 } else { 4772 infiniteCount = _.options.slidesToShow; 4773 } 4774 4775 for (i = _.slideCount; i > (_.slideCount - 4776 infiniteCount); i -= 1) { 4777 slideIndex = i - 1; 4778 $(_.$slides[slideIndex]).clone(true).attr('id', '') 4779 .attr('data-slick-index', slideIndex - _.slideCount) 4780 .prependTo(_.$slideTrack).addClass('slick-cloned'); 4781 } 4782 for (i = 0; i < infiniteCount + _.slideCount; i += 1) { 4783 slideIndex = i; 4784 $(_.$slides[slideIndex]).clone(true).attr('id', '') 4785 .attr('data-slick-index', slideIndex + _.slideCount) 4786 .appendTo(_.$slideTrack).addClass('slick-cloned'); 4787 } 4788 _.$slideTrack.find('.slick-cloned').find('[id]').each(function() { 4789 $(this).attr('id', ''); 4790 }); 4791 4792 } 4793 4794 } 4795 4796 }; 4797 4798 Slick.prototype.interrupt = function( toggle ) { 4799 4800 var _ = this; 4801 4802 if( !toggle ) { 4803 _.autoPlay(); 4804 } 4805 _.interrupted = toggle; 4806 4807 }; 4808 4809 Slick.prototype.selectHandler = function(event) { 4810 4811 var _ = this; 4812 4813 var targetElement = 4814 $(event.target).is('.slick-slide') ? 4815 $(event.target) : 4816 $(event.target).parents('.slick-slide'); 4817 4818 var index = parseInt(targetElement.attr('data-slick-index')); 4819 4820 if (!index) index = 0; 4821 4822 if (_.slideCount <= _.options.slidesToShow) { 4823 4824 _.slideHandler(index, false, true); 4825 return; 4826 4827 } 4828 4829 _.slideHandler(index); 4830 4831 }; 4832 4833 Slick.prototype.slideHandler = function(index, sync, dontAnimate) { 4834 4835 var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null, 4836 _ = this, navTarget; 4837 4838 sync = sync || false; 4839 4840 if (_.animating === true && _.options.waitForAnimate === true) { 4841 return; 4842 } 4843 4844 if (_.options.fade === true && _.currentSlide === index) { 4845 return; 4846 } 4847 4848 if (sync === false) { 4849 _.asNavFor(index); 4850 } 4851 4852 targetSlide = index; 4853 targetLeft = _.getLeft(targetSlide); 4854 slideLeft = _.getLeft(_.currentSlide); 4855 4856 _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft; 4857 4858 if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) { 4859 if (_.options.fade === false) { 4860 targetSlide = _.currentSlide; 4861 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 4862 _.animateSlide(slideLeft, function() { 4863 _.postSlide(targetSlide); 4864 }); 4865 } else { 4866 _.postSlide(targetSlide); 4867 } 4868 } 4869 return; 4870 } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) { 4871 if (_.options.fade === false) { 4872 targetSlide = _.currentSlide; 4873 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 4874 _.animateSlide(slideLeft, function() { 4875 _.postSlide(targetSlide); 4876 }); 4877 } else { 4878 _.postSlide(targetSlide); 4879 } 4880 } 4881 return; 4882 } 4883 4884 if ( _.options.autoplay ) { 4885 clearInterval(_.autoPlayTimer); 4886 } 4887 4888 if (targetSlide < 0) { 4889 if (_.slideCount % _.options.slidesToScroll !== 0) { 4890 animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll); 4891 } else { 4892 animSlide = _.slideCount + targetSlide; 4893 } 4894 } else if (targetSlide >= _.slideCount) { 4895 if (_.slideCount % _.options.slidesToScroll !== 0) { 4896 animSlide = 0; 4897 } else { 4898 animSlide = targetSlide - _.slideCount; 4899 } 4900 } else { 4901 animSlide = targetSlide; 4902 } 4903 4904 _.animating = true; 4905 4906 _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]); 4907 4908 oldSlide = _.currentSlide; 4909 _.currentSlide = animSlide; 4910 4911 _.setSlideClasses(_.currentSlide); 4912 4913 if ( _.options.asNavFor ) { 4914 4915 navTarget = _.getNavTarget(); 4916 navTarget = navTarget.slick('getSlick'); 4917 4918 if ( navTarget.slideCount <= navTarget.options.slidesToShow ) { 4919 navTarget.setSlideClasses(_.currentSlide); 4920 } 4921 4922 } 4923 4924 _.updateDots(); 4925 _.updateArrows(); 4926 4927 if (_.options.fade === true) { 4928 if (dontAnimate !== true) { 4929 4930 _.fadeSlideOut(oldSlide); 4931 4932 _.fadeSlide(animSlide, function() { 4933 _.postSlide(animSlide); 4934 }); 4935 4936 } else { 4937 _.postSlide(animSlide); 4938 } 4939 _.animateHeight(); 4940 return; 4941 } 4942 4943 if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) { 4944 _.animateSlide(targetLeft, function() { 4945 _.postSlide(animSlide); 4946 }); 4947 } else { 4948 _.postSlide(animSlide); 4949 } 4950 4951 }; 4952 4953 Slick.prototype.startLoad = function() { 4954 4955 var _ = this; 4956 4957 if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) { 4958 4959 _.$prevArrow.hide(); 4960 _.$nextArrow.hide(); 4961 4962 } 4963 4964 if (_.options.dots === true && _.slideCount > _.options.slidesToShow) { 4965 4966 _.$dots.hide(); 4967 4968 } 4969 4970 _.$slider.addClass('slick-loading'); 4971 4972 }; 4973 4974 Slick.prototype.swipeDirection = function() { 4975 4976 var xDist, yDist, r, swipeAngle, _ = this; 4977 4978 xDist = _.touchObject.startX - _.touchObject.curX; 4979 yDist = _.touchObject.startY - _.touchObject.curY; 4980 r = Math.atan2(yDist, xDist); 4981 4982 swipeAngle = Math.round(r * 180 / Math.PI); 4983 if (swipeAngle < 0) { 4984 swipeAngle = 360 - Math.abs(swipeAngle); 4985 } 4986 4987 if ((swipeAngle <= 45) && (swipeAngle >= 0)) { 4988 return (_.options.rtl === false ? 'left' : 'right'); 4989 } 4990 if ((swipeAngle <= 360) && (swipeAngle >= 315)) { 4991 return (_.options.rtl === false ? 'left' : 'right'); 4992 } 4993 if ((swipeAngle >= 135) && (swipeAngle <= 225)) { 4994 return (_.options.rtl === false ? 'right' : 'left'); 4995 } 4996 if (_.options.verticalSwiping === true) { 4997 if ((swipeAngle >= 35) && (swipeAngle <= 135)) { 4998 return 'down'; 4999 } else { 5000 return 'up'; 5001 } 5002 } 5003 5004 return 'vertical'; 5005 5006 }; 5007 5008 Slick.prototype.swipeEnd = function(event) { 5009 5010 var _ = this, 5011 slideCount, 5012 direction; 5013 5014 _.dragging = false; 5015 _.swiping = false; 5016 5017 if (_.scrolling) { 5018 _.scrolling = false; 5019 return false; 5020 } 5021 5022 _.interrupted = false; 5023 _.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true; 5024 5025 if ( _.touchObject.curX === undefined ) { 5026 return false; 5027 } 5028 5029 if ( _.touchObject.edgeHit === true ) { 5030 _.$slider.trigger('edge', [_, _.swipeDirection() ]); 5031 } 5032 5033 if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) { 5034 5035 direction = _.swipeDirection(); 5036 5037 switch ( direction ) { 5038 5039 case 'left': 5040 case 'down': 5041 5042 slideCount = 5043 _.options.swipeToSlide ? 5044 _.checkNavigable( _.currentSlide + _.getSlideCount() ) : 5045 _.currentSlide + _.getSlideCount(); 5046 5047 _.currentDirection = 0; 5048 5049 break; 5050 5051 case 'right': 5052 case 'up': 5053 5054 slideCount = 5055 _.options.swipeToSlide ? 5056 _.checkNavigable( _.currentSlide - _.getSlideCount() ) : 5057 _.currentSlide - _.getSlideCount(); 5058 5059 _.currentDirection = 1; 5060 5061 break; 5062
vendor: 8,680 bytes, lines 5063-5384
5063 default: 5064 5065 5066 } 5067 5068 if( direction != 'vertical' ) { 5069 5070 _.slideHandler( slideCount ); 5071 _.touchObject = {}; 5072 _.$slider.trigger('swipe', [_, direction ]); 5073 5074 } 5075 5076 } else { 5077 5078 if ( _.touchObject.startX !== _.touchObject.curX ) { 5079 5080 _.slideHandler( _.currentSlide ); 5081 _.touchObject = {}; 5082 5083 } 5084 5085 } 5086 5087 }; 5088 5089 Slick.prototype.swipeHandler = function(event) { 5090 5091 var _ = this; 5092 5093 if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) { 5094 return; 5095 } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) { 5096 return; 5097 } 5098 5099 _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? 5100 event.originalEvent.touches.length : 1; 5101 5102 _.touchObject.minSwipe = _.listWidth / _.options 5103 .touchThreshold; 5104 5105 if (_.options.verticalSwiping === true) { 5106 _.touchObject.minSwipe = _.listHeight / _.options 5107 .touchThreshold; 5108 } 5109 5110 switch (event.data.action) { 5111 5112 case 'start': 5113 _.swipeStart(event); 5114 break; 5115 5116 case 'move': 5117 _.swipeMove(event); 5118 break; 5119 5120 case 'end': 5121 _.swipeEnd(event); 5122 break; 5123 5124 } 5125 5126 }; 5127 5128 Slick.prototype.swipeMove = function(event) { 5129 5130 var _ = this, 5131 edgeWasHit = false, 5132 curLeft, swipeDirection, swipeLength, positionOffset, touches, verticalSwipeLength; 5133 5134 touches = event.originalEvent !== undefined ? event.originalEvent.touches : null; 5135 5136 if (!_.dragging || _.scrolling || touches && touches.length !== 1) { 5137 return false; 5138 } 5139 5140 curLeft = _.getLeft(_.currentSlide); 5141 5142 _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX; 5143 _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY; 5144 5145 _.touchObject.swipeLength = Math.round(Math.sqrt( 5146 Math.pow(_.touchObject.curX - _.touchObject.startX, 2))); 5147 5148 verticalSwipeLength = Math.round(Math.sqrt( 5149 Math.pow(_.touchObject.curY - _.touchObject.startY, 2))); 5150 5151 if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) { 5152 _.scrolling = true; 5153 return false; 5154 } 5155 5156 if (_.options.verticalSwiping === true) { 5157 _.touchObject.swipeLength = verticalSwipeLength; 5158 } 5159 5160 swipeDirection = _.swipeDirection(); 5161 5162 if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) { 5163 _.swiping = true; 5164 event.preventDefault(); 5165 } 5166 5167 positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1); 5168 if (_.options.verticalSwiping === true) { 5169 positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1; 5170 } 5171 5172 5173 swipeLength = _.touchObject.swipeLength; 5174 5175 _.touchObject.edgeHit = false; 5176 5177 if (_.options.infinite === false) { 5178 if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) { 5179 swipeLength = _.touchObject.swipeLength * _.options.edgeFriction; 5180 _.touchObject.edgeHit = true; 5181 } 5182 } 5183 5184 if (_.options.vertical === false) { 5185 _.swipeLeft = curLeft + swipeLength * positionOffset; 5186 } else { 5187 _.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset; 5188 } 5189 if (_.options.verticalSwiping === true) { 5190 _.swipeLeft = curLeft + swipeLength * positionOffset; 5191 } 5192 5193 if (_.options.fade === true || _.options.touchMove === false) { 5194 return false; 5195 } 5196 5197 if (_.animating === true) { 5198 _.swipeLeft = null; 5199 return false; 5200 } 5201 5202 _.setCSS(_.swipeLeft); 5203 5204 }; 5205 5206 Slick.prototype.swipeStart = function(event) { 5207 5208 var _ = this, 5209 touches; 5210 5211 _.interrupted = true; 5212 5213 if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) { 5214 _.touchObject = {}; 5215 return false; 5216 } 5217 5218 if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) { 5219 touches = event.originalEvent.touches[0]; 5220 } 5221 5222 _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX; 5223 _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY; 5224 5225 _.dragging = true; 5226 5227 }; 5228 5229 Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() { 5230 5231 var _ = this; 5232 5233 if (_.$slidesCache !== null) { 5234 5235 _.unload(); 5236 5237 _.$slideTrack.children(this.options.slide).detach(); 5238 5239 _.$slidesCache.appendTo(_.$slideTrack); 5240 5241 _.reinit(); 5242 5243 } 5244 5245 }; 5246 5247 Slick.prototype.unload = function() { 5248 5249 var _ = this; 5250 5251 $('.slick-cloned', _.$slider).remove(); 5252 5253 if (_.$dots) { 5254 _.$dots.remove(); 5255 } 5256 5257 if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) { 5258 _.$prevArrow.remove(); 5259 } 5260 5261 if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) { 5262 _.$nextArrow.remove(); 5263 } 5264 5265 _.$slides 5266 .removeClass('slick-slide slick-active slick-visible slick-current') 5267 .attr('aria-hidden', 'true') 5268 .css('width', ''); 5269 5270 }; 5271 5272 Slick.prototype.unslick = function(fromBreakpoint) { 5273 5274 var _ = this; 5275 _.$slider.trigger('unslick', [_, fromBreakpoint]); 5276 _.destroy(); 5277 5278 }; 5279 5280 Slick.prototype.updateArrows = function() { 5281 5282 var _ = this, 5283 centerOffset; 5284 5285 centerOffset = Math.floor(_.options.slidesToShow / 2); 5286 5287 if ( _.options.arrows === true && 5288 _.slideCount > _.options.slidesToShow && 5289 !_.options.infinite ) { 5290 5291 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 5292 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 5293 5294 if (_.currentSlide === 0) { 5295 5296 _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 5297 _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 5298 5299 } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) { 5300 5301 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 5302 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 5303 5304 } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) { 5305 5306 _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true'); 5307 _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false'); 5308 5309 } 5310 5311 } 5312 5313 }; 5314 5315 Slick.prototype.updateDots = function() { 5316 5317 var _ = this; 5318 5319 if (_.$dots !== null) { 5320 5321 _.$dots 5322 .find('li') 5323 .removeClass('slick-active') 5324 .end(); 5325 5326 _.$dots 5327 .find('li') 5328 .eq(Math.floor(_.currentSlide / _.options.slidesToScroll)) 5329 .addClass('slick-active'); 5330 5331 } 5332 5333 }; 5334 5335 Slick.prototype.visibility = function() { 5336 5337 var _ = this; 5338 5339 if ( _.options.autoplay ) { 5340 5341 if ( document[_.hidden] ) { 5342 5343 _.interrupted = true; 5344 5345 } else { 5346 5347 _.interrupted = false; 5348 5349 } 5350 5351 } 5352 5353 }; 5354 5355 $.fn.slick = function() { 5356 var _ = this, 5357 opt = arguments[0], 5358 args = Array.prototype.slice.call(arguments, 1), 5359 l = _.length, 5360 i, 5361 ret; 5362 for (i = 0; i < l; i++) { 5363 if (typeof opt == 'object' || typeof opt == 'undefined') 5364 _[i].slick = new Slick(_[i], opt); 5365 else 5366 ret = _[i].slick[opt].apply(_[i].slick, args); 5367 if (typeof ret != 'undefined') return ret; 5368 } 5369 return _; 5370 }; 5371 5372})); 5373 5374})(jQuery1_11_0); 5375(function ($) { 5376 var jQuery = $; 5377 $(function() { 5378 5379 // ë©ì¸ ì¬ë¼ì´ë ë°°ë ëì 5380 $('.main-slide-banner').slick({ 5381 infinite: true, 5382 speed: 1000, 5383 dots: true, 5384 fade: true,
5385 arrows: false, 5386 autoplay: true, 5387 autoplaySpeed: 5000, 5388 }); 5389 5390 // ìí ì¬ë¼ì´ë ëì 5391 $('.circle-product-list').carouFredSel({ 5392 auto: false, 5393 prev: '.circle-slide-prev', 5394 next: '.circle-slide-next', 5395 mousewheel: true, 5396 scroll: 1, 5397 swipe: { 5398 onMouse: true, 5399 onTouch: true 5400 } 5401 }); 5402 5403 var $slideWidth = $('.main-slide-banner-wrap ul>li').width(); 5404 $('.main-slide-banner-wrap ul>li>a').css({'margin-left':-$slideWidth / 2,'width':$slideWidth}); 5405 5406 $(window).resize(function() { 5407 var $slideWidth = $('.main-slide-banner-wrap ul>li').width(); 5408 $('.main-slide-banner-wrap ul>li>a').css({'margin-left':-$slideWidth / 2,'width':$slideWidth}); 5409 }); 5410 5411 // ì¸ì¤íê·¸ë¨ ì°ë 5412 var tocken = "4273069667.d90570a.bed13eedd8ba4a8ea2ad4502cf60fd1a"; /* Access Tocken ì ë ¥ */ 5413 var count = "16"; 5414 5415 $.ajax({ 5416 url: "https://api.instagram.com/v1/users/self/media/recent/?access_token=" + tocken + "&count=" + count, 5417 dataType: 'jsonp', 5418 type: 'GET', 5419 //data: {client_id: clientid, count: count}, 5420 success: function (response) { 5421 console.log(response); 5422 for (x in response.data) { 5423 var insta = '<div class="insta-box">'; 5424 insta += "<a target='_blank' href='" + response.data[x].link + "'>"; 5425 insta += "<div class'image-layer'>"; 5426 //insta += "<img src='" + response.data[x].images.thumbnail.url + "'>"; 5427 insta += "<img src='"+ response.data[x].images.standard_resolution.url +"'>"; 5428 insta += "</div>"; 5429 insta += "</a>"; 5430 insta += "</div>"; 5431 $(".instagram-inner").append(insta); 5432 5433 //$('ul').append('<li><img src="'+result.data[x].images.standard_resolution.url+'"></li>'); 5434 } 5435 }, 5436 error: function (response) { 5437 console.log(response); 5438 } 5439 }); 5440 5441 }); 5442 5443})(jQuery1_11_0); 5444 5445 5446 5447//https ë¡ ì´ë 5448if (location.protocol === 'http:' && location.host.indexOf('cafe24.com') === -1) { 5449 var sUrl = 'https://' + location.host + location.pathname + location.search; 5450 5451 window.location.replace(sUrl); 5452} 5453 5454//https ë¡ ì´ë 5455//if (EC_COMMON_UTIL.getProtocol() === 'https' && location.host.indexOf('cafe24.com') === -1) { 5456 // var sUrl = 'http://' + location.host + location.pathname + location.search; 5457 5458 5459 //window.location.replace(sUrl); 5460// } 5461 5462 5463 5464 5465//window popup script 5466function winPop(url) { 5467 window.open(url, "popup", "width=300,height=300,left=10,top=10,resizable=no,scrollbars=no"); 5468} 5469/** 5470 * document.location.href split 5471 * return array Param 5472 */ 5473function getQueryString(sKey) 5474{ 5475 var sQueryString = document.location.search.substring(1); 5476 var aParam = {}; 5477 5478 if (sQueryString) { 5479 var aFields = sQueryString.split("&"); 5480 var aField = []; 5481 for (var i=0; i<aFields.length; i++) { 5482 aField = aFields[i].split('='); 5483 aParam[aField[0]] = aField[1]; 5484 } 5485 } 5486 5487 aParam.page = aParam.page ? aParam.page : 1; 5488 return sKey ? aParam[sKey] : aParam; 5489}; 5490 5491$(document).ready(function(){ 5492 // tab 5493 $.eTab = function(ul){ 5494 $(ul).find('a').click(function(){ 5495 var _li = $(this).parent('li').addClass('selected').siblings().removeClass('selected'), 5496 _target = $(this).attr('href'), 5497 _siblings = '.' + $(_target).attr('class'); 5498 $(_target).show().siblings(_siblings).hide(); 5499 return false 5500 }); 5501 } 5502 if ( window.call_eTab ) { 5503 call_eTab(); 5504 }; 5505}); 5506(function($){ 5507$.fn.extend({ 5508 center: function() { 5509 this.each(function() { 5510 var 5511 $this = $(this), 5512 $w = $(window); 5513 $this.css({ 5514 position: "absolute", 5515 top: ~~(($w.height() - $this.outerHeight()) / 2) + $w.scrollTop() + "px", 5516 left: ~~(($w.width() - $this.outerWidth()) / 2) + $w.scrollLeft() + "px" 5517 }); 5518 }); 5519 return this; 5520 } 5521}); 5522$(function() { 5523 var $container = function(){/* 5524<div id="modalContainer"> 5525 <iframe id="modalContent" scroll="0" scrolling="no" frameBorder="0"></iframe> 5526</div>'); 5527*/}.toString().slice(14,-3); 5528 $('body') 5529 .append($('<div id="modalBackpanel"></div>')) 5530 .append($($container)); 5531 function closeModal () { 5532 $('#modalContainer').hide(); 5533 $('#modalBackpanel').hide(); 5534 } 5535 $('#modalBackpanel').click(closeModal); 5536 zoom = function ($piProductNo, $piCategoryNo, $piDisplayGroup) { 5537 var $url = '/product/image_zoom.html?product_no=' + $piProductNo + '&cate_no=' + $piCategoryNo + '&display_group=' + $piDisplayGroup; 5538 $('#modalContent').attr('src', $url); 5539 $('#modalContent').bind("load",function(){ 5540 $(".header .close",this.contentWindow.document.body).bind("click", closeModal); 5541 }); 5542 $('#modalBackpanel').css({width:$("body").width(),height:$("body").height(),opacity:.4}).show(); 5543 $('#modalContainer').center().show(); 5544 } 5545}); 5546})(jQuery); 5547 5548 5549 5550$(document).ready(function(){ 5551 if (typeof(EC_SHOP_MULTISHOP_SHIPPING) != "undefined") { 5552 var sShippingCountryCode4Cookie = 'shippingCountryCode'; 5553 var bShippingCountryProc = false;
5554 5555 // ë°°ì¡êµê° ì í ì¤ì ì´ ì¬ì©ìí¨ì´ë©´ ì¨ê¹ 5556 if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) { 5557 $('.xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist').hide(); 5558 $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptioncountry').hide(); 5559 } else { 5560 $('.thumb .xans-layout-multishoplistitem').hide(); 5561 var aShippingCountryCode = document.cookie.match('(^|;) ?'+sShippingCountryCode4Cookie+'=([^;]*)(;|$)'); 5562 if (typeof(aShippingCountryCode) != 'undefined' && aShippingCountryCode != null && aShippingCountryCode.length > 2) { 5563 var sShippingCountryValue = aShippingCountryCode[2]; 5564 } 5565 5566 // query stringì¼ë¡ ëì´ ì¨ ë°°ì¡êµê° ê°ì´ ìë¤ë©´, ê·¸ ê°ì ì ì©í¨ 5567 var aHrefCountryValue = decodeURIComponent(location.href).split("/?country="); 5568 5569 if (aHrefCountryValue.length == 2) { 5570 var sShippingCountryValue = aHrefCountryValue[1]; 5571 } 5572 5573 // ë©ì¸ íì´ì§ìì êµê°ì íì ìí ê²½ì°, ê·¸ ì¸ì íì´ì§ìì ì í ë ê°ì´ ì ëì¤ë íì ì²ë¦¬ 5574 if (location.href.split("/").length != 4 && $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val()) { 5575 $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join("")); 5576 5577 if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) { 5578 $("#f_country").val($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val()); 5579 } 5580 } 5581 if (typeof(sShippingCountryValue) != "undefined" && sShippingCountryValue != "" && sShippingCountryValue != null) { 5582 sShippingCountryValue = sShippingCountryValue.split("#")[0]; 5583 var bShippingCountryProc = true; 5584 5585 $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue); 5586 $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join("")); 5587 var expires = new Date(); 5588 expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30ì¼ê° ì¿ í¤ ì ì§ 5589 document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString(); 5590 if ($("#f_country").length > 0 && location.href.indexOf("orderform.html") > -1) { 5591 $("#f_country").val(sShippingCountryValue).change();; 5592 } 5593 } 5594 } 5595 // ì¸ì´ì í ì¤ì ì´ ì¬ì©ìí¨ì´ë©´ ì¨ê¹ 5596 if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingLanguageSelection === false) { 5597 $('.xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist').hide(); 5598 $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption .xans-layout-multishoplistmultioptionlanguage').hide(); 5599 } else { 5600 $('.thumb .xans-layout-multishoplistitem').hide(); 5601 } 5602 5603 // ë°°ì¡êµê° ë° ì¸ì´ ì¤ì ì´ ë ë¤ ì¬ì©ìí¨ì´ë©´ ì¨ê¹ 5604 if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShipping === false) { 5605 $(".xans-layout-multishopshipping").hide(); 5606 $('.xans-layout-multishoplist .xans-layout-multishoplistmultioption').hide(); 5607 } else if (bShippingCountryProc === false && location.href.split("/").length == 4) { // ë°°ì¡êµê° ê°ì ì²ë¦¬í ì ì´ ìê³ , ë©ì¸íë©´ì¼ ëë§ ì í ë ì´ì´ë¥¼ ëì 5608 var sShippingCountryValue = $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(); 5609 $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val(sShippingCountryValue); 5610 $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a .ship span").text(" : "+$(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist option:selected").text().split("SHIPPING TO : ").join("")); 5611 // ë°°ì¡êµê° ì íì ì¬ì©í´ì¼ ë ì´ì´ë¥¼ ë³´ì´ê² í¨ 5612 if (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === true) { 5613 $(".xans-layout-multishopshipping").show(); 5614 } 5615 } 5616 5617 $(".xans-layout-multishopshipping .close").bind("click", function() { 5618 $(".xans-layout-multishopshipping").hide(); 5619 }); 5620 5621 $(".xans-layout-multishopshipping .ec-base-button a").bind("click", function() { 5622 var expires = new Date(); 5623 expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30ì¼ê° ì¿ í¤ ì ì§ 5624 document.cookie = sShippingCountryCode4Cookie+'=' + $(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val() +';path=/'+ ';expires=' + expires.toUTCString(); 5625 5626 // ëë©ì¸ 문ì ë¡ ì¿ í¤ë¡ ë°°ì¡êµê° ì¤ì ì´ ì ëë ê²½ì°ë¥¼ ìí´ query stringì¼ë¡ ë°°ì¡êµê° ê°
5626ì ëê¹ 5627 var sQuerySting = (EC_SHOP_MULTISHOP_SHIPPING.bMultishopShippingCountrySelection === false) ? "" : "/?country="+encodeURIComponent($(".xans-layout-multishopshipping .xans-layout-multishopshippingcountrylist").val()); 5628 5629 location.href = '//'+$(".xans-layout-multishopshipping .xans-layout-multishopshippinglanguagelist").val()+sQuerySting; 5630 }); 5631 $(".xans-layout-multishoplist .xans-layout-multishoplistmultioption a").bind("click", function() { 5632 $(".xans-layout-multishopshipping").show(); 5633 }); 5634 } 5635}); 5636
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.