{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./sitecore/Feature/PageContent/code/Assets/PageContent/js/careers.js","webpack:///./sitecore/Feature/PageContent/code/Assets/PageContent/js/lib/bxslider.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","careers","this","dom","$","window","$window","$contentSlider","$awardsSlider","$jobsearchBtn","length","init","jobSearch","boxCountToDisplay","parseInt","fetchParam","disableAnimation","animationInterval","showDots","tileWidth","tileMargin","$param","defVal","val","innerWidth","bxSlider","slideWidth","minSlides","maxSlides","moveSlides","slideMargin","pause","speed","pager","hideControlOnEnd","controls","touchEnabled","auto","nextText","prevText","on","document","getElementById","submit","addEventListener","defaults","slideSelector","infiniteLoop","easing","startSlide","randomStart","captions","ticker","tickerHover","adaptiveHeight","adaptiveHeightSpeed","video","useCSS","preloadImages","responsive","slideZIndex","wrapperClass","swipeThreshold","oneToOneTouch","preventDefaultSwipeX","preventDefaultSwipeY","ariaLive","ariaHidden","keyboardEnabled","pagerType","pagerShortSeparator","pagerSelector","buildPager","pagerCustom","nextSelector","prevSelector","autoControls","startText","stopText","autoControlsCombine","autoControlsSelector","autoStart","autoDirection","stopAutoOnClick","autoHover","autoDelay","autoSlideForOnePage","shrinkItems","onSliderLoad","onSlideBefore","onSlideAfter","onSlideNext","onSlidePrev","onSliderResize","fn","options","each","slider","el","windowWidth","width","windowHeight","height","data","settings","extend","children","Math","floor","random","active","index","carousel","minThreshold","maxThreshold","working","interval","animProp","usingCSS","div","createElement","props","undefined","style","cssPrefix","replace","toLowerCase","attr","setup","preloadSelector","eq","wrap","viewport","parent","loader","prepend","css","position","overflow","maxWidth","getViewportMaxWidth","float","listStyle","getSlideWidth","zIndex","display","appendCaptions","last","getPagerQty","fitVids","appendControls","appendControlsAuto","appendPager","after","loadElements","start","selector","callback","total","find","count","one","complete","trigger","slice","sliceAppend","clone","addClass","slicePrepend","append","remove","setSlidePosition","getViewportHeight","redrawSlider","initialized","resizeWindow","initAuto","initTicker","updatePagerActive","updateDirectionControls","initTouch","keydown","keyPress","currentIndex","getMoveBy","add","outerHeight","max","apply","map","parseFloat","newElWidth","wrapWidth","ceil","getNumberSlidesShowing","slidesShowing","childWidth","first","pagerQty","breakPoint","counter","lastChild","lastShowingIndex","setPositionProperty","left","outerWidth","top","type","duration","params","animateObj","propValue","e","target","is","unbind","updateAfterSlideTransition","resetValue","tickerLoop","animate","populatePager","pagerHtml","linkContent","isFunction","pagerEl","html","clickPagerBind","next","prev","clickNextBind","clickPrevBind","directionEl","stop","autoEl","clickStartBind","clickStopBind","updateAutoControls","title","preventDefault","hasClass","stopAuto","goToNextSlide","goToPrevSlide","startAuto","pagerLink","pagerIndex","currentTarget","goToSlide","slideIndex","len","removeClass","oldIndex","state","setTimeout","focus","blur","hover","autoPaused","transform","idx","ratio","newSpeed","totalDimens","startPosition","split","abs","resumeSpeed","animateProperty","reset","activeElementTag","activeElement","tagName","RegExp","exec","win","scrollTop","scrollLeft","bounds","offset","right","bottom","isOnScreen","keyCode","touch","x","y","end","onTouchStart","originalPos","orig","originalEvent","touchPoints","changedTouches","pageX","pageY","setPointerCapture","pointerId","onTouchMove","onTouchEnd","onPointerCancel","releasePointerCapture","xMovement","yMovement","change","distance","windowWidthNew","windowHeightNew","applyAriaHiddenAttributes","startVisibleIndex","numberOfSlidesShowing","direction","requestEl","performTransition","moveBy","setSlideIndex","filter","fadeOut","fadeIn","preventControlUpdate","setInterval","clearInterval","getCurrentSlide","getCurrentSlideElement","getSlideElement","getSlideCount","isWorking","destroySlider","removeAttr","unwrap","removeData","reloadSlider"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,G,+BClFrD,oDAEe,MAAMC,EACjB,cACIC,KAAKC,IAAM,CACPC,EAAGC,OAAOD,EACVE,QAASF,EAAEC,QACXE,eAAgBH,EAAE,qBAClBI,cAAeJ,EAAE,oBACjBK,cAAeL,EAAE,qBAGjBF,KAAKC,IAAIK,cAAcE,QAAUR,KAAKC,IAAII,eAAeG,SACzDR,KAAKS,OAELT,KAAKC,IAAIM,cAAcC,OAAS,GAChCR,KAAKU,YAIb,OAEI,IAAIC,EAAoBC,SAASC,EAAWX,EAAE,sBAAuB,MACjEY,EAAkE,QAA9CD,EAAWX,EAAE,qBAAsB,QACvDa,EAAoBH,SAASC,EAAWX,EAAE,sBAAuB,SACjEc,EAAkD,QAAtCH,EAAWX,EAAE,aAAc,QACvCe,EAAYL,SAASC,EAAWX,EAAE,cAAe,QACjDgB,EAAaN,SAASC,EAAWX,EAAE,eAAgB,OAEvD,SAASW,EAAWM,EAAQC,GACxB,OAAQD,EAAOX,OAAS,GAAKW,EAAOE,MAAMb,OAAS,EAAKW,EAAOE,MAAQD,EAEvEjB,OAAOmB,WAAa,KACpBtB,KAAKC,IAAII,eAAekB,SAAS,CAC7BrC,KAAM,aACNsC,WAAYP,EACZQ,UAAW,EACXC,UAAW,EACXC,WAAY,EACZC,YAAaV,EACbW,MAAOd,EACPe,MAAQhB,EAAmB,EAAI,IAC/BiB,MAAOf,EACPgB,kBAAkB,EAClBC,UAAU,EACVC,cAAc,IAItBlC,KAAKC,IAAIK,cAAciB,SAAS,CAC5BrC,KAAM,aACNsC,WAAYP,EACZQ,UAAW,EACXC,UAAWf,EACXgB,WAAY,EACZC,YAAaV,EACbW,MAAOd,EACPe,MAAQhB,EAAmB,EAAI,IAC/BiB,MAAOf,EACPmB,MAAM,EACNH,kBAAkB,EAClBI,SAAU,WACVC,SAAU,WACVH,cAAc,IAItB,YAEIlC,KAAKC,IAAIM,cAAc+B,GAAG,SAAS,WAC/BC,SAASC,eAAe,cAAcC,aAKlDF,SAASG,iBAAiB,mBAAoB,IAAM,IAAI3C,I,cCpExD,IAAI4C,EAAW,CAGXzD,KAAM,aACN0D,cAAe,GACfC,cAAc,EACdb,kBAAkB,EAClBF,MAAO,IACPgB,OAAQ,KACRlB,YAAa,EACbmB,WAAY,EACZC,aAAa,EACbC,UAAU,EACVC,QAAQ,EACRC,aAAa,EACbC,gBAAgB,EAChBC,oBAAqB,IACrBC,OAAO,EACPC,QAAQ,EACRC,cAAe,UACfC,YAAY,EACZC,YAAa,GACbC,aAAc,aAGdzB,cAAc,EACd0B,eAAgB,GAChBC,eAAe,EACfC,sBAAsB,EACtBC,sBAAsB,EAGtBC,UAAU,EACVC,YAAY,EAGZC,iBAAiB,EAGjBnC,OAAO,EACPoC,UAAW,OACXC,oBAAqB,MACrBC,cAAe,KACfC,WAAY,KACZC,YAAa,KAGbtC,UAAU,EACVG,SAAU,OACVC,SAAU,OACVmC,aAAc,KACdC,aAAc,KACdC,cAAc,EACdC,UAAW,QACXC,SAAU,OACVC,qBAAqB,EACrBC,qBAAsB,KAGtB3C,MAAM,EACNN,MAAO,IACPkD,WAAW,EACXC,cAAe,OACfC,iBAAiB,EACjBC,WAAW,EACXC,UAAW,EACXC,qBAAqB,EAGrB3D,UAAW,EACXC,UAAW,EACXC,WAAY,EACZH,WAAY,EACZ6D,aAAa,EAGbC,aAAc,WAAc,OAAO,GACnCC,cAAe,WAAc,OAAO,GACpCC,aAAc,WAAc,OAAO,GACnCC,YAAa,WAAc,OAAO,GAClCC,YAAa,WAAc,OAAO,GAClCC,eAAgB,WAAc,OAAO,IAGzCzF,EAAE0F,GAAGrE,SAAW,SAAUsE,GAEtB,GAAoB,IAAhB7F,KAAKQ,OACL,OAAOR,KAIX,GAAIA,KAAKQ,OAAS,EAId,OAHAR,KAAK8F,MAAK,WACN5F,EAAEF,MAAMuB,SAASsE,MAEd7F,KAIX,IAAI+F,EAAS,GAETC,EAAKhG,KAELiG,EAAc/F,EAAEC,QAAQ+F,QACxBC,EAAejG,EAAEC,QAAQiG,SAG7B,IAAIlG,EAAE8F,GAAIK,KAAK,YAAf,CAWA,IAAI5F,EAAO,WAEHP,EAAE8F,GAAIK,KAAK,cAEfN,EAAOO,SAAWpG,EAAEqG,OAAO,GAAI5D,EAAUkD,GAEzCE,EAAOO,SAAS9E,WAAaZ,SAASmF,EAAOO,SAAS9E,YAEtDuE,EAAOS,SAAWR,EAAGQ,SAAST,EAAOO,SAAS1D,eAE1CmD,EAAOS,SAAShG,OAASuF,EAAOO,SAAS7E,YAAasE,EAAOO,SAAS7E,UAAYsE,EAAOS,SAAShG,QAClGuF,EAAOS,SAAShG,OAASuF,EAAOO,SAAS5E,YAAaqE,EAAOO,SAAS5E,UAAYqE,EAAOS,SAAShG,QAElGuF,EAAOO,SAAStD,cAAe+C,EAAOO,SAASvD,WAAa0D,KAAKC,MAAMD,KAAKE,SAAWZ,EAAOS,SAAShG,SAE3GuF,EAAOa,OAAS,CAAEC,MAAOd,EAAOO,SAASvD,YAEzCgD,EAAOe,SAAWf,EAAOO,SAAS7E,UAAY,GAAKsE,EAAOO,SAAS5E,UAAY,EAE3EqE,EAAOe,WAAYf,EAAOO,SAAS9C,cAAgB,OAGvDuC,EAAOgB,aAAgBhB,EAAOO,SAAS7E,UAAYsE,EAAOO,SAAS9E,YAAgBuE,EAAOO,SAAS7E,UAAY,GAAKsE,EAAOO,SAAS1E,YACpImE,EAAOiB,aAAgBjB,EAAOO,SAAS5E,UAAYqE,EAAOO,SAAS9E,YAAgBuE,EAAOO,SAAS5E,UAAY,GAAKqE,EAAOO,SAAS1E,YAEpImE,EAAOkB,SAAU,EAEjBlB,EAAO9D,SAAW,GAElB8D,EAAOmB,SAAW,KAElBnB,EAAOoB,SAAoC,aAAzBpB,EAAOO,SAASpH,KAAsB,MAAQ,OAEhE6G,EAAOqB,SAAWrB,EAAOO,SAAS/C,QAAmC,SAAzBwC,EAAOO,SAASpH,MAAoB,WAM5E,IAJA,IAAImI,EAAM9E,SAAS+E,cAAc,OAE7BC,EAAQ,CAAC,oBAAqB,iBAAkB,eAAgB,iBAE3DxJ,EAAI,EAAGA,EAAIwJ,EAAM/G,OAAQzC,IAC9B,QAA4ByJ,IAAxBH,EAAII,MAAMF,EAAMxJ,IAGhB,OAFAgI,EAAO2B,UAAYH,EAAMxJ,GAAG4J,QAAQ,cAAe,IAAIC,cACvD7B,EAAOoB,SAAW,IAAMpB,EAAO2B,UAAY,cACpC,EAGf,OAAO,EAboE,GAgBlD,aAAzB3B,EAAOO,SAASpH,OAAuB6G,EAAOO,SAAS5E,UAAYqE,EAAOO,SAAS7E,WAEvFuE,EAAGK,KAAK,YAAaL,EAAG6B,KAAK,UAC7B7B,EAAGQ,SAAST,EAAOO,SAAS1D,eAAekD,MAAK,WAC5C5F,EAAEF,MAAMqG,KAAK,YAAanG,EAAEF,MAAM6H,KAAK,aAI3CC,MAMAA,EAAQ,WACR,IAAIC,EAAkBhC,EAAOS,SAASwB,GAAGjC,EAAOO,SAASvD,YAGzDiD,EAAGiC,KAAK,eAAiBlC,EAAOO,SAAS3C,aAAe,2CAExDoC,EAAOmC,SAAWlC,EAAGmC,SAGjBpC,EAAOO,SAAStC,WAAa+B,EAAOO,SAASpD,QAC7C6C,EAAOmC,SAASL,KAAK,YAAa,UAGtC9B,EAAOqC,OAASlI,EAAE,8BAClB6F,EAAOmC,SAASG,QAAQtC,EAAOqC,QAG/BpC,EAAGsC,IAAI,CACHpC,MAAgC,eAAzBH,EAAOO,SAASpH,KAAkD,IAAzB6G,EAAOS,SAAShG,OAAgB,IAAO,IAAM,OAC7F+H,SAAU,aAGVxC,EAAOqB,UAAYrB,EAAOO,SAASxD,OACnCkD,EAAGsC,IAAI,IAAMvC,EAAO2B,UAAY,8BAA+B3B,EAAOO,SAASxD,QAEvEiD,EAAOO,SAASxD,SACxBiD,EAAOO,SAASxD,OAAS,SAG7BiD,EAAOmC,SAASI,IAAI,CAChBpC,MAAO,OACPsC,SAAU,SACVD,SAAU,aAEdxC,EAAOmC,SAASC,SAASG,IAAI,CACzBG,SAAUC,MAGd3C,EAAOS,SAAS8B,IAAI,CAChBK,MAAgC,eAAzB5C,EAAOO,SAASpH,KAAwB,OAAS,OACxD0J,UAAW,OACXL,SAAU,aAGdxC,EAAOS,SAAS8B,IAAI,QAASO,KAEA,eAAzB9C,EAAOO,SAASpH,MAAyB6G,EAAOO,SAAS1E,YAAc,GAAKmE,EAAOS,SAAS8B,IAAI,cAAevC,EAAOO,SAAS1E,aACtG,aAAzBmE,EAAOO,SAASpH,MAAuB6G,EAAOO,SAAS1E,YAAc,GAAKmE,EAAOS,SAAS8B,IAAI,eAAgBvC,EAAOO,SAAS1E,aAErG,SAAzBmE,EAAOO,SAASpH,OAChB6G,EAAOS,SAAS8B,IAAI,CAChBC,SAAU,WACVO,OAAQ,EACRC,QAAS,SAGbhD,EAAOS,SAASwB,GAAGjC,EAAOO,SAASvD,YAAYuF,IAAI,CAAEQ,OAAQ/C,EAAOO,SAAS5C,YAAaqF,QAAS,WAGvGhD,EAAO9D,SAAS+D,GAAK9F,EAAE,+BAEnB6F,EAAOO,SAASrD,UAAY+F,IAEhCjD,EAAOa,OAAOqC,KAAOlD,EAAOO,SAASvD,aAAemG,IAAgB,EAEhEnD,EAAOO,SAAShD,OAAS0C,EAAGmD,WACM,QAAlCpD,EAAOO,SAAS9C,eAA2BuC,EAAOO,SAASpD,UAAU6E,EAAkBhC,EAAOS,UAE7FT,EAAOO,SAASpD,OAWjB6C,EAAOO,SAASvE,OAAQ,GATpBgE,EAAOO,SAASrE,UAAYmH,IAE5BrD,EAAOO,SAASnE,MAAQ4D,EAAOO,SAAS5B,cAAgB2E,IAExDtD,EAAOO,SAASvE,OAASuH,KAEzBvD,EAAOO,SAASrE,UAAY8D,EAAOO,SAAS5B,cAAgBqB,EAAOO,SAASvE,QAASgE,EAAOmC,SAASqB,MAAMxD,EAAO9D,SAAS+D,KAKnIwD,EAAazB,EAAiB0B,IAG9BD,EAAe,SAAUE,EAAUC,GACnC,IAAIC,EAAQF,EAASG,KAAK,6BAA6BrJ,OACnDsJ,EAAQ,EACE,IAAVF,EAIJF,EAASG,KAAK,6BAA6B/D,MAAK,WAC5C5F,EAAEF,MAAM+J,IAAI,cAAc,aAChBD,IAAUF,GAASD,OAC1B7D,MAAK,WACA9F,KAAKgK,UAAY9J,EAAEF,MAAMiK,QAAQ,cAPzCN,KAeJF,EAAQ,WAER,GAAI1D,EAAOO,SAASzD,cAAyC,SAAzBkD,EAAOO,SAASpH,OAAoB6G,EAAOO,SAASpD,OAAQ,CAC5F,IAAIgH,EAAiC,aAAzBnE,EAAOO,SAASpH,KAAsB6G,EAAOO,SAAS7E,UAAYsE,EAAOO,SAAS5E,UAC1FyI,EAAcpE,EAAOS,SAAS0D,MAAM,EAAGA,GAAOE,OAAM,GAAMC,SAAS,YACnEC,EAAevE,EAAOS,SAAS0D,OAAOA,GAAOE,OAAM,GAAMC,SAAS,YAClEtE,EAAOO,SAASrC,aAChBkG,EAAYtC,KAAK,eAAe,GAChCyC,EAAazC,KAAK,eAAe,IAErC7B,EAAGuE,OAAOJ,GAAa9B,QAAQiC,GAGnCvE,EAAOqC,OAAOoC,SAEdC,IAE6B,aAAzB1E,EAAOO,SAASpH,OAAuB6G,EAAOO,SAASlD,gBAAiB,GAE5E2C,EAAOmC,SAAS9B,OAAOsE,KAEvB1E,EAAG2E,eAEH5E,EAAOO,SAAShB,aAAapH,KAAK8H,EAAID,EAAOa,OAAOC,OAEpDd,EAAO6E,aAAc,EAEjB7E,EAAOO,SAAS7C,YAAcvD,EAAEC,QAAQZ,KAAK,SAAUsL,GAEvD9E,EAAOO,SAASnE,MAAQ4D,EAAOO,SAASvB,YAAcmE,IAAgB,GAAKnD,EAAOO,SAASlB,sBAAwB0F,IAEnH/E,EAAOO,SAASpD,QAAU6H,IAE1BhF,EAAOO,SAASvE,OAASiJ,EAAkBjF,EAAOO,SAASvD,YAE3DgD,EAAOO,SAASrE,UAAYgJ,IAE5BlF,EAAOO,SAASpE,eAAiB6D,EAAOO,SAASpD,QAAUgI,IAE3DnF,EAAOO,SAASpC,kBAAoB6B,EAAOO,SAASpD,QACpDhD,EAAEqC,UAAU4I,QAAQC,IAOxBV,EAAoB,WACpB,IAAItE,EAAS,EAETI,EAAWtG,IAEf,GAA6B,aAAzB6F,EAAOO,SAASpH,MAAwB6G,EAAOO,SAASlD,eAIxD,GAAK2C,EAAOe,SAGL,CAEH,IAAIuE,EAA8C,IAA/BtF,EAAOO,SAAS3E,WAAmBoE,EAAOa,OAAOC,MAAQd,EAAOa,OAAOC,MAAQyE,IAIlG,IAFA9E,EAAWT,EAAOS,SAASwB,GAAGqD,GAEzBtN,EAAI,EAAGA,GAAKgI,EAAOO,SAAS5E,UAAY,EAAG3D,IAGxCyI,EADA6E,EAAetN,GAAKgI,EAAOS,SAAShG,OACzBgG,EAAS+E,IAAIxF,EAAOS,SAASwB,GAAGjK,EAAI,IAEpCyI,EAAS+E,IAAIxF,EAAOS,SAASwB,GAAGqD,EAAetN,SAblEyI,EAAWT,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,YAJhDL,EAAWT,EAAOS,SA6CtB,MAtB6B,aAAzBT,EAAOO,SAASpH,MAChBsH,EAASV,MAAK,SAAUe,GACpBT,GAAUlG,EAAEF,MAAMwL,iBAGlBzF,EAAOO,SAAS1E,YAAc,IAC9BwE,GAAUL,EAAOO,SAAS1E,aAAemE,EAAOO,SAAS7E,UAAY,KAIzE2E,EAASK,KAAKgF,IAAIC,MAAMjF,KAAMD,EAASmF,KAAI,WACvC,OAAOzL,EAAEF,MAAMwL,aAAY,MAC5B5M,OAGmC,eAAtCmH,EAAOmC,SAASI,IAAI,cACpBlC,GAAUwF,WAAW7F,EAAOmC,SAASI,IAAI,gBAAkBsD,WAAW7F,EAAOmC,SAASI,IAAI,mBACtFsD,WAAW7F,EAAOmC,SAASI,IAAI,qBAAuBsD,WAAW7F,EAAOmC,SAASI,IAAI,wBAC5C,gBAAtCvC,EAAOmC,SAASI,IAAI,gBAC3BlC,GAAUwF,WAAW7F,EAAOmC,SAASI,IAAI,gBAAkBsD,WAAW7F,EAAOmC,SAASI,IAAI,oBAGvFlC,GAMPsC,EAAsB,WACtB,IAAIxC,EAAQ,OAQZ,OAPIH,EAAOO,SAAS9E,WAAa,IAEzB0E,EADyB,eAAzBH,EAAOO,SAASpH,KACP6G,EAAOO,SAAS5E,UAAYqE,EAAOO,SAAS9E,YAAgBuE,EAAOO,SAAS5E,UAAY,GAAKqE,EAAOO,SAAS1E,YAE9GmE,EAAOO,SAAS9E,YAGzB0E,GAMP2C,EAAgB,WAChB,IAAIgD,EAAa9F,EAAOO,SAAS9E,WAC7BsK,EAAY/F,EAAOmC,SAAShC,QAEhC,GAAmC,IAA/BH,EAAOO,SAAS9E,YACfuE,EAAOO,SAAS9E,WAAasK,IAAc/F,EAAOe,UAC1B,aAAzBf,EAAOO,SAASpH,KAChB2M,EAAaC,OAEV,GAAI/F,EAAOO,SAAS5E,UAAY,GAA8B,eAAzBqE,EAAOO,SAASpH,KAAuB,CAC/E,GAAI4M,EAAY/F,EAAOiB,aACnB,OAAO6E,EACAC,EAAY/F,EAAOgB,aAC1B8E,GAAcC,EAAa/F,EAAOO,SAAS1E,aAAemE,EAAOO,SAAS7E,UAAY,IAAOsE,EAAOO,SAAS7E,UACtGsE,EAAOO,SAASjB,cACvBwG,EAAapF,KAAKC,OAAOoF,EAAY/F,EAAOO,SAAS1E,aAAgB6E,KAAKsF,MAAMD,EAAY/F,EAAOO,SAAS1E,cAAgBiK,EAAa9F,EAAOO,SAAS1E,cAAiBmE,EAAOO,SAAS1E,cAGlM,OAAOiK,GAMPG,EAAyB,WACzB,IAAIC,EAAgB,EAChBC,EAAa,KAkBjB,MAjB6B,eAAzBnG,EAAOO,SAASpH,MAAyB6G,EAAOO,SAAS9E,WAAa,EAElEuE,EAAOmC,SAAShC,QAAUH,EAAOgB,aACjCkF,EAAgBlG,EAAOO,SAAS7E,UAEzBsE,EAAOmC,SAAShC,QAAUH,EAAOiB,aACxCiF,EAAgBlG,EAAOO,SAAS5E,WAGhCwK,EAAanG,EAAOS,SAAS2F,QAAQjG,QAAUH,EAAOO,SAAS1E,YAC/DqK,EAAgBxF,KAAKC,OAAOX,EAAOmC,SAAShC,QACxCH,EAAOO,SAAS1E,aAAesK,IAGP,aAAzBnG,EAAOO,SAASpH,OACvB+M,EAAgBlG,EAAOO,SAAS7E,WAE7BwK,GAMP/C,EAAc,WACd,IAAIkD,EAAW,EACXC,EAAa,EACbC,EAAU,EAEd,GAAIvG,EAAOO,SAAS3E,WAAa,EAC7B,GAAIoE,EAAOO,SAASzD,aAChBuJ,EAAW3F,KAAKsF,KAAKhG,EAAOS,SAAShG,OAAS8K,UAG9C,KAAOe,EAAatG,EAAOS,SAAShG,UAC9B4L,EACFC,EAAaC,EAAUN,IACvBM,GAAWvG,EAAOO,SAAS3E,YAAcqK,IAA2BjG,EAAOO,SAAS3E,WAAaqK,SAKzGI,EAAW3F,KAAKsF,KAAKhG,EAAOS,SAAShG,OAASwL,KAElD,OAAOI,GAMPd,EAAY,WAEZ,OAAIvF,EAAOO,SAAS3E,WAAa,GAAKoE,EAAOO,SAAS3E,YAAcqK,IACzDjG,EAAOO,SAAS3E,WAGpBqK,KAMPvB,EAAmB,WACnB,IAAIlC,EAAUgE,EAAWC,EAErBzG,EAAOS,SAAShG,OAASuF,EAAOO,SAAS5E,WAAaqE,EAAOa,OAAOqC,OAASlD,EAAOO,SAASzD,aAChE,eAAzBkD,EAAOO,SAASpH,MAGhBqJ,GADAgE,EAAYxG,EAAOS,SAASyC,QACPV,WAErBkE,IAAsBlE,EAASmE,MAAQ3G,EAAOmC,SAAShC,QAAUqG,EAAUI,eAAgB,QAAS,IACpE,aAAzB5G,EAAOO,SAASpH,OAEvBsN,EAAmBzG,EAAOS,SAAShG,OAASuF,EAAOO,SAAS7E,UAC5D8G,EAAWxC,EAAOS,SAASwB,GAAGwE,GAAkBjE,WAEhDkE,GAAqBlE,EAASqE,IAAK,QAAS,KAKhDrE,EAAWxC,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,MAAQyE,KAAa/C,WAE7DxC,EAAOa,OAAOC,QAAUqC,IAAgB,IAAKnD,EAAOa,OAAOqC,MAAO,QAErDzB,IAAbe,IAC6B,eAAzBxC,EAAOO,SAASpH,KAAyBuN,GAAqBlE,EAASmE,KAAM,QAAS,GACxD,aAAzB3G,EAAOO,SAASpH,MAAuBuN,GAAqBlE,EAASqE,IAAK,QAAS,MAqBpGH,EAAsB,SAAUzN,EAAO6N,EAAMC,EAAUC,GACvD,IAAIC,EAAYC,EAEZlH,EAAOqB,UAEP6F,EAAqC,aAAzBlH,EAAOO,SAASpH,KAAsB,kBAAoBF,EAAQ,SAAW,eAAiBA,EAAQ,YAElHgH,EAAGsC,IAAI,IAAMvC,EAAO2B,UAAY,uBAAwBoF,EAAW,IAAO,KAC7D,UAATD,GAEA7G,EAAGsC,IAAIvC,EAAOoB,SAAU8F,GACP,IAAbH,EAEA9G,EAAGzG,KAAK,oEAAoE,SAAU2N,GAE7EhN,EAAEgN,EAAEC,QAAQC,GAAGpH,KAEpBA,EAAGqH,OAAO,oEACVC,QAGJA,KAEY,UAATT,EACP7G,EAAGsC,IAAIvC,EAAOoB,SAAU8F,GACR,WAATJ,IAEP7G,EAAGsC,IAAI,IAAMvC,EAAO2B,UAAY,8BAA+B,UAC/D1B,EAAGsC,IAAIvC,EAAOoB,SAAU8F,GACP,IAAbH,EACA9G,EAAGzG,KAAK,oEAAoE,SAAU2N,GAE7EhN,EAAEgN,EAAEC,QAAQC,GAAGpH,KAEpBA,EAAGqH,OAAO,oEAEVZ,EAAoBM,EAAOQ,WAAY,QAAS,GAEhDC,SAGJf,EAAoBM,EAAOQ,WAAY,QAAS,GAChDC,SAKRR,EAAa,IACFjH,EAAOoB,UAAYnI,EACjB,UAAT6N,EACA7G,EAAGyH,QAAQT,EAAYF,EAAU/G,EAAOO,SAASxD,QAAQ,WACrDwK,OAEY,UAATT,EACP7G,EAAGsC,IAAIvC,EAAOoB,SAAUnI,GACR,WAAT6N,GACP7G,EAAGyH,QAAQT,EAAYF,EAAU,UAAU,WACvCL,EAAoBM,EAAOQ,WAAY,QAAS,GAEhDC,SASZE,EAAgB,WAKhB,IAJA,IAAIC,EAAY,GACZC,EAAc,GACdxB,EAAWlD,IAENnL,EAAI,EAAGA,EAAIqO,EAAUrO,IAC1B6P,EAAc,GAEV7H,EAAOO,SAAShC,YAAcpE,EAAE2N,WAAW9H,EAAOO,SAAShC,aAAeyB,EAAOO,SAAS/B,aAC1FqJ,EAAc7H,EAAOO,SAAShC,WAAWvG,GACzCgI,EAAO+H,QAAQzD,SAAS,qBAExBuD,EAAc7P,EAAI,EAClBgI,EAAO+H,QAAQzD,SAAS,qBAI5BsD,GAAa,2DAA6D5P,EAAI,2BAA6B6P,EAAc,aAG7H7H,EAAO+H,QAAQC,KAAKJ,IAMpBrE,EAAc,WACTvD,EAAOO,SAAS/B,YAajBwB,EAAO+H,QAAU5N,EAAE6F,EAAOO,SAAS/B,cAXnCwB,EAAO+H,QAAU5N,EAAE,4BAEf6F,EAAOO,SAASjC,cAChBnE,EAAE6F,EAAOO,SAASjC,eAAe0J,KAAKhI,EAAO+H,SAG7C/H,EAAO9D,SAAS+D,GAAGqE,SAAS,gBAAgBE,OAAOxE,EAAO+H,SAG9DJ,KAKJ3H,EAAO+H,QAAQxL,GAAG,iBAAkB,IAAK0L,IAMzC5E,EAAiB,WACjBrD,EAAO9D,SAASgM,KAAO/N,EAAE,8BAAgC6F,EAAOO,SAASlE,SAAW,QACpF2D,EAAO9D,SAASiM,KAAOhO,EAAE,8BAAgC6F,EAAOO,SAASjE,SAAW,QAEpF0D,EAAO9D,SAASgM,KAAK1O,KAAK,iBAAkB4O,GAC5CpI,EAAO9D,SAASiM,KAAK3O,KAAK,iBAAkB6O,GAExCrI,EAAOO,SAAS9B,cAChBtE,EAAE6F,EAAOO,SAAS9B,cAAc+F,OAAOxE,EAAO9D,SAASgM,MAGvDlI,EAAOO,SAAS7B,cAChBvE,EAAE6F,EAAOO,SAAS7B,cAAc8F,OAAOxE,EAAO9D,SAASiM,MAGtDnI,EAAOO,SAAS9B,cAAiBuB,EAAOO,SAAS7B,eAElDsB,EAAO9D,SAASoM,YAAcnO,EAAE,yCAEhC6F,EAAO9D,SAASoM,YAAY9D,OAAOxE,EAAO9D,SAASiM,MAAM3D,OAAOxE,EAAO9D,SAASgM,MAEhFlI,EAAO9D,SAAS+D,GAAGqE,SAAS,6BAA6BE,OAAOxE,EAAO9D,SAASoM,eAOpFhF,EAAqB,WACrBtD,EAAO9D,SAASwH,MAAQvJ,EAAE,kEAAoE6F,EAAOO,SAAS3B,UAAY,cAC1HoB,EAAO9D,SAASqM,KAAOpO,EAAE,iEAAmE6F,EAAOO,SAAS1B,SAAW,cAEvHmB,EAAO9D,SAASsM,OAASrO,EAAE,oCAE3B6F,EAAO9D,SAASsM,OAAOjM,GAAG,QAAS,YAAakM,GAChDzI,EAAO9D,SAASsM,OAAOjM,GAAG,QAAS,WAAYmM,GAE3C1I,EAAOO,SAASzB,oBAChBkB,EAAO9D,SAASsM,OAAOhE,OAAOxE,EAAO9D,SAASwH,OAG9C1D,EAAO9D,SAASsM,OAAOhE,OAAOxE,EAAO9D,SAASwH,OAAOc,OAAOxE,EAAO9D,SAASqM,MAG5EvI,EAAOO,SAASxB,qBAChB5E,EAAE6F,EAAOO,SAASxB,sBAAsBiJ,KAAKhI,EAAO9D,SAASsM,QAG7DxI,EAAO9D,SAAS+D,GAAGqE,SAAS,wBAAwBE,OAAOxE,EAAO9D,SAASsM,QAG/EG,EAAmB3I,EAAOO,SAASvB,UAAY,OAAS,UAMxDiE,EAAiB,WAEjBjD,EAAOS,SAASV,MAAK,SAAUe,GAE3B,IAAI8H,EAAQzO,EAAEF,MAAM6J,KAAK,aAAahC,KAAK,cAE7BL,IAAVmH,IAAwB,GAAKA,GAAOnO,QACpCN,EAAEF,MAAMuK,OAAO,iCAAmCoE,EAAQ,qBAWlER,EAAgB,SAAUjB,GAC1BA,EAAE0B,iBACE7I,EAAO9D,SAAS+D,GAAG6I,SAAS,cAE5B9I,EAAOO,SAASnE,MAAQ4D,EAAOO,SAASrB,iBAAmBe,EAAG8I,WAClE9I,EAAG+I,kBASHX,EAAgB,SAAUlB,GAC1BA,EAAE0B,iBACE7I,EAAO9D,SAAS+D,GAAG6I,SAAS,cAE5B9I,EAAOO,SAASnE,MAAQ4D,EAAOO,SAASrB,iBAAmBe,EAAG8I,WAClE9I,EAAGgJ,kBASHR,EAAiB,SAAUtB,GAC3BlH,EAAGiJ,YACH/B,EAAE0B,kBASFH,EAAgB,SAAUvB,GAC1BlH,EAAG8I,WACH5B,EAAE0B,kBASFZ,EAAiB,SAAUd,GAC3B,IAAIgC,EAAWC,EACfjC,EAAE0B,iBACE7I,EAAO9D,SAAS+D,GAAG6I,SAAS,cAI5B9I,EAAOO,SAASnE,MAAQ4D,EAAOO,SAASrB,iBAAmBe,EAAG8I,gBAEvBtH,KAD3C0H,EAAYhP,EAAEgN,EAAEkC,gBACFvH,KAAK,sBACfsH,EAAavO,SAASsO,EAAUrH,KAAK,wBAElB9B,EAAOa,OAAOC,OAASb,EAAGqJ,UAAUF,KAU3DnE,EAAoB,SAAUsE,GAE9B,IAAIC,EAAMxJ,EAAOS,SAAShG,OAC1B,GAAkC,UAA9BuF,EAAOO,SAASnC,UAKhB,OAJI4B,EAAOO,SAAS5E,UAAY,IAC5B6N,EAAM9I,KAAKsF,KAAKhG,EAAOS,SAAShG,OAASuF,EAAOO,SAAS5E,iBAE7DqE,EAAO+H,QAAQC,KAAMuB,EAAa,EAAKvJ,EAAOO,SAASlC,oBAAsBmL,GAIjFxJ,EAAO+H,QAAQjE,KAAK,KAAK2F,YAAY,UAErCzJ,EAAO+H,QAAQhI,MAAK,SAAU/H,EAAGiI,GAAM9F,EAAE8F,GAAI6D,KAAK,KAAK7B,GAAGsH,GAAYjF,SAAS,cAM/EiD,EAA6B,WAE7B,GAAIvH,EAAOO,SAASzD,aAAc,CAC9B,IAAI0F,EAAW,GAEa,IAAxBxC,EAAOa,OAAOC,MAEd0B,EAAWxC,EAAOS,SAASwB,GAAG,GAAGO,WAE1BxC,EAAOa,OAAOC,QAAUqC,IAAgB,GAAKnD,EAAOe,SAC3DyB,EAAWxC,EAAOS,SAASwB,IAAIkB,IAAgB,GAAKoC,KAAa/C,WAE1DxC,EAAOa,OAAOC,QAAUd,EAAOS,SAAShG,OAAS,IACxD+H,EAAWxC,EAAOS,SAASwB,GAAGjC,EAAOS,SAAShG,OAAS,GAAG+H,YAE1DA,IAC6B,eAAzBxC,EAAOO,SAASpH,KAAyBuN,GAAqBlE,EAASmE,KAAM,QAAS,GACxD,aAAzB3G,EAAOO,SAASpH,MAAuBuN,GAAqBlE,EAASqE,IAAK,QAAS,IAIpG7G,EAAOkB,SAAU,EAEjBlB,EAAOO,SAASd,aAAatH,KAAK8H,EAAID,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,OAAQd,EAAO0J,SAAU1J,EAAOa,OAAOC,QAS9G6H,EAAqB,SAAUgB,GAE3B3J,EAAOO,SAASzB,oBAChBkB,EAAO9D,SAASsM,OAAOR,KAAKhI,EAAO9D,SAASyN,KAG5C3J,EAAO9D,SAASsM,OAAO1E,KAAK,KAAK2F,YAAY,UAC7CzJ,EAAO9D,SAASsM,OAAO1E,KAAK,aAAe6F,EAAQ,KAAKrF,SAAS,YAOrEY,EAA0B,WACJ,IAAlB/B,KACAnD,EAAO9D,SAASiM,KAAK7D,SAAS,YAC9BtE,EAAO9D,SAASgM,KAAK5D,SAAS,cACtBtE,EAAOO,SAASzD,cAAgBkD,EAAOO,SAAStE,mBAE5B,IAAxB+D,EAAOa,OAAOC,OACdd,EAAO9D,SAASiM,KAAK7D,SAAS,YAC9BtE,EAAO9D,SAASgM,KAAKuB,YAAY,aAE1BzJ,EAAOa,OAAOC,QAAUqC,IAAgB,GAC/CnD,EAAO9D,SAASgM,KAAK5D,SAAS,YAC9BtE,EAAO9D,SAASiM,KAAKsB,YAAY,cAGjCzJ,EAAO9D,SAASiM,KAAKsB,YAAY,YACjCzJ,EAAO9D,SAASgM,KAAKuB,YAAY,eAQzC1E,EAAW,WAEX,GAAI/E,EAAOO,SAASnB,UAAY,EACdwK,WAAW3J,EAAGiJ,UAAWlJ,EAAOO,SAASnB,gBAGvDa,EAAGiJ,YAGH/O,EAAEC,QAAQyP,OAAM,WACZ5J,EAAGiJ,eACJY,MAAK,WACJ7J,EAAG8I,cAIP/I,EAAOO,SAASpB,WAEhBc,EAAG8J,OAAM,WAED/J,EAAOmB,WAEPlB,EAAG8I,UAAS,GAEZ/I,EAAOgK,YAAa,MAEzB,WAEKhK,EAAOgK,aAEP/J,EAAGiJ,WAAU,GAEblJ,EAAOgK,WAAa,UAShChF,EAAa,WACb,IACIxC,EAAUyH,EAAWhR,EAAOiR,EAAKC,EAAOxQ,EAAUyQ,EAAUC,EAD5DC,EAAgB,EAGkB,SAAlCtK,EAAOO,SAAStB,cAChBgB,EAAGuE,OAAOxE,EAAOS,SAAS4D,QAAQC,SAAS,cAG3CrE,EAAGqC,QAAQtC,EAAOS,SAAS4D,QAAQC,SAAS,aAC5C9B,EAAWxC,EAAOS,SAAS2F,QAAQ5D,WACnC8H,EAAyC,eAAzBtK,EAAOO,SAASpH,MAAyBqJ,EAASmE,MAAQnE,EAASqE,KAEvFH,EAAoB4D,EAAe,QAAS,GAE5CtK,EAAOO,SAASvE,OAAQ,EACxBgE,EAAOO,SAASrE,UAAW,EAC3B8D,EAAOO,SAAS5B,cAAe,EAE3BqB,EAAOO,SAASnD,cACZ4C,EAAOqB,UACP6I,EAA+B,eAAzBlK,EAAOO,SAASpH,KAAwB,EAAI,EAClD6G,EAAOmC,SAAS4H,OAAM,WAClBE,EAAYhK,EAAGsC,IAAI,IAAMvC,EAAO2B,UAAY,cAC5C1I,EAAQ4M,WAAWoE,EAAUM,MAAM,KAAKL,IACxCxD,EAAoBzN,EAAO,QAAS,MACrC,WACCoR,EAAc,EACdrK,EAAOS,SAASV,MAAK,SAAUe,GAC3BuJ,GAAwC,eAAzBrK,EAAOO,SAASpH,KAAwBgB,EAAEF,MAAM2M,YAAW,GAAQzM,EAAEF,MAAMwL,aAAY,MAG1G0E,EAAQnK,EAAOO,SAASxE,MAAQsO,EAEhC1Q,EAAoC,eAAzBqG,EAAOO,SAASpH,KAAwB,OAAS,MAE5DiR,EAAWD,GAASE,EAAe3J,KAAK8J,IAAI3P,SAAS5B,KACrDwO,EAAW2C,OAIfpK,EAAOmC,SAAS4H,OAAM,WAClB9J,EAAGsI,UACJ,WAEC8B,EAAc,EACdrK,EAAOS,SAASV,MAAK,SAAUe,GAC3BuJ,GAAwC,eAAzBrK,EAAOO,SAASpH,KAAwBgB,EAAEF,MAAM2M,YAAW,GAAQzM,EAAEF,MAAMwL,aAAY,MAG1G0E,EAAQnK,EAAOO,SAASxE,MAAQsO,EAEhC1Q,EAAoC,eAAzBqG,EAAOO,SAASpH,KAAwB,OAAS,MAE5DiR,EAAWD,GAASE,EAAe3J,KAAK8J,IAAI3P,SAASoF,EAAGsC,IAAI5I,MAC5D8N,EAAW2C,OAKvB3C,KAMAA,EAAa,SAAUgD,GACvB,IAGIC,EAAiBlD,EAHjBzL,EAAQ0O,GAA4BzK,EAAOO,SAASxE,MACpDyG,EAAW,CAAEmE,KAAM,EAAGE,IAAK,GAC3B8D,EAAQ,CAAEhE,KAAM,EAAGE,IAAK,GAIU,SAAlC7G,EAAOO,SAAStB,cAChBuD,EAAWvC,EAAG6D,KAAK,aAAasC,QAAQ5D,WAGxCmI,EAAQ3K,EAAOS,SAAS2F,QAAQ5D,WAEpCkI,EAA2C,eAAzB1K,EAAOO,SAASpH,MAAyBqJ,EAASmE,MAAQnE,EAASqE,IACrFW,EAAsC,eAAzBxH,EAAOO,SAASpH,MAAyBwR,EAAMhE,MAAQgE,EAAM9D,IAE1EH,EAAoBgE,EAAiB,SAAU3O,EADtC,CAAEyL,WAAYA,KA0BvBnC,EAAW,SAAU8B,GACrB,IAAIyD,EAAmBpO,SAASqO,cAAcC,QAAQjJ,cAKtD,GAAc,MAHN,IAAIkJ,OAAOH,EAAkB,CAAC,MACvBI,KAFE,mBArBJ,SAAU/K,GACvB,IAAIgL,EAAM9Q,EAAEC,QACR+H,EAAW,CACP0E,IAAKoE,EAAIC,YACTvE,KAAMsE,EAAIE,cAEdC,EAASnL,EAAGoL,SAOhB,OALAlJ,EAASmJ,MAAQnJ,EAASwE,KAAOsE,EAAI9K,QACrCgC,EAASoJ,OAASpJ,EAAS0E,IAAMoE,EAAI5K,SACrC+K,EAAOE,MAAQF,EAAOzE,KAAO1G,EAAG2G,aAChCwE,EAAOG,OAASH,EAAOvE,IAAM5G,EAAGwF,gBAEtBtD,EAASmJ,MAAQF,EAAOzE,MAAQxE,EAASwE,KAAOyE,EAAOE,OAASnJ,EAASoJ,OAASH,EAAOvE,KAAO1E,EAAS0E,IAAMuE,EAAOG,QAY1GC,CAAWvL,GAAK,CAClC,GAAkB,KAAdkH,EAAEsE,QAEF,OADArD,EAAcjB,IACP,EACJ,GAAkB,KAAdA,EAAEsE,QAET,OADApD,EAAclB,IACP,IAQfhC,EAAY,WAEZnF,EAAO0L,MAAQ,CACXhI,MAAO,CAAEiI,EAAG,EAAGC,EAAG,GAClBC,IAAK,CAAEF,EAAG,EAAGC,EAAG,IAEpB5L,EAAOmC,SAAS3I,KAAK,uCAAwCsS,GAI7D9L,EAAOmC,SAAS5F,GAAG,QAAS,eAAe,SAAU4K,GAC7CnH,EAAOmC,SAAS2G,SAAS,oBACzB3B,EAAE0B,iBACF7I,EAAOmC,SAASsH,YAAY,uBAWpCqC,EAAe,SAAU3E,GAIzB,GAFAnH,EAAO9D,SAAS+D,GAAGqE,SAAS,YAExBtE,EAAOkB,QACPiG,EAAE0B,iBACF7I,EAAO9D,SAAS+D,GAAGwJ,YAAY,gBAC5B,CAEHzJ,EAAO0L,MAAMK,YAAc9L,EAAGuC,WAC9B,IAAIwJ,EAAO7E,EAAE8E,cACTC,OAA8C,IAAxBF,EAAKG,eAAkCH,EAAKG,eAAiB,CAACH,GAExFhM,EAAO0L,MAAMhI,MAAMiI,EAAIO,EAAY,GAAGE,MACtCpM,EAAO0L,MAAMhI,MAAMkI,EAAIM,EAAY,GAAGG,MAElCrM,EAAOmC,SAAStJ,IAAI,GAAGyT,oBACvBtM,EAAOuM,UAAYP,EAAKO,UACxBvM,EAAOmC,SAAStJ,IAAI,GAAGyT,kBAAkBtM,EAAOuM,YAGpDvM,EAAOmC,SAAS3I,KAAK,sCAAuCgT,GAE5DxM,EAAOmC,SAAS3I,KAAK,iCAAkCiT,GACvDzM,EAAOmC,SAAS3I,KAAK,gCAAiCkT,KAU1DA,EAAkB,SAAUvF,GAG5BT,EAAoB1G,EAAO0L,MAAMK,YAAYpF,KAAM,QAAS,GAG5D3G,EAAO9D,SAAS+D,GAAGwJ,YAAY,YAC/BzJ,EAAOmC,SAASmF,OAAO,gCAAiCoF,GACxD1M,EAAOmC,SAASmF,OAAO,sCAAuCkF,GAC9DxM,EAAOmC,SAASmF,OAAO,iCAAkCmF,GACrDzM,EAAOmC,SAAStJ,IAAI,GAAG8T,uBACvB3M,EAAOmC,SAAStJ,IAAI,GAAG8T,sBAAsB3M,EAAOuM,YAUxDC,EAAc,SAAUrF,GACxB,IAAI6E,EAAO7E,EAAE8E,cACTC,OAA8C,IAAxBF,EAAKG,eAAkCH,EAAKG,eAAiB,CAACH,GAEpFY,EAAYlM,KAAK8J,IAAI0B,EAAY,GAAGE,MAAQpM,EAAO0L,MAAMhI,MAAMiI,GAC/DkB,EAAYnM,KAAK8J,IAAI0B,EAAY,GAAGG,MAAQrM,EAAO0L,MAAMhI,MAAMkI,GAC/D3S,EAAQ,EACR6T,EAAS,GAGI,EAAZF,EAAiBC,GAAa7M,EAAOO,SAASxC,sBAG3B,EAAZ8O,EAAiBD,GAAa5M,EAAOO,SAASvC,uBAFtDmJ,EAAE0B,iBAKuB,SAAzB7I,EAAOO,SAASpH,MAAmB6G,EAAOO,SAASzC,gBAEtB,eAAzBkC,EAAOO,SAASpH,MAChB2T,EAASZ,EAAY,GAAGE,MAAQpM,EAAO0L,MAAMhI,MAAMiI,EACnD1S,EAAQ+G,EAAO0L,MAAMK,YAAYpF,KAAOmG,IAGxCA,EAASZ,EAAY,GAAGG,MAAQrM,EAAO0L,MAAMhI,MAAMkI,EACnD3S,EAAQ+G,EAAO0L,MAAMK,YAAYlF,IAAMiG,GAE3CpG,EAAoBzN,EAAO,QAAS,KAUxCwT,EAAa,SAAUtF,GACvBnH,EAAOmC,SAASmF,OAAO,sCAAuCkF,GAE9DxM,EAAO9D,SAAS+D,GAAGwJ,YAAY,YAC/B,IAAIuC,EAAO7E,EAAE8E,cACTC,OAA8C,IAAxBF,EAAKG,eAAkCH,EAAKG,eAAiB,CAACH,GACpF/S,EAAQ,EACR8T,EAAW,EAEf/M,EAAO0L,MAAMG,IAAIF,EAAIO,EAAY,GAAGE,MACpCpM,EAAO0L,MAAMG,IAAID,EAAIM,EAAY,GAAGG,MAEP,SAAzBrM,EAAOO,SAASpH,MAChB4T,EAAWrM,KAAK8J,IAAIxK,EAAO0L,MAAMhI,MAAMiI,EAAI3L,EAAO0L,MAAMG,IAAIF,KAC5C3L,EAAOO,SAAS1C,iBACxBmC,EAAO0L,MAAMhI,MAAMiI,EAAI3L,EAAO0L,MAAMG,IAAIF,EACxC1L,EAAG+I,gBAEH/I,EAAGgJ,gBAEPhJ,EAAG8I,aAKsB,eAAzB/I,EAAOO,SAASpH,MAChB4T,EAAW/M,EAAO0L,MAAMG,IAAIF,EAAI3L,EAAO0L,MAAMhI,MAAMiI,EACnD1S,EAAQ+G,EAAO0L,MAAMK,YAAYpF,OAEjCoG,EAAW/M,EAAO0L,MAAMG,IAAID,EAAI5L,EAAO0L,MAAMhI,MAAMkI,EACnD3S,EAAQ+G,EAAO0L,MAAMK,YAAYlF,MAGhC7G,EAAOO,SAASzD,eAA0C,IAAxBkD,EAAOa,OAAOC,OAAeiM,EAAW,GAAO/M,EAAOa,OAAOqC,MAAQ6J,EAAW,GACnHrG,EAAoBzN,EAAO,QAAS,KAGhCyH,KAAK8J,IAAIuC,IAAa/M,EAAOO,SAAS1C,gBAClCkP,EAAW,EACX9M,EAAG+I,gBAEH/I,EAAGgJ,gBAEPhJ,EAAG8I,YAGHrC,EAAoBzN,EAAO,QAAS,MAIhD+G,EAAOmC,SAASmF,OAAO,iCAAkCmF,GACrDzM,EAAOmC,SAAStJ,IAAI,GAAG8T,uBACvB3M,EAAOmC,SAAStJ,IAAI,GAAG8T,sBAAsB3M,EAAOuM,YAOxDzH,EAAe,SAAUqC,GAEzB,GAAKnH,EAAO6E,YAEZ,GAAI7E,EAAOkB,QACP9G,OAAOwP,WAAW9E,EAAc,QAC7B,CAEH,IAAIkI,EAAiB7S,EAAEC,QAAQ+F,QAC3B8M,EAAkB9S,EAAEC,QAAQiG,SAI5BH,IAAgB8M,GAAkB5M,IAAiB6M,IAEnD/M,EAAc8M,EACd5M,EAAe6M,EAEfhN,EAAG2E,eAEH5E,EAAOO,SAASX,eAAezH,KAAK8H,EAAID,EAAOa,OAAOC,UAW9DoM,EAA4B,SAAUC,GACtC,IAAIC,EAAwBnH,IAExBjG,EAAOO,SAASrC,aAAe8B,EAAOO,SAASpD,SAE/C6C,EAAOS,SAASqB,KAAK,cAAe,QAEpC9B,EAAOS,SAAS0D,MAAMgJ,EAAmBA,EAAoBC,GAAuBtL,KAAK,cAAe,WAoUhH,OArRA7B,EAAGqJ,UAAY,SAAUC,EAAY8D,GAGjC,IAII5G,EAAkBxE,EAAIhJ,EAAOqU,EAJ7BC,GAAoB,EACpBC,EAAS,EACThL,EAAW,CAAEmE,KAAM,EAAGE,IAAK,GAC3BL,EAAY,KAQhB,GALAxG,EAAO0J,SAAW1J,EAAOa,OAAOC,MAEhCd,EAAOa,OAAOC,MAhDE,SAAUyI,GAC1B,OAAIA,EAAa,EACTvJ,EAAOO,SAASzD,aACTqG,IAAgB,EAGhBnD,EAAOa,OAAOC,MAGlByI,GAAcpG,IACjBnD,EAAOO,SAASzD,aACT,EAGAkD,EAAOa,OAAOC,MAIlByI,EA8BWkE,CAAclE,IAGhCvJ,EAAOkB,SAAWlB,EAAOa,OAAOC,QAAUd,EAAO0J,SAArD,CAOA,GALA1J,EAAOkB,SAAU,OAKkB,KAHnCqM,EAAoBvN,EAAOO,SAASf,cAAcrH,KAAK8H,EAAID,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,OAAQd,EAAO0J,SAAU1J,EAAOa,OAAOC,UAGhFyM,EAG/C,OAFAvN,EAAOa,OAAOC,MAAQd,EAAO0J,cAC7B1J,EAAOkB,SAAU,GAIH,SAAdmM,EAEKrN,EAAOO,SAASb,YAAYvH,KAAK8H,EAAID,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,OAAQd,EAAO0J,SAAU1J,EAAOa,OAAOC,SAC9GyM,GAAoB,GAEH,SAAdF,IAEFrN,EAAOO,SAASZ,YAAYxH,KAAK8H,EAAID,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,OAAQd,EAAO0J,SAAU1J,EAAOa,OAAOC,SAC9GyM,GAAoB,IAK5BvN,EAAOa,OAAOqC,KAAOlD,EAAOa,OAAOC,OAASqC,IAAgB,GAExDnD,EAAOO,SAASvE,OAASgE,EAAOO,SAAS/B,cAAeyG,EAAkBjF,EAAOa,OAAOC,OAExFd,EAAOO,SAASrE,UAAYgJ,IAEH,SAAzBlF,EAAOO,SAASpH,MAEZ6G,EAAOO,SAASlD,gBAAkB2C,EAAOmC,SAAS9B,WAAasE,KAC/D3E,EAAOmC,SAASuF,QAAQ,CAAErH,OAAQsE,KAAuB3E,EAAOO,SAASjD,qBAG7E0C,EAAOS,SAASiN,OAAO,YAAYC,QAAQ3N,EAAOO,SAASxE,OAAOwG,IAAI,CAAEQ,OAAQ,IAEhF/C,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,OAAOyB,IAAI,SAAUvC,EAAOO,SAAS5C,YAAc,GAAGiQ,OAAO5N,EAAOO,SAASxE,OAAO,WACjH5B,EAAEF,MAAMsI,IAAI,SAAUvC,EAAOO,SAAS5C,aACtC4J,SAKAvH,EAAOO,SAASlD,gBAAkB2C,EAAOmC,SAAS9B,WAAasE,KAC/D3E,EAAOmC,SAASuF,QAAQ,CAAErH,OAAQsE,KAAuB3E,EAAOO,SAASjD,sBAGxE0C,EAAOO,SAASzD,cAAgBkD,EAAOe,UAAYf,EAAOa,OAAOqC,KACrC,eAAzBlD,EAAOO,SAASpH,MAGhBqJ,GADAgE,EAAYxG,EAAOS,SAASwB,GAAGjC,EAAOS,SAAShG,OAAS,IACnC+H,WAErBgL,EAASxN,EAAOmC,SAAShC,QAAUqG,EAAUI,eAG7CH,EAAmBzG,EAAOS,SAAShG,OAASuF,EAAOO,SAAS7E,UAC5D8G,EAAWxC,EAAOS,SAASwB,GAAGwE,GAAkBjE,YAG7CxC,EAAOe,UAAYf,EAAOa,OAAOqC,MAAsB,SAAdmK,GAEhDpL,EAAoC,IAA/BjC,EAAOO,SAAS3E,WAAmBoE,EAAOO,SAAS5E,UAAY4J,KAAgBpC,IAAgB,GAAKoC,KAAgBvF,EAAOS,SAAShG,OAASuF,EAAOO,SAAS5E,WAElK6G,GADAgE,EAAYvG,EAAGQ,SAAS,aAAawB,GAAGA,IACnBO,YAEA,SAAd6K,GAAgD,IAAxBrN,EAAOa,OAAOC,OAE7C0B,EAAWvC,EAAG6D,KAAK,eAAe7B,GAAGjC,EAAOO,SAAS5E,WAAW6G,WAChExC,EAAOa,OAAOqC,MAAO,GAEdqG,GAAc,IAErB+D,EAAY/D,EAAa1O,SAAS0K,KAClC/C,EAAWxC,EAAOS,SAASwB,GAAGqL,GAAW9K,iBAOnB,IAAf,GACPvJ,EAAiC,eAAzB+G,EAAOO,SAASpH,OAA0BqJ,EAASmE,KAAO6G,IAAWhL,EAASqE,IAEtFH,EAAoBzN,EAAO,QAAS+G,EAAOO,SAASxE,QAEpDiE,EAAOkB,SAAU,GAGrBlB,EAAOO,SAASrC,YAAcgP,EAA0BlN,EAAOa,OAAOC,MAAQyE,OAMtFtF,EAAG+I,cAAgB,WAEf,GAAKhJ,EAAOO,SAASzD,eAAgBkD,EAAOa,OAAOqC,KAAnD,CACA,IAAIkG,EAAavO,SAASmF,EAAOa,OAAOC,OAAS,EACjDb,EAAGqJ,UAAUF,EAAY,UAM7BnJ,EAAGgJ,cAAgB,WAEf,GAAKjJ,EAAOO,SAASzD,cAAwC,IAAxBkD,EAAOa,OAAOC,MAAnD,CACA,IAAIsI,EAAavO,SAASmF,EAAOa,OAAOC,OAAS,EACjDb,EAAGqJ,UAAUF,EAAY,UAS7BnJ,EAAGiJ,UAAY,SAAU2E,GAEjB7N,EAAOmB,WAEXnB,EAAOmB,SAAW2M,aAAY,WACY,SAAlC9N,EAAOO,SAAStB,cAChBgB,EAAG+I,gBAEH/I,EAAGgJ,kBAERjJ,EAAOO,SAASzE,OAEfkE,EAAOO,SAAS5B,eAAyC,IAAzBkP,GAAiClF,EAAmB,UAS5F1I,EAAG8I,SAAW,SAAU8E,GAEf7N,EAAOmB,WAEZ4M,cAAc/N,EAAOmB,UACrBnB,EAAOmB,SAAW,KAEdnB,EAAOO,SAAS5B,eAAyC,IAAzBkP,GAAiClF,EAAmB,WAM5F1I,EAAG+N,gBAAkB,WACjB,OAAOhO,EAAOa,OAAOC,OAMzBb,EAAGgO,uBAAyB,WACxB,OAAOjO,EAAOS,SAASwB,GAAGjC,EAAOa,OAAOC,QAQ5Cb,EAAGiO,gBAAkB,SAAUpN,GAC3B,OAAOd,EAAOS,SAASwB,GAAGnB,IAM9Bb,EAAGkO,cAAgB,WACf,OAAOnO,EAAOS,SAAShG,QAM3BwF,EAAGmO,UAAY,WACX,OAAOpO,EAAOkB,SAMlBjB,EAAG2E,aAAe,WAEd5E,EAAOS,SAAS+E,IAAIvF,EAAG6D,KAAK,cAAc8C,WAAW9D,KAErD9C,EAAOmC,SAASI,IAAI,SAAUoC,KAEzB3E,EAAOO,SAASpD,QAAUuH,IAG3B1E,EAAOa,OAAOqC,OAAQlD,EAAOa,OAAOC,MAAQqC,IAAgB,GAE5DnD,EAAOa,OAAOC,OAASqC,MAAiBnD,EAAOa,OAAOqC,MAAO,GAE7DlD,EAAOO,SAASvE,QAAUgE,EAAOO,SAAS/B,cAC1CmJ,IACA1C,EAAkBjF,EAAOa,OAAOC,QAEhCd,EAAOO,SAASrC,YAAcgP,EAA0BlN,EAAOa,OAAOC,MAAQyE,MAMtFtF,EAAGoO,cAAgB,WAEVrO,EAAO6E,cACZ7E,EAAO6E,aAAc,EACrB1K,EAAE,YAAaF,MAAMwK,SACrBzE,EAAOS,SAASV,MAAK,gBACiB0B,IAA9BtH,EAAEF,MAAMqG,KAAK,aACbnG,EAAEF,MAAM6H,KAAK,QAAS3H,EAAEF,MAAMqG,KAAK,cAEnCnG,EAAEF,MAAMqU,WAAW,iBAGO7M,IAA9BtH,EAAEF,MAAMqG,KAAK,aACbrG,KAAK6H,KAAK,QAAS3H,EAAEF,MAAMqG,KAAK,cAEhCnG,EAAEF,MAAMqU,WAAW,SAEvBnU,EAAEF,MAAMsU,SAASA,SACbvO,EAAO9D,SAAS+D,IAAMD,EAAO9D,SAAS+D,GAAGwE,SACzCzE,EAAO9D,SAASgM,MAAQlI,EAAO9D,SAASgM,KAAKzD,SAC7CzE,EAAO9D,SAASiM,MAAQnI,EAAO9D,SAASiM,KAAK1D,SAC7CzE,EAAO+H,SAAW/H,EAAOO,SAASrE,WAAa8D,EAAOO,SAAS/B,aAAewB,EAAO+H,QAAQtD,SACjGtK,EAAE,cAAeF,MAAMwK,SACnBzE,EAAO9D,SAASsM,QAAUxI,EAAO9D,SAASsM,OAAO/D,SACrDsJ,cAAc/N,EAAOmB,UACjBnB,EAAOO,SAAS7C,YAAcvD,EAAEC,QAAQkN,OAAO,SAAUxC,GACzD9E,EAAOO,SAASpC,iBAAmBhE,EAAEqC,UAAU8K,OAAO,UAAWjC,GAErElL,EAAEF,MAAMuU,WAAW,cAMvBvO,EAAGwO,aAAe,SAAUlO,QACPkB,IAAblB,IAA0BT,EAAUS,GACxCN,EAAGoO,gBACH3T,IAEAP,EAAE8F,GAAIK,KAAK,WAAYrG,OAG3BS,IAEAP,EAAE8F,GAAIK,KAAK,WAAYrG,MAGhBA","file":"careers.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import bxslider from './lib/bxslider';\r\n\r\nexport default class careers {\r\n constructor() {\r\n this.dom = {\r\n $: window.$,\r\n $window: $(window),\r\n $contentSlider: $('.content-bxslider'),\r\n $awardsSlider: $('.awards-bxslider'),\r\n $jobsearchBtn: $('.job-search-btn')\r\n };\r\n\r\n if (this.dom.$awardsSlider.length || this.dom.$contentSlider.length) {\r\n this.init();\r\n }\r\n if (this.dom.$jobsearchBtn.length > 0) {\r\n this.jobSearch();\r\n }\r\n }\r\n\r\n init() {\r\n\r\n let boxCountToDisplay = parseInt(fetchParam($('#boxCountToDisplay'), '5'));\r\n let disableAnimation = (fetchParam($('#disableAnimation'), 'true') == 'true')\r\n let animationInterval = parseInt(fetchParam($('#animationInterval'), '3000'));\r\n let showDots = (fetchParam($('#showDots'), 'true') == 'true');\r\n let tileWidth = parseInt(fetchParam($('#tileWidth'), '220'));\r\n let tileMargin = parseInt(fetchParam($('#tileMargin'), '25'));\r\n\r\n function fetchParam($param, defVal) {\r\n return ($param.length > 0 && $param.val().length > 0) ? $param.val() : defVal;\r\n }\r\n if (window.innerWidth < 992) {\r\n this.dom.$contentSlider.bxSlider({\r\n mode: 'horizontal',\r\n slideWidth: tileWidth,\r\n minSlides: 1,\r\n maxSlides: 2,\r\n moveSlides: 1,\r\n slideMargin: tileMargin,\r\n pause: animationInterval,\r\n speed: (disableAnimation ? 0 : 1000),\r\n pager: showDots,\r\n hideControlOnEnd: true,\r\n controls: false,\r\n touchEnabled: false\r\n });\r\n }\r\n\r\n this.dom.$awardsSlider.bxSlider({\r\n mode: 'horizontal',\r\n slideWidth: tileWidth,\r\n minSlides: 1,\r\n maxSlides: boxCountToDisplay,\r\n moveSlides: 1,\r\n slideMargin: tileMargin,\r\n pause: animationInterval,\r\n speed: (disableAnimation ? 0 : 1000),\r\n pager: showDots,\r\n auto: true,\r\n hideControlOnEnd: true,\r\n nextText: '›',\r\n prevText: '‹',\r\n touchEnabled: false\r\n });\r\n }\r\n\r\n jobSearch() {\r\n //Setup search function\r\n this.dom.$jobsearchBtn.on('click', function () {\r\n document.getElementById(\"searchFrom\").submit();\r\n })\r\n }\r\n}\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => new careers());","/**\r\n * bxSlider v4.2.12\r\n * Copyright 2013-2015 Steven Wanderski\r\n * Written while drinking Belgian ales and listening to jazz\r\n * Licensed under MIT (http://opensource.org/licenses/MIT)\r\n */\r\n\r\nvar defaults = {\r\n\r\n // GENERAL\r\n mode: 'horizontal',\r\n slideSelector: '',\r\n infiniteLoop: true,\r\n hideControlOnEnd: false,\r\n speed: 500,\r\n easing: null,\r\n slideMargin: 0,\r\n startSlide: 0,\r\n randomStart: false,\r\n captions: false,\r\n ticker: false,\r\n tickerHover: false,\r\n adaptiveHeight: false,\r\n adaptiveHeightSpeed: 500,\r\n video: false,\r\n useCSS: true,\r\n preloadImages: 'visible',\r\n responsive: true,\r\n slideZIndex: 50,\r\n wrapperClass: 'bx-wrapper',\r\n\r\n // TOUCH\r\n touchEnabled: true,\r\n swipeThreshold: 50,\r\n oneToOneTouch: true,\r\n preventDefaultSwipeX: true,\r\n preventDefaultSwipeY: false,\r\n\r\n // ACCESSIBILITY\r\n ariaLive: true,\r\n ariaHidden: true,\r\n\r\n // KEYBOARD\r\n keyboardEnabled: false,\r\n\r\n // PAGER\r\n pager: true,\r\n pagerType: 'full',\r\n pagerShortSeparator: ' / ',\r\n pagerSelector: null,\r\n buildPager: null,\r\n pagerCustom: null,\r\n\r\n // CONTROLS\r\n controls: true,\r\n nextText: 'Next',\r\n prevText: 'Prev',\r\n nextSelector: null,\r\n prevSelector: null,\r\n autoControls: false,\r\n startText: 'Start',\r\n stopText: 'Stop',\r\n autoControlsCombine: false,\r\n autoControlsSelector: null,\r\n\r\n // AUTO\r\n auto: false,\r\n pause: 4000,\r\n autoStart: true,\r\n autoDirection: 'next',\r\n stopAutoOnClick: false,\r\n autoHover: false,\r\n autoDelay: 0,\r\n autoSlideForOnePage: false,\r\n\r\n // CAROUSEL\r\n minSlides: 1,\r\n maxSlides: 1,\r\n moveSlides: 0,\r\n slideWidth: 0,\r\n shrinkItems: false,\r\n\r\n // CALLBACKS\r\n onSliderLoad: function () { return true; },\r\n onSlideBefore: function () { return true; },\r\n onSlideAfter: function () { return true; },\r\n onSlideNext: function () { return true; },\r\n onSlidePrev: function () { return true; },\r\n onSliderResize: function () { return true; }\r\n};\r\n\r\n$.fn.bxSlider = function (options) {\r\n\r\n if (this.length === 0) {\r\n return this;\r\n }\r\n\r\n // support multiple elements\r\n if (this.length > 1) {\r\n this.each(function () {\r\n $(this).bxSlider(options);\r\n });\r\n return this;\r\n }\r\n\r\n // create a namespace to be used throughout the plugin\r\n var slider = {},\r\n // set a reference to our slider element\r\n el = this,\r\n // get the original window dimens (thanks a lot IE)\r\n windowWidth = $(window).width(),\r\n windowHeight = $(window).height();\r\n\r\n // Return if slider is already initialized\r\n if ($(el).data('bxSlider')) { return; }\r\n\r\n /**\r\n * ===================================================================================\r\n * = PRIVATE FUNCTIONS\r\n * ===================================================================================\r\n */\r\n\r\n /**\r\n * Initializes namespace settings to be used throughout plugin\r\n */\r\n var init = function () {\r\n // Return if slider is already initialized\r\n if ($(el).data('bxSlider')) { return; }\r\n // merge user-supplied options with the defaults\r\n slider.settings = $.extend({}, defaults, options);\r\n // parse slideWidth setting\r\n slider.settings.slideWidth = parseInt(slider.settings.slideWidth);\r\n // store the original children\r\n slider.children = el.children(slider.settings.slideSelector);\r\n // check if actual number of slides is less than minSlides / maxSlides\r\n if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; }\r\n if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; }\r\n // if random start, set the startSlide setting to random number\r\n if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); }\r\n // store active slide information\r\n slider.active = { index: slider.settings.startSlide };\r\n // store if the slider is in carousel mode (displaying / moving multiple slides)\r\n slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false;\r\n // if carousel, force preloadImages = 'all'\r\n if (slider.carousel) { slider.settings.preloadImages = 'all'; }\r\n // calculate the min / max width thresholds based on min / max number of slides\r\n // used to setup and update carousel slides dimensions\r\n slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin);\r\n slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);\r\n // store the current state of the slider (if currently animating, working is true)\r\n slider.working = false;\r\n // initialize the controls object\r\n slider.controls = {};\r\n // initialize an auto interval\r\n slider.interval = null;\r\n // determine which property to use for transitions\r\n slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left';\r\n // determine if hardware acceleration can be used\r\n slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function () {\r\n // create our test div element\r\n var div = document.createElement('div'),\r\n // css transition properties\r\n props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];\r\n // test for each property\r\n for (var i = 0; i < props.length; i++) {\r\n if (div.style[props[i]] !== undefined) {\r\n slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase();\r\n slider.animProp = '-' + slider.cssPrefix + '-transform';\r\n return true;\r\n }\r\n }\r\n return false;\r\n }());\r\n // if vertical mode always make maxSlides and minSlides equal\r\n if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; }\r\n // save original style data\r\n el.data('origStyle', el.attr('style'));\r\n el.children(slider.settings.slideSelector).each(function () {\r\n $(this).data('origStyle', $(this).attr('style'));\r\n });\r\n\r\n // perform all DOM / CSS modifications\r\n setup();\r\n };\r\n\r\n /**\r\n * Performs all DOM and CSS modifications\r\n */\r\n var setup = function () {\r\n var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible)\r\n\r\n // wrap el in a wrapper\r\n el.wrap('
');\r\n // store a namespace reference to .bx-viewport\r\n slider.viewport = el.parent();\r\n\r\n // add aria-live if the setting is enabled and ticker mode is disabled\r\n if (slider.settings.ariaLive && !slider.settings.ticker) {\r\n slider.viewport.attr('aria-live', 'polite');\r\n }\r\n // add a loading div to display while images are loading\r\n slider.loader = $('
');\r\n slider.viewport.prepend(slider.loader);\r\n // set el to a massive width, to hold any needed slides\r\n // also strip any margin and padding from el\r\n el.css({\r\n width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto',\r\n position: 'relative'\r\n });\r\n // if using CSS, add the easing property\r\n if (slider.usingCSS && slider.settings.easing) {\r\n el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing);\r\n // if not using CSS and no easing value was supplied, use the default JS animation easing (swing)\r\n } else if (!slider.settings.easing) {\r\n slider.settings.easing = 'swing';\r\n }\r\n // make modifications to the viewport (.bx-viewport)\r\n slider.viewport.css({\r\n width: '100%',\r\n overflow: 'hidden',\r\n position: 'relative'\r\n });\r\n slider.viewport.parent().css({\r\n maxWidth: getViewportMaxWidth()\r\n });\r\n // apply css to all slider children\r\n slider.children.css({\r\n float: slider.settings.mode === 'horizontal' ? 'left' : 'none',\r\n listStyle: 'none',\r\n position: 'relative'\r\n });\r\n // apply the calculated width after the float is applied to prevent scrollbar interference\r\n slider.children.css('width', getSlideWidth());\r\n // if slideMargin is supplied, add the css\r\n if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); }\r\n if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); }\r\n // if \"fade\" mode, add positioning and z-index CSS\r\n if (slider.settings.mode === 'fade') {\r\n slider.children.css({\r\n position: 'absolute',\r\n zIndex: 0,\r\n display: 'none'\r\n });\r\n // prepare the z-index on the showing element\r\n slider.children.eq(slider.settings.startSlide).css({ zIndex: slider.settings.slideZIndex, display: 'block' });\r\n }\r\n // create an element to contain all slider controls (pager, start / stop, etc)\r\n slider.controls.el = $('
');\r\n // if captions are requested, add them\r\n if (slider.settings.captions) { appendCaptions(); }\r\n // check if startSlide is last slide\r\n slider.active.last = slider.settings.startSlide === getPagerQty() - 1;\r\n // if video is true, set up the fitVids plugin\r\n if (slider.settings.video) { el.fitVids(); }\r\n if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; }\r\n // only check for control addition if not in \"ticker\" mode\r\n if (!slider.settings.ticker) {\r\n // if controls are requested, add them\r\n if (slider.settings.controls) { appendControls(); }\r\n // if auto is true, and auto controls are requested, add them\r\n if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); }\r\n // if pager is requested, add it\r\n if (slider.settings.pager) { appendPager(); }\r\n // if any control option is requested, add the controls wrapper\r\n if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); }\r\n // if ticker mode, do not allow a pager\r\n } else {\r\n slider.settings.pager = false;\r\n }\r\n loadElements(preloadSelector, start);\r\n };\r\n\r\n var loadElements = function (selector, callback) {\r\n var total = selector.find('img:not([src=\"\"]), iframe').length,\r\n count = 0;\r\n if (total === 0) {\r\n callback();\r\n return;\r\n }\r\n selector.find('img:not([src=\"\"]), iframe').each(function () {\r\n $(this).one('load error', function () {\r\n if (++count === total) { callback(); }\r\n }).each(function () {\r\n if (this.complete) { $(this).trigger('load'); }\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Start the slider\r\n */\r\n var start = function () {\r\n // if infinite loop, prepare additional slides\r\n if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) {\r\n var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides,\r\n sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'),\r\n slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone');\r\n if (slider.settings.ariaHidden) {\r\n sliceAppend.attr('aria-hidden', true);\r\n slicePrepend.attr('aria-hidden', true);\r\n }\r\n el.append(sliceAppend).prepend(slicePrepend);\r\n }\r\n // remove the loading DOM element\r\n slider.loader.remove();\r\n // set the left / top position of \"el\"\r\n setSlidePosition();\r\n // if \"vertical\" mode, always use adaptiveHeight to prevent odd behavior\r\n if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; }\r\n // set the viewport height\r\n slider.viewport.height(getViewportHeight());\r\n // make sure everything is positioned just right (same as a window resize)\r\n el.redrawSlider();\r\n // onSliderLoad callback\r\n slider.settings.onSliderLoad.call(el, slider.active.index);\r\n // slider has been fully initialized\r\n slider.initialized = true;\r\n // bind the resize call to the window\r\n if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); }\r\n // if auto is true and has more than 1 page, start the show\r\n if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); }\r\n // if ticker is true, start the ticker\r\n if (slider.settings.ticker) { initTicker(); }\r\n // if pager is requested, make the appropriate pager link active\r\n if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); }\r\n // check for any updates to the controls (like hideControlOnEnd updates)\r\n if (slider.settings.controls) { updateDirectionControls(); }\r\n // if touchEnabled is true, setup the touch events\r\n if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); }\r\n // if keyboardEnabled is true, setup the keyboard events\r\n if (slider.settings.keyboardEnabled && !slider.settings.ticker) {\r\n $(document).keydown(keyPress);\r\n }\r\n };\r\n\r\n /**\r\n * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value\r\n */\r\n var getViewportHeight = function () {\r\n var height = 0;\r\n // first determine which children (slides) should be used in our height calculation\r\n var children = $();\r\n // if mode is not \"vertical\" and adaptiveHeight is false, include all children\r\n if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) {\r\n children = slider.children;\r\n } else {\r\n // if not carousel, return the single active child\r\n if (!slider.carousel) {\r\n children = slider.children.eq(slider.active.index);\r\n // if carousel, return a slice of children\r\n } else {\r\n // get the individual slide index\r\n var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy();\r\n // add the current slide to the children\r\n children = slider.children.eq(currentIndex);\r\n // cycle through the remaining \"showing\" slides\r\n for (i = 1; i <= slider.settings.maxSlides - 1; i++) {\r\n // if looped back to the start\r\n if (currentIndex + i >= slider.children.length) {\r\n children = children.add(slider.children.eq(i - 1));\r\n } else {\r\n children = children.add(slider.children.eq(currentIndex + i));\r\n }\r\n }\r\n }\r\n }\r\n // if \"vertical\" mode, calculate the sum of the heights of the children\r\n if (slider.settings.mode === 'vertical') {\r\n children.each(function (index) {\r\n height += $(this).outerHeight();\r\n });\r\n // add user-supplied margins\r\n if (slider.settings.slideMargin > 0) {\r\n height += slider.settings.slideMargin * (slider.settings.minSlides - 1);\r\n }\r\n // if not \"vertical\" mode, calculate the max height of the children\r\n } else {\r\n height = Math.max.apply(Math, children.map(function () {\r\n return $(this).outerHeight(false);\r\n }).get());\r\n }\r\n\r\n if (slider.viewport.css('box-sizing') === 'border-box') {\r\n height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) +\r\n parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width'));\r\n } else if (slider.viewport.css('box-sizing') === 'padding-box') {\r\n height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom'));\r\n }\r\n\r\n return height;\r\n };\r\n\r\n /**\r\n * Returns the calculated width to be used for the outer wrapper / viewport\r\n */\r\n var getViewportMaxWidth = function () {\r\n var width = '100%';\r\n if (slider.settings.slideWidth > 0) {\r\n if (slider.settings.mode === 'horizontal') {\r\n width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);\r\n } else {\r\n width = slider.settings.slideWidth;\r\n }\r\n }\r\n return width;\r\n };\r\n\r\n /**\r\n * Returns the calculated width to be applied to each slide\r\n */\r\n var getSlideWidth = function () {\r\n var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width\r\n wrapWidth = slider.viewport.width(); // get the current viewport width\r\n // if slide width was not supplied, or is larger than the viewport use the viewport width\r\n if (slider.settings.slideWidth === 0 ||\r\n (slider.settings.slideWidth > wrapWidth && !slider.carousel) ||\r\n slider.settings.mode === 'vertical') {\r\n newElWidth = wrapWidth;\r\n // if carousel, use the thresholds to determine the width\r\n } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') {\r\n if (wrapWidth > slider.maxThreshold) {\r\n return newElWidth;\r\n } else if (wrapWidth < slider.minThreshold) {\r\n newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides;\r\n } else if (slider.settings.shrinkItems) {\r\n newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin);\r\n }\r\n }\r\n return newElWidth;\r\n };\r\n\r\n /**\r\n * Returns the number of slides currently visible in the viewport (includes partially visible slides)\r\n */\r\n var getNumberSlidesShowing = function () {\r\n var slidesShowing = 1,\r\n childWidth = null;\r\n if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) {\r\n // if viewport is smaller than minThreshold, return minSlides\r\n if (slider.viewport.width() < slider.minThreshold) {\r\n slidesShowing = slider.settings.minSlides;\r\n // if viewport is larger than maxThreshold, return maxSlides\r\n } else if (slider.viewport.width() > slider.maxThreshold) {\r\n slidesShowing = slider.settings.maxSlides;\r\n // if viewport is between min / max thresholds, divide viewport width by first child width\r\n } else {\r\n childWidth = slider.children.first().width() + slider.settings.slideMargin;\r\n slidesShowing = Math.floor((slider.viewport.width() +\r\n slider.settings.slideMargin) / childWidth);\r\n }\r\n // if \"vertical\" mode, slides showing will always be minSlides\r\n } else if (slider.settings.mode === 'vertical') {\r\n slidesShowing = slider.settings.minSlides;\r\n }\r\n return slidesShowing;\r\n };\r\n\r\n /**\r\n * Returns the number of pages (one full viewport of slides is one \"page\")\r\n */\r\n var getPagerQty = function () {\r\n var pagerQty = 0,\r\n breakPoint = 0,\r\n counter = 0;\r\n // if moveSlides is specified by the user\r\n if (slider.settings.moveSlides > 0) {\r\n if (slider.settings.infiniteLoop) {\r\n pagerQty = Math.ceil(slider.children.length / getMoveBy());\r\n } else {\r\n // when breakpoint goes above children length, counter is the number of pages\r\n while (breakPoint < slider.children.length) {\r\n ++pagerQty;\r\n breakPoint = counter + getNumberSlidesShowing();\r\n counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();\r\n }\r\n }\r\n // if moveSlides is 0 (auto) divide children length by sides showing, then round up\r\n } else {\r\n pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing());\r\n }\r\n return pagerQty;\r\n };\r\n\r\n /**\r\n * Returns the number of individual slides by which to shift the slider\r\n */\r\n var getMoveBy = function () {\r\n // if moveSlides was set by the user and moveSlides is less than number of slides showing\r\n if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) {\r\n return slider.settings.moveSlides;\r\n }\r\n // if moveSlides is 0 (auto)\r\n return getNumberSlidesShowing();\r\n };\r\n\r\n /**\r\n * Sets the slider's (el) left or top position\r\n */\r\n var setSlidePosition = function () {\r\n var position, lastChild, lastShowingIndex;\r\n // if last slide, not infinite loop, and number of children is larger than specified maxSlides\r\n if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) {\r\n if (slider.settings.mode === 'horizontal') {\r\n // get the last child's position\r\n lastChild = slider.children.last();\r\n position = lastChild.position();\r\n // set the left position\r\n setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0);\r\n } else if (slider.settings.mode === 'vertical') {\r\n // get the last showing index's position\r\n lastShowingIndex = slider.children.length - slider.settings.minSlides;\r\n position = slider.children.eq(lastShowingIndex).position();\r\n // set the top position\r\n setPositionProperty(-position.top, 'reset', 0);\r\n }\r\n // if not last slide\r\n } else {\r\n // get the position of the first showing slide\r\n position = slider.children.eq(slider.active.index * getMoveBy()).position();\r\n // check for last slide\r\n if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; }\r\n // set the respective position\r\n if (position !== undefined) {\r\n if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }\r\n else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); }\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Sets the el's animating property position (which in turn will sometimes animate el).\r\n * If using CSS, sets the transform property. If not using CSS, sets the top / left property.\r\n *\r\n * @param value (int)\r\n * - the animating property's value\r\n *\r\n * @param type (string) 'slide', 'reset', 'ticker'\r\n * - the type of instance for which the function is being\r\n *\r\n * @param duration (int)\r\n * - the amount of time (in ms) the transition should occupy\r\n *\r\n * @param params (array) optional\r\n * - an optional parameter containing any variables that need to be passed in\r\n */\r\n var setPositionProperty = function (value, type, duration, params) {\r\n var animateObj, propValue;\r\n // use CSS transform\r\n if (slider.usingCSS) {\r\n // determine the translate3d value\r\n propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)';\r\n // add the CSS transition-duration\r\n el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's');\r\n if (type === 'slide') {\r\n // set the property value\r\n el.css(slider.animProp, propValue);\r\n if (duration !== 0) {\r\n // bind a callback method - executes when CSS transition completes\r\n el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) {\r\n //make sure it's the correct one\r\n if (!$(e.target).is(el)) { return; }\r\n // unbind the callback\r\n el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');\r\n updateAfterSlideTransition();\r\n });\r\n } else { //duration = 0\r\n updateAfterSlideTransition();\r\n }\r\n } else if (type === 'reset') {\r\n el.css(slider.animProp, propValue);\r\n } else if (type === 'ticker') {\r\n // make the transition use 'linear'\r\n el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear');\r\n el.css(slider.animProp, propValue);\r\n if (duration !== 0) {\r\n el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function (e) {\r\n //make sure it's the correct one\r\n if (!$(e.target).is(el)) { return; }\r\n // unbind the callback\r\n el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');\r\n // reset the position\r\n setPositionProperty(params.resetValue, 'reset', 0);\r\n // start the loop again\r\n tickerLoop();\r\n });\r\n } else { //duration = 0\r\n setPositionProperty(params.resetValue, 'reset', 0);\r\n tickerLoop();\r\n }\r\n }\r\n // use JS animate\r\n } else {\r\n animateObj = {};\r\n animateObj[slider.animProp] = value;\r\n if (type === 'slide') {\r\n el.animate(animateObj, duration, slider.settings.easing, function () {\r\n updateAfterSlideTransition();\r\n });\r\n } else if (type === 'reset') {\r\n el.css(slider.animProp, value);\r\n } else if (type === 'ticker') {\r\n el.animate(animateObj, duration, 'linear', function () {\r\n setPositionProperty(params.resetValue, 'reset', 0);\r\n // run the recursive loop after animation\r\n tickerLoop();\r\n });\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Populates the pager with proper amount of pages\r\n */\r\n var populatePager = function () {\r\n var pagerHtml = '',\r\n linkContent = '',\r\n pagerQty = getPagerQty();\r\n // loop through each pager item\r\n for (var i = 0; i < pagerQty; i++) {\r\n linkContent = '';\r\n // if a buildPager function is supplied, use it to get pager link value, else use index + 1\r\n if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) {\r\n linkContent = slider.settings.buildPager(i);\r\n slider.pagerEl.addClass('bx-custom-pager');\r\n } else {\r\n linkContent = i + 1;\r\n slider.pagerEl.addClass('bx-default-pager');\r\n }\r\n // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1;\r\n // add the markup to the string\r\n pagerHtml += '';\r\n }\r\n // populate the pager element with pager links\r\n slider.pagerEl.html(pagerHtml);\r\n };\r\n\r\n /**\r\n * Appends the pager to the controls element\r\n */\r\n var appendPager = function () {\r\n if (!slider.settings.pagerCustom) {\r\n // create the pager DOM element\r\n slider.pagerEl = $('
');\r\n // if a pager selector was supplied, populate it with the pager\r\n if (slider.settings.pagerSelector) {\r\n $(slider.settings.pagerSelector).html(slider.pagerEl);\r\n // if no pager selector was supplied, add it after the wrapper\r\n } else {\r\n slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl);\r\n }\r\n // populate the pager\r\n populatePager();\r\n } else {\r\n slider.pagerEl = $(slider.settings.pagerCustom);\r\n }\r\n // assign the pager click binding\r\n slider.pagerEl.on('click touchend', 'a', clickPagerBind);\r\n };\r\n\r\n /**\r\n * Appends prev / next controls to the controls element\r\n */\r\n var appendControls = function () {\r\n slider.controls.next = $('' + slider.settings.nextText + '');\r\n slider.controls.prev = $('' + slider.settings.prevText + '');\r\n // bind click actions to the controls\r\n slider.controls.next.bind('click touchend', clickNextBind);\r\n slider.controls.prev.bind('click touchend', clickPrevBind);\r\n // if nextSelector was supplied, populate it\r\n if (slider.settings.nextSelector) {\r\n $(slider.settings.nextSelector).append(slider.controls.next);\r\n }\r\n // if prevSelector was supplied, populate it\r\n if (slider.settings.prevSelector) {\r\n $(slider.settings.prevSelector).append(slider.controls.prev);\r\n }\r\n // if no custom selectors were supplied\r\n if (!slider.settings.nextSelector && !slider.settings.prevSelector) {\r\n // add the controls to the DOM\r\n slider.controls.directionEl = $('
');\r\n // add the control elements to the directionEl\r\n slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);\r\n // slider.viewport.append(slider.controls.directionEl);\r\n slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl);\r\n }\r\n };\r\n\r\n /**\r\n * Appends start / stop auto controls to the controls element\r\n */\r\n var appendControlsAuto = function () {\r\n slider.controls.start = $('');\r\n slider.controls.stop = $('');\r\n // add the controls to the DOM\r\n slider.controls.autoEl = $('
');\r\n // bind click actions to the controls\r\n slider.controls.autoEl.on('click', '.bx-start', clickStartBind);\r\n slider.controls.autoEl.on('click', '.bx-stop', clickStopBind);\r\n // if autoControlsCombine, insert only the \"start\" control\r\n if (slider.settings.autoControlsCombine) {\r\n slider.controls.autoEl.append(slider.controls.start);\r\n // if autoControlsCombine is false, insert both controls\r\n } else {\r\n slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop);\r\n }\r\n // if auto controls selector was supplied, populate it with the controls\r\n if (slider.settings.autoControlsSelector) {\r\n $(slider.settings.autoControlsSelector).html(slider.controls.autoEl);\r\n // if auto controls selector was not supplied, add it after the wrapper\r\n } else {\r\n slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl);\r\n }\r\n // update the auto controls\r\n updateAutoControls(slider.settings.autoStart ? 'stop' : 'start');\r\n };\r\n\r\n /**\r\n * Appends image captions to the DOM\r\n */\r\n var appendCaptions = function () {\r\n // cycle through each child\r\n slider.children.each(function (index) {\r\n // get the image title attribute\r\n var title = $(this).find('img:first').attr('title');\r\n // append the caption\r\n if (title !== undefined && ('' + title).length) {\r\n $(this).append('
' + title + '
');\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Click next binding\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var clickNextBind = function (e) {\r\n e.preventDefault();\r\n if (slider.controls.el.hasClass('disabled')) { return; }\r\n // if auto show is running, stop it\r\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\r\n el.goToNextSlide();\r\n };\r\n\r\n /**\r\n * Click prev binding\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var clickPrevBind = function (e) {\r\n e.preventDefault();\r\n if (slider.controls.el.hasClass('disabled')) { return; }\r\n // if auto show is running, stop it\r\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\r\n el.goToPrevSlide();\r\n };\r\n\r\n /**\r\n * Click start binding\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var clickStartBind = function (e) {\r\n el.startAuto();\r\n e.preventDefault();\r\n };\r\n\r\n /**\r\n * Click stop binding\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var clickStopBind = function (e) {\r\n el.stopAuto();\r\n e.preventDefault();\r\n };\r\n\r\n /**\r\n * Click pager binding\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var clickPagerBind = function (e) {\r\n var pagerLink, pagerIndex;\r\n e.preventDefault();\r\n if (slider.controls.el.hasClass('disabled')) {\r\n return;\r\n }\r\n // if auto show is running, stop it\r\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\r\n pagerLink = $(e.currentTarget);\r\n if (pagerLink.attr('data-slide-index') !== undefined) {\r\n pagerIndex = parseInt(pagerLink.attr('data-slide-index'));\r\n // if clicked pager link is not active, continue with the goToSlide call\r\n if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); }\r\n }\r\n };\r\n\r\n /**\r\n * Updates the pager links with an active class\r\n *\r\n * @param slideIndex (int)\r\n * - index of slide to make active\r\n */\r\n var updatePagerActive = function (slideIndex) {\r\n // if \"short\" pager type\r\n var len = slider.children.length; // nb of children\r\n if (slider.settings.pagerType === 'short') {\r\n if (slider.settings.maxSlides > 1) {\r\n len = Math.ceil(slider.children.length / slider.settings.maxSlides);\r\n }\r\n slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len);\r\n return;\r\n }\r\n // remove all pager active classes\r\n slider.pagerEl.find('a').removeClass('active');\r\n // apply the active class for all pagers\r\n slider.pagerEl.each(function (i, el) { $(el).find('a').eq(slideIndex).addClass('active'); });\r\n };\r\n\r\n /**\r\n * Performs needed actions after a slide transition\r\n */\r\n var updateAfterSlideTransition = function () {\r\n // if infinite loop is true\r\n if (slider.settings.infiniteLoop) {\r\n var position = '';\r\n // first slide\r\n if (slider.active.index === 0) {\r\n // set the new position\r\n position = slider.children.eq(0).position();\r\n // carousel, last slide\r\n } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) {\r\n position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position();\r\n // last slide\r\n } else if (slider.active.index === slider.children.length - 1) {\r\n position = slider.children.eq(slider.children.length - 1).position();\r\n }\r\n if (position) {\r\n if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }\r\n else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); }\r\n }\r\n }\r\n // declare that the transition is complete\r\n slider.working = false;\r\n // onSlideAfter callback\r\n slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);\r\n };\r\n\r\n /**\r\n * Updates the auto controls state (either active, or combined switch)\r\n *\r\n * @param state (string) \"start\", \"stop\"\r\n * - the new state of the auto show\r\n */\r\n var updateAutoControls = function (state) {\r\n // if autoControlsCombine is true, replace the current control with the new state\r\n if (slider.settings.autoControlsCombine) {\r\n slider.controls.autoEl.html(slider.controls[state]);\r\n // if autoControlsCombine is false, apply the \"active\" class to the appropriate control\r\n } else {\r\n slider.controls.autoEl.find('a').removeClass('active');\r\n slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active');\r\n }\r\n };\r\n\r\n /**\r\n * Updates the direction controls (checks if either should be hidden)\r\n */\r\n var updateDirectionControls = function () {\r\n if (getPagerQty() === 1) {\r\n slider.controls.prev.addClass('disabled');\r\n slider.controls.next.addClass('disabled');\r\n } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) {\r\n // if first slide\r\n if (slider.active.index === 0) {\r\n slider.controls.prev.addClass('disabled');\r\n slider.controls.next.removeClass('disabled');\r\n // if last slide\r\n } else if (slider.active.index === getPagerQty() - 1) {\r\n slider.controls.next.addClass('disabled');\r\n slider.controls.prev.removeClass('disabled');\r\n // if any slide in the middle\r\n } else {\r\n slider.controls.prev.removeClass('disabled');\r\n slider.controls.next.removeClass('disabled');\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Initializes the auto process\r\n */\r\n var initAuto = function () {\r\n // if autoDelay was supplied, launch the auto show using a setTimeout() call\r\n if (slider.settings.autoDelay > 0) {\r\n var timeout = setTimeout(el.startAuto, slider.settings.autoDelay);\r\n // if autoDelay was not supplied, start the auto show normally\r\n } else {\r\n el.startAuto();\r\n\r\n //add focus and blur events to ensure its running if timeout gets paused\r\n $(window).focus(function () {\r\n el.startAuto();\r\n }).blur(function () {\r\n el.stopAuto();\r\n });\r\n }\r\n // if autoHover is requested\r\n if (slider.settings.autoHover) {\r\n // on el hover\r\n el.hover(function () {\r\n // if the auto show is currently playing (has an active interval)\r\n if (slider.interval) {\r\n // stop the auto show and pass true argument which will prevent control update\r\n el.stopAuto(true);\r\n // create a new autoPaused value which will be used by the relative \"mouseout\" event\r\n slider.autoPaused = true;\r\n }\r\n }, function () {\r\n // if the autoPaused value was created be the prior \"mouseover\" event\r\n if (slider.autoPaused) {\r\n // start the auto show and pass true argument which will prevent control update\r\n el.startAuto(true);\r\n // reset the autoPaused value\r\n slider.autoPaused = null;\r\n }\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Initializes the ticker process\r\n */\r\n var initTicker = function () {\r\n var startPosition = 0,\r\n position, transform, value, idx, ratio, property, newSpeed, totalDimens;\r\n // if autoDirection is \"next\", append a clone of the entire slider\r\n if (slider.settings.autoDirection === 'next') {\r\n el.append(slider.children.clone().addClass('bx-clone'));\r\n // if autoDirection is \"prev\", prepend a clone of the entire slider, and set the left position\r\n } else {\r\n el.prepend(slider.children.clone().addClass('bx-clone'));\r\n position = slider.children.first().position();\r\n startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top;\r\n }\r\n setPositionProperty(startPosition, 'reset', 0);\r\n // do not allow controls in ticker mode\r\n slider.settings.pager = false;\r\n slider.settings.controls = false;\r\n slider.settings.autoControls = false;\r\n // if autoHover is requested\r\n if (slider.settings.tickerHover) {\r\n if (slider.usingCSS) {\r\n idx = slider.settings.mode === 'horizontal' ? 4 : 5;\r\n slider.viewport.hover(function () {\r\n transform = el.css('-' + slider.cssPrefix + '-transform');\r\n value = parseFloat(transform.split(',')[idx]);\r\n setPositionProperty(value, 'reset', 0);\r\n }, function () {\r\n totalDimens = 0;\r\n slider.children.each(function (index) {\r\n totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);\r\n });\r\n // calculate the speed ratio (used to determine the new speed to finish the paused animation)\r\n ratio = slider.settings.speed / totalDimens;\r\n // determine which property to use\r\n property = slider.settings.mode === 'horizontal' ? 'left' : 'top';\r\n // calculate the new speed\r\n newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value))));\r\n tickerLoop(newSpeed);\r\n });\r\n } else {\r\n // on el hover\r\n slider.viewport.hover(function () {\r\n el.stop();\r\n }, function () {\r\n // calculate the total width of children (used to calculate the speed ratio)\r\n totalDimens = 0;\r\n slider.children.each(function (index) {\r\n totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);\r\n });\r\n // calculate the speed ratio (used to determine the new speed to finish the paused animation)\r\n ratio = slider.settings.speed / totalDimens;\r\n // determine which property to use\r\n property = slider.settings.mode === 'horizontal' ? 'left' : 'top';\r\n // calculate the new speed\r\n newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property)))));\r\n tickerLoop(newSpeed);\r\n });\r\n }\r\n }\r\n // start the ticker loop\r\n tickerLoop();\r\n };\r\n\r\n /**\r\n * Runs a continuous loop, news ticker-style\r\n */\r\n var tickerLoop = function (resumeSpeed) {\r\n var speed = resumeSpeed ? resumeSpeed : slider.settings.speed,\r\n position = { left: 0, top: 0 },\r\n reset = { left: 0, top: 0 },\r\n animateProperty, resetValue, params;\r\n\r\n // if \"next\" animate left position to last child, then reset left to 0\r\n if (slider.settings.autoDirection === 'next') {\r\n position = el.find('.bx-clone').first().position();\r\n // if \"prev\" animate left position to 0, then reset left to first non-clone child\r\n } else {\r\n reset = slider.children.first().position();\r\n }\r\n animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top;\r\n resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top;\r\n params = { resetValue: resetValue };\r\n setPositionProperty(animateProperty, 'ticker', speed, params);\r\n };\r\n\r\n /**\r\n * Check if el is on screen\r\n */\r\n var isOnScreen = function (el) {\r\n var win = $(window),\r\n viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft()\r\n },\r\n bounds = el.offset();\r\n\r\n viewport.right = viewport.left + win.width();\r\n viewport.bottom = viewport.top + win.height();\r\n bounds.right = bounds.left + el.outerWidth();\r\n bounds.bottom = bounds.top + el.outerHeight();\r\n\r\n return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));\r\n };\r\n\r\n /**\r\n * Initializes keyboard events\r\n */\r\n var keyPress = function (e) {\r\n var activeElementTag = document.activeElement.tagName.toLowerCase(),\r\n tagFilters = 'input|textarea',\r\n p = new RegExp(activeElementTag, ['i']),\r\n result = p.exec(tagFilters);\r\n\r\n if (result == null && isOnScreen(el)) {\r\n if (e.keyCode === 39) {\r\n clickNextBind(e);\r\n return false;\r\n } else if (e.keyCode === 37) {\r\n clickPrevBind(e);\r\n return false;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Initializes touch events\r\n */\r\n var initTouch = function () {\r\n // initialize object to contain all touch values\r\n slider.touch = {\r\n start: { x: 0, y: 0 },\r\n end: { x: 0, y: 0 }\r\n };\r\n slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart);\r\n\r\n //for browsers that have implemented pointer events and fire a click after\r\n //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not\r\n slider.viewport.on('click', '.bxslider a', function (e) {\r\n if (slider.viewport.hasClass('click-disabled')) {\r\n e.preventDefault();\r\n slider.viewport.removeClass('click-disabled');\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Event handler for \"touchstart\"\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var onTouchStart = function (e) {\r\n //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\r\n slider.controls.el.addClass('disabled');\r\n\r\n if (slider.working) {\r\n e.preventDefault();\r\n slider.controls.el.removeClass('disabled');\r\n } else {\r\n // record the original position when touch starts\r\n slider.touch.originalPos = el.position();\r\n var orig = e.originalEvent,\r\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig];\r\n // record the starting touch x, y coordinates\r\n slider.touch.start.x = touchPoints[0].pageX;\r\n slider.touch.start.y = touchPoints[0].pageY;\r\n\r\n if (slider.viewport.get(0).setPointerCapture) {\r\n slider.pointerId = orig.pointerId;\r\n slider.viewport.get(0).setPointerCapture(slider.pointerId);\r\n }\r\n // bind a \"touchmove\" event to the viewport\r\n slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove);\r\n // bind a \"touchend\" event to the viewport\r\n slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd);\r\n slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel);\r\n }\r\n };\r\n\r\n /**\r\n * Cancel Pointer for Windows Phone\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var onPointerCancel = function (e) {\r\n /* onPointerCancel handler is needed to deal with situations when a touchend\r\n doesn't fire after a touchstart (this happens on windows phones only) */\r\n setPositionProperty(slider.touch.originalPos.left, 'reset', 0);\r\n\r\n //remove handlers\r\n slider.controls.el.removeClass('disabled');\r\n slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel);\r\n slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove);\r\n slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd);\r\n if (slider.viewport.get(0).releasePointerCapture) {\r\n slider.viewport.get(0).releasePointerCapture(slider.pointerId);\r\n }\r\n };\r\n\r\n /**\r\n * Event handler for \"touchmove\"\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var onTouchMove = function (e) {\r\n var orig = e.originalEvent,\r\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig],\r\n // if scrolling on y axis, do not prevent default\r\n xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x),\r\n yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y),\r\n value = 0,\r\n change = 0;\r\n\r\n // x axis swipe\r\n if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) {\r\n e.preventDefault();\r\n // y axis swipe\r\n } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) {\r\n e.preventDefault();\r\n }\r\n if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) {\r\n // if horizontal, drag along x axis\r\n if (slider.settings.mode === 'horizontal') {\r\n change = touchPoints[0].pageX - slider.touch.start.x;\r\n value = slider.touch.originalPos.left + change;\r\n // if vertical, drag along y axis\r\n } else {\r\n change = touchPoints[0].pageY - slider.touch.start.y;\r\n value = slider.touch.originalPos.top + change;\r\n }\r\n setPositionProperty(value, 'reset', 0);\r\n }\r\n };\r\n\r\n /**\r\n * Event handler for \"touchend\"\r\n *\r\n * @param e (event)\r\n * - DOM event object\r\n */\r\n var onTouchEnd = function (e) {\r\n slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove);\r\n //enable slider controls as soon as user stops interacing with slides\r\n slider.controls.el.removeClass('disabled');\r\n var orig = e.originalEvent,\r\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig],\r\n value = 0,\r\n distance = 0;\r\n // record end x, y positions\r\n slider.touch.end.x = touchPoints[0].pageX;\r\n slider.touch.end.y = touchPoints[0].pageY;\r\n // if fade mode, check if absolute x distance clears the threshold\r\n if (slider.settings.mode === 'fade') {\r\n distance = Math.abs(slider.touch.start.x - slider.touch.end.x);\r\n if (distance >= slider.settings.swipeThreshold) {\r\n if (slider.touch.start.x > slider.touch.end.x) {\r\n el.goToNextSlide();\r\n } else {\r\n el.goToPrevSlide();\r\n }\r\n el.stopAuto();\r\n }\r\n // not fade mode\r\n } else {\r\n // calculate distance and el's animate property\r\n if (slider.settings.mode === 'horizontal') {\r\n distance = slider.touch.end.x - slider.touch.start.x;\r\n value = slider.touch.originalPos.left;\r\n } else {\r\n distance = slider.touch.end.y - slider.touch.start.y;\r\n value = slider.touch.originalPos.top;\r\n }\r\n // if not infinite loop and first / last slide, do not attempt a slide transition\r\n if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) {\r\n setPositionProperty(value, 'reset', 200);\r\n } else {\r\n // check if distance clears threshold\r\n if (Math.abs(distance) >= slider.settings.swipeThreshold) {\r\n if (distance < 0) {\r\n el.goToNextSlide();\r\n } else {\r\n el.goToPrevSlide();\r\n }\r\n el.stopAuto();\r\n } else {\r\n // el.animate(property, 200);\r\n setPositionProperty(value, 'reset', 200);\r\n }\r\n }\r\n }\r\n slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd);\r\n if (slider.viewport.get(0).releasePointerCapture) {\r\n slider.viewport.get(0).releasePointerCapture(slider.pointerId);\r\n }\r\n };\r\n\r\n /**\r\n * Window resize event callback\r\n */\r\n var resizeWindow = function (e) {\r\n // don't do anything if slider isn't initialized.\r\n if (!slider.initialized) { return; }\r\n // Delay if slider working.\r\n if (slider.working) {\r\n window.setTimeout(resizeWindow, 10);\r\n } else {\r\n // get the new window dimens (again, thank you IE)\r\n var windowWidthNew = $(window).width(),\r\n windowHeightNew = $(window).height();\r\n // make sure that it is a true window resize\r\n // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements\r\n // are resized. Can you just die already?*\r\n if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) {\r\n // set the new window dimens\r\n windowWidth = windowWidthNew;\r\n windowHeight = windowHeightNew;\r\n // update all dynamic elements\r\n el.redrawSlider();\r\n // Call user resize handler\r\n slider.settings.onSliderResize.call(el, slider.active.index);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Adds an aria-hidden=true attribute to each element\r\n *\r\n * @param startVisibleIndex (int)\r\n * - the first visible element's index\r\n */\r\n var applyAriaHiddenAttributes = function (startVisibleIndex) {\r\n var numberOfSlidesShowing = getNumberSlidesShowing();\r\n // only apply attributes if the setting is enabled and not in ticker mode\r\n if (slider.settings.ariaHidden && !slider.settings.ticker) {\r\n // add aria-hidden=true to all elements\r\n slider.children.attr('aria-hidden', 'true');\r\n // get the visible elements and change to aria-hidden=false\r\n slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false');\r\n }\r\n };\r\n\r\n /**\r\n * Returns index according to present page range\r\n *\r\n * @param slideOndex (int)\r\n * - the desired slide index\r\n */\r\n var setSlideIndex = function (slideIndex) {\r\n if (slideIndex < 0) {\r\n if (slider.settings.infiniteLoop) {\r\n return getPagerQty() - 1;\r\n } else {\r\n //we don't go to undefined slides\r\n return slider.active.index;\r\n }\r\n // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop)\r\n } else if (slideIndex >= getPagerQty()) {\r\n if (slider.settings.infiniteLoop) {\r\n return 0;\r\n } else {\r\n //we don't move to undefined pages\r\n return slider.active.index;\r\n }\r\n // set active index to requested slide\r\n } else {\r\n return slideIndex;\r\n }\r\n };\r\n\r\n /**\r\n * ===================================================================================\r\n * = PUBLIC FUNCTIONS\r\n * ===================================================================================\r\n */\r\n\r\n /**\r\n * Performs slide transition to the specified slide\r\n *\r\n * @param slideIndex (int)\r\n * - the destination slide's index (zero-based)\r\n *\r\n * @param direction (string)\r\n * - INTERNAL USE ONLY - the direction of travel (\"prev\" / \"next\")\r\n */\r\n el.goToSlide = function (slideIndex, direction) {\r\n // onSlideBefore, onSlideNext, onSlidePrev callbacks\r\n // Allow transition canceling based on returned value\r\n var performTransition = true,\r\n moveBy = 0,\r\n position = { left: 0, top: 0 },\r\n lastChild = null,\r\n lastShowingIndex, eq, value, requestEl;\r\n // store the old index\r\n slider.oldIndex = slider.active.index;\r\n //set new index\r\n slider.active.index = setSlideIndex(slideIndex);\r\n\r\n // if plugin is currently in motion, ignore request\r\n if (slider.working || slider.active.index === slider.oldIndex) { return; }\r\n // declare that plugin is in motion\r\n slider.working = true;\r\n\r\n performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);\r\n\r\n // If transitions canceled, reset and return\r\n if (typeof (performTransition) !== 'undefined' && !performTransition) {\r\n slider.active.index = slider.oldIndex; // restore old index\r\n slider.working = false; // is not in motion\r\n return;\r\n }\r\n\r\n if (direction === 'next') {\r\n // Prevent canceling in future functions or lack there-of from negating previous commands to cancel\r\n if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) {\r\n performTransition = false;\r\n }\r\n } else if (direction === 'prev') {\r\n // Prevent canceling in future functions or lack there-of from negating previous commands to cancel\r\n if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) {\r\n performTransition = false;\r\n }\r\n }\r\n\r\n // check if last slide\r\n slider.active.last = slider.active.index >= getPagerQty() - 1;\r\n // update the pager with active class\r\n if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); }\r\n // // check for direction control update\r\n if (slider.settings.controls) { updateDirectionControls(); }\r\n // if slider is set to mode: \"fade\"\r\n if (slider.settings.mode === 'fade') {\r\n // if adaptiveHeight is true and next height is different from current height, animate to the new height\r\n if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) {\r\n slider.viewport.animate({ height: getViewportHeight() }, slider.settings.adaptiveHeightSpeed);\r\n }\r\n // fade out the visible child and reset its z-index value\r\n slider.children.filter(':visible').fadeOut(slider.settings.speed).css({ zIndex: 0 });\r\n // fade in the newly requested slide\r\n slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function () {\r\n $(this).css('zIndex', slider.settings.slideZIndex);\r\n updateAfterSlideTransition();\r\n });\r\n // slider mode is not \"fade\"\r\n } else {\r\n // if adaptiveHeight is true and next height is different from current height, animate to the new height\r\n if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) {\r\n slider.viewport.animate({ height: getViewportHeight() }, slider.settings.adaptiveHeightSpeed);\r\n }\r\n // if carousel and not infinite loop\r\n if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) {\r\n if (slider.settings.mode === 'horizontal') {\r\n // get the last child position\r\n lastChild = slider.children.eq(slider.children.length - 1);\r\n position = lastChild.position();\r\n // calculate the position of the last slide\r\n moveBy = slider.viewport.width() - lastChild.outerWidth();\r\n } else {\r\n // get last showing index position\r\n lastShowingIndex = slider.children.length - slider.settings.minSlides;\r\n position = slider.children.eq(lastShowingIndex).position();\r\n }\r\n // horizontal carousel, going previous while on first slide (infiniteLoop mode)\r\n } else if (slider.carousel && slider.active.last && direction === 'prev') {\r\n // get the last child position\r\n eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides);\r\n lastChild = el.children('.bx-clone').eq(eq);\r\n position = lastChild.position();\r\n // if infinite loop and \"Next\" is clicked on the last slide\r\n } else if (direction === 'next' && slider.active.index === 0) {\r\n // get the last clone position\r\n position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position();\r\n slider.active.last = false;\r\n // normal non-zero requests\r\n } else if (slideIndex >= 0) {\r\n //parseInt is applied to allow floats for slides/page\r\n requestEl = slideIndex * parseInt(getMoveBy());\r\n position = slider.children.eq(requestEl).position();\r\n }\r\n\r\n /* If the position doesn't exist\r\n * (e.g. if you destroy the slider on a next click),\r\n * it doesn't throw an error.\r\n */\r\n if (typeof (position) !== 'undefined') {\r\n value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;\r\n // plugin values to be animated\r\n setPositionProperty(value, 'slide', slider.settings.speed);\r\n } else {\r\n slider.working = false;\r\n }\r\n }\r\n if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }\r\n };\r\n\r\n /**\r\n * Transitions to the next slide in the show\r\n */\r\n el.goToNextSlide = function () {\r\n // if infiniteLoop is false and last page is showing, disregard call\r\n if (!slider.settings.infiniteLoop && slider.active.last) { return; }\r\n var pagerIndex = parseInt(slider.active.index) + 1;\r\n el.goToSlide(pagerIndex, 'next');\r\n };\r\n\r\n /**\r\n * Transitions to the prev slide in the show\r\n */\r\n el.goToPrevSlide = function () {\r\n // if infiniteLoop is false and last page is showing, disregard call\r\n if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }\r\n var pagerIndex = parseInt(slider.active.index) - 1;\r\n el.goToSlide(pagerIndex, 'prev');\r\n };\r\n\r\n /**\r\n * Starts the auto show\r\n *\r\n * @param preventControlUpdate (boolean)\r\n * - if true, auto controls state will not be updated\r\n */\r\n el.startAuto = function (preventControlUpdate) {\r\n // if an interval already exists, disregard call\r\n if (slider.interval) { return; }\r\n // create an interval\r\n slider.interval = setInterval(function () {\r\n if (slider.settings.autoDirection === 'next') {\r\n el.goToNextSlide();\r\n } else {\r\n el.goToPrevSlide();\r\n }\r\n }, slider.settings.pause);\r\n // if auto controls are displayed and preventControlUpdate is not true\r\n if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }\r\n };\r\n\r\n /**\r\n * Stops the auto show\r\n *\r\n * @param preventControlUpdate (boolean)\r\n * - if true, auto controls state will not be updated\r\n */\r\n el.stopAuto = function (preventControlUpdate) {\r\n // if no interval exists, disregard call\r\n if (!slider.interval) { return; }\r\n // clear the interval\r\n clearInterval(slider.interval);\r\n slider.interval = null;\r\n // if auto controls are displayed and preventControlUpdate is not true\r\n if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }\r\n };\r\n\r\n /**\r\n * Returns current slide index (zero-based)\r\n */\r\n el.getCurrentSlide = function () {\r\n return slider.active.index;\r\n };\r\n\r\n /**\r\n * Returns current slide element\r\n */\r\n el.getCurrentSlideElement = function () {\r\n return slider.children.eq(slider.active.index);\r\n };\r\n\r\n /**\r\n * Returns a slide element\r\n * @param index (int)\r\n * - The index (zero-based) of the element you want returned.\r\n */\r\n el.getSlideElement = function (index) {\r\n return slider.children.eq(index);\r\n };\r\n\r\n /**\r\n * Returns number of slides in show\r\n */\r\n el.getSlideCount = function () {\r\n return slider.children.length;\r\n };\r\n\r\n /**\r\n * Return slider.working variable\r\n */\r\n el.isWorking = function () {\r\n return slider.working;\r\n };\r\n\r\n /**\r\n * Update all dynamic slider elements\r\n */\r\n el.redrawSlider = function () {\r\n // resize all children in ratio to new screen size\r\n slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth());\r\n // adjust the height\r\n slider.viewport.css('height', getViewportHeight());\r\n // update the slide position\r\n if (!slider.settings.ticker) { setSlidePosition(); }\r\n // if active.last was true before the screen resize, we want\r\n // to keep it last no matter what screen size we end on\r\n if (slider.active.last) { slider.active.index = getPagerQty() - 1; }\r\n // if the active index (page) no longer exists due to the resize, simply set the index as last\r\n if (slider.active.index >= getPagerQty()) { slider.active.last = true; }\r\n // if a pager is being displayed and a custom pager is not being used, update it\r\n if (slider.settings.pager && !slider.settings.pagerCustom) {\r\n populatePager();\r\n updatePagerActive(slider.active.index);\r\n }\r\n if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }\r\n };\r\n\r\n /**\r\n * Destroy the current instance of the slider (revert everything back to original state)\r\n */\r\n el.destroySlider = function () {\r\n // don't do anything if slider has already been destroyed\r\n if (!slider.initialized) { return; }\r\n slider.initialized = false;\r\n $('.bx-clone', this).remove();\r\n slider.children.each(function () {\r\n if ($(this).data('origStyle') !== undefined) {\r\n $(this).attr('style', $(this).data('origStyle'));\r\n } else {\r\n $(this).removeAttr('style');\r\n }\r\n });\r\n if ($(this).data('origStyle') !== undefined) {\r\n this.attr('style', $(this).data('origStyle'));\r\n } else {\r\n $(this).removeAttr('style');\r\n }\r\n $(this).unwrap().unwrap();\r\n if (slider.controls.el) { slider.controls.el.remove(); }\r\n if (slider.controls.next) { slider.controls.next.remove(); }\r\n if (slider.controls.prev) { slider.controls.prev.remove(); }\r\n if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); }\r\n $('.bx-caption', this).remove();\r\n if (slider.controls.autoEl) { slider.controls.autoEl.remove(); }\r\n clearInterval(slider.interval);\r\n if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); }\r\n if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }\r\n //remove self reference in data\r\n $(this).removeData('bxSlider');\r\n };\r\n\r\n /**\r\n * Reload the slider (revert all DOM changes, and re-initialize)\r\n */\r\n el.reloadSlider = function (settings) {\r\n if (settings !== undefined) { options = settings; }\r\n el.destroySlider();\r\n init();\r\n //store reference to self in order to access public functions later\r\n $(el).data('bxSlider', this);\r\n };\r\n\r\n init();\r\n\r\n $(el).data('bxSlider', this);\r\n\r\n // returns the current jQuery object\r\n return this;\r\n};"],"sourceRoot":""}