<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">


<head>
    
<link rel="preconnect" href="https://fonts.gstatic.com/" />

  <link href="https://fonts.googleapis.com/css?family=Raleway:400,700|Spectral+SC:400,700|Tangerine&display=swap" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'"/>  	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2">
	
	

	<title>SpartaCraft, Inc.</title>
	<meta name="description" content="Wholesale flag cases, coin racks, urns, mantels and display cases">
	<meta name="keywords" content="flag cases, coin racks, urns, mantels, display cases, military"><link rel="stylesheet" href="templates/fa/css/custom-font-awesome.min.css">
	<link rel="shortcut icon" type="image/x-icon" href="https://d2sggwvd9dgmbd.cloudfront.net/images/favicon.ico?v=0000000000">
	<link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
	<link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
	<link rel="icon" type="image/png" href="images/favicon-48x48.png" sizes="48x48" />
		<link rel="preload" href="../css/bootstrap-retail.css?9b957ee" as="style" onload="this.onload=null;this.rel='stylesheet'">
	    <link rel="preload" href="../css/retail.css?9b957ee" as="style" onload="this.onload=null;this.rel='stylesheet'">
		<link rel="preload" href="../css/focus.css?9b957ee" as="style" onload="this.onload=null;this.rel='stylesheet'">
	

    <style>

        /* 
        ### Skins CSS Overrides
        */

                /* Retail Template
                --------------------------------------------------------------- */
                h1, h2, h3, h4, h5, h6,
                input, button, select, textarea,
                body, body.retail {
                    font-family: Raleway
                }

                html,
                body,
                p {
                    color: #333333;
                }
                
                a { 
                    color: #007bb3; 
                }

                .text-warning,
                a.text-warning {
                    color: #8a6d3b;
                }

                .text-warning:hover,
                a.text-warning:hover {
                    color: #66512c;
                }

                .text-danger,
                a.text-danger {
                    color: #a94442;
                }

                .text-danger:hover,
                a.text-danger:hover {
                    color: #843534;
                }

                .text-success,
                a.text-success {
                    color: #3c763d;
                }

                .text-success:hover,
                a.text-success:hover {
                    color: #2b542c;
                }

                .text-info,
                a.text-info {
                    color: #31708f;
                }

                .text-info:hover,
                a.text-info:hover {
                    color: #245269;
                }

                a:hover,
                a:focus { 
                    color: rgb(26,148,204); 
                }

                h1, h2, h3, h4, h5, h6, 
                .formblock-heading, 
                legend, 
                .checkout-section-heading, 
                .checkout-section.active .checkout-section-heading { 
                    color: #222222; 
                }

                .pace .pace-progress {
                    background: #ad2227;
                }

                /* Retail Topbar
                --------------------------------------------------------------- */

                [class*="retail-header"] .topbar {
                    background-color: #000000;
                }

                /* Retail Buttons
                --------------------------------------------------------------- */

                .btn-link {
                    color: #007bb3;
                }

                .btn-link:not([disabled]):hover, 
                .btn-link:not([disabled]):focus, 
                .btn-link:not([disabled]):active, 
                .btn-link:not([disabled]).active {
                    color: rgb(26,148,204);
                }

                /* Primary buttons */
                .btn-primary, .btn-primary.button {
                    background-color: #007bb3;
                    border-color: #007bb3;
                    color: #FFFFFF;
                }

                .btn-primary:not([disabled]):hover, 
                .btn-primary:not([disabled]):focus, 
                .btn-primary:not([disabled]):active, 
                .btn-primary:not([disabled]).active, 
                .btn-primary:not([disabled]).button:hover, 
                .btn-primary:not([disabled]).button:focus, 
                .btn-primary:not([disabled]).button:active, 
                .btn-primary:not([disabled]).button.active {
                    background-color: #222222;
                    border-color: #222222;
                    color: #FFFFFF;
                }

                /* Secondary buttons */
                .btn:not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info), 
                .btn:not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).button {
                    background-color: #FFFFFF;
                    border-color: rgb(204,204,204);
                    color: #ad2227;
                }

                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info):hover, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info):focus, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info):active, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).active, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).button:hover, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).button:focus, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).button:active, 
                .btn:not([disabled]):not(.btn-primary):not(.btn-error):not(.btn-danger):not(.btn-warning):not(.btn-success):not(.btn-info).button.active {
                    background-color: #FFFFFF;
                    border-color: rgb(204,204,204);
                    color: #222222;
                }

                .list-group-item.active, 
                .list-group-item.active:hover, 
                .list-group-item.active:focus {
                    color: #FFFFFF !important;
                    border-color: #007bb3 !important;
                    background-color: #007bb3 !important;
                }

                /************* 
                ** Unused button settings
                .btn-secondary,
                .btn-inverse {
                    color: #FFFFFF;
                    border-color: #007bb3;
                    background-color: #007bb3;
                }

                .btn-secondary:hover,
                .btn-secondary:focus,
                .btn-inverse:hover,
                .btn-inverse:focus {
                    background-color: rgb(26,148,204);
                    border-color: rgb(26,148,204);
                }

                .btn-secondary:active,
                .btn-inverse:active {
                    background-color: rgb(15,138,194);
                    border-color: rgb(15,138,194);
                } 

                .btn-success {
                    color: #468847;
                    border-color: #468847;
                    background-color: #468847;
                }

                .btn-success:hover,
                .btn-success:focus {
                    background-color: rgb(96,162,96);
                    border-color: rgb(96,162,96);
                }

                .btn-success:active {
                    background-color: rgb(85,151,86);
                    border-color: rgb(85,151,86);
                }

                .btn-danger {
                    color: #FFFFFF;
                    border-color: #B94A48;
                    background-color: #B94A48;
                }

                .btn-danger:hover,
                .btn-danger:focus {
                    background-color: rgb(210,100,98);
                    border-color: rgb(210,100,98);
                }

                .btn-danger:active {
                    background-color: rgb(200,89,87);
                    border-color: rgb(200,89,87);
                }
                *************/

                .toast-success {
                    background-color: #ad2227;
                }


                /* Breadcrumbs
                --------------------------------------------------------------- */

                body.retail.focus-mode:not(.account) .breadcrumb.breadcrumb-cart li.active {
                    background: #ad2227;
                    color: #FFFFFF;
                }

                 body.retail.focus-mode:not(.account) .breadcrumb.breadcrumb-cart li.active:after {
                    border-color: transparent;
                    border-left-color: #ad2227;
                    border-width: 20px;
                }


                /* Retail Template 1
                --------------------------------------------------------------- */

                /* Topbar */
                .topbar #retail-topbar-left-menu>li>a:hover, 
                .topbar #retail-topbar-left-menu>li>a:focus, 
                .topbar #retail-topbar-left-menu>li.open>a {
                    background-color: rgb(26,26,26);
                    color: #FFFFFF;
                }

                @media (max-width: 980px) {
                    .topbar #retail-topbar-left-menu>li>a:hover, 
                    .topbar #retail-topbar-left-menu>li>a:focus, 
                    .topbar #retail-topbar-left-menu>li.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }
                }

                .topbar #retail-topbar-left-menu>li ul {
                    background-color: #FFFFFF;
                }

                .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1 {
                    color: #FFFFFF !important;
                }

                @media (max-width: 1024px) {
                    .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1 {
                        color: #333333 !important;
                    }
                }

                .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1:hover, 
                .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1:focus {
                    color: #FFFFFF !important;
                }

                @media (max-width: 1024px) {
                    .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1:hover, 
                    .topbar #retail-topbar-left-menu .retail-topbar-left-menu__a-1:focus {
                        color: #FFFFFF !important;
                        background: #ad2227 !important;
                    }
                 }


                .topbar #retail-topbar-left-menu>li ul a:hover, 
                .topbar #retail-topbar-left-menu>li ul a:focus {
                    background-color: rgb(230,230,230);
                }

                @media (max-width: 980px) {
                    .topbar #retail-topbar-left-menu {
                        background-color: #FFFFFF;
                    }
                }

                /* Header */
                
                .focus-header,
                [class*="retail-header"] .logo-bar {
                    background-color: #FFFFFF;
                }

                .focus-header__exit-wrapper {
                    border-color: rgb(230,230,230);
                }

                .focus-header__exit {
                    color: #007bb3;
                }
                
                .focus-header__exit:focus,
                .focus-header__exit:active,
                .focus-header__exit:hover {
                    color: #007bb3 !important;
                    background-color:  rgb(230,230,230);
                }


                [class*="retail-header"] .header__prodcat__toggle,
                [class*="retail-header"] .header__signin-open {
                    color: #007bb3 !important;
                }

                [class*="retail-header"] #header__user-menu>li.link-parent ul,
                [class*="retail-header"] #header__prodcat>li.link-parent ul {
                    background-color: #FFFFFF;
                }

                [class*="retail-header"] .topbar__menu-toggle a,
                [class*="retail-header"] .logo-bar__right .linkset > li > a {
                    color: #007bb3 !important;
                }

                [class*="retail-header"] .topbar__menu-toggle a:hover,
                [class*="retail-header"] .topbar__menu-toggle a:focus {
                    background: rgb(0,0,0) !important;
                }

                @media (max-width: 980px) {
                    [class*="retail-header"] .logo-bar__right .linkset > li > a {
                        background-color: #000000;
                        color: #FFFFFF !important;
                    }
                }

                [class*="retail-header"] .logo-bar__right .linkset > li > a:hover, 
                [class*="retail-header"] .logo-bar__right .linkset > li > a:active {
                    color: #ad2227 !important;
                }
                @media (max-width: 980px) {
                    [class*="retail-header"] .logo-bar__right .linkset > li > a:hover, 
                    [class*="retail-header"] .logo-bar__right .linkset > li > a:focus, 
                    [class*="retail-header"] .logo-bar__right .linkset > li > a:active {
                         color: #FFFFFF !important;
                         background: rgb(0,0,0) !important;
                    }
                }

                [class*="retail-header"] .logo-bar__right .linkset ul>li>a:hover, 
                [class*="retail-header"] .logo-bar__right .linkset ul>li>a:focus {
                    background-color: rgb(230,230,230);
                }

                [class*="retail-header"] #header__prodcat>li.link-parent li.link-parent.open>a {
                    background-color: #ad2227;
                    color: #FFFFFF;
                }

                [class*="retail-header"] #header__prodcat>li>ul {
                    border-top: 1px solid #ad2227;
                }

                [class*="retail-header"] #header__prodcat>li>ul ul {
                    border-left: 5px solid #ad2227;
                }

                [class*="retail-header"] .header__hero-search {
                    background-image: url('https://d2sggwvd9dgmbd.cloudfront.net/images/default-hero-background-light.jpg?v=0000000000');
                }

                /* Introduction */

                .home-description {
                    background-color: #ad2227;
                    color: #FFFFFF;
                }

                .home-description:after {
                    border-color: #ad2227 transparent transparent transparent;
                }


                /* Featured */

                .trending-products__title:after {
                        background-color: #ad2227;
                }

                /* Reseller */

                .footer-reseller__col-1 {
                    background-image: url('https://d2sggwvd9dgmbd.cloudfront.net/images/retail-image-placeholder-2.png?v=0000000000');
                }
                
                .footer-reseller__col-2 {
                    background-color: #ad2227;
                }

                .footer-reseller__col-2:before {
                    border-color: transparent #ad2227 transparent transparent;
                }

                .footer-reseller__wrap,
                .footer-reseller__wrap p {
                    color: #FFFFFF;
                }

                .footer-reseller h2:after {
                    background-color: #007bb3;
                }

                /* Retail Products
                --------------------------------------------------------------- */

                .prod-info {
                    color: #333333;
                }

                .prod-desc {
                    color: #007bb3;
                }
                
                .prod-desc p {
                    color: #007bb3;
                }
                
                .specials_nm {
                    color: #007bb3;
                }

                .specials_nm:hover,
                .specials_nm:focus {
                    color: rgb(26,148,204);
                }

                /* Retail Footer
                --------------------------------------------------------------- */

                [class*="retail-footer"] {
                    color: #FFFFFF; 
                    background-color: #222222; 
                }

                [class*="retail-footer"] .bottom-bar {
                    color: #FFFFFF; 
                    background-color: #000000; 
                }

                [class*="retail-footer"] .bottom-bar__colophon a:hover {
                    color: rgba(255,255,255,0.8); 
                }
        
                

                 /* Retail Template 2
                --------------------------------------------------------------- */

                /* Header */

                .retail-header-2 .header__prodcat__container {
                    background-color: #000000;
                }

                .retail-header-2 .header__prodcat .header__prodcat__toggle,
                .retail-header-2 .header__user-menu .header__user-menu__toggle,
                .retail-header-2 .header__signin .header__signin-open,
                .retail-header-2 .header__cart-preview .header__cart-preview__toggle {
                    color: #222222 !important;
                }

                @media (min-width: 981px) {

                    .retail-header-2 .header__prodcat__container .link-parent>ul>li>a {
                        color: #FFFFFF;
                    }

                    .retail-header-2 .header__prodcat__container .link-parent>ul>li ul {
                        background-color: #FFFFFF;
                    }

                    .retail-header-2 .header__prodcat__container .link-parent>ul>li li a {
                        color: #222222;
                    }

                    .retail-header-2 .header__prodcat__container .link-parent>ul>li li a:hover,
                    .retail-header-2 .header__prodcat__container .link-parent>ul>li li a:focus,
                    .retail-header-2 .header__prodcat__container .link-parent>ul>li li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }
                }

                @media (max-width: 980px) {
                    .retail-header-2 .header__prodcat__container .link-parent ul {
                        background-color: #FFFFFF;
                    }

                    .retail-header-2 .header__prodcat__container .link-parent ul li a {
                        color: #222222;
                    }

                    .retail-header-2 .header__prodcat__container .link-parent ul li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }

                    .retail-header-2 .header__user-menu .link-parent ul,
                    .retail-header-2 .header__cart-preview .link-parent ul,
                    .retail-header-2 .header__prodcat>.link-parent>ul {
                        border-top: 1px solid #ad2227;
                    }
                }

                 /* Retail Template 3
                --------------------------------------------------------------- */

                .retail-header-3 .header__prodcat .header__prodcat__toggle,
                .retail-header-3 .header__user-menu .header__user-menu__toggle,
                .retail-header-3 .header__signin .header__signin-open,
                .retail-header-3 .header__cart-preview .header__cart-preview__toggle {
                    color: #222222 !important;
                }

                @media (min-width: 981px) {                    
                    .retail-header-3 .header__prodcat .link-parent>ul li a:hover,
                    .retail-header-3 .header__prodcat .link-parent>ul li a:focus,
                    .retail-header-3 .header__prodcat .link-parent>ul li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }
                }

                @media (max-width: 980px) {                   

                    .retail-header-3 .header__user-menu .link-parent ul,
                    .retail-header-3 .header__cart-preview .link-parent ul,
                    .retail-header-3 .header__prodcat>.link-parent>ul {
                        border-top: 1px solid #ad2227;
                    }

                    .retail-header-3 .header__prodcat li li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }
                }

                 /* Retail Template 4
                --------------------------------------------------------------- */

                /* Header */

               
                .retail-header-4 .header__prodcat__container.--desktop {
                    background-color: #000000;
                }

                .retail-header-4 .header__prodcat__container.--all-screens .header__prodcat>.link-parent ul ul {
                        background: #FFFFFF;
                    }

                .retail-header-4 .header__prodcat__container.--all-screens .header__prodcat>.link-parent ul ul li>a:hover,
                .retail-header-4 .header__prodcat__container.--all-screens .header__prodcat>.link-parent ul ul li>a:focus,
                .retail-header-4 .header__prodcat__container.--all-screensl .header__prodcat>.link-parent ul ul li.link-parent.open>a,
                .retail-header-4 .header__user-menu .link-parent ul li a:hover,
                .retail-header-4 .header__user-menu .link-parent ul li a:focus {
                    background-color: #ad2227;
                    color: #FFFFFF;
                }

                .retail-header-4 .header__prodcat .header__prodcat__toggle,
                .retail-header-4 .header__user-menu .header__user-menu__toggle,
                .retail-header-4 .header__signin .header__signin-open,
                .retail-header-4 .header__cart-preview .header__cart-preview__toggle {
                    color: #222222 !important;
                }


                @media (min-width: 981px) {

                    .retail-header-4 .header__prodcat__container.--all-screens .header__prodcat>li>ul>li>a {
                        color: #222222 !important;
                    }

                    /* Horizontal Product Menu Styling */

                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul>li>a,
                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul .prodcat>ul>li>a {
                        color: #FFFFFF;
                    }

                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul>li ul {
                        background: #FFFFFF;
                    }

                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul>li ul li>a:hover,
                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul>li ul li>a:focus,
                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul>li ul li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }

                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul .prodcat>ul>li>a:hover,
                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul .prodcat>ul>li>a:focus,
                    .retail-header-4 .header__prodcat__container.--horizontal .header__prodcat>.link-parent>ul .prodcat>ul>li.link-parent.open>a {
                        background-color: transparent;
                        color: #FFFFFF;
                    }
                    
                    .retail-header-4 .header__prodcat__container.--horizontal.--mega-menu .header__prodcat>.link-parent>ul>li ul ul .link-parent>a:hover,
                    .retail-header-4 .header__prodcat__container.--horizontal.--mega-menu .header__prodcat>.link-parent>ul>li ul ul .link-parent>a:focus,
                    .retail-header-4 .header__prodcat__container.--horizontal.--mega-menu .header__prodcat>.link-parent>ul>li ul ul .link-parent.open>a {
                        background-color: transparent;
                        color:  #ad2227;
                    }

                    /* Vertical Product Menu Styling */

                    .retail-header-4 .header__prodcat__container.--vertical .header__prodcat>.link-parent>ul>li>a {
                        color: #FFFFFF;
                    }

                    .retail-header-4 .header__prodcat__container.--vertical .header__prodcat>.link-parent ul ul {
                        background: #FFFFFF;
                    }

                    .retail-header-4 .header__prodcat__container.--vertical .header__prodcat>.link-parent ul ul li>a:hover,
                    .retail-header-4 .header__prodcat__container.--vertical .header__prodcat>.link-parent ul ul li>a:focus,
                    .retail-header-4 .header__prodcat__container.--vertical .header__prodcat>.link-parent ul ul li.link-parent.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }

                }

                .retail-header-4 .top-bar {
                    background-color: #000000;
                    color: #FFFFFF;
                }

                .retail-header-4 .top-bar .top-bar__menu-toggle,
                .retail-header-4 .top-bar .top-bar__left>ul>li>ul>li>a {
                    color: #FFFFFF;
                }

                .retail-header-4 .top-bar .top-bar__left>ul>li>ul ul {
                    background-color: #FFFFFF;
                }

                @media (max-width: 980px) {
                    .retail-header-4 .top-bar .top-bar__left>ul>li>ul li>a {
                        color: #222222;
                    }
                    .retail-header-4 .top-bar .top-bar__left>ul .link-parent>ul .link-parent.open>a {
                        background: #ad2227;
                        color: #FFFFFF;
                    }
                    .retail-header-4 .top-bar .top-bar__left>ul>li ul,
                    .retail-header-4 .header__prodcat__container .header__prodcat>.link-parent>ul {
                        background-color: #FFFFFF;
                    }
                    .retail-header-4 .header__user-menu .link-parent ul,
                    .retail-header-4 .header__cart-preview .link-parent ul,
                    .retail-header-4 .header__prodcat>.link-parent>ul {
                        border-top: 1px solid #ad2227;
                    }
                    .retail-header-4 .header__prodcat>.link-parent>ul li a:hover,
                    .retail-header-4 .header__prodcat>.link-parent>ul li a:focus,
                    .retail-header-4 .header__prodcat>.link-parent>ul li.open>a {
                        background-color: #ad2227;
                        color: #FFFFFF;
                    }
                }
                
        
        
    </style>

<script>
    // This function is needed to fire the change event on text inputs
    // when the value is programatically set.  This happens for things
    // like when the date picker is used for a multi-input text question
    function overrideValuePropertyForChange(inputElement) {
        // grab the original property descriptor for the value property
        const originalDescriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');

        try {
            Object.defineProperty(inputElement, 'value', {
            configurable: true,
            get: function() {
                // Call original getter
                return originalDescriptor.get.call(this);
            },
            set: function(newValue) {
                // Handle the case when newValue is null or undefined
                if(newValue === null || (typeof newValue === 'undefined')) newValue = '';

                // Call original setter
                originalDescriptor.set.call(this, newValue);

                // Attempt to set the attribute to match the current value
                this.setAttribute('value', newValue);

                // Trigger the change event to notify any listeners
                // This is important for data-binding libraries and frameworks like KO and Blazor
                // and other items relying on change events to be fired which doesn't normally
                // happen when setting the value directly via javascript
                var event = new Event('change');
                this.dispatchEvent(event);
            }
            });
        } catch (error) {
            
            console.log(`Error overriding value property (${inputElement.id}): ${error}`);
            
        }
    }

    // This function is needed for JS hooks.
    function getOriginalPageName() {
        return 'maintenance.asp';
    }

    function getUrlPath() {
        return '/maintenance.asp';
    }

    function getUrl() {
        return '/maintenance.asp?autopage=%2Fsitemap.asp%3F';
    }

    function handleImageError(img, noImagePath){
        if(!noImagePath) {
            noImagePath = 'images/no-image.png';
        }
        if (utils && utils.buildImagePath) {
            noImagePath = utils.buildImagePath(noImagePath);
        }
        if ($(img).attr('src') !== noImagePath) {
            $(img).attr('src', noImagePath);
        }    
    }
    var sitename = "spartacraft2";
    var isWorkerDomain = false;
    var processPageTitle = isWorkerDomain && !false;
    var bValidIp = true;
    var sOfUrl   = 'https://spartacraft.com';
</script>

        <script src="https://www.google.com/recaptcha/api.js?render=6LeBcicsAAAAAGcFNu9pyi7Lw9nh_X3qz6ZUFzG7"></script>
        <style>
            .grecaptcha-badge { visibility: hidden; }
        </style>

<script>
	var oConfig = {

		sessionData : {
			sc_id              : "0B6D08FBAB624C29A345B95384CEA115",
			sessionKey         : "4A8717DFBA834BCE92597C03E8E361EB",
			storefrontUrl      : "https://spartacraft.com",
			orderfrontUrl      : "https://spartacraft.com",
			cdnUrl             : "https://d2sggwvd9dgmbd.cloudfront.net",
			isSuperUserSession : false,
			cartPage           : "showcart.asp"
		},
        noImagePath            : "images/no-image.png" || 'images/no-image.png'
	};

    var utils = {};

    utils.handleImageError = function (img) {
        var noImageUrl = null;
        if(typeof oConfig !== 'undefined' && oConfig?.noImagePath) {
            noImageUrl = oConfig.noImagePath;
        }
        handleImageError(img, noImageUrl);
    };

    utils.isCrossOriginFrame = function (parentContext) {
        try {
            if(!parentContext) parentContext = window;
            if (parentContext === window) return false;

            return (document.location.hostname !== parentContext.location.hostname);
        } catch (e) {
            return true;
        }
    }

    utils.getParameter = function (param, context) {
        var value;
        if(!context) context = window;
        
        // return empty string if cross origin (can't access params)
        if(utils.isCrossOriginFrame(context)) return '';

        var parameters = context.location.search.replace('?', '');

        if (parameters) {
            var pattern = new RegExp('\\b' + param + '=([^;&]+)', 'gi');
            value = parameters.split(pattern)[1];
        }

        return value || '';
    };

    utils.urlEncodePath = function(url) {
        if(!url) return '';
        var encodedUrl = url;
        var pathPortionRegex = /^(https:\/\/[^\/]+\/|\/)?([^?\n]+)(\?[^\n]*)?$/gi;
        var pathPortionArray = Array.from(url?.matchAll(pathPortionRegex) ?? []);
        var pathPortion = '';

        if(Array.isArray(pathPortionArray)
            && pathPortionArray.length > 0
            && Array.isArray(pathPortionArray[0])
            && pathPortionArray[0].length > 2) {
                pathPortion = pathPortionArray[0][2];
        }

        if(pathPortion) {
            var urlEncodedPathPortion = encodeURIComponent(utils.htmlDecode(pathPortion))?.replace(/%2f/gi, '/');
            encodedUrl = encodedUrl.replace(pathPortion, urlEncodedPathPortion);
        }

        return encodedUrl;
    };

    utils.buildImagePath = function(image){
        if(image && image.indexOf("http") > -1){
            imageUrl = image.replace(/http:/i, 'https:');
        }else{
            image = image.replace(oConfig.sessionData.storefrontUrl, oConfig.sessionData.cdnUrl).toLowerCase();
            if(!image){
                imageUrl = oConfig.noImagePath || oConfig.sessionData.cdnUrl.replace(/\/+$/, '') + '/images/' + oConfig.defaultImage.replace(/^\/+/, '');
            }
            else if(image.indexOf("/") > -1){
                imageUrl = oConfig.sessionData.cdnUrl.replace(/\/+$/, '') + '/' + image.replace(/^\/+/, '');
            }
            else{
                imageUrl = oConfig.sessionData.cdnUrl.replace(/\/+$/, '') + '/images/' + image.replace(/^\/+/, '');
            }
        }

        imageUrl = utils.urlEncodePath(imageUrl);

        cacheBustingPrefix = '?';
        if(imageUrl.includes('?')) cacheBustingPrefix = '&';
        return imageUrl + cacheBustingPrefix + 'v=0000000000';
    };

    utils.pageUrl = location.href.replace(/.+\//, '');
    utils.loginUrl = 'security_logon.asp?autopage=' + encodeURIComponent(utils.pageUrl);

    utils.pageName = function(){
        return "maintenance.asp";
    }

    utils.pageType = function(){
        var pageType = "";
        if(utils.pageUrl == '' && pageType == ''){
            pageType = 'home';
        }else if(pageType != ''){
            switch(pageType){
                case 'prodcat':
                case 'product':
                    pageType = 'catalog';
                    break;
                case 'page-section':
                case 'webpage':
                    pageType = 'content';
                    break;
                default:
                    pageType = 'other';
                    break;
            }
        }else{
            switch(getOriginalPageName()){
                case 'pc_product_detail.asp':
                case 'pc_combined_results.asp':
                case 'largest_spend_products.asp':
                case 'largest_qty_ordered_products.asp': 
                case 'recently_ordered_products.asp': 
                case 'frequently_ordered_products.asp':
                    pageType = 'catalog';
                    break;
                case 'showcart.asp':
                case 'account.asp':
                    pageType = 'checkout';
                    break;
                case 'page.asp':
                    pageType = 'content';
                    break;
                default:
                    pageType = 'other';
                    break;

            }
        }
        return pageType;
    }

    utils.htmlEncode = function(value){
        return $('<textarea/>').text(value).html();
    }

    utils.htmlDecode = function(value){
        return $("<textarea/>").html(value).text();
    }

    utils.pageSubType = function(){
        pageSubType = "maintenance";
        if("" != ''){
            pageSubType = "";
        }
        return pageSubType;
    }

    utils.scrollTo = function (elementArg) {
        var element = $(elementArg).first();
        if (!element.length) return;

        // If the element is in an inactive tab, make the tab active.
        utils.activateTab(element);

        $('html, body').animate({
                scrollTop: $(element[0]).offset().top - 120 //offset to account for header bar
        }, 500);

    };
    
    utils.activateTab = function (element) {
        var tab = element.hasClass('.tab-pane') ? element : element.closest('.tab-pane');
        if (!tab.length || tab.hasClass('active')) return;
        var id = tab.attr('id');
        tab
            .closest('.tabbable')
            .find('.nav-tabs > li > a')
            .filter('[href="#' + id + '"], [data-target="#' + id + '"]')
            .tab('show');
    }

    utils.popToastr = function(title, subtext, config) {

        var confirmToastrConfig = config ? config : {
            'closeButton': true,
            'newestOnTop': true,
            'positionClass': 'toast-top-right',
            'preventDuplicates': false,
            'showDuration': 500,
            'hideDuration': 1000,
            'tapToDismiss': false,
            'timeOut': 5000,
            'extendedTimeOut': 1000
        };

        toastr.success(
            subtext,
            title,
            confirmToastrConfig
        );
    };

    utils.popToastrError = function(title, subtext, config) {
        var errorToastrConfig = {
            'closeButton': true,
            'newestOnTop': true,
            'positionClass': 'toast-top-right',
            'preventDuplicates': false,
            'showDuration': 500,
            'hideDuration': 1000,
            'tapToDismiss': true,
            'timeOut': 5000,
            'extendedTimeOut': 1000
        }

        $.extend(errorToastrConfig, config);

        toggleLoadingWidget(false);

        toastr.error(
            subtext,
            title,
            errorToastrConfig
        );
    }

    utils.decimalPlacesOnUnitPrices = parseInt(2) || 2;
    utils.decimalPlacesOnTotals = parseInt('2') || 2;
    utils.decimalPlacesAllowedOnProductQty = 0;
    utils.defaultQtyIncrement = 1;

    /*
     * 2024-06-07 - Client-side version (Server-side in Global Functions)
     * Standard implementation of quantity validation
     * calculation logic.
     * This assumes all values passed in already account
     * for the uom conversion factor if applicable.
     */
     utils.getValidProductQty = function(inputQty, minQty, maxQty, step, allowZeroValue) {

        // init as success result
        var qtyValidationResult = {
            inputQty: inputQty,
            validQty: inputQty,
            error: ''
        }

        if(typeof allowZeroValue === 'undefined') allowZeroValue = false;

        //- set defaults
        if(typeof step === 'undefined') step = utils.defaultQtyIncrement; //- Defined in site_config_overrides.asp
        if(typeof minQty === 'undefined') minQty = step;
        if(typeof maxQty === 'undefined') maxQty = 0;

        //- Ensure all values are numeric
        inputQty = parseFloat(inputQty);
        minQty = parseFloat(minQty);
        maxQty = parseFloat(maxQty);
        step = parseFloat(step);

        //- zero is valid when validating qty inputs elements
        //- when zero indicates the product is not selected
        //- for add to cart, like on input-qty view with a single
        //- add to cart button
        if(inputQty == 0 && allowZeroValue) {
            return qtyValidationResult;
        }

        //- retun min if inputQty is not passed in, is 0 or less than minQty.
        if( !inputQty || (minQty > 0 && inputQty < minQty)){
            qtyValidationResult.validQty = minQty;
            qtyValidationResult.error = 'min';
            return qtyValidationResult;
        }

        //- DecimalPlacesAllowedOnProductQty defined in site_config_overrides.asp
        //- and assigned to utils.decimalPlacesAllowedOnProductQty in global_scripts_top.asp
        //- It can be 0 so we add 1 to it so we have a multiplier of at least 10.
        //- floatFixMultiplier is used to account for precision issues with floating point
        //- arithmatic on base-10 decimal numbers.
        var floatFixMultiplier = Math.pow(10, (parseFloat(utils.decimalPlacesAllowedOnProductQty) + 1));

        var PadDifferenceFromMin = ( (inputQty * floatFixMultiplier) - (minQty * floatFixMultiplier) );
        var padStep = step * floatFixMultiplier;
        var padMinQty = minQty * floatFixMultiplier;
        var padMaxQty = maxQty * floatFixMultiplier;

        //- Force max to valid value
        if(maxQty < minQty) maxQty = 0;
        if(maxQty > 0) {
            var maxStepMod = (padMaxQty - padMinQty) % padStep;
            if(maxStepMod != 0) {
                var maxAdjust = Math.floor( (padMaxQty - padMinQty) / padStep ) * padStep;

                maxQty = (padMinQty + maxAdjust) / floatFixMultiplier;
            }
        }

        //- return max if inputQty is greater than max
        if(maxQty > 0 && inputQty > maxQty){
            qtyValidationResult.validQty = maxQty;
            qtyValidationResult.error = 'max';
            return qtyValidationResult;
        }

        // 1 isn't a valid default for qty when using
        // fractional quantities without a defined increment
        // or if it's off when it's simple sales uom, so
        // we set increment/step to 0
        var stepMod = step ? ( parseFloat( PadDifferenceFromMin % padStep ) / floatFixMultiplier ) : 0;

        if(stepMod != 0){

            padValidQty = (Math.ceil( PadDifferenceFromMin / padStep ) * padStep) + padMinQty

            var validQty = Math.round(padValidQty) / floatFixMultiplier;

            qtyValidationResult.validQty = validQty;
            if(maxQty > 0 && validQty > maxQty) qtyValidationResult.validQty = maxQty;
            if(validQty < minQty) qtyValidationResult.validQty = minQty;
            qtyValidationResult.error = 'inc';
            return qtyValidationResult;
        }

        return qtyValidationResult;
    }

</script>
<script>
    var cimcloud = {
        helpers: {
            url: getUrl,
            urlPath: getUrlPath,
            loginUrl: utils.loginUrl,
            pageType: utils.pageType,
            pageSubType: utils.pageSubType,
            pageName: utils.pageName,
            pageKey: '',
            urlParameter: utils.getParameter,
            buildImagePath: utils.buildImagePath,
            environment: "production"
        },
        session: {
            key: "4A8717DFBA834BCE92597C03E8E361EB",
            accountKey: "",
            customerKey: "",
            orderKey: "0B6D08FBAB624C29A345B95384CEA115",
            accountNumber: "",
            accountName: "",
            username: "",
            email: "",
            firstName: "",
            lastName: "",
            sitename: "spartacraft2",
            isLoggedIn: false,
            isImpersonation: false,
            parentSession: {
                username: "",
                email: "",
                firstName: "",
                lastName: ""
            },
            sessionKey: "4A8717DFBA834BCE92597C03E8E361EB",
            appliedRights: "SPARTACRAFT2-CUSTOM-SETTINGS,APPLICATION-DEFAULTS-BASE_ORDERS-AND-SHIPMENTS-SETTINGS,SEARCH-FIELDS,APPLICATION-DEFAULTS-SHOW-CREATE-USER-SETTINGS,PAY-INVOICES-100,APPLICATION-DEFAULTS-MODIFICATIONS-SETTINGS,BASE-ORDER_COMMENTS,APPLICATION-DEFAULTS-SHOW_BROWSER_MESSAGING-SETTINGS,PRODUCT-IMAGES,SHIPPING-SETTINGS,SET-ACCOUNT-NUMBER-PREFIX,S100-CIMCLOUD-B2B-A,ADV-PRICE-DISPLAY-SETTINGS,APPLICATION-DEFAULTS-SHOW_FREIGHT_INVOICE_DETAIL-SETTINGS,APPLICATION-DEFAULTS-BASE_PAYMENTS-AND-CREDITS-SETTINGS,BASE_INVOICES,APPLICATION-DEFAULTS-BASE-ORDER_COMMENTS-SETTINGS,ENABLE-SHIPPING-EDITS,EMAIL-A-FRIEND,MODIFICATIONS,ENABLE-SHIPPING-ADDS,APPLICATION-DEFAULTS-MIGRATED-CATALOG-SETTINGS-SETTINGS,PRODUCT-CATEGORIES,APPLICATION-DEFAULTS-USE_TERMS_DISCOUNT_ON_INVOICES-SETTINGS,QUOTES-SAVED-CARTS,APPLICATION-DEFAULTS-BASE_INVOICES-WORKERS-SETTINGS,MIGRATED-CATALOG-SETTINGS,DISABLE-QUICK-ADD,APPLICATION-DEFAULTS-PRODUCT-GALLERY-SETTINGS,APPLICATION-DEFAULTS-ALLOW-ADD-USER-TO-EXISTING-ACCOUNT-SETTINGS,APPLICATION-DEFAULTS-S100-CIMCLOUD-B2B-A-SETTINGS,APPLICATION-DEFAULTS-SHIPPING-SETTINGS-SETTINGS,PRODUCT-DESC,APPLICATION-CUSTOM-SETTINGS,RECENTLY-VIEWED-PRODUCTS,SHOW_BROWSER_SUPPORT_MESSAGING,APPLICATION-DEFAULTS-CATALOG-ALLOW-ATC-SETTINGS,PRODUCT-PRICE-LIST,PRODUCT-DOCS,APPLICATION-DEFAULTS-CATALOG-ENABLE-PRODUCT-DISPLAY-FIELDS-SETTINGS,APPLICATION-DEFAULTS-PRODUCT-CATEGORIES-SETTINGS,APPLICATION-DEFAULTS-GOOGLEFEED-SETTINGS,BASE-SHIPPING_ADDRESSES,BASE_PAYMENTS-AND-CREDITS,ALLOW-ADD-USER-TO-EXISTING-ACCOUNT,BASE_ORDERS-AND-SHIPMENTS,PC-CHILD-SEARCH-ROLLUP,RELATED-PRODUCTS,20200226-783995,APPLICATION-DEFAULTS-BASE-ADVANCED_CUSTOMER_PRICE_SETTINGS-SETTINGS,SITEMAPGEN,APPLICATION-DEFAULTS-SET-ACCOUNT-NUMBER-PREFIX-SETTINGS,APPLICATION-DEFAULTS-PAY-INVOICES-100-SETTINGS,CATALOG-COLLECT-SHIP-ACCOUNT,APPLICATION-DEFAULTS-BASE-SHOW_SHIPPING_ADDRESSES-SETTINGS,APPLICATION-DEFAULTS-BASE_INVOICES-SETTINGS,USE_TERMS_DISCOUNTS_ON_INVOICES,ENABLE-BILLING-EDITS,TAXEXEMPT-C1,SHOW_FREIGHT_INVOICE_DETAIL,BASE-SHOW_PRODUCT_ACCOUNT_HISTORY,GOOGLEFEED,PRODUCT-GALLERY,CATALOG-ALLOW-ATC".split(',')
        },
        catalog: {},
        webPage: {
            sections: {}
        },        
        report: {
            // This function is used to get the report builder results as JSON.
            getReportBuilderResults: function(rb_key, searchstring = "", maxResults = undefined) {
                const url = '/report_builder_results.asp?ajax=true&key=' + rb_key + '&searchstring=' + searchstring + '&maxResults=' + maxResults;

                return new Promise((resolve, reject) => {
                    $.ajax({
                            url: url,
                            method: 'GET',
                            dataType: 'json'
                        })
                        .done(function(response) {
                            resolve(response);
                        })
                        .fail(function() {
                            reject(new Error("Report not found"));
                        });
                });
            }
        }
    }

    var viewModels = viewModels || {};
</script>



<script src="/js/bundles/coreTop.js?9b957ee44ed7e3b2d7abf50f87680b680f729cf5" ></script>


<script src="/js/bundles/corePlugins.js?9b957ee44ed7e3b2d7abf50f87680b680f729cf5" ></script>


<script src="/js/bundles/coreVendors.js?9b957ee44ed7e3b2d7abf50f87680b680f729cf5" ></script>
</head>
<body class="maintenance-page"> 

        <div id="maintenance_mode_container">
                <div class="maintenace_mode_logo">
                    <img src="https://d2sggwvd9dgmbd.cloudfront.net/images/logo.png?v=0000000000">
                </div>
            <div class="maintenace_mode_message">
                <h3>We're Upgrading Our Website!</h3>     <b>Our online shopping cart is temporarily unavailable as we prepare to launch our new website on Wednesday, October 28, 2026.</b>     <p>We apologize for any inconvenience and appreciate your patience as we make these improvements to better serve you.</p>       <b>Need to Place an Order?</b>     <p>Our Sales Department is happy to help! Please call us at 828-397-4630 to place your order. <br>     Thank you for your continued support and for choosing SpartaCraft!</p>     <b>SpartaCraft, Inc.</b><br>     <i>Your project is not finished...until SpartaCraft finishes it</i>
            </div>
            
                <a href="maintenance.asp?validipbypass=true&autopage=%2Fsitemap%2Easp%3F" class="btn">[ValidIP] Bypass Maintenance Mode</a>
        </div>
    <div class="dashboard-bot-scripts">
        <div class="global-scripts">
    <script>

        var jsConfig = {
            static_pages: {
                content_key: '',
                content_type: ''
            }
        }
        if(processPageTitle){
            //$('.page-header h1').html('&nbsp;').show();
            var originalPageTitle = $('.page-header h1').html();
            var originalSubmitText = $('.form-actions button').html();
            var pageTitleText = "";
            if(pageTitleText.trim() != ''){
                $('.page-header h1').html(pageTitleText);
                $('.form-actions button').html( 'Save ' + pageTitleText);
                if(isWorkerDomain) pageTitleText = sitename.toUpperCase() + ' - ' + pageTitleText;
                document.title = pageTitleText;
            }else if (originalPageTitle){
                pageTitleText = originalPageTitle;
                $('.form-actions button').html( 'Save ' + pageTitleText);
                if(isWorkerDomain) pageTitleText = sitename.toUpperCase() + ' - ' + pageTitleText;
                document.title = pageTitleText;                
            }
            $('.page-header h1').show();
            $('.form-actions button').show();
        }
    </script>

    <script src="../hooks/js_custom_functions.js?9b957ee"></script>
    <script src="js/vendor/stretchy.min.js?9b957ee" data-filter=".stretchy, .stretchy *"></script>
<!-- Custom Code START - production - E01B8307C50C4308BF1364AAAAB59F66 -->
<!-- Custom Code - production_code -->

<!-- Custom Code END - production - E01B8307C50C4308BF1364AAAAB59F66 -->
<!-- Drawn from Cache -->
			<style>.app-logo__validip-info a {text-decoration: none; color: red; }</style>
			<script>
				document.addEventListener('DOMContentLoaded', function() {
					var newKeys = "E01B8307C50C4308BF1364AAAAB59F66,";
					var el = document.querySelector('a[title="Customize this page"]');
					if (el) { 
						el.textContent = 'Customized';
						existingKeys = el.getAttribute('data-keys');
						el.setAttribute('data-keys', existingKeys + newKeys);
					} 
				});
			</script>

    <noscript class="noscript">
        WARNING: You will not be able to place an order or use most features of this site with JavaScript disabled
    </noscript>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/js/all.min.js" integrity="sha512-Sr1M6mlMOXTKahO1wcUzFu/kAb3iZVaQWGvxOEePRm7c2NjGRZ7ckRT6218PaSXlz8eEoFpKkDVvl2rTqKrQLA==" crossorigin="anonymous" referrerpolicy="no-referrer" async></script>

<script src="/js/bundles/coreBot.js?9b957ee44ed7e3b2d7abf50f87680b680f729cf5" ></script>


<script src="/js/bundles/coreBotPlugins.js?9b957ee44ed7e3b2d7abf50f87680b680f729cf5" ></script>
        <script src="js/dashboard.js?9b957ee"></script>
    </div>
</body>
</html>