{"version":3,"sources":["framework7.js"],"names":["window","Framework7","params","createPageCallback","callbackName","capitalized","replace","match","toUpperCase","app","pageName","callback","onPage","handleInfiniteScroll","virtualList","inf","$","this","scrollTop","scrollHeight","height","offsetHeight","distance","getAttribute","virtualListContainer","find","onTop","hasClass","indexOf","parseInt","trigger","length","f7VirtualList","reachEnd","_fixIpadBodyScrolLeft","device","ipad","document","body","scrollLeft","setTimeout","version","cache","cacheIgnore","cacheIgnoreGetParameters","cacheDuration","preloadPreviousPage","uniqueHistory","uniqueHistoryIgnoreGetParameters","dynamicPageUrl","allowDuplicateUrls","router","pushState","pushStateRoot","undefined","pushStateNoAnimation","pushStateSeparator","pushStateOnLoad","fastClicks","fastClicksDistanceThreshold","fastClicksDelayBetweenClicks","tapHold","tapHoldDelay","tapHoldPreventClicks","activeState","activeStateElements","animateNavBackIcon","swipeBackPage","swipeBackPageThreshold","swipeBackPageActiveArea","swipeBackPageAnimateShadow","swipeBackPageAnimateOpacity","ajaxLinks","externalLinks","sortable","hideNavbarOnPageScroll","hideToolbarOnPageScroll","hideTabbarOnPageScroll","showBarsOnPageScrollEnd","showBarsOnPageScrollTop","swipeout","swipeoutActionsNoFold","swipeoutNoFollow","smartSelectOpenIn","smartSelectBackText","smartSelectPopupCloseText","smartSelectPickerCloseText","smartSelectSearchbar","smartSelectBackOnSelect","scrollTopOnNavbarClick","scrollTopOnStatusbarClick","swipePanel","swipePanelActiveArea","swipePanelCloseOpposite","swipePanelOnlyClose","swipePanelNoFollow","swipePanelThreshold","panelsCloseByOutside","modalButtonOk","modalButtonCancel","modalUsernamePlaceholder","modalPasswordPlaceholder","modalTitle","modalCloseByOutside","actionsCloseByOutside","popupCloseByOutside","modalPreloaderTitle","modalStack","imagesLazyLoadThreshold","imagesLazyLoadSequential","viewClass","viewMainClass","viewsClass","notificationCloseOnClick","notificationCloseIcon","notificationCloseButtonText","animatePages","templates","template7Data","template7Pages","precompileTemplates","material","materialPageLoadDelay","materialPreloaderSvg","materialPreloaderHtml","materialRipple","materialRippleElements","init","param","Dom7","t7","Template7","_compiledTemplates","touchEvents","start","support","touch","move","end","ls","localStorage","rtl","css","attr","statusbarOverlay","addClass","removeClass","views","View","selector","i","defaults","dynamicNavbar","domCache","linksView","reloadPages","def","view","container","main","contentCache","pagesCache","f7View","pagesContainer","initialPages","initialPagesUrl","initialNavbars","push","eq","allowPageChange","docLocation","location","href","history","viewURL","split","currentPage","currentPageData","activePage","f7PageData","url","navbarInnerContainer","isScrolling","viewContainerWidth","touchesDiff","touchStartTime","activeNavElements","previousNavElements","activeNavBackIcon","previousNavBackIcon","pageShadow","el","isTouched","isMoved","touchesStart","previousPage","allowViewTouchMove","activeNavbar","previousNavbar","handleTouchStart","e","swipeoutOpenedEl","x","type","targetTouches","pageX","y","pageY","Date","getTime","handleTouchMove","Math","abs","f7PreventSwipeBack","preventSwipeBack","cancel","width","target","parents","is","notFromBorder","offset","left","android","append","closeModal","f7PreventPanelSwipe","preventDefault","inverter","percentage","callbackData","onSwipeBackMove","activePageTranslate","previousPageTranslate","pixelRatio","round","transform","style","opacity","className","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","f7NavbarLeftOffset","handleTouchEnd","boxShadow","timeDiff","pageChanged","each","translate","sliding","pageBackCallback","pageContainer","position","newPage","oldPage","swipeBack","pageAnimCallback","onSwipeBackBeforeChange","onSwipeBackBeforeReset","transitionEnd","back","afterBack","onSwipeBackAfterChange","onSwipeBackAfterReset","remove","attachEvents","detach","action","detachEvents","mainView","load","options","loadPage","loadContent","content","reloadPage","reload","reloadContent","reloadPreviousPage","reloadPrevious","reloadPreviousContent","refreshPage","ignoreCache","refreshPreviousPage","hideNavbar","showNavbar","hideToolbar","showToolbar","pushStateUrl","pushStateUrlSplit","pushStateAnimatePages","historyState","state","destroy","pluginHook","addView","getCurrentView","index","popoverView","popupView","panelView","appViews","appView","children","currentViews","navbarInitCallback","navbarContainer","parent","f7NavbarInitialized","navbarData","innerContainer","pageData","eventData","page","navbar","reinitNavbar","initNavbar","navbarRemoveCallback","initSearchbar","initNavbarWithCallback","viewContainer","pages","sizeNavbars","navbarInner","n","currLeft","diff","right","center","subnavbar","noLeft","noRight","leftWidth","outerWidth","rightWidth","centerWidth","navbarStyles","styles","navbarWidth","offsetWidth","paddingLeft","paddingRight","onLeft","requiredLeft","activeNavbarBackLink","offsetLeft","centerLeft","toolbarContainer","toolbar","Searchbar","removeDiacritics","str","a","diacriticsMap","preventSubmit","input","clearButton","cancelButton","searchList","searchIn","searchBy","found","notFound","overlay","ignore","customSearch","hideDividers","hideGroups","s","active","isVirtualList","defaultDiacriticsRemovalap","base","letters","j","cancelMarginProp","cancelButtonHasMargin","setCancelButtonMargin","transition","show","clientLeft","triggerEvent","eventName","enable","_enable","query","ios","disable","_disable","blur","val","clear","focus","handleInput","value","trim","search","previousQuery","internal","foundItems","resetFilter","hide","searchAll","items","searchByItem","values","toLowerCase","compareWithText","itemText","text","join","wordsMatch","title","nextElements","nextAll","nextEl","group","notHidden","filterItems","method","f7Searchbar","searchbar","onBeforeRemove","sb","dataset","once","Messagebar","textarea","maxHeight","m","pageContent","pageContentPadding","initialBarHeight","initialAreaHeight","sizeTextarea","clientHeight","newAreaHeight","newBarHeight","maxBarHeight","onBottom","bottom","padding-bottom","textareaTimeout","handleTextarea","clearTimeout","f7Messagebar","messagebar","initPageMessagebar","pageBeforeRemove","mb","off","on","removeFromCache","splice","xhr","get","_url","time","ajax","beforeSend","onAjaxStart","complete","status","responseText","onAjaxComplete","error","onAjaxError","pageCallbacks","pageNames","returnCallbacks","callbacks","removeIndex","toString","pageCallbacksNames","triggerPageCallbacks","allPagesCallbacks","pageInitCallback","f7PageInitialized","pageQuery","parseUrlQuery","name","from","context","fromPage","oldNavbarInnerContainer","reinitPage","onPageReinit","preloadOnly","onPageBeforeInit","initPage","onPageInit","pageRemoveCallback","pageContext","onPageBeforeRemove","onPageAfterBack","onPageBack","onPageAfterAnimation","tabBar","onPageBeforeAnimation","initPageMessages","initFormsStorage","initSmartSelects","initPageSwiper","initPullToRefresh","initPageInfiniteScroll","initPageScrollToolbars","initImagesLazyLoad","initPageProgressbar","initPageResizableTextarea","initPageMaterialPreloader","initPageMaterialInputs","initPageMaterialTabbar","reinitPageSwiper","reinitLazyLoad","initPageWithCallback","temporaryDom","createElement","findElement","notCached","leftPage","rightPage","direction","removeClasses","prepareNavbar","newNavbarInner","oldNavbarInner","newNavbarPosition","slidingOffset","animateNavbars","leftNavbarInner","rightNavbarInner","rightText","preprocess","next","pluginProcess","preroute","template7Render","t7_ctx","t7_template","t7_rendered_content","contextName","template","template7Cache","compile","_ctx_path","_ctx","data","pageNameMatch","templateName","url_query","key","_load","afterAnimation","pushStateClearQueue","historyBecameUnique","pagesInView","reloadPosition","t7_rendered","isDynamicPage","innerHTML","ci","f7RelatedNavbar","f7RelatedPage","newPageName","viewIndex","lastUrl","_history","lastIndexOf","slice","prev","insertBefore","insertAfter","animationEnd","proceed","abort","_back","animateBack","parseNewPage","setPages","navbarInners","force","pageToRemove","navbarToRemove","removeNavbar","unshift","manipulateDom","newNavbar","previousURL","pop","inners","oldNavbar","pageUrl","preloadUrl","_modalTemplateTempDiv","modalStackClearQueue","shift","modal","modalHTML","modalTemplate","buttonsHTML","buttons","bold","titleHTML","textHTML","afterTextHTML","afterText","noButtons","verticalButtons","modalButtonsHTML","cssClass","close","onClick","openModal","alert","callbackOk","arguments","confirm","callbackCancel","prompt","modalLogin","username","password","modalPassword","showPreloader","hidePreloader","showIndicator","hideIndicator","actions","groupSelector","buttonSelector","toPopover","isArray","actionsToPopoverTemplate","modalActionsToPopoverTemplate","actionsToPopover","popoverHTML","popover","modalActionsTemplate","button","buttonClass","label","color","bg","disabled","groups","groupIndex","clickTarget","buttonIndex","buttonParams","removeOnClose","sizePopover","top","modalAngle","modalAngleLeft","modalAngleTop","modalWidth","modalHeight","modalAngleSize","targetWidth","targetHeight","outerHeight","targetOffset","targetParentPage","windowHeight","windowWidth","modalTop","modalLeft","modalPosition","diffX","diffY","max","min","_modal","childNodes","classList","add","popup","pickerModal","loginScreen","isModal","removeData","isPopup","isLoginScreen","isPickerModal","marginTop","isPopover","setProgressbar","progress","speed","progressbar","showProgressbar","parseFloat","hideProgressbar","p","allowPanelOpen","openPanel","panelPosition","panelTransitionEnd","transitionEndTarget","panel","display","closePanel","effect","activePanel","initSwipePanels","side","opened","innerWidth","panelOverlay","panelWidth","threshold","overlayOpacity","edge","loadImage","onLoad","src","imageIsLoading","imagesSequence","image","Image","onload","onerror","lazyHandler","lazyLoadImages","isElementInViewport","rect","getBoundingClientRect","innerHeight","placeholderSrc","imagesLazyLoadPlaceholder","f7DestroyImagesLazyLoad","destroyImagesLazyLoad","reinitImagesLazyLoad","html","Messages","autoLayout","newMessagesFirst","messageTemplate","layout","message","isSent","appendMessage","props","animate","addMessage","prependMessage","addMessages","newMessages","newMessagesHTML","hasImage","heightBefore","scrollBefore","scrollMessages","messages","messagesToReturn","removeMessage","removeMessages","clean","duration","newScroll","currentScroll","f7Messages","allowSwipeout","initSwipeout","swipeoutEl","swipeOutEl","swipeOutContent","actionsRight","actionsLeft","actionsLeftWidth","actionsRightWidth","buttonsLeft","buttonsRight","overswipeRightButton","overswipeLeftButton","noFoldLeft","noFoldRight","openedActions","buttonOffset","swipeoutClose","swipeoutOpen","overswipeLeft","overswipeRight","$button","pow","_buttonOffset","actionsWidth","noFold","newTranslate","click","closed","dir","swipeOutActions","swipeOutActionsWidth","call","onSwipeoutClose","closeTO","swipeoutDelete","virtualIndex","f7VirtualListIndex","deleteItem","sortableToggle","sortableContainer","toggleClass","sortableOpen","sortableClose","initSortable","touchStartY","sortingEl","sortingItems","minTop","offsetTop","maxTop","sortingElHeight","currentEl","currentElOffset","currentElHeight","sortingElOffset","oldIndex","newIndex","moveItem","selects","smartSelect","$select","select","valueText","selected","textContent","itemAfter","selectedText","smartSelectAddOption","option","selectName","smartSelectOpen","reLayout","scrollToInput","newPaddingBottom","paddingTop","paddingBottom","pageHeight","picker","pageScrollHeight","inputTop","closeOnHTMLClick","checkMaxLength","selectedOptions","maxLength","checked","handleInputs","virtualListInstance","smartSelectItemTemplate","virtualListHeight","item","openIn","inputName","optionText","backOnSelect","inputType","pageInit","detail","f7SmartSelectPicker","closeText","smartSelectData","pageTitle","backText","pickerCloseText","popupCloseText","formTheme","smartSelectFormTheme","navbarTheme","smartSelectNavbarTheme","toolbarTheme","smartSelectToolbarTheme","pickerHeight","smartSelectPickerHeight","$selectData","optionHasMedia","optionImage","optionIcon","optionGroup","optionGroupLabel","optionIsLabel","previousGroup","optionColor","optionClassName","optionData","id","multiple","optionClass","groupLabel","isLabel","icon","hasMedia","checkbox","smartSelectItem","inputsHTML","navbarHTML","navbarLayout","toolbarHTML","noNavbar","noToolbar","noTabbar","smartSelectToolbar","smartSelectToolbarTemplate","inPicker","smartSelectNavbar","smartSelectNavbarTemplate","inPopup","inPage","leftTemplate","smartSelectPopupCloseTemplate","smartSelectBackTemplate","searchbarPlaceholder","searchbarCancel","useSearchbar","searchbarHTML","pageHTML","VirtualList","listBlock","cols","dynamicHeightBufferSize","showFilteredItemsOnly","vl","filteredItems","updatableScroll","osVersion","ul","displayDomCache","tempDomElement","lastRepaintY","fragment","createDocumentFragment","indexes","resetScrollTop","update","rowsPerScreen","rowsBefore","rowsAfter","rowsToRender","listHeight","maxBufferHeight","dynamicHeight","setListSize","heights","itemHeight","ceil","render","forceScrollTop","fromIndex","toIndex","heightBeforeFirstItem","heightBeforeLastItem","itemTop","topPosition","currentFromIndex","currentToIndex","renderItem","onItemBeforeInsert","appendChild","onBeforeClear","onItemsBeforeInsert","onItemsAfterInsert","scrollToItem","listTop","handleScroll","handleResize","appendItems","appendItem","replaceAllItems","replaceItem","prependItems","newCache","cached","prependItem","cachedIndex","leftIndex","rightIndex","indexShift","insertItemBefore","deleteItems","prevIndex","deletedItem","deleteAllItems","clearCache","reinitVirtualList","vlists","vlistInstance","os","pullStarted","wasScrolled","touchId","identifier","touches","dynamicTriggerDistance","triggerDistance","startTranslate","useTranslate","refresh","event","changedTouches","done","pullToRefreshDone","destroyPullToRefresh","eventsTarget","hasNavbar","f7DestroyPullToRefresh","pullToRefreshTrigger","pullToRefreshContent","attachInfiniteScroll","infiniteContent","detachInfiniteScroll","scrollContent","bottomBarHeight","navbarHidden","toolbarHidden","tabbarHidden","tabbar","previousScroll","hasToolbar","hasTabbar","hideTabbar","toolbarHeight","tabbarHeight","f7ScrollToolbarsHandler","destroyScrollToolbars","handler","materialTabbarSetHighlight","activeLink","tabLinkWidth","highlightTranslate","tabbarSetHighlight","showTab","tab","tabLink","newTab","tabs","isAnimatedTabs","tabTranslate","swiper","isSwipeableTabs","activeIndex","slideTo","oldTab","oldTabLink","oldTabId","accordionToggle","accordionClose","accordionOpen","list","expandedItem","initFastClicks","findActivableElement","activable","isInsideScrollableView","prop","activeTimeout","rippleTimeout","addActive","activableElement","removeActive","isFormElement","nodes","nodeName","androidNeedsBlur","noBlur","activeElement","targetNeedsFastClick","$el","targetNeedsFocus","tag","skipInputs","readOnly","targetNeedsPrevent","prevent","handleMouseDown","which","touchStartX","rippleTouchStart","handleMouseMove","rippleTouchMove","handleMouseUp","rippleTouchEnd","findRippleElement","needsRipple","rippleParent","createRipple","box","diameter","rippleWave","prepend","rippleTransform","removeRipple","toRemove","removeTimeout","rippleTarget","sendClick","evt","createEvent","eventType","targetElement","initMouseEvent","screenX","screenY","clientX","clientY","forwardedTouchEvent","dispatchEvent","tapHoldFired","tapHoldTimeout","needsFastClickTimeOut","needsFastClick","trackClick","selection","getSelection","rangeCount","focusNode","isCollapsed","activeSelection","scrollParent","f7ScrollTop","timeStamp","lastClickTime","_isMoved","cancelable","webView","handleTouchCancel","handleClick","allowClick","stopImmediatePropagation","stopPropagation","androidChrome","addEventListener","initClickEvents","handleScrollTop","clicked","isLink","handleClicks","open","clickedData","pickerToClose","pickerToOpen","isTabLink","confirmTitle","closeOnCancel","accordionItem","validUrl","JSON","parse","preventScrolling","initResize","resize","orientationchange","minimalUi","orientation","formsData","formStoreData","formId","formJSON","stringify","formDeleteData","removeItem","formGetData","formToJSON","form","formData","skipTypes","skipNames","formFromJSON","storeForm","forms","contentType","FormData","serializeObject","success","resizeTextarea","resizableTextarea","f7DestroyResizableTextarea","destroyResizableTextarea","textareas","itemInput","notInputs","initMaterialWatchInputs","addFocusState","els","removeFocusState","watchChangeState","pushStateQueue","queue","stateUrl","stateContent","statePageName","initPushState","handlePopState","blockPopstate","readyState","Swiper","destroySwiperOnRemove","slider","destroySwiper","swipers","onSlideChangeStart","slides","_slider","sliders","sliderInstance","PhotoBrowser","pb","photos","initialSlide","spaceBetween","zoom","maxZoom","minZoom","exposition","expositionHideCaptions","theme","swipeToClose","backLinkText","ofText","loop","lazyLoading","lazyLoadingInPrevNext","lazyLoadingOnTransitionStart","iconsColorClass","iconsColor","preloaderColorClass","photoTemplate","photoLazyTemplate","lazyPhotoTemplate","objectTemplate","captionTemplate","navbarTemplate","toolbarTemplate","htmlTemplate","openIndex","onPopupClose","onOpen","swiperContainer","onClose","swiperWrapper","gestureSlide","gestureImg","gestureImgWrap","onSliderTransitionStart","current","total","loopedSlides","isBeginning","isEnd","captions","captionsContainer","captionIndex","previousSlideVideo","previousIndex","pause","onTransitionStart","onSliderTransitionEnd","scale","currentScale","onTransitionEnd","sliderSettings","nextButton","prevButton","indexButton","preloadImages","onTap","toggleExposition","onDoubleTap","toggleZoom","onSlideChangeEnd","onLazyImageLoad","slide","img","onLazyImageReady","onTouchStart","swipeCloseTouchStart","onTouchMoveOpposite","swipeCloseTouchMove","onTouchEnd","swipeCloseTouchEnd","onSlideGestureStart","onSlideGestureChange","onSlideGestureEnd","onSlideTouchStart","onSlideTouchMove","onSlideTouchEnd","exposed","enableExposition","disableExposition","isScaling","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","scaledWidth","scaledHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","imageTouchesStart","imageIsTouched","imageIsMoved","imageCurrentX","imageCurrentY","imageMinX","imageMinY","imageMaxX","imageMaxY","imageStartX","imageStartY","velocityPrevPositionX","velocityPrevTime","velocityX","velocityPrevPositionY","velocityY","imageTouchesCurrent","getTranslate","floor","now","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","swipeToCloseDiff","swipeToCloseStart","swipeToCloseCurrent","swipeToCloseActiveSlide","swipeToCloseTimeStart","swipeToCloseIsTouched","allowSwipeToClose","swipeToCloseStarted","onSwipeToClose","photoBrowser","Autocomplete","handleInputValue","source","itemsHTML","limit","regExp","RegExp","itemValue","valueProperty","dropdownItemTemplate","textProperty","dropdownPlaceholderText","dropdownPlaceholderTemplate","dropdown","handleDropdownClick","clickedItem","updateInputValueOnSelect","onChange","searchbarPlaceholderText","searchbarCancelText","notFoundText","expandInput","preloaderColor","preloader","opener","itemTemplate","dropdownTemplate","positionDropDown","inputOffset","listBlockOffset","updateValues","valuesHTML","onSearch","aValue","isValues","initEvents","autocomplete","Picker","convertToPopover","onlyInPopover","inline","inPopover","resizeCols","divider","calcSize","setValue","openOnInput","onPickerClose","destroyPickerCol","updateValuesOnMomentum","updateValuesOnTouchmove","rotateEffect","momentumRatio","freeMode","closeByOutsideClick","inputReadOnly","toolbarCloseText","initialized","originBug","navigator","userAgent","arrValues","valueIndex","updateValue","forceValues","newValue","newDisplayValue","displayValue","formatValue","initPickerCol","colElement","updateItems","updateDuringScroll","animationFrameId","requestAnimationFrame","col","touchCurrentY","allowItemClick","currentTranslate","wrapper","cancelAnimationFrame","returnTo","minTranslate","maxTranslate","velocityTranslate","prevTranslate","velocityTime","touchEndTime","velocity","colContainer","colIndex","wrapperHeight","itemsHeight","replaceValues","displayValues","destroyEvents","newItemsHTML","columnHTML","colWidth","colHeight","valueCallbacks","newActiveIndex","previousActiveIndex","selectedItem","itemOffsetTop","translateOffset","itemOffset","itemsFit","angle","f7DestroyPickerCol","onlyItems","columnItemsHTML","textAlign","pickerHTML","pickerClass","colsHTML","f7Picker","Calendar","formatDate","date","year","getFullYear","month","getMonth","month1","day","getDate","weekDay","getDay","dateFormat","substring","monthNames","monthNamesShort","dayNames","dayNamesShort","destroyCalendarEvents","firstDay","weekendDays","rangePicker","minDate","maxDate","events","rangesClasses","touchMove","closeOnSelect","monthPicker","monthPickerTemplate","yearPicker","yearPickerTemplate","weekHeader","headerPlaceholder","header","footer","headerTemplate","footerTemplate","isH","animating","addValue","inValuesIndex","sort","b","onlyHeader","inputValue","valueDate","initCalendarEvents","monthsTranslate","touchCurrentX","wrapperWidth","resetMonth","nextMonth","prevMonth","handleDayClick","dateYear","dateMonth","dateDay","onDayClick","prevYear","nextYear","f7DestroyCalendarEvents","dateInRange","dayDate","range","to","daysInMonth","d","monthHTML","daysInPrevMonth","firstDayOfMonthIndex","k","hasEvent","currentValues","rows","dayIndex","today","setHours","rowHTML","dayNumber","weekDayIndex","dayYear","dayMonth","updateCurrentMonthYear","currentMonth","months","currentYear","onMonthChangeStart","currentIndex","onMonthYearChangeStart","onMonthChangeEnd","rebuildBoth","nextMonthHTML","prevMonthHTML","newMonthHTML","setMonthsTranslate","onMonthAdd","onMonthYearChangeEnd","prevMonthTranslate","currentMonthTranslate","nextMonthTranslate","nextDate","nextDateTime","transitionEndCallback","prevDate","prevDateTime","setYearMonth","targetDate","currentDate","monthTranslate","wrapperTranslate","layoutDate","currentMonthHTML","monthsHTML","weekHeaderHTML","dayName","headerHTML","footerHTML","f7Calendar","calendar","_tempNotificationElement","addNotification","media","notificationMedia","notificationTitle","subtitle","notificationSubtitle","closeIcon","hold","notificationHold","closeOnClick","notificationTemplate","notification","closeNotification","additionalClass","initTemplate7Templates","_plugins","initPlugins","plugin","plugins","hook","hooks","pluginPrevent","prevents","process","processed","getDeviceInfo","onAppInit","arr","_this","tempParent","toCreate","querySelectorAll","getElementById","nodeType","prototype","classes","contains","toggle","attrs","setAttribute","attrName","removeAttr","removeAttribute","propName","dom7ElementDataStorage","dataKey","attributes","toCamelCase","elStyle","webkitTransform","MsTransform","msTransform","MozTransform","OTransform","webkitTransitionDuration","MsTransitionDuration","msTransitionDuration","MozTransitionDuration","OTransitionDuration","transitionDuration","targetSelector","listener","capture","handleLiveEvent","dom7LiveListeners","liveListener","removeEventListener","proxy","dom","CustomEvent","bubbles","initEvent","fireCallBack","includeMargins","getPropertyValue","clientTop","pageYOffset","pageXOffset","getComputedStyle","filter","matchedItems","compareWith","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendTo","prependTo","before","parentNode","cloneNode","after","nextSibling","nextElementSibling","nextEls","previousElementSibling","prevAll","prevEls","unique","closest","foundElements","removeChild","toAdd","createMethod","notTrigger","shortcuts","globalAjaxOptions","ajaxSetup","optionName","optionValue","_jsonpRequests","fireAjaxCallback","async","user","headers","xhrFields","statusCode","processData","dataType","timeout","globalOptionName","globalOptionValue","defaultValue","paramsPrefix","_method","stringData","abortTimeout","callbackSplit","requestUrl","addVars","script","querySelector","XMLHttpRequest","requestParameters","postData","postDataInstances","ArrayBuffer","Blob","Document","constructor","boundary","setRequestHeader","_data","_newData","headerName","headerCallback","crossDomain","test","$2","host","fieldName","fieldValue","xhrTimeout","responseData","err","parseerror","responseType","response","send","onabort","methods","Object","apply","obj","hasOwnProperty","var_name","_parents","encodeURIComponent","var_value","resultArray","separator","newParents","toPush","string","group1","axis","matrix","curTransform","curStyle","transformMatrix","WebKitCSSMatrix","map","m41","m42","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","supportTouch","DocumentTouch","fn","scrollTo","easing","startTime","easeProgress","cos","PI","animateTop","currentTop","newTop","animateLeft","currentLeft","newLeft","maxLeft","scrollWidth","ua","ipod","iphone","osVersionArr","statusBar","screen","classNames","devicePixelRatio","major","isFunction","func","helperToSlices","shiftIndex","helperParts","slices","part","hashParts","hashName","hashContent","hash","stringToBlocks","blocks","_blocks","block","helperSlices","helperName","isPartial","helperContext","helperHash","helperContent","elseContent","toSkip","foundClosed","foundElse","depth","inverseContent","getCompileFn","getCompileInverse","getCompileVar","ctx","variable","parts","levelsUp","newDepth","isFinite","getCompiledArguments","contextArray","t","Error","resultString","compiledArguments","helpers","eval","compiled","partials","_partial","partialName","root","escape","if","inverse","unless","ret","reverse","first","last","with","delimiter","delimeter","js","expression","js_compare","condition","instance","rendered","registerHelper","unregisterHelper","registerPartial","unregisterPartial","autoplay","autoplayTimeoutId","fixLoop","_slideNext","emit","autoplayStopOnLast","stopAutoplay","_slideTo","findElementInEvent","_el","initObserver","ObserverFunc","MutationObserver","WebkitMutationObserver","observer","mutations","forEach","mutation","onResize","observe","childList","characterData","observers","setParallaxTransform","pX","pY","rtlFactor","isHorizontal","normalizeEventName","touchEventsTarget","autoplayDisableOnInteraction","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","coverflow","rotate","stretch","modifier","slideShadows","flip","limitRotation","cube","shadow","shadowOffset","shadowScale","fade","crossFade","parallax","scrollbar","scrollbarHide","scrollbarDraggable","scrollbarSnapOnRelease","keyboardControl","mousewheelControl","mousewheelReleaseOnEdges","mousewheelInvert","mousewheelForceToAxis","mousewheelSensitivity","hashnav","breakpoints","slidesPerView","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","centeredSlides","slidesOffsetBefore","slidesOffsetAfter","roundLengths","touchRatio","touchAngle","simulateTouch","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","onlyExternal","touchMoveStopPropagation","uniqueNavElements","pagination","paginationElement","paginationClickable","paginationHide","paginationBulletRender","paginationProgressRender","paginationFractionRender","paginationCustomRender","paginationType","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","lazyLoadingInPrevNextAmount","updateOnImagesReady","loopAdditionalSlides","control","controlInverse","controlBy","allowSwipeToPrev","allowSwipeToNext","swipeHandler","noSwiping","noSwipingClass","slideClass","slideActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slidePrevClass","wrapperClass","bulletClass","bulletActiveClass","buttonDisabledClass","paginationCurrentClass","paginationTotalClass","paginationHiddenClass","paginationProgressbarClass","observeParents","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","runCallbacksOnInit","initialVirtualTranslate","originalParams","jQuery","deepParam","deepDef","Zepto","currentBreakpoint","getActiveBreakpoint","point","breakpoint","points","setBreakpoint","breakPointsParams","needsReLoop","destroyLoop","reLoop","flexbox","transforms3d","paginationContainer","wrongRTL","lockSwipeToNext","lockSwipeToPrev","lockSwipes","unlockSwipeToNext","unlockSwipeToPrev","unlockSwipes","cursor","imagesToLoad","imagesLoaded","imgElement","srcset","checkForComplete","onReady","_onReady","currentSrc","autoplaying","autoplayPaused","startAutoplay","pauseAutoplay","snapGrid","updateAutoHeight","newHeight","updateContainerSize","clientWidth","size","updateSlidesSize","slidesGrid","slidesSizesGrid","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","slidesNumberEvenToRows","slideSize","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","margin-top","swiperSlideSize","newSlidesGrid","updateSlidesOffset","swiperSlideOffset","updateSlidesProgress","offsetCenter","slideProgress","slideBefore","slideAfter","isVisible","updateProgress","translatesDiff","wasBeginning","wasEnd","updateActiveIndex","snapIndex","updateClasses","activeSlide","nextSlide","prevSlide","bullets","scaleX","scaleY","updatePagination","paginationHTML","numberOfBullets","initPagination","updateTranslate","forceSetTranslate","setWrapperTranslate","set","translated","controller","spline","forceUpdatePagination","slideChangedBySlideTo","lazy","desktopEvents","pointerEnabled","msPointerEnabled","actionDom","moveCapture","nested","browser","ie","onTouchMove","onClickNext","onEnterKey","onClickPrev","onClickIndex","slideNext","slidePrev","updateClickedSlide","slideFound","clickedSlide","clickedIndex","realIndex","slideToIndex","allowTouchCallbacks","allowThresholdMove","clickTimeout","allowMomentumBounce","formElements","velocities","startX","startY","currentX","currentY","isTouchEvent","startMoving","originalEvent","swipeDirection","preventedByNestedSwiper","atan2","ieTouch","getWrapperTranslate","setWrapperTransition","disableParentSwiper","currentPos","lastMoveEvent","velocityEvent","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","slideReset","stopIndex","groupSize","ratio","slideIndex","runCallbacks","setHash","_slidePrev","byController","effects","setTransition","z","setTranslate","initObservers","containerParents","disconnectObservers","disconnect","createLoop","prependSlides","appendSlides","updatePosition","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","tx","ty","slideOpacity","eventTriggered","triggerEvents","rotateY","rotateX","zIndex","shadowBefore","shadowAfter","cubeShadow","wrapperRotate","slideAngle","tz","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowAngle","multiplier","sin","scale1","scale2","zFactor","isSafari","isUiWebView","slideOffset","offsetMultiplier","translateZ","slideTransform","ws","perspectiveOrigin","initialImageLoaded","loadImageInSlide","loadInDuplicate","_img","background","slideOriginalIndex","originalSlide","duplicatedSlide","amount","spv","maxIndex","minIndex","setDragPosition","pointerPosition","track","dragSize","positionMin","moveDivider","positionMax","dragStart","dragTimeout","drag","dragMove","returnValue","dragEnd","enableDraggable","disableDraggable","trackSize","newPos","newSize","LinearSpline","lastIndex","i1","i3","interpolate","x2","binarySearch","guess","array","getInterpolateFunction","c","setControlledTranslate","controlledTranslate","controlled","setControlledTransition","parallaxDuration","callPlugins","emitterEventListeners","_handler","makeFocusable","addRole","role","addLabel","keyCode","notify","liveRegion","bullet","enableKeyboardControl","enableMousewheelControl","cleanupStyles","deleteInstance","disableKeyboardControl","disableMousewheelControl","msMaxTouchPoints","maxTouchPoints","Modernizr","csstransforms3d","div"],"mappings":"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","file":"framework7.min.js","sourcesContent":["/**\n * Framework7 1.4.2\n * Full Featured Mobile HTML Framework For Building iOS & Android Apps\n * \n * http://www.idangero.us/framework7\n * \n * Copyright 2016, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n * \n * Licensed under MIT\n * \n * Released on: February 27, 2016\n */\n(function () {\n\n 'use strict';\n /*===========================\n Framework 7\n ===========================*/\n window.Framework7 = function (params) {\n // App\n var app = this;\n \n // Version\n app.version = '1.4.2';\n \n // Default Parameters\n app.params = {\n cache: true,\n cacheIgnore: [],\n cacheIgnoreGetParameters: false,\n cacheDuration: 1000 * 60 * 10, // Ten minutes\n preloadPreviousPage: true,\n uniqueHistory: false,\n uniqueHistoryIgnoreGetParameters: false,\n dynamicPageUrl: 'content-{{index}}',\n allowDuplicateUrls: false,\n router: true,\n // Push State\n pushState: false,\n pushStateRoot: undefined,\n pushStateNoAnimation: false,\n pushStateSeparator: '#!/',\n pushStateOnLoad: true,\n // Fast clicks\n fastClicks: true,\n fastClicksDistanceThreshold: 10,\n fastClicksDelayBetweenClicks: 50,\n // Tap Hold\n tapHold: false,\n tapHoldDelay: 750,\n tapHoldPreventClicks: true,\n // Active State\n activeState: true,\n activeStateElements: 'a, button, label, span',\n // Animate Nav Back Icon\n animateNavBackIcon: false,\n // Swipe Back\n swipeBackPage: true,\n swipeBackPageThreshold: 0,\n swipeBackPageActiveArea: 30,\n swipeBackPageAnimateShadow: true,\n swipeBackPageAnimateOpacity: true,\n // Ajax\n ajaxLinks: undefined, // or CSS selector\n // External Links\n externalLinks: '.external', // CSS selector\n // Sortable\n sortable: true,\n // Scroll toolbars\n hideNavbarOnPageScroll: false,\n hideToolbarOnPageScroll: false,\n hideTabbarOnPageScroll: false,\n showBarsOnPageScrollEnd: true,\n showBarsOnPageScrollTop: true,\n // Swipeout\n swipeout: true,\n swipeoutActionsNoFold: false,\n swipeoutNoFollow: false,\n // Smart Select Back link template\n smartSelectOpenIn: 'page', // or 'popup' or 'picker'\n smartSelectBackText: 'Back',\n smartSelectPopupCloseText: 'Close',\n smartSelectPickerCloseText: 'Done',\n smartSelectSearchbar: false,\n smartSelectBackOnSelect: false,\n // Tap Navbar or Statusbar to scroll to top\n scrollTopOnNavbarClick: false,\n scrollTopOnStatusbarClick: false,\n // Panels\n swipePanel: false, // or 'left' or 'right'\n swipePanelActiveArea: 0,\n swipePanelCloseOpposite: true,\n swipePanelOnlyClose: false,\n swipePanelNoFollow: false,\n swipePanelThreshold: 0,\n panelsCloseByOutside: true,\n // Modals\n modalButtonOk: 'OK',\n modalButtonCancel: 'Cancel',\n modalUsernamePlaceholder: 'Username',\n modalPasswordPlaceholder: 'Password',\n modalTitle: 'Framework7',\n modalCloseByOutside: false,\n actionsCloseByOutside: true,\n popupCloseByOutside: true,\n modalPreloaderTitle: 'Loading... ',\n modalStack: true,\n // Lazy Load\n imagesLazyLoadThreshold: 0,\n imagesLazyLoadSequential: true,\n // Name space\n viewClass: 'view',\n viewMainClass: 'view-main',\n viewsClass: 'views',\n // Notifications defaults\n notificationCloseOnClick: false,\n notificationCloseIcon: true,\n notificationCloseButtonText: 'Close',\n // Animate Pages\n animatePages: true,\n // Template7\n templates: {},\n template7Data: {},\n template7Pages: false,\n precompileTemplates: false,\n // Material\n material: false,\n materialPageLoadDelay: 0,\n materialPreloaderSvg: '',\n materialPreloaderHtml:\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '' +\n '',\n materialRipple: true,\n materialRippleElements: '.ripple, a.link, a.item-link, .button, .modal-button, .tab-link, .label-radio, .label-checkbox, .actions-modal-button, a.searchbar-clear, a.floating-button, .floating-button > a, .speed-dial-buttons a',\n // Auto init\n init: true,\n };\n \n // Extend defaults with parameters\n for (var param in params) {\n app.params[param] = params[param];\n }\n \n // DOM lib\n var $ = Dom7;\n \n // Template7 lib\n var t7 = Template7;\n app._compiledTemplates = {};\n \n // Touch events\n app.touchEvents = {\n start: app.support.touch ? 'touchstart' : 'mousedown',\n move: app.support.touch ? 'touchmove' : 'mousemove',\n end: app.support.touch ? 'touchend' : 'mouseup'\n };\n \n // Link to local storage\n app.ls = window.localStorage;\n \n // RTL\n app.rtl = $('body').css('direction') === 'rtl';\n if (app.rtl) $('html').attr('dir', 'rtl');\n \n // Overwrite statusbar overlay\n if (typeof app.params.statusbarOverlay !== 'undefined') {\n if (app.params.statusbarOverlay) $('html').addClass('with-statusbar-overlay');\n else $('html').removeClass('with-statusbar-overlay');\n }\n \n \n \n\n /*======================================================\n ************ Views ************\n ======================================================*/\n app.views = [];\n var View = function (selector, params) {\n var defaults = {\n dynamicNavbar: false,\n domCache: false,\n linksView: undefined,\n reloadPages: false,\n uniqueHistory: app.params.uniqueHistory,\n uniqueHistoryIgnoreGetParameters: app.params.uniqueHistoryIgnoreGetParameters,\n allowDuplicateUrls: app.params.allowDuplicateUrls,\n swipeBackPage: app.params.swipeBackPage,\n swipeBackPageAnimateShadow: app.params.swipeBackPageAnimateShadow,\n swipeBackPageAnimateOpacity: app.params.swipeBackPageAnimateOpacity,\n swipeBackPageActiveArea: app.params.swipeBackPageActiveArea,\n swipeBackPageThreshold: app.params.swipeBackPageThreshold,\n animatePages: app.params.animatePages,\n preloadPreviousPage: app.params.preloadPreviousPage\n };\n var i;\n \n // Params\n params = params || {};\n \n // Disable dynamic navbar for material theme\n if (params.dynamicNavbar && app.params.material) params.dynamicNavbar = false;\n \n // Extend params with defaults\n for (var def in defaults) {\n if (typeof params[def] === 'undefined') {\n params[def] = defaults[def];\n }\n }\n // View\n var view = this;\n view.params = params;\n \n // Selector\n view.selector = selector;\n \n // Container\n var container = $(selector);\n view.container = container[0];\n \n // Fix Selector\n \n if (typeof selector !== 'string') {\n // Supposed to be HTMLElement or Dom7\n selector = (container.attr('id') ? '#' + container.attr('id') : '') + (container.attr('class') ? '.' + container.attr('class').replace(/ /g, '.').replace('.active', '') : '');\n view.selector = selector;\n }\n \n // Is main\n view.main = container.hasClass(app.params.viewMainClass);\n \n // Content cache\n view.contentCache = {};\n \n // Pages cache\n view.pagesCache = {};\n \n // Store View in element for easy access\n container[0].f7View = view;\n \n // Pages\n view.pagesContainer = container.find('.pages')[0];\n view.initialPages = [];\n view.initialPagesUrl = [];\n view.initialNavbars = [];\n if (view.params.domCache) {\n var initialPages = container.find('.page');\n for (i = 0; i < initialPages.length; i++) {\n view.initialPages.push(initialPages[i]);\n view.initialPagesUrl.push('#' + initialPages.eq(i).attr('data-page'));\n }\n if (view.params.dynamicNavbar) {\n var initialNavbars = container.find('.navbar-inner');\n for (i = 0; i < initialNavbars.length; i++) {\n view.initialNavbars.push(initialNavbars[i]);\n }\n }\n \n }\n \n view.allowPageChange = true;\n \n // Location\n var docLocation = document.location.href;\n \n // History\n view.history = [];\n var viewURL = docLocation;\n var pushStateSeparator = app.params.pushStateSeparator;\n var pushStateRoot = app.params.pushStateRoot;\n if (app.params.pushState && view.main) {\n if (pushStateRoot) {\n viewURL = pushStateRoot;\n }\n else {\n if (viewURL.indexOf(pushStateSeparator) >= 0 && viewURL.indexOf(pushStateSeparator + '#') < 0) viewURL = viewURL.split(pushStateSeparator)[0];\n }\n \n }\n \n // Active Page\n var currentPage, currentPageData;\n if (!view.activePage) {\n currentPage = $(view.pagesContainer).find('.page-on-center');\n if (currentPage.length === 0) {\n currentPage = $(view.pagesContainer).find('.page:not(.cached)');\n currentPage = currentPage.eq(currentPage.length - 1);\n }\n if (currentPage.length > 0) {\n currentPageData = currentPage[0].f7PageData;\n }\n }\n \n // View startup URL\n if (view.params.domCache && currentPage) {\n view.url = container.attr('data-url') || view.params.url || '#' + currentPage.attr('data-page'); \n view.pagesCache[view.url] = currentPage.attr('data-page');\n }\n else view.url = container.attr('data-url') || view.params.url || viewURL;\n \n // Update current page Data\n if (currentPageData) {\n currentPageData.view = view;\n currentPageData.url = view.url;\n if (view.params.domCache && view.params.dynamicNavbar && !currentPageData.navbarInnerContainer) {\n currentPageData.navbarInnerContainer = view.initialNavbars[view.initialPages.indexOf(currentPageData.container)];\n }\n view.activePage = currentPageData;\n currentPage[0].f7PageData = currentPageData;\n }\n \n // Store to history main view's url\n if (view.url) {\n view.history.push(view.url);\n }\n \n // Touch events\n var isTouched = false,\n isMoved = false,\n touchesStart = {},\n isScrolling,\n activePage = [],\n previousPage = [],\n viewContainerWidth,\n touchesDiff,\n allowViewTouchMove = true,\n touchStartTime,\n activeNavbar = [],\n previousNavbar = [],\n activeNavElements,\n previousNavElements,\n activeNavBackIcon,\n previousNavBackIcon,\n dynamicNavbar,\n pageShadow,\n el;\n \n view.handleTouchStart = function (e) {\n if (!allowViewTouchMove || !view.params.swipeBackPage || isTouched || app.swipeoutOpenedEl || !view.allowPageChange) return;\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = (new Date()).getTime();\n dynamicNavbar = view.params.dynamicNavbar && container.find('.navbar-inner').length > 1;\n };\n \n view.handleTouchMove = function (e) {\n if (!isTouched) return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x));\n }\n if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) {\n isTouched = false;\n return;\n }\n if (!isMoved) {\n var cancel = false;\n // Calc values during first move fired\n viewContainerWidth = container.width();\n var target = $(e.target);\n var swipeout = target.hasClass('swipeout') ? target : target.parents('.swipeout');\n if (swipeout.length > 0) {\n if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) cancel = true;\n if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) cancel = true;\n }\n activePage = target.is('.page') ? target : target.parents('.page');\n if (activePage.hasClass('no-swipeback')) cancel = true;\n previousPage = container.find('.page-on-left:not(.cached)');\n var notFromBorder = touchesStart.x - container.offset().left > view.params.swipeBackPageActiveArea;\n if (app.rtl) {\n notFromBorder = touchesStart.x < container.offset().left - container[0].scrollLeft + viewContainerWidth - view.params.swipeBackPageActiveArea;\n }\n else {\n notFromBorder = touchesStart.x - container.offset().left > view.params.swipeBackPageActiveArea;\n }\n if (notFromBorder) cancel = true;\n if (previousPage.length === 0 || activePage.length === 0) cancel = true;\n if (cancel) {\n isTouched = false;\n return;\n }\n \n if (view.params.swipeBackPageAnimateShadow && !app.device.android) {\n pageShadow = activePage.find('.swipeback-page-shadow');\n if (pageShadow.length === 0) {\n pageShadow = $('
');\n activePage.append(pageShadow);\n }\n }\n \n if (dynamicNavbar) {\n activeNavbar = container.find('.navbar-on-center:not(.cached)');\n previousNavbar = container.find('.navbar-on-left:not(.cached)');\n activeNavElements = activeNavbar.find('.left, .center, .right, .subnavbar, .fading');\n previousNavElements = previousNavbar.find('.left, .center, .right, .subnavbar, .fading');\n if (app.params.animateNavBackIcon) {\n activeNavBackIcon = activeNavbar.find('.left.sliding .back .icon');\n previousNavBackIcon = previousNavbar.find('.left.sliding .back .icon');\n }\n }\n \n // Close/Hide Any Picker\n if ($('.picker-modal.modal-in').length > 0) {\n app.closeModal($('.picker-modal.modal-in'));\n }\n }\n e.f7PreventPanelSwipe = true;\n isMoved = true;\n e.preventDefault();\n \n // RTL inverter\n var inverter = app.rtl ? -1 : 1;\n \n // Touches diff\n touchesDiff = (pageX - touchesStart.x - view.params.swipeBackPageThreshold) * inverter;\n if (touchesDiff < 0) touchesDiff = 0;\n var percentage = touchesDiff / viewContainerWidth;\n \n // Swipe Back Callback\n var callbackData = {\n percentage: percentage,\n activePage: activePage[0],\n previousPage: previousPage[0],\n activeNavbar: activeNavbar[0],\n previousNavbar: previousNavbar[0]\n };\n if (view.params.onSwipeBackMove) {\n view.params.onSwipeBackMove(callbackData);\n }\n container.trigger('swipeBackMove', callbackData);\n \n // Transform pages\n var activePageTranslate = touchesDiff * inverter;\n var previousPageTranslate = (touchesDiff / 5 - viewContainerWidth / 5) * inverter;\n if (app.device.pixelRatio === 1) {\n activePageTranslate = Math.round(activePageTranslate);\n previousPageTranslate = Math.round(previousPageTranslate);\n }\n \n activePage.transform('translate3d(' + activePageTranslate + 'px,0,0)');\n if (view.params.swipeBackPageAnimateShadow && !app.device.android) pageShadow[0].style.opacity = 1 - 1 * percentage;\n \n previousPage.transform('translate3d(' + previousPageTranslate + 'px,0,0)');\n if (view.params.swipeBackPageAnimateOpacity) previousPage[0].style.opacity = 0.9 + 0.1 * percentage;\n \n // Dynamic Navbars Animation\n if (dynamicNavbar) {\n var i;\n for (i = 0; i < activeNavElements.length; i++) {\n el = $(activeNavElements[i]);\n if (!el.is('.subnavbar.sliding')) el[0].style.opacity = (1 - percentage * 1.3);\n if (el[0].className.indexOf('sliding') >= 0) {\n var activeNavTranslate = percentage * el[0].f7NavbarRightOffset;\n if (app.device.pixelRatio === 1) activeNavTranslate = Math.round(activeNavTranslate);\n el.transform('translate3d(' + activeNavTranslate + 'px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (el[0].className.indexOf('left') >= 0 && activeNavBackIcon.length > 0) {\n activeNavBackIcon.transform('translate3d(' + -activeNavTranslate + 'px,0,0)');\n }\n }\n }\n }\n for (i = 0; i < previousNavElements.length; i++) {\n el = $(previousNavElements[i]);\n if (!el.is('.subnavbar.sliding')) el[0].style.opacity = percentage * 1.3 - 0.3;\n if (el[0].className.indexOf('sliding') >= 0) {\n var previousNavTranslate = el[0].f7NavbarLeftOffset * (1 - percentage);\n if (app.device.pixelRatio === 1) previousNavTranslate = Math.round(previousNavTranslate);\n el.transform('translate3d(' + previousNavTranslate + 'px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (el[0].className.indexOf('left') >= 0 && previousNavBackIcon.length > 0) {\n previousNavBackIcon.transform('translate3d(' + -previousNavTranslate + 'px,0,0)');\n }\n }\n }\n }\n }\n };\n \n view.handleTouchEnd = function (e) {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n if (touchesDiff === 0) {\n $([activePage[0], previousPage[0]]).transform('').css({opacity: '', boxShadow: ''});\n if (dynamicNavbar) {\n activeNavElements.transform('').css({opacity: ''});\n previousNavElements.transform('').css({opacity: ''});\n if (activeNavBackIcon && activeNavBackIcon.length > 0) activeNavBackIcon.transform('');\n if (previousNavBackIcon && activeNavBackIcon.length > 0) previousNavBackIcon.transform('');\n }\n return;\n }\n var timeDiff = (new Date()).getTime() - touchStartTime;\n var pageChanged = false;\n // Swipe back to previous page\n if (\n timeDiff < 300 && touchesDiff > 10 ||\n timeDiff >= 300 && touchesDiff > viewContainerWidth / 2\n ) {\n activePage.removeClass('page-on-center').addClass('page-on-right');\n previousPage.removeClass('page-on-left').addClass('page-on-center');\n if (dynamicNavbar) {\n activeNavbar.removeClass('navbar-on-center').addClass('navbar-on-right');\n previousNavbar.removeClass('navbar-on-left').addClass('navbar-on-center');\n }\n pageChanged = true;\n }\n // Reset custom styles\n // Add transitioning class for transition-duration\n $([activePage[0], previousPage[0]]).transform('').css({opacity: '', boxShadow: ''}).addClass('page-transitioning');\n if (dynamicNavbar) {\n activeNavElements.css({opacity: ''})\n .each(function () {\n var translate = pageChanged ? this.f7NavbarRightOffset : 0;\n var sliding = $(this);\n sliding.transform('translate3d(' + translate + 'px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && activeNavBackIcon.length > 0) {\n activeNavBackIcon.addClass('page-transitioning').transform('translate3d(' + -translate + 'px,0,0)');\n }\n }\n \n }).addClass('page-transitioning');\n \n previousNavElements.transform('').css({opacity: ''}).each(function () {\n var translate = pageChanged ? 0 : this.f7NavbarLeftOffset;\n var sliding = $(this);\n sliding.transform('translate3d(' + translate + 'px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && previousNavBackIcon.length > 0) {\n previousNavBackIcon.addClass('page-transitioning').transform('translate3d(' + -translate + 'px,0,0)');\n }\n }\n }).addClass('page-transitioning');\n }\n allowViewTouchMove = false;\n view.allowPageChange = false;\n // Swipe Back Callback\n var callbackData = {\n activePage: activePage[0],\n previousPage: previousPage[0],\n activeNavbar: activeNavbar[0],\n previousNavbar: previousNavbar[0]\n };\n if (pageChanged) {\n // Update View's URL\n var url = view.history[view.history.length - 2];\n view.url = url;\n \n // Page before animation callback\n app.pageBackCallback('before', view, {pageContainer: activePage[0], url: url, position: 'center', newPage: previousPage, oldPage: activePage, swipeBack: true});\n app.pageAnimCallback('before', view, {pageContainer: previousPage[0], url: url, position: 'left', newPage: previousPage, oldPage: activePage, swipeBack: true});\n \n if (view.params.onSwipeBackBeforeChange) {\n view.params.onSwipeBackBeforeChange(callbackData);\n }\n container.trigger('swipeBackBeforeChange', callbackData);\n }\n else {\n if (view.params.onSwipeBackBeforeReset) {\n view.params.onSwipeBackBeforeReset(callbackData);\n }\n container.trigger('swipeBackBeforeReset', callbackData);\n }\n \n activePage.transitionEnd(function () {\n $([activePage[0], previousPage[0]]).removeClass('page-transitioning');\n if (dynamicNavbar) {\n activeNavElements.removeClass('page-transitioning').css({opacity: ''});\n previousNavElements.removeClass('page-transitioning').css({opacity: ''});\n if (activeNavBackIcon && activeNavBackIcon.length > 0) activeNavBackIcon.removeClass('page-transitioning');\n if (previousNavBackIcon && previousNavBackIcon.length > 0) previousNavBackIcon.removeClass('page-transitioning');\n }\n allowViewTouchMove = true;\n view.allowPageChange = true;\n if (pageChanged) {\n if (app.params.pushState && view.main) history.back();\n // Page after animation callback\n app.pageBackCallback('after', view, {pageContainer: activePage[0], url: url, position: 'center', newPage: previousPage, oldPage: activePage, swipeBack: true});\n app.pageAnimCallback('after', view, {pageContainer: previousPage[0], url: url, position: 'left', newPage: previousPage, oldPage: activePage, swipeBack: true});\n app.router.afterBack(view, activePage, previousPage);\n \n if (view.params.onSwipeBackAfterChange) {\n view.params.onSwipeBackAfterChange(callbackData);\n }\n container.trigger('swipeBackAfterChange', callbackData);\n }\n else {\n if (view.params.onSwipeBackAfterReset) {\n view.params.onSwipeBackAfterReset(callbackData);\n }\n container.trigger('swipeBackAfterReset', callbackData);\n }\n if (pageShadow && pageShadow.length > 0) pageShadow.remove();\n });\n };\n view.attachEvents = function (detach) {\n var action = detach ? 'off' : 'on';\n container[action](app.touchEvents.start, view.handleTouchStart);\n container[action](app.touchEvents.move, view.handleTouchMove);\n container[action](app.touchEvents.end, view.handleTouchEnd);\n };\n view.detachEvents = function () {\n view.attachEvents(true);\n };\n \n // Init\n if (view.params.swipeBackPage && !app.params.material) {\n view.attachEvents();\n }\n \n // Add view to app\n app.views.push(view);\n if (view.main) app.mainView = view;\n \n // Router \n view.router = {\n load: function (options) {\n return app.router.load(view, options);\n },\n back: function (options) {\n return app.router.back(view, options); \n },\n // Shortcuts\n loadPage: function (options) {\n options = options || {};\n if (typeof options === 'string') {\n var url = options;\n options = {};\n if (url && url.indexOf('#') === 0 && view.params.domCache) {\n options.pageName = url.split('#')[1];\n }\n else options.url = url;\n }\n return app.router.load(view, options);\n },\n loadContent: function (content) {\n return app.router.load(view, {content: content});\n },\n reloadPage: function (url) {\n return app.router.load(view, {url: url, reload: true});\n },\n reloadContent: function (content) {\n return app.router.load(view, {content: content, reload: true});\n },\n reloadPreviousPage: function (url) {\n return app.router.load(view, {url: url, reloadPrevious: true, reload: true});\n },\n reloadPreviousContent: function (content) {\n return app.router.load(view, {content: content, reloadPrevious: true, reload: true});\n },\n refreshPage: function () {\n var options = {\n url: view.url,\n reload: true,\n ignoreCache: true\n };\n if (options.url && options.url.indexOf('#') === 0) {\n if (view.params.domCache && view.pagesCache[options.url]) {\n options.pageName = view.pagesCache[options.url];\n options.url = undefined;\n delete options.url;\n }\n else if (view.contentCache[options.url]) {\n options.content = view.contentCache[options.url];\n options.url = undefined;\n delete options.url;\n }\n }\n return app.router.load(view, options);\n },\n refreshPreviousPage: function () {\n var options = {\n url: view.history[view.history.length - 2],\n reload: true,\n reloadPrevious: true,\n ignoreCache: true\n };\n if (options.url && options.url.indexOf('#') === 0 && view.params.domCache && view.pagesCache[options.url]) {\n options.pageName = view.pagesCache[options.url];\n options.url = undefined;\n delete options.url;\n }\n return app.router.load(view, options);\n }\n };\n \n // Aliases for temporary backward compatibility\n view.loadPage = view.router.loadPage;\n view.loadContent = view.router.loadContent;\n view.reloadPage = view.router.reloadPage;\n view.reloadContent = view.router.reloadContent;\n view.reloadPreviousPage = view.router.reloadPreviousPage;\n view.reloadPreviousContent = view.router.reloadPreviousContent;\n view.refreshPage = view.router.refreshPage;\n view.refreshPreviousPage = view.router.refreshPreviousPage;\n view.back = view.router.back;\n \n // Bars methods\n view.hideNavbar = function () {\n return app.hideNavbar(container.find('.navbar'));\n };\n view.showNavbar = function () {\n return app.showNavbar(container.find('.navbar'));\n };\n view.hideToolbar = function () {\n return app.hideToolbar(container.find('.toolbar'));\n };\n view.showToolbar = function () {\n return app.showToolbar(container.find('.toolbar'));\n };\n \n // Push State on load\n if (app.params.pushState && app.params.pushStateOnLoad && view.main) {\n var pushStateUrl;\n var pushStateUrlSplit = docLocation.split(pushStateSeparator)[1];\n if (pushStateRoot) {\n pushStateUrl = docLocation.split(app.params.pushStateRoot + pushStateSeparator)[1];\n }\n else if (pushStateSeparator && docLocation.indexOf(pushStateSeparator) >= 0 && docLocation.indexOf(pushStateSeparator + '#') < 0) {\n pushStateUrl = pushStateUrlSplit;\n }\n var pushStateAnimatePages = app.params.pushStateNoAnimation ? false : undefined;\n var historyState = history.state;\n if (pushStateUrl) {\n if (pushStateUrl.indexOf('#') >= 0 && view.params.domCache && historyState && historyState.pageName && 'viewIndex' in historyState) {\n app.router.load(view, {pageName: historyState.pageName, url: historyState.url, animatePages: pushStateAnimatePages, pushState: false});\n }\n else if (pushStateUrl.indexOf('#') >= 0 && view.params.domCache && view.initialPagesUrl.indexOf(pushStateUrl) >= 0) {\n app.router.load(view, {pageName: pushStateUrl.replace('#',''), animatePages: pushStateAnimatePages, pushState: false});\n }\n else app.router.load(view, {url: pushStateUrl, animatePages: pushStateAnimatePages, pushState: false});\n }\n else if (view.params.domCache && docLocation.indexOf(pushStateSeparator + '#') >= 0) {\n if (historyState && historyState.pageName && 'viewIndex' in historyState) {\n app.router.load(view, {pageName: historyState.pageName, url: historyState.url, animatePages: pushStateAnimatePages, pushState: false});\n }\n else if (pushStateSeparator && pushStateUrlSplit.indexOf('#') === 0) {\n if (view.initialPagesUrl.indexOf(pushStateUrlSplit)) {\n app.router.load(view, {pageName: pushStateUrlSplit.replace('#', ''), animatePages: pushStateAnimatePages, pushState: false});\n }\n }\n }\n }\n \n // Destroy\n view.destroy = function () {\n view.detachEvents();\n view = undefined;\n };\n \n // Plugin hook\n app.pluginHook('addView', view);\n \n // Return view\n return view;\n };\n \n app.addView = function (selector, params) {\n return new View(selector, params);\n };\n \n app.getCurrentView = function (index) {\n var popoverView = $('.popover.modal-in .view');\n var popupView = $('.popup.modal-in .view');\n var panelView = $('.panel.active .view');\n var appViews = $('.views');\n // Find active view as tab\n var appView = appViews.children('.view');\n // Propably in tabs or split view\n if (appView.length > 1) {\n if (appView.hasClass('tab')) {\n // Tabs\n appView = appViews.children('.view.active');\n }\n else {\n // Split View, leave appView intact\n }\n }\n if (popoverView.length > 0 && popoverView[0].f7View) return popoverView[0].f7View;\n if (popupView.length > 0 && popupView[0].f7View) return popupView[0].f7View;\n if (panelView.length > 0 && panelView[0].f7View) return panelView[0].f7View;\n if (appView.length > 0) {\n if (appView.length === 1 && appView[0].f7View) return appView[0].f7View;\n if (appView.length > 1) {\n var currentViews = [];\n for (var i = 0; i < appView.length; i++) {\n if (appView[i].f7View) currentViews.push(appView[i].f7View);\n }\n if (currentViews.length > 0 && typeof index !== 'undefined') return currentViews[index];\n if (currentViews.length > 1) return currentViews;\n if (currentViews.length === 1) return currentViews[0];\n return undefined;\n }\n }\n return undefined;\n };\n \n\n /*======================================================\n ************ Navbars && Toolbars ************\n ======================================================*/\n // On Navbar Init Callback\n app.navbarInitCallback = function (view, pageContainer, navbarContainer, navbarInnerContainer) {\n if (!navbarContainer && navbarInnerContainer) navbarContainer = $(navbarInnerContainer).parent('.navbar')[0];\n if (navbarInnerContainer.f7NavbarInitialized && view && !view.params.domCache) return;\n var navbarData = {\n container: navbarContainer,\n innerContainer: navbarInnerContainer\n };\n var pageData = pageContainer && pageContainer.f7PageData;\n \n var eventData = {\n page: pageData,\n navbar: navbarData\n };\n \n if (navbarInnerContainer.f7NavbarInitialized && ((view && view.params.domCache) || (!view && $(navbarContainer).parents('.popup, .popover, .login-screen, .modal, .actions-modal, .picker-modal').length > 0))) {\n // Reinit Navbar\n app.reinitNavbar(navbarContainer, navbarInnerContainer);\n \n // Plugin hook\n app.pluginHook('navbarReinit', eventData);\n \n // Event\n $(navbarInnerContainer).trigger('navbarReinit', eventData);\n return;\n }\n navbarInnerContainer.f7NavbarInitialized = true;\n // Before Init\n app.pluginHook('navbarBeforeInit', navbarData, pageData);\n $(navbarInnerContainer).trigger('navbarBeforeInit', eventData);\n \n // Initialize Navbar\n app.initNavbar(navbarContainer, navbarInnerContainer);\n \n // On init\n app.pluginHook('navbarInit', navbarData, pageData);\n $(navbarInnerContainer).trigger('navbarInit', eventData);\n };\n // Navbar Remove Callback\n app.navbarRemoveCallback = function (view, pageContainer, navbarContainer, navbarInnerContainer) {\n if (!navbarContainer && navbarInnerContainer) navbarContainer = $(navbarInnerContainer).parent('.navbar')[0];\n var navbarData = {\n container: navbarContainer,\n innerContainer: navbarInnerContainer\n };\n var pageData = pageContainer.f7PageData;\n \n var eventData = {\n page: pageData,\n navbar: navbarData\n };\n app.pluginHook('navbarBeforeRemove', navbarData, pageData);\n $(navbarInnerContainer).trigger('navbarBeforeRemove', eventData);\n };\n app.initNavbar = function (navbarContainer, navbarInnerContainer) {\n // Init Subnavbar Searchbar\n if (app.initSearchbar) app.initSearchbar(navbarInnerContainer);\n };\n app.reinitNavbar = function (navbarContainer, navbarInnerContainer) {\n // Re init navbar methods\n };\n app.initNavbarWithCallback = function (navbarContainer) {\n navbarContainer = $(navbarContainer);\n var viewContainer = navbarContainer.parents('.' + app.params.viewClass);\n var view;\n if (viewContainer.length === 0) return;\n if (navbarContainer.parents('.navbar-through').length === 0 && viewContainer.find('.navbar-through').length === 0) return;\n view = viewContainer[0].f7View || undefined;\n \n navbarContainer.find('.navbar-inner').each(function () {\n var navbarInnerContainer = this;\n var pageContainer;\n if ($(navbarInnerContainer).attr('data-page')) {\n // For dom cache\n pageContainer = viewContainer.find('.page[data-page=\"' + $(navbarInnerContainer).attr('data-page') + '\"]')[0];\n }\n if (!pageContainer) {\n var pages = viewContainer.find('.page');\n if (pages.length === 1) {\n pageContainer = pages[0];\n }\n else {\n viewContainer.find('.page').each(function () {\n if (this.f7PageData && this.f7PageData.navbarInnerContainer === navbarInnerContainer) {\n pageContainer = this;\n }\n });\n }\n }\n app.navbarInitCallback(view, pageContainer, navbarContainer[0], navbarInnerContainer);\n });\n };\n \n // Size Navbars\n app.sizeNavbars = function (viewContainer) {\n if (app.params.material) return;\n var navbarInner = viewContainer ? $(viewContainer).find('.navbar .navbar-inner:not(.cached)') : $('.navbar .navbar-inner:not(.cached)');\n navbarInner.each(function () {\n var n = $(this);\n if (n.hasClass('cached')) return;\n var left = app.rtl ? n.find('.right') : n.find('.left'),\n right = app.rtl ? n.find('.left') : n.find('.right'),\n center = n.find('.center'),\n subnavbar = n.find('.subnavbar'),\n noLeft = left.length === 0,\n noRight = right.length === 0,\n leftWidth = noLeft ? 0 : left.outerWidth(true),\n rightWidth = noRight ? 0 : right.outerWidth(true),\n centerWidth = center.outerWidth(true),\n navbarStyles = n.styles(),\n navbarWidth = n[0].offsetWidth - parseInt(navbarStyles.paddingLeft, 10) - parseInt(navbarStyles.paddingRight, 10),\n onLeft = n.hasClass('navbar-on-left'),\n currLeft, diff;\n \n if (noRight) {\n currLeft = navbarWidth - centerWidth;\n }\n if (noLeft) {\n currLeft = 0;\n }\n if (!noLeft && !noRight) {\n currLeft = (navbarWidth - rightWidth - centerWidth + leftWidth) / 2;\n }\n var requiredLeft = (navbarWidth - centerWidth) / 2;\n if (navbarWidth - leftWidth - rightWidth > centerWidth) {\n if (requiredLeft < leftWidth) {\n requiredLeft = leftWidth;\n }\n if (requiredLeft + centerWidth > navbarWidth - rightWidth) {\n requiredLeft = navbarWidth - rightWidth - centerWidth;\n }\n diff = requiredLeft - currLeft;\n }\n else {\n diff = 0;\n }\n // RTL inverter\n var inverter = app.rtl ? -1 : 1;\n \n if (center.hasClass('sliding')) {\n center[0].f7NavbarLeftOffset = -(currLeft + diff) * inverter;\n center[0].f7NavbarRightOffset = (navbarWidth - currLeft - diff - centerWidth) * inverter;\n if (onLeft) {\n if (app.params.animateNavBackIcon) {\n var activeNavbarBackLink = n.parent().find('.navbar-on-center').find('.left.sliding .back .icon ~ span');\n if (activeNavbarBackLink.length > 0) {\n center[0].f7NavbarLeftOffset += activeNavbarBackLink[0].offsetLeft;\n }\n }\n center.transform('translate3d(' + center[0].f7NavbarLeftOffset + 'px, 0, 0)');\n }\n }\n if (!noLeft && left.hasClass('sliding')) {\n if (app.rtl) {\n left[0].f7NavbarLeftOffset = -(navbarWidth - left[0].offsetWidth) / 2 * inverter;\n left[0].f7NavbarRightOffset = leftWidth * inverter;\n }\n else {\n left[0].f7NavbarLeftOffset = -leftWidth;\n left[0].f7NavbarRightOffset = (navbarWidth - left[0].offsetWidth) / 2;\n if (app.params.animateNavBackIcon && left.find('.back .icon').length > 0) {\n left[0].f7NavbarRightOffset -= left.find('.back .icon')[0].offsetWidth;\n }\n }\n if (onLeft) left.transform('translate3d(' + left[0].f7NavbarLeftOffset + 'px, 0, 0)');\n }\n if (!noRight && right.hasClass('sliding')) {\n if (app.rtl) {\n right[0].f7NavbarLeftOffset = -rightWidth * inverter;\n right[0].f7NavbarRightOffset = (navbarWidth - right[0].offsetWidth) / 2 * inverter;\n }\n else {\n right[0].f7NavbarLeftOffset = -(navbarWidth - right[0].offsetWidth) / 2;\n right[0].f7NavbarRightOffset = rightWidth;\n }\n if (onLeft) right.transform('translate3d(' + right[0].f7NavbarLeftOffset + 'px, 0, 0)');\n }\n if (subnavbar.length && subnavbar.hasClass('sliding')) {\n subnavbar[0].f7NavbarLeftOffset = app.rtl ? subnavbar[0].offsetWidth : -subnavbar[0].offsetWidth;\n subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset;\n }\n \n // Center left\n var centerLeft = diff;\n if (app.rtl && noLeft && noRight && center.length > 0) centerLeft = -centerLeft;\n center.css({left: centerLeft + 'px'});\n \n });\n };\n \n // Hide/Show Navbars/Toolbars\n app.hideNavbar = function (navbarContainer) {\n $(navbarContainer).addClass('navbar-hidden');\n return true;\n };\n app.showNavbar = function (navbarContainer) {\n var navbar = $(navbarContainer);\n navbar.addClass('navbar-hiding').removeClass('navbar-hidden').transitionEnd(function () {\n navbar.removeClass('navbar-hiding');\n });\n return true;\n };\n app.hideToolbar = function (toolbarContainer) {\n $(toolbarContainer).addClass('toolbar-hidden');\n return true;\n };\n app.showToolbar = function (toolbarContainer) {\n var toolbar = $(toolbarContainer);\n toolbar.addClass('toolbar-hiding').removeClass('toolbar-hidden').transitionEnd(function () {\n toolbar.removeClass('toolbar-hiding');\n });\n };\n \n\n /*======================================================\n ************ Searchbar ************\n ======================================================*/\n var Searchbar = function (container, params) {\n var defaults = {\n input: null,\n clearButton: null,\n cancelButton: null,\n searchList: null,\n searchIn: '.item-title',\n searchBy: '',\n found: null,\n notFound: null,\n overlay: null,\n ignore: '.searchbar-ignore',\n customSearch: false,\n removeDiacritics: false,\n hideDividers: true,\n hideGroups: true,\n /* Callbacks\n onSearch\n onEnable\n onDisable\n onClear\n */\n \n };\n params = params || {};\n for (var def in defaults) {\n if (typeof params[def] === 'undefined' || params[def] === null) {\n params[def] = defaults[def];\n }\n }\n \n // Instance\n var s = this;\n \n // Material\n s.material = app.params.material;\n \n // Params\n s.params = params;\n \n // Container\n container = $(container);\n s.container = container;\n \n // Active\n s.active = false;\n \n // Input\n s.input = s.params.input ? $(s.params.input) : s.container.find('input[type=\"search\"]');\n s.clearButton = s.params.clearButton ? $(s.params.clearButton) : s.container.find('.searchbar-clear');\n s.cancelButton = s.params.cancelButton ? $(s.params.cancelButton) : s.container.find('.searchbar-cancel');\n \n // Search List\n s.searchList = $(s.params.searchList);\n \n // Is Virtual List\n s.isVirtualList = s.searchList.hasClass('virtual-list');\n \n // Is In Page\n s.pageContainer = s.container.parents('.page').eq(0);\n \n // Overlay\n if (!s.params.overlay) {\n s.overlay = s.pageContainer.length > 0 ? s.pageContainer.find('.searchbar-overlay') : $('.searchbar-overlay');\n }\n else {\n s.overlay = $(s.params.overlay);\n }\n // Found and not found\n if (!s.params.found) {\n s.found = s.pageContainer.length > 0 ? s.pageContainer.find('.searchbar-found') : $('.searchbar-found');\n }\n else {\n s.found = $(s.params.found);\n }\n if (!s.params.notFound) {\n s.notFound = s.pageContainer.length > 0 ? s.pageContainer.find('.searchbar-not-found') : $('.searchbar-not-found');\n }\n else {\n s.notFound = $(s.params.notFound);\n }\n \n \n \n // Diacritics\n var defaultDiacriticsRemovalap = [\n {base:'A', letters:'\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F'},\n {base:'AA',letters:'\\uA732'},\n {base:'AE',letters:'\\u00C6\\u01FC\\u01E2'},\n {base:'AO',letters:'\\uA734'},\n {base:'AU',letters:'\\uA736'},\n {base:'AV',letters:'\\uA738\\uA73A'},\n {base:'AY',letters:'\\uA73C'},\n {base:'B', letters:'\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181'},\n {base:'C', letters:'\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E'},\n {base:'D', letters:'\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779'},\n {base:'DZ',letters:'\\u01F1\\u01C4'},\n {base:'Dz',letters:'\\u01F2\\u01C5'},\n {base:'E', letters:'\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E'},\n {base:'F', letters:'\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B'},\n {base:'G', letters:'\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E'},\n {base:'H', letters:'\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D'},\n {base:'I', letters:'\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197'},\n {base:'J', letters:'\\u004A\\u24BF\\uFF2A\\u0134\\u0248'},\n {base:'K', letters:'\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2'},\n {base:'L', letters:'\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780'},\n {base:'LJ',letters:'\\u01C7'},\n {base:'Lj',letters:'\\u01C8'},\n {base:'M', letters:'\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C'},\n {base:'N', letters:'\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4'},\n {base:'NJ',letters:'\\u01CA'},\n {base:'Nj',letters:'\\u01CB'},\n {base:'O', letters:'\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C'},\n {base:'OI',letters:'\\u01A2'},\n {base:'OO',letters:'\\uA74E'},\n {base:'OU',letters:'\\u0222'},\n {base:'OE',letters:'\\u008C\\u0152'},\n {base:'oe',letters:'\\u009C\\u0153'},\n {base:'P', letters:'\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754'},\n {base:'Q', letters:'\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A'},\n {base:'R', letters:'\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782'},\n {base:'S', letters:'\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784'},\n {base:'T', letters:'\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786'},\n {base:'TZ',letters:'\\uA728'},\n {base:'U', letters:'\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244'},\n {base:'V', letters:'\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245'},\n {base:'VY',letters:'\\uA760'},\n {base:'W', letters:'\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72'},\n {base:'X', letters:'\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C'},\n {base:'Y', letters:'\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE'},\n {base:'Z', letters:'\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762'},\n {base:'a', letters:'\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250'},\n {base:'aa',letters:'\\uA733'},\n {base:'ae',letters:'\\u00E6\\u01FD\\u01E3'},\n {base:'ao',letters:'\\uA735'},\n {base:'au',letters:'\\uA737'},\n {base:'av',letters:'\\uA739\\uA73B'},\n {base:'ay',letters:'\\uA73D'},\n {base:'b', letters:'\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253'},\n {base:'c', letters:'\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184'},\n {base:'d', letters:'\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A'},\n {base:'dz',letters:'\\u01F3\\u01C6'},\n {base:'e', letters:'\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD'},\n {base:'f', letters:'\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C'},\n {base:'g', letters:'\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F'},\n {base:'h', letters:'\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265'},\n {base:'hv',letters:'\\u0195'},\n {base:'i', letters:'\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131'},\n {base:'j', letters:'\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249'},\n {base:'k', letters:'\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3'},\n {base:'l', letters:'\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747'},\n {base:'lj',letters:'\\u01C9'},\n {base:'m', letters:'\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F'},\n {base:'n', letters:'\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5'},\n {base:'nj',letters:'\\u01CC'},\n {base:'o', letters:'\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275'},\n {base:'oi',letters:'\\u01A3'},\n {base:'ou',letters:'\\u0223'},\n {base:'oo',letters:'\\uA74F'},\n {base:'p',letters:'\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755'},\n {base:'q',letters:'\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759'},\n {base:'r',letters:'\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783'},\n {base:'s',letters:'\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B'},\n {base:'t',letters:'\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787'},\n {base:'tz',letters:'\\uA729'},\n {base:'u',letters: '\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289'},\n {base:'v',letters:'\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C'},\n {base:'vy',letters:'\\uA761'},\n {base:'w',letters:'\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73'},\n {base:'x',letters:'\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D'},\n {base:'y',letters:'\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF'},\n {base:'z',letters:'\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763'}\n ];\n \n var diacriticsMap = {};\n for (var i=0; i < defaultDiacriticsRemovalap.length; i++){\n var letters = defaultDiacriticsRemovalap[i].letters;\n for (var j=0; j < letters.length ; j++){\n diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base;\n }\n }\n \n function removeDiacritics (str) {\n return str.replace(/[^\\u0000-\\u007E]/g, function(a){ \n return diacriticsMap[a] || a; \n });\n }\n \n // Set Cancel button\n var cancelMarginProp = app.rtl ? 'margin-left' : 'margin-right';\n var cancelButtonHasMargin = false;\n s.setCancelButtonMargin = function () {\n s.cancelButton.transition(0).show();\n s.cancelButton.css(cancelMarginProp, -s.cancelButton[0].offsetWidth + 'px');\n var clientLeft = s.cancelButton[0].clientLeft;\n s.cancelButton.transition('');\n cancelButtonHasMargin = true;\n };\n \n // Trigger\n s.triggerEvent = function (eventName, callbackName, eventData) {\n s.container.trigger(eventName, eventData);\n if (s.searchList.length > 0) s.searchList.trigger(eventName, eventData);\n if (callbackName && s.params[callbackName]) s.params[callbackName](s, eventData);\n };\n \n // Enable/disalbe\n s.enable = function (e) {\n function _enable() {\n if ((s.searchList.length || s.params.customSearch) && !s.container.hasClass('searchbar-active') && !s.query) s.overlay.addClass('searchbar-overlay-active');\n s.container.addClass('searchbar-active');\n if (s.cancelButton.length > 0 && !s.material) {\n if (!cancelButtonHasMargin) {\n s.setCancelButtonMargin();\n }\n s.cancelButton.css(cancelMarginProp, '0px');\n }\n s.triggerEvent('enableSearch', 'onEnable');\n s.active = true;\n }\n if (app.device.ios && !app.params.material && e && e.type === 'focus') {\n setTimeout(function () {\n _enable();\n }, 400);\n }\n else {\n _enable();\n }\n };\n \n s.disable = function () {\n s.input.val('').trigger('change');\n s.container.removeClass('searchbar-active searchbar-not-empty');\n if (s.cancelButton.length > 0 && !s.material) s.cancelButton.css(cancelMarginProp, -s.cancelButton[0].offsetWidth + 'px');\n \n if (s.searchList.length || s.params.customSearch) s.overlay.removeClass('searchbar-overlay-active');\n \n s.active = false;\n function _disable() {\n s.input.blur();\n }\n if (app.device.ios) {\n setTimeout(function () {\n _disable();\n }, 400);\n }\n else {\n _disable();\n }\n s.triggerEvent('disableSearch', 'onDisable');\n };\n \n // Clear\n s.clear = function (e) {\n if (!s.query && e && $(e.target).hasClass('searchbar-clear')) {\n s.disable();\n return;\n }\n s.input.val('').trigger('change').focus();\n s.triggerEvent('clearSearch', 'onClear');\n };\n \n // Search\n s.handleInput = function () {\n setTimeout(function () {\n var value = s.input.val().trim();\n if ((s.searchList.length > 0 || s.params.customSearch) && (s.params.searchIn || s.isVirtualList)) s.search(value, true);\n }, 0);\n };\n \n var previousQuery = '';\n var virtualList;\n s.search = function (query, internal) {\n if (query.trim() === previousQuery) return;\n previousQuery = query.trim();\n \n if (!internal) {\n if (!s.active) {\n s.enable();\n }\n s.input.val(query);\n }\n s.query = s.value = query;\n // Add active/inactive classes on overlay\n if (query.length === 0) {\n s.container.removeClass('searchbar-not-empty');\n if (s.searchList.length && s.container.hasClass('searchbar-active')) s.overlay.addClass('searchbar-overlay-active');\n }\n else {\n s.container.addClass('searchbar-not-empty');\n if (s.searchList.length && s.container.hasClass('searchbar-active')) s.overlay.removeClass('searchbar-overlay-active');\n }\n \n if (s.params.customSearch) {\n s.triggerEvent('search', 'onSearch', {query: query});\n return;\n }\n \n var foundItems = [];\n if (s.isVirtualList) {\n virtualList = s.searchList[0].f7VirtualList;\n if (query.trim() === '') {\n virtualList.resetFilter();\n s.notFound.hide();\n s.found.show();\n return;\n }\n if (virtualList.params.searchAll) {\n foundItems = virtualList.params.searchAll(query, virtualList.items) || [];\n }\n else if (virtualList.params.searchByItem) {\n for (var i = 0; i < virtualList.items.length; i++) {\n if(virtualList.params.searchByItem(query, i, virtualList.params.items[i])) {\n foundItems.push(i);\n }\n }\n }\n }\n else {\n var values;\n if (s.params.removeDiacritics) values = removeDiacritics(query.trim().toLowerCase()).split(' ');\n else {\n values = query.trim().toLowerCase().split(' ');\n }\n s.searchList.find('li').removeClass('hidden-by-searchbar').each(function (index, el) {\n el = $(el);\n var compareWithText = [];\n el.find(s.params.searchIn).each(function () {\n var itemText = $(this).text().trim().toLowerCase();\n if (s.params.removeDiacritics) itemText = removeDiacritics(itemText);\n compareWithText.push(itemText);\n });\n compareWithText = compareWithText.join(' ');\n var wordsMatch = 0;\n for (var i = 0; i < values.length; i++) {\n if (compareWithText.indexOf(values[i]) >= 0) wordsMatch++;\n }\n if (wordsMatch !== values.length && !(s.params.ignore && el.is(s.params.ignore))) {\n el.addClass('hidden-by-searchbar');\n }\n else {\n foundItems.push(el[0]);\n }\n });\n \n if (s.params.hideDividers) {\n s.searchList.find('.item-divider, .list-group-title').each(function () {\n var title = $(this);\n var nextElements = title.nextAll('li');\n var hide = true;\n for (var i = 0; i < nextElements.length; i++) {\n var nextEl = $(nextElements[i]);\n if (nextEl.hasClass('list-group-title') || nextEl.hasClass('item-divider')) break;\n if (!nextEl.hasClass('hidden-by-searchbar')) {\n hide = false;\n }\n }\n var ignore = s.params.ignore && title.is(s.params.ignore);\n if (hide && !ignore) title.addClass('hidden-by-searchbar');\n else title.removeClass('hidden-by-searchbar');\n });\n }\n if (s.params.hideGroups) {\n s.searchList.find('.list-group').each(function () {\n var group = $(this);\n var ignore = s.params.ignore && group.is(s.params.ignore);\n var notHidden = group.find('li:not(.hidden-by-searchbar)');\n if (notHidden.length === 0 && !ignore) {\n group.addClass('hidden-by-searchbar');\n }\n else {\n group.removeClass('hidden-by-searchbar');\n }\n });\n }\n }\n s.triggerEvent('search', 'onSearch', {query: query, foundItems: foundItems});\n if (foundItems.length === 0) {\n s.notFound.show();\n s.found.hide();\n }\n else {\n s.notFound.hide();\n s.found.show();\n }\n if (s.isVirtualList) {\n virtualList.filterItems(foundItems);\n }\n };\n \n // Events\n function preventSubmit(e) {\n e.preventDefault();\n }\n \n s.attachEvents = function (destroy) {\n var method = destroy ? 'off' : 'on';\n s.container[method]('submit', preventSubmit);\n if (!s.material) s.cancelButton[method]('click', s.disable);\n s.overlay[method]('click', s.disable);\n s.input[method]('focus', s.enable);\n s.input[method]('change keydown keypress keyup', s.handleInput);\n s.clearButton[method]('click', s.clear);\n \n };\n s.detachEvents = function() {\n s.attachEvents(true);\n };\n \n // Init Destroy\n s.init = function () {\n s.attachEvents();\n };\n s.destroy = function () {\n if (!s) return;\n s.detachEvents();\n s = null;\n };\n \n // Init\n s.init();\n \n s.container[0].f7Searchbar = s;\n return s;\n \n };\n app.searchbar = function (container, params) {\n return new Searchbar(container, params);\n };\n app.initSearchbar = function (container) {\n container = $(container);\n var searchbar = container.hasClass('searchbar') ? container : container.find('.searchbar');\n if (searchbar.length === 0) return;\n if (!searchbar.hasClass('searchbar-init')) return;\n \n var sb = app.searchbar(searchbar, searchbar.dataset());\n \n function onBeforeRemove() {\n if (sb) sb.destroy();\n }\n if (container.hasClass('page')) {\n container.once('pageBeforeRemove', onBeforeRemove); \n }\n else if (container.hasClass('navbar-inner')) {\n container.once('navbarBeforeRemove', onBeforeRemove);\n }\n };\n\n /*======================================================\n ************ Messagebar ************\n ======================================================*/\n var Messagebar = function (container, params) {\n var defaults = {\n textarea: null,\n maxHeight: null,\n };\n params = params || {};\n for (var def in defaults) {\n if (typeof params[def] === 'undefined' || params[def] === null) {\n params[def] = defaults[def];\n }\n }\n \n // Instance\n var m = this;\n \n // Params\n m.params = params;\n \n // Container\n m.container = $(container);\n if (m.container.length === 0) return;\n \n // Textarea\n m.textarea = m.params.textarea ? $(m.params.textarea) : m.container.find('textarea');\n \n // Is In Page\n m.pageContainer = m.container.parents('.page').eq(0);\n m.pageContent = m.pageContainer.find('.page-content');\n \n // Initial Sizes\n m.pageContentPadding = parseInt(m.pageContent.css('padding-bottom'));\n m.initialBarHeight = m.container[0].offsetHeight;\n m.initialAreaHeight = m.textarea[0].offsetHeight;\n \n \n // Resize textarea\n m.sizeTextarea = function () {\n // Reset\n m.textarea.css({'height': ''});\n \n var height = m.textarea[0].offsetHeight;\n var diff = height - m.textarea[0].clientHeight;\n var scrollHeight = m.textarea[0].scrollHeight;\n \n // Update\n if (scrollHeight + diff > height) {\n var newAreaHeight = scrollHeight + diff;\n var newBarHeight = m.initialBarHeight + (newAreaHeight - m.initialAreaHeight);\n var maxBarHeight = m.params.maxHeight || m.container.parents('.view')[0].offsetHeight - 88;\n if (newBarHeight > maxBarHeight) {\n newBarHeight = parseInt(maxBarHeight, 10);\n newAreaHeight = newBarHeight - m.initialBarHeight + m.initialAreaHeight;\n }\n m.textarea.css('height', newAreaHeight + 'px');\n m.container.css('height', newBarHeight + 'px');\n var onBottom = (m.pageContent[0].scrollTop === m.pageContent[0].scrollHeight - m.pageContent[0].offsetHeight);\n if (m.pageContent.length > 0) {\n m.pageContent.css('padding-bottom', newBarHeight + 'px');\n if (m.pageContent.find('.messages-new-first').length === 0 && onBottom) {\n m.pageContent.scrollTop(m.pageContent[0].scrollHeight - m.pageContent[0].offsetHeight);\n }\n }\n }\n else {\n if (m.pageContent.length > 0) {\n m.container.css({'height': '', 'bottom': ''});\n m.pageContent.css({'padding-bottom': ''});\n }\n }\n };\n \n // Clear\n m.clear = function () {\n m.textarea.val('').trigger('change');\n };\n m.value = function (value) {\n if (typeof value === 'undefined') return m.textarea.val();\n else m.textarea.val(value).trigger('change'); \n };\n \n // Handle textarea\n m.textareaTimeout = undefined;\n m.handleTextarea = function (e) {\n clearTimeout(m.textareaTimeout);\n m.textareaTimeout = setTimeout(function () {\n m.sizeTextarea();\n }, 0);\n };\n \n //Events\n function preventSubmit(e) {\n e.preventDefault();\n }\n \n m.attachEvents = function (destroy) {\n var method = destroy ? 'off' : 'on';\n m.container[method]('submit', preventSubmit);\n m.textarea[method]('change keydown keypress keyup paste cut', m.handleTextarea);\n };\n m.detachEvents = function () {\n m.attachEvents(true);\n };\n \n // Init Destroy\n m.init = function () {\n m.attachEvents();\n };\n m.destroy = function () {\n m.detachEvents();\n m = null;\n };\n \n // Init\n m.init();\n \n m.container[0].f7Messagebar = m;\n return m;\n };\n app.messagebar = function (container, params) {\n return new Messagebar(container, params);\n };\n app.initPageMessagebar = function (pageContainer) {\n pageContainer = $(pageContainer);\n var messagebar = pageContainer.hasClass('messagebar') ? pageContainer : pageContainer.find('.messagebar');\n if (messagebar.length === 0) return;\n if (!messagebar.hasClass('messagebar-init')) return;\n var mb = app.messagebar(messagebar, messagebar.dataset());\n \n // Destroy on page remove\n function pageBeforeRemove() {\n mb.destroy();\n pageContainer.off('pageBeforeRemove', pageBeforeRemove);\n }\n if (pageContainer.hasClass('page')) {\n pageContainer.on('pageBeforeRemove', pageBeforeRemove);\n }\n };\n\n /*======================================================\n ************ XHR ************\n ======================================================*/\n // XHR Caching\n app.cache = [];\n app.removeFromCache = function (url) {\n var index = false;\n for (var i = 0; i < app.cache.length; i++) {\n if (app.cache[i].url === url) index = i;\n }\n if (index !== false) app.cache.splice(index, 1);\n };\n \n // XHR\n app.xhr = false;\n app.get = function (url, view, ignoreCache, callback) {\n // should we ignore get params or not\n var _url = url;\n if (app.params.cacheIgnoreGetParameters && url.indexOf('?') >= 0) {\n _url = url.split('?')[0];\n }\n if (app.params.cache && !ignoreCache && url.indexOf('nocache') < 0 && app.params.cacheIgnore.indexOf(_url) < 0) {\n // Check is the url cached\n for (var i = 0; i < app.cache.length; i++) {\n if (app.cache[i].url === _url) {\n // Check expiration\n if ((new Date()).getTime() - app.cache[i].time < app.params.cacheDuration) {\n // Load from cache\n callback(app.cache[i].content);\n return false;\n }\n }\n }\n }\n \n app.xhr = $.ajax({\n url: url,\n method: 'GET',\n beforeSend: app.params.onAjaxStart,\n complete: function (xhr) {\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) {\n if (app.params.cache) {\n app.removeFromCache(_url);\n app.cache.push({\n url: _url,\n time: (new Date()).getTime(),\n content: xhr.responseText\n });\n }\n callback(xhr.responseText, false);\n }\n else {\n callback(xhr.responseText, true);\n }\n if (app.params.onAjaxComplete) app.params.onAjaxComplete(xhr);\n },\n error: function (xhr) {\n callback(xhr.responseText, true);\n if (app.params.onAjaxError) app.params.onAjaxError(xhr);\n }\n });\n if (view) view.xhr = app.xhr;\n \n return app.xhr;\n };\n \n\n /*======================================================\n ************ Pages ************\n ======================================================*/\n // Page Callbacks API\n app.pageCallbacks = {};\n \n app.onPage = function (callbackName, pageName, callback) {\n if (pageName && pageName.split(' ').length > 1) {\n var pageNames = pageName.split(' ');\n var returnCallbacks = [];\n for (var i = 0; i < pageNames.length; i++) {\n returnCallbacks.push(app.onPage(callbackName, pageNames[i], callback));\n }\n returnCallbacks.remove = function () {\n for (var i = 0; i < returnCallbacks.length; i++) {\n returnCallbacks[i].remove();\n }\n };\n returnCallbacks.trigger = function () {\n for (var i = 0; i < returnCallbacks.length; i++) {\n returnCallbacks[i].trigger();\n }\n };\n return returnCallbacks;\n }\n var callbacks = app.pageCallbacks[callbackName][pageName];\n if (!callbacks) {\n callbacks = app.pageCallbacks[callbackName][pageName] = [];\n }\n app.pageCallbacks[callbackName][pageName].push(callback);\n return {\n remove: function () {\n var removeIndex;\n for (var i = 0; i < callbacks.length; i++) {\n if (callbacks[i].toString() === callback.toString()) {\n removeIndex = i;\n }\n }\n if (typeof removeIndex !== 'undefined') callbacks.splice(removeIndex, 1);\n },\n trigger: callback\n };\n };\n \n //Create callbacks methods dynamically\n function createPageCallback(callbackName) {\n var capitalized = callbackName.replace(/^./, function (match) {\n return match.toUpperCase();\n });\n app['onPage' + capitalized] = function (pageName, callback) {\n return app.onPage(callbackName, pageName, callback);\n };\n }\n \n var pageCallbacksNames = ('beforeInit init reinit beforeAnimation afterAnimation back afterBack beforeRemove').split(' ');\n for (var i = 0; i < pageCallbacksNames.length; i++) {\n app.pageCallbacks[pageCallbacksNames[i]] = {};\n createPageCallback(pageCallbacksNames[i]);\n }\n \n app.triggerPageCallbacks = function (callbackName, pageName, pageData) {\n var allPagesCallbacks = app.pageCallbacks[callbackName]['*'];\n if (allPagesCallbacks) {\n for (var j = 0; j < allPagesCallbacks.length; j++) {\n allPagesCallbacks[j](pageData);\n }\n }\n var callbacks = app.pageCallbacks[callbackName][pageName];\n if (!callbacks || callbacks.length === 0) return;\n for (var i = 0; i < callbacks.length; i++) {\n callbacks[i](pageData);\n }\n };\n \n // On Page Init Callback\n app.pageInitCallback = function (view, params) {\n var pageContainer = params.pageContainer;\n if (pageContainer.f7PageInitialized && view && !view.params.domCache) return;\n \n var pageQuery = params.query;\n if (!pageQuery) {\n if (params.url && params.url.indexOf('?') > 0) {\n pageQuery = $.parseUrlQuery(params.url || '');\n }\n else if (pageContainer.f7PageData && pageContainer.f7PageData.query) {\n pageQuery = pageContainer.f7PageData.query;\n }\n else {\n pageQuery = {};\n }\n }\n \n // Page Data\n var pageData = {\n container: pageContainer,\n url: params.url,\n query: pageQuery,\n name: $(pageContainer).attr('data-page'),\n view: view,\n from: params.position,\n context: params.context,\n navbarInnerContainer: params.navbarInnerContainer,\n fromPage: params.fromPage\n };\n if (params.fromPage && !params.fromPage.navbarInnerContainer && params.oldNavbarInnerContainer) {\n params.fromPage.navbarInnerContainer = params.oldNavbarInnerContainer;\n }\n \n if (pageContainer.f7PageInitialized && ((view && view.params.domCache) || (!view && $(pageContainer).parents('.popup, .popover, .login-screen, .modal, .actions-modal, .picker-modal').length > 0))) {\n // Reinit Page\n app.reinitPage(pageContainer);\n \n // Callbacks\n app.pluginHook('pageReinit', pageData);\n if (app.params.onPageReinit) app.params.onPageReinit(app, pageData);\n app.triggerPageCallbacks('reinit', pageData.name, pageData);\n $(pageData.container).trigger('pageReinit', {page: pageData});\n return;\n }\n pageContainer.f7PageInitialized = true;\n \n // Store pagedata in page\n pageContainer.f7PageData = pageData;\n \n // Update View's activePage\n if (view && !params.preloadOnly && !params.reloadPrevious) {\n // Add data-page on view\n $(view.container).attr('data-page', pageData.name);\n // Update View active page data\n view.activePage = pageData;\n }\n \n // Before Init Callbacks\n app.pluginHook('pageBeforeInit', pageData);\n if (app.params.onPageBeforeInit) app.params.onPageBeforeInit(app, pageData);\n app.triggerPageCallbacks('beforeInit', pageData.name, pageData);\n $(pageData.container).trigger('pageBeforeInit', {page: pageData});\n \n // Init page\n app.initPage(pageContainer);\n \n // Init Callback\n app.pluginHook('pageInit', pageData);\n if (app.params.onPageInit) app.params.onPageInit(app, pageData);\n app.triggerPageCallbacks('init', pageData.name, pageData);\n $(pageData.container).trigger('pageInit', {page: pageData});\n };\n app.pageRemoveCallback = function (view, pageContainer, position) {\n var pageContext;\n if (pageContainer.f7PageData) pageContext = pageContainer.f7PageData.context;\n // Page Data\n var pageData = {\n container: pageContainer,\n name: $(pageContainer).attr('data-page'),\n view: view,\n url: pageContainer.f7PageData && pageContainer.f7PageData.url,\n query: pageContainer.f7PageData && pageContainer.f7PageData.query,\n navbarInnerContainer: pageContainer.f7PageData && pageContainer.f7PageData.navbarInnerContainer,\n from: position,\n context: pageContext\n };\n // Before Init Callback\n app.pluginHook('pageBeforeRemove', pageData);\n if (app.params.onPageBeforeRemove) app.params.onPageBeforeRemove(app, pageData);\n app.triggerPageCallbacks('beforeRemove', pageData.name, pageData);\n $(pageData.container).trigger('pageBeforeRemove', {page: pageData});\n };\n app.pageBackCallback = function (callback, view, params) {\n // Page Data\n var pageContainer = params.pageContainer;\n var pageContext;\n if (pageContainer.f7PageData) pageContext = pageContainer.f7PageData.context;\n \n var pageData = {\n container: pageContainer,\n name: $(pageContainer).attr('data-page'),\n url: pageContainer.f7PageData && pageContainer.f7PageData.url,\n query: pageContainer.f7PageData && pageContainer.f7PageData.query,\n view: view,\n from: params.position,\n context: pageContext,\n navbarInnerContainer: pageContainer.f7PageData && pageContainer.f7PageData.navbarInnerContainer,\n swipeBack: params.swipeBack\n };\n \n if (callback === 'after') {\n app.pluginHook('pageAfterBack', pageData);\n if (app.params.onPageAfterBack) app.params.onPageAfterBack(app, pageData);\n app.triggerPageCallbacks('afterBack', pageData.name, pageData);\n $(pageContainer).trigger('pageAfterBack', {page: pageData});\n \n }\n if (callback === 'before') {\n app.pluginHook('pageBack', pageData);\n if (app.params.onPageBack) app.params.onPageBack(app, pageData);\n app.triggerPageCallbacks('back', pageData.name, pageData);\n $(pageData.container).trigger('pageBack', {page: pageData});\n }\n };\n app.pageAnimCallback = function (callback, view, params) {\n var pageContainer = params.pageContainer;\n var pageContext;\n if (pageContainer.f7PageData) pageContext = pageContainer.f7PageData.context;\n \n var pageQuery = params.query;\n if (!pageQuery) {\n if (params.url && params.url.indexOf('?') > 0) {\n pageQuery = $.parseUrlQuery(params.url || '');\n }\n else if (pageContainer.f7PageData && pageContainer.f7PageData.query) {\n pageQuery = pageContainer.f7PageData.query;\n }\n else {\n pageQuery = {};\n }\n }\n // Page Data\n var pageData = {\n container: pageContainer,\n url: params.url,\n query: pageQuery,\n name: $(pageContainer).attr('data-page'),\n view: view,\n from: params.position,\n context: pageContext,\n swipeBack: params.swipeBack,\n navbarInnerContainer: pageContainer.f7PageData && pageContainer.f7PageData.navbarInnerContainer,\n fromPage: params.fromPage\n };\n var oldPage = params.oldPage,\n newPage = params.newPage;\n \n // Update page date\n pageContainer.f7PageData = pageData;\n \n if (callback === 'after') {\n app.pluginHook('pageAfterAnimation', pageData);\n if (app.params.onPageAfterAnimation) app.params.onPageAfterAnimation(app, pageData);\n app.triggerPageCallbacks('afterAnimation', pageData.name, pageData);\n $(pageData.container).trigger('pageAfterAnimation', {page: pageData});\n \n }\n if (callback === 'before') {\n // Add data-page on view\n $(view.container).attr('data-page', pageData.name);\n \n // Update View's activePage\n if (view) view.activePage = pageData;\n \n // Hide/show navbar dynamically\n if (newPage.hasClass('no-navbar') && !oldPage.hasClass('no-navbar')) {\n view.hideNavbar();\n }\n if (!newPage.hasClass('no-navbar') && (oldPage.hasClass('no-navbar') || oldPage.hasClass('no-navbar-by-scroll'))) {\n view.showNavbar();\n }\n // Hide/show navbar toolbar\n if (newPage.hasClass('no-toolbar') && !oldPage.hasClass('no-toolbar')) {\n view.hideToolbar();\n }\n if (!newPage.hasClass('no-toolbar') && (oldPage.hasClass('no-toolbar') || oldPage.hasClass('no-toolbar-by-scroll'))) {\n view.showToolbar();\n }\n // Hide/show tabbar\n var tabBar;\n if (newPage.hasClass('no-tabbar') && !oldPage.hasClass('no-tabbar')) {\n tabBar = $(view.container).find('.tabbar');\n if (tabBar.length === 0) tabBar = $(view.container).parents('.' + app.params.viewsClass).find('.tabbar');\n app.hideToolbar(tabBar);\n }\n if (!newPage.hasClass('no-tabbar') && (oldPage.hasClass('no-tabbar') || oldPage.hasClass('no-tabbar-by-scroll'))) {\n tabBar = $(view.container).find('.tabbar');\n if (tabBar.length === 0) tabBar = $(view.container).parents('.' + app.params.viewsClass).find('.tabbar');\n app.showToolbar(tabBar);\n }\n \n oldPage.removeClass('no-navbar-by-scroll no-toolbar-by-scroll');\n // Callbacks\n app.pluginHook('pageBeforeAnimation', pageData);\n if (app.params.onPageBeforeAnimation) app.params.onPageBeforeAnimation(app, pageData);\n app.triggerPageCallbacks('beforeAnimation', pageData.name, pageData);\n $(pageData.container).trigger('pageBeforeAnimation', {page: pageData});\n }\n };\n \n // Init Page Events and Manipulations\n app.initPage = function (pageContainer) {\n pageContainer = $(pageContainer);\n if (pageContainer.length === 0) return;\n // Size navbars on page load\n if (app.sizeNavbars) app.sizeNavbars(pageContainer.parents('.' + app.params.viewClass)[0]);\n // Init messages\n if (app.initPageMessages) app.initPageMessages(pageContainer);\n // Init forms storage\n if (app.initFormsStorage) app.initFormsStorage(pageContainer);\n // Init smart select\n if (app.initSmartSelects) app.initSmartSelects(pageContainer);\n // Init slider\n if (app.initPageSwiper) app.initPageSwiper(pageContainer);\n // Init pull to refres\n if (app.initPullToRefresh) app.initPullToRefresh(pageContainer);\n // Init infinite scroll\n if (app.initPageInfiniteScroll) app.initPageInfiniteScroll(pageContainer);\n // Init searchbar\n if (app.initSearchbar) app.initSearchbar(pageContainer);\n // Init message bar\n if (app.initPageMessagebar) app.initPageMessagebar(pageContainer);\n // Init scroll toolbars\n if (app.initPageScrollToolbars) app.initPageScrollToolbars(pageContainer);\n // Init lazy images\n if (app.initImagesLazyLoad) app.initImagesLazyLoad(pageContainer);\n // Init progress bars\n if (app.initPageProgressbar) app.initPageProgressbar(pageContainer);\n // Init resizeable textareas\n if (app.initPageResizableTextarea) app.initPageResizableTextarea(pageContainer);\n // Init Material Preloader\n if (app.params.material && app.initPageMaterialPreloader) app.initPageMaterialPreloader(pageContainer);\n // Init Material Inputs\n if (app.params.material && app.initPageMaterialInputs) app.initPageMaterialInputs(pageContainer);\n // Init Material Tabbar\n if (app.params.material && app.initPageMaterialTabbar) app.initPageMaterialTabbar(pageContainer);\n };\n app.reinitPage = function (pageContainer) {\n pageContainer = $(pageContainer);\n if (pageContainer.length === 0) return;\n // Size navbars on page reinit\n if (app.sizeNavbars) app.sizeNavbars(pageContainer.parents('.' + app.params.viewClass)[0]);\n // Reinit slider\n if (app.reinitPageSwiper) app.reinitPageSwiper(pageContainer);\n // Reinit lazy load\n if (app.reinitLazyLoad) app.reinitLazyLoad(pageContainer);\n };\n app.initPageWithCallback = function (pageContainer) {\n pageContainer = $(pageContainer);\n var viewContainer = pageContainer.parents('.' + app.params.viewClass);\n if (viewContainer.length === 0) return;\n var view = viewContainer[0].f7View || undefined;\n var url = view && view.url ? view.url : undefined;\n if (viewContainer && pageContainer.attr('data-page')) {\n viewContainer.attr('data-page', pageContainer.attr('data-page'));\n }\n app.pageInitCallback(view, {pageContainer: pageContainer[0], url: url, position: 'center'});\n };\n\n /*======================================================\n ************ Navigation / Router ************\n ======================================================*/\n app.router = {\n // Temporary DOM Element\n temporaryDom: document.createElement('div'),\n \n // Find page or navbar in passed container which are related to View\n findElement: function (selector, container, view, notCached) {\n container = $(container);\n if (notCached) selector = selector + ':not(.cached)';\n var found = container.find(selector);\n if (found.length > 1) {\n if (typeof view.selector === 'string') {\n // Search in related view\n found = container.find(view.selector + ' ' + selector);\n }\n if (found.length > 1) {\n // Search in main view\n found = container.find('.' + app.params.viewMainClass + ' ' + selector);\n }\n }\n if (found.length === 1) return found;\n else {\n // Try to find non cached\n if (!notCached) found = app.router.findElement(selector, container, view, true);\n if (found && found.length === 1) return found;\n else return undefined;\n }\n },\n \n // Set pages classess for animationEnd\n animatePages: function (leftPage, rightPage, direction, view) {\n // Loading new page\n var removeClasses = 'page-on-center page-on-right page-on-left';\n if (direction === 'to-left') {\n leftPage.removeClass(removeClasses).addClass('page-from-center-to-left');\n rightPage.removeClass(removeClasses).addClass('page-from-right-to-center');\n }\n // Go back\n if (direction === 'to-right') {\n leftPage.removeClass(removeClasses).addClass('page-from-left-to-center');\n rightPage.removeClass(removeClasses).addClass('page-from-center-to-right');\n \n }\n },\n \n // Prepare navbar before animarion\n prepareNavbar: function (newNavbarInner, oldNavbarInner, newNavbarPosition) {\n $(newNavbarInner).find('.sliding').each(function () {\n var sliding = $(this);\n var slidingOffset = newNavbarPosition === 'right' ? this.f7NavbarRightOffset : this.f7NavbarLeftOffset;\n \n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && sliding.find('.back .icon').length > 0) {\n sliding.find('.back .icon').transform('translate3d(' + (-slidingOffset) + 'px,0,0)');\n }\n }\n sliding.transform('translate3d(' + slidingOffset + 'px,0,0)');\n });\n },\n \n // Set navbars classess for animation\n animateNavbars: function (leftNavbarInner, rightNavbarInner, direction, view) {\n // Loading new page\n var removeClasses = 'navbar-on-right navbar-on-center navbar-on-left';\n if (direction === 'to-left') {\n rightNavbarInner.removeClass(removeClasses).addClass('navbar-from-right-to-center');\n rightNavbarInner.find('.sliding').each(function () {\n var sliding = $(this);\n sliding.transform('translate3d(0px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && sliding.find('.back .icon').length > 0) {\n sliding.find('.back .icon').transform('translate3d(0px,0,0)');\n }\n }\n });\n \n leftNavbarInner.removeClass(removeClasses).addClass('navbar-from-center-to-left');\n leftNavbarInner.find('.sliding').each(function () {\n var sliding = $(this);\n var rightText;\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('center') && rightNavbarInner.find('.sliding.left .back .icon').length > 0) {\n rightText = rightNavbarInner.find('.sliding.left .back span');\n if (rightText.length > 0) this.f7NavbarLeftOffset += rightText[0].offsetLeft;\n }\n if (sliding.hasClass('left') && sliding.find('.back .icon').length > 0) {\n sliding.find('.back .icon').transform('translate3d(' + (-this.f7NavbarLeftOffset) + 'px,0,0)');\n }\n }\n sliding.transform('translate3d(' + (this.f7NavbarLeftOffset) + 'px,0,0)');\n });\n }\n // Go back\n if (direction === 'to-right') {\n leftNavbarInner.removeClass(removeClasses).addClass('navbar-from-left-to-center');\n leftNavbarInner.find('.sliding').each(function () {\n var sliding = $(this);\n sliding.transform('translate3d(0px,0,0)');\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && sliding.find('.back .icon').length > 0) {\n sliding.find('.back .icon').transform('translate3d(0px,0,0)');\n }\n }\n });\n \n rightNavbarInner.removeClass(removeClasses).addClass('navbar-from-center-to-right');\n rightNavbarInner.find('.sliding').each(function () {\n var sliding = $(this);\n if (app.params.animateNavBackIcon) {\n if (sliding.hasClass('left') && sliding.find('.back .icon').length > 0) {\n sliding.find('.back .icon').transform('translate3d(' + (-this.f7NavbarRightOffset) + 'px,0,0)');\n }\n }\n sliding.transform('translate3d(' + (this.f7NavbarRightOffset) + 'px,0,0)');\n });\n }\n },\n \n preprocess: function(view, content, url, next) {\n // Plugin hook\n app.pluginHook('routerPreprocess', view, content, url, next);\n \n // Preprocess by plugin\n content = app.pluginProcess('preprocess', content);\n \n if (view && view.params && view.params.preprocess) {\n content = view.params.preprocess(content, url, next);\n if (typeof content !== 'undefined') {\n next(content);\n }\n }\n else if (app.params.preprocess) {\n content = app.params.preprocess(content, url, next);\n if (typeof content !== 'undefined') {\n next(content);\n }\n }\n else {\n next(content);\n }\n },\n preroute: function(view, options) {\n app.pluginHook('routerPreroute', view, options);\n if ((app.params.preroute && app.params.preroute(view, options) === false) || (view && view.params.preroute && view.params.preroute(view, options) === false)) {\n return true;\n }\n else {\n return false;\n }\n },\n \n template7Render: function (view, options) {\n var url = options.url,\n content = options.content, //initial content\n t7_rendered_content = options.content, // will be rendered using Template7\n context = options.context, // Context data for Template7\n contextName = options.contextName,\n template = options.template, // Template 7 compiled template\n pageName = options.pageName;\n \n var t7_ctx, t7_template;\n if (typeof content === 'string') {\n if (url) {\n if (app.template7Cache[url] && !options.ignoreCache) t7_template = t7.cache[url];\n else {\n t7_template = t7.compile(content);\n t7.cache[url] = t7_template;\n }\n }\n else t7_template = t7.compile(content);\n }\n else if (template) {\n t7_template = template;\n }\n \n if (context) t7_ctx = context;\n else {\n if (contextName) {\n if (contextName.indexOf('.') >= 0) {\n var _ctx_path = contextName.split('.');\n var _ctx = t7.data[_ctx_path[0]];\n for (var i = 1; i < _ctx_path.length; i++) {\n if (_ctx_path[i]) _ctx = _ctx[_ctx_path[i]];\n }\n t7_ctx = _ctx;\n }\n else t7_ctx = t7.data[contextName];\n }\n if (!t7_ctx && url) {\n t7_ctx = t7.data['url:' + url];\n }\n if (!t7_ctx && typeof content === 'string' && !template) {\n //try to find by page name in content\n var pageNameMatch = content.match(/(data-page=[\"'][^\"^']*[\"'])/);\n if (pageNameMatch) {\n var page = pageNameMatch[0].split('data-page=')[1].replace(/['\"]/g, '');\n if (page) t7_ctx = t7.data['page:' + page];\n }\n }\n if (!t7_ctx && template && t7.templates) {\n // Try to find matched template name in t7.templates\n for (var templateName in t7.templates) {\n if (t7.templates[templateName] === template) t7_ctx = t7.data[templateName];\n }\n }\n if (!t7_ctx) t7_ctx = {};\n }\n \n if (t7_template && t7_ctx) {\n if (typeof t7_ctx === 'function') t7_ctx = t7_ctx();\n if (url) {\n // Extend data with URL query\n var query = $.parseUrlQuery(url);\n t7_ctx.url_query = {};\n for (var key in query) {\n t7_ctx.url_query[key] = query[key];\n }\n }\n t7_rendered_content = t7_template(t7_ctx);\n }\n \n return {content: t7_rendered_content, context: t7_ctx};\n }\n };\n \n \n app.router._load = function (view, options) {\n options = options || {};\n \n var url = options.url,\n content = options.content, //initial content\n t7_rendered = {content: options.content},\n template = options.template, // Template 7 compiled template\n pageName = options.pageName,\n viewContainer = $(view.container),\n pagesContainer = $(view.pagesContainer),\n animatePages = options.animatePages,\n newPage, oldPage, pagesInView, i, oldNavbarInner, newNavbarInner, navbar, dynamicNavbar, reloadPosition,\n isDynamicPage = typeof url === 'undefined' && content || template,\n pushState = options.pushState;\n \n if (typeof animatePages === 'undefined') animatePages = view.params.animatePages;\n \n // Plugin hook\n app.pluginHook('routerLoad', view, options);\n \n // Render with Template7\n if (app.params.template7Pages && typeof content === 'string' || template) {\n t7_rendered = app.router.template7Render(view, options);\n if (t7_rendered.content && !content) {\n content = t7_rendered.content;\n }\n }\n \n app.router.temporaryDom.innerHTML = '';\n \n // Parse DOM\n if (!pageName) {\n if ((typeof content === 'string') || (url && (typeof content === 'string'))) {\n app.router.temporaryDom.innerHTML = t7_rendered.content;\n } else {\n if ('length' in content && content.length > 1) {\n for (var ci = 0; ci < content.length; ci++) {\n $(app.router.temporaryDom).append(content[ci]);\n }\n } else {\n $(app.router.temporaryDom).append(content);\n }\n }\n }\n \n // Reload position\n reloadPosition = options.reload && (options.reloadPrevious ? 'left' : 'center');\n \n // Find new page\n if (pageName) newPage = pagesContainer.find('.page[data-page=\"' + pageName + '\"]');\n else {\n newPage = app.router.findElement('.page', app.router.temporaryDom, view);\n }\n \n // If page not found exit\n if (!newPage || newPage.length === 0 || (pageName && view.activePage && view.activePage.name === pageName)) {\n view.allowPageChange = true;\n return;\n }\n \n newPage.addClass(options.reload ? 'page-on-' + reloadPosition : 'page-on-right');\n \n // Find old page (should be the last one) and remove older pages\n pagesInView = pagesContainer.children('.page:not(.cached)');\n \n if (options.reload && options.reloadPrevious && pagesInView.length === 1) {\n view.allowPageChange = true;\n return;\n }\n \n if (options.reload) {\n oldPage = pagesInView.eq(pagesInView.length - 1);\n }\n else {\n if (pagesInView.length > 1) {\n for (i = 0; i < pagesInView.length - 2; i++) {\n if (!view.params.domCache) {\n app.pageRemoveCallback(view, pagesInView[i], 'left');\n $(pagesInView[i]).remove();\n }\n else {\n $(pagesInView[i]).addClass('cached');\n }\n }\n if (!view.params.domCache) {\n app.pageRemoveCallback(view, pagesInView[i], 'left');\n $(pagesInView[i]).remove();\n }\n else {\n $(pagesInView[i]).addClass('cached');\n }\n }\n oldPage = pagesContainer.children('.page:not(.cached)');\n }\n if(view.params.domCache) newPage.removeClass('cached');\n \n // Dynamic navbar\n if (view.params.dynamicNavbar) {\n dynamicNavbar = true;\n // Find navbar\n if (pageName) {\n newNavbarInner = viewContainer.find('.navbar-inner[data-page=\"' + pageName + '\"]');\n }\n else {\n newNavbarInner = app.router.findElement('.navbar-inner', app.router.temporaryDom, view);\n }\n if (!newNavbarInner || newNavbarInner.length === 0) {\n dynamicNavbar = false;\n }\n navbar = viewContainer.find('.navbar');\n if (options.reload) {\n oldNavbarInner = navbar.find('.navbar-inner:not(.cached):last-child');\n }\n else {\n oldNavbarInner = navbar.find('.navbar-inner:not(.cached)');\n \n if (oldNavbarInner.length > 0) {\n for (i = 0; i < oldNavbarInner.length - 1; i++) {\n if (!view.params.domCache) {\n app.navbarRemoveCallback(view, pagesInView[i], navbar[0], oldNavbarInner[i]);\n $(oldNavbarInner[i]).remove();\n }\n else\n $(oldNavbarInner[i]).addClass('cached');\n }\n if (!newNavbarInner && oldNavbarInner.length === 1) {\n if (!view.params.domCache) {\n app.navbarRemoveCallback(view, pagesInView[0], navbar[0], oldNavbarInner[0]);\n $(oldNavbarInner[0]).remove();\n }\n else\n $(oldNavbarInner[0]).addClass('cached');\n }\n oldNavbarInner = navbar.find('.navbar-inner:not(.cached)');\n }\n }\n }\n if (dynamicNavbar) {\n newNavbarInner.addClass(options.reload ? 'navbar-on-' + reloadPosition : 'navbar-on-right');\n if(view.params.domCache) newNavbarInner.removeClass('cached');\n newPage[0].f7RelatedNavbar = newNavbarInner[0];\n newNavbarInner[0].f7RelatedPage = newPage[0];\n }\n \n // save content areas into view's cache\n if (!url) {\n var newPageName = pageName || newPage.attr('data-page');\n if (isDynamicPage) url = '#' + app.params.dynamicPageUrl.replace(/{{name}}/g, newPageName).replace(/{{index}}/g, view.history.length - (options.reload ? 1 : 0));\n else url = '#' + newPageName;\n if (!view.params.domCache) {\n view.contentCache[url] = content;\n }\n if (view.params.domCache && pageName) {\n view.pagesCache[url] = pageName;\n }\n }\n \n // Push State\n if (app.params.pushState && !options.reloadPrevious && view.main) {\n if (typeof pushState === 'undefined') pushState = true;\n var pushStateRoot = app.params.pushStateRoot || '';\n var method = options.reload ? 'replaceState' : 'pushState';\n if (pushState) {\n if (!isDynamicPage && !pageName) {\n history[method]({url: url, viewIndex: app.views.indexOf(view)}, '', pushStateRoot + app.params.pushStateSeparator + url);\n }\n else if (isDynamicPage && content) {\n history[method]({content: typeof content === 'string' ? content : '', url: url, viewIndex: app.views.indexOf(view)}, '', pushStateRoot + app.params.pushStateSeparator + url);\n }\n else if (pageName) {\n history[method]({pageName: pageName, url: url, viewIndex: app.views.indexOf(view)}, '', pushStateRoot + app.params.pushStateSeparator + url);\n }\n }\n }\n \n // Update View history\n view.url = url;\n if (options.reload) {\n var lastUrl = view.history[view.history.length - (options.reloadPrevious ? 2 : 1)];\n if (lastUrl &&\n lastUrl.indexOf('#') === 0 &&\n lastUrl in view.contentCache &&\n lastUrl !== url &&\n view.history.indexOf(lastUrl) === -1) {\n view.contentCache[lastUrl] = null;\n delete view.contentCache[lastUrl];\n }\n view.history[view.history.length - (options.reloadPrevious ? 2 : 1)] = url;\n }\n else {\n view.history.push(url);\n }\n \n // Unique history\n var historyBecameUnique = false;\n if (view.params.uniqueHistory) {\n var _history = view.history;\n var _url = url;\n if (view.params.uniqueHistoryIgnoreGetParameters) {\n _history = [];\n _url = url.split('?')[0];\n for (i = 0; i < view.history.length; i++) {\n _history.push(view.history[i].split('?')[0]);\n }\n }\n \n if (_history.indexOf(_url) !== _history.lastIndexOf(_url)) {\n view.history = view.history.slice(0, _history.indexOf(_url));\n view.history.push(url);\n historyBecameUnique = true;\n }\n }\n // Dom manipulations\n if (options.reloadPrevious) {\n oldPage = oldPage.prev('.page');\n newPage.insertBefore(oldPage);\n if (dynamicNavbar) {\n oldNavbarInner = oldNavbarInner.prev('.navbar-inner');\n newNavbarInner.insertAfter(oldNavbarInner);\n }\n }\n else {\n pagesContainer.append(newPage[0]);\n if (dynamicNavbar) navbar.append(newNavbarInner[0]);\n }\n // Remove Old Page And Navbar\n if (options.reload) {\n if (view.params.domCache && view.initialPages.indexOf(oldPage[0]) >= 0) {\n oldPage.addClass('cached');\n if (dynamicNavbar) oldNavbarInner.addClass('cached');\n }\n else {\n app.pageRemoveCallback(view, oldPage[0], reloadPosition);\n if (dynamicNavbar) app.navbarRemoveCallback(view, oldPage[0], navbar[0], oldNavbarInner[0]);\n oldPage.remove();\n if (dynamicNavbar) oldNavbarInner.remove();\n }\n }\n \n // Page Init Events\n app.pageInitCallback(view, {\n pageContainer: newPage[0],\n url: url,\n position: options.reload ? reloadPosition : 'right',\n navbarInnerContainer: dynamicNavbar ? newNavbarInner && newNavbarInner[0] : undefined,\n oldNavbarInnerContainer: dynamicNavbar ? oldNavbarInner && oldNavbarInner[0] : undefined,\n context: t7_rendered.context,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData,\n reload: options.reload,\n reloadPrevious: options.reloadPrevious\n });\n \n // Navbar init event\n if (dynamicNavbar) {\n app.navbarInitCallback(view, newPage[0], navbar[0], newNavbarInner[0], url, options.reload ? reloadPosition : 'right');\n }\n \n if (options.reload) {\n view.allowPageChange = true;\n if (historyBecameUnique) view.refreshPreviousPage();\n return;\n }\n \n if (dynamicNavbar && animatePages) {\n app.router.prepareNavbar(newNavbarInner, oldNavbarInner, 'right');\n }\n // Force reLayout\n var clientLeft = newPage[0].clientLeft;\n \n // Before Anim Callback\n app.pageAnimCallback('before', view, {\n pageContainer: newPage[0],\n url: url,\n position: 'right',\n oldPage: oldPage,\n newPage: newPage,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData\n });\n \n function afterAnimation() {\n view.allowPageChange = true;\n newPage.removeClass('page-from-right-to-center page-on-right page-on-left').addClass('page-on-center');\n oldPage.removeClass('page-from-center-to-left page-on-center page-on-right').addClass('page-on-left');\n if (dynamicNavbar) {\n newNavbarInner.removeClass('navbar-from-right-to-center navbar-on-left navbar-on-right').addClass('navbar-on-center');\n oldNavbarInner.removeClass('navbar-from-center-to-left navbar-on-center navbar-on-right').addClass('navbar-on-left');\n }\n app.pageAnimCallback('after', view, {\n pageContainer: newPage[0],\n url: url,\n position: 'right',\n oldPage: oldPage,\n newPage: newPage,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData\n });\n if (app.params.pushState && view.main) app.pushStateClearQueue();\n if (!(view.params.swipeBackPage || view.params.preloadPreviousPage)) {\n if (view.params.domCache) {\n oldPage.addClass('cached');\n if (dynamicNavbar) oldNavbarInner.addClass('cached');\n }\n else {\n if (!(url.indexOf('#') === 0 && newPage.attr('data-page').indexOf('smart-select-') === 0)) {\n app.pageRemoveCallback(view, oldPage[0], 'left');\n if (dynamicNavbar) app.navbarRemoveCallback(view, oldPage[0], navbar[0], oldNavbarInner[0]);\n oldPage.remove();\n if (dynamicNavbar) oldNavbarInner.remove();\n }\n }\n }\n if (view.params.uniqueHistory && historyBecameUnique) {\n view.refreshPreviousPage();\n }\n }\n if (animatePages) {\n // Set pages before animation\n if (app.params.material && app.params.materialPageLoadDelay) {\n setTimeout(function () {\n app.router.animatePages(oldPage, newPage, 'to-left', view);\n }, app.params.materialPageLoadDelay);\n }\n else {\n app.router.animatePages(oldPage, newPage, 'to-left', view);\n }\n \n // Dynamic navbar animation\n if (dynamicNavbar) {\n setTimeout(function() {\n app.router.animateNavbars(oldNavbarInner, newNavbarInner, 'to-left', view);\n }, 0);\n }\n newPage.animationEnd(function (e) {\n afterAnimation();\n });\n }\n else {\n if (dynamicNavbar) newNavbarInner.find('.sliding, .sliding .back .icon').transform('');\n afterAnimation();\n }\n \n };\n \n app.router.load = function (view, options) {\n if (app.router.preroute(view, options)) {\n return false;\n }\n options = options || {};\n var url = options.url;\n var content = options.content;\n var pageName = options.pageName;\n if (pageName) {\n if (pageName.indexOf('?') > 0) {\n options.query = $.parseUrlQuery(pageName);\n options.pageName = pageName = pageName.split('?')[0];\n }\n }\n var template = options.template;\n if (view.params.reloadPages === true) options.reload = true;\n \n if (!view.allowPageChange) return false;\n if (url && view.url === url && !options.reload && !view.params.allowDuplicateUrls) return false;\n view.allowPageChange = false;\n if (app.xhr && view.xhr && view.xhr === app.xhr) {\n app.xhr.abort();\n app.xhr = false;\n }\n function proceed(content) {\n app.router.preprocess(view, content, url, function (content) {\n options.content = content;\n app.router._load(view, options);\n });\n }\n if (content || pageName) {\n proceed(content);\n return;\n }\n else if (template) {\n app.router._load(view, options);\n return;\n }\n \n if (!options.url || options.url === '#') {\n view.allowPageChange = true;\n return;\n }\n app.get(options.url, view, options.ignoreCache, function (content, error) {\n if (error) {\n view.allowPageChange = true;\n return;\n }\n proceed(content);\n });\n };\n \n app.router._back = function (view, options) {\n options = options || {};\n var url = options.url,\n content = options.content,\n t7_rendered = {content: options.content}, // will be rendered using Template7\n template = options.template, // Template 7 compiled template\n animatePages = options.animatePages,\n preloadOnly = options.preloadOnly,\n pushState = options.pushState,\n ignoreCache = options.ignoreCache,\n force = options.force,\n pageName = options.pageName;\n \n var viewContainer = $(view.container),\n pagesContainer = $(view.pagesContainer),\n pagesInView = pagesContainer.children('.page:not(.cached)'),\n oldPage, newPage, oldNavbarInner, newNavbarInner, navbar, navbarInners, dynamicNavbar, manipulateDom = true;\n \n if (typeof animatePages === 'undefined') animatePages = view.params.animatePages;\n \n app.pluginHook('routerBack', view, options);\n \n // Render with Template7\n if (app.params.template7Pages && typeof content === 'string' || template) {\n t7_rendered = app.router.template7Render(view, options);\n if (t7_rendered.content && !content) {\n content = t7_rendered.content;\n }\n }\n \n // Animation\n function afterAnimation() {\n app.pageBackCallback('after', view, {\n pageContainer: oldPage[0],\n url: url,\n position: 'center',\n oldPage: oldPage,\n newPage: newPage,\n });\n app.pageAnimCallback('after', view, {\n pageContainer: newPage[0],\n url: url,\n position: 'left',\n oldPage: oldPage,\n newPage: newPage,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData\n });\n app.router.afterBack(view, oldPage[0], newPage[0]);\n }\n function animateBack() {\n // Page before animation callback\n app.pageBackCallback('before', view, {\n pageContainer: oldPage[0],\n url: url,\n position: 'center',\n oldPage: oldPage,\n newPage: newPage,\n });\n app.pageAnimCallback('before', view, {\n pageContainer: newPage[0],\n url: url,\n position: 'left',\n oldPage: oldPage,\n newPage: newPage,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData\n });\n \n if (animatePages) {\n // Set pages before animation\n app.router.animatePages(newPage, oldPage, 'to-right', view);\n \n // Dynamic navbar animation\n if (dynamicNavbar) {\n setTimeout(function () {\n app.router.animateNavbars(newNavbarInner, oldNavbarInner, 'to-right', view);\n }, 0);\n }\n \n newPage.animationEnd(function () {\n afterAnimation();\n });\n }\n else {\n if (dynamicNavbar) newNavbarInner.find('.sliding, .sliding .back .icon').transform('');\n afterAnimation();\n }\n }\n \n function parseNewPage() {\n app.router.temporaryDom.innerHTML = '';\n // Parse DOM\n if ((typeof content === 'string') || (url && (typeof content === 'string'))) {\n app.router.temporaryDom.innerHTML = t7_rendered.content;\n } else {\n if ('length' in content && content.length > 1) {\n for (var ci = 0; ci < content.length; ci++) {\n $(app.router.temporaryDom).append(content[ci]);\n }\n } else {\n $(app.router.temporaryDom).append(content);\n }\n }\n newPage = app.router.findElement('.page', app.router.temporaryDom, view);\n \n if (view.params.dynamicNavbar) {\n // Find navbar\n newNavbarInner = app.router.findElement('.navbar-inner', app.router.temporaryDom, view);\n }\n }\n function setPages() {\n // If pages not found or there are still more than one, exit\n if (!newPage || newPage.length === 0) {\n view.allowPageChange = true;\n return;\n }\n if (view.params.dynamicNavbar && typeof dynamicNavbar === 'undefined') {\n if (!newNavbarInner || newNavbarInner.length === 0) {\n dynamicNavbar = false;\n }\n else {\n dynamicNavbar = true;\n }\n }\n \n newPage.addClass('page-on-left').removeClass('cached');\n if (dynamicNavbar) {\n navbar = viewContainer.find('.navbar');\n navbarInners = viewContainer.find('.navbar-inner:not(.cached)');\n newNavbarInner.addClass('navbar-on-left').removeClass('cached');\n }\n // Remove/hide previous page in force mode\n if (force) {\n var pageToRemove, navbarToRemove;\n pageToRemove = $(pagesInView[pagesInView.length - 2]);\n \n if (dynamicNavbar) navbarToRemove = $(pageToRemove[0] && pageToRemove[0].f7RelatedNavbar || navbarInners[navbarInners.length - 2]);\n if (view.params.domCache && view.initialPages.indexOf(pageToRemove[0]) >= 0) {\n if (pageToRemove.length && pageToRemove[0] !== newPage[0]) pageToRemove.addClass('cached');\n if (dynamicNavbar && navbarToRemove.length && navbarToRemove[0] !== newNavbarInner[0]) {\n navbarToRemove.addClass('cached');\n }\n }\n else {\n var removeNavbar = dynamicNavbar && navbarToRemove.length;\n if (pageToRemove.length) {\n app.pageRemoveCallback(view, pageToRemove[0], 'right');\n if (removeNavbar) {\n app.navbarRemoveCallback(view, pageToRemove[0], navbar[0], navbarToRemove[0]);\n }\n pageToRemove.remove();\n if (removeNavbar) navbarToRemove.remove();\n }\n else if (removeNavbar) {\n app.navbarRemoveCallback(view, pageToRemove[0], navbar[0], navbarToRemove[0]);\n navbarToRemove.remove();\n }\n }\n pagesInView = pagesContainer.children('.page:not(.cached)');\n if (dynamicNavbar) {\n navbarInners = viewContainer.find('.navbar-inner:not(.cached)');\n }\n if (view.history.indexOf(url) >= 0) {\n view.history = view.history.slice(0, view.history.indexOf(url) + 2);\n }\n else {\n if (view.history[[view.history.length - 2]]) {\n view.history[view.history.length - 2] = url;\n }\n else {\n view.history.unshift(url);\n }\n }\n }\n \n oldPage = $(pagesInView[pagesInView.length - 1]);\n if (view.params.domCache) {\n if (oldPage[0] === newPage[0]) {\n oldPage = pagesContainer.children('.page.page-on-center');\n if (oldPage.length === 0 && view.activePage) oldPage = $(view.activePage.container);\n }\n }\n \n if (dynamicNavbar && !oldNavbarInner) {\n oldNavbarInner = $(navbarInners[navbarInners.length - 1]);\n if (view.params.domCache) {\n if (oldNavbarInner[0] === newNavbarInner[0]) {\n oldNavbarInner = navbar.children('.navbar-inner.navbar-on-center:not(.cached)');\n }\n if (oldNavbarInner.length === 0) {\n oldNavbarInner = navbar.children('.navbar-inner[data-page=\"'+oldPage.attr('data-page')+'\"]');\n }\n }\n if (oldNavbarInner.length === 0 || newNavbarInner[0] === oldNavbarInner[0]) dynamicNavbar = false;\n }\n \n if (dynamicNavbar) {\n if (manipulateDom) newNavbarInner.insertBefore(oldNavbarInner);\n newNavbarInner[0].f7RelatedPage = newPage[0];\n newPage[0].f7RelatedNavbar = newNavbarInner[0];\n }\n if (manipulateDom) newPage.insertBefore(oldPage);\n \n // Page Init Events\n app.pageInitCallback(view, {\n pageContainer: newPage[0],\n url: url,\n position: 'left',\n navbarInnerContainer: dynamicNavbar ? newNavbarInner[0] : undefined,\n oldNavbarInnerContainer: dynamicNavbar ? oldNavbarInner && oldNavbarInner[0] : undefined,\n context: t7_rendered.context,\n query: options.query,\n fromPage: oldPage && oldPage.length && oldPage[0].f7PageData,\n preloadOnly: preloadOnly\n });\n if (dynamicNavbar) {\n app.navbarInitCallback(view, newPage[0], navbar[0], newNavbarInner[0], url, 'right');\n }\n \n if (dynamicNavbar && newNavbarInner.hasClass('navbar-on-left') && animatePages) {\n app.router.prepareNavbar(newNavbarInner, oldNavbarInner, 'left');\n }\n \n if (preloadOnly) {\n view.allowPageChange = true;\n return;\n }\n \n // Update View's URL\n view.url = url;\n \n // Force reLayout\n var clientLeft = newPage[0].clientLeft;\n \n animateBack();\n \n // Push state\n if (app.params.pushState && view.main) {\n if (typeof pushState === 'undefined') pushState = true;\n if (!preloadOnly && history.state && pushState) {\n history.back();\n }\n }\n return;\n }\n \n // Simple go back when we have pages on left\n if (pagesInView.length > 1 && !force) {\n // Exit if only preloadOnly\n if (preloadOnly) {\n view.allowPageChange = true;\n return;\n }\n // Update View's URL\n view.url = view.history[view.history.length - 2];\n url = view.url;\n \n // Define old and new pages\n newPage = $(pagesInView[pagesInView.length - 2]);\n oldPage = $(pagesInView[pagesInView.length - 1]);\n \n // Dynamic navbar\n if (view.params.dynamicNavbar) {\n dynamicNavbar = true;\n // Find navbar\n navbarInners = viewContainer.find('.navbar-inner:not(.cached)');\n newNavbarInner = $(navbarInners[0]);\n oldNavbarInner = $(navbarInners[1]);\n if (newNavbarInner.length === 0 || oldNavbarInner.length === 0 || oldNavbarInner[0] === newNavbarInner[0]) {\n dynamicNavbar = false;\n }\n }\n manipulateDom = false;\n setPages();\n return;\n }\n \n if (!force) {\n // Go back when there is no pages on left\n if (!preloadOnly) {\n view.url = view.history[view.history.length - 2];\n url = view.url;\n }\n \n if (content) {\n parseNewPage();\n setPages();\n return;\n }\n else if (pageName) {\n // Get dom cached pages\n newPage = $(viewContainer).find('.page[data-page=\"' + pageName + '\"]');\n if (view.params.dynamicNavbar) {\n newNavbarInner = $(viewContainer).find('.navbar-inner[data-page=\"' + pageName + '\"]');\n if (newNavbarInner.length === 0 && newPage[0].f7RelatedNavbar) {\n newNavbarInner = $(newPage[0].f7RelatedNavbar);\n }\n if (newNavbarInner.length === 0 && newPage[0].f7PageData) {\n newNavbarInner = $(newPage[0].f7PageData.navbarInnerContainer);\n }\n }\n setPages();\n return;\n }\n else {\n view.allowPageChange = true;\n return;\n }\n }\n else {\n if (url && url === view.url || pageName && view.activePage && view.activePage.name === pageName) {\n view.allowPageChange = true;\n return;\n }\n // Go back with force url\n if (content) {\n parseNewPage();\n setPages();\n return;\n }\n else if (pageName && view.params.domCache) {\n if (pageName) url = '#' + pageName;\n \n newPage = $(viewContainer).find('.page[data-page=\"' + pageName + '\"]');\n if (newPage[0].f7PageData && newPage[0].f7PageData.url) {\n url = newPage[0].f7PageData.url;\n }\n if (view.params.dynamicNavbar) {\n newNavbarInner = $(viewContainer).find('.navbar-inner[data-page=\"' + pageName + '\"]');\n if (newNavbarInner.length === 0 && newPage[0].f7RelatedNavbar) {\n newNavbarInner = $(newPage[0].f7RelatedNavbar);\n }\n if (newNavbarInner.length === 0 && newPage[0].f7PageData) {\n newNavbarInner = $(newPage[0].f7PageData.navbarInnerContainer);\n }\n }\n setPages();\n return;\n }\n else {\n view.allowPageChange = true;\n return;\n }\n }\n \n };\n app.router.back = function (view, options) {\n if (app.router.preroute(view, options)) {\n return false;\n }\n options = options || {};\n var url = options.url;\n var content = options.content;\n var pageName = options.pageName;\n if (pageName) {\n if (pageName.indexOf('?') > 0) {\n options.query = $.parseUrlQuery(pageName);\n options.pageName = pageName = pageName.split('?')[0];\n }\n }\n var force = options.force;\n if (!view.allowPageChange) return false;\n view.allowPageChange = false;\n if (app.xhr && view.xhr && view.xhr === app.xhr) {\n app.xhr.abort();\n app.xhr = false;\n }\n var pagesInView = $(view.pagesContainer).find('.page:not(.cached)');\n \n function proceed(content) {\n app.router.preprocess(view, content, url, function (content) {\n options.content = content;\n app.router._back(view, options);\n });\n }\n if (pagesInView.length > 1 && !force) {\n // Simple go back to previos page in view\n app.router._back(view, options);\n return;\n }\n if (!force) {\n url = options.url = view.history[view.history.length - 2];\n if (!url) {\n view.allowPageChange = true;\n return;\n }\n if (url.indexOf('#') === 0 && view.contentCache[url]) {\n proceed(view.contentCache[url]);\n return;\n }\n else if (url.indexOf('#') === 0 && view.params.domCache) {\n if (!pageName) options.pageName = url.split('#')[1];\n proceed();\n return;\n }\n else if (url.indexOf('#') !== 0) {\n // Load ajax page\n app.get(options.url, view, options.ignoreCache, function (content, error) {\n if (error) {\n view.allowPageChange = true;\n return;\n }\n proceed(content);\n });\n return;\n }\n }\n else {\n // Go back with force url\n if (!url && content) {\n proceed(content);\n return;\n }\n else if (!url && pageName) {\n if (pageName) url = '#' + pageName;\n proceed();\n return;\n }\n else if (url) {\n app.get(options.url, view, options.ignoreCache, function (content, error) {\n if (error) {\n view.allowPageChange = true;\n return;\n }\n proceed(content);\n });\n return;\n }\n }\n view.allowPageChange = true;\n return;\n };\n \n app.router.afterBack = function (view, oldPage, newPage) {\n // Remove old page and set classes on new one\n oldPage = $(oldPage);\n newPage = $(newPage);\n \n if (view.params.domCache && view.initialPages.indexOf(oldPage[0]) >= 0) {\n oldPage.removeClass('page-from-center-to-right').addClass('cached');\n }\n else {\n app.pageRemoveCallback(view, oldPage[0], 'right');\n oldPage.remove();\n }\n \n newPage.removeClass('page-from-left-to-center page-on-left').addClass('page-on-center');\n view.allowPageChange = true;\n \n // Update View's History\n var previousURL = view.history.pop();\n \n var newNavbar;\n \n // Updated dynamic navbar\n if (view.params.dynamicNavbar) {\n var inners = $(view.container).find('.navbar-inner:not(.cached)');\n var oldNavbar = $(oldPage[0].f7RelatedNavbar || inners[1]);\n if (view.params.domCache && view.initialNavbars.indexOf(oldNavbar[0]) >= 0) {\n oldNavbar.removeClass('navbar-from-center-to-right').addClass('cached');\n }\n else {\n app.navbarRemoveCallback(view, oldPage[0], undefined, oldNavbar[0]);\n oldNavbar.remove();\n }\n newNavbar = $(inners[0]).removeClass('navbar-on-left navbar-from-left-to-center').addClass('navbar-on-center');\n }\n \n // Remove pages in dom cache\n if (view.params.domCache) {\n $(view.container).find('.page.cached').each(function () {\n var page = $(this);\n var index = page.index();\n var pageUrl = page[0].f7PageData && page[0].f7PageData.url;\n if (pageUrl && view.history.indexOf(pageUrl) < 0 && view.initialPages.indexOf(this) < 0) {\n app.pageRemoveCallback(view, page[0], 'right');\n if (page[0].f7RelatedNavbar && view.params.dynamicNavbar) app.navbarRemoveCallback(view, page[0], undefined, page[0].f7RelatedNavbar);\n page.remove();\n if (page[0].f7RelatedNavbar && view.params.dynamicNavbar) $(page[0].f7RelatedNavbar).remove();\n }\n });\n }\n \n // Check previous page is content based only and remove it from content cache\n if (!view.params.domCache &&\n previousURL &&\n previousURL.indexOf('#') > -1 &&\n (previousURL in view.contentCache) &&\n // If the same page is in the history multiple times, don't remove it.\n view.history.indexOf(previousURL) === -1) {\n view.contentCache[previousURL] = null;\n delete view.contentCache[previousURL];\n }\n \n if (app.params.pushState && view.main) app.pushStateClearQueue();\n \n // Preload previous page\n if (view.params.preloadPreviousPage) {\n if (view.params.domCache && view.history.length > 1) {\n var preloadUrl = view.history[view.history.length - 2];\n var previousPage;\n var previousNavbar;\n if (preloadUrl && view.pagesCache[preloadUrl]) {\n // Load by page name\n previousPage = $(view.container).find('.page[data-page=\"' + view.pagesCache[preloadUrl] + '\"]');\n if (previousPage.next('.page')[0] !== newPage[0]) previousPage.insertBefore(newPage);\n if (newNavbar) {\n previousNavbar = $(view.container).find('.navbar-inner[data-page=\"' + view.pagesCache[preloadUrl] + '\"]');\n if(!previousNavbar || previousNavbar.length === 0) previousNavbar = newNavbar.prev('.navbar-inner.cached');\n if (previousNavbar.next('.navbar-inner')[0] !== newNavbar[0]) previousNavbar.insertBefore(newNavbar);\n }\n }\n else {\n // Just load previous page\n previousPage = newPage.prev('.page.cached');\n if (newNavbar) previousNavbar = newNavbar.prev('.navbar-inner.cached');\n }\n if (previousPage && previousPage.length > 0) previousPage.removeClass('cached page-on-right page-on-center').addClass('page-on-left');\n if (previousNavbar && previousNavbar.length > 0) previousNavbar.removeClass('cached navbar-on-right navbar-on-center').addClass('navbar-on-left');\n }\n else {\n app.router.back(view, {preloadOnly: true});\n }\n }\n };\n \n\n /*======================================================\n ************ Modals ************\n ======================================================*/\n var _modalTemplateTempDiv = document.createElement('div');\n app.modalStack = [];\n app.modalStackClearQueue = function () {\n if (app.modalStack.length) {\n (app.modalStack.shift())();\n }\n };\n app.modal = function (params) {\n params = params || {};\n var modalHTML = '';\n if (app.params.modalTemplate) {\n if (!app._compiledTemplates.modal) app._compiledTemplates.modal = t7.compile(app.params.modalTemplate);\n modalHTML = app._compiledTemplates.modal(params);\n }\n else {\n var buttonsHTML = '';\n if (params.buttons && params.buttons.length > 0) {\n for (var i = 0; i < params.buttons.length; i++) {\n buttonsHTML += '' + params.buttons[i].text + '';\n }\n }\n var titleHTML = params.title ? '
' + params.title + '
' : '';\n var textHTML = params.text ? '
' + params.text + '
' : '';\n var afterTextHTML = params.afterText ? params.afterText : '';\n var noButtons = !params.buttons || params.buttons.length === 0 ? 'modal-no-buttons' : '';\n var verticalButtons = params.verticalButtons ? 'modal-buttons-vertical': '';\n var modalButtonsHTML = params.buttons && params.buttons.length > 0 ? '
' + buttonsHTML + '
' : '';\n modalHTML = '
' + (titleHTML + textHTML + afterTextHTML) + '
' + modalButtonsHTML + '
';\n }\n \n _modalTemplateTempDiv.innerHTML = modalHTML;\n \n var modal = $(_modalTemplateTempDiv).children();\n \n $('body').append(modal[0]);\n \n // Add events on buttons\n modal.find('.modal-button').each(function (index, el) {\n $(el).on('click', function (e) {\n if (params.buttons[index].close !== false) app.closeModal(modal);\n if (params.buttons[index].onClick) params.buttons[index].onClick(modal, e);\n if (params.onClick) params.onClick(modal, index);\n });\n });\n app.openModal(modal);\n return modal[0];\n };\n app.alert = function (text, title, callbackOk) {\n if (typeof title === 'function') {\n callbackOk = arguments[1];\n title = undefined;\n }\n return app.modal({\n text: text || '',\n title: typeof title === 'undefined' ? app.params.modalTitle : title,\n buttons: [ {text: app.params.modalButtonOk, bold: true, onClick: callbackOk} ]\n });\n };\n app.confirm = function (text, title, callbackOk, callbackCancel) {\n if (typeof title === 'function') {\n callbackCancel = arguments[2];\n callbackOk = arguments[1];\n title = undefined;\n }\n return app.modal({\n text: text || '',\n title: typeof title === 'undefined' ? app.params.modalTitle : title,\n buttons: [\n {text: app.params.modalButtonCancel, onClick: callbackCancel},\n {text: app.params.modalButtonOk, bold: true, onClick: callbackOk}\n ]\n });\n };\n app.prompt = function (text, title, callbackOk, callbackCancel) {\n if (typeof title === 'function') {\n callbackCancel = arguments[2];\n callbackOk = arguments[1];\n title = undefined;\n }\n return app.modal({\n text: text || '',\n title: typeof title === 'undefined' ? app.params.modalTitle : title,\n afterText: '
',\n buttons: [\n {\n text: app.params.modalButtonCancel\n },\n {\n text: app.params.modalButtonOk,\n bold: true\n }\n ],\n onClick: function (modal, index) {\n if (index === 0 && callbackCancel) callbackCancel($(modal).find('.modal-text-input').val());\n if (index === 1 && callbackOk) callbackOk($(modal).find('.modal-text-input').val());\n }\n });\n };\n app.modalLogin = function (text, title, callbackOk, callbackCancel) {\n if (typeof title === 'function') {\n callbackCancel = arguments[2];\n callbackOk = arguments[1];\n title = undefined;\n }\n return app.modal({\n text: text || '',\n title: typeof title === 'undefined' ? app.params.modalTitle : title,\n afterText: '
',\n buttons: [\n {\n text: app.params.modalButtonCancel\n },\n {\n text: app.params.modalButtonOk,\n bold: true\n }\n ],\n onClick: function (modal, index) {\n var username = $(modal).find('.modal-text-input[name=\"modal-username\"]').val();\n var password = $(modal).find('.modal-text-input[name=\"modal-password\"]').val();\n if (index === 0 && callbackCancel) callbackCancel(username, password);\n if (index === 1 && callbackOk) callbackOk(username, password);\n }\n });\n };\n app.modalPassword = function (text, title, callbackOk, callbackCancel) {\n if (typeof title === 'function') {\n callbackCancel = arguments[2];\n callbackOk = arguments[1];\n title = undefined;\n }\n return app.modal({\n text: text || '',\n title: typeof title === 'undefined' ? app.params.modalTitle : title,\n afterText: '
',\n buttons: [\n {\n text: app.params.modalButtonCancel\n },\n {\n text: app.params.modalButtonOk,\n bold: true\n }\n ],\n onClick: function (modal, index) {\n var password = $(modal).find('.modal-text-input[name=\"modal-password\"]').val();\n if (index === 0 && callbackCancel) callbackCancel(password);\n if (index === 1 && callbackOk) callbackOk(password);\n }\n });\n };\n app.showPreloader = function (title) {\n return app.modal({\n title: title || app.params.modalPreloaderTitle,\n text: '
' + (app.params.material ? app.params.materialPreloaderHtml : '') + '
',\n cssClass: 'modal-preloader'\n });\n };\n app.hidePreloader = function () {\n app.closeModal('.modal.modal-in');\n };\n app.showIndicator = function () {\n $('body').append('
' + (app.params.material ? app.params.materialPreloaderHtml : '') + '
');\n };\n app.hideIndicator = function () {\n $('.preloader-indicator-overlay, .preloader-indicator-modal').remove();\n };\n // Action Sheet\n app.actions = function (target, params) {\n var toPopover = false, modal, groupSelector, buttonSelector;\n if (arguments.length === 1) {\n // Actions\n params = target;\n }\n else {\n // Popover\n if (app.device.ios) {\n if (app.device.ipad) toPopover = true;\n }\n else {\n if ($(window).width() >= 768) toPopover = true;\n }\n }\n params = params || [];\n \n if (params.length > 0 && !$.isArray(params[0])) {\n params = [params];\n }\n var modalHTML;\n if (toPopover) {\n var actionsToPopoverTemplate = app.params.modalActionsToPopoverTemplate ||\n '
' +\n '
' +\n '{{#each this}}' +\n '
' +\n '
    ' +\n '{{#each this}}' +\n '{{#if label}}' +\n '
  • {{text}}
  • ' +\n '{{else}}' +\n '
  • {{text}}
  • ' +\n '{{/if}}' +\n '{{/each}}' +\n '
' +\n '
' +\n '{{/each}}' +\n '
' +\n '
';\n if (!app._compiledTemplates.actionsToPopover) {\n app._compiledTemplates.actionsToPopover = t7.compile(actionsToPopoverTemplate);\n }\n var popoverHTML = app._compiledTemplates.actionsToPopover(params);\n modal = $(app.popover(popoverHTML, target, true));\n groupSelector = '.list-block ul';\n buttonSelector = '.list-button';\n }\n else {\n if (app.params.modalActionsTemplate) {\n if (!app._compiledTemplates.actions) app._compiledTemplates.actions = t7.compile(app.params.modalActionsTemplate);\n modalHTML = app._compiledTemplates.actions(params);\n }\n else {\n var buttonsHTML = '';\n for (var i = 0; i < params.length; i++) {\n for (var j = 0; j < params[i].length; j++) {\n if (j === 0) buttonsHTML += '
';\n var button = params[i][j];\n var buttonClass = button.label ? 'actions-modal-label' : 'actions-modal-button';\n if (button.bold) buttonClass += ' actions-modal-button-bold';\n if (button.color) buttonClass += ' color-' + button.color;\n if (button.bg) buttonClass += ' bg-' + button.bg;\n if (button.disabled) buttonClass += ' disabled';\n buttonsHTML += '
' + button.text + '
';\n if (j === params[i].length - 1) buttonsHTML += '
';\n }\n }\n modalHTML = '
' + buttonsHTML + '
';\n }\n _modalTemplateTempDiv.innerHTML = modalHTML;\n modal = $(_modalTemplateTempDiv).children();\n $('body').append(modal[0]);\n groupSelector = '.actions-modal-group';\n buttonSelector = '.actions-modal-button';\n }\n \n var groups = modal.find(groupSelector);\n groups.each(function (index, el) {\n var groupIndex = index;\n $(el).children().each(function (index, el) {\n var buttonIndex = index;\n var buttonParams = params[groupIndex][buttonIndex];\n var clickTarget;\n if (!toPopover && $(el).is(buttonSelector)) clickTarget = $(el);\n if (toPopover && $(el).find(buttonSelector).length > 0) clickTarget = $(el).find(buttonSelector);\n \n if (clickTarget) {\n clickTarget.on('click', function (e) {\n if (buttonParams.close !== false) app.closeModal(modal);\n if (buttonParams.onClick) buttonParams.onClick(modal, e);\n });\n }\n });\n });\n if (!toPopover) app.openModal(modal);\n return modal[0];\n };\n app.popover = function (modal, target, removeOnClose) {\n if (typeof removeOnClose === 'undefined') removeOnClose = true;\n if (typeof modal === 'string' && modal.indexOf('<') >= 0) {\n var _modal = document.createElement('div');\n _modal.innerHTML = modal.trim();\n if (_modal.childNodes.length > 0) {\n modal = _modal.childNodes[0];\n if (removeOnClose) modal.classList.add('remove-on-close');\n $('body').append(modal);\n }\n else return false; //nothing found\n }\n modal = $(modal);\n target = $(target);\n if (modal.length === 0 || target.length === 0) return false;\n if (modal.parents('body').length === 0) {\n if (removeOnClose) modal.addClass('remove-on-close');\n $('body').append(modal[0]);\n }\n if (modal.find('.popover-angle').length === 0 && !app.params.material) {\n modal.append('
');\n }\n modal.show();\n \n var material = app.params.material;\n \n function sizePopover() {\n modal.css({left: '', top: ''});\n var modalWidth = modal.width();\n var modalHeight = modal.height(); // 13 - height of angle\n var modalAngle, modalAngleSize = 0, modalAngleLeft, modalAngleTop;\n if (!material) {\n modalAngle = modal.find('.popover-angle');\n modalAngleSize = modalAngle.width() / 2;\n modalAngle.removeClass('on-left on-right on-top on-bottom').css({left: '', top: ''});\n }\n else {\n modal.removeClass('popover-on-left popover-on-right popover-on-top popover-on-bottom').css({left: '', top: ''});\n }\n \n var targetWidth = target.outerWidth();\n var targetHeight = target.outerHeight();\n var targetOffset = target.offset();\n var targetParentPage = target.parents('.page');\n if (targetParentPage.length > 0) {\n targetOffset.top = targetOffset.top - targetParentPage[0].scrollTop;\n }\n \n var windowHeight = $(window).height();\n var windowWidth = $(window).width();\n \n var modalTop = 0;\n var modalLeft = 0;\n var diff = 0;\n // Top Position\n var modalPosition = material ? 'bottom' : 'top';\n if (material) {\n if (modalHeight < windowHeight - targetOffset.top - targetHeight) {\n // On bottom\n modalPosition = 'bottom';\n modalTop = targetOffset.top;\n }\n else if (modalHeight < targetOffset.top) {\n // On top\n modalTop = targetOffset.top - modalHeight + targetHeight;\n modalPosition = 'top';\n }\n else {\n // On middle\n modalPosition = 'bottom';\n modalTop = targetOffset.top;\n }\n \n if (modalTop <= 0) {\n modalTop = 8;\n }\n else if (modalTop + modalHeight >= windowHeight) {\n modalTop = windowHeight - modalHeight - 8;\n }\n \n // Horizontal Position\n modalLeft = targetOffset.left;\n if (modalLeft + modalWidth >= windowWidth - 8) {\n modalLeft = targetOffset.left + targetWidth - modalWidth - 8;\n }\n if (modalLeft < 8) {\n modalLeft = 8;\n }\n if (modalPosition === 'top') {\n modal.addClass('popover-on-top');\n }\n if (modalPosition === 'bottom') {\n modal.addClass('popover-on-bottom');\n }\n if (target.hasClass('floating-button-to-popover') && !modal.hasClass('modal-in')) {\n modal.addClass('popover-floating-button');\n var diffX = (modalLeft + modalWidth / 2) - (targetOffset.left + targetWidth / 2),\n diffY = (modalTop + modalHeight / 2) - (targetOffset.top + targetHeight / 2);\n target\n .addClass('floating-button-to-popover-in')\n .transform('translate3d(' + diffX + 'px, ' + diffY + 'px,0)')\n .transitionEnd(function (e) {\n if (!target.hasClass('floating-button-to-popover-in')) return;\n target\n .addClass('floating-button-to-popover-scale')\n .transform('translate3d(' + diffX + 'px, ' + diffY + 'px,0) scale(' + (modalWidth/targetWidth) + ', ' + (modalHeight/targetHeight) + ')');\n });\n \n modal.once('close', function () {\n target\n .removeClass('floating-button-to-popover-in floating-button-to-popover-scale')\n .addClass('floating-button-to-popover-out')\n .transform('')\n .transitionEnd(function (e) {\n target.removeClass('floating-button-to-popover-out');\n });\n });\n modal.once('closed', function () {\n modal.removeClass('popover-floating-button');\n });\n }\n \n }\n else {\n if ((modalHeight + modalAngleSize) < targetOffset.top) {\n // On top\n modalTop = targetOffset.top - modalHeight - modalAngleSize;\n }\n else if ((modalHeight + modalAngleSize) < windowHeight - targetOffset.top - targetHeight) {\n // On bottom\n modalPosition = 'bottom';\n modalTop = targetOffset.top + targetHeight + modalAngleSize;\n }\n else {\n // On middle\n modalPosition = 'middle';\n modalTop = targetHeight / 2 + targetOffset.top - modalHeight / 2;\n diff = modalTop;\n if (modalTop <= 0) {\n modalTop = 5;\n }\n else if (modalTop + modalHeight >= windowHeight) {\n modalTop = windowHeight - modalHeight - 5;\n }\n diff = diff - modalTop;\n }\n \n // Horizontal Position\n if (modalPosition === 'top' || modalPosition === 'bottom') {\n modalLeft = targetWidth / 2 + targetOffset.left - modalWidth / 2;\n diff = modalLeft;\n if (modalLeft < 5) modalLeft = 5;\n if (modalLeft + modalWidth > windowWidth) modalLeft = windowWidth - modalWidth - 5;\n if (modalPosition === 'top') {\n modalAngle.addClass('on-bottom');\n }\n if (modalPosition === 'bottom') {\n modalAngle.addClass('on-top');\n }\n diff = diff - modalLeft;\n modalAngleLeft = (modalWidth / 2 - modalAngleSize + diff);\n modalAngleLeft = Math.max(Math.min(modalAngleLeft, modalWidth - modalAngleSize * 2 - 13), 13);\n modalAngle.css({left: modalAngleLeft + 'px'});\n \n }\n else if (modalPosition === 'middle') {\n modalLeft = targetOffset.left - modalWidth - modalAngleSize;\n modalAngle.addClass('on-right');\n if (modalLeft < 5 || (modalLeft + modalWidth > windowWidth)) {\n if (modalLeft < 5) modalLeft = targetOffset.left + targetWidth + modalAngleSize;\n if (modalLeft + modalWidth > windowWidth) modalLeft = windowWidth - modalWidth - 5;\n modalAngle.removeClass('on-right').addClass('on-left');\n }\n modalAngleTop = (modalHeight / 2 - modalAngleSize + diff);\n modalAngleTop = Math.max(Math.min(modalAngleTop, modalHeight - modalAngleSize * 2 - 13), 13);\n modalAngle.css({top: modalAngleTop + 'px'});\n }\n }\n \n \n // Apply Styles\n modal.css({top: modalTop + 'px', left: modalLeft + 'px'});\n }\n \n sizePopover();\n \n $(window).on('resize', sizePopover);\n \n modal.on('close', function () {\n $(window).off('resize', sizePopover);\n });\n \n app.openModal(modal);\n return modal[0];\n };\n app.popup = function (modal, removeOnClose) {\n if (typeof removeOnClose === 'undefined') removeOnClose = true;\n if (typeof modal === 'string' && modal.indexOf('<') >= 0) {\n var _modal = document.createElement('div');\n _modal.innerHTML = modal.trim();\n if (_modal.childNodes.length > 0) {\n modal = _modal.childNodes[0];\n if (removeOnClose) modal.classList.add('remove-on-close');\n $('body').append(modal);\n }\n else return false; //nothing found\n }\n modal = $(modal);\n if (modal.length === 0) return false;\n if (modal.parents('body').length === 0) {\n if (removeOnClose) modal.addClass('remove-on-close');\n $('body').append(modal[0]);\n }\n modal.show();\n \n app.openModal(modal);\n return modal[0];\n };\n app.pickerModal = function (modal, removeOnClose) {\n if (typeof removeOnClose === 'undefined') removeOnClose = true;\n if (typeof modal === 'string' && modal.indexOf('<') >= 0) {\n modal = $(modal);\n if (modal.length > 0) {\n if (removeOnClose) modal.addClass('remove-on-close');\n $('body').append(modal[0]);\n }\n else return false; //nothing found\n }\n modal = $(modal);\n if (modal.length === 0) return false;\n if (modal.parents('body').length === 0) {\n if (removeOnClose) modal.addClass('remove-on-close');\n $('body').append(modal[0]);\n }\n if ($('.picker-modal.modal-in:not(.modal-out)').length > 0 && !modal.hasClass('modal-in')) {\n app.closeModal('.picker-modal.modal-in:not(.modal-out)');\n }\n modal.show();\n app.openModal(modal);\n return modal[0];\n };\n app.loginScreen = function (modal) {\n if (!modal) modal = '.login-screen';\n modal = $(modal);\n if (modal.length === 0) return false;\n if ($('.login-screen.modal-in:not(.modal-out)').length > 0 && !modal.hasClass('modal-in')) {\n app.closeModal('.login-screen.modal-in:not(.modal-out)');\n }\n modal.show();\n \n app.openModal(modal);\n return modal[0];\n };\n app.openModal = function (modal) {\n modal = $(modal);\n var isModal = modal.hasClass('modal');\n if ($('.modal.modal-in:not(.modal-out)').length && app.params.modalStack && isModal) {\n app.modalStack.push(function () {\n app.openModal(modal);\n });\n return;\n }\n // do nothing if this modal already shown\n if (true === modal.data('f7-modal-shown')) {\n return;\n }\n modal.data('f7-modal-shown', true);\n modal.once('close', function() {\n modal.removeData('f7-modal-shown');\n });\n var isPopover = modal.hasClass('popover');\n var isPopup = modal.hasClass('popup');\n var isLoginScreen = modal.hasClass('login-screen');\n var isPickerModal = modal.hasClass('picker-modal');\n if (isModal) {\n modal.show();\n modal.css({\n marginTop: - Math.round(modal.outerHeight() / 2) + 'px'\n });\n }\n \n var overlay;\n if (!isLoginScreen && !isPickerModal) {\n if ($('.modal-overlay').length === 0 && !isPopup) {\n $('body').append('
');\n }\n if ($('.popup-overlay').length === 0 && isPopup) {\n $('body').append('
');\n }\n overlay = isPopup ? $('.popup-overlay') : $('.modal-overlay');\n }\n if (app.params.material && isPickerModal) {\n if (modal.hasClass('picker-calendar')) {\n if ($('.picker-modal-overlay').length === 0 && !isPopup) {\n $('body').append('
');\n }\n overlay = $('.picker-modal-overlay');\n }\n }\n \n //Make sure that styles are applied, trigger relayout;\n var clientLeft = modal[0].clientLeft;\n \n // Trugger open event\n modal.trigger('open');\n \n // Picker modal body class\n if (isPickerModal) {\n $('body').addClass('with-picker-modal');\n }\n \n // Init Pages and Navbars in modal\n if (modal.find('.' + app.params.viewClass).length > 0) {\n modal.find('.page').each(function () {\n app.initPageWithCallback(this);\n });\n modal.find('.navbar').each(function () {\n app.initNavbarWithCallback(this); \n });\n }\n \n // Classes for transition in\n if (!isLoginScreen && !isPickerModal) overlay.addClass('modal-overlay-visible');\n if (app.params.material && isPickerModal && overlay) overlay.addClass('modal-overlay-visible');\n modal.removeClass('modal-out').addClass('modal-in').transitionEnd(function (e) {\n if (modal.hasClass('modal-out')) modal.trigger('closed');\n else modal.trigger('opened');\n });\n return true;\n };\n app.closeModal = function (modal) {\n modal = $(modal || '.modal-in');\n if (typeof modal !== 'undefined' && modal.length === 0) {\n return;\n }\n var isModal = modal.hasClass('modal');\n var isPopover = modal.hasClass('popover');\n var isPopup = modal.hasClass('popup');\n var isLoginScreen = modal.hasClass('login-screen');\n var isPickerModal = modal.hasClass('picker-modal');\n \n var removeOnClose = modal.hasClass('remove-on-close');\n \n var overlay;\n \n if (isPopup) overlay = $('.popup-overlay');\n else {\n if (isPickerModal && app.params.material) overlay = $('.picker-modal-overlay');\n else if (!isPickerModal) overlay = $('.modal-overlay');\n }\n \n if (isPopup){\n if (modal.length === $('.popup.modal-in').length) {\n overlay.removeClass('modal-overlay-visible');\n }\n }\n else if (overlay && overlay.length > 0) {\n overlay.removeClass('modal-overlay-visible');\n }\n \n modal.trigger('close');\n \n // Picker modal body class\n if (isPickerModal) {\n $('body').removeClass('with-picker-modal');\n $('body').addClass('picker-modal-closing');\n }\n \n if (!(isPopover && !app.params.material)) {\n modal.removeClass('modal-in').addClass('modal-out').transitionEnd(function (e) {\n if (modal.hasClass('modal-out')) modal.trigger('closed');\n else {\n modal.trigger('opened');\n if (isPopover) return;\n }\n \n if (isPickerModal) {\n $('body').removeClass('picker-modal-closing');\n }\n if (isPopup || isLoginScreen || isPickerModal || isPopover) {\n modal.removeClass('modal-out').hide();\n if (removeOnClose && modal.length > 0) {\n modal.remove();\n }\n }\n else {\n modal.remove();\n }\n });\n if (isModal && app.params.modalStack) {\n app.modalStackClearQueue();\n }\n }\n else {\n modal.removeClass('modal-in modal-out').trigger('closed').hide();\n if (removeOnClose) {\n modal.remove();\n }\n }\n return true;\n };\n \n\n /*===============================================================================\n ************ Progress Bar ************\n ===============================================================================*/\n app.setProgressbar = function (container, progress, speed) {\n container = $(container || 'body');\n if (container.length === 0) return;\n if (progress) progress = Math.min(Math.max(progress, 0), 100);\n var progressbar;\n if (container.hasClass('progressbar')) progressbar = container;\n else {\n progressbar = container.children('.progressbar');\n }\n if (progressbar.length === 0 || progressbar.hasClass('progressbar-infinite')) return;\n var clientLeft = progressbar[0].clientLeft;\n progressbar.children('span').transform('translate3d(' + (-100 + progress) + '%,0,0)');\n if (typeof speed !== 'undefined') {\n progressbar.children('span').transition(speed);\n }\n else {\n progressbar.children('span').transition('');\n }\n return progressbar[0];\n };\n app.showProgressbar = function (container, progress, color) {\n if (typeof container === 'number') {\n container = 'body';\n progress = arguments[0];\n color = arguments[1];\n }\n if (progress && typeof progress === 'string' && parseFloat(progress) !== progress * 1) {\n color = progress;\n progress = undefined;\n }\n container = $(container || 'body');\n if (container.length === 0) return;\n var progressbar;\n if (container.hasClass('progressbar')) progressbar = container;\n else {\n progressbar = container.children('.progressbar:not(.progressbar-out), .progressbar-infinite:not(.progressbar-out)');\n if (progressbar.length === 0) {\n // Create one\n if (typeof progress !== 'undefined') {\n // Determined\n progressbar = $('');\n }\n else {\n // Infinite\n progressbar = $('');\n }\n container.append(progressbar);\n }\n }\n if (progress) app.setProgressbar(container, progress);\n return progressbar[0];\n };\n app.hideProgressbar = function (container) {\n container = $(container || 'body');\n if (container.length === 0) return;\n var progressbar;\n if (container.hasClass('progressbar')) progressbar = container;\n else {\n progressbar = container.children('.progressbar, .progressbar-infinite');\n }\n if (progressbar.length === 0 || !progressbar.hasClass('progressbar-in') || progressbar.hasClass('progressbar-out')) return;\n progressbar.removeClass('progressbar-in').addClass('progressbar-out').animationEnd(function () {\n progressbar.remove();\n progressbar = null;\n });\n return;\n };\n app.initPageProgressbar = function (pageContainer) {\n pageContainer = $(pageContainer);\n pageContainer.find('.progressbar').each(function () {\n var p = $(this);\n if (p.children('span').length === 0) p.append('');\n if (p.attr('data-progress')) app.setProgressbar(p, p.attr('data-progress'));\n });\n };\n\n /*======================================================\n ************ Panels ************\n ======================================================*/\n app.allowPanelOpen = true;\n app.openPanel = function (panelPosition) {\n if (!app.allowPanelOpen) return false;\n var panel = $('.panel-' + panelPosition);\n if (panel.length === 0 || panel.hasClass('active')) return false;\n app.closePanel(); // Close if some panel is opened\n app.allowPanelOpen = false;\n var effect = panel.hasClass('panel-reveal') ? 'reveal' : 'cover';\n panel.css({display: 'block'}).addClass('active');\n panel.trigger('open');\n if (app.params.material) {\n $('.panel-overlay').show();\n }\n if (panel.find('.' + app.params.viewClass).length > 0) {\n if (app.sizeNavbars) app.sizeNavbars(panel.find('.' + app.params.viewClass)[0]);\n }\n \n // Trigger reLayout\n var clientLeft = panel[0].clientLeft;\n \n // Transition End;\n var transitionEndTarget = effect === 'reveal' ? $('.' + app.params.viewsClass) : panel;\n var openedTriggered = false;\n \n function panelTransitionEnd() {\n transitionEndTarget.transitionEnd(function (e) {\n if ($(e.target).is(transitionEndTarget)) {\n if (panel.hasClass('active')) {\n panel.trigger('opened');\n }\n else {\n panel.trigger('closed');\n }\n if (app.params.material) $('.panel-overlay').css({display: ''});\n app.allowPanelOpen = true;\n }\n else panelTransitionEnd();\n });\n }\n panelTransitionEnd();\n \n $('body').addClass('with-panel-' + panelPosition + '-' + effect);\n return true;\n };\n app.closePanel = function () {\n var activePanel = $('.panel.active');\n if (activePanel.length === 0) return false;\n var effect = activePanel.hasClass('panel-reveal') ? 'reveal' : 'cover';\n var panelPosition = activePanel.hasClass('panel-left') ? 'left' : 'right';\n activePanel.removeClass('active');\n var transitionEndTarget = effect === 'reveal' ? $('.' + app.params.viewsClass) : activePanel;\n activePanel.trigger('close');\n app.allowPanelOpen = false;\n \n transitionEndTarget.transitionEnd(function () {\n if (activePanel.hasClass('active')) return;\n activePanel.css({display: ''});\n activePanel.trigger('closed');\n $('body').removeClass('panel-closing');\n app.allowPanelOpen = true;\n });\n \n $('body').addClass('panel-closing').removeClass('with-panel-' + panelPosition + '-' + effect);\n };\n /*======================================================\n ************ Swipe panels ************\n ======================================================*/\n app.initSwipePanels = function () {\n var panel, side;\n if (app.params.swipePanel) {\n panel = $('.panel.panel-' + app.params.swipePanel);\n side = app.params.swipePanel;\n if (panel.length === 0) return;\n }\n else {\n if (app.params.swipePanelOnlyClose) {\n if ($('.panel').length === 0) return;\n }\n else return;\n }\n \n var panelOverlay = $('.panel-overlay');\n var isTouched, isMoved, isScrolling, touchesStart = {}, touchStartTime, touchesDiff, translate, overlayOpacity, opened, panelWidth, effect, direction;\n var views = $('.' + app.params.viewsClass);\n \n function handleTouchStart(e) {\n if (!app.allowPanelOpen || (!app.params.swipePanel && !app.params.swipePanelOnlyClose) || isTouched) return;\n if ($('.modal-in, .photo-browser-in').length > 0) return;\n if (!(app.params.swipePanelCloseOpposite || app.params.swipePanelOnlyClose)) {\n if ($('.panel.active').length > 0 && !panel.hasClass('active')) return;\n }\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n if (app.params.swipePanelCloseOpposite || app.params.swipePanelOnlyClose) {\n if ($('.panel.active').length > 0) {\n side = $('.panel.active').hasClass('panel-left') ? 'left' : 'right';\n }\n else {\n if (app.params.swipePanelOnlyClose) return;\n side = app.params.swipePanel;\n }\n if (!side) return;\n }\n panel = $('.panel.panel-' + side);\n opened = panel.hasClass('active');\n if (app.params.swipePanelActiveArea && !opened) {\n if (side === 'left') {\n if (touchesStart.x > app.params.swipePanelActiveArea) return;\n }\n if (side === 'right') {\n if (touchesStart.x < window.innerWidth - app.params.swipePanelActiveArea) return;\n }\n }\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n \n touchStartTime = (new Date()).getTime();\n direction = undefined;\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n if (e.f7PreventPanelSwipe) return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x));\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n if (!direction) {\n if (pageX > touchesStart.x) {\n direction = 'to-right';\n }\n else {\n direction = 'to-left';\n }\n \n if (\n side === 'left' &&\n (\n direction === 'to-left' && !panel.hasClass('active')\n ) ||\n side === 'right' &&\n (\n direction === 'to-right' && !panel.hasClass('active')\n )\n )\n {\n isTouched = false;\n return;\n }\n }\n \n if (app.params.swipePanelNoFollow) {\n var timeDiff = (new Date()).getTime() - touchStartTime;\n if (timeDiff < 300) {\n if (direction === 'to-left') {\n if (side === 'right') app.openPanel(side);\n if (side === 'left' && panel.hasClass('active')) app.closePanel();\n }\n if (direction === 'to-right') {\n if (side === 'left') app.openPanel(side);\n if (side === 'right' && panel.hasClass('active')) app.closePanel();\n }\n }\n isTouched = false;\n isMoved = false;\n return;\n }\n \n if (!isMoved) {\n effect = panel.hasClass('panel-cover') ? 'cover' : 'reveal';\n if (!opened) {\n panel.show();\n panelOverlay.show();\n }\n panelWidth = panel[0].offsetWidth;\n panel.transition(0);\n if (panel.find('.' + app.params.viewClass).length > 0) {\n if (app.sizeNavbars) app.sizeNavbars(panel.find('.' + app.params.viewClass)[0]);\n }\n }\n \n isMoved = true;\n \n e.preventDefault();\n var threshold = opened ? 0 : -app.params.swipePanelThreshold;\n if (side === 'right') threshold = -threshold;\n \n touchesDiff = pageX - touchesStart.x + threshold;\n \n if (side === 'right') {\n translate = touchesDiff - (opened ? panelWidth : 0);\n if (translate > 0) translate = 0;\n if (translate < -panelWidth) {\n translate = -panelWidth;\n }\n }\n else {\n translate = touchesDiff + (opened ? panelWidth : 0);\n if (translate < 0) translate = 0;\n if (translate > panelWidth) {\n translate = panelWidth;\n }\n }\n if (effect === 'reveal') {\n views.transform('translate3d(' + translate + 'px,0,0)').transition(0);\n panelOverlay.transform('translate3d(' + translate + 'px,0,0)').transition(0);\n \n app.pluginHook('swipePanelSetTransform', views[0], panel[0], Math.abs(translate / panelWidth));\n }\n else {\n panel.transform('translate3d(' + translate + 'px,0,0)').transition(0);\n if (app.params.material) {\n panelOverlay.transition(0);\n overlayOpacity = Math.abs(translate/panelWidth);\n panelOverlay.css({opacity: overlayOpacity});\n }\n app.pluginHook('swipePanelSetTransform', views[0], panel[0], Math.abs(translate / panelWidth));\n }\n }\n function handleTouchEnd(e) {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n isTouched = false;\n isMoved = false;\n var timeDiff = (new Date()).getTime() - touchStartTime;\n var action;\n var edge = (translate === 0 || Math.abs(translate) === panelWidth);\n \n if (!opened) {\n if (translate === 0) {\n action = 'reset';\n }\n else if (\n timeDiff < 300 && Math.abs(translate) > 0 ||\n timeDiff >= 300 && (Math.abs(translate) >= panelWidth / 2)\n ) {\n action = 'swap';\n }\n else {\n action = 'reset';\n }\n }\n else {\n if (translate === -panelWidth) {\n action = 'reset';\n }\n else if (\n timeDiff < 300 && Math.abs(translate) >= 0 ||\n timeDiff >= 300 && (Math.abs(translate) <= panelWidth / 2)\n ) {\n if (side === 'left' && translate === panelWidth) action = 'reset';\n else action = 'swap';\n }\n else {\n action = 'reset';\n }\n }\n if (action === 'swap') {\n app.allowPanelOpen = true;\n if (opened) {\n app.closePanel();\n if (edge) {\n panel.css({display: ''});\n $('body').removeClass('panel-closing');\n }\n }\n else {\n app.openPanel(side);\n }\n if (edge) app.allowPanelOpen = true;\n }\n if (action === 'reset') {\n if (opened) {\n app.allowPanelOpen = true;\n app.openPanel(side);\n }\n else {\n app.closePanel();\n if (edge) {\n app.allowPanelOpen = true;\n panel.css({display: ''});\n }\n else {\n var target = effect === 'reveal' ? views : panel;\n panel.trigger('close');\n $('body').addClass('panel-closing');\n target.transitionEnd(function () {\n panel.trigger('closed');\n panel.css({display: ''});\n $('body').removeClass('panel-closing');\n app.allowPanelOpen = true;\n });\n }\n }\n }\n if (effect === 'reveal') {\n views.transition('');\n views.transform('');\n }\n panel.transition('').transform('');\n panelOverlay.css({display: ''}).transform('').transition('').css('opacity', '');\n }\n $(document).on(app.touchEvents.start, handleTouchStart);\n $(document).on(app.touchEvents.move, handleTouchMove);\n $(document).on(app.touchEvents.end, handleTouchEnd);\n };\n \n\n /*======================================================\n ************ Image Lazy Loading ************\n ************ Based on solution by Marc Godard, https://github.com/MarcGodard ************\n ======================================================*/\n app.initImagesLazyLoad = function (pageContainer) {\n pageContainer = $(pageContainer);\n \n // Lazy images\n var lazyLoadImages;\n if (pageContainer.hasClass('lazy')) {\n lazyLoadImages = pageContainer;\n pageContainer = lazyLoadImages.parents('.page');\n }\n else {\n lazyLoadImages = pageContainer.find('.lazy');\n }\n if (lazyLoadImages.length === 0) return;\n \n // Scrollable page content\n var pageContent;\n if (pageContainer.hasClass('page-content')) {\n pageContent = pageContainer;\n pageContainer = pageContainer.parents('.page');\n }\n else {\n pageContent = pageContainer.find('.page-content');\n }\n if (pageContent.length === 0) return;\n \n // Placeholder\n var placeholderSrc = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXCwsK592mkAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==';\n if (typeof app.params.imagesLazyLoadPlaceholder === 'string') {\n placeholderSrc = app.params.imagesLazyLoadPlaceholder;\n }\n if (app.params.imagesLazyLoadPlaceholder !== false) lazyLoadImages.each(function(){\n if ($(this).attr('data-src')) $(this).attr('src', placeholderSrc);\n });\n \n // load image\n var imagesSequence = [];\n var imageIsLoading = false;\n function loadImage(el) {\n el = $(el);\n \n var bg = el.attr('data-background');\n var src = bg ? bg : el.attr('data-src');\n if (!src) return;\n \n function onLoad() {\n el.removeClass('lazy').addClass('lazy-loaded');\n if (bg) {\n el.css('background-image', 'url(' + src + ')');\n }\n else {\n el.attr('src', src);\n }\n \n if (app.params.imagesLazyLoadSequential) {\n imageIsLoading = false;\n if (imagesSequence.length > 0) {\n loadImage(imagesSequence.shift());\n }\n }\n }\n \n if (app.params.imagesLazyLoadSequential) {\n if (imageIsLoading) {\n if (imagesSequence.indexOf(el[0]) < 0) imagesSequence.push(el[0]);\n return;\n }\n }\n \n // Loading flag\n imageIsLoading = true;\n \n var image = new Image();\n image.onload = onLoad;\n image.onerror = onLoad;\n image.src =src;\n }\n function lazyHandler() {\n lazyLoadImages = pageContainer.find('.lazy');\n lazyLoadImages.each(function(index, el) {\n el = $(el);\n if (el.parents('.tab:not(.active)').length > 0) {\n return;\n }\n if (isElementInViewport(el[0])) {\n loadImage(el);\n }\n });\n }\n \n function isElementInViewport (el) {\n var rect = el.getBoundingClientRect();\n var threshold = app.params.imagesLazyLoadThreshold || 0;\n return (\n rect.top >= (0 - threshold) &&\n rect.left >= (0 - threshold) &&\n rect.top <= (window.innerHeight + threshold) &&\n rect.left <= (window.innerWidth + threshold)\n );\n }\n \n function attachEvents(destroy) {\n var method = destroy ? 'off' : 'on';\n lazyLoadImages[method]('lazy', lazyHandler);\n lazyLoadImages.parents('.tab')[method]('show', lazyHandler);\n pageContainer[method]('lazy', lazyHandler);\n pageContent[method]('lazy', lazyHandler);\n pageContent[method]('scroll', lazyHandler);\n $(window)[method]('resize', lazyHandler);\n }\n function detachEvents() {\n attachEvents(true);\n }\n \n // Store detach function\n pageContainer[0].f7DestroyImagesLazyLoad = detachEvents;\n \n // Attach events\n attachEvents();\n \n // Destroy on page remove\n if (pageContainer.hasClass('page')) {\n pageContainer.once('pageBeforeRemove', detachEvents);\n }\n \n // Run loader on page load/init\n lazyHandler();\n \n // Run after page animation\n pageContainer.once('pageAfterAnimation', lazyHandler);\n };\n app.destroyImagesLazyLoad = function (pageContainer) {\n pageContainer = $(pageContainer);\n if (pageContainer.length > 0 && pageContainer[0].f7DestroyImagesLazyLoad) {\n pageContainer[0].f7DestroyImagesLazyLoad();\n }\n };\n app.reinitImagesLazyLoad = function (pageContainer) {\n pageContainer = $(pageContainer);\n if (pageContainer.length > 0) {\n pageContainer.trigger('lazy');\n }\n };\n\n /*======================================================\n ************ Material Preloader ************\n ======================================================*/\n app.initPageMaterialPreloader = function (pageContainer) {\n $(pageContainer).find('.preloader').each(function () {\n if ($(this).children().length === 0) {\n $(this).html(app.params.materialPreloaderHtml);\n }\n });\n };\n\n /*======================================================\n ************ Messages ************\n ======================================================*/\n var Messages = function (container, params) {\n var defaults = {\n autoLayout: true,\n newMessagesFirst: false,\n messageTemplate: \n '{{#if day}}' +\n '
{{day}} {{#if time}}, {{time}}{{/if}}
' +\n '{{/if}}' +\n '
' +\n '{{#if name}}
{{name}}
{{/if}}' +\n '
{{text}}{{#if date}}
{{date}}
{{/if}}
' +\n '{{#if avatar}}
{{/if}}' +\n '{{#if label}}
{{label}}
{{/if}}' +\n '
'\n };\n params = params || {};\n for (var def in defaults) {\n if (typeof params[def] === 'undefined' || params[def] === null) {\n params[def] = defaults[def];\n }\n }\n \n // Instance\n var m = this;\n \n // Params\n m.params = params;\n \n // Container\n m.container = $(container);\n if (m.container.length === 0) return;\n \n // Autolayout\n if (m.params.autoLayout) m.container.addClass('messages-auto-layout');\n \n // New messages first\n if (m.params.newMessagesFirst) m.container.addClass('messages-new-first');\n \n // Is In Page\n m.pageContainer = m.container.parents('.page').eq(0);\n m.pageContent = m.pageContainer.find('.page-content');\n \n // Compiled template\n m.template = Template7.compile(m.params.messageTemplate);\n \n // Auto Layout\n m.layout = function () {\n if (!m.container.hasClass('messages-auto-layout')) m.container.addClass('messages-auto-layout');\n m.container.find('.message').each(function () {\n var message = $(this);\n if (message.find('.message-text img').length > 0) message.addClass('message-pic');\n if (message.find('.message-avatar').length > 0) message.addClass('message-with-avatar');\n });\n m.container.find('.message').each(function () {\n var message = $(this);\n var isSent = message.hasClass('message-sent');\n var next = message.next('.message-' + (isSent ? 'sent' : 'received'));\n var prev = message.prev('.message-' + (isSent ? 'sent' : 'received'));\n if (next.length === 0) {\n message.addClass('message-last message-with-tail');\n }\n else message.removeClass('message-last message-with-tail');\n \n if (prev.length === 0) {\n message.addClass('message-first');\n }\n else message.removeClass('message-first');\n \n if (prev.length > 0 && prev.find('.message-name').length > 0 && message.find('.message-name').length > 0) {\n if (prev.find('.message-name').text() !== message.find('.message-name').text()) {\n prev.addClass('message-last message-with-tail');\n message.addClass('message-first');\n }\n }\n });\n \n };\n \n // Add Message\n m.appendMessage = function (props, animate) {\n return m.addMessage(props, 'append', animate);\n };\n m.prependMessage = function (props, animate) {\n return m.addMessage(props, 'prepend', animate);\n };\n m.addMessage = function (props, method, animate) {\n return m.addMessages([props], method, animate);\n };\n m.addMessages = function (newMessages, method, animate) {\n if (typeof animate === 'undefined') {\n animate = true;\n }\n if (typeof method === 'undefined') {\n method = m.params.newMessagesFirst ? 'prepend' : 'append';\n }\n var newMessagesHTML = '', i;\n for (i = 0; i < newMessages.length; i++) {\n var props = newMessages[i] || {};\n props.type = props.type || 'sent';\n if (!props.text) continue;\n props.hasImage = props.text.indexOf('= 0;\n if (animate) props.position = method === 'append' ? 'bottom' : 'top';\n \n newMessagesHTML += m.template(props);\n }\n var heightBefore, scrollBefore;\n if (method === 'prepend') {\n heightBefore = m.pageContent[0].scrollHeight;\n scrollBefore = m.pageContent[0].scrollTop;\n }\n m.container[method](newMessagesHTML);\n if (m.params.autoLayout) m.layout();\n if (method === 'prepend') {\n m.pageContent[0].scrollTop = scrollBefore + (m.pageContent[0].scrollHeight - heightBefore);\n }\n if ((method === 'append' && !m.params.newMessagesFirst) || (method === 'prepend' && m.params.newMessagesFirst)) {\n m.scrollMessages(animate ? undefined : 0);\n }\n var messages = m.container.find('.message');\n if (newMessages.length === 1) {\n return method === 'append' ? messages[messages.length - 1] : messages[0];\n }\n else {\n var messagesToReturn = [];\n if (method === 'append') {\n for (i = messages.length - newMessages.length; i < messages.length; i++) {\n messagesToReturn.push(messages[i]);\n }\n }\n else {\n for (i = 0; i < newMessages.length; i++) {\n messagesToReturn.push(messages[i]);\n } \n }\n return messagesToReturn;\n }\n \n };\n m.removeMessage = function (message) {\n message = $(message);\n if (message.length === 0) {\n return false;\n }\n else {\n message.remove();\n if (m.params.autoLayout) m.layout();\n return true;\n }\n };\n m.removeMessages = function (messages) {\n m.removeMessage(messages);\n };\n m.clean = function () {\n m.container.html('');\n };\n \n // Scroll\n m.scrollMessages = function (duration, scrollTop) {\n if (typeof duration === 'undefined') duration = 400;\n var currentScroll = m.pageContent[0].scrollTop;\n var newScroll;\n if (typeof scrollTop !== 'undefined') newScroll = scrollTop;\n else {\n newScroll = m.params.newMessagesFirst ? 0 : m.pageContent[0].scrollHeight - m.pageContent[0].offsetHeight;\n if (newScroll === currentScroll) return;\n }\n m.pageContent.scrollTop(newScroll, duration);\n };\n \n // Init Destroy\n m.init = function () {\n if (m.params.messages) {\n m.addMessages(m.params.messages, undefined, false);\n }\n else {\n if (m.params.autoLayout) m.layout(); \n m.scrollMessages(0);\n }\n \n };\n m.destroy = function () {\n m = null;\n };\n \n // Init\n m.init();\n \n m.container[0].f7Messages = m;\n return m;\n };\n app.messages = function (container, params) {\n return new Messages (container, params);\n };\n app.initPageMessages = function (pageContainer) {\n pageContainer = $(pageContainer);\n var messages = pageContainer.find('.messages');\n if (messages.length === 0) return;\n if (!messages.hasClass('messages-init')) {\n return;\n }\n var m = app.messages(messages, messages.dataset());\n \n // Destroy on page remove\n function pageBeforeRemove() {\n m.destroy();\n pageContainer.off('pageBeforeRemove', pageBeforeRemove);\n }\n if (pageContainer.hasClass('page')) {\n pageContainer.on('pageBeforeRemove', pageBeforeRemove);\n }\n };\n \n\n /*===============================================================================\n ************ Swipeout Actions (Swipe to delete) ************\n ===============================================================================*/\n app.swipeoutOpenedEl = undefined;\n app.allowSwipeout = true;\n app.initSwipeout = function (swipeoutEl) {\n var isTouched, isMoved, isScrolling, touchesStart = {}, touchStartTime, touchesDiff, swipeOutEl, swipeOutContent, actionsRight, actionsLeft, actionsLeftWidth, actionsRightWidth, translate, opened, openedActions, buttonsLeft, buttonsRight, direction, overswipeLeftButton, overswipeRightButton, overswipeLeft, overswipeRight, noFoldLeft, noFoldRight;\n $(document).on(app.touchEvents.start, function (e) {\n if (app.swipeoutOpenedEl) {\n var target = $(e.target);\n if (!(\n app.swipeoutOpenedEl.is(target[0]) ||\n target.parents('.swipeout').is(app.swipeoutOpenedEl) ||\n target.hasClass('modal-in') ||\n target.hasClass('modal-overlay') ||\n target.hasClass('actions-modal') || \n target.parents('.actions-modal.modal-in, .modal.modal-in').length > 0\n )) {\n app.swipeoutClose(app.swipeoutOpenedEl);\n }\n }\n });\n \n function handleTouchStart(e) {\n if (!app.allowSwipeout) return;\n isMoved = false;\n isTouched = true;\n isScrolling = undefined;\n touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n touchStartTime = (new Date()).getTime();\n }\n function handleTouchMove(e) {\n if (!isTouched) return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (typeof isScrolling === 'undefined') {\n isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x));\n }\n if (isScrolling) {\n isTouched = false;\n return;\n }\n \n if (!isMoved) {\n if ($('.list-block.sortable-opened').length > 0) return;\n /*jshint validthis:true */\n swipeOutEl = $(this);\n swipeOutContent = swipeOutEl.find('.swipeout-content');\n actionsRight = swipeOutEl.find('.swipeout-actions-right');\n actionsLeft = swipeOutEl.find('.swipeout-actions-left');\n actionsLeftWidth = actionsRightWidth = buttonsLeft = buttonsRight = overswipeRightButton = overswipeLeftButton = null;\n noFoldLeft = actionsLeft.hasClass('swipeout-actions-no-fold') || app.params.swipeoutActionsNoFold;\n noFoldRight = actionsRight.hasClass('swipeout-actions-no-fold') || app.params.swipeoutActionsNoFold;\n if (actionsLeft.length > 0) {\n actionsLeftWidth = actionsLeft.outerWidth();\n buttonsLeft = actionsLeft.children('a');\n overswipeLeftButton = actionsLeft.find('.swipeout-overswipe');\n }\n if (actionsRight.length > 0) {\n actionsRightWidth = actionsRight.outerWidth();\n buttonsRight = actionsRight.children('a');\n overswipeRightButton = actionsRight.find('.swipeout-overswipe');\n }\n opened = swipeOutEl.hasClass('swipeout-opened');\n if (opened) {\n openedActions = swipeOutEl.find('.swipeout-actions-left.swipeout-actions-opened').length > 0 ? 'left' : 'right';\n }\n swipeOutEl.removeClass('transitioning');\n if (!app.params.swipeoutNoFollow) {\n swipeOutEl.find('.swipeout-actions-opened').removeClass('swipeout-actions-opened');\n swipeOutEl.removeClass('swipeout-opened');\n }\n }\n isMoved = true;\n e.preventDefault();\n \n touchesDiff = pageX - touchesStart.x;\n translate = touchesDiff;\n \n if (opened) {\n if (openedActions === 'right') translate = translate - actionsRightWidth;\n else translate = translate + actionsLeftWidth;\n }\n \n if (translate > 0 && actionsLeft.length === 0 || translate < 0 && actionsRight.length === 0) {\n if (!opened) {\n isTouched = isMoved = false;\n swipeOutContent.transform('');\n if (buttonsRight && buttonsRight.length > 0) {\n buttonsRight.transform('');\n }\n if (buttonsLeft && buttonsLeft.length > 0) {\n buttonsLeft.transform('');\n }\n return;\n }\n translate = 0;\n }\n \n if (translate < 0) direction = 'to-left';\n else if (translate > 0) direction = 'to-right';\n else {\n if (direction) direction = direction;\n else direction = 'to-left';\n }\n \n var i, buttonOffset, progress;\n \n e.f7PreventPanelSwipe = true;\n if (app.params.swipeoutNoFollow) {\n if (opened) {\n if (openedActions === 'right' && touchesDiff > 0) {\n app.swipeoutClose(swipeOutEl);\n }\n if (openedActions === 'left' && touchesDiff < 0) {\n app.swipeoutClose(swipeOutEl);\n }\n }\n else {\n if (touchesDiff < 0 && actionsRight.length > 0) {\n app.swipeoutOpen(swipeOutEl, 'right');\n }\n if (touchesDiff > 0 && actionsLeft.length > 0) {\n app.swipeoutOpen(swipeOutEl, 'left');\n }\n }\n isTouched = false;\n isMoved = false;\n return;\n }\n overswipeLeft = false;\n overswipeRight = false;\n var $button;\n if (actionsRight.length > 0) {\n // Show right actions\n progress = translate / actionsRightWidth;\n if (translate < -actionsRightWidth) {\n translate = -actionsRightWidth - Math.pow(-translate - actionsRightWidth, 0.8);\n if (overswipeRightButton.length > 0) {\n overswipeRight = true;\n }\n }\n for (i = 0; i < buttonsRight.length; i++) {\n if (typeof buttonsRight[i]._buttonOffset === 'undefined') {\n buttonsRight[i]._buttonOffset = buttonsRight[i].offsetLeft;\n }\n buttonOffset = buttonsRight[i]._buttonOffset;\n $button = $(buttonsRight[i]);\n if (overswipeRightButton.length > 0 && $button.hasClass('swipeout-overswipe')) {\n $button.css({left: (overswipeRight ? -buttonOffset : 0) + 'px'});\n if (overswipeRight) {\n $button.addClass('swipeout-overswipe-active');\n }\n else {\n $button.removeClass('swipeout-overswipe-active'); \n }\n }\n $button.transform('translate3d(' + (translate - buttonOffset * (1 + Math.max(progress, -1))) + 'px,0,0)');\n }\n }\n if (actionsLeft.length > 0) {\n // Show left actions\n progress = translate / actionsLeftWidth;\n if (translate > actionsLeftWidth) {\n translate = actionsLeftWidth + Math.pow(translate - actionsLeftWidth, 0.8);\n if (overswipeLeftButton.length > 0) {\n overswipeLeft = true;\n }\n }\n for (i = 0; i < buttonsLeft.length; i++) {\n if (typeof buttonsLeft[i]._buttonOffset === 'undefined') {\n buttonsLeft[i]._buttonOffset = actionsLeftWidth - buttonsLeft[i].offsetLeft - buttonsLeft[i].offsetWidth;\n }\n buttonOffset = buttonsLeft[i]._buttonOffset;\n $button = $(buttonsLeft[i]);\n if (overswipeLeftButton.length > 0 && $button.hasClass('swipeout-overswipe')) {\n $button.css({left: (overswipeLeft ? buttonOffset : 0) + 'px'});\n if (overswipeLeft) {\n $button.addClass('swipeout-overswipe-active');\n }\n else {\n $button.removeClass('swipeout-overswipe-active'); \n }\n }\n if (buttonsLeft.length > 1) {\n $button.css('z-index', buttonsLeft.length - i); \n }\n $button.transform('translate3d(' + (translate + buttonOffset * (1 - Math.min(progress, 1))) + 'px,0,0)');\n }\n }\n swipeOutContent.transform('translate3d(' + translate + 'px,0,0)');\n }\n function handleTouchEnd(e) {\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n \n isTouched = false;\n isMoved = false;\n var timeDiff = (new Date()).getTime() - touchStartTime;\n var action, actionsWidth, actions, buttons, i, noFold;\n \n noFold = direction === 'to-left' ? noFoldRight : noFoldLeft;\n actions = direction === 'to-left' ? actionsRight : actionsLeft;\n actionsWidth = direction === 'to-left' ? actionsRightWidth : actionsLeftWidth;\n \n if (\n timeDiff < 300 && (touchesDiff < -10 && direction === 'to-left' || touchesDiff > 10 && direction === 'to-right') ||\n timeDiff >= 300 && Math.abs(translate) > actionsWidth / 2\n ) {\n action = 'open';\n }\n else {\n action = 'close';\n }\n if (timeDiff < 300) {\n if (Math.abs(translate) === 0) action = 'close';\n if (Math.abs(translate) === actionsWidth) action = 'open';\n }\n \n if (action === 'open') {\n app.swipeoutOpenedEl = swipeOutEl;\n swipeOutEl.trigger('open');\n swipeOutEl.addClass('swipeout-opened transitioning');\n var newTranslate = direction === 'to-left' ? -actionsWidth : actionsWidth;\n swipeOutContent.transform('translate3d(' + newTranslate + 'px,0,0)');\n actions.addClass('swipeout-actions-opened');\n buttons = direction === 'to-left' ? buttonsRight : buttonsLeft;\n if (buttons) {\n for (i = 0; i < buttons.length; i++) {\n $(buttons[i]).transform('translate3d(' + newTranslate + 'px,0,0)');\n }\n }\n if (overswipeRight) {\n actionsRight.find('.swipeout-overswipe')[0].click();\n }\n if (overswipeLeft) {\n actionsLeft.find('.swipeout-overswipe')[0].click();\n }\n }\n else {\n swipeOutEl.trigger('close');\n app.swipeoutOpenedEl = undefined;\n swipeOutEl.addClass('transitioning').removeClass('swipeout-opened');\n swipeOutContent.transform('');\n actions.removeClass('swipeout-actions-opened');\n }\n \n var buttonOffset;\n if (buttonsLeft && buttonsLeft.length > 0 && buttonsLeft !== buttons) {\n for (i = 0; i < buttonsLeft.length; i++) {\n buttonOffset = buttonsLeft[i]._buttonOffset;\n if (typeof buttonOffset === 'undefined') {\n buttonsLeft[i]._buttonOffset = actionsLeftWidth - buttonsLeft[i].offsetLeft - buttonsLeft[i].offsetWidth;\n }\n $(buttonsLeft[i]).transform('translate3d(' + (buttonOffset) + 'px,0,0)');\n }\n }\n if (buttonsRight && buttonsRight.length > 0 && buttonsRight !== buttons) {\n for (i = 0; i < buttonsRight.length; i++) {\n buttonOffset = buttonsRight[i]._buttonOffset;\n if (typeof buttonOffset === 'undefined') {\n buttonsRight[i]._buttonOffset = buttonsRight[i].offsetLeft;\n }\n $(buttonsRight[i]).transform('translate3d(' + (-buttonOffset) + 'px,0,0)');\n }\n }\n swipeOutContent.transitionEnd(function (e) {\n if (opened && action === 'open' || closed && action === 'close') return;\n swipeOutEl.trigger(action === 'open' ? 'opened' : 'closed');\n if (opened && action === 'close') {\n if (actionsRight.length > 0) {\n buttonsRight.transform('');\n }\n if (actionsLeft.length > 0) {\n buttonsLeft.transform('');\n }\n }\n });\n }\n if (swipeoutEl) {\n $(swipeoutEl).on(app.touchEvents.start, handleTouchStart);\n $(swipeoutEl).on(app.touchEvents.move, handleTouchMove);\n $(swipeoutEl).on(app.touchEvents.end, handleTouchEnd);\n }\n else {\n $(document).on(app.touchEvents.start, '.list-block li.swipeout', handleTouchStart);\n $(document).on(app.touchEvents.move, '.list-block li.swipeout', handleTouchMove);\n $(document).on(app.touchEvents.end, '.list-block li.swipeout', handleTouchEnd);\n }\n \n };\n app.swipeoutOpen = function (el, dir, callback) {\n el = $(el);\n if (arguments.length === 2) {\n if (typeof arguments[1] === 'function') {\n callback = dir;\n }\n }\n \n if (el.length === 0) return;\n if (el.length > 1) el = $(el[0]);\n if (!el.hasClass('swipeout') || el.hasClass('swipeout-opened')) return;\n if (!dir) {\n if (el.find('.swipeout-actions-right').length > 0) dir = 'right';\n else dir = 'left';\n }\n var swipeOutActions = el.find('.swipeout-actions-' + dir);\n if (swipeOutActions.length === 0) return;\n var noFold = swipeOutActions.hasClass('swipeout-actions-no-fold') || app.params.swipeoutActionsNoFold;\n el.trigger('open').addClass('swipeout-opened').removeClass('transitioning');\n swipeOutActions.addClass('swipeout-actions-opened');\n var buttons = swipeOutActions.children('a');\n var swipeOutActionsWidth = swipeOutActions.outerWidth();\n var translate = dir === 'right' ? -swipeOutActionsWidth : swipeOutActionsWidth;\n var i;\n if (buttons.length > 1) {\n for (i = 0; i < buttons.length; i++) {\n if (dir === 'right') {\n $(buttons[i]).transform('translate3d(' + (- buttons[i].offsetLeft) + 'px,0,0)');\n }\n else {\n $(buttons[i]).css('z-index', buttons.length - i).transform('translate3d(' + (swipeOutActionsWidth - buttons[i].offsetWidth - buttons[i].offsetLeft) + 'px,0,0)');\n }\n }\n var clientLeft = buttons[1].clientLeft;\n }\n el.addClass('transitioning');\n for (i = 0; i < buttons.length; i++) {\n $(buttons[i]).transform('translate3d(' + (translate) + 'px,0,0)');\n }\n el.find('.swipeout-content').transform('translate3d(' + translate + 'px,0,0)').transitionEnd(function () {\n el.trigger('opened');\n if (callback) callback.call(el[0]);\n });\n app.swipeoutOpenedEl = el;\n };\n app.swipeoutClose = function (el, callback) {\n el = $(el);\n if (el.length === 0) return;\n if (!el.hasClass('swipeout-opened')) return;\n var dir = el.find('.swipeout-actions-opened').hasClass('swipeout-actions-right') ? 'right' : 'left';\n var swipeOutActions = el.find('.swipeout-actions-opened').removeClass('swipeout-actions-opened');\n var noFold = swipeOutActions.hasClass('swipeout-actions-no-fold') || app.params.swipeoutActionsNoFold;\n var buttons = swipeOutActions.children('a');\n var swipeOutActionsWidth = swipeOutActions.outerWidth();\n app.allowSwipeout = false;\n el.trigger('close');\n el.removeClass('swipeout-opened').addClass('transitioning');\n \n var closeTO;\n function onSwipeoutClose() {\n app.allowSwipeout = true;\n if (el.hasClass('swipeout-opened')) return;\n el.removeClass('transitioning');\n buttons.transform('');\n el.trigger('closed');\n if (callback) callback.call(el[0]);\n if (closeTO) clearTimeout(closeTO);\n }\n el.find('.swipeout-content').transform('').transitionEnd(onSwipeoutClose);\n closeTO = setTimeout(onSwipeoutClose, 500);\n \n for (var i = 0; i < buttons.length; i++) {\n if (dir === 'right') {\n $(buttons[i]).transform('translate3d(' + (-buttons[i].offsetLeft) + 'px,0,0)');\n }\n else {\n $(buttons[i]).transform('translate3d(' + (swipeOutActionsWidth - buttons[i].offsetWidth - buttons[i].offsetLeft) + 'px,0,0)');\n }\n $(buttons[i]).css({left:0 + 'px'}).removeClass('swipeout-overswipe-active');\n }\n if (app.swipeoutOpenedEl && app.swipeoutOpenedEl[0] === el[0]) app.swipeoutOpenedEl = undefined;\n };\n app.swipeoutDelete = function (el, callback) {\n el = $(el);\n if (el.length === 0) return;\n if (el.length > 1) el = $(el[0]);\n app.swipeoutOpenedEl = undefined;\n el.trigger('delete');\n el.css({height: el.outerHeight() + 'px'});\n var clientLeft = el[0].clientLeft;\n el.css({height: 0 + 'px'}).addClass('deleting transitioning').transitionEnd(function () {\n el.trigger('deleted');\n if (callback) callback.call(el[0]);\n if (el.parents('.virtual-list').length > 0) {\n var virtualList = el.parents('.virtual-list')[0].f7VirtualList;\n var virtualIndex = el[0].f7VirtualListIndex;\n if (virtualList && typeof virtualIndex !== 'undefined') virtualList.deleteItem(virtualIndex);\n }\n else {\n el.remove();\n }\n });\n var translate = '-100%';\n el.find('.swipeout-content').transform('translate3d(' + translate + ',0,0)');\n };\n \n\n /*===============================================================================\n ************ Sortable ************\n ===============================================================================*/\n app.sortableToggle = function (sortableContainer) {\n sortableContainer = $(sortableContainer);\n if (sortableContainer.length === 0) sortableContainer = $('.list-block.sortable');\n sortableContainer.toggleClass('sortable-opened');\n if (sortableContainer.hasClass('sortable-opened')) {\n sortableContainer.trigger('open');\n }\n else {\n sortableContainer.trigger('close');\n }\n return sortableContainer;\n };\n app.sortableOpen = function (sortableContainer) {\n sortableContainer = $(sortableContainer);\n if (sortableContainer.length === 0) sortableContainer = $('.list-block.sortable');\n sortableContainer.addClass('sortable-opened');\n sortableContainer.trigger('open');\n return sortableContainer;\n };\n app.sortableClose = function (sortableContainer) {\n sortableContainer = $(sortableContainer);\n if (sortableContainer.length === 0) sortableContainer = $('.list-block.sortable');\n sortableContainer.removeClass('sortable-opened');\n sortableContainer.trigger('close');\n return sortableContainer;\n };\n app.initSortable = function () {\n var isTouched, isMoved, touchStartY, touchesDiff, sortingEl, sortingElHeight, sortingItems, minTop, maxTop, insertAfter, insertBefore, sortableContainer;\n \n function handleTouchStart(e) {\n isMoved = false;\n isTouched = true;\n touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n /*jshint validthis:true */\n sortingEl = $(this).parent();\n sortingItems = sortingEl.parent().find('li');\n sortableContainer = sortingEl.parents('.sortable');\n e.preventDefault();\n app.allowPanelOpen = app.allowSwipeout = false;\n }\n function handleTouchMove(e) {\n if (!isTouched || !sortingEl) return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (!isMoved) {\n sortingEl.addClass('sorting');\n sortableContainer.addClass('sortable-sorting');\n minTop = sortingEl[0].offsetTop;\n maxTop = sortingEl.parent().height() - sortingEl[0].offsetTop - sortingEl.height();\n sortingElHeight = sortingEl[0].offsetHeight;\n }\n isMoved = true;\n \n e.preventDefault();\n e.f7PreventPanelSwipe = true;\n touchesDiff = pageY - touchStartY;\n var translate = touchesDiff;\n if (translate < -minTop) translate = -minTop;\n if (translate > maxTop) translate = maxTop;\n sortingEl.transform('translate3d(0,' + translate + 'px,0)');\n \n insertBefore = insertAfter = undefined;\n \n sortingItems.each(function () {\n var currentEl = $(this);\n if (currentEl[0] === sortingEl[0]) return;\n var currentElOffset = currentEl[0].offsetTop;\n var currentElHeight = currentEl.height();\n var sortingElOffset = sortingEl[0].offsetTop + translate;\n \n if ((sortingElOffset >= currentElOffset - currentElHeight / 2) && sortingEl.index() < currentEl.index()) {\n currentEl.transform('translate3d(0, '+(-sortingElHeight)+'px,0)');\n insertAfter = currentEl;\n insertBefore = undefined;\n }\n else if ((sortingElOffset <= currentElOffset + currentElHeight / 2) && sortingEl.index() > currentEl.index()) {\n currentEl.transform('translate3d(0, '+(sortingElHeight)+'px,0)');\n insertAfter = undefined;\n if (!insertBefore) insertBefore = currentEl;\n }\n else {\n $(this).transform('translate3d(0, 0%,0)');\n }\n });\n }\n function handleTouchEnd(e) {\n app.allowPanelOpen = app.allowSwipeout = true;\n if (!isTouched || !isMoved) {\n isTouched = false;\n isMoved = false;\n return;\n }\n e.preventDefault();\n sortingItems.transform('');\n sortingEl.removeClass('sorting');\n sortableContainer.removeClass('sortable-sorting');\n var virtualList, oldIndex, newIndex;\n if (insertAfter) {\n sortingEl.insertAfter(insertAfter);\n sortingEl.trigger('sort');\n }\n if (insertBefore) {\n sortingEl.insertBefore(insertBefore);\n sortingEl.trigger('sort');\n }\n if ((insertAfter || insertBefore) && sortableContainer.hasClass('virtual-list')) {\n virtualList = sortableContainer[0].f7VirtualList;\n oldIndex = sortingEl[0].f7VirtualListIndex;\n newIndex = insertBefore ? insertBefore[0].f7VirtualListIndex : insertAfter[0].f7VirtualListIndex;\n if (virtualList) virtualList.moveItem(oldIndex, newIndex);\n }\n insertAfter = insertBefore = undefined;\n isTouched = false;\n isMoved = false;\n }\n $(document).on(app.touchEvents.start, '.list-block.sortable .sortable-handler', handleTouchStart);\n if (app.support.touch) {\n $(document).on(app.touchEvents.move, '.list-block.sortable .sortable-handler', handleTouchMove);\n $(document).on(app.touchEvents.end, '.list-block.sortable .sortable-handler', handleTouchEnd);\n }\n else {\n $(document).on(app.touchEvents.move, handleTouchMove);\n $(document).on(app.touchEvents.end, handleTouchEnd);\n }\n \n };\n \n\n /*===============================================================================\n ************ Smart Select ************\n ===============================================================================*/\n app.initSmartSelects = function (pageContainer) {\n pageContainer = $(pageContainer);\n var selects;\n if (pageContainer.is('.smart-select')) {\n selects = pageContainer;\n }\n else {\n selects = pageContainer.find('.smart-select');\n }\n if (selects.length === 0) return;\n \n selects.each(function () {\n var smartSelect = $(this);\n \n var $select = smartSelect.find('select');\n if ($select.length === 0) return;\n \n var select = $select[0];\n if (select.length === 0) return;\n \n var valueText = [];\n for (var i = 0; i < select.length; i++) {\n if (select[i].selected) valueText.push(select[i].textContent.trim());\n }\n \n var itemAfter = smartSelect.find('.item-after');\n if (itemAfter.length === 0) {\n smartSelect.find('.item-inner').append('
' + valueText.join(', ') + '
');\n }\n else {\n var selectedText = itemAfter.text();\n if (itemAfter.hasClass('smart-select-value')) {\n for (i = 0; i < select.length; i++) {\n select[i].selected = select[i].textContent.trim() === selectedText.trim();\n }\n } else {\n itemAfter.text(valueText.join(', '));\n }\n }\n \n });\n \n };\n app.smartSelectAddOption = function (select, option, index) {\n select = $(select);\n var smartSelect = select.parents('.smart-select');\n if (typeof index === 'undefined') {\n select.append(option);\n }\n else {\n $(option).insertBefore(select.find('option').eq(index));\n }\n app.initSmartSelects(smartSelect);\n var selectName = smartSelect.find('select').attr('name');\n var opened = $('.page.smart-select-page[data-select-name=\"' + selectName + '\"]').length > 0;\n if (opened) {\n app.smartSelectOpen(smartSelect, true);\n }\n };\n app.smartSelectOpen = function (smartSelect, reLayout) {\n smartSelect = $(smartSelect);\n if (smartSelect.length === 0) return;\n \n // Find related view\n var view = smartSelect.parents('.' + app.params.viewClass);\n if (view.length === 0) return;\n view = view[0].f7View;\n \n // Parameters\n var openIn = smartSelect.attr('data-open-in') || app.params.smartSelectOpenIn;\n if (openIn === 'popup') {\n if ($('.popup.smart-select-popup').length > 0) return;\n }\n else if (openIn === 'picker') {\n if ($('.picker-modal.modal-in').length > 0 && !reLayout){\n if (smartSelect[0].f7SmartSelectPicker !== $('.picker-modal.modal-in:not(.modal-out)')[0]) app.closeModal($('.picker-modal.modal-in:not(.modal-out)'));\n else return;\n }\n }\n else {\n if (!view) return;\n }\n \n var smartSelectData = smartSelect.dataset();\n var pageTitle = smartSelectData.pageTitle || smartSelect.find('.item-title').text();\n var backText = smartSelectData.backText || app.params.smartSelectBackText;\n var closeText;\n if (openIn === 'picker') {\n closeText = smartSelectData.pickerCloseText || smartSelectData.backText || app.params.smartSelectPickerCloseText ; \n }\n else {\n closeText = smartSelectData.popupCloseText || smartSelectData.backText || app.params.smartSelectPopupCloseText ; \n }\n var backOnSelect = smartSelectData.backOnSelect !== undefined ? smartSelectData.backOnSelect : app.params.smartSelectBackOnSelect;\n var formTheme = smartSelectData.formTheme || app.params.smartSelectFormTheme;\n var navbarTheme = smartSelectData.navbarTheme || app.params.smartSelectNavbarTheme;\n var toolbarTheme = smartSelectData.toolbarTheme || app.params.smartSelectToolbarTheme;\n var virtualList = smartSelectData.virtualList;\n var virtualListHeight = smartSelectData.virtualListHeight;\n var material = app.params.material;\n var pickerHeight = smartSelectData.pickerHeight || app.params.smartSelectPickerHeight;\n \n // Collect all options/values\n var select = smartSelect.find('select')[0];\n var $select = $(select);\n var $selectData = $select.dataset();\n if (select.disabled || smartSelect.hasClass('disabled') || $select.hasClass('disabled')) {\n return;\n }\n var values = [];\n var id = (new Date()).getTime();\n var inputType = select.multiple ? 'checkbox' : 'radio';\n var inputName = inputType + '-' + id;\n var maxLength = $select.attr('maxlength');\n var selectName = select.name;\n var option, optionHasMedia, optionImage, optionIcon, optionGroup, optionGroupLabel, optionPreviousGroup, optionIsLabel, previousGroup, optionColor, optionClassName, optionData;\n for (var i = 0; i < select.length; i++) {\n option = $(select[i]);\n optionData = option.dataset();\n optionImage = optionData.optionImage || $selectData.optionImage || smartSelectData.optionImage;\n optionIcon = optionData.optionIcon || $selectData.optionIcon || smartSelectData.optionIcon;\n optionHasMedia = optionImage || optionIcon || inputType === 'checkbox';\n if (material) optionHasMedia = optionImage || optionIcon;\n optionColor = optionData.optionColor;\n optionClassName = optionData.optionClass;\n if (option[0].disabled) optionClassName += ' disabled';\n optionGroup = option.parent('optgroup')[0];\n optionGroupLabel = optionGroup && optionGroup.label;\n optionIsLabel = false;\n if (optionGroup) {\n if (optionGroup !== previousGroup) {\n optionIsLabel = true;\n previousGroup = optionGroup;\n values.push({\n groupLabel: optionGroupLabel,\n isLabel: optionIsLabel\n });\n }\n }\n values.push({\n value: option[0].value,\n text: option[0].textContent.trim(),\n selected: option[0].selected,\n group: optionGroup,\n groupLabel: optionGroupLabel,\n image: optionImage,\n icon: optionIcon,\n color: optionColor,\n className: optionClassName,\n disabled: option[0].disabled,\n inputType: inputType,\n id: id,\n hasMedia: optionHasMedia,\n checkbox: inputType === 'checkbox',\n inputName: inputName,\n material: app.params.material\n });\n }\n \n \n // Item template/HTML\n if (!app._compiledTemplates.smartSelectItem) {\n app._compiledTemplates.smartSelectItem = t7.compile(app.params.smartSelectItemTemplate || \n '{{#if isLabel}}' +\n '
  • {{groupLabel}}
  • ' +\n '{{else}}' +\n '' +\n '' +\n '' +\n '{{/if}}'\n );\n }\n var smartSelectItemTemplate = app._compiledTemplates.smartSelectItem;\n \n var inputsHTML = '';\n if (!virtualList) {\n for (var j = 0; j < values.length; j++) {\n inputsHTML += smartSelectItemTemplate(values[j]);\n }\n }\n \n // Toolbar / Navbar\n var toolbarHTML = '', navbarHTML;\n var noNavbar = '', noToolbar = '', noTabbar = '', navbarLayout;\n \n if (openIn === 'picker') {\n if (!app._compiledTemplates.smartSelectToolbar) {\n app._compiledTemplates.smartSelectToolbar = t7.compile(app.params.smartSelectToolbarTemplate || \n '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    '\n );\n }\n \n toolbarHTML = app._compiledTemplates.smartSelectToolbar({\n pageTitle: pageTitle,\n closeText: closeText,\n openIn: openIn,\n toolbarTheme: toolbarTheme,\n inPicker: openIn === 'picker' \n });\n }\n else {\n // Navbar HTML\n if (!app._compiledTemplates.smartSelectNavbar) {\n app._compiledTemplates.smartSelectNavbar = t7.compile(app.params.smartSelectNavbarTemplate || \n '
    ' +\n '
    ' +\n '{{leftTemplate}}' +\n '
    {{pageTitle}}
    ' +\n '
    ' +\n '
    '\n );\n }\n navbarHTML = app._compiledTemplates.smartSelectNavbar({\n pageTitle: pageTitle,\n backText: backText,\n closeText: closeText,\n openIn: openIn,\n navbarTheme: navbarTheme,\n inPopup: openIn === 'popup',\n inPage: openIn === 'page',\n leftTemplate: openIn === 'popup' ? \n (app.params.smartSelectPopupCloseTemplate || (material ? '
    ' : '')).replace(/{{closeText}}/g, closeText) :\n (app.params.smartSelectBackTemplate || (material ? '
    ' : '')).replace(/{{backText}}/g, backText)\n });\n // Determine navbar layout type - static/fixed/through\n if (openIn === 'page') {\n navbarLayout = 'static';\n if (smartSelect.parents('.navbar-through').length > 0) navbarLayout = 'through';\n if (smartSelect.parents('.navbar-fixed').length > 0) navbarLayout = 'fixed';\n noToolbar = smartSelect.parents('.page').hasClass('no-toolbar') ? 'no-toolbar' : '';\n noNavbar = smartSelect.parents('.page').hasClass('no-navbar') ? 'no-navbar' : 'navbar-' + navbarLayout;\n noTabbar = smartSelect.parents('.page').hasClass('no-tabbar') ? 'no-tabbar' : '';\n }\n else {\n navbarLayout = 'fixed';\n }\n }\n \n \n // Page Layout\n var pageName = 'smart-select-' + inputName;\n \n var useSearchbar = typeof smartSelect.data('searchbar') === 'undefined' ? app.params.smartSelectSearchbar : (smartSelect.data('searchbar') === 'true' ? true : false);\n var searchbarPlaceholder, searchbarCancel;\n \n if (useSearchbar) {\n searchbarPlaceholder = smartSelect.data('searchbar-placeholder') || 'Search';\n searchbarCancel = smartSelect.data('searchbar-cancel') || 'Cancel';\n }\n \n var searchbarHTML = '
    ' +\n '
    ' +\n '' +\n '' +\n '
    ' +\n (material ? '' : '' + searchbarCancel + '') +\n '
    ' +\n '
    ';\n \n var pageHTML =\n (openIn !== 'picker' && navbarLayout === 'through' ? navbarHTML : '') +\n '
    ' +\n '
    ' +\n (openIn !== 'picker' && navbarLayout === 'fixed' ? navbarHTML : '') +\n (useSearchbar ? searchbarHTML : '') +\n '
    ' +\n (openIn !== 'picker' && navbarLayout === 'static' ? navbarHTML : '') +\n '
    ' +\n '
      ' +\n (virtualList ? '' : inputsHTML) +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ';\n \n // Define popup and picker\n var popup, picker;\n \n // Scroll SS Picker To Input\n function scrollToInput() {\n var pageContent = smartSelect.parents('.page-content');\n if (pageContent.length === 0) return;\n var paddingTop = parseInt(pageContent.css('padding-top'), 10),\n paddingBottom = parseInt(pageContent.css('padding-bottom'), 10),\n pageHeight = pageContent[0].offsetHeight - paddingTop - picker.height(),\n pageScrollHeight = pageContent[0].scrollHeight - paddingTop - picker.height(),\n newPaddingBottom;\n var inputTop = smartSelect.offset().top - paddingTop + smartSelect[0].offsetHeight;\n if (inputTop > pageHeight) {\n var scrollTop = pageContent.scrollTop() + inputTop - pageHeight;\n if (scrollTop + pageHeight > pageScrollHeight) {\n newPaddingBottom = scrollTop + pageHeight - pageScrollHeight + paddingBottom;\n if (pageHeight === pageScrollHeight) {\n newPaddingBottom = picker.height();\n }\n pageContent.css({'padding-bottom': (newPaddingBottom) + 'px'});\n }\n pageContent.scrollTop(scrollTop, 300);\n }\n }\n // Close SS Picker on HTML Click\n function closeOnHTMLClick(e) {\n var close = true;\n if (e.target === smartSelect[0] || $(e.target).parents(smartSelect[0]).length > 0) {\n close = false;\n }\n if ($(e.target).parents('.picker-modal').length > 0) {\n close = false;\n }\n if (close) {\n app.closeModal('.smart-select-picker.modal-in'); \n }\n }\n \n // Check max length\n function checkMaxLength(container) {\n if (select.selectedOptions.length >= maxLength) {\n container.find('input[type=\"checkbox\"]').each(function () {\n if (!this.checked) {\n $(this).parents('li').addClass('disabled');\n }\n else {\n $(this).parents('li').removeClass('disabled'); \n }\n });\n }\n else {\n container.find('.disabled').removeClass('disabled');\n }\n }\n // Event Listeners on new page\n function handleInputs(container) {\n container = $(container);\n if (virtualList) {\n var virtualListInstance = app.virtualList(container.find('.virtual-list'), {\n items: values,\n template: smartSelectItemTemplate,\n height: virtualListHeight || undefined,\n searchByItem: function (query, index, item) {\n if (item.text.toLowerCase().indexOf(query.trim().toLowerCase()) >=0 ) return true;\n return false;\n }\n });\n container.once(openIn === 'popup' || openIn === 'picker' ? 'closed': 'pageBeforeRemove', function () {\n if (virtualListInstance && virtualListInstance.destroy) virtualListInstance.destroy();\n });\n }\n if (maxLength) {\n checkMaxLength(container);\n }\n container.on('change', 'input[name=\"' + inputName + '\"]', function () {\n var input = this;\n var value = input.value;\n var optionText = [];\n if (input.type === 'checkbox') {\n var values = [];\n for (var i = 0; i < select.options.length; i++) {\n var option = select.options[i];\n if (option.value === value) {\n option.selected = input.checked;\n }\n if (option.selected) {\n optionText.push(option.textContent.trim());\n }\n }\n if (maxLength) {\n checkMaxLength(container);\n }\n }\n else {\n optionText = [smartSelect.find('option[value=\"' + value + '\"]').text()];\n select.value = value;\n }\n \n $select.trigger('change');\n smartSelect.find('.item-after').text(optionText.join(', '));\n if (backOnSelect && inputType === 'radio') {\n if (openIn === 'popup') app.closeModal(popup);\n else if (openIn === 'picker') app.closeModal(picker);\n else view.router.back();\n }\n });\n }\n function pageInit(e) {\n var page = e.detail.page;\n if (page.name === pageName) {\n handleInputs(page.container);\n }\n }\n if (openIn === 'popup') {\n if (reLayout) {\n popup = $('.popup.smart-select-popup .view');\n popup.html(pageHTML);\n }\n else {\n popup = app.popup(\n '
    ' +\n '
    ' +\n pageHTML +\n '
    ' +\n '
    '\n );\n popup = $(popup);\n }\n app.initPage(popup.find('.page'));\n handleInputs(popup);\n }\n else if (openIn === 'picker') {\n if (reLayout) {\n picker = $('.picker-modal.smart-select-picker .view');\n picker.html(pageHTML);\n }\n else {\n picker = app.pickerModal(\n '
    ' +\n toolbarHTML +\n '
    ' +\n '
    ' +\n pageHTML +\n '
    ' +\n '
    ' +\n '
    '\n );\n picker = $(picker);\n \n // Scroll To Input\n scrollToInput();\n \n // Close On Click\n $('html').on('click', closeOnHTMLClick);\n \n // On Close\n picker.once('close', function () {\n // Reset linked picker\n smartSelect[0].f7SmartSelectPicker = undefined;\n \n // Detach html click\n $('html').off('click', closeOnHTMLClick); \n \n // Restore page padding bottom\n smartSelect.parents('.page-content').css({paddingBottom: ''});\n });\n \n // Link Picker\n smartSelect[0].f7SmartSelectPicker = picker[0];\n }\n \n // Init Page\n app.initPage(picker.find('.page'));\n \n // Attach events\n handleInputs(picker);\n }\n else {\n $(document).once('pageInit', '.smart-select-page', pageInit);\n view.router.load({\n content: pageHTML,\n reload: reLayout ? true : undefined\n });\n }\n };\n \n\n /*===============================================================================\n ************ Virtual List ************\n ===============================================================================*/\n var VirtualList = function (listBlock, params) {\n var defaults = {\n cols: 1,\n height: app.params.material ? 48 : 44,\n cache: true,\n dynamicHeightBufferSize: 1,\n showFilteredItemsOnly: false\n };\n params = params || {};\n for (var def in defaults) {\n if (typeof params[def] === 'undefined') {\n params[def] = defaults[def];\n }\n }\n \n // Preparation\n var vl = this;\n vl.listBlock = $(listBlock);\n vl.params = params;\n vl.items = vl.params.items;\n if (vl.params.showFilteredItemsOnly) {\n vl.filteredItems = [];\n }\n if (vl.params.template) {\n if (typeof vl.params.template === 'string') vl.template = t7.compile(vl.params.template);\n else if (typeof vl.params.template === 'function') vl.template = vl.params.template;\n }\n vl.pageContent = vl.listBlock.parents('.page-content');\n \n // Bad scroll\n var updatableScroll;\n if (typeof vl.params.updatableScroll !== 'undefined') {\n updatableScroll = vl.params.updatableScroll;\n }\n else {\n updatableScroll = true;\n if (app.device.ios && app.device.osVersion.split('.')[0] < 8) {\n updatableScroll = false;\n }\n }\n \n // Append