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/storyCrews_Favicon-08.png"> 13 <link rel="icon" type="image/png" href="/images/storyCrews_Favicon-08.png"> 14 15 <!-- Site Meta Data --> 16 <title>Login Now - StoryCrews ™ï¸ Videographer and Video Expert Directory</title> 17 <meta name="description" content="Login to your account on StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 18 <meta name="keywords" content="local video production,videographer"> 19 <meta name="robots" content="index, follow"> 20 21 <!-- Canonical URL --> 22 <link rel="canonical" href="https://www.storycrews.com/login"> 23 <link rel="alternate" type="application/rss+xml" title="StoryCrews â¢ï¸ Videographer and Video Expert Directory RSS Feed" href="https://www.storycrews.com/rss" /> 24 25 <!-- Social Media Meta Data --> 26 <meta property="og:type" content="website"> 27 <meta property="og:url" content="https://www.storycrews.com/login"> 28 <meta property="og:site_name" content="StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 29 <meta property="og:title" content="Login Now - StoryCrews ™ï¸ Videographer and Video Expert Directory"> 30 <meta property="og:description" content="Login to your account on storycrews â¢ï¸ videographer and video expert directory. "> 31 <meta property="og:image" content="https://www.storycrews.com/images/storyCrews_hero.jpg"> 32
32<script> 33 var siteInfoSpan=document.createElement('span'); 34 siteInfoSpan.style.cssText='position:absolute;color:transparent;width:100%;z-index:-1;height:50px;top:0;'; 35 siteInfoSpan.textContent='www.storycrews.com - StoryCrews â¢ï¸ Videographer and Video Expert Directory'; 36 document.documentElement.appendChild(siteInfoSpan); 37 </script>
37 38 39 <!-- Preload --> 40 <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> 41 <link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700,800,900&display=swap" 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=Open+Sans:300,400,600,700,800,900&display=swap"> 54 <noscript> 55 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans: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/js/jquery.min.js"></script>
71 72
72<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/bootstrap-3.3.5.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 <!-- Breadcrumb Position --> 97 <style>html.bc-relocate .container:has(> .breadcrumb):has(~ .hero_section_container) .breadcrumb{display:none!important;}html.bc-relocate .hero_section_container + .clearfix + .container::before{content:"";display:block;min-height:24px;}.hero_section_container + .clearfix + .container > .breadcrumb:first-child{position:relative;top:-24px;}</style> 98
98<script>document.documentElement.classList.add('bc-relocate');document.addEventListener('DOMContentLoaded',function(){var bc=document.querySelector('ol.breadcrumb'),hero=document.querySelector('.hero_section_container');if(bc&&hero){var t=hero.nextElementSibling;while(t&&!t.classList.contains('container'))t=t.nextElementSibling;if(t)t.insertBefore(bc,t.firstChild);}document.documentElement.classList.remove('bc-relocate');});</script>
98 99 100 101 <!-- Prefetch --> 102 <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js" as="script"> 103 <link rel="prefetch" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0" as="script"> 104 105 <!-- Custom Site-wide HEAD Content -->
105<script src="https://embed.lpcontent.net/leadbars/current/embed.js" data-bar="sPDM8RguFwkypaueoxAJ3f" data-bar-domain="authenticweb.lpages.co" async defer></script>
105 106 107<!-- Get Started form Script --> 108<!--
108<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm_share", b="https://embed.typeform.com/"; if(!gi.call(d,id)){ js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() </script>
108 109--> 110<!-- Google Tag Manager -->
111<script>
vendor: 331 bytes, lines 111-115
111(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 112new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 113j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 114'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 115})(window,document,'script','dataLayer','
115GTM-PJGVCVG
vendor: 3 bytes, line 115
115');
115</script>
115 116<!-- End Google Tag Manager --> 117<!-- Facebook Pixel Code -->
118<script>
vendor: 426 bytes, lines 118-127
118 119 !function(f,b,e,v,n,t,s) 120 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 121 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 122 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 123 n.queue=[];t=b.createElement(e);t.async=!0; 124 t.src=v;s=b.getElementsByTagName(e)[0]; 125 s.parentNode.insertBefore(t,s)}(window, document,'script', 126 'https://connect.facebook.net/en_US/fbevents.js'); 127 fbq('init', '
127557590928406455
vendor: 34 bytes, lines 127-128
127'); 128 fbq('track', 'PageView');
129</script>
129 130<noscript><img height="1" width="1" style="display:none" 131 src="https://www.facebook.com/tr?id=557590928406455&ev=PageView&noscript=1" 132/></noscript> 133<!-- End Facebook Pixel Code --> 134 135 136<!-- ManyChat -->
137<script src=â//widget.manychat.com/466670094091350.jsâ async=âasyncâ></script>
137 138 139<!-- Google Tag Manager -->
140<script>
vendor: 331 bytes, lines 140-144
140(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 141new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 142j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 143'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 144})(window,document,'script','dataLayer','
144GTM-WS3T28K
vendor: 3 bytes, line 144
144');
144</script>
144 145<!-- End Google Tag Manager --> 146 147
148<script type="text/javascript"> 149_linkedin_data_partner_id = "46801"; 150</script>
150<script type="text/javascript"> 151(function(){var s = document.getElementsByTagName("script")[0]; 152var b = document.createElement("script"); 153b.type = "text/javascript";b.async = true; 154b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 155s.parentNode.insertBefore(b, s);})(); 156</script>
156 157<noscript> 158<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=46801&fmt=gif" /> 159</noscript> 160
161<script type="text/javascript"> 162_linkedin_data_partner_id = "46812"; 163</script>
163<script type="text/javascript"> 164(function(){var s = document.getElementsByTagName("script")[0]; 165var b = document.createElement("script"); 166b.type = "text/javascript";b.async = true; 167b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 168s.parentNode.insertBefore(b, s);})(); 169</script>
169 170<noscript> 171<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=46812&fmt=gif" /> 172</noscript> 173 174<!-- typeform pop up code -->
175<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id="typef_orm_share", b="https://embed.typeform.com/"; if(!gi.call(d,id)){ js=ce.call(d,"script"); js.id=id; js.src=b+"embed.js"; q=gt.call(d,"script")[0]; q.parentNode.insertBefore(js,q) } })() </script>
175 176<!-- typeform embed standard code -->
177<script> (function() { var qs,js,q,s,d=document, gi=d.getElementById, ce=d.createElement, gt=d.getElementsByTagName, id=âtypef_ormâ, b=âhttps://embed.typeform.com/â; if(!gi.call(d,id)) { js=ce.call(d,âscriptâ); js.id=id; js.src=b+âembed.jsâ; q=gt.call(d,âscriptâ)[0]; q.parentNode.insertBefore(js,q) } })() </script>
177
177<script> 178 function g() { 179 window.addEventListener('load', () => { 180 if (typeof initializeG === 'function') { 181 initializeG(); 182 } else if (typeof initializeGoogleMaps === 'function') { 183 initializeGoogleMaps(); 184 } 185 }); 186 } 187 </script>
187 188
188<script src="https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places®ion=US&callback=g&language=en&key=AIzaSyACwMn9sDO2mBCLTP-wwvGmVJJ5MS1bYwM"></script>
188 189 190</head> 191 192<body class="general-session"><!-- 193IMPORTANT: 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. 194 195INSTEAD: If custom CSS rules are needed, add them directly into the DESIGN SETTINGS > CUSTOM CSS section. 196--> 197<style> 198 .upload-form-field::before { 199 content: "choose files"; 200 display: inline-block; 201 border: 1px solid #999; 202 border-radius: 3px; 203 padding: 5px 8px; 204 } 205 #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 { 206 white-space: nowrap !important; 207 } 208 /* Main Website Design */ 209 body,.modal-header,.modal-content,.modal-body,.modal-footer { 210 background: rgb(255, 255, 255); 211 color: rgb(41, 41, 41); 212 font-family: 'Open Sans'; 213 font-size: 14px; 214 } 215 .select2-container .select2-choice { 216 font-family: 'Open Sans'!important; 217 } 218 html{ 219 background: rgb(64, 64, 64) } 220 .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) a, .bootstrap-datetimepicker-widget *:not(.active,[data-action="togglePeriod"]) td,.datepicker th.picker-switch,.datepicker .dow { 221 color: #000 !important; 222 } 223 a,a.h1,a.h2,a.h3,a.h4,a.h5,a.h6,.pricing_menu li ul li a:not(.btn) { 224 color: rgb(156, 183, 212); 225 } 226 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 { 227 color: rgb(88, 106, 120); 228 } 229 .breadcrumb a{ 230 color: rgba(119, 119, 119,0.9); 231 } 232 .breadcrumb a:hover, .breadcrumb a:focus,.breadcrumb > .active { 233 color: rgb(119, 119, 119); 234 } 235 .help-inline, .help-block { 236 color: rgba(41, 41, 41,0.5); 237 } 238 .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { 239 font-family: 'Open Sans'; 240 } 241 /* Header Design */ 242 .header, .mobile_website_logo img { 243 background: rgb(255, 255, 255); 244 } 245 .header .mini-nav li a:not(.btn):not(.network-icon), .header .mini-nav span { 246 color: rgb(88, 106, 120); 247 font-size: 14px; 248 } 249 .header .mini-nav li a:not(.btn):hover { 250 color: rgba(88, 106, 120,0.95); 251 } 252 .header .btn_get_listed { 253 background-color: rgb(88, 106, 120); 254 border: 1px solid rgb(88, 106, 120); 255 color: rgb(255, 255, 255)!important; 256 } 257 .header .btn_get_listed:hover, .header .btn_get_listed:focus { 258 background-color: rgba(88, 106, 120,0.97); 259 } 260 .header .btn_search { 261 background-color: rgba(88, 106, 120,0.97); 262 border: 1px solid rgb(88, 106, 120); 263 color: rgb(255, 255, 255); 264 } 265 .header .btn_search:hover, .header .btn_search:focus { 266 background-color: rgb(88, 106, 120); 267 color: rgb(255, 255, 255); 268 } 269 270 /* Logo Design */ 271 .logo,.logo:hover,.logo:focus { 272 color: rgb(52, 73, 94); 273 font-family: 'Open Sans'; 274 } 275 .logo .slogan { 276 color: rgb(97, 96, 96); 277 } 278 .logo .fa { 279 color: rgb(52, 73, 94); 280 } 281 282 /* Main Menu Design */ 283 .member-profile-tabs > ul, .member-profile-tabs .tabs-container { 284 background: rgb(238, 238, 238); 285 position: sticky; 286 z-index: 1; 287 top: 50px; 288 } 289 /* Google Translate When Main Menu Sticky Top */ 290 .skiptranslate:not([style*="display: none;"]) ~ .header .navbar-fixed-top { 291 top: 39px; 292 } 293 .skiptranslate iframe, .skiptranslate:not(.skiptranslate.goog-te-gadget) { 294 position: fixed !important; 295 top: 0 !important; 296 z-index: 999; 297 } 298 @media only screen and (max-width: 1100px) { 299 .member-profile-tabs > ul, .member-profile-tabs .tabs-container { 300 top: 50px; 301 } 302 } 303 .header ul.nav.navbar-nav li ul { 304 background-color: rgb(255, 255, 255); 305 } 306 .header ul.nav.navbar-nav li ul li a, .header ul.nav.navbar-nav li ul li span { 307 color: rgb(0, 0, 0); 308 font-weight: 400; 309 } 310 .header .navbar-default, .pagination > .active > a { 311 background-color: rgb(228, 234, 242); 312 } 313 .header ul.nav.navbar-nav li ul li a:hover, .header ul.nav.navbar-nav li ul li a:focus{ 314 border-left-color: rgb(0, 0, 0); 315 background: rgb(0, 0, 0); 316 color: rgb(255, 255, 255); 317 }
318 .navbar-default .navbar-toggle .icon-bar { 319 background-color: rgb(0, 0, 0); 320 } 321 .user_sidebar, .main_menu, .compact-mobile-search { 322 color: rgb(0, 0, 0); 323 } 324 .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span { 325 color: rgb(0, 0, 0); 326 font-weight: 400; 327 } 328 .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 { 329 color: rgb(156, 183, 212); 330 } 331 .navbar-default .navbar-nav > li { 332 font-family: 'Open Sans'; 333 } 334 335 336 337 /* Footer Design */ 338 .footer { 339 background-color: rgb(64, 64, 64); 340 display: block; 341 } 342 .footer, .footer_menu a,.footer_terms a,.footer_menu .content { 343 color: rgb(250, 250, 250); 344 } 345 .footer_menu a:hover, .footer_terms a:hover, .footer_menu a:focus, .footer_terms a:focus { 346 color: rgb(156, 183, 212); 347 } 348 .footer_menu .head { 349 color: rgb(255, 255, 255); 350 } 351 .btn_footer_get_listed { 352 background-color: rgb(156, 183, 212); 353 border: 1px solid rgb(156, 183, 212); 354 color: rgb(255, 255, 255)!important; 355 } 356 .btn_footer_get_listed:hover, .btn_footer_get_listed:focus{ 357 background-color: rgba(156, 183, 212,0.95); 358 } 359 360 /* Homepage Design */ 361 .homepage_settings h1, .homepage_settings h2, .homepage_map h1, .homepage_map h2 { 362 font-family: 'Open Sans'; 363 } 364 .homepage_settings h1, .homepage_map h1 { 365 color: rgb(0, 0, 0); 366 font-weight: 600; 367 text-align: center; 368 } 369 .homepage_settings h2, .homepage_map h2 { 370 color: rgb(255, 255, 255); 371 font-weight: 400; 372 text-align: center; 373 374 } 375 .homepage_settings .search_box label { 376 color: rgb(0, 0, 0); 377 } 378 .btn_home_search, .search_box input[type=submit] { 379 background-color: rgb(88, 106, 120); 380 border: 1px solid rgb(88, 106, 120); 381 color: rgb(255, 255, 255); 382 } 383 .btn_home_search:hover, .btn_home_search:focus, .search_box input[type=submit]:hover, .search_box input[type=submit]:focus { 384 background-color: rgba(88, 106, 120,0.97); 385 color: rgb(255, 255, 255); 386 } 387 .homepage_settings .search_box { 388 389 background-color: rgba( 255, 255, 255, 0.0); 390 } 391 392 /* Homepage Steps Module */ 393 .homepage_steps { 394 background: none; 395 box-shadow: none; 396 padding: 0; 397 color: rgb(255, 255, 255); 398 } 399 .homepage_steps a.homepage_step_link,.homepage_steps a.homepage_step_link:hover,.homepage_steps a.homepage_step_link:active{ 400 color: rgb(255, 255, 255)!important; 401 } 402 .homepage_steps .fa { 403 color: rgb(255, 255, 255); 404 background-color: rgba(255, 255, 255,0.075); 405 } 406 .homepage_steps h2 + p { 407 opacity: .6; 408 } 409 410 /* Blog Posts Slider Settings */ 411 #myCarousel h2 a, .carousel-caption p,#myCarousel .list-group-item h2, #myCarousel li.list-group-item h4 { 412 color: rgb(250, 250, 250); 413 } 414 #myCarousel .list-group-item { 415 background-color: rgba(64, 64, 64,0.9); 416 border-color: rgba(64, 64, 64,0.80); 417 } 418 #myCarousel .carousel-caption { 419 background-color: rgba(64, 64, 64,0.8); 420 } 421 #myCarousel .list-group, #myCarousel .carousel-inner { 422 background-color: rgb(64, 64, 64) } 423 #myCarousel .list-group .active, #myCarousel .list-group-item:hover { 424 background-color: rgb(64, 64, 64) } 425 #myCarousel .list-group .active h2, #myCarousel .list-group-item:hover h2{ 426 color: rgb(0, 139, 169); 427 } 428 429 /* Additional Settings */ 430 .well blockquote { 431 background: rgb(255, 255, 255) none repeat scroll 0 0; 432 border-color: rgb(238, 238, 238); 433 color: rgb(41, 41, 41); 434 padding: 10px 20px; 435 } 436 .account-form-box form table tr td table { 437 background-color: transparent!important; 438 border: none!important; 439 } 440 441 .account-form-box form table tr td table td { 442 background-color: transparent!important; 443 color: rgb(41, 41, 41)!important; 444 border: none!important; 445 } 446 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{ 447 color: rgb(41, 41, 41)!important; 448 } 449 .table.dataTable > thead > tr > th, .table > thead > tr > th, .fr-view table th, .fr-view table tfoot td { 450 border-color: rgba(85, 85, 85,0.1); 451 background-color: rgb(238, 238, 238); 452 color: rgb(85, 85, 85);
453 font-weight:600; 454 border-left: none; 455 border-bottom-width: 1px; 456 } 457 .table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, table.dataTable.no-footer { 458 border-color: rgba(85, 85, 85,0.1); 459 } 460 .table > tfoot > tr > td:not(:last-child) { 461 border-right: 1px solid rgba(85, 85, 85,0.1); 462 } 463 table.dataTable.no-footer, table.dataTable { 464 border: 1px solid rgb(238, 238, 238)!important; 465 } 466 .table-view li:not(.table-display-about_me li, .froala-data li), .table-view .table-view-group > div { 467 border-top:1px solid rgb(238, 238, 238); 468 } 469 .table-view .table-view-group:last-child { 470 border-bottom:1px solid rgb(238, 238, 238); 471 } 472 table.dataTable tbody tr, .table-striped.dataTable, .table-striped, .fr-view .table-striped { 473 background-color: rgb(250, 250, 250)!important; 474 } 475 .table-striped.dataTable, .table-striped, .fr-view .table-striped { 476 border: 1px solid rgba(85, 85, 85,0.15); 477 border-collapse: separate; 478 overflow: hidden; 479 } 480 table#feature-body-datatable:has(.dropdown.open),table#digital-products-transactions:has(.dropdown.open), table#example:has(.dropdown.open) { 481 overflow: visible; 482 } 483 .table-striped.dataTable tbody > tr:nth-of-type(2n+1),.table-striped > tbody > tr:nth-of-type(2n+1) { 484 background-color: rgba(255, 255, 255,0.5)!important; 485 } 486 .nav-tabs, hr, .account-menu-title, .modal-header { 487 border-color: rgb(238, 238, 238); 488 } 489 .sidemenu_panel .list-group-item{ 490 background-color: transparent!important; 491 color: rgb(41, 41, 41)!important; 492 } 493 .img-thumbnail { 494 background-color: rgb(250, 250, 250)!important; 495 border: 1px solid rgb(238, 238, 238); 496 } 497 .member_admin_sidemenu p, .member_admin_sidemenu h3 { 498 color: rgb(41, 41, 41)!important; 499 } 500 .close { 501 color: rgb(41, 41, 41); 502 opacity: 1; 503 } 504 .member_results_header h1, .content_w_sidebar.feature-search h1, .feature_results_header h1 { 505 font-size:34px; 506 display: block; 507 } 508 .member_results_header h2, .feature_results_header h2 { 509 font-size:28px; 510 display: block; 511 } 512 .homepage_settings { 513 padding-top: 70px; 514 padding-bottom: 90px; 515 } 516 @media (max-width: 768px) { .mobile_website_logo .visible-xs {display: block !important;}} 517 @media only screen and (max-width: 768px) { 518 #website_logo {display: none;} 519 .header-right-container .website-search, .header-right-container .list-social-links {display: none;} 520 .member-profile-header .favorite {float:none} 521 } 522 523 524 @media only screen and (max-width: 1100px) { 525 } 526 .views > i.fa.activeView, .views > i.fa:hover { 527 background-color: rgb(41, 41, 41); 528 color: rgb(255, 255, 255); 529 } 530 .views > i.fa { 531 background-color: rgba(41, 41, 41,0.1); 532 color: rgb(41, 41, 41); 533 } 534 .ui-rangeSlider-label { 535 background-color: rgb(228, 234, 242)!important; 536 color: rgb(0, 0, 0)!important; 537 } 538 .pricing_menu li .title { 539 background: rgb(88, 106, 120); 540 color: rgb(255, 255, 255); 541 } 542 p.account-tip{ 543 color: rgb(41, 41, 41); 544 } 545 .circled_number { 546 background: rgb(0, 139, 169); 547 color: rgb(255, 255, 255); 548 } 549 .pic { 550 background-color: rgba(88, 106, 120,0.8); 551 color: rgb(255, 255, 255); 552 background-repeat: no-repeat; 553 background-position: center; 554 } 555 .pic .pic-caption { 556 background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%,rgba(88, 106, 120,0.85) 50%); 557 color: rgb(255, 255, 255); 558 } 559 .slick-prev-fa i, .slick-next-fa i{ 560 color: rgb(88, 106, 120); 561 } 562 .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 { 563 background-color: rgb(250, 250, 250); 564 border-color: rgb(238, 238, 238); 565 color: rgb(41, 41, 41); 566 } 567 .nav-pills > li.active a, .nav-pills > li > a:hover { 568 background-color: rgb(88, 106, 120)!important; 569 border-color: rgb(88, 106, 120)!important; 570 color: rgb(255, 255, 255)!important; 571 } 572 .sidemenu_panel .panel-heading { 573 color: rgb(41, 41, 41)!important; 574 background-color: rgb(250, 250, 250)!important; 575 } 576 .member-profile-tabs .nav-tabs > li:not(.active) > a, .login-register-tabs.nav-tabs > li:not(.active) > a, .nav-tabs > li:not(.active) > a { 577 background: rgba(250, 250, 250,0.5); 578 color: #5f5f5f; 579 } 580 .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 { 581 background: rgba(250, 250, 250,1); 582 color: rgb(41, 41, 41); 583 }
584 .author-snapshot .well:not(.well.bg-default) { 585 background-color: rgb(250, 250, 250)!important; 586 border-color: rgb(238, 238, 238)!important; 587 color: rgb(41, 41, 41)!important; 588 } 589 .nav-tabs>li>a, .nav-pills>li>a { 590 font-weight: 600; 591 } 592 .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{ 593 color: rgba(41, 41, 41,0.5); 594 } 595 #service_areas_table td,#service_areas_table_wrapper label, #service_areas_table_info, #service_areas_table_paginate > a { 596 color: rgb(41, 41, 41) !important; 597 } 598 .popover { 599 background-color: rgb(250, 250, 250); 600 border-color: rgb(250, 250, 250); 601 padding:0; 602 text-align:left; 603 } 604 .popover-title, .popover-content { 605 background-color: rgb(250, 250, 250); 606 color: rgb(41, 41, 41); 607 border-color: rgb(250, 250, 250); 608 text-align:left; 609 } 610 .popover-content { 611 background-color: rgba(41, 41, 41,.05); 612 border-radius: 4px; 613 transform: translate(-1px, -1px); 614 width: calc(100% + 2px); 615 margin-bottom: -2px; 616 } 617 .popover.left > .arrow::after { 618 border-left-color: rgb(250, 250, 250)!important; 619 } 620 .popover.right > .arrow::after { 621 border-right-color: rgb(250, 250, 250)!important; 622 } 623 .popover.bottom > .arrow::after { 624 border-bottom-color: rgb(250, 250, 250)!important; 625 } 626 .popover.top > .arrow::after { 627 border-top-color: rgb(250, 250, 250)!important; 628 } 629 .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{ 630 background-color: rgb(255, 255, 255); 631 color: rgb(41, 41, 41); 632 } 633 .module h1, .module h2, .module h3, .module h4, .module h5 { 634 color: rgb(62, 62, 62); 635 } 636 .module p:not(.fr-box.fr-basic .fr-element p) { 637 color: rgb(41, 41, 41); 638 } 639 .pagination>.active>a { 640 border-color: rgba(0, 0, 0,0.2); 641 } 642 .pagination>.active>a { 643 color: rgb(0, 0, 0); 644 } 645 .pagination > .active > a:hover, .pagination > .active > a:focus { 646 border-color: rgba(0, 0, 0,0.2); 647 background-color: rgb(228, 234, 242); 648 color: rgb(0, 0, 0); 649 } 650 .pagination > li > a { 651 color: rgb(228, 234, 242); 652 border-color: rgba(228, 234, 242,0.2); 653 background-color: rgb(0, 0, 0); 654 } 655 .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover { 656 background-color: rgb(228, 234, 242); 657 border-color: rgb(228, 234, 242); 658 color: rgb(0, 0, 0); 659 } 660 661 .nav-pills.nav-wizard > li a, .nav-pills.nav-wizard > li a:hover{ 662 background-color: rgb(241, 184, 49)!important; 663 color: rgb(255, 255, 255)!important; 664 } 665 .member_wizard2 li.incomplete a, .member_wizard2 li.incomplete a:hover { 666 background-color: rgb(220, 88, 52)!important; 667 border-color: rgb(220, 88, 52); 668 color: rgb(255, 255, 255); 669 } 670 .nav-pills.nav-wizard > li.active a, .nav-pills.member_wizard > li.active:hover a { 671 background-color: rgb(0, 139, 169)!important; 672 color: rgb(255, 255, 255)!important; 673 } 674 .member_wizard2 li.completed a, .member_wizard2 li.completed a:hover { 675 background-color: rgb(156, 210, 203)!important; 676 border-color: rgb(156, 210, 203); 677 color: rgb(255, 255, 255); 678 } 679 680 .nav-pills.nav-wizard > li.active .nav-arrow, .nav-pills.nav-wizard > li.active:hover .nav-arrow { 681 border-color: transparent transparent transparent rgb(0, 139, 169)!important; 682 } 683 .nav-pills.nav-wizard > li.active .nav-wedge, .nav-pills.nav-wizard > li.active:hover .nav-wedge{ 684 border-color: rgb(0, 139, 169) rgb(0, 139, 169) rgb(0, 139, 169) transparent!important; 685 } 686 687 li.completed .nav-wedge, .nav-pills.nav-wizard > li.completed:hover .nav-wedge { 688 border-color: rgb(73, 75, 104) rgb(73, 75, 104) rgb(73, 75, 104) transparent!important; 689 } 690 691 li.incomplete .nav-wedge, .nav-pills.nav-wizard > li.incomplete:hover .nav-wedge { 692 border-color: rgb(241, 184, 49) rgb(241, 184, 49) rgb(241, 184, 49) transparent!important; 693 } 694 695 .nav-pills.member_wizard > li.completed a, .nav-pills.member_wizard > li.completed a:hover { 696 background-color: rgb(73, 75, 104)!important; 697 color: rgb(255, 255, 255)!important; 698 } 699 700 .member_wizard2 li { 701 color: rgb(255, 255, 255); 702 border-right: 10px solid rgb(255, 255, 255); 703 } 704 705 li.completed .nav-arrow, .nav-pills.nav-wizard > li.completed:hover .nav-arrow { 706 border-color: transparent transparent transparent rgb(73, 75, 104)!important; 707 } 708 709 li.incomplete .nav-arrow, .nav-pills.nav-wizard > li.incomplete:hover .nav-arrow{ 710 border-color: transparent transparent transparent rgb(241, 184, 49)!important; 711 } 712 713 /* Default Colors */ 714 .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 { 715 background-color: rgb(88, 106, 120); 716 border-color: rgb(88, 106, 120); 717 color: rgb(255, 255, 255); 718 } 719 .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 { 720 background-color: rgba(88, 106, 120,0.95); 721 border-color: rgb(88, 106, 120); 722 color: rgb(255, 255, 255); 723 } 724 .panel-primary { 725 background-color: #e6e9eb; 726 border-color: rgb(88, 106, 120); 727 } 728 .bg-primary,.progress-bar-primary,.module p.bg-primary,.label-primary,.badge-primary,.pricing_menu .title.bg-primary, .
728well .well.bg-primary, .module .well.bg-primary, .well .module.bg-primary,.tab-content .module.bg-primary,.tab-content .well.bg-primary { 729 background-color: rgb(88, 106, 120); 730 color: rgb(255, 255, 255); 731 } 732 .bg-primary .badge { 733 background-color:rgb(255, 255, 255); 734 color: rgb(88, 106, 120); 735 } 736 .btn-primary.btn-outline { 737 background: transparent; 738 color: rgb(88, 106, 120); 739 transition: all 250ms ease-in-out 0ms; 740 } 741 .btn-primary.btn-outline:hover { 742 background: rgba(88, 106, 120,0.1); 743 color: rgb(88, 106, 120); 744 } 745 .alert-primary { 746 background-color:rgba(88, 106, 120,0.7); 747 border-color:rgba(88, 106, 120,0.2); 748 color: rgba(255, 255, 255,0.9); 749 } 750 .alert-primary-subtle, .label-primary-subtle, .badge-primary-subtle { 751 background-color: #dee1e4; 752 border-color: #dee1e4; 753 color: rgb(88, 106, 120); 754 color: color-mix(in srgb, rgb(88, 106, 120) 50%, rgb(41, 41, 41) 50%); 755 } 756 .btn.dropdown-toggle.btn-primary *, .btn-primary a { 757 color: rgb(255, 255, 255); 758 } 759 .text-primary{ 760 color: rgb(88, 106, 120); 761 } 762 .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 { 763 background-color: rgb(88, 106, 120); 764 border-color: rgb(88, 106, 120); 765 color: rgb(255, 255, 255); 766 } 767 .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 { 768 background-color: rgba(88, 106, 120,0.95); 769 border-color: rgb(88, 106, 120); 770 color: rgb(255, 255, 255); 771 } 772 .panel-info { 773 background-color: #e6e9eb; 774 border-color: rgb(88, 106, 120); 775 } 776 .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 { 777 background-color: rgb(88, 106, 120); 778 color: rgb(255, 255, 255); 779 } 780 .bg-info .badge { 781 background-color:rgb(255, 255, 255); 782 color: rgb(88, 106, 120); 783 } 784 .btn-info.btn-outline { 785 background: transparent; 786 color: rgb(88, 106, 120); 787 transition: all 250ms ease-in-out 0ms; 788 } 789 .btn-info.btn-outline:hover { 790 background: rgba(88, 106, 120,0.1); 791 color: rgb(88, 106, 120); 792 } 793 .alert-info { 794 background-color:rgba(88, 106, 120,0.7); 795 border-color:rgba(88, 106, 120,0.2); 796 color: rgba(255, 255, 255,0.9); 797 } 798 .alert-info-subtle, .label-info-subtle, .badge-info-subtle { 799 background-color: #dee1e4; 800 border-color: #dee1e4; 801 color: rgb(88, 106, 120); 802 color: color-mix(in srgb, rgb(88, 106, 120) 50%, rgb(41, 41, 41) 50%); 803 } 804 .btn.dropdown-toggle.btn-info *, .btn-info a { 805 color: rgb(255, 255, 255); 806 } 807 .text-info{ 808 color: rgb(88, 106, 120); 809 } 810 .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 { 811 background-color: rgb(156, 210, 203); 812 border-color: rgb(156, 210, 203); 813 color: rgb(255, 255, 255); 814 } 815 .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 { 816 background-color: rgba(156, 210, 203,0.95); 817 border-color: rgb(156, 210, 203); 818 color: rgb(255, 255, 255); 819 } 820 .panel-success { 821 background-color: #f0f8f7; 822 border-color: rgb(156, 210, 203); 823 } 824 .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 { 825 background-color: rgb(156, 210, 203); 826 color: rgb(255, 255, 255); 827 } 828 .bg-success .badge { 829 background-color: rgb(255, 255, 255); 830 color: rgb(156, 210, 203); 831 } 832 .btn-success.btn-outline { 833 background: transparent; 834 color: rgb(156, 210, 203); 835 transition: all 250ms ease-in-out 0ms; 836 } 837 .btn-success.btn-outline:hover { 838 background: rgba(156, 210, 203,0.1); 839 color: rgb(156, 210, 203); 840 } 841 .alert-success { 842 background-color:rgba(156, 210, 203,0.7); 843 border-color:rgba(156, 210, 203,0.2); 844 color: rgba(255, 255, 255,0.9); 845 } 846 .alert-success-subtle, .label-success-subtle, .badge-success-subtle { 847 background-color: #ebf6f5; 848 border-color: #ebf6f5; 849 color: rgb(156, 210, 203); 850 color: color-mix(in srgb, rgb(156, 210, 203) 50%, rgb(41, 41, 41) 50%); 851 } 852 .btn.dropdown-toggle.btn-success *, .btn-success a { 853 color: rgb(255, 255, 255); 854 } 855 .text-success{ 856 color: rgb(156, 210, 203); 857 } 858 .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 { 859 background-color: rgb(220, 88, 52); 860 border-color: rgb(220, 88, 52); 861 color: rgb(255, 255, 255); 862 } 863 .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 { 864 background-color: rgba(220, 88, 52,0.95); 865 border-color: rgb(220, 88, 52); 866 color: rgb(255, 255, 255); 867 } 868 .panel-warning { 869 background-color: #fae6e1; 870 border-color: rgb(220, 88, 52); 871 } 872 .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 { 873 background-color: rgb(220, 88, 52); 874 color: rgb(255, 255, 255); 875 } 876 .bg-warning .badge { 877 background-color: rgb(255, 255, 255); 878 color: rgb(220, 88, 52); 879 } 880 .btn-warning.btn-outline { 881 background: transparent; 882 color: rgb(220, 88, 52); 883 transition: all 250ms ease-in-out 0ms; 884 } 885 .btn-warning.btn-outline:hover { 886 background: rgba(220, 88, 52,0.1); 887 color: rgb(220, 88, 52); 888 } 889 .alert-warning { 890 background-color:rgba(220, 88, 52,0.7); 891 border-color:rgba(220, 88, 52,0.2); 892 color: rgba(255, 255, 255,0.9); 893 } 894 .alert-warning-subtle, .label-warning-subtle, .badge-warning-subtle { 895 background-color: #f8ded6; 896 border-color: #f8ded6; 897 color: rgb(220, 88, 52); 898 color: color-mix(in srgb, rgb(220, 88, 52) 50%, rgb(41, 41, 41) 50%); 899 } 900 .btn.dropdown-toggle.btn-warning *, .btn-warning a { 901 color: rgb(255, 255, 255); 902 } 903 .text-warning { 904 color: rgb(220, 88, 52); 905 } 906 .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 { 907 background-color: rgb(124, 49, 33); 908 border-color: rgb(124, 49, 33); 909 color: rgb(255, 255, 255); 910 } 911 .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 { 912 background-color: rgba(124, 49, 33,0.95); 913 border-color: rgb(124, 49, 33); 914 color: rgb(255, 255, 255); 915 } 916 .has-error .form-control { 917 border-color: rgb(124, 49, 33); 918 } 919 .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 { 920 background: rgb(124, 49, 33); 921 color: rgb(255, 255, 255) !important; 922 } 923 .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 { 924 color: rgb(124, 49, 33); 925 } 926 .panel-danger { 927 background-color: #ebe0de; 928 border-color: rgb(124, 49, 33); 929 } 930 .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 { 931 background-color: rgb(124, 49, 33); 932 color: rgb(255, 255, 255); 933 } 934 .bg-danger .badge { 935 background-color: rgb(255, 255, 255); 936 color: rgb(124, 49, 33); 937 } 938 .btn-danger.btn-outline { 939 background: transparent; 940 color: rgb(124, 49, 33); 941 transition: all 250ms ease-in-out 0ms; 942 } 943 .btn-danger.btn-outline:hover { 944 background: rgba(124, 49, 33,0.1); 945 color: rgb(124, 49, 33); 946 } 947 .alert-danger { 948 background-color:rgba(124, 49, 33,0.7); 949 border-color:rgba(124, 49, 33,0.2); 950 color: rgba(255, 255, 255,0.9); 951 } 952 .alert-danger-subtle, .label-danger-subtle, .badge-danger-subtle { 953 background-color: #e5d6d3; 954 border-color: #e5d6d3; 955 color: rgb(124, 49, 33); 956 color: color-mix(in srgb, rgb(124, 49, 33) 50%, rgb(41, 41, 41) 50%); 957 } 958 .btn.dropdown-toggle.btn-danger *, .btn-danger a { 959 color: rgb(255, 255, 255); 960 } 961 .text-danger{ 962 color: rgb(124, 49, 33); 963 } 964 .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
964s, 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 { 965 background-color: rgb(238, 238, 238); 966 border-color: rgb(238, 238, 238); 967 color: rgb(85, 85, 85); 968 } 969 .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 { 970 background-color: rgba(238, 238, 238,0.95); 971 border-color: rgb(238, 238, 238); 972 color: rgb(85, 85, 85); 973 } 974 .sidemenu_panel .panel-default .panel_heading { 975 background-color: rgb(238, 238, 238)!important; 976 border-color: rgb(238, 238, 238)!important; 977 color: rgb(85, 85, 85)!important; 978 } 979 .panel-default .panel-heading, .member_accounts .panel-default > .panel-heading, .panel-default.categories-panel .panel-heading { 980 981 box-shadow: 0 0 1000px 0 rgba(85, 85, 85,0.02) inset; 982 background-color: rgb(238, 238, 238); 983 } 984 .panel-default, .member_accounts .panel-default { 985 986 background-color: rgba(238, 238, 238,0.15); 987 border-color: #fdfdfd; 988 border-color: color-mix(in srgb,rgb(238, 238, 238) 100%,rgba(238, 238, 238) 10%); 989 } 990 .member_admin_sidemenu .panel-default { 991 background-color: transparent; 992 } 993 .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 { 994 background-color: rgb(238, 238, 238); 995 color: rgb(85, 85, 85); 996 } 997 .bg-default .badge { 998 background-color: rgb(85, 85, 85); 999 color: rgb(238, 238, 238); 1000 } 1001 .btn-default.btn-outline { 1002 background: transparent; 1003 color: rgb(238, 238, 238); 1004 transition: all 250ms ease-in-out 0ms; 1005 } 1006 .btn-default.btn-outline:hover { 1007 background: rgba(238, 238, 238,0.1); 1008 color: rgb(238, 238, 238); 1009 } 1010 .alert-default { 1011 background-color:rgb(238, 238, 238); 1012 border-color:rgb(238, 238, 238); 1013 color: rgb(85, 85, 85); 1014 } 1015 .alert-default-subtle, .label-default-subtle, .badge-default-subtle { 1016 background-color:rgba(238, 238, 238,0.5); 1017 border-color: rgba(238, 238, 238,0.5); 1018 color: rgb(85, 85, 85); 1019 color: color-mix(in srgb, rgb(85, 85, 85) 50%, rgb(41, 41, 41) 50%); 1020 } 1021 .btn.dropdown-toggle.btn-default *, .btn-default a { 1022 color: rgb(85, 85, 85); 1023 } 1024 .text-default{ 1025 color: rgb(238, 238, 238); 1026 } 1027 .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 { 1028 background-color: rgb(41, 41, 41); 1029 border: 1px solid rgb(41, 41, 41); 1030 color: rgb(255, 255, 255); 1031 } 1032 .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 { 1033 background-color: rgba(41, 41, 41,0.95); 1034 border-color: rgb(41, 41, 41); 1035 color: rgb(255, 255, 255); 1036 } 1037 .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 { 1038 background-color: rgb(41, 41, 41); 1039 color: rgb(255, 255, 255); 1040 } 1041 .bg-secondary .badge { 1042 background-color:rgb(255, 255, 255); 1043 color: rgb(41, 41, 41); 1044 } 1045 .btn-secondary.btn-outline { 1046 background: transparent; 1047 color: rgb(41, 41, 41); 1048 transition: all 250ms ease-in-out 0ms; 1049 } 1050 .btn-secondary.btn-outline:hover { 1051 background: rgba(41, 41, 41,0.1); 1052 color: rgb(41, 41, 41); 1053 } 1054 .panel-secondary { 1055 background-color: #dfdfdf; 1056 border-color: rgb(41, 41, 41); 1057 } 1058 .alert-secondary { 1059 background-color:rgb(41, 41, 41); 1060 border-color:rgb(41, 41, 41); 1061 color: rgb(255, 255, 255); 1062 } 1063 .alert-secondary-subtle, .label-secondary-subtle, .badge-secondary-subtle { 1064 background-color:rgba(41, 41, 41,0.8); 1065 border-color: rgba(41, 41, 41,0.5); 1066 color: rgb(255, 255, 255); 1067 } 1068 .btn-outline { 1069 -webkit-backdrop-filter: blur(5px); 1070 backdrop-filter: blur(5px); 1071 } 1072 .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 { 1073 background-color: rgb(255, 255, 255); 1074 border: 1px solid rgb(255, 255, 255); 1075 color: rgb(41, 41, 41); 1076 } 1077 .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 { 1078 background-color: rgba(255, 255, 255,0.95); 1079 border: 1px solid rgb(255, 255, 255); 1080 color: rgb(41, 41, 41); 1081 } 1082 .btn.btn-body.dropdown-toggle * { 1083 color: rgb(41, 41, 41) 1084 } 1085 .btn-body.dropdown-toggle + ul li, .daterangepicker .ranges { 1086 color: #333; 1087 } 1088 .bg-body { 1089 background: rgb(255, 255, 255); 1090 color: rgb(41, 41, 41); 1091 } 1092 .bg-content-box { 1093 background: rgb(250, 250, 250); 1094 color: rgb(41, 41, 41); 1095 } 1096 .bg-content-box-border { 1097 background: rgb(238, 238, 238); 1098 } 1099 .btn.dropdown-toggle.btn-secondary *, .btn-secondary a { 1100 color: rgb(255, 255, 255); 1101 } 1102 .text-secondary { 1103 color: rgb(41, 41, 41); 1104 } 1105 .text-body { 1106 color: rgb(255, 255, 255); 1107 } 1108 .feature-post #post-content .alert-secondary.btn-block, .feature-search .img_section .alert-secondary.btn-block, .search_result .img_section .alert-secondary { 1109 border-radius: 10px; 1110 background-color: rgba(41, 41, 41,0.2); 1111 } 1112 1113 /* Footer Newsletter Row */ 1114 .newsletter_row .alert { 1115 color: rgb(255, 255, 255); 1116 } 1117 .newsletter_row { 1118 background-color: rgb(0, 0, 0); 1119 color: rgb(255, 255, 255); 1120 } 1121 .newsletter_row input[type="submit"],.newsletter_footer_button { 1122 background-color: rgba(88, 106, 120,0.97); 1123 color: rgb(255, 255, 255); 1124 border-color: rgb(88, 106, 120); 1125 } 1126 .newsletter_row input[type="submit"]:hover,.newsletter_row input[type="submit"]:focus,.newsletter_footer_button:hover,.newsletter_footer_button:focus { 1127 background-color: rgb(88, 106, 120); 1128 color: rgb(255, 255, 255); 1129 } 1130 .newsletter_button_left { 1131 border-right: 1px solid rgba(255, 255, 255,0.2); 1132 } 1133 .newsletter_button_right { 1134 border-left: 1px solid rgba(255, 255, 255,0.2); 1135 } 1136 .newsletter_row small.help-block { 1137 background: rgb(255, 255, 255); 1138 margin-top: -5px; 1139 float: left; 1140 padding: 8px; 1141 border-radius: 1px; 1142 color: rgb(0, 0, 0); 1143 text-transform: capitalize; 1144 } 1145 .newsletter_row .has-success .checkbox,.newsletter_row .has-error .checkbox{ 1146 color: rgb(255, 255, 255); 1147 } 1148 @media only screen and (max-width: 767px) { 1149 .newsletter_button_right,.newsletter_button_left{ 1150 border: none; 1151 margin: 5px 0; 1152 } 1153 } 1154 1155 /* Font Sizes */ 1156 1157 .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > span { 1158 font-size: 16px; 1159 } 1160 .header .logo { 1161 font-size: 34px; 1162 } 1163 .homepage_title h1, .homepage_settings h1 { 1164 letter-spacing: -1px; 1165 font-size: 42px; 1166 margin-bottom: 20px; 1167 } 1168 @media only screen and (max-width: 768px) { 1169 .homepage_title h1, .homepage_settings h1 {margin-bottom: 15px;} 1170 } 1171 .homepage_settings h2 { 1172 font-size: 20px; 1173 } 1174 1175 .ui-rangeSlider-bar{ 1176 background: rgb(88, 106, 120)!important; 1177 } 1178 1179 1180 1181 @media only screen and (max-width: 1024px){ 1182 .modal {margin-top: 40px;} 1183 } 1184 @media only screen and (max-width: 768px){ 1185 .modal {margin-top: 60px;} 1186 } 1187 1188 /* Calendar Styles */ 1189 1190 #cal-slide-content { 1191 color: rgb(85, 85, 85)!important; 1192 background-color: rgb(238, 238, 238)!important; 1193 -webkit-box-shadow: none!important; 1194 box-shadow: none!important; 1195 } 1196 #cal-slide-content a.event-item { 1197 color: rgb(85, 85, 85)!important; 1198 font-weight:bold!important; 1199 } 1200 #cal-slide-content a.event-item small { 1201 display: inline-block; 1202 } 1203 .cal-month-box, .cal-year-box, .cal-week-box { 1204 border: 1px solid rgb(238, 238, 238)!important; 1205 } 1206 .cal-year-box .row-fluid, .cal-month-box .cal-row-fluid { 1207 border-bottom: 1px solid rgb(238, 238, 238)!important; 1208 } 1209 .cal-year-box [class*="span"], .cal-month-box [class*="cal-cell"] { 1210 border-right: 1px solid rgb(238, 238, 238)!important; 1211 } 1212 .cal-year-box .row-fluid, .cal-row-fluid, #cal-day-box .cal-day-hour:nth-child(odd) { 1213 background-color: rgb(255, 255, 255)!important; 1214 } 1215 .cal-month-day span:not(.pull-right):not(.events-count-label):not(.events-label) { 1216 color: rgb(85, 85, 85)!important; 1217 } 1218 .cal-day-today span[data-cal-date] { 1219 color: rgb(41, 41, 41)!important; 1220 } 1221 .cal-year-box .row-fluid [class*="span"]:last-child, .cal-month-box .cal-row-fluid [class*="cal-cell"]:last-child { 1222 border: 0!important; 1223 } 1224 .cal-row-head { 1225 background: rgb(250, 250, 250)!important; 1226 } 1227 .day-highlight:hover, .day-highlight { 1228 background-color: rgb(238, 238, 238)!important; 1229 } 1230 .cal-event-list .event.pull-left { 1231 background-color: rgb(41, 41, 41)!important; 1232 opacity: 0.4; 1233 margin-top: 7px!important; 1234 } 1235 .cal-day-today { 1236 background-color: rgb(238, 238, 238)!important; 1237 } 1238 #cal-day-tick { 1239 border: 1px solid rgb(238, 238, 238)!important; 1240 background-color: rgb(238, 238, 238)!important; 1241 } 1242 .cal-day-weekend span[data-cal-date]{
1243 color: rgb(41, 41, 41)!important; 1244 } 1245 .well, .member_profile .tab-content, .corner_caption,.module,.img-rounded,.nav-tabs *,input,.input-group-sm > .form-control, .input-group-sm > .input-group-addon, textarea,select,.header ul.nav.navbar-nav li ul,.progress, .alert, .pagination, .page-item:first-child .page-link, .page-item:last-child .page-link, .views > i.fa, .ui-rangeSlider-label, .pic, .panel, .panel-heading, .popover, .pricing_menu li .title, .form-control, .select2-choice, .form-group .select2-dropdown-open.select2-drop-above [class^=select2-choice], .select2-drop.select2-drop-above, .select2-drop, .scrollup, .input-group-addon, .img-thumbnail, .current-photo-container img, .current-logo-container img,.favorite,p.account-tip,.modal-content,.input_wrapper input.form-control,.input-group .input_wrapper input.form-control,.input-group-sm .input_wrapper input.form-control,.input-group-lg .input_wrapper input.form-control,.pricing_menu li ul, .img-rounded img.img-rounded { 1246 border-radius:0px !important; 1247 } 1248 .rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs { 1249 border-radius: 10px; 1250 background: #151515!important; 1251 } 1252 .img_section .no-radius-bottom + .alert-secondary .rsDefault .rsSlide, .img_section .no-radius-bottom + .alert-secondary .rsDefault .rsOverflow { 1253 border-radius:0; 1254 } 1255 1256 #first_container .favorite, #first_container .fa.favorite { 1257 color: rgb(170, 170, 170); 1258 background: rgb(238, 238, 238); 1259 border: 1px solid rgb(238, 238, 238); 1260 white-space:nowrap!important; 1261 height:24px; 1262 padding:0 6px; 1263 border-radius:8px; 1264 } 1265 #first_container .favorite span, #first_container .fa.favorite span { 1266 font-family: 'Open Sans'; 1267 white-space:nowrap!important; 1268 } 1269 #first_container .favoriteActive:not(.favorite.comments-count-badge), #first_container .fa.favoriteActive:not(.favorite.comments-count-badge .fa) { 1270 color: rgb(156, 183, 212); 1271 } 1272 #first_container .favorite::after, #first_container .fa.favorite::after { 1273 font-family: 'Open Sans'; 1274 margin-left: 3px; 1275 } 1276 #first_container .favorite span, #first_container .fa.favorite span{ 1277 padding-left: 4px; 1278 font-family: 'Open Sans'; 1279 font-size: 11px; 1280 letter-spacing:.5px; 1281 top:-1px; 1282 position:relative; 1283 font-weight:700; 1284 } 1285 #first_container .favorite span:empty, #first_container .fa.favorite span:empty { 1286 padding: 0; 1287 } 1288 #first_container .favorite .bookmark-number, #first_container .fa.favorite .bookmark-number { 1289 padding: 1px 0; 1290 border-radius: 100px; 1291 display: inline-block; 1292 font-weight: bold; 1293 min-width: 15px; 1294 font-size: .8em; 1295 vertical-align: bottom; 1296 height: 15px; 1297 line-height: 13px; 1298 margin-left: 3px; 1299 text-align: center; 1300 } 1301 #first_container .favorite.favoriteActive .bookmark-number:not(.comments-count-badge .bookmark-number), #first_container .fa.favorite.favoriteActive .bookmark-number { 1302 background: rgb(156, 183, 212); 1303 color: #fff; 1304 } 1305 1306 span.checkbox_value::after { 1307 content: ', '; 1308 } 1309 1310 span.checkbox_value:last-child::after { 1311 content: ''; 1312 } 1313 1314 .member_results .grid_element{ 1315 position:relative; 1316 overflow:hidden; 1317 display: inline-block; 1318 width:100%; 1319} 1320.member_results .grid_element::before { 1321 position: absolute; 1322 top: 24px; 1323 text-align: center; 1324 width: 200px; 1325 left: -62px; 1326 transform: rotate(-45deg); 1327 -webkit-transform: rotate(-45deg); 1328 z-index: 1; 1329 line-height: 1.2em; 1330 padding: 6px 0; 1331 font-weight: bold; 1332 letter-spacing: 1px; 1333} 1334@media only screen and (max-width: 767px) { 1335 .member_results .grid-container > hr { 1336 border-color: transparent; 1337 } 1338 .member_results .grid_element{ 1339 overflow:visible; 1340 } 1341 .member_results .grid_element::before { 1342 top: -19px!important; 1343 transform: rotate(0deg); 1344 -webkit-transform: rotate(0deg); 1345 font-size: 10px !important; 1346 letter-spacing: 0; 1347 width: auto; 1348 padding: 3px 6px; 1349 } 1350} 1351 1352 1353 1354 .member_results.level_1 .grid_element { 1355 border-style: solid; 1356 border-radius:0px;border-width:4px;border-color:rgb(53, 182, 129); } 1357 .member_results.level_1 .grid_element::before { 1358 border-bottom-left-radius:0!important; 1359 border-radius:0px;color: #fff ;background-color:rgb(53, 182, 129);font-size:16px;content:'Featured '; 1360 } 1361 .member_results.level_1 .grid_element { 1362 padding:10px; 1363 } 1364 @media only screen and (max-width: 767px) { 1365 .member_results.level_1 .grid_element::before { 1366 left:-4px;}} 1367 1368
1369 /* Homepage Sections Background Color Logic */ 1370 1371 1372 .homepage-section-1 { 1373 padding: 40px 0 40px; 1374 } 1375 1376 1377 .homepage-section-2 { 1378 padding: 40px 0 40px; 1379 } 1380 1381 1382 .homepage-section-2 { 1383 background: rgb(88, 106, 120); 1384 } 1385 1386 1387 .homepage-section-3 { 1388 padding: 40px 0 40px; 1389 } 1390 1391 1392 .homepage-section-4 { 1393 padding: 40px 0 40px; 1394 } 1395 1396 1397 .homepage-section-5 { 1398 padding: 40px 0 40px; 1399 } 1400 1401 1402 .homepage-section-6 { 1403 padding: 40px 0 40px; 1404 } 1405 1406 1407 .homepage-section-7 { 1408 padding: 40px 0 40px; 1409 } 1410 1411 1412 .homepage-section-8 { 1413 padding: 40px 0 40px; 1414 } 1415 1416 1417 .homepage-section-9 { 1418 padding: 40px 0 40px; 1419 } 1420 1421 1422 .homepage-section-10 { 1423 padding: 40px 0 40px; 1424 } 1425 1426 1427 .homepage-section-11 { 1428 padding: 40px 0 40px; 1429 } 1430 1431 1432 .homepage-section-12 { 1433 padding: 40px 0 40px; 1434 } 1435 1436 1437 .homepage-section-13 { 1438 padding: 40px 0 40px; 1439 } 1440 1441 1442 .homepage-section-14 { 1443 padding: 40px 0 40px; 1444 } 1445 1446 1447 .homepage-section-15 { 1448 padding: 40px 0 40px; 1449 } 1450 1451 1452 /* Additional Settings */ 1453 1454 1455 /* Streaming Widgets Title Settings */ 1456 1457 .streaming-title { 1458 text-align: left; 1459 font-size: 30px; 1460 line-height:1.5em; 1461 font-weight: 600; 1462 font-family: 'Open Sans'; 1463 padding-bottom: 0px; 1464 } 1465 1466 @media only screen and (max-width: 990px) { 1467 .streaming-title { 1468 line-height:1.1em; 1469 } 1470 } 1471 1472 1473 .homepage-join-module .module h2:first-of-type { 1474 color: rgb(62, 62, 62); 1475 } 1476 1477 .homepage-join-module .module{ 1478 background: rgb(236, 236, 236); 1479 border-color: rgb(250, 250, 250); 1480 } 1481 1482 .homepage-about-module .module h2:first-of-type { 1483 color: rgb(62, 62, 62); 1484 } 1485 1486 .homepage-about-module .module{ 1487 background: rgb(236, 236, 236); 1488 border-color: rgb(250, 250, 250); 1489 1490 } 1491 1492 .the-post-description > :is(h2, h3, h4, h5):not(:first-child) { 1493 font-weight: 600; 1494 margin-top: 20px; 1495 } 1496 1497 /* Keep: Ensure ul/ol respect padding and margins */ 1498 .the-post-description > :is(ul, ol) { 1499 display: flow-root; 1500 } 1501 .the-post-description li { 1502 margin-bottom: 8px; 1503 } 1504 1505 .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-chained, select#country-chained, select#state-chained, select#country-chained-2, select#state-chained-2, select#profession_id, [name^="bd_phone_country_code"] { 1506 border-radius: 0px!important; 1507 } 1508 1509 1510 .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 { 1511 border-radius:1000px!important; 1512 } 1513 1514 .img-rounded img, img.fr-dib.img-rounded{ 1515 border-radius: 10px!important; 1516 } 1517 1518 /* Google Translate Module */ 1519 .skiptranslate{font-size:0} 1520 .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} 1521 .skiptranslate.goog-te-gadget span,img.goog-te-gadget-icon{display:none!important} 1522 .goog-te-gadget .goog-te-combo{margin-bottom:-4px} 1523 .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)} 1524 @media only screen and (max-width: 1100px) { 1525 .skiptranslate:not(.skiptranslate[style="display: none;"]){height:39px} 1526 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header{margin-top:10px!important} 1527 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar{margin-top:10px} 1528 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar ~ .header{margin-top:0!important} 1529 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .mobile-main-menu{top:89px!important;height:calc(100% - 90px)!important} 1530 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .header .navbar{top:39px} 1531 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ #first_container .member_sidebar.open{top: 89px;} 1532 } 1533 @media only screen and (max-width: 767px) { 1534 .skiptranslate:not(.skiptranslate[style="display: none;"]) ~ .announcement-bar.hidden-xs ~ .header{margin-top:10px!important} 1535 } 1536 1537 1538 1539</style> 1540 1541<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 1541-1542
1541 1542<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1542GTM-PJGVCVG
vendor: 85 bytes, lines 1542-1543
1542" 1543height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1544<!-- End Google Tag Manager (noscript) --> <!-- ON-PAGE CSS FUNCTIONS --> 1545 <style type="text/css"> 1546 .blogFloat{ 1547float:left; 1548width:150px;} 1549 1550.clearFix{ 1551clear:both; 1552} 1553a#link331 { 1554 background-color: rgba(27, 106, 141,0.97); 1555 border: 1px solid rgb(27, 106, 141); 1556 color: rgb(255, 255, 255)!important; 1557 1558} 1559.podfooter { 1560 1561 display: none; 1562} </style> 1563 <div class="header"> 1564 <div class="container"> 1565 <div class="row header-main-row"> 1566 <style type='text/css'> .logo-text:has(.logo_title:empty) { 1567 display:none 1568} </style><div id="website_logo" class="col-md-5 xs-nopad xs-hpad sm-text-center xs-bmargin header-left-container"> 1569 <a class="logo logo-image inline-block vpad sm-nopad sm-tmargin" href="https://www.storycrews.com" title="StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 1570 <img width="400" height="141" src="/images/storyCrewsLogo_website.jpg" alt="StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 1571 </a> 1572 <div class="clearfix"></div> 1573</div> 1574 <style type='text/css'> body input.tt-hint,body input.form-control.normal-autosuggest-input.tt-query { 1575 background-color: white !important; 1576} 1577.mini-nav:not(:has(li)) { 1578 display: none!important; 1579} 1580/* Parent Container - Main List */ 1581.mini-nav li:has(ul) { 1582 position: relative; 1583 border-radius: 8px 8px 0 0; 1584} 1585.mini-nav > li:has(ul) { 1586 padding-left: 0; 1587 padding-right: 0; 1588 background: rgb(255, 255, 255); 1589} 1590.mini-nav > li:has(ul) > a:not(.btn), .mini-nav > li:has(ul) > span { 1591 padding: 10px 15px; 1592 margin: 0!important; 1593} 1594.mini-nav > li:hover:has(ul), .mini-nav > li:hover:has(ul) { 1595 box-shadow: 0 -1px 3px rgba(88, 106, 120,0.25); 1596} 1597/* Parent Links */ 1598.mini-nav > li > a:not(.btn), .mini-nav > li > span:not(.btn) { 1599 display:inline-block; 1600 border-radius: 8px 8px 0 0; 1601} 1602.mini-nav > li:hover > a:not(.btn), .mini-nav > li:hover > span { 1603 background: rgb(255, 255, 255); 1604 display: inline-block; 1605 position: relative; 1606 z-index: 1000; 1607} 1608/* First Level Dropdowns */ 1609.mini-nav li ul { 1610 background: rgb(255, 255, 255); 1611 box-shadow: 0 0px 3px rgba(88, 106, 120,0.25), 0 5px 5px 5px rgba(88, 106, 120,0.05); 1612 text-align: left; 1613 display: none; 1614 border-radius: 0 8px 8px 8px; 1615 list-style: none; 1616 padding: 10px; 1617 position: absolute; 1618 white-space: nowrap; 1619 min-width: 130%; 1620 width: auto; 1621 top: 100%; 1622 left: 0; 1623 z-index: 999; 1624 margin-top: -1px; 1625} 1626.mini-nav li:hover > ul { 1627 display: block; 1628} 1629/* First Level Dropdown Items */ 1630.mini-nav li ul li { 1631 position: relative; 1632 display: block; 1633 width: 100%; 1634} 1635.mini-nav li ul li a, .mini-nav li ul li span { 1636 font-size: 12.95px !important; 1637 display: block; 1638 font-weight: 400; 1639 padding: 8px 12px; 1640 border-radius: 8px; 1641 text-decoration: none; 1642 width: 100%; 1643} 1644.mini-nav li ul li a:hover, .mini-nav li ul li span:hover { 1645 box-shadow: 0 0 0 25px rgba(88, 106, 120,0.05) inset; 1646} 1647/* Second Level Dropdowns */ 1648.mini-nav li ul li ul { 1649 display: none; 1650 position: absolute; 1651 top: 0; 1652 left: 100%; 1653 margin: 0; 1654 border-radius: 8px; 1655} 1656.mini-nav li ul li:hover > ul { 1657 display: block; 1658} 1659/* Edge Positioning - Last Child Dropdowns */ 1660.mini-nav > li:last-child ul { 1661 right: 0; 1662 left: auto; 1663 border-radius: 8px 0 8px 8px; 1664} 1665.mini-nav > li:last-child ul li ul { 1666 right: 100%; 1667 left: auto; 1668} 1669/* Flex Spacing Utility */ 1670.mini-nav.mini-nav-flex-spaced { 1671 display: flex; 1672 justify-content: space-between; 1673 align-items: center; 1674 flex-wrap: wrap; 1675 row-gap: 0;
1676} 1677.mini-nav.mini-nav-flex-spaced > li { 1678 flex: none; 1679 padding: 0; 1680 margin: 2px 0; 1681 order: 2; 1682} 1683.mini-nav.mini-nav-flex-spaced > li.header-member-account-links, 1684.mini-nav:has(li ul) > li.header-member-account-links { 1685 order: 1; 1686 margin-left: auto; 1687 width: 100%; 1688 margin-bottom: 10px; 1689} 1690.logged-in-member-header .mini-nav.mini-nav-flex-spaced.list-inline > li { 1691 line-height: 1em; 1692 min-height: 0; 1693} 1694@media (min-width: 992px) { 1695 .header-main-row { 1696 display: flex; 1697 align-items: center; 1698 flex-wrap: wrap; 1699 } 1700} 1701@media (max-width: 991px) { 1702 .mini-nav.mini-nav-flex-spaced { 1703 justify-content: center; 1704 } 1705 .mini-nav.mini-nav-flex-spaced > li { 1706 margin-left: 5px !important; 1707 margin-right: 5px !important; 1708 } 1709} </style><div class="col-md-7 text-right sm-text-center header-right-container nolpad xs-hpad"> 1710 <ul class="mini-nav nobmargin list-inline xs-nopad xs-tmargin tpad"> 1711 <li class='bmargin'><span id='link207' class='bmargin'> </span></li><li class=''><span id='link332' target='_blank'> 1712<a class="typeform-share button" href="https://form.typeform.com/to/CWmRUjr9?typeform-medium=embed-snippet" data-mode="popup" style="display:inline-block;text-decoration:none;background-color:#586a78;color:white;cursor:pointer;font-family:Helvetica,Arial,sans-serif;font-size:20px;line-height:50px;text-align:center;margin:0;height:50px;padding:0px 33px;border-radius:25px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:bold;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;" data-size="100" target="_blank">I Need a Videographer Fast </a></span><ul><li style="list-style-type:none; margin-top:20px;" class=''><a href='/login' id='link333' style="color:#9cd2cb; font-weight:bold; margin-top:20px; margin-right:20px;">Member Login</a></li></ul></li> </ul> 1713 <div class="clearfix"></div> 1714 </div> 1715 </div> 1716 </div> 1717 <style type='text/css'> .mobile-main-menu .hasChildren span a { 1718 padding: 0px; 1719} 1720 1721.user_sidebar > img { 1722 width: 32px; 1723 height: 32px; 1724 position: absolute; 1725 z-index: 10; 1726 border-radius: 100px; 1727 top: -1px; 1728 object-fit: cover; 1729 left: -10px; 1730 background: rgb(238, 238, 238); 1731} 1732#member_sidebar_toggle img+.fa { 1733 display: none; 1734} 1735.main_menu, .user_sidebar, .compact-mobile-search { 1736 padding: 5px 8px; 1737 margin-right:0; 1738 min-height: 33.0333px; 1739 min-width: 38.116px; 1740} 1741.main_menu i, .user_sidebar i { 1742 font-size: 16px; 1743} 1744.navbar-nav li { 1745 float: none!Important; 1746} 1747.navbar-default{ 1748 -webkit-transition: all .6s ease-in-out; 1749 -moz-transition: all .6s ease-in-out; 1750 -o-transition: all .6s ease-in-out; 1751 transition: all .6s ease-in-out; 1752} 1753.transparent_menu { 1754 background-color: rgba(228, 234, 242,0.95)!important; 1755} 1756@media only screen and (max-width: 991px) { 1757 #popover {display: none} 1758} 1759@media only screen and (max-width: 1100px){ 1760 .mobile-main-menu{display:block!important} 1761 .navbar-toggle {display: block} 1762 #bs-main_menu .nav {display: none!important} 1763} 1764.mobile-main-menu { 1765 position: fixed; 1766 height: calc(100% - 50px)!important; 1767 width: 250px; 1768 background: rgb(228, 234, 242); 1769 z-index: 99999; 1770 right: -250px; 1771 top: 50px; 1772 display: none; 1773 -webkit-transition: all .6s ease-in-out; 1774 -moz-transition: all .6s ease-in-out; 1775 -o-transition: all .6s ease-in-out; 1776 transition: all .6s ease-in-out; 1777 overflow-y: auto!important; 1778 overflow-x: hidden!important; 1779} 1780.mobile-main-menu ul li i { 1781 color: rgb(0, 0, 0); 1782 cursor: pointer; 1783 float: right; 1784 padding: 13px; 1785} 1786.mobile-main-menu.opened{ 1787 right: 0px!important; 1788} 1789.mobile-main-menu ul li a, .mobile-main-menu ul li span { 1790 display: inline-block; 1791 float: left; 1792 -webkit-touch-callout: none; 1793 -webkit-user-select: none; 1794 -khtml-user-select: none; 1795 -moz-user-select: none; 1796 -ms-user-select: none; 1797 user-select: none; 1798 padding: 10px 0px; 1799 width: 80%; 1800 width: calc(100% - 40px); 1801} 1802.mobile-main-menu .sidebar-nav li ul { 1803 height: 0px; 1804 overflow: hidden; 1805 list-style: none; 1806 color: rgb(0, 0, 0); 1807 padding-left: 10px; 1808} 1809.mobile-main-menu .sidebar-nav li.sub_open > ul{ 1810 height: 100%; 1811} 1812.mobile-main-menu ul.sidebar-nav { 1813 position: absolute; 1814 width: 250px; 1815 margin: 0; 1816 padding: 0; 1817 list-style: none; 1818 font-size: 14px; 1819} 1820.mobile-main-menu .sidebar-nav > li { 1821 display: block; 1822 line-height: 20px; 1823 padding: 0 15px 0 20px; 1824} 1825.mobile-main-menu .sidebar-nav li a, .mobile-main-menu .sidebar-nav li span { 1826 text-decoration: none; 1827 color: rgb(0, 0, 0); 1828 padding-left:10px; 1829} 1830.mobile-main-menu .sidebar-nav li a i, .mobile-main-menu .sidebar-nav li span i { 1831 display: none; 1832} 1833 1834 </style><div class="mobile-main-menu"> 1835 <ul class="sidebar-nav"> 1836 <li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link230'>Hire</a></li><li class=''><a href='/blog' id='link227'>Learn</a><ul><li class=''><a href='/blog?q=&category%5B%5D=Marketing+and+Strategy' id='link286'>Marketing and Strategy</a></li><li class=''><a href='/blog?q=&category%5B%5D=Production' id='link287'>Production</a></li><li class=''><a href='/blog?q=&category%5B%5D=Gear' id='link288'>Gear</a></li><li class=''><a href='/blog?q=&category%5B%5D=Hiring' id='link289'>Hiring</a></li></ul></li><li class=''><a href='http://find.storycrews.com/' id='link189' target='_blank'>How It Works</a></li><li class=''><a href='https://iangarlic.typeform.com/to/rNmaGvRl' id='link231' target='_blank'>Join Today</a></li><li class=''>
1836<a href='https://authenticweb.lpages.co/storycrews-partners-page' id='link290'>Partners</a></li> </ul> 1837</div> 1838<nav class="navbar navbar-default lockedonscroll"> 1839 <div class="container container-fluid"> 1840 1841 <div class="navbar-header"> 1842 <div class="mobile_website_logo"> 1843 <a href="https://www.storycrews.com" title="StoryCrews â¢ï¸ Videographer and Video Expert Directory" class="visible-xs"> 1844 <img width="400" height="141" src="/images/storyCrewsLogo_website.jpg" alt="StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 1845 </a> 1846 </div> 1847 <button type="button" class="navbar-toggle collapsed main_menu" data-toggle="collapse" aria-label="main_menu"> 1848 <i class="fa fa-bars fa-fw"></i> Menu 1849 </button> 1850 1851 1852 1853 </div> 1854 1855 1856 <div class="tablet-menu collapse navbar-collapse nopad" id="bs-main_menu"> 1857 <ul class="tablet-menu-ul nav navbar-nav nav-justified"> 1858 <li class=''><a href='/home' id='link1'>Home</a></li><li class=''><a href='/search_results' id='link230'>Hire</a></li><li class=''><a href='/blog' id='link227'>Learn</a><ul><li class=''><a href='/blog?q=&category%5B%5D=Marketing+and+Strategy' id='link286'>Marketing and Strategy</a></li><li class=''><a href='/blog?q=&category%5B%5D=Production' id='link287'>Production</a></li><li class=''><a href='/blog?q=&category%5B%5D=Gear' id='link288'>Gear</a></li><li class=''><a href='/blog?q=&category%5B%5D=Hiring' id='link289'>Hiring</a></li></ul></li><li class=''><a href='http://find.storycrews.com/' id='link189' target='_blank'>How It Works</a></li><li class=''><a href='https://iangarlic.typeform.com/to/rNmaGvRl' id='link231' target='_blank'>Join Today</a></li><li class=''><a href='https://authenticweb.lpages.co/storycrews-partners-page' id='link290'>Partners</a></li> </ul> 1859 </div> 1860 </div> 1861</nav> 1862<!--CSS IF MENU IS FIXED TOP--> 1863 1864</div> 1865<div class="clearfix"></div> 1866<!-- Begin Content --> 1867<main role="main" id="main-content"> 1868<div id="first_container" class="content-container fr-view"> 1869 <div class="container"> 1870 <div class="clearfix body-content"></div> 1871 1872 <div class="row"> 1873 1874 <div class="col-md-12"> 1875 <style> .member-login-container:not(.modal .module) { width: 555px; max-width: 100%; margin-left: auto; margin-right: auto; margin-bottom:0; background-color: rgb(250, 250, 250)!important; border-color: rgb(238, 238, 238)!important; color: rgb(41, 41, 41)!important; } .login-register-tabs, .login-register-content { width: 555px!important; max-width: 100%; margin-left: auto!important; margin-right: auto!important; background-color: rgb(238, 238, 238); } .login-register-content { background: transparent; padding: 0; border: none; } .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title { display: none!important; } .express_login_create_account_prefix hr { margin: 15px 0 10px; }
1875 .modal-content #containerFBLogin, .modal-content #containerGoogleLogin { margin:15px 0; } /* CSS When Login Form and Express Registration Rendered in Sidebar */ .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container { padding: 15px 10px; } .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text { margin: 0; font-size: 20px; padding: 0 15px; } .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * { font-size: 12px; line-height: 1.2em; vertical-align: bottom; } .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a { padding: 5px !important; height: 50px; vertical-align: middle; display: table-cell !important; width: 1%; } .col-md-3 .member-login-page-container .login-register-content, .col-md-4 .member-login-page-container .login-register-content { padding: 0; } .col-md-3 .member-login-container, .col-md-4 .member-login-container { padding: 15px !important; font-size: 13px; } .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg { height: 34px; padding: 6px 12px; font-size: 14px; } .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label { transform: scale(.85); margin: -1.15em -1.15em 0; } .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li { width: 100%; display: block; margin-top:5px; } .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li { padding:0 } .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav { margin-top: -10px; } .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction { padding: 0; min-height: 0; font-size: 14px; margin: 0; } .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img { height: 36px !important; margin-right: 5px; position: relative!important; display: inline-block; } @media only screen and (max-width: 767px) { .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a { display: block !important; width: 100%; line-height: 40px; } #containerGoogleLogin { text-align: center; margin-top: 10px; } #containerGoogleLogin #gBtn { display: inline-block; } } </style> <div class="row member-login-page-container"> <div class="fpad-lg novpad"> <div class="module fpad-xl member-login-container"> <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190" class=" "><input type="hidden" name="sized" value="0" id="member_login_190-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn { display: inline-block; text-align: center; width: 216px;}.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img { position: absolute !important;}.module #containerFBLogin a#facebookAction { max-width: 200px; position: relative; left: -8px; } </style> <!-- Required Font-Family for Social Buttons --> <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap"> <noscript> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap"> </noscript>
1875 <div class="row social-login-row"> </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-element-10"><span class="required">* </span>Password</label> <style> #togglePassword { background: none; border: none; cursor: pointer; font-weight: bold; font-size: .85em; position: absolute; right: 5px; top: 0; } </style><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button>
1875<script> function showPassword(node){ const parent = node.closest('.form-group'); const passwordField = parent.querySelector(`input[type='password'], input[type='text']`); const isPassword = passwordField.getAttribute('type') === 'password'; passwordField.setAttribute('type', isPassword ? 'text' : 'password'); const iconHTML = isPassword ? `<i class="fa fa-unlock" aria-hidden="true"></i>` : `<i class="fa fa-lock" aria-hidden="true"></i>`; node.innerHTML = iconHTML; } </script>
1875<input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label"> <label for="captchaContainer"> <span class="required">* </span> Answer Security Question </label> <div id="member_login_190-captchaContainer" class="control-group"> <div class="g-recaptcha" id="member_login_190-google-recaptcha"></div> </div> <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small> <div class="clearfix bmargin"></div> <input type="hidden" name="recaptcha" id="member_login_190-rcap"></div> <style> .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale { transform: scale(0.77); -webkit-transform: scale(0.77); transform-origin: 0 0; -webkit-transform-origin: 0 0; margin-bottom: -15px; } .modal #member_login_190-captchaContainer, .col-md-4 #member_login_190-captchaContainer, .col-md-3 #member_login_190-captchaContainer, .col-lg-3 #member_login_190-captchaContainer, .col-lg-4 #member_login_190-captchaContainer { transform: scale(0.77); -webkit-transform: scale(0.77); transform-origin: 0 0; -webkit-transform-origin: 0 0; margin-bottom: -15px; } </style>
1875<script type="text/javascript"> if(typeof formsFound == "undefined"){ var formID = ''; var currentCaptcha = {}; var captchaHolders = {}; var formsFound = {}; var captchaApiRequested = false; /* The forms the visitor has actually interacted with - only these get a widget. */ var captchaArmedForms = []; /* api.js stays lazy - nothing is fetched from Google until the visitor actually touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in and presses Enter without ever clicking, so api.js never loaded, the captcha never rendered, and the form POSTed an empty token. */ var captchaTriggerEvents = ['click', 'keydown', 'focusin', 'touchstart']; window.addEventListener('load', () => { formID = document.querySelectorAll('[name="recaptcha"]'); if (typeof formID != "undefined" && formID !== null) { for (let i = 0; i < formID.length; i++) { let formIDForm = formID[i].closest('form'); let captchaHolder = formIDForm.querySelector(".g-recaptcha"); if (typeof formsFound[formIDForm.id] != "undefined") { formsFound[formIDForm.id]['counter']++; }else{ formsFound[formIDForm.id] = {'counter' : 1}; } formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']); captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']); if (typeof formIDForm != "undefined" && formIDForm !== null) { captchaTriggerEvents.forEach( evt => formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false) ); } } } }); } function reCaptchaOnFormInteraction(event) { if (event && event.currentTarget) { captchaArmForm(event.currentTarget); } if (captchaApiRequested) { renderArmedCaptchas(); return; } captchaApiRequested = true; var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en'; head.appendChild(script); } var captchaArmForm = function (formEl) { if (!formEl) { return; } for (var a = 0; a < captchaArmedForms.length; a++) { if (captchaArmedForms[a] === formEl) { return; } } captchaArmedForms.push(formEl); }; var captchaSolvedCallback = function (holder) { return function () { var formEl = holder.closest('form'); if (!formEl) { return; } $(formEl).find('.security_question_label').removeClass('has-error'); $(formEl).find('#recaptcha_error').css('display', 'none'); var notification = document.getElementById(formEl.id + '-notification'); if (notification && notification.classList.contains('alert-danger-subtle')) { $(notification).slideUp(); } }; }; var renderArmedCaptchas = function () { if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") { return; } for (var f = 0; f < captchaArmedForms.length; f++) { var holder = captchaArmedForms[f].querySelector('div[class=g-recaptcha]'); if (!holder || !holder.id || holder.getClientRects().length === 0) { continue; } /* Guard a second render: grecaptcha throws on an element it already claimed. */ if (typeof captchaHolders[holder.id] === "undefined") { captchaHolders[holder.id] = grecaptcha.render(holder.id, { 'sitekey': '6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p', 'callback': captchaSolvedCallback(holder) }); } } }; var onloadCallback = function (event) { renderArmedCaptchas(); }; </script>
1875<script> $(document).ready(function(){ /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on the submit button, so the click guard below never sees it and the form POSTed an empty token. Bound on document/capture so it runs before FormValidation's own handler on the form - at AT_TARGET the capture flag does not order listeners, so a listener on the form itself would not reliably win. Native HTMLFormElement.submit() does not dispatch 'submit', so the solved-captcha path below is unaffected. */ var captchaGuardedForm = document.getElementById('member_login_190'); if (captchaGuardedForm) { document.addEventListener('submit', function (event) { if (event.target !== captchaGuardedForm) { return; } var formId = captchaGuardedForm.id; var captchaHolderKey = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter'); var captchaRendered = typeof captchaHolders[captchaHolderKey] != "undefined"; if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") { $("#" + formId + " .security_question_label").removeClass("has-error"); $("#" + formId + " #recaptcha_error").css("display", "none"); return; } /* Unsolved, or api.js still in flight: either way there is no token to send. */ event.preventDefault(); event.stopImmediatePropagation(); $("#" + formId + " .security_question_label").addClass("has-error"); $("#" + formId + " #recaptcha_error").css("display", "block"); return false; }, true); } $("#member_login_190 input[type=submit]").unbind('click'); $("#member_login_190 input[type=submit]").click(function (event) { var formId = $(this.form).attr('id'); var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter'); if (typeof captchaHolders[captchaHolderKey] != "undefined") { if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") { event.preventDefault(); $("#" + formId).formValidation('validate'); $("#" + formId + " .security_question_label").addClass("has-error"); $("#" + formId + " #recaptcha_error").css("display", "block"); return false; } /* Solved captcha: clear the error UI and let the click proceed untouched. The browser then fires a REAL, button-initiated submit event, so FormValidation runs its normal chain (success.form.fv -> AJAX modal on checkout / native POST on login). Re-submitting here artificially broke both ways: native form.submit() skips the FV chain (checkout rendered the raw JSON response), and jQuery .submit() fires a synthetic submit that FV refuses, leaving the form stuck after the first error (Bug 2). */ $("#" + formId + " .security_question_label").removeClass("has-error"); $("#" + formId + " #recaptcha_error").css("display", "none"); } }); });</script>
1875</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-6 nolpad sm-nopad nav'><a href='/checkout/5' id='link228' class='btn btn-danger btn-block sm-bmargin'>Not a Registered User? <span class="inline-block">Create Free User Account</span></a></li><li class='col-md-6 norpad sm-nopad nav'><a href='/join' id='link229' class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
1875<script type="text/javascript">jQuery(document).ready(function() { jQuery("#member_login_190").bind("submit", function() { });}); </script>
1875 <div class="clearfix"></div> </div> </div> </div> </div> 1876 1877 1878 </div> <!-- Closes Row --> 1879 1880 1881
1881<script type="application/ld+json"> 1882{ 1883 "@context": "https://schema.org/", 1884 "@type": "WebPage", 1885 "@id": "https://www.storycrews.com/login", 1886 "url": "https://www.storycrews.com/login", 1887 "name": "Login Now - StoryCrews ™ï¸ Videographer and Video Expert Directory", 1888 "headline": "Login to your account on StoryCrews â¢ï¸ Videographer and Video Expert Directory", 1889 "about": "StoryCrews â¢ï¸ Videographer and Video Expert Directory > Login", 1890 "inLanguage": "en-US", 1891 "mainEntityOfPage": "https://www.storycrews.com/login", 1892 "author": { 1893 "@id": "https://www.storycrews.com/#organization" 1894 }, 1895 "publisher": { 1896 "@id": "https://www.storycrews.com/#organization" 1897 }, 1898 "isPartOf": { 1899 "@id": "https://www.storycrews.com/#website" 1900 }, 1901 "primaryImageOfPage": { 1902 "@type": "ImageObject", 1903 "url": "/images/storyCrews_hero.jpg" 1904 }, 1905 "keywords": [ 1906 "local video production", 1907 "videographer" 1908 ], 1909 "dateModified": "2016-03-04T17:58:20-05:00" 1910}</script>
1910 1911 <div class="clearfix"></div> 1912 </div> 1913</div> 1914</main> 1915<!-- End Content --> 1916<div class="clearfix footer-clear-element clearfix-lg"></div> 1917 1918<div class="footer"> 1919 <div class="container"> 1920 <div class="row"> 1921 <ul class="footer_menu sm-text-center"> 1922 <li class='col-md-2 col-md-offset-1'><span id='link159' class='head'> Website</span><ul><li class=''><a href='/about' id='link160'>How It Works</a></li></ul></li><li class='col-md-2'><span id='link162' class='head'> Search</span><ul><li class=''><a href='/search_results' id='link163'>Browse Categories</a></li><li class=''><a href='/search_results' id='link164'>Browse Locations</a></li></ul></li><li class='col-md-2'><span id='link165' class='head'> Support</span><ul><li class=''><a href='/about/contact' id='link167'>Contact Us</a></li><li class=''><a href='/login' id='link166'>Member Login</a></li></ul></li><li class=''><span id='link331'> <a class="typeform-share button" href="https://form.typeform.com/to/eNVwYl3e?typeform-medium=embed-snippet" data-mode="popup" style="display:inline-block;text-decoration:none;background-color:#9cb7d4;color:white;cursor:pointer;font-family:Helvetica,Arial,sans-serif;font-size:20px;line-height:50px;text-align:center;margin:0;height:50px;padding:0px 33px;border-radius:25px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:bold;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;" data-size="100" target="_blank">Are you a Videographer? </a></span></li><li class='col-md-5 vpad vmargin'><span id='link211' style="float-left;"> <style>.network-icon.twitter,.network-icon.tiktok{background:#000}</style> 1923<div class="list-social-links"> 1924 <a class="network-icon contact" href="/about/contact" title="Contact Us StoryCrews â¢ï¸ Videographer and Video Expert Directory"> 1925 <i class="bi bi-envelope"></i> 1926 </a> 1927 <a class="network-icon facebook" href="https://www.facebook.com/STORYCREWS-466670094091350/" target="_blank" title="StoryCrews â¢ï¸ Videographer and Video Expert Directory Facebook"> 1928 <i class="bi bi-facebook"></i> 1929 </a> 1930 1931 1932 1933 <div class="clearfix"></div> 1934</div></span></li><li class=''><span id='link326'> <p style = "text-align:center; margin-top:40px;"><a href="https://www.storycrews.com/united-states/georgia/atlanta">Best Atlanta Business Videographer</a>| <a href="/">Best Asheville Business Videographer</a> | <a href="/">Best Austin Business Videographer</a> | <a href="https://www.storycrews.com/united-states/north-carolina/charlotte">Best Charlotte Business Videographer</a> | <a href="https://www.storycrews.com/united-states/illinois/chicago">Best Chicago Business Videographer</a> | <a href="/">Best Cleveland Business Videographer</a> | <a href="https://www.storycrews.com/united-states/colorado/denver">Best Denver Business Videographer</a> | <a href="/">Best Long Island Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/miami">Best Miami Business Videographer</a> | <a href="/">Best Naples Business Videographer</a> | <a href="https://www.storycrews.com/united-states/new-york/new-york">Best New York City Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/orlando">Best Orlando Business Videographer</a> | <a href="https://www.storycrews.com/united-states/arizona/phoenix">Best Phoenix Business Videographer</a> | <a href="https://www.storycrews.com/united-states/florida/tampa">Best Tampa Business Videographer</a> | <a href="/">Best St. Petersburg Fl Business Videographer</a> | <a href="https://www.storycrews.com/united-states/missouri/st-louis">Best St. Louis Business Videographer</a> | <a href="https://taxreliefnearme.org/">Find Tax Relief Near You</a></p></span></li> </ul> 1935 </div> 1936 <div class="col-md-12 fpad fmargin small text-center footer_terms"> 1937 © 2026 <a title="StoryCrews â¢ï¸ Videographer and Video Expert Directory" href="/"> 1938 StoryCrews â¢ï¸ Videographer and Video Expert Directory </a> 1939 All Rights Reserved. 1940 <div class="inline-block"> 1941 <a title="Terms of Use - StoryCrews â¢ï¸ Videographer And Video Expert Directory" href="/about/terms"> 1942 Terms of Use 1943 </a> 1944 | 1945 <a title="Privacy Policy - StoryCrews â¢ï¸ Videographer And Video Expert Directory" href="/about/privacy"> 1946 Privacy Policy 1947 </a> 1948 </div> 1949</div> 1950 </div> 1951</div><style type='text/css'> .scrollup { 1952 border-radius: 3px; 1953 width: 40px; 1954 height: 40px; 1955 opacity: 0.4; 1956 position: fixed; 1957 bottom: 30px; 1958 right: 30px; 1959 display: none; 1960 background: rgba(119, 119, 119, 0.8); 1961 z-index: 1000000; 1962} 1963.scrollup i { 1964 font-size: 36px; 1965 color: white; 1966 position: relative; 1967 top: 0px; 1968 left: 10px; 1969} </style> <div class="myModal modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="mySmallMod
1969alLabel" 1970 data-backdrop="static" data-keyboard="false"> 1971 <div class="modal-dialog" role="document"> 1972 <div class="modal-content"> 1973 <div class="modal-body nohpad nobpad"> 1974 <button type="button" style="z-index:10;position:absolute;right:15px;" class="close hmargin" 1975 data-dismiss="modal">× 1976 </button> 1977 <style> 1978 .member-login-container:not(.modal .module) { 1979 width: 555px; 1980 max-width: 100%; 1981 margin-left: auto; 1982 margin-right: auto; 1983 margin-bottom:0; 1984 background-color: rgb(250, 250, 250)!important; 1985 border-color: rgb(238, 238, 238)!important; 1986 color: rgb(41, 41, 41)!important; 1987 } 1988 .login-register-tabs, .login-register-content { 1989 width: 555px!important; 1990 max-width: 100%; 1991 margin-left: auto!important; 1992 margin-right: auto!important; 1993 background-color: rgb(238, 238, 238); 1994 } 1995 .login-register-content { 1996 background: transparent; 1997 padding: 0; 1998 border: none; 1999 } 2000 .login-register-content h2, .login-register-content h2+hr, .login-register-content .account-menu-title { 2001 display: none!important; 2002 } 2003 .express_login_create_account_prefix hr { 2004 margin: 15px 0 10px; 2005 }
2006 .modal-content #containerFBLogin, .modal-content #containerGoogleLogin { 2007 margin:15px 0; 2008 } 2009 2010 /* CSS When Login Form and Express Registration Rendered in Sidebar */ 2011 .col-md-3 .bd-chat-well-container,.col-md-4 .bd-chat-well-container { 2012 padding: 15px 10px; 2013 } 2014 .col-md-3 .bd-chat-center-text,.col-md-4 .bd-chat-center-text { 2015 margin: 0; 2016 font-size: 20px; 2017 padding: 0 15px; 2018 } 2019 .col-md-3 .member-login-page-container .login-register-tabs *, .col-md-4 .member-login-page-container .login-register-tabs * { 2020 font-size: 12px; 2021 line-height: 1.2em; 2022 vertical-align: bottom; 2023 } 2024 .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a { 2025 padding: 5px !important; 2026 height: 50px; 2027 vertical-align: middle; 2028 display: table-cell !important; 2029 width: 1%; 2030 } 2031 .col-md-3 .member-login-page-container .login-register-content, .col-md-4 .member-login-page-container .login-register-content { 2032 padding: 0; 2033 } 2034 .col-md-3 .member-login-container, .col-md-4 .member-login-container { 2035 padding: 15px !important; 2036 font-size: 13px; 2037 } 2038 .col-md-3 .member-login-page-container .input-lg, .col-md-4 .member-login-page-container .input-lg { 2039 height: 34px; 2040 padding: 6px 12px; 2041 font-size: 14px; 2042 } 2043 .col-md-3 .member-login-page-container .security_question_label, .col-md-4 .member-login-page-container .security_question_label { 2044 transform: scale(.85); 2045 margin: -1.15em -1.15em 0; 2046 } 2047 .col-md-3 #containerFBLogin, .col-md-4 #containerFBLogin, .col-md-3 #containerGoogleLogin, .col-md-4 #containerGoogleLogin, .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li { 2048 width: 100%; 2049 display: block; 2050 margin-top:5px; 2051 } 2052 .col-md-3 .login-cta-buttons li, .col-md-4 .login-cta-buttons li { 2053 padding:0 2054 } 2055 .col-md-3 .login-cta-buttons ul.nav, .col-md-4 .login-cta-buttons ul.nav { 2056 margin-top: -10px; 2057 } 2058 .col-md-3 #googleAction, .col-md-3 #facebookAction, .col-md-4 #googleAction, .col-md-4 #facebookAction { 2059 padding: 0; 2060 min-height: 0; 2061 font-size: 14px; 2062 margin: 0; 2063 } 2064 .col-md-3 #googleAction img, .col-md-3 #facebookAction img, .col-md-4 #googleAction img, .col-md-4 #facebookAction img { 2065 height: 36px !important; 2066 margin-right: 5px; 2067 position: relative!important; 2068 display: inline-block; 2069 } 2070 @media only screen and (max-width: 767px) { 2071 .col-md-3 .member-login-page-container .login-register-tabs a, .col-md-4 .member-login-page-container .login-register-tabs a { 2072 display: block !important; 2073 width: 100%; 2074 line-height: 40px; 2075 } 2076 2077 #containerGoogleLogin { 2078 text-align: center; 2079 margin-top: 10px; 2080 } 2081 #containerGoogleLogin #gBtn { 2082 display: inline-block; 2083 } 2084 } 2085 </style> 2086 <div class="row member-login-page-container"> 2087 <div class="fpad-lg novpad"> 2088 2089 2090 <div class="module fpad-xl member-login-container"> 2091 <style type="text/css">label span.required { color: #B94A48; }span.help-inline, span.help-block {font-size: .9em; }</style><form action="/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" id="member_login_190-1" method="post" labelwidth="100" labelpaddingtop="0.5em" enctype="multipart/form-data" form_action_type="redirect" form_action_div return_data_type="" name="member_login_190-1" class=" ">
2091<input type="hidden" name="sized" value="0" id="member_login_190-1-element-0"/><input type="hidden" name="form" value="myform" id="member_login_190-1-element-1"/><input type="hidden" name="formname" value="member_login" id="member_login_190-1-element-2"/><input type="hidden" name="dowiz" value="1" id="member_login_190-1-element-3"/><input type="hidden" name="save" value="1" id="member_login_190-1-element-4"/><input type="hidden" name="url_origin_pars" value="/login" id="member_login_190-1-element-5"/><input type="hidden" name="action" autocomplete="off" value="login" id="member_login_190-1-element-6"/><h2 class="nomargin member-login-h2-form-title">Member Login</h2><hr><style type='text/css'> #containerGoogleLogin #gBtn { 2092 display: inline-block; 2093 text-align: center; 2094 width: 216px; 2095} 2096 2097.module #containerFBLogin #facebookAction img, .module #containerFBLogin #facebookAction img { 2098 position: absolute !important; 2099} 2100.module #containerFBLogin a#facebookAction { 2101 max-width: 200px; 2102 position: relative; 2103 left: -8px; 2104 2105} </style> <!-- Required Font-Family for Social Buttons --> 2106 <link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap"> 2107 <noscript> 2108 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:500&display=swap"> 2109 </noscript> 2110 2111 <div class="row social-login-row"> 2112 </div><div class="form-group"><label class="vertical-label bd-email" for="member_login_190-1-element-9"><span class="required">* </span>Email Address</label><input type="email" name="email" required placeholder="[email protected]" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-9"/></div><div class="form-group"><label class="vertical-label bd-password" for="member_login_190-1-element-10"><span class="required">* </span>Password</label><button type="button" tabindex="-1" id="togglePassword" onclick="showPassword(this);"> <i class="fa fa-lock" aria-hidden="true"></i></button><input type="password" name="pass" required placeholder="Enter Password" autocomplete="off" value class="form-control input-lg" id="member_login_190-1-element-10"/></div><span class="help-block bpad bmargin notmargin"> <a href="/login/retrieval">Forgot Password? Click to Reset Password</a></span><div class="form-group"><div class="form-group security_question_label"> 2113 <label for="captchaContainer"> 2114 <span class="required">* </span> 2115 Answer Security Question 2116 </label> 2117 <div id="member_login_190-1-captchaContainer" class="control-group"> 2118 <div class="g-recaptcha" id="member_login_190-1-google-recaptcha"></div> 2119 </div> 2120 <small class="help-block" id="recaptcha_error" style="display:none;" data-fv-validator="notEmpty" data-fv-for="recaptcha" data-fv-result="INVALID" />The security check was not completed successfully.</small> 2121 <div class="clearfix bmargin"></div> 2122 <input type="hidden" name="recaptcha" id="member_login_190-1-rcap"> 2123</div> 2124 <style> 2125 .modal .g-recaptcha-scale, .col-md-4 .g-recaptcha-scale, .col-md-3 .g-recaptcha-scale, .col-lg-3 .g-recaptcha-scale, .col-lg-4 .g-recaptcha-scale { 2126 transform: scale(0.77); 2127 -webkit-transform: scale(0.77); 2128 transform-origin: 0 0; 2129 -webkit-transform-origin: 0 0; 2130 margin-bottom: -15px; 2131 } 2132 2133 .modal #member_login_190-1-captchaContainer, .col-md-4 #member_login_190-1-captchaContainer, .col-md-3 #member_login_190-1-captchaContainer, .col-lg-3 #member_login_190-1-captchaContainer, .col-lg-4 #member_login_190-1-captchaContainer { 2134 transform: scale(0.77); 2135 -webkit-transform: scale(0.77); 2136 transform-origin: 0 0; 2137 -webkit-transform-origin: 0 0; 2138 margin-bottom: -15px; 2139 } 2140 </style> 2141
2141<script type="text/javascript"> 2142 if(typeof formsFound == "undefined"){ 2143 var formID = ''; 2144 var currentCaptcha = {}; 2145 var captchaHolders = {}; 2146 var formsFound = {}; 2147 var captchaApiRequested = false; 2148 /* The forms the visitor has actually interacted with - only these get a widget. */ 2149 var captchaArmedForms = []; 2150 /* api.js stays lazy - nothing is fetched from Google until the visitor actually 2151 touches the form. 'click' alone was too narrow: a keyboard-only visitor tabs in 2152 and presses Enter without ever clicking, so api.js never loaded, the captcha 2153 never rendered, and the form POSTed an empty token. */ 2154 var captchaTriggerEvents = ['click', 'keydown', 'focusin', 'touchstart']; 2155 2156 window.addEventListener('load', () => { 2157 formID = document.querySelectorAll('[name="recaptcha"]'); 2158 if (typeof formID != "undefined" && formID !== null) { 2159 for (let i = 0; i < formID.length; i++) { 2160 let formIDForm = formID[i].closest('form'); 2161 let captchaHolder = formIDForm.querySelector(".g-recaptcha"); 2162 2163 if (typeof formsFound[formIDForm.id] != "undefined") { 2164 formsFound[formIDForm.id]['counter']++; 2165 }else{ 2166 formsFound[formIDForm.id] = {'counter' : 1}; 2167 } 2168 2169 formIDForm.setAttribute('data-counter', formsFound[formIDForm.id]['counter']); 2170 captchaHolder.setAttribute('id',captchaHolder.id+'-'+formsFound[formIDForm.id]['counter']); 2171 2172 if (typeof formIDForm != "undefined" && formIDForm !== null) { 2173 captchaTriggerEvents.forEach( evt => 2174 formIDForm.addEventListener(evt, reCaptchaOnFormInteraction, false) 2175 ); 2176 } 2177 } 2178 } 2179 }); 2180 } 2181 2182 function reCaptchaOnFormInteraction(event) { 2183 if (event && event.currentTarget) { 2184 captchaArmForm(event.currentTarget); 2185 } 2186 if (captchaApiRequested) { 2187 renderArmedCaptchas(); 2188 return; 2189 } 2190 captchaApiRequested = true; 2191 2192 var head = document.getElementsByTagName('head')[0]; 2193 var script = document.createElement('script'); 2194 script.type = 'text/javascript'; 2195 script.src = 'https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit&hl=en'; 2196 head.appendChild(script); 2197 } 2198 2199 var captchaArmForm = function (formEl) { 2200 if (!formEl) { 2201 return; 2202 } 2203 for (var a = 0; a < captchaArmedForms.length; a++) { 2204 if (captchaArmedForms[a] === formEl) { 2205 return; 2206 } 2207 } 2208 captchaArmedForms.push(formEl); 2209 }; 2210 2211 var captchaSolvedCallback = function (holder) { 2212 return function () { 2213 var formEl = holder.closest('form'); 2214 if (!formEl) { 2215 return; 2216 } 2217 $(formEl).find('.security_question_label').removeClass('has-error'); 2218 $(formEl).find('#recaptcha_error').css('display', 'none'); 2219 var notification = document.getElementById(formEl.id + '-notification'); 2220 if (notification && notification.classList.contains('alert-danger-subtle')) { 2221 $(notification).slideUp(); 2222 } 2223 }; 2224 }; 2225 2226 var renderArmedCaptchas = function () { 2227 if (typeof grecaptcha === "undefined" || typeof grecaptcha.render !== "function") { 2228 return; 2229 } 2230 for (var f = 0; f < captchaArmedForms.length; f++) { 2231 var holder = captchaArmedForms[f].querySelector('div[class=g-rec
2231aptcha]'); 2232 2233 if (!holder || !holder.id || holder.getClientRects().length === 0) { 2234 continue; 2235 } 2236 /* Guard a second render: grecaptcha throws on an element it already claimed. */ 2237 if (typeof captchaHolders[holder.id] === "undefined") { 2238 captchaHolders[holder.id] = grecaptcha.render(holder.id, { 2239 'sitekey': '6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p', 2240 'callback': captchaSolvedCallback(holder) 2241 }); 2242 } 2243 } 2244 }; 2245 2246 var onloadCallback = function (event) { 2247 renderArmedCaptchas(); 2248 }; 2249 2250 </script>
vendor: 1 bytes, line 2250
2250
2251<script> 2252 $(document).ready(function(){ 2253 /* Implicit submission (Enter inside a field) fires 'submit' without firing a click on 2254 the submit button, so the click guard below never sees it and the form POSTed an 2255 empty token. Bound on document/capture so it runs before FormValidation's own 2256 handler on the form - at AT_TARGET the capture flag does not order listeners, so a 2257 listener on the form itself would not reliably win. Native HTMLFormElement.submit() 2258 does not dispatch 'submit', so the solved-captcha path below is unaffected. */ 2259 var captchaGuardedForm = document.getElementById('member_login_190-1'); 2260 if (captchaGuardedForm) { 2261 document.addEventListener('submit', function (event) { 2262 if (event.target !== captchaGuardedForm) { 2263 return; 2264 } 2265 2266 var formId = captchaGuardedForm.id; 2267 var captchaHolderKey = formId + "-google-recaptcha-" + $(captchaGuardedForm).data('counter'); 2268 var captchaRendered = typeof captchaHolders[captchaHolderKey] != "undefined"; 2269 2270 if (captchaRendered && grecaptcha.getResponse(captchaHolders[captchaHolderKey]) !== "") { 2271 $("#" + formId + " .security_question_label").removeClass("has-error"); 2272 $("#" + formId + " #recaptcha_error").css("display", "none"); 2273 return; 2274 } 2275 2276 /* Unsolved, or api.js still in flight: either way there is no token to send. */ 2277 event.preventDefault(); 2278 event.stopImmediatePropagation(); 2279 $("#" + formId + " .security_question_label").addClass("has-error"); 2280 $("#" + formId + " #recaptcha_error").css("display", "block"); 2281 return false; 2282 }, true); 2283 } 2284 $("#member_login_190-1 input[type=submit]").unbind('click'); 2285 $("#member_login_190-1 input[type=submit]").click(function (event) { 2286 2287 var formId = $(this.form).attr('id'); 2288 var captchaHolderKey = formId + "-google-recaptcha-" +$(this.form).data('counter'); 2289 2290 if (typeof captchaHolders[captchaHolderKey] != "undefined") { 2291 if (grecaptcha.getResponse(captchaHolders[captchaHolderKey]) === "") { 2292 event.preventDefault(); 2293 $("#" + formId).formValidation('validate'); 2294 $("#" + formId + " .security_question_label").addClass("has-error"); 2295 $("#" + formId + " #recaptcha_error").css("display", "block"); 2296 return false; 2297 } 2298 2299 /* Solved captcha: clear the error UI and let the click proceed untouched. 2300 The browser then fires a REAL, button-initiated submit event, so 2301 FormValidation runs its normal chain (success.form.fv -> AJAX modal on 2302 checkout / native POST on login). Re-submitting here artificially broke 2303 both ways: native form.submit() skips the FV chain (checkout rendered the 2304 raw JSON response), and jQuery .submit() fires a synthetic submit that FV 2305 refuses, leaving the form stuck after the first error (Bug 2). */ 2306 $("#" + formId + " .security_question_label").removeClass("has-error"); 2307 $("#" + formId + " #recaptcha_error").css("display", "none"); 2308 } 2309 }); 2310 }); 2311</script>
2311</div><div class="form-actions"><input type="submit" value="Login Now" name class="btn btn-primary btn-lg btn-block " id="member_login_190-1-element-13"/></div><div class="login-cta-buttons"><hr class="cta-hr"><ul class="list-inline nomargin inline-block btn-block"><li class='col-md-6 nolpad sm-nopad nav'><a href='/checkout/5' id='link228' class='btn btn-danger btn-block sm-bmargin'>Not a Registered User? <span class="inline-block">Create Free User Account</span></a></li><li class='col-md-6 norpad sm-nopad nav'><a href='/join' id='link229' class='btn btn-success btn-block'>Are You a Local Business? <span class="inline-block">List Your Company Now</span></a></li></ul><div class="clearfix"></div></div></form>
2311<script type="text/javascript">jQuery(document).ready(function() { jQuery("#member_login_190-1").bind("submit", function() { 2312 });}); </script>
2312 <div class="clearfix"></div> 2313 </div> 2314 2315 2316 </div> 2317 </div> 2318 </div> 2319 </div> 2320 </div> 2321 </div> 2322 2323 2324 2325 <link rel="stylesheet" type="text/css" href="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.css">
2326<script src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/limonte-sweetalert2/6.11.2/sweetalert2.min.js"></script>
2326 2327
2328<script> 2329 function clearContent(thisObj){ 2330 var size; 2331 if(thisObj.hasClass('input-sm') || thisObj.parents('.input-group').hasClass('input-group-sm')){ 2332 size = "small"; 2333 } else if (thisObj.hasClass('input-lg') || thisObj.parents('.input-group').hasClass('large-autosuggest')){ 2334 size = "large"; 2335 } else { 2336 size = "medium"; 2337 } 2338 if(!thisObj.parent().hasClass('input_wrapper')){ 2339 if(thisObj.parent().hasClass('input-group-sm')){ 2340 thisObj.wrap('<span class="input-group-sm input_wrapper"></span>'); 2341 } else if (thisObj.parent().hasClass('input-group-lg')){ 2342 thisObj.wrap('<span class="input-group-lg input_wrapper"></span>'); 2343 } else { 2344 thisObj.wrap('<span class="input_wrapper"></span>'); 2345 } 2346 } 2347 if(thisObj.val() != ""){ 2348 if(thisObj.hasClass('googleSuggest')){ 2349 thisObj.parent().find('.fill_location').remove(); 2350 } 2351 if (!thisObj.parent().find('.clear_content').length){ 2352 thisObj.parent().append(`<span class="clear_content ${size}"><i class="fa fa-times-circle" aria-hidden="true"></i></span>`); 2353 if (thisObj.hasClass("tt-input")) { 2354 thisObj.focus(); 2355 } 2356 2357 } 2358 } 2359 } 2360 2361 $(document).on('click', '.drp-buttons .applyBtn', function(){ 2362 clearContent($(".dateRange input")); 2363 }); 2364 2365 $('.sm-autosuggest input, .googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').keyup(function(){ 2366 clearContent($(this)); 2367 }); 2368 2369 $(document).ready(function(){ 2370 $('.sm-autosuggest input, input.googleSuggest, .large-autosuggest input, .md-autosuggest input, .normal-autosuggest input, .google-writen-location, .dateRange input').each(function(){ 2371 clearContent($(this)); 2372 }) 2373 }) 2374 2375 $(document).on('click', '.clear_content', function(){ 2376 $(this).parent().find('input').val(''); 2377 //tt-input its a class for typeahead auto-suggest 2378 if ($(this).parent().find('input').hasClass("tt-input")) { 2379 $(this).parent().find('input').typeahead('val',''); 2380 } 2381 clearContent($(this).parent().find('input')); 2382 $(this).remove(); 2383 }); 2384 2385 $(window).on('load', function () { 2386 setTimeout(function() { 2387 // add missing href attribute to multi-category options in search modules 2388 $('.bootstrap-select.show-tick .dropdown-menu a').attr('href', '#'); 2389 }, 2000); 2390 }); 2391</script>
2391 2392 2393 2394 2395<a href="#" class="scrollup" title="scrollup"> 2396 <i class="fa fa-caret-up" aria-hidden="true"></i> 2397</a>
2398<script> 2399 $(document).ready(function () { 2400 2401 if ($('.navbar-default').length > 0) { 2402 var menu = $('.navbar-default'); 2403 var origOffsetY = menu.offset().top; 2404 2405 function scroll() { 2406 2407 if ($(window).scrollTop() > origOffsetY) { 2408 $('.navbar-default').addClass('navbar-fixed-top'); 2409 $('.navbar-default').addClass('transparent_menu'); 2410 2411 } else { 2412 $('.navbar-default').removeClass('navbar-fixed-top'); 2413 $('.navbar-default').removeClass('transparent_menu'); 2414 } 2415 } 2416 document.onscroll = scroll; 2417 }; 2418 }); 2419 $(document).ready(function(){ 2420 // .progressbar() comes from bootstrap-progressbar.min.js, loaded only by widgets 1236/1318. 2421 // Elsewhere it used to fall through to jQuery UI's; jQuery UI is no longer global, so an 2422 // unguarded call throws and kills the rest of this ready() handler (scrollup, crop button). 2423 if ($.fn.progressbar) { 2424 $('.progress .progress-bar').progressbar({ 2425 display_text: 'fill' 2426 }); 2427 } 2428 $(window).scroll(function(){ 2429 2430 if ($(this).scrollTop() > 600) { 2431 $('.scrollup').fadeIn(); 2432 2433 } else { 2434 $('.scrollup').fadeOut(); 2435 } 2436 }); 2437 $('.scrollup').click(function(){ 2438 $("html, body").animate({ 2439 scrollTop: 0 2440 }, 600); 2441 return false; 2442 }); 2443 $('#cropButton').click(function(){ 2444 var iframe = $("#cropiFrame"); 2445 iframe.attr("src", iframe.data("src")); 2446 }); 2447 }); 2448</script>
vendor: 2 bytes, line 2448
2448
2449<script type="text/javascript"> 2450(function () { 2451 try { 2452 var email = new URLSearchParams(window.location.search).get('email'); 2453 if (!email) { return; } 2454 email = email.trim(); 2455 if (email.indexOf('@') === -1) { return; } 2456 /* Sets the input value property (never HTML) -> XSS-safe regardless of the query value. */ 2457 var fill = function () { 2458 var fields = document.querySelectorAll('input[name="email_r"]'); 2459 for (var i = 0; i < fields.length; i++) { 2460 if (!fields[i].value) { fields[i].value = email; } 2461 } 2462 }; 2463 if (document.readyState === 'loading') { 2464 document.addEventListener('DOMContentLoaded', fill); 2465 } else { 2466 fill(); 2467 } 2468 } catch (e) {} 2469})(); 2470</script>
vendor: 2 bytes, line 2470
2470
2471<script> 2472 $('#captchaContainer').removeClass('form-control '); 2473 $(".website_url_field").keyup(function(){ 2474 var fieldName = $(this).attr('name'); 2475 $(this).val($(this).val().replace(/\s+/g, '')); 2476 $('#myform').formValidation('revalidateField', fieldName); 2477 }); 2478</script>
2478 2479
2479<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/formValidation.min.js"></script>
2479 2480
2480<script src="https://www.optimizecdn.com/directory/cdn/bootstrap/formvalidation/current/dist/js/framework/bootstrap.min.js"></script>
2480 2481
2481<script type="text/javascript"> 2482 function decodeHtml(html) { 2483 var txt = document.createElement("textarea"); 2484 txt.innerHTML = html; 2485 return txt.value; 2486 } 2487 2488 // Override FormValidation URI validator to prevent recursion with URLs that contain @ characters 2489 $(function() { 2490 function applyFix() { 2491 // Check if FormValidation library and URI validator are loaded 2492 if (FormValidation && FormValidation.Validator && FormValidation.Validator.uri) { 2493 FormValidation.Validator.uri.validate = function(validator, $field, options) { 2494 var value = validator.getFieldValue($field, 'uri').trim(); 2495 return value === '' || new RegExp('^https?://[^\\s]+\\.[^\\s]{2,}').test(value); 2496 }; 2497 return true; 2498 } 2499 return false; 2500 } 2501 2502 if (!applyFix()) { 2503 setTimeout(applyFix, 50); 2504 } 2505 }); 2506 </script>
2506 2507
2507<script type="text/javascript"> 2508 2509 var counterSubmit = 0; 2510 $(document).ready(function() { 2511 /* grecaptcha.reset() with no argument always resets widget 0. On a page with two 2512 captcha holders that clears the wrong checkbox, so the widget the visitor solved 2513 keeps a token Google has already spent and every retry fails the security check. 2514 captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha"; 2515 an undefined id means no per-form id is known and the arg-less call is used, 2516 exactly as before. */ 2517 function bdCaptchaWidgetId(formId) { 2518 if (typeof captchaHolders === "undefined" || !formId) { 2519 return undefined; 2520 } 2521 /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84), 2522 so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from 2523 the holder element itself so the counter never has to be reconstructed. */ 2524 var form = document.getElementById(formId); 2525 var holder = form && form.querySelector(".g-recaptcha"); 2526 return holder ? captchaHolders[holder.id] : undefined; 2527 } 2528 2529 function bdCaptchaReset(formId) { 2530 if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") { 2531 return; 2532 } 2533 var widgetId = bdCaptchaWidgetId(formId); 2534 if (widgetId === undefined) { 2535 grecaptcha.reset(); 2536 } else { 2537 grecaptcha.reset(widgetId); 2538 } 2539 } 2540 2541 // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry 2542 // rules for fields that are NOT rendered in this form (conditionally-rendered or 2543 // duplicated form configs). Those phantom rules make formValidation mis-evaluate 2544 // isValid(), so an empty required field bypasses validation and submits natively. 2545 // Remove any rule whose field has no matching element before initializing. 2546 // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly 2547 // REMOVES rules (never adds validators, never overrides native submit, never 2548 // intercepts on capture phase, never re-validates on click) â so it cannot 2549 // reproduce the "Save button slides down / nav broken / no success message" 2550 // regression that caused #5902 to be rolled back on site 19413. 2551 var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}}; 2552 var formElement = $(`form[name='member_login_190']`); 2553 if(validatorConfig && validatorConfig.fields) { 2554 Object.keys(validatorConfig.fields).forEach(function(fieldName) { 2555 if(formElement.find('[name="' + fieldName + '"]').length === 0) { 2556 delete validatorConfig.fields[fieldName]; 2557 } 2558 }); 2559 } 2560 2561 // Scroll to the first invalid field when submit fails validation, 2562 // so the user can immediately see why the form will not submit 2563 formElement.on('err.form.fv', function(e) { 2564 var $firstError = $(e.target).find('.form-group.has-error').first(); 2565 if ($firstError.length) { 2566 $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700); 2567 } 2568 }); 2569
2570 formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) { 2571 2572 if('member_login' == 'unsubscribe_email'){ 2573 return true; 2574 } 2575 // Prevent form submission 2576 e.preventDefault(); 2577 $form = $(e.target), 2578 fv = $form.data('formValidation'); 2579 2580 // Check HTML5 required fields that FormValidation may not know about 2581 var requiredEmpty = false; 2582 $form.find('[required]').each(function() { 2583 var val = $(this).val(); 2584 if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) { 2585 requiredEmpty = true; 2586 $(this).closest('.form-group').addClass('has-error'); 2587 if ($(this).siblings('.required-error').length === 0) { 2588 $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>'); 2589 } 2590 } else { 2591 var $reqGroup = $(this).closest('.form-group'); 2592 $(this).siblings('.required-error').remove(); 2593 // Keep has-error if another validator is still failing for this field 2594 if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) { 2595 $reqGroup.removeClass('has-error'); 2596 } 2597 } 2598 }); 2599 if (requiredEmpty) { 2600 fv.disableSubmitButtons(false); 2601 counterSubmit = 0; 2602 // Scroll to the first field with an error (HTML5-required scan does 2603 // not trigger err.form.fv, so handle the scroll here too) 2604 var $firstReqError = $form.find('.form-group.has-error').first(); 2605 if ($firstReqError.length) { 2606 $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700); 2607 } 2608 return false; 2609 } 2610 2611 var values = $(this).serialize(); 2612 2613 2614 var locationFieldCorrect = true; 2615 2616 if($("#member_login_190 .location_required").length > 0){ 2617 $("#member_login_190 .location_required").each(function (index) { 2618 if($(this).data('state') == 1){ 2619 if($('#member_login_190 input[name="lead_location"]').val() == "" || $('#member_login_190 input[name="lat"]').val() == "" || $('#member_login_190 input[name="lng"]').val() == "") { 2620 locationFieldCorrect = false; 2621 } 2622 } 2623 }); 2624 } 2625 2626 if(locationFieldCorrect === false){ 2627 //check that there is a latitude or longitude 2628 swal(`Whoops!`, `The location information is required to submit this form`, "error"); 2629 return false; 2630 } 2631 2632 2633 if (!$(this).attr("action")) { 2634 var action = ''; 2635 2636 } else { 2637 var action = $(this).attr("action"); 2638 } 2639 if (!$(this).attr("method")) { 2640 var method = 'post'; 2641 2642 } else { 2643 var method = $(this).attr("method"); 2644 } 2645 if (!$(this).attr("form_action_type")) { 2646 var form_action_type = 'notification'; 2647 2648 } else { 2649 var form_action_type = $(this).attr("form_action_type"); 2650 } 2651 if (!$(this).attr("form_action_div")) { 2652 /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */ 2653 var form_action_div = $('#main-content').length ? '#main-content' : '#first_container'; 2654 2655 } else { 2656 var form_action_div = $(this).attr("form_action_div"); 2657 } 2658 if (!$(this).attr("return_data_type")) { 2659 var return_data_type = 'json'; 2660 2661 } else { 2662 var return_data_type = $(this).attr("return_data_type"); 2663 } 2664 var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000); 2665 if (!submitInFlight) { 2666 if ($("#member_login_190-notification").html() != "") { 2667 $("#member_login_190-notification").remove(); 2668 } 2669 if ($(this).find('input[type="submit"]').length > 0) { 2670 $(this).find('input[type="submit"]').before('<div id="member_login_190-notification" class="alert"></div>'); 2671 2672 } else { 2673 $(this).prepend('<div id="member_login_190-notification" class="alert"></div>'); 2674 } 2675 } 2676 var notification = $("#member_login_190-notification"); 2677 2678 if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) { 2679 notification.html(`Processing Request...`).addClass("alert-warning-subtle"); 2680 setTimeout(function(){ 2681 fv.defaultSubmit(); 2682 }, 100); 2683 } else { 2684 notification.html(`Processing Request...`).addClass("alert-warning-subtle"); 2685 if(!submitInFlight) { 2686 counterSubmit++; 2687 $form.data('bdLastSubmitAt', Date.now()); 2688 2689 var fields = $(this).serializeArray(); 2690 var formField = []; 2691 var processData = true; 2692 var contentType = "application/x-www-form-urlencoded; charset=UTF-8"; 2693 2694 2695 2696 if($("#member_login_190 input[type=file]").length > 0){ 2697 2698 var formObject = new FormData(); 2699 processData = false; 2700 contentType = false; 2701 2702 $(fields).each(function(index,field){ 2703 formField.push(field.name+"="+field.value); 2704 }); 2705 2706 values = formField.join("&"); 2707 2708 $(formField).each(function(index,fieldValue){ 2709 var fieldInfo = fieldValue.split('='); 2710 formObject.append(fieldInfo[0],fieldInfo[1]); 2711 }); 2712 2713 $("#member_login_190 input[type=file]").each(function(index,node){ 2714 var file = this.files[0]; 2715 if(typeof file != "undefined"){ 2716 formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name); 2717 } 2718 }); 2719 }else{ 2720 2721 $(fields).each(function(index,field){ 2722 formField.push(field.name+"="+encodeURIComponent(field.value)); 2723 }); 2724 2725 var formObject = formField.join("&"); 2726 } 2727 2728 $.ajax({
2729 url: action, 2730 type: method, 2731 data: formObject, 2732 dataType: return_data_type, 2733 processData: processData, 2734 contentType: contentType, 2735 success: function (data) { 2736 // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above. 2737 notification = $("#member_login_190-notification"); 2738 if (return_data_type == "html") { 2739 var result = 'success'; 2740 2741 if (!data != "") { 2742 var result_widget = data['result_widget']; 2743 } 2744 2745 } else { 2746 2747 2748 if (!data['result']) { 2749 var result = 'error'; 2750 } else { 2751 var result = data['result']; 2752 } 2753 if (!data['result_widget']) { 2754 var result_widget = ''; 2755 2756 } else { 2757 var result_widget = data['result_widget']; 2758 } 2759 } 2760 if (result == "success") { 2761 2762 if (!data['message']) { 2763 var message = `Your information has submitted successfully!`; 2764 2765 } else { 2766 var message = data['message']; 2767 } 2768 if (!data['redirect_url']) { 2769 var redirect_url = ''; 2770 2771 } else { 2772 var redirect_url = data['redirect_url']; 2773 } 2774 2775 2776 2777 if (form_action_type == "notification") { 2778 if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) { 2779 if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") { 2780 redirect_url = "/" + redirect_url; 2781 } 2782 if (notification.parents('.modal').length) { 2783 $('.modal-backdrop').hide(); 2784 $('.modal').modal('hide'); 2785 } 2786 window.location.href = redirect_url; 2787 fv.resetForm(true); 2788 } else { 2789 notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>') 2790 .addClass('alert-dismissible') 2791 .addClass("alert-success-subtle") 2792 .removeClass("alert-danger-subtle") 2793 .removeClass("alert-warning-subtle") 2794 2795 2796 2797 if(notification.parents('.modal').length && 'member_login_190' == 'whmcs_billing_address'){ 2798 setTimeout(function(){ 2799 notification.parents('.modal').modal('hide'); 2800 }, 1000); 2801 } 2802 } 2803 2804 } else if (form_action_type == "widget") { 2805 2806 if (result_widget != '') { 2807 2808 setTimeout(function(){ 2809 if(form_action_div != '.newsletter_modal_form_container'){ 2810 $("html, body").animate({ scrollTop: 0 }, 600); 2811 } 2812 $(form_action_div).html(decodeHtml(result_widget)).text(); 2813 2814 }, 1000); 2815 } 2816 2817 } else if (form_action_type == "redirect") { 2818 2819 if (redirect_url == "") { 2820 redirect_url = decodeURIComponent(""); 2821 } 2822 2823 if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") { 2824 redirect_url = "/" + redirect_url; 2825 } 2826 current_location = "/login"; 2827 refresh_pages_string = "/login"; 2828 refresh_pages_string = refresh_pages_string.replace(/ /g,''); 2829 refresh_pages_array = refresh_pages_string.split(','); 2830 notification.html(message) 2831 .addClass("alert-success-subtle") 2832 .removeClass("alert-danger-subtle") 2833 .removeClass("alert-warning-subtle") 2834 .delay(2000).slideUp(); 2835 if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){ 2836 window.location.href = window.location.href+'?logged'; 2837 } else { 2838 window.location.href = redirect_url; 2839 } 2840 2841 fv.resetForm(true); 2842 } 2843 if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190' != 'whmcs_billing_address'){ 2844 $('.modal-backdrop').hide(); 2845 } 2846 } else { 2847 bdCaptchaReset(formElement.attr('id')); 2848 if (!data['message']) { 2849 var message = `You entered invali
2849d data. Please try to save again.`; 2850 2851 } else { 2852 var message = data['message']; 2853 } 2854 $("#member_login_190-notification").html(message) 2855 .addClass("alert-danger-subtle") 2856 .removeClass("alert-success-subtle") 2857 .removeClass("alert-warning-subtle") 2858 .fadeIn(); 2859 fv.disableSubmitButtons(false); 2860 } 2861 counterSubmit = 0; 2862 }, 2863 error: function (e) { 2864 2865 if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){ 2866 bdCaptchaReset(formElement.attr('id')); 2867 $("#member_login_190-notification").html(`Recaptcha Error`); 2868 } else { 2869 $("#member_login_190-notification").html(`A connection error occurred while saving. Please try to save again.`); 2870 } 2871 $("#member_login_190-notification").addClass("alert-warning-subtle") 2872 .removeClass("alert-success-subtle") 2873 .removeClass("alert-warning-subtle") 2874 .fadeIn(); 2875 counterSubmit = 0; 2876 } 2877 });/// End Ajax 2878 } 2879 }//END else 2880 }).bind('keydown', function(event) { 2881 2882 if (event.ctrlKey || event.metaKey) { 2883 2884 switch (String.fromCharCode(event.which).toLowerCase()) { 2885 2886 case 's': 2887 var nativeForm = $(this)[0]; 2888 if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) { 2889 event.preventDefault(); 2890 return false; 2891 } 2892 $(this).submit(); 2893 break; 2894 } 2895 } 2896 }); 2897 2898 /// This will turn any select2 that are required in the form builder to being required elements. 2899 $('#member_login_190 select').each(function (i, obj) { 2900 setTimeout(function(){ 2901 if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") { 2902 $(obj).css("z-index","-999"); 2903 $(obj).css("height","0"); 2904 $(obj).css("width","0"); 2905 $(obj).css("display","block"); 2906 $(obj).css("position","absolute"); 2907 } 2908 }, 3000); 2909 }); 2910 2911 // Clear required-error messages when user fills in a required field 2912 $('#member_login_190').on('keyup change', '[required]', function() { 2913 var val = $(this).val(); 2914 if (val !== '' && val !== null && val.trim() !== '') { 2915 var $group = $(this).closest('.form-group'); 2916 // Remove only this handler's own required message 2917 $(this).siblings('.required-error').remove(); 2918 // Keep has-error if another FormValidation validator is still failing 2919 // (e.g. stringLength, regexp). has-error is shared, so removing it 2920 // wholesale would clobber other validators' red styling. 2921 if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) { 2922 $group.removeClass('has-error'); 2923 } 2924 } 2925 }); 2926 2927 });//END $('# echo $_SERVER[form_element_id]; ').formValidation( 2928 </script>
2928 2929 2930
2930<script type="text/javascript"> 2931 /* CT dissolved its county governments in 1960, so Google returns its 8 counties as 2932 colloquial_area instead of administrative_area_level_2 â they must never reach a 2933 city field. Google translates the component name to the site language, so the 2934 language-stable place_id is checked first and the word list only backs it up. */ 2935 if (typeof window.bdIsColloquialCounty !== 'function') { 2936 window.bdIsColloquialCounty = function (componentName, resultPlaceId) { 2937 var countyPlaceIds = [ 2938 'ChIJWRM2Nakw5okRoTCxHvz_5xw', /* Middlesex County, CT */ 2939 'ChIJmeTbuDYH6IkR3xgeNvszpgg', /* Fairfield County, CT */ 2940 'ChIJiT24cvvP54kR2fSPHkp0Akc', /* New Haven County, CT */ 2941 'ChIJvYe7N7eQ54kRL6nZaXRwPkI', /* Litchfield County, CT */ 2942 'ChIJtxC3p6qs54kRIvK-2bctar0', /* Hartford County, CT */ 2943 'ChIJj-lvZQli5okRGCuGRd6xKt0', /* Tolland County, CT */ 2944 'ChIJRWKqeLdi5okRLXWDlSEGeTY', /* Windham County, CT */ 2945 'ChIJwTIQbvVv5okRU5_gSJczUTQ' /* New London County, CT */ 2946 ]; 2947 2948 if (typeof resultPlaceId === 'string' && resultPlaceId !== '' 2949 && countyPlaceIds.indexOf(resultPlaceId) !== -1) { 2950 return true; 2951 } 2952 2953 if (typeof componentName !== 'string' || componentName === '') { 2954 return false; 2955 } 2956 2957 var name = componentName.toLowerCase(); 2958 2959 /* Only unambiguous county words â generic ones (region, district) would strip 2960 legitimate colloquial areas, and their languages already match on place_id. 2961 Word-boundary matched so names like "Countyline, OK" are left alone. */ 2962 var wordTokens = ['county', 'condado', 'comté', 'contea', 2963 'comitatul', 'hrabstwo', 'megye', 'konderria']; 2964 var isAlnum = function (ch) { 2965 return (ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9'); 2966 }; 2967 2968 for (var t = 0; t < wordTokens.length; t++) { 2969 var token = wordTokens[t]; 2970 var from = 0; 2971 while (true) { 2972 var at = name.indexOf(token, from); 2973 if (at === -1) { 2974 break; 2975 } 2976 var before = (at > 0) ? name.charAt(at - 1) : ' '; 2977 var after = ((at + token.length) < name.length) ? name.charAt(at + token.length) : ' '; 2978 if (!isAlnum(before) && !isAlnum(after)) { 2979 return true; 2980 } 2981 from = at + 1; 2982 } 2983 } 2984 2985 /* Non-latin scripts have no alphanumeric word boundary. */ 2986 var scriptTokens = ['каÑнÑи', 'کاؤÙÙ¹Û', 'à¤à¤¾à¤à¤à¤à¥', 'ì¹´ì´í°']; 2987 for (var s = 0; s < scriptTokens.length; s++) { 2988 if (name.indexOf(scriptTokens[s]) !== -1) { 2989 return true; 2990 } 2991 } 2992 2993 return false; 2994 }; 2995 } 2996 2997 // Try to load coordinates from sessionStorage on page load 2998 var vlat = 0; 2999 var vlon = 0; 3000 try { 3001 var savedLat = sessionStorage.getItem('bd_geolocation_lat'); 3002 var savedLon = sessionStorage.getItem('bd_geolocation_lon'); 3003 if (savedLat && savedLon) { 3004 vlat = parseFloat(savedLat); 3005 vlon = parseFloat(savedLon); 3006 } 3007 } catch(e) {} 3008 var isSubmit = false; 3009 var isGettingLocation = false; // Flag to prevent multiple simultaneous geolocation requests 3010 3011 // Function to save coordinates to sessionStorage 3012 function saveCoordinatesToSession(lat, lon) { 3013 try { 3014 sessionStorage.setItem('bd_geolocation_lat', lat.toString()); 3015 sessionStorage.setItem('bd_geolocation_lon', lon.toString()); 3016 } catch(e) {} 3017 } 3018 3019 // Function to get coordinates from sessionStorage if current ones are 0 3020 function getCoordinatesFromSession() { 3021 if (vlat === 0 && vlon === 0) { 3022 try { 3023 var savedLat = sessionStorage.getItem('bd_geolocation_lat'); 3024 var savedLon = sessionStorage.getItem('bd_geolocation_lon'); 3025 if (savedLat && savedLon) { 3026 vlat = parseFloat(savedLat); 3027 vlon = parseFloat(savedLon); 3028 return true; 3029 } 3030 } catch(e) {} 3031 } 3032 return false; 3033 } 3034 var cityTypes = [ 3035 'colloquial_area', 3036 'locality', 3037 'sublocality', 3038 'sublocality_level_1', 3039 'sublocality_level_2', 3040 'sublocality_level_3', 3041 'sublocality_level_4', 3042 'sublocality_level_5', 3043 'neighborhood', 3044 'ward', 3045 'postal_town' 3046 ]; 3047 3048 var postalTypes = [ 3049 'postal_code', 3050 'postal_code_prefix', 3051 'postal_code_suffix', 3052 'street_number', 3053 'premise', 3054 'subpremise', 3055 'route', 3056 'intersection', 3057 'street_address', 3058 'floor', 3059 'room', 3060 'post_box', 3061 'delivery_address' 3062 ]; 3063 3064 var isSubmitting = false; 3065 window.cachedSelectedOption = [{ 'typed_location': '' }]; 3066 window.isSubmittingMainSearch = false; 3067 3068 document.addEventListener('DOMContentLoaded', () => { 3069 let isSubmitting = false; // Add flag at the top level 3070 3071 setTimeout(()=>{ 3072 let googleSuggestForm = document.querySelectorAll('.googleSuggest,.google-writen-location,input[name="lead_location"],.fill_location'); 3073 if (typeof googleSuggestForm != "undefined") { 3074 for (let i = 0; i < googleSuggestForm.length; i++) { 3075 let closestForm = googleSuggestForm[i].closest('form'); 3076 if(typeof closestForm != "undefined" && closestForm != null){ 3077 closestForm.addEventListener('focusin', googleMapOnFormClick, false); 3078 3079 }else{ 3080 googleSuggestForm[i].addEventListener('input', googleMapOnFormClick, false); 3081 } 3082 googleSuggestForm[i].addEventListener('click', googleMapOnFormClick, false); 3083 } 3084 } 3085 },200);
3086 3087 $('.website-search button[type=submit]').click(async function (e) { 3088 e.preventDefault(); // Prevent the default submit action 3089 var nativeForm = $(this).closest('form')[0]; 3090 if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) { 3091 return false; 3092 } 3093 await googleMapOnFormClick(); 3094 $(this).closest('form').submit(); 3095 }); 3096 }); 3097 window['gmapClick'] = false; 3098 function googleMapOnFormClick() { 3099 if(window.gmapClick){ 3100 return; 3101 } 3102 window.gmapClick = true; 3103 3104 return new Promise((resolve, reject) => { 3105 window.isSubmittingMainSearch = false; 3106 let googleSuggestForm = document.querySelectorAll('.googleSuggest, .google-writen-location, input[name="lead_location"], .fill_location'); 3107 let mapUri = "https://maps.googleapis.com/maps/api/js?v=quarterly&libraries=places®ion=US&callback=initializeG&language=en&key=AIzaSyACwMn9sDO2mBCLTP-wwvGmVJJ5MS1bYwM"; 3108 3109 if (typeof google !== "undefined" && google.hasOwnProperty('maps')) { 3110 resolve('already loaded'); 3111 return; 3112 } 3113 3114 let loadMapScriptAsync = function (uri) { 3115 return new Promise((resolve, reject) => { 3116 let script = document.createElement('script'); 3117 script.type = 'text/javascript'; 3118 script.src = uri; 3119 script.async = true; 3120 script.onload = function () { 3121 resolve("ok"); 3122 }; 3123 script.onerror = function () { 3124 reject("Failed to load Google Maps script."); 3125 }; 3126 document.head.appendChild(script); 3127 }); 3128 }; 3129 3130 loadMapScriptAsync(mapUri) 3131 .then(() => { 3132 resolve(); 3133 }) 3134 .catch((error) => { 3135 console.error(error); 3136 reject(); 3137 }); 3138 3139 }); 3140 } 3141 3142 function initializeG() { 3143 var geocoder; 3144 //This piece of code will create an autosuggest for every input with the class "googleSuggest" 3145 var counter = 1; 3146 var inputsArray = []; 3147 window.cachedSelectedOption = [{ 'typed_location': '' }]; 3148 let mapExists = document.querySelectorAll('[id^="map"]').length > 0; 3149 const functionsToInvoke = { 3150 setJsMap: true, 3151 setJsMapOverview: mapExists, 3152 setJsMapSR: mapExists, 3153 setJsMapSidebar: mapExists 3154 }; 3155 if (window['maps_loaded'] !== true) { 3156 for (let func in functionsToInvoke) { 3157 if (typeof window[func] === 'function' && functionsToInvoke[func]) { 3158 window['maps_loaded'] = true; 3159 window[func](); 3160 } 3161 } 3162 } 3163 $(".googleSuggest").each(function () { 3164 //get the id from the input to be the unique identifier for each autocomplete 3165 var inputId = $(this).attr("id"); 3166 var inputElement = $(this); 3167 inputsArray[counter] = /** @type {HTMLInputElement} */( 3168 document.getElementById('' + inputId)); 3169 const mainCountry = ''; 3170 const inputOptions = { 3171 fields: ['address_components', 'adr_address','formatted_address', 'geometry', 'icon', 'name','place_id','plus_code','type'], 3172 types: ['geocode'] 3173 } 3174 const language = "en"; 3175 3176 if (language) { 3177 inputOptions.language = language; 3178 } 3179 if (mainCountry) { 3180 inputOptions.componentRestrictions = {country: mainCountry}; 3181 inputOptions.region = mainCountry; 3182 } 3183 3184 var autocomplete = new google.maps.places.Autocomplete(inputsArray[counter], inputOptions); 3185 google.maps.event.addListener(autocomplete, 'place_changed', function () { 3186 const place = autocomplete.getPlace(); 3187 3188 cachedSelectedOption = []; 3189 cachedSelectedOption.push(place); 3190 3191 cachedSelectedOption[0]['typed_location'] = inputElement.val(); 3192 /* if(cachedSelectedOption[0]['adr_address']){ 3193 let cleanLocation = cachedSelectedOption[0]['adr_address'].replace(/<[^>]*>/g, ''); 3194 cachedSelectedOption[0]['typed_location'] = cleanLocation; 3195 inputElement.val(cleanLocation); 3196 }*/ 3197 if (cachedSelectedOption[0]['address_components'] == undefined) { 3198 cachedSelectedOption = []; 3199 var emptyObj = { 3200 'typed_location': '' 3201 }; 3202 cachedSelectedOption.push(emptyObj); 3203 } 3204 }); 3205 //the code that prevents the submition when hit enter on a google location autocomplete item 3206 inputElement.keydown( function (e) { 3207 if (e.keyCode == 13) { 3208 var pacCounter = 0; 3209 //need to run a loop to check each pac container 3210 $('.pac-container').each(function () { 3211 3212 if ($(this).css("display") != "none") { 3213 pacCounter++; 3214 } 3215 }); 3216 if (pacCounter > 0) { 3217 e.preventDefault(); 3218 } 3219 } 3220 }); 3221 counter++; 3222 }); 3223 3224 //triggers every time a form with the id website-search is trigered 3225 $('.website-search').submit(function (e) { 3226 3227 var currentForm = $(this); 3228 var locationInput = $(this).find(".googleLocation"); 3229 var $submitButton = currentForm.find('input[type=submit], button[type=submit]'); 3230 3231 3232 if (locationInput.val() != "" && typeof locationInput.val() != 'undefined') { 3233 3234 // Set submitting flag 3235 window.isSubmittingMainSearch = true; 3236 $submitButton.prop('disabled', true); 3237 3238 e.preventDefault(); 3239 //this variable has the main country of the site 3240 var form = currentForm; 3241 var urlGET = form.serialize(); 3242 var formActionUrl = form.attr("action"); 3243 var locationValue = locationInput.val(); 3244 3245 3246 3247 const mainCountry = ''; 3248 const inputOptions = { 3249 address:locationValue 3250 } 3251 const language = "en"; 3252 3253 if (language) { 3254 inputOptions.language = language; 3255 } 3256 if (mainCountry) { 3257 inputOptions.componentRestrictions = {country: mainCountry}; 3258 inputOptions.region = mainCountry; 3259 } 3260 3261 if (typeof cachedSelectedOption == 'undefined') { 3262 var emptyForm = { 3263 'typed_location': '' 3264 }; 3265 cachedSelectedOption.push(emptyForm); 3266 } 3267 3268 if (locationValue != cachedSelectedOption[0]['typed_location']) { 3269 geocoder = new google.maps.Geocoder(); 3270 geocoder.geocode(inputOptions, function (results, status) { 3271 3272 //if the google response of the geocoding was successful it will use that info to build the url for the new search 3273 if (status == google.maps.GeocoderStatus.OK) { 3274 parseInfoToSearch(results, urlGET, formActionUrl); 3275 3276 } else { 3277 var urlPath = formActionUrl; 3278 var redirect = urlPath + "?" + urlGET; 3279 //will redirect the page using the new url that has been constructed 3280 window.location.href = redirect; 3281 } 3282 }); 3283 3284 } else { 3285 parseInfoToSearch(cachedSelectedOption, urlGET, formActionUrl); 3286 } 3287 } 3288 }); 3289 3290 3291 //check if a map has been loaded 3292 if ($('#map-canvas').length > 0) { 3293 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>"; 3294 $('body').append(cssHideLogo); 3295 } else { 3296 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>"; 3297 $('body').append(cssHideLogo); 3298 } 3299
3300 if (geocodeVisitorsSetting == 1 && geocodingMethod === "IP") { 3301 populateSearchFields(); 3302 } 3303 3304 if($('.googleSuggest').val() == ""){ 3305 populateSearchFields(); 3306 } 3307 3308 var geocodeVisitorsSetting = '0'; 3309 var geocodingMethod = 'HTML5'; 3310 3311 //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 3312 3313 var vlon = ''; 3314 var vlat = ''; 3315 } 3316 3317 function switchPlaceID(placeId,urlGET, formActionUrl) { 3318 let request = { 3319 placeId: placeId, 3320 fields: ['address_components', 'adr_address', 'formatted_address', 'geometry', 'icon', 'name', 'place_id', 'plus_code', 'type'], 3321 }; 3322 3323 let service = new google.maps.places.PlacesService(document.createElement('div')); 3324 service.getDetails(request, function(place, status) { 3325 if (status === google.maps.places.PlacesServiceStatus.OK) { 3326 let dataArray = []; 3327 dataArray.push(place); 3328 parseInfoToSearch(dataArray, urlGET, formActionUrl); 3329 } else { 3330 console.error('Place details request failed with status:', status); 3331 } 3332 }); 3333 } 3334 3335 function parseInfoToSearch(results, urlGET, formActionUrl) { 3336 var urlSearchParams = new URLSearchParams(urlGET); 3337 var parameters = {}; 3338 var addressComponentsArray = []; 3339 if (results.length > 1) { 3340 if(urlSearchParams.get("location_value")?.toLowerCase() === "nebraska" && results.length === 2){ 3341 let tempResult = results[0]; 3342 results[0] = results[1]; 3343 results[1] = tempResult; 3344 } 3345 for (let i = 0; i < results.length; i++) { 3346 if (results[i].types[0] === 'natural_feature' || 3347 results[i].types[0] === 'airport' || 3348 results[i].types[0] === 'point_of_interest' || 3349 results[i].types[0] === 'establishment' || 3350 results[i].types[0] === 'political' || 3351 results[i].types[0] === 'park') { 3352 results.splice(i, 1); 3353 } 3354 } 3355 } 3356 var adComLength = results[0].address_components.length; 3357 3358 if(results[0].place_id == 'ChIJmQrivHKsQjQR4MIK3c41aj8'){ 3359 switchPlaceID('ChIJi73bYWusQjQRgqQGXK260bw',urlGET, formActionUrl); 3360 return; 3361 } 3362 sessionStorage.setItem("google_result",JSON.stringify(results)); 3363 3364 3365 var foundPostalType = results[0].types.find(type => postalTypes.includes(type)); 3366 var foundCityType = results[0].types.find(type => cityTypes.includes(type)); 3367 3368 //loop that will build the array with the address components and will get the short name of country and administrative area level 1 3369 for (var i = 0; i < adComLength; i++) { 3370 3371 if (results[0].address_components[i]['types'][0] == "country") { 3372 parameters.country_sn = results[0].address_components[i]['short_name']; 3373 } 3374 if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { 3375 parameters.adm_lvl_1_sn = results[0].address_components[i]['short_name']; 3376 } 3377 if (results[0].address_components[i]['types'][0] == "administrative_area_level_1") { 3378 parameters.stateSearchLN = results[0].address_components[i]['long_name']; 3379 } 3380 if (results[0].address_components[i]['types'][0] == "administrative_area_level_2") { 3381 /* short_name is what the service-area writer stores in 3382 service_areas.county_sn, so the search must send the same 3383 form or county matching breaks wherever short != long. */ 3384 parameters.county_sn = results[0].address_components[i]['short_name']; 3385 } 3386 if ($.inArray(results[0].address_components[i]['types'][0], cityTypes) !== -1 && (foundCityType || foundPostalType ) ) { 3387 var addrType = results[0].address_components[i]['types'][0]; 3388 var addrLong = results[0].address_components[i]['long_name']; 3389 /* CT counties come back as colloquial_area â keep them out of parameters.city. */ 3390 if (addrType !== 'colloquial_area' 3391 || !window.bdIsColloquialCounty(addrLong, results[0].place_id)) { 3392 parameters.city = addrLong; 3393 } 3394 } 3395 if (results[0].address_components[i]['types'][0] == "postal_code" || results[0].address_components[i]['types'][0] == "postal_code_prefix") { 3396 parameters.postal_code = results[0].address_components[i]['long_name']; 3397 } 3398 } 3399 3400 3401 // Filter out 'political' from result types - use more specific type when available 3402 // Same pattern as BD-directory-maps-typePolitical (PR #5642) 3403 if (results[0].types && results[0].types.length > 1 && results[0].types[0] === 'political') { 3404 results[0].types.splice(0, 1); 3405 } 3406 3407 // Pick the most specific type from results, skip "political" (too generic) 3408 parameters.location_type = results[0].types[0]; 3409 for (var t = 0; t < results[0].types.length; t++) { 3410 if (results[0].types[t] != 'political') { 3411 parameters.location_type = results[0].types[t]; 3412 break; 3413 } 3414 } 3415 3416 // When searching by city/locality, omit postal_code â Google returns 3417 // a partial zip prefix that doesn't match all members in the city 3418 if (parameters.location_type == 'locality' && parameters.postal_code) { 3419 delete parameters.postal_code; 3420 } 3421 3422 if (parameters.adm_lvl_1_sn != '') { 3423 parameters.stateSearch = parameters.adm_lvl_1_sn; 3424 } 3425 if (parameters.country_sn == "GB") { 3426 delete parameters.adm_lvl_1_sn; 3427 } 3428 3429 //will check if the response had the bounds parameters 3430 //if it had it will add the south west and north east parameters to the new url 3431 if (results[0].geometry.hasOwnProperty('bounds') || results[0].geometry.hasOwnProperty('viewport')) { 3432 3433 if (results[0].geometry.hasOwnProperty('bounds')) { 3434 var boundsResponse = results[0].geometry.bounds; 3435 3436 } else { 3437 var boundsResponse = results[0].geometry.viewport; 3438 } 3439 parameters.swlat = boundsResponse.getSouthWest
3439().lat(); 3440 parameters.nelat = boundsResponse.getNorthEast().lat(); 3441 parameters.swlng = boundsResponse.getSouthWest().lng(); 3442 parameters.nelng = boundsResponse.getNorthEast().lng(); 3443 3444 //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 3445 } else { 3446 parameters.fsearch = "radius"; 3447 } 3448 var locationCenterResponse = results[0].geometry.location; 3449 parameters.lat = locationCenterResponse.lat(); 3450 parameters.lng = locationCenterResponse.lng(); 3451 parameters.faddress = results[0].formatted_address; 3452 parameters.place_id = results[0].place_id; 3453 var formatParameters = $.param(parameters); 3454 urlGET = urlGET + "&" + formatParameters; 3455 var urlPath = formActionUrl; 3456 var redirect = urlPath + "?" + urlGET; 3457 //will redirect the page using the new url that has been constructed 3458 window.location.href = redirect; 3459 } 3460 function populateSearchFields() { 3461 var prePopulateLocationSetting = '0'; 3462 var geolocationMethod = 'HTML5'; 3463 3464 // If geolocation is in progress and we don't have coordinates yet, wait a bit 3465 if (isGettingLocation && (vlat === 0 || vlon === 0)) { 3466 var waitStartTime = performance.now(); 3467 var waitInterval = setInterval(function() { 3468 if (!isGettingLocation || (vlat !== 0 && vlon !== 0)) { 3469 clearInterval(waitInterval); 3470 // Retry after a short delay to ensure coordinates are set 3471 setTimeout(function() { 3472 populateSearchFields(); 3473 }, 100); 3474 } else if ((performance.now() - waitStartTime) > 10000) { 3475 // Timeout after 10 seconds - try sessionStorage 3476 clearInterval(waitInterval); 3477 if (getCoordinatesFromSession()) { 3478 setTimeout(function() { 3479 populateSearchFields(); 3480 }, 100); 3481 } 3482 } 3483 }, 200); 3484 return; 3485 } 3486 3487 // If coordinates are 0, try to get from sessionStorage 3488 if (vlat === 0 || vlon === 0) { 3489 getCoordinatesFromSession(); 3490 } 3491 3492 // Validate coordinates first 3493 var hasValidCoordinates = (vlat !== '' && vlon !== '' && vlat != undefined && vlon != undefined && vlat != 0 && vlon != 0 && Math.abs(vlat) <= 90 && Math.abs(vlon) <= 180); 3494 3495 if (!hasValidCoordinates) { 3496 return; 3497 } 3498 3499 //if set to one will get the lat and lng to do reverse geocoding 3500 if (prePopulateLocationSetting == 1 && (geolocationMethod === "HTML5" || geolocationMethod === "IP")) { 3501 var visitorLatLng = new google.maps.LatLng(parseFloat(vlat), parseFloat(vlon)); 3502 var visitorGeocoder = new google.maps.Geocoder(); 3503 var formattedAddress = []; 3504 var preFormattedStructure = { 3505 "locality": "long_name", 3506 "administrative_area_level_2": "long_name", 3507 "administrative_area_level_1": "long_name", 3508 "country": "long_name" 3509 }; 3510 visitorGeocoder.geocode({'latLng': visitorLatLng}, function (results, status) { 3511 //if the google response of the geocoding was successful it will use that info to build the url for the new search 3512 if (status == google.maps.GeocoderStatus.OK) { 3513 window.cachedSelectedOption = results; 3514 $.each(preFormattedStructure, function (findex, fvalue) { 3515 $.each(results[0].address_components, function (rindex, rvalue) { 3516 if (rvalue.types[0] == findex) { 3517 formattedAddress.push(rvalue.long_name); 3518 } 3519 }); 3520 }); 3521 $('.googleSuggest').each(function () { 3522 if ($(this).val() == '') { 3523 if (formattedAddress.length > 0) { 3524 $(this).val(formattedAddress.join(', ')); 3525 clearContent($(this)); 3526 } 3527 } 3528 }); 3529 } else { 3530 $('.googleSuggest').each(function () { 3531 $(this).val(''); 3532 }); 3533 } 3534 }); 3535 } 3536 } 3537 function showError(error) { 3538 switch (error.code) { 3539 case error.PERMISSION_DENIED: 3540 case 1: // PERMISSION_DENIED 3541 $('.fill_location.clicked').popover({ 3542 content: `Your local browser settings have prevented location targeting. Please enable location permissions in your browser settings.`, 3543 container: 'body' 3544 }); 3545 $('.fill_location.clicked').popover('toggle'); 3546 setTimeout(function () { 3547 $('.fill_location.clicked').popover('hide'); 3548 $('.fill_location.clicked').removeClass('clicked'); 3549 }, 4000); 3550 break; 3551 case error.POSITION_UNAVAILABLE: 3552 case 2: // POSITION_UNAVAILABLE 3553 $('.fill_location.clicked').popover({ 3554 content: `Location information is unavailable. Please check your device location settings.`, 3555 container: 'body' 3556 }); 3557 $('.fill_location.clicked').popover('toggle'); 3558 setTimeout(function () { 3559 $('.fill_location.clicked').popover('hide'); 3560 $('.fill_location.clicked').removeClass('clicked'); 3561 }, 4000); 3562 break; 3563 case error.TIMEOUT: 3564 case 3: // TIMEOUT 3565 $('.fill_location.clicked').popover({ 3566 content: `Location request timed out. Please ensure location services are enabled and try again.`, 3567 container: 'body' 3568 }); 3569 $('.fill_location.clicked').popover('toggle'); 3570 setTimeout(function () { 3571 $('.fill_location.clicked').popover('hide'); 3572 $('.fill_location.clicked').removeClass('clicked'); 3573 }, 4000); 3574 break; 3575 case error.UNKNOWN_ERROR: 3576 default: 3577 $('.fill_location.clicked').popover({ 3578 content: `An error occurred while getting your location. Please try again.`, 3579 container: 'body' 3580 }); 3581 $('.fill_location.clicked').popover('toggle'); 3582 setTimeout(function () { 3583 $('.fill_location.clicked').popover('hide'); 3584 $('.fill_location.clicked').removeClass('clicked'); 3585 }, 4000); 3586 break; 3587 } 3588 } 3589 if (navigator.geolocation) { 3590 if ($(".googleSuggest")[0]) { 3591 $(document).on('click', '.fill_location', function getCXPosition() { 3592 // Prevent multiple simultaneous geolocation requests 3593 if (isGettingLocation) { 3594 return; 3595 } 3596 3597 var $button = $(this); 3598 $button.addClass('clicked'); 3599 var startPos; 3600 3601 // Set flag to prevent concurrent requests 3602 isGettingLocation = true; 3603 3604 // Function to actually get the position 3605 var attemptGetPosition = function() { 3606 // Try with shorter timeout first for faster response 3607 var geoOptions = {
3608 enableHighAccuracy: false, // Use false for faster response 3609 timeout: 8000, // 8 second timeout (reduced for faster failure) 3610 maximumAge: 300000 // Accept cached position up to 5 minutes old 3611 }; 3612 3613 navigator.geolocation.getCurrentPosition(function (position) { 3614 startPos = position; 3615 vlat = startPos.coords.latitude; 3616 vlon = startPos.coords.longitude; 3617 3618 // Validate coordinates before proceeding 3619 if (!vlat || !vlon || vlat === 0 || vlon === 0) { 3620 isGettingLocation = false; 3621 $button.removeClass('clicked'); 3622 return; 3623 } 3624 3625 // Save coordinates to sessionStorage 3626 saveCoordinatesToSession(vlat, vlon);
3627 3628 $.get("/api/data/html/get/data_widgets/widget_name", { 3629 "vlat": vlat, 3630 "vlon": vlon, 3631 "name": "Website - Save Coordinates Session" 3632 }); 3633 3634 populateSearchFields(); 3635 3636 // Clear flag 3637 isGettingLocation = false; 3638 $button.removeClass('clicked'); 3639 }, function(error) { 3640 // Clear flag on error 3641 isGettingLocation = false; 3642 $button.removeClass('clicked'); 3643 3644 // For timeout errors, try sessionStorage as fallback 3645 if (error.code === 3) { 3646 if (getCoordinatesFromSession()) { 3647 // Use cached coordinates 3648 $.get("/api/data/html/get/data_widgets/widget_name", { 3649 "vlat": vlat, 3650 "vlon": vlon, 3651 "name": "Website - Save Coordinates Session" 3652 }); 3653 3654 populateSearchFields(); 3655 3656 // Clear flag 3657 isGettingLocation = false; 3658 $button.removeClass('clicked'); 3659 } else { 3660 $button.popover({ 3661 content: `Location request timed out. Please ensure location services are enabled and grant permission when prompted.`, 3662 container: 'body' 3663 }); 3664 $button.popover('show'); 3665 setTimeout(function() { 3666 $button.popover('hide'); 3667 }, 5000); 3668 } 3669 } else { 3670 showError(error); 3671 } 3672 }, geoOptions); 3673 }; 3674 3675 // Check if geolocation permission is already denied (but don't block if it's prompt) 3676 if (navigator.permissions && navigator.permissions.query) { 3677 navigator.permissions.query({name: 'geolocation'}).then(function(result) { 3678 if (result.state === 'denied') { 3679 isGettingLocation = false; 3680 $button.removeClass('clicked'); 3681 showError({code: 1, message: 'Permission denied'}); 3682 return; 3683 } else { 3684 // Permission is granted or prompt - proceed with geolocation 3685 attemptGetPosition(); 3686 } 3687 }).catch(function(err) { 3688 // If permission API not supported, proceed anyway 3689 attemptGetPosition(); 3690 }); 3691 } else { 3692 // Permission API not available, proceed with geolocation 3693 attemptGetPosition(); 3694 } 3695 }) 3696 } 3697 } else { 3698 console.log('Geolocation is not supported for this Browser/OS version yet.'); 3699 } 3700 function getUrlParameter(sParam) { 3701 var sPageURL = window.location.search.substring(1); 3702 var sURLVariables = sPageURL.split('&'); 3703 3704 for (var i = 0; i < sURLVariables.length; i++) { 3705 var sParameterName = sURLVariables[i].split('='); 3706 3707 if (sParameterName[0] == sParam) { 3708 return decodeURIComponent(sParameterName[1]); 3709 } 3710 } 3711 } 3712 </script>
3712 3713
3713<script> 3714 // switchClass() is jQuery UI (Effects), which is no longer loaded on every page. 3715 // removeClass().addClass() is the same class swap, applied immediately instead of 3716 // after animateClass()'s queued 400ms default. 3717 $(document).ready(function(){ 3718 $('.navbar-header .navbar-toggle.main_menu').click(function(){ 3719 $('.mobile-main-menu').toggleClass('opened'); 3720 }); 3721 $('.mobile-main-menu .sidebar-nav').find('li').each(function(){ 3722 $(this).addClass('hasChildren'); 3723 if ($(this).children('ul').length > 0){ 3724 $(this).prepend('<i class="fa fa-plus" aria-hidden="true"></i>'); 3725 $(this).find('a').after('<div class="clearfix"></div>'); 3726 $(this).find('span').after('<div class="clearfix"></div>'); 3727 } 3728 $(this).append('<div class="clearfix"></div>'); 3729 }); 3730 3731 $('.mobile-main-menu .sidebar-nav li i').click(function(){ 3732 if ($(this).parent().children('ul').length > 0){ 3733 $(this).parent().toggleClass('sub_open'); 3734 } 3735 if ($(this).hasClass('fa-plus')){ 3736 $(this).removeClass('fa-plus').addClass('fa-minus'); 3737 } else { 3738 $(this).removeClass('fa-minus').addClass('fa-plus'); 3739 } 3740 }); 3741 }) 3742 3743 if ($(window).width() > 740 && $(window).width() < 1100) { 3744 3745 $(document).ready(function(){ 3746 $('.tablet-menu .tablet-menu-ul').find('li').each(function(){ 3747 3748 if ($(this).children('ul').length > 0){ 3749 $(this).prepend('<i class="fa fa-plus tablet-fa hidden-sm hidden-md hidden-lg" aria-hidden="true"></i>'); 3750 $(this).find('a').after('<div class="clearfix"></div>'); 3751 var this_link = $(this).children('a').text().replace(/[^\x00-\x7F]/g, "");; 3752 $(this).children('a').html(this_link); 3753 $(this).find('span').after('<div class="clearfix"></div>'); 3754 } 3755 $(this).append('<div class="clearfix"></div>'); 3756 }); 3757 3758 $('.tablet-menu .tablet-menu-ul li i').click(function(){ 3759 3760 if ($(this).parent().children('ul').length > 0){ 3761 $(this).parent().toggleClass('sub_open'); 3762 3763 if ($(this).siblings( "ul" ).hasClass('tablet-block')){ 3764 $(this).siblings( "ul" ).removeClass('tablet-block').addClass('tablet-none'); 3765 } else { 3766 $(this).siblings( "ul" ).addClass( "tablet-block" ); 3767 3768 if ($(this).siblings( "ul" ).hasClass('tablet-none')){ 3769 $(this).siblings( "ul" ).removeClass('tablet-none') 3770 } 3771 3772 if ($(this).parent().siblings().children('ul').hasClass('tablet-block')) { 3773 $(this).parent().siblings().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3774 $(this).parent().siblings().children('i').removeClass('fa-minus').addClass('fa-plus'); 3775 } 3776 3777 if ($(this).parent().siblings().children('ul').children().children('ul').hasClass('tablet-block')) { 3778 $(this).parent().siblings().children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3779 $(this).parent().siblings().children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus'); 3780 } 3781 3782 if ($(this).siblings('ul').children('ul').children().children('ul').hasClass('tablet-block')) { 3783 $(this).siblings('ul').children('ul').children().children('ul').removeClass('tablet-block').addClass('tablet-none'); 3784 $(this).siblings('ul').children('ul').children().children('i').removeClass('fa-minus').addClass('fa-plus'); 3785 } 3786 3787 } 3788 3789 } 3790 3791 if ($(this).hasClass('fa-plus')){ 3792 $(this).removeClass('fa-plus').addClass('fa-minus'); 3793 } else { 3794 $(this).removeClass('fa-minus').addClass('fa-plus'); 3795 } 3796 }); 3797 }) 3798 } 3799 // Append unique ID attribute for mobile main menu links 3800 $('.mobile-main-menu a,.mobile-main-menu span').attr("id", function() { return $(this).attr("id") + "-mobile" }); 3801</script>
3801 3802
3803<script> 3804/* Keeps the announcement bar flush with the navbar: this widget's CSS emits static 50px 3805 offsets that are blind to the hide-menu settings, so a hidden or fixed compact-logo 3806 navbar leaves a gap or an overlap. Measure the real navbar state and own the offset. */ 3807(function () { 3808 function alignAnnouncementToNavbar() { 3809 var ann = document.querySelector('.announcement-bar'); 3810 if (!ann) { return; } 3811 /* above the widget's own offset breakpoints: restore stylesheet values */ 3812 if (window.innerWidth > 1100) { 3813 ann.style.removeProperty('margin-top'); 3814 ann.style.removeProperty('top'); 3815 return; 3816 } 3817 var navbar = document.querySelector('.header nav.navbar.navbar-default'); 3818 var navStyle = navbar ? window.getComputedStyle(navbar) : null; 3819 /* navbar hidden: the 50px offsets have nothing to clear, sit flush */ 3820 if (!navbar || navStyle.display === 'none') { 3821 ann.style.setProperty('margin-top', '0px', 'important'); 3822 ann.style.setProperty('top', '0px', 'important'); 3823 return; 3824 } 3825 if (window.innerWidth >= 768) { return; } 3826 /* only act while the navbar is pinned and showing the compact logo */ 3827 if (navStyle.position !== 'fixed') { return; } 3828 var logo = navbar.querySelector('.mobile_website_logo'); 3829 if (!logo || window.getComputedStyle(logo).display === 'none') { return; } 3830 var navRect = navbar.getBoundingClientRect(); 3831 var annRect = ann.getBoundingClientRect(); 3832 var delta = Math.round(navRect.bottom - annRect.top); /* >0 overlap, <0 gap */ 3833 if (delta === 0) { return; } 3834 var currentMt = parseFloat(window.getComputedStyle(ann).marginTop) || 0; 3835 var nextMt = currentMt + delta; 3836 /* a transient element above the bar during load can inflate the measure; a 3837 negative margin would pull the bar behind the navbar, so clamp at 0 */ 3838 if (nextMt < 0) { nextMt = 0; } 3839 /* !important to beat the widget's "margin-top: 50px !important" rule */ 3840 ann.style.setProperty('margin-top', nextMt + 'px', 'important'); 3841 } 3842 3843 function run() { 3844 alignAnnouncementToNavbar(); 3845 /* re-run after late layout shifts (fonts, async embeds) */ 3846 window.setTimeout(alignAnnouncementToNavbar, 250); 3847 window.setTimeout(alignAnnouncementToNavbar, 1200); 3848 } 3849 3850 if (document.readyState === 'loading') { 3851 document.addEventListener('DOMContentLoaded', run); 3852 } else { 3853 run(); 3854 } 3855 window.addEventListener('load', alignAnnouncementToNavbar); 3856 var resizeTimer; 3857 window.addEventListener('resize', function () { 3858 window.clearTimeout(resizeTimer); 3859 resizeTimer = window.setTimeout(alignAnnouncementToNavbar, 150); 3860 }); 3861})(); 3862</script>
3862 3863
3863<script type="text/javascript"> 3864 3865 var counterSubmit = 0; 3866 $(document).ready(function() { 3867 /* grecaptcha.reset() with no argument always resets widget 0. On a page with two 3868 captcha holders that clears the wrong checkbox, so the widget the visitor solved 3869 keeps a token Google has already spent and every retry fails the security check. 3870 captchaHolders is published by widget 1995 keyed by "<formId>-google-recaptcha"; 3871 an undefined id means no per-form id is known and the arg-less call is used, 3872 exactly as before. */ 3873 function bdCaptchaWidgetId(formId) { 3874 if (typeof captchaHolders === "undefined" || !formId) { 3875 return undefined; 3876 } 3877 /* recaptcha.php renames each holder to "<id>-<counter>" before render (recaptcha.php ~L84), 3878 so captchaHolders is keyed by the RENAMED id - not "<formId>-google-recaptcha". Resolve from 3879 the holder element itself so the counter never has to be reconstructed. */ 3880 var form = document.getElementById(formId); 3881 var holder = form && form.querySelector(".g-recaptcha"); 3882 return holder ? captchaHolders[holder.id] : undefined; 3883 } 3884 3885 function bdCaptchaReset(formId) { 3886 if (typeof grecaptcha === "undefined" || typeof grecaptcha.reset !== "function") { 3887 return; 3888 } 3889 var widgetId = bdCaptchaWidgetId(formId); 3890 if (widgetId === undefined) { 3891 grecaptcha.reset(); 3892 } else { 3893 grecaptcha.reset(widgetId); 3894 } 3895 } 3896 3897 // Ghost-field strip (card d4tk1CMp): the server-side validator config can carry 3898 // rules for fields that are NOT rendered in this form (conditionally-rendered or 3899 // duplicated form configs). Those phantom rules make formValidation mis-evaluate 3900 // isValid(), so an empty required field bypasses validation and submits natively. 3901 // Remove any rule whose field has no matching element before initializing. 3902 // NOTE: this is the ONLY layer re-applied from reverted PR #5902. It strictly 3903 // REMOVES rules (never adds validators, never overrides native submit, never 3904 // intercepts on capture phase, never re-validates on click) â so it cannot 3905 // reproduce the "Save button slides down / nav broken / no success message" 3906 // regression that caused #5902 to be rolled back on site 19413. 3907 var validatorConfig = {"framework":"bootstrap","addOns":{"reCaptcha2":{"element":"captchaContainer","language":"en","theme":"light","siteKey":"6LcQeq0UAAAAAFFJQUOxmpmtSN5vJaqfgNlY101p","timeout":"120","message":"The captcha is not valid"}},"fields":{"email":{"validators":{"notEmpty":{"message":"Please enter a value"},"emailAddress":{"message":"Please enter a valid email address"}}},"pass":{"validators":{"notEmpty":{"message":"Please enter a value"}}}}}; 3908 var formElement = $(`form[name='member_login_190-1']`); 3909 if(validatorConfig && validatorConfig.fields) { 3910 Object.keys(validatorConfig.fields).forEach(function(fieldName) { 3911 if(formElement.find('[name="' + fieldName + '"]').length === 0) { 3912 delete validatorConfig.fields[fieldName]; 3913 } 3914 }); 3915 } 3916 3917 // Scroll to the first invalid field when submit fails validation, 3918 // so the user can immediately see why the form will not submit 3919 formElement.on('err.form.fv', function(e) { 3920 var $firstError = $(e.target).find('.form-group.has-error').first(); 3921 if ($firstError.length) { 3922 $('html, body').animate({ scrollTop: $firstError.offset().top - 100 }, 700); 3923 } 3924 }); 3925
3926 formElement.formValidation(validatorConfig).on('success.form.fv', function(e,fvdata) { 3927 3928 if('member_login' == 'unsubscribe_email'){ 3929 return true; 3930 } 3931 // Prevent form submission 3932 e.preventDefault(); 3933 $form = $(e.target), 3934 fv = $form.data('formValidation'); 3935 3936 // Check HTML5 required fields that FormValidation may not know about 3937 var requiredEmpty = false; 3938 $form.find('[required]').each(function() { 3939 var val = $(this).val(); 3940 if (val === '' || val === null || (typeof val === 'string' && val.trim() === '')) { 3941 requiredEmpty = true; 3942 $(this).closest('.form-group').addClass('has-error'); 3943 if ($(this).siblings('.required-error').length === 0) { 3944 $(this).after('<small class="required-error help-block" style="color:#a94442;">Please enter a value</small>'); 3945 } 3946 } else { 3947 var $reqGroup = $(this).closest('.form-group'); 3948 $(this).siblings('.required-error').remove(); 3949 // Keep has-error if another validator is still failing for this field 3950 if ($reqGroup.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) { 3951 $reqGroup.removeClass('has-error'); 3952 } 3953 } 3954 }); 3955 if (requiredEmpty) { 3956 fv.disableSubmitButtons(false); 3957 counterSubmit = 0; 3958 // Scroll to the first field with an error (HTML5-required scan does 3959 // not trigger err.form.fv, so handle the scroll here too) 3960 var $firstReqError = $form.find('.form-group.has-error').first(); 3961 if ($firstReqError.length) { 3962 $('html, body').animate({ scrollTop: $firstReqError.offset().top - 100 }, 700); 3963 } 3964 return false; 3965 } 3966 3967 var values = $(this).serialize(); 3968 3969 3970 var locationFieldCorrect = true; 3971 3972 if($("#member_login_190-1 .location_required").length > 0){ 3973 $("#member_login_190-1 .location_required").each(function (index) { 3974 if($(this).data('state') == 1){ 3975 if($('#member_login_190-1 input[name="lead_location"]').val() == "" || $('#member_login_190-1 input[name="lat"]').val() == "" || $('#member_login_190-1 input[name="lng"]').val() == "") { 3976 locationFieldCorrect = false; 3977 } 3978 } 3979 }); 3980 } 3981 3982 if(locationFieldCorrect === false){ 3983 //check that there is a latitude or longitude 3984 swal(`Whoops!`, `The location information is required to submit this form`, "error"); 3985 return false; 3986 } 3987 3988 3989 if (!$(this).attr("action")) { 3990 var action = ''; 3991 3992 } else { 3993 var action = $(this).attr("action"); 3994 } 3995 if (!$(this).attr("method")) { 3996 var method = 'post'; 3997 3998 } else { 3999 var method = $(this).attr("method"); 4000 } 4001 if (!$(this).attr("form_action_type")) { 4002 var form_action_type = 'notification'; 4003 4004 } else { 4005 var form_action_type = $(this).attr("form_action_type"); 4006 } 4007 if (!$(this).attr("form_action_div")) { 4008 /* Empty "ID to Replace" default: prefer #main-content, fall back to legacy #first_container if absent */ 4009 var form_action_div = $('#main-content').length ? '#main-content' : '#first_container'; 4010 4011 } else { 4012 var form_action_div = $(this).attr("form_action_div"); 4013 } 4014 if (!$(this).attr("return_data_type")) { 4015 var return_data_type = 'json'; 4016 4017 } else { 4018 var return_data_type = $(this).attr("return_data_type"); 4019 } 4020 var submitInFlight = counterSubmit != 0 || (Date.now() - ($form.data('bdLastSubmitAt') || 0) < 5000); 4021 if (!submitInFlight) { 4022 if ($("#member_login_190-1-notification").html() != "") { 4023 $("#member_login_190-1-notification").remove(); 4024 } 4025 if ($(this).find('input[type="submit"]').length > 0) { 4026 $(this).find('input[type="submit"]').before('<div id="member_login_190-1-notification" class="alert"></div>'); 4027 4028 } else { 4029 $(this).prepend('<div id="member_login_190-1-notification" class="alert"></div>'); 4030 } 4031 } 4032 var notification = $("#member_login_190-1-notification"); 4033 4034 if ((form_action_type == "" || form_action_type == "default") && action.indexOf("account") >= 0) { 4035 notification.html(`Processing Request...`).addClass("alert-warning-subtle"); 4036 setTimeout(function(){ 4037 fv.defaultSubmit(); 4038 }, 100); 4039 } else { 4040 notification.html(`Processing Request...`).addClass("alert-warning-subtle"); 4041 if(!submitInFlight) { 4042 counterSubmit++; 4043 $form.data('bdLastSubmitAt', Date.now()); 4044 4045 var fields = $(this).serializeArray(); 4046 var formField = []; 4047 var processData = true; 4048 var contentType = "application/x-www-form-urlencoded; charset=UTF-8"; 4049 4050 4051 4052 if($("#member_login_190-1 input[type=file]").length > 0){ 4053 4054 var formObject = new FormData(); 4055 processData = false; 4056 contentType = false; 4057 4058 $(fields).each(function(index,field){ 4059 formField.push(field.name+"="+field.value); 4060 }); 4061 4062 values = formField.join("&"); 4063 4064 $(formField).each(function(index,fieldValue){ 4065 var fieldInfo = fieldValue.split('='); 4066 formObject.append(fieldInfo[0],fieldInfo[1]); 4067 }); 4068 4069 $("#member_login_190-1 input[type=file]").each(function(index,node){ 4070 var file = this.files[0]; 4071 if(typeof file != "undefined"){ 4072 formObject.append("file_addon["+$(node).attr('name')+"]", file, file.name); 4073 } 4074 }); 4075 }else{ 4076 4077 $(fields).each(function(index,field){ 4078 formField.push(field.name+"="+encodeURIComponent(field.value)); 4079 }); 4080 4081 var formObject = formField.join("&"); 4082 } 4083 4084 $.ajax({
4085 url: action, 4086 type: method, 4087 data: formObject, 4088 dataType: return_data_type, 4089 processData: processData, 4090 contentType: contentType, 4091 success: function (data) { 4092 // Re-query live node: success.form.fv fires twice, orphaning the closure ref captured above. 4093 notification = $("#member_login_190-1-notification"); 4094 if (return_data_type == "html") { 4095 var result = 'success'; 4096 4097 if (!data != "") { 4098 var result_widget = data['result_widget']; 4099 } 4100 4101 } else { 4102 4103 4104 if (!data['result']) { 4105 var result = 'error'; 4106 } else { 4107 var result = data['result']; 4108 } 4109 if (!data['result_widget']) { 4110 var result_widget = ''; 4111 4112 } else { 4113 var result_widget = data['result_widget']; 4114 } 4115 } 4116 if (result == "success") { 4117 4118 if (!data['message']) { 4119 var message = `Your information has submitted successfully!`; 4120 4121 } else { 4122 var message = data['message']; 4123 } 4124 if (!data['redirect_url']) { 4125 var redirect_url = ''; 4126 4127 } else { 4128 var redirect_url = data['redirect_url']; 4129 } 4130 4131 4132 4133 if (form_action_type == "notification") { 4134 if (redirect_url && (action.indexOf('Member%20Login%20Page') >= 0 || action.indexOf('Member Login Page') >= 0)) { 4135 if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") { 4136 redirect_url = "/" + redirect_url; 4137 } 4138 if (notification.parents('.modal').length) { 4139 $('.modal-backdrop').hide(); 4140 $('.modal').modal('hide'); 4141 } 4142 window.location.href = redirect_url; 4143 fv.resetForm(true); 4144 } else { 4145 notification.html(message + '<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>') 4146 .addClass('alert-dismissible') 4147 .addClass("alert-success-subtle") 4148 .removeClass("alert-danger-subtle") 4149 .removeClass("alert-warning-subtle") 4150 4151 4152 4153 if(notification.parents('.modal').length && 'member_login_190-1' == 'whmcs_billing_address'){ 4154 setTimeout(function(){ 4155 notification.parents('.modal').modal('hide'); 4156 }, 1000); 4157 } 4158 } 4159 4160 } else if (form_action_type == "widget") { 4161 4162 if (result_widget != '') { 4163 4164 setTimeout(function(){ 4165 if(form_action_div != '.newsletter_modal_form_container'){ 4166 $("html, body").animate({ scrollTop: 0 }, 600); 4167 } 4168 $(form_action_div).html(decodeHtml(result_widget)).text(); 4169 4170 }, 1000); 4171 } 4172 4173 } else if (form_action_type == "redirect") { 4174 4175 if (redirect_url == "") { 4176 redirect_url = decodeURIComponent(""); 4177 } 4178 4179 if (redirect_url.substring(0, 1) != "/" && redirect_url.substring(0, 1) != "h") { 4180 redirect_url = "/" + redirect_url; 4181 } 4182 current_location = "/login"; 4183 refresh_pages_string = "/login"; 4184 refresh_pages_string = refresh_pages_string.replace(/ /g,''); 4185 refresh_pages_array = refresh_pages_string.split(','); 4186 notification.html(message) 4187 .addClass("alert-success-subtle") 4188 .removeClass("alert-danger-subtle") 4189 .removeClass("alert-warning-subtle") 4190 .delay(2000).slideUp(); 4191 if(action == "/api/widget/json/get/Bootstrap%20Theme%20-%20Member%20Login%20Page" && current_location.indexOf("/login") == -1 && refresh_pages_string != '' && (!refresh_pages_array.includes(current_location) || refresh_pages_string == "/login" )){ 4192 window.location.href = window.location.href+'?logged'; 4193 } else { 4194 window.location.href = redirect_url; 4195 } 4196 4197 fv.resetForm(true); 4198 } 4199 if(form_action_div != '.newsletter_modal_form_container' && 'member_login_190-1' != 'whmcs_billing_address'){ 4200 $('.modal-backdrop').hide(); 4201 } 4202 } else { 4203 bdCaptchaReset(formElement.attr('id')); 4204 if (!data['message']) { 4205 var message = `You entered invali
4205d data. Please try to save again.`; 4206 4207 } else { 4208 var message = data['message']; 4209 } 4210 $("#member_login_190-1-notification").html(message) 4211 .addClass("alert-danger-subtle") 4212 .removeClass("alert-success-subtle") 4213 .removeClass("alert-warning-subtle") 4214 .fadeIn(); 4215 fv.disableSubmitButtons(false); 4216 } 4217 counterSubmit = 0; 4218 }, 4219 error: function (e) { 4220 4221 if(typeof grecaptcha !== "undefined" && typeof grecaptcha.reset === "function"){ 4222 bdCaptchaReset(formElement.attr('id')); 4223 $("#member_login_190-1-notification").html(`Recaptcha Error`); 4224 } else { 4225 $("#member_login_190-1-notification").html(`A connection error occurred while saving. Please try to save again.`); 4226 } 4227 $("#member_login_190-1-notification").addClass("alert-warning-subtle") 4228 .removeClass("alert-success-subtle") 4229 .removeClass("alert-warning-subtle") 4230 .fadeIn(); 4231 counterSubmit = 0; 4232 } 4233 });/// End Ajax 4234 } 4235 }//END else 4236 }).bind('keydown', function(event) { 4237 4238 if (event.ctrlKey || event.metaKey) { 4239 4240 switch (String.fromCharCode(event.which).toLowerCase()) { 4241 4242 case 's': 4243 var nativeForm = $(this)[0]; 4244 if (nativeForm && typeof nativeForm.reportValidity === 'function' && !nativeForm.reportValidity()) { 4245 event.preventDefault(); 4246 return false; 4247 } 4248 $(this).submit(); 4249 break; 4250 } 4251 } 4252 }); 4253 4254 /// This will turn any select2 that are required in the form builder to being required elements. 4255 $('#member_login_190-1 select').each(function (i, obj) { 4256 setTimeout(function(){ 4257 if ($(obj).prop("required") && $(obj).attr("style") == "display: none;") { 4258 $(obj).css("z-index","-999"); 4259 $(obj).css("height","0"); 4260 $(obj).css("width","0"); 4261 $(obj).css("display","block"); 4262 $(obj).css("position","absolute"); 4263 } 4264 }, 3000); 4265 }); 4266 4267 // Clear required-error messages when user fills in a required field 4268 $('#member_login_190-1').on('keyup change', '[required]', function() { 4269 var val = $(this).val(); 4270 if (val !== '' && val !== null && val.trim() !== '') { 4271 var $group = $(this).closest('.form-group'); 4272 // Remove only this handler's own required message 4273 $(this).siblings('.required-error').remove(); 4274 // Keep has-error if another FormValidation validator is still failing 4275 // (e.g. stringLength, regexp). has-error is shared, so removing it 4276 // wholesale would clobber other validators' red styling. 4277 if ($group.find('small[data-fv-validator][data-fv-result="INVALID"]').length === 0) { 4278 $group.removeClass('has-error'); 4279 } 4280 } 4281 }); 4282 4283 });//END $('# echo $_SERVER[form_element_id]; ').formValidation( 4284 </script>
4284 4285
4285<script> 4286 window.addEventListener('load', (event) => { 4287 setTimeout(() => { 4288 }, 501); 4289 }); 4290 </script>
vendor: 2 bytes, line 4290
4290
4291<script> 4292 function decision(message, url) { 4293 if (confirm(message)) { 4294 setTimeout(function () { 4295 window.location = url; 4296 }, 0); 4297 } 4298 } 4299</script>
vendor: 2 bytes, line 4299
4299
4300<script> 4301 // Function to add alt, width, and height attributes to <img> elements without them 4302 function addAttributesToImages() { 4303 var images = document.querySelectorAll('img:not([alt]), img:not([width]), img:not([height])'); 4304 Array.prototype.forEach.call(images, function(img) { 4305 // Skip if we've already processed this image 4306 if (img.dataset.processed === 'true') { 4307 return; 4308 } 4309 4310 // Mark this image as being processed 4311 img.dataset.processed = 'true'; 4312 4313 // Add alt attribute if missing 4314 if (!img.hasAttribute('alt')) { 4315 var src = img.getAttribute('src') || 'image'; // Default src to 'image' if missing 4316 var altText = src.split('/').pop().split('?')[0].replace(/\.\w+$/, ''); 4317 4318 try { 4319 altText = decodeURIComponent(altText) 4320 .replace(/[_\-+,.:;]+/g, ' ') 4321 .replace(/\s+/g, ' ') 4322 .trim(); 4323 } catch (e) { 4324 altText = 'image'; // Fallback to 'image' if decoding fails 4325 } 4326 4327 // Ensure altText is not empty, otherwise use 'image' 4328 altText = altText || 'image'; 4329 4330 img.setAttribute('alt', altText); 4331 } 4332 4333 // Add width and height attributes if missing 4334 if (!img.hasAttribute('width') || !img.hasAttribute('height')) { 4335 // Handle SVG differently 4336 if (img.src && img.src.endsWith('.svg')) { 4337 // For SVG, use the viewBox to set width and height, if available 4338 fetch(img.src) 4339 .then(response => { 4340 if (!response.ok) { 4341 throw new Error('Failed to fetch SVG: ' + response.status); 4342 } 4343 return response.text(); 4344 }) 4345 .then(svgText => { 4346 var parser = new DOMParser(); 4347 var svgDoc = parser.parseFromString(svgText, "image/svg+xml"); 4348 var svgElement = svgDoc.querySelector('svg'); 4349 4350 if (svgElement) { 4351 var viewBox = svgElement.getAttribute('viewBox'); 4352 if (viewBox) { 4353 var viewBoxValues = viewBox.split(' '); 4354 var width = viewBoxValues[2]; 4355 var height = viewBoxValues[3]; 4356 4357 if (!img.hasAttribute('width')) { 4358 img.setAttribute('width', width); 4359 } 4360 if (!img.hasAttribute('height')) { 4361 img.setAttribute('height', height); 4362 } 4363 } 4364 } 4365 }) 4366 .catch(error => { 4367 // Fallback to default dimensions for SVG 4368 if (!img.hasAttribute('width')) { 4369 img.setAttribute('width', '100'); 4370 } 4371 if (!img.hasAttribute('height')) { 4372 img.setAttribute('height', '100'); 4373 } 4374 }); 4375 } else { 4376 // For non-SVG images, use natural dimensions 4377 var tempImg = new Image(); 4378 tempImg.src = img.src; 4379 4380 tempImg.onload = function() { 4381 if (!img.hasAttribute('width')) { 4382 img.setAttribute('width', tempImg.naturalWidth); 4383 } 4384 if (!img.hasAttribute('height')) { 4385 img.setAttribute('height', tempImg.naturalHeight); 4386 } 4387 }; 4388 4389 tempImg.onerror = function() { 4390 // Fallback to default dimensions 4391 if (!img.hasAttribute('width')) { 4392 img.setAttribute('width', '100'); 4393 } 4394 if (!img.hasAttribute('height')) { 4395 img.setAttribute('height', '100'); 4396 } 4397 }; 4398 } 4399 } 4400 }); 4401 } 4402 4403 document.addEventListener('DOMContentLoaded', function() { 4404 // Run the function initially to catch images already in the DOM 4405 addAttributesToImages(); 4406 4407 // Create a MutationObserver to monitor the DOM for added/changed images 4408 var observer = new MutationObserver(function(mutations) { 4409 mutations.forEach(function(mutation) { 4410 if (mutation.addedNodes.length > 0 || mutation.type === 'attributes') { 4411 // Only process if we have new images or src attribute changes 4412 var hasNewImages = false; 4413 4414 if (mutation.addedNodes.length > 0) { 4415 mutation.addedNodes.forEach(function(node) { 4416 if (node.nodeType === 1) { // Element node 4417 if (node.tagName === 'IMG' || node.querySelectorAll) { 4418 hasNewImages = true; 4419 } 4420 } 4421 }); 4422 } 4423 4424 if (mutation.type === 'attributes' && mutation.attributeName === 'src') { 4425 hasNewImages = true; 4426 } 4427 4428 if (hasNewImages) { 4429 addAttributesToImages(); 4430 } 4431 } 4432 }); 4433 }); 4434 4435 // Start observing the document body for changes 4436 observer.observe(document.body, { 4437 childList: true, // Watch for added or removed nodes 4438 subtree: true, // Watch the entire subtree 4439 attributes: true, // Watch for attribute changes 4440 attributeFilter: ['src'] // Specifically watch for changes in the 'src' attribute 4441 }); 4442 }); 4443</script>
4443<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] { 4444 cursor: wait 4445} 4446select.select2-preload { 4447 line-height: initial; 4448} 4449 4450select#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"] { 4451 -webkit-appearance: none; 4452 -moz-appearance: none; 4453 appearance: none; 4454 background-image: url(/images/select2ArrowDown.png) !important; 4455 background-repeat: no-repeat !important; 4456 background-size: 10px 9px !important; 4457 background-position: 99% 16px; 4458 border-radius: 6px; 4459 overflow: hidden; 4460} 4461.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"] { 4462 background-position: 98.2% 12px; 4463} </style>
4463<script> 4464 // Function to add aria-label to <select> elements without it, for better pagespeed accessibility score 4465 $(document).ready(function() { 4466 var ariaLabelCounter = {}; // Object to keep track of aria-label counts for uniqueness 4467 4468 // Iterate over each select element that does not have an aria-label 4469 $('select:not([aria-label])').each(function() { 4470 // Use the ID or placeholder as the base for the aria-label, stripping HTML tags 4471 var baseLabel = this.id || $(this).attr('placeholder') || 'select'; 4472 baseLabel = baseLabel.replace(/<[^>]*>/g, '').trim(); // Remove HTML tags and trim 4473 4474 // Ensure uniqueness of each aria-label 4475 ariaLabelCounter[baseLabel] = (ariaLabelCounter[baseLabel] || 0) + 1; 4476 var ariaLabel = baseLabel + '-' + ariaLabelCounter[baseLabel]; 4477 4478 // Truncate aria-label to 100 characters 4479 ariaLabel = ariaLabel.length > 100 ? ariaLabel.substring(0, 100) : ariaLabel; 4480 4481 // Set the aria-label attribute to the unique label 4482 $(this).attr('aria-label', ariaLabel); 4483 }); 4484 }); 4485</script>
vendor: 2 bytes, line 4485
4485
4486<script type="application/ld+json"> 4487{ 4488 "@context": "https://schema.org", 4489 "@graph": [ 4490 { 4491 "@type": "WebSite", 4492 "@id": "https://www.storycrews.com/#website", 4493 "name": "StoryCrews â¢ï¸ Videographer and Video Expert Directory", 4494 "url": "https://www.storycrews.com/", 4495 "inLanguage": "en-US", 4496 "potentialAction": { 4497 "@type": "SearchAction", 4498 "target": "https://www.storycrews.com/sitesearch?q={search_term_string}", 4499 "query-input": "required name=search_term_string", 4500 "name": "Search Directory: StoryCrews â¢ï¸ Videographer and Video Expert Directory" 4501 }, 4502 "publisher": { 4503 "@id": "https://www.storycrews.com/#organization" 4504 } 4505 }, 4506 { 4507 "@type": "Organization", 4508 "@id": "https://www.storycrews.com/#organization", 4509 "name": "StoryCrews â¢ï¸ Videographer and Video Expert Directory", 4510 "description": "Looking for Business Videographers? Find local filmmakers trained to achieve your business goals on Storycrews.com", 4511 "url": "https://www.storycrews.com/", 4512 "mainEntityOfPage": { 4513 "@type": "WebPage", 4514 "@id": "https://www.storycrews.com/#webpage" 4515 }, 4516 "contactPoint": [ 4517 { 4518 "@type": "ContactPoint", 4519 "email": "[email protected]", 4520 "contactType": "customer support", 4521 "availableLanguage": [ 4522 "en" 4523 ], 4524 "areaServed": "US" 4525 } 4526 ], 4527 "areaServed": { 4528 "@type": "Country", 4529 "name": "US" 4530 }, 4531 "sameAs": [ 4532 "https://www.facebook.com/STORYCREWS-466670094091350/" 4533 ], 4534 "logo": { 4535 "@type": "ImageObject", 4536 "@id": "https://www.storycrews.com/#logo", 4537 "url": "/images/storyCrewsLogo_website.jpg" 4538 }, 4539 "image": { 4540 "@type": "ImageObject", 4541 "@id": "https://www.storycrews.com/#image", 4542 "url": "/images/storyCrewsLogo_website.jpg" 4543 }, 4544 "keywords": [ 4545 "Local VideographersLocal Business VideographersLocal Corporate Filmmakers", 4546 "StoryCrews â¢ï¸ Videographer and Video Expert Directory", 4547 "Videographer", 4548 "Local Video Production" 4549 ] 4550 } 4551 ] 4552}</script>
4552 4553
4554<script> 4555// Bootstrap Icons fallback loader - ensures Bootstrap Icons work even if HEAD widget is customized, do not delete 4556(function() { 4557 if (!document.querySelector('link[href*="bootstrap-icons"]')) { 4558 var link = document.createElement('link'); 4559 link.rel = 'stylesheet'; 4560 link.href = 'https://www.optimizecdn.com/directory/cdn/assets/bootstrap/fonts/bootstrap-icons.min.css?v=1.13.1'; 4561 document.head.appendChild(link); 4562 } 4563})(); 4564</script>
4564 4565<style type='text/css'> .input-group.normal-autosuggest input,.input-group.sm-autosuggest input, .input-group.md-autosuggest input { 4566 } 4567.normal-autosuggest .twitter-typeahead, .sm-autosuggest .twitter-typeahead, .md-autosuggest .twitter-typeahead, .large-autosuggest .twitter-typeahead { 4568 display: inline-block; 4569 height: 25px; 4570 position: relative; 4571 width: 100%; 4572} 4573.input-group.normal-autosuggest .twitter-typeahead, .input-group.sm-autosuggest .twitter-typeahead, .input-group.large-autosuggest .twitter-typeahead:not(.search_box .twitter-typeahead) { 4574 width: inherit; 4575} 4576.normal-autosuggest .twitter-typeahead .clear_content.medium{ 4577 bottom: 0px; 4578} 4579.sm-autosuggest .twitter-typeahead .clear_content.small{ 4580 bottom: -4px; 4581} 4582.md-autosuggest.input-group .twitter-typeahead .clear_content.medium { 4583 bottom: -2px; 4584} 4585.md-autosuggest .twitter-typeahead { 4586 height: 32px; 4587} 4588.md-autosuggest .input-group-addon + .input_wrapper .twitter-typeahead { 4589 height: 38px; 4590 vertical-align: top; 4591} 4592.md-autosuggest-input + .clear_content.medium { 4593 bottom: 0px; 4594} 4595.large-autosuggest .twitter-typeahead { 4596 height: 40px; 4597} 4598.normal-autosuggest .twitter-typeahead{ 4599 height: 38px; 4600} 4601.normal-autosuggest .twitter-typeahead .tt-hint, .sm-autosuggest .twitter-typeahead .tt-hint { 4602 background: #fff !important; 4603 border: 1px solid #ccc!important; 4604 border-radius: 0 8px 8px 0; 4605 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important; 4606 color: transparent; 4607 left: 0; 4608 padding: 4px 11px; 4609 position: absolute; 4610 top: 0; 4611 width: 100%; 4612 font-size:12px; 4613} 4614.normal-autosuggest.input-group-addon .fa, .sm-autosuggest .input-group-addon .fa, .input-group-sm .input-group-addon .fa {font-size:12px} 4615.md-autosuggest .twitter-typeahead .tt-hint { 4616 height: 100%; 4617 background: #ffffff none repeat scroll 0 0 !important; 4618 border: 1px solid #cccccc !important; 4619 border-radius: 0 8px 8px 0; 4620 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset !important; 4621 color: rgba(0, 0, 0, 0); 4622 left: 0; 4623 padding: 6px 11px; 4624 position: absolute; 4625 top: 0; 4626 width: 100%; 4627} 4628.large-autosuggest {background: #fff !important;border-radius:10px;} 4629.large-autosuggest input {width: 100%!important;box-shadow:none; border-radius: 10px;} 4630.large-autosuggest .twitter-typeahead .tt-hint { 4631 background: #fff !important; 4632 border: 1px solid #ccc!important; 4633 border-radius: 10px; 4634 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset!important; 4635 color: transparent; 4636 left: 0; 4637 position: absolute; 4638 top: 0; 4639 width: 100%; 4640 font-size: 18px; 4641 height: 46px; 4642 line-height: 1.33333; 4643 padding: 10px 15px; 4644} 4645.tt-dataset .empty-message { 4646 display: none !important; 4647} 4648.twitter-typeahead .tt-query {background-color:#fff!important} 4649.input-group.large-autosuggest span:first-child .tt-hint {border-radius: 0 !important;} 4650span.tt-dropdown-menu { 4651 border: 1px solid #FCFCFC; 4652 border-radius: 5px; 4653 box-shadow: 0 5px 10px rgba(0,0,0,.2); 4654 width: 100% !important; 4655} 4656.tt-is-under-cursor a.suggest-link { 4657 background: #55ACEE; 4658} 4659 4660.tt-is-under-cursor .media-heading, 4661.tt-is-under-cursor .suggest-origin, 4662.tt-is-under-cursor .location{ 4663 color:#fff!important; 4664} 4665.tt-suggestion .media .media-body .suggest-origin { 4666 color: rgba(45, 91, 137,0.9); 4667 padding: 1px 0; 4668 border-radius: 6px; 4669 font-weight: bold; 4670 line-height: 12px; 4671} 4672.tt-suggestion { 4673 background: #fff; 4674 border-bottom: 1px solid #eee; 4675 -webkit-transition: all 0.3s ease-in-out; 4676 -moz-transition: all 0.3s ease-in-out; 4677 -o-transition: all 0.3s ease-in-out; 4678 transition: all 0.3s ease-in-out; 4679} 4680body .tt-suggestions .media.br-bottom img { 4681 max-width: 45px; 4682 height: auto; 4683} 4684body .tt-suggestions .media-body span { 4685 font-size: 10px; 4686} 4687body .tt-suggestions .media-body h4 { 4688 font-size: 12px; 4689 margin: 2px 0px; 4690 text-transform: capitalize; 4691} 4692a.suggest-link { 4693 padding: 5px; 4694 display: block; 4695} 4696a.suggest-link img { 4697 border-radius: 100px; 4698 display: block; 4699 margin: 0 auto; 4700 height: 100%!important; 4701 width: 100%; 4702 object-fit: cover; 4703} 4704.left-suggest-col { 4705 display: inline-block; 4706 vertical-align: middle; 4707 width: 44px; 4708 height: 44px;
4709} 4710.right-suggest-col { 4711 display: inline-block; 4712 padding-left: 1%; 4713 text-align: left; 4714 vertical-align: middle; 4715 width: calc(100% - 1% - 50px); 4716} 4717p.media-heading { 4718 color: #333; 4719 font-size: 12px; 4720 font-weight: 600; 4721 margin-bottom: 0; 4722} 4723p.suggest-origin { 4724 font-size: 10px; 4725 color: #333; 4726 margin:0; 4727} 4728p.location { 4729 color: #333; 4730 font-size: 10px; 4731 margin: 2px 0; 4732} 4733body .tt-is-under-cursor a.suggest-link { 4734 background: #F7F7F7; 4735} 4736body .tt-is-under-cursor .media-heading, body .tt-is-under-cursor .suggest-origin, body .tt-is-under-cursor .location { 4737 color: #333!important; 4738} 4739a.suggest-link[data-heading="heading"] { 4740 pointer-events: none; 4741 cursor: default; 4742 text-decoration: none; 4743} 4744body .tt-is-under-cursor a.suggest-link[data-heading="heading"] { 4745 background: rgb(228, 234, 242); 4746} 4747/* --- all the novalue css --- */ 4748a.suggest-link .suggest-origin[data-state="novalue"] { 4749 display: none; 4750} 4751a.suggest-link .location[data-state="novalue"] { 4752 display: none; 4753} 4754a.suggest-link img[data-state="novalue"] { 4755 display: none; 4756} 4757a.suggest-link .suggest-origin[data-state="heading"] { 4758 display: none; 4759} 4760a.suggest-link .media-heading[data-heading="heading"] { 4761 color:rgb(0, 0, 0)!important; 4762 font-weight: bold; 4763 padding: 4px; 4764 font-size: 13px; 4765} 4766.left-suggest-col[data-photo="novalue"], .left-suggest-col[data-photo="undefined"] { 4767 display: none; 4768} 4769.right-suggest-col[data-photo="novalue"], .right-suggest-col[data-photo="undefined"] { 4770 width: 100%; 4771} 4772a.suggest-link[href="novalue"] { 4773 cursor: default !important; 4774 pointer-events: none; 4775} 4776a.suggest-link[data-heading="heading"] { 4777 background-color: rgb(228, 234, 242); 4778} 4779div.content-shell { 4780 overflow: inherit; 4781} 4782span.tt-dropdown-menu div { 4783 float: none; 4784} 4785.tt-menu { 4786 border-radius: 0 0 6px 6px; 4787 box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); 4788 overflow: hidden; 4789 width: 100%; 4790 z-index: 150 !important; 4791} 4792.tt-menu .tt-dataset { 4793 overflow-y: auto; 4794 max-height: 200px; 4795} </style>
4795<script> 4796 window.addEventListener('load', () => { 4797 let embedlyClass = document.querySelector('.fr-embedly'); 4798 if (typeof embedlyClass != "undefined" && embedlyClass != null) { 4799 let embedlyURI = "https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/embedly_widget.min.js"; 4800 let head = document.getElementsByTagName("head")[0]; 4801 let script = document.createElement('script'); 4802 script.type = 'text/javascript'; 4803 script.src = embedlyURI; 4804 script.async = true; 4805 script.onload = function() { 4806 setTimeout(function() { 4807 if (typeof embedly !== 'undefined' && embedly.card) { 4808 document.querySelectorAll('.embedly-card').forEach(function(card) { 4809 embedly.card(card); 4810 }); 4811 } 4812 }, 500); 4813 }; 4814 head.appendChild(script); 4815 } 4816 }); 4817</script>
4817<script type="text/javascript" src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/jquery.lazy/1.7.9/jquery.lazy.min.js"></script>
4817<script> 4818 $(function () { 4819 $(".lazyloader").Lazy({ 4820 afterLoad: function(element) { 4821 $(".gridView.activeView").click(); 4822 } 4823 }); 4824 4825 }); 4826 $("button[class*='slick'],button[id*='slick']").click(function () { 4827 $(this).parents(".row").find(".lazyloader").lazy({ 4828 bind: "event", 4829 delay: 0 4830 }); 4831 }); 4832 $("[class*='slick'],[id*='slick']").on("swipe",function(){ 4833 $(this).parents(".row").find(".lazyloader").lazy({ 4834 bind: "event", 4835 delay: 0 4836 }); 4837 }); 4838 </script>
4838<script defer src="https://www.optimizecdn.com/directory/cdn/assets/bootstrap/js/websiteScripts.min.js?v=8.0.0"></script>
4838 4839 </body> 4840 </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.