PageSourceSearch

https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu

html spartanfitnessmma.com collected 2026-10-04 21:22:43 UTC 100,101 bytes, 1,869 lines download raw bytes

1
2
3
4<!DOCTYPE html>
5<html class="chrome" lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="https://www.facebook.com/2008/fbml">
6<head>
7    <meta charset="utf-8" />
8        
9
10
11            <title>Birmingham Brazilian Jiu Jitsu - Spartan Fitness - Homewood, Alabama</title>
12            <meta name="description" content="Learn the art of ground grappling and build unbelievable strength in no time with our BJJ Classes in Birmingham. Students of all abilities can take on real-world self-defense skills and get fit fast!" />
13
14        
15    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
16
17    <link rel="author" href="https://goo.gl/maps/M8ooywfTNmjW2LF47" />
18    <link rel="canonical" href="https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu" />
19
20
21    <meta property="og:type" content="website" />
22    
23
24    <meta property="og:site_name" content="Spartan Fitness" />
25    <meta property="og:title" content="Birmingham Brazilian Jiu Jitsu - Spartan Fitness - Homewood, Alabama">
26    <meta property="og:url" content="https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu" />
27    <meta property="og:type" content="website" />
28    <meta name="og:description" content="Learn the art of ground grappling and build unbelievable strength in no time with our BJJ Classes in Birmingham. Students of all abilities can take on real-world self-defense skills and get fit fast!" />
29    <meta property="og:image" content="https://res.cloudinary.com/display97/image/upload/q_auto:eco,f_auto/5845/93563.png" />
30
31    
32
33    
34
35    
36    <meta property="article:publisher" content="https://www.facebook.com/sbgbirmingham/" />
37        <meta property="fb:admins" content="40509961" />
38        <meta property="fb:admins" content="1490580160" />
39        <meta property="fb:admins" content="516434989" />
40        <meta property="fb:admins" content="678536071" />
41        <meta property="fb:admins" content="100008379578599" />
42    
43
44    
45    <meta name="twitter:card" content="summary" />
46
47        
48            <meta name="twitter:site" content="SBGBirmingham" />
49            <meta name="twitter:creator" content="SBGBirmingham" />
50        
51
52    <meta property="twitter:title" content="Birmingham Brazilian Jiu Jitsu - Spartan Fitness - Homewood, Alabama">
53    <meta property="og:url" content="https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu" />
54
55    <meta name="Twitter:description" content="Learn the art of ground grappling and build unbelievable strength in no time with our BJJ Classes in Birmingham. Students of all abilities can take on real-world self-defense skills and get fit fast!" />
56    <meta property="twitter:image" content="https://res.cloudinary.com/display97/image/upload/q_auto:eco,f_auto/5845/93563.png" />
57
58    
59
60    
61    
62
63    <link rel="publisher" href="https://goo.gl/maps/M8ooywfTNmjW2LF47" />
64
65    
65<script type="text/plain" data-cookie-category="analytics" src="//cdn.optimizely.com/js/988351228.js"></script>
65
66    <link rel="apple-touch-icon" href="https://res.cloudinary.com/display97/image/upload/5845/93563.png">
67
68    
69
70    <link rel="icon" type="image/png" href="https://res.cloudinary.com/display97/image/upload/5845/93563.png">
71
72    
73
74    <meta name="msapplication-TileImage" content="https://res.cloudinary.com/display97/image/upload/w_144/5845/93563.png">
75    <link rel="shortcut icon" href="https://res.cloudinary.com/display97/image/upload/w_120/5845/93563.png" />
76    <link rel="mask-icon" href="https://res.cloudinary.com/display97/image/upload/w_120/5845/93563.png">
77
78
79
80
81
82<link rel="stylesheet" href="/Resources/meteorfit/assets/css/reset.css">
83<link rel="stylesheet" href="/Resources/meteorfit/style.css">
84<link rel="stylesheet" href="/Resources/meteorfit/assets/css/responsive.css">
85<link rel="stylesheet" type="text/css" media="all" href="/Resources/global/global.css">
86<link rel="stylesheet" href="/Resources/meteorfit/assets/css/swiper.min.css">
87<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700,700i,800,800i|Montserrat:400,700|Open+Sans+Condensed:700" rel="stylesheet">
88
89
90
91
92    
93        <style>
94        h1 , h2 , h3 , h4 , h5 , h6, [class^="icon-"], [class*=" icon-"], [class^="ico-"], [class*=" ico-"] { color: #b72d26; }
95.footer a:hover{ color: #b72d26 !important; } 
96.top_bar{ border-top: 4px solid #b72d26; }
97.iconicTitle:before{ border-bottom: 18px solid #b72d26; }
98.iconicTitle:after { border-bottom: 8px solid #b72d26; }
99.requestForm{ background-color: #b72d26; }
100.footer a{ color: #b72d26 !important; }
101.swiper-pagination-bullet-active {  background: #b72d26 !important; border:2px solid #b72d26;}
102.dsgn:before { background-color: #b72d26; }
103.home-testimonials{ background-color: #b72d26; color: #fff; }
104.home-program-img:before{ border-bottom: 80px solid #b72d26; }
105.home-program-img:after{ border-top: 100px solid #b72d26; }
106.introHome-leadform:after{ border-right: 400px solid #b72d26; }
107.requestSideBar{ border-color: #b72d26;}
108.sideProgram a:after{ background-color: #b72d26; }
109.button{ background-color: #b72d26; }
110.button:hover{ background-color: #ffffff; }
111.button{ color: #f7f7f7; }
112.button:hover{ color: #b72d26; }
113.home-program-bg .ill:before, .sliderHome .swiper-slide:before{ background: rgba(0,0,0,0.3); background: -moz-linear-gradient(top, rgba(0,0,0,0.3) 0%, rgba(183,45,38,1) 100%); background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(0,0,0,0.3)), color-stop(100%, rgba(183,45,38,1))); background: -webkit-linear-gradient(top, rgba(0,0,0,0.3) 0%, rgba(183,45,38,1) 100%); background: -o-linear-gradient(top, rgba(0,0,0,0.3) 0%, rgba(183,45,38,1) 100%); background: -ms-linear-gradient(top, rgba(0,0,0,0.3) 0%, rgba(183,45,38,1) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, rgba(183,45,38,1) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#000000", endColorstr="#b72d26", GradientType=0 );}
114
115        </style>
116    
117
118
119
120<!--[if lt IE 9]>
121    
121<script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
121
122<![endif]-->
123
124<!--Commnted out to use version 3.4.1 YN -->
125<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
125
126
127<script>
128        if (typeof jQuery == "undefined") {
129            // Fall back to local version
130            document.write(decodeURIComponent('%3Cscript src="/scripts/jquery-3.6.0.min.js" %3E%3C/script%3E'));
131        }
132</script>
132
133
134
135<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
135
136
137<script>
138        if (typeof jQuery == "undefined") {
139            // Fall back to local version
140            document.write(decodeURIComponent('%3Cscript src="/scripts/jquery-ui-1.13.2.js" %3E%3C/script%3E'));
141        }
142</script>
vendor: 2 bytes, line 142
142
143<script src="/Scripts/jquery-ui-1.9.0.custom.min.js" type="text/javascript"></script>
143
144
145
146
147
148
149<!--Jquery Validate Bundle-->
150<script src="/bundles/jqueryvalidate?v=qBf8U6WPNI7GDAfcW7bUO-34o2FbXuVoR2hLReFt1DY1"></script>
vendor: 82 bytes, lines 150-155
150
151
152
153
154    
155        <script src="https://www.google.com/recaptcha/api.js?render=
1556Lcj_t0UAAAAABRyv9Kmb6iLVQTYEeVLwJBhJ0ta
vendor: 28 bytes, lines 155-160
155"></script>
156    
157
158
159
160 
161<!--Jquery Easing Bundle-->
162<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script>
162
163
164
165<script type="text/javascript" src="/Resources/meteorfit/assets/js/swiper.min.js"></script>
vendor: 2 bytes, line 165
165
166<script type="text/javascript" src="/Resources/meteorfit/assets/js/custom.js"></script>
vendor: 2 bytes, line 166
166
167<script type="text/javascript" src="/Resources/global/global.js"></script>
167
168
169<!-- LOAD ALL OTHER FILES YOU NEED... STARTING HERE -->
170<!-- /ENDING HERE -->
171
172
173
174
175
176
177<!-- Scripts Head Start -->
178
179
180
181
182
183
184
185
186
187    
188    
188<script type="text/javascript">
189        // ---- Mixpanel removed ----
190        // Mixpanel is no longer used. The library loader has been removed from the
191        // layouts. This no-op stub keeps the ~130 legacy mixpanel.* calls scattered
192        // through the views harmless (no library load, no cookie, no tracking) so we
193        // don't have to touch every caller. Safe to run pre-consent (does nothing).
194        (function () {
195            if (window.mixpanel) { return; }
196            var noop = function () { };
197            var m = { people: {} };
198            var methods = ("disable track track_pageview track_links track_forms register " +
199                "register_once alias unregister identify name_tag set_config get_distinct_id " +
200                "people.set people.set_once people.increment people.append people.track_charge " +
201                "people.clear_charges people.delete_user").split(" ");
202            for (var i = 0; i < methods.length; i++) {
203                var p = methods[i].split(".");
204                if (p.length === 2) { m[p[0]] = m[p[0]] || {}; m[p[0]][p[1]] = noop; }
205                else { m[methods[i]] = noop; }
206            }
207            m.get_distinct_id = function () { return 0; };
208            window.mixpanel = m;
209        })();
210
211        (function () {
212            "use strict";
213
214            var COOKIE_NAME = 'cookieConsent_loc_3814';
215            var IS_OPT_IN = false;
216            var ONE_YEAR_DAYS = 365;
217
218            // ---- cookie helpers -------------------------------------------
219            function readRaw(name) {
220                var m = document.cookie.match('(?:^|; )' + name.replace(/([.$?*|{}()\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)');
221                return m ? decodeURIComponent(m[1]) : null;
222            }
223            function writeRaw(name, value, days) {
224                var d = new Date();
225                d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
226                document.cookie = name + '=' + encodeURIComponent(value) + ';expires=' + d.toUTCString() + ';path=/;SameSite=Lax';
227            }
228
229            // ---- consent state --------------------------------------------
230            // {v:2, necessary:1, analytics:0|1, marketing:0|1, functional:0|1, ts, src}
231            function parseConsent() {
232                var raw = readRaw(COOKIE_NAME);
233                if (!raw) return null;
234                // Legacy v1 value was the literal string "true" => treat as Accept All.
235                if (raw === 'true') {
236                    return { v: 2, necessary: 1, analytics: 1, marketing: 1, functional: 1, src: 'legacy' };
237                }
238                try {
239                    var o = JSON.parse(raw);
240                    if (o && o.v === 2) return o;
241                } catch (e) { }
242                return null;
243            }
244
245            function persist(consent, src) {
246                consent.v = 2;
247                consent.necessary = 1;
248                consent.src = src || consent.src || 'set';
249                writeRaw(COOKIE_NAME, JSON.stringify(consent), ONE_YEAR_DAYS);
250            }
251
252            // ---- Google Consent Mode v2 -----------------------------------
253            window.dataLayer = window.dataLayer || [];
254            function gtag() { dataLayer.push(arguments); }
255            window.gtag = window.gtag || gtag;
256
257            function toGtag(consent) {
258                var granted = 'granted', denied = 'denied';
259                return {
260                    ad_storage: consent && consent.marketing ? granted : denied,
261                    ad_user_data: consent && consent.marketing ? granted : denied,
262                    ad_personalization: consent && consent.marketing ? granted : denied,
263                    analytics_storage: consent && consent.analytics ? granted : denied,
264                    functionality_storage: consent && consent.functional ? granted : denied,
265                    personalization_storage: consent && consent.functional ? granted : denied,
266                    security_storage: granted
267                };
268            }
269
270            var stored = parseConsent();
271
272            // Default state. If we already have a stored choice, seed from it;
273            // otherwise everything non-essential is denied until the user acts.
274            var defaultState = toGtag(stored);
275            defaultState.wait_for_update = 500;
276            gtag('consent', 'default', defaultState);
277
278            // ---- Meta Pixel stub (so consent applies before CX pixel runs) -
279            // CX pixel snippets begin with: !function(f){if(f.fbq)return; ...}
280            // By creating the stub first and revoking, their inline init/track
281            // calls queue under revoked consent until we grant.
282            (function (f, b, e) {
283                if (f.fbq) return;
284                var n = f.fbq = function () {
285                    n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
286                };
287                if (!f._fbq) f._fbq = n;
288                n.push = n; n.loaded = true; n.version = '2.0'; n.queue = [];
289            })(window, document, 'script');
290            try { window.fbq('consent', stored && stored.marketing ? 'grant' : 'revoke'); } catch (e) { }
291
292            // ---- hard-gate activation runtime ------------------------------
293            // Promotes 
293<script type="text/plain" data-cookie-category="X"> to a
294            // live 
294<script> once category X is consented. Idempotent.
295            function activate(category) {
296                var nodes = document.querySelectorAll(
297                    'script[type="text/plain"][data-cookie-category="' + category + '"]');
298                for (var i = 0; i < nodes.length; i++) {
299                    var ph = nodes[i];
300                    var s = document.createElement('script');
301                    for (var a = 0; a < ph.attributes.length; a++) {
302                        var attr = ph.attributes[a];
303                        if (attr.name === 'type' || attr.name === 'data-cookie-category') continue;
304                        s.setAttribute(attr.name, attr.value);
305                    }
306                    if (ph.src) { s.src = ph.src; } else { s.text = ph.textContent; }
307                    ph.parentNode.replaceChild(s, ph);
308                }
309            }
310
311            function activateConsented(consent) {
312                if (!consent) return;
313                if (consent.analytics) activate('analytics');
314                if (consent.marketing) activate('marketing');
315                if (consent.functional) activate('functional');
316            }
317
318            // ---- public API used by the visible banner --------------------
319            window.__consent = {
320                config: { cookieName: COOKIE_NAME, isOptIn: IS_OPT_IN },
321                current: function () { return parseConsent(); },
322                has: function (cat) { var c = parseConsent(); return !!(c && c[cat]); },
323                apply: function (consent, src) {
324                    persist(consent, src);
325                    gtag('consent', 'update', toGtag(consent));
326                    try { window.fbq('consent', consent.marketing ? 'grant' : 'revoke'); } catch (e) { }
327                    activateConsented(consent);
328                },
329                acceptAll: function (src) {
330                    this.apply({ necessary: 1, analytics: 1, marketing: 1, functional: 1 }, src || 'acceptAll');
331                },
332                declineAll: function (src) {
333                    this.apply({ necessary: 1, analytics: 0, marketing: 0, functional: 0 }, src || 'declineAll');
334                }
335            };
336
337            // If a prior choice exists, honor it on every page load.
338            if (stored) {
339                document.addEventListener('DOMContentLoaded', function () {
340                    activateConsented(stored);
341                });
342            }
343        })();
344    </script>
344
345    
346
347
348
349    
350            
351                <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 351-352
351
352<script async src="https://www.googletagmanager.com/gtag/js?id=
352UA-112554440-1
vendor: 13 bytes, line 352
352"></script>
353<script>
354  
vendor: 136 bytes, lines 354-357
354window.dataLayer = window.dataLayer || [];
355  function gtag(){dataLayer.push(arguments);}
356  gtag('js', new Date());
357  gtag('config', '
357UA-112554440-1
vendor: 7 bytes, lines 357-358
357');
358  
358gtag('config', 'AW-804605132');
359</script>
359
360
361<!-- Google Tag Manager -->
362
363<script>
vendor: 339 bytes, lines 363-371
363(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
364
365new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
366
367j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
368
369'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
370
371})(window,document,'script','dataLayer','
371GTM-TRGWGBB
vendor: 3 bytes, line 371
371');
371</script>
371
372
373<!-- End Google Tag Manager -->
374
375
376            
377
378
379        
380    
381
382
383
384<!-- Scripts Head End -->
385</head>
386<body class="meteorfit custom-5845">
387
388    
388<script>
389        $(document).on('click', '.switcher span', function () {
390            $('body').attr('class', '');
391            $('body').addClass($(this).attr('rel'));
392        });
393    </script>
393
394
395        
396            <!-- Google Tag Manager (noscript) -->
vendor: 71 bytes, lines 396-398
396
397
398<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
398GTM-TRGWGBB
vendor: 89 bytes, lines 398-401
398"
399
400height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
401
402<!-- End Google Tag Manager (noscript) -->
403        
404
405    
406
407
408
409    <div id="fb-root"></div>
410    
411        
412            
412<script type="text/plain" data-cookie-category="marketing">
413                (function (d, s, id) {
414                    var js, fjs = d.getElementsByTagName(s)[0];
415                    if (d.getElementById(id)) return;
416                    js = d.createElement(s); js.id = id;
417                    js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.6";
418                    fjs.parentNode.insertBefore(js, fjs);
419                }(document, 'script', 'facebook-jssdk'));</script>
419
420        
421
422
423
424    
425<!-- header -->
426<header class="header">
427    <!-- Top Bar -->
428    <div class="top_bar">
429        <div class="top_bar-left">
430                
431                    <span class="words-1">Call Us Today! <a href="tel:205-824-8361">205-824-8361</a> </span>
432                
433
434                
435                    <span class="words-2"><a href="MAILTO:[email protected]"> Get in touch now!</a></span>
436                
437        </div>
438        <div class="top_bar-right">
439            <ul class="social_networks">
440
441                    
442                        <li class="facebook"><a href="https://www.facebook.com/sbgbirmingham/" target="_blank"><span>facebook</span></a></li>
443                    
444                                    
445                        <li class="twitter"><a href="https://twitter.com/SBGBirmingham" target="_blank"><span>twitter</span></a></li>
446                    
447                                    
448                        <li class="googleplus"><a href="https://goo.gl/maps/M8ooywfTNmjW2LF47" target="_blank"><span>googleplus</span></a></li>
449                    
450                                    
451                        <li class="instagram"><a href="https://www.instagram.com/sbgalabama/" target="_blank"><span>instagram</span></a></li>
452
453                    
454                                    
455                        <li class="youtube"><a href="https://www.youtube.com/user/SpartanFitnessMMA" target="_blank"><span>youtube</span></a></li>
456
457                    
458
459
460
461
462                
463
464
465                
466
467            </ul>
468        </div>
469        <br class="clear"   />
470    </div>
471    <!-- /Top Bar -->
472    <div class="stickHeader">
473        <div class="logo">
474            <a href="/"><img  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93563.png" loading="lazy"></a>
475        </div>
476        <div class="navigation-part">
477            <div class="hmbrgr">
478                <span></span>
479                <span></span>
480                <span></span>
481            </div>
482            <nav class="main_navigation" role="navigation">
483                <ul>
484                        
485                                            <li class="class-link">
486
487                                                    
488                                                        <a title="Programs">Programs</a>
489                                                        <ul>
490                                                                        <li><a href="/classes/Brazilian-Jiu-Jitsu" title="Brazilian Jiu Jitsu" target="_self">Brazilian Jiu Jitsu</a></li>
491                                                                        <li><a href="/classes/Muay-Thai-Kickboxing-" title="Muay Thai Kickboxing " target="_self">Muay Thai Kickboxing </a></li>
492                                                                        <li><a href="/classes/Kids-Martial-Arts-" title="Kids Martial Arts " target="_self">Kids Martial Arts </a></li>
493                                                                        <li><a href="/classes/Mixed-Martial-Arts-" title="Mixed Martial Arts " target="_self">Mixed Martial Arts </a></li>
494                                                                        <li><a href="/classes/Strength-And-Conditioning-" title="Spartan Conditioning" target="_self">Spartan Conditioning</a></li>
495                                                                        <li><a href="/classes/Fitness-Kickboxing" title="Fitness Kickboxing" target="_self">Fitness Kickboxing</a></li>
496                                                        </ul>
497                                                    
498
499                                            </li>
500                        
501                        
502                                            <li class="reviews-link">
503
504                                                            <a href="/Home/Reviews" title="Reviews" target="_self">Reviews</a>
505
506                                            </li>
507                        
508                        
509                                            <li class="instructors-link">
510
511                                                            <a href="/instru
511ctors" title="Instructors" target="_self">Instructors</a>
512
513                                            </li>
514                        
515                        
516                                            <li class="blog-link">
517
518                                                            <a href="/blog" title="Blog" target="_self">Blog</a>
519
520                                            </li>
521                        
522                        
523                                            <li class="contact-link">
524
525                                                            <a href="/Contact" title="Contact Us" target="_self">Contact Us</a>
526
527                                            </li>
528                        
529
530                </ul>
531                    
532                        <a href="#" class="requestH button popLeadCall">Request More Information </a>
533                    
534            </nav>
535        </div>
536        <br class="clear"   />
537    </div>
538</header>
539<!-- /header -->
540
541
542
543
544    
545        
545<script>
546            $(function () {
547
548                var locId = ''; 
549                if (locId != null && locId > 0 ) {
550                    setCookie("locationId", locId, 1);
551                    setCookie("showMultiLocationPopUp", false, 1);  
552                    window.location = window.location.href.split("?")[0]; 
553                }
554            });
555            function setCookie(cname, cvalue, exdays) {
556                var d = new Date();
557                d.setTime(d.getTime() + (exdays * 60 * 60 * 1000));
558                var expires = "expires=" + d.toGMTString();
559                document.cookie = cname + "=" + cvalue + "; " + expires;
560            }
561
562            function getCookie(cname) {
563                  let name = cname + "=";
564                  let decodedCookie = decodeURIComponent(document.cookie);
565                  let ca = decodedCookie.split(';');
566                  for(let i = 0; i <ca.length; i++) {
567                    let c = ca[i];
568                    while (c.charAt(0) == ' ') {
569                      c = c.substring(1);
570                    }
571                    if (c.indexOf(name) == 0) {
572                      return c.substring(name.length, c.length);
573                    }
574                  }
575                  return "";
576                }
577
578        </script>
578
579    
580
581
582
583
584<script type="text/javascript">
585
586    $(function () {
587
588        $(".location-link a").click(function (event) {
589            
590            
591            // Don't follow the link
592            event.preventDefault();
593
594            // Remember the link href
595            var href = $(this).attr("href");
596            var locid = $(this).attr("data-locid")
597            SetLocationCookie(locid, "location-link");
598            //alert(href)
599            //alert(locid)
600            window.open(href,"_self");
601            return false;
602        });       
603
604        function SetLocationCookie(locId, cssClassName) {
605            //alert(locId);
606            if (locId < 1) {
607                return true;
608            }
609            if (cssClassName !== "location-link") {
610                return true;
611            }
612            delete_cookie('locationId');
613            set_cookie("locationId", locId, 1);           
614            return false;
615
616        }
617
618
619        var delete_cookie = function (name) {
620            document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
621        };
622
623        function set_cookie(cname, cvalue, exdays) {
624
625            var d = new Date();
626            d.setTime(d.getTime() + (exdays * 60 * 60 * 1000));
627            var expires = "expires=" + d.toGMTString();
628            document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/";
629
630        }
631
632    });
633
634      
635    
636
637                                         
638
639</script>
639
640
641    <div class="headHack"></div>
642        
643            <!-- Homepage Slider -->
644            <div class="relative">
645                <section class="pageHeader" style="background-image: url(https://res.cloudinary.com/display97/image/upload/q_auto:eco,f_auto/5845/Global-Background-image-2-203966.jpg);">
646                    <div class="pageHeader-content">
647
648                        <div class="max900 center intro anim anim-grow">
649                                
650                                    <h1><strong>Birmingham BJJ Classes</strong></h1>
651                                
652
653                        </div>
654
655                    </div>
656                </section>
657            </div>
658        
659    <!-- /Homepage Slider -->
660        
661            <section class="section pageContent">
662                <div class="content">
663                    <div class="col two-third ispageContent anim anim-moveup-1">
664
665                         
666
667
668
669
670
671
672    
673
674    
675
676
677
678    
679        <style>
680            .video_caller {
681                float: left;
682                padding: 5px;
683            }
684        </style>
685        <div id="program" class="page-content">
686
687                <h2>Learn How To Grapple And Defend With Our BJJ Classes</h2>
688
689              
690
691            
692            <center>
693            </center>
694
695
696            <span itemprop="description"><p>Master every element of Brazilian Jiu-Jitsu at Spartan Fitness in Birmingham today. This ground-based discipline teaches you how to use leverage and technique to overcome an opponent of any size and strength.&nbsp;</p><p>Learn the ins and outs of everything from <span style="color:#B42827;"><strong>throws and takedowns</strong></span> to <span style="color:#B42827;"><strong>submissions and defense strategies. </strong></span>And the best part is, <span style="color:#B42827;"><strong>you don't need any prior experience!</strong></span></p><p>Our dedicated BJJ instructors with men and women of all abilities to help you improve in every element of this discipline.&nbsp;</p><p><img src="https://res.cloudinary.com/display97/image/upload/5845/Adult-BJJ-2-202048.jpg" alt="Brazilian Jiu Jitsu in Birmingham" style="display:block;margin-left:auto;margin-right:auto;" /></p><h2>Build A Total-Body Strength In No Time With Our BJJ Classes</h2><p>Unlike a lot of disciplines, Brazilian Jiu-Jitsu isn't about brute strength and size. But with our BJJ Classes in Birmingham, you'll be sure to <span style="color:#B42827;"><strong>build explosive strength</strong></span> like never before as you l<span style="color:#B42827;"><strong>earn how to gain leverage over an opponent</strong></span> and <span style="color:#B42827;"><strong>work your way towards a submission.</strong></span>&nbsp;</p><p>Our BJJ Classes can help you build your skills from the ground up, while also pushing you through a total-body workout and high-energy exercises.</p><p>You'll quickly master elements like:</p><ul><li>Takedowns and throws</li><li>Ground grappling strategies</li><li>Pins, locks, and submissions</li><li>Defensive maneuvers</li></ul><p>And with each and every session, you'll push your body like never before, relying on a total-body effort to overcome your opponent and come out on top.</p><h2>Our BJJ Classes In Birmingham Are Great For All Abilities&nbsp;</h2><p>We teach students with a wide-range of goals and priorities. From <span style="color:#B42827;"><strong>real-world self-defense</strong></span> to <span style="color:#B42827;"><strong>competition training</strong></span> and even just <span style="color:#B42827;"><strong>total-body fitness training</strong></span>, our students take on these BJJ Classes from many different angles.</p><p>But together, we can master every technique and strategy on the path toward your ultimate goals.</p><p>Our BJJ Classes in Birmingham are capped to keep class sizes small so that instructors can offer individualized attention and help you get the most out of every single class.</p><p>In no time, you'll enjoy:</p><ul><li>Practical strength and functional movements</li><li>
696Effective and efficient self-defense skills</li><li>Boosted muscle tone and fat loss</li><li>Incredible self-confidence and an unending sense of accomplishment</li></ul><h2><img src="https://res.cloudinary.com/display97/image/upload/5845/Adult-BJJ-3-203289.jpg" alt="Brazilian Jiu Jitsu in Birmingham" style="display:block;margin-left:auto;margin-right:auto;" /></h2><h2>Ready To Get Started? Join Us Now For The Best BJJ Classes In Birmingham!</h2><p>Don't spend another day struggling through a boring workout routine. Combine real-world self-defense and total-body strength gains today with our BJJ Classes at Spartan Fitness in Birmingham. </p><p><span style="color:#B42827;"><strong>All you have to do is fill out the short form on your screen now.</strong></span> We'll reach out right away to answer all of your questions and get you set up! <br /></p></span>
697        </div>
698
699
700        
700<script type="text/javascript">
701
702    mixpanel.track("Viewed Program");
703    mixpanel.register({
704        "programName": 'Brazilian Jiu Jitsu'
705    });
706        </script>
706
707
708
709
710        <!-- Age Groups -->
711
712    
713
714    
715
716
717                            
718                                <div class="gap_40"></div>
719
720
721                                    
722                                        <div class="shareBox">
723                                            <div class="fb-like" data-href="https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu" data-width="260" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>
724                                            <a href="https://twitter.com/share" class="twitter-share-button" data-url="https://spartanfitnessmma.com/classes/Brazilian-Jiu-Jitsu" data-via="97display">Tweet</a>
725                                            
725<script>
726                                                !function (d, s, id) {
727                                                    var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https';
728                                                    if (!d.getElementById(id)) {
729                                                        js = d.createElement(s); js.id = id; js.src = p + '://platform.twitter.com/widgets.js';
730                                                        fjs.parentNode.insertBefore(js, fjs);
731                                                    }
732                                                }(document, 'script', 'twitter-wjs');
733                                            </script>
733
734                                        </div>
735                                    
736
737
738
739
740                            
741                        <br class="clear">
742                    </div>
743
744                    <div class="col one-third sideBar anim anim-moveup-2">
745                            <h4 class="iconicTitle">Request Information</h4>
746
747                        <div class="requestSideBar">
748                            
749
750
751
752<aside class="sidedevcode81_leadform">
753
754    
755
756<form action="/Home/SendLead" id="formside" method="post">        
757            <input name="__RequestVerificationToken" type="hidden" value="xr2eZqDeH8xQcX5HS8kC-rAfT580jPMJW6gQGAyq0g_CuFcodfX1xzx_M8guoiMLTSpdJv8dFLMKZGuwjEraeqkzB-6lWpGX1zh8_zPgqTE1" />
758            <input id="returnUrl" name="returnUrl" type="hidden" value="/classes/Brazilian-Jiu-Jitsu" />
759            <input data-val="true" data-val-required="The EnableGDPR field is required." id="EnableGDPR" name="EnableGDPR" type="hidden" value="False" />
760            <input data-val="true" data-val-required="The EnableGDPREmail field is required." id="EnableGDPREmail" name="EnableGDPREmail" type="hidden" value="False" />
761            <input data-val="true" data-val-required="The EnableGDPRPhone field is required." id="EnableGDPRPhone" name="EnableGDPRPhone" type="hidden" value="False" />
762            <input data-val="true" data-val-required="The ComplianceToggle field is required." id="ComplianceToggle" name="ComplianceToggle" type="hidden" value="False" />
763            <input id="RedirectToUrl" name="RedirectToUrl" type="hidden" value="" />
764            <input data-val="true" data-val-required="The IsReportForm field is required." id="IsReportForm" name="IsReportForm" type="hidden" value="False" />
765            <input data-val="true" data-val-number="The field Source must be a number." data-val-required="The Source field is required." id="Source" name="Source" type="hidden" value="17" />
766            <input data-val="true" data-val-number="The field LandingPageId must be a number." data-val-required="The LandingPageId field is required." id="LandingPageId" name="LandingPageId" type="hidden" value="0" />
767            <input id="MixpanelDistinctId" name="MixpanelDistinctId" type="hidden" value="" />
768            <input data-val="true" data-val-number="The field SourcePageId must be a number." id="SourcePageId" name="SourcePageId" type="hidden" value="" />
769            <input id="GoogleCaptchaToken" name="GoogleCaptchaToken" type="hidden" value="" />
770            <input data-val="true" data-val-required="The EnableSingleConsentOptIn field is required." id="EnableSingleConsentOptIn" name="EnableSingleConsentOptIn" type="hidden" value="True" />
771            <input id="UtmSource" name="UtmSource" type="hidden" value="" />
772            <input id="UtmCampaign" name="UtmCampaign" type="hidden" value="" />
773            <input id="UtmContent" name="UtmContent" type="hidden" value="" />
774            <input id="UtmMedium" name="UtmMedium" type="hidden" value="" />
775            <input id="UtmTerm" name="UtmTerm" type="hidden" value="" />
776
777            <div class="dc81_full" id="diverrorMsgside">
778            </div>
779            <div class="dc81_full">
780                <div class="dc81_halfleft">
781                    <input class="dc81_field dc81_iconProfile" data-val="true" data-val-length="Max length 20 characters" data-val-length-max="20" data-val-regex="First name contains invalid characters" data-val-regex-pattern="^[^%$()&lt;>&amp;@;*]+$" data-val-required="First Name Required" id="FName" maxlength="20" name="FName" pattern="^[^%$\(\)&lt;>&amp;@;*]+$" placeholder="First" required="required" title="First" type="text" value="" />
782                    <span class="field-validation-valid" data-valmsg-for="FName" data-valmsg-replace="true"></span>
783                </div>
784
785                <div class="dc81_halfright">
786                    <input class="dc81_field dc81_iconProfile" data-val="true" data-val-length="Max length 20 characters" data-val-length-max="20" data-val-regex="Last name contains invali
786d characters" data-val-regex-pattern="^[^%$()&lt;>&amp;@;*]+$" data-val-required="Last Name Required" id="LName" maxlength="20" name="LName" pattern="^[^%$\(\)&lt;>&amp;@;*]+$" placeholder="Last" required="required" title="Last" type="text" value="" />
787                    <span class="field-validation-valid" data-valmsg-for="LName" data-valmsg-replace="true"></span>
788                </div>
789                <br class="clear" />
790            </div>
791
792<input data-val="true" data-val-required="The EmailOptIn field is required." id="EmailOptIn" name="EmailOptIn" type="hidden" value="True" />
793
794<input data-val="true" data-val-required="The PhoneOptIn field is required." id="PhoneOptIn" name="PhoneOptIn" type="hidden" value="True" />
795                
796                    <div id="emailRowside" class="dc81_full">
797                        <input class="dc81_field" data-val="true" data-val-length="Max length 50 characters" data-val-length-max="50" data-val-regex="Invalid" data-val-regex-pattern="^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w{2,4}$" id="Email" maxlength="40" name="Email" placeholder="Email" title="Required" type="text" value="" />
798                        <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
799                        <div id="divemailRowside"></div>
800                    </div>
801                
802
803                
804                    <div id="phoneRowside" class="dc81_full">
805                        <input class="dc81_field" data-val="true" data-val-regex="Invalid" data-val-regex-pattern="^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{2,5})$" id="Phone" name="Phone" placeholder="Phone" title="Required" type="tel" value="" />
806                        <span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span>
807                        <div id="divphoneRowside"></div>
808                    </div>
809                
810
811
812                
813                    <input data-val="true" data-val-number="The field GenderId must be a number." id="GenderId" name="GenderId" type="hidden" value="" />
814                
815
816                
817                    <input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="LocationId" name="LocationId" type="hidden" value="3814" />
818                
819
820                
821                    <input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="ProgramId" name="ProgramId" type="hidden" value="12359" />
822                
823
824
825
826
827            <input data-val="true" data-val-length="Max length 255 characters" data-val-length-max="255" data-val-regex="Invalid characters" data-val-regex-pattern="^[^%$()&lt;>*]+$" id="Comment" name="Comment" type="hidden" value="" />
828
829
830
831
832                
833                    <div class="dc81_full">
834                        <label for="" class="dc81_choice">
835<input class="dc81_checkbox dc81_checkbox_notes" data-val="true" data-val-required="The SingleConsentOptInAccepted field is required." id="SingleConsentOptInAccepted" name="SingleConsentOptInAccepted" type="checkbox" value="true" /><input name="SingleConsentOptInAccepted" type="hidden" value="false" />
836                                
837                                    &nbsp;<small class="tinyText">By submitting your information you consent to receive marketing/promotional sms & email messages from Spartan Fitness. Reply HELP for more assistance. Reply STOP to opt-out of messaging. Messages & Data rates may apply. Message frequency will vary. You must be 18 years of age or older.</small>
838                                
839                        </label>
840                    </div>
841                
842
843
844            
845
846            <div class="dc81_full">
847                <input class="dc81_button" value="Request More Information" type="submit" />
848            </div>
849
850        
851</form></aside>
852
853<style type="text/css">
854     .sidedevcode81_leadform .field-validation-error{  color: #FF0000 !important; text-align: center; display: block;   }
855     
856     .sidedevcode81_leadform *{ box-sizing: border-box; }
857    .sidedevcode81_leadform  .formHeader{font-size: 28px; font-weight: bold; color: #fff; margin: 0 auto; max-width: 450px; text-align: center; width: 100%; text-transform: uppercase;}
858    .sidedevcode81_leadform  .formSubHeader{font-size: 20px; font-weight: bold; color: #fff; margin: 0 auto; max-width: 450px; text-align: center; width: 100%; text-transform: uppercase;}
859        
860            .sidedevcode81_leadform {background-color: #000;}
861        
862    .sidedevcode81_leadform { margin: 0 auto; max-width: 450px; text-align: center; width: 100%; padding: 20px;  }
863    .sidedevcode81_leadform label{ color: #fff; font-weight: bold; font-size: 12px; text-transform: uppercase; text-align: left; display: block; }
864    .sidedevcode81_leadform .dc81_choice{ color: #fff !important; text-transform: none !important;  }
865    .sidedevcode81_leadform small{ display: block; line-height: 17px; }
866    .sidedevcode81_leadform small a{ border-bottom: 1px solid blue; color: #fff ; }
867    .sidedevcode81_leadform small a:hover{ border-bottom: 1px solid red; }
868    .sidedevcode81_leadform .dc81_title{ font-size: 15px; font-weight: bold; color: #fff; margin-bottom: 0; text-transform: uppercase; }
869    .sidedevcode81_leadform .dc81_req{ color: red; }
870    .sidedevcode81_leadform .dc81_halfleft, .dc81_halfright{ display: block; float: left; margin-bottom:10px; width: 50%; }
871    .sidedevcode81_leadform .dc81_halfleft{ padding-right: 10px; }
872    .sidedevcode81_leadform .dc81_halfright{ padding-left: 10px; }
873    .sidedevcode81_leadform .dc81_full{ margin-bottom:10px; }
874    .sidedevcode81_leadform .dc81_checkbox{ float: left; vertical-align: middle; width: 24px; height: 24px; }
875    .sidedevcode81_leadform .dc81_field, .dc81_textarea, .dc81_select{ background: var(--leadformInputBg, rgba(255,255,255,0.2)); color: var(--leadformColor, #fff); border: none; border-radius: var(--buttonRadius, 0px); font-size: 16px; height: 44px; padding: 0 15px; width: 100%; -webkit-appearance: none; }
876    .sidedevcode81_leadform .dc81_selectBox{ position: relative; } .dc81_select{ font-size: 14px; }
877    .sidedevcode81_leadform .dc81_selectBox:after{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(45deg); position: absolute; top: 20px; right: 16px; }
878    .sidedevcode81_leadform .dc81_selectBox:before{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(-45deg); position: absolute; top: 20px; right: 10px; }
879    .sidedevcode81_leadform .dc81_textarea{ height: 120px; }
880    .sidedevcode81_leadform .dc81_button { background: var(--buttonBg, #dc0000); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonColor, #fff); cursor: pointer; display: inline-block; font-weight: bold; width: 100%; max-width: 300px; padding: 10px; font-size: 15px; margin: 0 auto; display: block; border-radius: var(--buttonRadius, 0px); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }
881    .sidedevcode81_leadform .dc81_button:hover{ background: var(--buttonColor, #fff); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonBg, #dc0000); }
882    .sidedevcode81_leadform .dc81_iconProfile{ background-image: url(https://97displaylive.blob.core.windows.net/aqua/global/type_name.png); background-position: right center; background-repeat: no-repeat; }
883    .sidedevcode81_leadform .dc81_helptxt{ color: #fff;  text-align: left; display: block; }
884</style>
885
886<script type="text/javascript">
887    $('#formside').submit(function (e) {
888
889        //SPINNER FOR AFTER CLICKING THE SUBMIT LEAD BUTTON
890        //get field data on form
891        var fName = $('#formside input[name=FName]').val();
892        var lName = $('#formside input[name=LName]').val();
893        var email = $('#formside input[name=Email]').val();
894        var phone = $('#formside input[name=Phone]').val();
895
896
897        //END SPINNER
898
899
900        $('#divgdprERowside').html('');
901        $('#divgdprPRowside').html('');
902        $('#divphoneRowside').html('');
903        $('#divemailRowside').html('');
904        $('#divgComplianceToggleside').html('');
905        $('#diverrorMsgside').html('');
906        $('#formside input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () {
907            $('#divchk_side_' + $(this).attr('data-checkbox-id')).html('');
908        });
909
910
911        var isFormValid = true;
912        var isGdpr = $('#formside #EnableGDPR').val();
913
914        var isGdprEmail = $('#formside #EnableGDPREmail').val();
915        var isGdprPhone = $('#formside #EnableGDPRPhone').val();
916
917
918        var isComplianceToggle = $('#formside #ComplianceToggle').val();
919        var email = $('#formside input[name=Email]').val();
920        var phone = $('#formside input[name=Phone]').val();
921        var acceptComplianceToggle = $('#formside input[name=AcceptComplianceToggle]').is(":checked");
922
923        var phoneOptIn = $('#formside input[name=PhoneOptIn]').is(":checked");
924        var emailOptin = $('#formside input[name=EmailOptIn]').is(":checked");
925
926
927
928        if (isGdprEmail == 'True') {
929
930            if (emailOptin && !email.trim()) {
931                isFormValid = false;
932            }
933        }
934        else {
935            if (!email.trim()) {
936                isFormValid = false;
937            }
938        }
939
940
941        if (isGdprPhone == 'True') {
942
943            if (phoneOptIn && !phone.trim()) {
944                isFormValid = false;
945            }
946        }
947        else {
948            if (!phone.trim()) {
949                isFormValid = false;
950            }
951        }
952        if (isGdprEmail == 'True' && isGdprPhone == 'True') {
953            if (!phone.trim() && !email.trim()) {
954                isFormValid = false;
955                $('#diverrorMsgside').html("<span class='field-error'>Cannot submit without Email and/or Phone</span> <br class='clear' />");
956            }
957
958        }
959
960        if (isComplianceToggle == "True") {
961            var complianceToggleRequiredMsg = 'Must accept terms to submit';
962
963            if (acceptComplianceToggle == false) {
964
965                $('#divgComplianceToggleside').append("<span class='field-error'>" + complianceToggleRequiredMsg + "</span><br/>");
966                isFormValid = false;
967            }
968        }
969
970        // --- Custom Consent Checkboxes Validation ---
971        $('#formside input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () {
972            var $checkbox = $(this);
973            var isRequired = $checkbox.attr('data-required') === 'true';
974            var isChecked = $checkbox.is(':checked');
975            var checkboxId = $checkbox.attr('data-checkbox-id');
976
977            if (isRequired && !isChecked) {
978                isFormValid = false;
979                $('#divchk_side_' + checkboxId).append("<span class='field-error'>This field is required.</span>");
980            }
981        });
982        // ---------------------------------------------
983
984        if (isFormValid == false) {
985            $('#diverrorMsgside').fadeIn('slow');
986            e.preventDefault();
987            e.stopImmediatePropagation();
988            return false;
989        }
990
991        //hide just the Submit Lead button to prevent multi clicking
992        $('.dc81_button').hide();
993
994        //show spinner html in _SendLeadPopUp.vbhtml. see global.css for animation
995        $("#loading").fadeIn();
996
997        return true;
998
999    });
1000
1001
1002
1003
1004    //$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");
1005    $(document).ready(function () {
1006        
1007           //var googleCaptchaToken = document.querySelector('#GoogleCaptchaToken');
1008            grecaptcha.ready(function () {
1009                grecaptcha.execute('6Lcj_t0UAAAAABRyv9Kmb6iLVQTYEeVLwJBhJ0ta', { action: 'sendlead' }).then(function (token) {
1010                    $('#formside #GoogleCaptchaToken').val(token);
1011                });
1012            });
1013        
1014
1015
1016        var isGdprEmail = $('#formside #EnableGDPREmail').val();
1017        var isGdprPhone = $('#formside #EnableGDPRPhone').val();
1018
1019        if (isGdprEmail == 'False') {
1020            $("#formside input[name=Email]").prop('required', true).attr('data-val-required', 'Required');
1021        }
1022        else if (isGdprEmail == 'True') {
1023
1024           var emailOptin = $('#formside input[name=EmailOptIn]').is(":checked") ;
1025            if (emailOptin)
1026                $('#emailRowside').fadeIn('slow');
1027            else
1028                $('#emailRowside').fadeOut('slow');
1029        }
1030        if (isGdprPhone == 'False') {
1031            $("#formside input[name=Phone]").prop('required', true).attr('data-val-required', 'Required');
1032        }
1033        else if (isGdprPhone == 'True') {
1034            var phoneOptIn = $('#formside input[name=PhoneOptIn]').is(":checked");
1035            if (phoneOptIn)
1036                $('#phoneRowside').fadeIn('slow');
1037            else
1038                $('#phoneRowside').fadeOut('slow');
1039        }
1040
1041
1042
1043        $("#formside input[name=Email]").change(function() {
1044
1045                $('#divemailRowside').html('');
1046         });
1047         $("#formside input[name=Phone]").change(function() {
1048
1049                $('#divphoneRowside').html('');
1050         });
1051
1052
1053
1054
1055        $('#diverrorMsgside').fadeOut('slow');
1056
1057
1058        $("#formside input[name=EmailOptIn]").change(function () {
1059            //console.log('#formside input[name=EmailOptIn]');
1060            if (this.checked) {
1061                $('#emailRowside').fadeIn('slow');
1062                $('#divgdprERowside').html('');
1063                $("#formside input[name=Email]").prop('required', true);
1064            }
1065            else {
1066                $('#emailRowside').fadeOut('slow');
1067                $("#formside input[name=Email]").prop('required', false);
1068                $("#formside input[name=Email]").val('');
1069            }
1070        });
1071
1072        $("#formside input[name=PhoneOptIn]").change(function () {
1073
1074            //console.log('#formside input[name=PhoneOptIn]');
1075            if (this.checked) {
1076                $('#phoneRowside').fadeIn('slow');
1077                $('#divgdprPRowside').html('');
1078                $("#formside input[name=Phone]").prop('required', true);
1079            }
1080            else {
1081                $('#phoneRowside').fadeOut('slow');
1082                $("#formside input[name=Phone]").prop('required', false);
1083                $("#formside input[name=Phone]").val('');
1084            }
1085        });
1086
1087
1088    });
1089</script>
1089
1090                        </div>
1091
1092                            
1093                                            
1094                                                
1095
1096                                                <div class="sideProgram">
1097                                                    <a href="/classes/Brazilian-Jiu-Jitsu">
1098                                                        <h4>Brazilian Jiu Jitsu</h4>
1099                                                            
1100                                                                <img   alt="Brazilian Jiu Jitsu near Homewood"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/adult-bjj-excerpt-201728.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1101                                                            
1102                                                    </a>
1103                                                </div>
1104                                            
1105                                            
1106                                                
1107
1108                                                <div class="sideProgram">
1109                                                    <a href="/classes/Muay-Thai-Kickboxing-">
1110                                                        <h4>Muay Thai Kickboxing </h4>
1111                                                            
1112                                                                <img   alt="Muay Thai Kickboxing near Homewood"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/Muay-Thai-Except-201729.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1113                                                            
1114                                                    </a>
1115                                                </div>
1116                                            
1117                                            
1118                                                
1119
1120                                                <div class="sideProgram">
1121                                                    <a href="/classes/Kids-Martial-Arts-">
1122                                                        <h4>Kids Martial Arts </h4>
1123                                                            
1124                                                                <img   alt="Kids Martial Arts near Homewood"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/Kids-Excerpt-201727.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1125                                                            
1126                                                    </a>
1127                                                </div>
1128                                            
1129                                            
1130                                                
1131
1132                                                <div class="sideProgram">
1133                                                    <a href="/classe
1133s/Mixed-Martial-Arts-">
1134                                                        <h4>Mixed Martial Arts </h4>
1135                                                            
1136                                                                <img   alt="Mixed Martial Arts near Homewood"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/MMA-Excerpt-203291.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1137                                                            
1138                                                    </a>
1139                                                </div>
1140                                            
1141                                            
1142                                                
1143
1144                                                <div class="sideProgram">
1145                                                    <a href="/classes/Strength-And-Conditioning-">
1146                                                        <h4>Spartan Conditioning</h4>
1147                                                            
1148                                                                <img   alt="Strength and Conditioning in Birmingham"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/Conditioning-Excerpt-203611.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1149                                                            
1150                                                    </a>
1151                                                </div>
1152                                            
1153                                            
1154                                                
1155
1156                                                <div class="sideProgram">
1157                                                    <a href="/classes/Fitness-Kickboxing">
1158                                                        <h4>Fitness Kickboxing</h4>
1159                                                            
1160                                                                <img   alt="fitness kickboxing in Birmingham"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,h_296,w_370/v1362515922/5845/94377.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,h_296,w_370/v1362515922/5845/94377.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,h_296,w_370/v1362515922/5845/94377.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,h_296,w_370/v1362515922/5845/94377.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,h_296,w_370/v1362515922/5845/94377.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,h_296,w_370/v1362515922/5845/94377.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy">
1161                                                            
1162                                                    </a>
1163                                                </div>
1164                                            
1165                            
1166                        <!-- /Side Program -->
1167                    </div>
1168                    <br class="clear"   />
1169                </div>
1170            </section>
1171        
1172
1173    
1174
1175<!-- footer -->
1176<footer class="footer section">
1177    <div class="content">
1178
1179        <!-- -->
1180        <div class="col one-third center">
1181
1182            <a href="/"><img  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93563.png" loading="lazy"></a>
1183        </div>
1184
1185
1186        <!-- / -->
1187        <!-- -->
1188        <div class="col one-third">
1189
1190            <h4 class="iconicTitle">Spartan Fitness</h4>
1191            <p>At Spartan Fitness, your success is our priority. Whether you&#39;re hoping to get in shape while having fun, relieve stress, learn realistic and practical self-defense, or get involved in competition, we can help you reach your goals! We offer a wide range of classes designed to keep you safe and build total-body strength in no time. Learn more or GET STARTED TODAY by simply filling out the short form on your screen. </p>
1192        </div>
1193        <!-- / -->
1194        <!-- -->
1195        <div class="col one-third" itemscope itemtype="http://schema.org/LocalBusiness">
1196            <meta itemprop="name" content="Spartan Fitness">
1197            <meta itemprop="image" content="https://res.cloudinary.com/display97/image/upload/q_auto:eco,f_auto/5845/93563.png">
1198
1199            <h4 class="iconicTitle">Contact us</h4>
1200
1201                
1202                        
1203                            <p itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
1204                                <span itemprop="streetAddress">179 State Farm Parkway</span>,
1205                                <span itemprop="addressLocality" class="city">Homewood</span>,
1206                                <span itemprop="addressRegion" class="state">Alabama</span> <span itemprop="postalCode" class="postalcode">35209</span>
1207                                <br /> <a href="tel:205-824-8361"> <span itemprop="telephone">205-824-8361</span></a>
1208                                <br /> <a href="mailto:[email protected]"><span itemprop="Email">[email protected]</span></a>
1209                            </p>
1210                        
1211                
1212
1213        </div>
1214        <!-- / -->
1215        <br class="clear" />
1216        <p class="copyright">
1217            Copyright &copy; 2026 
1218
1219 / <a href="/privacy-policy">Privacy Policy</a>
1220
1221        </p>
1222    </div>
1223
1224</footer>
1225<!-- /footer -->
1226
1227
1228
1229
1230
1231
1232
1233
1234<!-- Mary Popin -->
1235<section class="maryPopin ">
1236    <div class="maryPopin_inner">
1237        <div class="maryPopin_content">
1238
1239                
1240                        
1241
1242                            <div class="popup_testimonials">
1243                                    
1244                                        <div class="popup_testimonials-item">
1245                                            <figure class="popup_testimonials-avatar">
1246                                                    
1247                                                        <img class="reviewImage"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/TestimonialImage-115076.jpg" loading="lazy">
1248                                                    
1249                                            </figure>
1250                                            <header class="popup_testimonials-header">
1251                                                <h4>Lauren Bradshaw</h4>
1252                                                <div class="popup_testimonials-stars"></div>
1253                                            </header>
1254                                            <div class="popup_testimonials-text"><p>I have struggled with weight for years and to finally lose 100 lbs. feels awesome and I couldn&rsquo;t have done it without the support of Spartan Fitness. I am so thankful and I truly appreciate the support I feel every day I step into your gym.</p></div>
1255                                        </div>
1256                                    
1257                                    
1258                                        <div class="popup_testimonials-item">
1259                                            <figure class="popup_testimonials-avatar">
1260                                                    
1261                                                        <img class="reviewImage"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93575.png" loading="lazy">
1262                                                    
1263                                            </figure>
1264                                            <header class="popup_testimonials-header">
1265                                                <h4>Ryan Fredrick</h4>
1266                                                <div class="popup_testimonials-stars"></div>
1267                                            </header>
1268                                            <div class="popup_testimonials-text"><p>Great place to go whether you're interested in competition or just getting in great shape. Good atmosphere for training and meeting new people and great coaching as well. Regardless of your level of talent or fitness, you will be encouraged to improve and results are guaranteed as long as you dedicate the time and stay consistent.</p></div>
1269                                        </div>
1270                                    
1271                                    
1272                                        <div class="popup_testimonials-item">
1273                                            <figure class="popup_testimonials-avatar">
1274                                                    
1275                                                        <img class="reviewImage"  src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93564.png" loading="lazy">
1276                                                    
1277                                            </figure>
1278                                            <header class="popup_testimonials-header">
1279                                                <h4>Kayla Shaffer</h4>
1280                                                <div class="popup_testimonials-stars"></div>
1281                                            </header>
1282                                            <div class="popup_testimonials-text"><p>
1282Spartan Fitness has been home to my family for over 6 years. They are phenomenal people that truly care about their clients. All of the coaches are very knowledgeable in everything they teach. I love to take the strength and conditioning classes. Coach Omar takes the time to explain each exercise so you know exactly what you are working and how to do it properly. The one thing I like the most is that every class is different and you work our your full body! You'll always feel great about the workout and Coach Omar is super fun to take class with! The atmosphere is always great and we have an awesome time!</p></div>
1283                                        </div>
1284                                    
1285
1286                            </div>
1287
1288                        
1289                
1290
1291                
1292                    
1292<script>
1293                        $('html').on('mouseleave', function () {
1294                            var tstCookie = readCookie("showLeadForm");
1295                            if (tstCookie == null || tstCookie == false) {
1296                                $('.maryPopin').addClass('active');
1297                                $('.maryPopin_lead').addClass('active');
1298                                createCookie("showLeadForm", true, 24);
1299                            } else {
1300                                createCookie("showLeadForm", true, 24);
1301                            }
1302                        });
1303                    </script>
1303
1304                
1305
1306                
1307
1308                    <div class="maryPopin_lead">
1309                            
1310                                <h3>Request Information Now!</h3>
1311                            
1312
1313                        
1314
1315
1316
1317<aside class="popupdevcode81_leadform">
1318
1319    
1320
1321<form action="/Home/SendLead" id="formpopup" method="post">        
1322            <input name="__RequestVerificationToken" type="hidden" value="ApB-nwYJXIQnWOYKRmAxqbsPrR9UIxyaejl6SRdh899CIS3F57QB93saO583L4pVcMBSNJtn2z9AHqb4z8hHuwcfl0qDyw-GORrb4ypBSgo1" />
1323            <input id="returnUrl" name="returnUrl" type="hidden" value="/classes/Brazilian-Jiu-Jitsu" />
1324            <input data-val="true" data-val-required="The EnableGDPR field is required." id="EnableGDPR" name="EnableGDPR" type="hidden" value="False" />
1325            <input data-val="true" data-val-required="The EnableGDPREmail field is required." id="EnableGDPREmail" name="EnableGDPREmail" type="hidden" value="False" />
1326            <input data-val="true" data-val-required="The EnableGDPRPhone field is required." id="EnableGDPRPhone" name="EnableGDPRPhone" type="hidden" value="False" />
1327            <input data-val="true" data-val-required="The ComplianceToggle field is required." id="ComplianceToggle" name="ComplianceToggle" type="hidden" value="False" />
1328            <input id="RedirectToUrl" name="RedirectToUrl" type="hidden" value="" />
1329            <input data-val="true" data-val-required="The IsReportForm field is required." id="IsReportForm" name="IsReportForm" type="hidden" value="False" />
1330            <input data-val="true" data-val-number="The field Source must be a number." data-val-required="The Source field is required." id="Source" name="Source" type="hidden" value="17" />
1331            <input data-val="true" data-val-number="The field LandingPageId must be a number." data-val-required="The LandingPageId field is required." id="LandingPageId" name="LandingPageId" type="hidden" value="0" />
1332            <input id="MixpanelDistinctId" name="MixpanelDistinctId" type="hidden" value="" />
1333            <input data-val="true" data-val-number="The field SourcePageId must be a number." id="SourcePageId" name="SourcePageId" type="hidden" value="" />
1334            <input id="GoogleCaptchaToken" name="GoogleCaptchaToken" type="hidden" value="" />
1335            <input data-val="true" data-val-required="The EnableSingleConsentOptIn field is required." id="EnableSingleConsentOptIn" name="EnableSingleConsentOptIn" type="hidden" value="True" />
1336            <input id="UtmSource" name="UtmSource" type="hidden" value="" />
1337            <input id="UtmCampaign" name="UtmCampaign" type="hidden" value="" />
1338            <input id="UtmContent" name="UtmContent" type="hidden" value="" />
1339            <input id="UtmMedium" name="UtmMedium" type="hidden" value="" />
1340            <input id="UtmTerm" name="UtmTerm" type="hidden" value="" />
1341
1342            <div class="dc81_full" id="diverrorMsgpopup">
1343            </div>
1344            <div class="dc81_full">
1345                <div class="dc81_halfleft">
1346                    <input class="dc81_field dc81_iconProfile" data-val="true" data-val-length="Max length 20 characters" data-val-length-max="20" data-val-regex="First name contains invalid characters" data-val-regex-pattern="^[^%$()&lt;>&amp;@;*]+$" data-val-required="First Name Required" id="FName" maxlength="20" name="FName" pattern="^[^%$\(\)&lt;>&amp;@;*]+$" placeholder="First" required="required" title="First" type="text" value="" />
1347                    <span class="field-validation-valid" data-valmsg-for="FName" data-valmsg-replace="true"></span>
1348                </div>
1349
1350                <div class="dc81_halfright">
1351                    <input class="dc81_field dc81_iconProfile" data-val="true" data-val-length="Max length 20 characters" data-val-length-max="20" data-val-regex="Last name contains invalid characters" data-val-regex-pattern="^[^%$()&lt;>&amp;@;*]+$" data-val-required="Last Name Required" id="LName" maxlength="20" name="LName" pattern="^[^%$\(\)&lt;>&amp;@;*]+$" placeholder="Last" required="required" title="Last" type="text" value="" />
1352                    <span class="field-validation-valid" data-valmsg-for="LName" data-valmsg-replace="true"></span>
1353                </div>
1354                <br class="clear" />
1355            </div>
1356
1357<input data-val="true" data-val-required="The EmailOptIn field is required." id="EmailOptIn" name="EmailOptIn" type="hidden" value="True" />
1358
1359<input data-val="true" data-val-required="The PhoneOptIn field is required." id="PhoneOptIn" name="PhoneOptIn" type="hidden" value="True" />
1360                
1361                    <div id="emailRowpopup" class="dc81_full">
1362                        <input class="dc81_field" data-val="true" data-val-length="Max length 50 characters" data-val-length-max="50" data-val-regex="Invalid" data-val-regex-pattern="^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w{2,4}$" id="Email" maxlength="40" name="Email" placeholder="Email" title="Required" type="text" value="" />
1363                        <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>
1364                        <div id="divemailRowpopup"></div>
1365                    </div>
1366                
1367
1368                
1369                    <div id="phoneRowpopup" class="dc81_full">
1370                        <input class="dc81_field" data-val="true" data-val-regex="Invalid" data-val-regex-pattern="^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{2,5})$" id="Phone" name="Phone" placeholder="Phone" title="Required" type="tel" value="" />
1371                        <span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span>
1372                        <div id="divphoneRowpopup"></div>
1373                    </div>
1374                
1375
1376
1377                
1378                    <input data-val="true" data-val-number="The field GenderId must be a number." id="GenderId" name="GenderId" type="hidden" value="" />
1379                
1380
1381                
1382                    <input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="LocationId" name="LocationId" type="hidden" value="3814" />
1383                
1384
1385                
1386                    <input data-val="true" data-val-number="The field Int32 must be a number." data-val-required="The Int32 field is required." id="ProgramId" name="ProgramId" type="hidden" value="12359" />
1387                
1388
1389
1390
1391
1392            <input data-val="true" data-val-length="Max length 255 characters" data-val-length-max="255" data-val-regex="Invalid characters" data-val-regex-pattern="^[^%$()&lt;>*]+$" id="Comment" name="Comment" type="hidden" value="" />
1393
1394
1395
1396
1397                
1398                    <div class="dc81_full">
1399                        <label for="" class="dc81_choice">
1400<input class="dc81_checkbox dc81_checkbox_notes" data-val="true" data-val-required="The SingleConsentOptInAccepted field is required." id="SingleConsentOptInAccepted" name="SingleConsentOptInAccepted" type="checkbox" value="true" /><input name="SingleConsentOptInAccepted" type="hidden" value="false" />
1401                                
1402                                    &nbsp;<small class="tinyText">By submitting your information you consent to receive marketing/promotional sms & email messages from Spartan Fitness. Reply HELP for more assistance. Reply STOP to opt-out of messaging. Messages & Data rates may apply. Message frequency will vary. You must be 18 years of age or older.</small>
1403                                
1404                        </label>
1405                    </div>
1406                
1407
1408
1409            
1410
1411            <div class="dc81_full">
1412                <input class="dc81_button" value="Request More Information" type="submit" />
1413            </div>
1414
1415        
1416</form></aside>
1417
1418<style type="text/css">
1419     .popupdevcode81_leadform .field-validation-error{  color: #FF0000 !important; text-align: center; display: block;   }
1420     
1421     .popupdevcode81_leadform *{ box-sizing: border-box; }
1422    .popupdevcode81_leadform  .formHeader{font-size: 28px; font-weight: bold; color: #fff; margin: 0 auto; max-width: 450px; text-align: center; width: 100%; text-transform: uppercase;}
1423    .popupdevcode81_leadform  .formSubHeader{font-size: 20px; font-weight: bold; color: #fff; margin: 0 auto; max-width: 450px; text-align: center; width: 100%; text-transform: uppercase;}
1424        
1425            .popupdevcode81_leadform {background-color: #000;}
1426        
1427    .popupdevcode81_leadform { margin: 0 auto; max-width: 450px; text-align: center; width: 100%; padding: 20px;  }
1428    .popupdevcode81_leadform label{ color: #fff; font-weight: bold; font-size: 12px; text-transform: uppercase; text-align: left; display: block; }
1429    .popupdevcode81_leadform .dc81_choice{ color: #fff !important; text-transform: none !important;  }
1430    .popupdevcode81_leadform small{ display: block; line-height: 17px; }
1431    .popupdevcode81_leadform small a{ border-bottom: 1px solid blue; color: #fff ; }
1432    .popupdevcode81_leadform small a:hover{ border-bottom: 1px solid red; }
1433    .popupdevcode81_leadform .dc81_title{ font-size: 15px; font-weight: bold; color: #fff; margin-bottom: 0; text-transform: uppercase; }
1434    .popupdevcode81_leadform .dc81_req{ color: red; }
1435    .popupdevcode81_leadform .dc81_halfleft, .dc81_halfright{ display: block; float: left; margin-bottom:10px; width: 50%; }
1436    .popupdevcode81_leadform .dc81_halfleft{ padding-right: 10px; }
1437    .popupdevcode81_leadform .dc81_halfright{ padding-left: 10px; }
1438    .popupdevcode81_leadform .dc81_full{ margin-bottom:10px; }
1439    .popupdevcode81_leadform .dc81_checkbox{ float: left; vertical-align: middle; width: 24px; height: 24px; }
1440    .popupdevcode81_leadform .dc81_field, .dc81_textarea, .dc81_select{ background: var(--leadformInputBg, rgba(255,255,255,0.2)); color: var(--leadformColor, #fff); border: none; border-radius: var(--buttonRadius, 0px); font-size: 16px; height: 44px; padding: 0 15px; width: 100%; -webkit-appearance: none; }
1441    .popupdevcode81_leadform .dc81_selectBox{ position: relative; } .dc81_select{ font-size: 14px; }
1442    .popupdevcode81_leadform .dc81_selectBox:after{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(45deg); position: absolute; top: 20px; right: 16px; }
1443    .popupdevcode81_leadform .dc81_selectBox:before{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(-45deg); position: absolute; top: 20px; right: 10px; }
1444    .popupdevcode81_leadform .dc81_textarea{ height: 120px; }
1445    .popupdevcode81_leadform .dc81_button { background: var(--buttonBg, #dc0000); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonColor, #fff); cursor: pointer; display: inline-block; font-weight: bold; width: 100%; max-width: 300px; padding: 10px; font-size: 15px; margin: 0 auto; display: block; border-radius: var(--buttonRadius, 0px); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; }
1446    .popupdevcode81_leadform .dc81_button:hover{ background: var(--buttonColor, #fff); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonBg, #dc0000); }
1447    .popupdevcode81_leadform .dc81_iconProfile{ background-image: url(https://97displaylive.blob.core.windows.net/aqua/global/type_name.png); background-position: right center; background-repeat: no-repeat; }
1448    .popupdevcode81_leadform .dc81_helptxt{ color: #fff;  text-align: left; display: block; }
1449</style>
1450
1451<script type="text/javascript">
1452    $('#formpopup').submit(function (e) {
1453
1454        //SPINNER FOR AFTER CLICKING THE SUBMIT LEAD BUTTON
1455        //get field data on form
1456        var fName = $('#formpopup input[name=FName]').val();
1457        var lName = $('#formpopup input[name=LName]').val();
1458        var email = $('#formpopup input[name=Email]').val();
1459        var phone = $('#formpopup input[name=Phone]').val();
1460
1461
1462        //END SPINNER
1463
1464
1465        $('#divgdprERowpopup').html('');
1466        $('#divgdprPRowpopup').html('');
1467        $('#divphoneRowpopup').html('');
1468        $('#divemailRowpopup').html('');
1469        $('#divgComplianceTogglepopup').html('');
1470        $('#diverrorMsgpopup').html('');
1471        $('#formpopup input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () {
1472            $('#divchk_popup_' + $(this).attr('data-checkbox-id')).html('');
1473        });
1474
1475
1476        var isFormValid = true;
1477        var isGdpr = $('#formpopup #EnableGDPR').val();
1478
1479        var isGdprEmail = $('#formpopup #EnableGDPREmail').val();
1480        var isGdprPhone = $('#formpopup #EnableGDPRPhone').val();
1481
1482
1483        var isComplianceToggle = $('#formpopup #ComplianceToggle').val();
1484        var email = $('#formpopup input[name=Email]').val();
1485        var phone = $('#formpopup input[name=Phone]').val();
1486        var acceptComplianceToggle = $('#formpopup input[name=AcceptComplianceToggle]').is(":checked");
1487
1488        var phoneOptIn = $('#formpopup input[name=PhoneOptIn]').is(":checked");
1489        var emailOptin = $('#formpopup input[name=EmailOptIn]').is(":checked");
1490
1491
1492
1493        if (isGdprEmail == 'True') {
1494
1495            if (emailOptin && !email.trim()) {
1496                isFormValid = false;
1497            }
1498        }
1499        else {
1500            if (!email.trim()) {
1501                isFormValid = false;
1502            }
1503        }
1504
1505
1506        if (isGdprPhone == 'True') {
1507
1508            if (phoneOptIn && !phone.trim()) {
1509                isFormValid = false;
1510            }
1511        }
1512        else {
1513            if (!phone.trim()) {
1514                isFormValid = false;
1515            }
1516        }
1517        if (isGdprEmail == 'True' && isGdprPhone == 'True') {
1518            if (!phone.trim() && !email.trim()) {
1519                isFormValid = false;
1520                $('#diverrorMsgpopup').html("<span class='field-error'>Cannot submit without Email and/or Phone</span> <br class='clear' />");
1521            }
1522
1523        }
1524
1525        if (isComplianceToggle == "True") {
1526            var complianceToggleRequiredMsg = 'Must accept terms to submit';
1527
1528            if (acceptComplianceToggle == false) {
1529
1530                $('#divgComplianceTogglepopup').append("<span class='field-error'>" + complianceToggleRequiredMsg + "</span><br/>");
1531                isFormValid = false;
1532            }
1533        }
1534
1535        // --- Custom Consent Checkboxes Validation ---
1536        $('#formpopup input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () {
1537            var $checkbox = $(this);
1538            var isRequired = $checkbox.attr('data-required') === 'true';
1539            var isChecked = $checkbox.is(':checked');
1540            var checkboxId = $checkbox.attr('data-checkbox-id');
1541
1542            if (isRequired && !isChecked) {
1543                isFormValid = false;
1544                $('#divchk_popup_' + checkboxId).append("<span class='field-error'>This field is required.</span>");
1545            }
1546        });
1547        // ---------------------------------------------
1548
1549        if (isFormValid == false) {
1550            $('#diverrorMsgpopup').fadeIn('slow');
1551            e.preventDefault();
1552            e.stopImmediatePropagation();
1553            return false;
1554        }
1555
1556        //hide just the Submit Lead button to prevent multi clicking
1557        $('.dc81_button').hide();
1558
1559        //show spinner html in _SendLeadPopUp.vbhtml. see global.css for animation
1560        $("#loading").fadeIn();
1561
1562        return true;
1563
1564    });
1565
1566
1567
1568
1569    //$.validator.unobtrusive.adapters.addBool("mustbetrue", "required");
1570    $(document).ready(function () {
1571        
1572           //var googleCaptchaToken = document.querySelector('#GoogleCaptchaToken');
1573            grecaptcha.ready(function () {
1574                grecaptcha.execute('6Lcj_t0UAAAAABRyv9Kmb6iLVQTYEeVLwJBhJ0ta', { action: 'sendlead' }).then(function (token) {
1575                    $('#formpopup #GoogleCaptchaToken').val(token);
1576                });
1577            });
1578        
1579
1580
1581        var isGdprEmail = $('#formpopup #EnableGDPREmail').val();
1582        var isGdprPhone = $('#formpopup #EnableGDPRPhone').val();
1583
1584        if (isGdprEmail == 'False') {
1585            $("#formpopup input[name=Email]").prop('required', true).attr('data-val-required', 'Required');
1586        }
1587        else if (isGdprEmail == 'True') {
1588
1589           var emailOptin = $('#formpopup input[name=EmailOptIn]').is(":checked") ;
1590            if (emailOptin)
1591                $('#emailRowpopup').fadeIn('slow');
1592            else
1593                $('#emailRowpopup').fadeOut('slow');
1594        }
1595        if (isGdprPhone == 'False') {
1596            $("#formpopup input[name=Phone]").prop('required', true).attr('data-val-required', 'Required');
1597        }
1598        else if (isGdprPhone == 'True') {
1599            var phoneOptIn = $('#formpopup input[name=PhoneOptIn]').is(":checked");
1600            if (phoneOptIn)
1601                $('#phoneRowpopup').fadeIn('slow');
1602            else
1603                $('#phoneRowpopup').fadeOut('slow');
1604        }
1605
1606
1607
1608        $("#formpopup input[name=Email]").change(function() {
1609
1610                $('#divemailRowpopup').html('');
1611         });
1612         $("#formpopup input[name=Phone]").change(function() {
1613
1614                $('#divphoneRowpopup').html('');
1615         });
1616
1617
1618
1619
1620        $('#diverrorMsgpopup').fadeOut('slow');
1621
1622
1623        $("#formpopup input[name=EmailOptIn]").change(function () {
1624            //console.log('#formpopup input[name=EmailOptIn]');
1625            if (this.checked) {
1626                $('#emailRowpopup').fadeIn('slow');
1627                $('#divgdprERowpopup').html('');
1628                $("#formpopup input[name=Email]").prop('required', true);
1629            }
1630            else {
1631                $('#emailRowpopup').fadeOut('slow');
1632                $("#formpopup input[name=Email]").prop('required', false);
1633                $("#formpopup input[name=Email]").val('');
1634            }
1635        });
1636
1637        $("#formpopup input[name=PhoneOptIn]").change(function () {
1638
1639            //console.log('#formpopup input[name=PhoneOptIn]');
1640            if (this.checked) {
1641                $('#phoneRowpopup').fadeIn('slow');
1642                $('#divgdprPRowpopup').html('');
1643                $("#formpopup input[name=Phone]").prop('required', true);
1644            }
1645            else {
1646                $('#phoneRowpopup').fadeOut('slow');
1647                $("#formpopup input[name=Phone]").prop('required', false);
1648                $("#formpopup input[name=Phone]").val('');
1649            }
1650        });
1651
1652
1653    });
1654</script>
1654
1655
1656                    </div>
1657                
1658
1659
1660            <div class="maryClose">
1661                <span></span>
1662                <span></span>
1663            </div>
1664        </div>
1665    </div>
1666</section>
1667<!-- /Mary Popin -->
1668
1669<div id="loading">
1670    <div id="loadingcontent">
1671        <p id="loadingspinner">
1672
1673            <div id="floatingBarsG">
1674                <div class="blockG" id="rotateG_01"></div>
1675                <div class="blockG" id="rotateG_02"></div>
1676                <div class="blockG" id="rotateG_03"></div>
1677                <div class="blockG" id="rotateG_04"></div>
1678                <div class="blockG" id="rotateG_05"></div>
1679                <div class="blockG" id="rotateG_06"></div>
1680                <div class="blockG" id="rotateG_07"></div>
1681                <div class="blockG" id="rotateG_08"></div>
1682            </div>
1683
1684        </p>
1685    </div>
1686</div>
1687
1688
1689
1690<script type="application/ld+json">
1691
1692    {
1693    "@Context" : "http://schema.org",
1694    "@Type" : "Organization",
1695    "name" : "Spartan Fitness",
1696    "url" : "http://www.spartanfitnessmma.com",
1697    "sameAs": ["https://www.facebook.com/sbgbirmingham/","https://twitter.com/SBGBirmingham","https://goo.gl/maps/M8ooywfTNmjW2LF47","https://www.youtube.com/user/SpartanFitnessMMA"]
1698    }
1699</script>
1699
1700
1701
1702        
1703            <!-- Facebook Pixel Code -->
1704<script>
vendor: 426 bytes, lines 1704-1713
1704
1705  !function(f,b,e,v,n,t,s)
1706  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
1707  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
1708  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
1709  n.queue=[];t=b.createElement(e);t.async=!0;
1710  t.src=v;s=b.getElementsByTagName(e)[0];
1711  s.parentNode.insertBefore(t,s)}(window, document,'script',
1712  'https://connect.facebook.net/en_US/fbevents.js');
1713  fbq('init', '
17131099102656794359
vendor: 34 bytes, lines 1713-1714
1713');
1714  fbq('track', 'PageView');
1715</script>
1715
1716<noscript><img height="1" width="1" style="display:none"
1717  src="https://www.facebook.com/tr?id=1099102656794359&ev=PageView&noscript=1"
1718/></noscript>
1719<!-- End Facebook Pixel Code -->
1720        
1721
1722
1723    
1724
1725
1726
1727
1728
1729    
1730        <style>
1731            #cb2-banner { position: fixed; bottom: 0; left: 0; right: 0; background-color: #000000; color: #cccccc; padding: 18px 24px; font-size: 14px; z-index: 9999; display: none; box-shadow: 0 -2px 12px rgba(0,0,0,0.25); }
1732            #cb2-banner .cb2-inner { max-width: 1100px; margin: 0 auto; }
1733            #cb2-banner .cb2-text { display: block; line-height: 1.5; }
1734            #cb2-banner .cookie-link, #cb2-banner a { color: #cccccc; text-decoration: underline; }
1735            #cb2-banner .cb2-buttons { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; }
1736            #cb2-banner .cb2-btn { min-width: 150px; padding: 9px 18px; border-radius: 4px; cursor: pointer; font-weight: 600; border: none; font-size: 14px; }
1737            #cb2-accept  { background-color: #000000;  color: #FFFFFF; }
1738            #cb2-decline { background-color: #000000; color: #FFFFFF; }
1739            #cb2-manage  { background-color: #000000;  color: #FFFFFF; border: 1px solid rgba(255,255,255,0.4); }
1740            #cb2-banner .cb2-btn:hover { opacity: 0.9; }
1741            #cb2-x { position: absolute; top: 8px; right: 12px; cursor: pointer; font-size: 20px; line-height: 1; color: #cccccc; opacity: 0.7; background: none; border: none; }
1742            #cb2-x:hover { opacity: 1; }
1743            #cb2-manage-panel { display: none; margin-top: 16px; border-top: 1px solid rgba(255,255,255,0.2); padding-top: 14px; text-align: left; max-width: 1100px; margin-left: auto; margin-right: auto; }
1744            #cb2-manage-panel .cb2-cat { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; }
1745            #cb2-manage-panel .cb2-cat label { font-weight: 600; }
1746            #cb2-manage-panel .cb2-cat .cb2-desc { display: block; font-weight: 400; opacity: 0.85; font-size: 13px; }
1747            #cb2-manage-panel .cb2-manage-actions { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 10px; }
1748            #cb2-dns { margin-top: 12px; padding: 10px; border: 1px dashed rgba(255,255,255,0.4); border-radius: 4px; }
1749            #cb2-settings-trigger { position: fixed; bottom: 12px; left: 12px; z-index: 9997; font-size: 12px; padding: 6px 10px; background: rgba(0,0,0,0.6); color: #fff; border-radius: 3px; cursor: pointer; display: none; }
1750        </style>
1751
1752        <div id="cb2-banner" role="dialog" aria-label="Cookie consent">
1753                <button type="button" id="cb2-x" aria-label="Close">&times;</button>
1754            <div class="cb2-inner">
1755                <div class="cb2-text">We use cookies to improve your browsing experience. We use this information to deliver content, maintain security, enable user choice, improve our sites, and for marketing purposes. View our <a class="cookie-link" href="https://spartanfitnessmma.com/privacy-policy">Privacy Policy</a> to learn more.</div>
1756                <div class="cb2-buttons">
1757                    <button type="button" id="cb2-accept"  class="cb2-btn">Accept All</button>
1758                    <button type="button" id="cb2-decline" class="cb2-btn">Decline All</button>
1759                    <button type="button" id="cb2-manage"  class="cb2-btn">Manage</button>
1760                </div>
1761
1762                <div id="cb2-manage-panel">
1763                    <div class="cb2-cat">
1764                        <input type="checkbox" id="cb2-cat-necessary" checked disabled />
1765                        <label for="cb2-cat-necessary">Necessary<span class="cb2-desc">Strictly necessary cookies required for the site to function. These cannot be disabled.</span></label>
1766                    </div>
1767                    <div class="cb2-cat">
1768                        <input type="checkbox" id="cb2-cat-analytics" />
1769                        <label for="cb2-cat-analytics">Analytics<span class="cb2-desc">Help us understand how visitors use the site so we can improve it.</span></label>
1770                    </div>
1771                    <div class="cb2-cat">
1772                        <input type="checkbox" id="cb2-cat-marketing" />
1773                        <label for="cb2-cat-marketing">Marketing<span class="cb2-desc">Used to deliver relevant ads and measure ad performance across sites.</span></label>
1774                    </div>
1775                    <div class="cb2-cat">
1776                        <input type="checkbox" id="cb2-cat-functional" />
1777                        <label for="cb2-cat-functional">Functional<span class="cb2-desc">Enable enhanced features like chat widgets and scheduling tools.</span></label>
1778                    </div>
1779
1780
1781                    <div class="cb2-manage-actions">
1782                        <button type="button" id="cb2-save"            class="cb2-btn">Save My Choices</button>
1783                        <button type="button" id="cb2-accept-necessary" class="cb2-btn">Accept Necessary</button>
1784                    </div>
1785                </div>
1786            </div>
1787        </div>
1788
1789        <div id="cb2-settings-trigger">Cookie Settings</div>
1790
1791        
1791<script type="text/javascript">
1792            (function () {
1793                "use strict";
1794                var IS_OPT_IN = false;
1795                var REQUIRES_DNS = false;
1796
1797                function $(id) { return document.getElementById(id); }
1798                var banner = null, panel = null, trigger = null;
1799
1800                function showBanner() { if (banner) banner.style.display = 'block'; if (trigger) trigger.style.display = 'none'; }
1801                function hideBanner() { if (banner) banner.style.display = 'none'; if (trigger) trigger.style.display = 'block'; }
1802                function openManage() {
1803                    if (panel) panel.style.display = 'block';
1804                    // Seed toggles from stored consent if any, else from regime default.
1805                    var c = (window.__consent && window.__consent.current()) || null;
1806                    var preChecked = !IS_OPT_IN; // opt-out => pre-checked; opt-in => pre-unchecked
1807                    $('cb2-cat-analytics').checked  = c ? !!c.analytics  : preChecked;
1808                    $('cb2-cat-marketing').checked  = c ? !!c.marketing  : preChecked;
1809                    $('cb2-cat-functional').checked = c ? !!c.functional : preChecked;
1810                }
1811
1812                function apply(consent, src) {
1813                    if (window.__consent) window.__consent.apply(consent, src);
1814                    hideBanner();
1815                }
1816
1817                document.addEventListener("DOMContentLoaded", function () {
1818                    banner = $('cb2-banner'); panel = $('cb2-manage-panel'); trigger = $('cb2-settings-trigger');
1819
1820                    var hasChoice = window.__consent && window.__consent.current();
1821                    if (hasChoice) { hideBanner(); } else { showBanner(); }
1822
1823                    var a = $('cb2-accept');
1824                    if (a) a.addEventListener('click', function () { if (window.__consent) window.__consent.acceptAll('acceptAll'); hideBanner(); });
1825
1826                    var d = $('cb2-decline');
1827                    if (d) d.addEventListener('click', function () { if (window.__consent) window.__consent.declineAll('declineAll'); hideBanner(); });
1828
1829                    var m = $('cb2-manage');
1830                    if (m) m.addEventListener('click', function () { openManage(); });
1831
1832                    var save = $('cb2-save');
1833                    if (save) save.addEventListener('click', function () {
1834                        apply({
1835                            necessary: 1,
1836                            analytics: $('cb2-cat-analytics').checked ? 1 : 0,
1837                            marketing: $('cb2-cat-marketing').checked ? 1 : 0,
1838                            functional: $('cb2-cat-functional').checked ? 1 : 0
1839                        }, 'manage');
1840                    });
1841
1842                    var an = $('cb2-accept-necessary');
1843                    if (an) an.addEventListener('click', function () { if (window.__consent) window.__consent.declineAll('acceptNecessary'); hideBanner(); });
1844
1845                    // Re-open from the floating chip; pre-open Manage for CA (DNS).
1846                    if (trigger) trigger.addEventListener('click', function () {
1847                        showBanner();
1848                        if (REQUIRES_DNS) { openManage(); var dns = $('cb2-dns'); if (dns) dns.scrollIntoView({ block: 'nearest' }); }
1849                    });
1850
1851                    // Dismiss behavior. Opt-out (US): the X button = Accept All.
1852                    // Opt-in (EU/UK): no X rendered; visitor must use the 3 buttons.
1853                    // NOTE (per stakeholder): ONLY the Accept All button and the X button
1854                    // count as accepting. Clicking anywhere else on the page â€" including the
1855                    // lead-form popup or the multi-location popup â€" never accepts. There is
1856                    // intentionally NO document-level outside-click handler.
1857                    if (!IS_OPT_IN) {
1858                        var x = $('cb2-x');
1859                        if (x) x.addEventListener('click', function () { if (window.__consent) window.__consent.acceptAll('xbutton'); hideBanner(); });
1860                    }
1861                });
1862            })();
1863        </script>
1863
1864    
1865
1866
1867    
1868</body>
1869</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.