jQuery(function(){
	"use strict";
	var MateriaApp=function(){
		this.isMobile=null,
		this.navHorizontal=!1,
		this.fixedHeader=!0,
		this.themeActive="theme-zero",
		this.navFull=!1,
		this.navOffCanvas=!1,
		this.mainContainer=$(".main-container"),
		this.siteHead=$(".site-head"),
		this.siteSettings=$(".site-settings"),
		this.app=$(".app"),
		this.navWrap=$(".nav-wrap"),
		this.contentContainer=$(".content-container"),
		this._init()
	};
	MateriaApp.prototype._init=function(){
		this._checkMobile(),
		this.toggleSiteNav(),
		this.initDefaultSettings(),
		this.initRipple(),
		this.toggleSettingsBox(),
		this.initPerfectScrollbars(),
		this.toggleFullScreen(),
		this.toggleFloatingSidebar(),
		this.initNavAccordion()
	},
	MateriaApp.prototype.initDefaultSettings=function(){
		function onNavHorizontal(){
			this.checked?(that.navHorizontal=!0,
			that.mainContainer.addClass("nav-horizontal")):(that.navHorizontal=!1,
			that.mainContainer.removeClass("nav-horizontal")),
			setTimeout(function(){
				sQuery.navHorizontal=that.navHorizontal,
				statesQuery.put(sQuery)})
		}
		function onFixedHeader(){
			this.checked?(that.fixedHeader=!0,that.siteHead.addClass("fixedHeader"),
			that.contentContainer.addClass("fixedHeader")):(that.fixedHeader=!1,
			that.siteHead.removeClass("fixedHeader"),
			that.contentContainer.removeClass("fixedHeader")),
			setTimeout(function(){
				sQuery.fixedHeader=that.fixedHeader,
				statesQuery.put(sQuery)
			})
		}
		function onNavFull(){
			var elems=["body",".main-container",".nav-wrap",".content-container"];
			this.checked?(that.navFull=!0,elems.forEach(
			function(el){$(el).addClass("nav-expand")})):(that.navFull=!1,
			elems.forEach(function(el){$(el).removeClass("nav-expand")})),
			setTimeout(function(){sQuery.navFull=that.navFull,statesQuery.put(sQuery)})
		}
		function onThemeChange(e){
			var $t=$(this),
			$list=that.siteSettings.find("#themeColor li");
			$list.removeClass("active"),
			$t.addClass("active"),
			that.app.removeClass(that.themeActive),
			that.themeActive=$t.data("theme"),
			sQuery.themeActive=that.themeActive,
			statesQuery.put(sQuery),
			that.app.addClass(that.themeActive),
			e.preventDefault()
		}
		var that=this,
			SETTINGS_STATES="_setting-states",
			statesQuery={get:function(){return JSON.parse(localStorage.getItem(SETTINGS_STATES))},
			put:function(states){localStorage.setItem(SETTINGS_STATES,JSON.stringify(states))}},
			sQuery=statesQuery.get()||{navHorizontal:that.navHorizontal,fixedHeader:that.fixedHeader,navFull:that.navFull,themeActive:that.themeActive};
			if(sQuery&&(this.navHorizontal=sQuery.navHorizontal,
			this.fixedHeader=sQuery.fixedHeader,
			this.navFull=sQuery.navFull,
			this.themeActive=sQuery.themeActive),
			this.siteSettings.find("#navHorizontal").on("change",onNavHorizontal),
			this.siteSettings.find("#fixedHeader").on("change",onFixedHeader),
			this.siteSettings.find("#navFull").on("change",onNavFull),
			this.siteSettings.find("#themeColor li").on("click touchstart",onThemeChange),
			this.app.addClass(this.themeActive),
			this.navFull){
				this.siteSettings.find("#navFull")[0].checked=!0;
				var elems=["body",".main-container",".nav-wrap",".content-container"];
				elems.forEach(function(el){$(el).addClass("nav-expand")})
			}
			this.navHorizontal&&(this.siteSettings.find("#navHorizontal")[0].checked=!0,
			this.mainContainer.addClass("nav-horizontal")),
			this.fixedHeader&&(this.siteSettings.find("#fixedHeader")[0].checked=!0,
			this.siteHead.addClass("fixedHeader"),
			this.contentContainer.addClass("fixedHeader")),
			this.navOffCanvas&&this.navWrap.addClass("nav-offcanvas")
	},
	MateriaApp.prototype.initRipple=function(){
		Waves.attach(".btn"),
		Waves.init({duration:900,delay:300}),
		Waves.attach(".nav-wrap .site-nav .nav-list li"),
		Waves.attach(".md-button:not(.md-no-ink)")
	},
	MateriaApp.prototype._checkMobile=function(){
		var mm=window.matchMedia("(max-width: 767px)");
		this.isMobile=mm.matches?!0:!1;
		var that=this;mm.addListener(function(m){that.isMobile=m.matches?!0:!1})
	},
	MateriaApp.prototype.toggleSiteNav=function(){
		this.siteHead.find(".nav-trigger").on("click touchstart",function(e){
		var elems=["body",".main-container",".nav-wrap",".content-container"];
			elems.forEach(function(el){
				$(el).toggleClass("nav-expand"),".nav-wrap"==el&&$(el).toggleClass("nav-offcanvas")
			}),e.preventDefault()
		})
	},
	MateriaApp.prototype.toggleSettingsBox=function(){
		this.siteSettings.find(".trigger").on("click touchstart",
		function(e){$(".site-settings").toggleClass("open"),e.preventDefault()})
	},
	MateriaApp.prototype.initPerfectScrollbars=function(){
		var $el=$("[data-perfect-scrollbar]");
		$el.each(function(){
			var $t=$(this);
			$t.perfectScrollbar({suppressScrollX:!0}),
			setInterval(function(){
				$t[0].scrollHeight>=$t[0].clientHeight&&$t.perfectScrollbar("update")
			},400)
		})
	},
	MateriaApp.prototype.toggleFullScreen=function(){
		$(".site-head .fullscreen").on("click",function(e){screenfull.toggle(),e.preventDefault()})
	},
	MateriaApp.prototype.toggleFloatingSidebar=function(){
		$(".site-head .floating-sidebar > a").on("click",function(e){$(this).parent().toggleClass("open"),e.preventDefault()})
	},
	MateriaApp.prototype.initNavAccordion=function(){
		var el=$(".site-nav .nav-list"),lists=el.find("ul").parent("li"),
		a=lists.children("a"),aul=lists.find("ul a"),
		listsRest=el.children("li").not(lists),
		aRest=listsRest.children("a"),
		stopClick=0,that=this;a.on("click",function(e){
			if(!that.navHorizontal){
				if(e.timeStamp-stopClick>300){
					var self=$(this),
					parent=self.parent("li");
					lists.not(parent).removeClass("open"),
					parent.toggleClass("open"),
					stopClick=e.timeStamp
				}
				e.preventDefault()
			}
			e.stopPropagation(),
			e.stopImmediatePropagation()
		}),
		aul.on("touchend",function(e){
			that.isMobile&&that.navWrap.toggleClass("nav-offcanvas"),
			e.stopPropagation(),
			e.stopImmediatePropagation()
		}),
		aRest.on("touchend",function(){that.isMobile&&that.navWrap.toggleClass("nav-offcanvas")}),
		aRest.on("click",function(e){if(!that.navHorizontal){var parent=aRest.parent("li");lists.not(parent).removeClass("open")}e.stopPropagation(),e.stopImmediatePropagation()})
	};
	window.MateriaApp=new MateriaApp
});