(function ($) { 'use strict'; /** * All of the code for your public-facing JavaScript source * should reside in this file. * * Note: It has been assumed you will write jQuery code here, so the * $ function reference has been prepared for usage within the scope * of this function. * * This enables you to define handlers, for when the DOM is ready: * * $(function() { * * }) ; * * When the window is loaded: * * $( window ).load(function() { * * }) ; * * ...and/or other possibilities. * * Ideally, it is not considered best practise to attach more than a * single DOM-ready or window-load handler for a particular page. * Although scripts in the WordPress core, Plugins and Themes may be * practising this, we should strive to set a better example in our own work. */ jQuery(document).ready(function () { /************** Initialize dark mode toggle before accesskey mapping **************/ litespeed_init_dark_mode(); /************** Common LiteSpeed JS **************/ // Link confirm $('[data-litespeed-cfm]').on('click', function (event) { var cfm_txt = $.trim($(this).data('litespeed-cfm')).replace(/\\n/g, '\n'); if (cfm_txt === '') { return true; } if (confirm(cfm_txt)) { return true; } event.preventDefault(); event.stopImmediatePropagation(); return false; }); /************** LSWCP JS ****************/ // page tab switch functionality (function () { var hash = window.location.hash.substr(1); var $tabs = $('[data-litespeed-tab]'); var $subtabs = $('[data-litespeed-subtab]'); // Handle tab and subtab events var tab_action = function ($elems, type) { type = litespeed_tab_type(type); var data = 'litespeed-' + type; $elems.on('click', function (_event) { litespeed_display_tab($(this).data(data), type); document.cookie = 'litespeed_' + type + '=' + $(this).data(data); $(this).blur(); }); }; tab_action($tabs); tab_action($subtabs, 'subtab'); if (!$tabs.length > 0) { // No tabs exist return; } // Find hash in tabs and subtabs var $hash_tab = $tabs.filter('[data-litespeed-tab="' + hash + '"]:first'); var $hash_subtab = $subtabs.filter('[data-litespeed-subtab="' + hash + '"]:first'); // Find tab name var $subtab; var $tab; var tab_name; if ($hash_subtab.length > 0) { // Hash is a subtab $tab = $hash_subtab.closest('[data-litespeed-layout]'); if ($tab.length > 0) { $subtab = $hash_subtab; tab_name = $tab.data('litespeed-layout'); } } if (typeof $tab === 'undefined' || $tab.length < 1) { // Maybe hash is a tab $tab = $hash_tab; if ($tab.length < 1) { // Maybe tab cookie exists $tab = litespeed_tab_cookie($tabs); if ($tab.length < 1) { // Use the first tab by default $tab = $tabs.first(); } } if (typeof tab_name === 'undefined') { tab_name = $tab.data('litespeed-tab'); } } // Always display a tab litespeed_display_tab(tab_name); // Find subtab name if (typeof $subtab === 'undefined' || $subtab.length < 1) { $subtab = litespeed_tab_cookie($subtabs, 'subtab'); } if ($subtab.length > 0) { var subtab_name = $subtab.data('litespeed-subtab'); // Display a subtab litespeed_display_tab(subtab_name, 'subtab'); } })(); /******************** Clear whm msg ********************/ $(document).on('click', '.lscwp-whm-notice .notice-dismiss', function () { $.get(litespeed_data.ajax_url_dismiss_whm); }); /******************** Clear rule conflict msg ********************/ $(document).on('click', '.lscwp-notice-ruleconflict .notice-dismiss', function () { $.get(litespeed_data.ajax_url_dismiss_ruleconflict); }); /** Accesskey **/ $('[litespeed-accesskey]').map(function () { var thiskey = $(this).attr('litespeed-accesskey'); if (thiskey == '') { return; } // Append shortcut info to existing title or set default var currentTitle = $(this).attr('title'); if (currentTitle) { $(this).attr('title', currentTitle + ' (Shortcut: ' + thiskey.toLocaleUpperCase() + ')'); } else { $(this).attr('title', 'Shortcut : ' + thiskey.toLocaleUpperCase()); } var that = this; $(document).on('keydown', function (e) { if ($(':input:focus').length) return; if (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey) return; if (e.key && e.key.toLowerCase() === thiskey.toLowerCase()) { $(that)[0].click(); } }); }); /** Lets copy one more submit button **/ if ($('input[name="LSCWP_CTRL"]').length > 0) { var btn = $('input.litespeed-duplicate-float'); btn.clone().addClass('litespeed-float-submit').removeAttr('id').insertAfter(btn); } if ($('input[id="LSCWP_NONCE"]').length > 0) { $('input[id="LSCWP_NONCE"]').removeAttr('id'); } /** * Human readable time conversation * @since 3.0 */ if ($('[data-litespeed-readable]').length > 0) { $('[data-litespeed-readable]').each(function (index, el) { var that = this; var $input = $(this).siblings('input[type="text"]'); var txt = litespeed_readable_time($input.val()); $(that).html(txt ? '= ' + txt : ''); $input.on('keyup', function (event) { var txt = litespeed_readable_time($(this).val()); $(that).html(txt ? '= ' + txt : ''); }); }); } /** * Click only once */ if ($('[data-litespeed-onlyonce]').length > 0) { $('[data-litespeed-onlyonce]').on('click', function (e) { if ($(this).hasClass('disabled')) { e.preventDefault(); } $(this).addClass('disabled'); }); } }); })(jQuery); /** * Plural handler */ function litespeed_plural($num, $txt) { if ($num > 1) return $num + ' ' + $txt + 's'; return $num + ' ' + $txt; } /** * Convert seconds to readable time */ function litespeed_readable_time(seconds) { if (seconds < 60) { return ''; } var second = Math.floor(seconds % 60); var minute = Math.floor((seconds / 60) % 60); var hour = Math.floor((seconds / 3600) % 24); var day = Math.floor((seconds / 3600 / 24) % 7); var week = Math.floor(seconds / 3600 / 24 / 7); var str = ''; if (week) str += ' ' + litespeed_plural(week, 'week'); if (day) str += ' ' + litespeed_plural(day, 'day'); if (hour) str += ' ' + litespeed_plural(hour, 'hour'); if (minute) str += ' ' + litespeed_plural(minute, 'minute'); if (second) str += ' ' + litespeed_plural(second, 'second'); return str; } /** * Normalize specified tab type * @since 4.7 */ function litespeed_tab_type(type) { return 'subtab' === type ? type : 'tab'; } /** * Sniff cookies for tab and subtab * @since 4.7 */ function litespeed_tab_cookie($elems, type) { type = litespeed_tab_type(type); var re = new RegExp('(?:^|.*;)\\s*litespeed_' + type + '\\s*=\\s*([^;]*).*$|^.*$', 'ms'); var name = document.cookie.replace(re, '$1'); return $elems.filter('[data-litespeed-' + type + '="' + name + '"]:first'); } function litespeed_display_tab(name, type) { type = litespeed_tab_type(type); var $tabs; var $layouts; var classname; var layout_type; if ('subtab' === type) { classname = 'focus'; layout_type = 'sublayout'; $tabs = jQuery('[data-litespeed-subtab="' + name + '"]') .siblings('[data-litespeed-subtab]') .addBack(); $layouts = jQuery('[data-litespeed-sublayout="' + name + '"]') .siblings('[data-litespeed-sublayout]') .addBack(); } else { // Maybe handle subtabs var $subtabs = jQuery('[data-litespeed-layout="' + name + '"] [data-litespeed-subtab]'); if ($subtabs.length > 0) { // Find subtab name var $subtab = litespeed_tab_cookie($subtabs, 'subtab'); if ($subtab.length < 1) { $subtab = jQuery('[data-litespeed-layout="' + name + '"] [data-litespeed-subtab]:first'); } if ($subtab.length > 0) { var subtab_name = $subtab.data('litespeed-subtab'); // Display a subtab litespeed_display_tab(subtab_name, 'subtab'); } } classname = 'nav-tab-active'; layout_type = 'layout'; $tabs = jQuery('[data-litespeed-tab]'); $layouts = jQuery('[data-litespeed-layout]'); } $tabs.removeClass(classname); $tabs.filter('[data-litespeed-' + type + '="' + name + '"]').addClass(classname); $layouts.hide(); $layouts.filter('[data-litespeed-' + layout_type + '="' + name + '"]').show(); } function litespeed_copy_to_clipboard(elementId, clickedElement) { var range = document.createRange(); range.selectNode(document.getElementById(elementId)); window.getSelection().removeAllRanges(); window.getSelection().addRange(range); document.execCommand('copy'); window.getSelection().removeAllRanges(); clickedElement.setAttribute('aria-label', 'Copied!'); } // Dark mode toggle functionality function litespeed_init_dark_mode() { 'use strict'; // Only add toggle on LiteSpeed pages if (window.location.search.indexOf('page=litespeed') === -1) return; // Create toggle button var toggleBtn = document.createElement('button'); toggleBtn.className = 'litespeed-dark-mode-toggle'; toggleBtn.setAttribute('title', 'Toggle Dark Mode'); toggleBtn.setAttribute('aria-label', 'Toggle Dark Mode'); toggleBtn.setAttribute('litespeed-accesskey', 'z'); toggleBtn.setAttribute('data-litespeed-noprefix', true); function applyDarkMode() { var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; var savedPreference = localStorage.getItem('litespeed-dark-preference'); var isDark = savedPreference ? savedPreference === 'dark' : prefersDark; // Determine needed class (only when overriding browser preference) var needsClass; if (savedPreference === 'dark' && !prefersDark) { needsClass = 'litespeed-darkmode'; } else if (savedPreference === 'light' && prefersDark) { needsClass = 'litespeed-lightmode'; } // Only update DOM if class needs to change if (needsClass) { if (!document.body.classList.contains(needsClass)) { document.body.classList.remove('litespeed-darkmode', 'litespeed-lightmode'); document.body.classList.add(needsClass); } } else { if (document.body.classList.contains('litespeed-darkmode') || document.body.classList.contains('litespeed-lightmode')) { document.body.classList.remove('litespeed-darkmode', 'litespeed-lightmode'); } } // Update button icon toggleBtn.innerHTML = isDark ? '☀️' : '🌙'; } // Initialize applyDarkMode(); // Toggle handler toggleBtn.addEventListener('click', function() { var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; var savedPreference = localStorage.getItem('litespeed-dark-preference'); var currentlyDark = savedPreference ? savedPreference === 'dark' : prefersDark; // Toggle and store only if different from browser preference if (!currentlyDark === prefersDark) { localStorage.removeItem('litespeed-dark-preference'); } else { localStorage.setItem('litespeed-dark-preference', currentlyDark ? 'light' : 'dark'); } applyDarkMode(); }); // Listen for system theme changes if (window.matchMedia) { window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', applyDarkMode); } // Add to page document.body.appendChild(toggleBtn); } /*! * vue-resource v1.4.0 * https://github.com/pagekit/vue-resource * Released under the MIT License. */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.VueResource=e()}(this,function(){"use strict";var t=2;function e(e){this.state=t,this.value=void 0,this.deferred=[];var n=this;try{e(function(t){n.resolve(t)},function(t){n.reject(t)})}catch(t){n.reject(t)}}e.reject=function(t){return new e(function(e,n){n(t)})},e.resolve=function(t){return new e(function(e,n){e(t)})},e.all=function(t){return new e(function(n,o){var r=0,i=[];function s(e){return function(o){i[e]=o,(r+=1)===t.length&&n(i)}}0===t.length&&n(i);for(var u=0;u=200&&a<300,this.status=a||0,this.statusText=c||"",this.headers=new q(u),this.body=t,d(t)?this.bodyText=t:(i=t,"undefined"!=typeof Blob&&i instanceof Blob&&(this.bodyBlob=t,(0===(r=t).type.indexOf("text")||-1!==r.type.indexOf("json"))&&(this.bodyText=(n=t,new o(function(t){var e=new FileReader;e.readAsText(n),e.onload=function(){t(e.result)}})))))};L.prototype.blob=function(){return v(this.bodyBlob)},L.prototype.text=function(){return v(this.bodyText)},L.prototype.json=function(){return v(this.text(),function(t){return JSON.parse(t)})},Object.defineProperty(L.prototype,"data",{get:function(){return this.body},set:function(t){this.body=t}});var B=function(t){var e;this.body=null,this.params={},w(this,t,{method:(e=t.method||"GET",e?e.toUpperCase():"")}),this.headers instanceof q||(this.headers=new q(this.headers))};B.prototype.getUrl=function(){return $(this)},B.prototype.getBody=function(){return this.body},B.prototype.respondWith=function(t,e){return new L(t,w(e||{},{url:this.getUrl()}))};var M={"Content-Type":"application/json;charset=utf-8"};function N(t){var e=this||{},n=function(t){var e=[I],n=[];function r(r){for(;e.length;){var i=e.pop();if(l(i)){var s=void 0,u=void 0;if(m(s=i.call(t,r,function(t){return u=t})||u))return new o(function(e,o){n.forEach(function(e){s=v(s,function(n){return e.call(t,n)||n},o)}),v(s,e,o)},t);l(s)&&n.unshift(s)}else c="Invalid interceptor of type "+typeof i+", must be a function","undefined"!=typeof console&&a&&console.warn("[VueResource warn]: "+c)}var c}return m(t)||(t=null),r.use=function(t){e.push(t)},r}(e.$vm);return function(t){u.call(arguments,1).forEach(function(e){for(var n in e)void 0===t[n]&&(t[n]=e[n])})}(t||{},e.$options,N.options),N.interceptors.forEach(function(t){d(t)&&(t=N.interceptor[t]),l(t)&&n.use(t)}),n(new B(t)).then(function(t){return t.ok?t:o.reject(t)},function(t){var e;return t instanceof Error&&(e=t,"undefined"!=typeof console&&console.error(e)),o.reject(t)})}function D(t,e,n,o){var r=this||{},i={};return g(n=w({},D.actions,n),function(n,s){n=T({url:t,params:w({},e)},o,n),i[s]=function(){return(r.$http||N)(function(t,e){var n,o=w({},t),r={};switch(e.length){case 2:r=e[0],n=e[1];break;case 1:/^(POST|PUT|PATCH)$/i.test(o.method)?n=e[0]:r=e[0];break;case 0:break;default:throw"Expected up to 2 arguments [params, body], got "+e.length+" arguments"}return o.body=n,o.params=w({},o.params,r),o}(n,arguments))}}),i}function J(t){var e,n,r;J.installed||(n=(e=t).config,r=e.nextTick,i=r,a=n.debug||!n.silent,t.url=$,t.http=N,t.resource=D,t.Promise=o,Object.defineProperties(t.prototype,{$url:{get:function(){return b(t.url,this,this.$options.url)}},$http:{get:function(){return b(t.http,this,this.$options.http)}},$resource:{get:function(){return t.resource.bind(this)}},$promise:{get:function(){var e=this;return function(n){return new t.Promise(n,e)}}}}))}return N.options={},N.headers={put:M,post:M,patch:M,delete:M,common:{Accept:"application/json, text/plain, */*"},custom:{}},N.interceptor={before:function(t){l(t.before)&&t.before.call(this,t)},method:function(t){t.emulateHTTP&&/^(PUT|PATCH|DELETE)$/i.test(t.method)&&(t.headers.set("X-HTTP-Method-Override",t.method),t.method="POST")},jsonp:function(t){"JSONP"==t.method&&(t.client=A)},json:function(t){var e=t.headers.get("Content-Type")||"";return m(t.body)&&0===e.indexOf("application/json")&&(t.body=JSON.stringify(t.body)),function(t){return t.bodyText?v(t.text(),function(e){var n,o;if(0===(t.headers.get("Content-Type")||"").indexOf("application/json")||(o=(n=e).match(/^\s*(\[|\{)/))&&{"[":/]\s*$/,"{":/}\s*$/}[o[1]].test(n))try{t.body=JSON.parse(e)}catch(e){t.body=null}else t.body=e;return t}):t}},form:function(t){var e;e=t.body,"undefined"!=typeof FormData&&e instanceof FormData?t.headers.delete("Content-Type"):m(t.body)&&t.emulateJSON&&(t.body=$.params(t.body),t.headers.set("Content-Type","application/x-www-form-urlencoded"))},header:function(t){g(w({},N.headers.common,t.crossOrigin?{}:N.headers.custom,N.headers[p(t.method)]),function(e,n){t.headers.has(n)||t.headers.set(n,e)})},cors:function(t){if(c){var e=$.parse(location.href),n=$.parse(t.getUrl());n.protocol===e.protocol&&n.host===e.host||(t.crossOrigin=!0,t.emulateHTTP=!1,R||(t.client=U))}}},N.interceptors=["before","method","jsonp","json","form","header","cors"],["get","delete","head","jsonp"].forEach(function(t){N[t]=function(e,n){return this(w(n||{},{url:e,method:t}))}}),["post","put","patch"].forEach(function(t){N[t]=function(e,n,o){return this(w(o||{},{url:e,method:t,body:n}))}}),D.actions={get:{method:"GET"},save:{method:"POST"},query:{method:"GET"},update:{method:"PUT"},remove:{method:"DELETE"},delete:{method:"DELETE"}},"undefined"!=typeof window&&window.Vue&&window.Vue.use(J),J}); /*Click Away*/ !function(e,t){"use strict";function n(e,t,n){i(e);var u=n.context,a=t.value;if("function"==typeof a){var c=!1;setTimeout(function(){c=!0},0),e[o]=function(t){var n=t.path||(t.composedPath?t.composedPath():void 0);if(c&&(n?n.indexOf(e)<0:!e.contains(t.target)))return a.call(u,t)},document.documentElement.addEventListener("click",e[o],!1)}}function i(e){document.documentElement.removeEventListener("click",e[o],!1),delete e[o]}t="default"in t?t.default:t;/^2\./.test(t.version)||t.util.warn("VueClickaway 2.2.2 only supports Vue 2.x, and does not support Vue "+t.version);var o="_vue_clickaway_handler",u={bind:n,update:function(e,t){t.value!==t.oldValue&&n(e,t)},unbind:i},a={directives:{onClickaway:u}};e.version="2.2.2",e.directive=u,e.mixin=a}(this.VueClickaway={},Vue); Blessed Elena | Blessed Elena Academy

Blessed Elena

Home / Portfolio / Blessed Elena

 

Lorem Ipsum

“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”

“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec porta ante at metus congue pulvinar. Donec mollis leo venenatis ante aliquam condimentum. Quisque nec nisl tempor, ultricies magna sodales, vulputate turpis. Ut scelerisque orci ipsum, vel iaculis augue feugiat in. Donec viverra diam sem, sit amet blandit sem porta ut. Nulla pellentesque erat magna, ut bibendum urna ultricies in. Nunc condimentum mattis urna, eget egestas turpis tristique ut.

Pellentesque suscipit est odio, at pellentesque metus malesuada a. Nunc tincidunt ipsum lacus, ac ultrices tortor ornare sit amet. Donec luctus massa sollicitudin velit interdum viverra. Nulla facilisi. Proin hendrerit a sapien non venenatis. Etiam laoreet neque fermentum egestas vestibulum. Ut convallis laoreet tellus et viverra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Praesent facilisis condimentum imperdiet. Nullam ac lorem sit amet nunc consequat cursus. Morbi dignissim ullamcorper interdum. In hac habitasse platea dictumst.

Ut purus nibh, accumsan quis euismod nec, rutrum id turpis. Aliquam dolor odio, vulputate nec molestie in, feugiat in turpis. Sed interdum sodales magna at porttitor. Phasellus sem urna, sollicitudin eget placerat id, tincidunt sit amet lectus. Pellentesque sollicitudin tincidunt ornare. Nulla interdum id sapien sit amet porta. Curabitur condimentum porta mi, eget semper mi sagittis et. Nullam placerat nibh quis tortor aliquet, vel consequat risus viverra. Fusce sit amet eleifend erat, ut scelerisque elit. Sed sed urna tellus. Praesent in bibendum urna. Vivamus convallis dolor id lorem pretium malesuada. Proin pretium vitae sem eu interdum. Sed eget diam iaculis, semper nulla et, consectetur ligula.

Ut feugiat feugiat metus eu fermentum. Aenean maximus, nulla sed luctus pretium, nulla libero laoreet erat, sit amet sagittis ipsum orci a risus. Fusce nec neque nunc. Integer vel elit in ipsum euismod rhoncus sed eu turpis. Donec fermentum diam vitae ultrices convallis. Mauris posuere, nunc non pulvinar dignissim, est dui consequat elit, in accumsan urna diam a velit. Nam massa nulla, mollis ac lacinia eu, molestie facilisis ipsum. Vivamus quis vestibulum nulla. Nunc a scelerisque arcu, ac iaculis velit. Suspendisse dui felis, molestie sit amet aliquet vitae, volutpat a urna. Nullam nec neque mi. Suspendisse potenti. Donec vel pellentesque ante. Donec laoreet in ligula eget cursus. Donec dignissim, ante a vulputate vestibulum, diam sapien lobortis neque, sed lobortis est nulla sed risus.

Aenean dictum pulvinar justo eget aliquam. Suspendisse eu aliquam diam. Sed velit ante, auctor id maximus sed, scelerisque id libero. Nulla facilisi. Morbi et orci sem. Nam dapibus porttitor semper. Praesent sed augue et ipsum placerat bibendum. Nullam condimentum posuere est eu eleifend. Fusce pretium, est suscipit accumsan malesuada, massa risus sollicitudin dolor, vel lacinia risus nisl sit amet lacus. Duis sollicitudin dui vitae risus sodales sodales. Proin ultrices, ipsum sed lobortis rhoncus, nulla dui faucibus metus, quis aliquam orci nulla id mauris. Aliquam euismod gravida accumsan. Nullam sollicitudin enim eget augue accumsan, vitae elementum tortor varius. Duis eu tincidunt augue. Nullam imperdiet pretium laoreet.