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 Jiu Jitsu Blog - Spartan Fitness - Homewood, Alabama</title> 12 <meta name="description" content="Learn more about Spartan Fitness community involvement, upcoming events, and other Jiu Jitsu related news." /> 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/blog" /> 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 Jiu Jitsu Blog - Spartan Fitness - Homewood, Alabama"> 26 <meta property="og:url" content="https://spartanfitnessmma.com/blog" /> 27 <meta property="og:type" content="website" /> 28 <meta name="og:description" content="Learn more about Spartan Fitness community involvement, upcoming events, and other Jiu Jitsu related news." /> 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 Jiu Jitsu Blog - Spartan Fitness - Homewood, Alabama"> 53 <meta property="og:url" content="https://spartanfitnessmma.com/blog" /> 54 55 <meta name="Twitter:description" content="Learn more about Spartan Fitness community involvement, upcoming events, and other Jiu Jitsu related news." /> 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>Blog | Spartan Fitness</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 <link rel="stylesheet" id="blog-css" href="/Resources/global/newblog.css" type="text/css" media="all"> 676
676<script> 677 $(document).ready(function () { 678 // executes when HTML-Document is loaded and DOM is ready 679 //console.log("document is ready"); 680 681 682 $("#listId > ul > li > a").click(function () { 683 $(window).scrollTop($('#listId').offset().top); 684 }); 685 686 }); 687 688 $(window).on("load", function () { 689 // executes when complete page is fully loaded, including all frames, objects and images 690 //console.log("window is loaded"); 691 692 693 $("#listId > ul > li > a").click(function () { 694 $(window).scrollTop($('#listId').offset().top); 695 }); 696 697 }); 698 699 </script>
699 700 701 702 <div id="listId"> 703 704 <a href="http://spartanfitnessmma.com/rssfeed.xml" style="float:right;margin:10px"><img src="https://97displaylive.blob.core.windows.net/aqua/Resources/global/rssbutton.png" alt="Brazilian Jiu Jitsu near Birmingham RSS Feed" width="80" /></a> 705 706 <br class="clear" /> 707<form action="/blog/search" method="post"><input name="__RequestVerificationToken" type="hidden" value="RktL6SNe0NYnwMyQ2wfcGEr0v729axivYJX_MSA5NHM0wUIEWSr753b1jOgEfl81CnaOZYBau8jX_jc8J2aKnDO8havx_ot1E4VJ04ptX_k1" /> 708 <div align="center" style="padding: 10px 0;"> 709 <input class="search" required id="searchTxt" name="searchTxt" placeholder="Search" /> 710 <input type="submit" id="btnSearch" value="Search" class="btn" /> 711 </div> 712 713</form> 714 715 716 <input type="hidden" id="pageSize" name="pageSize" value="10" /> 717 718 <br class="clear" /> 719 <input type="hidden" id="sortBy" name="sortBy" value="date_desc" /> 720 <br class="clear" /> 721 722 723 <nav id="headerPaging" name="headerPaging" class="paginatic paginator"> 724 </nav> 725 726 <br /> 727 <br /> 728 <ul class="list"> 729 730 731 732 <li> 733 <article class="the_blog_article"> 734 <figure class="the_blog_preview"> 735 <a href="/blog/153433/Spartan-Fitness-MMA-Brazilian-Jiu-Jitsu-Belt-Promotion-Ceremony"> 736 <img class="postImg" alt="Spartan Fitness MMA Brazilian Jiu-Jitsu Belt Promotion Ceremony" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-291103.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 737 </a> 738 </figure> 739 <header class="the_blog_header"> 740 <h3 class="title"><a href="/blog/153433/Spartan-Fitness-MMA-Brazilian-Jiu-Jitsu-Belt-Promotion-Ceremony">Spartan Fitness MMA Brazilian Jiu-Jitsu Belt Promotion Ceremony</a></h3> 741 <p class="desc"> At Spartan Fitness MMA in Birmingham, Alabama, belt promotions in Brazilian Jiu-Jitsu (BJJ) are more than just a milestone. They are a celebration of hard work, consistency, and community. This past weekend, we hosted a special belt promotion ceremony for both our adult BJJ athletes and our youth students in the Growing Gorillas program. From green belts to brown belts, the mats were full of energy and well-earned promotions. ðª Adult BJJ Belt Promotions Our adult BJJ tribe showed up in full force for an Ironman-style promotion, an SBG tradition where every newly promoted athlete rolls with the entire class. We proudly recognized: 4 new brown belts 7 new purple belts .... </p> 742 <a href='/blog/153433/Spartan-Fitness-MMA-Brazilian-Jiu-Jitsu-Belt-Promotion-Ceremony' class="button small alignright">Read more</a> 743 </header> 744 </article> 745 </li> 746 747 748 <li> 749 <article class="the_blog_article"> 750 <figure class="the_blog_preview"> 751 <a href="/blog/153212/Gorilla-Cup-2025-A-Day-of-Community-and-Jiu-Jitsu-at-Spartan-Fitness-MMA"> 752 <img class="postImg" alt="Gorilla Cup 2025: A Day of Community and Jiu-Jitsu at Spartan Fitness MMA" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/Spartan-Fitness-Blog-290216.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 753 </a> 754 </figure> 755 <header class="the_blog_header"> 756
757 <span class="postdate">27 May 2025</span> 758 759 <h3 class="title"><a href="/blog/153212/Gorilla-Cup-2025-A-Day-of-Community-and-Jiu-Jitsu-at-Spartan-Fitness-MMA">Gorilla Cup 2025: A Day of Community and Jiu-Jitsu at Spartan Fitness MMA</a></h3> 760 <p class="desc"> This past weekend, Spartan Fitness MMA hosted the highly anticipated Gorilla Cup, our in-house Brazilian Jiu-Jitsu tournament. This event was a unique opportunity for both youth and adult students to experience the excitement and challenges of a jiu-jitsu tournament in a supportive and fun environment. While competition was fierce, the true goal of the Gorilla Cup was to get everyone more comfortable with the rules, pacing, and energy of a real tournament setting. We are incredibly proud of our members who embraced the event's fun, non-pressuring atmosphere and enjoyed the camaraderie it fostered. The tournament was a celebration of our members’ dedication and progress, whether .... </p> 761 <a href='/blog/153212/Gorilla-Cup-2025-A-Day-of-Community-and-Jiu-Jitsu-at-Spartan-Fitness-MMA' class="button small alignright">Read more</a> 762 </header> 763 </article> 764 </li> 765 766 767 <li> 768 <article class="the_blog_article"> 769 <figure class="the_blog_preview"> 770 <a href="/blog/152226/Dodgeball-Tacos-and-Cold-Plunges-A-Saturday-Well-Spent-at-Spartan-Fitness-MMA"> 771 <img class="postImg" alt="Dodgeball, Tacos, and Cold Plunges: A Saturday Well Spent at Spartan Fitness MMA" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/-288166.JPG" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/-288166.JPG 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/-288166.JPG 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/-288166.JPG 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/-288166.JPG 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/-288166.JPG 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 772 </a> 773 </figure> 774 <header class="the_blog_header"> 775 776 <span class="postdate">26 Mar 2025</span> 777 778 <h3 class="title"><a href="/blog/152226/Dodgeball-Tacos-and-Cold-Plunges-A-Saturday-Well-Spent-at-Spartan-Fitness-MMA">Dodgeball, Tacos, and Cold Plunges: A Saturday Well Spent at Spartan Fitness MMA</a></h3> 779 <p class="desc"> This past Saturday, the Spartan Fitness MMA community came together for something a little different — an all-out dodgeball tournament that brought the heat (and a lot of laughs). Members, friends, and families showed up ready to compete, dodge, and dive into the action. The energy was high, the competition was fun, and the atmosphere reminded us why community events like this matter. It wasn’t about winning or losing — it was about showing up, having a great time, and building stronger connections both on and off the mats. To keep everyone fueled, Rico Taco parked out front with their amazing food truck, which was a major hit. Seriously — if you didn’t .... </p> 780 <a href='/blog/152226/Dodgeball-Tacos-and-Cold-Plunges-A-Saturday-Well-Spent-at-Spartan-Fitness-MMA' class="button small alignright">Read more</a> 781 </header> 782 </article> 783 </li> 784 785 786 <li> 787 <article class="the_blog_article"> 788 <figure class="the_blog_preview"> 789 <a href="/blog/151906/Why-Brazilian-Jiu-Jitsu-is-the-Best-Year-Round-Sport-for-Kids"> 790 <img class="postImg" alt="Why Brazilian Jiu-Jitsu is the Best Year-Round Sport for Kids" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/-286948.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/-286948.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/-286948.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/-286948.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/-286948.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/-286948.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 791 </a> 792 </figure> 793 <header class="the_blog_header"> 794
795 <span class="postdate">4 Mar 2025</span> 796 797 <h3 class="title"><a href="/blog/151906/Why-Brazilian-Jiu-Jitsu-is-the-Best-Year-Round-Sport-for-Kids">Why Brazilian Jiu-Jitsu is the Best Year-Round Sport for Kids</a></h3> 798 <p class="desc"> When it comes to finding the best year-round activity for young children, Brazilian Jiu-Jitsu (BJJ) stands out as an exceptional choice. Unlike seasonal sports, BJJ provides consistent training opportunities, helping children build critical life skills such as self-defense, discipline, focus, and confidence. At Spartan Fitness MMA in Birmingham, AL, our youth programs offer a structured and supportive environment where kids can thrive both on and off the mats. Here’s why BJJ is the best sport for your child, no matter the season! 1. Self-Defense Skills for Real-World Protection One of the greatest benefits of Brazilian Jiu-Jitsu is its emphasis on practical self-defense. Unlike .... </p> 799 <a href='/blog/151906/Why-Brazilian-Jiu-Jitsu-is-the-Best-Year-Round-Sport-for-Kids' class="button small alignright">Read more</a> 800 </header> 801 </article> 802 </li> 803 804 805 <li> 806 <article class="the_blog_article"> 807 <figure class="the_blog_preview"> 808 <a href="/blog/151817/Stay-Fit-Have-Fun-Why-Birmingham-Families-Train-BJJ-at-Spartan-Fitness-MMA"> 809 <img class="postImg" alt="Stay Fit & Have Fun: Why Birmingham Families Train BJJ at Spartan Fitness MMA" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/-286586.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/-286586.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/-286586.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/-286586.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/-286586.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/-286586.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 810 </a> 811 </figure> 812 <header class="the_blog_header"> 813 814 <span class="postdate">25 Feb 2025</span> 815 816 <h3 class="title"><a href="/blog/151817/Stay-Fit-Have-Fun-Why-Birmingham-Families-Train-BJJ-at-Spartan-Fitness-MMA">Stay Fit & Have Fun: Why Birmingham Families Train BJJ at Spartan Fitness MMA</a></h3> 817 <p class="desc"> Looking for a fun and effective way to stay fit? Brazilian Jiu-Jitsu (BJJ) at Spartan Fitness MMA in Birmingham is the perfect solution! BJJ helps you build strength, improve flexibility, and sharpen your mind—all while learning valuable self-defense skills. Our beginner-friendly classes welcome all fitness levels, so you can ease into training at your own pace. No prior experience? No problem! Our expert instructors break down techniques step by step, ensuring you feel comfortable and confident as you progress. At Spartan Fitness MMA, we pride ourselves on creating a friendly and supportive environment. Whether you're just starting out or returning to the mats, you'll be .... </p> 818 <a href='/blog/151817/Stay-Fit-Have-Fun-Why-Birmingham-Families-Train-BJJ-at-Spartan-Fitness-MMA' class="button small alignright">Read more</a> 819 </header> 820 </article> 821 </li> 822 823 824 <li> 825 <article class="the_blog_article"> 826 <figure class="the_blog_preview"> 827 <a href="/blog/151439/Improve-fitness-build-confidence-and-learn-valuable-self-defense-skills-through-Brazilian-jiu-jitsu-BJJ-at-Spartan-Fitness-MMA-in-Birmingham-AL-"> 828 <img class="postImg" alt="Improve fitness, build confidence, and learn valuable self
828-defense skills through Brazilian jiu-jitsu (BJJ) at Spartan Fitness MMA in Birmingham, AL! " src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/-284872.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/-284872.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/-284872.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/-284872.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/-284872.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/-284872.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 829 </a> 830 </figure> 831 <header class="the_blog_header"> 832 833 <span class="postdate">20 Jan 2025</span> 834 835 <h3 class="title"><a href="/blog/151439/Improve-fitness-build-confidence-and-learn-valuable-self-defense-skills-through-Brazilian-jiu-jitsu-BJJ-at-Spartan-Fitness-MMA-in-Birmingham-AL-">Improve fitness, build confidence, and learn valuable self-defense skills through Brazilian jiu-jitsu (BJJ) at Spartan Fitness MMA in Birmingham, AL! </a></h3> 836 <p class="desc"> Improve fitness, build confidence, and learn valuable self-defense skills through Brazilian jiu-jitsu (BJJ) at Spartan Fitness MMA in Birmingham, AL! We offer world-class BJJ training for kids and adults in a supportive environment with beginner-friendly classes. Whether you're a complete beginner or an experienced grappler, we offer specialized programs tailored to your age and skill level. This month, our youth program focuses on Life Skills & Leadership Traits, building character alongside technique. We believe in developing well-rounded individuals who possess not only martial arts skills but also strong character and leadership qualities. Plus, our BJJ competition team kicks off .... </p> 837 <a href='/blog/151439/Improve-fitness-build-confidence-and-learn-valuable-self-defense-skills-through-Brazilian-jiu-jitsu-BJJ-at-Spartan-Fitness-MMA-in-Birmingham-AL-' class="button small alignright">Read more</a> 838 </header> 839 </article> 840 </li> 841 842 843 <li> 844 <article class="the_blog_article"> 845 <figure class="the_blog_preview"> 846 <a href="/blog/151399/Achieve-Your-Goals-in-2025-with-Beginner-BJJ-MMA-and-Muay-Thai-at-Spartan-Fitness-MMA-in-Birmingham-AL"> 847 <img class="postImg" alt="Achieve Your Goals in 2025 with Beginner BJJ, MMA, and Muay Thai at Spartan Fitness MMA in Birmingham, AL" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/-284737.JPG" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/-284737.JPG 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/-284737.JPG 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/-284737.JPG 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/-284737.JPG 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/-284737.JPG 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 848 </a> 849 </figure> 850 <header class="the_blog_header"> 851
852 <span class="postdate">14 Jan 2025</span> 853 854 <h3 class="title"><a href="/blog/151399/Achieve-Your-Goals-in-2025-with-Beginner-BJJ-MMA-and-Muay-Thai-at-Spartan-Fitness-MMA-in-Birmingham-AL">Achieve Your Goals in 2025 with Beginner BJJ, MMA, and Muay Thai at Spartan Fitness MMA in Birmingham, AL</a></h3> 855 <p class="desc"> The new year is here, and with it comes the opportunity for a fresh start. Are you ready to make 2025 your year of transformation? At Spartan Fitness MMA in Birmingham, Alabama, we provide the perfect environment to kickstart your fitness journey and achieve your goals. Whether you're looking to get in shape, learn self-defense, or simply try something new, our beginner-friendly classes in Brazilian Jiu-Jitsu (BJJ), Mixed Martial Arts (MMA), and Muay Thai are designed to empower you every step of the way. Why Choose Martial Arts for Your Fitness Journey? Martial arts training offers a unique blend of physical and mental benefits that traditional workouts often lack. Not only will you .... </p> 856 <a href='/blog/151399/Achieve-Your-Goals-in-2025-with-Beginner-BJJ-MMA-and-Muay-Thai-at-Spartan-Fitness-MMA-in-Birmingham-AL' class="button small alignright">Read more</a> 857 </header> 858 </article> 859 </li> 860 861 862 <li> 863 <article class="the_blog_article"> 864 <figure class="the_blog_preview"> 865 <a href="/blog/148787/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu-Mixed-Martial-Arts-and-Kickboxing-Programs"> 866 <img class="postImg" alt="Spartan Fitness MMA: A Dynamic Start to 2024 in our Brazilian Jiu-Jitsu, Mixed Martial Arts, and Kickboxing Programs" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu,-Mixed-Martial-Arts,-and-Kickboxing-Programs-274152.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 867 </a> 868 </figure> 869 <header class="the_blog_header"> 870 871 <span class="postdate">3 Apr 2024</span> 872 873 <h3 class="title"><a href="/blog/148787/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu-Mixed-Martial-Arts-and-Kickboxing-Programs">Spartan Fitness MMA: A Dynamic Start to 2024 in our Brazilian Jiu-Jitsu, Mixed Martial Arts, and Kickboxing Programs</a></h3> 874 <p class="desc"> Spartan Fitness MMA charged into 2024 with vigor, maintaining an active presence in mixed martial arts, Brazilian Jiu-Jitsu, and kickboxing in Birmingham, Alabama and beyond. Over 125 new students were enrolled just in the first quarter, and we remain committed to our craft and culture, always striving to provide the best mixed martial arts classes in Birmingham. At Spartan Fitness MMA, we believe in putting our skills to the test, and the first quarter of this year was no exception. In February, we hosted a Brazilian Jiu-Jitsu seminar led by Coach Roger Coelho, focusing on the intricacies of the half guard position. Additionally, our kickboxing team showcased their prowess at the .... </p> 875 <a href='/blog/148787/Spartan-Fitness-MMA-A-Dynamic-Start-to-2024-in-our-Brazilian-Jiu-Jitsu-Mixed-Martial-Arts-and-Kickboxing-Programs' class="button small alignright">Read more</a> 876 </header> 877 </article> 878 </li> 879 880 881 <li> 882 <article class="the_blog_article"> 883 <figure class="the_blog_preview"> 884 <a href="/blog/147576/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude-Celebration-and-Community-Spirit"> 885 <img class="postImg" alt="Spartan Fitness MMA: Wrapping Up December with Gratitude, Celebration, and Community Spirit" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-2
88569321.jpg" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-269321.jpg 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-269321.jpg 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-269321.jpg 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-269321.jpg 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude,-Celebration,-and-Community-Spirit-269321.jpg 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 886 </a> 887 </figure> 888 <header class="the_blog_header"> 889 890 <span class="postdate">18 Dec 2023</span> 891 892 <h3 class="title"><a href="/blog/147576/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude-Celebration-and-Community-Spirit">Spartan Fitness MMA: Wrapping Up December with Gratitude, Celebration, and Community Spirit</a></h3> 893 <p class="desc"> As we bid farewell to the last month of the year, all of us here at Spartan Fitness MMA are buzzing with gratitude. December was filled with fun events, community involvement, and significant milestones. We’d like to take a moment to recap the exciting happenings that made this December a memorable one for our tribe. Toys for Tots Drive At the heart of our community is the spirit of giving, and this December, Spartan Fitness MMA proudly became a Toys for Tots drop site. Thanks to the incredible generosity of our tribe members, the response exceeded all expectations, with overflowing donations that will undoubtedly bring joy to countless children during the holiday season. The .... </p> 894 <a href='/blog/147576/Spartan-Fitness-MMA-Wrapping-Up-December-with-Gratitude-Celebration-and-Community-Spirit' class="button small alignright">Read more</a> 895 </header> 896 </article> 897 </li> 898 899 900 <li> 901 <article class="the_blog_article"> 902 <figure class="the_blog_preview"> 903 <a href="/blog/146775/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-"> 904 <img class="postImg" alt="Exciting Upcoming Events This Fall at Spartan Fitness MMA Birmingham AL!" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG" srcset="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_400/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG 400w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_800/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG 800w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1200/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG 1200w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_1600/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG 1600w, https://res.cloudinary.com/display97/image/upload/f_auto,q_auto,w_2000/c_scale,w_300/v1362515922/5845/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-266329.JPG 2000w" sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, (max-width: 1200px) 1200px, 2000px" loading="lazy"> 905 </a> 906 </figure> 907 <header class="the_blog_header"> 908
909 <span class="postdate">16 Oct 2023</span> 910 911 <h3 class="title"><a href="/blog/146775/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-">Exciting Upcoming Events This Fall at Spartan Fitness MMA Birmingham AL!</a></h3> 912 <p class="desc"> Are you ready for an action-packed fall season? Spartan Fitness MMA has an array of thrilling events lined up that you won’t want to miss. From intense martial arts workshops to spooktacular Halloween festivities, here’s a rundown of the exciting events happening at Spartan Fitness MMA in the coming weeks: October 22 nd : No-Gi BJJ Workshop with Coach Roger Coelho (9am-12pm) Join us for a dynamic no-gi Brazilian Jiu-Jitsu workshop led by Coach Roger Coelho. Whether you’re a seasoned grappler or just starting out, this workshop promises to enhance your skills and deepen your understanding of no-gi BJJ. The seminar fee is $30 and you can get registered at the front .... </p> 913 <a href='/blog/146775/Exciting-Upcoming-Events-This-Fall-at-Spartan-Fitness-MMA-Birmingham-AL-' class="button small alignright">Read more</a> 914 </header> 915 </article> 916 </li> 917 918 919 </ul> 920 921 922 <nav id="footerPaging" name="footerPaging" class="paginatic paginator"> 923 924 </nav> 925 </div> 926 927 <br Class="clear" /> 928 929 930
930<Script type="text/javascript">mixpanel.track("Viewed Blog Index");</Script>
930 931 932
932<script type="text/javascript"> 933 934 var totalCount = 54; 935 var pageSize = 10 ; 936 var pageNo = 1 ; 937 $(document).ready(function () { 938 LoadDefaults(); 939 GeneratePaging(totalCount, pageSize, pageNo); 940 941 942 $(".pagingBtn").on("click", function () { 943 $(".pagingBtn").removeClass('active'); 944 $(this).addClass('active'); 945 var pageNo = $(this).attr("pageNo"); 946 $('#pageNo').val(pageNo); 947 redirect(pageNo); 948 949 return false; 950 }); 951 952 //$(".ddl").change(function () { 953 // redirect(1); 954 // return false; 955 //}); 956 957 $("#searchListing").click(function () { 958 redirect(1); 959 return false; 960 }); 961 962 //$( "#searchTxt" ).blur(function() { 963 // var searchTxt = $('#searchTxt').val(); 964 // searchTxt = searchTxt.replace(/[^a-zA-Z0-9-_]/g, ''); 965 // if(searchTxt.length> 0) 966 // { 967 // window.location.href = '/blog/search/' + searchTxt ; 968 // } 969 // else 970 // { 971 // window.location.href = '/blog' ; 972 // } 973 //}); 974 //$('#searchTxt').live("keypress", function(e) { 975 976 // var searchTxt = $('#searchTxt').val(); 977 // searchTxt = searchTxt.replace(/[^a-zA-Z0-9-_]/g, ''); 978 // if (e.keyCode == 13) { 979 // if(searchTxt.length> 0) 980 // { 981 // window.location.href = '/blog/search/' + searchTxt ; 982 // } 983 // else 984 // { 985 // window.location.href = '/blog' ; 986 // } 987 // } 988 //}); 989 990 }); 991 992 993 function redirect(pageNo) { 994 995 var searchTxt = $('#searchTxt').val(); 996 var pageSize = $('#pageSize').val(); 997 var sortBy = $('#sortBy').val(); 998 // window.location.href = '/blog/page/' + pageNo + '?search=' + searchTxt + '&orderBy=' + sortBy+ '&pageSize=' + pageSize ; 999 1000 //if(sortBy !=null) 1001 //{ 1002 // window.location.href = '/blog/page/' + pageNo + '/' + sortBy ; 1003 //} 1004 //else 1005 //{ 1006 window.location.href = '/blog/page/' + pageNo ; 1007 //} 1008 1009 } 1010 1011 1012 1013 function GeneratePaging(totalCount, pageSize, pageNo) { 1014 if(totalCount == pageSize) 1015 { 1016 return; 1017 } 1018 1019 $('#headerPaging').html(''); 1020 $('#footerPaging').html(''); 1021 var pagesCount = 0; 1022 1023 if (pageSize < totalCount) { 1024 if (totalCount % pageSize == pageSize) { 1025 pagesCount = totalCount / pageSize; 1026 } 1027 else { 1028 pagesCount = Math.floor(totalCount / pageSize) + 1; 1029 } 1030 } 1031 //console.log('pagesCount:' + pagesCount); 1032 1033 if(pagesCount >1) 1034 { 1035 1036 $('#headerPaging').append('<a href="#" class="btn pagingBtn first_go" pageNo="1"><</a>'); 1037 $('#footerPaging').append('<a href="#" class="btn pagingBtn first_go" pageNo="1"><</a>'); 1038 1039 var lastind = 0; 1040 1041 lastind = pagesCount; 1042 var startNo = 1; 1043 var endNumber = pageNo + 3; 1044 if (pageNo > 4) 1045 { 1046 startNo = pageNo -3; 1047 1048 } 1049 if(pagesCount>pageNo+3) { 1050 endNumber=pageNo+3 1051 } 1052 else { 1053 endNumber=pagesCount; 1054 } 1055 for (ind = startNo; ind <= endNumber; ind++) { 1056 if (ind == pageNo) { 1057 $('#headerPaging').append('<a href="#" class="btn pagingBtn page_go active" pageNo="' + ind + '">' + ind + '</a>'); 1058 $('#footerPaging').append('<a href="#" class="btn pagingBtn page_go active" pageNo="' + ind + '">' + ind + '</a>'); 1059 } 1060 else { 1061 $('#headerPaging').append('<a href="#" class="btn pagingBtn page_go" pageNo="' + ind + '">' + ind + '</a>'); 1062 $('#footerPaging').append('<a href="#" class="btn pagingBtn page_go" pageNo="' + ind + '">' + ind + '</a>'); 1063 } 1064 } 1065 1066 $('#headerPaging').append('<a href="#" class="btn pagingBtn last_go" pageNo="' + lastind + '">></a>'); 1067 $('#footerPaging').append('<a href="#" class="btn pagingBtn last_go" pageNo="' + lastind + '">></a>'); 1068 } 1069 } 1070 1071 1072 function LoadDefaults() { 1073 1074 1075 1076 var searchTxt = ''; 1077 var orderBy = 'rank_asc_then_date_desc'; 1078 var pageNo = '1'; 1079 1080 $('#searchTxt').val(searchTxt); 1081 $('#sortBy').val(orderBy); 1082 $('#pageNo').val(pageNo); 1083 1084 } 1085 1086 </script>
1086 1087 1088 1089 1090 1091 1092 <br class="clear"> 1093 </div> 1094 1095 <div class="col one-third sideBar anim anim-moveup-2"> 1096 <h4 class="iconicTitle">Request Information</h4> 1097 1098 <div class="requestSideBar"> 1099 1100 1101 1102 1103<aside class="sidedevcode81_leadform"> 1104 1105 1106 1107<form action="/Home/SendLead" id="formside" method="post"> 1108 <input name="__RequestVerificationToken" type="hidden" value="XDShTFU2pB4k_zOIElb0PMlis0NA0BR_mOcfxbKr3KMAkvaTHUnYATWLOx4k574G-CFCvSTJrM1Tf34Z7jtld8hw5bUZMrhHt6SG50lm_tE1" /> 1109 <input id="returnUrl" name="returnUrl" type="hidden" value="/blog" /> 1110 <input data-val="true" data-val-required="The EnableGDPR field is required." id="EnableGDPR" name="EnableGDPR" type="hidden" value="False" /> 1111 <input data-val="true" data-val-required="The EnableGDPREmail field is required." id="EnableGDPREmail" name="EnableGDPREmail" type="hidden" value="False" /> 1112 <input data-val="true" data-val-required="The EnableGDPRPhone field is required." id="EnableGDPRPhone" name="EnableGDPRPhone" type="hidden" value="False" /> 1113 <input data-val="true" data-val-required="The ComplianceToggle field is required." id="ComplianceToggle" name="ComplianceToggle" type="hidden" value="False" /> 1114 <input id="RedirectToUrl" name="RedirectToUrl" type="hidden" value="" /> 1115 <input data-val="true" data-val-required="The IsReportForm field is required." id="IsReportForm" name="IsReportForm" type="hidden" value="False" /> 1116 <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="20" /> 1117 <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" /> 1118 <input id="MixpanelDistinctId" name="MixpanelDistinctId" type="hidden" value="" /> 1119 <input data-val="true" data-val-number="The field SourcePageId must be a number." id="SourcePageId" name="SourcePageId" type="hidden" value="" /> 1120 <input id="GoogleCaptchaToken" name="GoogleCaptchaToken" type="hidden" value="" /> 1121 <input data-val="true" data-val-required="The EnableSingleConsentOptIn field is required." id="EnableSingleConsentOptIn" name="EnableSingleConsentOptIn" type="hidden" value="True" /> 1122 <input id="UtmSource" name="UtmSource" type="hidden" value="" /> 1123 <input id="UtmCampaign" name="UtmCampaign" type="hidden" value="" /> 1124 <input id="UtmContent" name="UtmContent" type="hidden" value="" /> 1125 <input id="UtmMedium" name="UtmMedium" type="hidden" value="" /> 1126 <input id="UtmTerm" name="UtmTerm" type="hidden" value="" /> 1127 1128 <div class="dc81_full" id="diverrorMsgside"> 1129 </div> 1130 <div class="dc81_full"> 1131 <div class="dc81_halfleft"> 1132 <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="^[^%$()<>&@;*]+$" data-val-required="First Name Required" id="FName" maxlength="20" name="FName" pattern="^[^%$\(\)<>&@;*]+$" placeholder="First" required="required" title="First" type="text" value="" /> 1133 <span class="field-validation-valid" data-valmsg-for="FName" data-valmsg-replace="true"></span> 1134 </div> 1135 1136 <div class="dc81_halfright"> 1137 <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="^[^%$()<>&@;*]+$" data-val-required="Last Name Required" id="LName" maxlength="20" name="LName" pattern="^[^%$\(\)<>&@;*]+$" placeholder="Last" required="required" title="Last" type="text" value="" />
1138 <span class="field-validation-valid" data-valmsg-for="LName" data-valmsg-replace="true"></span> 1139 </div> 1140 <br class="clear" /> 1141 </div> 1142 1143<input data-val="true" data-val-required="The EmailOptIn field is required." id="EmailOptIn" name="EmailOptIn" type="hidden" value="True" /> 1144 1145<input data-val="true" data-val-required="The PhoneOptIn field is required." id="PhoneOptIn" name="PhoneOptIn" type="hidden" value="True" /> 1146 1147 <div id="emailRowside" class="dc81_full"> 1148 <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="" /> 1149 <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span> 1150 <div id="divemailRowside"></div> 1151 </div> 1152 1153 1154 1155 <div id="phoneRowside" class="dc81_full"> 1156 <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="" /> 1157 <span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span> 1158 <div id="divphoneRowside"></div> 1159 </div> 1160 1161 1162 1163 1164 <input data-val="true" data-val-number="The field GenderId must be a number." id="GenderId" name="GenderId" type="hidden" value="" /> 1165 1166 1167 1168 <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" /> 1169 1170 1171 1172 <input id="ProgramId" name="ProgramId" type="hidden" value="" /> 1173 1174 1175 1176 1177 1178 <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="^[^%$()<>*]+$" id="Comment" name="Comment" type="hidden" value="" /> 1179 1180 1181 1182 1183 1184 <div class="dc81_full"> 1185 <label for="" class="dc81_choice"> 1186<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" /> 1187 1188 <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> 1189 1190 </label> 1191 </div> 1192 1193 1194 1195 1196 1197 <div class="dc81_full"> 1198 <input class="dc81_button" value="Request More Information" type="submit" /> 1199 </div> 1200 1201 1202</form></aside> 1203 1204<style type="text/css"> 1205 .sidedevcode81_leadform .field-validation-error{ color: #FF0000 !important; text-align: center; display: block; } 1206 1207 .sidedevcode81_leadform *{ box-sizing: border-box; } 1208 .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;} 1209 .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;} 1210 1211 .sidedevcode81_leadform {background-color: #000;} 1212 1213 .sidedevcode81_leadform { margin: 0 auto; max-width: 450px; text-align: center; width: 100%; padding: 20px; } 1214 .sidedevcode81_leadform label{ color: #fff; font-weight: bold; font-size: 12px; text-transform: uppercase; text-align: left; display: block; } 1215 .sidedevcode81_leadform .dc81_choice{ color: #fff !important; text-transform: none !important; } 1216 .sidedevcode81_leadform small{ display: block; line-height: 17px; } 1217 .sidedevcode81_leadform small a{ border-bottom: 1px solid blue; color: #fff ; } 1218 .sidedevcode81_leadform small a:hover{ border-bottom: 1px solid red; } 1219 .sidedevcode81_leadform .dc81_title{ font-size: 15px; font-weight: bold; color: #fff; margin-bottom: 0; text-transform: uppercase; } 1220 .sidedevcode81_leadform .dc81_req{ color: red; } 1221 .sidedevcode81_leadform .dc81_halfleft, .dc81_halfright{ display: block; float: left; margin-bottom:10px; width: 50%; } 1222 .sidedevcode81_leadform .dc81_halfleft{ padding-right: 10px; } 1223 .sidedevcode81_leadform .dc81_halfright{ padding-left: 10px; } 1224 .sidedevcode81_leadform .dc81_full{ margin-bottom:10px; } 1225 .sidedevcode81_leadform .dc81_checkbox{ float: left; vertical-align: middle; width: 24px; height: 24px; } 1226 .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; } 1227 .sidedevcode81_leadform .dc81_selectBox{ position: relative; } .dc81_select{ font-size: 14px; } 1228 .sidedevcode81_leadform .dc81_selectBox:after{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(45deg); position: absolute; top: 20px; right: 16px; } 1229 .sidedevcode81_leadform .dc81_selectBox:before{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(-45deg); position: absolute; top: 20px; right: 10px; } 1230 .sidedevcode81_leadform .dc81_textarea{ height: 120px; } 1231 .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; } 1232 .sidedevcode81_leadform .dc81_button:hover{ background: var(--buttonColor, #fff); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonBg, #dc0000); } 1233 .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; } 1234 .sidedevcode81_leadform .dc81_helptxt{ color: #fff; text-align: left; display: block; } 1235</style> 1236
1237<script type="text/javascript"> 1238 $('#formside').submit(function (e) { 1239 1240 //SPINNER FOR AFTER CLICKING THE SUBMIT LEAD BUTTON 1241 //get field data on form 1242 var fName = $('#formside input[name=FName]').val(); 1243 var lName = $('#formside input[name=LName]').val(); 1244 var email = $('#formside input[name=Email]').val(); 1245 var phone = $('#formside input[name=Phone]').val(); 1246 1247 1248 //END SPINNER 1249 1250 1251 $('#divgdprERowside').html(''); 1252 $('#divgdprPRowside').html(''); 1253 $('#divphoneRowside').html(''); 1254 $('#divemailRowside').html(''); 1255 $('#divgComplianceToggleside').html(''); 1256 $('#diverrorMsgside').html(''); 1257 $('#formside input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () { 1258 $('#divchk_side_' + $(this).attr('data-checkbox-id')).html(''); 1259 }); 1260 1261 1262 var isFormValid = true; 1263 var isGdpr = $('#formside #EnableGDPR').val(); 1264 1265 var isGdprEmail = $('#formside #EnableGDPREmail').val(); 1266 var isGdprPhone = $('#formside #EnableGDPRPhone').val(); 1267 1268 1269 var isComplianceToggle = $('#formside #ComplianceToggle').val(); 1270 var email = $('#formside input[name=Email]').val(); 1271 var phone = $('#formside input[name=Phone]').val(); 1272 var acceptComplianceToggle = $('#formside input[name=AcceptComplianceToggle]').is(":checked"); 1273 1274 var phoneOptIn = $('#formside input[name=PhoneOptIn]').is(":checked"); 1275 var emailOptin = $('#formside input[name=EmailOptIn]').is(":checked"); 1276 1277 1278 1279 if (isGdprEmail == 'True') { 1280 1281 if (emailOptin && !email.trim()) { 1282 isFormValid = false; 1283 } 1284 } 1285 else { 1286 if (!email.trim()) { 1287 isFormValid = false; 1288 } 1289 } 1290 1291 1292 if (isGdprPhone == 'True') { 1293 1294 if (phoneOptIn && !phone.trim()) { 1295 isFormValid = false; 1296 } 1297 } 1298 else { 1299 if (!phone.trim()) { 1300 isFormValid = false; 1301 } 1302 } 1303 if (isGdprEmail == 'True' && isGdprPhone == 'True') { 1304 if (!phone.trim() && !email.trim()) { 1305 isFormValid = false; 1306 $('#diverrorMsgside').html("<span class='field-error'>Cannot submit without Email and/or Phone</span> <br class='clear' />"); 1307 } 1308 1309 } 1310 1311 if (isComplianceToggle == "True") { 1312 var complianceToggleRequiredMsg = 'Must accept terms to submit'; 1313 1314 if (acceptComplianceToggle == false) { 1315 1316 $('#divgComplianceToggleside').append("<span class='field-error'>" + complianceToggleRequiredMsg + "</span><br/>"); 1317 isFormValid = false; 1318 } 1319 } 1320 1321 // --- Custom Consent Checkboxes Validation --- 1322 $('#formside input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () { 1323 var $checkbox = $(this); 1324 var isRequired = $checkbox.attr('data-required') === 'true'; 1325 var isChecked = $checkbox.is(':checked'); 1326 var checkboxId = $checkbox.attr('data-checkbox-id'); 1327 1328 if (isRequired && !isChecked) { 1329 isFormValid = false; 1330 $('#divchk_side_' + checkboxId).append("<span class='field-error'>This field is required.</span>"); 1331 } 1332 }); 1333 // --------------------------------------------- 1334 1335 if (isFormValid == false) { 1336 $('#diverrorMsgside').fadeIn('slow'); 1337 e.preventDefault(); 1338 e.stopImmediatePropagation(); 1339 return false; 1340 } 1341 1342 //hide just the Submit Lead button to prevent multi clicking 1343 $('.dc81_button').hide(); 1344 1345 //show spinner html in _SendLeadPopUp.vbhtml. see global.css for animation 1346 $("#loading").fadeIn(); 1347 1348 return true; 1349 1350 }); 1351 1352 1353 1354 1355 //$.validator.unobtrusive.adapters.addBool("mustbetrue", "required"); 1356 $(document).ready(function () { 1357 1358 //var googleCaptchaToken = document.querySelector('#GoogleCaptchaToken'); 1359 grecaptcha.ready(function () { 1360 grecaptcha.execute('6Lcj_t0UAAAAABRyv9Kmb6iLVQTYEeVLwJBhJ0ta', { action: 'sendlead' }).then(function (token) { 1361 $('#formside #GoogleCaptchaToken').val(token); 1362 }); 1363 }); 1364 1365 1366
1367 var isGdprEmail = $('#formside #EnableGDPREmail').val(); 1368 var isGdprPhone = $('#formside #EnableGDPRPhone').val(); 1369 1370 if (isGdprEmail == 'False') { 1371 $("#formside input[name=Email]").prop('required', true).attr('data-val-required', 'Required'); 1372 } 1373 else if (isGdprEmail == 'True') { 1374 1375 var emailOptin = $('#formside input[name=EmailOptIn]').is(":checked") ; 1376 if (emailOptin) 1377 $('#emailRowside').fadeIn('slow'); 1378 else 1379 $('#emailRowside').fadeOut('slow'); 1380 } 1381 if (isGdprPhone == 'False') { 1382 $("#formside input[name=Phone]").prop('required', true).attr('data-val-required', 'Required'); 1383 } 1384 else if (isGdprPhone == 'True') { 1385 var phoneOptIn = $('#formside input[name=PhoneOptIn]').is(":checked"); 1386 if (phoneOptIn) 1387 $('#phoneRowside').fadeIn('slow'); 1388 else 1389 $('#phoneRowside').fadeOut('slow'); 1390 } 1391 1392 1393 1394 $("#formside input[name=Email]").change(function() { 1395 1396 $('#divemailRowside').html(''); 1397 }); 1398 $("#formside input[name=Phone]").change(function() { 1399 1400 $('#divphoneRowside').html(''); 1401 }); 1402 1403 1404 1405 1406 $('#diverrorMsgside').fadeOut('slow'); 1407 1408 1409 $("#formside input[name=EmailOptIn]").change(function () { 1410 //console.log('#formside input[name=EmailOptIn]'); 1411 if (this.checked) { 1412 $('#emailRowside').fadeIn('slow'); 1413 $('#divgdprERowside').html(''); 1414 $("#formside input[name=Email]").prop('required', true); 1415 } 1416 else { 1417 $('#emailRowside').fadeOut('slow'); 1418 $("#formside input[name=Email]").prop('required', false); 1419 $("#formside input[name=Email]").val(''); 1420 } 1421 }); 1422 1423 $("#formside input[name=PhoneOptIn]").change(function () { 1424 1425 //console.log('#formside input[name=PhoneOptIn]'); 1426 if (this.checked) { 1427 $('#phoneRowside').fadeIn('slow'); 1428 $('#divgdprPRowside').html(''); 1429 $("#formside input[name=Phone]").prop('required', true); 1430 } 1431 else { 1432 $('#phoneRowside').fadeOut('slow'); 1433 $("#formside input[name=Phone]").prop('required', false); 1434 $("#formside input[name=Phone]").val(''); 1435 } 1436 }); 1437 1438 1439 }); 1440</script>
1440 1441 </div> 1442 1443 1444 1445 1446 1447 <div class="sideProgram"> 1448 <a href="/classes/Brazilian-Jiu-Jitsu"> 1449 <h4>Brazilian Jiu Jitsu</h4> 1450 1451 <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"> 1452 1453 </a> 1454 </div> 1455 1456 1457 1458 1459 <div class="sideProgram"> 1460 <a href="/classes/Muay-Thai-Kickboxing-"> 1461 <h4>Muay Thai Kickboxing </h4> 1462 1463 <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"> 1464 1465 </a> 1466 </div> 1467 1468 1469 1470 1471 <div class="sideProgram"> 1472 <a href="/classes/Kids-Martial-Arts-"> 1473 <h4>Kids Martial Arts </h4> 1474 1475 <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"> 1476 1477 </a> 1478 </div> 1479 1480 1481 1482 1483 <div class="sideProgram"> 1484 <a href="/classe
1484s/Mixed-Martial-Arts-"> 1485 <h4>Mixed Martial Arts </h4> 1486 1487 <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"> 1488 1489 </a> 1490 </div> 1491 1492 1493 1494 1495 <div class="sideProgram"> 1496 <a href="/classes/Strength-And-Conditioning-"> 1497 <h4>Spartan Conditioning</h4> 1498 1499 <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"> 1500 1501 </a> 1502 </div> 1503 1504 1505 1506 1507 <div class="sideProgram"> 1508 <a href="/classes/Fitness-Kickboxing"> 1509 <h4>Fitness Kickboxing</h4> 1510 1511 <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"> 1512 1513 </a> 1514 </div> 1515 1516 1517 <!-- /Side Program --> 1518 </div> 1519 <br class="clear" ÃÂ /> 1520 </div> 1521 </section> 1522 1523 1524 1525 1526<!-- footer --> 1527<footer class="footer section"> 1528 <div class="content"> 1529 1530 <!-- --> 1531 <div class="col one-third center"> 1532 1533 <a href="/"><img src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93563.png" loading="lazy"></a> 1534 </div> 1535 1536 1537 <!-- / --> 1538 <!-- --> 1539 <div class="col one-third"> 1540 1541 <h4 class="iconicTitle">Spartan Fitness</h4> 1542 <p>At Spartan Fitness, your success is our priority. Whether you'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> 1543 </div> 1544 <!-- / --> 1545 <!-- --> 1546 <div class="col one-third" itemscope itemtype="http://schema.org/LocalBusiness"> 1547 <meta itemprop="name" content="Spartan Fitness"> 1548 <meta itemprop="image" content="https://res.cloudinary.com/display97/image/upload/q_auto:eco,f_auto/5845/93563.png"> 1549 1550 <h4 class="iconicTitle">Contact us</h4> 1551 1552 1553 1554 <p itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
1555 <span itemprop="streetAddress">179 State Farm Parkway</span>, 1556 <span itemprop="addressLocality" class="city">Homewood</span>, 1557 <span itemprop="addressRegion" class="state">Alabama</span> <span itemprop="postalCode" class="postalcode">35209</span> 1558 <br /> <a href="tel:205-824-8361"> <span itemprop="telephone">205-824-8361</span></a> 1559 <br /> <a href="mailto:[email protected]"><span itemprop="Email">[email protected]</span></a> 1560 </p> 1561 1562 1563 1564 </div> 1565 <!-- / --> 1566 <br class="clear" /> 1567 <p class="copyright"> 1568 Copyright © 2026 1569 1570 / <a href="/privacy-policy">Privacy Policy</a> 1571 1572 </p> 1573 </div> 1574 1575</footer> 1576<!-- /footer --> 1577 1578 1579 1580 1581 1582 1583 1584 1585<!-- Mary Popin --> 1586<section class="maryPopin "> 1587 <div class="maryPopin_inner"> 1588 <div class="maryPopin_content"> 1589 1590 1591 1592 1593 <div class="popup_testimonials"> 1594 1595 <div class="popup_testimonials-item"> 1596 <figure class="popup_testimonials-avatar"> 1597 1598 <img class="reviewImage" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/TestimonialImage-115076.jpg" loading="lazy"> 1599 1600 </figure> 1601 <header class="popup_testimonials-header"> 1602 <h4>Lauren Bradshaw</h4> 1603 <div class="popup_testimonials-stars"></div> 1604 </header> 1605 <div class="popup_testimonials-text"><p>I have struggled with weight for years and to finally lose 100 lbs. feels awesome and I couldn’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> 1606 </div> 1607 1608 1609 <div class="popup_testimonials-item"> 1610 <figure class="popup_testimonials-avatar"> 1611 1612 <img class="reviewImage" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93575.png" loading="lazy"> 1613 1614 </figure> 1615 <header class="popup_testimonials-header"> 1616 <h4>Ryan Fredrick</h4> 1617 <div class="popup_testimonials-stars"></div> 1618 </header> 1619 <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> 1620 </div> 1621 1622 1623 <div class="popup_testimonials-item"> 1624 <figure class="popup_testimonials-avatar"> 1625 1626 <img class="reviewImage" src="https://res.cloudinary.com/display97/image/upload/f_auto,q_auto/5845/93564.png" loading="lazy"> 1627 1628 </figure> 1629 <header class="popup_testimonials-header"> 1630 <h4>Kayla Shaffer</h4> 1631 <div class="popup_testimonials-stars"></div> 1632 </header> 1633 <div class="popup_testimonials-text"><p>
1633Spartan 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> 1634 </div> 1635 1636 1637 </div> 1638 1639 1640 1641 1642 1643
1643<script> 1644 $('html').on('mouseleave', function () { 1645 var tstCookie = readCookie("showLeadForm"); 1646 if (tstCookie == null || tstCookie == false) { 1647 $('.maryPopin').addClass('active'); 1648 $('.maryPopin_lead').addClass('active'); 1649 createCookie("showLeadForm", true, 24); 1650 } else { 1651 createCookie("showLeadForm", true, 24); 1652 } 1653 }); 1654 </script>
1654 1655 1656 1657 1658 1659 <div class="maryPopin_lead"> 1660 1661 <h3>Request Information Now!</h3> 1662 1663 1664 1665 1666 1667 1668<aside class="popupdevcode81_leadform"> 1669 1670 1671 1672<form action="/Home/SendLead" id="formpopup" method="post"> 1673 <input name="__RequestVerificationToken" type="hidden" value="yePeyhuXQ98CTvUfs_4qzzCoJEdxJtxOhGvubPSKqJ1_EcBvAr6NRysXY4rz83ZfzV7tWiBa0BYshvKYkjU86z0cnoj-_6t5Vy5MELZF9Cs1" /> 1674 <input id="returnUrl" name="returnUrl" type="hidden" value="/blog" /> 1675 <input data-val="true" data-val-required="The EnableGDPR field is required." id="EnableGDPR" name="EnableGDPR" type="hidden" value="False" /> 1676 <input data-val="true" data-val-required="The EnableGDPREmail field is required." id="EnableGDPREmail" name="EnableGDPREmail" type="hidden" value="False" /> 1677 <input data-val="true" data-val-required="The EnableGDPRPhone field is required." id="EnableGDPRPhone" name="EnableGDPRPhone" type="hidden" value="False" /> 1678 <input data-val="true" data-val-required="The ComplianceToggle field is required." id="ComplianceToggle" name="ComplianceToggle" type="hidden" value="False" /> 1679 <input id="RedirectToUrl" name="RedirectToUrl" type="hidden" value="" /> 1680 <input data-val="true" data-val-required="The IsReportForm field is required." id="IsReportForm" name="IsReportForm" type="hidden" value="False" /> 1681 <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="20" /> 1682 <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" /> 1683 <input id="MixpanelDistinctId" name="MixpanelDistinctId" type="hidden" value="" /> 1684 <input data-val="true" data-val-number="The field SourcePageId must be a number." id="SourcePageId" name="SourcePageId" type="hidden" value="" /> 1685 <input id="GoogleCaptchaToken" name="GoogleCaptchaToken" type="hidden" value="" /> 1686 <input data-val="true" data-val-required="The EnableSingleConsentOptIn field is required." id="EnableSingleConsentOptIn" name="EnableSingleConsentOptIn" type="hidden" value="True" /> 1687 <input id="UtmSource" name="UtmSource" type="hidden" value="" /> 1688 <input id="UtmCampaign" name="UtmCampaign" type="hidden" value="" /> 1689 <input id="UtmContent" name="UtmContent" type="hidden" value="" /> 1690 <input id="UtmMedium" name="UtmMedium" type="hidden" value="" /> 1691 <input id="UtmTerm" name="UtmTerm" type="hidden" value="" /> 1692 1693 <div class="dc81_full" id="diverrorMsgpopup"> 1694 </div> 1695 <div class="dc81_full"> 1696 <div class="dc81_halfleft"> 1697 <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="^[^%$()<>&@;*]+$" data-val-required="First Name Required" id="FName" maxlength="20" name="FName" pattern="^[^%$\(\)<>&@;*]+$" placeholder="First" required="required" title="First" type="text" value="" /> 1698 <span class="field-validation-valid" data-valmsg-for="FName" data-valmsg-replace="true"></span> 1699 </div> 1700 1701 <div class="dc81_halfright"> 1702 <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="^[^%$()<>&@;*]+$" data-val-required="Last Name Required" id="LName" maxlength="20" name="LName" pattern="^[^%$\(\)<>&@;*]+$" placeholder="Last" required="required" title="Last" type="text" value="" />
1703 <span class="field-validation-valid" data-valmsg-for="LName" data-valmsg-replace="true"></span> 1704 </div> 1705 <br class="clear" /> 1706 </div> 1707 1708<input data-val="true" data-val-required="The EmailOptIn field is required." id="EmailOptIn" name="EmailOptIn" type="hidden" value="True" /> 1709 1710<input data-val="true" data-val-required="The PhoneOptIn field is required." id="PhoneOptIn" name="PhoneOptIn" type="hidden" value="True" /> 1711 1712 <div id="emailRowpopup" class="dc81_full"> 1713 <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="" /> 1714 <span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span> 1715 <div id="divemailRowpopup"></div> 1716 </div> 1717 1718 1719 1720 <div id="phoneRowpopup" class="dc81_full"> 1721 <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="" /> 1722 <span class="field-validation-valid" data-valmsg-for="Phone" data-valmsg-replace="true"></span> 1723 <div id="divphoneRowpopup"></div> 1724 </div> 1725 1726 1727 1728 1729 <input data-val="true" data-val-number="The field GenderId must be a number." id="GenderId" name="GenderId" type="hidden" value="" /> 1730 1731 1732 1733 <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" /> 1734 1735 1736 1737 <input id="ProgramId" name="ProgramId" type="hidden" value="" /> 1738 1739 1740 1741 1742 1743 <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="^[^%$()<>*]+$" id="Comment" name="Comment" type="hidden" value="" /> 1744 1745 1746 1747 1748 1749 <div class="dc81_full"> 1750 <label for="" class="dc81_choice"> 1751<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" /> 1752 1753 <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> 1754 1755 </label> 1756 </div> 1757 1758 1759 1760 1761 1762 <div class="dc81_full"> 1763 <input class="dc81_button" value="Request More Information" type="submit" /> 1764 </div> 1765 1766 1767</form></aside> 1768 1769<style type="text/css"> 1770 .popupdevcode81_leadform .field-validation-error{ color: #FF0000 !important; text-align: center; display: block; } 1771 1772 .popupdevcode81_leadform *{ box-sizing: border-box; } 1773 .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;} 1774 .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;} 1775
1776 .popupdevcode81_leadform {background-color: #000;} 1777 1778 .popupdevcode81_leadform { margin: 0 auto; max-width: 450px; text-align: center; width: 100%; padding: 20px; } 1779 .popupdevcode81_leadform label{ color: #fff; font-weight: bold; font-size: 12px; text-transform: uppercase; text-align: left; display: block; } 1780 .popupdevcode81_leadform .dc81_choice{ color: #fff !important; text-transform: none !important; } 1781 .popupdevcode81_leadform small{ display: block; line-height: 17px; } 1782 .popupdevcode81_leadform small a{ border-bottom: 1px solid blue; color: #fff ; } 1783 .popupdevcode81_leadform small a:hover{ border-bottom: 1px solid red; } 1784 .popupdevcode81_leadform .dc81_title{ font-size: 15px; font-weight: bold; color: #fff; margin-bottom: 0; text-transform: uppercase; } 1785 .popupdevcode81_leadform .dc81_req{ color: red; } 1786 .popupdevcode81_leadform .dc81_halfleft, .dc81_halfright{ display: block; float: left; margin-bottom:10px; width: 50%; } 1787 .popupdevcode81_leadform .dc81_halfleft{ padding-right: 10px; } 1788 .popupdevcode81_leadform .dc81_halfright{ padding-left: 10px; } 1789 .popupdevcode81_leadform .dc81_full{ margin-bottom:10px; } 1790 .popupdevcode81_leadform .dc81_checkbox{ float: left; vertical-align: middle; width: 24px; height: 24px; } 1791 .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; } 1792 .popupdevcode81_leadform .dc81_selectBox{ position: relative; } .dc81_select{ font-size: 14px; } 1793 .popupdevcode81_leadform .dc81_selectBox:after{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(45deg); position: absolute; top: 20px; right: 16px; } 1794 .popupdevcode81_leadform .dc81_selectBox:before{ content: ''; width: 10px; height: 2px; background-color: #fff; transform: rotate(-45deg); position: absolute; top: 20px; right: 10px; } 1795 .popupdevcode81_leadform .dc81_textarea{ height: 120px; } 1796 .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; } 1797 .popupdevcode81_leadform .dc81_button:hover{ background: var(--buttonColor, #fff); border: 1px solid var(--buttonBg, #dc0000); color: var(--buttonBg, #dc0000); } 1798 .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; } 1799 .popupdevcode81_leadform .dc81_helptxt{ color: #fff; text-align: left; display: block; } 1800</style> 1801
1802<script type="text/javascript"> 1803 $('#formpopup').submit(function (e) { 1804 1805 //SPINNER FOR AFTER CLICKING THE SUBMIT LEAD BUTTON 1806 //get field data on form 1807 var fName = $('#formpopup input[name=FName]').val(); 1808 var lName = $('#formpopup input[name=LName]').val(); 1809 var email = $('#formpopup input[name=Email]').val(); 1810 var phone = $('#formpopup input[name=Phone]').val(); 1811 1812 1813 //END SPINNER 1814 1815 1816 $('#divgdprERowpopup').html(''); 1817 $('#divgdprPRowpopup').html(''); 1818 $('#divphoneRowpopup').html(''); 1819 $('#divemailRowpopup').html(''); 1820 $('#divgComplianceTogglepopup').html(''); 1821 $('#diverrorMsgpopup').html(''); 1822 $('#formpopup input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () { 1823 $('#divchk_popup_' + $(this).attr('data-checkbox-id')).html(''); 1824 }); 1825 1826 1827 var isFormValid = true; 1828 var isGdpr = $('#formpopup #EnableGDPR').val(); 1829 1830 var isGdprEmail = $('#formpopup #EnableGDPREmail').val(); 1831 var isGdprPhone = $('#formpopup #EnableGDPRPhone').val(); 1832 1833 1834 var isComplianceToggle = $('#formpopup #ComplianceToggle').val(); 1835 var email = $('#formpopup input[name=Email]').val(); 1836 var phone = $('#formpopup input[name=Phone]').val(); 1837 var acceptComplianceToggle = $('#formpopup input[name=AcceptComplianceToggle]').is(":checked"); 1838 1839 var phoneOptIn = $('#formpopup input[name=PhoneOptIn]').is(":checked"); 1840 var emailOptin = $('#formpopup input[name=EmailOptIn]').is(":checked"); 1841 1842 1843 1844 if (isGdprEmail == 'True') { 1845 1846 if (emailOptin && !email.trim()) { 1847 isFormValid = false; 1848 } 1849 } 1850 else { 1851 if (!email.trim()) { 1852 isFormValid = false; 1853 } 1854 } 1855 1856 1857 if (isGdprPhone == 'True') { 1858 1859 if (phoneOptIn && !phone.trim()) { 1860 isFormValid = false; 1861 } 1862 } 1863 else { 1864 if (!phone.trim()) { 1865 isFormValid = false; 1866 } 1867 } 1868 if (isGdprEmail == 'True' && isGdprPhone == 'True') { 1869 if (!phone.trim() && !email.trim()) { 1870 isFormValid = false; 1871 $('#diverrorMsgpopup').html("<span class='field-error'>Cannot submit without Email and/or Phone</span> <br class='clear' />"); 1872 } 1873 1874 } 1875 1876 if (isComplianceToggle == "True") { 1877 var complianceToggleRequiredMsg = 'Must accept terms to submit'; 1878 1879 if (acceptComplianceToggle == false) { 1880 1881 $('#divgComplianceTogglepopup').append("<span class='field-error'>" + complianceToggleRequiredMsg + "</span><br/>"); 1882 isFormValid = false; 1883 } 1884 } 1885 1886 // --- Custom Consent Checkboxes Validation --- 1887 $('#formpopup input[name^="ConsentCheckboxes"][type="checkbox"]').each(function () { 1888 var $checkbox = $(this); 1889 var isRequired = $checkbox.attr('data-required') === 'true'; 1890 var isChecked = $checkbox.is(':checked'); 1891 var checkboxId = $checkbox.attr('data-checkbox-id'); 1892 1893 if (isRequired && !isChecked) { 1894 isFormValid = false; 1895 $('#divchk_popup_' + checkboxId).append("<span class='field-error'>This field is required.</span>"); 1896 } 1897 }); 1898 // --------------------------------------------- 1899 1900 if (isFormValid == false) { 1901 $('#diverrorMsgpopup').fadeIn('slow'); 1902 e.preventDefault(); 1903 e.stopImmediatePropagation(); 1904 return false; 1905 } 1906 1907 //hide just the Submit Lead button to prevent multi clicking 1908 $('.dc81_button').hide(); 1909 1910 //show spinner html in _SendLeadPopUp.vbhtml. see global.css for animation 1911 $("#loading").fadeIn(); 1912 1913 return true; 1914 1915 }); 1916 1917 1918 1919 1920 //$.validator.unobtrusive.adapters.addBool("mustbetrue", "required"); 1921 $(document).ready(function () { 1922 1923 //var googleCaptchaToken = document.querySelector('#GoogleCaptchaToken'); 1924 grecaptcha.ready(function () { 1925 grecaptcha.execute('6Lcj_t0UAAAAABRyv9Kmb6iLVQTYEeVLwJBhJ0ta', { action: 'sendlead' }).then(function (token) { 1926 $('#formpopup #GoogleCaptchaToken').val(token); 1927 }); 1928 }); 1929 1930 1931 1932 var isGdprEmail = $('#formpopup #EnableGDPREmail').val(); 1933 var isGdprPhone = $('#formpopup #EnableGDPRPhone').val(); 1934 1935 if (isGdprEmail == 'False') { 1936 $("#formpopup input[name=Email]").prop('required', true).attr('data-val-required', 'Required'); 1937 } 1938 else if (isGdprEmail == 'True') { 1939 1940 var emailOptin = $('#formpopup input[name=EmailOptIn]').is(":checked") ; 1941 if (emailOptin) 1942 $('#emailRowpopup').fadeIn('slow'); 1943 else 1944 $('#emailRowpopup').fadeOut('slow'); 1945 } 1946 if (isGdprPhone == 'False') { 1947 $("#formpopup input[name=Phone]").prop('required', true).attr('data-val-required', 'Required'); 1948 } 1949 else if (isGdprPhone == 'True') { 1950 var phoneOptIn = $('#formpopup input[name=PhoneOptIn]').is(":checked"); 1951 if (phoneOptIn) 1952 $('#phoneRowpopup').fadeIn('slow'); 1953 else 1954 $('#phoneRowpopup').fadeOut('slow'); 1955 } 1956 1957 1958 1959 $("#formpopup input[name=Email]").change(function() { 1960 1961 $('#divemailRowpopup').html(''); 1962 }); 1963 $("#formpopup input[name=Phone]").change(function() { 1964 1965 $('#divphoneRowpopup').html(''); 1966 }); 1967 1968 1969 1970 1971 $('#diverrorMsgpopup').fadeOut('slow'); 1972 1973 1974 $("#formpopup input[name=EmailOptIn]").change(function () { 1975 //console.log('#formpopup input[name=EmailOptIn]'); 1976 if (this.checked) { 1977 $('#emailRowpopup').fadeIn('slow'); 1978 $('#divgdprERowpopup').html(''); 1979 $("#formpopup input[name=Email]").prop('required', true); 1980 } 1981 else { 1982 $('#emailRowpopup').fadeOut('slow'); 1983 $("#formpopup input[name=Email]").prop('required', false); 1984 $("#formpopup input[name=Email]").val(''); 1985 } 1986 }); 1987 1988 $("#formpopup input[name=PhoneOptIn]").change(function () { 1989 1990 //console.log('#formpopup input[name=PhoneOptIn]'); 1991 if (this.checked) { 1992 $('#phoneRowpopup').fadeIn('slow'); 1993 $('#divgdprPRowpopup').html(''); 1994 $("#formpopup input[name=Phone]").prop('required', true); 1995 } 1996 else { 1997 $('#phoneRowpopup').fadeOut('slow'); 1998 $("#formpopup input[name=Phone]").prop('required', false); 1999 $("#formpopup input[name=Phone]").val(''); 2000 } 2001 }); 2002 2003 2004 });
2005</script>
2005 2006 2007 </div> 2008 2009 2010 2011 <div class="maryClose"> 2012 <span></span> 2013 <span></span> 2014 </div> 2015 </div> 2016 </div> 2017</section> 2018<!-- /Mary Popin --> 2019 2020<div id="loading"> 2021 <div id="loadingcontent"> 2022 <p id="loadingspinner"> 2023 2024 <div id="floatingBarsG"> 2025 <div class="blockG" id="rotateG_01"></div> 2026 <div class="blockG" id="rotateG_02"></div> 2027 <div class="blockG" id="rotateG_03"></div> 2028 <div class="blockG" id="rotateG_04"></div> 2029 <div class="blockG" id="rotateG_05"></div> 2030 <div class="blockG" id="rotateG_06"></div> 2031 <div class="blockG" id="rotateG_07"></div> 2032 <div class="blockG" id="rotateG_08"></div> 2033 </div> 2034 2035 </p> 2036 </div> 2037</div> 2038 2039 2040
2041<script type="application/ld+json"> 2042 2043 { 2044 "@Context" : "http://schema.org", 2045 "@Type" : "Organization", 2046 "name" : "Spartan Fitness", 2047 "url" : "http://www.spartanfitnessmma.com", 2048 "sameAs": ["https://www.facebook.com/sbgbirmingham/","https://twitter.com/SBGBirmingham","https://goo.gl/maps/M8ooywfTNmjW2LF47","https://www.youtube.com/user/SpartanFitnessMMA"] 2049 } 2050</script>
2050 2051 2052 2053 2054 <!-- Facebook Pixel Code -->
2055<script>
vendor: 426 bytes, lines 2055-2064
2055 2056 !function(f,b,e,v,n,t,s) 2057 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 2058 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 2059 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 2060 n.queue=[];t=b.createElement(e);t.async=!0; 2061 t.src=v;s=b.getElementsByTagName(e)[0]; 2062 s.parentNode.insertBefore(t,s)}(window, document,'script', 2063 'https://connect.facebook.net/en_US/fbevents.js'); 2064 fbq('init', '
20641099102656794359
vendor: 34 bytes, lines 2064-2065
2064'); 2065 fbq('track', 'PageView');
2066</script>
2066 2067<noscript><img height="1" width="1" style="display:none" 2068 src="https://www.facebook.com/tr?id=1099102656794359&ev=PageView&noscript=1" 2069/></noscript> 2070<!-- End Facebook Pixel Code --> 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 <style> 2082 #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); } 2083 #cb2-banner .cb2-inner { max-width: 1100px; margin: 0 auto; } 2084 #cb2-banner .cb2-text { display: block; line-height: 1.5; } 2085 #cb2-banner .cookie-link, #cb2-banner a { color: #cccccc; text-decoration: underline; } 2086 #cb2-banner .cb2-buttons { margin-top: 14px; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px; } 2087 #cb2-banner .cb2-btn { min-width: 150px; padding: 9px 18px; border-radius: 4px; cursor: pointer; font-weight: 600; border: none; font-size: 14px; } 2088 #cb2-accept { background-color: #000000; color: #FFFFFF; } 2089 #cb2-decline { background-color: #000000; color: #FFFFFF; } 2090 #cb2-manage { background-color: #000000; color: #FFFFFF; border: 1px solid rgba(255,255,255,0.4); } 2091 #cb2-banner .cb2-btn:hover { opacity: 0.9; } 2092 #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; } 2093 #cb2-x:hover { opacity: 1; } 2094 #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; } 2095 #cb2-manage-panel .cb2-cat { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; } 2096 #cb2-manage-panel .cb2-cat label { font-weight: 600; } 2097 #cb2-manage-panel .cb2-cat .cb2-desc { display: block; font-weight: 400; opacity: 0.85; font-size: 13px; } 2098 #cb2-manage-panel .cb2-manage-actions { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 10px; } 2099 #cb2-dns { margin-top: 12px; padding: 10px; border: 1px dashed rgba(255,255,255,0.4); border-radius: 4px; } 2100 #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; } 2101 </style> 2102 2103 <div id="cb2-banner" role="dialog" aria-label="Cookie consent"> 2104 <button type="button" id="cb2-x" aria-label="Close">×</button> 2105 <div class="cb2-inner"> 2106 <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> 2107 <div class="cb2-buttons"> 2108 <button type="button" id="cb2-accept" class="cb2-btn">Accept All</button> 2109 <button type="button" id="cb2-decline" class="cb2-btn">Decline All</button> 2110 <button type="button" id="cb2-manage" class="cb2-btn">Manage</button> 2111 </div> 2112 2113 <div id="cb2-manage-panel"> 2114 <div class="cb2-cat"> 2115 <input type="checkbox" id="cb2-cat-necessary" checked disabled /> 2116 <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> 2117 </div> 2118 <div class="cb2-cat"> 2119 <input type="checkbox" id="cb2-cat-analytics" /> 2120 <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> 2121 </div> 2122 <div class="cb2-cat"> 2123 <input type="checkbox" id="cb2-cat-marketing" /> 2124 <label for="cb2-cat-marketing">Marketing<span class="cb2-desc">Used to deliver relevant ads and measure ad performance across sites.</span></label> 2125 </div> 2126 <div class="cb2-cat"> 2127 <input type="checkbox" id="cb2-cat-functional" /> 2128 <label for="cb2-cat-functional">Functional<span class="cb2-desc">Enable enhanced features like chat widgets and scheduling tools.</span></label> 2129 </div> 2130 2131 2132 <div class="cb2-manage-actions"> 2133 <button type="button" id="cb2-save" class="cb2-btn">Save My Choices</button> 2134 <button type="button" id="cb2-accept-necessary" class="cb2-btn">Accept Necessary</button> 2135 </div> 2136 </div> 2137 </div> 2138 </div> 2139 2140 <div id="cb2-settings-trigger">Cookie Settings</div> 2141 2142
2142<script type="text/javascript"> 2143 (function () { 2144 "use strict"; 2145 var IS_OPT_IN = false; 2146 var REQUIRES_DNS = false; 2147 2148 function $(id) { return document.getElementById(id); } 2149 var banner = null, panel = null, trigger = null; 2150 2151 function showBanner() { if (banner) banner.style.display = 'block'; if (trigger) trigger.style.display = 'none'; } 2152 function hideBanner() { if (banner) banner.style.display = 'none'; if (trigger) trigger.style.display = 'block'; } 2153 function openManage() { 2154 if (panel) panel.style.display = 'block'; 2155 // Seed toggles from stored consent if any, else from regime default. 2156 var c = (window.__consent && window.__consent.current()) || null; 2157 var preChecked = !IS_OPT_IN; // opt-out => pre-checked; opt-in => pre-unchecked 2158 $('cb2-cat-analytics').checked = c ? !!c.analytics : preChecked; 2159 $('cb2-cat-marketing').checked = c ? !!c.marketing : preChecked; 2160 $('cb2-cat-functional').checked = c ? !!c.functional : preChecked; 2161 } 2162 2163 function apply(consent, src) { 2164 if (window.__consent) window.__consent.apply(consent, src); 2165 hideBanner(); 2166 } 2167 2168 document.addEventListener("DOMContentLoaded", function () { 2169 banner = $('cb2-banner'); panel = $('cb2-manage-panel'); trigger = $('cb2-settings-trigger'); 2170 2171 var hasChoice = window.__consent && window.__consent.current(); 2172 if (hasChoice) { hideBanner(); } else { showBanner(); } 2173 2174 var a = $('cb2-accept'); 2175 if (a) a.addEventListener('click', function () { if (window.__consent) window.__consent.acceptAll('acceptAll'); hideBanner(); }); 2176 2177 var d = $('cb2-decline'); 2178 if (d) d.addEventListener('click', function () { if (window.__consent) window.__consent.declineAll('declineAll'); hideBanner(); }); 2179 2180 var m = $('cb2-manage'); 2181 if (m) m.addEventListener('click', function () { openManage(); }); 2182 2183 var save = $('cb2-save'); 2184 if (save) save.addEventListener('click', function () { 2185 apply({ 2186 necessary: 1, 2187 analytics: $('cb2-cat-analytics').checked ? 1 : 0, 2188 marketing: $('cb2-cat-marketing').checked ? 1 : 0, 2189 functional: $('cb2-cat-functional').checked ? 1 : 0 2190 }, 'manage'); 2191 }); 2192 2193 var an = $('cb2-accept-necessary'); 2194 if (an) an.addEventListener('click', function () { if (window.__consent) window.__consent.declineAll('acceptNecessary'); hideBanner(); }); 2195 2196 // Re-open from the floating chip; pre-open Manage for CA (DNS). 2197 if (trigger) trigger.addEventListener('click', function () { 2198 showBanner(); 2199 if (REQUIRES_DNS) { openManage(); var dns = $('cb2-dns'); if (dns) dns.scrollIntoView({ block: 'nearest' }); } 2200 }); 2201 2202 // Dismiss behavior. Opt-out (US): the X button = Accept All. 2203 // Opt-in (EU/UK): no X rendered; visitor must use the 3 buttons. 2204 // NOTE (per stakeholder): ONLY the Accept All button and the X button 2205 // count as accepting. Clicking anywhere else on the page ââ¬" including the 2206 // lead-form popup or the multi-location popup ââ¬" never accepts. There is 2207 // intentionally NO document-level outside-click handler. 2208 if (!IS_OPT_IN) { 2209 var x = $('cb2-x'); 2210 if (x) x.addEventListener('click', function () { if (window.__consent) window.__consent.acceptAll('xbutton'); hideBanner(); }); 2211 } 2212 }); 2213 })(); 2214 </script>
2214 2215 2216 2217 2218 2219</body> 2220</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.