function CsLogger(n){function l(){var n=window.navigator.userAgent,t=n.indexOf("MSIE ");return t>0||!!navigator.userAgent.match(/Trident.*rv\:11\./)?!0:!1}function a(n,t){var i=!0;return(n==undefined||n=="")&&(console.error("csLogger | string:type is not supplied or empty"),i=!1),(t==undefined||t=="")&&(console.warn("csLogger | object:data is not supplied, is null or undefined."),i=!1),i}function v(n){switch(n){case t.text:return"<span class='log-icon text'>Te<\/span>";case t.object:return"<span class='log-icon object'>Ob<\/span>";case t.info:return"<span class='log-icon info'>In<\/span>";case t.warning:return"<span class='log-icon warning'>Wr<\/span>";case t.error:return"<span class='log-icon error'>Er<\/span>";case t.event:return"<span class='log-icon event'>Ev<\/span>"}}function u(n,i,r){var f,e,u;c===!0&&(f=$(o),f.length?(e=n==t.object?JSON.stringify(r):r,u="<div class='entry'>{0}{1}{2}<\/div>",u=u.replace("{0}","<span class='ns'>"+i+"<\/span>").replace("{1}",v(n)).replace("{2}","<span class='content'>"+e+"<\/span>"),f.prepend(u)):console.log("Element "+o+" does not exist."))}function f(n){if(h===!0)if(localStorage!=null&&typeof localStorage=="object"){var i="csLogger",r=(new Date).toISOString(),t=JSON.parse(localStorage.getItem(i));t==null&&(t=[]);t.push({timestamp:r,content:n});localStorage.setItem(i,JSON.stringify(t))}else console.log("localStorage object unavailable.")}function r(n,r){var l,v;if(a(n,r)&&s){var o=i+" | ",h="",c="";e&&(o="%c"+i+" | %c",h="color:#888; font-weight:bold;",c="color:#000;");switch(n){case t.text:console.log(o+r,h,c);f(r);u(n,i,r);break;case t.object:console.log(r);f(JSON.stringify(r));u(n,i,r);break;case t.info:console.info(o+r,h,c);f(r);u(n,i,r);break;case t.warning:console.warn(o+r,h,c);f(r);u(n,i,r);break;case t.error:l="color:red;";e==!1&&(l="");console.error(o+r,h,l);f(r);u(n,i,r);break;case t.event:v="color:#009900;";e==!1&&(v="");console.info(o+"[event] "+r,h,v);f(r);u(n,i,r)}}}var i=n,e=!0,s=!1,h=!1,c=!1,o="",t={text:"msg",object:"obj",info:"info",warning:"warning",error:"error",event:"event"};this.enable=function(){s=!0;l()&&(e=!1)};this.enableLocalStorage=function(){h=!0};this.enableLogToElement=function(n){o=n;c=!0;console.log("csLogger | logToElement() => "+o)};this.clearLocalStorage=function(){localStorage.clear()};this.obj=function(n,i){r(t.info,n);r(t.object,i)};this.log=function(n){r(t.text,n)};this.warning=function(n){r(t.warning,n)};this.info=function(n){r(t.info,n)};this.error=function(n){r(t.error,n)};this.event=function(n){r(t.event,n)};this.setNamespace=function(n){i=n}}function Queue(){var n=[],t=0;this.getLength=function(){return n.length-t};this.isEmpty=function(){return 0==n.length};this.enqueue=function(t){n.push(t)};this.dequeue=function(){if(0!=n.length){var i=n[t];return 2*++t>=n.length&&(n=n.slice(t),t=0),i}};this.peek=function(){if(0<n.length)return n[t]}}function initView(n){function r(){t.log("registerEvents()");t.log("registering scroll event.");$(window).scroll(function(n){$(document).trigger(global.events.windowScroll,n)})}function u(){typeof n.debug=="boolean"&&(i=n.debug);i===!0&&t.enable()}var i=!1,t=new CsLogger("views.core");u(n);t.obj("initView | opts:",n);$(function(){t.log("ready.");r();AOS.init({duration:1200});queueHelper.processInitQueue()})}function requireJavascript(n){$("script[src='"+n+"']").length||$("head").append("<script type='text/javascript' src='"+n+"'><\/script>")}var global,queueHelper,initDebugToolBar;global={logger:new CsLogger("views.global"),events:{windowScroll:"cs.events.window.scroll"},initQueue:new Queue};queueHelper={logger:new CsLogger("views.global.queueHelper"),enqueueInit:function(n){global.initQueue.enqueue(n)},processInitQueue:function(){var n,t,i;for(this.logger.enable(),n=1,t=global.initQueue.getLength(),this.logger.log("initQueue size: "+t);global.initQueue.getLength()>0;)i=global.initQueue.dequeue(),typeof i!="undefined"?(this.logger.log("executing initFunction "+n+"/"+t),i()):this.logger.log("dequeued item is not a executable function."),n=n+1;this.logger.log("end of initQueue.")}};initDebugToolBar=function(n){var t=new CsLogger("views.debugToolbar");typeof n.debug=="boolean"&&n.debug==!0&&t.enable();$(function(){t.log("ready");var n=$("#debug-toolbar");if(n.length)n.find(".btn-toggle").on("click",function(t){t.preventDefault();var i=parseInt(n.attr("data-toggled"));i==0?(n.attr("data-toggled",1),$(this).html("<i class='fa fa-caret-up'><\/i>")):(n.attr("data-toggled",0),$(this).html("<i class='fa fa-caret-down'><\/i>"))})})}