{"version":3,"sources":["appear.js","gmaps.min.js","hs.core.js","hs.header.js","hs.hamburgers.js","hs.focus-state.js","hs.scroll-nav.js","hs.popup.js","hs.carousel-1.1.js","hs.map.js","hs.go-to.js","hs.dropdown.js","hs.tabs.js","hs.datepicker-1.1.js","accordion-carousel.js","enquiry-form.js","lazysizes/lazysizes.min.js","lazysizes/ls.bgset.min.js","lazysizes/ls.respimg.min.js"],"names":["appear","scrollLastPos","scrollTimer","scroll","addEventListener","newPos","window","scrollY","pageYOffset","velocity","delta","clearTimeout","setTimeout","obj","initd","elements","reappear","disappeared","appeared","opts","init","disappear","done","bounds","debounce","speed","deltaSpeed","timeout","deltaTimeout","elementsLength","timer","deltaSet","isIE10","completeOrLoaded","Function","document","readyState","trigger","doCheckAppear","pause","removeListeners","resume","begin","destroy","checkAppear","fn","delay","self","this","args","arguments","apply","removeEventListener","forEach","n","i","el","rect","getBoundingClientRect","top","height","left","width","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","els","length","push","a","b","exports","module","define","amd","GMaps","c","d","Array","prototype","slice","call","e","f","map","splice","callback_params","concat","google","maps","LatLng","h","replace","$","getElementById","k","l","j","console","error","zoom","mapType","m","div","o","markerClusterer","p","MapTypeId","toUpperCase","q","lat","lng","r","zoomControl","t","s","zoomControlOpt","style","position","u","v","panControl","w","mapTypeControl","x","scaleControl","y","streetViewControl","A","B","center","mapTypeId","C","zoomControlOptions","ZoomControlStyle","ControlPosition","overviewMapControl","indexOf","context","getElementsByClassName","context_menu","id","controls","overlays","layers","singleLayers","markers","polylines","routes","polygons","infoWindow","overlay_el","registered_events","scrollWidth","offsetWidth","scrollHeight","offsetHeight","visualRefresh","enableNewStyle","disableDefaultUI","D","hasOwnProperty","title","g","innerHTML","getElementsByTagName","event","clearListeners","addDomListenerOnce","preventDefault","action","hideContextMenu","scrollX","pageXOffset","offsetParent","offsetLeft","offsetTop","pixel","E","addListener","Map","buildContextMenu","OverlayView","setMap","draw","getProjection","marker","getPosition","fromLatLngToContainerPixel","display","setContextMenu","control","createElement","options","name","minWidth","background","listStyle","padding","boxShadow","body","appendChild","addDomListener","relatedTarget","contains","F","G","rightclick","refresh","fitZoom","visible","fitLatLngBounds","LatLngBounds","extend","fitBounds","setCenter","panTo","getElement","zoomIn","getZoom","setZoom","zoomOut","H","I","createControl","cursor","disableDefaultStyles","fontFamily","fontSize","classes","className","content","HTMLElement","events","index","addControl","removeControl","getAt","removeAt","createMarker","details","fences","outside","Marker","InfoWindow","fromLatLngToPoint","latLng","click","hideInfoWindows","open","checkMarkerGeofence","addMarker","fire","addMarkers","close","removeMarker","removeMarkers","clearMarkers","getMap","drawOverlay","auto_show","onAdd","borderStyle","borderWidth","zIndex","layer","getPanes","navigator","userAgent","toLowerCase","all","cancelBubble","returnValue","stopPropagation","overlayMouseTarget","fromLatLngToDivPixel","horizontalOffset","verticalOffset","children","verticalAlign","horizontalAlign","show","onRemove","remove","parentNode","removeChild","removeOverlay","removeOverlays","drawPolyline","path","strokeColor","strokeOpacity","strokeWeight","geodesic","clickable","editable","icons","Polyline","removePolyline","removePolylines","drawCircle","Circle","drawRectangle","Rectangle","drawPolygon","useGeoJSON","paths","Polygon","removePolygon","removePolygons","getFromFusionTables","FusionTablesLayer","loadFromFusionTables","getFromKML","url","KmlLayer","loadFromKML","addLayer","weather","WeatherLayer","clouds","CloudLayer","traffic","TrafficLayer","transit","TransitLayer","bicycling","BicyclingLayer","panoramio","PanoramioLayer","setTag","filter","places","PlacesService","search","nearbySearch","radarSearch","keyword","location","radius","rankBy","types","textSearch","query","setOptions","removeLayer","getRoutes","travelMode","TravelMode","BICYCLING","TRANSIT","DRIVING","WALKING","unitSystem","UnitSystem","IMPERIAL","METRIC","avoidHighways","avoidTolls","optimizeWaypoints","waypoints","origin","test","destination","callback","DirectionsService","route","DirectionsStatus","OK","removeRoutes","getElevations","locations","samples","ElevationService","getElevationAlongPath","getElevationForLocations","cleanRoute","renderRoute","panel","DirectionsRenderer","setDirections","drawRoute","overview_path","travelRoute","start","step","legs","steps","step_number","end","drawSteppedRoute","Route","step_count","steps_length","MVCArray","polyline","getPath","getRoute","back","pop","forward","checkGeofence","containsLatLng","toImage","size","getCenter","geometry","encoding","encodePath","staticMapURL","parseFloat","Math","min","max","toString","protocol","styles","address","join","encodeURI","sensor","icon","color","label","featureType","elementType","stylers","substring","parseInt","fillColor","fillOpacity","devicePixelRatio","addMapType","getTileUrl","tileSize","Size","ImageMapType","mapTypes","set","addOverlayMapType","getTile","overlayMapTypes","insertAt","removeOverlayMapType","addStyle","StyledMapType","styledMapName","setStyle","setMapTypeId","createPanorama","panorama","setStreetView","StreetViewPanorama","on","off","once","custom_events","handler","eventName","addListenerOnce","geolocate","always","complete","geolocation","getCurrentPosition","success","not_supported","geocode","geocoder","Geocoder","getBounds","getPaths","getLength","spherical","computeDistanceBetween","getRadius","setFences","addFence","getId","__gm_id","TypeError","Object","Number","floor","abs","HSCore","ready","tooltip","helpers","bgImage","extendjQuery","detectIE","bootstrapNavOptions","components","getRandomValueFromRange","startPoint","endPoint","fixed","fixedInner","random","collection","each","$el","bgImageSrc","data","css","imagesLoaded","$imgs","find","Deferred","resolve","promise","dfds","dfd","img","Image","onload","onerror","src","when","ua","edge","rv","querySelector","mobileHideOnScroll","$w","breakpointsMap","$collection","sm","md","lg","xl","$navbar","closest","scrollTop","$nav","breakpoint","$this","hasClass","$toggler","offset","$hamburgers","removeClass","settings","rtl","jQuery","HSHeader","element","config","observers","isPlainObject","viewport","checkViewport","HSAbstractObserver","defaultState","reinit","check","HSHeaderStickObserver","HSHeaderMomentShowHideObserver","HSHeaderShowHideObserver","HSHeaderChangeLogoObserver","fixPointSelf","HSHeaderHideSectionObserver","HSHeaderChangeAppearanceObserver","HSHeaderHasHiddenElement","animated","HSHeaderFloatingObserver","HSHeaderWithoutBehaviorObserver","_baseConfig","headerFixMoment","headerFixEffect","_detectObservers","fixMediaDifference","notify","resizeTimeOutId","update","xs","toggleable","addClass","prevViewport","observer","toDefaultState","docScrolled","changeState","direction","isFinite","effect","checkDirection","transitionDuration","getComputedStyle","get","outerHeight","_removeCap","_insertCap","capInserted","removeCapTimeOutId","animationTimeoutId","hasFixedClass","imgs","mainLogo","additionalLogo","not","section","sectionHeight","margin-top","stop","animate","sections","exclude","slideUp","hide","slideDown","$section","HSHamburgers","selector","timeoutid","$hamburger","toggleClass","$self","HSFocusState","HSScrollNav","_items","_makeItems","_bindEvents","HSScrollNavSection","defineProperty","value","attr","header","headerStyles","headerPosition","marginTop","over","duration","easing","activeItemClass","afterShow","beforeShow","_pageCollection","itemConfig","add","highlight","_lockHightlight","current","unhighlight","blur","last","changeHash","Section","isFunction","hash","parent","HSPopup","parentEl","baseClass","slideClass","slideSpeedCoefficient","infobar","fullScreen","thumbs","closeBtn","baseTpl","animationEffect","pageCollection","initPopup","conf","$fancybox","animationDuration","isGroup","isInfinite","Boolean","slideShowSpeed","fancybox","defaults","loop","transitionEffect","slideShow","instance","slide","$refs","container","$fancyPrevSlide","$fancyOverlay","bg","$fancySlide","$slide","animateIn","$orig","dataset","animateOut","overlayBG","overlayBg","overlayBlurBG","overlayBlurBg","slides","prevPos","beforeClose","HSCarousel","autoplay","infinite","itemSelector","initCarousel","target","isThumb","arrowsClasses","arrowLeftClasses","arrowRightClasses","pagiClasses","pagiHelper","$pagiIcons","$prevMarkup","$nextMarkup","setSlidesToShow","setSlidesToScroll","setAutoplay","setAnimation","setEasing","setFade","setSpeed","setSlidesRows","setCenterMode","setCenterPadding","setPauseOnHover","setVariableWidth","setInitialSlide","setVertical","setRtl","setInEffect","setOutEffect","setInfinite","setDataTitlePosition","setFocusOnSelect","setLazyLoad","isAdaptiveHeight","numberedPaging","setSwipe","setResponsive","JSON","parse","getAttribute","videoSupport","slick","$slides","$pagination","append","slider","animatedElements","animationIn","text","slideCount","swipe","autoplaySpeed","cssEase","fade","initialSlide","slidesToShow","slidesToScroll","centerMode","variableWidth","pauseOnHover","rows","vertical","verticalSwiping","centerPadding","focusOnSelect","lazyLoad","asNavFor","prevArrow","nextArrow","dots","dotsClass","adaptiveHeight","customPaging","responsive","currentSlide","nextSlide","nxtSlide","otherElements","animationDelay","log","animation-delay","animation-duration","carousel","command","slideType","player","method","func","undefined","contentWindow","postMessage","stringify","initTextAnimation","textAnimationSelector","$text","TextFx","anime","targets","$slider","currentTarget","eq","nextTarget","HSGMap","scrollwheel","initGMap","$gMap","ID","gMapType","gMapLat","gMapLng","gMapZoom","gMapTitle","gMapStyles","gMapStylesArray","gMapPolygon","gMapPolygonCords","gMapPolygonStyles","gMapPolylines","gMapPolylinesCords","gMapPolylinesStyles","gMapRoutes","gMapRoutesCords","gMapRoutesStyles","gMapGeolocation","gMapGeocoding","gMapCordsTarget","gMapPin","gMapPinIcon","gMapMultipleMarkers","gMapMarkersLocations","SATELLITE","TERRAIN","setPosition","arrL","$pin","$pinIcon","MarkerImage","setIcon","infowindow","i2","setContent","coords","latitude","longitude","alert","message","targetCordsParent","submit","val","trim","results","status","latlng","HSGoTo","initGoTo","$target","type","showEffect","hideEffect","compensation","opacity","thisOffsetTop","AbstractDropdown","allInvokers","toggle","smartPosition","targetOuterGeometry","outerWidth","getOption","option","DropdownSimple","DropdownCSSAnimation","dropdownDuration","dropdownAnimationOut","afterClose","dropdownAnimationIn","afterOpen","DropdownJSlide","HSDropdown","dropdownEvent","dropdownType","dropdownEasing","dropdownHideOnScroll","dropdownHideOnBlur","dropdownDelay","invoker","fieldsQty","DropDown","keyCode","windW","optIsMobileOnly","dropdownTarget","_resizeTimeOutId","$invoker","eventType","$dropdown","HSDropDown","dropdownTimeOut","$curInvoker","activeEls","HSTabs","initTabs","$tabs","$tabsItem","tabsType","controlClasses","$tabsContent","$tabsContentItem","removeAttr","accordionEffect","slideUpDownEffect","menu","btnClasses","activeItemHTML","html","before","slideToggle","thisHTML","prev","menuItem","thisIndex","contextID","targetID","next","HSDatepicker","dateFormat","dayNamesMin","prevText","nextText","initDatepicker","minDate","maxDate","datePicker","dateFrom","dateTo","to","datepicker","defaultDate","numberOfMonths","showOtherMonths","datepickerCustomClass","onSelect","dateText","inst","activeDate","getDate","customClass","arrayOfClasses","input","split","date","parseDate","item","$form","loading","isLoading","prop","selectedValue","focus","dataLayer","validate","$validator","valid","formData","serializeObject","ajax","cache","$thankYou","Success","siblings","fadeOut","fadeIn","resetForm","Errors","saveShowErrors","msg","serializeArray","validator","errors","fixedErrors","deletedErrors","showErrors","factory","lazySizes","lazySizesConfig","running","waiting","firstFns","secondFns","fns","docElem","Date","supportPicture","HTMLPictureElement","_addEventListener","_getAttribute","requestAnimationFrame","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","RegExp","setAttribute","reg","addRemoveLoadEvents","dom","evt","triggerEvent","elem","detail","noBubbles","noCancelable","createEvent","lazysizes","initCustomEvent","dispatchEvent","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","getCSS","getWidth","minSize","_lazysizesWidth","rAF","rafBatch","_lsFlush","run","rAFIt","simple","that","later","now","timestamp","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","srcAttr","srcsetAttr","sizesAttr","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazysizesConfig","regImg","regIframe","supportScroll","lowRuns","checkElements","lastTime","currentExpand","gDelay","rICTimeout","idleCallback","rafedSwitchLoadingClass","switchLoadingClass","rafSwitchLoadingClass","lazyUnveil","isAuto","sizes","isImg","isPicture","firesLoad","defaultPrevented","srcset","nodeName","resetPreloading","resetPreloadingTimer","handleSources","changeIframeSrc","_lazyRace","naturalWidth","preloadElems","isCompleted","started","eLvW","elvH","eLtop","eLleft","eLright","eLbottom","defaultExpand","preloadExpand","throttledCheckElements","unveilElement","autosizesElems","sizeElement","debouncedUpdateElementsSizes","loader","_","MutationObserver","observe","childList","subtree","attributes","setInterval","checkElems","isPriority","unveil","autoSizer","updateElem","sources","len","dataAttr","getSizeElement","cfg","uP","aC","rC","hC","gW","runFns","shift","queue","hidden","eLlen","autoLoadElem","loadedSomething","elemExpand","elemNegativeExpand","elemExpandVal","beforeExpandVal","lazyloadElems","expand","outerRect","isNestedVisible","preloadAfterLoad","lazyloaded","source","sourceSrcset","afterScroll","contain","cover","_lazybgset","currentSrc","backgroundImage","_lazybgsetLoading","alt","writable","match","$1","$2","removeAttribute","getPropertyValue","backgroundSize","_lazysizesParentFit","bind","require","supportsType","msElementsFromPoint","cached","pow","_lazypolyfill","_set","matchMedia","getX","matches","querySelectorAll","sort","cur"],"mappings":"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","file":"site.min.js","sourcesContent":["/* appear.js 1.0.3 */\r\nappear = (function(){\r\n 'use strict';\r\n var scrollLastPos = null, scrollTimer = 0, scroll = {};\r\n\r\n function track(){\r\n var newPos = window.scrollY || window.pageYOffset; // pageYOffset for IE9\r\n if ( scrollLastPos != null ){\r\n scroll.velocity = newPos - scrollLastPos;\r\n scroll.delta = (scroll.velocity >= 0) ? scroll.velocity : (-1 * scroll.velocity);\r\n \r\n }\r\n scrollLastPos = newPos;\r\n if(scrollTimer){\r\n clearTimeout(scrollTimer);\r\n }\r\n scrollTimer = setTimeout(function(){\r\n scrollLastPos = null;\r\n }, 30);\r\n }\r\n addEventListener('scroll', track, false);\r\n\r\n // determine if a given element (plus an additional \"bounds\" area around it) is in the viewport\r\n function viewable(el, bounds){\r\n var rect = el.getBoundingClientRect();\r\n return (\r\n (rect.top + rect.height) >= 0 &&\r\n (rect.left + rect.width) >= 0 &&\r\n (rect.bottom - rect.height) <= ( (window.innerHeight || document.documentElement.clientHeight) + bounds) &&\r\n (rect.right - rect.width) <= ( (window.innerWidth || document.documentElement.clientWidth) + bounds)\r\n );\r\n }\r\n\r\n return function(obj){\r\n\r\n return (function(obj){\r\n var initd = false, elements = [], elementsLength, reappear = [],\r\n appeared = 0, disappeared = 0, timer, deltaSet, opts = {}, done;\r\n\r\n // handle debouncing a function for better performance on scroll\r\n function debounce(fn, delay) {\r\n return function () {\r\n var self = this, args = arguments;\r\n clearTimeout(timer);\r\n \r\n timer = setTimeout(function () {\r\n fn.apply(self, args);\r\n }, delay);\r\n };\r\n }\r\n\r\n // called on scroll and resize event, so debounce the actual function that does\r\n // the heavy work of determining if an item is viewable and then \"appearing\" it\r\n function checkAppear() {\r\n if(scroll.delta < opts.delta.speed) {\r\n if(!deltaSet) {\r\n deltaSet = true;\r\n doCheckAppear();\r\n setTimeout(function(){\r\n deltaSet = false;\r\n }, opts.delta.timeout);\r\n }\r\n }\r\n (debounce(function() {\r\n doCheckAppear();\r\n }, opts.debounce)());\r\n }\r\n\r\n function begin() {\r\n // initial appear check before any scroll or resize event\r\n doCheckAppear();\r\n\r\n // add relevant listeners\r\n addEventListener('scroll', checkAppear, false);\r\n addEventListener('resize', checkAppear, false);\r\n }\r\n\r\n function end() {\r\n elements = [];\r\n if(timer) {\r\n clearTimeout(timer);\r\n }\r\n removeListeners();\r\n }\r\n\r\n function removeListeners() {\r\n \r\n removeEventListener('scroll', checkAppear, false);\r\n removeEventListener('resize', checkAppear, false);\r\n }\r\n\r\n function doCheckAppear() {\r\n if(done) {\r\n return;\r\n }\r\n \r\n elements.forEach(function(n, i){\r\n if(n && viewable(n, opts.bounds)) {\r\n // only act if the element is eligible to reappear\r\n if(reappear[i]) {\r\n // mark this element as not eligible to appear\r\n reappear[i] = false;\r\n // increment the count of appeared items\r\n appeared++;\r\n \r\n // call the appear fn\r\n if(opts.appear) {\r\n opts.appear(n);\r\n }\r\n // if not tracking reappears or disappears, need to remove node here\r\n if(!opts.disappear && !opts.reappear) {\r\n // stop tracking this node, which is now viewable\r\n elements[i] = null;\r\n }\r\n }\r\n } else {\r\n if(reappear[i] === false) {\r\n if(opts.disappear) {\r\n opts.disappear(n);\r\n }\r\n // increment the dissappeared count\r\n disappeared++;\r\n \r\n // if not tracking reappears, need to remove node here\r\n if(!opts.reappear) {\r\n // stop tracking this node, which is now viewable\r\n elements[i] = null;\r\n }\r\n }\r\n // element is out of view and eligible to be appeared again\r\n reappear[i] = true;\r\n }\r\n });\r\n\r\n // remove listeners if all items have (re)appeared\r\n if(!opts.reappear && (!opts.appear || opts.appear && appeared === elementsLength) && (!opts.disappear || opts.disappear && disappeared === elementsLength)) {\r\n // ensure done is only called once (could be called from a trailing debounce/throttle)\r\n done = true;\r\n removeListeners();\r\n // all items have appeared, so call the done fn\r\n if(opts.done){\r\n opts.done();\r\n }\r\n }\r\n }\r\n\r\n function init() {\r\n // make sure we only init once\r\n if(initd) {\r\n return;\r\n }\r\n initd = true;\r\n\r\n // call the obj init fn\r\n if(opts.init) {\r\n opts.init();\r\n }\r\n // get the elements to work with\r\n var els;\r\n if(typeof opts.elements === 'function') {\r\n els = opts.elements();\r\n } else {\r\n els = opts.elements;\r\n }\r\n if(els) {\r\n // put elements into an array object to work with\r\n elementsLength = els.length;\r\n for(var i = 0; i < elementsLength; i += 1) {\r\n elements.push(els[i]);\r\n reappear.push(true);\r\n }\r\n begin();\r\n }\r\n }\r\n\r\n return function(obj) {\r\n obj = obj || {};\r\n\r\n // assign the fn to execute when a node is visible\r\n opts = {\r\n // a function to be run when the dom is ready (allows for any setup work)\r\n init: obj.init,\r\n // either an array of elements or a function that will return an htmlCollection\r\n elements: obj.elements,\r\n // function to call when an element is \"viewable\", will be passed the element to work with\r\n appear: obj.appear,\r\n // function to call when an element is no longer \"viewable\", will be passed the element to work with\r\n disappear: obj.disappear,\r\n // function to call when all the elements have \"appeared\"\r\n done: obj.done,\r\n // keep tracking the elements\r\n reappear: obj.reappear,\r\n // the extra border around an element to make it viewable outside of the true viewport\r\n bounds: obj.bounds || 0,\r\n // the debounce timeout\r\n debounce: obj.debounce || 50,\r\n // appear.js will also check for items on continuous slow scrolling\r\n // you can controll how slow the scrolling should be (deltaSpeed)\r\n // and when it will check again (deltaTimeout) after it has inspected the dom/viewport;\r\n delta: {\r\n speed: obj.deltaSpeed || 50,\r\n timeout: obj.deltaTimeout || 500\r\n }\r\n };\r\n\r\n // add an event listener to init when dom is ready\r\n addEventListener('DOMContentLoaded', init, false);\r\n\r\n var isIE10 = false;\r\n if (Function('/*@cc_on return document.documentMode===10@*/')()){\r\n isIE10 = true;\r\n }\r\n var completeOrLoaded = document.readyState === 'complete' || document.readyState === 'loaded';\r\n\r\n // call init if document is ready to be worked with and we missed the event\r\n if (isIE10) {\r\n if (completeOrLoaded) {\r\n init();\r\n }\r\n } else {\r\n if (completeOrLoaded || document.readyState === 'interactive') {\r\n init();\r\n }\r\n }\r\n\r\n return {\r\n // manually fire check for visibility of tracked elements\r\n trigger: function trigger(){\r\n doCheckAppear();\r\n },\r\n // pause tracking of elements\r\n pause: function pause(){\r\n removeListeners();\r\n },\r\n // resume tracking of elements after a pause\r\n resume: function resume(){\r\n begin();\r\n },\r\n // provide a means to stop monitoring all elements\r\n destroy: function destroy() {\r\n end();\r\n }\r\n };\r\n\r\n };\r\n }()(obj));\r\n };\r\n}());\r\n","\"use strict\";!function(a,b){\"object\"==typeof exports?module.exports=b():\"function\"==typeof define&&define.amd?define([\"jquery\",\"googlemaps!\"],b):a.GMaps=b()}(this,function(){var a=function(a,b){var c;if(a===b)return a;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a},b=function(a,b){var c,d=Array.prototype.slice.call(arguments,2),e=[],f=a.length;if(Array.prototype.map&&a.map===Array.prototype.map)e=Array.prototype.map.call(a,function(a){var c=d.slice(0);return c.splice(0,0,a),b.apply(this,c)});else for(c=0;c0&&\"object\"==typeof a[c][0]?a[c]=f(a[c],b):a[c]=d(a[c],b));return a},g=function(a,b){var c=a.replace(\".\",\"\");return\"jQuery\"in this&&b?$(\".\"+c,b)[0]:document.getElementsByClassName(c)[0]},h=function(a,b){var a=a.replace(\"#\",\"\");return\"jQuery\"in window&&b?$(\"#\"+a,b)[0]:document.getElementById(a)},i=function(a){var b=0,c=0;if(a.getBoundingClientRect){var d=a.getBoundingClientRect(),e=-(window.scrollX?window.scrollX:window.pageXOffset),f=-(window.scrollY?window.scrollY:window.pageYOffset);return[d.left-e,d.top-f]}if(a.offsetParent)do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent);return[b,c]},j=function(b){var c=document,d=function(b){if(\"object\"!=typeof window.google||!window.google.maps)return\"object\"==typeof window.console&&window.console.error&&console.error(\"Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js.\"),function(){};if(!this)return new d(b);b.zoom=b.zoom||15,b.mapType=b.mapType||\"roadmap\";var e,f=function(a,b){return void 0===a?b:a},j=this,k=[\"bounds_changed\",\"center_changed\",\"click\",\"dblclick\",\"drag\",\"dragend\",\"dragstart\",\"idle\",\"maptypeid_changed\",\"projection_changed\",\"resize\",\"tilesloaded\",\"zoom_changed\"],l=[\"mousemove\",\"mouseout\",\"mouseover\"],m=[\"el\",\"lat\",\"lng\",\"mapType\",\"width\",\"height\",\"markerClusterer\",\"enableNewStyle\"],n=b.el||b.div,o=b.markerClusterer,p=google.maps.MapTypeId[b.mapType.toUpperCase()],q=new google.maps.LatLng(b.lat,b.lng),r=f(b.zoomControl,!0),s=b.zoomControlOpt||{style:\"DEFAULT\",position:\"TOP_LEFT\"},t=s.style||\"DEFAULT\",u=s.position||\"TOP_LEFT\",v=f(b.panControl,!0),w=f(b.mapTypeControl,!0),x=f(b.scaleControl,!0),y=f(b.streetViewControl,!0),z=f(z,!0),A={},B={zoom:this.zoom,center:q,mapTypeId:p},C={panControl:v,zoomControl:r,zoomControlOptions:{style:google.maps.ZoomControlStyle[t],position:google.maps.ControlPosition[u]},mapTypeControl:w,scaleControl:x,streetViewControl:y,overviewMapControl:z};if(\"string\"==typeof b.el||\"string\"==typeof b.div?n.indexOf(\"#\")>-1?this.el=h(n,b.context):this.el=g.apply(this,[n,b.context]):this.el=n,void 0===this.el||null===this.el)throw\"No element defined.\";for(window.context_menu=window.context_menu||{},window.context_menu[j.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=b.zoom,this.registered_events={},this.el.style.width=b.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=b.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=b.enableNewStyle,e=0;e'+f.title+\"\"}if(h(\"gmaps_context_menu\")){var g=h(\"gmaps_context_menu\");g.innerHTML=c;var e,k=g.getElementsByTagName(\"a\"),l=k.length;for(e=0;e-1){var d=this.markers[e];d.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(d),j.fire(\"marker_removed\",d,this)}}for(var c=0;c0&&d.paths[0].length>0&&(d.paths=c(b(d.paths,f,e)));for(var g=new google.maps.Polygon(d),h=[\"click\",\"dblclick\",\"mousedown\",\"mousemove\",\"mouseout\",\"mouseover\",\"mouseup\",\"rightclick\"],i=0;i0&&d.locations[0].length>0&&(d.locations=c(b([d.locations],f,!1)));var e=d.callback;delete d.callback;var g=new google.maps.ElevationService;if(d.path){var h={path:d.locations,samples:d.samples};g.getElevationAlongPath(h,function(a,b){e&&\"function\"==typeof e&&e(a,b)})}else delete d.path,delete d.samples,g.getElevationForLocations(d,function(a,b){e&&\"function\"==typeof e&&e(a,b)})},j.prototype.cleanRoute=j.prototype.removePolylines,j.prototype.renderRoute=function(b,c){var d,e=\"string\"==typeof c.panel?document.getElementById(c.panel.replace(\"#\",\"\")):c.panel;c.panel=e,c=a({map:this.map},c),d=new google.maps.DirectionsRenderer(c),this.getRoutes({origin:b.origin,destination:b.destination,travelMode:b.travelMode,waypoints:b.waypoints,unitSystem:b.unitSystem,error:b.error,avoidHighways:b.avoidHighways,avoidTolls:b.avoidTolls,optimizeWaypoints:b.optimizeWaypoints,callback:function(a,b,c){c===google.maps.DirectionsStatus.OK&&d.setDirections(b)}})},j.prototype.drawRoute=function(a){var b=this;this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,avoidHighways:a.avoidHighways,avoidTolls:a.avoidTolls,optimizeWaypoints:a.optimizeWaypoints,callback:function(c){if(c.length>0){var d={path:c[c.length-1].overview_path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty(\"icons\")&&(d.icons=a.icons),b.drawPolyline(d),a.callback&&a.callback(c[c.length-1])}}})},j.prototype.travelRoute=function(a){if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(b){if(b.length>0&&a.start&&a.start(b[b.length-1]),b.length>0&&a.step){var c=b[b.length-1];if(c.legs.length>0)for(var d,e=c.legs[0].steps,f=0;d=e[f];f++)d.step_number=f,a.step(d,c.legs[0].steps.length-1)}b.length>0&&a.end&&a.end(b[b.length-1])}});else if(a.route&&a.route.legs.length>0)for(var b,c=a.route.legs[0].steps,d=0;b=c[d];d++)b.step_number=d,a.step(b)},j.prototype.drawSteppedRoute=function(a){var b=this;if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,error:a.error,callback:function(c){if(c.length>0&&a.start&&a.start(c[c.length-1]),c.length>0&&a.step){var d=c[c.length-1];if(d.legs.length>0)for(var e,f=d.legs[0].steps,g=0;e=f[g];g++){e.step_number=g;var h={path:e.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty(\"icons\")&&(h.icons=a.icons),b.drawPolyline(h),a.step(e,d.legs[0].steps.length-1)}}c.length>0&&a.end&&a.end(c[c.length-1])}});else if(a.route&&a.route.legs.length>0)for(var c,d=a.route.legs[0].steps,e=0;c=d[e];e++){c.step_number=e;var f={path:c.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty(\"icons\")&&(f.icons=a.icons),b.drawPolyline(f),a.step(c)}},j.Route=function(a){this.origin=a.origin,this.destination=a.destination,this.waypoints=a.waypoints,this.map=a.map,this.route=a.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var b={path:new google.maps.MVCArray,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty(\"icons\")&&(b.icons=a.icons),this.polyline=this.map.drawPolyline(b).getPath()},j.Route.prototype.getRoute=function(a){var b=this;this.map.getRoutes({origin:this.origin,destination:this.destination,travelMode:a.travelMode,waypoints:this.waypoints||[],error:a.error,callback:function(){b.route=e[0],a.callback&&a.callback.call(b)}})},j.Route.prototype.back=function(){if(this.step_count>0){this.step_count--;var a=this.route.legs[0].steps[this.step_count].path;for(var b in a)a.hasOwnProperty(b)&&this.polyline.pop()}},j.Route.prototype.forward=function(){if(this.step_count0){b.markers=[];for(var c=0;c0){var d=this.polylines[0];b.polyline={},b.polyline.path=google.maps.geometry.encoding.encodePath(d.getPath()),b.polyline.strokeColor=d.strokeColor,b.polyline.strokeOpacity=d.strokeOpacity,b.polyline.strokeWeight=d.strokeWeight}return j.staticMapURL(b)},j.staticMapURL=function(a){function b(a,b){if(\"#\"===a[0]&&(a=a.replace(\"#\",\"0x\"),b)){if(b=parseFloat(b),0===(b=Math.min(1,Math.max(b,0))))return\"0x00000000\";b=(255*b).toString(16),1===b.length&&(b+=b),a=a.slice(0,8)+b}return a}var c,d=[],e=(\"file:\"===location.protocol?\"http:\":location.protocol)+\"//maps.googleapis.com/maps/api/staticmap\";a.url&&(e=a.url,delete a.url),e+=\"?\";var f=a.markers;delete a.markers,!f&&a.marker&&(f=[a.marker],delete a.marker);var g=a.styles;delete a.styles;var h=a.polyline;if(delete a.polyline,a.center)d.push(\"center=\"+a.center),delete a.center;else if(a.address)d.push(\"center=\"+a.address),delete a.address;else if(a.lat)d.push([\"center=\",a.lat,\",\",a.lng].join(\"\")),delete a.lat,delete a.lng;else if(a.visible){var i=encodeURI(a.visible.join(\"|\"));d.push(\"visible=\"+i)}var j=a.size;j?(j.join&&(j=j.join(\"x\")),delete a.size):j=\"630x300\",d.push(\"size=\"+j),a.zoom||a.zoom===!1||(a.zoom=15);var k=!a.hasOwnProperty(\"sensor\")||!!a.sensor;delete a.sensor,d.push(\"sensor=\"+k);for(var l in a)a.hasOwnProperty(l)&&d.push(l+\"=\"+a[l]);if(f)for(var m,n,o=0;c=f[o];o++){m=[],c.size&&\"normal\"!==c.size?(m.push(\"size:\"+c.size),delete c.size):c.icon&&(m.push(\"icon:\"+encodeURI(c.icon)),delete c.icon),c.color&&(m.push(\"color:\"+c.color.replace(\"#\",\"0x\")),delete c.color),c.label&&(m.push(\"label:\"+c.label[0].toUpperCase()),delete c.label),n=c.address?c.address:c.lat+\",\"+c.lng,delete c.address,delete c.lat,delete c.lng;for(var l in c)c.hasOwnProperty(l)&&m.push(l+\":\"+c[l]);m.length||0===o?(m.push(n),m=m.join(\"|\"),d.push(\"markers=\"+encodeURI(m))):(m=d.pop()+encodeURI(\"|\"+n),d.push(m))}if(g)for(var o=0;o=a.lng()||k.lng()=a.lng())&&j.lat()+(a.lng()-j.lng())/(k.lng()-j.lng())*(k.lat()-j.lat())>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);e 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n var ieV = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n document.querySelector('body').className += ' IE';\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // IE 12 (aka Edge) => return version number\r\n var ieV = parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n document.querySelector('body').className += ' IE';\r\n }\r\n\r\n // other browser\r\n return false;\r\n\r\n },\r\n\r\n\r\n /**\r\n * Bootstrap navigation options\r\n *\r\n */\r\n bootstrapNavOptions: {\r\n init: function () {\r\n this.mobileHideOnScroll();\r\n },\r\n\r\n mobileHideOnScroll: function () {\r\n var $collection = $('.navbar');\r\n if (!$collection.length) return;\r\n\r\n var $w = $(window),\r\n breakpointsMap = {\r\n 'sm': 576,\r\n 'md': 768,\r\n 'lg': 992,\r\n 'xl': 1200\r\n };\r\n\r\n $('body').on('click.HSMobileHideOnScroll', '.navbar-toggler', function (e) {\r\n var $navbar = $(this).closest('.navbar');\r\n\r\n if ($navbar.length) {\r\n $navbar.data('mobile-menu-scroll-position', $w.scrollTop());\r\n }\r\n e.preventDefault();\r\n });\r\n\r\n $w.on('scroll.HSMobileHideOnScroll', function (e) {\r\n $collection.each(function (i, el) {\r\n var $this = $(el), $toggler, $nav, offset, $hamburgers, breakpoint;\r\n if ($this.hasClass('navbar-expand-xl')) breakpoint = breakpointsMap['xl'];\r\n else if ($this.hasClass('navbar-expand-lg')) breakpoint = breakpointsMap['lg'];\r\n else if ($this.hasClass('navbar-expand-md')) breakpoint = breakpointsMap['md'];\r\n else if ($this.hasClass('navbar-expand-xs')) breakpoint = breakpointsMap['xs'];\r\n\r\n if ($w.width() > breakpoint) return;\r\n\r\n $toggler = $this.find('.navbar-toggler');\r\n $nav = $this.find('.navbar-collapse');\r\n\r\n if (!$nav.data('mobile-scroll-hide')) return;\r\n\r\n if ($nav.length) {\r\n offset = $this.data('mobile-menu-scroll-position');\r\n\r\n if (Math.abs($w.scrollTop() - offset) > 40 && $nav.hasClass('show')) {\r\n $toggler.trigger('click');\r\n $hamburgers = $toggler.find('.is-active');\r\n if ($hamburgers.length) {\r\n $hamburgers.removeClass('is-active');\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n },\r\n\r\n /**\r\n *\r\n *\r\n * @var\r\n */\r\n settings: {\r\n rtl: false\r\n }\r\n\r\n };\r\n\r\n $.HSCore.init();\r\n\r\n})(jQuery);","/**\r\n * Header Component.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSHeader = {\r\n\r\n /**\r\n * Base configuration.\r\n *\r\n * @var Object _baseConfig\r\n */\r\n _baseConfig: {\r\n headerFixMoment: 0,\r\n headerFixEffect: 'slide',\r\n breakpointsMap: {\r\n 'md': 768,\r\n 'sm': 576,\r\n 'lg': 992,\r\n 'xl': 1200\r\n }\r\n },\r\n\r\n /**\r\n * Initializtion of header.\r\n *\r\n * @param jQuery element\r\n *\r\n * @return jQuery\r\n */\r\n init: function( element ) {\r\n\r\n if( !element || element.length !== 1 || element.data('HSHeader')) return;\r\n\r\n var self = this;\r\n\r\n this.element = element;\r\n this.config = $.extend(true, {}, this._baseConfig, element.data());\r\n\r\n this.observers = this._detectObservers();\r\n this.fixMediaDifference( this.element );\r\n this.element.data('HSHeader', new HSHeader(this.element, this.config, this.observers ) );\r\n\r\n $(window)\r\n .on('scroll.uHeader', function(e){\r\n\r\n element\r\n .data('HSHeader')\r\n .notify();\r\n\r\n })\r\n .on('resize.uHeader', function(e){\r\n\r\n if( self.resizeTimeOutId ) clearTimeout( self.resizeTimeOutId );\r\n\r\n self.resizeTimeOutId = setTimeout( function(){\r\n\r\n element\r\n .data('HSHeader')\r\n .checkViewport()\r\n .update();\r\n\r\n }, 100 );\r\n\r\n })\r\n .trigger('scroll.uHeader');\r\n\r\n return this.element;\r\n\r\n },\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n _detectObservers: function() {\r\n\r\n if(!this.element || !this.element.length) return;\r\n\r\n var observers = {\r\n 'xs': [],\r\n 'sm': [],\r\n 'md': [],\r\n 'lg': [],\r\n 'xl': []\r\n };\r\n\r\n /* ------------------------ xs -------------------------*/\r\n\r\n // Has Hidden Element\r\n if( this.element.hasClass('u-header--has-hidden-element') ) {\r\n observers['xs'].push(\r\n new HSHeaderHasHiddenElement( this.element )\r\n );\r\n }\r\n\r\n // Sticky top\r\n\r\n if( this.element.hasClass('u-header--sticky-top') ) {\r\n\r\n if( this.element.hasClass('u-header--show-hide') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderMomentShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n else if( this.element.hasClass('u-header--toggle-section') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderHideSectionObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Floating\r\n\r\n if( this.element.hasClass('u-header--floating') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderFloatingObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--invulnerable') ) {\r\n observers['xs'].push(\r\n new HSHeaderWithoutBehaviorObserver( this.element )\r\n );\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--sticky-bottom') ) {\r\n\r\n if(this.element.hasClass('u-header--change-appearance')) {\r\n observers['xs'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs top & Static\r\n\r\n if( this.element.hasClass('u-header--abs-top') || this.element.hasClass('u-header--static')) {\r\n\r\n if( this.element.hasClass('u-header--show-hide') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs bottom & Abs top 2nd screen\r\n\r\n if( this.element.hasClass('u-header--abs-bottom') || this.element.hasClass('u-header--abs-top-2nd-screen') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderStickObserver( this.element )\r\n );\r\n\r\n if( this.element.hasClass('u-header--change-appearance') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo') ) {\r\n\r\n observers['xs'].push(\r\n new HSHeaderChangeLogoObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n /* ------------------------ sm -------------------------*/\r\n\r\n // Sticky top\r\n\r\n // Has Hidden Element\r\n if( this.element.hasClass('u-header--has-hidden-element--sm') ) {\r\n observers['sm'].push(\r\n new HSHeaderHasHiddenElement( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--sticky-top--sm') ) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderMomentShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n else if( this.element.hasClass('u-header--toggle-section--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderHideSectionObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Floating\r\n\r\n if( this.element.hasClass('u-header--floating--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderFloatingObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--invulnerable--sm') ) {\r\n observers['sm'].push(\r\n new HSHeaderWithoutBehaviorObserver( this.element )\r\n );\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--sticky-bottom--sm') ) {\r\n\r\n if(this.element.hasClass('u-header--change-appearance--sm')) {\r\n observers['sm'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs top & Static\r\n\r\n if( this.element.hasClass('u-header--abs-top--sm') || this.element.hasClass('u-header--static--sm')) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs bottom & Abs top 2nd screen\r\n\r\n if( this.element.hasClass('u-header--abs-bottom--sm') || this.element.hasClass('u-header--abs-top-2nd-screen--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderStickObserver( this.element )\r\n );\r\n\r\n if( this.element.hasClass('u-header--change-appearance--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--sm') ) {\r\n\r\n observers['sm'].push(\r\n new HSHeaderChangeLogoObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n /* ------------------------ md -------------------------*/\r\n\r\n // Has Hidden Element\r\n if( this.element.hasClass('u-header--has-hidden-element--md') ) {\r\n observers['md'].push(\r\n new HSHeaderHasHiddenElement( this.element )\r\n );\r\n }\r\n\r\n // Sticky top\r\n\r\n if( this.element.hasClass('u-header--sticky-top--md') ) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderMomentShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n else if( this.element.hasClass('u-header--toggle-section--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderHideSectionObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Floating\r\n\r\n if( this.element.hasClass('u-header--floating--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderFloatingObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--invulnerable--md') ) {\r\n observers['md'].push(\r\n new HSHeaderWithoutBehaviorObserver( this.element )\r\n );\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--sticky-bottom--md') ) {\r\n\r\n if(this.element.hasClass('u-header--change-appearance--md')) {\r\n observers['md'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs top & Static\r\n\r\n if( this.element.hasClass('u-header--abs-top--md') || this.element.hasClass('u-header--static--md')) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs bottom & Abs top 2nd screen\r\n\r\n if( this.element.hasClass('u-header--abs-bottom--md') || this.element.hasClass('u-header--abs-top-2nd-screen--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderStickObserver( this.element )\r\n );\r\n\r\n if( this.element.hasClass('u-header--change-appearance--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--md') ) {\r\n\r\n observers['md'].push(\r\n new HSHeaderChangeLogoObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n /* ------------------------ lg -------------------------*/\r\n\r\n // Has Hidden Element\r\n if( this.element.hasClass('u-header--has-hidden-element--lg') ) {\r\n observers['lg'].push(\r\n new HSHeaderHasHiddenElement( this.element )\r\n );\r\n }\r\n\r\n // Sticky top\r\n\r\n if( this.element.hasClass('u-header--sticky-top--lg') ) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderMomentShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n else if( this.element.hasClass('u-header--toggle-section--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderHideSectionObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Floating\r\n\r\n if( this.element.hasClass('u-header--floating--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderFloatingObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--invulnerable--lg') ) {\r\n observers['lg'].push(\r\n new HSHeaderWithoutBehaviorObserver( this.element )\r\n );\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--sticky-bottom--lg') ) {\r\n\r\n if(this.element.hasClass('u-header--change-appearance--lg')) {\r\n observers['lg'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs top & Static\r\n\r\n if( this.element.hasClass('u-header--abs-top--lg') || this.element.hasClass('u-header--static--lg')) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs bottom & Abs top 2nd screen\r\n\r\n if( this.element.hasClass('u-header--abs-bottom--lg') || this.element.hasClass('u-header--abs-top-2nd-screen--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderStickObserver( this.element )\r\n );\r\n\r\n if( this.element.hasClass('u-header--change-appearance--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--lg') ) {\r\n\r\n observers['lg'].push(\r\n new HSHeaderChangeLogoObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n /* ------------------------ xl -------------------------*/\r\n\r\n // Has Hidden Element\r\n if( this.element.hasClass('u-header--has-hidden-element--xl') ) {\r\n observers['xl'].push(\r\n new HSHeaderHasHiddenElement( this.element )\r\n );\r\n }\r\n\r\n // Sticky top\r\n\r\n if( this.element.hasClass('u-header--sticky-top--xl') ) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderMomentShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n else if( this.element.hasClass('u-header--toggle-section--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderHideSectionObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Floating\r\n\r\n if( this.element.hasClass('u-header--floating--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderFloatingObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--invulnerable--xl') ) {\r\n observers['xl'].push(\r\n new HSHeaderWithoutBehaviorObserver( this.element )\r\n );\r\n }\r\n\r\n // Sticky bottom\r\n\r\n if( this.element.hasClass('u-header--sticky-bottom--xl') ) {\r\n\r\n if(this.element.hasClass('u-header--change-appearance--xl')) {\r\n observers['xl'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs top & Static\r\n\r\n if( this.element.hasClass('u-header--abs-top--xl') || this.element.hasClass('u-header--static--xl')) {\r\n\r\n if( this.element.hasClass('u-header--show-hide--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderShowHideObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeLogoObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // Abs bottom & Abs top 2nd screen\r\n\r\n if( this.element.hasClass('u-header--abs-bottom--xl') || this.element.hasClass('u-header--abs-top-2nd-screen--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderStickObserver( this.element )\r\n );\r\n\r\n if( this.element.hasClass('u-header--change-appearance--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeAppearanceObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n if( this.element.hasClass('u-header--change-logo--xl') ) {\r\n\r\n observers['xl'].push(\r\n new HSHeaderChangeLogoObserver( this.element, {\r\n fixPointSelf: true\r\n } )\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n return observers;\r\n\r\n },\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n fixMediaDifference: function(element) {\r\n\r\n if(!element || !element.length || !element.filter('[class*=\"u-header--side\"]').length) return;\r\n\r\n var toggleable;\r\n\r\n if(element.hasClass('u-header--side-left--xl') || element.hasClass('u-header--side-right--xl')) {\r\n\r\n toggleable = element.find('.navbar-expand-xl');\r\n\r\n if(toggleable.length) {\r\n toggleable\r\n .removeClass('navbar-expand-xl')\r\n .addClass('navbar-expand-lg');\r\n }\r\n\r\n }\r\n else if(element.hasClass('u-header--side-left--lg') || element.hasClass('u-header--side-right--lg')) {\r\n\r\n toggleable = element.find('.navbar-expand-lg');\r\n\r\n if(toggleable.length) {\r\n toggleable\r\n .removeClass('navbar-expand-lg')\r\n .addClass('navbar-expand-md');\r\n }\r\n\r\n }\r\n else if(element.hasClass('u-header--side-left--md') || element.hasClass('u-header--side-right--md')) {\r\n\r\n toggleable = element.find('.navbar-expand-md');\r\n\r\n if(toggleable.length) {\r\n toggleable\r\n .removeClass('navbar-expand-md')\r\n .addClass('navbar-expand-sm');\r\n }\r\n\r\n }\r\n else if(element.hasClass('u-header--side-left--sm') || element.hasClass('u-header--side-right--sm')) {\r\n\r\n toggleable = element.find('.navbar-expand-sm');\r\n\r\n if(toggleable.length) {\r\n toggleable\r\n .removeClass('navbar-expand-sm')\r\n .addClass('navbar-expand');\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * HSHeader constructor function.\r\n *\r\n * @param jQuery element\r\n * @param Object config\r\n * @param Object observers\r\n *\r\n * @return undefined\r\n */\r\n function HSHeader( element, config, observers ) {\r\n\r\n if( !element || !element.length ) return;\r\n\r\n this.element = element;\r\n this.config = config;\r\n\r\n this.observers = observers && $.isPlainObject( observers ) ? observers : {};\r\n\r\n this.viewport = 'xs';\r\n this.checkViewport();\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeader.prototype.checkViewport = function() {\r\n\r\n var $w = $(window);\r\n\r\n if( $w.width() > this.config.breakpointsMap['sm'] && this.observers['sm'].length ){\r\n this.prevViewport = this.viewport;\r\n this.viewport = 'sm';\r\n return this;\r\n }\r\n\r\n if( $w.width() > this.config.breakpointsMap['md'] && this.observers['md'].length ) {\r\n this.prevViewport = this.viewport;\r\n this.viewport = 'md';\r\n return this;\r\n }\r\n\r\n if( $w.width() > this.config.breakpointsMap['lg'] && this.observers['lg'].length ) {\r\n this.prevViewport = this.viewport;\r\n this.viewport = 'lg';\r\n return this;\r\n }\r\n\r\n if( $w.width() > this.config.breakpointsMap['xl'] && this.observers['xl'].length ) {\r\n this.prevViewport = this.viewport;\r\n this.viewport = 'xl';\r\n return this;\r\n }\r\n\r\n\r\n if(this.prevViewport) this.prevViewport = this.viewport;\r\n this.viewport = 'xs';\r\n\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n * Notifies all observers.\r\n *\r\n * @return Object\r\n */\r\n HSHeader.prototype.notify = function(){\r\n\r\n if( this.prevViewport ) {\r\n this.observers[this.prevViewport].forEach(function(observer){\r\n observer.destroy();\r\n });\r\n this.prevViewport = null;\r\n }\r\n\r\n this.observers[this.viewport].forEach(function(observer){\r\n observer.check();\r\n });\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n * Reinit all header's observers.\r\n *\r\n * @return Object\r\n */\r\n HSHeader.prototype.update = function() {\r\n\r\n // if( this.prevViewport ) {\r\n // this.observers[this.prevViewport].forEach(function(observer){\r\n // observer.destroy();\r\n // });\r\n // this.prevViewport = null;\r\n // }\r\n\r\n for(var viewport in this.observers) {\r\n\r\n this.observers[viewport].forEach(function(observer){\r\n observer.destroy();\r\n });\r\n\r\n }\r\n\r\n this.prevViewport = null;\r\n\r\n this.observers[this.viewport].forEach(function(observer){\r\n observer.reinit();\r\n });\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n * Abstract constructor function for each observer.\r\n *\r\n * @param jQuery element\r\n *\r\n * @return Boolean|undefined\r\n */\r\n function HSAbstractObserver(element) {\r\n if( !element || !element.length ) return;\r\n\r\n this.element = element;\r\n this.defaultState = true;\r\n\r\n this.reinit = function() {\r\n\r\n this\r\n .destroy()\r\n .init()\r\n .check();\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Header's observer which is responsible for 'sticky' behavior.\r\n *\r\n * @param jQuery element\r\n */\r\n function HSHeaderStickObserver( element ) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.init();\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderStickObserver.prototype.init = function() {\r\n this.defaultState = true;\r\n this.offset = this.element.offset().top;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderStickObserver.prototype.destroy = function() {\r\n this.toDefaultState();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderStickObserver.prototype.check = function() {\r\n\r\n var $w = $(window),\r\n docScrolled = $w.scrollTop();\r\n\r\n if( docScrolled > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if(docScrolled < this.offset && !this.defaultState){\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderStickObserver.prototype.changeState = function() {\r\n\r\n this.element.addClass('js-header-fix-moment');\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderStickObserver.prototype.toDefaultState = function() {\r\n\r\n this.element.removeClass('js-header-fix-moment');\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n\r\n }\r\n\r\n\r\n /**\r\n * Header's observer which is responsible for 'show/hide' behavior which is depended on scroll direction.\r\n *\r\n * @param jQuery element\r\n */\r\n function HSHeaderMomentShowHideObserver( element ) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.init = function() {\r\n this.direction = 'down';\r\n this.delta = 0;\r\n this.defaultState = true;\r\n\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) && this.element.data('header-fix-moment') != 0 ? this.element.data('header-fix-moment') : 5;\r\n this.effect = this.element.data('header-fix-effect') ? this.element.data('header-fix-effect') : 'show-hide';\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.destroy = function() {\r\n this.toDefaultState();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.checkDirection = function() {\r\n\r\n if( $(window).scrollTop() > this.delta ) {\r\n this.direction = 'down';\r\n }\r\n else {\r\n this.direction = 'up';\r\n }\r\n\r\n this.delta = $(window).scrollTop();\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.toDefaultState = function() {\r\n\r\n switch( this.effect ) {\r\n case 'slide' :\r\n this.element.removeClass('u-header--moved-up');\r\n break;\r\n\r\n case 'fade' :\r\n this.element.removeClass('u-header--faded');\r\n break;\r\n\r\n default:\r\n this.element.removeClass('u-header--invisible');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.changeState = function() {\r\n\r\n switch( this.effect ) {\r\n case 'slide' :\r\n this.element.addClass('u-header--moved-up');\r\n break;\r\n\r\n case 'fade' :\r\n this.element.addClass('u-header--faded');\r\n break;\r\n\r\n default:\r\n this.element.addClass('u-header--invisible');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @return Object\r\n */\r\n HSHeaderMomentShowHideObserver.prototype.check = function() {\r\n\r\n var docScrolled = $(window).scrollTop();\r\n this.checkDirection();\r\n\r\n\r\n if( docScrolled >= this.offset && this.defaultState && this.direction == 'down' ) {\r\n this.changeState();\r\n }\r\n else if ( !this.defaultState && this.direction == 'up') {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderShowHideObserver( element ) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return Object\r\n */\r\n HSHeaderShowHideObserver.prototype.init = function() {\r\n if(!this.defaultState && $(window).scrollTop() > this.offset) return this;\r\n\r\n this.defaultState = true;\r\n this.transitionDuration = parseFloat( getComputedStyle( this.element.get(0) )['transition-duration'], 10 ) * 1000;\r\n\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) && this.element.data('header-fix-moment') > this.element.outerHeight() ? this.element.data('header-fix-moment') : this.element.outerHeight() + 100;\r\n this.effect = this.element.data('header-fix-effect') ? this.element.data('header-fix-effect') : 'show-hide';\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return Object\r\n */\r\n HSHeaderShowHideObserver.prototype.destroy = function() {\r\n if( !this.defaultState && $(window).scrollTop() > this.offset ) return this;\r\n\r\n this.element.removeClass('u-header--untransitioned');\r\n this._removeCap();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderShowHideObserver.prototype._insertCap = function() {\r\n\r\n this.element.addClass('js-header-fix-moment u-header--untransitioned');\r\n\r\n if( this.element.hasClass('u-header--static') ) {\r\n\r\n $('html').css('padding-top', this.element.outerHeight() );\r\n\r\n }\r\n\r\n switch( this.effect ) {\r\n case 'fade' :\r\n this.element.addClass('u-header--faded');\r\n break;\r\n\r\n case 'slide' :\r\n this.element.addClass('u-header--moved-up');\r\n break;\r\n\r\n default :\r\n this.element.addClass('u-header--invisible')\r\n }\r\n\r\n this.capInserted = true;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderShowHideObserver.prototype._removeCap = function() {\r\n\r\n var self = this;\r\n\r\n this.element.removeClass('js-header-fix-moment');\r\n\r\n if( this.element.hasClass('u-header--static') ) {\r\n\r\n $('html').css('padding-top', 0 );\r\n\r\n }\r\n\r\n if(this.removeCapTimeOutId) clearTimeout(this.removeCapTimeOutId);\r\n\r\n this.removeCapTimeOutId = setTimeout(function() {\r\n self.element.removeClass('u-header--moved-up u-header--faded u-header--invisible');\r\n }, 10);\r\n\r\n this.capInserted = false;\r\n\r\n }\r\n\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderShowHideObserver.prototype.check = function() {\r\n\r\n var $w = $(window);\r\n\r\n if( $w.scrollTop() > this.element.outerHeight() && !this.capInserted ) {\r\n this._insertCap();\r\n }\r\n else if($w.scrollTop() <= this.element.outerHeight() && this.capInserted) {\r\n this._removeCap();\r\n }\r\n\r\n if( $w.scrollTop() > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( $w.scrollTop() <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderShowHideObserver.prototype.changeState = function() {\r\n\r\n this.element.removeClass('u-header--untransitioned');\r\n\r\n if( this.animationTimeoutId ) clearTimeout( this.animationTimeoutId );\r\n\r\n switch( this.effect ) {\r\n case 'fade' :\r\n this.element.removeClass('u-header--faded');\r\n break;\r\n\r\n case 'slide' :\r\n this.element.removeClass('u-header--moved-up');\r\n break;\r\n\r\n default:\r\n this.element.removeClass('u-header--invisible');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderShowHideObserver.prototype.toDefaultState = function() {\r\n\r\n var self = this;\r\n\r\n this.animationTimeoutId = setTimeout(function(){\r\n self.element.addClass('u-header--untransitioned');\r\n }, this.transitionDuration );\r\n\r\n\r\n switch( this.effect ) {\r\n case 'fade' :\r\n this.element.addClass('u-header--faded');\r\n break;\r\n case 'slide' :\r\n this.element.addClass('u-header--moved-up');\r\n break;\r\n default:\r\n this.element.addClass('u-header--invisible');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderChangeLogoObserver( element, config ) {\r\n\r\n if( !HSAbstractObserver.call( this, element ) ) return;\r\n\r\n this.config = {\r\n fixPointSelf: false\r\n }\r\n\r\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\r\n\r\n this.init();\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeLogoObserver.prototype.init = function() {\r\n\r\n if(this.element.hasClass('js-header-fix-moment')) {\r\n this.hasFixedClass = true;\r\n this.element.removeClass('js-header-fix-moment');\r\n }\r\n if( this.config.fixPointSelf ) {\r\n this.offset = this.element.offset().top;\r\n }\r\n else {\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 0;\r\n }\r\n if(this.hasFixedClass) {\r\n this.hasFixedClass = false;\r\n this.element.addClass('js-header-fix-moment');\r\n }\r\n\r\n this.imgs = this.element.find('.u-header__logo-img');\r\n this.defaultState = true;\r\n\r\n this.mainLogo = this.imgs.filter('.u-header__logo-img--main');\r\n this.additionalLogo = this.imgs.not('.u-header__logo-img--main');\r\n\r\n if( !this.imgs.length ) return this;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeLogoObserver.prototype.destroy = function() {\r\n this.toDefaultState();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeLogoObserver.prototype.check = function() {\r\n\r\n var $w = $(window);\r\n\r\n if( !this.imgs.length ) return this;\r\n\r\n if( $w.scrollTop() > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( $w.scrollTop() <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeLogoObserver.prototype.changeState = function() {\r\n\r\n if(this.mainLogo.length) {\r\n this.mainLogo.removeClass('u-header__logo-img--main');\r\n }\r\n if(this.additionalLogo.length) {\r\n this.additionalLogo.addClass('u-header__logo-img--main');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeLogoObserver.prototype.toDefaultState = function() {\r\n\r\n if(this.mainLogo.length) {\r\n this.mainLogo.addClass('u-header__logo-img--main');\r\n }\r\n if(this.additionalLogo.length) {\r\n this.additionalLogo.removeClass('u-header__logo-img--main');\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderHideSectionObserver( element ) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return Object\r\n */\r\n HSHeaderHideSectionObserver.prototype.init = function() {\r\n\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\r\n this.section = this.element.find('.u-header__section--hidden');\r\n this.defaultState = true;\r\n\r\n this.sectionHeight = this.section.length ? this.section.outerHeight() : 0;\r\n\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHideSectionObserver.prototype.destroy = function() {\r\n\r\n if( this.section.length ) {\r\n\r\n this.element.css({\r\n 'margin-top': 0\r\n });\r\n\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHideSectionObserver.prototype.check = function() {\r\n\r\n if(!this.section.length) return this;\r\n\r\n var $w = $(window),\r\n docScrolled = $w.scrollTop();\r\n\r\n if( docScrolled > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( docScrolled <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHideSectionObserver.prototype.changeState = function() {\r\n\r\n var self = this;\r\n\r\n this.element.stop().animate({\r\n 'margin-top': self.sectionHeight * -1 - 1 // last '-1' is a small fix\r\n });\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHideSectionObserver.prototype.toDefaultState = function() {\r\n\r\n this.element.stop().animate({\r\n 'margin-top': 0\r\n });\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderChangeAppearanceObserver(element, config) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.config = {\r\n fixPointSelf: false\r\n }\r\n\r\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeAppearanceObserver.prototype.init = function() {\r\n\r\n if(this.element.hasClass('js-header-fix-moment')) {\r\n this.hasFixedClass = true;\r\n this.element.removeClass('js-header-fix-moment');\r\n }\r\n\r\n if( this.config.fixPointSelf ) {\r\n this.offset = this.element.offset().top;\r\n }\r\n else {\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\r\n }\r\n\r\n if( this.hasFixedClass ) {\r\n this.hasFixedClass = false;\r\n this.element.addClass('js-header-fix-moment');\r\n }\r\n\r\n this.sections = this.element.find('[data-header-fix-moment-classes]');\r\n\r\n this.defaultState = true;\r\n\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeAppearanceObserver.prototype.destroy = function() {\r\n\r\n this.toDefaultState();\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeAppearanceObserver.prototype.check = function() {\r\n\r\n if( !this.sections.length ) return this;\r\n\r\n var $w = $(window),\r\n docScrolled = $w.scrollTop();\r\n\r\n if( docScrolled > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( docScrolled <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeAppearanceObserver.prototype.changeState = function() {\r\n\r\n this.sections.each(function(i,el){\r\n\r\n var $this = $(el),\r\n classes = $this.data('header-fix-moment-classes'),\r\n exclude = $this.data('header-fix-moment-exclude');\r\n\r\n if( !classes && !exclude ) return;\r\n\r\n $this.addClass( classes + ' js-header-change-moment');\r\n $this.removeClass( exclude );\r\n\r\n });\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderChangeAppearanceObserver.prototype.toDefaultState = function() {\r\n\r\n this.sections.each(function(i,el){\r\n\r\n var $this = $(el),\r\n classes = $this.data('header-fix-moment-classes'),\r\n exclude = $this.data('header-fix-moment-exclude');\r\n\r\n if( !classes && !exclude ) return;\r\n\r\n $this.removeClass( classes + ' js-header-change-moment' );\r\n $this.addClass( exclude );\r\n\r\n });\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderHasHiddenElement(element, config) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.config = {\r\n animated: true\r\n }\r\n\r\n if( config && $.isPlainObject(config) ) this.config = $.extend(true, {}, this.config, config);\r\n\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHasHiddenElement.prototype.init = function() {\r\n this.offset = isFinite( this.element.data('header-fix-moment') ) ? this.element.data('header-fix-moment') : 5;\r\n this.elements = this.element.find('.u-header--hidden-element');\r\n this.defaultState = true;\r\n return this;\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHasHiddenElement.prototype.destroy = function() {\r\n\r\n this.toDefaultState();\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHasHiddenElement.prototype.check = function() {\r\n\r\n if( !this.elements.length ) return this;\r\n\r\n var $w = $(window),\r\n docScrolled = $w.scrollTop();\r\n\r\n if( docScrolled > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( docScrolled <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHasHiddenElement.prototype.changeState = function() {\r\n\r\n if(this.config.animated) {\r\n this.elements.stop().slideUp();\r\n }\r\n else {\r\n this.elements.hide();\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderHasHiddenElement.prototype.toDefaultState = function() {\r\n\r\n if(this.config.animated) {\r\n this.elements.stop().slideDown();\r\n }\r\n else {\r\n this.elements.show();\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderFloatingObserver(element, config) {\r\n if( !HSAbstractObserver.call(this, element) ) return;\r\n\r\n this.config = config && $.isPlainObject(config) ? $.extend(true, {}, this.config, config) : {};\r\n this.init();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderFloatingObserver.prototype.init = function() {\r\n\r\n this.offset = this.element.offset().top;\r\n this.sections = this.element.find('.u-header__section');\r\n\r\n this.defaultState = true;\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderFloatingObserver.prototype.destroy = function() {\r\n\r\n this.toDefaultState();\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderFloatingObserver.prototype.check = function() {\r\n\r\n var $w = $(window),\r\n docScrolled = $w.scrollTop();\r\n\r\n if( docScrolled > this.offset && this.defaultState) {\r\n this.changeState();\r\n }\r\n else if( docScrolled <= this.offset && !this.defaultState ) {\r\n this.toDefaultState();\r\n }\r\n\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderFloatingObserver.prototype.changeState = function() {\r\n\r\n this.element\r\n .addClass('js-header-fix-moment')\r\n .addClass( this.element.data('header-fix-moment-classes') )\r\n .removeClass( this.element.data('header-fix-moment-exclude') );\r\n\r\n if( this.sections.length ) {\r\n this.sections.each(function(i, el){\r\n\r\n var $section = $(el);\r\n\r\n $section.addClass( $section.data('header-fix-moment-classes') )\r\n .removeClass( $section.data('header-fix-moment-exclude') );\r\n\r\n });\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n HSHeaderFloatingObserver.prototype.toDefaultState = function() {\r\n\r\n this.element\r\n .removeClass('js-header-fix-moment')\r\n .removeClass( this.element.data('header-fix-moment-classes') )\r\n .addClass( this.element.data('header-fix-moment-exclude') );\r\n\r\n if( this.sections.length ) {\r\n this.sections.each(function(i, el){\r\n\r\n var $section = $(el);\r\n\r\n $section.removeClass( $section.data('header-fix-moment-classes') )\r\n .addClass( $section.data('header-fix-moment-exclude') );\r\n\r\n });\r\n }\r\n\r\n this.defaultState = !this.defaultState;\r\n return this;\r\n\r\n }\r\n\r\n\r\n /**\r\n *\r\n *\r\n * @param\r\n *\r\n * @return\r\n */\r\n function HSHeaderWithoutBehaviorObserver( element ) { if( !HSAbstractObserver.call(this, element) ) return; }\r\n\r\n HSHeaderWithoutBehaviorObserver.prototype.check = function() {\r\n return this;\r\n }\r\n\r\n HSHeaderWithoutBehaviorObserver.prototype.init = function() {\r\n return this;\r\n }\r\n\r\n HSHeaderWithoutBehaviorObserver.prototype.destroy = function() {\r\n return this;\r\n }\r\n\r\n HSHeaderWithoutBehaviorObserver.prototype.changeState = function() {\r\n return this;\r\n }\r\n\r\n HSHeaderWithoutBehaviorObserver.prototype.toDefaultState = function() {\r\n return this;\r\n }\r\n\r\n\r\n})(jQuery);","/**\r\n * Hamburgers plugin helper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n * @requires hamburgers.min.css\r\n *\r\n */\r\n;(function($){\r\n\t'use strict';\r\n\r\n\t$.HSCore.helpers.HSHamburgers = {\r\n\r\n\t\t/**\r\n\t\t * Initialize 'hamburgers' plugin.\r\n\t\t * \r\n\t\t * @param String selector\r\n\t\t *\r\n\t\t * @return undefined;\r\n\t\t */\r\n\t\tinit: function(selector) {\r\n\r\n\t\t\tif( !selector || !$(selector).length ) return;\r\n\r\n\t\t var hamburgers = $(selector),\r\n\t\t \t\ttimeoutid;\r\n\r\n\t\t hamburgers.each(function(i, el){\r\n\r\n\t\t \tvar $this = $(this);\r\n\r\n\t\t \tif($this.closest('button').length) {\r\n\t\t \t\t$this.closest('button').get(0).addEventListener('click', function(e){\r\n\r\n\t\t \t\t\tvar $self = $(this),\r\n\t\t \t\t\t\t\t$hamburger = $self.find(selector);\r\n\r\n\t\t \t\t\tif(timeoutid) clearTimeout(timeoutid);\r\n\t\t \t\t\ttimeoutid = setTimeout(function(){\r\n\r\n\t\t \t\t\t\t$hamburger.toggleClass('is-active');\r\n\r\n\t\t \t\t\t}, 10);\r\n\t\t \t\t\te.preventDefault();\r\n\t\t \t\t}, false);\r\n\t\t \t}\r\n\t\t \telse {\r\n\t\t \t\t$this.get(0).addEventListener('click', function(e){\r\n\r\n\t\t \t\t\tvar $self = $(this);\r\n\r\n\t\t \t\t\tif(timeoutid) clearTimeout(timeoutid);\r\n\t\t \t\t\ttimeoutid = setTimeout(function(){\r\n\r\n\t\t \t\t\t\t$self.toggleClass('is-active');\r\n\r\n\t\t \t\t\t}, 10);\r\n\t\t \t\t\te.preventDefault();\r\n\t\t \t\t}, false);\r\n\t\t \t}\r\n\r\n\t\t });\r\n\r\n\t\t}\r\n\t\t\r\n\r\n\t};\r\n\r\n})(jQuery);","/**\r\n * Focus state helper-wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.helpers.HSFocusState = {\r\n /**\r\n * Focus state.\r\n *\r\n * @return undefined\r\n */\r\n init: function () {\r\n var collection = $('.input-group input:not([type=\"checkbox\"], [type=\"radio\"]), .input-group textarea, .input-group select');\r\n\r\n if (!collection.length) return;\r\n\r\n collection.on('focusin', function () {\r\n var $this = $(this),\r\n $thisParent = $this.closest('.input-group');\r\n\r\n $thisParent.addClass('g-state-focus');\r\n });\r\n\r\n collection.on('focusout', function () {\r\n var $this = $(this),\r\n $thisParent = $this.closest('.input-group');\r\n\r\n $thisParent.removeClass('g-state-focus');\r\n });\r\n }\r\n };\r\n})(jQuery);","/**\r\n * HSScrollNav Component.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n * @requires jQuery\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSScrollNav = {\r\n\r\n /**\r\n * Base configuraion of the component.\r\n *\r\n * @private\r\n */\r\n _baseConfig: {\r\n duration: 400,\r\n easing: 'linear',\r\n over: $(),\r\n activeItemClass: 'active',\r\n afterShow: function(){},\r\n beforeShow: function(){}\r\n },\r\n\r\n /**\r\n * All initialized item on the page.\r\n *\r\n * @private\r\n */\r\n _pageCollection: $(),\r\n\r\n\r\n /**\r\n * Initialization of the component.\r\n *\r\n * @param {jQuery} collection\r\n * @param {Object} config\r\n *\r\n * @public\r\n * @return {jQuery}\r\n */\r\n init: function(collection, config) {\r\n\r\n var self = this;\r\n\r\n if( !collection || !collection.length ) return $();\r\n\r\n collection.each(function(i, el) {\r\n\r\n var $this = $(el),\r\n itemConfig = config && $.isPlainObject(config) ?\r\n $.extend(true, {}, self._baseConfig, config, $this.data()) :\r\n $.extend(true, {}, self._baseConfig, $this.data());\r\n\r\n if( !$this.data('HSScrollNav') ) {\r\n\r\n $this.data('HSScrollNav', new HSScrollNav($this, itemConfig));\r\n\r\n self._pageCollection = self._pageCollection.add( $this );\r\n\r\n }\r\n\r\n });\r\n\r\n $(window).on('scroll.HSScrollNav', function(){\r\n\r\n self._pageCollection.each(function(i, el) {\r\n\r\n $(el).data('HSScrollNav').highlight();\r\n\r\n });\r\n\r\n }).trigger('scroll.HSScrollNav');\r\n\r\n return collection;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n /**\r\n * HSScrollNav.\r\n *\r\n * @param {jQuery} element\r\n * @param {Object} config\r\n *\r\n * @constructor\r\n */\r\n function HSScrollNav(element, config) {\r\n\r\n /**\r\n * Current element.\r\n *\r\n * @public\r\n */\r\n this.element = element;\r\n\r\n /**\r\n * Configuraion.\r\n *\r\n * @public\r\n */\r\n this.config = config;\r\n\r\n /**\r\n * Sections.\r\n *\r\n * @public\r\n */\r\n this._items = $();\r\n\r\n this._makeItems();\r\n this._bindEvents();\r\n }\r\n\r\n /**\r\n * Return collection of sections.\r\n *\r\n * @private\r\n * @return {jQuery}\r\n */\r\n HSScrollNav.prototype._makeItems = function() {\r\n\r\n var self = this;\r\n\r\n this.element.find('a[href^=\"#\"]').each(function(i, el) {\r\n\r\n var $this = $(el);\r\n\r\n if( !$this.data('HSScrollNavSection') ) {\r\n\r\n $this.data('HSScrollNavSection', new HSScrollNavSection($this, self.config));\r\n\r\n self._items = self._items.add( $this );\r\n\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n /**\r\n * Binds necessary events.\r\n *\r\n * @private\r\n * @return {undefined}\r\n */\r\n HSScrollNav.prototype._bindEvents = function() {\r\n\r\n var self = this;\r\n\r\n this.element.on('click.HSScrollNav', 'a[href^=\"#\"]', function(e) {\r\n\r\n var link = this;\r\n self._lockHightlight = true;\r\n if(self.current) self.current.unhighlight();\r\n link.blur();\r\n self.current = $(link).data('HSScrollNavSection');\r\n self.current.highlight();\r\n\r\n $(this).data('HSScrollNavSection').show( function(){\r\n self._lockHightlight = false;\r\n } );\r\n\r\n e.preventDefault();\r\n\r\n });\r\n\r\n };\r\n\r\n /**\r\n * Activates necessary menu item.\r\n *\r\n * @public\r\n */\r\n HSScrollNav.prototype.highlight = function() {\r\n\r\n var self = this, items, currentItem, current, scrollTop;\r\n\r\n if(!this._items.length || this._lockHightlight) return;\r\n\r\n scrollTop = $(window).scrollTop();\r\n\r\n if(scrollTop + $(window).height() === $(document).height()) {\r\n\r\n this.current = this._items.last().data('HSScrollNavSection');\r\n\r\n this.unhighlight();\r\n this.current.highlight();\r\n this.current.changeHash();\r\n\r\n return;\r\n }\r\n\r\n this._items.each(function(i, el){\r\n\r\n var Section = $(el).data('HSScrollNavSection'),\r\n $section = Section.section;\r\n\r\n if(scrollTop > Section.offset) {\r\n current = Section;\r\n }\r\n\r\n });\r\n\r\n if(current && this.current != current) {\r\n\r\n this.unhighlight();\r\n current.highlight();\r\n if(this.current) current.changeHash();\r\n\r\n this.current = current;\r\n\r\n }\r\n\r\n };\r\n\r\n /**\r\n * Deactivates all menu items.\r\n *\r\n * @public\r\n */\r\n HSScrollNav.prototype.unhighlight = function() {\r\n\r\n this._items.each(function(i, el){\r\n $(el).data('HSScrollNavSection').unhighlight();\r\n });\r\n\r\n };\r\n\r\n /**\r\n * HSScrollNavSection.\r\n *\r\n * @param {jQuery} element\r\n *\r\n * @constructor\r\n */\r\n function HSScrollNavSection(element, config) {\r\n\r\n var self = this;\r\n\r\n /**\r\n * Current section.\r\n *\r\n * @public\r\n */\r\n this.element = element;\r\n\r\n /**\r\n * Configuration.\r\n *\r\n * @public\r\n */\r\n this.config = config;\r\n\r\n /**\r\n * Getter for acces to the section element.\r\n *\r\n * @public\r\n */\r\n Object.defineProperty(this, 'section', {\r\n value: $(self.element.attr('href'))\r\n });\r\n\r\n /**\r\n * Getter for determinate position of the section relative to document.\r\n *\r\n * @public\r\n */\r\n\r\n Object.defineProperty(this, 'offset', {\r\n get: function() {\r\n\r\n var header = $('.u-header'),\r\n headerStyles = getComputedStyle(header.get(0)),\r\n headerPosition = headerStyles.position,\r\n offset = self.section.offset().top;\r\n\r\n\r\n\r\n if(header.length && headerPosition == 'fixed' && parseInt(headerStyles.top) == 0) {\r\n offset = offset - header.outerHeight() - parseInt(headerStyles.marginTop);\r\n }\r\n\r\n if(self.config.over.length) {\r\n offset = offset - self.config.over.outerHeight();\r\n }\r\n\r\n return offset;\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n /**\r\n * Moves to the section.\r\n *\r\n * @public\r\n */\r\n HSScrollNavSection.prototype.show = function(callback) {\r\n\r\n var self = this;\r\n\r\n if( !this.section.length ) return;\r\n\r\n self.config.beforeShow.call(self.section);\r\n\r\n this.changeHash();\r\n\r\n $('html, body').stop().animate({\r\n scrollTop: self.offset + 3\r\n }, {\r\n duration: self.config.duration,\r\n easing: self.config.easing,\r\n complete: function() {\r\n $('html, body').stop().animate({\r\n scrollTop: self.offset + 3\r\n }, {\r\n duration: self.config.duration,\r\n easing: self.config.easing,\r\n complete: function() {\r\n self.config.afterShow.call(self.section);\r\n if($.isFunction(callback)) callback();\r\n }\r\n });\r\n }\r\n });\r\n\r\n };\r\n\r\n /**\r\n * Changes location's hash.\r\n *\r\n * @public\r\n */\r\n HSScrollNavSection.prototype.changeHash = function() {\r\n this.section.attr('id', '');\r\n window.location.hash = this.element.attr('href');\r\n this.section.attr('id', this.element.attr('href').slice(1));\r\n };\r\n\r\n /**\r\n * Activates the menu item.\r\n *\r\n * @public\r\n */\r\n HSScrollNavSection.prototype.highlight = function() {\r\n\r\n var parent = this.element.parent('li');\r\n if(parent.length) parent.addClass(this.config.activeItemClass);\r\n\r\n };\r\n\r\n /**\r\n * Deactivates the menu item.\r\n *\r\n * @public\r\n */\r\n HSScrollNavSection.prototype.unhighlight = function() {\r\n\r\n var parent = this.element.parent('li');\r\n if(parent.length) parent.removeClass(this.config.activeItemClass);\r\n\r\n };\r\n\r\n\r\n\r\n})(jQuery);\r\n","/**\r\n * Fancybox wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n * @requires\r\n *\r\n */\r\n;\r\n(function($) {\r\n\t'use strict';\r\n\r\n\t$.HSCore.components.HSPopup = {\r\n\t\t/**\r\n\t\t *\r\n\t\t *\r\n\t\t * @var Object _baseConfig\r\n\t\t */\r\n\t\t_baseConfig: {\r\n\t\t\tparentEl: 'html',\r\n\t\t\tbaseClass: 'u-fancybox-theme',\r\n\t\t\tslideClass: 'u-fancybox-slide',\r\n\t\t\tspeed: 1000,\r\n\t\t\tslideSpeedCoefficient: 1,\r\n\t\t\tinfobar: false,\r\n\t\t\tfullScreen: true,\r\n\t\t\tthumbs: true,\r\n\t\t\tcloseBtn: true,\r\n\t\t\tbaseTpl: '
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t' / ' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
{{BUTTONS}}
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'' +\r\n\t\t\t\t'' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
' +\r\n\t\t\t\t'
',\r\n\t\t\tanimationEffect: 'fade'\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t *\r\n\t\t * @var jQuery pageCollection\r\n\t\t */\r\n\t\tpageCollection: $(),\r\n\r\n\t\t/**\r\n\t\t * Initialization of Fancybox wrapper.\r\n\t\t *\r\n\t\t * @param String selector (optional)\r\n\t\t * @param Object config (optional)\r\n\t\t *\r\n\t\t * @return jQuery pageCollection - collection of initialized items.\r\n\t\t */\r\n\r\n\t\tinit: function(selector, config) {\r\n\t\t\tif (!selector) return;\r\n\r\n\t\t\tvar $collection = $(selector);\r\n\r\n\t\t\tif (!$collection.length) return;\r\n\r\n\t\t\tconfig = config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig;\r\n\r\n\t\t\tthis.initPopup(selector, config);\r\n\t\t},\r\n\r\n\t\tinitPopup: function(el, conf) {\r\n\t\t\tvar $fancybox = $(el);\r\n\r\n\t\t\t$fancybox.on('click', function() {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\tanimationDuration = $this.data('speed'),\r\n\t\t\t\t\tisGroup = $this.data('fancybox'),\r\n\t\t\t\t\tisInfinite = Boolean($this.data('is-infinite')),\r\n\t\t\t\t\tslideShowSpeed = $this.data('slideshow-speed');\r\n\r\n\t\t\t\t$.fancybox.defaults.animationDuration = animationDuration;\r\n\r\n\t\t\t\tif (isInfinite == true) {\r\n\t\t\t\t\t$.fancybox.defaults.loop = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isGroup) {\r\n\t\t\t\t\t$.fancybox.defaults.transitionEffect = 'slide';\r\n\t\t\t\t\t$.fancybox.defaults.slideShow.speed = slideShowSpeed;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$fancybox.fancybox($.extend(true, {}, conf, {\r\n\t\t\t\tbeforeShow: function(instance, slide) {\r\n\t\t\t\t\tvar $fancyModal = $(instance.$refs.container),\r\n\t\t\t\t\t\t$fancyOverlay = $(instance.$refs.bg[0]),\r\n\t\t\t\t\t\t$fancySlide = $(instance.current.$slide),\r\n\r\n\t\t\t\t\t\tanimateIn = instance.current.opts.$orig[0].dataset.animateIn,\r\n\t\t\t\t\t\tanimateOut = instance.current.opts.$orig[0].dataset.animateOut,\r\n\t\t\t\t\t\tspeed = instance.current.opts.$orig[0].dataset.speed,\r\n\t\t\t\t\t\toverlayBG = instance.current.opts.$orig[0].dataset.overlayBg,\r\n\t\t\t\t\t\toverlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;\r\n\r\n\t\t\t\t\tif (animateIn && $('body').hasClass('u-first-slide-init')) {\r\n\t\t\t\t\t\tvar $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);\r\n\r\n\t\t\t\t\t\t$fancySlide.addClass('has-animation');\r\n\r\n\t\t\t\t\t\t$fancyPrevSlide.addClass('animated ' + animateOut);\r\n\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$fancySlide.addClass('animated ' + animateIn);\r\n\t\t\t\t\t\t}, speed / 2);\r\n\t\t\t\t\t} else if (animateIn) {\r\n\t\t\t\t\t\tvar $fancyPrevSlide = $(instance.slides[instance.prevPos].$slide);\r\n\r\n\t\t\t\t\t\t$fancySlide.addClass('has-animation');\r\n\r\n\t\t\t\t\t\t$fancySlide.addClass('animated ' + animateIn);\r\n\r\n\t\t\t\t\t\t$('body').addClass('u-first-slide-init');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (speed) {\r\n\t\t\t\t\t\t$fancyOverlay.css('transition-duration', speed + 'ms');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$fancyOverlay.css('transition-duration', '1000ms');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (overlayBG) {\r\n\t\t\t\t\t\t$fancyOverlay.css('background-color', overlayBG);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (overlayBlurBG) {\r\n\t\t\t\t\t\t$('body').addClass('g-blur-30');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\tbeforeClose: function(instance, slide) {\r\n\t\t\t\t\tvar $fancyModal = $(instance.$refs.container),\r\n\t\t\t\t\t\t$fancySlide = $(instance.current.$slide),\r\n\r\n\t\t\t\t\t\tanimateIn = instance.current.opts.$orig[0].dataset.animateIn,\r\n\t\t\t\t\t\tanimateOut = instance.current.opts.$orig[0].dataset.animateOut,\r\n\t\t\t\t\t\toverlayBlurBG = instance.current.opts.$orig[0].dataset.overlayBlurBg;\r\n\r\n\t\t\t\t\tif (animateOut) {\r\n\t\t\t\t\t\t$fancySlide.removeClass(animateIn).addClass(animateOut);\r\n\t\t\t\t\t\t$('body').removeClass('u-first-slide-init')\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (overlayBlurBG) {\r\n\t\t\t\t\t\t$('body').removeClass('g-blur-30')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n})(jQuery);\r\n","/**\r\n * Carousel wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.1 Add swipe parameter\r\n * @requires\r\n *\r\n */\r\n;\r\n(function($) {\r\n\t'use strict';\r\n\r\n\t$.HSCore.components.HSCarousel = {\r\n\t\t/**\r\n\t\t *\r\n\t\t *\r\n\t\t * @var Object _baseConfig\r\n\t\t */\r\n\t\t_baseConfig: {\r\n\t\t\tautoplay: false,\r\n\t\t\tinfinite: true\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t *\r\n\t\t * @var jQuery pageCollection\r\n\t\t */\r\n\t\tpageCollection: $(),\r\n\r\n\t\t/**\r\n\t\t * Initialization of Carousel wrapper.\r\n\t\t *\r\n\t\t * @param String selector (optional)\r\n\t\t * @param Object config (optional)\r\n\t\t *\r\n\t\t * @return jQuery pageCollection - collection of initialized items.\r\n\t\t */\r\n\t\tinit: function(selector, config) {\r\n\t\t\tthis.collection = selector && $(selector).length ? $(selector) : $();\r\n\t\t\tif (!$(selector).length) return;\r\n\r\n\t\t\tthis.config = config && $.isPlainObject(config) ?\r\n\t\t\t\t$.extend({}, this._baseConfig, config) : this._baseConfig;\r\n\r\n\t\t\tthis.config.itemSelector = selector;\r\n\r\n\t\t\tthis.initCarousel();\r\n\r\n\t\t\treturn this.pageCollection;\r\n\t\t},\r\n\r\n\t\tinitCarousel: function() {\r\n\t\t\t//Variables\r\n\t\t\tvar $self = this,\r\n\t\t\t\tconfig = $self.config,\r\n\t\t\t\tcollection = $self.pageCollection;\r\n\r\n\t\t\t//Actions\r\n\t\t\tthis.collection.each(function(i, el) {\r\n\t\t\t\t//Variables\r\n\t\t\t\tvar $this = $(el),\r\n\t\t\t\t\tid = $this.attr('id'),\r\n\r\n\t\t\t\t\t//Markup elements\r\n\t\t\t\t\ttarget = $this.data('nav-for'),\r\n\t\t\t\t\tisThumb = $this.data('is-thumbs'),\r\n\t\t\t\t\tarrowsClasses = $this.data('arrows-classes'),\r\n\t\t\t\t\tarrowLeftClasses = $this.data('arrow-left-classes'),\r\n\t\t\t\t\tarrowRightClasses = $this.data('arrow-right-classes'),\r\n\t\t\t\t\tpagiClasses = $this.data('pagi-classes'),\r\n\t\t\t\t\tpagiHelper = $this.data('pagi-helper'),\r\n\t\t\t\t\t$pagiIcons = $this.data('pagi-icons'),\r\n\t\t\t\t\t$prevMarkup = '
',\r\n\t\t\t\t\t$nextMarkup = '
',\r\n\r\n\t\t\t\t\t//Setters\r\n\t\t\t\t\tsetSlidesToShow = $this.data('slides-show'),\r\n\t\t\t\t\tsetSlidesToScroll = $this.data('slides-scroll'),\r\n\t\t\t\t\tsetAutoplay = $this.data('autoplay'),\r\n\t\t\t\t\tsetAnimation = $this.data('animation'),\r\n\t\t\t\t\tsetEasing = $this.data('easing'),\r\n\t\t\t\t\tsetFade = $this.data('fade'),\r\n\t\t\t\t\tsetSpeed = $this.data('speed'),\r\n\t\t\t\t\tsetSlidesRows = $this.data('rows'),\r\n\t\t\t\t\tsetCenterMode = $this.data('center-mode'),\r\n\t\t\t\t\tsetCenterPadding = $this.data('center-padding'),\r\n\t\t\t\t\tsetPauseOnHover = $this.data('pause-hover'),\r\n\t\t\t\t\tsetVariableWidth = $this.data('variable-width'),\r\n\t\t\t\t\tsetInitialSlide = $this.data('initial-slide'),\r\n\t\t\t\t\tsetVertical = $this.data('vertical'),\r\n\t\t\t\t\tsetRtl = $this.data('rtl'),\r\n\t\t\t\t\tsetInEffect = $this.data('in-effect'),\r\n\t\t\t\t\tsetOutEffect = $this.data('out-effect'),\r\n\t\t\t\t\tsetInfinite = $this.data('infinite'),\r\n\t\t\t\t\tsetDataTitlePosition = $this.data('title-pos-inside'),\r\n\t\t\t\t\tsetFocusOnSelect = $this.data('focus-on-select'),\r\n\t\t\t\t\tsetLazyLoad = $this.data('lazy-load'),\r\n\t\t\t\t\tisAdaptiveHeight = $this.data('adaptive-height'),\r\n\t\t\t\t\tnumberedPaging = $this.data('numbered-pagination'),\r\n setSwipe = $this.data('swipe'),\r\n\t\t\t\t\tsetResponsive = JSON.parse(el.getAttribute('data-responsive'));\r\n\r\n\t\t\t\tif ($this.find('[data-slide-type]').length) {\r\n\t\t\t\t\t$self.videoSupport($this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$this.on('init', function(event, slick) {\r\n\t\t\t\t\t$(slick.$slides).css('height', 'auto');\r\n\r\n\t\t\t\t\tif(isThumb && setSlidesToShow >= $(slick.$slides).length) {\r\n\t\t\t\t\t\t $this.addClass('slick-transform-off');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (setInEffect && setOutEffect) {\r\n\t\t\t\t\t$this.on('init', function(event, slick) {\r\n\t\t\t\t\t\t$(slick.$slides).addClass('single-slide');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (pagiHelper) {\r\n\t\t\t\t\t$this.on('init', function(event, slick) {\r\n\t\t\t\t\t\tvar $pagination = $this.find('.js-pagination');\r\n\r\n\t\t\t\t\t\tif (!$pagination.length) return;\r\n\r\n\t\t\t\t\t\t$pagination.append('');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isThumb) {\r\n\t\t\t\t\t$('#' + id).on('click', '.slick-slide', function(e) {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\t\t//Variables\r\n\t\t\t\t\t\tvar i = $(this).data('slick-index');\r\n\r\n\t\t\t\t\t\tif ($('#' + id).slick('slickCurrentSlide') !== i) {\r\n\t\t\t\t\t\t\t$('#' + id).slick('slickGoTo', i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$this.on('init', function(event, slider) {\r\n\t\t\t\t\tvar $pagination = $this.find('.js-pagination');\r\n\r\n\t\t\t\t\tif (!$pagination.length) return;\r\n\r\n\t\t\t\t\t$($pagination[0].children[0]).addClass('slick-current');\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$this.on('init', function(event, slick) {\r\n\t\t\t\t\tvar slide = $(slick.$slides)[0],\r\n\t\t\t\t\t\tanimatedElements = $(slide).find('[data-scs-animation-in]');\r\n\r\n\t\t\t\t\t$(animatedElements).each(function() {\r\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in');\r\n\r\n\t\t\t\t\t\t$(this).addClass('animated ' + animationIn).css('opacity', 1);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (numberedPaging) {\r\n\t\t\t\t\t$this.on('init', function(event, slick) {\r\n\t\t\t\t\t\t$(numberedPaging).text('1' + '/' + slick.slideCount);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif (setSwipe == null)\r\n\t\t\t\t\tsetSwipe = true;\r\n\r\n\t\t\t\t$this.slick({\r\n\t\t\t\t\t\r\n\t\t\t\t\tswipe: setSwipe ? true : false,\t\t\t\t\t\r\n\t\t\t\t\tautoplay: setAutoplay ? true : false,\r\n\t\t\t\t\tautoplaySpeed: setSpeed ? setSpeed : 3000,\r\n\r\n\t\t\t\t\tcssEase: setAnimation ? setAnimation : 'ease',\r\n\t\t\t\t\teasing: setEasing ? setEasing : 'linear',\r\n\t\t\t\t\tfade: setFade ? true : false,\r\n\r\n\t\t\t\t\tinfinite: setInfinite ? true : false,\r\n\t\t\t\t\tinitialSlide: setInitialSlide ? setInitialSlide - 1 : 0,\r\n\t\t\t\t\tslidesToShow: setSlidesToShow ? setSlidesToShow : 1,\r\n\t\t\t\t\tslidesToScroll: setSlidesToScroll ? setSlidesToScroll : 1,\r\n\t\t\t\t\tcenterMode: setCenterMode ? true : false,\r\n\t\t\t\t\tvariableWidth: setVariableWidth ? true : false,\r\n\t\t\t\t\tpauseOnHover: setPauseOnHover ? true : false,\r\n\t\t\t\t\trows: setSlidesRows ? setSlidesRows : 1,\r\n\t\t\t\t\tvertical: setVertical ? true : false,\r\n\t\t\t\t\tverticalSwiping: setVertical ? true : false,\r\n\t\t\t\t\trtl: setRtl ? true : false,\r\n\t\t\t\t\tcenterPadding: setCenterPadding ? setCenterPadding : 0,\r\n\t\t\t\t\tfocusOnSelect: setFocusOnSelect ? true : false,\r\n\t\t\t\t\tlazyLoad: setLazyLoad ? setLazyLoad : false,\r\n\r\n\t\t\t\t\tasNavFor: target ? target : false,\r\n\t\t\t\t\tprevArrow: arrowsClasses ? $prevMarkup : false,\r\n\t\t\t\t\tnextArrow: arrowsClasses ? $nextMarkup : false,\r\n\t\t\t\t\tdots: pagiClasses ? true : false,\r\n\t\t\t\t\tdotsClass: 'js-pagination ' + pagiClasses,\r\n\t\t\t\t\tadaptiveHeight: !!isAdaptiveHeight,\r\n\t\t\t\t\tcustomPaging: function(slider, i) {\r\n\t\t\t\t\t\tvar title = $(slider.$slides[i]).data('title');\r\n\r\n\t\t\t\t\t\tif (title && $pagiIcons) {\r\n\t\t\t\t\t\t\treturn '' + title + '' + $pagiIcons;\r\n\t\t\t\t\t\t} else if ($pagiIcons) {\r\n\t\t\t\t\t\t\treturn '' + $pagiIcons;\r\n\t\t\t\t\t\t} else if (title && setDataTitlePosition) {\r\n\t\t\t\t\t\t\treturn '' + title + '';\r\n\t\t\t\t\t\t} else if (title && !setDataTitlePosition) {\r\n\t\t\t\t\t\t\treturn '' + '' + title + '';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tresponsive: setResponsive\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$this.on('beforeChange', function(event, slider, currentSlide, nextSlide) {\r\n\t\t\t\t\tvar nxtSlide = $(slider.$slides)[nextSlide],\r\n\t\t\t\t\t\tslide = $(slider.$slides)[currentSlide],\r\n\t\t\t\t\t\t$pagination = $this.find('.js-pagination'),\r\n\t\t\t\t\t\tanimatedElements = $(nxtSlide).find('[data-scs-animation-in]'),\r\n\t\t\t\t\t\totherElements = $(slide).find('[data-scs-animation-in]');\r\n\r\n\t\t\t\t\t$(otherElements).each(function() {\r\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in');\r\n\r\n\t\t\t\t\t\t$(this).removeClass('animated ' + animationIn);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$(animatedElements).each(function() {\r\n\t\t\t\t\t\t$(this).css('opacity', 0);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (!$pagination.length) return;\r\n\r\n\t\t\t\t\tif (currentSlide > nextSlide) {\r\n\t\t\t\t\t\t$($pagination[0].children).removeClass('slick-active-right');\r\n\r\n\t\t\t\t\t\t$($pagination[0].children[nextSlide]).addClass('slick-active-right');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$($pagination[0].children).removeClass('slick-active-right');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$($pagination[0].children).removeClass('slick-current');\r\n\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t$($pagination[0].children[nextSlide]).addClass('slick-current');\r\n\t\t\t\t\t}, .25);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (numberedPaging) {\r\n\t\t\t\t\t$this.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\r\n\t\t\t\t\t\tvar i = (nextSlide ? nextSlide : 0) + 1;\r\n\r\n\t\t\t\t\t\t$(numberedPaging).text(i + '/' + slick.slideCount);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$this.on('afterChange', function(event, slick, currentSlide, nextSlide) {\r\n\t\t\t\t\tvar slide = $(slick.$slides)[currentSlide],\r\n\t\t\t\t\t\tanimatedElements = $(slide).find('[data-scs-animation-in]');\r\n\r\n\t\t\t\t\t$(animatedElements).each(function() {\r\n\t\t\t\t\t\tvar animationIn = $(this).data('scs-animation-in'),\r\n\t\t\t\t\t\t\tanimationDelay = $(this).data('scs-animation-delay'),\r\n\t\t\t\t\t\t\tanimationDuration = $(this).data('scs-animation-duration');\r\n\r\n\t\t\t\t\t\t\tconsole.log(animationDuration);\r\n\r\n\t\t\t\t\t\t$(this).css({\r\n\t\t\t\t\t\t\t'animation-delay': animationDelay + 'ms',\r\n\t\t\t\t\t\t\t'animation-duration': animationDuration + 'ms'\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t$(this).addClass('animated ' + animationIn).css('opacity', 1);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (setInEffect && setOutEffect) {\r\n\t\t\t\t\t$this.on('afterChange', function(event, slick, currentSlide, nextSlide) {\r\n\t\t\t\t\t\t$(slick.$slides).removeClass('animated set-position ' + setInEffect + ' ' + setOutEffect);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$this.on('beforeChange', function(event, slick, currentSlide) {\r\n\t\t\t\t\t\t$(slick.$slides[currentSlide]).addClass('animated ' + setOutEffect);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$this.on('setPosition', function(event, slick) {\r\n\t\t\t\t\t\t$(slick.$slides[slick.currentSlide]).addClass('animated set-position ' + setInEffect);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//Actions\r\n\t\t\t\tcollection = collection.add($this);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Implementation of video support.\r\n\t\t *\r\n\t\t * @param jQuery carousel\r\n\t\t * @param String videoSupport\r\n\t\t *\r\n\t\t * @return undefined\r\n\t\t */\r\n\t\tvideoSupport: function(carousel) {\r\n\t\t\tif (!carousel.length) return;\r\n\r\n\t\t\tcarousel.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\r\n\t\t\t\tvar slideType = $(slick.$slides[currentSlide]).data('slide-type'),\r\n\t\t\t\t\tplayer = $(slick.$slides[currentSlide]).find('iframe').get(0),\r\n\t\t\t\t\tcommand;\r\n\r\n\t\t\t\tif (slideType == 'vimeo') {\r\n\t\t\t\t\tcommand = {\r\n\t\t\t\t\t\t\"method\": \"pause\",\r\n\t\t\t\t\t\t\"value\": \"true\"\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (slideType == 'youtube') {\r\n\t\t\t\t\tcommand = {\r\n\t\t\t\t\t\t\"event\": \"command\",\r\n\t\t\t\t\t\t\"func\": \"pauseVideo\"\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (player != undefined) {\r\n\t\t\t\t\tplayer.contentWindow.postMessage(JSON.stringify(command), '*');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Implementation of text animation.\r\n\t\t *\r\n\t\t * @param jQuery carousel\r\n\t\t * @param String textAnimationSelector\r\n\t\t *\r\n\t\t * @requires charming.js, anime.js, textfx.js\r\n\t\t *\r\n\t\t * @return undefined\r\n\t\t */\r\n\t\tinitTextAnimation: function(carousel, textAnimationSelector) {\r\n\t\t\tif (!window.TextFx || !window.anime || !carousel.length) return;\r\n\r\n\t\t\tvar $text = carousel.find(textAnimationSelector);\r\n\r\n\t\t\tif (!$text.length) return;\r\n\r\n\t\t\t$text.each(function(i, el) {\r\n\t\t\t\tvar $this = $(el);\r\n\r\n\t\t\t\tif (!$this.data('TextFx')) {\r\n\t\t\t\t\t$this.data('TextFx', new TextFx($this.get(0)));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\tcarousel.on('beforeChange', function(event, slick, currentSlide, nextSlide) {\r\n\t\t\t\tvar targets = slick.$slider\r\n\t\t\t\t\t.find('.slick-track')\r\n\t\t\t\t\t.children();\r\n\r\n\t\t\t\tvar currentTarget = targets.eq(currentSlide),\r\n\t\t\t\t\tnextTarget = targets.eq(nextSlide);\r\n\r\n\t\t\t\tcurrentTarget = currentTarget.find(textAnimationSelector);\r\n\t\t\t\tnextTarget = nextTarget.find(textAnimationSelector);\r\n\r\n\t\t\t\tif (currentTarget.length) {\r\n\t\t\t\t\tcurrentTarget.data('TextFx').hide(currentTarget.data('effect') ? currentTarget.data('effect') : 'fx1');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (nextTarget.length) {\r\n\t\t\t\t\tnextTarget.data('TextFx').show(nextTarget.data('effect') ? nextTarget.data('effect') : 'fx1');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n})(jQuery);\r\n","/**\r\n * Gmap wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n * @requires\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSGMap = {\r\n /**\r\n *\r\n *\r\n * @var Object _baseConfig\r\n */\r\n _baseConfig: {\r\n zoom: 14,\r\n scrollwheel: false\r\n },\r\n\r\n /**\r\n *\r\n *\r\n * @var jQuery pageCollection\r\n */\r\n pageCollection: $(),\r\n\r\n /**\r\n * Initialization of Gmap wrapper.\r\n *\r\n * @param String selector (optional)\r\n * @param Object config (optional)\r\n *\r\n * @return jQuery pageCollection - collection of initialized items.\r\n */\r\n\r\n init: function (selector, config) {\r\n\r\n this.collection = selector && $(selector).length ? $(selector) : $();\r\n if (!$(selector).length) return;\r\n\r\n this.config = config && $.isPlainObject(config) ?\r\n $.extend({}, this._baseConfig, config) : this._baseConfig;\r\n\r\n this.config.itemSelector = selector;\r\n\r\n this.initGMap();\r\n\r\n return this.pageCollection;\r\n\r\n },\r\n\r\n initGMap: function () {\r\n //Variables\r\n var $self = this,\r\n config = $self.config,\r\n collection = $self.pageCollection;\r\n\r\n //Actions\r\n this.collection.each(function (i, el) {\r\n //Variables\r\n var $this = $(el),\r\n ID = $this.attr('id'),\r\n gMapType = $this.data('type'),\r\n gMapLat = $this.data('lat'),\r\n gMapLng = $this.data('lng'),\r\n gMapZoom = $this.data('zoom'),\r\n gMapTitle = $this.data('title'),\r\n\r\n gMapStyles = JSON.parse(el.getAttribute('data-styles')),\r\n gMapStylesArray = [],\r\n\r\n polygon,\r\n gMapPolygon = Boolean($this.data('polygon')),\r\n gMapPolygonCords = JSON.parse(el.getAttribute('data-polygon-cords')),\r\n gMapPolygonStyles = JSON.parse(el.getAttribute('data-polygon-styles')),\r\n\r\n polylines,\r\n gMapPolylines = Boolean($this.data('polylines')),\r\n gMapPolylinesCords = JSON.parse(el.getAttribute('data-polylines-cords')),\r\n gMapPolylinesStyles = JSON.parse(el.getAttribute('data-polylines-styles')),\r\n\r\n gMapRoutes = Boolean($this.data('routes')),\r\n gMapRoutesCords = JSON.parse(el.getAttribute('data-routes-cords')),\r\n gMapRoutesStyles = JSON.parse(el.getAttribute('data-routes-styles')),\r\n\r\n gMapGeolocation = Boolean($this.data('geolocation')),\r\n\r\n gMapGeocoding = Boolean($this.data('geocoding')),\r\n gMapCordsTarget = $this.data('cords-target'),\r\n\r\n gMapPin = Boolean($this.data('pin')),\r\n gMapPinIcon = $this.data('pin-icon'),\r\n\r\n gMapMultipleMarkers = Boolean($this.data('multiple-markers')),\r\n gMapMarkersLocations = JSON.parse(el.getAttribute('data-markers-locations')),\r\n\r\n $gMap;\r\n\r\n //Map Type\r\n if (gMapType == 'satellite') {\r\n $gMap = new google.maps.Map(document.getElementById(ID), {\r\n zoom: gMapZoom ? gMapZoom : config['zoom'],\r\n scrollwheel: config['scrollwheel']\r\n });\r\n\r\n $gMap.setCenter({\r\n lat: gMapLat,\r\n lng: gMapLng\r\n });\r\n\r\n $gMap.setMapTypeId(google.maps.MapTypeId.SATELLITE);\r\n } else if (gMapType == 'terrain') {\r\n $gMap = new google.maps.Map(document.getElementById(ID), {\r\n zoom: gMapZoom ? gMapZoom : config['zoom'],\r\n scrollwheel: config['scrollwheel']\r\n });\r\n\r\n $gMap.setCenter({\r\n lat: gMapLat,\r\n lng: gMapLng\r\n });\r\n\r\n $gMap.setMapTypeId(google.maps.MapTypeId.TERRAIN);\r\n } else if (gMapType == 'street-view') {\r\n $gMap = new google.maps.StreetViewPanorama(document.getElementById(ID), {\r\n zoom: gMapZoom ? gMapZoom : config['zoom'],\r\n scrollwheel: config['scrollwheel']\r\n });\r\n\r\n $gMap.setPosition({\r\n lat: gMapLat,\r\n lng: gMapLng\r\n });\r\n } else if (gMapType == 'static') {\r\n $(document).ready(function () {\r\n $gMap = GMaps.staticMapURL({\r\n size: [2048, 2048],\r\n lat: gMapLat,\r\n lng: gMapLng,\r\n zoom: gMapZoom ? gMapZoom : config['zoom']\r\n });\r\n\r\n $('#' + ID).css('background-image', 'url(' + $gMap + ')');\r\n });\r\n } else if (gMapType == 'custom') {\r\n var arrL = gMapStyles.length;\r\n\r\n for (var i = 0; i < arrL; i++) {\r\n var featureType = gMapStyles[i][0],\r\n elementType = gMapStyles[i][1],\r\n stylers = gMapStyles[i][2],\r\n obj = $.extend({}, gMapStylesArray[i]);\r\n\r\n if (featureType != \"\") {\r\n obj.featureType = featureType;\r\n }\r\n\r\n if (elementType != \"\") {\r\n obj.elementType = elementType;\r\n }\r\n\r\n obj.stylers = stylers;\r\n\r\n gMapStylesArray.push(obj);\r\n }\r\n\r\n $gMap = new GMaps({\r\n div: '#' + ID,\r\n lat: gMapLat,\r\n lng: gMapLng,\r\n zoom: gMapZoom ? gMapZoom : config['zoom'],\r\n scrollwheel: config['scrollwheel'],\r\n styles: gMapStylesArray\r\n });\r\n\r\n //Pin\r\n if (gMapPin) {\r\n $gMap.addMarker({\r\n lat: gMapLat,\r\n lng: gMapLng,\r\n title: gMapTitle,\r\n icon: gMapPinIcon\r\n });\r\n }\r\n //End Pin\r\n } else {\r\n $gMap = new GMaps({\r\n div: '#' + ID,\r\n lat: gMapLat,\r\n lng: gMapLng,\r\n zoom: gMapZoom ? gMapZoom : config['zoom'],\r\n scrollwheel: config['scrollwheel']\r\n });\r\n\r\n //Pin\r\n if (gMapPin) {\r\n $gMap.addMarker({\r\n lat: gMapLat,\r\n lng: gMapLng,\r\n title: gMapTitle,\r\n icon: gMapPinIcon\r\n });\r\n }\r\n //End Pin\r\n }\r\n //End Map Type\r\n\r\n //Pin\r\n if (gMapPin && gMapType == 'satellite' || gMapType == 'terrain' || gMapType == 'street-view') {\r\n //Variables\r\n var $pin = new google.maps.Marker({\r\n position: {\r\n lat: gMapLat,\r\n lng: gMapLng\r\n },\r\n map: $gMap\r\n });\r\n\r\n if (gMapPinIcon) {\r\n var $pinIcon = new google.maps.MarkerImage(gMapPinIcon);\r\n $pin.setIcon($pinIcon);\r\n }\r\n\r\n if (gMapTitle) {\r\n $pin.setOptions({\r\n title: gMapTitle\r\n });\r\n }\r\n }\r\n //End Pin\r\n\r\n //Multiple markers\r\n if (gMapMultipleMarkers == true) {\r\n var infowindow = new google.maps.InfoWindow(),\r\n marker,\r\n i2;\r\n\r\n for (i2 = 0; i2 < gMapMarkersLocations.length; i2++) {\r\n marker = new google.maps.Marker({\r\n position: new google.maps.LatLng(gMapMarkersLocations[i2][1], gMapMarkersLocations[i2][2]),\r\n map: $gMap\r\n });\r\n\r\n google.maps.event.addListener(marker, 'click', (function (marker, i2) {\r\n return function () {\r\n infowindow.setContent(gMapMarkersLocations[i2][0]);\r\n infowindow.open($gMap, marker);\r\n }\r\n })(marker, i2));\r\n }\r\n }\r\n //End Multiple markers\r\n\r\n //Auto Center markers on window resize\r\n if (!gMapGeolocation) {\r\n google.maps.event.addDomListener(window, 'resize', function () {\r\n setTimeout(function () {\r\n $gMap.setCenter({\r\n lat: gMapLat,\r\n lng: gMapLng\r\n });\r\n }, 100);\r\n });\r\n }\r\n\r\n //Polygon\r\n if (gMapPolygon) {\r\n $(document).ready(function () {\r\n polygon = $gMap.drawPolygon({\r\n paths: gMapPolygonCords,\r\n strokeColor: gMapPolygonStyles.strokeColor,\r\n strokeOpacity: gMapPolygonStyles.strokeOpacity,\r\n strokeWeight: gMapPolygonStyles.strokeWeight,\r\n fillColor: gMapPolygonStyles.fillColor,\r\n fillOpacity: gMapPolygonStyles.fillOpacity\r\n });\r\n });\r\n }\r\n //End Polygon\r\n\r\n //Polylines\r\n if (gMapPolylines) {\r\n $(document).ready(function () {\r\n $gMap.drawPolyline({\r\n path: gMapPolylinesCords,\r\n strokeColor: gMapPolylinesStyles.strokeColor,\r\n strokeOpacity: gMapPolylinesStyles.strokeOpacity,\r\n strokeWeight: gMapPolylinesStyles.strokeWeight\r\n });\r\n });\r\n }\r\n //End Polylines\r\n\r\n //Routes\r\n if (gMapRoutes) {\r\n $(document).ready(function () {\r\n $gMap.drawRoute({\r\n origin: gMapRoutesCords[0],\r\n destination: gMapRoutesCords[1],\r\n travelMode: gMapRoutesStyles.travelMode,\r\n strokeColor: gMapRoutesStyles.strokeColor,\r\n strokeOpacity: gMapRoutesStyles.strokeOpacity,\r\n strokeWeight: gMapRoutesStyles.strokeWeight\r\n });\r\n });\r\n }\r\n //End Routes\r\n\r\n //Geolocation\r\n if (gMapGeolocation) {\r\n GMaps.geolocate({\r\n success: function (position) {\r\n $gMap.setCenter({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n });\r\n\r\n $gMap.addMarker({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n title: gMapTitle,\r\n icon: gMapPinIcon\r\n });\r\n\r\n google.maps.event.addDomListener(window, 'resize', function () {\r\n setTimeout(function () {\r\n $gMap.setCenter({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n });\r\n }, 100);\r\n });\r\n },\r\n error: function (error) {\r\n alert('Geolocation failed: ' + error.message);\r\n },\r\n not_supported: function () {\r\n alert('Your browser does not support geolocation');\r\n }\r\n });\r\n }\r\n //End Geolocation\r\n\r\n //Geocoding\r\n if (gMapGeocoding) {\r\n $(document).ready(function () {\r\n var targetCordsParent = $(gMapCordsTarget).closest('form');\r\n\r\n $(targetCordsParent).submit(function (e) {\r\n e.preventDefault();\r\n\r\n GMaps.geocode({\r\n address: $(gMapCordsTarget).val().trim(),\r\n callback: function (results, status) {\r\n if (status == 'OK') {\r\n var latlng = results[0].geometry.location;\r\n\r\n $gMap.setCenter(latlng.lat(), latlng.lng());\r\n $gMap.addMarker({\r\n lat: latlng.lat(),\r\n lng: latlng.lng()\r\n });\r\n\r\n gMapLat = latlng.lat();\r\n gMapLng = latlng.lng();\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n //End Geocoding\r\n\r\n //Actions\r\n collection = collection.add($this);\r\n });\r\n }\r\n }\r\n})(jQuery);\r\n","/**\r\n * Go To wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n $.HSCore.components.HSGoTo = {\r\n /**\r\n *\r\n *\r\n * @var Object _baseConfig\r\n */\r\n _baseConfig: {},\r\n\r\n /**\r\n *\r\n *\r\n * @var jQuery pageCollection\r\n */\r\n pageCollection: $(),\r\n\r\n /**\r\n * Initialization of Go To wrapper.\r\n *\r\n * @param String selector (optional)\r\n * @param Object config (optional)\r\n *\r\n * @return jQuery pageCollection - collection of initialized items.\r\n */\r\n\r\n init: function (selector, config) {\r\n this.collection = selector && $(selector).length ? $(selector) : $();\r\n if (!$(selector).length) return;\r\n\r\n this.config = config && $.isPlainObject(config) ?\r\n $.extend({}, this._baseConfig, config) : this._baseConfig;\r\n\r\n this.config.itemSelector = selector;\r\n\r\n this.initGoTo();\r\n\r\n return this.pageCollection;\r\n },\r\n\r\n initGoTo: function () {\r\n //Variables\r\n var $self = this,\r\n collection = $self.pageCollection;\r\n\r\n //Actions\r\n this.collection.each(function (i, el) {\r\n //Variables\r\n var $this = $(el),\r\n $target = $this.data('target'),\r\n type = $this.data('type'),\r\n showEffect = $this.data('show-effect'),\r\n hideEffect = $this.data('hide-effect'),\r\n position = JSON.parse(el.getAttribute('data-position')),\r\n compensation = $($this.data('compensation')).outerHeight(),\r\n offsetTop = $this.data('offset-top'),\r\n targetOffsetTop = function () {\r\n if (compensation) {\r\n return $target ? $($target).offset().top - compensation : 0;\r\n } else {\r\n return $target ? $($target).offset().top : 0;\r\n }\r\n };\r\n\r\n if (type == 'static') {\r\n $this.css({\r\n 'display': 'inline-block'\r\n });\r\n } else {\r\n $this.addClass('animated').css({\r\n 'display': 'inline-block',\r\n 'position': type,\r\n 'opacity': 0\r\n });\r\n }\r\n\r\n if (type == 'fixed' || type == 'absolute') {\r\n $this.css(position);\r\n }\r\n\r\n $this.on('click', function (e) {\r\n e.preventDefault();\r\n\r\n $('html, body').stop().animate({\r\n 'scrollTop': targetOffsetTop()\r\n }, 800);\r\n });\r\n\r\n if (!$this.data('offset-top') && !$this.hasClass('js-animation-was-fired') && type != 'static') {\r\n if ($this.offset().top <= $(window).height()) {\r\n $this.show();\r\n\r\n setTimeout(function () {\r\n $this.addClass('js-animation-was-fired ' + showEffect).css({\r\n 'opacity': ''\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (type != 'static') {\r\n $(window).on('scroll', function () {\r\n if ($this.data('offset-top')) {\r\n if ($(window).scrollTop() >= offsetTop && !$this.hasClass('js-animation-was-fired')) {\r\n $this.show();\r\n\r\n setTimeout(function () {\r\n $this.addClass('js-animation-was-fired ' + showEffect).css({\r\n 'opacity': ''\r\n });\r\n });\r\n } else if ($(window).scrollTop() <= offsetTop && $this.hasClass('js-animation-was-fired')) {\r\n $this.removeClass('js-animation-was-fired ' + showEffect);\r\n\r\n setTimeout(function () {\r\n $this.addClass(hideEffect).css({\r\n 'opacity': 0\r\n });\r\n }, 100);\r\n\r\n setTimeout(function () {\r\n $this.removeClass(hideEffect).hide();\r\n }, 400);\r\n }\r\n } else {\r\n var thisOffsetTop = $this.offset().top;\r\n\r\n if (!$this.hasClass('js-animation-was-fired')) {\r\n if ($(window).scrollTop() >= thisOffsetTop - $(window).height()) {\r\n $this.show();\r\n\r\n setTimeout(function () {\r\n $this.addClass('js-animation-was-fired ' + showEffect).css({\r\n 'opacity': ''\r\n });\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n $(window).trigger('scroll');\r\n }\r\n\r\n //Actions\r\n collection = collection.add($this);\r\n });\r\n }\r\n };\r\n})(jQuery);\r\n","/**\r\n * Dropdown component.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n */\r\n;\r\n(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSDropdown = {\r\n\r\n /**\r\n * Base configuration of the component.\r\n *\r\n * @private\r\n */\r\n _baseConfig: {\r\n dropdownEvent: 'click',\r\n dropdownType: 'simple',\r\n dropdownDuration: 300,\r\n dropdownEasing: 'linear',\r\n dropdownAnimationIn: 'fadeIn',\r\n dropdownAnimationOut: 'fadeOut',\r\n dropdownHideOnScroll: true,\r\n dropdownHideOnBlur: false,\r\n dropdownDelay: 350,\r\n afterOpen: function (invoker) {\r\n },\r\n afterClose: function (invoker) {\r\n }\r\n },\r\n\r\n /**\r\n * Collection of all initialized items on the page.\r\n *\r\n * @private\r\n */\r\n _pageCollection: $(),\r\n\r\n /**\r\n * Initialization.\r\n *\r\n * @param {jQuery} collection\r\n * @param {Object} config\r\n *\r\n * @public\r\n * @return {jQuery}\r\n */\r\n init: function (collection, config) {\r\n\r\n var self;\r\n\r\n if (!collection || !collection.length) return;\r\n\r\n self = this;\r\n\r\n var fieldsQty;\r\n\r\n collection.each(function (i, el) {\r\n\r\n var $this = $(el), itemConfig;\r\n\r\n if ($this.data('HSDropDown')) return;\r\n\r\n itemConfig = config && $.isPlainObject(config) ?\r\n $.extend(true, {}, self._baseConfig, config, $this.data()) :\r\n $.extend(true, {}, self._baseConfig, $this.data());\r\n\r\n switch (itemConfig.dropdownType) {\r\n\r\n case 'css-animation' :\r\n\r\n $this.data('HSDropDown', new DropdownCSSAnimation($this, itemConfig));\r\n\r\n break;\r\n\r\n case 'jquery-slide' :\r\n\r\n $this.data('HSDropDown', new DropdownJSlide($this, itemConfig));\r\n\r\n break;\r\n\r\n default :\r\n\r\n $this.data('HSDropDown', new DropdownSimple($this, itemConfig));\r\n\r\n }\r\n\r\n self._pageCollection = self._pageCollection.add($this);\r\n self._bindEvents($this, itemConfig.dropdownEvent, itemConfig.dropdownDelay);\r\n var DropDown = $(el).data('HSDropDown');\r\n\r\n fieldsQty = $(DropDown.target).find('input, textarea').length;\r\n\r\n });\r\n\r\n $(document).on('keyup.HSDropDown', function (e) {\r\n\r\n if (e.keyCode && e.keyCode == 27) {\r\n\r\n self._pageCollection.each(function (i, el) {\r\n\r\n var windW = $(window).width(),\r\n optIsMobileOnly = Boolean($(el).data('is-mobile-only'));\r\n\r\n if (!optIsMobileOnly) {\r\n $(el).data('HSDropDown').hide();\r\n } else if (optIsMobileOnly && windW < 769) {\r\n $(el).data('HSDropDown').hide();\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n });\r\n\r\n $(window).on('click', function (e) {\r\n\r\n self._pageCollection.each(function (i, el) {\r\n\r\n var windW = $(window).width(),\r\n optIsMobileOnly = Boolean($(el).data('is-mobile-only'));\r\n\r\n if (!optIsMobileOnly) {\r\n $(el).data('HSDropDown').hide();\r\n } else if (optIsMobileOnly && windW < 769) {\r\n $(el).data('HSDropDown').hide();\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n self._pageCollection.each(function (i, el) {\r\n\r\n var target = $(el).data('HSDropDown').config.dropdownTarget;\r\n\r\n $(target).on('click', function(e) {\r\n\r\n e.stopPropagation();\r\n\r\n });\r\n\r\n });\r\n\r\n $(window).on('scroll.HSDropDown', function (e) {\r\n\r\n self._pageCollection.each(function (i, el) {\r\n\r\n var DropDown = $(el).data('HSDropDown');\r\n\r\n if (DropDown.getOption('dropdownHideOnScroll') && fieldsQty === 0) {\r\n\r\n DropDown.hide();\r\n\r\n } else if (DropDown.getOption('dropdownHideOnScroll') && !(/iPhone|iPad|iPod/i.test(navigator.userAgent))) {\r\n\r\n DropDown.hide();\r\n\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n $(window).on('resize.HSDropDown', function (e) {\r\n\r\n if (self._resizeTimeOutId) clearTimeout(self._resizeTimeOutId);\r\n\r\n self._resizeTimeOutId = setTimeout(function () {\r\n\r\n self._pageCollection.each(function (i, el) {\r\n\r\n var DropDown = $(el).data('HSDropDown');\r\n\r\n DropDown.smartPosition(DropDown.target);\r\n\r\n });\r\n\r\n }, 50);\r\n\r\n });\r\n\r\n return collection;\r\n\r\n },\r\n\r\n /**\r\n * Binds necessary events.\r\n *\r\n * @param {jQuery} $invoker\r\n * @param {String} eventType\r\n * @param {Number} delay\r\n * @private\r\n */\r\n _bindEvents: function ($invoker, eventType, delay) {\r\n\r\n var $dropdown = $($invoker.data('dropdown-target'));\r\n\r\n // if (eventType == 'hover' && !_isTouch()) {\r\n if (eventType == 'hover') {\r\n\r\n $invoker.on('mouseenter.HSDropDown', function (e) {\r\n\r\n var $invoker = $(this),\r\n HSDropDown = $invoker.data('HSDropDown');\r\n\r\n if (!HSDropDown) return;\r\n\r\n if (HSDropDown.dropdownTimeOut) clearTimeout(HSDropDown.dropdownTimeOut);\r\n HSDropDown.show();\r\n\r\n })\r\n .on('mouseleave.HSDropDown', function (e) {\r\n\r\n var $invoker = $(this),\r\n HSDropDown = $invoker.data('HSDropDown');\r\n\r\n if (!HSDropDown) return;\r\n\r\n HSDropDown.dropdownTimeOut = setTimeout(function () {\r\n\r\n HSDropDown.hide();\r\n\r\n }, delay);\r\n\r\n });\r\n\r\n if ($dropdown.length) {\r\n\r\n $dropdown.on('mouseenter.HSDropDown', function (e) {\r\n\r\n var HSDropDown = $invoker.data('HSDropDown');\r\n\r\n if (HSDropDown.dropdownTimeOut) clearTimeout(HSDropDown.dropdownTimeOut);\r\n HSDropDown.show();\r\n\r\n })\r\n .on('mouseleave.HSDropDown', function (e) {\r\n\r\n var HSDropDown = $invoker.data('HSDropDown');\r\n\r\n HSDropDown.dropdownTimeOut = setTimeout(function () {\r\n HSDropDown.hide();\r\n }, delay);\r\n\r\n });\r\n }\r\n\r\n }\r\n else {\r\n\r\n $invoker.on('click.HSDropDown', function (e) {\r\n\r\n var $curInvoker = $(this);\r\n\r\n if (!$curInvoker.data('HSDropDown')) return;\r\n\r\n if ($('[data-dropdown-target].active').length) {\r\n $('[data-dropdown-target].active').data('HSDropDown').toggle();\r\n }\r\n\r\n $curInvoker.data('HSDropDown').toggle();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n };\r\n\r\n function _isTouch() {\r\n return 'ontouchstart' in window;\r\n }\r\n\r\n /**\r\n * Abstract Dropdown class.\r\n *\r\n * @param {jQuery} element\r\n * @param {Object} config\r\n * @abstract\r\n */\r\n function AbstractDropdown(element, config) {\r\n\r\n if (!element.length) return false;\r\n\r\n this.element = element;\r\n this.config = config;\r\n\r\n this.target = $(this.element.data('dropdown-target'));\r\n\r\n this.allInvokers = $('[data-dropdown-target=\"' + this.element.data('dropdown-target') + '\"]');\r\n\r\n this.toggle = function () {\r\n if (!this.target.length) return this;\r\n\r\n if (this.defaultState) {\r\n this.show();\r\n }\r\n else {\r\n this.hide();\r\n }\r\n\r\n return this;\r\n };\r\n\r\n this.smartPosition = function (target) {\r\n\r\n if (target.data('baseDirection')) {\r\n target.css(\r\n target.data('baseDirection').direction,\r\n target.data('baseDirection').value\r\n );\r\n }\r\n\r\n target.removeClass('u-dropdown--reverse-y');\r\n\r\n var $w = $(window),\r\n styles = getComputedStyle(target.get(0)),\r\n direction = Math.abs(parseInt(styles.left, 10)) < 40 ? 'left' : 'right',\r\n targetOuterGeometry = target.offset();\r\n\r\n // horizontal axis\r\n if (direction == 'right') {\r\n\r\n if (!target.data('baseDirection')) target.data('baseDirection', {\r\n direction: 'right',\r\n value: parseInt(styles.right, 10)\r\n });\r\n\r\n if (targetOuterGeometry.left < 0) {\r\n\r\n target.css(\r\n 'right',\r\n (parseInt(target.css('right'), 10) - (targetOuterGeometry.left - 10 )) * -1\r\n );\r\n\r\n }\r\n\r\n }\r\n else {\r\n\r\n if (!target.data('baseDirection')) target.data('baseDirection', {\r\n direction: 'left',\r\n value: parseInt(styles.left, 10)\r\n });\r\n\r\n if (targetOuterGeometry.left + target.outerWidth() > $w.width()) {\r\n\r\n target.css(\r\n 'left',\r\n (parseInt(target.css('left'), 10) - (targetOuterGeometry.left + target.outerWidth() + 10 - $w.width()))\r\n );\r\n\r\n }\r\n\r\n }\r\n\r\n // vertical axis\r\n if (targetOuterGeometry.top + target.outerHeight() - $w.scrollTop() > $w.height()) {\r\n target.addClass('u-dropdown--reverse-y');\r\n }\r\n\r\n };\r\n\r\n this.getOption = function (option) {\r\n return this.config[option] ? this.config[option] : null;\r\n };\r\n\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * DropdownSimple constructor.\r\n *\r\n * @param {jQuery} element\r\n * @param {Object} config\r\n * @constructor\r\n */\r\n function DropdownSimple(element, config) {\r\n if (!AbstractDropdown.call(this, element, config)) return;\r\n\r\n Object.defineProperty(this, 'defaultState', {\r\n get: function () {\r\n return this.target.hasClass('u-dropdown--hidden');\r\n }\r\n });\r\n\r\n this.target.addClass('u-dropdown--simple');\r\n\r\n this.hide();\r\n }\r\n\r\n /**\r\n * Shows dropdown.\r\n *\r\n * @public\r\n * @return {DropdownSimple}\r\n */\r\n DropdownSimple.prototype.show = function () {\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').addClass('active');\r\n\r\n this.smartPosition(this.target);\r\n\r\n this.target.removeClass('u-dropdown--hidden');\r\n if (this.allInvokers.length) this.allInvokers.attr('aria-expanded', 'true');\r\n this.config.afterOpen.call(this.target, this.element);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Hides dropdown.\r\n *\r\n * @public\r\n * @return {DropdownSimple}\r\n */\r\n DropdownSimple.prototype.hide = function () {\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').removeClass('active');\r\n\r\n this.target.addClass('u-dropdown--hidden');\r\n if (this.allInvokers.length) this.allInvokers.attr('aria-expanded', 'false');\r\n this.config.afterClose.call(this.target, this.element);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * DropdownCSSAnimation constructor.\r\n *\r\n * @param {jQuery} element\r\n * @param {Object} config\r\n * @constructor\r\n */\r\n function DropdownCSSAnimation(element, config) {\r\n if (!AbstractDropdown.call(this, element, config)) return;\r\n\r\n var self = this;\r\n\r\n this.target\r\n .addClass('u-dropdown--css-animation u-dropdown--hidden')\r\n .css('animation-duration', self.config.dropdownDuration + 'ms');\r\n\r\n Object.defineProperty(this, 'defaultState', {\r\n get: function () {\r\n return this.target.hasClass('u-dropdown--hidden');\r\n }\r\n });\r\n\r\n if (this.target.length) {\r\n\r\n this.target.on('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function (e) {\r\n\r\n if (self.target.hasClass(self.config.dropdownAnimationOut)) {\r\n self.target.removeClass(self.config.dropdownAnimationOut)\r\n .addClass('u-dropdown--hidden');\r\n\r\n\r\n if (self.allInvokers.length) self.allInvokers.attr('aria-expanded', 'false');\r\n\r\n self.config.afterClose.call(self.target, self.element);\r\n }\r\n\r\n if (self.target.hasClass(self.config.dropdownAnimationIn)) {\r\n\r\n if (self.allInvokers.length) self.allInvokers.attr('aria-expanded', 'true');\r\n\r\n self.config.afterOpen.call(self.target, self.element);\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n\r\n }\r\n }\r\n\r\n /**\r\n * Shows dropdown.\r\n *\r\n * @public\r\n * @return {DropdownCSSAnimation}\r\n */\r\n DropdownCSSAnimation.prototype.show = function () {\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').addClass('active');\r\n\r\n this.smartPosition(this.target);\r\n\r\n this.target.removeClass('u-dropdown--hidden')\r\n .removeClass(this.config.dropdownAnimationOut)\r\n .addClass(this.config.dropdownAnimationIn);\r\n\r\n }\r\n\r\n /**\r\n * Hides dropdown.\r\n *\r\n * @public\r\n * @return {DropdownCSSAnimation}\r\n */\r\n DropdownCSSAnimation.prototype.hide = function () {\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').removeClass('active');\r\n\r\n this.target.removeClass(this.config.dropdownAnimationIn)\r\n .addClass(this.config.dropdownAnimationOut);\r\n\r\n }\r\n\r\n /**\r\n * DropdownSlide constructor.\r\n *\r\n * @param {jQuery} element\r\n * @param {Object} config\r\n * @constructor\r\n */\r\n function DropdownJSlide(element, config) {\r\n if (!AbstractDropdown.call(this, element, config)) return;\r\n\r\n this.target.addClass('u-dropdown--jquery-slide u-dropdown--hidden').hide();\r\n\r\n Object.defineProperty(this, 'defaultState', {\r\n get: function () {\r\n return this.target.hasClass('u-dropdown--hidden');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Shows dropdown.\r\n *\r\n * @public\r\n * @return {DropdownJSlide}\r\n */\r\n DropdownJSlide.prototype.show = function () {\r\n\r\n var self = this;\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').addClass('active');\r\n\r\n this.smartPosition(this.target);\r\n\r\n this.target.removeClass('u-dropdown--hidden').stop().slideDown({\r\n duration: self.config.dropdownDuration,\r\n easing: self.config.dropdownEasing,\r\n complete: function () {\r\n self.config.afterOpen.call(self.target, self.element);\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Hides dropdown.\r\n *\r\n * @public\r\n * @return {DropdownJSlide}\r\n */\r\n DropdownJSlide.prototype.hide = function () {\r\n\r\n var self = this;\r\n\r\n var activeEls = $(this)[0].config.dropdownTarget;\r\n\r\n $('[data-dropdown-target=\"' + activeEls + '\"]').removeClass('active');\r\n\r\n this.target.stop().slideUp({\r\n duration: self.config.dropdownDuration,\r\n easing: self.config.dropdownEasing,\r\n complete: function () {\r\n self.config.afterClose.call(self.target, self.element);\r\n self.target.addClass('u-dropdown--hidden');\r\n }\r\n });\r\n\r\n }\r\n\r\n})(jQuery);\r\n","/**\r\n * Tabs wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.0\r\n * @requires\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSTabs = {\r\n /**\r\n *\r\n *\r\n * @var Object _baseConfig\r\n */\r\n _baseConfig: {},\r\n\r\n /**\r\n *\r\n *\r\n * @var jQuery pageCollection\r\n */\r\n pageCollection: $(),\r\n\r\n /**\r\n * Initialization of Tabs wrapper.\r\n *\r\n * @param String selector (optional)\r\n * @param Object config (optional)\r\n *\r\n * @return jQuery pageCollection - collection of initialized items.\r\n */\r\n\r\n init: function (selector, config) {\r\n\r\n this.collection = selector && $(selector).length ? $(selector) : $();\r\n if (!$(selector).length) return;\r\n\r\n this.config = config && $.isPlainObject(config) ?\r\n $.extend({}, this._baseConfig, config) : this._baseConfig;\r\n\r\n this.config.itemSelector = selector;\r\n\r\n this.initTabs();\r\n\r\n return this.pageCollection;\r\n\r\n },\r\n\r\n initTabs: function () {\r\n //Variables\r\n var $self = this,\r\n collection = $self.pageCollection;\r\n\r\n //Actions\r\n this.collection.each(function (i, el) {\r\n //Variables\r\n var windW = $(window).width(),\r\n //Tabs\r\n $tabs = $(el),\r\n $tabsItem = $tabs.find('.nav-item'),\r\n tabsType = $tabs.data('tabs-mobile-type'), //[slide-up-down], [accordion], [hide-extra-items]\r\n controlClasses = $tabs.data('btn-classes'),\r\n context = $tabs.parent(),\r\n\r\n //Tabs Content\r\n $tabsContent = $('#' + $tabs.data('target')),\r\n $tabsContentItem = $tabsContent.find('.tab-pane');\r\n\r\n if (windW < 767) {\r\n $('body').on('click', function () {\r\n if (tabsType) {\r\n $tabs.slideUp(200);\r\n } else {\r\n $tabs.find('.nav-inner').slideUp(200);\r\n }\r\n });\r\n } else {\r\n $('body').off('click');\r\n }\r\n\r\n if (windW > 767 && tabsType) {\r\n $tabs.removeAttr('style');\r\n $tabsContentItem.removeAttr('style');\r\n context.off('click', '.js-tabs-mobile-control');\r\n context.off('click', '[role=\"tab\"]');\r\n if (tabsType == 'accordion') {\r\n $tabsContent.find('.js-tabs-mobile-control').remove();\r\n } else {\r\n context.find('.js-tabs-mobile-control').remove();\r\n }\r\n return;\r\n }\r\n\r\n if (windW < 768 && tabsType == 'accordion') {\r\n $self.accordionEffect($tabsContent, $tabsItem, $tabsContentItem, controlClasses);\r\n } else if (windW < 768 && tabsType == 'slide-up-down') {\r\n $self.slideUpDownEffect(context, $tabs, controlClasses);\r\n }\r\n\r\n //Actions\r\n collection = collection.add($tabs);\r\n });\r\n },\r\n\r\n slideUpDownEffect: function (context, menu, btnClasses) {\r\n if (context.find('.js-tabs-mobile-control').length) return;\r\n\r\n //Create control\r\n var activeItemHTML = menu.find('.active').html();\r\n\r\n $(menu).before('' + activeItemHTML + '');\r\n\r\n /*----- CLICK -----*/\r\n context.on('click', '.js-tabs-mobile-control', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n $(menu).slideToggle(200);\r\n });\r\n\r\n context.on('click', '[role=\"tab\"]', function (e) {\r\n e.preventDefault();\r\n\r\n var thisHTML = $(this).html(),\r\n $targetControl = $(this).closest('ul').prev('.js-tabs-mobile-control');\r\n\r\n $targetControl.html(thisHTML);\r\n $(menu).slideUp(200);\r\n });\r\n },\r\n\r\n accordionEffect: function (context, menuItem, menu, btnClasses) {\r\n if (context.find('.js-tabs-mobile-control').length) return;\r\n\r\n //Create control\r\n $(menu).before('');\r\n\r\n menuItem.each(function () {\r\n var thisIndex = $(this).index(),\r\n thisHTML = $(this).find('[role=\"tab\"]').html();\r\n\r\n if ($(this).find('[role=\"tab\"]').hasClass('active')) {\r\n $(menu[thisIndex]).prev().addClass('active');\r\n }\r\n\r\n $(menu[thisIndex]).prev().html(thisHTML);\r\n });\r\n\r\n /*----- CLICK -----*/\r\n context.on('click', '.js-tabs-mobile-control', function (e) {\r\n e.preventDefault();\r\n\r\n if ($(this).hasClass('active')) return;\r\n\r\n var contextID = context.attr('id');\r\n\r\n context.find('.js-tabs-mobile-control').removeClass('active');\r\n\r\n $('[data-target=\"' + contextID + '\"]').find('.nav-link').removeClass('active');\r\n var $target = $(this).next(),\r\n targetID = $target.attr('id');\r\n\r\n if ($target.hasClass('fade')) {\r\n $(this).addClass('active');\r\n $('[href=\"#' + targetID + '\"]').addClass('active');\r\n\r\n $(menu)\r\n .slideUp(200);\r\n $target\r\n .slideDown(200, function () {\r\n context.find('[role=\"tabpanel\"]').removeClass('show active');\r\n $target.addClass('show active');\r\n });\r\n } else {\r\n $(this).addClass('active');\r\n $(menu).slideUp(200);\r\n $target.slideDown(200);\r\n }\r\n });\r\n }\r\n }\r\n\r\n})(jQuery);\r\n","/**\r\n * Datepicker wrapper.\r\n *\r\n * @author Htmlstream\r\n * @version 1.1\r\n * Use default locale\r\n *\r\n */\r\n;(function ($) {\r\n 'use strict';\r\n\r\n $.HSCore.components.HSDatepicker = {\r\n /**\r\n *\r\n *\r\n * @var Object _baseConfig\r\n */\r\n _baseConfig: {\r\n dateFormat: 'dd.mm.yy',\r\n dayNamesMin: [\r\n 'Sun',\r\n 'Mon',\r\n 'Tue',\r\n 'Wed',\r\n 'Thu',\r\n 'Fri',\r\n 'Sat'\r\n ],\r\n prevText: '',\r\n nextText: ''\r\n },\r\n\r\n /**\r\n *\r\n *\r\n * @var jQuery pageCollection\r\n */\r\n pageCollection: $(),\r\n\r\n /**\r\n * Initialization of Datepicker wrapper.\r\n *\r\n * @param String selector (optional)\r\n * @param Object config (optional)\r\n *\r\n * @return jQuery pageCollection - collection of initialized items.\r\n */\r\n\r\n init: function (selector, config) {\r\n\r\n this.collection = selector && $(selector).length ? $(selector) : $();\r\n if (!$(selector).length) return;\r\n\r\n this.config = config && $.isPlainObject(config) ?\r\n $.extend({}, this._baseConfig, config) : this._baseConfig;\r\n\r\n this.config.itemSelector = selector;\r\n\r\n this.initDatepicker();\r\n\r\n return this.pageCollection;\r\n\r\n },\r\n\r\n initDatepicker: function () {\r\n //Variables\r\n var $self = this,\r\n config = $self.config,\r\n collection = $self.pageCollection;\r\n\r\n //Actions\r\n this.collection.each(function (i, el) {\r\n //Variables\r\n var $this = $(el),\r\n to = $this.data('to'),\r\n type = $this.data('type'),\r\n minDate,\r\n maxDate;\r\n\r\n if (type == 'one-field-range') {\r\n var datePicker = $this.datepicker({\r\n dateFormat: config['dateFormat'],\r\n defaultDate: '+1w',\r\n // dayNamesMin: config['dayNamesMin'],\r\n numberOfMonths: 1,\r\n showOtherMonths: true,\r\n prevText: config['prevText'],\r\n nextText: config['nextText'],\r\n beforeShow: $self.datepickerCustomClass,\r\n onSelect: function(dateText, inst) {\r\n console.log(inst);\r\n }\r\n }).on('change', function () {\r\n var activeDate = datePicker.datepicker(\"getDate\");\r\n\r\n if(minDate == null) {\r\n minDate = activeDate;\r\n } else if(activeDate < minDate) {\r\n minDate = activeDate;\r\n }\r\n\r\n if(maxDate == null && activeDate > minDate) {\r\n maxDate = activeDate;\r\n } else if(activeDate > maxDate) {\r\n maxDate = activeDate;\r\n }\r\n });\r\n } else if (type == 'range') {\r\n var dateFrom = $this.datepicker({\r\n dateFormat: config['dateFormat'],\r\n defaultDate: '+1w',\r\n // dayNamesMin: config['dayNamesMin'],\r\n numberOfMonths: 1,\r\n showOtherMonths: true,\r\n prevText: config['prevText'],\r\n nextText: config['nextText'],\r\n beforeShow: $self.datepickerCustomClass\r\n }).on('change', function () {\r\n dateTo.datepicker('option', 'minDate', $self.getDate(this));\r\n });\r\n\r\n var dateTo = $('#' + to).datepicker({\r\n dateFormat: config['dateFormat'],\r\n defaultDate: '+1w',\r\n // dayNamesMin: config['dayNamesMin'],\r\n numberOfMonths: 1,\r\n showOtherMonths: true,\r\n prevText: config['prevText'],\r\n nextText: config['nextText'],\r\n beforeShow: $self.datepickerCustomClass\r\n }).on('change', function () {\r\n dateFrom.datepicker('option', 'maxDate', $self.getDate(this));\r\n });\r\n } else {\r\n $this.datepicker({\r\n dateFormat: config['dateFormat'],\r\n dayNamesMin: config['dayNamesMin'],\r\n showOtherMonths: true,\r\n prevText: config['prevText'],\r\n nextText: config['nextText'],\r\n beforeShow: $self.datepickerCustomClass\r\n });\r\n }\r\n\r\n //Actions\r\n collection = collection.add($this);\r\n });\r\n },\r\n\r\n datepickerCustomClass: function (el, attr) {\r\n var arrayOfClasses, customClass, i;\r\n\r\n arrayOfClasses = attr.input[0].className.split(' ');\r\n\r\n for (i = 0; arrayOfClasses.length > i; i++) {\r\n if (arrayOfClasses[i].substring(0, 6) == 'u-date') {\r\n customClass = arrayOfClasses[i];\r\n }\r\n }\r\n\r\n $('#ui-datepicker-div').addClass(customClass);\r\n },\r\n\r\n getDate: function (element) {\r\n var $self = this,\r\n date,\r\n config = $self.config;\r\n\r\n try {\r\n date = $.datepicker.parseDate(config['dateFormat'], element.value);\r\n } catch (error) {\r\n date = null;\r\n }\r\n\r\n return date;\r\n }\r\n };\r\n})(jQuery);\r\n","/*\r\nThere is an issue when the slick slides are placed in an hidden element\r\nhttps://github.com/kenwheeler/slick/issues/187\r\n*/\r\n$('.accordion-prices-body').on('shown.bs.collapse', function (e) {\r\n $('.carousel-prices', this).each(function (index, item) {\r\n item.slick.setPosition();\r\n console.log('setPosition');\r\n });\r\n});\r\n","(function () {\r\n var $form = $('#enquiry-form');\r\n\r\n $('#children', $form).on('input', function () {\r\n var selectedValue = $(this).val();\r\n\r\n for (var i = 1; i < 11; i++) {\r\n var element = $('#children-age-' + i);\r\n if (selectedValue >= i) {\r\n element.show();\r\n element.children('input').prop('disabled', false);\r\n } else {\r\n element.hide();\r\n element.children('input').prop('disabled', true);\r\n }\r\n }\r\n });\r\n\r\n $('.form-control', $form).focus(function() {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'EnquiryInteraction'\r\n });\r\n\r\n $('.form-control', $form).off('focus');\r\n });\r\n\r\n $form.validate({});\r\n\r\n $form.submit(function (e) {\r\n e.preventDefault();\r\n\r\n var $validator = $form.validate();\r\n if (!$form.valid()) {\r\n $form.addClass(\"form-error\");\r\n return;\r\n }\r\n $form.removeClass(\".server-error .alert\");\r\n $form.find(\".server-error .alert\").text(\"\").slideUp();\r\n\r\n loading(true);\r\n\r\n var formData = $form.serializeObject();\r\n //console.log(formData);\r\n $.ajax({\r\n cache: false,\r\n url: $form.attr('action'),\r\n type: $form.attr('method') || \"POST\",\r\n data: formData,\r\n success: function (data) {\r\n\r\n console.log(data);\r\n\r\n if (data != undefined && data.Success === true) {\r\n var $thankYou = $form.siblings(\"#thank-you\")\r\n\r\n $form.fadeOut(300,\r\n function () {\r\n $thankYou.fadeIn(300);\r\n });\r\n\r\n setTimeout(function () {\r\n $validator.resetForm();\r\n }, 400);\r\n\r\n $(\"#btn-thank-you\", $thankYou).click(function () {\r\n $thankYou.fadeOut(300,\r\n function () {\r\n $form.fadeIn(300);\r\n });\r\n });\r\n\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n 'event': 'EnquirySuccess'\r\n });\r\n\r\n } else {\r\n if (data && data.Errors) {\r\n $validator.saveShowErrors(data.Errors);\r\n } else {\r\n $form.find(\".server-error .alert\").text((data || {}).msg || $form.data(\"fatal-msg\"))\r\n .slideDown();\r\n// ga('send', 'event', 'formular', 'anfrage', 'fehler');\r\n }\r\n console.log($form[0].id + \" error:\", data);\r\n }\r\n loading(false);\r\n },\r\n error: function (data) {\r\n $form.find(\".server-error .alert\").text($form.data(\"fatal-msg\")).slideDown();\r\n\r\n console.log($form[0].id + \" error fatal:\", data);\r\n loading(false);\r\n }\r\n });\r\n\r\n });\r\n\r\n function loading(isLoading) {\r\n $form.find('.load-spinner').toggleClass('spin', isLoading);\r\n $form.find(':submit').prop('disabled', isLoading);\r\n }\r\n})();\r\n\r\n\r\n(function () {\r\n \"use strict\";\r\n\r\n // serializeObject\r\n $.fn.serializeObject = function () {\r\n var o = {};\r\n var a = this.serializeArray();\r\n $.each(a,\r\n function () {\r\n if (o[this.name]) {\r\n if (!o[this.name].push) {\r\n o[this.name] = [o[this.name]];\r\n }\r\n o[this.name].push(this.value || \"\");\r\n } else {\r\n o[this.name] = this.value || \"\";\r\n }\r\n });\r\n return o;\r\n };\r\n\r\n // validator saveShowErrors extension\r\n $.validator.prototype.saveShowErrors = function (errors) {\r\n var fixedErrors = {};\r\n for (var e in errors) {\r\n if (errors.hasOwnProperty(e)) {\r\n var fixedName = e.replace(/^enquiryData\\./, '').toLowerCase();\r\n fixedErrors[fixedName] = errors[e];\r\n }\r\n }\r\n\r\n errors = fixedErrors;\r\n\r\n var deletedErrors = \"\";\r\n for (var e in errors) {\r\n if (errors.hasOwnProperty(e)) {\r\n var el = $(\"[name='\" + e + \"']\")[0];\r\n if (!el) {\r\n if (e === \"regionid\") {\r\n }\r\n deletedErrors += e + \" : \" + errors[e] + \"\\n\";\r\n delete errors[e];\r\n }\r\n }\r\n }\r\n // TODO better error messageing;\r\n if (deletedErrors !== \"\") {\r\n deletedErrors = \"$.validator: could not display all errors:\\n\" + deletedErrors;\r\n console.error(deletedErrors);\r\n alert(deletedErrors);\r\n }\r\n console.log(errors);\r\n this.showErrors(errors);\r\n };\r\n})();","(function (window, factory) {\r\n var lazySizes = factory(window, window.document);\r\n window.lazySizes = lazySizes;\r\n if (typeof module == 'object' && module.exports) {\r\n module.exports = lazySizes;\r\n }\r\n}(window, function l(window, document) {\r\n 'use strict';\r\n /*jshint eqnull:true */\r\n if (!document.getElementsByClassName) { return; }\r\n\r\n var lazysizes, lazySizesConfig;\r\n\r\n var docElem = document.documentElement;\r\n\r\n var Date = window.Date;\r\n\r\n var supportPicture = window.HTMLPictureElement;\r\n\r\n var _addEventListener = 'addEventListener';\r\n\r\n var _getAttribute = 'getAttribute';\r\n\r\n var addEventListener = window[_addEventListener];\r\n\r\n var setTimeout = window.setTimeout;\r\n\r\n var requestAnimationFrame = window.requestAnimationFrame || setTimeout;\r\n\r\n var requestIdleCallback = window.requestIdleCallback;\r\n\r\n var regPicture = /^picture$/i;\r\n\r\n var loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\r\n\r\n var regClassCache = {};\r\n\r\n var forEach = Array.prototype.forEach;\r\n\r\n var hasClass = function (ele, cls) {\r\n if (!regClassCache[cls]) {\r\n regClassCache[cls] = new RegExp('(\\\\s|^)' + cls + '(\\\\s|$)');\r\n }\r\n return regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\r\n };\r\n\r\n var addClass = function (ele, cls) {\r\n if (!hasClass(ele, cls)) {\r\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\r\n }\r\n };\r\n\r\n var removeClass = function (ele, cls) {\r\n var reg;\r\n if ((reg = hasClass(ele, cls))) {\r\n ele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\r\n }\r\n };\r\n\r\n var addRemoveLoadEvents = function (dom, fn, add) {\r\n var action = add ? _addEventListener : 'removeEventListener';\r\n if (add) {\r\n addRemoveLoadEvents(dom, fn);\r\n }\r\n loadEvents.forEach(function (evt) {\r\n dom[action](evt, fn);\r\n });\r\n };\r\n\r\n var triggerEvent = function (elem, name, detail, noBubbles, noCancelable) {\r\n var event = document.createEvent('CustomEvent');\r\n\r\n if (!detail) {\r\n detail = {};\r\n }\r\n\r\n detail.instance = lazysizes;\r\n\r\n event.initCustomEvent(name, !noBubbles, !noCancelable, detail);\r\n\r\n elem.dispatchEvent(event);\r\n return event;\r\n };\r\n\r\n var updatePolyfill = function (el, full) {\r\n var polyfill;\r\n if (!supportPicture && (polyfill = (window.picturefill || lazySizesConfig.pf))) {\r\n polyfill({ reevaluate: true, elements: [el] });\r\n } else if (full && full.src) {\r\n el.src = full.src;\r\n }\r\n };\r\n\r\n var getCSS = function (elem, style) {\r\n return (getComputedStyle(elem, null) || {})[style];\r\n };\r\n\r\n var getWidth = function (elem, parent, width) {\r\n width = width || elem.offsetWidth;\r\n\r\n while (width < lazySizesConfig.minSize && parent && !elem._lazysizesWidth) {\r\n width = parent.offsetWidth;\r\n parent = parent.parentNode;\r\n }\r\n\r\n return width;\r\n };\r\n\r\n var rAF = (function () {\r\n var running, waiting;\r\n var firstFns = [];\r\n var secondFns = [];\r\n var fns = firstFns;\r\n\r\n var run = function () {\r\n var runFns = fns;\r\n\r\n fns = firstFns.length ? secondFns : firstFns;\r\n\r\n running = true;\r\n waiting = false;\r\n\r\n while (runFns.length) {\r\n runFns.shift()();\r\n }\r\n\r\n running = false;\r\n };\r\n\r\n var rafBatch = function (fn, queue) {\r\n if (running && !queue) {\r\n fn.apply(this, arguments);\r\n } else {\r\n fns.push(fn);\r\n\r\n if (!waiting) {\r\n waiting = true;\r\n (document.hidden ? setTimeout : requestAnimationFrame)(run);\r\n }\r\n }\r\n };\r\n\r\n rafBatch._lsFlush = run;\r\n\r\n return rafBatch;\r\n })();\r\n\r\n var rAFIt = function (fn, simple) {\r\n return simple ?\r\n function () {\r\n rAF(fn);\r\n } :\r\n function () {\r\n var that = this;\r\n var args = arguments;\r\n rAF(function () {\r\n fn.apply(that, args);\r\n });\r\n }\r\n ;\r\n };\r\n\r\n var throttle = function (fn) {\r\n var running;\r\n var lastTime = 0;\r\n var gDelay = lazySizesConfig.throttleDelay;\r\n var rICTimeout = lazySizesConfig.ricTimeout;\r\n var run = function () {\r\n running = false;\r\n lastTime = Date.now();\r\n fn();\r\n };\r\n var idleCallback = requestIdleCallback && rICTimeout > 49 ?\r\n function () {\r\n requestIdleCallback(run, { timeout: rICTimeout });\r\n\r\n if (rICTimeout !== lazySizesConfig.ricTimeout) {\r\n rICTimeout = lazySizesConfig.ricTimeout;\r\n }\r\n } :\r\n rAFIt(function () {\r\n setTimeout(run);\r\n }, true)\r\n ;\r\n\r\n return function (isPriority) {\r\n var delay;\r\n\r\n if ((isPriority = isPriority === true)) {\r\n rICTimeout = 33;\r\n }\r\n\r\n if (running) {\r\n return;\r\n }\r\n\r\n running = true;\r\n\r\n delay = gDelay - (Date.now() - lastTime);\r\n\r\n if (delay < 0) {\r\n delay = 0;\r\n }\r\n\r\n if (isPriority || delay < 9) {\r\n idleCallback();\r\n } else {\r\n setTimeout(idleCallback, delay);\r\n }\r\n };\r\n };\r\n\r\n //based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\r\n var debounce = function (func) {\r\n var timeout, timestamp;\r\n var wait = 99;\r\n var run = function () {\r\n timeout = null;\r\n func();\r\n };\r\n var later = function () {\r\n var last = Date.now() - timestamp;\r\n\r\n if (last < wait) {\r\n setTimeout(later, wait - last);\r\n } else {\r\n (requestIdleCallback || run)(run);\r\n }\r\n };\r\n\r\n return function () {\r\n timestamp = Date.now();\r\n\r\n if (!timeout) {\r\n timeout = setTimeout(later, wait);\r\n }\r\n };\r\n };\r\n\r\n (function () {\r\n var prop;\r\n\r\n var lazySizesDefaults = {\r\n lazyClass: 'lazyload',\r\n loadedClass: 'lazyloaded',\r\n loadingClass: 'lazyloading',\r\n preloadClass: 'lazypreload',\r\n errorClass: 'lazyerror',\r\n //strictClass: 'lazystrict',\r\n autosizesClass: 'lazyautosizes',\r\n srcAttr: 'data-src',\r\n srcsetAttr: 'data-srcset',\r\n sizesAttr: 'data-sizes',\r\n //preloadAfterLoad: false,\r\n minSize: 40,\r\n customMedia: {},\r\n init: true,\r\n expFactor: 1.5,\r\n hFac: 0.8,\r\n loadMode: 2,\r\n loadHidden: true,\r\n ricTimeout: 0,\r\n throttleDelay: 125,\r\n //lazyloaded: function (element) {}\r\n };\r\n\r\n lazySizesConfig = window.lazySizesConfig || window.lazysizesConfig || {};\r\n\r\n for (prop in lazySizesDefaults) {\r\n if (!(prop in lazySizesConfig)) {\r\n lazySizesConfig[prop] = lazySizesDefaults[prop];\r\n }\r\n }\r\n\r\n window.lazySizesConfig = lazySizesConfig;\r\n\r\n setTimeout(function () {\r\n if (lazySizesConfig.init) {\r\n init();\r\n }\r\n });\r\n })();\r\n\r\n var loader = (function () {\r\n var preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\r\n\r\n var eLvW, elvH, eLtop, eLleft, eLright, eLbottom;\r\n\r\n var defaultExpand, preloadExpand, hFac;\r\n\r\n var regImg = /^img$/i;\r\n var regIframe = /^iframe$/i;\r\n\r\n var supportScroll = ('onscroll' in window) && !(/glebot/.test(navigator.userAgent));\r\n\r\n var shrinkExpand = 0;\r\n var currentExpand = 0;\r\n\r\n var isLoading = 0;\r\n var lowRuns = -1;\r\n\r\n var resetPreloading = function (e) {\r\n isLoading--;\r\n if (e && e.target) {\r\n addRemoveLoadEvents(e.target, resetPreloading);\r\n }\r\n\r\n if (!e || isLoading < 0 || !e.target) {\r\n isLoading = 0;\r\n }\r\n };\r\n\r\n var isNestedVisible = function (elem, elemExpand) {\r\n var outerRect;\r\n var parent = elem;\r\n var visible = getCSS(document.body, 'visibility') == 'hidden' || getCSS(elem, 'visibility') != 'hidden';\r\n\r\n eLtop -= elemExpand;\r\n eLbottom += elemExpand;\r\n eLleft -= elemExpand;\r\n eLright += elemExpand;\r\n\r\n while (visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem) {\r\n visible = ((getCSS(parent, 'opacity') || 1) > 0);\r\n\r\n if (visible && getCSS(parent, 'overflow') != 'visible') {\r\n outerRect = parent.getBoundingClientRect();\r\n visible = eLright > outerRect.left &&\r\n eLleft < outerRect.right &&\r\n eLbottom > outerRect.top - 1 &&\r\n eLtop < outerRect.bottom + 1\r\n ;\r\n }\r\n }\r\n\r\n return visible;\r\n };\r\n\r\n var checkElements = function () {\r\n var eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal, beforeExpandVal;\r\n\r\n var lazyloadElems = lazysizes.elements;\r\n\r\n if ((loadMode = lazySizesConfig.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)) {\r\n\r\n i = 0;\r\n\r\n lowRuns++;\r\n\r\n if (preloadExpand == null) {\r\n if (!('expand' in lazySizesConfig)) {\r\n lazySizesConfig.expand = docElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370;\r\n }\r\n\r\n defaultExpand = lazySizesConfig.expand;\r\n preloadExpand = defaultExpand * lazySizesConfig.expFactor;\r\n }\r\n\r\n if (currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden) {\r\n currentExpand = preloadExpand;\r\n lowRuns = 0;\r\n } else if (loadMode > 1 && lowRuns > 1 && isLoading < 6) {\r\n currentExpand = defaultExpand;\r\n } else {\r\n currentExpand = shrinkExpand;\r\n }\r\n\r\n for (; i < eLlen; i++) {\r\n\r\n if (!lazyloadElems[i] || lazyloadElems[i]._lazyRace) { continue; }\r\n\r\n if (!supportScroll) { unveilElement(lazyloadElems[i]); continue; }\r\n\r\n if (!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)) {\r\n elemExpand = currentExpand;\r\n }\r\n\r\n if (beforeExpandVal !== elemExpand) {\r\n eLvW = innerWidth + (elemExpand * hFac);\r\n elvH = innerHeight + elemExpand;\r\n elemNegativeExpand = elemExpand * -1;\r\n beforeExpandVal = elemExpand;\r\n }\r\n\r\n rect = lazyloadElems[i].getBoundingClientRect();\r\n\r\n if ((eLbottom = rect.bottom) >= elemNegativeExpand &&\r\n (eLtop = rect.top) <= elvH &&\r\n (eLright = rect.right) >= elemNegativeExpand * hFac &&\r\n (eLleft = rect.left) <= eLvW &&\r\n (eLbottom || eLright || eLleft || eLtop) &&\r\n (lazySizesConfig.loadHidden || getCSS(lazyloadElems[i], 'visibility') != 'hidden') &&\r\n ((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))) {\r\n unveilElement(lazyloadElems[i]);\r\n loadedSomething = true;\r\n if (isLoading > 9) { break; }\r\n } else if (!loadedSomething && isCompleted && !autoLoadElem &&\r\n isLoading < 4 && lowRuns < 4 && loadMode > 2 &&\r\n (preloadElems[0] || lazySizesConfig.preloadAfterLoad) &&\r\n (preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesConfig.sizesAttr) != 'auto')))) {\r\n autoLoadElem = preloadElems[0] || lazyloadElems[i];\r\n }\r\n }\r\n\r\n if (autoLoadElem && !loadedSomething) {\r\n unveilElement(autoLoadElem);\r\n }\r\n }\r\n };\r\n\r\n var throttledCheckElements = throttle(checkElements);\r\n\r\n var switchLoadingClass = function (e) {\r\n addClass(e.target, lazySizesConfig.loadedClass);\r\n removeClass(e.target, lazySizesConfig.loadingClass);\r\n addRemoveLoadEvents(e.target, rafSwitchLoadingClass);\r\n if (typeof window.lazySizesConfig.lazyloaded === 'function') {\r\n window.lazySizesConfig.lazyloaded(e.target);\r\n }\r\n triggerEvent(e.target, 'lazyloaded');\r\n };\r\n var rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\r\n var rafSwitchLoadingClass = function (e) {\r\n rafedSwitchLoadingClass({ target: e.target });\r\n };\r\n\r\n var changeIframeSrc = function (elem, src) {\r\n try {\r\n elem.contentWindow.location.replace(src);\r\n } catch (e) {\r\n elem.src = src;\r\n }\r\n };\r\n\r\n var handleSources = function (source) {\r\n var customMedia;\r\n\r\n var sourceSrcset = source[_getAttribute](lazySizesConfig.srcsetAttr);\r\n\r\n if ((customMedia = lazySizesConfig.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')])) {\r\n source.setAttribute('media', customMedia);\r\n }\r\n\r\n if (sourceSrcset) {\r\n source.setAttribute('srcset', sourceSrcset);\r\n }\r\n };\r\n\r\n var lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg) {\r\n var src, srcset, parent, isPicture, event, firesLoad;\r\n\r\n if (!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented) {\r\n\r\n if (sizes) {\r\n if (isAuto) {\r\n addClass(elem, lazySizesConfig.autosizesClass);\r\n } else {\r\n elem.setAttribute('sizes', sizes);\r\n }\r\n }\r\n\r\n srcset = elem[_getAttribute](lazySizesConfig.srcsetAttr);\r\n src = elem[_getAttribute](lazySizesConfig.srcAttr);\r\n\r\n if (isImg) {\r\n parent = elem.parentNode;\r\n isPicture = parent && regPicture.test(parent.nodeName || '');\r\n }\r\n\r\n firesLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\r\n\r\n event = { target: elem };\r\n\r\n if (firesLoad) {\r\n addRemoveLoadEvents(elem, resetPreloading, true);\r\n clearTimeout(resetPreloadingTimer);\r\n resetPreloadingTimer = setTimeout(resetPreloading, 2500);\r\n\r\n addClass(elem, lazySizesConfig.loadingClass);\r\n addRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\r\n }\r\n\r\n if (isPicture) {\r\n forEach.call(parent.getElementsByTagName('source'), handleSources);\r\n }\r\n\r\n if (srcset) {\r\n elem.setAttribute('srcset', srcset);\r\n } else if (src && !isPicture) {\r\n if (regIframe.test(elem.nodeName)) {\r\n changeIframeSrc(elem, src);\r\n } else {\r\n elem.src = src;\r\n }\r\n }\r\n\r\n if (isImg && (srcset || isPicture)) {\r\n updatePolyfill(elem, { src: src });\r\n }\r\n }\r\n\r\n if (elem._lazyRace) {\r\n delete elem._lazyRace;\r\n }\r\n removeClass(elem, lazySizesConfig.lazyClass);\r\n\r\n rAF(function () {\r\n if (!firesLoad || (elem.complete && elem.naturalWidth > 1)) {\r\n if (firesLoad) {\r\n resetPreloading(event);\r\n } else {\r\n isLoading--;\r\n }\r\n switchLoadingClass(event);\r\n }\r\n }, true);\r\n });\r\n\r\n var unveilElement = function (elem) {\r\n var detail;\r\n\r\n var isImg = regImg.test(elem.nodeName);\r\n\r\n //allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\r\n var sizes = isImg && (elem[_getAttribute](lazySizesConfig.sizesAttr) || elem[_getAttribute]('sizes'));\r\n var isAuto = sizes == 'auto';\r\n\r\n if ((isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesConfig.errorClass) && hasClass(elem, lazySizesConfig.lazyClass)) { return; }\r\n\r\n detail = triggerEvent(elem, 'lazyunveilread').detail;\r\n\r\n if (isAuto) {\r\n autoSizer.updateElem(elem, true, elem.offsetWidth);\r\n }\r\n\r\n elem._lazyRace = true;\r\n isLoading++;\r\n\r\n lazyUnveil(elem, detail, isAuto, sizes, isImg);\r\n };\r\n\r\n var onload = function () {\r\n if (isCompleted) { return; }\r\n if (Date.now() - started < 999) {\r\n setTimeout(onload, 999);\r\n return;\r\n }\r\n var afterScroll = debounce(function () {\r\n lazySizesConfig.loadMode = 3;\r\n throttledCheckElements();\r\n });\r\n\r\n isCompleted = true;\r\n\r\n lazySizesConfig.loadMode = 3;\r\n\r\n throttledCheckElements();\r\n\r\n addEventListener('scroll', function () {\r\n if (lazySizesConfig.loadMode == 3) {\r\n lazySizesConfig.loadMode = 2;\r\n }\r\n afterScroll();\r\n }, true);\r\n };\r\n\r\n return {\r\n _: function () {\r\n started = Date.now();\r\n\r\n lazysizes.elements = document.getElementsByClassName(lazySizesConfig.lazyClass);\r\n preloadElems = document.getElementsByClassName(lazySizesConfig.lazyClass + ' ' + lazySizesConfig.preloadClass);\r\n hFac = lazySizesConfig.hFac;\r\n\r\n addEventListener('scroll', throttledCheckElements, true);\r\n\r\n addEventListener('resize', throttledCheckElements, true);\r\n\r\n if (window.MutationObserver) {\r\n new MutationObserver(throttledCheckElements).observe(docElem, { childList: true, subtree: true, attributes: true });\r\n } else {\r\n docElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\r\n docElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\r\n setInterval(throttledCheckElements, 999);\r\n }\r\n\r\n addEventListener('hashchange', throttledCheckElements, true);\r\n\r\n //, 'fullscreenchange'\r\n ['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend', 'webkitAnimationEnd'].forEach(function (name) {\r\n document[_addEventListener](name, throttledCheckElements, true);\r\n });\r\n\r\n if ((/d$|^c/.test(document.readyState))) {\r\n onload();\r\n } else {\r\n addEventListener('load', onload);\r\n document[_addEventListener]('DOMContentLoaded', throttledCheckElements);\r\n setTimeout(onload, 20000);\r\n }\r\n\r\n if (lazysizes.elements.length) {\r\n checkElements();\r\n rAF._lsFlush();\r\n } else {\r\n throttledCheckElements();\r\n }\r\n },\r\n checkElems: throttledCheckElements,\r\n unveil: unveilElement\r\n };\r\n })();\r\n\r\n\r\n var autoSizer = (function () {\r\n var autosizesElems;\r\n\r\n var sizeElement = rAFIt(function (elem, parent, event, width) {\r\n var sources, i, len;\r\n elem._lazysizesWidth = width;\r\n width += 'px';\r\n\r\n elem.setAttribute('sizes', width);\r\n\r\n if (regPicture.test(parent.nodeName || '')) {\r\n sources = parent.getElementsByTagName('source');\r\n for (i = 0, len = sources.length; i < len; i++) {\r\n sources[i].setAttribute('sizes', width);\r\n }\r\n }\r\n\r\n if (!event.detail.dataAttr) {\r\n updatePolyfill(elem, event.detail);\r\n }\r\n });\r\n var getSizeElement = function (elem, dataAttr, width) {\r\n var event;\r\n var parent = elem.parentNode;\r\n\r\n if (parent) {\r\n width = getWidth(elem, parent, width);\r\n event = triggerEvent(elem, 'lazybeforesizes', { width: width, dataAttr: !!dataAttr });\r\n\r\n if (!event.defaultPrevented) {\r\n width = event.detail.width;\r\n\r\n if (width && width !== elem._lazysizesWidth) {\r\n sizeElement(elem, parent, event, width);\r\n }\r\n }\r\n }\r\n };\r\n\r\n var updateElementsSizes = function () {\r\n var i;\r\n var len = autosizesElems.length;\r\n if (len) {\r\n i = 0;\r\n\r\n for (; i < len; i++) {\r\n getSizeElement(autosizesElems[i]);\r\n }\r\n }\r\n };\r\n\r\n var debouncedUpdateElementsSizes = debounce(updateElementsSizes);\r\n\r\n return {\r\n _: function () {\r\n autosizesElems = document.getElementsByClassName(lazySizesConfig.autosizesClass);\r\n addEventListener('resize', debouncedUpdateElementsSizes);\r\n },\r\n checkElems: debouncedUpdateElementsSizes,\r\n updateElem: getSizeElement\r\n };\r\n })();\r\n\r\n var init = function () {\r\n if (!init.i) {\r\n init.i = true;\r\n autoSizer._();\r\n loader._();\r\n }\r\n };\r\n\r\n lazysizes = {\r\n cfg: lazySizesConfig,\r\n autoSizer: autoSizer,\r\n loader: loader,\r\n init: init,\r\n uP: updatePolyfill,\r\n aC: addClass,\r\n rC: removeClass,\r\n hC: hasClass,\r\n fire: triggerEvent,\r\n gW: getWidth,\r\n rAF: rAF,\r\n };\r\n\r\n return lazysizes;\r\n}\r\n)); ","/*! lazysizes - v2.0.2 */\r\n!function(){\"use strict\";if(window.addEventListener){var a=/\\s+/g,b=/\\s*\\|\\s+|\\s+\\|\\s*/g,c=/^(.+?)(?:\\s+\\[\\s*(.+?)\\s*\\])?$/,d={contain:1,cover:1},e=function(a){var b=lazySizes.gW(a,a.parentNode);return(!a._lazysizesWidth||b>a._lazysizesWidth)&&(a._lazysizesWidth=b),a._lazysizesWidth},f=function(a){var b;return b=(getComputedStyle(a)||{getPropertyValue:function(){}}).getPropertyValue(\"background-size\"),!d[b]&&d[a.style.backgroundSize]&&(b=a.style.backgroundSize),b},g=function(d,e,f){var g=document.createElement(\"picture\"),h=e.getAttribute(lazySizesConfig.sizesAttr),i=e.getAttribute(\"data-ratio\"),j=e.getAttribute(\"data-optimumx\");e._lazybgset&&e._lazybgset.parentNode==e&&e.removeChild(e._lazybgset),Object.defineProperty(f,\"_lazybgset\",{value:e,writable:!0}),Object.defineProperty(e,\"_lazybgset\",{value:g,writable:!0}),d=d.replace(a,\" \").split(b),g.style.display=\"none\",f.className=lazySizesConfig.lazyClass,1!=d.length||h||(h=\"auto\"),d.forEach(function(a){var b=document.createElement(\"source\");h&&\"auto\"!=h&&b.setAttribute(\"sizes\",h),a.match(c)&&(b.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&b.setAttribute(\"media\",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),g.appendChild(b)}),h&&(f.setAttribute(lazySizesConfig.sizesAttr,h),e.removeAttribute(lazySizesConfig.sizesAttr),e.removeAttribute(\"sizes\")),j&&f.setAttribute(\"data-optimumx\",j),i&&f.setAttribute(\"data-ratio\",i),g.appendChild(f),e.appendChild(g)},h=function(a){if(a.target._lazybgset){var b=a.target,c=b._lazybgset,d=b.currentSrc||b.src;d&&(c.style.backgroundImage=\"url(\"+d+\")\"),b._lazybgsetLoading&&(lazySizes.fire(c,\"_lazyloaded\",{},!1,!0),delete b._lazybgsetLoading)}};addEventListener(\"lazybeforeunveil\",function(a){var b,c,d;!a.defaultPrevented&&(b=a.target.getAttribute(\"data-bgset\"))&&(d=a.target,c=document.createElement(\"img\"),c.alt=\"\",c._lazybgsetLoading=!0,a.detail.firesLoad=!0,g(b,d,c),setTimeout(function(){lazySizes.loader.unveil(c),lazySizes.rAF(function(){lazySizes.fire(c,\"_lazyloaded\",{},!0,!0),c.complete&&h({target:c})})}))}),document.addEventListener(\"load\",h,!0),window.addEventListener(\"lazybeforesizes\",function(a){if(a.target._lazybgset&&a.detail.dataAttr){var b=a.target._lazybgset,c=f(b);d[c]&&(a.target._lazysizesParentFit=c,lazySizes.rAF(function(){a.target.setAttribute(\"data-parent-fit\",c),a.target._lazysizesParentFit&&delete a.target._lazysizesParentFit}))}},!0),document.documentElement.addEventListener(\"lazybeforesizes\",function(a){!a.defaultPrevented&&a.target._lazybgset&&(a.detail.width=e(a.target._lazybgset))})}}();","/*! lazysizes - v4.1.5 */\r\n!function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener(\"lazyunveilread\",c,!0)};b=b.bind(null,a,a.document),\"object\"==typeof module&&module.exports?b(require(\"lazysizes\"),require(\"../fix-ios-sizes/fix-ios-sizes\")):a.lazySizes?c():a.addEventListener(\"lazyunveilread\",c,!0)}(window,function(a,b,c){\"use strict\";var d,e=c&&c.cfg||a.lazySizesConfig,f=b.createElement(\"img\"),g=\"sizes\"in f&&\"srcset\"in f,h=/\\s+\\d+h/g,i=function(){var a=/\\s+(\\d+)(w|h)\\s+(\\d+)(w|h)/,c=Array.prototype.forEach;return function(){var d=b.createElement(\"img\"),e=function(b){var c,d,e=b.getAttribute(lazySizesConfig.srcsetAttr);e&&((d=e.match(a))&&(c=\"w\"==d[2]?d[1]/d[3]:d[3]/d[1])&&b.setAttribute(\"data-aspectratio\",c),b.setAttribute(lazySizesConfig.srcsetAttr,e.replace(h,\"\")))},f=function(a){var b=a.target.parentNode;b&&\"PICTURE\"==b.nodeName&&c.call(b.getElementsByTagName(\"source\"),e),e(a.target)},g=function(){d.currentSrc&&b.removeEventListener(\"lazybeforeunveil\",f)};b.addEventListener(\"lazybeforeunveil\",f),d.onload=g,d.onerror=g,d.srcset=\"data:,a 1w 1h\",d.complete&&g()}}();if(e||(e={},a.lazySizesConfig=e),e.supportsType||(e.supportsType=function(a){return!a}),!a.picturefill&&!e.pf){if(a.HTMLPictureElement&&g)return b.msElementsFromPoint&&i(navigator.userAgent.match(/Edge\\/(\\d+)/)),void(e.pf=function(){});e.pf=function(b){var c,e;if(!a.picturefill)for(c=0,e=b.elements.length;c=a.d){!e.cached&&(b=a[f-1])&&b.d>a.d-.13*Math.pow(a.d,2.2)&&(c=Math.pow(b.d-.6,1.6),b.cached&&(b.d+=.15*c),b.d+(e.d-a.d)*c>a.d&&(e=b));break}return e},k=function(){var a,b=/(([^,\\s].[^\\s]+)\\s+(\\d+)w)/g,c=/\\s/,d=function(b,c,d,e){a.push({c:c,u:d,w:1*e})};return function(e){return a=[],e=e.trim(),e.replace(h,\"\").replace(b,d),a.length||!e||c.test(e)||a.push({c:e,u:e,w:99}),a}}(),l=function(){l.init||(l.init=!0,addEventListener(\"resize\",function(){var a,c=b.getElementsByClassName(\"lazymatchmedia\"),e=function(){var a,b;for(a=0,b=c.length;a1?(p=h.getAttribute(\"sizes\")||\"\",p=i.test(p)&&parseInt(p,10)||c.gW(a,a.parentNode),k.d=n(a),!k.src||!k.w||k.w img:not([srcset]).\"].forEach(function(b){a.push(b+e.loadedClass),a.push(b+e.loadingClass)}),e.pf({elements:b.querySelectorAll(a.join(\", \"))})}()}});"]}