refreshinghope.org Ads.txt file

<!DOCTYPE html>
<html lang="en" data-theme="blues" data-layout-mode="fluid" data-sidenav-user="true" data-sidenav-size="default">
<head>
<meta charset="utf-8"/>
<title>Refreshing Hope Ministries Online Church: Jesus - For such a time as this!</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="Refreshing Hope Ministries Online Church: Join a wonderful body of believers from all walks of life in an ad-free, drama-free, toxic-free environment with live interactive church services and refreshing Spirit filled devotionals posted daily!" name="description"/>
<meta content="Refreshing Hope Ministries" name="author"/>
<script>
(function() {
try {
var savedConfig = localStorage.getItem('__HYPER_CONFIG__');
var defaultTheme = 'light'; // Set your default theme here
var defaultMenuColor = 'blues'; // Set your default menu color
var defaultTopbarColor = 'blues'; // Set your default topbar color
if (savedConfig) {
var config = JSON.parse(savedConfig);
if (config && config.theme) {
document.documentElement.setAttribute('data-theme', config.theme);
} else {
document.documentElement.setAttribute('data-theme', defaultTheme);
}
if (config && config.layout && config.layout.mode) {
document.documentElement.setAttribute('data-layout-mode', config.layout.mode);
}
if (config && config.sidenav) {
if (config.sidenav.size) {
document.documentElement.setAttribute('data-sidenav-size', config.sidenav.size);
}
if (config.sidenav.user !== undefined) {
document.documentElement.setAttribute('data-sidenav-user', config.sidenav.user);
}
}
if (config && config.topbar && config.topbar.color) {
document.documentElement.setAttribute('data-topbar-color', config.topbar.color);
}
if (config && config.menu && config.menu.color) {
document.documentElement.setAttribute('data-menu-color', config.menu.color);
}
} else {
document.documentElement.setAttribute('data-theme', defaultTheme);
document.documentElement.setAttribute('data-menu-color', defaultMenuColor);
document.documentElement.setAttribute('data-topbar-color', defaultTopbarColor);
}
} catch (e) {
console.log("Error applying saved theme:", e);
}
})();
</script>
<meta property="og:url" content="https://refreshinghope.org" />
<meta property="og:type" content="article" />
<meta property="og:title" content="Refreshing Hope Ministries Online Church" />
<meta property="og:description" content="Jesus - For such a time as this!" />
<meta property="og:image" content="https://refreshinghope.org/media/1/297/rhm-home-meta" />
<link rel="shortcut icon" href="/assets/images/favicon.ico">
<link rel="manifest" href="/manifest.json">
<meta name="theme-color" content="#343a40">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="apple-mobile-web-app-title" content="RHM">
<link rel="apple-touch-icon" href="/assets/images/icons/icon-192x192.png">
<link rel="apple-touch-icon" sizes="152x152" href="/assets/images/icons/icon-152x152.png">
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/icons/icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/icons/icon-128x128.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/images/icons/icon-72x72.png">
<link href="/assets/css/app-creative.min.css" rel="stylesheet" type="text/css" id="app-style"/>
<link href="/assets/css/icons.min.css" rel="stylesheet" type="text/css"/>
<link rel="stylesheet" href="/assets/css/jquery.toast.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/emoji-mart@latest/css/emoji-mart.css">
<script src="/assets/js/vendor.min.js"></script>
<script src="/assets/js/hyper-config.js"></script>
<style type="text/css">
:root {
overflow-wrap: normal !important;
--ct-body-color: black !important;
--ct-body-font-family: 'Arial', sans-serif !important;
--ct-body-font-size: 16px !important;
--ct-body-font-weight: normal !important;
--ct-body-line-height: 1.5 !important;
--ct-body-text-align: left !important;
--input-text-color: black !important;
--input-bg-color: white !important;
--ct-body-bg: #eef2f7;
}
[data-theme="dark"] {
--ct-body-color: white !important;
--input-text-color: white !important;
--input-bg-color: #333 !important;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.btn-gold {
background-color: #c79c3a;
color: #fff;
border: none;
}
.btn-gold:hover {
background-color: #a68230;
color: #fff;
}
.nav-pills .nav-link:hover {
text-decoration: underline;
color: #fff;
}
.input-group .form-control {
color: var(--input-text-color) !important;
}
.content-page {
position: relative;
margin-left: var(--ct-leftbar-width);
min-height: calc(100vh - var(--ct-topbar-height) - 2px);
padding: 0 .25rem var(--ct-footer-height);
-webkit-transition: all .25s ease-in-out;
transition: all .25s ease-in-out;
}
@media (max-width: 576px) {
.content-page {
margin-left: 0 !important;
margin-right: 0 !important;
padding: 0 !important;
min-height: auto !important;
}
}
@media (max-width: 576px) {
.container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
--ct-gutter-x: 16px;
padding-right: 0.3rem !important;
padding-left: 0.3rem !important;
}
}
@media (max-width: 576px) {
.card-body {
padding: 0 !important;
}
}
.button-container {
display: flex;
justify-content: space-between;
align-items: center;
}
.button-container .btn {
flex-grow: 1;
margin: 0 5px;
}
.overlay-container {
background-color: rgba(0, 0, 0, 0.4);
color: white;
font-weight: bold;
padding: 40px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
@media (max-width: 768px) {
.auth-fluid .card {
margin: 0;
border-radius: 0;
}
.auth-fluid .card-body {
padding: 0;
}
}
@media (max-width: 768px) {
.auth-fluid .col-md-6 {
flex: 0 0 100%;
max-width: 100%;
}
}
.wrap-text {
white-space: normal;
word-wrap: break-word;
overflow-wrap: break-word;
}
.notification-bell-container {
position: relative;
display: inline-block;
margin-right: 15px;
}
.notification-bell-container .mdi-bell-outline {
font-size: 24px;
color: white;
}
.notification-badge {
position: absolute;
top: -10px;
right: -10px;
background-color: red;
color: white;
border-radius: 50%;
padding: 0 5px;
font-size: 12px;
font-weight: bold;
min-width: 18px;
height: 18px;
line-height: 18px;
text-align: center;
}
.max-width-600 {
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
.reply-box {
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
div.DTE_Field_Type_textarea textarea {
padding: 3px;
width: 100%;
height: 200px !important;
}
.ql-toolbar .ql-stroke {
fill: none !important;
stroke: #fff !important;
}
.ql-toolbar .ql-fill {
fill: #fff !important;
stroke: none !important;
}
.ql-toolbar .ql-picker {
color: #fff !important;
}
.ql-toolbar.ql-snow {
border: 1px solid #37404A !important;
background-color: #3A444E !important;
box-sizing: border-box;
font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
padding: 8px;
}
.ql-snow.ql-toolbar button, .ql-snow .ql-toolbar button {
color: #fff !important;
}
.note-editor.note-frame.fullscreen {
background-color: white;
}
.note-editing-area {
background-color: white;
min-height: 400px;
}
.summernote + .note-editor &gt; .note-editable{
min-height: 400px;
}
.footer {
background-color: #343c46 !important;
}
.leftbar-user {
padding: 30px 20px;
text-align: center;
display: inline-block;
}
#debug-modal .modal-content {
user-select: text;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
}
.logo-lg {
width: 200px !important;
}
.logo-lg img {
width: 100% !important;
height: auto !important;
display: block;
}
.footer {
position: fixed !important;
bottom: 0 !important;
width: 100% !important;
height: 30px !important;
background-color: #f8f9fa !important;
z-index: 100 !important;
}
body {
padding-bottom: 30px !important;
}
:root {
--ct-nav-pills-link-active-bg: linear-gradient(135deg, #3b7ddd 10%, #2d62b5 100%);
--ct-nav-pills-link-active-color: #ffffff;
}
.bg-gray {
background-color: var(--ct-gray-200) !important;
}
html[data-topbar-color="blues"] {
--topbar-color: #0d3366;
--ct-topbar-bg: linear-gradient(135deg, #000000 10%, #124487 80%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.7);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-border: rgba(255, 255, 255, 0.15);
}
html[data-topbar-color="blues"] .card-header {
background: linear-gradient(135deg, #000000 0%, #124487 40%) !important;
color: #ffffff;
border-color: #124487 !important;
}
html[data-topbar-color="blues"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 0%, #124487 40%) !important;
border-color: #124487 !important;
}
html[data-topbar-color="blues"] .nav-pills .nav-link.active,
html[data-topbar-color="blues"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 10%, #124487 100%);
border: none;
}
html[data-topbar-color="blues"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="blues"] .topbar .nav-item,
html[data-topbar-color="blues"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="blues"] .topbar .nav-item:hover,
html[data-topbar-color="blues"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="blues"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="blues"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-menu-color="blues"] {
--ct-menu-bg: linear-gradient(135deg, #000000 10%, #124487 100%);
--ct-menu-item-color: #E7F3FF;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="blues"] .bg-light,
html[data-menu-color="blues"] .bg-light {
--ct-bg-opacity: 1;
background-color: rgba(119, 182, 240, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="blues"] .bg-light-lighten,
html[data-menu-color="blues"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(226, 241, 255, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="rose"] {
--topbar-color: #b62f6d;
--ct-topbar-bg: linear-gradient(135deg, #000000 10%, #E83E8C 80%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.7);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-border: rgba(255, 255, 255, 0.15);
}
html[data-topbar-color="rose"] .card-header {
background: linear-gradient(135deg, #000000 0%, #E83E8C 40%) !important;
color: #ffffff;
border-color: #E83E8C !important;
}
html[data-topbar-color="rose"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 0%, #E83E8C 40%) !important;
border-color: #E83E8C !important;
}
html[data-topbar-color="rose"] .nav-pills .nav-link.active,
html[data-topbar-color="rose"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 10%, #E83E8C 100%);
border: none;
}
html[data-topbar-color="rose"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="rose"] .topbar .nav-item,
html[data-topbar-color="rose"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="rose"] .topbar .nav-item:hover,
html[data-topbar-color="rose"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="rose"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="rose"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-menu-color="rose"] {
--ct-menu-bg: linear-gradient(135deg, #000000 10%, #E83E8C 100%);
--ct-menu-item-color: #FFE7F3;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="rose"] .bg-light,
html[data-menu-color="rose"] .bg-light {
--ct-bg-opacity: 1;
background-color: rgba(217, 153, 179, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="rose"] .bg-light-lighten,
html[data-menu-color="rose"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(255, 233, 242, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="emerald"] {
--topbar-color: #0c8b61;
--ct-topbar-bg: linear-gradient(135deg, #000000 10%, #10B981 80%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.7);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-border: rgba(255, 255, 255, 0.15);
}
html[data-topbar-color="emerald"] .card-header {
background: linear-gradient(135deg, #000000 0%, #2dce89 40%) !important;
color: #ffffff;
border-color: #2dce89 !important;
}
html[data-topbar-color="emerald"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 0%, #10B981 40%) !important;
border-color: #10B981 !important;
}
html[data-topbar-color="emerald"] .nav-pills .nav-link.active,
html[data-topbar-color="emerald"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 10%, #10B981 100%);
border: none;
}
html[data-topbar-color="emerald"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="emerald"] .topbar .nav-item,
html[data-topbar-color="emerald"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="emerald"] .topbar .nav-item:hover,
html[data-topbar-color="emerald"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="emerald"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="emerald"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-menu-color="emerald"] {
--ct-menu-bg: linear-gradient(135deg, #000000 10%, #10B981 100%);
--ct-menu-item-color: #E7FFF5;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="emerald"] .bg-light,
html[data-menu-color="emerald"] .bg-light {
--ct-bg-opacity: 1;
background-color: rgba(109, 217, 161, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="emerald"] .bg-light-lighten,
html[data-menu-color="emerald"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(232, 255, 243, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="purple"] {
--topbar-color: #513591;
--ct-topbar-bg: linear-gradient(135deg, #000000 10%, #6B46C1 80%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.7);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.1);
--ct-topbar-user-border: rgba(255, 255, 255, 0.15);
}
html[data-topbar-color="purple"] .card-header {
background: linear-gradient(135deg, #000000 0%, #6f42c1 40%) !important;
color: #ffffff;
border-color: #6f42c1 !important;
}
html[data-topbar-color="purple"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 0%, #6B46C1 40%) !important;
border-color: #6B46C1 !important;
}
html[data-topbar-color="purple"] .nav-pills .nav-link.active,
html[data-topbar-color="purple"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 10%, #6B46C1 100%);
border: none;
}
.bg-indigo {
background-color: #6B46C1 !important;
}
.bg-indigo-lighten {
background-color: rgba(107, 70, 193, 0.25) !important;
}
.bg-indigo.bg-gradient {
background: linear-gradient(135deg, #0A0015 10%, #6B46C1 80%) !important;
}
.text-indigo {
color: #6B46C1 !important;
}
html[data-topbar-color="purple"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="purple"] .topbar .nav-item,
html[data-topbar-color="purple"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="purple"] .topbar .nav-item:hover,
html[data-topbar-color="purple"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="purple"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="purple"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-menu-color="purple"] {
--ct-menu-bg: linear-gradient(135deg, #000000 10%, #6B46C1 100%);
--ct-menu-item-color: #EFE7FF;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="purple"] .bg-light,
html[data-menu-color="purple"] .bg-light {
--ct-bg-opacity: 1;
background-color: rgba(171, 142, 224, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="purple"] .bg-light-lighten,
html[data-menu-color="purple"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(237, 229, 255, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="gold"] {
--topbar-color: #8B6B00;
--ct-topbar-bg: linear-gradient(135deg, #000000 0%, #D4AF37 50%, #E7CD78 100%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.85);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.15);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.15);
--ct-topbar-user-border: rgba(255, 255, 255, 0.25);
}
html[data-menu-color="gold"] {
--ct-menu-bg: linear-gradient(135deg, #000000 20%, #D4AF37 50%, #E7CD78 100%);
--ct-menu-item-color: #FFF8E1;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="gold"] .card-header {
background: linear-gradient(135deg, #000000 0%, #D4AF37 50%, #E7CD78 100%);
color: #ffffff;
border-color: #CFB53B !important;
}
html[data-topbar-color="gold"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 0%, #D4AF37 50%, #E7CD78 100%);
border-color: #CFB53B !important;
}
html[data-topbar-color="gold"] .nav-pills .nav-link.active,
html[data-topbar-color="gold"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 0%, #D4AF37 50%, #E7CD78 100%);
border: none;
}
html[data-topbar-color="gold"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="gold"] .topbar .nav-item,
html[data-topbar-color="gold"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="gold"] .topbar .nav-item:hover,
html[data-topbar-color="gold"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="gold"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="gold"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-topbar-color="gold"] .bg-light,
html[data-menu-color="gold"] .bg-light {
--ct-bg-opacity: 0.50;
background-color: rgba(184, 134, 11, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="gold"] .bg-light-lighten,
html[data-menu-color="gold"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(205, 173, 0, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="gold"] .bg-light,
html[data-menu-color="gold"] .bg-light {
color: #ffffff;
}
html[data-topbar-color="silver"] {
--topbar-color: #515A5A;
--ct-topbar-bg: linear-gradient(135deg, #19242E 0%, #BDC3C7 100%);
--ct-topbar-item-color: rgba(255, 255, 255, 0.85);
--ct-topbar-item-hover-color: #ffffff;
--ct-topbar-search-bg: rgba(255, 255, 255, 0.15);
--ct-topbar-user-bg: rgba(255, 255, 255, 0.15);
--ct-topbar-user-border: rgba(255, 255, 255, 0.25);
}
html[data-menu-color="silver"] {
--ct-menu-bg: linear-gradient(135deg, #19242E 20%, #BDC3C7 100%);
--ct-menu-item-color: #F5F5F5;
--ct-menu-item-hover-color: #ffffff;
--ct-menu-item-active-color: #ffffff;
}
html[data-topbar-color="silver"] .card-header {
background: linear-gradient(135deg, #19242E 0%, #BDC3C7 40%) !important;
color: #ffffff;
border-color: #A9A9A9 !important;
}
html[data-topbar-color="silver"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #19242E 0%, #BDC3C7 40%) !important;
border-color: #A9A9A9 !important;
}
html[data-topbar-color="silver"] .nav-pills .nav-link.active,
html[data-topbar-color="silver"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #19242E 20%, #BDC3C7 80%);
border: none;
}
html[data-topbar-color="silver"] .topbar {
background: var(--ct-topbar-bg);
}
html[data-topbar-color="silver"] .topbar .nav-item,
html[data-topbar-color="silver"] .topbar .dropdown-toggle {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color="silver"] .topbar .nav-item:hover,
html[data-topbar-color="silver"] .topbar .dropdown-toggle:hover {
color: var(--ct-topbar-item-hover-color);
}
html[data-topbar-color="silver"] .topbar .search-form {
background: var(--ct-topbar-search-bg);
}
html[data-topbar-color="silver"] .topbar .user-box {
background: var(--ct-topbar-user-bg);
border-color: var(--ct-topbar-user-border);
}
html[data-topbar-color="silver"] .bg-light,
html[data-menu-color="silver"] .bg-light {
--ct-bg-opacity: 1;
background-color: rgba(169, 169, 169, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="silver"] .bg-light-lighten,
html[data-menu-color="silver"] .bg-light-lighten {
--ct-bg-opacity: 0.25;
background-color: rgba(192, 192, 192, var(--ct-bg-opacity)) !important;
}
html[data-topbar-color="silver"] .bg-light,
html[data-menu-color="silver"] .bg-light {
color: #ffffff;
}
@keyframes silver-shimmer {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
html[data-topbar-color="silver"] .card-header,
html[data-topbar-color="silver"] .bible-reference-popover .popover-header {
background-size: 200% auto !important;
animation: silver-shimmer 4s ease infinite !important;
}
html[data-topbar-color] .footer {
background: var(--ct-topbar-bg);
color: var(--ct-topbar-item-color);
}
html[data-topbar-color] .footer a {
color: var(--ct-topbar-item-color);
}
html[data-topbar-color] .footer a:hover {
color: var(--ct-topbar-item-hover-color);
}
html:not([data-topbar-color="dark"]) .border-primary,
html:not([data-topbar-color="dark"]) .user-list-item {
border-color: var(--topbar-color) !important;
}
html[data-topbar-color="dark"] .border-primary {
border-color: #000 !important;
}
html[data-topbar-color="dark"] .user-list-item {
border-color: #000 !important;
background-color: #67A570FF !important;
}
html[data-topbar-color="dark"] .nav-pills .nav-link.active,
html[data-topbar-color="dark"] .nav-pills .show > .nav-link {
color: #ffffff;
background: linear-gradient(135deg, #000000 10%, #343a40 100%);
border: none;
}
.nav-pills .nav-link:not(.active):hover {
color: var(--topbar-color, #3b7ddd);
background-color: rgba(0, 0, 0, 0.05);
}
html[data-topbar-color] .card-header a {
color: rgba(255, 255, 255, 0.9);
}
html[data-topbar-color] .card-header a:hover {
color: #ffffff;
text-decoration: none;
}
.bible-reference-popover {
border: var(--ct-card-border-width, 1px) solid;
border-radius: var(--ct-card-border-radius, 0.25rem);
box-shadow: var(--ct-card-box-shadow, 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05));
}
html[data-topbar-color] .bible-reference-popover .popover-header {
background: inherit;
color: #ffffff;
border-bottom-width: 1px;
border-bottom-style: solid;
}
html[data-topbar-color="dark"] .bible-reference-popover .popover-header {
background: linear-gradient(135deg, #000000 10%, #343a40 100%) !important;
border-color: #343a40 !important;
}
.bible-reference-popover .popover-body {
padding: 0.75rem 1rem;
color: inherit;
}
.avatar-square {
width: 3rem;
height: 3rem;
object-fit: cover;
border-radius: 50%;
}
.avatar-square-sm {
width: 2rem;
height: 2rem;
object-fit: cover;
border-radius: 50%;
}
.avatar-square-lg {
width: 4rem;
height: 4rem;
object-fit: cover;
border-radius: 50%;
}
#main-navigation:focus {
outline: none;
}
.auth-fluid {
background: url("/media/5/160/night-sky-background") center no-repeat !important;
background-size: cover !important;
position: relative;
display: flex;
align-items: center;
min-height: 100vh;
flex-direction: row;
align-items: stretch;
}
.content-page {
min-height: auto !important;
}
#backToTopBtn {
background-color: #f0f0f0;
border: none;
border-radius: 50%;
width: 40px;
height: 40px;
cursor: pointer;
outline: none;
transition: background-color 0.3s;
}
.popover {
max-width: 500px;
width: 500px;
}
.popover .arrow {
left: calc(50% - 0.5rem) !important;
}
#backToTopBtn:hover {
background-color: #e0e0e0;
}
.textarea-container {
position: relative;
display: flex;
align-items: center;
}
.textarea-container textarea {
width: 100%;
padding-right: 40px;
}
.textarea-container .emoji-button {
position: absolute;
right: 10px;
bottom: 10px;
background: none;
border: none;
cursor: pointer;
}
.emoji-mart-container {
position: absolute;
z-index: 1000;
display: none;
}
.navbar-custom .topbar .app-search input[type="search"] {
color: #000000 !important;
background-color:rgb(212, 220, 230) !important;
}
.navbar-custom .topbar .app-search input[type="search"]::placeholder {
color: #ccc !important;
opacity: 1;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="content">
<div class="container-fluid mt-1 px-0">
<h2 class="visually-hidden">Page Content</h2>
<div class="card text-start mb-1 rounded border border-1 border-primary">
<div class="card-header h2 bg-light my-0 mx-0 p-1 mb-1">
<div class="text-center">404</div>
</div>
<div class="card-body m-1 p-1 mt-0 pt-0">
<p class="card-text">
<p>Welcome to Refreshing Hope Ministries! I can't seem to find that page for you. It is probably still here, but the location may have changed during our website migration. </p><p>Here are some ideas:<br></p><ul><li>You can <a href="/">return to the home page</a> and try the search, if you are logged in.</li><li>You can browse the <a href="/blogs">list of devotionals</a>.</li><li>If you are looking for our latest devotional, you can always <a href="/blogs/latest">find it at /blogs/latest.</a></li><li>You can also <a href="/contact">contact us</a> and we will try and help you. <br></li></ul><p>(John 3:16): For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.</p><p><div class="container d-flex align-items-center justify-content-center">
<img src="/media/508/172/violet-is-what-is-called-a-cowboy-cor" class="img-fluid rounded-circle img-thumbnail" alt="Violet is what is called a cowboy corgy. She is almost a year old in this photo. We brought her home as a brand new puppy and have watched her grow so big. She knows no stranger and wants to meet everyone , ( she is the talk of the town ) LOL" data-bs-toggle="modal" data-bs-target="#display-pet-modal-172"></a></p>
</div>
<blockquote class="blockquote text-center">
Violet is what is called a cowboy corgy. She is almost a year old in this photo. We brought her home as a brand new puppy and have watched her grow so big. She knows no stranger and wants to meet everyone , ( she is the talk of the town ) LOL
<br><br>
<p>
<em>This pet was uploaded by:<a href="/profile/508"> Chris Motley</a>.</em>
</p>
</blockquote>
<div id="display-pet-modal-172" class="modal modal-lg fade" tabindex="-1" role="dialog" aria-labelledby="display-pet-modal-172-Label" aria-hidden="true">
<div class="modal-dialog modal-full-width">
<div class="modal-content">
<div class="modal-header modal-colored-header card-header">
<h4 class="modal-title" id="login-header-modalLabel">Displaying Full Image</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
<div class="modal-body">
<img src="/media/508/172/violet-is-what-is-called-a-cowboy-cor" id="petImage" alt="Violet is what is called a cowboy corgy. She is almost a year old in this photo. We brought her home as a brand new puppy and have watched her grow so big. She knows no stranger and wants to meet everyone , ( she is the talk of the town ) LOL" class=" rounded border border-1 border-primary me-1 mb-3 mb-sm-0 img-fluid"/>
</div>
<div class="bg-light rounded border border-1 border-primary m-2 p-2">Violet is what is called a cowboy corgy. She is almost a year old in this photo. We brought her home as a brand new puppy and have watched her grow so big. She knows no stranger and wants to meet everyone , ( she is the talk of the town ) LOL</div>
<div class="modal-footer">
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</p><p></p>
</p>
</div>
<div class="card-footer text-muted">
Updated: 2024-06-30
</div>
</div> </div>
</div>
<button id="backToTopBtn" style="display: none; position: fixed; bottom: 20px; right: 20px; z-index: 1000;" aria-label="Back to top">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 12L12 4L20 12H4Z" fill="currentColor"/>
</svg>
</button>
<footer class="footer mt-auto">
<div class="container-fluid">
<div class="row">
<div class="container d-flex align-items-center justify-content-center">
RHM Eco System <a href="/changes" style="padding: 0 10px;">Version: 0.589</a> <span class="d-none d-sm-inline">@ Refreshing Hope Ministries <script>document.write(new Date().getFullYear())</script>.
Page rendered in 0.0612 seconds.
</span>
</div>
</div>
</div>
</footer>
<script src="/assets/js/ui/jquery.toast.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/emoji-mart@latest/dist/browser.js"></script>
<script src="/assets/js/emojis.js?v=1.0.1"></script>
<div class="offcanvas offcanvas-end" tabindex="-1" id="theme-settings-offcanvas">
<div class="d-flex align-items-center bg-light p-2 offcanvas-header">
<h5 class="m-0">Theme Settings</h5>
<button type="button" class="btn-close btn-close-white ms-auto" data-bs-dismiss="offcanvas"
aria-label="Close"></button>
</div>
<div class="offcanvas-body p-0">
<div data-simplebar class="h-100">
<div class="card mb-0 p-2">
<h5 class="mb-1 mt-3 mt-0 font-16 fw-bold">1. Set Background Color:</h5>
<div class="colorscheme-cardradio">
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-theme" id="layout-color-light"
value="light">
<label class="form-check-label p-0 avatar-md w-100" for="layout-color-light">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-secondary-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column bg-white rounded-2">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color" class="bg-white rounded-2 h-100">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="d-flex h-100 flex-column bg-white rounded-2">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-theme" id="layout-color-dark"
value="dark">
<label class="form-check-label p-0 avatar-md w-100 bg-black" for="layout-color-dark">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light-lighten d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-secondary-lighten rounded mb-1"></span>
<span class="d-block border border-secondary border-opacity-25 border-3 rounded w-100 mb-1"></span>
<span class="d-block border border-secondary border-opacity-25 border-3 rounded w-100 mb-1"></span>
<span class="d-block border border-secondary border-opacity-25 border-3 rounded w-100 mb-1"></span>
<span class="d-block border border-secondary border-opacity-25 border-3 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light-lighten d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light-lighten d-flex p-1 align-items-center border-bottom border-opacity-25 border-primary border-opacity-25">
<span class="d-block p-1 bg-secondary-lighten rounded me-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-auto"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
</span>
<span class="bg-light-lighten d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Dark</h5>
</div>
</div>
</div>
<h5 class="mb-1 mt-3 font-16 fw-bold">2. Set Top Bar Color:</h5>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color"
id="topbar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-light">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Light</h5>
</div>
<div class="col-4" style="--ct-dark-rgb: 64,73,84;">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color" id="topbar-color-dark"
value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-dark">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-primary-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-dark d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-dark d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-primary-lighten rounded me-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-auto"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
<span class="d-block border border-primary border-opacity-25 border-3 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Dark</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color"
id="topbar-color-blues" value="blues">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-blues">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-primary bg-gradient d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-primary bg-gradient d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-light opacity-25 rounded me-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-primary mt-2">The Blues</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color" id="topbar-color-rose"
value="rose">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-rose">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-danger bg-gradient d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-danger bg-gradient d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-light opacity-25 rounded me-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-danger mt-2">Rose</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color" id="topbar-color-emerald"
value="emerald">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-emerald">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-success bg-gradient d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-success bg-gradient d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-light opacity-25 rounded me-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
</span>
<span class="bg-success d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-success mt-2">Emerald</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color" id="topbar-color-purple"
value="purple">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-purple">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-indigo bg-gradient d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-indigo bg-gradient d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-light opacity-25 rounded me-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border opacity-25 rounded ms-1"></span>
</span>
<span class="bg-purple d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-indigo mt-2">Deep Purple</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color"
id="topbar-color-gold" value="gold">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-gold">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1 bg-warning"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-warning d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-warning d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-warning opacity-75 rounded me-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-auto"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-warning mt-2">Gold Dust</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar-color"
id="topbar-color-silver" value="silver">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-silver">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-light opacity-75 rounded me-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-auto"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
<span class="d-block border border-3 border-light border-opacity-50 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Silver Mist</h5>
</div>
</div>
<div>
<h5 class="mb-1 mt-3 font-16 fw-bold">3. Set Navigation Sidebar Color:</h5>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-light">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary border-opacity-25">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-light d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Light</h5>
</div>
<div class="col-4" style="--ct-dark-rgb: 64,73,84; --ct-border-color: #dee2e6;">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-dark">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-dark d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-secondary-lighten rounded mb-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 w-100 mb-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 w-100 mb-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 w-100 mb-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary border-primary border-opacity-25">
<span class="d-block p-1 bg-primary-lighten rounded me-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 ms-auto"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 ms-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 ms-1"></span>
<span class="d-block border border-secondary rounded border-opacity-25 border-3 ms-1"></span>
</span>
<span class="bg-dark d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Dark</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-blues" value="blues">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-blues">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-primary bg-gradient d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-primary bg-gradient d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-primary mt-2">The Blues</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-rose" value="rose">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-rose">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-danger bg-gradient d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-danger bg-gradient d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-danger mt-2">Rose</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-emerald" value="emerald">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-emerald">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-success bg-gradient d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-success bg-gradient d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-success mt-2">Emerald</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-purple" value="purple">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-purple">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-indigo bg-gradient d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="bg-indigo bg-gradient d-block p-1"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center text-indigo mt-2">Deep Purple</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-gold" value="gold">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-gold">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-warning bg-gradient d-flex h-100 flex-column p-1 px-2"
style="background: linear-gradient(135deg, #5D4037 10%, #D4AF37 100%);">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"
style="border-color: #FFF8E1 !important;"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"
style="border-color: #FFF8E1 !important;"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"
style="border-color: #FFF8E1 !important;"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"
style="border-color: #FFF8E1 !important;"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="d-block p-1 bg-warning"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center mt-2" style="color: #D4AF37;">Gold Dust</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-menu-color"
id="leftbar-color-silver" value="silver">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-color-silver">
<div id="sidebar-size">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light bg-gradient d-flex h-100 flex-column p-1 px-2">
<span class="d-block p-1 bg-light-lighten rounded mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
<span class="d-block border opacity-25 rounded border-3 w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</div>
<div id="topnav-color">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 align-items-center border-bottom border-secondary">
<span class="d-block p-1 bg-dark-lighten rounded me-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-auto"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded ms-1"></span>
</span>
<span class="d-block p-1 bg-light"></span>
</span>
</div>
</label>
</div>
<h5 class="font-14 text-center mt-2" style="color: #7F8C8D;">Silver Mist</h5>
</div>
</div>
</div>
<div id="sidebar-size">
<h5 class="mb-1 mt-3 font-16 fw-bold">4. Set Navigation Sidebar Size:</h5>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-default" value="default">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-default">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1 px-2">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Default</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-compact" value="compact">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-compact">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column p-1">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Compact</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-small" value="condensed">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-small">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column"
style="padding: 2px;">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Condensed</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-small-hover" value="sm-hover">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-small-hover">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 border-end flex-column"
style="padding: 2px;">
<span class="d-block p-1 bg-dark-lighten rounded mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
<span class="d-block border border-3 border-secondary border-opacity-25 rounded w-100 mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Hover View</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-full" value="full">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-full">
<span class="d-flex h-100">
<span class="flex-shrink-0">
<span class="d-flex h-100 flex-column">
<span class="d-block p-1 bg-dark-lighten mb-1"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Full Layout</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidenav-size"
id="leftbar-size-fullscreen" value="fullscreen">
<label class="form-check-label p-0 avatar-md w-100" for="leftbar-size-fullscreen">
<span class="d-flex h-100">
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="font-14 text-center text-muted mt-2">Fullscreen Layout</h5>
</div>
</div>
</div>
<div id="layout-position">
<h5 class="mb-1 mt-3 font-16 fw-bold">Side Navigation Fixed or Scrollable:</h5>
<div class="btn-group radio" role="group">
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-fixed"
value="fixed">
<label class="btn btn-soft-primary w-sm" for="layout-position-fixed">Fixed</label>
<input type="radio" class="btn-check" name="data-layout-position"
id="layout-position-scrollable" value="scrollable">
<label class="btn btn-soft-primary w-sm ms-0"
for="layout-position-scrollable">Scrollable</label>
</div>
</div>
<div class="offcanvas-footer border-top p-3 text-center">
<div class="row">
<div class="col-12">
<button type="button" class="btn btn-warning w-100" id="reset-layout">Reset Theme
to Default
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="pwa-install-banner" class="alert alert-dismissible fade show position-fixed shadow-lg"
style="top: 20px; right: 20px; z-index: 1050; max-width: 350px; display: none;
background: #ffffff; border: 1px solid #dee2e6; border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);">
<div class="d-flex align-items-center p-3">
<i class="ri-download-cloud-line me-3 fs-4 text-primary"></i>
<div class="flex-grow-1">
<h6 class="mb-1 fw-bold text-dark">Install RHM App</h6>
<p class="mb-2 small text-muted">Add Refreshing Hope Ministries to your home screen for quick access!</p>
<div class="d-flex gap-2">
<button type="button" class="btn btn-primary btn-sm px-3" id="pwa-install-btn">
<i class="ri-download-line me-1"></i>Install
</button>
<button type="button" class="btn btn-outline-secondary btn-sm px-3" id="pwa-dismiss-btn">
Later
</button>
</div>
</div>
<button type="button" class="btn-close" aria-label="Close" id="pwa-close-btn"></button>
</div>
</div>
<script>
let deferredPrompt;
const installBanner = document.getElementById('pwa-install-banner');
const installBtn = document.getElementById('pwa-install-btn');
const dismissBtn = document.getElementById('pwa-dismiss-btn');
const closeBtn = document.getElementById('pwa-close-btn');
function isAppInstalled() {
return window.matchMedia('(display-mode: standalone)').matches ||
window.navigator.standalone === true;
}
function hasRecentlyDismissed() {
const dismissedTime = localStorage.getItem('pwa-install-dismissed');
if (!dismissedTime) return false;
const daysSinceDismissed = (Date.now() - parseInt(dismissedTime)) / (1000 * 60 * 60 * 24);
return daysSinceDismissed < 7; // Show again after 7 days
}
function showInstallBanner() {
if (!isAppInstalled() && !hasRecentlyDismissed() && deferredPrompt) {
installBanner.style.display = 'block';
setTimeout(() => {
installBanner.classList.add('show');
}, 500);
}
}
function hideInstallBanner() {
installBanner.style.display = 'none';
}
window.addEventListener('beforeinstallprompt', (e) => {
console.log('PWA install prompt available');
e.preventDefault();
deferredPrompt = e;
setTimeout(showInstallBanner, 3000);
});
installBtn.addEventListener('click', async () => {
if (!deferredPrompt) return;
hideInstallBanner();
try {
const result = await deferredPrompt.prompt();
console.log('PWA install prompt result:', result.outcome);
if (result.outcome === 'accepted') {
console.log('User accepted the PWA install prompt');
if (typeof gtag !== 'undefined') {
gtag('event', 'pwa_install', {
event_category: 'PWA',
event_label: 'User installed PWA'
});
}
}
} catch (error) {
console.error('Error showing install prompt:', error);
}
deferredPrompt = null;
});
dismissBtn.addEventListener('click', () => {
localStorage.setItem('pwa-install-dismissed', Date.now().toString());
hideInstallBanner();
});
closeBtn.addEventListener('click', () => {
localStorage.setItem('pwa-install-dismissed', Date.now().toString());
hideInstallBanner();
});
window.addEventListener('appinstalled', () => {
console.log('PWA was installed successfully');
hideInstallBanner();
const csrfToken = document.querySelector('input[name="t"]')?.value;
fetch('/activity', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'action=pwa-install-log' + (csrfToken ? '&t=' + csrfToken : '')
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('PWA installation logged successfully');
}
})
.catch(error => console.error('Error logging PWA installation:', error));
if (typeof gtag !== 'undefined') {
gtag('event', 'pwa_installed', {
event_category: 'PWA',
event_label: 'PWA successfully installed'
});
}
if (typeof showToast !== 'undefined') {
showToast('App installed successfully! You can now access RHM from your home screen.', true);
}
});
if (isAppInstalled()) {
document.body.classList.add('pwa-mode');
console.log('Running as PWA');
}
</script>
<style>
.pwa-mode {
}
#pwa-install-banner {
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
border: none;
border-radius: 12px;
}
#pwa-install-banner .btn {
border-radius: 6px;
}
@media (max-width: 576px) {
#pwa-install-banner {
position: fixed;
top: auto;
bottom: 20px;
left: 20px;
right: 20px;
max-width: none;
}
}
</style>
<script>
if (window.matchMedia('(display-mode: standalone)').matches || window.navigator.standalone === true) {
document.addEventListener('DOMContentLoaded', function() {
function handleExternalLinks() {
const links = document.querySelectorAll('a[target="_blank"]');
links.forEach(link => {
if (link.hasAttribute('data-pwa-processed')) return;
link.setAttribute('data-pwa-processed', 'true');
const originalHref = link.getAttribute('href');
link.removeAttribute('target');
link.addEventListener('click', function(e) {
e.preventDefault();
const isExternal = originalHref.startsWith('http') && !originalHref.includes(window.location.hostname);
const isFileDownload = /\.(pdf|doc|docx|xls|xlsx|zip|rar)$/i.test(originalHref);
if (isExternal || isFileDownload) {
window.open(originalHref, '_system');
} else {
window.location.href = originalHref;
}
});
});
}
handleExternalLinks();
const observer = new MutationObserver(function(mutations) {
handleExternalLinks();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
console.log('PWA external link handler active');
});
}
</script>
<script>
var token = "";
var t = "";
document.addEventListener('DOMContentLoaded', function () {
var editButtons = document.querySelectorAll('.post-edit-button'); // Query all post-edit buttons
editButtons.forEach(function (button) {
button.addEventListener('click', function (e) {
var activityId = e.target.getAttribute('data-activity');
var payload = e.target.getAttribute('data-type');
var payloadId = e.target.getAttribute('data-id');
openEditModal(activityId, payload, payloadId, t);
});
});
});
function updatePostContent(activityId, payloadId, content) {
var descriptionElement = document.getElementById('post-content-' + activityId);
if (!descriptionElement) {
descriptionElement = document.getElementById('post-content-' + payloadId);
}
if (descriptionElement) {
descriptionElement.innerHTML = content.replace(/\n/g, '<br>');
}
}
function openEditModal(activityId, payload, payloadId, token) {
var myAction = 'activity-get-post'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('activityId', activityId);
data.append('payload', payload);
data.append('payloadId', payloadId);
data.append('t', token);
fetch("/activity", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data
})
.then(response => response.json())
.then(data => {
document.getElementById('message-text').value = data.text;
var owner = data.owner; // Here you have the owner ID
document.getElementById('hidden-owner-id').value = owner; // Assuming you have an input with this ID
document.getElementById('hidden-payload').value = payload; // Set payload
document.getElementById('hidden-payloadId').value = payloadId; // Set payloadId
document.getElementById('hidden-activity-id').value = activityId; // Set the activity feed id
var modalElement = document.getElementById('post-edit-modal');
var modal = new bootstrap.Modal(modalElement);
modalElement.addEventListener('shown.bs.modal', function() {
document.getElementById('message-text').focus();
});
modal.show();
})
.catch(error => console.error('An error occurred during the transaction', error));
}
document.addEventListener('DOMContentLoaded', function() {
var editForm = document.getElementById('edit-form-91');
if (editForm) {
editForm.addEventListener('submit', function(event) {
event.preventDefault(); // Prevent the form from submitting normally
var activityId = document.getElementById('hidden-activity-id').value;
var payload = document.getElementById('hidden-payload').value;
var payloadId = document.getElementById('hidden-payloadId').value;
var postOwnerId = document.getElementById('hidden-owner-id').value;
var postContent = document.getElementById('message-text').value;
var myAction = 'activity-save-post'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('activityId', activityId);
data.append('payload', payload);
data.append('payloadId', payloadId);
data.append('postOwnerId', postOwnerId);
data.append('t', token);
data.append('postContent', postContent);
fetch("/activity", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
updatePostContent(activityId, payloadId, postContent);
var modal = bootstrap.Modal.getInstance(document.getElementById('post-edit-modal'));
modal.hide(); // Hide the modal
$.toast({
heading: 'Edited Post!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'success'
});
} else {
$.toast({
heading: 'Error!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'error'
});
}
})
.catch(error => console.error('An error occurred during the transaction', error));
})
} else {
}
});
document.addEventListener('DOMContentLoaded', function () {
var deleteButtons = document.querySelectorAll('.post-delete-button'); // Query all the post-delete buttons
deleteButtons.forEach(function (button) {
button.addEventListener('click', function (e) {
var activityId = e.target.getAttribute('data-activity');
var payload = e.target.getAttribute('data-type');
var payloadId = e.target.getAttribute('data-id');
openDeleteModal(activityId, payload, payloadId, t);
});
});
});
function openDeleteModal(activity, payload, payloadId, token) {
document.getElementById('post-delete-modal').setAttribute('data-activity', activity);
document.getElementById('post-delete-modal').setAttribute('data-payload', payload);
document.getElementById('post-delete-modal').setAttribute('data-payloadId', payloadId);
$('#post-delete-modal').modal('show');
}
document.addEventListener('DOMContentLoaded', function() {
var confirmDeleteButton = document.getElementById('confirm-post-delete-button'); // Adjust this ID to match your button
if (confirmDeleteButton) {
confirmDeleteButton.addEventListener('click', function() {
var modal = document.getElementById('post-delete-modal');
var activity = modal.getAttribute('data-activity');
var payload = modal.getAttribute('data-payload');
var payloadId = modal.getAttribute('data-payloadId');
var myAction = 'activity-delete-post'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('activity', activity);
data.append('payload', payload);
data.append('payloadId', payloadId);
data.append('t', token);
fetch("/activity", {
method: 'POST',
body: data
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
$('#post-delete-modal').modal('hide');
removePostElement(activity);
$.toast({
heading: 'Deleted Post!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'success'
});
} else {
$.toast({
heading: 'Error!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'error'
});
}
})
.catch(error => {
});
});
} else {
}
});
function removePostElement(activity) {
var postElement = document.getElementById('post-container-' + activity);
if (postElement) {
postElement.remove(); // This removes the post container from the DOM
}
}
function attachReplyButtonListener() {
document.body.addEventListener('click', function (event) {
const replyButton = event.target.closest('.reply-button');
if (replyButton) {
const replyContainer = replyButton.parentElement.parentElement;
const replyBox = replyContainer.querySelector('.reply-box');
const textarea = replyBox.querySelector('.comment-text'); // Get the textarea element
replyBox.style.display = replyBox.style.display === 'none' ? 'block' : 'none';
if (replyBox.style.display !== 'none') {
textarea.focus();
}
}
});
}
function attachSubmitButtonListeners() {
document.querySelectorAll('.submit-comment').forEach(submitButton => {
submitButton.removeEventListener('click', handleSubmitCommentClick);
submitButton.addEventListener('click', handleSubmitCommentClick);
});
}
function handleSubmitCommentClick(event) {
const replyBox = event.target.closest('.reply-box');
const commentText = replyBox.querySelector('.comment-text').value;
const itemId = replyBox.dataset.itemId;
const itemType = replyBox.dataset.itemType;
const ancestorPostId = replyBox.dataset.ancestorpostid; // Capture the ancestor post ID
const parentCommentId = replyBox.dataset.parentCommentId;
var myAction = 'activity-add-comment'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('comment', commentText); // Replace formData with data
data.append('itemId', itemId);
data.append('itemType', itemType);
data.append('ancestorPostId', ancestorPostId); // Add the ancestor post ID
data.append('parentCommentId', parentCommentId);
data.append('t', token);
fetch("/activity", {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: data
})
.then(response => response.json())
.then(data => {
if (data.success) {
let container;
let newCommentHTML; // Declare this variable here to use it later
let isReply = false;
if (itemType === 'comment') {
container = replyBox.closest(`.replies-container-${parentCommentId}`) || replyBox.parentElement.querySelector(`.replies-container-${parentCommentId}`);
isReply = true;
} else {
container = document.querySelector(`.comments-container-${ancestorPostId}`);
}
if (isReply) {
newCommentHTML = createReplyHTML(data);
} else {
newCommentHTML = createCommentHTML(data, false);
}
if (container) {
container.insertAdjacentHTML('afterbegin', newCommentHTML);
replyBox.style.display = 'none'; // Close the reply box here
attachSubmitButtonListeners();
attachEditButtonListeners();
} else {
}
} else {
alert('Failed to submit the comment.');
}
});
}
function createCommentHTML(data, isReply) {
const containerClass = isReply ? 'reply-container-' : 'comment-container-';
const parentCommentId = isReply ? data.parentCommentId : data.commentId;
return `
<hr class="m-0" /><br>
<div class="d-flex ${containerClass}${data.commentId}">
<img class="me-2 rounded" src="${data.avatar}" alt="Avatar image" height="32">
<div>
<div class="m-0 h5"><a href='/profile/'>${data.commenterName}</a></div>
<p class="text-muted mb-0"><small>${data.activityTime}</small></p>
<p class="my-1" id="comment-content-${data.commentId}">${data.commentText}</p>
<div>
<a href="javascript:void(0);" class="btn btn-sm btn-link like-button text-muted" data-ancestorpostid="${data.ancestorPostId}" data-id="${data.commentId}" data-type="comment">
<i class="mdi mdi-heart ${data.hasLikedComment ? 'text-danger' : ''} like-icon"></i> Like(<span class="likes-count">${data.likeCommentCount}</span>)
</a>
<a href="javascript:void(0);" class="btn btn-sm btn-link text-muted reply-button">
<i class='uil uil-comments-alt me-1'></i>Reply</a>
<a href="javascript: void(0);" class="btn btn-sm btn-link text-muted comment-edit-button" data-comment-id="${data.commentId}">
<i class='uil uil-comment-edit me-1'></i>Edit
</a>
<a href="javascript: void(0);" class="btn btn-sm btn-link text-muted comment-delete-button"
data-post-id="${data.ancestorPostId}"
data-comment-id="${data.commentId}"
data-parent-comment-id="${parentCommentId}">
<i class='uil uil-trash-alt me-1'></i>Delete
</a>
<div class="reply-box" style="display:none;"
data-ancestorpostid="${data.ancestorPostId}"
data-item-id="${data.commentId}"
data-item-type="comment"
data-comment-id="${data.commentId}"
data-parent-comment-id="${parentCommentId}">
<textarea class="form-control border-0 comment-text" rows="2" placeholder="Write your comment..."></textarea>
<button class="btn btn-primary mt-2 submit-comment">Submit</button>
</div>
<div class="replies-container-${data.commentId}"></div>
</div>
</div>
</div>
</div>`;
}
function createReplyHTML(data) {
return createCommentHTML(data, true);
}
function openCommentDeleteModal(commentId, postId, parentCommentId) {
document.getElementById('hidden-payloadId').value = commentId;
document.getElementById('hidden-postId').value = postId;
document.getElementById('hidden-parentCommentId').value = parentCommentId;
var modal = new bootstrap.Modal(document.getElementById('comment-delete-modal'));
modal.show();
}
document.addEventListener('DOMContentLoaded', function() {
var deleteButton = document.getElementById('confirm-comment-delete-button');
if (deleteButton) {
deleteButton.addEventListener('click', function() {
var modal = document.getElementById('comment-delete-modal');
var commentId = document.getElementById('hidden-payloadId').value;
var postId = document.getElementById('hidden-postId').value;
var parentCommentId = document.getElementById('hidden-parentCommentId').value;
var myAction = 'activity-delete-comment'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('commentId', commentId);
data.append('postId', postId);
data.append('parentCommentId', parentCommentId);
data.append('t', token);
fetch("/activity", {
method: 'POST',
body: data
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
$('#comment-delete-modal').modal('hide');
$.toast({
heading: 'Deleted Comment!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'success'
});
if (data.commentType === 'comment') {
removeCommentElement(commentId, postId, parentCommentId, false);
} else if (data.commentType === 'reply') {
removeCommentElement(commentId, postId, parentCommentId, true);
} else {
$.toast({
heading: 'Error!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'error'
});
}
}
})
.catch(error => {
});
})
} else {
}
});
function removeCommentElement(commentId, postId, parentCommentId, isReply) {
var containerClass;
if (isReply) {
containerClass = '.replies-container-' + parentCommentId;
} else {
containerClass = '.comments-container-' + postId;
}
var commentClass = isReply ? '.reply-container-' : '.comment-container-';
var container = document.querySelector(containerClass);
if (!container) {
return;
}
var commentElement = container.querySelector(commentClass + commentId);
if (commentElement) {
commentElement.remove();
} else {
}
}
function attachEditButtonListeners() {
document.querySelectorAll('.comment-edit-button').forEach(editButton => {
editButton.removeEventListener('click', handleEditCommentClick);
editButton.addEventListener('click', handleEditCommentClick);
});
}
function handleEditCommentClick(event) {
const commentId = event.target.closest('.comment-edit-button').dataset.commentId;
if (commentId) {
openEditCommentModal(commentId, token); // Open the edit comment modal using the token variable
} else {
}
}
function updateCommentContent(commentId, content) {
var commentElement = document.getElementById('comment-content-' + commentId);
if (commentElement) {
commentElement.innerHTML = content;
}
}
function openEditCommentModal(commentId, token) {
var myAction = 'activity-get-comment'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('commentId', commentId);
data.append('t', token);
fetch("/activity", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data
})
.then(response => response.json())
.then(data => {
document.getElementById('comment-text').value = data.commentText; // Set comment text
document.getElementById('hidden-comment-id').value = data.commentId; // Set comment ID
document.getElementById('hidden-comment-owner-id').value = data.commentOwner; // Set comment owner ID
var modalElement = document.getElementById('comment-edit-modal');
var modal = new bootstrap.Modal(modalElement);
modalElement.addEventListener('shown.bs.modal', function () {
document.getElementById('comment-text').focus();
});
modal.show();
})
.catch(error => console.error('An error occurred during the transaction', error));
}
document.addEventListener('DOMContentLoaded', function() {
var editForm = document.getElementById('comment-edit-form');
if (editForm) {
editForm.addEventListener('submit', function (event) {
event.preventDefault();
var commentId = document.getElementById('hidden-comment-id').value;
var commentContent = document.getElementById('comment-text').value;
var myAction = 'activity-save-comment'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('commentId', commentId);
data.append('commentContent', commentContent);
data.append('t', token);
fetch("/activity", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
updateCommentContent(commentId, commentContent);
var modal = bootstrap.Modal.getInstance(document.getElementById('comment-edit-modal'));
modal.hide();
$.toast({
heading: 'Edited Comment!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'success'
});
} else {
$.toast({
heading: 'Error!',
text: data.message,
showHideTransition: 'slide',
hideAfter: 3000,
allowToastClose: false,
icon: 'error'
});
}
})
.catch(error => console.error('An error occurred during the transaction', error));
});
} else {
}
});
function handleLikeButtonClick(likeButton) {
var userId = ;
var contentId = likeButton.getAttribute('data-id');
var contentType = likeButton.getAttribute('data-type');
var ancestorPostId = likeButton.getAttribute('data-ancestorpostid');
var likesCountElement = likeButton.querySelector('.likes-count');
var likeIconElement = likeButton.querySelector('.like-icon');
var myAction = 'activity-like'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('t', token);
data.append('userId', userId);
data.append('contentId', contentId);
data.append('contentType', contentType);
data.append('ancestorPostId', ancestorPostId); // Add the ancestor post ID
fetch("/activity", {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: data
})
.then(response => response.json())
.then(response => {
if (response && response.success) {
var newLikesCount = parseInt(likesCountElement.textContent) + response.change;
likesCountElement.textContent = newLikesCount;
likeIconElement.classList.remove('mdi', 'mdi-heart', 'text-danger');
var likeTextElement = likeButton.querySelector('.like-text');
if (response.change === 1) {
likeIconElement.classList.add('mdi', 'mdi-heart', 'text-danger');
likeTextElement.textContent = 'Unlike';
likeButton.setAttribute('data-liked', 'true');
likeButton.setAttribute('aria-label', 'Unlike');
} else {
likeIconElement.classList.add('mdi', 'mdi-heart');
likeTextElement.textContent = 'Like';
likeButton.setAttribute('data-liked', 'false');
likeButton.setAttribute('aria-label', 'Like');
}
} else {
}
})
.catch(error => {
});
}
document.addEventListener('DOMContentLoaded', function () {
document.body.addEventListener('click', function(event) {
const likeButton = event.target.closest('.like-button');
if (likeButton) {
handleLikeButtonClick(likeButton); // Call a separate function to handle like button click
return; // Exit after handling the like button to avoid checking other buttons
}
});
attachReplyButtonListener();
attachSubmitButtonListeners();
attachEditButtonListeners();
document.body.addEventListener('click', function(event) {
const deleteButton = event.target.closest('.comment-delete-button');
if (deleteButton) {
const commentId = deleteButton.dataset.commentId;
const postId = deleteButton.dataset.postId;
const parentCommentId = deleteButton.dataset.parentCommentId;
openCommentDeleteModal(commentId, postId, parentCommentId);
}
});
});
document.addEventListener('DOMContentLoaded', function () {
var pinButtons = document.querySelectorAll('.post-pin-button'); // Query all pin buttons
pinButtons.forEach(function (button) {
button.addEventListener('click', function (e) {
var activityId = e.target.getAttribute('data-activity');
var payload = e.target.getAttribute('data-type');
var payloadId = e.target.getAttribute('data-id');
var isPinned = e.target.getAttribute('data-pinned') === 'true';
togglePinPost(activityId, payload, payloadId, isPinned, token);
});
});
});
function togglePinPost(activityId, payload, payloadId, isPinned, token) {
var myAction = 'activity-toggle-pin'; // Set the action you want to perform
var data = new URLSearchParams();
data.append('action', myAction);
data.append('activityId', activityId);
data.append('payload', payload);
data.append('payloadId', payloadId);
data.append('isPinned', isPinned);
data.append('t', token);
fetch("/activity", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data
})
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
updatePinButtonState(activityId, !isPinned);
showToast(data.message, true);
if (data.reload) {
setTimeout(function() {
window.location.reload();
}, 1500);
}
} else {
showToast(data.message || 'An error occurred while processing your request.', false);
}
})
.catch(error => {
console.error('An error occurred during the pin/unpin operation', error);
showToast('An error occurred while processing your request.', false);
});
}
function updatePinButtonState(activityId, isPinned) {
var pinButton = document.querySelector(`.post-pin-button[data-activity="${activityId}"]`);
if (pinButton) {
pinButton.setAttribute('data-pinned', isPinned ? 'true' : 'false');
var icon = pinButton.querySelector('i');
if (icon) {
if (isPinned) {
icon.classList.remove('mdi-pin');
icon.classList.add('mdi-pin-off');
} else {
icon.classList.remove('mdi-pin-off');
icon.classList.add('mdi-pin');
}
}
pinButton.textContent = isPinned ? 'Unpin Post' : 'Pin Post';
if (icon) {
pinButton.prepend(icon);
}
}
}
</script>
<script>
document.addEventListener('DOMContentLoaded', function () {
const contentPages = document.querySelectorAll('.content-page');
if (contentPages.length > 0) {
contentPages.forEach(function(contentPage) {
wrapBibleReferences(contentPage);
});
var popoverTriggerList = [].slice.call(document.querySelectorAll('.bible-reference'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl, {
html: true,
sanitize: false,
customClass: 'bible-reference-popover',
container: 'body', // Append to body for better positioning
boundary: 'viewport', // Constrain to viewport
placement: 'auto' // Auto-placement to avoid overflow
})
})
const styleElement = document.createElement('style');
styleElement.textContent = `
@media (max-width: 767px) {
.popover {
max-width: 90vw !important;
width: auto !important;
}
.bible-reference-popover {
font-size: 0.9rem;
}
}
`;
document.head.appendChild(styleElement);
document.body.addEventListener('click', function (e) {
if (!e.target.classList.contains('bible-reference')) {
popoverTriggerList.forEach(function(popoverTriggerEl) {
let popoverInstance = bootstrap.Popover.getInstance(popoverTriggerEl);
if (popoverInstance) {
popoverInstance.hide();
}
});
}
});
function handleBibleReference(e) {
if (e.target.classList.contains('bible-reference')) {
e.preventDefault();
let reference = e.target.dataset.reference;
reference = reference.replace(/^\(|\)$/g, '').replace(/\s+[A-Z]+$/, '');
const popover = bootstrap.Popover.getInstance(e.target);
if (e.target.getAttribute('data-bs-content') === 'Loading...') {
const formData = new FormData();
formData.append('user_action', 'get-bible-verse');
formData.append('reference', reference);
fetch('/activity', {
method: 'POST',
body: formData
})
.then(response => response.text())
.then(verse => {
const processedVerse = processRedLetterText(verse);
e.target.setAttribute('data-bs-content', processedVerse);
popover.setContent({
'.popover-header': reference,
'.popover-body': processedVerse
});
popover.update();
})
.catch(error => {
e.target.setAttribute('data-bs-content', 'Failed to load verse. Please try again.');
popover.setContent({
'.popover-header': 'Error',
'.popover-body': 'Failed to load verse. Please try again.'
});
popover.update();
});
}
}
}
document.body.addEventListener('click', function(e) {
if (e.target.classList.contains('bible-reference')) {
handleBibleReference(e);
}
});
document.body.addEventListener('touchend', function(e) {
if (e.target.classList.contains('bible-reference')) {
handleBibleReference(e);
}
}, { passive: false });
} else {
}
});
function processRedLetterText(text) {
return text.replace(/‹([^›]+)›/g, '<span class="text-danger">$1</span>');
}
function wrapBibleReferences(element) {
const validBooks = [
'Genesis', 'Gen', 'Exodus', 'Exo', 'Leviticus', 'Lev', 'Numbers', 'Num',
'Deuteronomy', 'Deut', 'Joshua', 'Josh', 'Judges', 'Judg', 'Ruth',
'1 Samuel', '1 Sam', '2 Samuel', '2 Sam', '1 Kings', '2 Kings',
'1 Chronicles', '1 Chr', '2 Chronicles', '2 Chr', 'Ezra', 'Nehemiah', 'Neh',
'Esther', 'Est', 'Job', 'Psalms', 'Ps', 'Proverbs', 'Prov', 'Ecclesiastes', 'Eccl',
'Song of Solomon', 'Song', 'Isaiah', 'Isa', 'Jeremiah', 'Jer',
'Lamentations', 'Lam', 'Ezekiel', 'Ezek', 'Daniel', 'Dan', 'Hosea', 'Hos',
'Joel', 'Amos', 'Obadiah', 'Obad', 'Jonah', 'Jon', 'Micah', 'Mic', 'Nahum', 'Nah',
'Habakkuk', 'Hab', 'Zephaniah', 'Zeph', 'Haggai', 'Hag', 'Zechariah', 'Zech',
'Malachi', 'Mal', 'Matthew', 'Matt', 'Mark', 'Luke', 'John', 'Acts',
'Romans', 'Rom', '1 Corinthians', '1 Cor', '2 Corinthians', '2 Cor',
'Galatians', 'Gal', 'Ephesians', 'Eph', 'Philippians', 'Phil', 'Colossians', 'Col',
'1 Thessalonians', '1 Thess', '2 Thessalonians', '2 Thess',
'1 Timothy', '1 Tim', '2 Timothy', '2 Tim', 'Titus', 'Philemon', 'Phlm',
'Hebrews', 'Heb', 'James', 'Jas', '1 Peter', '1 Pet', '2 Peter', '2 Pet',
'1 John', '2 John', '3 John', 'Jude', 'Revelation', 'Rev'
];
const bookPattern = validBooks.map(book => book.replace(/\s/g, '\\s')).join('|');
const regex = new RegExp(`\\(((?:(?:\\d\\s)?(?:${bookPattern})\\.?\\s)(?:\\d+:)?\\d+(?:\\s?[-–—]\\s?\\d+)?(?:\\s[A-Z]+)?)\\)`, 'g');
const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT, null, false);
const nodesToReplace = [];
while (walker.nextNode()) {
const node = walker.currentNode;
if (node.nodeType === Node.TEXT_NODE && regex.test(node.nodeValue)) {
nodesToReplace.push(node);
}
}
nodesToReplace.forEach(node => {
const fragment = document.createDocumentFragment();
let lastIndex = 0;
const text = node.nodeValue;
text.replace(regex, (match, reference, offset) => {
if (offset > lastIndex) {
fragment.appendChild(document.createTextNode(text.slice(lastIndex, offset)));
}
const link = document.createElement('a');
link.href = '#';
link.className = 'bible-reference';
link.textContent = match;
reference = reference.replace(/[–—]/g, '-');
let popoverTitle = reference.replace(/\s+[A-Z]+\)?$/, ')');
link.setAttribute('data-bs-toggle', 'popover');
link.setAttribute('data-bs-placement', 'top');
link.setAttribute('data-bs-custom-class', 'info-popover wide-popover');
link.setAttribute('data-bs-title', popoverTitle);
link.setAttribute('data-bs-content', 'Loading...');
link.setAttribute('data-reference', reference);
fragment.appendChild(link);
lastIndex = offset + match.length;
});
if (lastIndex < text.length) {
fragment.appendChild(document.createTextNode(text.slice(lastIndex)));
}
node.parentNode.replaceChild(fragment, node);
});
}
</script>
<script>
window.defaultConfig = {
theme: 'light', // preferred default theme
menu: { color: 'blues' }, // preferred menu color
sidenav: { size: 'default', user: true },
layout: { mode: 'fluid', position: 'fixed' },
topbar: { color: 'blues' }, // preferred topbar color
};
$(document).ready(function () {
$('form#call-spinner').on('submit', function (e) {
$('#uploadSpinnerModal').modal('show');
});
});
function startCountdown(duration) {
var timer = duration * 60; // Convert minutes to seconds
var countdownInterval = setInterval(function () {
var minutes = Math.abs(parseInt(timer / 60, 10));
var bannerElement = document.getElementById('countdownBanner');
var countdownText = document.querySelector('#countdownBanner a');
var minuteText = minutes === 1 ? 'minute' : 'minutes'; // Handling pluralization
if (minutes > 1) {
countdownText.innerHTML = 'Live stream begins in ' + minutes + ' ' + minuteText + '! Click to join!';
} else {
countdownText.innerHTML = 'Live stream in progress! Click to join!';
clearInterval(countdownInterval);
if (window.location.pathname === '/stream') {
bannerElement.style.display = 'none'; // Optionally hide the banner on stream page
}
}
timer -= 60; // Decrease every minute
}, 60000); // Update every minute
}
var countdownLink = document.querySelector('#countdownBanner a');
if (countdownLink) {
var initialMinutesText = countdownLink.textContent;
var matches = initialMinutesText.match(/(\d+) minute/);
if (matches) {
var initialMinutes = parseInt(matches[1], 10);
startCountdown(initialMinutes);
}
}
document.addEventListener('DOMContentLoaded', function () {
var btn = document.getElementById('backToTopBtn');
window.onscroll = function () {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
btn.style.display = "block";
} else {
btn.style.display = "none";
}
};
btn.onclick = function () {
window.scrollTo({top: 0, behavior: 'smooth'});
};
});
function showToast(message, success) {
var type = success ? 'success' : 'error';
$.toast({
heading: success ? 'Success' : 'Error',
text: message,
showHideTransition: 'slide',
icon: type,
hideAfter: 3000,
allowToastClose: true,
position: 'bottom-left'
});
}
setTimeout(function () {
document.title = "We miss you!";
}, 5 * 60 * 1000);
$(document).ready(function () {
if ($('.image-modal-trigger').length) {
$('.image-modal-trigger').click(function () {
var dataId = $(this).data('id'); // Get the data-id attribute value
var imageLink = $(this).data('link'); // Get the image link from data-link attribute
console.log(imageLink);
$('#dataid').text(dataId);
$('#imageSrcSpan').text(imageLink); // Set the URL in the span element
$('#displayedImage').attr('src', imageLink); // Update the src attribute of the image
$('#display-image-modal').modal('show');
});
}
});
$(document).ready(function () {
$('#blog-print-button').on('click', function () {
$('#blog-print-form').submit();
});
});
document.addEventListener('DOMContentLoaded', function () {
var fbShareButton = document.getElementById('facebook-share-button');
if (fbShareButton) {
fbShareButton.addEventListener('click', function () {
var blogId = '{$blogId}';
var url = "https://www.refreshinghope.org/blogs/{$blog->ownerid}/" + blogId + "/{$titleString}";
window.open("https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(url), 'facebook-share-dialog', 'width=800,height=600');
});
}
});
document.addEventListener('DOMContentLoaded', function () {
const birthdayField = document.getElementById('birthday-field');
if (birthdayField) {
birthdayField.addEventListener('input', function () {
const input = this.value;
const regex = /^\d{4}-\d{2}-\d{2}$/;
const message = document.getElementById('date-validation-message');
if (!regex.test(input)) {
message.textContent = "Invalid format: use YYYY-MM-DD";
message.style.color = "red";
return;
}
const [year, month, day] = input.split('-').map(Number);
const date = new Date(year, month - 1, day);
const isValidDate = date.getFullYear() === year && date.getMonth() === (month - 1) && date.getDate() === day;
if (!isValidDate) {
message.textContent = "Invalid date: That day never came!";
message.style.color = "red";
} else {
message.textContent = "Valid date";
message.style.color = "green";
}
});
}
});
function initTextToSpeech(buttonId, contentId) {
const speakButton = document.getElementById(buttonId);
if (speakButton) {
speakButton.addEventListener('click', function () {
const textToRead = document.getElementById(contentId).innerText;
speak(textToRead);
});
}
let isSpeaking = false;
function speak(text) {
if ('speechSynthesis' in window) {
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'en-US';
utterance.rate = 0.9;
utterance.pitch = 1;
utterance.onstart = function () {
isSpeaking = true;
speakButton.textContent = 'Stop Reading';
speakButton.classList.replace('btn-secondary', 'btn-danger');
};
utterance.onend = function () {
isSpeaking = false;
speakButton.textContent = 'Read Aloud';
speakButton.classList.replace('btn-danger', 'btn-secondary');
};
if (isSpeaking) {
window.speechSynthesis.cancel();
} else {
window.speechSynthesis.speak(utterance);
}
} else {
alert('Sorry, your browser does not support text-to-speech!');
}
}
}
</script>
<script>
(function ($) {
'use strict';
function initComponents() {
$(window).on('load', function () {
$('#status').fadeOut();
$('#preloader').delay(350).fadeOut('slow');
});
const popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]')
const popoverList = [...popoverTriggerList].map(popoverTriggerEl => new bootstrap.Popover(popoverTriggerEl))
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
const offcanvasElementList = document.querySelectorAll('.offcanvas')
const offcanvasList = [...offcanvasElementList].map(offcanvasEl => new bootstrap.Offcanvas(offcanvasEl))
var toastPlacement = document.getElementById("toastPlacement");
if (toastPlacement) {
document.getElementById("selectToastPlacement").addEventListener("change", function () {
if (!toastPlacement.dataset.originalClass) {
toastPlacement.dataset.originalClass = toastPlacement.className;
}
toastPlacement.className = toastPlacement.dataset.originalClass + " " + this.value;
});
}
var toastElList = [].slice.call(document.querySelectorAll('.toast'))
var toastList = toastElList.map(function (toastEl) {
return new bootstrap.Toast(toastEl)
})
const alertPlaceholder = document.getElementById('liveAlertPlaceholder')
const alert = (message, type) => {
const wrapper = document.createElement('div')
wrapper.innerHTML = [
`<div class="alert alert-${type} alert-dismissible" role="alert">`,
` <div>${message}</div>`,
' <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>',
'</div>'
].join('')
alertPlaceholder.append(wrapper)
}
const alertTrigger = document.getElementById('liveAlertBtn')
if (alertTrigger) {
alertTrigger.addEventListener('click', () => {
alert('Nice, you triggered this alert message!', 'success')
})
}
if (document.getElementById('app-style').href.includes('rtl.min.css')) {
document.getElementsByTagName('html')[0].dir = "rtl";
}
}
function initPortletCard() {
var portletIdentifier = ".card"
var portletCloser = '.card a[data-bs-toggle="remove"]'
var portletRefresher = '.card a[data-bs-toggle="reload"]'
let self = this
$(document).on("click", portletCloser, function (ev) {
ev.preventDefault();
var $portlet = $(this).closest(portletIdentifier);
var $portlet_parent = $portlet.parent();
$portlet.remove();
if ($portlet_parent.children().length == 0) {
$portlet_parent.remove();
}
});
$(document).on("click", portletRefresher, function (ev) {
ev.preventDefault();
var $portlet = $(this).closest(portletIdentifier);
$portlet.append('<div class="card-disabled"><div class="card-portlets-loader"></div></div>');
var $pd = $portlet.find('.card-disabled');
setTimeout(function () {
$pd.fadeOut('fast', function () {
$pd.remove();
});
}, 500 + 300 * (Math.random() * 5));
});
}
function initMultiDropdown() {
$('.dropdown-menu a.dropdown-toggle').on('click', function () {
var dropdown = $(this).next('.dropdown-menu');
var otherDropdown = $(this).parent().parent().find('.dropdown-menu').not(dropdown);
otherDropdown.removeClass('show')
otherDropdown.parent().find('.dropdown-toggle').removeClass('show')
return false;
});
}
function initLeftSidebar() {
var self = this;
if ($(".side-nav").length) {
var navCollapse = $('.side-nav li .collapse');
var navToggle = $(".side-nav li [data-bs-toggle='collapse']");
navToggle.on('click', function (e) {
return false;
});
navCollapse.on({
'show.bs.collapse': function (event) {
var parent = $(event.target).parents('.collapse.show');
$('.side-nav .collapse.show').not(event.target).not(parent).collapse('hide');
}
});
$(".side-nav a").each(function () {
var pageUrl = window.location.href.split(/[?#]/)[0];
if (this.href == pageUrl) {
$(this).addClass("active");
$(this).parent().addClass("menuitem-active");
$(this).parent().parent().parent().addClass("show");
$(this).parent().parent().parent().parent().addClass("menuitem-active"); // add active to li of the current link
var firstLevelParent = $(this).parent().parent().parent().parent().parent().parent();
if (firstLevelParent.attr('id') !== 'sidebar-menu') firstLevelParent.addClass("show");
$(this).parent().parent().parent().parent().parent().parent().parent().addClass("menuitem-active");
var secondLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent();
if (secondLevelParent.attr('id') !== 'wrapper') secondLevelParent.addClass("show");
var upperLevelParent = $(this).parent().parent().parent().parent().parent().parent().parent().parent().parent().parent();
if (!upperLevelParent.is('body')) upperLevelParent.addClass("menuitem-active");
}
});
setTimeout(function () {
var activatedItem = document.querySelector('li.menuitem-active .active');
if (activatedItem != null) {
var simplebarContent = document.querySelector('.leftside-menu .simplebar-content-wrapper');
var offset = activatedItem.offsetTop - 300;
if (simplebarContent && offset > 100) {
scrollTo(simplebarContent, offset, 600);
}
}
}, 200);
function easeInOutQuad(t, b, c, d) {
t /= d / 2;
if (t < 1) return c / 2 * t * t + b;
t--;
return -c / 2 * (t * (t - 2) - 1) + b;
}
function scrollTo(element, to, duration) {
var start = element.scrollTop, change = to - start, currentTime = 0, increment = 20;
var animateScroll = function () {
currentTime += increment;
var val = easeInOutQuad(currentTime, start, change, duration);
element.scrollTop = val;
if (currentTime < duration) {
setTimeout(animateScroll, increment);
}
};
animateScroll();
}
}
}
function initTopbarMenu() {
if ($('.navbar-nav').length) {
$('.navbar-nav li a').each(function () {
var pageUrl = window.location.href.split(/[?#]/)[0];
if (this.href == pageUrl) {
$(this).addClass('active');
$(this).parent().parent().addClass('active'); // add active to li of the current link
$(this).parent().parent().parent().parent().addClass('active');
$(this).parent().parent().parent().parent().parent().parent().addClass('active');
}
});
$('.navbar-toggle').on('click', function () {
$(this).toggleClass('open');
$('#navigation').slideToggle(400);
});
}
}
function initSearch() {
var navDropdowns = $('.navbar-custom .dropdown:not(.app-search)');
$(document).on('click', function (e) {
if (e.target.id == "top-search" || e.target.closest('#search-dropdown')) {
$('#search-dropdown').addClass('d-block');
} else {
$('#search-dropdown').removeClass('d-block');
}
return true;
});
$('#top-search').on('focus', function (e) {
e.preventDefault();
navDropdowns.children('.dropdown-menu.show').removeClass('show');
$('#search-dropdown').addClass('d-block');
return false;
});
navDropdowns.on('show.bs.dropdown', function () {
$('#search-dropdown').removeClass('d-block');
});
}
function initfullScreenListener() {
var self = this;
var fullScreenBtn = document.querySelector('[data-toggle="fullscreen"]');
if (fullScreenBtn) {
fullScreenBtn.addEventListener('click', function (e) {
e.preventDefault();
document.body.classList.toggle('fullscreen-enable')
if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
});
}
}
function initShowHidePassword() {
$("[data-password]").on('click', function () {
if ($(this).attr('data-password') == "false") {
$(this).siblings("input").attr("type", "text");
$(this).attr('data-password', 'true');
$(this).addClass("show-password");
} else {
$(this).siblings("input").attr("type", "password");
$(this).attr('data-password', 'false');
$(this).removeClass("show-password");
}
});
}
function initFormValidation() {
document.querySelectorAll('.needs-validation').forEach(form => {
form.addEventListener('submit', event => {
if (!form.checkValidity()) {
event.preventDefault()
event.stopPropagation()
}
form.classList.add('was-validated')
}, false)
})
}
function initFormAdvance() {
if (jQuery().select2) {
$('[data-toggle="select2"]').select2();
}
if (jQuery().mask) {
$('[data-toggle="input-mask"]').each(function (idx, obj) {
var maskFormat = $(obj).data("maskFormat");
var reverse = $(obj).data("reverse");
if (reverse != null)
$(obj).mask(maskFormat, {'reverse': reverse});
else
$(obj).mask(maskFormat);
});
}
if (jQuery().daterangepicker) {
var start = moment().subtract(29, 'days');
var end = moment();
var defaultRangeOptions = {
startDate: start,
endDate: end,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
};
$('[data-toggle="date-picker-range"]').each(function (idx, obj) {
var objOptions = $.extend({}, defaultRangeOptions, $(obj).data());
var target = objOptions["targetDisplay"];
$(obj).daterangepicker(objOptions, function (start, end) {
if (target)
$(target).html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
});
});
var defaultOptions = {
"cancelClass": "btn-light",
"applyButtonClasses": "btn-success"
};
$('[data-toggle="date-picker"]').each(function (idx, obj) {
var objOptions = $.extend({}, defaultOptions, $(obj).data());
$(obj).daterangepicker(objOptions);
});
}
if (jQuery().timepicker) {
var defaultOptions = {
"showSeconds": true,
"icons": {
"up": "mdi mdi-chevron-up",
"down": "mdi mdi-chevron-down"
}
};
$('[data-toggle="timepicker"]').each(function (idx, obj) {
var objOptions = $.extend({}, defaultOptions, $(obj).data());
$(obj).timepicker(objOptions);
});
}
if (jQuery().TouchSpin) {
var defaultOptions = {};
$('[data-toggle="touchspin"]').each(function (idx, obj) {
var objOptions = $.extend({}, defaultOptions, $(obj).data());
$(obj).TouchSpin(objOptions);
});
}
if (jQuery().maxlength) {
var defaultOptions = {
warningClass: "badge bg-success",
limitReachedClass: "badge bg-danger",
separator: ' out of ',
preText: 'You typed ',
postText: ' chars available.',
placement: 'bottom',
};
$('[data-toggle="maxlength"]').each(function (idx, obj) {
var objOptions = $.extend({}, defaultOptions, $(obj).data());
$(obj).maxlength(objOptions);
});
}
}
function init() {
initComponents();
initPortletCard();
initMultiDropdown();
initLeftSidebar()
initTopbarMenu();
initSearch();
initfullScreenListener();
initShowHidePassword();
initFormValidation();
initFormAdvance();
}
init();
})(jQuery)
class ThemeCustomizer {
constructor() {
this.html = document.getElementsByTagName('html')[0]
this.config = {};
this.defaultConfig = window.config;
}
initConfig() {
this.defaultConfig = JSON.parse(JSON.stringify(window.defaultConfig));
const savedConfig = localStorage.getItem('__HYPER_CONFIG__');
if (savedConfig) {
try {
this.config = JSON.parse(savedConfig);
} catch (e) {
this.config = JSON.parse(JSON.stringify(window.defaultConfig));
}
} else {
this.config = JSON.parse(JSON.stringify(window.defaultConfig));
}
if (this.config.theme) {
this.html.setAttribute('data-theme', this.config.theme);
}
if (this.config.menu && this.config.menu.color) {
this.html.setAttribute('data-menu-color', this.config.menu.color);
}
if (this.config.sidenav && this.config.sidenav.size) {
this.html.setAttribute('data-sidenav-size', this.config.sidenav.size);
}
if (this.config.layout && this.config.layout.mode) {
this.html.setAttribute('data-layout-mode', this.config.layout.mode);
}
if (this.config.layout && this.config.layout.position) {
this.html.setAttribute('data-layout-position', this.config.layout.position);
}
if (this.config.topbar && this.config.topbar.color) {
this.html.setAttribute('data-topbar-color', this.config.topbar.color);
}
if (this.config.sidenav && this.config.sidenav.user !== undefined) {
if (this.config.sidenav.user) {
this.html.setAttribute('data-sidenav-user', this.config.sidenav.user);
} else {
this.html.removeAttribute('data-sidenav-user');
}
}
this.setSwitchFromConfig();
}
changeMenuColor(color) {
this.config.menu.color = color;
this.html.setAttribute('data-menu-color', color);
this.setSwitchFromConfig();
}
changeLeftbarSize(size, save = true) {
this.html.setAttribute('data-sidenav-size', size);
if (save) {
this.config.sidenav.size = size;
this.setSwitchFromConfig();
}
}
changeLayoutMode(mode, save = true) {
this.html.setAttribute('data-layout-mode', mode);
if (save) {
this.config.layout.mode = mode;
this.setSwitchFromConfig();
}
}
changeLayoutPosition(position) {
this.config.layout.position = position;
this.html.setAttribute('data-layout-position', position);
this.setSwitchFromConfig();
}
changeLayoutColor(color) {
this.config.theme = color;
this.html.setAttribute('data-theme', color);
this.setSwitchFromConfig();
}
changeTopbarColor(color) {
this.config.topbar.color = color;
this.html.setAttribute('data-topbar-color', color);
this.setSwitchFromConfig();
}
changeSidebarUser(showUser) {
this.config.sidenav.user = showUser;
if (showUser) {
this.html.setAttribute('data-sidenav-user', showUser);
} else {
this.html.removeAttribute('data-sidenav-user');
}
this.setSwitchFromConfig();
}
resetTheme() {
const defaultConfig = window.defaultConfig || {
theme: 'light',
menu: { color: 'blues' },
sidenav: { size: 'default', user: true },
layout: { mode: 'fluid', position: 'fixed' },
topbar: { color: 'blues' }
};
this.config = JSON.parse(JSON.stringify(defaultConfig));
this.changeMenuColor(this.config.menu.color);
this.changeLeftbarSize(this.config.sidenav.size);
this.changeLayoutColor(this.config.theme);
this.changeLayoutMode(this.config.layout.mode);
this.changeLayoutPosition(this.config.layout.position);
this.changeTopbarColor(this.config.topbar.color);
this.changeSidebarUser(this.config.sidenav.user);
this._adjustLayout();
localStorage.removeItem('__HYPER_CONFIG__');
}
initSwitchListener() {
var self = this;
document.querySelectorAll('input[name=data-menu-color]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeMenuColor(element.value);
})
});
document.querySelectorAll('input[name=data-sidenav-size]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeLeftbarSize(element.value);
})
});
document.querySelectorAll('input[name=data-theme]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeLayoutColor(element.value);
})
});
document.querySelectorAll('input[name=data-layout-mode]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeLayoutMode(element.value);
})
});
document.querySelectorAll('input[name=data-layout-position]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeLayoutPosition(element.value);
})
});
document.querySelectorAll('input[name=data-layout]').forEach(function (element) {
element.addEventListener('change', function (e) {
window.location = element.value === 'horizontal' ? 'layouts-horizontal.html' : 'index.html'
})
});
document.querySelectorAll('input[name=data-topbar-color]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeTopbarColor(element.value);
})
});
document.querySelectorAll('input[name=sidebar-user]').forEach(function (element) {
element.addEventListener('change', function (e) {
self.changeSidebarUser(element.checked);
})
});
var themeColorToggle = document.getElementById('light-dark-mode');
if (themeColorToggle) {
themeColorToggle.addEventListener('click', function (e) {
if (self.config.theme === 'light') {
self.changeLayoutColor('dark');
} else {
self.changeLayoutColor('light');
}
});
}
var resetBtn = document.querySelector('#reset-layout')
if (resetBtn) {
resetBtn.addEventListener('click', function (e) {
self.resetTheme();
});
}
var menuToggleBtn = document.querySelector('.button-toggle-menu');
if (menuToggleBtn) {
menuToggleBtn.addEventListener('click', function () {
var configSize = self.config.sidenav.size;
var size = self.html.getAttribute('data-sidenav-size', configSize);
if (size === 'full') {
self.showBackdrop();
} else {
if (configSize === 'fullscreen') {
if (size === 'fullscreen') {
self.changeLeftbarSize('condensed', true);
} else {
self.changeLeftbarSize('condensed', true);
}
} else {
if (size === 'condensed') {
self.changeLeftbarSize('default', true);
} else {
self.changeLeftbarSize('condensed', true);
}
}
}
self.html.classList.toggle('sidebar-enable');
});
}
var menuCloseBtn = document.querySelector('.button-close-fullsidebar');
if (menuCloseBtn) {
menuCloseBtn.addEventListener('click', function () {
self.html.classList.remove('sidebar-enable');
self.hideBackdrop();
});
}
var hoverBtn = document.querySelectorAll('.button-sm-hover');
hoverBtn.forEach(function (element) {
element.addEventListener('click', function () {
var configSize = self.config.sidenav.size;
var size = self.html.getAttribute('data-sidenav-size', configSize);
if (size === 'sm-hover-active') {
self.changeLeftbarSize('sm-hover', false);
} else {
self.changeLeftbarSize('sm-hover-active', false);
}
});
})
}
showBackdrop() {
const backdrop = document.createElement('div');
backdrop.id = 'custom-backdrop';
backdrop.classList = 'offcanvas-backdrop fade show';
document.body.appendChild(backdrop);
document.body.style.overflow = "hidden";
if (window.innerWidth > 767) {
document.body.style.paddingRight = "15px";
}
const self = this
backdrop.addEventListener('click', function (e) {
self.html.classList.remove('sidebar-enable');
self.hideBackdrop();
})
}
hideBackdrop() {
var backdrop = document.getElementById('custom-backdrop');
if (backdrop) {
document.body.removeChild(backdrop);
document.body.style.overflow = null;
document.body.style.paddingRight = null;
}
}
initWindowSize() {
var self = this;
window.addEventListener('resize', function (e) {
self._adjustLayout();
})
}
_adjustLayout() {
var self = this;
if (window.innerWidth <= 767.98) {
self.changeLeftbarSize('full', false);
} else if (window.innerWidth >= 767 && window.innerWidth <= 1140) {
if (self.config.sidenav.size !== 'full' && self.config.sidenav.size !== 'fullscreen') {
if (self.config.sidenav.size === 'sm-hover') {
self.changeLeftbarSize('condensed');
} else {
self.changeLeftbarSize('condensed', false);
}
}
} else {
self.changeLeftbarSize(self.config.sidenav.size);
self.changeLayoutMode(self.config.layout.mode);
}
}
setSwitchFromConfig() {
localStorage.setItem('__HYPER_CONFIG__', JSON.stringify(this.config));
document.querySelectorAll('.right-bar input[type=checkbox]').forEach(function (checkbox) {
checkbox.checked = false;
})
var config = this.config;
if (config) {
var layoutNavSwitch = document.querySelector('input[type=radio][name=data-layout][value=' + config.nav + ']');
var layoutColorSwitch = document.querySelector('input[type=radio][name=data-theme][value=' + config.theme + ']');
var layoutModeSwitch = document.querySelector('input[type=radio][name=data-layout-mode][value=' + config.layout.mode + ']');
var topbarColorSwitch = document.querySelector('input[type=radio][name=data-topbar-color][value=' + config.topbar.color + ']');
var menuColorSwitch = document.querySelector('input[type=radio][name=data-menu-color][value=' + config.menu.color + ']');
var leftbarSizeSwitch = document.querySelector('input[type=radio][name=data-sidenav-size][value=' + config.sidenav.size + ']');
var layoutSizeSwitch = document.querySelector('input[type=radio][name=data-layout-position][value=' + config.layout.position + ']');
var sidebarUserSwitch = document.querySelector('input[type=checkbox][name=sidebar-user]');
if (layoutNavSwitch) layoutNavSwitch.checked = true;
if (layoutColorSwitch) layoutColorSwitch.checked = true;
if (layoutModeSwitch) layoutModeSwitch.checked = true;
if (topbarColorSwitch) topbarColorSwitch.checked = true;
if (menuColorSwitch) menuColorSwitch.checked = true;
if (leftbarSizeSwitch) leftbarSizeSwitch.checked = true;
if (layoutSizeSwitch) layoutSizeSwitch.checked = true;
if (sidebarUserSwitch && config.sidenav.user.toString() === "true") sidebarUserSwitch.checked = true;
}
}
init() {
this.initConfig();
this.initSwitchListener();
this.initWindowSize();
this._adjustLayout();
this.setSwitchFromConfig();
}
}
new ThemeCustomizer().init();
</script>
</div>
</body>
</html>

Ads.Txt Alerts - A trading name of Red Volcano Limited

Waterloo Buildings, Second Floor Rear, 53 London Road, Southampton, Hampshire, United Kingdom, SO15 2AD

© Red Volcano 2020. All Rights Reserved.