1<!DOCTYPE HTML> 2<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 3<head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=1"> 7 8 <!-- Preconnect --> 9 <link rel="preconnect" href="https://www.optimizecdn.com" crossorigin> 10 <link rel="preconnect" href="https://fonts.googleapis.com"> 11 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 12 <link rel="apple-touch-icon" href="/images/favicon.png"> 13 <link rel="icon" type="image/png" href="/images/favicon.png"> 14 15 <!-- Site Meta Data --> 16 <title>Trainer Directory - Find Trainers - The Trainer Directory</title> 17 <meta name="description" content="Search the most complete trainer directory. Find trainers."> 18 <meta name="keywords" content="Professional,Trainer, The Trainer Directory"> 19 <meta name="robots" content="index, follow"> 20 21 <!-- Canonical URL --> 22 <link rel="canonical" href="https://www.thetrainerdirectory.com/"> 23 <link rel="alternate" type="application/rss+xml" title="The Trainer Directory RSS Feed" href="https://www.thetrainerdirectory.com/rss" /> 24 25 <!-- Social Media Meta Data --> 26 <meta property="og:type" content="website"> 27 <meta property="og:url" content="https://www.thetrainerdirectory.com"> 28 <meta property="og:site_name" content="The Trainer Directory"> 29 <meta property="og:title" content="Trainer Directory - Find Trainer - The Trainer Directory"> 30 <meta property="og:description" content="Search the most complete trainer database. Find Trainer."> 31 <meta property="og:image" content="https://www.thetrainerdirectory.com/images/background.jpg"> 32
32<script> 33 if (window.innerWidth <= 768 && !document.referrer) { 34 document.write('<div id="mobile-loading-message" aria-hidden="true" onwheel="event.preventDefault()" ontouchmove="event.preventDefault()" style="display:block;position:sticky;top:0;width:100vw;height:100vh;background:rgb(245, 247, 250);color:rgb(41, 41, 41);z-index:9999;font-family:Arial,sans-serif;font-size:16px;line-height:24px;padding-top:50px;text-align:center;touch-action:none;overscroll-behavior:none;pointer-events:auto;"><div style="width:24px;height:24px;border:3px solid rgba(99,111,124,0.2);border-top-color:rgb(99,111,124);border-radius:50%;animation:spin 1.5s linear infinite;margin:10px auto"></div><span class="text" role="status">Loading<br>The Trainer Directory</span></div><style>@keyframes spin{to{transform:rotate(360deg);}}</style>'); 35 setTimeout(function(){var p=document.getElementById('mobile-loading-message');if(p){p.style.display='none';p.classList.add('hidden-xs','hide');}},7500);} 36 </script>
36 37 38 <!-- Preload --> 39 <link rel="preload" as="style" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" fetchpriority="high" crossorigin> 40 <link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Nunito:300,400,600,700,800,900|Ubuntu:300,400,600,700,800,900&display=swap" fetchpriority="high"> 41 <link rel="preload" href="/images/background.jpg" as="image" fetchpriority="high"> 42 43 <!-- Non-Critical Stylesheet - Render Before Critical Styles --> 44 <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css?v=3.3.0" crossorigin> 45 <noscript> 46 <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/non-critical-styles.pkgd.min.css" crossorigin> 47 </noscript> 48 49 <!-- Critical Stylesheet --> 50 <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/css/critical-styles.pkgd.min.css?v=09.05.26" crossorigin> 51 52 <!-- Google Fonts Stylesheet --> 53 <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Nunito:300,400,600,700,800,900|Ubuntu:300,400,600,700,800,900&display=swap"> 54 <noscript> 55 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito:300,400,600,700,800,900|Ubuntu:300,400,600,700,800,900&display=swap"> 56 </noscript> 57 58 <!-- FontAwesome Stylesheet --> 59 <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin> 60 <noscript> 61 <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/font-awesome/css/font-awesome.min.css" crossorigin> 62 </noscript> 63 64 <!-- Bootstrap Icons Stylesheet --> 65 <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin> 66 <noscript> 67 <link rel="stylesheet" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1" crossorigin> 68 </noscript> 69 70 <!-- Critical JavaScript --> 71
71<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/libraries/latest/jquery.min.js"></script>
71 72
72<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/libraries/latest/bootstrap.min.js"></script>
72 73
73<script> 74 /* jQuery.event.special.touchstart = { 75 setup: function( _, ns, handle ) { 76 this.addEventListener("touchstart", handle, { passive: !ns.includes("noPreventDefault") }); 77 } 78 }; */ 79 jQuery.event.special.touchmove = { 80 setup: function( _, ns, handle ) { 81 this.addEventListener("touchmove", handle, { passive: !ns.includes("noPreventDefault") }); 82 } 83 }; 84 jQuery.event.special.wheel = { 85 setup: function( _, ns, handle ){ 86 this.addEventListener("wheel", handle, { passive: true }); 87 } 88 }; 89 jQuery.event.special.mousewheel = { 90 setup: function( _, ns, handle ){ 91 this.addEventListener("mousewheel", handle, { passive: true }); 92 } 93 }; 94 </script>
94 95 96 97 98 <!-- Prefetch --> 99 <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script"> 100 <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script"> 101 102 103</head> 104 105<body class="general-session"><!-- 106IMPORTANT: It is not recommended to customize this widget as it directly connects to fields in DESIGN SETTINGS. If new design settings are created and this widget is already customized, then the website will not be able to apply any new design setitngs. 107 108INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section. 109--> 110<style> 111 .upload-form-field::before { 112 content: "choose files"; 113 display: inline-block; 114 border: 1px solid #999; 115 border-radius: 3px; 116 padding: 5px 8px; 117 } 118 #first_container span.input-group-addon,#first_container .datepicker *,#first_container .input-group-addon, #first_container .input-group-addon *,#first_container .fr-action-buttons .fr-submit,.fr-popup .fr-layer.fr-color-hex-layer .fr-action-buttons button.fr-command { 119 white-space: nowrap !important; 120 } 121 /* Main Website Design */ 122 body,.modal-header,.modal-content,.modal-body,.modal-footer { 123 background: rgb(245, 247, 250); 124 color: rgb(41, 41, 41); 125 font-family: 'Nunito'; 126 font-size: 16px; 127 } 128 .select2-container .select2-choice { 129 font-family: 'Nunito'!important; 130 } 131 html{ 132 background: rgb(0, 45, 98) } 133 .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow { 134 color: #000 !important; 135 } 136 a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) { 137 color: rgb(51, 122, 183); 138 } 139 a:hover, a:focus,.pricing_menu li ul li a:not(.btn):hover,.pricing_menu li ul li a:not(.btn):focus,.btn:hover,.btn:focus { 140 color: rgb(35, 82, 124); 141 } 142 .breadcrumb a{ 143 color: rgba(119, 119, 119,0.9); 144 } 145 .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active { 146 color: rgb(119, 119, 119); 147 } 148 .help-inline, .help-block { 149 color: rgba(41, 41, 41,0.5); 150 } 151 .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { 152 font-family: 'Ubuntu'; 153 } 154 /* Header Design */ 155 .header, .mobile_website_logo img { 156 background: rgb(245, 247, 250); 157 } 158 .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span { 159 color: rgb(41, 41, 41); 160 font-size: 16px; 161 } 162 .header .mini-nav li a:not(.btn):hover { 163 color: rgba(41, 41, 41,0.95); 164 } 165 .header .btn_get_listed { 166 background-color: rgb(255, 186, 8); 167 border: 1px solid rgb(255, 186, 8); 168 color: rgb(245, 247, 250)!important; 169 } 170 .header .btn_get_listed:hover, .header .btn_get_listed:focus { 171 background-color: rgba(255, 186, 8,0.97); 172 } 173 .header .btn_search { 174 background-color: rgba(0, 45, 98,0.97); 175 border: 1px solid rgb(0, 45, 98); 176 color: rgb(255, 255, 255); 177 } 178 .header .btn_search:hover, .header .btn_search:focus { 179 background-color: rgb(0, 45, 98); 180 color: rgb(255, 255, 255); 181 } 182 183 /* Logo Design */ 184 .logo,.logo:hover,.logo:focus { 185 color: rgb(24, 46, 69); 186 font-family: 'Nunito'; 187 } 188 .logo .slogan { 189 color: rgb(153, 153, 153); 190 } 191 .logo .fa { 192 color: rgb(24, 46, 69); 193 } 194 195 /* Main Menu Design */ 196 .member-profile-tabs > ul, .member-profile-tabs .tabs-container { 197 background: rgb(255, 255, 255); 198 position: sticky; 199 z-index: 1; 200 top: 0px; 201 } 202 /* Google Translate When Main Menu Sticky Top */ 203 @media only screen and (max-width: 1100px) { 204 .member-profile-tabs > ul, .member-profile-tabs .tabs-container { 205 top: 50px; 206 } 207 } 208 .header ul.nav.navbar-nav li ul { 209 background-color: rgb(255, 255, 255); 210 } 211 .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span { 212 color: rgb(24, 46, 69); 213 font-weight: 400; 214 } 215 .header .navbar-default, .pagination > .active > a { 216 background-color: rgb(0, 45, 98); 217 } 218 .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{ 219 border-left-color: rgb(24, 46, 69); 220 background: rgb(24, 46, 69); 221 color: rgb(255, 255, 255); 222 }
223 .navbar-default .navbar-toggle .icon-bar { 224 background-color: rgb(255, 255, 255); 225 } 226 .user_sidebar, .main_menu, .compact-mobile-search { 227 color: rgb(255, 255, 255); 228 } 229 .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span { 230 color: rgb(255, 255, 255); 231 font-weight: 400; 232 } 233 .navbar-default .navbar-nav > li:hover > a,.navbar-default .navbar-nav > li > a:hover,.navbar-default .navbar-nav > li > a:active, .navbar-default .navbar-nav > li > a:focus { 234 color: rgb(250, 250, 250); 235 } 236 .navbar-default .navbar-nav > li { 237 font-family: 'Ubuntu'; 238 } 239 240 #website_logo .logo-image { 241 max-width: 320px; 242 } 243 244 245 /* Footer Design */ 246 .footer { 247 background-color: rgb(0, 45, 98); 248 display: block; 249 } 250 .footer, .footer_menu a,.footer_terms a,.footer_menu .content { 251 color: rgb(239, 239, 239); 252 } 253 .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus { 254 color: rgb(255, 255, 255); 255 } 256 .footer_menu .head { 257 color: rgb(255, 255, 255); 258 } 259 .btn_footer_get_listed { 260 background-color: rgb(255, 186, 8); 261 border: 1px solid rgb(255, 186, 8); 262 color: rgb(255, 255, 255)!important; 263 } 264 .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{ 265 background-color: rgba(255, 186, 8,0.95); 266 } 267 268 /* Homepage Design */ 269 #first_container,.vegas-wrapper { 270 box-shadow:inset 0 0 0 6000px rgba(0, 0, 0,.6); 271 } 272 .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 { 273 font-family: 'Ubuntu'; 274 } 275 .homepage_settings h1, .homepage_map h1 { 276 color: rgb(255, 255, 255); 277 font-weight: 300; 278 text-align: left; 279 } 280 .homepage_settings h2, .homepage_map h2 { 281 color: rgb(255, 255, 255); 282 font-weight: 400; 283 text-align: left; 284 285 } 286 .homepage_settings .search_box label { 287 color: rgb(255, 255, 255); 288 } 289 .btn_home_search, .search_box input[type=submit] { 290 background-color: rgb(255, 186, 8); 291 border: 1px solid rgb(255, 186, 8); 292 color: rgb(255, 255, 255); 293 } 294 .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus { 295 background-color: rgba(255, 186, 8,0.97); 296 color: rgb(255, 255, 255); 297 } 298 .homepage_settings .search_box { 299 300 background-color: rgba( 32, 80, 129, 0.5); 301 } 302 303 /* Homepage Steps Module */ 304 .homepage_steps { 305 background: none; 306 box-shadow: none; 307 padding: 0; 308 color: rgb(0, 45, 98); 309 } 310 .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{ 311 color: rgb(0, 45, 98)!important; 312 } 313 .homepage_steps .fa { 314 color: rgb(116, 129, 143); 315 background-color: rgba(116, 129, 143,0.075); 316 } 317 .homepage_steps h2 + p { 318 opacity: .6; 319 } 320 321 /* Blog Posts Slider Settings */ 322 #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 { 323 color: rgb(255, 255, 255); 324 } 325 #myCarousel .list-group-item { 326 background-color: rgba(32, 80, 129,0.9); 327 border-color: rgba(32, 80, 129,0.80); 328 } 329 #myCarousel .carousel-caption { 330 background-color: rgba(32, 80, 129,0.8); 331 } 332 #myCarousel .list-group, #myCarousel .carousel-inner { 333 background-color: rgb(32, 80, 129) } 334 #myCarousel .list-group .active, #myCarousel .list-group-item:hover { 335 background-color: rgb(32, 80, 129) } 336 #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{ 337 color: rgb(250, 250, 250); 338 } 339 340 /* Additional Settings */ 341 .well blockquote { 342 background: rgb(245, 247, 250) none repeat scroll 0 0; 343 border-color: rgb(255, 255, 255); 344 color: rgb(41, 41, 41); 345 padding: 10px 20px; 346 } 347 .account-form-box form table tr td table { 348 background-color: transparent!important; 349 border: none!important; 350 } 351 352 .account-form-box form table tr td table td { 353 background-color: transparent!important; 354 color: rgb(41, 41, 41)!important; 355 border: none!important; 356 } 357 div.dataTables_length label, div.dataTables_filter label, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{ 358 color: rgb(41, 41, 41)!important; 359 } 360 .table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td { 361 border-color: rgba(85, 85, 85,0.1); 362 background-color: rgb(238, 238, 238); 363 color: rgb(85, 85, 85);
364 font-weight:600; 365 border-left: none; 366 border-bottom-width: 1px; 367 } 368 .table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer { 369 border-color: rgba(85, 85, 85,0.1); 370 } 371 .table > tfoot > tr > td:not(:last-child) { 372 border-right: 1px solid rgba(85, 85, 85,0.1); 373 } 374 table.dataTable.no-footer, table.dataTable { 375 border: 1px solid rgb(255, 255, 255)!important; 376 } 377 .table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div { 378 border-top:1px solid rgb(255, 255, 255); 379 } 380 .table-view .table-view-group:last-child { 381 border-bottom:1px solid rgb(255, 255, 255); 382 } 383 table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped { 384 background-color: rgb(255, 255, 255)!important; 385 } 386 .table-striped.dataTable, .table-striped, .fr-view .table-striped { 387 border: 1px solid rgba(85, 85, 85,0.15); 388 border-collapse: separate; 389 overflow: hidden; 390 } 391 table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 392 overflow: visible; 393 } 394 .table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) { 395 background-color: rgba(245, 247, 250,0.5)!important; 396 } 397 .nav-tabs, hr, .account-menu-title, .modal-header { 398 border-color: rgb(255, 255, 255); 399 } 400 .sidemenu_panel .list-group-item{ 401 background-color: transparent!important; 402 color: rgb(41, 41, 41)!important; 403 } 404 .img-thumbnail { 405 background-color: rgb(255, 255, 255)!important; 406 border: 1px solid rgb(255, 255, 255); 407 } 408 .member_admin_sidemenu p, .member_admin_sidemenu h3 { 409 color: rgb(41, 41, 41)!important; 410 } 411 .close { 412 color: rgb(41, 41, 41); 413 opacity: 1; 414 } 415 .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 { 416 font-size:34px; 417 display: block; 418 } 419 .member_results_header h2, .feature_results_header h2 { 420 font-size:28px; 421 display: block; 422 } 423 .homepage_settings { 424 padding-top: 130px; 425 padding-bottom: 180px; 426 } 427 @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 428 @media only screen and (max-width: 768px) { 429 .member-profile-header .favorite {float:none} 430 } 431 432 433 @media only screen and (max-width: 1100px) { 434 } 435 .views > i.fa.activeView, .views > i.fa:hover { 436 background-color: rgb(41, 41, 41); 437 color: rgb(245, 247, 250); 438 } 439 .views > i.fa { 440 background-color: rgba(41, 41, 41,0.1); 441 color: rgb(41, 41, 41); 442 } 443 .ui-rangeSlider-label { 444 background-color: rgb(0, 45, 98)!important; 445 color: rgb(255, 255, 255)!important; 446 } 447 .pricing_menu li .title { 448 background: rgb(32, 80, 129); 449 color: rgb(255, 255, 255); 450 } 451 p.account-tip{ 452 color: rgb(41, 41, 41); 453 } 454 .circled_number { 455 background: rgb(32, 80, 129); 456 color: rgb(255, 255, 255); 457 } 458 .pic { 459 background-color: rgba(24, 46, 69,0.8); 460 color: rgb(255, 255, 255); 461 background-repeat: no-repeat; 462 background-position: center; 463 } 464 .pic .pic-caption { 465 background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(24, 46, 69,0.85) 50%); 466 color: rgb(255, 255, 255); 467 } 468 .slick-prev-fa i, .slick-next-fa i{ 469 color: rgb(24, 46, 69); 470 } 471 .module, .well, .tab-content, .nav-tabs>li.active>a, .nav-tabs>li.active>a:focus, .nav-tabs>li.active>a:hover, .nav-tabs>li>a:focus, .nav-tabs>li>a:hover, .nav-tabs.nav-justified>li.active>a, .nav-tabs.nav-justified>li.active>a:focus, .nav-tabs.nav-justified>li.active>a:hover, .nav-tab.nav-justified>li>a:focus, .nav-tabs.nav-justified>li>a:hover, .account-form-box,.account-form-box .module .module,.account-form-box .module .well,.account-form-box .well .well,.account-form-box .well .module,.module .module .module,.module .well .well,.module .module .well,.module .well .module,.well .well .well,.well .module .module,.well .well .module,.well .module .well, .froala-table.module, .froala-table td.module { 472 background-color: rgb(255, 255, 255); 473 border-color: rgb(255, 255, 255); 474 color: rgb(41, 41, 41); 475 } 476 .nav-pills > li.active a, .nav-pills > li > a:hover { 477 background-color: rgb(255, 186, 8)!important; 478 border-color: rgb(255, 186, 8)!important; 479 color: rgb(255, 255, 255)!important; 480 } 481 .sidemenu_panel .panel-heading { 482 color: rgb(41, 41, 41)!important; 483 background-color: rgb(255, 255, 255)!important; 484 } 485 .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a { 486 background: rgba(255, 255, 255,0.5); 487 color: #5f5f5f; 488 } 489 .member-profile-tabs .nav-tabs > li:not(.active) > a:hover, .login-register-tabs.nav-tabs > li:not(.active) > a:hover, .nav-tabs > li:not(.active) > a:hover { 490 background: rgba(255, 255, 255,1); 491 color: rgb(41, 41, 41); 492 }
493 .author-snapshot .well:not(.well.bg-default) { 494 background-color: rgb(255, 255, 255)!important; 495 border-color: rgb(255, 255, 255)!important; 496 color: rgb(41, 41, 41)!important; 497 } 498 .nav-tabs>li>a, .nav-pills>li>a { 499 font-weight: 600; 500 } 501 .module .help-inline,.module .help-block,.well .help-inline,.well .help-block,.account-form-box .help-inline,.account-form-box .help-block,.account-form-box p.account-tip{ 502 color: rgba(41, 41, 41,0.5); 503 } 504 #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a { 505 color: rgb(41, 41, 41) !important; 506 } 507 .popover { 508 background-color: rgb(255, 255, 255); 509 border-color: rgb(255, 255, 255); 510 padding:0; 511 text-align:left; 512 } 513 .popover-title, .popover-content { 514 background-color: rgb(255, 255, 255); 515 color: rgb(41, 41, 41); 516 border-color: rgb(255, 255, 255); 517 text-align:left; 518 } 519 .popover-content { 520 background-color: rgba(41, 41, 41,.05); 521 border-radius: 4px; 522 transform: translate(-1px, -1px); 523 width: calc(100% + 2px); 524 margin-bottom: -2px; 525 } 526 .popover.left > .arrow::after { 527 border-left-color: rgb(255, 255, 255)!important; 528 } 529 .popover.right > .arrow::after { 530 border-right-color: rgb(255, 255, 255)!important; 531 } 532 .popover.bottom > .arrow::after { 533 border-bottom-color: rgb(255, 255, 255)!important; 534 } 535 .popover.top > .arrow::after { 536 border-top-color: rgb(255, 255, 255)!important; 537 } 538 .progress, .table-view .table-view-group:nth-child(2n-1),.tab-content .well, .tab-content .module,#account-tabs .well,#account-tabs .module,.account-form-box .module,.account-form-box .well,.module .module,.well .well,.module .well,.well .module{ 539 background-color: rgb(245, 247, 250); 540 color: rgb(41, 41, 41); 541 } 542 .module h1, .module h2, .module h3, .module h4, .module h5 { 543 color: rgb(62, 62, 62); 544 } 545 .module p:not(.fr-box.fr-basic .fr-element p) { 546 color: rgb(41, 41, 41); 547 } 548 .pagination>.active>a { 549 border-color: rgba(255, 255, 255,0.2); 550 } 551 .pagination>.active>a { 552 color: rgb(255, 255, 255); 553 } 554 .pagination > .active > a:hover, .pagination > .active > a:focus { 555 border-color: rgba(255, 255, 255,0.2); 556 background-color: rgb(0, 45, 98); 557 color: rgb(255, 255, 255); 558 } 559 .pagination > li > a { 560 color: rgb(0, 45, 98); 561 border-color: rgba(0, 45, 98,0.2); 562 background-color: rgb(255, 255, 255); 563 } 564 .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover { 565 background-color: rgb(0, 45, 98); 566 border-color: rgb(0, 45, 98); 567 color: rgb(255, 255, 255); 568 } 569 570 .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{ 571 background-color: rgb(238, 238, 238)!important; 572 color: rgb(85, 85, 85)!important; 573 } 574 .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover { 575 background-color: rgb(240, 173, 78)!important; 576 border-color: rgb(240, 173, 78); 577 color: rgb(255, 255, 255); 578 } 579 .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a { 580 background-color: rgb(51, 122, 183)!important; 581 color: rgb(255, 255, 255)!important; 582 } 583 .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover { 584 background-color: rgb(0, 45, 98)!important; 585 border-color: rgb(0, 45, 98); 586 color: rgb(255, 255, 255); 587 } 588 589 .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow { 590 border-color: transparent transparent transparent rgb(51, 122, 183)!important; 591 } 592 .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{ 593 border-color: rgb(51, 122, 183) rgb(51, 122, 183) rgb(51, 122, 183) transparent!important; 594 } 595 596 li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge { 597 border-color: rgb(30, 166, 154) rgb(30, 166, 154) rgb(30, 166, 154) transparent!important; 598 } 599 600 li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge { 601 border-color: rgb(238, 238, 238) rgb(238, 238, 238) rgb(238, 238, 238) transparent!important; 602 } 603 604 .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover { 605 background-color: rgb(30, 166, 154)!important; 606 color: rgb(255, 255, 255)!important; 607 } 608 609 .member_wizard2 li { 610 color: rgb(255, 255, 255); 611 border-right: 10px solid rgb(245, 247, 250); 612 } 613 614 li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow { 615 border-color: transparent transparent transparent rgb(30, 166, 154)!important; 616 } 617 618 li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{ 619 border-color: transparent transparent transparent rgb(238, 238, 238)!important; 620 } 621 622 /* Default Colors */ 623 .btn-primary, .btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover, .btn.dropdown-toggle.btn-primary,.navbar-default .navbar-nav > li > a.btn-primary, .navbar-default .navbar-nav > li > span.btn-primary,.mobile-main-menu .sidebar-nav li a.btn-primary, .mobile-main-menu .sidebar-nav li span.btn-primary { 624 background-color: rgb(255, 186, 8); 625 border-color: rgb(255, 186, 8); 626 color: rgb(255, 255, 255); 627 } 628 .btn-primary:hover, .btn-primary:focus, .btn-primary:active,.btn-primary:active:focus, .btn-primary:active:hover, .nav > li > a.btn-primary:focus, .nav > li > a.btn-primary:hover,.btn-primary.active,.open > .dropdown-toggle.btn-primary, .btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .open>.dropdown-toggle.btn-primary:hover, .open>.dropdown-toggle.btn-primary:focus, .open>.dropdown-toggle.btn-primary.focus,a.bg-primary:focus,a.bg-primary:hover, .panel-primary .panel-heading, .btn.dropdown-toggle.btn-primary:hover,.upload-form-field,.upload-form-field:hover,.upload-form-field:active:focus,.upload-form-field:before, .label-primary[href]:focus, .label-primary[href]:hover { 629 background-color: rgba(255, 186, 8,0.95); 630 border-color: rgb(255, 186, 8); 631 color: rgb(255, 255, 255); 632 } 633 .panel-primary { 634 background-color: #fff5da; 635 border-color: rgb(255, 186, 8); 636 } 637 .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .
637well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary { 638 background-color: rgb(255, 186, 8); 639 color: rgb(255, 255, 255); 640 } 641 .bg-primary .badge { 642 background-color:rgb(255, 255, 255); 643 color: rgb(255, 186, 8); 644 } 645 .btn-primary.btn-outline { 646 background: transparent; 647 color: rgb(255, 186, 8); 648 transition: all 250ms ease-in-out 0ms; 649 } 650 .btn-primary.btn-outline:hover { 651 background: rgba(255, 186, 8,0.1); 652 color: rgb(255, 186, 8); 653 } 654 .alert-primary { 655 background-color:rgba(255, 186, 8,0.7); 656 border-color:rgba(255, 186, 8,0.2); 657 color: rgba(255, 255, 255,0.9); 658 } 659 .alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle { 660 background-color: #fff1ce; 661 border-color: #fff1ce; 662 color: rgb(255, 186, 8); 663 color: color-mix(in srgb, rgb(255, 186, 8) 50%, rgb(41, 41, 41) 50%); 664 } 665 .btn.dropdown-toggle.btn-primary *, .btn-primary a { 666 color: rgb(255, 255, 255); 667 } 668 .text-primary{ 669 color: rgb(255, 186, 8); 670 } 671 .btn-info, .btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled].active, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover, .btn.dropdown-toggle.btn-info,.navbar-default .navbar-nav > li > a.btn-info, .navbar-default .navbar-nav > li > span.btn-info,.mobile-main-menu .sidebar-nav li a.btn-info, .mobile-main-menu .sidebar-nav li span.btn-info { 672 background-color: rgb(32, 80, 129); 673 border-color: rgb(32, 80, 129); 674 color: rgb(255, 255, 255); 675 } 676 .btn-info:hover, .btn-info:focus, .btn-info:active,.btn-info:active:focus, .btn-info:active:hover, .nav > li > a.btn-info:focus, .nav > li > a.btn-info:hover,.btn-info.active,.open > .dropdown-toggle.btn-info, .btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .open>.dropdown-toggle.btn-info:hover, .open>.dropdown-toggle.btn-info:focus, .open>.dropdown-toggle.btn-info.focus,a.bg-info:focus,a.bg-info:hover, .panel-info .panel-heading, .btn.dropdown-toggle.btn-info:hover, .label-info[href]:focus, .label-info[href]:hover { 677 background-color: rgba(32, 80, 129,0.95); 678 border-color: rgb(32, 80, 129); 679 color: rgb(255, 255, 255); 680 } 681 .panel-info { 682 background-color: #dee5ec; 683 border-color: rgb(32, 80, 129); 684 } 685 .bg-info,.progress-bar-info,.module p.bg-info,.label-info,.badge-info,.pricing_menu .title.bg-info, .well .well.bg-info, .module .well.bg-info, .well .module.bg-info,.tab-content .module.bg-info,.tab-content .well.bg-info { 686 background-color: rgb(32, 80, 129); 687 color: rgb(255, 255, 255); 688 } 689 .bg-info .badge { 690 background-color:rgb(255, 255, 255); 691 color: rgb(32, 80, 129); 692 } 693 .btn-info.btn-outline { 694 background: transparent; 695 color: rgb(32, 80, 129); 696 transition: all 250ms ease-in-out 0ms; 697 } 698 .btn-info.btn-outline:hover { 699 background: rgba(32, 80, 129,0.1); 700 color: rgb(32, 80, 129); 701 } 702 .alert-info { 703 background-color:rgba(32, 80, 129,0.7); 704 border-color:rgba(32, 80, 129,0.2); 705 color: rgba(255, 255, 255,0.9); 706 } 707 .alert-info-subtle, .label-info-subtle, .badge-info-subtle { 708 background-color: #d2dce6; 709 border-color: #d2dce6; 710 color: rgb(32, 80, 129); 711 color: color-mix(in srgb, rgb(32, 80, 129) 50%, rgb(41, 41, 41) 50%); 712 } 713 .btn.dropdown-toggle.btn-info *, .btn-info a { 714 color: rgb(255, 255, 255); 715 } 716 .text-info{ 717 color: rgb(32, 80, 129); 718 } 719 .btn-success, .btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled].active, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover, .btn.dropdown-toggle.btn-success,.navbar-default .navbar-nav > li > a.btn-success, .navbar-default .navbar-nav > li > span.btn-success,.mobile-main-menu .sidebar-nav li a.btn-success, .mobile-main-menu .sidebar-nav li span.btn-success { 720 background-color: rgb(0, 45, 98); 721 border-color: rgb(0, 45, 98); 722 color: rgb(255, 255, 255); 723 } 724 .btn-success:hover, .btn-success:focus, .btn-success:active,.btn-success:active:focus, .btn-success:active:hover, .nav > li > a.btn-success:focus, .nav > li > a.btn-success:hover,.btn-success.active,.open > .dropdown-toggle.btn-success, .btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .open>.dropdown-toggle.btn-success:hover, .open>.dropdown-toggle.btn-success:focus, .open>.dropdown-toggle.btn-success.focus,a.bg-success:focus,a.bg-success:hover, .panel-success .panel-heading, .btn.dropdown-toggle.btn-success:hover, .label-success[href]:focus, .label-success[href]:hover { 725 background-color: rgba(0, 45, 98,0.95); 726 border-color: rgb(0, 45, 98); 727 color: rgb(255, 255, 255); 728 } 729 .panel-success { 730 background-color: #d9e0e7; 731 border-color: rgb(0, 45, 98); 732 } 733 .bg-success,.progress-bar-success,.module p.bg-success,.label-success,.badge-success,.pricing_menu .title.bg-success, .well .well.bg-success, .module .well.bg-success, .well .module.bg-success,.tab-content .module.bg-success,.tab-content .well.bg-success { 734 background-color: rgb(0, 45, 98); 735 color: rgb(255, 255, 255); 736 } 737 .bg-success .badge { 738 background-color: rgb(255, 255, 255); 739 color: rgb(0, 45, 98); 740 } 741 .btn-success.btn-outline { 742 background: transparent; 743 color: rgb(0, 45, 98); 744 transition: all 250ms ease-in-out 0ms; 745 } 746 .btn-success.btn-outline:hover { 747 background: rgba(0, 45, 98,0.1); 748 color: rgb(0, 45, 98); 749 } 750 .alert-success { 751 background-color:rgba(0, 45, 98,0.7); 752 border-color:rgba(0, 45, 98,0.2); 753 color: rgba(255, 255, 255,0.9); 754 } 755 .alert-success-subtle, .label-success-subtle, .badge-success-subtle { 756 background-color: #ccd5e0; 757 border-color: #ccd5e0; 758 color: rgb(0, 45, 98); 759 color: color-mix(in srgb, rgb(0, 45, 98) 50%, rgb(41, 41, 41) 50%); 760 } 761 .btn.dropdown-toggle.btn-success *, .btn-success a { 762 color: rgb(255, 255, 255); 763 } 764 .text-success{ 765 color: rgb(0, 45, 98); 766 } 767 .btn-warning, .btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled].active, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover, .btn.dropdown-toggle.btn-warning,.navbar-default .navbar-nav > li > a.btn-warning, .navbar-default .navbar-nav > li > span.btn-warning,.mobile-main-menu .sidebar-nav li a.btn-warning, .mobile-main-menu .sidebar-nav li span.btn-warning { 768 background-color: rgb(240, 173, 78); 769 border-color: rgb(240, 173, 78); 770 color: rgb(255, 255, 255); 771 } 772 .btn-warning:hover, .btn-warning:focus, .btn-warning:active,.btn-warning:active:focus, .btn-warning:active:hover, .nav > li > a.btn-warning:focus, .nav > li > a.btn-warning:hover,.btn-warning.active,.open > .dropdown-toggle.btn-warning, .btn-warning.active.focus, .btn-warning.active:focus, .btn-warning.active:hover, .btn-warning:active.focus, .open>.dropdown-toggle.btn-warning:hover, .open>.dropdown-toggle.btn-warning:focus, .open>.dropdown-toggle.btn-warning.focus,a.bg-warning:focus,a.bg-warning:hover, .panel-warning .panel-heading, .btn.dropdown-toggle.btn-warning:hover, .label-warning[href]:focus, .label-warning[href]:hover { 773 background-color: rgba(240, 173, 78,0.95); 774 border-color: rgb(240, 173, 78); 775 color: rgb(255, 255, 255); 776 } 777 .panel-warning { 778 background-color: #fdf3e4; 779 border-color: rgb(240, 173, 78); 780 } 781 .bg-warning,.progress-bar-warning,.module p.bg-warning,.label-warning,.badge-warning,.pricing_menu .title.bg-warning, .well .well.bg-warning, .module .well.bg-warning, .well .module.bg-warning,.tab-content .module.bg-warning,.tab-content .well.bg-warning { 782 background-color: rgb(240, 173, 78); 783 color: rgb(255, 255, 255); 784 } 785 .bg-warning .badge { 786 background-color: rgb(255, 255, 255); 787 color: rgb(240, 173, 78); 788 } 789 .btn-warning.btn-outline { 790 background: transparent; 791 color: rgb(240, 173, 78); 792 transition: all 250ms ease-in-out 0ms; 793 } 794 .btn-warning.btn-outline:hover { 795 background: rgba(240, 173, 78,0.1); 796 color: rgb(240, 173, 78); 797 } 798 .alert-warning { 799 background-color:rgba(240, 173, 78,0.7); 800 border-color:rgba(240, 173, 78,0.2); 801 color: rgba(255, 255, 255,0.9); 802 } 803 .alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle { 804 background-color: #fcefdc; 805 border-color: #fcefdc; 806 color: rgb(240, 173, 78); 807 color: color-mix(in srgb, rgb(240, 173, 78) 50%, rgb(41, 41, 41) 50%); 808 } 809 .btn.dropdown-toggle.btn-warning *, .btn-warning a { 810 color: rgb(255, 255, 255); 811 } 812 .text-warning { 813 color: rgb(240, 173, 78); 814 } 815 .btn-danger, .btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled].active, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover, .btn.dropdown-toggle.btn-danger,.navbar-default .navbar-nav > li > a.btn-danger, .navbar-default .navbar-nav > li > span.btn-danger,.mobile-main-menu .sidebar-nav li a.btn-danger, .mobile-main-menu .sidebar-nav li span.btn-danger { 816 background-color: rgb(217, 83, 79); 817 border-color: rgb(217, 83, 79); 818 color: rgb(255, 255, 255); 819 } 820 .btn-danger:hover, .btn-danger:focus, .btn-danger:active,.btn-danger:active:focus, .btn-danger:active:hover, .nav > li > a.btn-danger:focus, .nav > li > a.btn-danger:hover,.btn-danger.active,.open > .dropdown-toggle.btn-danger, .btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .open>.dropdown-toggle.btn-danger:hover, .open>.dropdown-toggle.btn-danger:focus, .open>.dropdown-toggle.btn-danger.focus,a.bg-danger:focus,a.bg-danger:hover, .panel-danger .panel-heading, .btn.dropdown-toggle.btn-danger:hover, .label-danger[href]:focus, .label-danger[href]:hover { 821 background-color: rgba(217, 83, 79,0.95); 822 border-color: rgb(217, 83, 79); 823 color: rgb(255, 255, 255); 824 } 825 .has-error .form-control { 826 border-color: rgb(217, 83, 79); 827 } 828 .has-error .help-block:not(.form-field-help-block), .has-error ~ .help-block:not(.form-field-help-block),.has-error .help-block:not(.form-field-help-block) a, .has-error ~ .help-block:not(.form-field-help-block) a { 829 background: rgb(217, 83, 79); 830 color: rgb(255, 255, 255) !important; 831 } 832 .has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, .has-error.radio-inline label { 833 color: rgb(217, 83, 79); 834 } 835 .panel-danger { 836 background-color: #f9e5e5; 837 border-color: rgb(217, 83, 79); 838 } 839 .bg-danger,.progress-bar-danger,.module p.bg-danger,.label-danger,.badge-danger,.pricing_menu .title.bg-danger, .well .well.bg-danger, .module .well.bg-danger, .well .module.bg-danger,.tab-content .module.bg-danger,.tab-content .well.bg-danger { 840 background-color: rgb(217, 83, 79); 841 color: rgb(255, 255, 255); 842 } 843 .bg-danger .badge { 844 background-color: rgb(255, 255, 255); 845 color: rgb(217, 83, 79); 846 } 847 .btn-danger.btn-outline { 848 background: transparent; 849 color: rgb(217, 83, 79); 850 transition: all 250ms ease-in-out 0ms; 851 } 852 .btn-danger.btn-outline:hover { 853 background: rgba(217, 83, 79,0.1); 854 color: rgb(217, 83, 79); 855 } 856 .alert-danger { 857 background-color:rgba(217, 83, 79,0.7); 858 border-color:rgba(217, 83, 79,0.2); 859 color: rgba(255, 255, 255,0.9); 860 } 861 .alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle { 862 background-color: #f7dddc; 863 border-color: #f7dddc; 864 color: rgb(217, 83, 79); 865 color: color-mix(in srgb, rgb(217, 83, 79) 50%, rgb(41, 41, 41) 50%); 866 } 867 .btn.dropdown-toggle.btn-danger *, .btn-danger a { 868 color: rgb(255, 255, 255); 869 } 870 .text-danger{ 871 color: rgb(217, 83, 79); 872 } 873 .btn-default, .tags a, .btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focu
873s, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover, .btn.dropdown-toggle.btn-default, #popover .mini_profile_pic,.navbar-default .navbar-nav > li > a.btn-default, .navbar-default .navbar-nav > li > span.btn-default,.mobile-main-menu .sidebar-nav li a.btn-default, .mobile-main-menu .sidebar-nav li span.btn-default { 874 background-color: rgb(238, 238, 238); 875 border-color: rgb(238, 238, 238); 876 color: rgb(85, 85, 85); 877 } 878 .btn-default:hover, .btn-default:focus, .btn-default:active,.btn-default:active:focus, .btn-default:active:hover,.tags a:hover, .nav > li > a.btn-default:focus, .nav > li > a.btn-default:hover,.btn-default.active,.open > .dropdown-toggle.btn-default, .btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .open>.dropdown-toggle.btn-default:hover, .open>.dropdown-toggle.btn-default:focus, .open>.dropdown-toggle.btn-default.focus,a.bg-default:focus,a.bg-default:hover, .panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading, .btn.dropdown-toggle.btn-default:hover, #popover .mini_profile_pic, .label-default[href]:focus, .label-default[href]:hover { 879 background-color: rgba(238, 238, 238,0.95); 880 border-color: rgb(238, 238, 238); 881 color: rgb(85, 85, 85); 882 } 883 .sidemenu_panel .panel-default .panel_heading { 884 background-color: rgb(238, 238, 238)!important; 885 border-color: rgb(238, 238, 238)!important; 886 color: rgb(85, 85, 85)!important; 887 } 888 .panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading { 889 890 box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset; 891 background-color: rgb(238, 238, 238); 892 } 893 .panel-default, .member_accounts .panel-default { 894 895 background-color: rgba(238, 238, 238,0.15); 896 border-color: #fdfdfd; 897 border-color: color-mix(in srgb,rgb(238, 238, 238) 100%,rgba(238, 238, 238) 10%); 898 } 899 .member_admin_sidemenu .panel-default { 900 background-color: transparent; 901 } 902 .bg-default,.progress-bar-default,.module p.bg-default,.label-default,.badge-default,.pricing_menu .title.bg-default, .well .well.bg-default, .module .well.bg-default, .well .module.bg-default,.tab-content .module.bg-default,.tab-content .well.bg-default { 903 background-color: rgb(238, 238, 238); 904 color: rgb(85, 85, 85); 905 } 906 .bg-default .badge { 907 background-color: rgb(85, 85, 85); 908 color: rgb(238, 238, 238); 909 } 910 .btn-default.btn-outline { 911 background: transparent; 912 color: rgb(238, 238, 238); 913 transition: all 250ms ease-in-out 0ms; 914 } 915 .btn-default.btn-outline:hover { 916 background: rgba(238, 238, 238,0.1); 917 color: rgb(238, 238, 238); 918 } 919 .alert-default { 920 background-color:rgb(238, 238, 238); 921 border-color:rgb(238, 238, 238); 922 color: rgb(85, 85, 85); 923 } 924 .alert-default-subtle, .label-default-subtle, .badge-default-subtle { 925 background-color:rgba(238, 238, 238,0.5); 926 border-color: rgba(238, 238, 238,0.5); 927 color: rgb(85, 85, 85); 928 color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(41, 41, 41) 50%); 929 } 930 .btn.dropdown-toggle.btn-default *, .btn-default a { 931 color: rgb(85, 85, 85); 932 } 933 .text-default{ 934 color: rgb(238, 238, 238); 935 } 936 .btn-secondary, .btn.dropdown-toggle.btn-secondary,.navbar-default .navbar-nav > li > a.btn-secondary, .navbar-default .navbar-nav > li > span.btn-secondary,.mobile-main-menu .sidebar-nav li a.btn-secondary, .mobile-main-menu .sidebar-nav li span.btn-secondary { 937 background-color: rgb(41, 41, 41); 938 border: 1px solid rgb(41, 41, 41); 939 color: rgb(245, 247, 250); 940 } 941 .btn-secondary:hover, .btn-secondary:focus, .btn-secondary:active,.btn-secondary:active:focus, .btn-secondary:active:hover, .nav > li > a.btn-secondary:focus, .nav > li > a.btn-secondary:hover,.btn-secondary.active,.open > .dropdown-toggle.btn-secondary, .btn-secondary.active.focus, .btn-secondary.active:focus, .btn-secondary.active:hover, .btn-secondary:active.focus, .open>.dropdown-toggle.btn-secondary:hover, .open>.dropdown-toggle.btn-secondary:focus, .open>.dropdown-toggle.btn-secondary.focus,a.bg-secondary:focus,a.bg-secondary:hover,.btn.dropdown-toggle.btn-secondary:hover, .panel-secondary .panel-heading, .label-secondary[href]:focus, .label-secondary[href]:hover { 942 background-color: rgba(41, 41, 41,0.95); 943 border-color: rgb(41, 41, 41); 944 color: rgb(245, 247, 250); 945 } 946 .bg-secondary,.progress-bar-secondary,.module p.bg-secondary,.module p.bg-secondary:not(.fr-box.fr-basic .fr-element p),.label-secondary,.badge-secondary,.pricing_menu .title.bg-secondary, .well .well.bg-secondary, .module .well.bg-secondary, .well .module.bg-secondary,.tab-content .module.bg-secondary,.tab-content .well.bg-secondary { 947 background-color: rgb(41, 41, 41); 948 color: rgb(245, 247, 250); 949 } 950 .bg-secondary .badge { 951 background-color:rgb(245, 247, 250); 952 color: rgb(41, 41, 41); 953 } 954 .btn-secondary.btn-outline { 955 background: transparent; 956 color: rgb(41, 41, 41); 957 transition: all 250ms ease-in-out 0ms; 958 } 959 .btn-secondary.btn-outline:hover { 960 background: rgba(41, 41, 41,0.1); 961 color: rgb(41, 41, 41); 962 } 963 .panel-secondary { 964 background-color: #dfdfdf; 965 border-color: rgb(41, 41, 41); 966 } 967 .alert-secondary { 968 background-color:rgb(41, 41, 41); 969 border-color:rgb(41, 41, 41); 970 color: rgb(245, 247, 250); 971 } 972 .alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle { 973 background-color:rgba(41, 41, 41,0.8); 974 border-color: rgba(41, 41, 41,0.5); 975 color: rgb(245, 247, 250); 976 } 977 .btn-outline { 978 -webkit-backdrop-filter: blur(5px); 979 backdrop-filter: blur(5px); 980 } 981 .btn-body, .btn-body.disabled, .btn-body.disabled.active, .btn-body.disabled.focus, .btn-body.disabled:active, .btn-body.disabled:focus, .btn-body.disabled:hover, .btn-body[disabled], .btn-body[disabled].active, .btn-body[disabled].focus, .btn-body[disabled]:active, .btn-body[disabled]:focus, .btn-body[disabled]:hover, fieldset[disabled] .btn-body, fieldset[disabled] .btn-body.active, fieldset[disabled] .btn-body.focus, fieldset[disabled] .btn-body:active, fieldset[disabled] .btn-body:focus, fieldset[disabled] .btn-body:hover, .btn.dropdown-toggle.btn-body,.navbar-default .navbar-nav > li > a.btn-body, .navbar-default .navbar-nav > li > span.btn-body,.mobile-main-menu .sidebar-nav li a.btn-body, .mobile-main-menu .sidebar-nav li span.btn-body { 982 background-color: rgb(245, 247, 250); 983 border: 1px solid rgb(245, 247, 250); 984 color: rgb(41, 41, 41); 985 } 986 .btn-body:hover, .btn-body:focus, .btn-body:active,.btn-body:active:focus, .btn-body:active:hover, .nav > li > a.btn-body:focus, .nav > li > a.btn-body:hover,.btn-body.active,.open > .dropdown-toggle.btn-body, .btn-body.active.focus, .btn-body.active:focus, .btn-body.active:hover, .btn-body:active.focus, .open>.dropdown-toggle.btn-body:hover, .open>.dropdown-toggle.btn-body:focus, .open>.dropdown-toggle.btn-body.focus,a.bg-body:focus,a.bg-body:hover, .panel-body .panel-heading, .btn.dropdown-toggle.btn-body:hover, .label-body[href]:focus, .label-body[href]:hover { 987 background-color: rgba(245, 247, 250,0.95); 988 border: 1px solid rgb(245, 247, 250); 989 color: rgb(41, 41, 41); 990 } 991 .btn.btn-body.dropdown-toggle * { 992 color: rgb(41, 41, 41) 993 } 994 .btn-body.dropdown-toggle + ul li, .daterangepicker .ranges { 995 color: #333; 996 } 997 .bg-body { 998 background: rgb(245, 247, 250); 999 color: rgb(41, 41, 41); 1000 } 1001 .bg-content-box { 1002 background: rgb(255, 255, 255); 1003 color: rgb(41, 41, 41); 1004 } 1005 .bg-content-box-border { 1006 background: rgb(255, 255, 255); 1007 } 1008 .btn.dropdown-toggle.btn-secondary *, .btn-secondary a { 1009 color: rgb(245, 247, 250); 1010 } 1011 .text-secondary { 1012 color: rgb(41, 41, 41); 1013 } 1014 .text-body { 1015 color: rgb(245, 247, 250); 1016 } 1017 .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section .alert-secondary { 1018 border-radius: 10px; 1019 background-color: rgba(41, 41, 41,0.2); 1020 } 1021 1022 /* Footer Newsletter Row */ 1023 .newsletter_row .alert { 1024 color: rgb(255, 255, 255); 1025 } 1026 .newsletter_row { 1027 background-color: rgb(32, 80, 129); 1028 color: rgb(255, 255, 255); 1029 } 1030 .newsletter_row input[type="submit"],.newsletter_footer_button { 1031 background-color: rgba(30, 166, 154,0.97); 1032 color: rgb(255, 255, 255); 1033 border-color: rgb(30, 166, 154); 1034 } 1035 .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus { 1036 background-color: rgb(30, 166, 154); 1037 color: rgb(255, 255, 255); 1038 } 1039 .newsletter_button_left { 1040 border-right: 1px solid rgba(255, 255, 255,0.2); 1041 } 1042 .newsletter_button_right { 1043 border-left: 1px solid rgba(255, 255, 255,0.2); 1044 } 1045 .newsletter_row small.help-block { 1046 background: rgb(255, 255, 255); 1047 margin-top: -5px; 1048 float: left; 1049 padding: 8px; 1050 border-radius: 1px; 1051 color: rgb(32, 80, 129); 1052 text-transform: capitalize; 1053 } 1054 .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{ 1055 color: rgb(255, 255, 255); 1056 } 1057 @media only screen and (max-width: 767px) { 1058 .newsletter_button_right,.newsletter_button_left{ 1059 border: none; 1060 margin: 5px 0; 1061 } 1062 } 1063 1064 /* Font Sizes */ 1065 1066 .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span { 1067 font-size: 16px; 1068 } 1069 .header .logo { 1070 font-size: 34px; 1071 } 1072 .homepage_title h1, .homepage_settings h1 { 1073 letter-spacing: -1px; 1074 font-size: 60px; 1075 margin-bottom: 20px; 1076 } 1077 @media only screen and (max-width: 768px) { 1078 .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;} 1079 } 1080 .homepage_settings h2 { 1081 font-size: 28px; 1082 } 1083 1084 .ui-rangeSlider-bar{ 1085 background: rgb(255, 186, 8)!important; 1086 } 1087 1088 1089 1090 @media only screen and (max-width: 1024px){ 1091 .modal {margin-top: 40px;} 1092 } 1093 @media only screen and (max-width: 768px){ 1094 .modal {margin-top: 60px;} 1095 } 1096 1097 /* Calendar Styles */ 1098 1099 #cal-slide-content { 1100 color: rgb(85, 85, 85)!important; 1101 background-color: rgb(238, 238, 238)!important; 1102 -webkit-box-shadow: none!important; 1103 box-shadow: none!important; 1104 } 1105 #cal-slide-content a.event-item { 1106 color: rgb(85, 85, 85)!important; 1107 font-weight:bold!important; 1108 } 1109 #cal-slide-content a.event-item small { 1110 display: inline-block; 1111 } 1112 .cal-month-box, .cal-year-box, .cal-week-box { 1113 border: 1px solid rgb(255, 255, 255)!important; 1114 } 1115 .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid { 1116 border-bottom: 1px solid rgb(255, 255, 255)!important; 1117 } 1118 .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] { 1119 border-right: 1px solid rgb(255, 255, 255)!important; 1120 } 1121 .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) { 1122 background-color: rgb(245, 247, 250)!important; 1123 } 1124 .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) { 1125 color: rgb(85, 85, 85)!important; 1126 } 1127 .cal-day-today span[data-cal-date] { 1128 color: rgb(41, 41, 41)!important; 1129 } 1130 .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child { 1131 border: 0!important; 1132 } 1133 .cal-row-head { 1134 background: rgb(255, 255, 255)!important; 1135 } 1136 .day-highlight:hover, .day-highlight { 1137 background-color: rgb(255, 255, 255)!important; 1138 } 1139 .cal-event-list .event.pull-left { 1140 background-color: rgb(41, 41, 41)!important; 1141 opacity: 0.4; 1142 margin-top: 7px!important; 1143 } 1144 .cal-day-today { 1145 background-color: rgb(255, 255, 255)!important; 1146 } 1147 #cal-day-tick { 1148 border: 1px solid rgb(255, 255, 255)!important; 1149 background-color: rgb(255, 255, 255)!important; 1150 } 1151 .cal-day-weekend span[data-cal-date]{
1152 color: rgb(41, 41, 41)!important; 1153 } 1154 .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs { 1155 border-radius: 10px; 1156 background: #151515!important; 1157 } 1158 .img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary .rsDefault .rsOverflow { 1159 border-radius:0; 1160 } 1161 1162 #first_container .favorite, #first_container .fa.favorite { 1163 color: rgb(85, 85, 85); 1164 background: rgb(238, 238, 238); 1165 border: 1px solid rgb(238, 238, 238); 1166 white-space:nowrap!important; 1167 height:24px; 1168 padding:0 6px; 1169 border-radius:8px; 1170 } 1171 #first_container .favorite span, #first_container .fa.favorite span { 1172 font-family: 'Nunito'; 1173 white-space:nowrap!important; 1174 } 1175 #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) { 1176 color: rgb(217, 83, 79); 1177 } 1178 #first_container .favorite::after, #first_container .fa.favorite::after { 1179 font-family: 'Nunito'; 1180 margin-left: 3px; 1181 } 1182 #first_container .favorite span, #first_container .fa.favorite span{ 1183 padding-left: 4px; 1184 font-family: 'Nunito'; 1185 font-size: 11px; 1186 letter-spacing:.5px; 1187 top:-1px; 1188 position:relative; 1189 font-weight:700; 1190 } 1191 #first_container .favorite span:empty, #first_container .fa.favorite span:empty { 1192 padding: 0; 1193 } 1194 #first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number { 1195 padding: 1px 0; 1196 border-radius: 100px; 1197 display: inline-block; 1198 font-weight: bold; 1199 min-width: 15px; 1200 font-size: .8em; 1201 vertical-align: bottom; 1202 height: 15px; 1203 line-height: 13px; 1204 margin-left: 3px; 1205 text-align: center; 1206 } 1207 #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number { 1208 background: rgb(217, 83, 79); 1209 color: #fff; 1210 } 1211 1212 span.checkbox_value::after { 1213 content: ', '; 1214 } 1215 1216 span.checkbox_value:last-child::after { 1217 content: ''; 1218 } 1219 #first_container .member-profile-tabs .profile-tabs-nav { 1220 overflow-x: auto; 1221 overflow-y: hidden; 1222 display: flex; 1223 flex-direction: row 1224 } 1225 1226 #first_container .member-profile-tabs .profile-tabs-nav > li * { 1227 white-space: nowrap !important 1228 } 1229 1230 .member-profile-tabs .profile-tabs-nav::-webkit-scrollbar { 1231 display: none 1232 } 1233 1234 .member-profile-tabs .profile-tabs-nav { 1235 scrollbar-width: none 1236 } 1237 1238 .member-profile-tabs .tabs-container { 1239 display: flex; 1240 align-items: center; 1241 border-radius:8px 8px 0 0; 1242 } 1243 .member-profile-tabs .tabs-container > ul { 1244 border: none; 1245 } 1246 .member-profile-tabs .scroll-arrow { 1247 display: none; 1248 cursor: pointer; 1249 z-index: 2; 1250 padding: 0 15px; 1251 background-color: rgb(238, 238, 238); 1252 color: rgb(85, 85, 85); 1253 height: 41px; 1254 line-height: 42px; 1255 margin-top: 2px; 1256 margin-left: 5px; 1257 border-radius:4px; 1258 } 1259 1260 .member-profile-tabs .scroll-arrow.left-arrow { 1261 margin-right: -6px; 1262 } 1263 1264 .member-profile-tabs .scroll-arrow.right-arrow { 1265 margin-left: -10px; 1266 margin-right: 5px; 1267 } 1268 1269 .member_results .grid_element{ 1270 position:relative; 1271 overflow:hidden; 1272 display: inline-block; 1273 width:100%; 1274} 1275.member_results .grid_element::before { 1276 position: absolute; 1277 top: 24px; 1278 text-align: center; 1279 width: 200px; 1280 left: -62px; 1281 transform: rotate(-45deg); 1282 -webkit-transform: rotate(-45deg); 1283 z-index: 1; 1284 line-height: 1.2em; 1285 padding: 6px 0; 1286 font-weight: bold; 1287 letter-spacing: 1px; 1288} 1289@media only screen and (max-width: 767px) { 1290 .member_results .grid-container > hr { 1291 border-color: transparent; 1292 } 1293 .member_results .grid_element{ 1294 overflow:visible; 1295 } 1296 .member_results .grid_element::before { 1297 top: -19px!important; 1298 transform: rotate(0deg); 1299 -webkit-transform: rotate(0deg); 1300 font-size: 10px !important; 1301 letter-spacing: 0; 1302 width: auto; 1303 padding: 3px 6px; 1304 } 1305} 1306 1307 1308 .popover .popover-content img,.member_results .info_window img,.member_results .search_result_image, .featured-member-image img, .recent-member-image img, .member-review-image img, .member-profile-header > div:not(.member-badges) img, .review_photo, .contact-image, .member_result > div > div img, .member_sidebar .member_admin_sidemenu .img-thumbnail, .current-photo-container img, .current-logo-container img, .author-snapsh
1308ot .search_result_image, .saved-member { 1309 border-radius: 1000px!important; 1310 } 1311 1312 1313 1314 /* Homepage Sections Background Color Logic */ 1315 1316 1317 .homepage-section-1 { 1318 padding: 40px 0 40px; 1319 } 1320 1321 1322 .homepage-section-2 { 1323 padding: 40px 0 40px; 1324 } 1325 1326 1327 .homepage-section-3 { 1328 padding: 40px 0 40px; 1329 } 1330 1331 1332 .homepage-section-3 { 1333 background: rgb(245, 247, 250); 1334 } 1335 1336 1337 .homepage-section-4 { 1338 padding: 40px 0 40px; 1339 } 1340 1341 1342 .homepage-section-5 { 1343 padding: 40px 0 40px; 1344 } 1345 1346 1347 .homepage-section-5 { 1348 background: rgb(32, 80, 129); 1349 } 1350 1351 1352 .homepage-section-6 { 1353 padding: 40px 0 40px; 1354 } 1355 1356 1357 .homepage-section-6 { 1358 background: rgb(245, 247, 250); 1359 } 1360 1361 1362 .homepage-section-7 { 1363 padding: 40px 0 40px; 1364 } 1365 1366 1367 .homepage-section-8 { 1368 padding: 40px 0 40px; 1369 } 1370 1371 1372 .homepage-section-9 { 1373 padding: 40px 0 40px; 1374 } 1375 1376 1377 .homepage-section-10 { 1378 padding: 40px 0 40px; 1379 } 1380 1381 1382 .homepage-section-11 { 1383 padding: 40px 0 40px; 1384 } 1385 1386 1387 .homepage-section-12 { 1388 padding: 40px 0 40px; 1389 } 1390 1391 1392 .homepage-section-13 { 1393 padding: 40px 0 40px; 1394 } 1395 1396 1397 .homepage-section-14 { 1398 padding: 40px 0 40px; 1399 } 1400 1401 1402 .homepage-section-15 { 1403 padding: 40px 0 40px; 1404 } 1405 1406 1407 /* Additional Settings */ 1408 1409 1410 /* Streaming Widgets Title Settings */ 1411 1412 .streaming-title { 1413 text-align: center; 1414 font-size: 48px; 1415 line-height:1.5em; 1416 font-weight: 300; 1417 font-family: 'Ubuntu'; 1418 padding-bottom: 50px; 1419 } 1420 1421 @media only screen and (max-width: 990px) { 1422 .streaming-title { 1423 line-height:1.1em; 1424 } 1425 } 1426 1427 .streaming-title + hr { 1428 display: none; 1429 } 1430 1431 .homepage-join-module .module h2:first-of-type { 1432 color: rgb(62, 62, 62); 1433 } 1434 1435 .homepage-join-module .module{ 1436 background: rgb(250, 250, 250); 1437 border-color: rgb(245, 247, 250); 1438 } 1439 1440 .homepage-about-module .module h2:first-of-type { 1441 color: rgb(62, 62, 62); 1442 } 1443 1444 .homepage-about-module .module{ 1445 background: rgb(250, 250, 250); 1446 border-color: rgb(245, 247, 250); 1447 1448 } 1449 1450 .the-post-description > :is(h2, h3, h4, h5):not(:first-child) { 1451 font-weight: 600; 1452 margin-top: 20px; 1453 } 1454 1455 /* Keep: Ensure ul/ol respect padding and margins */ 1456 .the-post-description > :is(ul, ol) { 1457 display: flow-root; 1458 } 1459 .the-post-description li { 1460 margin-bottom: 8px; 1461 } 1462 1463 .btn:not(#refcode_submit):not(.input-group-btn .btn):not(.logo-preview-input):not(.cover-preview-input):not(.member_login):not(.img-circle):not(.submit_reply):not(.submit_comment):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top):not(.btn-facebook), .btn-sm:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), .btn-xs:not(.img-circle):not(.view-more):not(.image-preview-input):not(.no-radius-bottom):not(.no-radius-top), button:not(.social_share_buttons button):not(.social_share_buttons a):not(#refcode_submit):not(.input-group-btn button), .btn-group-lg > .btn, .btn-lg, .btn-lg, .btn-xl, .input-group-sm > .input-group-btn > .btn, .favorite, .tags a, select#sid.input-lg, select#tid.input-lg, select#ttid.input-lg, select.combobox.input-lg, select#bd-chained.input-lg, select#category-chained.input-lg, select.infinite-chained.input-lg, select.subcategory-chained.input-lg, select.search-chained.input-lg, select#country-chained.input-lg, select#state-chained.input-lg, select#country-chained-2.input-lg, select#state-chained-2.input-lg, select#profession_id.input-lg, [name^="bd_phone_country_code"].input-lg, select.input-lg, select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-ch
1463ained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] { 1464 border-radius: 100px!important; 1465 } 1466 1467 .write_comment_container, .tab-content, .well:not(.well .well):not(.module .well):not(.tab-content .well):not(.well.make-connection):not(.slick-slide .well), .module:not(.module .module):not(.well .module):not(.tab-content .module):not(.search_box .module):not(.posted-by-snippet), .panel, .pic:not(.slick-slide .pic), .member_accounts > .account-form-box { 1468 box-shadow: 0 8px 8px -4px #0000001a,0 4px 4px -4px #0000001a; 1469 } 1470 1471 .img-circle, .img-rounded.img-circle, .img-circle img, .img-rounded.img-circle img, img.fr-dib.img-circle, img.fr-dib.img-rounded.img-circle { 1472 border-radius:1000px!important; 1473 } 1474 1475 .img-rounded img, img.fr-dib.img-rounded{ 1476 border-radius: 10px!important; 1477 } 1478 1479 /* Google Translate Module */ 1480 .skiptranslate{font-size:0} 1481 .goog-te-gadget-simple{border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.075) inset;color:#555} 1482 .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important} 1483 .goog-te-gadget .goog-te-combo{margin-bottom:-4px} 1484 .skiptranslate.goog-te-gadget select{border:1px solid #ddd;border-radius:3px;font-size:12px;padding:2px 4px;width:100%;background:#fff;margin:0;height:30px;line-height:30px;display:block;color:#555;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)} 1485 @media only screen and (max-width: 1100px) { 1486 .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px} 1487 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important} 1488 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px} 1489 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important} 1490 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important} 1491 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px} 1492 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;} 1493 } 1494 @media only screen and (max-width: 767px) { 1495 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important} 1496 } 1497 1498 1499 1500</style> 1501 1502<!--GOOGLE TAG MANAGER CODE--> <!-- ON-PAGE CSS FUNCTIONS --> 1503 <style type="text/css"> 1504 .btn_get_listed { 1505 padding: 8px 12px; 1506} 1507 1508/* Home Page Hero Title Text */ 1509h1.sm-text-center { 1510 display: grid; 1511 grid-template-columns: auto 1fr; 1512 align-items: center; 1513 font-family: Ubuntu, sans-serif; 1514 font-size: 24px; 1515 text-align: left; 1516 margin: 0; 1517 padding-bottom: 40px; 1518 letter-spacing: 1px; 1519} 1520.line1, .line2 { 1521 grid-column: 1; 1522 font-size: 34px; 1523 letter-spacing:0.5px; 1524 padding: 5px 0; 1525 text-align: right; 1526} 1527 1528.trainers { 1529 grid-row: 1 / 3; 1530 grid-column: 2; 1531 font-size: 85px; 1532 font-weight: 400; 1533 padding-left: 15px; 1534} 1535 1536.mobile-text { 1537 display: none; 1538} 1539 1540/* Media query for mobile devices */ 1541@media (max-width: 768px) { 1542 1543 .mobile-text { 1544 display: block; 1545 font-size: 36px; 1546 font-weight: 400; 1547 padding: 10px; 1548 } 1549 1550 .line1, .line2, .trainers { 1551 display: none; 1552 } 1553} 1554 1555.form-group { 1556 margin-bottom: 14px; 1557} 1558 1559/* Grid styling for the checkbox list */ 1560.checkbox-group { 1561 display: grid; 1562 flex-direction: column; 1563 grid-template-columns: repeat(5, 1fr); /* 4 columns by default */ 1564 gap: 2px; 1565} 1566 1567 1568 1569 1570p.location_main { 1571 text-transform: uppercase; 1572 color: #666; 1573 font-size: 14px; 1574 font-weight: bold; 1575} 1576 1577p.location_main:first-of-type { 1578 padding-top: 2px; 1579} 1580 1581.checkbox-group label { 1582 display: block; 1583 font-weight: 400; 1584 margin-bottom: 2px; 1585} 1586 1587/* Optional styling for checkboxes */ 1588input[type="checkbox"] { 1589 margin-right: 2px; 1590} 1591 1592.delivery-locations-helpblock { 1593 padding-bottom: 20px; 1594} 1595 1596/* Media query for mobile: 2 columns on smaller screens */ 1597@media (max-width: 768px) { 1598 .checkbox-group { 1599 grid-template-columns: repeat(2, 1fr); /* 2 columns on mobile */ 1600 } 1601} </style> 1602 <div class="header"> 1603 <div class="container"> 1604 <div class="row header-main-row"> 1605 <style type='text/css'> .logo-text:has(.logo_title:empty) { 1606 display:none 1607} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container"> 1608 <a class="logo logo-image inline-block vpad sm-nopad sm-tmargin" href="https://www.thetrainerdirectory.com" title="The Trainer Directory"> 1609 <img width="320" height="82" src="/images/ttd_logo.png" alt="The Trainer Directory"> 1610 </a> 1611 <div class="clearfix"></div> 1612</div> 1613 <style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query { 1614 background-color: white !important; 1615} 1616.mini-nav:not(:has(li)) { 1617 display: none!important; 1618} 1619/* Parent Container - Main List */ 1620.mini-nav li:has(ul) { 1621 position: relative; 1622 border-radius: 8px 8px 0 0; 1623} 1624.mini-nav > li:has(ul) { 1625 padding-left: 0; 1626 padding-right: 0; 1627 background: rgb(245, 247, 250); 1628} 1629.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span { 1630 padding: 10px 15px; 1631 margin: 0!important; 1632} 1633.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) { 1634 box-shadow: 0 -1px 3px rgba(41, 41, 41,0.25); 1635} 1636/* Parent Links */ 1637.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) { 1638 display:inline-block; 1639 border-radius: 8px 8px 0 0; 1640} 1641.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span { 1642 background: rgb(245, 247, 250); 1643 display: inline-block; 1644 position: relative; 1645 z-index: 1000; 1646} 1647/* First Level Dropdowns */ 1648.mini-nav li ul { 1649 background: rgb(245, 247, 250); 1650 box-shadow: 0 0px 3px rgba(41, 41, 41,0.25), 0 5px 5px 5px rgba(41, 41, 41,0.05); 1651 text-align: left;
1652 display: none; 1653 border-radius: 0 8px 8px 8px; 1654 list-style: none; 1655 padding: 10px; 1656 position: absolute; 1657 white-space: nowrap; 1658 min-width: 130%; 1659 width: auto; 1660 top: 100%; 1661 left: 0; 1662 z-index: 999; 1663 margin-top: -1px; 1664} 1665.mini-nav li:hover > ul { 1666 display: block; 1667} 1668/* First Level Dropdown Items */ 1669.mini-nav li ul li { 1670 position: relative; 1671 display: block; 1672 width: 100%; 1673} 1674.mini-nav li ul li a, .mini-nav li ul li span { 1675 font-size: 14.8px !important; 1676 display: block; 1677 font-weight: 400; 1678 padding: 8px 12px; 1679 border-radius: 8px; 1680 text-decoration: none; 1681 width: 100%; 1682} 1683.mini-nav li ul li a:hover, .mini-nav li ul li span:hover { 1684 box-shadow: 0 0 0 25px rgba(41, 41, 41,0.05) inset; 1685} 1686/* Second Level Dropdowns */ 1687.mini-nav li ul li ul { 1688 display: none; 1689 position: absolute; 1690 top: 0; 1691 left: 100%; 1692 margin: 0; 1693 border-radius: 8px; 1694} 1695.mini-nav li ul li:hover > ul { 1696 display: block; 1697} 1698/* Edge Positioning - Last Child Dropdowns */ 1699.mini-nav > li:last-child ul { 1700 right: 0; 1701 left: auto; 1702 border-radius: 8px 0 8px 8px; 1703} 1704.mini-nav > li:last-child ul li ul { 1705 right: 100%; 1706 left: auto; 1707} 1708/* Flex Spacing Utility */ 1709.mini-nav.mini-nav-flex-spaced { 1710 display: flex; 1711 justify-content: space-between; 1712 align-items: center; 1713 flex-wrap: wrap; 1714 row-gap: 0;
1715} 1716.mini-nav.mini-nav-flex-spaced > li { 1717 flex: none; 1718 padding: 0; 1719 margin: 2px 0; 1720 order: 2; 1721} 1722.mini-nav.mini-nav-flex-spaced > li.header-member-account-links, 1723.mini-nav:has(li ul) > li.header-member-account-links { 1724 order: 1; 1725 margin-left: auto; 1726 width: 100%; 1727 margin-bottom: 10px; 1728} 1729.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li { 1730 line-height: 1em; 1731 min-height: 0; 1732} 1733@media (min-width: 992px) { 1734 .header-main-row { 1735 display: flex; 1736 align-items: center; 1737 flex-wrap: wrap; 1738 } 1739} 1740@media (max-width: 991px) { 1741 .mini-nav.mini-nav-flex-spaced { 1742 justify-content: center; 1743 } 1744 .mini-nav.mini-nav-flex-spaced > li { 1745 margin-left: 5px !important; 1746 margin-right: 5px !important; 1747 } 1748} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad"> 1749 <ul class="mini-nav nobmargin list-inline xs-nopad xs-tmargin tpad"> 1750 <li class='bmargin xs-nomargin'><a href='/about/contact' id='link320' class='hpad bmargin'>Contact Us</a></li><li class='bmargin xs-nomargin'><a href='/login' id='link321' class='rpad bmargin'>Member Login</a></li><li class='bmargin norpad xs-nopad xs-vmargin'><a href='/join' id='link322' class='btn btn_get_listed bold'>Register as a Trainer</a></li> </ul> 1751 <div class="clearfix"></div> 1752 <form action="/search_results" name="frm1" class="form-inline website-search"> 1753 <div class="input-group input-group-sm bmargin sm-autosuggest"> 1754 <span class="input-group-addon"><i class="fa fa-search"></i></span> 1755 <input type="text" 1756 placeholder="Name or Keyword" value="" name="q" 1757 class="member_search form-control input-sm" autocomplete="off"> 1758 </div> 1759 <div class="input-group input-group-sm bmargin"> 1760 <span class="input-group-addon"><i class="fa fa-location-arrow"></i></span> 1761 <input type="text" autocomplete="off" placeholder="City or Post Code" 1762 value="" id="location_google_maps_header" name="location_value" 1763 class="googleSuggest googleLocation form-control"> 1764 </div> 1765 <input type="submit" value="Search" class="btn btn-sm btn_search bmargin xs-btn-block bold"> 1766 </form> 1767 </div> 1768 </div> 1769 </div> 1770 <style type='text/css'> .mobile-main-menu .hasChildren span a { 1771 padding: 0px; 1772} 1773 1774.user_sidebar > img { 1775 width: 32px; 1776 height: 32px; 1777 position: absolute; 1778 z-index: 10; 1779 border-radius: 100px; 1780 top: -1px; 1781 object-fit: cover; 1782 left: -10px; 1783 background: rgb(238, 238, 238); 1784} 1785#member_sidebar_toggle img+.fa { 1786 display: none; 1787} 1788.main_menu, .user_sidebar, .compact-mobile-search { 1789 padding: 5px 8px; 1790 margin-right:0; 1791 min-height: 33.0333px; 1792 min-width: 38.116px; 1793} 1794.main_menu i, .user_sidebar i { 1795 font-size: 16px; 1796} 1797.navbar-nav li { 1798 float: none!Important; 1799} 1800.navbar-default{ 1801 -webkit-transition: all .6s ease-in-out; 1802 -moz-transition: all .6s ease-in-out; 1803 -o-transition: all .6s ease-in-out; 1804 transition: all .6s ease-in-out; 1805} 1806.transparent_menu { 1807 background-color: rgba(0, 45, 98,0.95)!important; 1808} 1809@media only screen and (max-width: 991px) { 1810 #popover {display: none} 1811} 1812@media only screen and (max-width: 1100px){ 1813 .mobile-main-menu{display:block!important} 1814 .navbar-toggle {display: block} 1815 #bs-main_menu .nav {display: none!important} 1816} 1817.mobile-main-menu { 1818 position: fixed; 1819 height: calc(100% - 50px)!important; 1820 width: 250px; 1821 background: rgb(0, 45, 98); 1822 z-index: 99999; 1823 right: -250px; 1824 top: 50px; 1825 display: none; 1826 -webkit-transition: all .6s ease-in-out; 1827 -moz-transition: all .6s ease-in-out; 1828 -o-transition: all .6s ease-in-out; 1829 transition: all .6s ease-in-out; 1830 overflow-y: auto!important; 1831 overflow-x: hidden!important; 1832} 1833.mobile-main-menu ul li i { 1834 color: rgb(255, 255, 255); 1835 cursor: pointer; 1836 float: right; 1837 padding: 13px; 1838} 1839.mobile-main-menu.opened{ 1840 right: 0px!important; 1841} 1842.mobile-main-menu ul li a, .mobile-main-menu ul li span { 1843 display: inline-block; 1844 float: left; 1845 -webkit-touch-callout: none; 1846 -webkit-user-select: none; 1847 -khtml-user-select: none; 1848 -moz-user-select: none; 1849 -ms-user-select: none; 1850 user-select: none; 1851 padding: 10px 0px; 1852 width: 80%; 1853 width: calc(100% - 40px); 1854} 1855.mobile-main-menu .sidebar-nav li ul { 1856 height: 0px; 1857 overflow: hidden; 1858 list-style: none; 1859 color: rgb(255, 255, 255); 1860 padding-left: 10px; 1861} 1862.mobile-main-menu .sidebar-nav li.sub_open > ul{ 1863 height: 100%; 1864} 1865.mobile-main-menu ul.sidebar-nav { 1866 position: absolute; 1867 width: 250px; 1868 margin: 0; 1869 padding: 0; 1870 list-style: none; 1871 font-size: 14px; 1872} 1873.mobile-main-menu .sidebar-nav > li { 1874 display: block; 1875 line-height: 20px; 1876 padding: 0 15px 0 20px; 1877} 1878.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span { 1879 text-decoration: none; 1880 color: rgb(255, 255, 255); 1881 padding-left:10px; 1882} 1883.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i { 1884 display: none; 1885} 1886 1887 </style><div class="mobile-main-menu"> 1888 <ul class="sidebar-nav"> 1889 <li class=''><a href='/home' id='link344'>
1889Home</a></li><li class=''><a href='/about' id='link346'>About</a></li><li class=''><a href='/search_results' id='link345'>Member Directory</a></li><li class=''><a href='/blog' id='link347'>The Trainer Hub</a></li><li class=''><a href='/events' id='link352'>Upcoming Events</a></li><li class=''><a href='/join' id='link348'>Join Today</a></li> </ul> 1890</div> 1891<nav class="navbar navbar-default "> 1892 <div class="container container-fluid"> 1893 1894 <div class="navbar-header"> 1895 <button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu"> 1896 <i class="fa fa-bars fa-fw"></i> 1897 </button> 1898 1899 1900 1901 </div> 1902 1903 1904 <div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu"> 1905 <ul class="tablet-menu-ul nav navbar-nav nav-justified"> 1906 <li class=''><a href='/home' id='link344'>Home</a></li><li class=''><a href='/about' id='link346'>About</a></li><li class=''><a href='/search_results' id='link345'>Member Directory</a></li><li class=''><a href='/blog' id='link347'>The Trainer Hub</a></li><li class=''><a href='/events' id='link352'>Upcoming Events</a></li><li class=''><a href='/join' id='link348'>Join Today</a></li> </ul> 1907 </div> 1908 </div> 1909</nav> 1910<!--CSS IF MENU IS FIXED TOP--> 1911 1912</div> 1913<div class="clearfix"></div> 1914<!-- Begin Content --> 1915<main role="main" id="main-content"> 1916<div id="first_container" class="content-container fr-view"> 1917 <div class="container"> 1918 <div class="clearfix body-content"></div> 1919 <style type='text/css'> .body-content {margin:0px;} 1920 #first_container { 1921 background-image: url('/images/background.jpg'); 1922 background-position: center top; 1923 background-repeat: no-repeat; 1924 position: relative; 1925 background-size: cover; 1926 } 1927 1928 1929.search_box,.homepage_settings .center-block { 1930float: 1931 none!important; 1932} 1933 1934 1935@media only screen and (max-width: 768px) { 1936 #first_container { 1937 background-position: center top; 1938 background-image: url('/images/background.jpg'); 1939 background-position: center top; 1940 } 1941 .homepage_title,.homepage_settings h2,.search_box { 1942 float:none!important; 1943 } 1944 } 1945 1946[class^="homepage-section-"]:empty { 1947 display: none; 1948} 1949.primary-hero-content .search_box, .secondary-hero-content .search_box { 1950 width: 100%; 1951} 1952.homepage_settings:has(.secondary-hero-content) { 1953 display: flex; 1954 align-items: center; 1955 flex-wrap: wrap; 1956} 1957.homepage_settings:has(.secondary-hero-content) > * { 1958 order: 10; 1959} </style> <div class="row-fluid row homepage_settings"> 1960 <div class="col-xs-12 col-sm-12 col-md-10 center-block homepage_title primary-hero-content"> 1961 <style type='text/css'> .search_box h2 { 1962color: rgb(255, 255, 255); 1963display: block; 1964float: none!important; 1965} 1966.search_box{ 1967padding: 30px; 1968} 1969 </style> 1970<div class="col-lg-12 search_box fpad img-rounded center-block text-center hero-message-with-link"> 1971 <h1 class="sm-text-center"> 1972 The place for Trainers, 1973and the place to find Trainers. </h1> 1974 <div class="clearfix"></div> 1975 <div class="clearfix"></div> 1976 <div class="homepage_button_links row vmargin"> 1977 <div class="col-md-6"> 1978 <a href="/join" class="btn btn-warning btn-xl btn-block tmargin"> Register as a Trainer </a> 1979 </div> 1980 <div class="col-md-6"> 1981 <a href="/search_results" class="btn btn-warning btn-xl btn-block tmargin"> Search for a Trainer </a> 1982 </div> 1983 <div class="clearfix"></div> 1984 </div> 1985</div> </div> 1986 <div class="clearfix"></div> 1987 <div class="col-md-12"> 1988 1989 <div class="clearfix"></div> 1990 <div class="clearfix"></div> 1991 <div class="clearfix"></div> 1992 <div class="clearfix"></div> 1993 1994 <div class="clearfix"></div> 1995 </div> 1996 <div class="clearfix"></div> 1997 </div> 1998 <div class="clearfix"></div> 1999 </div></div> <!-- closes container + content-container --> 2000 2001 2002<div class="homepage-sections fr-view"> 2003 <div class="homepage-section-1"><div class="clearfix"></div> 2004<div class="content-container"> 2005 <div class="container"> 2006 <div class="row"> 2007 <div class="col-md-12 homepage_content_3"> 2008 <table style="width: 100%;" class="froala-table"><tbody><tr><td style="width: 33.3333%; vertical-align: top;"><span style="line-height: 2;"><img src="https://www.thetrainerdirectory.com/images/Sign-Up-and-Create-Your-Profile.png" class="fr-dib" loading="lazy" style="width: 200px; height: 200px;" width="300" height="300" data-tag="image" data-url="https://www.thetrainerdirectory.com/images/Sign-Up-and-Create-Your-Profile.png" alt="Sign Up and Create Your Profile"></span><h4><span style="font-family: Ubuntu; line-height: 2;">Sign Up and Create Your Profile</span></h4><p style="line-height: 2;"><span style="line-height: 2;">Simply register to gain your initial three months of free membership, then build a profile that showcases your skills, areas of expertise, and unique qualities as a trainer.</sp
2008an></p></td><td style="width: 33.3333%; vertical-align: top;"><span style="line-height: 2;"><img src="https://www.thetrainerdirectory.com/images/Get-Matched-with-Training-Providers.png" class="fr-dib" loading="lazy" style="width: 200px; height: 200px;" width="300" height="300" data-tag="image" data-url="https://www.thetrainerdirectory.com/images/Get-Matched-with-Training-Providers.png" alt="Get Matched with Training Providers"></span><h4><span style="font-family: Ubuntu; line-height: 2;">Get Matched with Training Providers</span></h4><p style="line-height: 2;"><span style="line-height: 2;">Our directory makes it easy for training companies to find the perfect associate trainers, increasing your chances of getting noticed for exciting new projects.</span></p></td><td style="width: 33.3333%; vertical-align: top;"><span style="line-height: 2;"><img src="https://www.thetrainerdirectory.com/images/Expand-Your-Network-and-Grow.png" class="fr-dib" loading="lazy" style="width: 200px; height: 200px;" width="300" height="300" data-tag="image" data-url="https://www.thetrainerdirectory.com/images/Expand-Your-Network-and-Grow.png" alt="Expand Your Network and Grow"></span><h4><span style="font-family: Ubuntu; line-height: 2;">Expand Your Network and Grow</span></h4><p style="line-height: 2;"><span style="line-height: 2;">Access ongoing opportunities for professional development and connect with other trainers and industry professionals as we grow our community.</span></p></td></tr></tbody></table> <div class="clearfix"></div> 2009 </div> 2010 </div> 2011 </div> 2012</div></div> 2013 <div class="homepage-section-2"><style type='text/css'> .display-recent-members .recent-member { 2014 vertical-align:top; 2015} 2016.recent-member-image { 2017 height:112px; 2018} 2019.recent-member-image img { 2020 max-height:112px; 2021} 2022.recent-member.smaller-image img { 2023 max-height: 100px; 2024} 2025.recent-member-info p { 2026 min-height:75px; 2027} 2028.streaming-recent-member-stars.stars-with-image .the-rating-text{ 2029 display:block; 2030} 2031.streaming-recent-member-stars .the-average-rating{ 2032 display:none; 2033} 2034.streaming-recent-member-stars .the-star-icons { 2035 letter-spacing: -1px; 2036} 2037.streaming-recent-member-stars .the-review-count { 2038 font-size: 11px; 2039} 2040.streaming-recent-member-stars .star_rating { 2041 white-space: nowrap; 2042} 2043 </style> <div class="clearfix"></div> 2044 <div class="content-container"> 2045 <div class="clearfix"></div> 2046 <div class="container"> 2047 <div class="row"> 2048 <div class="col-md-12"> 2049 <a href="/search_results" class="view-all-btn-desktop hidden-xs btn btn-default"> 2050 View All 2051 </a> 2052 <h2 class="nomargin sm-text-center bold streaming-title" style="color: rgb(41, 41, 41)"> 2053 Our Newest Trainers </h2> 2054 <hr> 2055 </div> 2056 <div class="clearfix"></div> 2057 <div class="grid-container display-recent-members "> 2058 <div class="row"> 2059 <div class="slickMembers col-md-12"> 2060 2061 <div class="col-xs-12 col-sm-6 col-md-4 member recent-member smaller-image"> 2062 <div class="well"> 2063 <a class="h4 bold bmargin inline-block notranslate" title="ALASTAIR DUNS - View Listing" href="/kimberley/top-level-category/alastair-duns"> 2064 ALASTAIR DUNS </a> <div class="clearfix fpad-sm nobpad"></div> 2065 <div class="col-xs-4 nopad text-center recent-member-image"> 2066 <a title="ALASTAIR DUNS - View Listing" href="/kimberley/top-level-category/alastair-duns"> 2067 <img class="img-rounded center-block lazyloader" loading="lazy" width="400" height="400" alt="ALASTAIR DUNS" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="/pictures/profile/pimage-40-350-photo.jpg"> 2068 </a> 2069 2070 <div class="star_rating small streaming-recent-member-stars stars-with-image" style="line-height:1em;margin-top: 4px;"><small><style type='text/css'> .the-rating-link { 2071 display: inline-block; 2072 vertical-align: text-bottom; 2073 font-weight: bold; 2074} </style><style> 2075 .the-star-icons{ 2076 display: block; 2077 } 2078 .full-block{ 2079 display: block; 2080 width: 100%; 2081 } 2082</style> 2083 2084</small></div> 2085 </div> 2086 <div class="col-xs-8 norpad small recent-member-info"> 2087 <p> 2088 I'm a trainer in leadership, high-performance teams & resilience. â I deliver... </p> 2089 <a title="ALASTAIR DUNS - View Listing" aria-label="ALASTAIR DUNS - View Listing" class="tmargin btn btn-sm btn-primary btn-block" href="/kimberley/top-level-category/alastair-duns"> 2090 View Listing 2091 </a> 2092 </div> 2093 <div class="clearfix"></div> 2094 </div> 2095 </div> 2096 2097 <div class="col-xs-12 col-sm-6 col-md-4 member recent-member smaller-image"> 2098 <div class="well"> 2099 <a class="h4 bold bmargin inline-block notranslate" title="Peter Gandolfo - View Listing" href="/top-level-category/peter-gandolfo"> 2100 Peter Gandolfo </a> <div class="clearfix fpad-sm nobpad"></div> 2101 <div class="col-xs-4 nopad text-center recent-member-image"> 2102 <a title="Peter Gandolfo - View Listing" href="/top-level-category/peter-gandolfo"> 2103 <img class="img-rounded center-block lazyloader" loading="lazy" width="400" height="400" alt="Peter Gandolfo" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="/pictures/profile/pimage-45-47-photo.jpg"> 2104 </a> 2105 2106 <div class="star_rating small streaming-recent-member-stars stars-with-image" style="line-height:1em;margin-top: 4px;"><small><style type='text/css'> .the-rating-link { 2107 display: inline-block; 2108 vertical-align: text-bottom; 2109 font-weight: bold; 2110} </style><style> 2111 .the-star-icons{ 2112 display: block; 2113 } 2114 .full-block{ 2115 display: block; 2116 width: 100%; 2117 } 2118</style> 2119 2120</small></div> 2121 </div> 2122 <div class="col-xs-8 norpad small recent-member-info"> 2123 <p> 2124 Peter Gandolfo is an Executive Coach and founder of Gandolfo Group. </p> 2125 <a title="Peter Gandolfo - View Listing" aria-label="Peter Gandolfo - View Listing" class="tmargin btn btn-sm btn-primary btn-block" href="/top-level-category/peter-gandolfo"> 2126 View Listing 2127 </a> 2128 </div> 2129 <div class="clearfix"></div> 2130 </div> 2131 </div> 2132 2133 <div class="col-xs-12 col-sm-6 col-md-4 member recent-member smaller-image"> 2134 <div class="well"> 2135 <a class="h4 bold bmargin inline-block notranslate" title="Jonathan Cann - View Listing" href="/accra/top-level-category/jonathan-cann"> 2136 Jonathan Cann </a> <div class="clearfix fpad-sm nobpad"></div> 2137 <div class="col-xs-4 nopad text-center recent-member-image"> 2138 <a title="Jonathan Cann - View Listing" href="/accra/top-level-category/jonathan-cann"> 2139 <img class="img-rounded center-block lazyloader" loading="lazy" width="400" height="400" alt="Jonathan Cann" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-src="/pictures/profile/pimage-46-362-photo.jpeg"> 2140 </a> 2141 2142 <div class="star_rating small streaming-recent-member-stars stars-with-image" style="line-height:1em;margin-top: 4px;"><small><style type='text/css'> .the-rating-link { 2143 display: inline-block; 2144 vertical-align: text-bottom; 2145 font-weight: bold; 2146} </style><style> 2147 .the-star-icons{ 2148 display: block; 2149 } 2150 .full-block{ 2151 display: block; 2152 width: 100%; 2153 } 2154</style> 2155 2156</small></div> 2157 </div> 2158 <div class="col-xs-8 norpad small recent-member-info"> 2159 <p> 2160 I am the CEO of JPCann Associates Group. Also a lead Facilitator and Trainer specializing... </p> 2161 <a title="Jonathan Cann - View Listing" aria-label="Jonathan Cann - View Listing" class="tmargin btn btn-sm btn-primary btn-block" href="/accra/top-level-category/jonathan-cann"> 2162 View Listing 2163 </a> 2164 </div> 2165 <div class="clearfix"></div> 2166 </div> 2167 </div> 2168 </div> 2169 </div> 2170 <div class="clearfix"></div> 2171 <div class="col-md-6"> 2172 <a href="/search_results" class="btn btn-lg btn-default btn-block visible-xs-block"> 2173 View All 2174 </a> 2175 </div> 2176 </div> 2177 <div class="clearfix"></div> 2178 </div> 2179 </div> 2180 </div> 2181 2182
2182<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/slick-carousel/1.8.1/slick.min.js"></script>
2182 2183 <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/slick-carousel/1.8.1/slick.min.css"/> 2184
2184<script> 2185 $('.slickMembers').slick({ 2186 infinite: true, 2187 slidesToShow: 3, 2188 slidesToScroll: 1, 2189 prevArrow: '<button aria-label="Scroll Left" type="button" class="slick-prev-fa"><i class="fa fa-angle-left" aria-hidden="true"></i></button>', 2190 nextArrow: '<button aria-label="Scroll Right" type="button" class="slick-next-fa"><i class="fa fa-angle-right" aria-hidden="true"></i></button>', 2191 rtl: false, 2192 responsive: [ 2193 { 2194 breakpoint: 9999, 2195 settings: { 2196 slidesToShow: 3, 2197 infinite: true, 2198 2199 } 2200 }, 2201 /* slick applies a bucket when width < breakpoint, so these must be the Bootstrap 2202 tier values themselves to line up with col-md-* (992) and col-sm-* (768) */ 2203 { 2204 breakpoint: 992, 2205 settings: { 2206 slidesToShow: 2, 2207 slidesToScroll: 1 2208 } 2209 }, 2210 { 2211 breakpoint: 768, 2212 settings: { 2213 slidesToShow: 2, 2214 slidesToScroll: 2, 2215 dots: true, 2216 arrows: false 2217 } 2218 }, 2219 { 2220 breakpoint: 480, 2221 settings: { 2222 slidesToShow: 1, 2223 slidesToScroll: 1, 2224 dots: true, 2225 arrows: false 2226 } 2227 } 2228 ] 2229 }); 2230 </script>
2230 2231 </div> 2232 <div class="homepage-section-3"><div class="clearfix" id="capa1"></div> 2233<div class="content-container"> 2234 <div class="container"> 2235 <div class="row" id="join-about-modules"> 2236 <div class="col-md-6 homepage-join-module"> 2237 <div class="module fpad-xl text-center nomargin"> 2238 <p style="text-align: left; line-height: 2;"><img src="https://www.thetrainerdirectory.com/images/a7fa61949fd4af535f3667a24518729ef7973463.png" class="fr-dib img-circle" width="1080" height="1080" loading="lazy"></p><h2 style="text-align: left; line-height: 2;">Who are The Trainer Directory?</h2><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Welcome to <strong>The Trainer Directory</strong> â the go-to platform for UK-based trainers seeking to work with top training companies both in the UK and internationally. We connect skilled associate trainers with reputable training providers, creating opportunities for growth, networking, and career advancement in the competitive world of professional training.</span></p><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Whether youâre an experienced trainer looking to expand your network or a training provider searching for top talent, <strong>The Trainer Directory </strong>is here to bridge the gap and make those vital connections.</span></p> <div class="clearfix"></div> 2239 </div> 2240 </div> 2241 <div class="clearfix clearfix-lg hidden-md hidden-lg"></div> 2242 <div class="col-md-6 homepage-about-module"> 2243 <div class="module fpad-xl text-center nomargin"> 2244 <p style="text-align: left; line-height: 2;"><img src="https://www.thetrainerdirectory.com/images/ba9a4601d8085d5cfe0b4c6ddc0dd15701370ebc.png" class="fr-dib img-circle" width="1080" height="1080" loading="lazy"></p><h2 style="text-align: left; line-height: 2;">Why Choose The Trainer Directory?</h2><p style="text-align: left; line-height: 2;"><span style="font-size: 16px;"><strong><span style="font-family: Nunito;">For Trainers</span></strong><span style="font-family: Nunito;">: Get discovered by leading training providers and grow your career by connecting with companies that value your skills and experience.</span></span></p><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;"><strong>For Training Providers</strong>: Access a curated network of qualified trainers, making it easier to find the right talent for your specific training needs.</span></p><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;"><strong>Ready to get started?</strong></span></p><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Whether youâre a trainer or a training provider, <strong>The Trainer Directory</strong> is here to make the connection process seamless and effective. Sign up today and start exploring new opportunities!</span></p> <div class="clearfix"></div> 2245 </div> 2246 </div> 2247 </div> 2248 </div> 2249</div></div> 2250 <div class="content-container custom-homepage-content homepage-section-4"> 2251 <div class="container"> 2252 <h1 style="text-align: center;">Why join The Trainer Directory?</h1><p><br></p><table class="froala-table" style="width: 100%;"><tbody><tr><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">Access New Opportunities</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Showcase your expertise and gain visibility with our easy-to-search profiles, designed to help training providers find the right fit for their programs quickly.</span></p></td><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">Be Visible to Leading Training Companies</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Our directory is tailored to attract UK-based and global training providers specifically looking for UK associate trainers, giving you exposure to a wide range of potential clients.</span></p></td><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">Enhance Your Professional Profile</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Create a detailed, professional profile that highlights your skills, experience, and unique approach, making it easy for training providers to understand your value.</span></p></td></tr><tr><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">3-Month Free Membership</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Join risk-free and experience the benefits of The Trainer Directory with no commitment. After your first three months, continue enjoying full access for just £25 per month.</span></p></td><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">Long-Term Growth and Development</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Our plans go beyond the directory. We’re committed to helping trainers succeed with additional services such as Continued Professional Development, advertising opportunities, and strategic partnerships to support your career journey.</span></p></td><td style="width: 33.3333%;vertical-align: top;"><h4><span style="font-family: Ubuntu; line-height: 2;">Don’t Miss Out on the Next Big Opportunity!</span></h4><p style="text-align: left; line-height: 2;"><span style="font-size: 16px; font-family: Nunito;">Start your journey with The Trainer Directory today. Sign up, create your profile, and be ready to connect with leading training providers. Get started now – your first three months are on us!</span></p></td></tr></tbody></table> </div> 2253 </div> 2254 <div class="homepage-section-5"><div class="clearfix"></div> 2255<div class="content-container"> 2256 <div class="container"> 2257 <div class="row"> 2258 <div class="col-md-12 homepage_content_2"> 2259 <p><br></p><h2 style="text-align: center;"><span style="font-size: 44px;text-align: center;"><strong><span style="font-family: Ubuntu; color: rgb(255, 255, 255);">Meet Our Team</span></strong></span></h2><p><br></p><table class="froala-table" style="width: 100%;"><tbody><tr><td style="width: 48.0783%; text-align: center; vertical-align: top;"><p><img src="https://www.thetrainerdirectory.com/images/857581b4d17d6aa12896a702da59cbd72e9ed8e6.png" class="fr-dib img-circle" style="width: 200px;" width="300" height="300" loading="lazy"></p><h3><strong><span style="font-family: Ubuntu; color: rgb(255, 255, 255);">Chris Dudley - Founder</span></strong></h3><p><span style="color: rgb(255, 255, 255);"><br></span></p><p style="line-height: 2; text-align: left;"><span style="font-family: Nunito; line-height: 2; color: rgb(255, 255, 255);">Chris is the co-founder of<strong> The Trainer Directory</strong>, a premier online platform connecting Associate and Freelance Trainers with Training Providers and Companies across the UK and beyond. With over 20 years of experience as a facilitator and Learning & Development specialist, Chris has designed and delivered impactful training solutions for businesses of all sizes. Through their expertise in leadership, sales, and workplace skills training, both as a business owner and Associate Trainer, they have built a deep understanding of the challenges training providers face in sourcing skilled associatesâand the need for trainers to access quality opportunities. Passionate about bridging this gap, Chris launched <strong>The Trainer Directory</strong> to create a seamless, trusted network where providers can find top-tier trainers, and trainers can secure rewarding associate work while also accessing continued development for both them and their business. Chrisâ extensive industry knowledge, combined with a commitment to and passion for high-quality learning experiences, makes them the ideal leader to drive <strong>The Trainer Directory</strong> forward.</span></p></td><td style="text-align: left; vertical-align: top; width: 3.9111%;"><br></td><td style="width: 47.9395%; text-align: center; vertical-align: top;"><p style="text-align: left;"><img src="https://www.thetrainerdirectory.com/images/e1682bb425729ad9c172eefeb1d9252ceed26031.png" class="fr-dib img-circle" style="width: 200px;" width="300" height="300" loading="lazy"></p><h3 style="text-align: center;"><strong><span style="font-family: Ubuntu; color: rgb(255, 255, 255);">Ruth Lewis - Founder</span></strong></h3><p style="text-align: left;"><span style="color: rgb(255, 255, 255);"><br></span></p><p id="isPasted" style="line-height: 2; text-align: left;"><span style="line-height: 2; color: rgb(255, 255, 255);">Ruth is the co-founder of <strong>The Trainer Directory</strong>, a premier online platform connecting Associate and Freelance Trainers with Training Providers and Companies across the UK and beyond. During her 25 years of experience in both the public and private sectors, Ruth has designed and delivered bespoke training programmes for staff and users, developing a deep understanding of the challenges faced by training providers and independent trainers alike. As a Trainersâ Trainer and experienced coach, she focuses on empowering trainers to enhance their skills, grow their businesses, and access high-quality opportunities. Passionate about connecting skilled trainers with training providers, Ruth co-founded <strong>The Trainer Directory</strong> to create an accessible and trusted platform, increasing visibility and streamlining the process of finding and securing associate training opportunities, while supporting trainers in their professional growth and development. Committed to professional development and high-quality learning experiences, she continues ensuring trainers and providers alike benefit from a thriving and supportive community.</span></p></td></tr></tbody></table><p style="line-height: 2; text-align: left;"><span style="line-height: 2;"><br></span></p><p><br></p> <div class="clearfix"></div> 2260 </div> 2261 </div> 2262 </div> 2263</div></div> 2264 <div class="homepage-section-6"></div> 2265 <div class="homepage-section-7"> <div class="clearfix"></div> 2266 <div class="content-container"> 2267 <div class="clearfix"></div> 2268 <div class="container"> 2269 <div class="row"> 2270 <div class="col-md-12"> 2271 <a href="/blog" class="view-all-btn-desktop hidden-xs btn btn-default"> 2272 View All 2273 </a> 2274 <h2 class="nomargin sm-text-center streaming-title" style="color: rgb(41, 41, 41)"> 2275 The Trainer Hub </h2> 2276 <hr> 2277 </div> 2278 <div class="clearfix"></div> 2279 <div class="row"> 2280 <div class="col-md-12 slickBlogArticles"> 2281 <div class="col-sm-6 col-md-4 text-center bmargin "> 2282 <div class="pic lazyloader" data-src="/uploads/ne
2282ws-pictures/5-ashton-under-lyne-blog-post-image-20250401173942.png"> 2283 <span class="pic-caption bottom-to-top" onclick> 2284 <h3 class="pic-title">How to Be a Successful Associate Trainer</h3> 2285 <p>Being an associate trainer comes with fantastic opportunitie...</p> 2286 <a href="/blog/how-to-be-a-successful-associate-trainer" class="btn btn-primary fpad-lg vpad view-more" aria-label="View More - How to Be a Successful Associate Trainer"> 2287 View More 2288 </a> 2289 </span> 2290 <a aria-label="View More" href="/blog/how-to-be-a-successful-associate-trainer" class="homepage-link-element hidden-xs" aria-label="View More - How to Be a Successful Associate Trainer"></a> 2291 </div> 2292 </div> 2293 <div class="col-sm-6 col-md-4 text-center bmargin "> 2294 <div class="pic lazyloader" data-src="/uploads/news-pictures/5-ashton-under-lyne-blog-post-image-20250401182542.png"> 2295 <span class="pic-caption bottom-to-top" onclick> 2296 <h3 class="pic-title">Mastering Virtual Training: How to Thriv...</h3> 2297 <p>The world of training has changed dramatically, with virtual...</p> 2298 <a href="/blog/mastering-virtual-training-how-to-thrive-as-an-online-associate-trainer" class="btn btn-primary fpad-lg vpad view-more" aria-label="View More - Mastering Virtual Training: How to Thriv..."> 2299 View More 2300 </a> 2301 </span> 2302 <a aria-label="View More" href="/blog/mastering-virtual-training-how-to-thrive-as-an-online-associate-trainer" class="homepage-link-element hidden-xs" aria-label="View More - Mastering Virtual Training: How to Thriv..."></a> 2303 </div> 2304 </div> 2305 <div class="col-sm-6 col-md-4 text-center bmargin "> 2306 <div class="pic lazyloader" data-src="/uploads/news-pictures/5-ashton-under-lyne-blog-post-image-20250401182725.png"> 2307 <span class="pic-caption bottom-to-top" onclick> 2308 <h3 class="pic-title">Marketing Yourself as an Associate Train...</h3> 2309 <p>As an associate trainer, you may have top-notch training ski...</p> 2310 <a href="/blog/marketing-yourself-as-an-associate-trainer-how-to-stand-out-and-get-more-work" class="btn btn-primary fpad-lg vpad view-more" aria-label="View More - Marketing Yourself as an Associate Train..."> 2311 View More 2312 </a> 2313 </span> 2314 <a aria-label="View More" href="/blog/marketing-yourself-as-an-associate-trainer-how-to-stand-out-and-get-more-work" class="homepage-link-element hidden-xs" aria-label="View More - Marketing Yourself as an Associate Train..."></a> 2315 </div> 2316 </div> 2317 </div> 2318 </div> 2319 <div class="clearfix"></div> 2320 <div class="col-md-6"> 2321 <a href="blog" 2322 class="btn btn-lg btn-default btn-block visible-xs-block">View All</a> 2323 </div> 2324 <div class="clearfix"></div> 2325 </div> 2326 </div> 2327 </div> 2328
2328<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/slick-carousel/1.8.1/slick.min.js"></script>
2328 2329 <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/slick-carousel/1.8.1/slick.min.css"/> 2330
2330<script> 2331 $('.slickBlogArticles').slick({ 2332 infinite: true, 2333 slidesToShow: 3, 2334 slidesToScroll: 1, 2335 prevArrow: '<button aria-label="Scroll Left" type="button" class="slick-prev-fa"><i class="fa fa-angle-left" aria-hidden="true"></i></button>', 2336 nextArrow: '<button aria-label="Scroll Right" type="button" class="slick-next-fa"><i class="fa fa-angle-right" aria-hidden="true"></i></button>', 2337 rtl: false, 2338 responsive: [ 2339 { 2340 breakpoint: 9999, 2341 settings: { 2342 slidesToShow: 3, 2343 infinite: true, 2344 2345 } 2346 }, 2347 /* slick applies a bucket when width < breakpoint, so these must be the Bootstrap 2348 tier values themselves to line up with col-md-* (992) and col-sm-* (768) */ 2349 { 2350 breakpoint: 992, 2351 settings: { 2352 slidesToShow: 2, 2353 slidesToScroll: 1 2354 } 2355 }, 2356 { 2357 breakpoint: 768, 2358 settings: { 2359 slidesToShow: 2, 2360 slidesToScroll: 2, 2361 dots: true, 2362 arrows: false 2363 } 2364 }, 2365 { 2366 breakpoint: 480, 2367 settings: { 2368 slidesToShow: 1, 2369 slidesToScroll: 1, 2370 dots: true, 2371 arrows: false 2372 } 2373 } 2374 ] 2375 }); 2376 </script>
2376 2377 </div> 2378 </div>
2379<script> 2380(function(){ 2381 if (typeof performance === 'undefined' || performance.navigation.type !== 2) return; 2382 2383 var path = window.location.pathname.split('/').join('_'); 2384 var storedSid = sessionStorage.getItem('select2-sid' + path); 2385 var storedTid = sessionStorage.getItem('select2-tid' + path); 2386 var storedTtid = sessionStorage.getItem('select2-ttid' + path); 2387 2388 if (!storedSid && !storedTid && !storedTtid) return; 2389 2390 window._bdCategoryPreloaded = true; 2391 2392 function waitForSelect2(selector, callback, maxWait) { 2393 maxWait = maxWait || 5000; 2394 var start = Date.now(); 2395 var check = setInterval(function() { 2396 var $el = $(selector); 2397 if ($el.length && $el.data('select2')) { 2398 clearInterval(check); 2399 callback($el); 2400 } else if (Date.now() - start > maxWait) { 2401 clearInterval(check); 2402 } 2403 }, 100); 2404 } 2405 2406 function waitForOptions(selector, callback, maxWait) { 2407 maxWait = maxWait || 5000; 2408 var start = Date.now(); 2409 var check = setInterval(function() { 2410 var $el = $(selector); 2411 if ($el.length && $el.data('select2') && $el.find('option').length > 1) { 2412 clearInterval(check); 2413 callback($el); 2414 } else if (Date.now() - start > maxWait) { 2415 clearInterval(check); 2416 } 2417 }, 100); 2418 } 2419 2420 $(document).ready(function(){ 2421 if (typeof select2OnFormClick !== 'function') return; 2422 2423 // Clean up stale select2 DOM from bfcache before re-initializing 2424 var staleContainers = document.querySelectorAll('.select2-container'); 2425 for (var i = 0; i < staleContainers.length; i++) { 2426 staleContainers[i].parentNode.removeChild(staleContainers[i]); 2427 } 2428 var offscreenSelects = document.querySelectorAll('.select2-offscreen'); 2429 for (var j = 0; j < offscreenSelects.length; j++) { 2430 offscreenSelects[j].className = offscreenSelects[j].className.replace('select2-offscreen', '').trim(); 2431 offscreenSelects[j].style.display = ''; 2432 } 2433 2434 var initPromise = select2OnFormClick(); 2435 var afterInit = function(){ 2436 if (storedSid && $("#sid").length) { 2437 waitForSelect2('#sid', function($sid) { 2438 $sid.select2('val', storedSid); 2439 $sid.trigger('change'); 2440 }); 2441 } 2442 2443 $(".infinite-chained[name='sid']").each(function(){ 2444 var el = this; 2445 if (storedSid && el.id !== 'sid') { 2446 waitForSelect2('#' + el.id, function($el) { 2447 $el.select2('val', storedSid); 2448 $el.trigger('change'); 2449 }); 2450 } 2451 }); 2452 2453 if (storedTid) { 2454 waitForOptions('#tid', function($tid) { 2455 $tid.select2('val', storedTid); 2456 $tid.trigger('change'); 2457 }); 2458 } 2459 2460 if (storedTtid) { 2461 waitForOptions('#ttid', function($ttid) { 2462 $ttid.select2('val', storedTtid); 2463 }); 2464 } 2465 }; 2466 2467 if (initPromise && typeof initPromise.then === 'function') { 2468 initPromise.then(afterInit); 2469 } else { 2470 setTimeout(afterInit, 500); 2471 } 2472 }); 2473})(); 2474</script>
2474 <div class="clearfix"></div> 2475 </div> 2476</div> 2477</main> 2478<!-- End Content --> 2479<div class="clearfix footer-clear-element "></div> 2480 2481<div class="footer"> 2482 <div class="container"> 2483 <div class="row"> 2484 <ul class="footer_menu sm-text-center"> 2485 <li class='col-md-5'><span id='link323' class='head'> About</span><ul><li class=''><span id='link324' class='content'> The place for Trainers, and the place to find Trainers.</span></li><li class=''><span id='link351' class='companynumber'> The Trainer Directory Limited | Company Number 16109907</span></li></ul></li><li class='col-md-2 col-md-offset-1'><span id='link325' class='head'> Website</span><ul><li class=''><a href='/about' id='link326'>About</a></li><li class=''><a href='/about/contact' id='link327'>Contact Us</a></li></ul></li><li class='col-md-2'><span id='link328' class='head'> Search</span><ul><li class=''><a href='/search_results' id='link329'>Browse Directory</a></li></ul></li><li class='col-md-2'><span id='link331' class='head'> Support</span><ul><li class=''><a href='/login' id='link332'>Member Login</a></li><li class=''><a href='/login/retrieval' id='link333'>Reset Password</a></li></ul></li><li class='col-md-12 clearfix'><span id='link334'> </span></li><li class='col-md-5 vpad vmargin'><span id='link335'> <style>.network-icon.twitter,.network-icon.tiktok{background:#000}</style> 2486<div class="list-social-links"> 2487 <a class="network-icon contact" href="/about/contact" title="Contact Us The Trainer Directory"> 2488 <i class="bi bi-envelope"></i> 2489 </a> 2490 2491 2492 2493 <div class="clearfix"></div> 2494</div></span></li><li class='col-md-6 col-md-offset-1 vpad vmargin'><a href='/join' id='link336' class='btn btn_footer_get_listed btn-lg btn-block bold center sm-block'>Trainers - Join Us Today</a></li><li class='col-md-12 clearfix vmargin text-center'><span id='link337'> </span><ul><li class='clearfix vmargin vpad inline-block'><span id='link338'> </span></li><li class='btn-lg font-sm novpad norpad inline-block'><span id='link339'> © 2026</span></li><li class='font-sm inline-block hpad'><a href='/' id='link340' title='The Trainer Directory'>The Trainer Directory</a></li><li class='font-sm inline-block'><span id='link341'> All Rights Reserved</span></li><li class='font-sm inline-block hpad'><a href='/about/terms' id='link342' title='Terms of Use'>Terms of Use</a></li><li class='font-sm inline-block'><a href='/about/privacy' id='link343' title='Privacy Policy'>Privacy Policy</a></li></ul></li> </ul> 2495 </div> 2496 </div> 2497</div><style type='text/css'> .scrollup { 2498 border-radius: 3px; 2499 width: 40px; 2500 height: 40px; 2501 opacity: 0.4; 2502 position: fixed; 2503 bottom: 30px; 2504 right: 30px; 2505 display: none; 2506 background: rgba(119, 119, 119, 0.8); 2507 z-index: 1000000; 2508} 2509.scrollup i { 2510 font-size: 36px; 2511 color: white; 2512 position: relative; 2513 top: 0px; 2514 left: 10px; 2515} </style> 2516 2517 2518 <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
2519<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
2519 2520
2521<script> 2522 function clearContent(thisObj){ 2523 var size; 2524 if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){ 2525 size = "small"; 2526 } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){ 2527 size = "large"; 2528 } else { 2529 size = "medium"; 2530 } 2531 if(!thisObj.parent().hasClass('input_wrapper')){ 2532 if(thisObj.parent().hasClass('input-group-sm')){ 2533 thisObj.wrap('<span class="input-group-sm input_wrapper"></span>'); 2534 } else if (thisObj.parent().hasClass('input-group-lg')){ 2535 thisObj.wrap('<span class="input-group-lg input_wrapper"></span>'); 2536 } else { 2537 thisObj.wrap('<span class="input_wrapper"></span>'); 2538 } 2539 } 2540 if(thisObj.val() != ""){ 2541 if(thisObj.hasClass('googleSuggest')){ 2542 thisObj.parent().find('.fill_location').remove(); 2543 } 2544 if (!thisObj.parent().find('.clear_content').length){ 2545 thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`); 2546 if (thisObj.hasClass("tt-input")) { 2547 thisObj.focus(); 2548 } 2549 2550 } 2551 } 2552 if (thisObj.hasClass('googleSuggest') && thisObj.val().length == 0) { 2553 thisObj.parent().append(`<span class="fill_location ${size}"><i class="fa fa-crosshairs" title="Use Current Location" aria-hidden="true"></i></span>`); 2554 } 2555 if (thisObj.val() == "" && thisObj.parent().find('.clear_content').length){ 2556 thisObj.parent().find('.clear_content').remove(); 2557 } 2558 } 2559 2560 $(document).on('click', '.drp-buttons .applyBtn', function(){ 2561 clearContent($(".dateRange input")); 2562 }); 2563 2564 $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){ 2565 clearContent($(this)); 2566 }); 2567 2568 $(document).ready(function(){ 2569 $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){ 2570 clearContent($(this)); 2571 }) 2572 }) 2573 2574 $(document).on('click', '.clear_content', function(){ 2575 $(this).parent().find('input').val(''); 2576 //tt-input its a class for typeahead auto-suggest 2577 if ($(this).parent().find('input').hasClass("tt-input")) { 2578 $(this).parent().find('input').typeahead('val',''); 2579 } 2580 clearContent($(this).parent().find('input')); 2581 $(this).remove(); 2582 }); 2583 2584 $(window).on('load', function () { 2585 setTimeout(function() { 2586 // add missing href attribute to multi-category options in search modules 2587 $('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#'); 2588 }, 2000); 2589 }); 2590</script>
2590 2591 2592 2593 2594<a href="#" class="scrollup" title="scrollup"> 2595 <i class="fa fa-caret-up" aria-hidden="true"></i> 2596</a>
2597<script> 2598 $(document).ready(function(){ 2599 // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318. 2600 // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an 2601 // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button). 2602 if ($.fn.progressbar) { 2603 $('.progress .progress-bar').progressbar({ 2604 display_text: 'fill' 2605 }); 2606 } 2607 $(window).scroll(function(){ 2608 2609 if ($(this).scrollTop() > 600) { 2610 $('.scrollup').fadeIn(); 2611 2612 } else { 2613 $('.scrollup').fadeOut(); 2614 } 2615 }); 2616 $('.scrollup').click(function(){ 2617 $("html, body").animate({ 2618 scrollTop: 0 2619 }, 600); 2620 return false; 2621 }); 2622 $('#cropButton').click(function(){ 2623 var iframe = $("#cropiFrame"); 2624 iframe.attr("src", iframe.data("src")); 2625 }); 2626 }); 2627</script>
2627 2628 2629
2629<script type="text/javascript"> 2630 /* CT dissolved its county governments in 1960, so Google returns its 8 counties as 2631 colloquial_area instead of administrative_area_level_2 â they must never reach a 2632 city field. Google translates the component name to the site language, so the 2633 language-stable place_id is checked first and the word list only backs it up. */ 2634 if (typeof window.bdIsColloquialCounty !== 'function') { 2635 window.bdIsColloquialCounty = function (componentName, resultPlaceId) { 2636 var countyPlaceIds = [ 2637 'ChIJWRM2Nakw5okRoTCxHvz_5xw', /* Middlesex County, CT */ 2638 'ChIJmeTbuDYH6IkR3xgeNvszpgg', /* Fairfield County, CT */ 2639 'ChIJiT24cvvP54kR2fSPHkp0Akc', /* New Haven County, CT */ 2640 'ChIJvYe7N7eQ54kRL6nZaXRwPkI', /* Litchfield County, CT */ 2641 'ChIJtxC3p6qs54kRIvK-2bctar0', /* Hartford County, CT */ 2642 'ChIJj-lvZQli5okRGCuGRd6xKt0', /* Tolland County, CT */ 2643 'ChIJRWKqeLdi5okRLXWDlSEGeTY', /* Windham County, CT */ 2644 'ChIJwTIQbvVv5okRU5_gSJczUTQ' /* New London County, CT */ 2645 ]; 2646 2647 if (typeof resultPlaceId === 'string' && resultPlaceId !== '' 2648 && countyPlaceIds.indexOf(resultPlaceId) !== -1) { 2649 return true; 2650 } 2651 2652 if (typeof componentName !== 'string' || componentName === '') { 2653 return false; 2654 } 2655 2656 var name = componentName.toLowerCase(); 2657 2658 /* Only unambiguous county words â generic ones (region, district) would strip 2659 legitimate colloquial areas, and their languages already match on place_id. 2660 Word-boundary matched so names like "Countyline, OK" are left alone. */ 2661 var wordTokens = ['county', 'condado', 'comté', 'contea', 2662 'comitatul', 'hrabstwo', 'megye', 'konderria']; 2663 var isAlnum = function (ch) { 2664 return (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9'); 2665 }; 2666 2667 for (var t = 0; t < wordTokens.length; t++) { 2668 var token = wordTokens[t]; 2669 var from = 0; 2670 while (true) { 2671 var at = name.indexOf(token, from); 2672 if (at === -1) { 2673 break; 2674 } 2675 var before = (at > 0) ? name.charAt(at - 1) : ' '; 2676 var after = ((at + token.length) < name.length) ? name.charAt(at + token.length) : ' '; 2677 if (!isAlnum(before) && !isAlnum(after)) { 2678 return true; 2679 } 2680 from = at + 1; 2681 } 2682 } 2683 2684 /* Non-latin scripts have no alphanumeric word boundary. */ 2685 var scriptTokens = ['каÑнÑи', 'کاؤÙÙ¹Û', 'à¤à¤¾à¤à¤à¤à¥', 'ì¹´ì´í°']; 2686 for (var s = 0; s < scriptTokens.length; s++) { 2687 if (name.indexOf(scriptTokens[s]) !== -1) { 2688 return true; 2689 } 2690 } 2691 2692 return false; 2693 }; 2694 } 2695 2696 // Try to load coordinates from sessionStorage on page load 2697 var vlat = 0; 2698 var vlon = 0; 2699 try { 2700 var savedLat = sessionStorage.getItem('bd_geolocation_lat'); 2701 var savedLon = sessionStorage.getItem('bd_geolocation_lon'); 2702 if (savedLat && savedLon) { 2703 vlat = parseFloat(savedLat); 2704 vlon = parseFloat(savedLon); 2705 } 2706 } catch(e) {} 2707 var isSubmit = false; 2708 var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests 2709 2710 // Function to save coordinates to sessionStorage 2711 function saveCoordinatesToSession(lat, lon) { 2712 try { 2713 sessionStorage.setItem('bd_geolocation_lat', lat.toString()); 2714 sessionStorage.setItem('bd_geolocation_lon', lon.toString()); 2715 } catch(e) {} 2716 } 2717 2718 // Function to get coordinates from sessionStorage if current ones are 0 2719 function getCoordinatesFromSession() { 2720 if (vlat === 0 && vlon === 0) { 2721 try { 2722 var savedLat = sessionStorage.getItem('bd_geolocation_lat'); 2723 var savedLon = sessionStorage.getItem('bd_geolocation_lon'); 2724 if (savedLat && savedLon) { 2725 vlat = parseFloat(savedLat); 2726 vlon = parseFloat(savedLon); 2727 return true; 2728 } 2729 } catch(e) {} 2730 } 2731 return false; 2732 } 2733 var cityTypes = [ 2734 'colloquial_area', 2735 'locality', 2736 'sublocality', 2737 'sublocality_level_1', 2738 'sublocality_level_2', 2739 'sublocality_level_3', 2740 'sublocality_level_4', 2741 'sublocality_level_5', 2742 'neighborhood', 2743 'ward', 2744 'postal_town' 2745 ]; 2746 2747 var postalTypes = [ 2748 'postal_code', 2749 'postal_code_prefix', 2750 'postal_code_suffix', 2751 'street_number', 2752 'premise', 2753 'subpremise', 2754 'route', 2755 'intersection', 2756 'street_address', 2757 'floor', 2758 'room', 2759 'post_box', 2760 'delivery_address' 2761 ]; 2762 2763 var isSubmitting = false; 2764 window.cachedSelectedOption = [{ 'typed_location': '' }]; 2765 window.isSubmittingMainSearch = false; 2766 2767 document.addEventListener('DOMContentLoaded', () => { 2768 let isSubmitting = false; // Add flag at the top level 2769 2770 setTimeout(()=>{ 2771 let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location'); 2772 if (typeof googleSuggestForm != "undefined") { 2773 for (let i = 0; i < googleSuggestForm.length; i++) { 2774 let closestForm = googleSuggestForm[i].closest('form'); 2775 if(typeof closestForm != "undefined" && closestForm != null){ 2776 closestForm.addEventListener('focusin', googleMapOnFormClick, false); 2777 2778 }else{ 2779 googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false); 2780 } 2781 googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false); 2782 } 2783 } 2784 },200);
2785 2786 $('.website-search button[type=submit]').click(async function (e) { 2787 e.preventDefault(); // Prevent the default submit action 2788 var nativeForm = $(this).closest('form')[0]; 2789 if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) { 2790 return false; 2791 } 2792 await googleMapOnFormClick(); 2793 $(this).closest('form').submit(); 2794 }); 2795 }); 2796 window['gmapClick'] = false; 2797 function googleMapOnFormClick() { 2798 if(window.gmapClick){ 2799 return; 2800 } 2801 window.gmapClick = true; 2802 2803 return new Promise((resolve, reject) => { 2804 window.isSubmittingMainSearch = false; 2805 let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location'); 2806 let mapUri = "https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places®ion=GB&callback=initializeG&language=en&key=AIzaSyDDI6MtCAWExiktccYlUaJiNkILNwo2zCU"; 2807 2808 if (typeof google !== "undefined" && google.hasOwnProperty('maps')) { 2809 resolve('already loaded'); 2810 return; 2811 } 2812 2813 let loadMapScriptAsync = function (uri) { 2814 return new Promise((resolve, reject) => { 2815 let script = document.createElement('script'); 2816 script.type = 'text/javascript'; 2817 script.src = uri; 2818 script.async = true; 2819 script.onload = function () { 2820 resolve("ok"); 2821 }; 2822 script.onerror = function () { 2823 reject("Failed to load Google Maps script."); 2824 }; 2825 document.head.appendChild(script); 2826 }); 2827 }; 2828 2829 loadMapScriptAsync(mapUri) 2830 .then(() => { 2831 resolve(); 2832 }) 2833 .catch((error) => { 2834 console.error(error); 2835 reject(); 2836 }); 2837 2838 }); 2839 } 2840 2841 function initializeG() { 2842 var geocoder; 2843 //This piece of code will create an autosuggest for every input with the class "googleSuggest" 2844 var counter = 1; 2845 var inputsArray = []; 2846 window.cachedSelectedOption = [{ 'typed_location': '' }]; 2847 let mapExists = document.querySelectorAll('[id^="map"]').length > 0; 2848 const functionsToInvoke = { 2849 setJsMap: true, 2850 setJsMapOverview: mapExists, 2851 setJsMapSR: mapExists, 2852 setJsMapSidebar: mapExists 2853 }; 2854 if (window['maps_loaded'] !== true) { 2855 for (let func in functionsToInvoke) { 2856 if (typeof window[func] === 'function' && functionsToInvoke[func]) { 2857 window['maps_loaded'] = true; 2858 window[func](); 2859 } 2860 } 2861 } 2862 $(".googleSuggest").each(function () { 2863 //get the id from the input to be the unique identifier for each autocomplete 2864 var inputId = $(this).attr("id"); 2865 var inputElement = $(this); 2866 inputsArray[counter] = /** @type {HTMLInputElement} */( 2867 document.getElementById('' + inputId)); 2868 const mainCountry = ''; 2869 const inputOptions = { 2870 fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'], 2871 types: ['geocode'] 2872 } 2873 const language = "en"; 2874 2875 if (language) { 2876 inputOptions.language = language; 2877 } 2878 if (mainCountry) { 2879 inputOptions.componentRestrictions = {country: mainCountry}; 2880 inputOptions.region = mainCountry; 2881 } 2882 2883 var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions); 2884 google.maps.event.addListener(autocomplete, 'place_changed', function () { 2885 const place = autocomplete.getPlace(); 2886 2887 cachedSelectedOption = []; 2888 cachedSelectedOption.push(place); 2889 2890 cachedSelectedOption[0]['typed_location'] = inputElement.val(); 2891 /* if(cachedSelectedOption[0]['adr_address']){ 2892 let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, ''); 2893 cachedSelectedOption[0]['typed_location'] = cleanLocation; 2894 inputElement.val(cleanLocation); 2895 }*/ 2896 if (cachedSelectedOption[0]['address_components'] == undefined) { 2897 cachedSelectedOption = []; 2898 var emptyObj = { 2899 'typed_location': '' 2900 }; 2901 cachedSelectedOption.push(emptyObj); 2902 } 2903 }); 2904 //the code that prevents the submition when hit enter on a google location autocomplete item 2905 inputElement.keydown( function (e) { 2906 if (e.keyCode == 13) { 2907 var pacCounter = 0; 2908 //need to run a loop to check each pac container 2909 $('.pac-container').each(function () { 2910 2911 if ($(this).css("display") != "none") { 2912 pacCounter++; 2913 } 2914 }); 2915 if (pacCounter > 0) { 2916 e.preventDefault(); 2917 } 2918 } 2919 }); 2920 counter++; 2921 }); 2922 2923 //triggers every time a form with the id website-search is trigered 2924 $('.website-search').submit(function (e) { 2925 2926 var currentForm = $(this); 2927 var locationInput = $(this).find(".googleLocation"); 2928 var $submitButton = currentForm.find('input[type=submit], button[type=submit]'); 2929 2930 2931 if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') { 2932 2933 // Set submitting flag 2934 window.isSubmittingMainSearch = true; 2935 $submitButton.prop('disabled', true); 2936 2937 e.preventDefault(); 2938 //this variable has the main country of the site 2939 var form = currentForm; 2940 var urlGET = form.serialize(); 2941 var formActionUrl = form.attr("action"); 2942 var locationValue = locationInput.val(); 2943 2944 2945 2946 const mainCountry = ''; 2947 const inputOptions = { 2948 address:locationValue 2949 } 2950 const language = "en"; 2951 2952 if (language) { 2953 inputOptions.language = language; 2954 } 2955 if (mainCountry) { 2956 inputOptions.componentRestrictions = {country: mainCountry}; 2957 inputOptions.region = mainCountry; 2958 } 2959 2960 if (typeof cachedSelectedOption == 'undefined') { 2961 var emptyForm = { 2962 'typed_location': '' 2963 }; 2964 cachedSelectedOption.push(emptyForm); 2965 } 2966 2967 if (locationValue != cachedSelectedOption[0]['typed_location']) { 2968 geocoder = new google.maps.Geocoder(); 2969 geocoder.geocode(inputOptions, function (results, status) { 2970 2971 //if the google response of the geocoding was successful it will use that info to build the url for the new search 2972 if (status == google.maps.GeocoderStatus.OK) { 2973 parseInfoToSearch(results, urlGET, formActionUrl); 2974 2975 } else { 2976 var urlPath = formActionUrl; 2977 var redirect = urlPath + "?" + urlGET; 2978 //will redirect the page using the new url that has been constructed 2979 window.location.href = redirect; 2980 } 2981 }); 2982 2983 } else { 2984 parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl); 2985 } 2986 } 2987 }); 2988 2989 2990 //check if a map has been loaded 2991 if ($('#map-canvas').length > 0) { 2992 var cssHideLogo = "<style>.pac-container:after { /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: none !important;height: 0px;}</style>"; 2993 $('body').append(cssHideLogo); 2994 } else { 2995 var cssHideLogo = "<style>.pac-container:after { /* Disclaimer: not needed to show 'powered by Google' if also a Google Map is shown */background-image: block !important;height: 16px;}</style>"; 2996 $('body').append(cssHideLogo); 2997 } 2998
2999 if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") { 3000 populateSearchFields(); 3001 } 3002 3003 if($('.googleSuggest').val() == ""){ 3004 populateSearchFields(); 3005 } 3006 3007 var geocodeVisitorsSetting = '1'; 3008 var geocodingMethod = 'HTML5'; 3009 3010 //check the advanced setting "geocode_visitor_default" if set to 1 will override the "location_value" values to the formatted desire address from the google reverse geocoding response 3011 3012 var vlon = ''; 3013 var vlat = ''; 3014 } 3015 3016 function switchPlaceID(placeId,urlGET, formActionUrl) { 3017 let request = { 3018 placeId: placeId, 3019 fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'], 3020 }; 3021 3022 let service = new google.maps.places.PlacesService(document.createElement('div')); 3023 service.getDetails(request, function(place, status) { 3024 if (status === google.maps.places.PlacesServiceStatus.OK) { 3025 let dataArray = []; 3026 dataArray.push(place); 3027 parseInfoToSearch(dataArray, urlGET, formActionUrl); 3028 } else { 3029 console.error('Place details request failed with status:', status); 3030 } 3031 }); 3032 } 3033 3034 function parseInfoToSearch(results, urlGET, formActionUrl) { 3035 var urlSearchParams = new URLSearchParams(urlGET); 3036 var parameters = {}; 3037 var addressComponentsArray = []; 3038 if (results.length > 1) { 3039 if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){ 3040 let tempResult = results[0]; 3041 results[0] = results[1]; 3042 results[1] = tempResult; 3043 } 3044 for (let i = 0; i < results.length; i++) { 3045 if (results[i].types[0] === 'natural_feature' || 3046 results[i].types[0] === 'airport' || 3047 results[i].types[0] === 'point_of_interest' || 3048 results[i].types[0] === 'establishment' || 3049 results[i].types[0] === 'political' || 3050 results[i].types[0] === 'park') { 3051 results.splice(i, 1); 3052 } 3053 } 3054 } 3055 var adComLength = results[0].address_components.length; 3056 3057 if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){ 3058 switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl); 3059 return; 3060 } 3061 sessionStorage.setItem("google_result",JSON.stringify(results)); 3062 3063 3064 var foundPostalType = results[0].types.find(type => postalTypes.includes(type)); 3065 var foundCityType = results[0].types.find(type => cityTypes.includes(type)); 3066 3067 //loop that will build the array with the address components and will get the short name of country and administrative area level 1 3068 for (var i = 0; i < adComLength; i++) { 3069 3070 if (results[0].address_components[i]['types'][0] == "country") { 3071 parameters.country_sn = results[0].address_components[i]['short_name']; 3072 } 3073 if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { 3074 parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name']; 3075 } 3076 if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { 3077 parameters.stateSearchLN = results[0].address_components[i]['long_name']; 3078 } 3079 if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") { 3080 /* short_name is what the service-area writer stores in 3081 service_areas.county_sn, so the search must send the same 3082 form or county matching breaks wherever short != long. */ 3083 parameters.county_sn = results[0].address_components[i]['short_name']; 3084 } 3085 if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) { 3086 var addrType = results[0].address_components[i]['types'][0]; 3087 var addrLong = results[0].address_components[i]['long_name']; 3088 /* CT counties come back as colloquial_area â keep them out of parameters.city. */ 3089 if (addrType !== 'colloquial_area' 3090 || !window.bdIsColloquialCounty(addrLong, results[0].place_id)) { 3091 parameters.city = addrLong; 3092 } 3093 } 3094 if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") { 3095 parameters.postal_code = results[0].address_components[i]['long_name']; 3096 } 3097 } 3098 3099 3100 // Filter out 'political' from result types - use more specific type when available 3101 // Same pattern as BD-directory-maps-typePolitical (PR #5642) 3102 if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') { 3103 results[0].types.splice(0, 1); 3104 } 3105 3106 // Pick the most specific type from results, skip "political" (too generic) 3107 parameters.location_type = results[0].types[0]; 3108 for (var t = 0; t < results[0].types.length; t++) { 3109 if (results[0].types[t] != 'political') { 3110 parameters.location_type = results[0].types[t]; 3111 break; 3112 } 3113 } 3114 3115 // When searching by city/locality, omit postal_code â Google returns 3116 // a partial zip prefix that doesn't match all members in the city 3117 if (parameters.location_type == 'locality' && parameters.postal_code) { 3118 delete parameters.postal_code; 3119 } 3120 3121 if (parameters.adm_lvl_1_sn != '') { 3122 parameters.stateSearch = parameters.adm_lvl_1_sn; 3123 } 3124 if (parameters.country_sn == "GB") { 3125 delete parameters.adm_lvl_1_sn; 3126 } 3127 3128 //will check if the response had the bounds parameters 3129 //if it had it will add the south west and north east parameters to the new url 3130 if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) { 3131 3132 if (results[0].geometry.hasOwnProperty('bounds')) { 3133 var boundsResponse = results[0].geometry.bounds; 3134 3135 } else { 3136 var boundsResponse = results[0].geometry.viewport; 3137 } 3138 parameters.swlat = boundsResponse.getSouthWest
3138().lat(); 3139 parameters.nelat = boundsResponse.getNorthEast().lat(); 3140 parameters.swlng = boundsResponse.getSouthWest().lng(); 3141 parameters.nelng = boundsResponse.getNorthEast().lng(); 3142 3143 //if there were not bounds parameters in the response it will send the parameter fsearch as radius so a radius search will be performed because of lack of info for this location 3144 } else { 3145 parameters.fsearch = "radius"; 3146 } 3147 var locationCenterResponse = results[0].geometry.location; 3148 parameters.lat = locationCenterResponse.lat(); 3149 parameters.lng = locationCenterResponse.lng(); 3150 parameters.faddress = results[0].formatted_address; 3151 parameters.place_id = results[0].place_id; 3152 var formatParameters = $.param(parameters); 3153 urlGET = urlGET + "&" + formatParameters; 3154 var urlPath = formActionUrl; 3155 var redirect = urlPath + "?" + urlGET; 3156 //will redirect the page using the new url that has been constructed 3157 window.location.href = redirect; 3158 } 3159 function populateSearchFields() { 3160 var prePopulateLocationSetting = '1'; 3161 var geolocationMethod = 'HTML5'; 3162 3163 // If geolocation is in progress and we don't have coordinates yet, wait a bit 3164 if (isGettingLocation && (vlat === 0 || vlon === 0)) { 3165 var waitStartTime = performance.now(); 3166 var waitInterval = setInterval(function() { 3167 if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) { 3168 clearInterval(waitInterval); 3169 // Retry after a short delay to ensure coordinates are set 3170 setTimeout(function() { 3171 populateSearchFields(); 3172 }, 100); 3173 } else if ((performance.now() - waitStartTime) > 10000) { 3174 // Timeout after 10 seconds - try sessionStorage 3175 clearInterval(waitInterval); 3176 if (getCoordinatesFromSession()) { 3177 setTimeout(function() { 3178 populateSearchFields(); 3179 }, 100); 3180 } 3181 } 3182 }, 200); 3183 return; 3184 } 3185 3186 // If coordinates are 0, try to get from sessionStorage 3187 if (vlat === 0 || vlon === 0) { 3188 getCoordinatesFromSession(); 3189 } 3190 3191 // Validate coordinates first 3192 var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180); 3193 3194 if (!hasValidCoordinates) { 3195 return; 3196 } 3197 3198 //if set to one will get the lat and lng to do reverse geocoding 3199 if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) { 3200 var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon)); 3201 var visitorGeocoder = new google.maps.Geocoder(); 3202 var formattedAddress = []; 3203 var preFormattedStructure = { 3204 "locality": "long_name", 3205 "administrative_area_level_2": "long_name", 3206 "administrative_area_level_1": "long_name", 3207 "country": "long_name" 3208 }; 3209 visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) { 3210 //if the google response of the geocoding was successful it will use that info to build the url for the new search 3211 if (status == google.maps.GeocoderStatus.OK) { 3212 window.cachedSelectedOption = results; 3213 $.each(preFormattedStructure, function (findex, fvalue) { 3214 $.each(results[0].address_components, function (rindex, rvalue) { 3215 if (rvalue.types[0] == findex) { 3216 formattedAddress.push(rvalue.long_name); 3217 } 3218 }); 3219 }); 3220 $('.googleSuggest').each(function () { 3221 if ($(this).val() == '') { 3222 if (formattedAddress.length > 0) { 3223 $(this).val(formattedAddress.join(', ')); 3224 clearContent($(this)); 3225 } 3226 } 3227 }); 3228 } else { 3229 $('.googleSuggest').each(function () { 3230 $(this).val(''); 3231 }); 3232 } 3233 }); 3234 } 3235 } 3236 function showError(error) { 3237 switch (error.code) { 3238 case error.PERMISSION_DENIED: 3239 case 1: // PERMISSION_DENIED 3240 $('.fill_location.clicked').popover({ 3241 content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`, 3242 container: 'body' 3243 }); 3244 $('.fill_location.clicked').popover('toggle'); 3245 setTimeout(function () { 3246 $('.fill_location.clicked').popover('hide'); 3247 $('.fill_location.clicked').removeClass('clicked'); 3248 }, 4000); 3249 break; 3250 case error.POSITION_UNAVAILABLE: 3251 case 2: // POSITION_UNAVAILABLE 3252 $('.fill_location.clicked').popover({ 3253 content: `Location information is unavailable. Please check your device location settings.`, 3254 container: 'body' 3255 }); 3256 $('.fill_location.clicked').popover('toggle'); 3257 setTimeout(function () { 3258 $('.fill_location.clicked').popover('hide'); 3259 $('.fill_location.clicked').removeClass('clicked'); 3260 }, 4000); 3261 break; 3262 case error.TIMEOUT: 3263 case 3: // TIMEOUT 3264 $('.fill_location.clicked').popover({ 3265 content: `Location request timed out. Please ensure location services are enabled and try again.`, 3266 container: 'body' 3267 }); 3268 $('.fill_location.clicked').popover('toggle'); 3269 setTimeout(function () { 3270 $('.fill_location.clicked').popover('hide'); 3271 $('.fill_location.clicked').removeClass('clicked'); 3272 }, 4000); 3273 break; 3274 case error.UNKNOWN_ERROR: 3275 default: 3276 $('.fill_location.clicked').popover({ 3277 content: `An error occurred while getting your location. Please try again.`, 3278 container: 'body' 3279 }); 3280 $('.fill_location.clicked').popover('toggle'); 3281 setTimeout(function () { 3282 $('.fill_location.clicked').popover('hide'); 3283 $('.fill_location.clicked').removeClass('clicked'); 3284 }, 4000); 3285 break; 3286 } 3287 } 3288 if (navigator.geolocation) { 3289 if ($(".googleSuggest")[0]) { 3290 $(document).on('click', '.fill_location', function getCXPosition() { 3291 // Prevent multiple simultaneous geolocation requests 3292 if (isGettingLocation) { 3293 return; 3294 } 3295 3296 var $button = $(this); 3297 $button.addClass('clicked'); 3298 var startPos; 3299 3300 // Set flag to prevent concurrent requests 3301 isGettingLocation = true; 3302 3303 // Function to actually get the position 3304 var attemptGetPosition = function() { 3305 // Try with shorter timeout first for faster response 3306 var geoOptions = {
3307 enableHighAccuracy: false, // Use false for faster response 3308 timeout: 8000, // 8 second timeout (reduced for faster failure) 3309 maximumAge: 300000 // Accept cached position up to 5 minutes old 3310 }; 3311 3312 navigator.geolocation.getCurrentPosition(function (position) { 3313 startPos = position; 3314 vlat = startPos.coords.latitude; 3315 vlon = startPos.coords.longitude; 3316 3317 // Validate coordinates before proceeding 3318 if (!vlat || !vlon || vlat === 0 || vlon === 0) { 3319 isGettingLocation = false; 3320 $button.removeClass('clicked'); 3321 return; 3322 } 3323 3324 // Save coordinates to sessionStorage 3325 saveCoordinatesToSession(vlat, vlon);
3326 3327 $.get("/api/data/html/get/data_widgets/widget_name", { 3328 "vlat": vlat, 3329 "vlon": vlon, 3330 "name": "Website - Save Coordinates Session" 3331 }); 3332 3333 populateSearchFields(); 3334 3335 // Clear flag 3336 isGettingLocation = false; 3337 $button.removeClass('clicked'); 3338 }, function(error) { 3339 // Clear flag on error 3340 isGettingLocation = false; 3341 $button.removeClass('clicked'); 3342 3343 // For timeout errors, try sessionStorage as fallback 3344 if (error.code === 3) { 3345 if (getCoordinatesFromSession()) { 3346 // Use cached coordinates 3347 $.get("/api/data/html/get/data_widgets/widget_name", { 3348 "vlat": vlat, 3349 "vlon": vlon, 3350 "name": "Website - Save Coordinates Session" 3351 }); 3352 3353 populateSearchFields(); 3354 3355 // Clear flag 3356 isGettingLocation = false; 3357 $button.removeClass('clicked'); 3358 } else { 3359 $button.popover({ 3360 content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`, 3361 container: 'body' 3362 }); 3363 $button.popover('show'); 3364 setTimeout(function() { 3365 $button.popover('hide'); 3366 }, 5000); 3367 } 3368 } else { 3369 showError(error); 3370 } 3371 }, geoOptions); 3372 }; 3373 3374 // Check if geolocation permission is already denied (but don't block if it's prompt) 3375 if (navigator.permissions && navigator.permissions.query) { 3376 navigator.permissions.query({name: 'geolocation'}).then(function(result) { 3377 if (result.state === 'denied') { 3378 isGettingLocation = false; 3379 $button.removeClass('clicked'); 3380 showError({code: 1, message: 'Permission denied'}); 3381 return; 3382 } else { 3383 // Permission is granted or prompt - proceed with geolocation 3384 attemptGetPosition(); 3385 } 3386 }).catch(function(err) { 3387 // If permission API not supported, proceed anyway 3388 attemptGetPosition(); 3389 }); 3390 } else { 3391 // Permission API not available, proceed with geolocation 3392 attemptGetPosition(); 3393 } 3394 }) 3395 } 3396 } else { 3397 console.log('Geolocation is not supported for this Browser/OS version yet.'); 3398 } 3399 function getUrlParameter(sParam) { 3400 var sPageURL = window.location.search.substring(1); 3401 var sURLVariables = sPageURL.split('&'); 3402 3403 for (var i = 0; i < sURLVariables.length; i++) { 3404 var sParameterName = sURLVariables[i].split('='); 3405 3406 if (sParameterName[0] == sParam) { 3407 return decodeURIComponent(sParameterName[1]); 3408 } 3409 } 3410 } 3411 </script>
3411 3412
3412<script> 3413 // switchClass() is jQuery UI (Effects), which is no longer loaded on every page. 3414 // removeClass().addClass() is the same class swap, applied immediately instead of 3415 // after animateClass()'s queued 400ms default. 3416 $(document).ready(function(){ 3417 $('.navbar-header .navbar-toggle.main_menu').click(function(){ 3418 $('.mobile-main-menu').toggleClass('opened'); 3419 }); 3420 $('.mobile-main-menu .sidebar-nav').find('li').each(function(){ 3421 $(this).addClass('hasChildren'); 3422 if ($(this).children('ul').length > 0){ 3423 $(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>'); 3424 $(this).find('a').after('<div class="clearfix"></div>'); 3425 $(this).find('span').after('<div class="clearfix"></div>'); 3426 } 3427 $(this).append('<div class="clearfix"></div>'); 3428 }); 3429 3430 $('.mobile-main-menu .sidebar-nav li i').click(function(){ 3431 if ($(this).parent().children('ul').length > 0){ 3432 $(this).parent().toggleClass('sub_open'); 3433 } 3434 if ($(this).hasClass('fa-plus')){ 3435 $(this).removeClass('fa-plus').addClass('fa-minus'); 3436 } else { 3437 $(this).removeClass('fa-minus').addClass('fa-plus'); 3438 } 3439 }); 3440 }) 3441 3442 if ($(window).width() > 740 && $(window).width() < 1100) { 3443 3444 $(document).ready(function(){ 3445 $('.tablet-menu .tablet-menu-ul').find('li').each(function(){ 3446 3447 if ($(this).children('ul').length > 0){ 3448 $(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>'); 3449 $(this).find('a').after('<div class="clearfix"></div>'); 3450 var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");; 3451 $(this).children('a').html(this_link); 3452 $(this).find('span').after('<div class="clearfix"></div>'); 3453 } 3454 $(this).append('<div class="clearfix"></div>'); 3455 }); 3456 3457 $('.tablet-menu .tablet-menu-ul li i').click(function(){ 3458 3459 if ($(this).parent().children('ul').length > 0){ 3460 $(this).parent().toggleClass('sub_open'); 3461 3462 if ($(this).siblings( "ul" ).hasClass('tablet-block')){ 3463 $(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none'); 3464 } else { 3465 $(this).siblings( "ul" ).addClass( "tablet-block" ); 3466 3467 if ($(this).siblings( "ul" ).hasClass('tablet-none')){ 3468 $(this).siblings( "ul" ).removeClass('tablet-none') 3469 } 3470 3471 if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) { 3472 $(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3473 $(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus'); 3474 } 3475 3476 if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) { 3477 $(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3478 $(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus'); 3479 } 3480 3481 if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) { 3482 $(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3483 $(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus'); 3484 } 3485 3486 } 3487 3488 } 3489 3490 if ($(this).hasClass('fa-plus')){ 3491 $(this).removeClass('fa-plus').addClass('fa-minus'); 3492 } else { 3493 $(this).removeClass('fa-minus').addClass('fa-plus'); 3494 } 3495 }); 3496 }) 3497 } 3498 // Append unique ID attribute for mobile main menu links 3499 $('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" }); 3500</script>
3500 3501
3502<script> 3503/* Keeps the announcement bar flush with the navbar: this widget's CSS emits static 50px 3504 offsets that are blind to the hide-menu settings, so a hidden or fixed compact-logo 3505 navbar leaves a gap or an overlap. Measure the real navbar state and own the offset. */ 3506(function () { 3507 function alignAnnouncementToNavbar() { 3508 var ann = document.querySelector('.announcement-bar'); 3509 if (!ann) { return; } 3510 /* above the widget's own offset breakpoints: restore stylesheet values */ 3511 if (window.innerWidth > 1100) { 3512 ann.style.removeProperty('margin-top'); 3513 ann.style.removeProperty('top'); 3514 return; 3515 } 3516 var navbar = document.querySelector('.header nav.navbar.navbar-default'); 3517 var navStyle = navbar ? window.getComputedStyle(navbar) : null; 3518 /* navbar hidden: the 50px offsets have nothing to clear, sit flush */ 3519 if (!navbar || navStyle.display === 'none') { 3520 ann.style.setProperty('margin-top', '0px', 'important'); 3521 ann.style.setProperty('top', '0px', 'important'); 3522 return; 3523 } 3524 if (window.innerWidth >= 768) { return; } 3525 /* only act while the navbar is pinned and showing the compact logo */ 3526 if (navStyle.position !== 'fixed') { return; } 3527 var logo = navbar.querySelector('.mobile_website_logo'); 3528 if (!logo || window.getComputedStyle(logo).display === 'none') { return; } 3529 var navRect = navbar.getBoundingClientRect(); 3530 var annRect = ann.getBoundingClientRect(); 3531 var delta = Math.round(navRect.bottom - annRect.top); /* >0 overlap, <0 gap */ 3532 if (delta === 0) { return; } 3533 var currentMt = parseFloat(window.getComputedStyle(ann).marginTop) || 0; 3534 var nextMt = currentMt + delta; 3535 /* a transient element above the bar during load can inflate the measure; a 3536 negative margin would pull the bar behind the navbar, so clamp at 0 */ 3537 if (nextMt < 0) { nextMt = 0; } 3538 /* !important to beat the widget's "margin-top: 50px !important" rule */ 3539 ann.style.setProperty('margin-top', nextMt + 'px', 'important'); 3540 } 3541 3542 function run() { 3543 alignAnnouncementToNavbar(); 3544 /* re-run after late layout shifts (fonts, async embeds) */ 3545 window.setTimeout(alignAnnouncementToNavbar, 250); 3546 window.setTimeout(alignAnnouncementToNavbar, 1200); 3547 } 3548 3549 if (document.readyState === 'loading') { 3550 document.addEventListener('DOMContentLoaded', run); 3551 } else { 3552 run(); 3553 } 3554 window.addEventListener('load', alignAnnouncementToNavbar); 3555 var resizeTimer; 3556 window.addEventListener('resize', function () { 3557 window.clearTimeout(resizeTimer); 3558 resizeTimer = window.setTimeout(alignAnnouncementToNavbar, 150); 3559 }); 3560})(); 3561</script>
vendor: 2 bytes, line 3561
3561
3562<script> 3563 $(document).ready(function() { 3564 var i; 3565 var imageRatio = 0.5625; 3566 for (i = 0; i < 16; i++) { 3567 3568 var sectionid = ".homepage-section-" + i + " .pic"; 3569 var calc = Math.floor($(sectionid).width() * imageRatio); 3570 $(sectionid).css({ 3571 'height': calc + 'px' 3572 }); 3573 3574 var spanid = ".homepage-section-" + i + " .pic .pic-caption"; 3575 var calc2 = $(sectionid).height() - 42; 3576 $(spanid).css({ 3577 'transform' : 'translateY(' + calc2 + 'px)' 3578 }); 3579 } 3580 }); 3581</script>
3581
3581<script> 3582 window.addEventListener('load', (event) => { 3583 setTimeout(() => { 3584 }, 501); 3585 }); 3586 </script>
vendor: 2 bytes, line 3586
3586
3587<script> 3588 function decision(message, url) { 3589 if (confirm(message)) { 3590 setTimeout(function () { 3591 window.location = url; 3592 }, 0); 3593 } 3594 } 3595</script>
vendor: 2 bytes, line 3595
3595
3596<script> 3597 // Function to add alt, width, and height attributes to <img> elements without them 3598 function addAttributesToImages() { 3599 var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])'); 3600 Array.prototype.forEach.call(images, function(img) { 3601 // Skip if we've already processed this image 3602 if (img.dataset.processed === 'true') { 3603 return; 3604 } 3605 3606 // Mark this image as being processed 3607 img.dataset.processed = 'true'; 3608 3609 // Add alt attribute if missing 3610 if (!img.hasAttribute('alt')) { 3611 var src = img.getAttribute('src') || 'image'; // Default src to 'image' if missing 3612 var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, ''); 3613 3614 try { 3615 altText = decodeURIComponent(altText) 3616 .replace(/[_\-+,.:;]+/g, ' ') 3617 .replace(/\s+/g, ' ') 3618 .trim(); 3619 } catch (e) { 3620 altText = 'image'; // Fallback to 'image' if decoding fails 3621 } 3622 3623 // Ensure altText is not empty, otherwise use 'image' 3624 altText = altText || 'image'; 3625 3626 img.setAttribute('alt', altText); 3627 } 3628 3629 // Add width and height attributes if missing 3630 if (!img.hasAttribute('width') || !img.hasAttribute('height')) { 3631 // Handle SVG differently 3632 if (img.src && img.src.endsWith('.svg')) { 3633 // For SVG, use the viewBox to set width and height, if available 3634 fetch(img.src) 3635 .then(response => { 3636 if (!response.ok) { 3637 throw new Error('Failed to fetch SVG: ' + response.status); 3638 } 3639 return response.text(); 3640 }) 3641 .then(svgText => { 3642 var parser = new DOMParser(); 3643 var svgDoc = parser.parseFromString(svgText, "image/svg+xml"); 3644 var svgElement = svgDoc.querySelector('svg'); 3645 3646 if (svgElement) { 3647 var viewBox = svgElement.getAttribute('viewBox'); 3648 if (viewBox) { 3649 var viewBoxValues = viewBox.split(' '); 3650 var width = viewBoxValues[2]; 3651 var height = viewBoxValues[3]; 3652 3653 if (!img.hasAttribute('width')) { 3654 img.setAttribute('width', width); 3655 } 3656 if (!img.hasAttribute('height')) { 3657 img.setAttribute('height', height); 3658 } 3659 } 3660 } 3661 }) 3662 .catch(error => { 3663 // Fallback to default dimensions for SVG 3664 if (!img.hasAttribute('width')) { 3665 img.setAttribute('width', '100'); 3666 } 3667 if (!img.hasAttribute('height')) { 3668 img.setAttribute('height', '100'); 3669 } 3670 }); 3671 } else { 3672 // For non-SVG images, use natural dimensions 3673 var tempImg = new Image(); 3674 tempImg.src = img.src; 3675 3676 tempImg.onload = function() { 3677 if (!img.hasAttribute('width')) { 3678 img.setAttribute('width', tempImg.naturalWidth); 3679 } 3680 if (!img.hasAttribute('height')) { 3681 img.setAttribute('height', tempImg.naturalHeight); 3682 } 3683 }; 3684 3685 tempImg.onerror = function() { 3686 // Fallback to default dimensions 3687 if (!img.hasAttribute('width')) { 3688 img.setAttribute('width', '100'); 3689 } 3690 if (!img.hasAttribute('height')) { 3691 img.setAttribute('height', '100'); 3692 } 3693 }; 3694 } 3695 } 3696 }); 3697 } 3698 3699 document.addEventListener('DOMContentLoaded', function() { 3700 // Run the function initially to catch images already in the DOM 3701 addAttributesToImages(); 3702 3703 // Create a MutationObserver to monitor the DOM for added/changed images 3704 var observer = new MutationObserver(function(mutations) { 3705 mutations.forEach(function(mutation) { 3706 if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') { 3707 // Only process if we have new images or src attribute changes 3708 var hasNewImages = false; 3709 3710 if (mutation.addedNodes.length > 0) { 3711 mutation.addedNodes.forEach(function(node) { 3712 if (node.nodeType === 1) { // Element node 3713 if (node.tagName === 'IMG' || node.querySelectorAll) { 3714 hasNewImages = true; 3715 } 3716 } 3717 }); 3718 } 3719 3720 if (mutation.type === 'attributes' && mutation.attributeName === 'src') { 3721 hasNewImages = true; 3722 } 3723 3724 if (hasNewImages) { 3725 addAttributesToImages(); 3726 } 3727 } 3728 }); 3729 }); 3730 3731 // Start observing the document body for changes 3732 observer.observe(document.body, { 3733 childList: true, // Watch for added or removed nodes 3734 subtree: true, // Watch the entire subtree 3735 attributes: true, // Watch for attribute changes 3736 attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute 3737 }); 3738 }); 3739</script>
3739<style type='text/css'> select#sid[disabled], select#tid[disabled], select.combobox[disabled], select#bd-chained[disabled], select#category-chained[disabled], select.infinite-chained[disabled], select.subcategory-chained[disabled], select.search-chained[disabled], select#country-chained[disabled], select#state-chained[disabled], select#country-chained-2[disabled], select#state-chained-2[disabled], select#profession_id[disabled] { 3740 cursor: wait 3741} 3742select.select2-preload { 3743 line-height: initial; 3744} 3745 3746select#sid, select#tid, select#ttid, select.combobox, select#bd-chained, select#category-chained, select.infinite-chained, select.subcategory-chained, select.search-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] { 3747 -webkit-appearance: none; 3748 -moz-appearance: none; 3749 appearance: none; 3750 background-image: url(/images/select2ArrowDown.png) !important; 3751 background-repeat: no-repeat !important; 3752 background-size: 10px 9px !important; 3753 background-position: 99% 16px; 3754 border-radius: 6px; 3755 overflow: hidden; 3756} 3757.module select#sid, .module select#tid, .module select.combobox, .module select#bd-chained, .module select#category-chained, .module select.infinite-chained, .module select.subcategory-chained, .module select.search-chained, .module select#country-chained, .module select#state-chained, .module select#country-chained-2, .module select#state-chained-2, .module select#profession_id, [name^="bd_phone_country_code"] { 3758 background-position: 98.2% 12px; 3759} </style> <!-- DROPDOWN SELECT SCRIPT --> 3760 <!-- Select2 CSS Included in website-styles.pkgd.min.css --> 3761 <!--[if lt IE 9]> 3762
3762<script defer src="https://www.optimizecdn.com/directory/cdn/assets/html5shiv/3.7.2/html5shiv.min.js"></script>
3762 3763
3763<script defer src="https://www.optimizecdn.com/directory/cdn/bootstrap/select2/master/js/respond.min.js"></script>
3763 3764 <![endif]--> 3765
3765<script> 3766 3767 var preloaded_ttid = false; 3768 var preloaded_tid = false; 3769 var preloaded_sid = false; 3770 var path2 = window.location.pathname.replace(/\//g, "_"); 3771 3772 if (performance.navigation.type !== 2) { 3773 if (sessionStorage.getItem('select2-ttid'+path2) !== null) { 3774 sessionStorage.removeItem('select2-ttid'+path2); 3775 } 3776 3777 if (sessionStorage.getItem('select2-tid'+path2) !== null) { 3778 sessionStorage.removeItem('select2-tid'+path2); 3779 } 3780 3781 if (sessionStorage.getItem('select2-sid'+path2) !== null) { 3782 sessionStorage.removeItem('select2-sid'+path2); 3783 } 3784 3785 }else if(performance.navigation.type === 2){ 3786 if (sessionStorage.getItem('select2-ttid'+path2) !== null) { 3787 preloaded_ttid = sessionStorage.getItem('select2-ttid'+path2); 3788 } 3789 3790 if (sessionStorage.getItem('select2-tid'+path2) !== null) { 3791 preloaded_tid = sessionStorage.getItem('select2-tid'+path2); 3792 } 3793 3794 if (sessionStorage.getItem('select2-sid'+path2) !== null) { 3795 preloaded_sid = sessionStorage.getItem('select2-sid'+path2); 3796 } 3797 } 3798 3799 window.addEventListener('load', () => { 3800 let select2Inputs = document.querySelectorAll('.select-category-chained,#sid,#tid,.combobox,#bd-chained,#category-chained,.infinite-chained,.subcategory-chained,.search-chained,select#country-chained,#state-chained,#country-chained-2,#state-chained-2,#profession_id,[name^="bd_phone_country_code"]'); 3801 if (typeof select2Inputs != "undefined") { 3802 for (let i = 0; i < select2Inputs.length; i++) { 3803 let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder'); 3804 if (!select2Inputs[i].getAttribute('placeholder')) { 3805 inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder'); 3806 } 3807 let countryCode = select2Inputs[i].getAttribute('data-country-code'); 3808 if (select2Inputs[i].getAttribute('data-country-code') != null && countryCode > 0 && typeof isoCountries != 'undefined') { 3809 for (let c = 0; c < isoCountries.length; c++) { 3810 if(isoCountries[c].id == countryCode){ 3811 // select2Inputs[i].querySelector('option:first-child').text = isoCountries[c].text; 3812 select2Inputs[i].text = isoCountries[c].text; 3813 } 3814 } 3815 3816 } 3817 if(select2Inputs[i].hasAttribute('data-country-code')){ 3818 inputPlaceHolder = null; //reset the input 3819 } 3820 if (inputPlaceHolder != '' && inputPlaceHolder !== null) { 3821 select2Inputs[i].querySelector('option:first-child').text = inputPlaceHolder; 3822 select2Inputs[i].style.color = "#a8a8a8"; 3823 if(!select2Inputs[i].querySelector('option:first-child').hasAttribute('value')){ 3824 select2Inputs[i].querySelector('option:first-child').value=''; 3825 } 3826 } 3827 select2Inputs[i].classList.add("select2-preload"); 3828 select2Inputs[i].addEventListener('mousedown', select2OnFormClick, false); 3829 } 3830 } 3831 }); 3832 3833 function select2OnFormClick(event = false) { 3834 let elemtClicked = ''; 3835 if (event !== false) { 3836 event.preventDefault(); 3837 event.stopImmediatePropagation(); 3838 elemtClicked = event.target; 3839 elemtClicked.disabled = true; 3840 } 3841 3842 let loadScriptAsync = function (uri) { 3843 return new Promise((resolve, reject) => { 3844 let script = document.createElement('script'); 3845 script.type = 'text/javascript'; 3846 script.src = uri; 3847 script.async = true; 3848 script.onload = function () { 3849 if (event !== false) { 3850 elemtClicked.disabled = false; 3851 select2Initialize(); 3852 $(elemtClicked).select2('open'); 3853 $(elemtClicked).on("select2-close", function () { 3854 setTimeout(function() { 3855 $('.select2-container-active').removeClass('select2-container-active'); 3856 $(':focus').blur(); 3857 }, 1); 3858 }); 3859 if (elemtClicked.hasAttribute('data-fv-field')) { 3860 if (window.getComputedStyle(elemtClicked).display === "none") { 3861 // if element is display none, the formvalition can not read 3862 elemtClicked.style.cssText = "display: block;position: absolute;visibility: hidden !important;height: 0;width: 0;opacity: 0 !important;"
3863 } 3864 } 3865 } else { 3866 select2Initialize(); 3867 } 3868 resolve("ok"); 3869 }; 3870 let head = document.getElementsByTagName('head')[0]; 3871 head.appendChild(script); 3872 }); 3873 } 3874 3875 let select2Inputs = document.querySelectorAll('.select-category-chained,#sid,#tid,.combobox,#bd-chained,#category-chained,.infinite-chained,.subcategory-chained,.search-chained,select#country-chained,#state-chained,#country-chained-2,#state-chained-2,#profession_id,[name^="bd_phone_country_code"]'); 3876 3877 if (typeof select2Inputs != "undefined") { 3878 for (let i = 0; i < select2Inputs.length; i++) { 3879 let inputPlaceHolder = select2Inputs[i].getAttribute('placeholder'); 3880 if (!select2Inputs[i].getAttribute('placeholder')) { 3881 inputPlaceHolder = select2Inputs[i].getAttribute('data-placeholder'); 3882 } 3883 if(select2Inputs[i].hasAttribute('data-country-code')){ 3884 inputPlaceHolder = null; //reset the input 3885 } 3886 if (inputPlaceHolder != '' && inputPlaceHolder !== null) { 3887 select2Inputs[i].querySelector('option:first-child').text = ''; 3888 } 3889 select2Inputs[i].removeEventListener('mousedown', select2OnFormClick, false); 3890 } 3891 } 3892 let scriptLoaded = loadScriptAsync('https://www.optimizecdn.com/directory/cdn/bootstrap/select2/3.5.2/select2.min.js?v=3.5.5'); 3893 return scriptLoaded; 3894 } 3895 3896 function select2Initialize(){ 3897 function getSecondLevel(div,id) { 3898 $("#" + div).select2("data", { 3899 id: "", 3900 text: `Loading...` 3901 }); 3902 $.ajax({
3903 url : '/ajaxsearch/get-services', 3904 type : "GET", 3905 data : { 3906 'specialty_id' : id 3907 }, 3908 dataType: "json", 3909 success : function(data) { 3910 var options = ''; 3911 3912 for (var i = 0; i < data.length; i++) { 3913 options += '<option value="' + data[i].value + '">' + data[i].title + '</option>'; 3914 } 3915 if (div == "tid"){ 3916 $("#ttid").select2("data", { 3917 id: "", 3918 text: "No options available" 3919 }); 3920 3921 3922 $("#ttid").select2("enable", false); 3923 3924 $("#" + div).change(function () { 3925 sessionStorage.setItem("select2-tid"+path2,$(this).val()); 3926 }); 3927 } 3928 if (data.length > 1) { 3929 $("#" + div).select2("enable",true); 3930 $("#" + div).html(options); 3931 $("#" + div).select2("val", ""); 3932 3933 } else { 3934 $("#"+div).select2("data", { 3935 id: "", 3936 text: "No options available" 3937 }); 3938 $("#"+div).select2("val", ""); 3939 } 3940 3941 if(div == 'tid' && preloaded_tid !== false){ 3942 $("#" + div).select2("val", preloaded_tid); 3943 $("#" + div).trigger('change'); 3944 } 3945 } 3946 }); 3947 } 3948 function getSecondLevelAccount(div,id) { 3949 $("#" + div).select2("data", { 3950 id: "", 3951 text: `Loading...` 3952 }); 3953 $.ajax({
3954 url : '/ajaxsearch/get-services', 3955 type : "GET", 3956 data : { 3957 'specialty_id' : id 3958 }, 3959 dataType: "json", 3960 success : function(data) { 3961 var options = ''; 3962 3963 for (var i = 0; i < data.length; i++) { 3964 options += '<option value="' + data[i].value + '">' + data[i].title + '</option>'; 3965 } 3966 if (data.length > 1) { 3967 $("#" + div).select2("close"); 3968 $("#" + div).select2("val", ""); 3969 $("#" + div).select2("enable",true); 3970 $("#" + div).html(options); 3971 3972 3973 } else { 3974 $("#"+div).select2("data", { 3975 id: "", 3976 text: "No options available" 3977 }); 3978 $("#"+div).select2("val", ""); 3979 } 3980 } 3981 }); 3982 } 3983 function getThirdLevel(div,id,id2) { 3984 $("#"+div).select2("data", { 3985 id: "", 3986 text: `Loading...` 3987 }); 3988 3989 $.ajax({
3990 url : '/ajaxsearch/get-locations', 3991 type : "GET", 3992 data : { 3993 'specialty_id' : id, 3994 'treatment_id' : id2, 3995 }, 3996 dataType: "json", 3997 success : function(data) { 3998 var options = ''; 3999 4000 for (var i = 0; i < data.length; i++) { 4001 options += '<option value="' + data[i].value + '">' + data[i].title + '</option>'; 4002 } 4003 if (data.length > 1) { 4004 $("#" + div).select2("enable",true); 4005 $("#" + div).html(options); 4006 $("#" + div).select2("val", ""); 4007 4008 } else { 4009 $("#"+div).select2("data", { 4010 id: "", 4011 text: "No options available" 4012 }); 4013 $("#"+div).select2("val", ""); 4014 } 4015 } 4016 }); 4017 } 4018 var current_country = ''; 4019 function getStateList(div,id) { 4020 if (id != current_country) { 4021 current_country = id; /* BUGFIX p949P6dS: record the country being fetched so the select2-open re-fetch handler short-circuits at this guard instead of looping forever. current_country was declared (line 274) but never assigned, so this guard was always true: success -> select2("open") re-fired the open handler -> getStateList(id) -> re-fetch -> "Loading..." re-pinned -> infinite loop (Singapore = 2 regions). */ 4022 4023 $("#"+div).select2("data", { 4024 id: "", 4025 text: `Loading...` 4026 }); 4027 $.ajax({
4028 url : '/ajaxsearch/get-states', 4029 type : "GET", 4030 data : { 4031 'country' : id 4032 }, 4033 dataType: "json", 4034 success : function(data) { 4035 $("#" + div).html(''); // clear options 4036 4037 /* p949P6dS: data[0] is always the server-side "(Select from List)" placeholder, 4038 so <=2 entries means the country has at most 1 real region (Singapore, 4039 Martinique, zero-region). Client wants those to read "No State/Province 4040 Available" instead of "(Select from List)"; the single real region stays 4041 selectable. Reset/enable now runs on EVERY response (was gated behind 4042 data.length > 1, which left zero-region countries stuck on "Loading..." 4043 and disabled); auto-open stays multi-region only. */ 4044 var hasStates = (data.length > 2); 4045 for (var i = 0; i < data.length; i++) { 4046 var optionTitle = (!hasStates && data[i].value === "") ? `No State/Province Available for This Country` : data[i].title; 4047 var newOption = new Option(optionTitle, data[i].value, false, false); 4048 $("#" + div).append(newOption).trigger('change'); 4049 4050 } 4051 if (data.length === 0) { 4052 $("#" + div).append(new Option(`No State/Province Available for This Country`, "", false, false)).trigger('change'); 4053 } 4054 4055 $("#" + div).select2("enable",true); 4056 $("#" + div).prop("disabled", false); 4057 $("#" + div).select2("val", ""); 4058 if (hasStates) { 4059 $("#" + div).select2("open"); 4060 } 4061 } 4062 }); 4063 } else { 4064 /* p949P6dS AC#3: the select2-open handler runs select2("enable",false) BEFORE 4065 re-calling getStateList, and for a country with <=2 options (Singapore, 4066 Martinique) that re-call short-circuits here on the id == current_country 4067 guard. This branch previously only reset the value, so the field was left 4068 permanently disabled: select2-container-disabled, clicks never open it, the 4069 single real region is unselectable. Mirror the success path's re-enable so a 4070 short-circuited re-open leaves the field usable. Multi-region countries never 4071 hit this (their open handler is gated behind count <= 2). */ 4072 $("#" + div).select2("enable", true); 4073 $("#" + div).prop("disabled", false); 4074 $("#" + div).select2("val", ""); 4075 } 4076 } 4077 /* p949P6dS: keep the checkout/billing required-State validation in sync with the 4078 server-side waiver, on BOTH layers. When the selected country has selectable 4079 sub-regions (Canada, US, ...) FormValidation validates state_code (inline "Required 4080 Field" on submit); when it has none (Singapore, Martinique, zero-region) the state_code 4081 validator is disabled + un-flagged so those countries are not blocked. Delegated so it 4082 binds even though the billing form is revealed after step 1; guarded to no-op on any 4083 page/form without FormValidation + a state_code field. The server still enforces the 4084 same rule (bd-core-files form_controller), so this is UX only, not the security gate. */ 4085 function bdSyncStateRequired(hasStates) { 4086 var $stField = $("#state-chained"); 4087 var $stForm = $stField.closest("form"); 4088 var stFv = ($stForm.length) ? ($stForm.data("formValidation") || $stForm.data("bootstrapValidator")) : null; 4089 if (!stFv || !stFv.options || !stFv.options.fields || !stFv.options.fields.state_code) { 4090 return; 4091 } 4092 stFv.options.fields.state_code.excluded = hasStates ? false : true; 4093 try { stFv.enableFieldValidators("state_code", hasStates); } catch (e) {} 4094 4095 /* p949P6dS: keep the visible "* " required marker on the State label in sync with the 4096 waiver. functions_up.php renders <span class="required">* </span> on the state_code 4097 label when AVS forces the field required; for a no-state country (Singapore, 4098 Martinique) the field is genuinely waived so the asterisk must go away, and come 4099 back when the country has selectable states again. Scoped to the state label. */ 4100 var $stReq = $("label[for='state-chained'] .required", $stForm); 4101 $stReq.css("display", hasStates ? "" : "none"); 4102 4103 /* p949P6dS: the ACTUAL blocker. The billing form carries a SECOND required layer, 4104 independent of FormValidation: the form's success.form.fv handler loops 4105 $form.find('[required]') and, for any empty one, appends <small class="required-error"> 4106 Required Field</small> + returns false, hard-blocking the submit. AVS renders the 4107 state_code <select> with the HTML5 `required` attribute, so a no-state country 4108 (empty state) stayed blocked with "Required Field" even after the FormValidation 4109 waiver above. Drop the `required` attribute (+ clear its custom error) when the 4110 country has no selectable states, and restore it when it does. Remember the server- 4111 rendered original so we never ADD required to a field AVS left optional. */ 4112 if ($stField.attr("data-bd-orig-required") === undefined) { 4113 $stField.attr("data-bd-orig-required", 4114 ($stField.prop("required") || $stField.attr("required") !== undefined) ? "1" : "0"); 4115 } 4116 var stOrigRequired = ($stField.attr("data-bd-orig-required") === "1"); 4117 4118 var $stRow = $stField.closest(".form-group,.fv-row,.row"); 4119 if (!hasStates) { 4120 try { if (typeof stFv.resetField === "function") { stFv.resetField("state_code", true); } } catch (e) {} 4121 $stRow.removeClass("has-error has-success"); 4122 $stRow.find(".help-block[data-fv-validator]").css("display", "none"); 4123 /* drop the HTML5 required gate + its "Required Field" message for no-state country */ 4124 $stField.removeAttr("required").prop("required", false); 4125 $stField.siblings(".required-error").remove(); 4126 $stRow.find(".required-error").remove(); 4127
4128 /* p949P6dS: on the Member-Dashboard billing modal the Save button is disabled by 4129 FormValidation until the whole form is valid; for a no-state country the user 4130 has no state to pick, so nothing re-enables it and Save stays stuck disabled -> 4131 "cannot save". Re-enable it directly. IMPORTANT: do NOT call stFv.validate() 4132 here â in this FormValidation build validate() on an already-valid form fires 4133 success.form.fv (a real submit), which saved the address on the country change 4134 AND consumed the one-time CSRF token, so the actual Save click then failed with 4135 "You entered invalid data. Please try to save again." disableSubmitButtons only 4136 toggles the button; no submit. Scoped to the billing modal so checkout is 4137 untouched. */ 4138 if ($stForm.closest("#billing_address_modal").length) { 4139 try { if (typeof stFv.disableSubmitButtons === "function") { stFv.disableSubmitButtons(false); } } catch (e) {} 4140 $stForm.find("input.submitter, button.submitter, [type=submit]") 4141 .removeClass("disabled").prop("disabled", false).removeAttr("disabled"); 4142 } 4143 } else if (stOrigRequired) { 4144 /* country has states again â restore the required gate AVS originally set */ 4145 $stField.attr("required", "required").prop("required", true); 4146 } 4147 } 4148 $(document).off("change.bdStateReq").on("change.bdStateReq", "#country-chained", function() { 4149 var bdCc = $(this).val(); 4150 var $bdForm = $("#state-chained").closest("form"); 4151 var bdFv = ($bdForm.length) ? ($bdForm.data("formValidation") || $bdForm.data("bootstrapValidator")) : null; 4152 if (!bdFv || !bdFv.options || !bdFv.options.fields || !bdFv.options.fields.state_code || bdCc === "") { 4153 return; 4154 } 4155 $.ajax({
4156 url: "/ajaxsearch/get-states", 4157 type: "GET", 4158 data: { "country": bdCc }, 4159 dataType: "text", 4160 success: function(bdResp) { 4161 /* count entries without regex (DB+eval mangles backslashes): split on the 4162 literal "value" key; total entries = splits - 1; >2 means placeholder + 2+ 4163 real regions == has selectable states. Text parse also survives the 4164 malformed-JSON zero-region response. */ 4165 var bdTotal = bdResp.split(`"value"`).length - 1; 4166 bdSyncStateRequired(bdTotal > 2); 4167 } 4168 }); 4169 }); 4170 /* p949P6dS: the Member Dashboard billing modal (widget 1861) pre-selects the member's 4171 SAVED country_code at document.ready without firing a change event, so the handler 4172 above never ran for it and an AVS-forced required State (functions_up.php forces 4173 field_required=1 on state_code when whmcs_avs_on / stripe_accept_intl_payments is on) 4174 stayed active for a saved no-state country â blocking the save with "Required Field" 4175 on a country that has no state to pick. Sync once for an already-selected country. 4176 The namespaced trigger fires only this handler (not select2/getStateList), and the 4177 handler no-ops when the country is empty or state_code is not a validated field, so 4178 checkout and every other chained-select page are unaffected. */ 4179 $("#country-chained").each(function() { 4180 if ($(this).val() !== "") { 4181 $(this).trigger("change.bdStateReq"); 4182 } 4183 }); 4184 function getInfinityChained(div,id) { 4185 $("#"+div).select2("data", { 4186 id: "", 4187 text: `Loading...` 4188 }); 4189 $.ajax({
4190 url : '/ajaxsearch/get-subcategory', 4191 type : "GET", 4192 data : { 4193 'parent' : id 4194 }, 4195 dataType: "json", 4196 success : function(data) { 4197 var options = ''; 4198 4199 for (var i = 0; i < data.length; i++) { 4200 options += '<option value="' + data[i].value + '">' + data[i].title + '</option>'; 4201 } 4202 if (data.length > 1) { 4203 $("#" + div).select2("enable",true); 4204 $("#" + div).html(options); 4205 if(div == 'tid' && '' != ''){ 4206 $("#" + div).select2("val", ""); 4207 $("#" + div).trigger('change'); 4208 } else if(div == 'tid' && preloaded_tid !== false){ 4209 $("#" + div).select2("val", preloaded_tid); 4210 $("#" + div).trigger('change'); 4211 }else { 4212 $("#" + div).select2("val", ""); 4213 } 4214 4215 4216 4217 4218 } else { 4219 $("#" + div).select2("data", { 4220 id: "", 4221 text: "No options available" 4222 }); 4223 } 4224 } 4225 }); 4226 } 4227 function categoryChained(div,id) { 4228 $("#" + div).select2("data", { 4229 id: "", 4230 text: `Loading...` 4231 }); 4232 if(div == "tid") { 4233 url_link = '/ajaxsearch/get-services' 4234 data_passed = {'specialty_id' : id} 4235 } else { 4236 url_link = '/ajaxsearch/category-list'; 4237 data_passed = {'parent' : id} ; 4238 } 4239 4240 var selectName = $("select[next="+div+"]").prop("name"); 4241 4242 4243 if( (selectName == "ttid" || selectName == "sid" || selectName == "tid") ){ 4244 4245 sessionStorage.setItem("select2-"+selectName+path2,id); 4246 } 4247 4248 $.ajax({
4249 url : url_link, 4250 type : "GET", 4251 data : data_passed, 4252 dataType: "json", 4253 success : function(data) { 4254 var options = ''; 4255 4256 for (var i = 0; i < data.length; i++) { 4257 options += '<option value="' + data[i].value + '">' + data[i].title + '</option>'; 4258 } 4259 4260 if (data.length > 1) { 4261 $("#" + div).select2("enable",true); 4262 $("#" + div).html(options); 4263 4264 if(div == "ttid" && preloaded_ttid !== false){ 4265 $("#" + div).select2("val", preloaded_ttid); 4266 $("#" + div).trigger('change'); 4267 }else if(div == "tid" && preloaded_tid !== false){ 4268 $("#" + div).select2("val", preloaded_tid); 4269 $("#" + div).trigger('change'); 4270 }else{ 4271 $("#" + div).select2("val", ""); 4272 } 4273 4274 4275 4276 } else { 4277 $("#" + div).select2("data", { 4278 id: "", 4279 text: "No options available" 4280 }); 4281 } 4282 } 4283 }); 4284 } 4285 function formatCountry(country) { 4286 if (!country.id && country.text.includes("+")) { 4287 let dataCountry = country.text; 4288 dataCountry = dataCountry.split('+') 4289 country.code = dataCountry[0].trim(); 4290 country.id = dataCountry[1].trim(); 4291 return country; 4292 } else if (!country.code) { 4293 return country.text; 4294 } 4295 var $country = $( 4296 '<span class="flag-icon flag-icon-' + country.code.toLowerCase() + ' flag-icon-squared"></span>' + 4297 '<span class="flag-text" style="margin-left:10px;">' + country.text + '</span>' 4298 ); 4299 return $country; 4300 } 4301 4302 let phoneCountryCode = document.querySelector("[name^='bd_phone_country_code']"); 4303 if (typeof phoneCountryCode != 'undefined' && phoneCountryCode != null && typeof isoCountries != 'undefined') { 4304 $("[name^='bd_phone_country_code']").select2({ 4305 placeholder:`Country`, 4306 data:isoCountries, 4307 searchInputPlaceholder: `Enter Country Code`, 4308 formatResult : formatCountry, 4309 dropdownAutoWidth: true, 4310 width: "resolve", 4311 }).on("select2-opening", function (e) { 4312 if (typeof e.currentTarget.attributes['data-default-country-code'] !== "undefined") { 4313 $(this).val(e.currentTarget.attributes['data-default-country-code'].value) 4314 .removeAttr("data-default-country-code") 4315 .trigger('change') 4316 .trigger('open'); 4317 } 4318 }).change(function (e) { 4319 let select2Span = $(this).attr('id'); 4320 if (e.val) { 4321 $('#'+$(this).attr('id')+'--flag').remove(); 4322 $('#s2id_' + select2Span + ' a span.select2-chosen').prepend('<span class="flag-icon flag-icon-' + e.added.code.toLowerCase() + ' flag-icon-squared" style="margin-right:10px"></span>') 4323 }else{ 4324 $('#s2id_' + select2Span + ' a span.select2-chosen').prepend('<span class="flag-icon flag-icon-' + $(this).attr('data-default-country-flag').toLowerCase() + ' flag-icon-squared" style="margin-right:10px"></span>') 4325 } 4326 $(this).removeAttr("data-default-country-flag"); 4327 4328 }); 4329 } 4330 $("#bd-chained").select2({ 4331 title: "Select Category", 4332 placeholder: "Select Category", 4333 allowClear: true, 4334 formatNoMatches: function () { 4335 return "No matches found"; 4336 } 4337 }).change(function () { 4338 var id = $(this).val(); 4339 $("#tid").select2("enable",false); 4340 getInfinityChained("tid",id); 4341 }); 4342 $("#category-chained").select2({ 4343 title: "Select Category", 4344 placeholder: "Select Category", 4345 allowClear: true 4346 }).change(function () { 4347 var id = $(this).val(); 4348 $("#subcategory-chained").select2("enable",false); 4349 categoryChained("subcategory-chained",id); 4350 }); 4351 4352 $(".select-category-chained").select2({ 4353 title: "Select Category", 4354 placeholder: "Select Category", 4355 allowClear: true 4356 }) 4357 $(".infinite-chained").select2({ 4358 title: "Select option from list", 4359 placeholder: "Click to select an option", 4360 allowClear: true, 4361 formatNoMatches: function () { 4362 return "No matches found"; 4363 } 4364 }).change(function () { 4365 var id = $(this).val(); 4366 var attr = $(this).attr('next'); 4367 var selectName = $(this).prop('name'); 4368 if ( selectName=='ttid' || attr =='ttid' ) { 4369 $("#" + attr).select2("enable",false); 4370 categoryChained(attr,id); 4371 sessionStorage.setItem("select2-"+selectName+path2,id); 4372 } 4373 }).on("select2-close", function () { 4374 setTimeout(function() { 4375 $('.select2-container-active').removeClass('select2-container-active'); 4376 $(':focus').blur(); 4377 }, 1); 4378 }); 4379 $("#subcategory-chained").select2(); 4380 $(".combobox").select2();
4381 $(".search-chained").select2(); 4382 4383 $("select#country-chained").select2({ 4384 title: "", 4385 placeholder: "", 4386 val: "", 4387 allowClear: true, 4388 formatNoMatches: function () { 4389 return "No matches found"; 4390 } 4391 }).change(function () { 4392 var id = $(this).val(); 4393 $("#state-chained").select2("enable",false); 4394 getStateList("state-chained",id); 4395 var state = ""; 4396 4397 if (id == "CA") { 4398 state = "Province"; 4399 4400 } else if (id == "UK") { 4401 state = "Region"; 4402 4403 } else if (id == "US" || id == "AU") { 4404 state = "State"; 4405 4406 } else { 4407 state = "Region"; 4408 } 4409 $("#state-chained").prev(".control-label").text(state); 4410 }); 4411 $("#state-chained").select2(); 4412 4413 $("#state-chained").on("select2-open", function(event) { 4414 event.preventDefault(); 4415 var id = $("#country-chained").val(); 4416 var count = $('#state-chained option').length; 4417 4418 if (id != "" && count <= 2) { 4419 $("#state-chained").select2("enable",false); 4420 getStateList("state-chained",id); 4421 var state = ""; 4422 4423 if (id == "CA") { 4424 state = "Province"; 4425 4426 } else if (id == "UK") { 4427 state = "Region"; 4428 4429 } else if (id == "US" || id == "AU") { 4430 state = "State"; 4431 4432 } else { 4433 state = "Region"; 4434 } 4435 $("#state-chained").prev(".control-label").text(state); 4436 } 4437 }); 4438 4439 $("#country-chained-2").select2({ 4440 title: "Select Country", 4441 placeholder: "(select country)", 4442 val: "", 4443 allowClear: true, 4444 formatNoMatches: function () { 4445 return "No matches found"; 4446 } 4447 }).change(function () { 4448 var id = $(this).val(); 4449 $("#state-chained-2").select2("enable",false); 4450 getStateList("state-chained-2",id); 4451 var state = ""; 4452 4453 if (id == "CA") { 4454 state = "Province"; 4455 4456 } else if (id == "UK") { 4457 state = "Region"; 4458 4459 } else if (id == "US" || id == "AU") { 4460 state = "State"; 4461 4462 } else { 4463 state = "Region"; 4464 } 4465 $("#state-chained-2").prev(".control-label").text(state); 4466 }); 4467 4468 $("#state-chained-2").select2(); 4469 $("#profession_id").select2({ 4470 placeholder: "Select From List", 4471 allowClear: true, 4472 formatNoMatches: function () { 4473 return "No matches found"; 4474 } 4475 }).change(function () { 4476 var id = $(this).val(); 4477 getSecondLevelAccount("category_id",id); 4478 }); 4479 $("#sid").select2({ 4480 title: "Select Category", 4481 placeholder: "Select Category", 4482 allowClear: true, 4483 formatNoMatches: function () { 4484 return "No matches found"; 4485 } 4486 }).change(function () { 4487 var id = $(this).val(); 4488 $("#tid").select2("enable",false); 4489 getSecondLevel("tid",id); 4490 $("#tid").select2("open"); 4491 sessionStorage.setItem("select2-sid"+path2,id); 4492 }); 4493 $("#location_value_dropdown").select2({ 4494 title: "More Options", 4495 placeholder: "More Options", 4496 allowClear: true, 4497 formatNoMatches: function () { 4498 return "No matches found"; 4499 } 4500 }); 4501 $("#tid").select2({ 4502 title: "Select Sub-category", 4503 placeholder: "Select Sub-category", 4504 allowClear: true, 4505 formatNoMatches: function () { 4506 return "No matches found"; 4507 } 4508 }); 4509 $("#location_value_dropdown").select2({ 4510 title: "More Options", 4511 placeholder: "More Options", 4512 allowClear: true 4513 }); 4514 } 4515 4516 if(preloaded_ttid !== false || preloaded_tid !== false || preloaded_sid !== false){ 4517 $(document).ready(function(){ 4518 // Skip if homepage widget already handles preload 4519 if(window._bdCategoryPreloaded) return; 4520 4521 if(preloaded_sid !== false && $("#sid").length > 0){ 4522 select2OnFormClick(); 4523 setTimeout(() => { 4524 $("#sid").select2('val', preloaded_sid); 4525 $('#sid').trigger('change'); 4526 }, 500); 4527 }else if(preloaded_tid !== false && $("#sid").length <= 0){ 4528 select2OnFormClick(); 4529 setTimeout(() => { 4530 $("#tid").select2('val', preloaded_tid);
4531 $('#tid').trigger('change'); 4532 }, 500); 4533 } 4534 }); 4535 } 4536 </script>
vendor: 2 bytes, line 4536
4536
4537<script> 4538 // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score 4539 $(document).ready(function() { 4540 var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness 4541 4542 // Iterate over each select element that does not have an aria-label 4543 $('select:not([aria-label])').each(function() { 4544 // Use the ID or placeholder as the base for the aria-label, stripping HTML tags 4545 var baseLabel = this.id || $(this).attr('placeholder') || 'select'; 4546 baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim 4547 4548 // Ensure uniqueness of each aria-label 4549 ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1; 4550 var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel]; 4551 4552 // Truncate aria-label to 100 characters 4553 ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel; 4554 4555 // Set the aria-label attribute to the unique label 4556 $(this).attr('aria-label', ariaLabel); 4557 }); 4558 }); 4559</script>
vendor: 2 bytes, line 4559
4559
4560<script type="application/ld+json"> 4561{ 4562 "@context": "https://schema.org", 4563 "@graph": [ 4564 { 4565 "@type": "WebSite", 4566 "@id": "https://www.thetrainerdirectory.com/#website", 4567 "name": "The Trainer Directory", 4568 "url": "https://www.thetrainerdirectory.com/", 4569 "inLanguage": "en-US", 4570 "potentialAction": { 4571 "@type": "SearchAction", 4572 "target": "https://www.thetrainerdirectory.com/sitesearch?q={search_term_string}", 4573 "query-input": "required name=search_term_string", 4574 "name": "Search Directory: The Trainer Directory" 4575 }, 4576 "publisher": { 4577 "@id": "https://www.thetrainerdirectory.com/#organization" 4578 } 4579 }, 4580 { 4581 "@type": "Organization", 4582 "@id": "https://www.thetrainerdirectory.com/#organization", 4583 "name": "The Trainer Directory", 4584 "description": "Search the most complete trainer directory. Find trainers.", 4585 "url": "https://www.thetrainerdirectory.com/", 4586 "mainEntityOfPage": { 4587 "@type": "WebPage", 4588 "@id": "https://www.thetrainerdirectory.com/#webpage" 4589 }, 4590 "contactPoint": [ 4591 { 4592 "@type": "ContactPoint", 4593 "email": "[email protected]", 4594 "contactType": "customer support", 4595 "availableLanguage": [ 4596 "en" 4597 ], 4598 "areaServed": "GB" 4599 } 4600 ], 4601 "areaServed": { 4602 "@type": "Country", 4603 "name": "GB" 4604 }, 4605 "logo": { 4606 "@type": "ImageObject", 4607 "@id": "https://www.thetrainerdirectory.com/#logo", 4608 "url": "/images/ttd_logo.png" 4609 }, 4610 "image": { 4611 "@type": "ImageObject", 4612 "@id": "https://www.thetrainerdirectory.com/#image", 4613 "url": "/images/ttd_logo.png" 4614 }, 4615 "keywords": [ 4616 "Professional", 4617 "Trainer", 4618 "The Trainer Directory", 4619 "The Trainer Directory", 4620 "Trainer", 4621 "Professional" 4622 ] 4623 }, 4624 { 4625 "@type": "WebPage", 4626 "@id": "https://www.thetrainerdirectory.com/#webpage", 4627 "url": "https://www.thetrainerdirectory.com/", 4628 "name": "Trainer Directory - Find Trainers - The Trainer Directory", 4629 "description": "Search the most complete trainer directory. Find trainers.", 4630 "inLanguage": "en-US", 4631 "copyrightYear": "2026", 4632 "copyrightHolder": { 4633 "@id": "https://www.thetrainerdirectory.com/#organization" 4634 }, 4635 "about": "The Trainer Directory", 4636 "spatialCoverage": { 4637 "@type": "Place", 4638 "address": { 4639 "@type": "PostalAddress", 4640 "addressCountry": "GB" 4641 } 4642 }, 4643 "mainEntityOfPage": { 4644 "@id": "https://www.thetrainerdirectory.com/#webpage" 4645 }, 4646 "isPartOf": { 4647 "@id": "https://www.thetrainerdirectory.com/#website" 4648 }, 4649 "publisher": { 4650 "@id": "https://www.thetrainerdirectory.com/#organization" 4651 }, 4652 "keywords": [ 4653 "Professional", 4654 "Trainer", 4655 "The Trainer Directory", 4656 "The Trainer Directory", 4657 "Trainer", 4658 "Professional" 4659 ], 4660 "dateModified": "2025-01-03T14:28:46+00:00", 4661 "primaryImageOfPage": { 4662 "@id": "https://www.thetrainerdirectory.com/#image" 4663 } 4664 } 4665 ] 4666}</script>
4666 4667
4668<script> 4669// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete 4670(function() { 4671 if (!document.querySelector('link[href*="bootstrap-icons"]')) { 4672 var link = document.createElement('link'); 4673 link.rel = 'stylesheet'; 4674 link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1'; 4675 document.head.appendChild(link); 4676 } 4677})(); 4678</script>
4678 4679<style type='text/css'> .input-group.normal-autosuggest input,.input-group.sm-autosuggest input, .input-group.md-autosuggest input { 4680 border-radius: 0 8px 8px 0 !important; 4681 } 4682.normal-autosuggest .twitter-typeahead, .sm-autosuggest .twitter-typeahead, .md-autosuggest .twitter-typeahead, .large-autosuggest .twitter-typeahead { 4683 display: inline-block; 4684 height: 25px; 4685 position: relative; 4686 width: 100%; 4687} 4688.input-group.normal-autosuggest .twitter-typeahead, .input-group.sm-autosuggest .twitter-typeahead, .input-group.large-autosuggest .twitter-typeahead:not(.search_box .twitter-typeahead) { 4689 width: inherit; 4690} 4691.normal-autosuggest .twitter-typeahead .clear_content.medium{ 4692 bottom: 0px; 4693} 4694.sm-autosuggest .twitter-typeahead .clear_content.small{ 4695 bottom: -4px; 4696} 4697.md-autosuggest.input-group .twitter-typeahead .clear_content.medium { 4698 bottom: -2px; 4699} 4700.md-autosuggest .twitter-typeahead { 4701 height: 32px; 4702} 4703.md-autosuggest .input-group-addon + .input_wrapper .twitter-typeahead { 4704 height: 38px; 4705 vertical-align: top; 4706} 4707.md-autosuggest-input + .clear_content.medium { 4708 bottom: 0px; 4709} 4710.large-autosuggest .twitter-typeahead { 4711 height: 40px; 4712} 4713.normal-autosuggest .twitter-typeahead{ 4714 height: 38px; 4715} 4716.normal-autosuggest .twitter-typeahead .tt-hint, .sm-autosuggest .twitter-typeahead .tt-hint { 4717 background: #fff !important; 4718 border: 1px solid #ccc!important; 4719 border-radius: 0 8px 8px 0; 4720 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important; 4721 color: transparent; 4722 left: 0; 4723 padding: 4px 11px; 4724 position: absolute; 4725 top: 0; 4726 width: 100%; 4727 font-size:12px; 4728} 4729.normal-autosuggest.input-group-addon .fa, .sm-autosuggest .input-group-addon .fa, .input-group-sm .input-group-addon .fa {font-size:12px} 4730.md-autosuggest .twitter-typeahead .tt-hint { 4731 height: 100%; 4732 background: #ffffff none repeat scroll 0 0 !important; 4733 border: 1px solid #cccccc !important; 4734 border-radius: 0 8px 8px 0; 4735 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important; 4736 color: rgba(0, 0, 0, 0); 4737 left: 0; 4738 padding: 6px 11px; 4739 position: absolute; 4740 top: 0; 4741 width: 100%; 4742} 4743.large-autosuggest {background: #fff !important;border-radius:10px;} 4744.large-autosuggest input {width: 100%!important;box-shadow:none; border-radius: 10px;} 4745 .input-group.large-autosuggest input,.input-group.large-autosuggest .twitter-typeahead .tt-hint { 4746 border-radius: 0 10px 10px 0!important; 4747 } 4748 .large-autosuggest .twitter-typeahead .tt-hint { 4749 background: #fff !important; 4750 border: 1px solid #ccc!important; 4751 border-radius: 10px; 4752 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important; 4753 color: transparent; 4754 left: 0; 4755 position: absolute; 4756 top: 0; 4757 width: 100%; 4758 font-size: 18px; 4759 height: 46px; 4760 line-height: 1.33333; 4761 padding: 10px 15px; 4762} 4763.tt-dataset .empty-message { 4764 display: none !important; 4765} 4766.twitter-typeahead .tt-query {background-color:#fff!important} 4767.input-group.large-autosuggest span:first-child .tt-hint {border-radius: 0 !important;} 4768span.tt-dropdown-menu { 4769 border: 1px solid #FCFCFC; 4770 border-radius: 5px; 4771 box-shadow: 0 5px 10px rgba(0,0,0,.2); 4772 width: 100% !important; 4773} 4774.tt-is-under-cursor a.suggest-link { 4775 background: #55ACEE; 4776} 4777 4778.tt-is-under-cursor .media-heading, 4779.tt-is-under-cursor .suggest-origin, 4780.tt-is-under-cursor .location{ 4781 color:#fff!important; 4782} 4783.tt-suggestion .media .media-body .suggest-origin { 4784 color: rgba(45, 91, 137,0.9); 4785 padding: 1px 0; 4786 border-radius: 6px; 4787 font-weight: bold; 4788 line-height: 12px; 4789} 4790.tt-suggestion { 4791 background: #fff; 4792 border-bottom: 1px solid #eee; 4793 -webkit-transition: all 0.3s ease-in-out; 4794 -moz-transition: all 0.3s ease-in-out; 4795 -o-transition: all 0.3s ease-in-out; 4796 transition: all 0.3s ease-in-out; 4797} 4798body .tt-suggestions .media.br-bottom img { 4799 max-width: 45px; 4800 height: auto; 4801} 4802body .tt-suggestions .media-body span { 4803 font-size: 10px; 4804} 4805body .tt-suggestions .media-body h4 { 4806 font-size: 12px; 4807 margin: 2px 0px; 4808 text-transform: capitalize; 4809} 4810a.suggest-link { 4811 padding: 5px; 4812 display: block; 4813} 4814a.suggest-link img { 4815 border-radius: 100px; 4816 display: block; 4817 margin: 0 auto; 4818 height: 100%!important; 4819 width: 100%; 4820 object-fit: cover; 4821} 4822.left-suggest-col {
4823 display: inline-block; 4824 vertical-align: middle; 4825 width: 44px; 4826 height: 44px; 4827} 4828.right-suggest-col { 4829 display: inline-block; 4830 padding-left: 1%; 4831 text-align: left; 4832 vertical-align: middle; 4833 width: calc(100% - 1% - 50px); 4834} 4835p.media-heading { 4836 color: #333; 4837 font-size: 12px; 4838 font-weight: 600; 4839 margin-bottom: 0; 4840} 4841p.suggest-origin { 4842 font-size: 10px; 4843 color: #333; 4844 margin:0; 4845} 4846p.location { 4847 color: #333; 4848 font-size: 10px; 4849 margin: 2px 0; 4850} 4851body .tt-is-under-cursor a.suggest-link { 4852 background: #F7F7F7; 4853} 4854body .tt-is-under-cursor .media-heading, body .tt-is-under-cursor .suggest-origin, body .tt-is-under-cursor .location { 4855 color: #333!important; 4856} 4857a.suggest-link[data-heading="heading"] { 4858 pointer-events: none; 4859 cursor: default; 4860 text-decoration: none; 4861} 4862body .tt-is-under-cursor a.suggest-link[data-heading="heading"] { 4863 background: rgb(0, 45, 98); 4864} 4865/* --- all the novalue css --- */ 4866a.suggest-link .suggest-origin[data-state="novalue"] { 4867 display: none; 4868} 4869a.suggest-link .location[data-state="novalue"] { 4870 display: none; 4871} 4872a.suggest-link img[data-state="novalue"] { 4873 display: none; 4874} 4875a.suggest-link .suggest-origin[data-state="heading"] { 4876 display: none; 4877} 4878a.suggest-link .media-heading[data-heading="heading"] { 4879 color:rgb(255, 255, 255)!important; 4880 font-weight: bold; 4881 padding: 4px; 4882 font-size: 13px; 4883} 4884.left-suggest-col[data-photo="novalue"], .left-suggest-col[data-photo="undefined"] { 4885 display: none; 4886} 4887.right-suggest-col[data-photo="novalue"], .right-suggest-col[data-photo="undefined"] { 4888 width: 100%; 4889} 4890a.suggest-link[href="novalue"] { 4891 cursor: default !important; 4892 pointer-events: none; 4893} 4894a.suggest-link[data-heading="heading"] { 4895 background-color: rgb(0, 45, 98); 4896} 4897div.content-shell { 4898 overflow: inherit; 4899} 4900span.tt-dropdown-menu div { 4901 float: none; 4902} 4903.tt-menu { 4904 border-radius: 0 0 6px 6px; 4905 box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); 4906 overflow: hidden; 4907 width: 100%; 4908 z-index: 150 !important; 4909} 4910.tt-menu .tt-dataset { 4911 overflow-y: auto; 4912 max-height: 200px; 4913} </style>
4913<script type="text/javascript"> 4914 4915 if (typeof decodeHtml != "function") { 4916 function decodeHtml(html) { 4917 var txt = document.createElement("textarea"); 4918 txt.innerHTML = html; 4919 return txt.value; 4920 } 4921 } 4922 function initializeTypeheadMember_search() { 4923 var member_searchEngine = new Bloodhound({ 4924 initialize: false, 4925 datumTokenizer: function (d) { 4926 return Bloodhound.tokenizers.whitespace(value); 4927 }, 4928 queryTokenizer: Bloodhound.tokenizers.whitespace, 4929 remote: { 4930 url: `/api/suggest/json/get/1,users_data,Listings,1,1,1,1,1,3|88,list_professions,Main Categories,1,0,1,1,1,3|89,list_services,Sub Categories,1,0,1,1,1,3?tID=35&q=%QUERY`, 4931 wildcard: '%QUERY', 4932 filter: function (response) { 4933 4934 if (response != null) { 4935 //var response = response.slice(1); 4936 $.each( 4937 response, function (key, value) { 4938 response[key]['value'] = decodeHtml(value['value']); 4939 response[key]['comes_f'] = decodeHtml(value['comes_f']); 4940 response[key]['location'] = decodeHtml(value['location']); 4941 4942 if (response[key]['value'].indexOf('-/-') >= 0) { 4943 var splitResult = response[key]['value'].split('-/-'); 4944 response[key]['value'] = splitResult[0]; 4945 } 4946 } 4947 ); 4948 4949 } else { 4950 response = {error: "null"}; 4951 } 4952 4953 return response; 4954 } 4955 } 4956 }); 4957 var member_searchDataSrc = member_searchEngine.initialize(); 4958 4959 member_searchDataSrc 4960 .done(function () { /*console.log('Autosuggestions engine initialized.'); */ 4961 }) 4962 .fail(function () { /*console.log('err, something went wrong while initializing autosuggestions engine:(');*/ 4963 }) 4964 4965 $('.member_search').typeahead({ 4966 minLength: 2, 4967 highlight: true, 4968 hint: false }, 4969 { 4970 display: 'value', 4971 source: member_searchEngine.ttAdapter(), 4972 limit: 10, 4973 templates: { 4974 empty: [ 4975 '<div class="empty-message">', 4976 'Result not found', 4977 '</div>' 4978 ].join(" "), 4979 notFound: [ 4980 '<div class="notFound-message">', 4981 'Result not found', 4982 '</div>' 4983 ].join(" "), 4984 suggestion: function (data) { 4985 4986 if (data == "null") { 4987 strTemplate = '<div class="empty-message">Result not found</div>'; 4988 4989 } else { 4990 strTemplate = '<a class="suggest-link" href="' + data.link + '" data-state="' + data.link + '" data-heading="' + data.comes_f + '"> <div class="left-suggest-col" data-photo="' + data.photo + '"> <img src="' + data.photo + '" data-state="' + data.photo + '"> </div> <div class="right-suggest-col" data-photo="' + data.photo + '"> <p class="media-heading" data-state="' + data.value + '" data-heading="' + data.comes_f + '">' + data.value + '</p> <p class="suggest-origin" data-state="' + data.comes_f + '">' + data.comes_f + '</p> <p class="location" data-state="' + data.location + '">' + data.location + '</p> </div> </a> '; 4991 4992 if ((data.link == undefined) || (data.link == "") || (data.link == "novalue")) { 4993 strTemplate = strTemplate.replace(/href=".*?"/, "href='#'"); 4994 } 4995 4996 if ((data.photo == undefined) || (data.photo == "") || (data.photo == "novalue")) { 4997 strTemplate = strTemplate.replace(/<img src=".*?>/, ""); 4998 } 4999 } 5000 5001 return strTemplate; 5002 } 5003 }, 5004 }).on('typeahead:selected', function (obj, datum) { 5005 /* 5006 console.log(obj); 5007 console.log(datum); 5008 */ 5009 }); 5010 5011 $('.member_search').each(function () {
5012 var inputWidth = $(this).outerWidth(); 5013 $(this).siblings('.tt-dropdown-menu').css('width', inputWidth + 'px'); 5014 }); 5015 } 5016 </script>
5016 5017
5017<script> 5018 let typeheadElement = '.member_search'; 5019 let TypeheadNameListFunction = 'initializeTypeheadMember_search'; 5020 let typeheadFormElement = undefined; 5021 window.addEventListener('load', () => { 5022 if(typeheadElement.length > 1) { 5023 typeheadFormElement = document.querySelectorAll(typeheadElement); 5024 } 5025 if (typeof typeheadFormElement != "undefined") { 5026 for (let i = 0; i < typeheadFormElement.length; i++) { 5027 let closestForm = typeheadFormElement[i].closest('form'); 5028 if (typeof closestForm != "undefined" && closestForm != null) { 5029 closestForm.addEventListener('focus', typeheadFormClick, false); 5030 } 5031 typeheadFormElement[i].addEventListener('focus', typeheadFormClick, false); 5032 } 5033 } 5034 }); 5035 function initializeTypehead(){ 5036 let splitFunctionNames= TypeheadNameListFunction.split(','); 5037 for ( let funcName of splitFunctionNames) 5038 if (typeof funcName != 'function') { 5039 window[funcName](); // execute the function 5040 5041 } 5042 } 5043 function typeheadFormClick(event) { 5044 5045 let head = document.getElementsByTagName('head')[0]; 5046 let script = document.createElement('script'); 5047 let elementClicked = event.target; 5048 script.type = 'text/javascript'; 5049 script.src = "https://cdnjs.cloudflare.com/ajax/libs/corejs-typeahead/0.11.1/typeahead.bundle.min.js"; 5050 script.onload = function () { 5051 initializeTypehead(); 5052 elementClicked.focus(); 5053 }; 5054 head.appendChild(script); 5055 if (typeof typeheadFormElement != "undefined") { 5056 for (let i = 0; i < typeheadFormElement.length; i++) { 5057 let closestForm = typeheadFormElement[i].closest('form'); 5058 if (typeof closestForm != "undefined" && closestForm != null) { 5059 closestForm.removeEventListener('focus', typeheadFormClick, false); 5060 } 5061 typeheadFormElement[i].removeEventListener('focus', typeheadFormClick, false) 5062 } 5063 } 5064 } 5065 5066 5067 </script>
5067 5068 5069
5069<script> 5070 window.addEventListener('load', () => { 5071 let embedlyClass = document.querySelector('.fr-embedly'); 5072 if (typeof embedlyClass != "undefined" && embedlyClass != null) { 5073 let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js"; 5074 let head = document.getElementsByTagName("head")[0]; 5075 let script = document.createElement('script'); 5076 script.type = 'text/javascript'; 5077 script.src = embedlyURI; 5078 script.async = true; 5079 script.onload = function() { 5080 setTimeout(function() { 5081 if (typeof embedly !== 'undefined' && embedly.card) { 5082 document.querySelectorAll('.embedly-card').forEach(function(card) { 5083 embedly.card(card); 5084 }); 5085 } 5086 }, 500); 5087 }; 5088 head.appendChild(script); 5089 } 5090 }); 5091</script>
5091<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
5091<script> 5092 $(function () { 5093 $(".lazyloader").Lazy({ 5094 afterLoad: function(element) { 5095 $(".gridView.activeView").click(); 5096 } 5097 }); 5098 5099 }); 5100 $("button[class*='slick'],button[id*='slick']").click(function () { 5101 $(this).parents(".row").find(".lazyloader").lazy({ 5102 bind: "event", 5103 delay: 0 5104 }); 5105 }); 5106 $("[class*='slick'],[id*='slick']").on("swipe",function(){ 5107 $(this).parents(".row").find(".lazyloader").lazy({ 5108 bind: "event", 5109 delay: 0 5110 }); 5111 }); 5112 </script>
5112<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
5112 5113 </body> 5114 </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.