{"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","pushStatePreventOnLoad","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","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","ios","disable","_disable","blur","val","clear","query","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","offsetLeft","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","f7DestroyLazyLoad","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","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","textareas","itemInput","notInputs","initMaterialWatchInputs","addFocusState","els","removeFocusState","watchChangeState","pushStateQueue","queue","stateUrl","stateContent","statePageName","initPushState","handlePopState","blockPopstate","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","searchbarPlaceholderText","searchbarCancelText","notFoundText","valueProperty","textProperty","updateInputValueOnSelect","expandInput","preloaderColor","preloader","opener","itemTemplate","dropdownItemTemplate","dropdownPlaceholderTemplate","dropdownTemplate","dropdown","handleInputValue","source","itemsHTML","limit","regExp","RegExp","itemValue","dropdownPlaceholderText","handleDropdownClick","clickedItem","onChange","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","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","autoplayStopOnLast","stopAutoplay","_slideTo","findElementInEvent","_el","initObserver","ObserverFunc","MutationObserver","WebkitMutationObserver","observer","mutations","forEach","mutation","onResize","emit","observe","childList","characterData","observers","setParallaxTransform","pX","pY","rtlFactor","normalizeEventName","touchEventsTarget","autoplayDisableOnInteraction","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","coverflow","rotate","stretch","modifier","slideShadows","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","pagination","paginationElement","paginationClickable","paginationHide","paginationBulletRender","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","grabCursor","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","control","controlInverse","controlBy","allowSwipeToPrev","allowSwipeToNext","swipeHandler","noSwiping","noSwipingClass","slideClass","slideActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slidePrevClass","wrapperClass","bulletClass","bulletActiveClass","buttonDisabledClass","paginationHiddenClass","observeParents","a11y","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","runCallbacksOnInit","initialVirtualTranslate","originalParams","jQuery","deepParam","deepDef","Zepto","currentBreakpoint","getActiveBreakpoint","point","breakpoint","points","setBreakpoint","breakPointsParams","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","bullets","bulletIndex","updatePagination","bulletsHTML","numberOfBullets","initPagination","updateTranslate","forceSetTranslate","setWrapperTranslate","set","translated","controller","spline","forceUpdatePagination","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","nextSlide","slideReset","stopIndex","groupSize","ratio","slideIndex","runCallbacks","lazy","setHash","_slidePrev","byController","effects","setTransition","z","setTranslate","initObservers","containerParents","disconnectObservers","disconnect","createLoop","prependSlides","appendSlides","destroyLoop","appendSlide","prependSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","tx","ty","slideOpacity","eventTriggered","triggerEvents","cubeShadow","wrapperRotate","slideAngle","tz","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","shadowAngle","multiplier","sin","scale1","scale2","zFactor","isSafari","isUiWebView","slideOffset","offsetMultiplier","rotateY","rotateX","translateZ","slideTransform","zIndex","ws","perspectiveOrigin","initialImageLoaded","loadImageInSlide","loadInDuplicate","_img","background","slideOriginalIndex","originalSlide","duplicatedSlide","prevSlide","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","maxIndex","minIndex","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.0\n * Full Featured Mobile HTML Framework For Building iOS & Android Apps\n * \n * http://www.idangero.us/framework7\n * \n * Copyright 2015, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n * \n * Licensed under MIT\n * \n * Released on: December 7, 2015\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.0';\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 pushStatePreventOnLoad: 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, .item-label-href , .item-thumbnail-href ', // 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 && 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 \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, 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, 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) center.transform('translate3d(' + center[0].f7NavbarLeftOffset + 'px, 0, 0)');\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 }\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 () {\n function _enable() {\n if ((s.searchList.length || s.params.customSearch) && !s.container.hasClass('searchbar-active')) 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) {\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 function _disable() {\n s.input.blur();\n s.triggerEvent('disableSearch', 'onDisable');\n s.active = false;\n }\n if (app.device.ios) {\n setTimeout(function () {\n _disable();\n }, 400);\n }\n else {\n _disable();\n }\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 if (!internal) {\n s.input.val(query);\n }\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 if (newNavbarPosition === 'left' && sliding.hasClass('center') && $(oldNavbarInner).find('.left .back .icon ~ span').length > 0) {\n slidingOffset += $(oldNavbarInner).find('.left .back span')[0].offsetLeft;\n }\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.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 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 ($('.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].f7DestroyLazyLoad();\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 = '', 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 }\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