{"version":3,"file":"application_digibook-fec38e27.js","sources":["../../../app/whitelabels/digibook/assets/javascripts/jquery.flexslider.js","../../../app/whitelabels/digibook/assets/javascripts/custom.js","../../../app/whitelabels/digibook/assets/javascripts/events.js","../../../app/whitelabels/digibook/assets/javascripts/tutors/custom.js","../../../app/whitelabels/digibook/assets/javascripts/tableau/custom.js","../../../app/whitelabels/digibook/assets/javascripts/application.js","../../../app/frontend/entrypoints/application_digibook.js"],"sourcesContent":["/*\n * jQuery FlexSlider v2.2.2\n * Copyright 2012 WooThemes\n * Contributing Author: Tyler Smith\n */\n;\n(function ($) {\n\n //FlexSlider: Object Instance\n $.flexslider = function(el, options) {\n var slider = $(el);\n\n // making variables public\n slider.vars = $.extend({}, $.flexslider.defaults, options);\n\n var namespace = slider.vars.namespace,\n msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,\n touch = (( \"ontouchstart\" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,\n // depricating this idea, as devices are being released with both of these events\n //eventType = (touch) ? \"touchend\" : \"click\",\n eventType = \"click touchend MSPointerUp\",\n watchedEvent = \"\",\n watchedEventClearTimer,\n vertical = slider.vars.direction === \"vertical\",\n reverse = slider.vars.reverse,\n carousel = (slider.vars.itemWidth > 0),\n fade = slider.vars.animation === \"fade\",\n asNav = slider.vars.asNavFor !== \"\",\n methods = {},\n focused = true;\n\n // Store a reference to the slider object\n $.data(el, \"flexslider\", slider);\n\n // Private slider methods\n methods = {\n init: function() {\n slider.animating = false;\n // Get current slide and make sure it is a number\n slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0), 10 );\n if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;\n slider.animatingTo = slider.currentSlide;\n slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);\n slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));\n slider.slides = $(slider.vars.selector, slider);\n slider.container = $(slider.containerSelector, slider);\n slider.count = slider.slides.length;\n // SYNC:\n slider.syncExists = $(slider.vars.sync).length > 0;\n // SLIDE:\n if (slider.vars.animation === \"slide\") slider.vars.animation = \"swing\";\n slider.prop = (vertical) ? \"top\" : \"marginLeft\";\n slider.args = {};\n // SLIDESHOW:\n slider.manualPause = false;\n slider.stopped = false;\n //PAUSE WHEN INVISIBLE\n slider.started = false;\n slider.startTimeout = null;\n // TOUCH/USECSS:\n slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {\n var obj = document.createElement('div'),\n props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];\n for (var i in props) {\n if ( obj.style[ props[i] ] !== undefined ) {\n slider.pfx = props[i].replace('Perspective','').toLowerCase();\n slider.prop = \"-\" + slider.pfx + \"-transform\";\n return true;\n }\n }\n return false;\n }());\n // CONTROLSCONTAINER:\n if (slider.vars.controlsContainer !== \"\") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);\n // MANUAL:\n if (slider.vars.manualControls !== \"\") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);\n\n // RANDOMIZE:\n if (slider.vars.randomize) {\n slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });\n slider.container.empty().append(slider.slides);\n }\n\n slider.doMath();\n\n // INIT\n slider.setup(\"init\");\n\n // CONTROLNAV:\n if (slider.vars.controlNav) methods.controlNav.setup();\n\n // DIRECTIONNAV:\n if (slider.vars.directionNav) methods.directionNav.setup();\n\n // KEYBOARD:\n if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {\n $(document).bind('keyup', function(event) {\n var keycode = event.keyCode;\n if (!slider.animating && (keycode === 39 || keycode === 37)) {\n var target = (keycode === 39) ? slider.getTarget('next') :\n (keycode === 37) ? slider.getTarget('prev') : false;\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n });\n }\n // MOUSEWHEEL:\n if (slider.vars.mousewheel) {\n slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {\n event.preventDefault();\n var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n });\n }\n\n // PAUSEPLAY\n if (slider.vars.pausePlay) methods.pausePlay.setup();\n\n //PAUSE WHEN INVISIBLE\n if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();\n\n // SLIDSESHOW\n if (slider.vars.slideshow) {\n if (slider.vars.pauseOnHover) {\n slider.hover(function() {\n if (!slider.manualPlay && !slider.manualPause) slider.pause();\n }, function() {\n if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();\n });\n }\n // initialize animation\n //If we're visible, or we don't use PageVisibility API\n if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {\n (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();\n }\n }\n\n // ASNAV:\n if (asNav) methods.asNav.setup();\n\n // TOUCH\n if (touch && slider.vars.touch) methods.touch();\n\n // FADE&&SMOOTHHEIGHT || SLIDE:\n if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind(\"resize orientationchange focus\", methods.resize);\n\n slider.find(\"img\").attr(\"draggable\", \"false\");\n\n // API: start() Callback\n setTimeout(function(){\n slider.vars.start(slider);\n }, 200);\n },\n asNav: {\n setup: function() {\n slider.asNav = true;\n slider.animatingTo = Math.floor(slider.currentSlide/slider.move);\n slider.currentItem = slider.currentSlide;\n slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentItem).addClass(namespace + \"active-slide\");\n if(!msGesture){\n slider.slides.on(eventType, function(e){\n e.preventDefault();\n var $slide = $(this),\n target = $slide.index();\n var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container\n if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {\n slider.flexAnimate(slider.getTarget(\"prev\"), true);\n } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + \"active-slide\")) {\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\n }\n });\n }else{\n el._slider = slider;\n slider.slides.each(function (){\n var that = this;\n that._gesture = new MSGesture();\n that._gesture.target = that;\n that.addEventListener(\"MSPointerDown\", function (e){\n e.preventDefault();\n if(e.currentTarget._gesture)\n e.currentTarget._gesture.addPointer(e.pointerId);\n }, false);\n that.addEventListener(\"MSGestureTap\", function (e){\n e.preventDefault();\n var $slide = $(this),\n target = $slide.index();\n if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);\n }\n });\n });\n }\n }\n },\n controlNav: {\n setup: function() {\n if (!slider.manualControls) {\n methods.controlNav.setupPaging();\n } else { // MANUALCONTROLS:\n methods.controlNav.setupManual();\n }\n },\n setupPaging: function() {\n var type = (slider.vars.controlNav === \"thumbnails\") ? 'control-thumbs' : 'control-paging',\n j = 1,\n item,\n slide;\n\n slider.controlNavScaffold = $('
    ');\n\n if (slider.pagingCount > 1) {\n for (var i = 0; i < slider.pagingCount; i++) {\n slide = slider.slides.eq(i);\n item = (slider.vars.controlNav === \"thumbnails\") ? '' : '' + j + '';\n if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {\n var captn = slide.attr( 'data-thumbcaption' );\n if ( '' != captn && undefined != captn ) item += '' + captn + '';\n }\n slider.controlNavScaffold.append('
  1. ' + item + '
  2. ');\n j++;\n }\n }\n\n // CONTROLSCONTAINER:\n (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);\n methods.controlNav.set();\n\n methods.controlNav.active();\n\n slider.controlNavScaffold.delegate('a, img', eventType, function(event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n var $this = $(this),\n target = slider.controlNav.index($this);\n\n if (!$this.hasClass(namespace + 'active')) {\n slider.direction = (target > slider.currentSlide) ? \"next\" : \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n\n });\n },\n setupManual: function() {\n slider.controlNav = slider.manualControls;\n methods.controlNav.active();\n\n slider.controlNav.bind(eventType, function(event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n var $this = $(this),\n target = slider.controlNav.index($this);\n\n if (!$this.hasClass(namespace + 'active')) {\n (target > slider.currentSlide) ? slider.direction = \"next\" : slider.direction = \"prev\";\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n set: function() {\n var selector = (slider.vars.controlNav === \"thumbnails\") ? 'img' : 'a';\n slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);\n },\n active: function() {\n slider.controlNav.removeClass(namespace + \"active\").eq(slider.animatingTo).addClass(namespace + \"active\");\n },\n update: function(action, pos) {\n if (slider.pagingCount > 1 && action === \"add\") {\n slider.controlNavScaffold.append($('
  3. ' + slider.count + '
  4. '));\n } else if (slider.pagingCount === 1) {\n slider.controlNavScaffold.find('li').remove();\n } else {\n slider.controlNav.eq(pos).closest('li').remove();\n }\n methods.controlNav.set();\n (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();\n }\n },\n directionNav: {\n setup: function() {\n var directionNavScaffold = $('');\n\n // CONTROLSCONTAINER:\n if (slider.controlsContainer) {\n $(slider.controlsContainer).append(directionNavScaffold);\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);\n } else {\n slider.append(directionNavScaffold);\n slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);\n }\n\n methods.directionNav.update();\n\n slider.directionNav.bind(eventType, function(event) {\n event.preventDefault();\n var target;\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n update: function() {\n var disabledClass = namespace + 'disabled';\n if (slider.pagingCount === 1) {\n slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');\n } else if (!slider.vars.animationLoop) {\n if (slider.animatingTo === 0) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"prev\").addClass(disabledClass).attr('tabindex', '-1');\n } else if (slider.animatingTo === slider.last) {\n slider.directionNav.removeClass(disabledClass).filter('.' + namespace + \"next\").addClass(disabledClass).attr('tabindex', '-1');\n } else {\n slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');\n }\n } else {\n slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');\n }\n }\n },\n pausePlay: {\n setup: function() {\n var pausePlayScaffold = $('
    ');\n\n // CONTROLSCONTAINER:\n if (slider.controlsContainer) {\n slider.controlsContainer.append(pausePlayScaffold);\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);\n } else {\n slider.append(pausePlayScaffold);\n slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);\n }\n\n methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');\n\n slider.pausePlay.bind(eventType, function(event) {\n event.preventDefault();\n\n if (watchedEvent === \"\" || watchedEvent === event.type) {\n if ($(this).hasClass(namespace + 'pause')) {\n slider.manualPause = true;\n slider.manualPlay = false;\n slider.pause();\n } else {\n slider.manualPause = false;\n slider.manualPlay = true;\n slider.play();\n }\n }\n\n // setup flags to prevent event duplication\n if (watchedEvent === \"\") {\n watchedEvent = event.type;\n }\n methods.setToClearWatchedEvent();\n });\n },\n update: function(state) {\n (state === \"play\") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);\n }\n },\n touch: function() {\n var startX,\n startY,\n offset,\n cwidth,\n dx,\n startT,\n scrolling = false,\n localX = 0,\n localY = 0,\n accDx = 0;\n\n if(!msGesture){\n el.addEventListener('touchstart', onTouchStart, false);\n\n function onTouchStart(e) {\n if (slider.animating) {\n e.preventDefault();\n } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {\n slider.pause();\n // CAROUSEL:\n cwidth = (vertical) ? slider.h : slider. w;\n startT = Number(new Date());\n // CAROUSEL:\n\n // Local vars for X and Y points.\n localX = e.touches[0].pageX;\n localY = e.touches[0].pageY;\n\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\n (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\n (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\n startX = (vertical) ? localY : localX;\n startY = (vertical) ? localX : localY;\n\n el.addEventListener('touchmove', onTouchMove, false);\n el.addEventListener('touchend', onTouchEnd, false);\n }\n }\n\n function onTouchMove(e) {\n // Local vars for X and Y points.\n\n localX = e.touches[0].pageX;\n localY = e.touches[0].pageY;\n\n dx = (vertical) ? startX - localY : startX - localX;\n scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));\n\n var fxms = 500;\n\n if ( ! scrolling || Number( new Date() ) - startT > fxms ) {\n e.preventDefault();\n if (!fade && slider.transitions) {\n if (!slider.vars.animationLoop) {\n dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);\n }\n slider.setProps(offset + dx, \"setTouch\");\n }\n }\n }\n\n function onTouchEnd(e) {\n // finish the touch by undoing the touch session\n el.removeEventListener('touchmove', onTouchMove, false);\n\n if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\n var updateDx = (reverse) ? -dx : dx,\n target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');\n\n if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n } else {\n if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);\n }\n }\n el.removeEventListener('touchend', onTouchEnd, false);\n\n startX = null;\n startY = null;\n dx = null;\n offset = null;\n }\n }else{\n el.style.msTouchAction = \"none\";\n el._gesture = new MSGesture();\n el._gesture.target = el;\n el.addEventListener(\"MSPointerDown\", onMSPointerDown, false);\n el._slider = slider;\n el.addEventListener(\"MSGestureChange\", onMSGestureChange, false);\n el.addEventListener(\"MSGestureEnd\", onMSGestureEnd, false);\n\n function onMSPointerDown(e){\n e.stopPropagation();\n if (slider.animating) {\n e.preventDefault();\n }else{\n slider.pause();\n el._gesture.addPointer(e.pointerId);\n accDx = 0;\n cwidth = (vertical) ? slider.h : slider. w;\n startT = Number(new Date());\n // CAROUSEL:\n\n offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :\n (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (carousel && slider.currentSlide === slider.last) ? slider.limit :\n (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :\n (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;\n }\n }\n\n function onMSGestureChange(e) {\n e.stopPropagation();\n var slider = e.target._slider;\n if(!slider){\n return;\n }\n var transX = -e.translationX,\n transY = -e.translationY;\n\n //Accumulate translations.\n accDx = accDx + ((vertical) ? transY : transX);\n dx = accDx;\n scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));\n\n if(e.detail === e.MSGESTURE_FLAG_INERTIA){\n setImmediate(function (){\n el._gesture.stop();\n });\n\n return;\n }\n\n if (!scrolling || Number(new Date()) - startT > 500) {\n e.preventDefault();\n if (!fade && slider.transitions) {\n if (!slider.vars.animationLoop) {\n dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);\n }\n slider.setProps(offset + dx, \"setTouch\");\n }\n }\n }\n\n function onMSGestureEnd(e) {\n e.stopPropagation();\n var slider = e.target._slider;\n if(!slider){\n return;\n }\n if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {\n var updateDx = (reverse) ? -dx : dx,\n target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');\n\n if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {\n slider.flexAnimate(target, slider.vars.pauseOnAction);\n } else {\n if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);\n }\n }\n\n startX = null;\n startY = null;\n dx = null;\n offset = null;\n accDx = 0;\n }\n }\n },\n resize: function() {\n if (!slider.animating && slider.is(':visible')) {\n if (!carousel) slider.doMath();\n\n if (fade) {\n // SMOOTH HEIGHT:\n methods.smoothHeight();\n } else if (carousel) { //CAROUSEL:\n slider.slides.width(slider.computedW);\n slider.update(slider.pagingCount);\n slider.setProps();\n }\n else if (vertical) { //VERTICAL:\n slider.viewport.height(slider.h);\n slider.setProps(slider.h, \"setTotal\");\n } else {\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) methods.smoothHeight();\n slider.newSlides.width(slider.computedW);\n slider.setProps(slider.computedW, \"setTotal\");\n }\n }\n },\n smoothHeight: function(dur) {\n if (!vertical || fade) {\n var $obj = (fade) ? slider : slider.viewport;\n (dur) ? $obj.animate({\"height\": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());\n }\n },\n sync: function(action) {\n var $obj = $(slider.vars.sync).data(\"flexslider\"),\n target = slider.animatingTo;\n\n switch (action) {\n case \"animate\": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;\n case \"play\": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;\n case \"pause\": $obj.pause(); break;\n }\n },\n uniqueID: function($clone) {\n $clone.find( '[id]' ).each(function() {\n var $this = $(this);\n $this.attr( 'id', $this.attr( 'id' ) + '_clone' );\n });\n return $clone;\n },\n pauseInvisible: {\n visProp: null,\n init: function() {\n var prefixes = ['webkit','moz','ms','o'];\n\n if ('hidden' in document) return 'hidden';\n for (var i = 0; i < prefixes.length; i++) {\n if ((prefixes[i] + 'Hidden') in document)\n methods.pauseInvisible.visProp = prefixes[i] + 'Hidden';\n }\n if (methods.pauseInvisible.visProp) {\n var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,'') + 'visibilitychange';\n document.addEventListener(evtname, function() {\n if (methods.pauseInvisible.isHidden()) {\n if(slider.startTimeout) clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible\n else slider.pause(); //Or just pause\n }\n else {\n if(slider.started) slider.play(); //Initiated before, just play\n else (slider.vars.initDelay > 0) ? setTimeout(slider.play, slider.vars.initDelay) : slider.play(); //Didn't init before: simply init or wait for it\n }\n });\n }\n },\n isHidden: function() {\n return document[methods.pauseInvisible.visProp] || false;\n }\n },\n setToClearWatchedEvent: function() {\n clearTimeout(watchedEventClearTimer);\n watchedEventClearTimer = setTimeout(function() {\n watchedEvent = \"\";\n }, 3000);\n }\n };\n\n // public methods\n slider.flexAnimate = function(target, pause, override, withSync, fromNav) {\n if (!slider.vars.animationLoop && target !== slider.currentSlide) {\n slider.direction = (target > slider.currentSlide) ? \"next\" : \"prev\";\n }\n\n if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n\n if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(\":visible\")) {\n if (asNav && withSync) {\n var master = $(slider.vars.asNavFor).data('flexslider');\n slider.atEnd = target === 0 || target === slider.count - 1;\n master.flexAnimate(target, true, false, true, fromNav);\n slider.direction = (slider.currentItem < target) ? \"next\" : \"prev\";\n master.direction = slider.direction;\n\n if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {\n slider.currentItem = target;\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\n target = Math.floor(target/slider.visible);\n } else {\n slider.currentItem = target;\n slider.slides.removeClass(namespace + \"active-slide\").eq(target).addClass(namespace + \"active-slide\");\n return false;\n }\n }\n\n slider.animating = true;\n slider.animatingTo = target;\n\n // SLIDESHOW:\n if (pause) slider.pause();\n\n // API: before() animation Callback\n slider.vars.before(slider);\n\n // SYNC:\n if (slider.syncExists && !fromNav) methods.sync(\"animate\");\n\n // CONTROLNAV\n if (slider.vars.controlNav) methods.controlNav.active();\n\n // !CAROUSEL:\n // CANDIDATE: slide active class (for add/remove slide)\n if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');\n\n // INFINITE LOOP:\n // CANDIDATE: atEnd\n slider.atEnd = target === 0 || target === slider.last;\n\n // DIRECTIONNAV:\n if (slider.vars.directionNav) methods.directionNav.update();\n\n if (target === slider.last) {\n // API: end() of cycle Callback\n slider.vars.end(slider);\n // SLIDESHOW && !INFINITE LOOP:\n if (!slider.vars.animationLoop) slider.pause();\n }\n\n // SLIDE:\n if (!fade) {\n var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,\n margin, slideString, calcNext;\n\n // INFINITE LOOP / REVERSE:\n if (carousel) {\n //margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;\n margin = slider.vars.itemMargin;\n calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;\n slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;\n } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== \"next\") {\n slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;\n } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== \"prev\") {\n slideString = (reverse) ? 0 : (slider.count + 1) * dimension;\n } else {\n slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;\n }\n slider.setProps(slideString, \"\", slider.vars.animationSpeed);\n if (slider.transitions) {\n if (!slider.vars.animationLoop || !slider.atEnd) {\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n }\n slider.container.unbind(\"webkitTransitionEnd transitionend\");\n slider.container.bind(\"webkitTransitionEnd transitionend\", function() {\n slider.wrapup(dimension);\n });\n } else {\n slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){\n slider.wrapup(dimension);\n });\n }\n } else { // FADE:\n if (!touch) {\n //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);\n //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\n\n slider.slides.eq(slider.currentSlide).css({\"zIndex\": 1}).animate({\"opacity\": 0}, slider.vars.animationSpeed, slider.vars.easing);\n slider.slides.eq(target).css({\"zIndex\": 2}).animate({\"opacity\": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);\n\n } else {\n slider.slides.eq(slider.currentSlide).css({ \"opacity\": 0, \"zIndex\": 1 });\n slider.slides.eq(target).css({ \"opacity\": 1, \"zIndex\": 2 });\n slider.wrapup(dimension);\n }\n }\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);\n }\n };\n slider.wrapup = function(dimension) {\n // SLIDE:\n if (!fade && !carousel) {\n if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {\n slider.setProps(dimension, \"jumpEnd\");\n } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {\n slider.setProps(dimension, \"jumpStart\");\n }\n }\n slider.animating = false;\n slider.currentSlide = slider.animatingTo;\n // API: after() animation Callback\n slider.vars.after(slider);\n };\n\n // SLIDESHOW:\n slider.animateSlides = function() {\n if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget(\"next\"));\n };\n // SLIDESHOW:\n slider.pause = function() {\n clearInterval(slider.animatedSlides);\n slider.animatedSlides = null;\n slider.playing = false;\n // PAUSEPLAY:\n if (slider.vars.pausePlay) methods.pausePlay.update(\"play\");\n // SYNC:\n if (slider.syncExists) methods.sync(\"pause\");\n };\n // SLIDESHOW:\n slider.play = function() {\n if (slider.playing) clearInterval(slider.animatedSlides);\n slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);\n slider.started = slider.playing = true;\n // PAUSEPLAY:\n if (slider.vars.pausePlay) methods.pausePlay.update(\"pause\");\n // SYNC:\n if (slider.syncExists) methods.sync(\"play\");\n };\n // STOP:\n slider.stop = function () {\n slider.pause();\n slider.stopped = true;\n };\n slider.canAdvance = function(target, fromNav) {\n // ASNAV:\n var last = (asNav) ? slider.pagingCount - 1 : slider.last;\n return (fromNav) ? true :\n (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === \"prev\") ? true :\n (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== \"next\") ? false :\n (target === slider.currentSlide && !asNav) ? false :\n (slider.vars.animationLoop) ? true :\n (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== \"next\") ? false :\n (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === \"next\") ? false :\n true;\n };\n slider.getTarget = function(dir) {\n slider.direction = dir;\n if (dir === \"next\") {\n return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;\n } else {\n return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;\n }\n };\n\n // SLIDE:\n slider.setProps = function(pos, special, dur) {\n var target = (function() {\n var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,\n posCalc = (function() {\n if (carousel) {\n return (special === \"setTouch\") ? pos :\n (reverse && slider.animatingTo === slider.last) ? 0 :\n (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :\n (slider.animatingTo === slider.last) ? slider.limit : posCheck;\n } else {\n switch (special) {\n case \"setTotal\": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;\n case \"setTouch\": return (reverse) ? pos : pos;\n case \"jumpEnd\": return (reverse) ? pos : slider.count * pos;\n case \"jumpStart\": return (reverse) ? slider.count * pos : pos;\n default: return pos;\n }\n }\n }());\n\n return (posCalc * -1) + \"px\";\n }());\n\n if (slider.transitions) {\n target = (vertical) ? \"translate3d(0,\" + target + \",0)\" : \"translate3d(\" + target + \",0,0)\";\n dur = (dur !== undefined) ? (dur/1000) + \"s\" : \"0s\";\n slider.container.css(\"-\" + slider.pfx + \"-transition-duration\", dur);\n slider.container.css(\"transition-duration\", dur);\n }\n\n slider.args[slider.prop] = target;\n if (slider.transitions || dur === undefined) slider.container.css(slider.args);\n\n slider.container.css('transform',target);\n };\n\n slider.setup = function(type) {\n // SLIDE:\n if (!fade) {\n var sliderOffset, arr;\n\n if (type === \"init\") {\n slider.viewport = $('
    ').css({\"overflow\": \"hidden\", \"position\": \"relative\"}).appendTo(slider).append(slider.container);\n // INFINITE LOOP:\n slider.cloneCount = 0;\n slider.cloneOffset = 0;\n // REVERSE:\n if (reverse) {\n arr = $.makeArray(slider.slides).reverse();\n slider.slides = $(arr);\n slider.container.empty().append(slider.slides);\n }\n }\n // INFINITE LOOP && !CAROUSEL:\n if (slider.vars.animationLoop && !carousel) {\n slider.cloneCount = 2;\n slider.cloneOffset = 1;\n // clear out old clones\n if (type !== \"init\") slider.container.find('.clone').remove();\n slider.container.append(slider.slides.first().clone().addClass('clone').attr('aria-hidden', 'true')).prepend(slider.slides.last().clone().addClass('clone').attr('aria-hidden', 'true'));\n\t\t methods.uniqueID( slider.slides.first().clone().addClass('clone') ).appendTo( slider.container );\n\t\t methods.uniqueID( slider.slides.last().clone().addClass('clone') ).prependTo( slider.container );\n }\n slider.newSlides = $(slider.vars.selector, slider);\n\n sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;\n // VERTICAL:\n if (vertical && !carousel) {\n slider.container.height((slider.count + slider.cloneCount) * 200 + \"%\").css(\"position\", \"absolute\").width(\"100%\");\n setTimeout(function(){\n slider.newSlides.css({\"display\": \"block\"});\n slider.doMath();\n slider.viewport.height(slider.h);\n slider.setProps(sliderOffset * slider.h, \"init\");\n }, (type === \"init\") ? 100 : 0);\n } else {\n slider.container.width((slider.count + slider.cloneCount) * 200 + \"%\");\n slider.setProps(sliderOffset * slider.computedW, \"init\");\n setTimeout(function(){\n slider.doMath();\n slider.newSlides.css({\"width\": slider.computedW, \"float\": \"left\", \"display\": \"block\"});\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) methods.smoothHeight();\n }, (type === \"init\") ? 100 : 0);\n }\n } else { // FADE:\n slider.slides.css({\"width\": \"100%\", \"float\": \"left\", \"marginRight\": \"-100%\", \"position\": \"relative\"});\n if (type === \"init\") {\n if (!touch) {\n //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"zIndex\": 1 }).eq(slider.currentSlide).css({\"zIndex\": 2}).animate({\"opacity\": 1},slider.vars.animationSpeed,slider.vars.easing);\n } else {\n slider.slides.css({ \"opacity\": 0, \"display\": \"block\", \"webkitTransition\": \"opacity \" + slider.vars.animationSpeed / 1000 + \"s ease\", \"zIndex\": 1 }).eq(slider.currentSlide).css({ \"opacity\": 1, \"zIndex\": 2});\n }\n }\n // SMOOTH HEIGHT:\n if (slider.vars.smoothHeight) methods.smoothHeight();\n }\n // !CAROUSEL:\n // CANDIDATE: active slide\n if (!carousel) slider.slides.removeClass(namespace + \"active-slide\").eq(slider.currentSlide).addClass(namespace + \"active-slide\");\n\n //FlexSlider: init() Callback\n slider.vars.init(slider);\n };\n\n slider.doMath = function() {\n var slide = slider.slides.first(),\n slideMargin = slider.vars.itemMargin,\n minItems = slider.vars.minItems,\n maxItems = slider.vars.maxItems;\n\n slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();\n slider.h = slide.height();\n slider.boxPadding = slide.outerWidth() - slide.width();\n\n // CAROUSEL:\n if (carousel) {\n slider.itemT = slider.vars.itemWidth + slideMargin;\n slider.minW = (minItems) ? minItems * slider.itemT : slider.w;\n slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;\n slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :\n (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :\n (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;\n\n slider.visible = Math.floor(slider.w/(slider.itemW));\n slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;\n slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);\n slider.last = slider.pagingCount - 1;\n slider.limit = (slider.pagingCount === 1) ? 0 :\n (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;\n } else {\n slider.itemW = slider.w;\n slider.pagingCount = slider.count;\n slider.last = slider.count - 1;\n }\n slider.computedW = slider.itemW - slider.boxPadding;\n };\n\n slider.update = function(pos, action) {\n slider.doMath();\n\n // update currentSlide and slider.animatingTo if necessary\n if (!carousel) {\n if (pos < slider.currentSlide) {\n slider.currentSlide += 1;\n } else if (pos <= slider.currentSlide && pos !== 0) {\n slider.currentSlide -= 1;\n }\n slider.animatingTo = slider.currentSlide;\n }\n\n // update controlNav\n if (slider.vars.controlNav && !slider.manualControls) {\n if ((action === \"add\" && !carousel) || slider.pagingCount > slider.controlNav.length) {\n methods.controlNav.update(\"add\");\n } else if ((action === \"remove\" && !carousel) || slider.pagingCount < slider.controlNav.length) {\n if (carousel && slider.currentSlide > slider.last) {\n slider.currentSlide -= 1;\n slider.animatingTo -= 1;\n }\n methods.controlNav.update(\"remove\", slider.last);\n }\n }\n // update directionNav\n if (slider.vars.directionNav) methods.directionNav.update();\n\n };\n\n slider.addSlide = function(obj, pos) {\n var $obj = $(obj);\n\n slider.count += 1;\n slider.last = slider.count - 1;\n\n // append new slide\n if (vertical && reverse) {\n (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);\n } else {\n (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);\n }\n\n // update currentSlide, animatingTo, controlNav, and directionNav\n slider.update(pos, \"add\");\n\n // update slider.slides\n slider.slides = $(slider.vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n //FlexSlider: added() Callback\n slider.vars.added(slider);\n };\n slider.removeSlide = function(obj) {\n var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;\n\n // update count\n slider.count -= 1;\n slider.last = slider.count - 1;\n\n // remove slide\n if (isNaN(obj)) {\n $(obj, slider.slides).remove();\n } else {\n (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();\n }\n\n // update currentSlide, animatingTo, controlNav, and directionNav\n slider.doMath();\n slider.update(pos, \"remove\");\n\n // update slider.slides\n slider.slides = $(slider.vars.selector + ':not(.clone)', slider);\n // re-setup the slider to accomdate new slide\n slider.setup();\n\n // FlexSlider: removed() Callback\n slider.vars.removed(slider);\n };\n\n //FlexSlider: Initialize\n methods.init();\n\n // Ensure the slider isn't focussed if the window loses focus.\n $( window ).blur( function ( e ) {\n focused = false;\n }).focus( function ( e ) {\n focused = true;\n });\n };\n\n \n\n //FlexSlider: Default Settings\n $.flexslider.defaults = {\n namespace: \"flex-\", //{NEW} String: Prefix string attached to the class of every element generated by the plugin\n selector: \".slides > li\", //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril\n animation: \"fade\", //String: Select your animation type, \"fade\" or \"slide\"\n easing: \"swing\", //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!\n direction: \"horizontal\", //String: Select the sliding direction, \"horizontal\" or \"vertical\"\n reverse: false, //{NEW} Boolean: Reverse the animation direction\n animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received \"disable\" classes at either end\n smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode\n startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)\n slideshow: true, //Boolean: Animate slider automatically\n slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds\n animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds\n initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds\n randomize: false, //Boolean: Randomize slide order\n thumbCaptions: false, //Boolean: Whether or not to put captions on thumbnails when using the \"thumbnails\" controlNav.\n\n // Usability features\n pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.\n pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering\n pauseInvisible: true, \t\t//{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.\n useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available\n touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices\n video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches\n\n // Primary Controls\n controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage\n directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)\n prevText: \"Previous\", //String: Set the text for the \"previous\" directionNav item\n nextText: \"Next\", //String: Set the text for the \"next\" directionNav item\n\n // Secondary Navigation\n keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys\n multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.\n mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel\n pausePlay: false, //Boolean: Create pause/play dynamic element\n pauseText: \"Pause\", //String: Set the text for the \"pause\" pausePlay item\n playText: \"Play\", //String: Set the text for the \"play\" pausePlay item\n\n // Special properties\n controlsContainer: \"\", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(\".flexslider-container\"). Property is ignored if given element is not found.\n manualControls: \"\", //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(\".flex-control-nav li\") or \"#tabs-nav li img\", etc. The number of elements in your controlNav should match the number of slides/tabs.\n sync: \"\", //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.\n asNavFor: \"\", //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider\n\n // Carousel Options\n itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.\n itemMargin: 0, //{NEW} Integer: Margin between carousel items.\n minItems: 1, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.\n maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.\n move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.\n allowOneSlide: true, //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide\n\n // Callback API\n start: function(){}, //Callback: function(slider) - Fires when the slider loads the first slide\n before: function(){}, //Callback: function(slider) - Fires asynchronously with each slider animation\n after: function(){}, //Callback: function(slider) - Fires after each slider animation completes\n end: function(){}, //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)\n added: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is added\n removed: function(){}, //{NEW} Callback: function(slider) - Fires after a slide is removed\n init: function() {} //{NEW} Callback: function(slider) - Fires after the slider is initially setup\n };\n\n //FlexSlider: Plugin Function\n $.fn.flexslider = function(options) {\n if (options === undefined) options = {};\n\n if (typeof options === \"object\") {\n return this.each(function() {\n var $this = $(this),\n selector = (options.selector) ? options.selector : \".slides > li\",\n $slides = $this.find(selector);\n\n if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {\n $slides.fadeIn(400);\n if (options.start) options.start($this);\n } else if ($this.data('flexslider') === undefined) {\n new $.flexslider(this, options);\n }\n });\n } else {\n // Helper strings to quickly perform functions on the slider\n var $slider = $(this).data('flexslider');\n switch (options) {\n case \"play\": $slider.play(); break;\n case \"pause\": $slider.pause(); break;\n case \"stop\": $slider.stop(); break;\n case \"next\": $slider.flexAnimate($slider.getTarget(\"next\"), true); break;\n case \"prev\":\n case \"previous\": $slider.flexAnimate($slider.getTarget(\"prev\"), true); break;\n default: if (typeof options === \"number\") $slider.flexAnimate(options, true);\n }\n }\n };\n})(jQuery);\n","\n$(function () {\n //navbar bg on window scroll\n if ($(window).scrollTop() > 200) {\n $(\".nav-bar\").addClass(\"coloredBG\");\n $(\".logo\").addClass(\"show\");\n }\n\n $(window).scroll(function scrolledNavStyles() {\n if ($(window).scrollTop() > 120) {\n $(\".nav-bar\").addClass(\"coloredBG\");\n $(\".logo\").addClass(\"show\");\n } else {\n $(\".nav-bar\").removeClass(\"coloredBG\");\n $(\".logo\").removeClass(\"show\");\n }\n });\n //navbar bg on window scroll // end\n\n var $myCarousel = $('header.carousel');\n // Initialize carousel\n $myCarousel.carousel({\n interval: 5000\n });\n //*****************************//\n // ** slider for reviews box **\n var $myCarousel2 = $('#bottom-slider');\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000\n });\n\n //*****************************//\n // slider on genitori page\n var $myCarousel2 = $('#genitori-slider');\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000\n });\n\n $myCarousel2.bind('slid.bs.carousel', function (e) {\n var indx = $('ol.carousel-indicators li.active').data('slide-to');\n $('.genitori .box-slider a').each(function() {\n $(this).removeClass('focused');\n });\n $('div.slider-console a[data-bs-target=\"#genitori-slider\"][data-bs-slide-to='+indx+']').addClass('focused');\n });\n\n var $myCarousel3 = $('#insegnanti-slider');\n // Initialize carousel\n $myCarousel3.carousel({\n interval: 5000\n });\n //*****************************//\n // slider on genitori page\n var $myCarouselBlog = $('#blog-slider');\n // Initialize carousel\n $myCarouselBlog.carousel({\n interval: 5000\n });\n //*****************************//\n // slider on insegnanti page\n // Instantiate the Bootstrap carousel\n $('.multi-item-carousel').carousel({\n interval: false\n });\n // for every slide in carousel, copy the next slide's item in the slide.\n // Do the same for the next, next item.\n $('.multi-item-carousel .item').each(function(){\n var next = $(this).next();\n if (!next.length) {\n next = $(this).siblings(':first');\n }\n next.children(':first-child').clone().appendTo($(this));\n\n if (next.next().length>0) {\n next.next().children(':first-child').clone().appendTo($(this));\n } else {\n $(this).siblings(':first').children(':first-child').clone().appendTo($(this));\n }\n });\n\n\n\n // Select all links with hashes\n $('a.scrollAnimation[href*=\"#\"]')\n // Remove links that don't actually link to anything\n .not('[href=\"#\"]')\n .not('[href=\"#0\"]')\n .click(function(event) {\n // On-page links\n if (\n location.pathname.replace(/^\\//, '') == this.pathname.replace(/^\\//, '')\n &&\n location.hostname == this.hostname\n ) {\n // Figure out element to scroll to\n var target = $(this.hash);\n target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');\n // Does a scroll target exist?\n if (target.length) {\n // Only prevent default if animation is actually gonna happen\n event.preventDefault();\n $('html, body').animate({\n scrollTop: target.offset().top\n }, 1000, function() {\n // Callback after animation\n // Must change focus!\n var $target = $(target);\n $target.focus();\n if ($target.is(\":focus\")) { // Checking if the target was focused\n return false;\n } else {\n $target.attr('tabindex','-1'); // Adding tabindex for elements not focusable\n $target.focus(); // Set focus again\n };\n });\n }\n }\n });\n});\n\n//*********************************************************************//\n//**** header carousel scripts for text and buttons animations ****//\n//*********************************************************************//\n// slider on the homepage\n\n\n $(document).ready(function () {\n $('#reg_teacher_form').submit(function() {\n return validate(this);\n });\n\n if($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css('display', 'none');\n }\n });\n\n function toggle_visibility(id) {\n var e = document.getElementById(id);\n if(e.style.display != 'none')\n e.style.display = 'none';\n else\n e.style.display = 'block';\n }\n\n $(document).on('change focusout', '[data-purpose=\"fill-dropdown\"]', function(e){\n\n var input = $(this).closest('.dynamic_section').find('input')[1];\n $.each($( '[data-purpose=\"auto-school\"]' ), function(idx, v){\n set_autocomplete_school($(v));\n });\n });\n\n $('[data-purpose=\"fill-dropdown\"]').change();\n\n window.add_school = function (){\n if($(\"#countainer_schools\").children().length < 5) {\n var new_block = $(\".dynamic_section:first\").clone();\n var nonloso = $(\"#countainer_schools\").append( new_block );\n $(\"#countainer_schools .dynamic_section\").last().find('input').val('');\n $(\"#countainer_schools .dynamic_section\").last().find('select option').remove();\n set_autocomplete_city(new_block.find('[data-purpose=\"fill-dropdown\"]'));\n $(\"#countainer_schools .dynamic_section\").last().find('input').val('');\n $(\"#countainer_schools .dynamic_section\").last().find('select option').remove();\n // set_autocomplete_school(new_block.find('[data-purpose=\"auto-school\"]'));\n $(\".remove_school_link\").css('display', 'block');\n assign_city_events();\n }\n }\n\n window.remove_school = function remove_school(me){\n if($(\"#countainer_schools\").children().length > 1) {\n $(me).closest(\".dynamic_section\").remove();\n }\n if($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css('display', 'none');\n }\n }\n\n function isOdd(value) {\n if (value%2 != 0)\n return true;\n else\n return false;\n }\n\n function update_panel_school_subjects(me){\n var summary = $('#school_subject_summary').text()\n var selected = $(me).text();\n $('#school_subject_summary').text(summary += selected);\n }\n\n $(document).on('click', 'input[data-purpose=\"fill_summary_school_subjects\"]', function() {\n $(\".panel_checkboxes\").css('display', 'block');\n var $checked = $('input:checked');\n var texts = $checked.map(function(i, el) {\n return $(el).closest('label').find('span').html();\n });\n $('#school_subject_summary').text($.makeArray(texts).join(', '));\n });\n\n function trim(s){\n if(s != null){\n s = s.replace(/(^\\s*)|(\\s*$)/gi,\"\");\n s = s.replace(/[ ]{2,}/gi,\" \");\n s = s.replace(/\\n /,\"\\n\"); return s;\n }\n }\n\n $('#areadropdown').change(function(e){\n var container1 = document.getElementById(\"container_school_subjects_1\");\n var container2 = document.getElementById(\"container_school_subjects_2\");\n $('#school_subject_summary').text('');\n container1.innerHTML = '';\n container2.innerHTML = '';\n var selected = this.value.split('-');\n var term = trim(selected[0]);\n var area = trim(selected[1]);\n var query = \"/profile/school-subject?term=\"+term;\n if(area != null){\n query+=\"&area=\"+area;\n }\n $.getJSON(query, function(schoolSubjects) {\n for(var i = 0; i < schoolSubjects.length; i++) {\n var obj = schoolSubjects[i];\n var target = container1\n if(isOdd(i))\n target = container2;\n\n var content = '
    ';\n content += '';\n content += ''\n content += '
    ';\n\n $(content).appendTo(target);\n };\n })\n }).change();\n\n // $(document).ready(function (){\n // var pickerOpts = {\n // monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',\n // 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],\n // monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',\n // 'Lug','Ago','Set','Ott','Nov','Dic'],\n // dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],\n // dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],\n // dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],\n // prevText: '<Prec', prevStatus: '',\n // prevJumpText: '<<', prevJumpStatus: '',\n // nextText: 'Succ>', nextStatus: '',\n // nextJumpText: '>>', nextJumpStatus: '',\n // currentText: 'Oggi', currentStatus: '',\n // todayText: 'Oggi', todayStatus: '',\n // clearText: '-', clearStatus: '',\n // closeText: 'Chiudi', closeStatus: '',\n // yearStatus: '', monthStatus: '',\n // weekText: 'Sm', weekStatus: '',\n // dayStatus: 'DD d MM',\n // defaultStatus: '',\n // dateFormat: 'dd/mm/yy',\n // firstDay: 1,\n // isRTL: false,\n // showButtonPanel: false,\n // changeMonth: true,\n // changeYear: true,\n // yearRange: '1920:2020',\n // defaultDate: new Date(1980, 01, 01)\n // };\n // $(\"#profile_birthdate\").datepicker(pickerOpts);\n\n\n // });\n\n window.toTitleCase = function toTitleCase(str){\n return str.replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});\n }\n\n function set_autocomplete_city(obj) {\n obj.autocomplete({\n minLength: 2,\n delay: 500,\n source: \"/school_data/cities_list_by_name\",\n source: function (request, response) {\n // request.term is the term searched for.\n // response is the callback function you must call to update the autocomplete's\n // suggestion list.\n var nation = $('#nation').val();\n var params = { term: request.term };\n if (nation !== undefined) {params.nation = nation};\n $.ajax({\n url: \"/school_data/cities_list_by_name\",\n data: params,\n dataType: \"json\",\n success: response,\n error: function () {\n response([]);\n }\n });\n },\n\n focus: function( event, ui ) {\n obj.val( ui.item.label );\n return false;\n },\n\n select: function( event, ui ) {\n obj.val( toTitleCase(ui.item.city_name) );\n // select the element in dom with id=\"city\" without using jquery\n document.getElementById(\"city\").setAttribute('data-city-id', ui.item.id);\n return false;\n }\n })\n .data( \"ui-autocomplete\" )._renderItem = function( ul, item ) {\n return $( \"
  5. \" )\n .append( \"\" + toTitleCase(item.city_name) + \"\" )\n .appendTo( ul );\n };\n }\n\n function set_autocomplete_school(obj) {\n var city = $(obj).closest('.dynamic_section').find('input')[0].value;\n obj.autocomplete({\n minLength: 2,\n source: \"/profile/school-list-by-name?city=\"+city,\n\n focus: function( event, ui ) {\n obj.val( ui.item.label );\n return false;\n },\n\n select: function( event, ui ) {\n obj.val( toTitleCase(ui.item.name) );\n $(obj).closest('.dynamic_section').find('.id_school').val(ui.item.id);\n $(obj).closest('.dynamic_section').find('.auto_mail').val(ui.item.email);\n $('.mail_miur').val('');\n return false;\n }\n })\n .data( \"ui-autocomplete\" )._renderItem = function( ul, item ) {\n return $( \"
  6. \" )\n .append( \"\" + toTitleCase(item.name) + \"\" )\n .appendTo( ul );\n };\n }\n\n $(function(){\n $(document).on('click', '.mail_miur', function() {\n $.each($( '.dynamic_section :input' ), function(idx, v){\n $(v).val(null);\n });\n })\n });\n\n $(function() {\n $.each($( '[data-purpose=\"fill-dropdown\"]' ), function(idx, v){\n set_autocomplete_city($(v));\n });\n });\n\n $(function() {\n $.each($( '[data-purpose=\"open-modal\"]' ), function(){\n $('#post_reg_popup').foundation('reveal', 'open');\n });\n });\n\n $(function() {\n var searchStyle = $('[data-purpose=\"virtual_class_search_style\"]').get(0);\n if ($('[data-purpose=\"virtual_class_search\"]').length){\n $('[data-purpose=\"virtual_class_search\"]').get(0).addEventListener('input', function() {\n if (!this.value) {\n searchStyle.innerHTML = \"\";\n return;\n }\n searchStyle.innerHTML = \".searchable:not([data-index*=\\\"\" + this.value.toLowerCase() + \"\\\"]) { display: none; }\";\n });\n }\n });\n\n function update_school_mail(){\n $('#school_subject_summary').text(summary += selected);\n }\n\n $(document).on('change', '[data-purpose=\"virtual_class_jump\"]', function() {\n document.location.href = this.options[this.selectedIndex].value;\n });\n\n var hide_show_others = function(event) {\n $(\".show_hide_others\").toggle();\n content = ($('.show_hide_others_link').html().trim() == \"Mostra altre della tua scuola:\" ? \"Nascondi altre della tua scuola:\" : \"Mostra altre della tua scuola:\");\n return $('.show_hide_others_link').html(content);\n };\n\n $(document).on('ready page:load', function() {\n return $(document).on('click', '.show_hide_others_link', hide_show_others);\n });\n\n $(document).on('click', 'a', function(e) {\n if (this.pathname === window.location.pathname && /Modal$/.test(this.hash) && $(this.hash).length) {\n e.preventDefault();\n $(this.hash).foundation('reveal', 'open');\n }\n });\n\n $(function() {\n if (/Modal$/.test(window.location.hash) && $(window.location.hash).length) {\n $(window.location.hash).foundation('reveal', 'open');\n }\n });\n\n // $(function() {\n // $('.with_smooth_scroll').smoothScroll();\n // });\n\n\n $(document).on('click', '.hide_strip_button', function hideButton() {\n $('.containg_strip').css('visibility', 'hidden');\n });\n\n $(document).on('change', '[data-purpose=\"render_modal_activation\"]', function() {\n var brandId = $('[data-purpose=\"render_modal_activation\"]').val();\n var divToShow = ['#modal_activation_for_brand_id_', brandId].join('');\n $('[id^=modal_activation_for_brand_id_]').hide();\n $(divToShow).show();\n });\n\n $('#user_pwd').capsChecker({\n capson: function(e, isOn) {\n $('.registrazione_pw span.capsLockMessage').html('MAIUSC BLOCK attivato');\n },\n capsoff: function(e, isOn) {\n $('.registrazione_pw span.capsLockMessage').html('');\n }\n });\n\n $(document).on('click', '[data-purpose=\"with-book-stats\"]', function(e) {\n e.preventDefault();\n var query = this.href;\n $.getJSON(query, function(data) {\n var source = $(\"#bookStatModalTemplate\").html();\n var template = Handlebars.compile(source);\n var html = template(data);\n $('#bookStatModal').html(html).foundation('reveal', 'open')\n });\n });\n\n $(document).on('change', 'select[data-purpose=\"hideOrShowSchool\"]', function(e) {\n if(e.target.value == 'teacher'){\n $('.hide_or_show_school').show();\n } else{\n $('.hide_or_show_school').hide();\n }\n });\n\n $(document).on('click', '#open_drop_for_login_menu img', function(e){\n e.preventDefault();\n Foundation.libs.dropdown.open($('#drop_for_login_menu'),$('#open_drop_for_login_menu'))\n return false;\n });\n\n $(document).on('click', '[data-purpose=\"showJsonHelp\"]', function(e){\n e.preventDefault();\n $('#help_for_json').toggle();\n $('[data-purpose=\"showJsonHelp\"]').text($('#help_for_json').is(':visible') ? 'Nascondi' : 'Mostra esempio');\n return false;\n });\n\n $(document).on('click', '[data-purpose=\"changeWelcomeSlideshow\"]', function(a) {\n $('[class^=welcome_slideshow_content_panel_activate]').removeClass('block');\n var target = $(this).attr('data-bs-target');\n var divToShow = ['.welcome_slideshow_content_panel_', target].join('');\n var cellToActivate = ['.welcome_cell_', target].join('');\n $('[class^=welcome_slideshow_content_panel_]').hide();\n $('[class^=welcome_cell_]').removeClass('welcome_selected_cell');\n $(divToShow).show();\n $(cellToActivate).addClass('welcome_selected_cell');\n window.location.hash = target;\n return false;\n });\n\n $(function(){\n var welcomeTarget = window.location.hash.substring(1);\n if(welcomeTarget && /activate|downloadapp|downloadbook|profile/.test(welcomeTarget)){\n $('[class^=welcome_slideshow_content_panel_]').hide();\n $('.welcome_slideshow_content_panel_' + welcomeTarget).show();\n $('[class^=welcome_cell_]').removeClass('welcome_selected_cell');\n $(['.welcome_cell_', welcomeTarget].join('')).addClass('welcome_selected_cell');\n }\n });\n\n $(function(){\n $('img[usemap]').rwdImageMaps();\n\n $('.welcome_carousel').flexslider({\n animation: \"slide\",\n controlNav: false,\n animationLoop: true,\n slideshow: false,\n minItems: 4,\n itemWidth: 150,\n itemMargin: 5,\n });\n });\n\n $(document).on('click', '.slide_carousel', function(a) {\n var slideNumber = $(this).attr('data-orbit-slide-number');\n $('#welcomeExerciseModal').foundation('reveal', 'open');\n $(\"#exerciseOrbit\").siblings(\".orbit-bullets\").find(\"[data-orbit-slide='\"+slideNumber+\"']\").click();\n });\n\n $(document).on('click', '#welcomeExerciseModal a.close-reveal-modal', function(a) {\n $('#welcomeExerciseModal').foundation('reveal', 'close');\n });\n\n $(document).on('click', '.clearing-blackout', function(e){\n // $('a.clearing-close').trigger('click');\n });\n","$(document).ready(function () {\n // hide fullname if avatar is clicked and show when not clicked\n $('#drop-avatar').change(function() {\n if (this.checked) {\n $('#fullname-header').hide();\n } else {\n $('#fullname-header').show();\n }\n });\n});","//= require tutors/check_box_form\r\n//= require tutors/flash\r\n//= require tutors/login\r\n\r\n$(document).ready(function () {\r\n //navbar bg on window scroll\r\n if ($(window).scrollTop() > 200) {\r\n $(\".nav-bar\").addClass(\"coloredBG\");\r\n $(\".logo\").addClass(\"show\");\r\n }\r\n\r\n // search-navbar class switch to open the input\r\n $(\".search-form-opener\").on(\"click\", function() {\r\n $(this).prev().toggleClass(\"opened\");\r\n });\r\n\r\n});\r\n\r\n//navbar bg on window scroll\r\n$(window).scroll(function scrolledNavStyles() {\r\n if ($(window).scrollTop() > 120) {\r\n $(\".nav-bar\").addClass(\"coloredBG\");\r\n $(\".logo\").addClass(\"show\");\r\n } else {\r\n $(\".nav-bar\").removeClass(\"coloredBG\");\r\n $(\".logo\").removeClass(\"show\");\r\n }\r\n});\r\n\r\n$(function () {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip()\r\n})\r\n","$(document).ready(function () {\n var viz;\n var div = document.getElementById('tableau-viz-cont');\n\n var options = {\n hideTabs: true,\n hideToolbar: true,\n width: \"1016px\",\n height: \"964px\"\n };\n\n function createViz(url) {\n if (!div) {\n return;\n }\n if (viz) {\n viz.dispose();\n }\n viz = new tableau.Viz(div, url, options);\n }\n\n function select($el) {\n var url = $el.attr('href');\n if (!viz || viz.getUrl() !== url) {\n createViz(url);\n }\n }\n\n var first = $('.tableau-wb-link').first();\n if (first) {\n select(first);\n }\n\n $('.tableau-wb-link').on('click', function(evt) {\n evt.preventDefault();\n select($(this));\n });\n\n});\n","\nimport \"@hotwired/turbo-rails\";\nimport \"jquery\"\nimport \"parsleyjs/src/parsley.js\";\nimport \"parsleyjs/src/i18n/fr.js\";\nimport \"parsleyjs/src/i18n/es.js\";\nimport \"parsleyjs/src/i18n/it.js\";\nimport \"parsleyjs/src/i18n/de.js\";\nimport \"jquery-ui/dist/jquery-ui.js\";\n// import \"jquery-smooth-scroll\"\n// import \"bootstrap/dist/js/bootstrap.bundle.js\";\nimport \"moment/src/moment.js\";\nimport \"moment/src/locale/de.js\";\nimport \"moment/src/locale/es.js\";\nimport \"moment/src/locale/fr.js\";\nimport \"moment/src/locale/it.js\";\nimport \"@vendor/jquery.rwdImageMaps.js\";\nimport \"@vendor/jquery.capsChecker.js\";\nimport \"@vendor/handlebars-v1.2.0\";\nimport \"./jquery.flexslider.js\"\n// import \"bootstrap-datetimepicker\"\n// import \"dataTables/jquery.dataTables\"\n\n\nimport \"./custom.js\"\nimport \"./events.js\"\nimport \"./tutors/custom.js\"\nimport \"./tableau/custom.js\"\n\n$(document).ready(function(){\n $('[data-bs-toggle=\"tooltip\"]').tooltip();\n\n $(function() {\n setTimeout(function(){\n $('.alert').slideUp(500);\n }, 5000);\n });\n\n $(\"select[name='filter_for_publisher_select']\").on('change', function() {\n var url = $(this).val();\n if (url) { // require a URL\n window.location = url; // redirect\n }\n return false;\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name!='commit']\").on('click', function(event) {\n event.preventDefault();\n manageStepChange(this);\n });\n\n $('header.user-role-select-form .flat-box-steps-circle div').on('click', function() {\n manageStepCircles(this);\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name='commit']\").on('click', function(event) {\n event.preventDefault();\n $(this).closest('form').submit();\n });\n\n var userLang = navigator.language || navigator.userLanguage;\n userLang = userLang.substring(0, 2).toLowerCase();\n if (!['it', 'en', 'fr', 'de', 'es'].includes(userLang)) {\n userLang = 'en';\n }\n window.Parsley.setLocale(userLang);\n if($('#new_user').length != 0) {\n $('#new_user').parsley();\n }\n\n $('header.user-role-select-form input').on('change keyup', function() {\n manageInputChange(this);\n });\n\n $('.step-1-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-1-role1 select').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role1 select').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-3-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n $('.step-1-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-1-role1 select').on('change keyup', function() {\n $('.userbday-day').parsley().validate();\n $('.userbday-month').parsley().validate();\n $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-1-role3 select').on('change keyup', function() {\n $('.userbday-day').parsley().validate();\n $('.userbday-month').parsley().validate();\n $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role3 select').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-1-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-1-role2 select').on('change keyup', function() {\n $('.userbday-day').parsley().validate();\n $('.userbday-month').parsley().validate();\n $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-2-role2 select').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-3-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n $('.step-3-role2 select').on('change keyup', function() {\n $('.parentbday-day').parsley().validate();\n $('.parentbday-month').parsley().validate();\n $('.parentbday-year').parsley().validate();\n manageDisableBtn(this, 3);\n });\n\n $('.step-4-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 4);\n });\n\n $('.step-3-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n // ugly hack to bypass a chrome bug that ignores autocomplete=\"off\" attribute\n $(\"#city\").attr( \"autocomplete\", \"none\" );\n\n $('.ui-autocomplete').on('click', function(event) {\n var sel = $('#school_id');\n var city = $('#city').val();\n var nation = $('#nation').val();\n sel.find('option').remove();\n window.fillSchools(sel, city, nation);\n });\n\n $('#header.user-role-select-form select#nation').on('change', function(event) {\n $('#city').val('');\n $('#school_id').find('option').remove();\n });\n\n $('#header.user-role-select-form select#nation').on('change', function() {\n if ($(this).val() == \"NP\") {\n $('.school-inputs').hide();\n $('#city').prop('required',false);\n $('#city').attr('data-parsley-required', 'false');\n $('#school_id').prop('required',false);\n $('#school_id').attr('data-parsley-required', 'false');\n $('#city').val('');\n $('#school_id').empty();\n $('#nation').parsley().validate();\n manageDisableBtn(this, 1);\n } else {\n $('.school-inputs').show();\n $('#city').prop('required',true);\n $('#city').attr('data-parsley-required', 'true');\n $('#school_id').prop('required',true);\n $('#school_id').attr('data-parsley-required', 'true');\n }\n });\n\n // required to avoid double-click on submit button\n $(\".btn-signup-flow-last\").one('click', function (event) {\n $(this).prop('disabled', true);\n });\n $(\".btn-signup-flow-last\").dblclick(function(e){\n e.preventDefault();\n });\n\n\n $('#header.user-role-select-form select#nation').on('change', function() {\n if ($(this).val() == \"NP\") {\n $('.school-inputs').hide();\n $('#city').prop('required',false);\n $('#city').attr('data-parsley-required', 'false');\n $('#school_id').prop('required',false);\n $('#school_id').attr('data-parsley-required', 'false');\n $('#city').val('');\n $('#school_id').empty();\n $('#nation').parsley().validate();\n manageDisableBtn(this, 1);\n } else {\n $('.school-inputs').show();\n $('#city').prop('required',true);\n $('#city').attr('data-parsley-required', 'true');\n $('#school_id').prop('required',true);\n $('#school_id').attr('data-parsley-required', 'true');\n }\n });\n\n // Required to trigger validation when step 1 is\n // completely autofilled with oauth data\n $( \"#user_name\" ).trigger( \"change\" );\n\n // Is `n` a number or numeric string (eg \"3\")?\n function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n };\n\n // Pad `n` with `z` (or `0` by default) to `width`.\n function zeroPad(n, width, z) {\n z = z || '0';\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n };\n\n window.Parsley\n .addValidator('checkOverAge', {\n requirementType: 'string',\n validateString: function(value, requirements) {\n var classId = requirements.split('-')[0];\n var age = requirements.split('-')[1];\n var day = $('.' + classId + '-day').val(),\n month = $('.' + classId + '-month').val(),\n year = $('.' + classId + '-year').val();\n\n if (isNumeric(day) === false\n || isNumeric(month) === false\n || isNumeric(year) === false) {\n return false;\n };\n\n day = zeroPad(day, 2);\n month = zeroPad(month, 2);\n year = zeroPad(year, 4);\n\n var inputDate = moment(year + '-' + month + '-' + day, 'YYYY-MM-DD');\n var birthDate = moment().subtract(age, 'years');\n\n if (inputDate.isValid() && inputDate <= birthDate) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n window.Parsley\n .addValidator('checkUnderAge', {\n requirementType: 'string',\n validateString: function(value, requirements) {\n var classId = requirements.split('-')[0];\n var age = requirements.split('-')[1];\n var day = $('.' + classId + '-day').val(),\n month = $('.' + classId + '-month').val(),\n year = $('.' + classId + '-year').val();\n\n if (isNumeric(day) === false\n || isNumeric(month) === false\n || isNumeric(year) === false) {\n return false;\n };\n\n day = zeroPad(day, 2);\n month = zeroPad(month, 2);\n year = zeroPad(year, 4);\n\n var inputDate = moment(year + '-' + month + '-' + day, 'YYYY-MM-DD');\n var birthDate = moment().subtract(age, 'years');\n\n if (inputDate.isValid() && inputDate > birthDate) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n window.Parsley.addValidator(\"rejectEmoji\", {\n // requirementType: \"string\",\n validateString: function (value) {\n var regex = new RegExp(\n /[\\u{1f300}-\\u{1f5ff}\\u{1f900}-\\u{1f9ff}\\u{1f600}-\\u{1f64f}\\u{1f680}-\\u{1f6ff}\\u{2600}-\\u{26ff}\\u{2700}-\\u{27bf}\\u{1f1e6}-\\u{1f1ff}\\u{1f191}-\\u{1f251}\\u{1f004}\\u{1f0cf}\\u{1f170}-\\u{1f171}\\u{1f17e}-\\u{1f17f}\\u{1f18e}\\u{3030}\\u{2b50}\\u{2b55}\\u{2934}-\\u{2935}\\u{2b05}-\\u{2b07}\\u{2b1b}-\\u{2b1c}\\u{3297}\\u{3299}\\u{303d}\\u{00a9}\\u{00ae}\\u{2122}\\u{23f3}\\u{24c2}\\u{23e9}-\\u{23ef}\\u{25b6}\\u{23f8}-\\u{23fa}]/gu\n );\n return !regex.test(value);\n },\n });\n\n window.Parsley.addAsyncValidator(\n \"emailUnique\",\n function (xhr) {\n // Ritorna true anche se la richiesta non funziona per far\n // comunque andare avanti l'utente.\n // La validazione della mail c'è comunque alla fine del form.\n return xhr.status !== 200 || !xhr.responseJSON.found;\n },\n \"/api/v5/users/email/check?email={value}\"\n );\n\n});\n\nvar getCurrentStep = window.getCurrentStep = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n return curStep;\n};\n\nvar manageDisableBtn = window.manageDisableBtn = function($this, step) {\n var btn = $($this).closest('.signup-steps').find(\"input[type='submit']\");\n var filled = $('#new_user').parsley().isValid({group: 'step_' + step});\n if (filled === true) {\n $(btn).prop('disabled', false);\n } else {\n $(btn).prop('disabled', true);\n }\n};\n\nvar onPrivaciesChange = window.onPrivaciesChange = function($this, step) {\n if ($($this).is(':checked')) {\n $($this).attr('value', '1');\n $($this).attr('checked', true);\n } else {\n $($this).attr('value', '');\n $($this).attr('checked', null);\n }\n manageDisableBtn($this, step);\n};\n\nvar dateSeparator = '/';\n\nvar correctCaptcha = window.correctCaptcha = function(response) {\n $('#recaptcha_status').val('1');\n var classesParent = $(\".g-recaptcha\").closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n manageDisableBtn(\".g-recaptcha\", curStep);\n};\n\nvar manageStepCircles = window.manageStepCircles = function($this) {\n var currentIndex = $($this).siblings('.active').attr('class').split(' ')[0].split('-')[1];\n var selected = $($this).attr('class').split(' ')[0];\n var selectedIndex = selected.split('-')[1];\n if (selectedIndex*1 < currentIndex*1) {\n $('.flat-box.signup-steps').hide();\n $('.flat-box-header.signup-steps').hide();\n $('.flat-box-steps-circle').hide();\n $('.flat-box.signup-steps.'+ selected).show();\n $('.flat-box-header.signup-steps.'+ selected).show();\n $('.flat-box-steps-circle.'+selected).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n }\n};\n\nvar manageInputChange = window.manageInputChange = function($this) {\n var step = getCurrentStep($this);\n if ($($this).is(':checkbox')) {\n if ($($this).attr('id') == 'checkbox-form-tos_agreement') {\n $('.privacies input:checkbox').prop('checked', $($this).is(':checked'));\n $('.privacies input:checkbox').each(function() {\n onPrivaciesChange(this);\n });\n } else {\n $('#checkbox-form-tos_agreement').prop('checked', false);\n $('#checkbox-form-tos_agreement').attr('value', '');\n }\n onPrivaciesChange($this, step);\n }\n};\n\nvar manageStepChange = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep\n\n // Modification requested by DeA, to skip school selection if already provided in oauth data\n if ((curStep == 1) && ($('#school_id').val() != '') && ($('#school_id').val() != null)) {\n nextStep = 3;\n manageDisableBtn($('#nation'), 2); // if we skip step 2, its \"next\" button never gets enabled\n } else {\n nextStep = curStep*1+1;\n }\n\n $('.signup-steps').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n $('#nation').prop('required',false);\n $('#nation').attr('data-parsley-required', 'false');\n $('#city').prop('required',false);\n $('#city').attr('data-parsley-required', 'false');\n $('#school_id').prop('required',false);\n $('#school_id').attr('data-parsley-required', 'false');\n nextStep = nextStep +1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\nvar gobackSignupFlow = window.gobackSignupFlow = function($this) {\n // event.preventDefault();\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep = curStep*1-1;\n $('.signup-steps').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n nextStep = nextStep - 1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\nwindow.fillSchools = function fillSchools(obj, city, nation) {\n if (nation === undefined) {nation = 'NP'};\n obj.find('option').remove();\n obj.append(\"\");\n var sanitizedCity = document.getElementById(\"city\").getAttribute('data-city-id');\n var sanitizedNation = nation.trim();\n if (sanitizedCity && sanitizedCity !== \"\"){\n var composedUrl = \"/school_data/schools_list_by_city_id?equal=true&city_id=\" + sanitizedCity;\n if (sanitizedNation !== 'NP') {\n composedUrl = composedUrl + '&nation=' + sanitizedNation;\n }\n $.ajax({url: composedUrl,\n dataType: \"json\",\n success: function(result){\n $.each(result, function(key, value)\n {\n obj.append('');\n });\n }});\n }\n}\n","import \"../src/shared/wrap_ready.js\";\nimport Cookie from \"../src/shared/cookie\";\n\nwindow.Digibook = {};\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n window.Digibook.Cookie = new Cookie();\n});\n\n// we moved Bootstrap here afer updating to BS5 because\n// it wasn't loaded in the right order in application.js\nimport * as bootstrap from '../../../node_modules/bootstrap/dist/js/bootstrap.bundle.js';\n\nwindow.bootstrap = bootstrap;\n\nimport \"../../whitelabels/digibook/assets/javascripts/application.js\";\n"],"names":["$","el","options","slider","namespace","msGesture","touch","eventType","watchedEvent","watchedEventClearTimer","vertical","reverse","carousel","fade","asNav","methods","focused","obj","props","i","event","keycode","target","delta","deltaX","deltaY","that","e","$slide","posFromLeft","type","j","item","slide","captn","$this","selector","action","pos","directionNavScaffold","disabledClass","pausePlayScaffold","state","startX","startY","offset","cwidth","dx","startT","scrolling","localX","localY","accDx","onMSPointerDown","onMSGestureChange","transX","transY","onMSGestureEnd","updateDx","onTouchStart","onTouchMove","onTouchEnd","fxms","dur","$obj","$clone","prefixes","evtname","pause","override","withSync","fromNav","master","dimension","margin","slideString","calcNext","last","dir","special","posCheck","posCalc","sliderOffset","arr","slideMargin","minItems","maxItems","$slides","$slider","jQuery","$myCarousel","$myCarousel2","indx","$myCarousel3","$myCarouselBlog","next","$target","idx","v","set_autocomplete_school","new_block","set_autocomplete_city","me","isOdd","value","$checked","texts","trim","s","container1","container2","selected","term","area","query","schoolSubjects","content","str","txt","request","response","nation","params","ui","ul","city","searchStyle","hide_show_others","brandId","divToShow","isOn","data","source","template","html","cellToActivate","welcomeTarget","slideNumber","viz","div","createViz","url","select","$el","first","evt","manageStepChange","manageStepCircles","userLang","manageInputChange","manageDisableBtn","sel","isNumeric","n","zeroPad","width","z","requirements","classId","age","day","month","year","inputDate","moment","birthDate","regex","xhr","getCurrentStep","classesParent","curStep","step","btn","filled","onPrivaciesChange","currentIndex","selectedIndex","curFlow","nextStep","sanitizedCity","sanitizedNation","composedUrl","result","key","Cookie","bootstrap"],"mappings":"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"}