1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 7 8 9 10 <!-- CSRF Token --> 11 12 13 14 <meta name="csrf-token" content="uu2FR2m8LqjudU1vIbusWK10jODH8U5W3UFVQENL"> 15 16 <title>ENGAGE - AI Search</title> 17 18 <meta name="description" content="Discover AI speaker solutions through Engage. Explore innovative tools that simplify talent discovery and event planning." /> 19 <!-- landingPageIndex --> 20 <link rel="icon" type="image/png" href="https://www.letsengage.com/images/fab-icon-new.png" /> 21 22 <!-- Styles --> 23
23<script src="https://www.letsengage.com/js/app.js"></script>
23 24 <link href="https://www.letsengage.com/css/price-ranger.css" type="text/css" rel="stylesheet"> 25 <link href="https://www.letsengage.com/css/app.css" rel="stylesheet"> 26 <link href="https://www.letsengage.com/fonts/OpenSans.css" type="text/css" rel="stylesheet"> 27 <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css" type="text/css" rel="stylesheet"> 28 <!-- CSS only --> 29 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.3/css/bootstrap.min.css"/> 30 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 31 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"/> 32 <link href="https://www.letsengage.com/css/imgareaselect-default.css" type="text/css" rel="stylesheet"> 33 <link rel="stylesheet" href="https://www.letsengage.com/css/jquery.fancybox.min.css" type="text/css" media="screen" /> 34 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.10.0/jquery.timepicker.css" type="text/css" media="screen" /> 35 <link href="https://www.letsengage.com/css/sweetalert2.min.css" type="text/css" rel="stylesheet"> 36 <link rel="stylesheet" href="https://www.letsengage.com/css/mediaelementplayer.min.css" type="text/css" media="screen" /> 37 <link rel="preconnect" href="https://fonts.googleapis.com"> 38 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 39 <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700&display=swap" rel="stylesheet"> 40 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css"/> 41 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.min.css"/> 42 <link href="https://www.letsengage.com/css/jquery-ui.min.css" type="text/css" rel="stylesheet"> 43 <link href="https://www.letsengage.com/css/imgareaselect-default.css" type="text/css" rel="stylesheet"> 44 <link href="https://www.letsengage.com/css/animate.css" type="text/css" rel="stylesheet"> 45 <link href="https://www.letsengage.com/css/consumer_style.css" type="text/css" rel="stylesheet"> 46 <link href="https://www.letsengage.com/css/frontend-third.css" type="text/css" rel="stylesheet"> 47 <link href="https://www.letsengage.com/css/consumer_responsive.css" type="text/css" rel="stylesheet"> 48 <link href="https://www.letsengage.com/css/responsive-third.css" type="text/css" rel="stylesheet"> 49 <link href="https://www.letsengage.com/css/consumer_welcome.css" type="text/css" rel="stylesheet"> 50 <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css"/> 51 52 <link href="https://www.letsengage.com/css/agent_welcome.css" type="text/css" rel="stylesheet"> 53 <link href="https://www.letsengage.com/css/ai-search.css" type="text/css" rel="stylesheet"> 54 <link href="https://www.letsengage.com/css/recommended-form-list.css" type="text/css" rel="stylesheet">
vendor: 64 bytes, lines 54-56
54 55 56 <script src="https://www.google.com/recaptcha/api.js?render=
566LeTE4QUAAAAAIDO4OX7g1DJx83q2reKev6IfHR8
vendor: 13 bytes, lines 56-57
56"></script> 57
57<!-- Global site tag (gtag.js) - Google Ads: 768122982 -->
vendor: 64 bytes, lines 57-58
57 58<script async src="https://www.googletagmanager.com/gtag/js?id=
58AW-768122982
vendor: 12 bytes, line 58
58"></script>
59<script> 60
vendor: 134 bytes, lines 60-64
60window.dataLayer = window.dataLayer || []; 61 function gtag(){dataLayer.push(arguments);} 62 gtag('js', new Date()); 63 64 gtag('config', '
64AW-768122982
vendor: 4 bytes, line 64
64');
65</script>
vendor: 1 bytes, line 65
65
66<script>(function(w,d,t,r,u){var f,n,i;w[u]=w[u]||[],f=function(){var o={ti:"52004730"};o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")},n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function(){var s=this.readyState;s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)},i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)})(window,document,"script","//bat.bing.com/bat.js","uetq");</script>
66 67 68<style> 69 70 .kbw-signature { width: 400px; height: 200px;} 71 #talent_sign_block canvas{ 72 width: 100% !important; 73 height: auto; 74 border: 1px solid; 75 } 76 77</style>
78<script> 79 if(localStorage.getItem("loaderdata") === null){ 80 $('#loader-engage').show(); 81 } 82</script>
82 83 84 85 86<style> 87 #components{ 88 min-height: 600px; 89 margin-top: 5px; 90 } 91 #target{ 92 min-height: 200px; 93 border: 1px solid #ccc; 94 padding: 5px; 95 } 96 #target .component{ 97 border: 1px solid #fff; 98 } 99 #temp{ 100 width: 500px; 101 background: white; 102 border: 1px dotted #ccc; 103 border-radius: 10px; 104 } 105 106 .popover-content form { 107 margin: 0 auto; 108 width: 213px; 109 } 110 .popover-content form .btn{ 111 margin-right: 10px 112 } 113 #source{ 114 min-height: 500px; 115 } 116 .single-box-category-ns img { 117 width: 64%; 118 } 119 120 .single-box-category-ns.active span { 121 background-color: #00b26b; 122 /* color: white; */ 123 124 125} 126.single-box-category-ns.active .select-category-box > div img { 127 filter: brightness(0) invert(1); 128} 129.search-box-ns input[type="submit"] { 130 background-color: #00b26b; 131 border: hidden; 132 color: #fff; 133 width: 128px; 134 padding: 0 0 0 20px; 135 background-image: url(../images/icon-sns.png); 136 background-repeat: no-repeat; 137 background-position: left 27px center; 138 position: absolute; 139 right: 5px; 140 height: 40px; 141} 142.box-outer-search-ns ul li a{ 143 color: black !important; 144} 145 146#home_header_button { 147 position: absolute; 148 right: 0; 149 top: 0; 150 height: 58px; 151 width: auto; 152 background-color: var(--primary-color); 153 font-size: 19px; 154 line-height: 23px; 155 color: #ffffff; 156 font-weight: 500; 157 font-family: "Poppins"; 158 text-transform: uppercase; 159 padding: 0 39px; 160} 161.Engage-AI a:hover h2 { 162 color: #fff !important; 163} 164.Engage-AI a:hover svg path{ 165 fill: #fff !important; 166} 167.signbutton.sign-btn.consumer-signout-button { 168 margin-left: 6px; 169 padding: 19px; 170 } 171 .signup-button-gap{ 172 gap: 5px; 173 } 174 #agent-signout-button{ 175 margin-left: 10px; 176 padding: 14px; 177 } 178 </style> 179</head> 180<body class=" e3n"> 181 <div class="search_overlay"></div> 182 <header> 183 <div class="container"> 184 <nav class="navbar navbar-expand-lg"> 185 <a class="navbar-brand" href="https://www.letsengage.com"><img src="https://www.letsengage.com/images/footer-logo3.png" alt="Engage"></a> 186 187 <div class="talent-new-search s-desktop-only"> 188 <div class="maine-box-talent-new-search"> 189 <form id ="search-form" method="get" action = "https://www.letsengage.com/talent"> 190 <div class="box-outer-search-ns"> 191 <div class="search-box-ns"> 192 <input type="hidden" class="searchprice" name="searchprice" value=""> 193 <input type="hidden" class="price_type" name="price_type" value=""> 194 <span class="select-category-ns top-cate-menu-wrapper"><span class="inner-select-category-ns"> Select Category </span></span> 195 <span class="price-ns top-cate-menu-wrapper"><span class="inner-price-ns"> Price </span></span> 196 <input type="submit" class ="btn-search" value=""> 197 </div> 198 <div class="select-category-box bottom-menu-wrapper mega-new-menu" style="display:none;"> 199 <div class="bottom-new-mega"> 200 <ul> 201 <li id="top_herder_cat200" class="single-category-selection hasvary " data-name= "Athletics" data-id ="200"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="200"><img src="https://www.letsengage.com/storage/black_icons/athlete_speakers.png" alt="" /></span><h6>Athletics </h6></a></li> 202 <li id="top_herder_cat201" class="single-category-selection hasvary " data-name= "Business Speakers" data-id ="201"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="201"><img src="https://www.letsengage.com/storage/black_icons/Corporate.png" alt="" /></span><h6>Business Speakers </h6></a></li> 203 <li id="top_herder_cat202" class="single-category-selection hasvary " data-name= "Culture & Inclusivity Speakers" data-id ="202"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="202"><img src="https://www.letsengage.com/storage/black_icons/SPEAKER.png" alt="" /></span><h6>Culture & Inclusivity Speakers </h6></a></li> 204 <li id="top_herder_cat203" class="single-category-selection hasvary " data-name= "Health and Wellness Speakers" data-id ="203"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="203"><img src="https://www.letsengage.com/storage/black_icons/health-wellness-speakers.png" alt="" /></span><h6>Health and Wellness Speakers </h6></a></li> 205 <li id="top_herder_cat204" class="single-category-selection hasvary " data-name= "Influencers" data-id ="204"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="204">
205<img src="https://www.letsengage.com/storage/black_icons/Influencer.png" alt="" /></span><h6>Influencers </h6></a></li> 206 <li id="top_herder_cat207" class="single-category-selection " data-name= "Leadership Speakers" data-id ="207"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="207"><img src="https://www.letsengage.com/storage/black_icons/Authors.png" alt="" /></span><h6>Leadership Speakers </h6></a></li> 207 <li id="top_herder_cat205" class="single-category-selection hasvary " data-name= "Motivational Speakers" data-id ="205"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="205"><img src="https://www.letsengage.com/storage/black_icons/SPEAKER.png" alt="" /></span><h6>Motivational Speakers </h6></a></li> 208 <li id="top_herder_cat206" class="single-category-selection hasvary " data-name= "Other" data-id ="206"><a href="javascript:void(0)"><span class="new-icon-mega" data-id ="206"><img src="https://www.letsengage.com/storage/black_icons/Other.png" alt="" /></span><h6>Other </h6></a></li> 209 </ul> 210 </div> 211 212 <div class="sub-category-mega-menu main-filter"></div> 213 <div class="bottom-selected-value budget_section_top" style="display:none"> 214 <ul> 215 </ul> 216 <a href="javascript:void(0)" class="mega-menu-btn bugt_btn" style="display:none">Select Budget</a> 217 </div> 218 </div> 219 <div class="select-price-box bottom-menu-wrapper" style="display:none;"> 220 <div class="form-group-ns"> 221 <label>Estimated Price</label> 222 <div class="select-box-price-ns-boxes"> 223 <ul class="top_virtual" style="display:none" > 224 <li id="inner_upper1" class="pricing-box " data-id="1"><a href="javascript:void(0)">$3k-$7.5k</a></li> 225 <li id="inner_upper2" class="pricing-box " data-id="2"><a href="javascript:void(0)">$7.5k-$15k</a></li> 226 <li id="inner_upper3" class="pricing-box " data-id="3"><a href="javascript:void(0)">$15k-$25k</a></li> 227 <li id="inner_upper4" class="pricing-box " data-id="4"><a href="javascript:void(0)">$25k-$50K</a></li> 228 <li id="inner_upper5" class="pricing-box " data-id="5"><a href="javascript:void(0)">$50k+</a></li> 229 </ul> 230 231 <ul class="top_inperson" > 232 <li id="inner_upper1" class="pricing-box " data-id="1"><a href="javascript:void(0)">$5k - $10k</a></li> 233 <li id="inner_upper2" class="pricing-box " data-id="2"><a href="javascript:void(0)">$10k - $20k</a></li> 234 <li id="inner_upper3" class="pricing-box " data-id="3"><a href="javascript:void(0)">$20k - $35k</a></li> 235 <li id="inner_upper4" class="pricing-box " data-id="4"><a href="javascript:void(0)">$35k -$50k</a></li> 236 <li id="inner_upper5" class="pricing-box " data-id="5"><a href="javascript:void(0)">$50k+</a></li> 237 238 </ul> 239 240 241 </div> 242 </div> 243 <div class="switch-price-ranger"> 244 <div class="switch_talent_mails"> 245 <span class="virtual-event">Virtual</span> 246 <label class="switch_mail"> 247 <input type="checkbox" class="switch_mail_talent" checked="checked" style="width: 20px; height: 20px; -webkit-appearance: checkbox;"> 248 <span class="slider round"></span> 249 </label> 250 <span class="personal-event">In-Person</span> 251 </div> 252 </div> 253 254 255 <div class="bottom-selected-value price_section_top"> 256 <ul> 257 258 </ul> 259 <a href="javascript:void(0)" class="mega-menu-btn top_bottom_search_btn" style="display:none;">Search</a> 260 </div> 261 </div> 262 </div> 263 </form> 264 </div> 265 </div> 266 <button class="navbar-toggler" type="button"> 267 <span></span> 268 <span></span> 269 <span></span> 270 </button> 271 <div class="collapse navbar-collapse talent-navi-new" id="navbarSupportedContent"> 272 <i class="fas fa-times"></i> 273 <ul class="navbar-nav mr-auto"> 274 <li class="nav-item"><a href="https://www.letsengage.com/talent">Talent & Experience</a></li> 275 <li class="nav-item"> 276 <a class="nav-link" href="https://www.letsengage.com/booking-questionnaire"> Engage AI Talent Search</a> 277 </li>
278 <li class="nav-item sub-menu-resources"> 279 <a class="nav-link" href="https://www.letsengage.com/about-us">Resources</a> <i class="fas fa-sort-down"></i> 280 <ul class="sub-menu-ul about-ul"> 281 282 <li><a href="https://www.letsengage.com/customer-case-study">Customer Stories & Reviews</a></li> 283 284 <li><a href="https://www.letsengage.com/in-the-press">In The News</a></li> 285 286 <li><a href="https://www.letsengage.com/blog">Blog</a></li> 287 <li><a href="https://www.letsengage.com/about-us">About Engage</a></li> 288 <li><a href="https://www.letsengage.com/about-us#ourteam">Engage Team</a></li> 289 </ul> 290 </li> 291 <li class="nav-item"> 292 <a class="nav-link" href="https://www.letsengage.com/contact-us">Contact Us</a> 293 </li> 294 </ul> 295 </div> 296 297 <div class="search-div-new-header"> 298 <button class="search-header-icon-img"><img src="https://www.letsengage.com/images/s-img.png" alt="">Advanced Search</button> 299 <div class="search-box-new-header" style="display: none"> 300 <div class="form-ai-button-container"> 301 <form id="home-search" action="https://www.letsengage.com/talent"> 302 303 304 <div class="search-group-box searchdropdownheader"> 305 <input type="text" class="all_search-home" name="search" placeholder="Search by Talent name, Category, or Hashtags"> 306 307 <div class="dropdown"> 308 <button class="btn btn-default dropdown-toggle" type="button" 309 id="dropdownMenu3" data-toggle="dropdown" 310 aria-haspopup="true" aria-expanded="true"> 311 <span class="caret"></span>Search By: 312 </button> 313 <ul class="dropdown-menu checkbox-menu allow-focus" aria-labelledby="dropdownMenu3"> 314 315 <li > 316 <label> 317 <input type="radio" name="searchdropdownoption" value="all" checked > Search all 318 </label> 319 </li> 320 321 <li > 322 <label> 323 <input type="radio" name="searchdropdownoption" value="name" > Name 324 </label> 325 </li> 326 <li > 327 <label> 328 <input type="radio" name="searchdropdownoption" value="category" > Category 329 </label> 330 </li> 331 <li > 332 <label> 333 <input type="radio" name="searchdropdownoption" value="hashtag" > Hashtag 334 </label> 335 </li> 336 337 <li > 338 <label> 339 <input type="radio" name="searchdropdownoption" value="location" > Location 340 </label> 341 </li> 342 343 344 </ul> 345 </div> 346 <input type="hidden" value="1" name="homePageAdvancedSearch" > 347 <input type="hidden" value="2" name="advanced_search" > 348 <input id="home_header_button" type="submit" value="search now"> 349 </div> 350 </form> 351 352 <span class="close-box-search"><i class="fa fa-times" aria-hidden="true"></i></span> 353 </div> 354 </div> 355 </div> 356 <div class="dropdown-profile ai-search-box-dropdown Engage-AI"> 357 358 <a href="https://www.letsengage.com/ai-search" class="signbutton aiLink"><h2>Engage AI <sup> Beta </sup></h2> 359 <svg width="37" height="40" viewBox="0 0 37 40" fill="none" xmlns="http://www.w3.org/2000/svg"> 360 <path d="M11.3501 18.7769C11.3501 18.7769 11.9308 24.197 14.1928 26.4589C16.4547 28.7209 21.8748 29.3016 21.8748 29.3016C21.8748 29.3016 16.4547 29.8823 14.1928 32.1442C11.9308 34.4061 11.3501 39.8263 11.3501 39.8263C11.3501 39.8263 10.7694 34.4061 8.50752 32.1442C6.24559 29.8823 0.825439 29.3016 0.825439 29.3016C0.825439 29.3016 6.24559 28.7209 8.50752 26.4589C10.7694 24.197 11.3501 18.7769 11.3501 18.7769Z" fill="#00B26B"/> 361 <path d="M26.3854 8.18384C26.3854 8.18384 26.9661 13.604 29.228 15.8659C31.49 18.1278 36.9101 18.7085 36.9101 18.7085C36.9101 18.7085 31.49 19.2892 29.228 21.5512C26.9661 23.8131 26.3854 29.2332 26.3854 29.2332C26.3854 29.2332 25.8047 23.8131 23.5428 21.5512C21.2809 19.2892 15.8607 18.7085 15.8607 18.7085C15.8607 18.7085 21.2809 18.1278 23.5428 15.8659C25.8047 13.604 26.3854 8.18384 26.3854 8.18384Z" fill="#00B26B"/> 362 <path d="M11.3501 0.251221C11.3501 0.251221 11.9308 5.67138 14.1928 7.9333C16.4547 10.1952 21.8748 10.7759 21.8748 10.7759C21.8748 10.7759 16.4547 11.3566 14.1928 13.6185C11.9308 15.8805 11.3501 21.3006 11.3501 21.3006C11.3501 21.3006 10.7694 15.8805 8.50752 13.6185C6.24559 11.3566 0.825439 10.7759 0.825439 10.7759C0.825439 10.7759 6.24559 10.1952 8.50752 7.9333C10.7694 5.67138 11.3501 0.251221 11.3501 0.251221Z" fill="#00B26B"/> 363 </svg> 364 </a> 365 <a href="https://www.letsengage.com/login" class="signbutton"><i class="fas fa-user-circle user-sigin-icon"></i></a> 366 367 </div> 368 <div class="talent-menu-box"> 369 <button id="bar-menu-engage"> 370 <span></span> 371 <span></span> 372 <span></span> 373 </button> 374 <div class="talent-menu-boxul"> 375 <div class="talent-menu-boxul-btn"> 376 <a href="https://www.letsengage.com/login">Login / Signup</ul></a> 377 </div> 378 <span id="close-menu-talent"><i class="fa fa-times" aria-hidden="true"></i></span> 379 380 <ul class="talent-menu-ul">
381 <li class="nav-item sub-menu-resources"> 382 <a class="nav-link" href="javascript:void(0)">Quick Links</a> 383 <i class="fas fa-sort-down" id="services-toggle"></i> 384 <ul class="sub-menu-ul about-ul services-ul"> 385 <li class="nav-item"><a href="https://www.letsengage.com/talent">Talent & Experience</a></li> 386 <li class="nav-item"><a class="nav-link" href="https://www.letsengage.com/booking-questionnaire"> Engage AI Talent Search</a></li> 387 <li class="nav-item"><a class="nav-link" href="https://www.letsengage.com/contact-us">Contact Us</a></li> 388 <li class="nav-item"><a class="nav-link" href="https://www.letsengage.com/receive-recommended-list">Request Custom Talent Recommendations</a></li> 389 </ul> 390 </li> 391 392 393 394 <li class="nav-item sub-menu-resources services"> 395 <a class="nav-link" href="javascript:void(0)">What We Do</a> 396 <i class="fas fa-sort-down" id="services-toggle"></i> 397 <ul class="sub-menu-ul about-ul services-ul"> 398 <li><a href="https://www.letsengage.com/servicesforbookers">Talent Booking Services</a></li> 399 <li><a href="https://www.letsengage.com/servicesfortalents">Services For Talent</a></li> 400 <li><a href="https://www.letsengage.com/ncaa-nil">NCAA Name, Image, & Likeness</a></li> 401 </ul> 402 </li> 403 <li class="nav-item sub-menu-resources categories"> 404 <a class="nav-link" href="javascript:void(0)">Categories</a> 405 <i class="fas fa-sort-down" id="services-toggle"></i> 406 <ul class="sub-menu-ul about-ul services-ul"> 407 <li><a href="https://www.letsengage.com/Business-Speakers">Business Speakers</a></li> 408 <li><a href="https://www.letsengage.com/Athletics">Sports Speakers</a></li> 409 <li><a href="https://www.letsengage.com/Motivational-Speakers">Motivational Speakers</a></li> 410 <li><a href="https://www.letsengage.com/Leadership">Leadership Speakers</a></li> 411 <li class="view-mr"><a href="https://www.letsengage.com/categories/all">View all</a></li> 412 </ul> 413 </li> 414 <li class="nav-item sub-menu-resources resources"> 415 <a class="nav-link" href="https://www.letsengage.com/about-us">Resources</a> <i class="fas fa-sort-down"></i> 416 <ul class="sub-menu-ul about-ul"> 417 <!-- <li><a href="https://www.letsengage.com/faq">FAQ's</a></li> --> 418 <li><a href="https://www.letsengage.com/customer-case-study">Customer Stories & Reviews</a></li> 419 <!-- <li><a href="https://www.letsengage.com/concierge">Engage Concierge</a></li> --> 420 <!-- <li><a href="https://www.letsengage.com/in-the-press">In The News</a></li> --> 421 <!-- <li><a href="https://www.letsengage.com/mission">Mission</a></li> --> 422 <li><a href="https://www.letsengage.com/blog">Blog</a></li> 423 <li><a href="https://www.letsengage.com/about-us">About Engage</a></li> 424 <li><a href="https://www.letsengage.com/about-us#ourteam">Engage Team</a></li> 425 426 </ul> 427 </li> 428 </ul> 429 </div> 430 </div> 431 </nav> 432 <div class="talent-search-box"> 433 <div class="search-box-mt"> 434 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" style="display:block;height:16px;width:16px;fill:currentColor" aria-hidden="true" role="presentation" focusable="false"><path d="M13 0a13 13 0 0 1 10.5 20.67l7.91 7.92-2.82 2.82-7.92-7.91A12.94 12.94 0 0 1 13 26a13 13 0 1 1 0-26zm0 4a9 9 0 1 0 0 18 9 9 0 0 0 0-18z" opacity=".8"></path></svg> 435 <span class="category-name-mt">Search Category and Price</span> 436 </div> 437 </div> 438 <div class="search-box-talent-box-mobile" style="display: none;"> 439 <div class="top-heading-search"> 440 <h4>Talent Search</h4> 441 <span class="talent-ms-close"><i class="fa fa-times" aria-hidden="true"></i></span> 442 </div> 443 <div class="category-talent-search-mobile"> 444 <div class="box-ts-mobile category-search-talent"> 445 <div class="shadow-box-ms-content"> 446 <h6>Select Category</h6> 447 </div> 448 <div class="dropdown-mobile-search"> 449 <!--<div class="featured-talent-admin"> 450 <h6>Trending Categories</h6> 451 <div class="list-featured-category"> 452 453 <div class="single-fea-cate" data-id ="108"> 454 <span><img src="https://www.letsengage.com/storage/black_icons/Olympic.png" alt=""></span> 455 <p>Olympians</p> 456 </div> 457 458 459 <div class="single-fea-cate" data-id ="119"> 460 <span><img src="https://www.letsengage.com/storage/black_icons/Future_work.png" alt=""></span> 461 <p>Future of Work</p> 462 </div> 463 464 465 <div class="single-fea-cate" data-id ="136"> 466 <span><img src="https://www.letsengage.com/storage/black_icons/Mental_Health.png" alt=""></span> 467 <p>Mental Health</p> 468 </div> 469 470 471 <div class="single-fea-cate" data-id ="153"> 472 <span><img src="https://www.letsengage.com/storage/black_icons/Peak_Performance.png" alt=""></span> 473 <p>Peak Performance</p> 474 </div> 475 </div> 476 </div> --> 477 <div class="category-sub-category-drop"> 478 <div class="single-category-drop"> 479 <label>Category</label> 480 <select id="mobile-tabletcate-subcat" class="mobile-tabletcate"> 481 <option>Select Category</option> 482 <option value="200" class="">Athletics</option> 483 <option value="201" class="">Business Speakers</option> 484 <option value="202" class="">Culture & Inclusivity Speakers</option> 485 <option value="203" class="">Health and Wellness Speakers</option> 486 <option value="204" class="">Influencers</option> 487 <option value="207" class="">Leadership Speakers</option> 488 <option value="205" class="">Motivational Speakers</option> 489 <option value="206" class="">Other</option> 490 </select> 491 </div> 492 </div> 493 <div class="categ-select"> 494 495 </div> 496 </div> 497 </div> 498 499 <div class="box-ts-mobile price-search-talent"> 500 <div class="shadow-box-ms-content"> 501 <h6>Price</h6> 502 </div> 503 <div class="dropdown-mobile-search"> 504 <div class="form-group-ns"> 505 <label>Estimated Price</label> 506 <div class="select-box-price-ns-boxes"> 507 <ul> 508 <li class="pricing-box" data-id="1"><a href="javascript:void(0)">$3k-$7.5k</a></li> 509 <li class="pricing-box" data-id="2"><a href="javascript:void(0)">$7.5k-$15k</a></li> 510 <li class="pricing-box" data-id="3"><a href="javascript:void(0)">$15k - $25k</a></li> 511 <li class="pricing-box" data-id="4"><a href="javascript:void(0)">$25k +</a></li> 512 </ul> 513 </div> 514 </div> 515 <div class="switch-price-ranger"> 516 <div class="switch_talent_mails"> 517 <span class="virtual-event">Virtual</span> 518 <label class="switch_mail"> 519 <input type="checkbox" class="switch_mail_talent" name="mail_to_agent" style="width: 20p
519x; height: 20px; -webkit-appearance: checkbox;"> 520 <span class="slider round"></span> 521 </label> 522 <span class="personal-event">In-Person</span> 523 </div> 524 </div> 525 <div class="pric-select"></div> 526 </div> 527 </div> 528 </div> 529 <div class="box-clear-and-search"> 530 <a href="javascript:void(0)" class="clearsrch">Clear</a> 531 <input id="mob-search-btn" type="button" value="Search"> 532 </div> 533 </div> 534 </div> 535 </header> 536 <style> 537 .ai-response-text span { 538 white-space: pre-wrap; 539 display: block; 540 /* or inline-block if you must */ 541 } 542 543 #bold-speaking-topic-ai p { 544 /* font-weight: bold; */ 545 padding-left: 10px; 546 } 547 548 #bold-speaking-topic-ai { 549 min-height: 83px; 550 display: flex; 551 padding: 10px 15px; 552 background-color: #d5d5d5; 553 cursor: pointer; 554 align-items: center; 555 } 556 557 .finding-box { 558 justify-content: center; 559 } 560 561 .msg-icon { 562 margin-top: 30px; 563 cursor: pointer; 564 display: none; 565 } 566 567 .msg-bubble:hover .copy-btn { 568 display: block; 569 } 570 571 .msg-bubble:hover .edit-btn { 572 display: block; 573 } 574 575 576 .speaking-topic-link { 577 text-decoration: none; 578 display: block; 579 } 580 581 /* Hover effect */ 582 .speaking-topic-link:hover #bold-speaking-topic-ai { 583 background-color: black; 584 } 585 586 .speaking-topic-link:hover #bold-speaking-topic-ai p { 587 color: white; 588 } 589 590 .display-response .finding-setup .finding-box { 591 transition: all 0.4s ease; 592 } 593 594 .display-response .finding-setup .finding-box:hover { 595 background: #000; 596 } 597 </style> 598 <div class="ai-chat-box ai-search" id="ai-dev-search"> 599 <div class="container"> 600 <div class="row"> 601 <div class="form-search-ai"> 602 <div class="ai-title"> 603 <h1>Ask Engage AI <sup> Beta </sup></h1> 604 <svg width="37" height="40" viewBox="0 0 37 40" fill="none" 605 xmlns="http://www.w3.org/2000/svg"> 606 <path 607 d="M11.3501 18.7769C11.3501 18.7769 11.9308 24.197 14.1928 26.4589C16.4547 28.7209 21.8748 29.3016 21.8748 29.3016C21.8748 29.3016 16.4547 29.8823 14.1928 32.1442C11.9308 34.4061 11.3501 39.8263 11.3501 39.8263C11.3501 39.8263 10.7694 34.4061 8.50752 32.1442C6.24559 29.8823 0.825439 29.3016 0.825439 29.3016C0.825439 29.3016 6.24559 28.7209 8.50752 26.4589C10.7694 24.197 11.3501 18.7769 11.3501 18.7769Z" 608 fill="#00B26B" /> 609 <path 610 d="M26.3854 8.18384C26.3854 8.18384 26.9661 13.604 29.228 15.8659C31.49 18.1278 36.9101 18.7085 36.9101 18.7085C36.9101 18.7085 31.49 19.2892 29.228 21.5512C26.9661 23.8131 26.3854 29.2332 26.3854 29.2332C26.3854 29.2332 25.8047 23.8131 23.5428 21.5512C21.2809 19.2892 15.8607 18.7085 15.8607 18.7085C15.8607 18.7085 21.2809 18.1278 23.5428 15.8659C25.8047 13.604 26.3854 8.18384 26.3854 8.18384Z" 611 fill="#00B26B" /> 612 <path 613 d="M11.3501 0.251221C11.3501 0.251221 11.9308 5.67138 14.1928 7.9333C16.4547 10.1952 21.8748 10.7759 21.8748 10.7759C21.8748 10.7759 16.4547 11.3566 14.1928 13.6185C11.9308 15.8805 11.3501 21.3006 11.3501 21.3006C11.3501 21.3006 10.7694 15.8805 8.50752 13.6185C6.24559 11.3566 0.825439 10.7759 0.825439 10.7759C0.825439 10.7759 6.24559 10.1952 8.50752 7.9333C10.7694 5.67138 11.3501 0.251221 11.3501 0.251221Z" 614 fill="#00B26B" /> 615 </svg> 616 </div> 617 <div class="ai-subtitle"> 618 <p>Engage AI is here to help you find the perfect speaker for your event. Explicitly trained on 619 Engageâs public-facing and proprietary data, it is the industryâs first and best AI speaker 620 search tool. For top performance, give Engage AI as many specific prompts as you can, such as 621 desired topics, desired background experience, your budget range, and other pertinent 622 information.</p> 623 <br> 624 </div> 625 626 627 628 <div class="ai-chat-box-container" style="display: none;"> 629 <div id="chat-messages" class="chat-messages"> 630 631 </div> 632 633 634 <div class="chat-loader bot" id="chat-loading"> 635 <div class="loader-circle"> 636 <img src="https://www.letsengage.com/images/fab-icon-new.png" alt="Logo" class="loader-logo"> 637 <div class="loader-ring"></div> 638 </div> 639 <div class="msg-text typing">
640 <span id="typing-message"></span> 641 </div> 642 </div> 643 </div> 644 645 <div class="my-target-div"></div> 646 647 <form> 648 <div class="find-me"> 649 <textarea name="" id="search-field" class="form-control" placeholder="Type your question here..." 650 style="margin-top: 50px;"></textarea> 651 <div class="form-arrow"> 652 <svg width="16" height="17" viewBox="0 0 16 17" fill="none" 653 xmlns="http://www.w3.org/2000/svg"> 654 <path 655 d="M8.65681 1.03804C8.26629 0.647517 7.63313 0.647517 7.2426 1.03804L0.87864 7.402C0.488115 7.79253 0.488115 8.42569 0.87864 8.81622C1.26916 9.20674 1.90233 9.20674 2.29285 8.81622L7.94971 3.15936L13.6066 8.81622C13.9971 9.20674 14.6303 9.20674 15.0208 8.81622C15.4113 8.42569 15.4113 7.79253 15.0208 7.402L8.65681 1.03804ZM8.94971 16.2549L8.94971 1.74515L6.94971 1.74515L6.94971 16.2549L8.94971 16.2549Z" 656 fill="white" /> 657 </svg> 658 </div> 659 </div> 660 </form> 661 <div class="disclaimer"> 662 <p>Engage AI can make mistakes. Check important info with the Engage Team prior to booking.</p> 663 </div> 664 665 </div> 666 </div> 667 668 <div class="summrize"></div> 669 670 <div class="talent-container talent-list-main-wapper talent-grid-outer"> 671 <div class="main-wrapper-no-event" style="display: none"> 672 <div class="no-found-first">Thanks for using Engage AI! This particular query returned no results. 673 Please try searching again with a more generalized query. 674 </div> 675 <div class="no-found-first"> 676 Engage works with over 4,500 talents. An Engage booking specialist would be happy to assist you in 677 curating a custom list of talent to fit your needs. To contact an Engage team member, click <a 678 href="https://www.letsengage.com/categories/all">HERE!</a> 679 </div> 680 </div> 681 </div> 682 683 684 685 </div> 686 687 <div class="line-btns-talent" style="display: none"> 688 <div class="container"> 689 <div class="line-btn-grid"> 690 <div class="btn-line-green"></div> 691 <a href="javascript:void(0)" class="load-more-talent-searchData"> 692 <div class="btn-icon-box "><img src="https://www.letsengage.com/images/load-more.png"></div><span>Load 693 More Talent</span> 694 </a> 695 696 </div> 697 </div> 698 </div> 699 </div> 700 701 702 <div class="logos-section-footer"> 703 <section class="as-also-seen-on booking-engine-as"> 704 <div class="container"> 705 <div class="as-also-inner"> 706 <h2>Engage Is The Booking Engine For</h2> 707 708 709 <ul class="slick_footer_comp"> 710 711 <li> 712 <img src="https://letsengage.com/images/companies/abbvie.png"> 713 </li> 714 <li> 715 <img src="https://letsengage.com/images/companies/Activition.png"> 716 </li> 717 <li> 718 <img src="https://letsengage.com/images/companies/adidas.png"> 719 </li> 720 <li> 721 <img src="https://letsengage.com/images/companies/AIG.png"> 722 </li> 723 <li> 724 <img src="https://letsengage.com/images/companies/Alpha.png"> 725 </li> 726 <li> 727 <img src="https://letsengage.com/images/companies/American_Cancer.png"> 728 </li> 729 <li> 730 <img src="https://letsengage.com/images/companies/Astra.png"> 731 </li> 732 <li> 733 <img src="https://letsengage.com/images/companies/Bank.png"> 734 </li> 735 <li> 736 <img src="https://letsengage.com/images/companies/Capital.png"> 737 </li> 738 <li> 739 <img src="https://letsengage.com/images/companies/Coldwell.png"> 740 </li> 741 <li> 742 <img src="https://letsengage.com/images/companies/Continental.png"> 743 </li> 744 <li> 745 <img src="https://letsengage.com/images/companies/Crocks.png"> 746 </li> 747 <li> 748 <img src="https://letsengage.com/images/companies/Dexcom.png"> 749 </li> 750 <li> 751 <img src="https://letsengage.com/images/companies/Dicks.png"> 752 </li> 753 <li> 754 <img src="https://letsengage.com/images/companies/Essilor.png"> 755 </li> 756 <li> 757 <img src="https://letsengage.com/images/companies/Hermes.png"> 758 </li> 759 <li> 760 <img src="https://letsengage.com/images/companies/Intel.png"> 761 </li> 762 <li> 763 <img src="https://letsengage.com/images/companies/John_deere.png"> 764 </li> 765 <li> 766 <img src="https://letsengage.com/images/companies/Kaiser.png"> 767 </li> 768 <li> 769 <img src="https://letsengage.com/images/companies/Loreal.png"> 770 </li> 771 <li> 772 <img src="https://letsengage.com/images/companies/meta.png"> 773 </li> 774 <li> 775 <img src="https://letsengage.com/images/companies/Microsoft.png"> 776 </li> 777 <li> 778 <img src="https://letsengage.com/images/companies/Molson.png"> 779 </li> 780 <li> 781 <img src="https://letsengage.com/images/companies/nasa.png"> 782 </li> 783 <li> 784 <img src="https://letsengage.com/images/companies/Nationwide.png"> 785 </li> 786 <li> 787 <img src="https://letsengage.com/images/companies/pepsi.png"> 788 </li> 789 <li> 790 <img src="https://letsengage.com/images/companies/Salesforce.png"> 791 </li> 792 <li> 793 <img src="https://letsengage.com/images/companies/Spacex.png"> 794 </li> 795 <li> 796 <img src="https://letsengage.com/images/companies/Teach.png"> 797 </li> 798 <li> 799 <img src="https://letsengage.com/images/companies/T-mobile.png"> 800 </li> 801 <li> 802 <img src="https://letsengage.com/images/companies/US_Cellular.png"> 803 </li> 804 <li> 805 <img src="https://letsengage.com/images/companies/Wendy's.png"> 806 </li> 807 <li> 808 <img src="https://letsengage.com/images/companies/WPP.png"> 809 </li> 810 <li> 811 <img src="https://letsengage.com/images/companies/Ypo.png"> 812 </li> 813 </ul> 814 <a href="https://www.letsengage.com/customer-case-study" class="view-all-partner-btn">View Client Case Studies</a> 815 </div> 816 </div> 817 </section> 818 819 </div> 820 <!-- Modal --> 821 <div class="outer-modal"> 822 <div class="modal fade curated-form-popup currated_recommendation" id="exampleModalCenter" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" 823 aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> 824 <div class="modal-dialog modal-dialog-centered" role="document"> 825 <div class="modal-content"> 826 <div class="modal-header"> 827 <button type="button" class="close close_more_information" data-bs-dismiss="modal" aria-label="Close"> 828 <span aria-hidden="true">×</span> 829 </button> 830 </div> 831 <div class="modal-body"> 832 <div class="team-right-form"> 833 <div class="team-expert-sec"> 834 <div class="col-lg-3"> 835 <div class="team-left-content"> 836 <h2>Start With Curated Recommendations From Our Expert Team</h2> 837 <p>We book thousands of speakers each year for clients ranging from Fortune 10 companies to local associations. Every event is unique. That's why the best place to start your search is with a list of recommendations tailored to your thematic goals, audience profile, and budget. Fill out the form below to get started!</p> 838 </div> 839 </div> 840 <div class="col-lg-9"> 841 <div class="team-right-form curent-pop-left"> 842 <form id="RecommendationForm-popup" action="https://www.letsengage.com/receive-recommended-submit" class="team-form" method="POST"> 843 <input type="hidden" name="_token" value="uu2FR2m8LqjudU1vIbusWK10jODH8U5W3UFVQENL"> <input type="hidden" id="session_time" value="2026-09-25 00:30:29"> 844 <input type="hidden" name="currated_popup_form" value="1"> 845 <div class="form-group"> 846 <div class="form-field"> 847 <label>
847First Name <span>*</span></label> 848 <input type="text" name="firstname"> 849 </div> 850 <div class="form-field"> 851 <label>Last Name <span>*</span></label> 852 <input type="text" name="lastname"> 853 </div> 854 <div class="form-field"> 855 <label>Email Address <span>*</span></label> 856 <input type="text" name="email"> 857 </div> 858 <div class="form-field"> 859 <label class="phone-filed">Phone Number (Optional) 860 <i class="fa fa-question-circle tooltip-icon-box" aria-hidden="true" tabindex="0"> 861 <span class="tooltip-text-wrap">Enter your phone number if you'd like a booking expert to call within an hour.</span> 862 </i> 863 </label> 864 <input type="number" name="phone"> 865 </div> 866 </div> 867 <div class="form-group second"> 868 <div class="form-field"> 869 <label>When is your event? <span>*</span></label> 870 <input type="date" name="event_date" class="event-start-date-recommendation-popup" > 871 </div> 872 <div class="form-field"> 873 <label>Virtual or In-Person? <span>*</span></label> 874 875 <select class="select" name="event_virtual"> 876 <option value="person">In-Person</option> 877 <option value="virtual">Virtual</option> 878 </select> 879 </div> 880 <div class="field-range"> 881 <label for="budget-range"> 882 What budget range would you like to see recommendations within? <span>*</span> 883 </label> 884 885 <div class="range recommendation-range" id="ranges"> 886 <input type="hidden" name="minimunm_budget" id="popup_minimum_price" value="5000"> 887 <input type="hidden" name="maximum_budget" id="popup_maximium_price" value="21000"> 888 <div class="range-container range-slider-main"> 889 <div class="progress-bar" id="popup-progress-bar"> 890 <span id="popup-min-box" class="box min-price" style="left: 0;" onmousedown="popupStartDraging(event)">0</span> 891 <span id="popup-max-box" class="box max-price" style="left: 25%;" onmousedown="popupStartDragingSecond(event)">0</span> 892 </div> 893 <div class="bottom_div"> 894 <span id="popup-min-value" class="min-price" style="left: 0;">$5000</span> 895 <span id="popup-max-value" class="max-price" style="left: 10%;">$21000</span> 896 </div> 897 </div> 898 </div> 899 </div> 900 </div> 901 <div class="form-group full"> 902 <label>What topics/themes would you like the speaker to 903 address?<span>*</span></label> 904 <input type="text" name="topic"> 905 </div> 906 <div class="form-group full"> 907 <label>Who will be in the audience, and how would the ideal speaker impact 908 them?<span>*</span></label> 909 <input type="text" name="speaker_info" > 910 </div> 911 <div class="recive-btn"> 912 <button type="submit">SUBMIT</button> 913 </div> 914 </form> 915 </div> 916 </div> 917 </div> 918 </div> 919 </div> 920 </div> 921 </div> 922 </div> 923 </div> 924 <!-- End Modal --> 925 <div class="team-expert-sec" id="form"> 926 <div class="container"> 927 <div class="row"> 928 <div class="col-lg-4"> 929 <div class="team-left-content"> 930 <h2>Start With Curated Recommendations From Our Expert Team</h2> 931 <p>We book thousands of speakers each year for clients ranging from Fortune 10 companies to local associations. Every event is unique. That's why the best place to start your search is with a list of recommendations tailored to your thematic goals, audience profile, and budget. Fill out the form below to get started!</p> 932 </div> 933 </div> 934 <div class="col-lg-8"> 935 <div class="team-right-form"> 936 <form id="RecommendationForm" action="https://www.letsengage.com/receive-recommended-submit" 937 class="team-form" method="POST"> 938 <input type="hidden" name="_token" value="uu2FR2m8LqjudU1vIbusWK10jODH8U5W3UFVQENL"> <div class="form-group"> 939 <div class="form-field"> 940 <label>
940First Name <span>*</span></label> 941 <input type="text" name="firstname"> 942 </div> 943 <div class="form-field"> 944 <label>Last Name <span>*</span></label> 945 <input type="text" name="lastname"> 946 </div> 947 <div class="form-field"> 948 <label>Email Address <span>*</span></label> 949 <input type="text" name="email"> 950 </div> 951 <div class="form-field"> 952 <label class="phone-filed">Phone Number (Optional) 953 <i class="fa fa-question-circle tooltip-icon-box" aria-hidden="true" 954 tabindex="0"> 955 <span class="tooltip-text-wrap">Enter your phone number if you'd like a 956 booking expert to call within an hour.</span> 957 </i> 958 </label> 959 <input type="number" name="phone"> 960 </div> 961 </div> 962 <div class="form-group second"> 963 <div class="form-field"> 964 <label>When is your event? <span>*</span></label> 965 <input type="text" name="event_date" class="event-start-date"> 966 </div> 967 <div class="form-field"> 968 <label>Virtual or In-Person? <span>*</span></label> 969 970 <select class="select" name="event_virtual"> 971 <option value="person">In-Person</option> 972 <option value="virtual">Virtual</option> 973 </select> 974 </div> 975 <div class="field-range"> 976 <label for="budget-range"> 977 What budget range would you like to see recommendations within? 978 <span>*</span> 979 </label> 980 <div class="range recommendation-range" id="ranges"> 981 <input type="hidden" name="minimunm_budget" id="minimum_price" 982 value="5000"> 983 <input type="hidden" name="maximum_budget" id="maximium_price" 984 value="21000"> 985 <div class="range-container range-slider-main"> 986 <div class="progress-bar" id="progress-bar"> 987 <span id="min-box" class="box min-price" style="left: 0;" 988 onmousedown="startDraging(event)">0</span> 989 <span id="max-box" class="box max-price" style="left: 25%;" 990 onmousedown="startDragingSecond(event)">0</span> 991 </div> 992 <div class="bottom_div"> 993 <span id="min-value" class="min-price" 994 style="left: 0;">$5000</span>
995 <span id="max-value" class="max-price" 996 style="left: 10%;">$21000</span> 997 </div> 998 </div> 999 </div> 1000 </div> 1001 </div> 1002 <div class="form-group full"> 1003 <label>What topics/themes would you like the speaker to 1004 address?<span>*</span></label> 1005 <input type="text" name="topic"> 1006 </div> 1007 <div class="form-group full"> 1008 <label>Who will be in the audience, and how would the ideal speaker impact 1009 them?<span>*</span></label> 1010 <input type="text" name="speaker_info"> 1011 </div> 1012 <div class="recive-btn"> 1013 <button type="submit">SUBMIT</button> 1014 </div> 1015 </form> 1016 </div> 1017 </div> 1018 </div> 1019 </div> 1020 </div> 1021 <footer class=""> 1022 <div class="container"> 1023 <div class="newsletter-section"> 1024 1025 1026 <div class="newsletter-content"> 1027 <div class="row"> 1028 <div class="col-md-6"> 1029 <h6>Subscribe to our newsletter and get connected:</h6> 1030 </div> 1031 <div class="col-md-6"> 1032 <div class="newletter-form"> 1033 <div id="mc_embed_shell"> 1034 <link href="//cdn-images.mailchimp.com/embedcode/classic-061523.css" 1035 rel="stylesheet" type="text/css"> 1036 1037 <div id="mc_embed_signup"> 1038 <form 1039 action="https://letsengage.us18.list-manage.com/subscribe/post?u=fee6dace13468525a3c27cf33&id=27b4e71113&f_id=00e29be6f0" 1040 method="post" id="mc-embedded-subscribe-form" 1041 name="mc-embedded-subscribe-form" class="validate" target="_blank"> 1042 1043 1044 <div class="mc-field-group"><label for="mce-EMAIL">Email Address <span 1045 class="asterisk">*</span></label><input type="email" 1046 name="EMAIL" placeholder="Enter Your Email" class=" email" 1047 id="mce-EMAIL" value=""><i 1048 class="fas fa-envelope"></i><span id="mce-EMAIL-HELPERTEXT" 1049 class="helper_text"></span></div> 1050 <div aria-hidden="true" style="position: absolute; left: -5000px;"><input 1051 type="text" name="b_fee6dace13468525a3c27cf33_27b4e71113" 1052 tabindex="-1" value=""></div> 1053 <div class="clear"><input type="submit" name="subscribe" 1054 id="mc-embedded-subscribe" class="button" value="Subscribe"> 1055 </div> 1056 </div> 1057 </form> 1058 </div> 1059
1059<script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"></script>
1059 1060
1060<script type="text/javascript"> 1061 (function($) { 1062 window.fnames = new Array(); 1063 window.ftypes = new Array(); 1064 fnames[0] = 'EMAIL'; 1065 ftypes[0] = 'email'; 1066 fnames[1] = 'FNAME'; 1067 ftypes[1] = 'text'; 1068 fnames[2] = 'LNAME'; 1069 ftypes[2] = 'text'; 1070 fnames[3] = 'ADDRESS'; 1071 ftypes[3] = 'address'; 1072 fnames[4] = 'PHONE'; 1073 ftypes[4] = 'phone'; 1074 }(jQuery)); 1075 var $mcj = jQuery.noConflict(true); 1076 </script>
1076 1077 1078 1079 </div> 1080 <div id="mce-responses" class="clear"> 1081 <div class="response" id="mce-error-response" style="display: none;color:Red"></div> 1082 <div class="response" id="mce-success-response" style="display: none; color:#00b56f"> 1083 </div> 1084 </div> 1085 </div> 1086 </div> 1087 </div> 1088 </div> 1089 1090 <div class="main-footer"> 1091 <div class="footer-logo-sec footer-sec"> 1092 <div class="footer-img"> 1093 <img src="https://www.letsengage.com/images/footer-logo3.png" alt=""> 1094 </div> 1095 <ul> 1096 <li class="emil"><a href="mailto:[email protected]">[email protected]</a><i 1097 class="fas fa-envelope"></i></li> 1098 <li class="ph-no"><a href="tel:8335387364">833-LETS-ENGAGE<sup>TM</sup></a><i 1099 class="fas fa-phone"></i></li> 1100 </ul> 1101 </div> 1102 1103 1104 1105 <div class="quick-link-sec footer-sec"> 1106 <h6 class="small">Quick Links</h6> 1107 <ul> 1108 <li><a href="https://www.letsengage.com/talent">Talent & Experiences</a></li> 1109 1110 1111 1112 1113 1114 1115 <li><a href="https://www.letsengage.com/booking-questionnaire">Engage AI Speaker Search</a></li> 1116 <li><a href="https://www.letsengage.com/contact-us">Contact Us</a></li> 1117 <li><a href="https://www.letsengage.com/receive-recommended-list">Request Custom Talent 1118 Recommendations</a></li> 1119 <li><a href="https://www.letsengage.com/booking-questionnaire">Booking Questionnaire</a></li> 1120 </ul> 1121 </div> 1122 <div class="quick-link-sec footer-sec services-section"> 1123 <h6 class="small">What We Do</h6> 1124 <ul> 1125 <li><a href="https://www.letsengage.com/servicesforbookers">Talent Booking Services</a></li> 1126 <li><a href="https://www.letsengage.com/servicesfortalents">Services For Talent</a></li> 1127 <li><a href="https://www.letsengage.com/ncaa-nil">NCAA Name, Image, & Likeness</a></li> 1128 1129 </ul> 1130 </div> 1131 <div class="categorieso-sec footer-sec"> 1132 <h6 class="small">Categories</h6> 1133 <ul> 1134 <li><a href="https://www.letsengage.com/Business-Speakers">Business Speakers</a></li> 1135 <li><a href="https://www.letsengage.com/Athletics">Sports Speakers</a></li> 1136 <li><a href="https://www.letsengage.com/Motivational-Speakers">Motivational Speakers</a></li> 1137 <li><a href="https://www.letsengage.com/Leadership">Leadership Speakers</a></li> 1138 1139 <li class="view-mr"><a href="https://www.letsengage.com/categories/all">View all</a></li> 1140 </ul> 1141 </div> 1142 <div class="features-sec footer-sec"> 1143 <h6 class="small">Resources</h6> 1144 <ul> 1145 1146 1147 1148 <li><a href="https://www.letsengage.com/customer-case-study">Customer Stories & Reviews</a></li> 1149 1150 <li><a href="https://www.letsengage.com/in-the-press">In The News</a></li> 1151 1152 <li><a href="https://www.letsengage.com/blog">Blog</a></li> 1153 <li><a href="https://www.letsengage.com/about-us">About Engage</a></li> 1154 <li><a href="https://www.letsengage.com/about-us">Engage Team</a></li> 1155 </ul> 1156 </div> 1157 </div> 1158 1159 </div> 1160</footer> 1161 1162<!-- audio-player --> 1163<div id="player-bar" data-episode-id="" data-status=""> 1164 <div class="mejs-player-bar"> 1165 <audio id="player" controls="controls"> 1166 <source src="" type="audio/mpeg"> 1167 Your browser does not support the HTML5 audio element. 1168 </audio> 1169 </div> 1170 1171 <div class="episode-details"> 1172 <div class="episode-cover"> 1173 <a href="#"> 1174 <img src="" alt="" /> 1175 </a> 1176 </div> 1177 1178 <div class="episode-title"> 1179 <a href="#"></a> 1180 </div> 1181
1182 <span class="episode-id"></span> 1183 </div> 1184 1185 <div class="play-pause paused"> 1186 <span class="current-time"></span> 1187 <button></button> 1188 <span class="total-time"></span> 1189 </div> 1190 1191 <div class="episode-controls"> 1192 1193 1194 <div class="volume-controls"> 1195 <button class="volume-down"></button> 1196 1197 <div id="volume-range"> 1198 <div class="control"> 1199 <span class="knob"></span> 1200 </div> 1201 </div> 1202 1203 <button class="volume-up"></button> 1204 </div> 1205 <div class="close-player">X</div> 1206 </div> 1207</div> 1208<!-- /audio-player --> 1209<div class="footer-line"> 1210 <div class="container"> 1211 1212 <div class="footer-line-content"> 1213 <div class="row"> 1214 <div class="col-md-4"> 1215 <span class="footer-line-copy">Copyright © 2026 Engage<sup>TM</sup>. All 1216 rights reserved.</span><br> 1217 <ul class="privcary-ul"> 1218 <li><a href="https://www.letsengage.com/policy">Privacy Policy</a></li> 1219 <li><a href="https://www.letsengage.com/terms">Terms & Conditions</a></li> 1220 </ul> 1221 </div> 1222 <div class="col-md-4"> 1223 <div class="image-for-marketing"> 1224 <span>POWERED BY:</span> 1225 <div class="img-from-market"> 1226 <a href="http://www.themarketingmasters.com/" target="_blank"><img 1227 src="https://www.letsengage.com/images/marketing-logo.png" alt=""></a> 1228 </div> 1229 </div> 1230 </div> 1231 <div class="col-md-4"> 1232 <div class="social-icons"> 1233 <ul> 1234 <li><a href="https://www.linkedin.com/company/engage-llc-1/" target="_blank"><i 1235 class="fab fa-linkedin-in"></i></a></li> 1236 <li><a href="https://www.instagram.com/bookwithEngage/" target="_blank"><i 1237 class="fab fa-instagram"></i></a></li> 1238 <li><a href="https://twitter.com/bookwithEngage?lang=en" target="_blank"><img 1239 src="https://www.letsengage.com/images/twitter_x_x.png" /></a></li> 1240 <li><a href="https://www.facebook.com/BookWithEngage/" target="_blank"><i 1241 class="fab fa-facebook-f"></i></a></li> 1242 <li><a href=" https://www.youtube.com/@bookwithengage" target="_blank"><img 1243 src="https://www.letsengage.com/images/youtube.png" alt="" 1244 srcset="" style="max-width:74%"></li> 1245 </ul> 1246 </div> 1247 </div> 1248 </div> 1249 </div> 1250 </div> 1251</div> 1252 1253<!-- mail chimp subscription --> 1254<div id="mailchimp_newsletter" class="modal fade" role="dialog"> 1255 <div class="modal-dialog"> 1256 1257 <!-- Modal content--> 1258 <div class="modal-content"> 1259 <div class="modal-header"> 1260 <button type="button" class="close" data-dismiss="modal">×</button> 1261 1262 </div> 1263 <div class="modal-body"> 1264 <p>you have successfully subscribed to our newsletter</p> 1265 </div> 1266 <div class="modal-footer"> 1267 1268 </div> 1269 </div> 1270 1271 </div> 1272</div> 1273<div style="display:none" class="news_loader"><img src="https://www.letsengage.com/images/loading_spinner.gif" alt=""> 1274</div> 1275<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 1275-1276
1275 1276<script async src="https://www.googletagmanager.com/gtag/js?id=
1276UA-125330996-1
vendor: 12 bytes, line 1276
1276"></script>
1277<script> 1278
vendor: 156 bytes, lines 1278-1285
1278window.dataLayer = window.dataLayer || []; 1279 1280 function gtag() { 1281 dataLayer.push(arguments); 1282 } 1283 gtag('js', new Date()); 1284 1285 gtag('config', '
1285UA-125330996-1
vendor: 4 bytes, line 1285
1285');
1286</script>
1286 1287 1288
1289<script defer src='https://data.processwebsitedata.com/cscripts/WVfDDJHxmD-0b3bd69b.js'></script>
1289 1290<!-- // cookies create google -->
1291<script> 1292 var _gaq = _gaq || []; 1293 var pluginUrl = '//www.google-analytics.com/plugins/ga/inpage_linkid.js'; 1294 _gaq.push(['_require', 'inpage_linkid', pluginUrl]); 1295 _gaq.push(['_setAccount', 'UA-125330996-1']); 1296 _gaq.push(['_trackPageview']); 1297 1298 1299 (function() { 1300 var ga = document.createElement('script'); 1301 ga.type = 'text/javascript'; 1302 ga.async = true; 1303 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + 1304 '.google-analytics.com/ga.js'; 1305 var s = document.getElementsByTagName('script')[0]; 1306 s.parentNode.insertBefore(ga, s); 1307 })(); 1308</script>
1308 1309 1310 1311
1312<script> 1313 var user_id = ''; 1314 </script>
vendor: 1 bytes, line 1314
1314
1315<script type="text/javascript"> 1316 _linkedin_partner_id = "3485674"; 1317 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 1318 window._linkedin_data_partner_ids.push(_linkedin_partner_id); 1319</script>
vendor: 1 bytes, line 1319
1319
1320<script type="text/javascript"> 1321 (function(l) { 1322 if (!l) { 1323 window.lintrk = function(a, b) { 1324 window.lintrk.q.push([a, b]) 1325 }; 1326 window.lintrk.q = [] 1327 } 1328 var s = document.getElementsByTagName("script")[0]; 1329 var b = document.createElement("script"); 1330 b.type = "text/javascript"; 1331 b.async = true; 1332 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 1333 s.parentNode.insertBefore(b, s); 1334 })(window.lintrk); 1335</script>
1335 1336
1337<script> 1338 $(document).ready(function() { 1339 $(".mega-menu-li i").click(function() { 1340 $(".mega-menu-main").slideToggle(); 1341 }); 1342 $(".mobile-only-menu > i").click(function() { 1343 $(".talent-drop").slideToggle(); 1344 }); 1345 $(".mobile-only-menu > ul > li i").click(function() { 1346 $(this).parent("li").children("ul").slideToggle(); 1347 }); 1348 $(".sub-menu-resources i").click(function() { 1349 // $(".sub-menu-resources ul").slideToggle(); 1350 $(this).next('ul').slideToggle(); 1351 }); 1352 $(".dropdown-profile a.signbutton").click(function() { 1353 $(".dropdown-profile ul").slideToggle(); 1354 }); 1355 $(".dropdown-profile .aiLink").hover(function() { 1356 $(".dropdown-profile ul").css('display','none'); 1357 }); 1358 $(".dropdown-profile .my_account").hover(function() { 1359 $(".dropdown-profile ul").css('display','block'); 1360 }); 1361 $(".navbar-toggler").click(function() { 1362 $("#navbarSupportedContent").addClass("open-menu"); 1363 $("body").addClass("fixed-body"); 1364 }); 1365 $("#navbarSupportedContent i.fas.fa-times").click(function() { 1366 $("body").removeClass("fixed-body"); 1367 $("#navbarSupportedContent").removeClass("open-menu"); 1368 }); 1369 1370 $('.slick_footer_comp').slick({ 1371 slidesToShow: 5, 1372 arrows: false, 1373 autoplay: true, 1374 autoplaySpeed: 0, 1375 pauseOnHover: false, 1376 speed: 4500, 1377 cssEase: 'linear', 1378 infinite: true, 1379 focusOnSelect: false, 1380 responsive: [{ 1381 breakpoint: 768, 1382 settings: { 1383 arrows: false, 1384 slidesToShow: 3 1385 } 1386 }, { 1387 breakpoint: 480, 1388 settings: { 1389 arrows: true, 1390 slidesToShow: 1 1391 } 1392 }] 1393 }); 1394 1395 }); 1396 1397 let dragging = null; 1398 1399 function startDraging(e) { 1400 dragging = 'min'; 1401 e.preventDefault(); // Prevent text selection 1402 1403 // Add mousemove and mouseup listeners 1404 document.addEventListener('mousemove', moveBox); 1405 document.addEventListener('mouseup', stopDrag); 1406 } 1407 1408 function startDragingSecond(e) { 1409 dragging = 'max'; 1410 e.preventDefault(); // Prevent text selection 1411 1412 // Add mousemove and mouseup listeners 1413 document.addEventListener('mousemove', moveBox); 1414 document.addEventListener('mouseup', stopDrag); 1415 } 1416 1417 function moveBox(e) { 1418 if (!dragging) return; 1419 1420 var progressBar = document.getElementById('progress-bar'); 1421 var rect = progressBar.getBoundingClientRect(); 1422 var pos = e.clientX - rect.left; // Mouse position relative to the progress bar 1423 var newPosition = Math.min(Math.max(pos, 0), rect.width); // Keep it within bounds 1424 1425 var minBox = document.getElementById('min-box'); 1426 var maxBox = document.getElementById('max-box'); 1427 1428 var minValue = document.getElementById('min-value'); 1429 var maxValue = document.getElementById('max-value'); 1430 const minimum_price = document.getElementById("minimum_price").value; 1431 const maximum_price = document.getElementById("maximium_price").value; 1432 if (!minimum_price || !maximum_price) { 1433 console.error("One or both input elements not found."); 1434 } else { 1435 var difference = Number(maximum_price) - Number(minimum_price); 1436 console.log(difference) 1437 if (difference < 5000) { 1438 // return; 1439 } 1440 } 1441 // } 1442 1443 if (dragging === 'min') { 1444 if (newPosition < parseInt(maxBox.style.left)) { 1445 minBox.style.left = newPosition + 'px'; 1446 minValue.style.left = newPosition + 'px'; // Move the min price label along with the min box 1447 updateRange(true); 1448 } 1449 } else if (dragging === 'max') { 1450 if (newPosition > parseInt(minBox.style.left)) { 1451 maxBox.style.left = newPosition + 'px'; 1452 maxValue.style.left = Number(newPosition - 60) + 1453 'px'; // Move the max price label along with the max box 1454 updateRange(); 1455 } 1456 } 1457 } 1458
1459 function stopDrag() { 1460 dragging = null; 1461 // Remove event listeners after drag ends 1462 document.removeEventListener('mousemove', moveBox); 1463 document.removeEventListener('mouseup', stopDrag); 1464 } 1465 1466 function updateRange(movingLeft = null) { 1467 var minBox = document.getElementById('min-box'); 1468 var maxBox = document.getElementById('max-box'); 1469 var minValue = document.getElementById('min-value'); 1470 var maxValue = document.getElementById('max-value'); 1471 1472 var progressBar = document.getElementById('progress-bar'); 1473 1474 // Calculate the values based on the position of the boxes 1475 function roundToThousand(value) { 1476 return Math.round(value / 1000) * 1000; 1477 } 1478 var minVal = roundToThousand((parseInt(minBox.style.left) / progressBar.offsetWidth) * 70000 + 1479 5000); // $5,000 to $75,000 range 1480 var maxVal = roundToThousand((parseInt(maxBox.style.left) / progressBar.offsetWidth) * 70000 + 1481 5000); // $5,000 to $75,000 range 1482 if (maxVal > 50000 && !movingLeft) { 1483 var currentLeft = parseInt(maxValue.style.left, 10) || 0; 1484 1485 // Move the element 60px to the left 1486 maxValue.style.left = (currentLeft - 50) + 'px'; 1487 } 1488 if (minVal > 50000) { 1489 var currentLeft = parseInt(minValue.style.left, 10) || 0; 1490 1491 // Move the element 60px to the left 1492 minValue.style.left = (currentLeft - 50) + 'px'; 1493 } 1494 1495 if (maxVal < 30000) { 1496 minValue.style.top = '-38px'; 1497 } else { 1498 // minValue.style.top = '0px'; 1499 } 1500 1501 if (movingLeft) { 1502 if (minVal > 5000) { 1503 minValue.style.top = '-38px'; 1504 } else { 1505 minValue.style.top = '0px'; 1506 } 1507 } 1508 //update in form 1509 $("#minimum_price").val(minVal); 1510 $("#maximium_price").val(maxVal); 1511 1512 // console.log(minVal,maxVal) 1513 1514 // Update the displayed values 1515 minValue.textContent = '$' + minVal.toLocaleString(); 1516 if (!movingLeft) { 1517 maxValue.textContent = '$' + maxVal.toLocaleString(); 1518 } 1519 } 1520 1521 // This ensures the script runs once the DOM is fully loaded 1522 window.onload = function() { 1523 // updateRange(); // Initialize the range values 1524 }; 1525 1526 // Recommendation form js 1527 $(document).ready(function() { 1528 1529 1530 $("#RecommendationForm").validate({ 1531 rules: { 1532 firstname: { 1533 required: true 1534 }, 1535 lastname: { 1536 required: true 1537 }, 1538 email: { 1539 required: true, 1540 email: true 1541 }, 1542 phone: { 1543 required: false 1544 }, 1545 event_date: { 1546 required: true, 1547 }, 1548 event_virtual: { 1549 required: true, 1550 }, 1551 topic: { 1552 required: true, 1553 }, 1554 speaker_info: { 1555 required: true, 1556 }, 1557 1558 }, 1559 errorPlacement: function(error, element) { 1560 // Suppress default error messages 1561 }, 1562 highlight: function(element) { 1563 $(element).addClass("error"); 1564 }, 1565 unhighlight: function(element) { 1566 $(element).removeClass("error"); 1567 }, 1568 submitHandler: function(form) { 1569 $.LoadingOverlay('show'); 1570 form.submit(); 1571 } 1572 }); 1573 }); 1574</script>
vendor: 1 bytes, line 1574
1574
1575<script> 1576 $(document).ready(function() { 1577 $("#RecommendationForm-popup").validate({ 1578 rules: { 1579 firstname: { 1580 required: true 1581 }, 1582 lastname: { 1583 required: true 1584 }, 1585 email: { 1586 required: true, 1587 email: true 1588 }, 1589 phone: { 1590 required: false 1591 }, 1592 event_date: { 1593 required: true, 1594 }, 1595 event_virtual: { 1596 required: true, 1597 }, 1598 topic: { 1599 required: true, 1600 }, 1601 speaker_info: { 1602 required: true, 1603 }, 1604 1605 }, 1606 errorPlacement: function(error, element) { 1607 // Suppress default error messages 1608 }, 1609 highlight: function(element) { 1610 $(element).addClass("error"); 1611 }, 1612 unhighlight: function(element) { 1613 $(element).removeClass("error"); 1614 }, 1615 submitHandler: function(form) { 1616 $.LoadingOverlay('show'); 1617 form.submit(); 1618 } 1619 }); 1620 1621 // $(".event-start-date-recommendation-popup") 1622 // .datepicker({ 1623 // dateFormat: "mm/dd/yy", 1624 // onSelect: function (dateText, inst) { 1625 // $(".event-start-date-recommendation-popup").attr("value", dateText); 1626 // var date2 = $(".event-start-date-recommendation-popup").datepicker("getDate"); 1627 1628 // date2.setDate(date2.getDate() + 90); 1629 1630 // }, 1631 // }) 1632 // .on("change", function () { 1633 // $(this).valid(); 1634 // }); 1635 1636 }); 1637 1638 jQuery( document ).ready( function () { 1639 // open currated form 1640 var user_session_time = $("#session_time").val(); 1641 function getUSTime(timeZone) { 1642 const now = new Date(); 1643 1644 // Convert to given timezone using Intl API 1645 const options = { timeZone, hour12: false }; 1646 const localTime = new Date(now.toLocaleString('en-US', options)); 1647 1648 // Format to "YYYY-MM-DD HH:mm:ss" 1649 const year = localTime.getFullYear();
1650 const month = String(localTime.getMonth() + 1).padStart(2, '0'); 1651 const day = String(localTime.getDate()).padStart(2, '0'); 1652 const hours = String(localTime.getHours()).padStart(2, '0'); 1653 const minutes = String(localTime.getMinutes()).padStart(2, '0'); 1654 const seconds = String(localTime.getSeconds()).padStart(2, '0'); 1655 1656 return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; 1657 } 1658 if(user_session_time){ 1659 1660 // Examples for different US time zones: 1661 const easternTime = getUSTime('America/New_York'); 1662 1663 // Parse both to Date objects 1664 const parseDate = (str) => new Date(str.replace(" ", "T")); // turn into ISO-like string 1665 const sessionDate = parseDate(user_session_time); 1666 const currentDate = parseDate(easternTime); 1667 const diffInSeconds = Math.floor((currentDate - sessionDate) / 1000); 1668 let timeLeftToOpen = 1000; 1669 let currated_recommendation_open = localStorage.getItem('currated_recommendation_open'); 1670 if(diffInSeconds < 60){ 1671 timeLeftToOpen = 60-Number(diffInSeconds); 1672 timeLeftToOpen = timeLeftToOpen*1000; 1673 if(currated_recommendation_open){ 1674 const diffInSec = Math.floor((Date.parse(currentDate) - Date.parse(currated_recommendation_open)) / 1000); 1675 if(diffInSec> 86400){ 1676 localStorage.removeItem('currated_recommendation_open',currentDate); 1677 } 1678 } 1679 1680 } 1681 if (!currated_recommendation_open) { 1682 let currated_recommendation = $(".currated_recommendation"); 1683 setTimeout(() => { 1684 localStorage.setItem('currated_recommendation_open',currentDate); 1685 currated_recommendation.css({ 1686 "display": "block", 1687 "position": "fixed", 1688 "top": "50%", 1689 "left": "50%", 1690 "transform": "translate(-50%, -50%)", 1691 "z-index": "9999999", 1692 "padding": "20px", 1693 "border-radius": "8px", 1694 "box-shadow": "0 4px 12px rgba(0,0,0,0.3)", 1695 "opacity" : '1' 1696 }); 1697 $("body").append('<div class="modal-backdrop fade in"></div>'); 1698 }, timeLeftToOpen); 1699 } 1700 } 1701 $(".close_more_information").click(function(){ 1702 $(".currated_recommendation").css({ 1703 "display": "none", 1704 "opacity" : '0' 1705 }); 1706 $(".modal-backdrop").remove(); 1707 }); 1708 }); 1709 1710let popupDragging = null; 1711function popupStartDraging(e) { 1712 popupDragging = 'min'; 1713 e.preventDefault(); // Prevent text selection 1714 1715 // Add mousemove and mouseup listeners 1716 document.addEventListener('mousemove', popupmMoveBox); 1717 document.addEventListener('mouseup', popupStopDrag); 1718} 1719 1720function popupStartDragingSecond(e) { 1721 popupDragging = 'max'; 1722 e.preventDefault(); // Prevent text selection 1723 1724 // Add mousemove and mouseup listeners 1725 document.addEventListener('mousemove', popupmMoveBox); 1726 document.addEventListener('mouseup', popupStopDrag); 1727} 1728 1729function popupmMoveBox(e) { 1730 if (!popupDragging) return; 1731 1732 var progressBar = document.getElementById('popup-progress-bar'); 1733 var rect = progressBar.getBoundingClientRect(); 1734 var pos = e.clientX - rect.left; // Mouse position relative to the progress bar 1735 var newPosition = Math.min(Math.max(pos, 0), rect.width); // Keep it within bounds 1736 1737 var minBox = document.getElementById('popup-min-box'); 1738 var maxBox = document.getElementById('popup-max-box'); 1739 1740 var minValue = document.getElementById('popup-min-value'); 1741 var maxValue = document.getElementById('popup-max-value'); 1742 const minimum_price = document.getElementById("popup_minimum_price").value; 1743 const maximum_price = document.getElementById("popup_maximium_price").value; 1744 if (!minimum_price || !maximum_price) { 1745 console.error("One or both input elements not found."); 1746 }else{ 1747 var difference = Number(maximum_price) - Number(minimum_price); 1748 console.log(difference) 1749 if(difference < 5000){ 1750 // return; 1751 } 1752 } 1753 // } 1754 1755 if (popupDragging === 'min') { 1756 if (newPosition < parseInt(maxBox.style.left)) { 1757 minBox.style.left = newPosition + 'px'; 1758 minValue.style.left = newPosition + 'px'; // Move the min price label along with the min box 1759 popupUpdateRange(true); 1760 } 1761 } else if (popupDragging === 'max') { 1762 if (newPosition > parseInt(minBox.style.left)) { 1763 maxBox.style.left = newPosition + 'px'; 1764 maxValue.style.left = Number(newPosition-60) + 'px'; // Move the max price label along with the max box 1765 popupUpdateRange(); 1766 } 1767 } 1768} 1769
1770function popupStopDrag() { 1771 popupDragging = null; 1772 // Remove event listeners after drag ends 1773 document.removeEventListener('mousemove', popupmMoveBox); 1774 document.removeEventListener('mouseup', popupStopDrag); 1775} 1776 1777function popupUpdateRange(movingLeft = null) { 1778 var minBox = document.getElementById('popup-min-box'); 1779 var maxBox = document.getElementById('popup-max-box'); 1780 var minValue = document.getElementById('popup-min-value'); 1781 var maxValue = document.getElementById('popup-max-value'); 1782 1783 var progressBar = document.getElementById('popup-progress-bar'); 1784 1785 // Calculate the values based on the position of the boxes 1786 function roundToThousand(value) { 1787 return Math.round(value / 1000) * 1000; 1788 } 1789 var minVal = roundToThousand((parseInt(minBox.style.left) / progressBar.offsetWidth) * 70000 + 5000); // $5,000 to $75,000 range 1790 var maxVal = roundToThousand((parseInt(maxBox.style.left) / progressBar.offsetWidth) * 70000 + 5000); // $5,000 to $75,000 range 1791 if(maxVal>50000 && !movingLeft){ 1792 var currentLeft = parseInt(maxValue.style.left, 10) || 0; 1793 1794 // Move the element 60px to the left 1795 maxValue.style.left = (currentLeft - 50) + 'px'; 1796 } 1797 if(minVal>50000){ 1798 var currentLeft = parseInt(minValue.style.left, 10) || 0; 1799 1800 // Move the element 60px to the left 1801 minValue.style.left = (currentLeft - 50) + 'px'; 1802 } 1803 1804 if(maxVal<30000){ 1805 minValue.style.top = '-38px'; 1806 }else{ 1807 // minValue.style.top = '0px'; 1808 } 1809 1810 if(movingLeft){ 1811 if(minVal>5000){ 1812 minValue.style.top = '-38px'; 1813 }else{ 1814 minValue.style.top = '0px'; 1815 } 1816 } 1817 //update in form 1818 $("#popup_minimum_price").val(minVal); 1819 $("#popup_maximium_price").val(maxVal); 1820 1821 // console.log(minVal,maxVal) 1822 1823 // Update the displayed values 1824 minValue.textContent = '$' + minVal.toLocaleString(); 1825 if(!movingLeft){ 1826 maxValue.textContent = '$' + maxVal.toLocaleString(); 1827 } 1828} 1829 1830// This ensures the script runs once the DOM is fully loaded 1831window.onload = function() { 1832 // updateRange(); // Initialize the range values 1833}; 1834 </script>
1834 1835<noscript> 1836 <img height="1" width="1" style="display:none;" alt="" 1837 src="https://px.ads.linkedin.com/collect/?pid=3485674&fmt=gif" /> 1838</noscript> 1839 1840 1841 1842 1843 <!-- Modal --> 1844<div id="sign-up-tc"> 1845 <div id="myModal" class="modal fade" role="dialog"> 1846 <div class="modal-dialog"> 1847 1848 <!-- Modal content--> 1849 <div class="modal-content"> 1850 <div class="modal-header"> 1851 <button type="button" class="close" data-dismiss="modal">×</button> 1852 <h4 class="modal-title">Sign Up For Engage</h4> 1853 <div class="sign-up-under-hood">Are you interested in signing up as a consumer to book events & experiences or as talent to offer your events & experiences?</div> 1854 </div> 1855 <div class="modal-body"> 1856 <ul class="sign-up-btns"> 1857 <li><a href="https://www.letsengage.com/consumer/register">Consumer Sign-Up</a></li> 1858 <li><a href="https://www.letsengage.com/talent/signup">Talent Sign-Up</a></li> 1859 <li><a href="https://www.letsengage.com/agent/signup">Agent Sign-Up</a></li> 1860 </ul> 1861 </div> 1862 <div class="modal-footer"> 1863 </div> 1864 </div> 1865 </div> 1866 </div> 1867</div> 1868 1869 <!-- Scripts --> 1870 1871 1872 1873
1873<script>var baseUrl = "https://www.letsengage.com";</script>
1873 1874
1874<script src="https://www.letsengage.com/js/jquery.validate.min.js"></script>
1874 1875 1876
1876<script src="https://cdnjs.cloudflare.com/ajax/libs/promise-polyfill/8.3.0/polyfill.min.js" integrity="sha512-310GmPyrxvjHYxcTy7HdjCN7EYL9ou4DldEiu1oABpNFUcEbPfcESbQ+4lZBIAsYb2KuKjJpvWaDxQUINj4I8A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
1876 1877
1877<script src="https://www.letsengage.com/js/sweetalert2.min.js"></script>
1877 1878
1878<script src="https://www.letsengage.com/js/jquery.are-you-sure.js"></script>
1878 1879
1879<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" ></script>
1879 1880
1880<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js"></script>
1880 1881
1881<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
1881 1882
1882<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-timepicker/1.10.0/jquery.timepicker.min.js" ></script>
1882 1883
1883<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/purify.min.js"></script>
1883 1884 1885 1886
vendor: 917 bytes, lines 1886-1925
1886<script> 1887 /*** fancy box browser **/ 1888var matched, browser; 1889 1890jQuery.uaMatch = function( ua ) { 1891 ua = ua.toLowerCase(); 1892 1893 var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) || 1894 /(webkit)[ \/]([\w.]+)/.exec( ua ) || 1895 /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) || 1896 /(msie) ([\w.]+)/.exec( ua ) || 1897 ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) || 1898 []; 1899 1900 return { 1901 browser: match[ 1 ] || "", 1902 version: match[ 2 ] || "0" 1903 }; 1904}; 1905 1906matched = jQuery.uaMatch( navigator.userAgent ); 1907browser = {}; 1908 1909if ( matched.browser ) { 1910 browser[ matched.browser ] = true; 1911 browser.version = matched.version; 1912} 1913 1914// Chrome is Webkit, but Webkit is also Safari. 1915if ( browser.chrome ) { 1916 browser.webkit = true; 1917} else if ( browser.webkit ) { 1918 browser.safari = true; 1919} 1920 1921jQuery.browser = browser; 1922 1923/*** fancy box browser end **/ 1924 1925 </script>
1925 1926
1926<script type="text/javascript" src="https://www.letsengage.com/js/jquery.fancybox.min.js"></script>
1926 1927
1927<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCaNuTIHleWV1tsQAJBQ1P-7vLvSRkwTXI&&libraries=places&callback=initMap" async defer></script>
1927 1928
1928<script src="https://js.pusher.com/4.1/pusher.min.js"></script>
1928 1929
1929<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/loadingoverlay.min.js"></script>
1929 1930 1931 1932
1932<script src="https://www.letsengage.com/js/jquery.imgareaselect.min.js"></script>
1932 1933
1933<script src="https://www.letsengage.com/js/mediaelement-and-player.min.js"></script>
1933 1934
1934<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.15/jquery.mask.min.js"></script>
1934 1935<!-- 1936
1936<script src="https://www.letsengage.com/js/formbuilder.js"></script>
1936 1937-->
1938<script src="https://js.stripe.com/v3/"></script>
1938 1939
1939<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.min.js" ></script>
1939 1940 <!--
1940<script src="https://cdn.ckeditor.com/4.11.2/basic/ckeditor.js"></script>
1940 --> 1941 1942
1942<script src="https://cdn.ckeditor.com/ckeditor5/34.0.0/classic/ckeditor.js"></script>
1942 1943 <!--
1943<script src="https://www.letsengage.com/js/jscolor.js"></script>
1943 --> 1944
1944<script src="https://cdnjs.cloudflare.com/ajax/libs/jscolor/2.5.2/jscolor.js" integrity="sha512-IShZ5NZxEaotdJdpd853DUKXbgYUH7O/PaeGDp2eiS3XxNDnIQ9+GuRX3d5c4joOqs7Ni8ZKQmRFbKImtcwLaA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
1944 1945
1945<script src="https://www.letsengage.com/js/notify.min.js"></script>
1945 1946
1946<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
1946 1947
1947<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.1.3/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 1947
1947
1948<script src="https://www.letsengage.com/js/wow.min.js"></script>
1948 1949
1949<script src="https://www.letsengage.com/js/consumer.js"></script>
1949 1950
1950<script src="https://www.letsengage.com/js/talents.js"></script>
1950 1951
1951<script src="https://www.letsengage.com/js/screenfull.min.js"></script>
1951 1952
1952<script src="https://www.letsengage.com/js/easytimer.min.js"></script>
1952 1953
1953<script src="https://www.letsengage.com/js/main-loader.js"></script>
1953 1954
1954<script src="https://www.letsengage.com/js/searchPage.js"></script>
1954 1955
1955<script> 1956 1957 1958 1959 1960 1961 //document.body.innerHTML = "This is " + browser + " browser." + "<br><br>" + str.substring(str.lastIndexOf("edge/") + 4, str.lastIndexOf(""))+ ' '+str; 1962 1963 </script>
1963 1964
1964<script src="https://static.opentok.com/v2/js/opentok.min.js"></script>
vendor: 1 bytes, line 1964
1964
1965<script src="https://connect-js.stripe.com/v1.0/connect.js"></script>
1965 1966
1966<script> 1967 // if (localStorage.getItem('ai-dev-user')) { 1968 // $("#ai-dev-search").css('display', 'block'); 1969 // } else { 1970 // $("#ai-dev-search").css('display', 'block'); 1971 // var user1 = "csDevAi5030"; 1972 // var username = prompt('Username:', ''); 1973 // if (username === user1) { 1974 // var pass1 = "A9F3K7P2Q8W1Z6M4R0TY"; 1975 // var password = prompt('Password', ''); 1976 // if (password === pass1) { 1977 // // alert("correct!") 1978 // $("#ai-dev-search").css('display', 'block'); 1979 // localStorage.setItem('ai-dev-user', true); 1980 // } else { 1981 // alert('Please use correct password'); 1982 // window.location = "https://www.letsengage.com"; 1983 // } 1984 // } else { 1985 // alert('Please use correct username'); 1986 // window.location = "https://www.letsengage.com"; 1987 // } 1988 // } 1989 1990 let responseTimers = {}; // Timer tracking object 1991 let aiSessionId = '11104cc4-068a-4507-9c3b-fa4558b5801a'; // Store Page session to show in database 1992 let history = ""; 1993 1994 let isRequestInProgress = false; // flag 1995 $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 1996 1997 // Initial state check for search field 1998 // if ($("#search-field").val().trim() === '') { 1999 // isRequestInProgress = true; // nothing to search yet, lock it 2000 // $('.form-arrow').css('pointer-events', 'none').css('opacity', '0.5'); 2001 // } else { 2002 // isRequestInProgress = false; // text exists, allow clicking 2003 // $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 2004 // } 2005 2006 // Handle typing behavior 2007 $("#search-field").on("input", function() { 2008 const hasText = $(this).val().trim() !== ""; 2009 2010 // Only enable if there's text AND no request currently in progress 2011 if (hasText && !isRequestInProgress) { 2012 $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 2013 } else { 2014 $('.form-arrow').css('pointer-events', 'none').css('opacity', '0.5'); 2015 } 2016 }); 2017 2018 2019 $(document).ready(function() { 2020 $('#chat-loading').hide(); 2021 2022 // Handle button click 2023 $('.form-arrow').click(function(event, extraData) { 2024 if (isRequestInProgress) return; // block click during request 2025 2026 var input_text = $("#search-field").val().trim(); 2027 if (input_text === '') { 2028 $("#search-field").addClass('error'); 2029 return false; 2030 } 2031 2032 const messageId = "msg_" + Date.now(); 2033 $(".ai-chat-box-container").show(); 2034 $("#search-field").removeClass('error').removeAttr("style"); 2035 appendUserMessage(input_text, messageId); 2036 2037 // Safely get fromButton (defaults to false if not passed) 2038 const fromButton = extraData?.fromButton || false; 2039 2040 // Pass it to search 2041 search(input_text, null, messageId, fromButton); 2042 2043 scrollToLastQuery(); 2044 $("#search-field").val(''); 2045 }); 2046 2047 // Handle Enter key press 2048 $('#search-field').keypress(function(e) { 2049 if (e.which === 13) { 2050 e.preventDefault(); 2051 2052 if (isRequestInProgress) return; // block enter during request 2053 2054 var input_text = $(this).val().trim(); 2055 if (input_text === '') { 2056 $("#search-field").addClass('error'); 2057 return false; 2058 } 2059 2060 const messageId = "msg_" + Date.now(); 2061 $(".ai-chat-box-container").show(); 2062 $("#search-field").removeClass('error').removeAttr("style"); 2063 appendUserMessage(input_text, messageId); 2064 // startLiveTimer(messageId); 2065 search(input_text, null, messageId); 2066 scrollToLastQuery(); 2067 $("#search-field").val(''); 2068 } 2069 }); 2070 }); 2071 2072 $(document).on("click", ".send-to-ai", function(e) { 2073 e.preventDefault(); 2074 2075 // Get the question text from the data attribute 2076 const question = $(this).data("question"); 2077 2078 // Put it into the textarea 2079 $("#search-field").val(question); 2080 2081 // Trigger the click event on form-arrow to start the AJAX search 2082 // Pass a special flag indicating this came from the button 2083 $(".form-arrow").trigger("click", { 2084 fromButton: true 2085 }); 2086 }); 2087 2088 // Dummy Response Logic *****
2089const dummyChunks = [ 2090 "{\"type\": \"status\", \"data\": \"Processing query...\"}\n", 2091 "{\"type\": \"status\", \"data\": \"Finding speaker information...\"}\n", 2092 2093 "{\"type\": \"content\", \"data\": \"##Why We Recommend Eva S\"}\n", 2094 "{\"type\": \"content\", \"data\": \"aha:###\\n\\n- \"}\n", 2095 "{\"type\": \"content\", \"data\": \" ##Emmy\"}\n", 2096 "{\"type\": \"content\", \"data\": \" Award-Winning TV Experience:###\"}\n", 2097 "{\"type\": \"content\", \"data\": \" She's a seasoned TV personality from\"}\n", 2098 "{\"type\": \"content\", \"data\": \" Chicago's ABC7's Emmy Award-\"}\n", 2099 "{\"type\": \"content\", \"data\": \"winning show \\\"190 North,\\\" bringing\"}\n", 2100 "{\"type\": \"content\", \"data\": \" professional broadcast-level presentation skills\\n\\n- \"}\n", 2101 2102 "{\"type\": \"content\", \"data\": \" ##Fortune 100 Corporate Trust:\"}\n", 2103 "{\"type\": \"content\", \"data\": \"### Her client roster includes major companies like\"}\n", 2104 "{\"type\": \"content\", \"data\": \" Cardinal Health, Philips Healthcare,\"}\n", 2105 "{\"type\": \"content\", \"data\": \" and Thomson Reuters, demonstrating her ability\"}\n", 2106 "{\"type\": \"content\", \"data\": \" to handle high-stakes corporate events\"}\n", 2107 2108 "{\"type\": \"content\", \"data\": \"\\n\\n- ##Elite Interview Skills:### She\"}\n", 2109 "{\"type\": \"content\", \"data\": \"'s successfully interviewed high-profile personalities including\"}\n", 2110 "{\"type\": \"content\", \"data\": \" Magic Johnson, Venus Williams, Michael J\"}\n", 2111 "{\"type\": \"content\", \"data\": \". Fox, and political consultants James\"}\n", 2112 "{\"type\": \"content\", \"data\": \" Carville and Mary Mata\"}\n", 2113 "{\"type\": \"content\", \"data\": \"lin\\n\\n- ##Top-Tier\"}\n", 2114 2115 "{\"type\": \"content\", \"data\": \" Category Rankings:### She's recognized in\"}\n", 2116 "{\"type\": \"content\", \"data\": \" Women in Business (Top 52),\"}\n", 2117 "{\"type\": \"content\", \"data\": \" Business Speakers (Top 175),\"}\n", 2118 "{\"type\": \"content\", \"data\": \" and Moderators (Top 9\"}\n", 2119 "{\"type\": \"content\", \"data\": \"), showcasing her versatility and expertise\"}\n", 2120 2121 "{\"type\": \"content\", \"data\": \"\\n\\n- ##Cross-Cultural Communication Expert\"}\n", 2122 "{\"type\": \"content\", \"data\": \":### Her ability to relate to all\"}\n", 2123 "{\"type\": \"content\", \"data\": \" personalities and backgrounds enables her to effectively moderate\"}\n", 2124 "{\"type\": \"content\", \"data\": \" discussions among Fortune 100 CEOs\"}\n", 2125 "{\"type\": \"content\", \"data\": \" and diverse audiences alike\\n\\n- \"}\n", 2126 2127 "{\"type\": \"content\", \"data\": \" ##Dual\"}\n", 2128 "{\"type\": \"content\", \"data\": \" Professional\"}\n", 2129 "{\"type\": \"content\", \"data\": \" Backgroun\"}\n", 2130 "{\"type\": \"content\", \"data\": \"d:### Her\"}\n", 2131 "{\"type\": \"content\", \"data\": \" experience\"}\n", 2132 "{\"type\": \"content\", \"data\": \" as both a practicing\"}\n", 2133 "{\"type\": \"content\", \"data\": \" account\"}\n", 2134 "{\"type\": \"content\", \"data\": \"ant and corporate\"}\n", 2135 "{\"type\": \"content\", \"data\": \" attorney\"}\n", 2136 "{\"type\": \"content\", \"data\": \" brings\"}\n", 2137 "{\"type\": \"content\", \"data\": \" unique depth\"}\n", 2138 "{\"type\": \"content\", \"data\": \",\"}\n", 2139 "{\"type\": \"content\", \"data\": \" focus\"}\n", 2140 "{\"type\": \"content\", \"data\": \", and analytical\"}\n", 2141 "{\"type\": \"content\", \"data\": \" skills to her hosting\"}\n", 2142 "{\"type\": \"content\", \"data\": \" and mo\"}\n", 2143 "{\"type\": \"content\", \"data\": \"deration work\"}\n", 2144 2145 "{\"type\": \"content\", \"data\": \"\\n\\nEva\"}\n", 2146 "{\"type\": \"content\", \"data\": \"'s unique combination of legal and accounting backgroun\"}\n", 2147 "{\"type\": \"content\", \"data\": \"d, Emmy-level media experience, an\"}\n", 2148 "{\"type\": \"content\", \"data\": \"d proven corporate event expertise makes her exceptionally\"}\n", 2149 "{\"type\": \"content\", \"data\": \" qualified to create engaging, professional experiences for\"}\n", 2150 "{\"type\": \"content\", \"data\": \" any business audience.\\n\\nWould you like\"}\n", 2151 "{\"type\": \"content\", \"data\": \" to learn more about Eva Saha\"}\n", 2152 "{\"type\": \"content\", \"data\": \" or explore other speakers?\"}\n", 2153 2154 "{\"type\": \"done\"}\n", 2155 2156 "{\"type\": \"metadata\", \"data\": {\"matches\": {\"Eva Saha\": \"https://www.letsengage.com/talent/eva-saha\"}, \"parsed\": {\"is_why_recommend\": true, \"person_name\": \"Eva Saha\"}, \"talent_count\": 1, \"query_type\": \"why_recommend\"}}\n" 2157];
2158function createDummyStream(chunks, delay = 100) { 2159 let index = 0; 2160 2161 return new ReadableStream({ 2162 start(controller) { 2163 function push() { 2164 if (index < chunks.length) { 2165 controller.enqueue( 2166 new TextEncoder().encode(chunks[index]) 2167 ); 2168 index++; 2169 setTimeout(push, delay); // simulate streaming delay 2170 } else { 2171 controller.close(); 2172 } 2173 } 2174 push(); 2175 } 2176 }); 2177} 2178// ***** 2179 2180 2181 // Function to send request to backend 2182 function search(text, next_page = null, messageId = null, fromButton = false) { 2183 async function callStream(text) { 2184 const container = $(`<div class="chat-message bot"> 2185 <div class="response-header" style=""> 2186 <img src="https://www.letsengage.com/images/new-ai-fab-icon-new.png" style="height: 40px; width:40px;"> 2187 <strong>Engage AI</strong> 2188 </div> 2189 <br style=""> 2190 <div class="display-response" style=""> 2191 <div class="ai-response-text mt-4" data-section="TYPED_INTRO_MESSAGE"> 2192 <span class="header-top-message"> 2193 </span> 2194 </div> 2195 <div class="row talent_card_container"> 2196 2197 </div> 2198 <div class="ai-response-text mt-4" data-section="TYPED_ANSWER"> 2199 <span class="followupMessage"></span> 2200 </div> 2201 <div class="ai-response-text mt-4 error-message-container" data-section="TYPED_ANSWER" style="display:none;"> 2202 <span class="error-message"></span> 2203 </div> 2204 </div> 2205 </div>`); 2206 container.hide(); 2207 $('#chat-messages').append(container); 2208 2209 const baseURL = "https://www.letsengage.com"; 2210 const Ai_API = `https://ai.letsengage.com/api/askJsonStream`; 2211 try { 2212 2213 // console.log('history',history) 2214 2215 let requestSent = performance.now(); 2216 2217 const response = await fetch(Ai_API, { 2218 method: "POST", 2219 headers: { 2220 "Content-Type": "application/json" 2221 }, 2222 body: JSON.stringify({ 2223 query: text, 2224 history: history 2225 }) 2226 }); 2227 2228 // Dummy Response Logic ***** 2229 // const response = { 2230 // body: createDummyStream(dummyChunks, 120) 2231 // }; 2232 // ***** 2233 2234 if (!response.body) { 2235 console.error("Streaming not supported in this browser."); 2236 return; 2237 } 2238 const reader = response.body.getReader(); 2239 const decoder = new TextDecoder("utf-8"); 2240 2241 //For storing LOGS 2242 let logParsedContent = { 2243 userQuery : text, 2244 rawChunks : [], 2245 fullResponse : '', 2246 finalContent : '', 2247 responseTime : null 2248 }; 2249 2250 2251 let buffer = ""; 2252 let talents = []; 2253 let macthed_talent = null; 2254 let followupMessage = null; 2255 let talent_matches_start = null; 2256 let streaming = null; 2257 let boldKeyword = ""; 2258 2259 while (true) { 2260 const {value,done} = await reader.read(); 2261 if (done) break; 2262 if(!streaming){ // capture response time 2263 let streamStart = performance.now(); 2264 logParsedContent.responseTime = ((streamStart - requestSent)/1000).toFixed(2);; 2265 streaming = true; 2266 } 2267 buffer = decoder.decode(value, { 2268 stream: true 2269 }); 2270 2271 //store log 2272 logParsedContent.rawChunks.push(buffer); 2273 2274 // split on newlines to handle multiple JSON objects in one chunk 2275 const parts = buffer.split("\n"); 2276 // last element may be incomplete JSON 2277 parts.pop(); 2278 2279 //start adding content 2280 for (const part of parts) { 2281 if (!part.trim()) continue; 2282 2283 try { 2284 const json = JSON.parse(part); 2285 logParsedContent.fullResponse += json.data; 2286 2287 if (json.type === "status") { 2288 startTypingLoader(json.data); 2289 } 2290 if (json.type === "content") { 2291 2292 if (container.is(':hidden')) { 2293 container.show(); 2294 } 2295 logParsedContent.finalContent += json.data; 2296 stopTypingLoader(); 2297 2298 let jsonData = json.data; 2299 if (jsonData.includes('matched_talent')) { 2300 jsonData = jsonData.split("matched_talent:")[0]; 2301 macthed_talent = true; 2302 } 2303 if (jsonData.includes('followupmessage')) { 2304 followupMessage = true; 2305 continue; 2306 } 2307 2308 // Convert \n or \n\n into HTML <br> or <p> tags 2309 let formatted = jsonData 2310 .replace(/\n{2,}/g, "<br><br>") 2311 .replace(/\n/g, "<br>") 2312 .replace(/\*/g, ""); 2313 // .replace(/###/g, "</b>") // close bold 2314 // .replace(/##/g, "<b>"); // open bold 2315 2316 //add procurement link 2317 if (formatted.includes('@@')) { 2318 if (formatted.includes('@@@')) { 2319 formatted = formatted 2320 .replace(/@@@/g, "</a>") // Replace closing tag FIRST 2321 .replace(/@@/g, "<a href='/talent-procurement' target=`_blank`>"); // Then opening tag 2322 2323 } 2324 } 2325 2326 //add pricing link 2327 if (formatted.includes('$$$') && formatted.includes('$$')) { 2328 formatted = formatted 2329 .replace(/\$\$\$/g, "</a>") // Replace closing tag FIRST 2330 .replace(/\$\$/g, "<a href='/receive-recommended-list' target=`_blank`>"); 2331 } 2332 2333 //make text bold 2334 if(boldKeyword !=""){ 2335 if(formatted.includes('###')){ 2336 boldKeyword += formatted.replace(/###/g, "</b>"); 2337 formatted = boldKeyword; 2338 boldKeyword = ""; 2339 }else{ 2340 boldKeyword += formatted; 2341 continue; 2342 } 2343 } 2344 // if(formatted.includes('##')){ 2345 // if(formatted.includes('###')){ 2346 // formatted = formatted.replace(/##/g, "<b>").replace(/###/g, "</b>"); 2347 // } 2348 // boldKeyword += `<b>${formatted.split("##")[1]}`; 2349 // formatted = formatted.split("##")[0]; 2350 // } 2351 if (formatted.includes('##')) { 2352 // protect against single '#' or broken stream chunk 2353 if (!formatted.includes('###') && formatted.includes('#') && !formatted.includes('##')) { 2354 // ignore malformed bold marker 2355 formatted = formatted.replace('#', ''); 2356 } else { 2357 2358 if (formatted.includes('###')) { 2359 formatted = formatted.replace(/##/g, "<b>").replace(/###/g, "</b>"); 2360 } else { 2361 // start buffering bold safely 2362 const split = formatted.split("##"); 2363 formatted = split[0]; 2364 boldKeyword += "<b>" + split[1]; 2365 } 2366 2367 } 2368 } 2369 2370 if(!talent_matches_start && !followupMessage){ 2371 2372 // Append into container (header message) with preserved formatting 2373 container.find('.header-top-message').append(formatted); 2374 2375 if (macthed_talent) { 2376 talent_matches_start = true; 2377 } 2378 } 2379 if(macthed_talent && talent_matches_start && !followupMessage){ 2380 if(jsonData.includes('talent_id')){ 2381 // const match = jsonData.match(/\*\*talent_id:\s*(\d+)\*\*/); 2382 const match = jsonData.match(/\*\*\s*talent_id\s*:\s*(\d+)\s*\*\*/i); 2383 if (match) { 2384 const talentId = match[1]; 2385 2386 if (!talents.includes(Number(talentId))) { 2387 talents.push(Number(talentId)); 2388 const fullUrl = `${baseURL}
2388/talent-detail/${talentId}`; 2389 try{ 2390 let res = await fetch(fullUrl); 2391 let talentRes = await res.json(); 2392 // .then(res => res.json()) 2393 // .then(talentRes => { 2394 if(talentRes.data){ 2395 2396 const item = talentRes.data; 2397 const talentPhoto = item.photo ? `${baseURL}/storage/talents/${item.photo}` : `${baseURL}/images/dummy.png` 2398 const imgHtml = ` 2399 <img src="${talentPhoto}" 2400 onerror="this.onerror=null;this.src='https://www.letsengage.com/images/dummy-profile-pic.jpg';" 2401 alt=""> 2402 `; 2403 const fullName = `${item.first_name} ${item.last_name}`; 2404 const formattedName = fullName.charAt(0).toUpperCase() + fullName.slice(1); 2405 const shortDescription = (item.short_descripiton || "").replace(/<[^>]*>/g, "").slice(0, 115) + "..."; 2406 const locationHtml = shortDescription ? `<p>${shortDescription}</p>` : ""; 2407 2408 const strLimit = (t, l = 230) => { 2409 if (!t) return ""; 2410 const div = document.createElement("div"); 2411 div.innerHTML = t; // decode & strip tags automatically 2412 let txt = div.textContent || ""; 2413 return txt.length > l ? txt.slice(0, l) + "..." : txt; 2414 }; 2415 let description = strLimit(item.description, 230); 2416 const shortBio = description ? description : ""; 2417 2418 let talentFullCard = `<div class="col-md-3"> 2419 <div class="talent-img-cont-response"> 2420 <div class="talent-img-cont"> 2421 ${imgHtml} 2422 <div class="talent-details"> 2423 <span>${formattedName}</span> 2424 ${locationHtml} 2425 </div> 2426 </div> 2427 </div> 2428 2429 <div class="finding-setup"> 2430 <p>${shortBio}</p> 2431 <a class="speaking-topic-link send-to-ai" 2432 data-question="Why Engage AI Recommends ${formattedName}"> 2433 <div id="bold-speaking-topic-ai" class="speaking-topic-description"> 2434 <p title="${item.first_name}">Why Engage AI Recommends ${formattedName} </p> 2435 </div> 2436 </a> 2437 <a class="talent-box" href="/talent/${item.profile_url}" 2438 target="_blank"> 2439 <div class="finding-box"> 2440 <p>See videos, topics, and availability</p> 2441 </div> 2442 </a> 2443 </div> 2444 </div>`; 2445 container.find('.talent_card_container').append(talentFullCard); 2446 2447 } 2448 }catch(err){console.error('err talent',err)} 2449 } 2450 } 2451 } 2452 2453 } 2454 if(followupMessage){ 2455 container.find('.followupMessage').append(formatted) 2456 2457 } 2458 } 2459 if(json.type == "error"){ 2460 stopTypingLoader(); 2461 if (container.is(':hidden')) { 2462 container.show(); 2463 } 2464 // If Server Error Display This Message in Response 2465 const errorMessage = `We're sorry but Engage AI is currently experiencing an issue. Please click here to utilize our traditional search features or contact us for more immediate booking assistance.`; 2466 container.find('.error-message-container').css('display','block'); 2467 container.find('.error-message').append(errorMessage) 2468 2469 } 2470 if(json.type == "metadata"){ 2471 2472 // const talentDetails = JSON.parse(part); 2473 // for (let [key, value] of Object.entries(talentDetails.data.matches)) { 2474 // const url = value.split("talent/")[1]; 2475 // const fullUrl = `${baseURL}
2475/talent-detail/${url}`; 2476 // fetch(fullUrl) 2477 // .then(res => res.json()) 2478 // .then(talentRes => { 2479 // if(talentRes.data){ 2480 // const item = talentRes.data; 2481 // // console.log('item.photo',item.photo) 2482 // const talentPhoto = item.photo ? `${baseURL}/storage/talents/${item.photo}` : `${baseURL}/images/dummy.png'` 2483 // const imgHtml = ` 2484 // <img src="${talentPhoto}" 2485 // onerror="this.onerror=null;this.src='https://www.letsengage.com/images/dummy-profile-pic.jpg';" 2486 // alt=""> 2487 // `; 2488 // const fullName = `${item.first_name} ${item.last_name}`; 2489 // const formattedName = fullName.charAt(0).toUpperCase() + fullName.slice(1); 2490 // const locationHtml = item.location ? `<p>${item.location}</p>` : ""; 2491 // const shortBio = item.short_bio ? `<p>${item.short_bio}</p>` : ""; 2492 2493 // let talentFullCard = `<div class="col-md-3"> 2494 // <div class="talent-img-cont-response"> 2495 // <div class="talent-img-cont"> 2496 // ${imgHtml} 2497 // <div class="talent-details"> 2498 // <span>${formattedName}</span> 2499 // ${locationHtml} 2500 // </div> 2501 // </div> 2502 // </div> 2503 2504 // <div class="finding-setup"> 2505 // ${shortBio} 2506 // <a class="speaking-topic-link send-to-ai" 2507 // data-question="Why Engage AI Recommends ${formattedName}"> 2508 // <div id="bold-speaking-topic-ai" class="speaking-topic-description"> 2509 2510 // <p title="${item.first_name}">Why Engage AI Recommends ${formattedName} </p> 2511 // </div> 2512 // </a> 2513 // <a class="talent-box" href="/${item.profile_url}" 2514 // target="_blank"> 2515 // <div class="finding-box"> 2516 // <p>See videos, topics, and availability</p> 2517 // </div> 2518 // </a> 2519 // </div> 2520 // </div>`; 2521 // container.find('.talent_card_container').append(talentFullCard); 2522 2523 // } 2524 // }) 2525 // .catch(err => console.error('err talent',err)); 2526 2527 // } 2528 } 2529 2530 } catch (err) { 2531 // incomplete JSON â wait for next chunk 2532 console.warn("Incomplete JSON:", part); 2533 } 2534 } 2535 } 2536 2537 let token = $("input[name=_token]").val(); 2538 2539 // console.log('logParsedContent',logParsedContent.fullResponse); 2540 if(history.length == 0){ 2541 history += `User:${logParsedContent.userQuery}`; 2542 }else{ 2543 history += `\nUser:${logParsedContent.userQuery}`; 2544 } 2545 history += `\nAnswer:${logParsedContent.finalContent}`; 2546 // Send to backend for logging 2547 fetch(`${baseURL}
2547/logs/store-ai-log`, { 2548 method: "POST", 2549 headers: { "Content-Type": "application/json",'X-CSRF-TOKEN': token}, 2550 body: JSON.stringify(logParsedContent) 2551 }).catch(err => console.error("Log send error:", err)); 2552 2553 // Extract message after "followupmessage:" 2554 // const parts = finalContent.split("**followupmessage:**"); 2555 // const messageAfterFollowUp = parts[1]?.trim() || ""; 2556 // console.log(messageAfterFollowUp) 2557 // container.find('.followupMessage').append(messageAfterFollowUp) 2558 }catch (error) { 2559 console.error("Fetch error:", error); 2560 stopTypingLoader(); 2561 2562 if (messageId && responseTimers[messageId]) { 2563 clearInterval(responseTimers[messageId].interval); 2564 $(`#${messageId} .live-timer`).text(`â Failed to get response`); 2565 delete responseTimers[messageId]; 2566 } 2567 2568 console.error("AJAX Error:", error); 2569 swal({ 2570 icon: 'error', 2571 text: 'Oh no! Something went wrong. Please try again later.', 2572 confirmButtonText: 'Okay' 2573 }); 2574 2575 //Get Retry message ID to only display retry message on recent one 2576 // console.log('1',messageId); 2577 2578 2579 // If Server Error Display This Message in Response 2580 const errorMessage = ` 2581 <div class="response-header"> 2582 <img src="https://www.letsengage.com/images/new-ai-fab-icon-new.png" style="height: 40px; width:40px;"> 2583 <strong>Engage AI</strong> 2584 </div> 2585 <br> 2586 <div class="ai-response-text mt-4" data-section="TYPED_INTRO_MESSAGE"> 2587 <span></span> 2588 </div> 2589 <div class="display-response"> 2590 <div class="ai-response-text mt-4" data-section="TYPED_ANSWER"> 2591 <span>We're sorry but Engage AI is currently experiencing an issue. Please click here to utilize our traditional search features or contact us for more immediate booking assistance.</span> 2592 </div> 2593 </div> 2594 `; 2595 2596 appendBotMessage(errorMessage); 2597 2598 2599 if (messageId) { 2600 $(`#${messageId} .msg-icon`).show(); 2601 } 2602 } 2603 2604 } 2605 2606 $.ajax({ 2607 url: "https://www.letsengage.com/check/request-counts", 2608 type: "GET", 2609 headers: { 2610 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 2611 }, 2612 success: function(data) { 2613 if(data.message == "continue"){ 2614 isRequestInProgress = true; 2615 callStream(text).then((res)=>{ 2616 isRequestInProgress = false; 2617 $('.form-arrow').css('pointer-events', 'auto'); 2618 }).catch(()=>{ 2619 console.log('process complete with error') 2620 isRequestInProgress = false; 2621 $('.form-arrow').css('pointer-events', 'auto'); 2622 }) 2623 } 2624 if (data.error) { 2625 stopTypingLoader(); 2626 // Re-enable button 2627 $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 2628 isRequestInProgress = false; 2629 2630 // Display error message in the same style as API errors 2631 const errorMessage = ` 2632 <div class="response-header"> 2633 <img src="https://www.letsengage.com/images/new-ai-fab-icon-new.png" style="height: 40px; width:40px;"> 2634 <strong>Engage AI</strong> 2635 </div> 2636 <br> 2637 <div class="ai-response-text mt-4" data-section="TYPED_INTRO_MESSAGE">
2638 <span></span> 2639 </div> 2640 <div class="display-response"> 2641 <div class="ai-response-text mt-4" data-section="TYPED_ANSWER"> 2642 <span>${data.message}</span> 2643 </div> 2644 </div> 2645 `; 2646 2647 appendBotMessage(errorMessage); 2648 return; // stop further processing 2649 } 2650 },error: function(xhr, status, error) { 2651 console.log('logs count error',error); 2652 swal({ 2653 icon: 'error', 2654 text: 'Oh no! Something went wrong. Please try again later.', 2655 confirmButtonText: 'Okay' 2656 }); 2657 } 2658 }); 2659 2660 return; 2661 $.ajax({ 2662 url: "https://www.letsengage.com/consumer/ai-process", 2663 type: "GET", 2664 data: { 2665 input_text: text, 2666 next_page: next_page, 2667 session_id: aiSessionId 2668 }, 2669 headers: { 2670 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 2671 }, 2672 beforeSend: function() { 2673 let typingText; 2674 2675 // Check if the text looks like a talent search 2676 if (fromButton) { 2677 typingText = "Summarizing my logic for you now..."; 2678 } else if (text.toLowerCase().includes("speaker") || text.toLowerCase().includes( 2679 "talent")) { 2680 typingText = "Searching our platform of 5,000+ of the best speakers..."; 2681 } else { 2682 typingText = 2683 "Working on generating a response to your question. I'll have a response shortly."; 2684 } 2685 2686 startTypingLoader(typingText); 2687 2688 }, 2689 success: function(data) { 2690 stopTypingLoader(); 2691 2692 // Check for error (API or 10-query limit) 2693 if (data.error) { 2694 // Re-enable button 2695 $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 2696 isRequestInProgress = false; 2697 2698 // Display error message in the same style as API errors 2699 const errorMessage = ` 2700 <div class="response-header"> 2701 <img src="https://www.letsengage.com/images/new-ai-fab-icon-new.png" style="height: 40px; width:40px;"> 2702 <strong>Engage AI</strong> 2703 </div> 2704 <br> 2705 <div class="ai-response-text mt-4" data-section="TYPED_INTRO_MESSAGE"> 2706 <span></span> 2707 </div> 2708 <div class="display-response"> 2709 <div class="ai-response-text mt-4" data-section="TYPED_ANSWER"> 2710 <span>${data.message}</span> 2711 </div> 2712 </div> 2713 `; 2714 2715 appendBotMessage(errorMessage); 2716 return; // stop further processing 2717 } 2718 2719 if (data.html) { 2720 console.log(data.html); 2721 appendBotMessage(data.html); 2722 scrollToLastQuery(); 2723 } 2724 2725 if (data.response === "No records found for your request.") { 2726 $(".main-wrapper-no-event").show(); 2727 $(".talent-container").empty(); 2728 $(".line-btns-talent").hide(); 2729 $(".summrize").empty(); 2730 return; 2731 } 2732 2733 if (next_page === null) { 2734 $(".talent-container").empty(); 2735 } 2736 2737 $(".main-wrapper-no-event").hide(); 2738 2739 if (data.pagination && data.pagination.total_records > 32 && data.pagination.next_page !== 2740 null) { 2741 $(".line-btns-talent").show() 2742 .find(".load-more-talent-searchData") 2743 .attr('current_page', data.pagination.current_page) 2744 .attr('total_records', data.pagination.total_records) 2745 .attr('total_pages', data.pagination.total_pages) 2746 .attr('next_page', data.pagination.next_page); 2747 } else { 2748 $(".line-btns-talent").hide(); 2749 } 2750 }, 2751 error: function(xhr, status, error) { 2752 stopTypingLoader(); 2753 2754 if (messageId && responseTimers[messageId]) { 2755 clearInterval(responseTimers[messageId].interval); 2756 $(`#${messageId} .live-timer`).text(`â Failed to get response`); 2757 delete responseTimers[messageId]; 2758 } 2759 2760 console.error("AJAX Error:", error); 2761 swal({ 2762 icon: 'error', 2763 text: 'Oh no! Something went wrong. Please try again later.', 2764 confirmButtonText: 'Okay' 2765 }); 2766 2767 //Get Retry message ID to only display retry message on re
2767cent one 2768 // console.log('1',messageId); 2769 2770 2771 // If Server Error Display This Message in Response 2772 const errorMessage = ` 2773 <div class="response-header"> 2774 <img src="https://www.letsengage.com/images/new-ai-fab-icon-new.png" style="height: 40px; width:40px;"> 2775 <strong>Engage AI</strong> 2776 </div> 2777 <br> 2778 <div class="ai-response-text mt-4" data-section="TYPED_INTRO_MESSAGE"> 2779 <span></span> 2780 </div> 2781 <div class="display-response"> 2782 <div class="ai-response-text mt-4" data-section="TYPED_ANSWER"> 2783 <span>We're sorry but Engage AI is currently experiencing an issue. Please click here to utilize our traditional search features or contact us for more immediate booking assistance.</span> 2784 </div> 2785 </div> 2786 `; 2787 2788 appendBotMessage(errorMessage); 2789 2790 2791 if (messageId) { 2792 $(`#${messageId} .msg-icon`).show(); 2793 } 2794 2795 }, 2796 complete: function() { 2797 isRequestInProgress = false; 2798 // Re-enable button after request is done (success or error) 2799 // Only re-enable if there's text in the input field 2800 if ($("#search-field").val().trim() !== "") { 2801 $('.form-arrow').css('pointer-events', 'auto').css('opacity', '1'); 2802 } else { 2803 $('.form-arrow').css('pointer-events', 'none').css('opacity', '0.5'); 2804 } 2805 } 2806 }); 2807 } 2808 2809 2810 // Append user's message with timer 2811 function appendUserMessage(input_text, messageId) { 2812 const userMessageHTML = `<br> 2813 <div class="chat-user" id="${messageId}"> 2814 <div class="msg right-msg"> 2815 2816 2817 <!-- Message bubble --> 2818 <div class="msg-bubble"> 2819 <div class="msg-text"> 2820 <span>${input_text}</span> 2821 <svg width="25" height="25" viewBox="0 0 16 16" fill="none"> 2822 <path d="M0 16V0.759399L15.2406 15.7594V16H0Z" fill="#00B26B"/> 2823 </svg> 2824 </div> 2825 2826 <!-- Retry icon --> 2827 <div class="msg-icon" title="Retry"> 2828 <svg width="25" height="25" viewBox="0 0 24 24" fill="none"> 2829 <path d="M12 4V1L8 5L12 9V6C15.31 6 18 8.69 18 12C18 15.31 15.31 18 12 18C8.69 18 6 15.31 6 12H4C4 16.42 7.58 20 12 20C16.42 20 20 16.42 20 12C20 7.58 16.42 4 12 4Z" 2830 fill="grey"/> 2831 </svg> 2832 </div> 2833 </div> 2834 2835 <!-- Action icons container --> 2836 <div class="msg-actions"> 2837 <div class="edit-btn" title="Edit message"> 2838 <svg width="18" height="18" viewBox="0 0 24 24" fill="none"> 2839 <path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 2840 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 2841 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z" 2842 fill="grey"/> 2843 </svg> 2844 </div> 2845 2846 <div class="copy-btn" title="Copy"> 2847 <svg width="18" height="18" viewBox="0 0 24 24" fill="none"> 2848 <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" 2849 fill="grey"/> 2850 </svg> 2851 </div> 2852 </div> 2853 2854 </div> 2855 </div> 2856 `; 2857 $('#chat-messages').append(userMessageHTML); 2858 } 2859 2860 2861 // Send Error Message Again to AJAX search function 2862 $(document).on('click', '.msg-icon', function() { 2863 var chatBubble = $(this).closest('.chat-user'); 2864 var retry_input_text = chatBubble.find('.msg-text span').text().trim(); 2865 var retry_messageId = chatBubble.attr('id'); 2866 2867 // Remove all messages that come after this edited message 2868 $('#' + retry_messageId).nextAll('.chat-user, .chat-message').remove(); 2869 2870 search(retry_input_text, null, retry_messageId); 2871 scrollToLastQuery(); 2872 $('.msg-icon').css('display', 'none'); 2873 }); 2874 2875 // Copy Text form copy button 2876 $(document).on('click', '.copy-btn', function() { 2877 var chatBubble = $(this).closest('.chat-user'); 2878 var copy_text = chatBubble.find('.msg-text span').text().trim(); 2879 var copyBtn = $(this); 2880 //Copy to Clip Board 2881 navigator.clipboard.writeText(copy_text).then(() => { 2882 // console.log('Copy', copy_text); 2883 // Store the Orignal Icon 2884 var orignalIcon = copyBtn.html(); 2885 2886 //Replace with Tick Button 2887 copyBtn.html(` 2888 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" 2889 xmlns="http://www.w3.org/2000/svg"> 2890 <path d="M20 6L9 17L4 12" stroke="green" stroke-width="2" 2891 stroke-linecap="round" stroke-linejoin="round"/> 2892 </svg> 2893 `); 2894
2895 //After 5 seconds 2896 setTimeout(() => { 2897 copyBtn.html(orignalIcon); 2898 }, 5000); 2899 }) 2900 }); 2901 2902 // Edit Text and Resend Request to API 2903 $(document).on('click', '.edit-btn', function() { 2904 var chatBubble = $(this).closest('.chat-user'); 2905 var copy_text = chatBubble.find('.msg-text span').text().trim(); 2906 2907 // Hide the original message bubble 2908 chatBubble.hide(); 2909 2910 // Create an editable form (like your input box) 2911 var editForm = ` 2912 <div class="edit-box" data-id="${chatBubble.attr('id')}"> 2913 <textarea id="edit_field" class="form-control edit-textarea" style="margin-top: 10px;">${copy_text}</textarea> 2914 2915 <!-- Close (X) button --> 2916 <div class="form-close close-edit" title="Cancel" 2917 style="cursor: pointer;"> 2918 <svg width="23" height="23" viewBox="0 0 24 24" fill="none" 2919 xmlns="http://www.w3.org/2000/svg"> 2920 <path d="M18.3 5.71a1 1 0 0 0-1.41 0L12 10.59 2921 7.11 5.7A1 1 0 0 0 5.7 7.11L10.59 12 2922 5.7 16.89a1 1 0 1 0 1.41 1.41L12 13.41 2923 16.89 18.3a1 1 0 0 0 1.41-1.41L13.41 12 2924 18.3 7.11c.39-.39.39-1.02 0-1.41z" 2925 fill="white"/> 2926 </svg> 2927 </div> 2928 2929 <!-- Send (arrow) button --> 2930 <div class="form-arrow send-edit" style="cursor: pointer;"> 2931 <svg width="16" height="17" viewBox="0 0 16 17" fill="none" 2932 xmlns="http://www.w3.org/2000/svg"> 2933 <path d="M8.65681 1.03804C8.26629 0.647517 7.63313 0.647517 7.2426 1.03804L0.87864 7.402C0.488115 7.79253 0.488115 8.42569 0.87864 8.81622C1.26916 9.20674 1.90233 9.20674 2.29285 8.81622L7.94971 3.15936L13.6066 8.81622C13.9971 9.20674 14.6303 9.20674 15.0208 8.81622C15.4113 8.42569 15.4113 7.79253 15.0208 7.402L8.65681 1.03804ZM8.94971 16.2549L8.94971 1.74515L6.94971 1.74515L6.94971 16.2549L8.94971 16.2549Z" 2934 fill="white"/> 2935 </svg> 2936 </div> 2937 </div> 2938 `; 2939 2940 // Insert edit form right after hidden chatBubble 2941 chatBubble.after(editForm); 2942 }); 2943 2944 // Cancel editing (X button) 2945 $(document).on('click', '.form-close', function() { 2946 // get the edit box wrapper 2947 var editBox = $(this).closest('.edit-box'); 2948 var chatId = editBox.data('id'); 2949 // console.log(chatId); 2950 // Remove the edit box 2951 editBox.remove(); 2952 2953 // Show the original hidden chat bubble back 2954 $("#" + chatId).show(); 2955 }); 2956 2957 //Send Edited Message Again to API 2958 $(document).on('click', '.send-edit', function() { 2959 var editBox = $(this).closest('.edit-box'); 2960 var edit_message = $("#edit_field").val().trim(); 2961 var edit_messageId = editBox.data('id'); 2962 2963 // console.log(edit_message,edit_messageId); 2964 if (edit_message !== "") { 2965 var $chatBubble = $("#" + edit_messageId); 2966 2967 // Update the original chat bubble text 2968 $("#" + edit_messageId).find('.msg-text span').text(edit_message); 2969 2970 // Show the updated chat bubble 2971 $("#" + edit_messageId).show(); 2972 2973 // Remove the edit box 2974 editBox.remove(); 2975 2976 // Remove all messages that come after this edited message 2977 $chatBubble.nextAll('.chat-user, .chat-message').remove(); 2978 2979 // (Optional) Send edited text to API 2980 search(edit_message, null, edit_messageId); 2981 2982 scrollToLastQuery(); 2983 } 2984 }); 2985 //Also work on Key press Enter Edit Button 2986 $(document).on('keydown', '#edit_field', function(e) { 2987 if (e.key === 'Enter' && !e.shiftKey) { // prevent only Enter (Shift+Enter still makes new line) 2988 e.preventDefault(); // stop newline 2989 var editBox = $(this).closest('.edit-box'); 2990 var edit_message = $("#edit_field").val().trim(); 2991 var edit_messageId = editBox.data('id'); 2992 2993 // console.log(edit_message,edit_messageId); 2994 if (edit_message !== "") { 2995 var $chatBubble = $("#" + edit_messageId); 2996 2997 // Update the original chat bubble text 2998 $("#" + edit_messageId).find('.msg-text span').text(edit_message); 2999 3000 // Show the updated chat bubble 3001 $("#" + edit_messageId).show(); 3002 3003 // Remove the edit box 3004 editBox.remove(); 3005 3006 // Remove all messages that come after this edited message 3007 $chatBubble.nextAll('.chat-user, .chat-message').remove(); 3008 3009 // (Optional) Send edited text to API 3010 search(edit_message, null, edit_messageId); 3011 3012 scrollToLastQuery(); 3013 } 3014 } 3015 }); 3016 3017 // Start live timer 3018 // function startLiveTimer(messageId) { 3019 // const start = performance.now(); 3020 3021 // const interval = setInterval(() => { 3022 // const now = performance.now();
3023 // const elapsed = ((now - start) / 1000).toFixed(1); 3024 // $(`#${messageId} .live-timer`).text(`â±ï¸ Response time: ${elapsed}s`); 3025 // }, 100); 3026 3027 // responseTimers[messageId] = { 3028 // startTime: start, 3029 // interval: interval 3030 // }; 3031 // } 3032 3033 // Append bot's message 3034 function appendBotMessage(html) { 3035 const container = $('<div class="chat-message bot"></div>'); 3036 const wrapper = $('<div>').html(html); 3037 3038 // Find the typed sections 3039 const intro = wrapper.find('[data-section="TYPED_INTRO_MESSAGE"]'); 3040 const answer = wrapper.find('[data-section="TYPED_ANSWER"]'); 3041 3042 const typedSections = [intro, answer].filter(e => e.length > 0); 3043 3044 typedSections.forEach(section => { 3045 const span = section.find('span'); 3046 section.data('typedHtml', span.html()); 3047 span.text(''); 3048 }); 3049 3050 container.append(wrapper.children()); 3051 $('#chat-messages').append(container); 3052 3053 const elements = container.children().not( 3054 '[data-section="TYPED_INTRO_MESSAGE"], [data-section="TYPED_ANSWER"]'); 3055 3056 // Start typing immediately 3057 typeTypedSections(0); 3058 3059 function showNext(i) { 3060 if (i < elements.length) { 3061 const el = $(elements[i]).hide(); 3062 el.fadeIn(1200); // Show without waiting for typing 3063 setTimeout(() => showNext(i + 1), 10); 3064 } else { 3065 scrollToLastQuery(); 3066 } 3067 } 3068 3069 function typeText($span, text, delay = 20, done) { // Faster typing speed 3070 let i = 0; 3071 3072 function nextChar() { 3073 if (i <= text.length) { 3074 $span.text(text.slice(0, i)); 3075 i++; 3076 setTimeout(nextChar, delay); 3077 } else if (done) { 3078 done(); 3079 } 3080 } 3081 nextChar(); 3082 3083 } 3084 3085 function typeTypedSections(index) { 3086 if (index >= typedSections.length) return; 3087 3088 const section = typedSections[index]; 3089 const span = section.find('span'); 3090 const html = section.data('typedHtml'); 3091 3092 typeHtml(span, html, 5, () => { 3093 // setTimeout(() => typeTypedSections(index + 1), 200); // optional pause between sections 3094 // Reveal "Submit Form" only when answer typing is done 3095 if (section.data("section") === "TYPED_ANSWER") { 3096 section.find(".form-link").fadeIn(600); 3097 } 3098 setTimeout(() => typeTypedSections(index + 1), 200); 3099 }); 3100 } 3101 3102 showNext(0); 3103 } 3104 3105 function typeHtml($el, html, speed = 10, done) { 3106 const temp = $('<div>').html(html); 3107 const nodes = temp.contents(); 3108 let i = 0; 3109 3110 function processNext() { 3111 if (i >= nodes.length) { 3112 if (done) done(); 3113 return; 3114 } 3115 3116 const node = nodes[i]; 3117 i++; 3118 3119 if (node.nodeType === 3) { // Text node 3120 const text = node.nodeValue; 3121 let j = 0; 3122 3123 function typeChar() { 3124 if (j <= text.length) { 3125 $el.append(document.createTextNode(text.charAt(j))); 3126 j++; 3127 setTimeout(typeChar, speed); 3128 } else { 3129 processNext(); 3130 } 3131 } 3132 3133 typeChar(); 3134 3135 } else if (node.nodeType === 1) { // Element node 3136 const newEl = $(node).clone().empty(); 3137 $el.append(newEl); 3138 typeHtml(newEl, $(node).html(), speed, processNext); 3139 } else { 3140 processNext(); 3141 } 3142 } 3143 3144 processNext(); 3145 } 3146 3147 3148 3149 // Scroll to bottom 3150 function scrollToLastQuery() { 3151 const target = document.querySelector(".my-target-div"); 3152 3153 if (target) { 3154 const rect = target.getBoundingClientRect(); 3155 const offsetTop = rect.top + window.pageYOffset; 3156 3157 // Calculate 75% viewport offset 3158 const targetScrollY = offsetTop - (window.innerHeight * 0.85); 3159 3160 window.scrollTo({ 3161 top: targetScrollY, 3162 behavior: 'smooth' 3163 }); 3164 } else { 3165 console.warn("â ï¸ .my-target-div not found!"); 3166 } 3167 } 3168 3169 3170 3171 3172 // Typing animation messages 3173 let typingTimer; 3174 let charac = 0; 3175 3176 function startTypingLoader(message) { 3177 // Stop previous typing 3178 if (typingTimer) { 3179 clearTimeout(typingTimer); 3180 typingTimer = null; 3181 } 3182 3183 $('#typing-message').html(''); 3184 $('#chat-loading').show(); 3185 let charac = 0; 3186 3187 function typeChar() { 3188 if (charac < message.length) { 3189 $('#typing-message').append(message.charAt(charac)); 3190 charac++; 3191 typingTimer = setTimeout(typeChar, 70); // adjust speed 3192 } 3193 3194 } 3195 3196 typeChar(); 3197 } 3198 3199 function stopTypingLoader() { 3200 clearTimeout(typingTimer); // Stop any ongoing animation 3201 $('#chat-loading').hide(); 3202 $('#typing-message').empty(); 3203 charac = 0; // Reset for next time 3204 } 3205 3206 3207 const targetDiv = document.querySelector('.my-target-div'); 3208 const containerDiv = document.querySelector('.ai-chat-box-container'); // visibility gate 3209 3210 function isContainerVisible() { 3211 if (!containerDiv) return false;
3212 const style = window.getComputedStyle(containerDiv); 3213 return style.display !== 'none'; 3214 } 3215 3216 // Function to check if targetDiv is in viewport 3217 function checkIfInView() { 3218 if (!isContainerVisible()) return; 3219 3220 if (!targetDiv) { 3221 console.warn('â ï¸ Target div not found!'); 3222 return; 3223 } 3224 3225 // If near the bottom, remove fixed class and exit early 3226 if (isNearBottom()) { 3227 document.body.classList.remove('fixed-textarea'); 3228 return; 3229 } 3230 3231 const rect = targetDiv.getBoundingClientRect(); 3232 const inViewport = rect.top < window.innerHeight && rect.bottom > 0; 3233 3234 const hasClass = document.body.classList.contains('fixed-textarea'); 3235 3236 if (inViewport && hasClass) { 3237 document.body.classList.remove('fixed-textarea'); 3238 } else if (!inViewport && !hasClass) { 3239 document.body.classList.add('fixed-textarea'); 3240 } 3241 } 3242 3243 function isNearBottom() { 3244 const scrollTop = window.scrollY || document.documentElement.scrollTop; 3245 const viewportHeight = window.innerHeight; 3246 const fullHeight = document.documentElement.scrollHeight; 3247 3248 const scrollRatio = (scrollTop + viewportHeight) / fullHeight; 3249 3250 return scrollRatio >= 0.75; // within bottom 15% of the page 3251 } 3252 // MutationObserver â runs on DOM changes (append, remove, etc.) 3253 const observer = new MutationObserver(() => { 3254 if (!isContainerVisible()) return; // Skip if container is hidden 3255 3256 const newHeight = document.documentElement.scrollHeight; 3257 // console.log('Page scroll height changed:', newHeight + 'px'); 3258 3259 checkIfInView(); 3260 }); 3261 3262 observer.observe(document.body, { 3263 childList: true, 3264 subtree: true, 3265 attributes: false, 3266 characterData: false, 3267 }); 3268 3269 // Also check on scroll, load, and resize â if container is visible 3270 window.addEventListener('scroll', checkIfInView); 3271 window.addEventListener('DOMContentLoaded', checkIfInView); 3272 window.addEventListener('resize', checkIfInView); 3273 </script>
3273 3274 3275 3276 3277 <style> 3278 $(".fancy-img").fancybox({ 3279 'hideOnContentClick': true 3280 }); 3281 </style> 3282 <!--Start of Tawk.to Script--> 3283
3284<script type="text/javascript"> 3285var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date(); 3286(function(){ 3287var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0]; 3288s1.async=true; 3289s1.src='https://embed.tawk.to/5e4ab807a89cda5a18866fbe/default'; 3290s1.charset='UTF-8'; 3291s1.setAttribute('crossorigin','*'); 3292s0.parentNode.insertBefore(s1,s0); 3293})(); 3294 3295new WOW().init(); 3296</script>
3296 3297 3298
3299<script> 3300$(".read-more-free-event").click(function(){ 3301 $(".alter-entry-section").toggleClass("show-ifi"); 3302}); 3303</script>
3303 3304<!--End of Tawk.to Script--> 3305
3306<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
3306 3307
3307<script type="text/javascript" src="https://www.letsengage.com/js/jquery.signature.js"></script>
3307 3308
3308<script type="text/javascript" src="https://www.letsengage.com/js/jquery.signature.min.js"></script>
3308 3309
3309<script type="text/javascript"> 3310 $(document).ready(function(){ 3311 var sign = $('#talent_sign_block').signature({syncField: '#signature64', syncFormat: 'PNG'}); 3312 $('#talent_sign_clear').click(function(e) { 3313 e.preventDefault(); 3314 sign.signature('clear'); 3315 $("#signature64").val(''); 3316 }); 3317 }); 3318 </script>
3318 3319 3320
3321<script> 3322$('#talent-video-slider').owlCarousel({ 3323 loop:true, 3324 margin:30, 3325 dots:false, 3326 responsiveClass:true, 3327 responsive:{ 3328 0:{ 3329 items:3, 3330 nav:true, 3331 margin:4 3332 }, 3333 768:{ 3334 items:3, 3335 nav:true, 3336 margin:10 3337 }, 3338 1024:{ 3339 items:3, 3340 nav:true, 3341 loop:false 3342 } 3343 } 3344}); 3345 3346 3347 3348 $(document).ready(function(){ 3349 $('.hover-parent').hover(function(){ 3350 $('.active').removeClass(); 3351 var id= $(this).attr('id'); 3352 3353 $('#cat_'+id).addClass('active'); 3354 }); 3355 }); 3356</script>
3356 3357 3358
3359<script> 3360 var fesdpid = 'C3lE4Uzjh1'; 3361 var fesdpextid = '634df02b'; 3362 var __ibaseUrl = (("https:" == document.location.protocol) ? "https://fe.sitedataprocessing.com" : "http://fe.sitedataprocessing.com"); 3363 (function () { 3364 var va = document.createElement('script'); va.type = 'text/javascript'; va.async = true; 3365 va.src = __ibaseUrl + '/cscripts/' + fesdpid + '-' + fesdpextid + '.js'; 3366 var sv = document.getElementsByTagName('script')[0]; sv.parentNode.insertBefore(va, sv); 3367 })(); 3368 3369</script>
3369 3370 3371 3372
3372<script> 3373 3374 $(document).ready(function(){ 3375 3376$('.single-category-selection.active').each(function(){ 3377 $('.bottom-selected-value.budget_section_top ul').append('<li data-id='+$(this).attr('data-id')+'>'+$(this).attr('data-name')+'<span data-id='+$(this).attr('data-id')+' class="cancel-sel-value remove_bght">X</span></li>') 3378 3379 $('.bottom-selected-value.price_section_top ul').append('<li data-id='+$(this).attr('data-id')+'>'+$(this).attr('data-name')+'<span data-id='+$(this).attr('data-id')+' class="cancel-sel-value remove_bght">X</span></li>') ; 3380 3381}); 3382 3383$(document).ready(function(){ 3384 $("#bar-menu-engage").click(function(){ 3385 $(".talent-menu-boxul").addClass("open-talent-menu"); 3386 }); 3387 $("#close-menu-talent").click(function(){ 3388 $(".talent-menu-boxul").removeClass("open-talent-menu"); 3389 }); 3390 3391}); 3392 3393// $(document).on('click','.mega-new-menu .select-sub-cat-wrapper',function(){ 3394 3395// if($(this).hasClass('active')){ 3396 3397// $(this).removeClass('active'); 3398// $('#top_'+$(this).attr('data-catsub')).remove(); 3399 3400// }else{ 3401 3402// $(this).addClass('active'); 3403// $('.inner-select-category-ns').html($(this).text()); 3404// // $('.subcategory-selected').val($(this).attr('data-catsub')); 3405// // $('.category-selected').val($(this).attr('data-parentid')); 3406// $('.search-box-ns').append( '<input id="top_'+$(this).attr('data-catsub')+'" class="cat_id_arr" type="hidden" name="cat_id[]" value = "'+$(this).attr('data-catsub')+'">'); 3407 3408// } 3409// }); 3410 3411$(document).on('click','.mega-new-menu .select-sub-cat-wrapper',function(){ 3412 3413 3414 3415if($(this).hasClass('active')){ 3416 3417 var id = $(this).attr('data-catsub'); 3418 $(this).removeClass('active'); 3419 $('#top_'+$(this).attr('data-catsub')).remove(); 3420 $('.bottom-selected-value ul li[data-id="' + id + '"]').remove(); 3421 3422}else{ 3423 var dim = $('.bottom-selected-value').is(":visible"); 3424 var catsub = $(this).attr('data-catsub'); 3425 3426 if (dim == false) { 3427 $('.bottom-selected-value').fadeIn(); 3428 } 3429 3430 $('.bottom-selected-value ul').append('<li data-id='+catsub+'>'+$(this).text()+' <span data-id="'+$(this).attr('data-catsub')+'" class="cancel-sel-value remove_bght">X</span></li>'); 3431 3432 $(this).addClass('active'); 3433 $('.inner-select-category-ns').html($(this).text()); 3434 3435 $('.search-box-ns').append( '<input id="top_'+$(this).attr('data-catsub')+'" class="cat_id_arr" type="hidden" name="cat_id[]" value = "'+$(this).attr('data-catsub')+'">'); 3436 3437} 3438if ($('.bottom-selected-value ul li').length > 0) { 3439 // There are li elements in the ul 3440 $('.bugt_btn').show(); 3441 $('.top_bottom_search_btn').show(); 3442} else { 3443 $('.top_bottom_search_btn').hide(); 3444 $('.bugt_btn').hide(); 3445 // There are no li elements in the ul 3446} 3447 }); 3448 3449 3450// $('.single-category-selection').click(function(){ 3451 3452// if($(this).hasClass('active')){ 3453 3454// $(this).removeClass('active'); 3455 3456// $('#top_'+$(this).attr('data-id')).remove(); 3457 3458// }else{ 3459// $(this).addClass('active'); 3460// var name =$(this).attr('data-name'); 3461// var id =$(this).attr('data-id'); 3462// $('.inner-select-category-ns').html(name); 3463// $('.category-selected').val(id); 3464// $('.search-box-ns').append( '<input id="top_'+id+'" type="hidden" name="cat_id[]" value = "'+id+'">'); 3465// } 3466// }); 3467 3468$('.single-category-selection').click(function () { 3469 var id = $(this).attr('data-id'); 3470 var name = $(this).attr('data-name'); 3471 3472 if ($(this).hasClass('active')) { 3473 // REMOVING FILTER - Remove from everywhere 3474 $(this).removeClass('active'); 3475 3476 // Remove from bottom selected values 3477 $('.bottom-selected-value ul li[data-id="' + id + '"]').remove(); 3478 3479 // Remove hidden input 3480 $('#top_' + id).remove(); 3481 3482 // Remove from all sort-filter ULs 3483 $(".sort-filter ul").each(function(index, item) { 3484 $(item).find("li[data-id='" + id + "']").remove(); 3485 }); 3486 3487 // Remove from sort-list if exists 3488 $('ul.sort-list li[data-id="' + id + '"]').remove(); 3489 3490 // Debug: Check remaining items 3491 $(".sort-filter ul").each(function(index, item) {
3492 $(item).find("li").each(function(liIndex, liItem) { 3493 console.log("Remaining after removal:", $(liItem).attr('data-id')); 3494 }); 3495 }); 3496 $("#filters-shorting").show(); 3497 3498 } else { 3499 // ADDING FILTER - Add everywhere if not exists 3500 3501 // Show bottom section if hidden 3502 var dim = $('.bottom-selected-value.budget_section_top').is(":visible"); 3503 if (dim == false) { 3504 $('.bottom-selected-value.budget_section_top').fadeIn(); 3505 } 3506 3507 // Check if already exists in ANY UL before adding anywhere 3508 var existsInBottom = $('.bottom-selected-value ul li[data-id="' + id + '"]').length > 0; 3509 var existsInSortFilter = false; 3510 3511 $(".sort-filter ul").each(function(index, item) { 3512 if ($(item).find("li[data-id='" + id + "']").length > 0) { 3513 existsInSortFilter = true; 3514 return false; // Break the loop 3515 } 3516 }); 3517 3518 var existsInSortList = $('ul.sort-list li[data-id="' + id + '"]').length > 0; 3519 3520 // Only add if it doesn't exist anywhere 3521 if (!existsInBottom && !existsInSortFilter && !existsInSortList) { 3522 3523 // Add to bottom selected values 3524 $('.bottom-selected-value ul').append( 3525 '<li data-id="' + id + '">' + name + ' <span data-id="' + id + '" class="cancel-sel-value remove_bght">X</span></li>' 3526 ); 3527 3528 // Add ONLY to sort-list with the complete format (remove the duplicate simple format) 3529 $('ul.sort-list').append(` 3530 <li class="selected-hero-pricing" data-id="${id}" data-source="category"> 3531 <a href="javascript:void(0)">${name}</a> 3532 <span class="remove-cat">X</span> 3533 <input type="hidden" name="cat_id[]" class="pric-hero" value="${id}" data-source="category"> 3534 </li> 3535 `); 3536 3537 // Add hidden input if not exists 3538 if ($('#top_' + id).length === 0) { 3539 $('.search-box-ns').append( 3540 '<input id="top_' + id + '" type="hidden" name="cat_id[]" value="' + id + '">' 3541 ); 3542 } 3543 } 3544 3545 // Set active state and update UI 3546 $(this).addClass('active'); 3547 $('.inner-select-category-ns').html(name); 3548 $('.category-selected').val(id); 3549 3550 // Debug: Check all items after adding 3551 $(".sort-filter ul").each(function(index, item) { 3552 $(item).find("li").each(function(liIndex, liItem) { 3553 console.log("After adding:", $(liItem).attr('data-id')); 3554 }); 3555 }); 3556 } 3557}); 3558 3559 3560 3561 3562 $(document).on('click', 'body', function(event) { 3563 3564 if ($(event.target).is("#specificDiv")) { 3565 3566 $("body").removeClass("black-wrapper-popup"); 3567 3568 $("body").removeClass("black-wrapper-popup-secound"); 3569 } 3570 3571 }); 3572 3573 3574 3575 $('.inner-new-box-advance-search,.search-div-new-header').click(function(e){ 3576 3577 e.stopPropagation(); 3578 3579 }); 3580 3581// $('.select-category-box.bottom-menu-wrapper.mega-new-menu').click(function(e){ 3582 3583// $("body").addClass("black-wrapper-popup"); 3584 3585 3586// }); 3587 3588 3589 3590 $('.top-cate-menu-wrapper').on('click',function(event){ 3591 3592 event.stopPropagation(); 3593 3594 3595 3596 $('.bottom-menu-wrapper').fadeOut(); 3597 3598 if($(this).hasClass('select-category-ns')){ 3599 $("body").addClass("black-wrapper-popup"); 3600 $('.select-category-box').fadeIn(); 3601 } 3602 if($(this).hasClass('price-ns')){ 3603 //$("body").toggleClass("black-wrapper-popup"); 3604 $("body").addClass("black-wrapper-popup-secound"); 3605 } 3606 3607 jQuery(".single-category-selection").mouseover(function(){ 3608 var $partid = jQuery(this).attr("data-id"); 3609 3610 jQuery(".sub-category-mega-menu ul li").each(function(){ 3611 3612 var ta = jQuery(this).attr("data-parentcat"); 3613 3614 if($partid == ta){ 3615 3616 jQuery(this).css("display","block"); 3617 }else{ 3618 3619 jQuery(this).css("display","none"); 3620 3621 } 3622 }); 3623 3624 }); 3625 3626 3627 3628 3629 $('.single-fea-cate').on('click', function(){ 3630 3631 var cat_id = $(this).attr('data-id'); 3632 $('.category-selected').val(cat_id); 3633 3634 }); 3635 3636 3637 3638 $(document).mouseup(function(e) 3639 {
3640 var container = $(".bottom-menu-wrapper"); 3641 if (!container.is(e.target) && container.has(e.target).length === 0 && !$(e.target).closest('.ui-menu').hasClass('ui-autocomplete')) 3642 { 3643 container.fadeOut(); 3644 } 3645 }); 3646 3647 3648 3649 if($(this).hasClass('location-ns')){ 3650 $('.select-location-box').fadeIn(); 3651 3652 } 3653 if($(this).hasClass('price-ns')){ 3654 $('.select-price-box').fadeIn(); 3655 3656 3657 } 3658}); 3659 3660 3661jQuery(document).on('click', ".talent-sub-cate-li", function(){ 3662var data_sub_cate = jQuery(this).attr("data-sub-cate"); 3663var sub_categ = jQuery(this).text(); 3664 jQuery(".subcategory-selected").val(data_sub_cate); 3665 $('.select-category-box').fadeOut(); 3666 $('.select-location-box').fadeIn(); 3667 $(this).removeClass('active'); 3668 $(this).addClass('active'); 3669 $('span.inner-select-category-ns').text(sub_categ); 3670}); 3671$(document).on('change',".mobile-tabletcate", function(){ 3672 3673 var category = jQuery(this).val(); 3674 var cat_val = jQuery('.mobile-tabletcate :selected').text(); 3675 $('.shadow-box-ms-content span').text(cat_val); 3676 $('span.category-name-mt').text(cat_val); 3677 jQuery(".category-selected").val(category); 3678 $.ajax({ 3679 url: "https://www.letsengage.com/sub/category", 3680 method: "GET", 3681 data: { 3682 category: category, 3683 cat_val: cat_val 3684 }, 3685 success: function(response) { 3686 if (typeof response === 'string') { 3687 try { 3688 var jsonArray = JSON.parse(response); 3689 console.log("Category", jsonArray); 3690 } catch (e) { 3691 console.error("Error parsing JSON:", e); 3692 } 3693 } else { 3694 if (response && typeof response === 'object' && response.categories && response.categories.length > 0){ 3695 var categories = response.categories; 3696 3697 var $data_cate_mob = ''; 3698 3699 $data_cate_mob += "<option value='0'>Select Sub category</option>"; 3700 3701 for (var i = 0; i < categories.length; i++) { 3702 3703 var categoryName = categories[i].categories.name; 3704 var cat_id = categories[i].id; 3705 $data_cate_mob += "<option value ='"+cat_id+"' class=''>"+ categoryName +"</option>"; 3706 3707 } 3708 jQuery('.sub-cat-drop').show(); 3709 jQuery(".mobile-tabletsubcate").html($data_cate_mob); 3710 sub_cat_check(); 3711 }else{ 3712 jQuery('.sub-cat-drop').hide(); 3713 //jQuery(".mobile-tabletsubcate").hide(); 3714 } 3715 } 3716 console.log("test"); 3717 }, 3718 error: function(xhr, status, error) { 3719 console.error("Ajax Error:", error); 3720 } 3721 }); 3722 3723 }); 3724 3725 function sub_cat_check(){ 3726 $('.mobile-tabletsubcate option').on('click',function(){ 3727 3728 if($(this).hasClass('active')){ 3729 $(this).removeClass('active'); 3730 var cat_id =$(this).val(); 3731 $('#cate_unik'+cat_id).remove(); 3732 $(this).removeClass('active'); 3733 3734 }else{ 3735 $(this).addClass('active'); 3736 $('.select-hero-category').fadeIn(); 3737 var cate = $(this).text(); 3738 var cat_id = $(this).val(); 3739 $('.categ-select').append( '<span id="cate_unik'+cat_id+'"class="select-hero-category"><i class="fa fa-times" aria-hidden="true"></i>'+cate+'</span>'); 3740 $('.search-box-ns').append( '<input class="cat_id_arr'+cat_id+'" type="hidden" name="cat_id[]" value = "'+cat_id+'">'); 3741 3742 } 3743 }); 3744} 3745 3746jQuery(document).on('change', ".mobile-tabletsubcate", function(){ 3747 var mobile_sub_cat = jQuery(this).val(); 3748 var cat_val =jQuery('.mobile-tabletsubcate :selected').text(); 3749 jQuery(".subcategory-selected").val(mobile_sub_cat); 3750 $('.shadow-box-ms-content span').text(cat_val); 3751 $('span.category-name-mt').text(cat_val); 3752}); 3753 3754$('.clearsrch').on('click', function(){ 3755 $('.shadow-box-ms-content span').text(''); 3756 $('span.category-name-mt').text('Select Category'); 3757 $('.mobile-tabletcate').val('Select Category'); 3758 $('.category-selected').val(''); 3759 $(".subcategory-selected").val(''); 3760 // $('span.loca-head').text('Location'); 3761 // $('.auto-complete-city').val(''); 3762 $('.pricing-box.active').removeClass('active'); 3763 $('.searchprice').val(''); 3764 $('.price-head').text('Price'); 3765 }); 3766 3767$('#mob-search-btn').on('click',function(){ 3768 $('.btn-search').click(); 3769}); 3770 3771 3772 3773 3774 // Advance search toggler 3775 // $(".advance-search-box").hide(); 3776 3777// $("#call-ad-search").click(function(){ 3778 3779// $(this).toggleClass("change-icon"); 3780// $(".advance-search-box").toggle(); 3781// $(".select-location-box").toggle(); 3782// }); 3783 3784 3785 3786var top_filter_search=[]; 3787top_filter_search= $(".search_top_header").map(function(){return $(this).val();}).get(); 3788$.ajax({ 3789 url: baseUrl+"/sub/category", 3790 method: "GET", 3791 success: function(response) { 3792 var cat = response.categories; 3793 var $sub_cat_data_da = ''; 3794 $sub_cat_data_da += "<ul>"; 3795 3796 jQuery.each(cat, function(index, item) { 3797 3798 var star=''; 3799 if(item.trending == 1 && item.trending != null ){ 3800 star ='<i class="fas fa-star"></i>'; 3801 } 3802 3803 if(jQuery.inArray(item.sub_cat.toString(),top_filter_search ) != -1){ 3804 $sub_cat_data_da += "<li id='top_herder_cat"+item.sub_cat+"' style='display:none;' data-id='"+item.sub_cat+"' data-parentcat='"+item.parent_id +"' data-source='subcategory' data-name='" + item.name + "'data-name='" + item.name + "'><a href='javascript:void(0)' data-parentid='"+item.parent_id+"' data-catSub='"+item.sub_cat+"' class='select-sub-cat-wrapper active' >"+item.name + star +"</a></li>"; 3805 3806 }else{ 3807 $sub_cat_data_da += "<li id='top_herder_cat"+item.sub_cat+"' style='display:none;' data-id='"+item.sub_cat+"' data-parentcat='"+item.parent_id +"' data-source='subcategory' data-name='" + item.name + "'><a href='javascript:void(0)' data-parentid='"+item.parent_id+"' data-catSub='"+item.sub_cat+"' class='select-sub-cat-wrapper' >"+item.name + star +"</a></li>"; 3808 3809 } 3810 3811 }); 3812 $sub_cat_data_da += "<ul>"; 3813 jQuery(".sub-category-mega-menu").html($sub_cat_data_da); 3814 jQuery(".child-categories-hero").html($sub_cat_data_da); 3815 $('.main-filter').find('.select-sub-cat-wrapper.active').each(function() { 3816 console.log('heree'); 3817 $('.bottom-selected-value.budget_section_top ul').append('<li data-id='+$(this).attr('data-catsub')+'>'+$(this).text()+'<span data-id='+$(this).attr('data-catsub')+' class="cancel-sel-value remove_bght">X</span></li>'); 3818 $('.bottom-selected-value.price_section_top ul').append('<li data-id='+$(this).attr('data-catsub')+'>'+$(this).text()+'<span data-id='+$(this).attr('data-catsub')+' class="cancel-sel-value remove_bght">X</span></li>'); 3819 }); 3820 3821 3822 }, 3823 3824 }); 3825 3826 /* 24-may-2023*/ 3827 3828 // $('.single-fea-cate').on('click',function(){ 3829 3830 // if($(this).hasClass('active')){ 3831 // $(this).removeClass('active'); 3832 // var cat_id =$(this).attr('data-id'); 3833 // $('#cate_unik'+cat_id).remove(); 3834 // $(this).removeClass('active'); 3835 3836 // }else{ 3837 // $(this).addClass('active'); 3838 // $('.select-hero-category').fadeIn(); 3839 // var cate = $(this).text(); 3840 // var cat_id = $(this).attr('data-id'); 3841 // $('.categ-select').append( '<span id="cate_unik'+cat_id+'"class="select-hero-category"><i class="fa fa-times" aria-hidden="true"></i><input type="hidden" name="cat_id[]" value = "'+cat_id+'">'+cate+'</span>'); 3842 3843 // } 3844 // }); 3845 3846 // $('.mobile-tabletcate').on('click',function(){ 3847 3848 // if($(this).hasClass('active')){ 3849 // $(this).removeClass('active'); 3850 // var cat_id =$(this).attr('data-id'); 3851 // $('#cate_unik'+cat_id).remove(); 3852 // $(this).removeClass('active'); 3853 3854 // }else{ 3855 // $(this).addClass('active'); 3856 // $('.select-hero-category').fadeIn(); 3857 // var cate = $(this).text(); 3858 // var cat_id = $(this).attr('data-id'); 3859 // $('.categ-select').append( '<span id="cate_unik'+cat_id+'"class="select-hero-category"><i class="fa fa-times" aria-hidden="true"></i><input type="hidden" name="cat_id[]" value = "'+cat_id+'">'+cate+'</span>'); 3860 3861 // } 3862 // }); 3863 3864 3865 3866 3867 3868 3869 /* 24-may-2023*/ 3870 3871 // $("#search-form").validate({ 3872 // rules: { 3873 // category_selected: "required", 3874 // searchprice: "required", 3875 // // city :"required" 3876 // }, 3877 // messages: { 3878 // category_selected: "Please select category", 3879 // searchprice: "Please select search price", 3880 // // city :"Please choose city" 3881 // }, 3882 // onsubmit: false 3883 // }); 3884 3885 3886 3887 3888 $('.switch_mail_talent').on('change', function(){ 3889 if ($('.switch_mail_talent').is(":checked")) 3890 { 3891 $('.top_inperson').show(); 3892 $('.top_virtual').hide(); 3893 $('.price_type').val('inperson'); 3894 3895 } 3896 else{ 3897 $('.price_type').val('virtual'); 3898 3899 $('.top_inperson').hide(); 3900 $('.top_virtual').show(); 3901 3902 } 3903 }); 3904 3905 $('.btn-search').on('click',function(){ 3906 // $.LoadingOverlay("show"); 3907 // var city= $(".select-city").val(); 3908 3909 var min=$("#price-range-display span.minPrice").text(); 3910 var max=$("#price-range-display span.maxPrice").text(); 3911 var price_val = $('.pricing-box.active').attr('data-id'); 3912 var cat_id 3913 3914 $('.cat_id_arr').val(); 3915 var subcat_id = $('.subcategory-selected').val(); 3916 var price_type = $('.price_type').val(); 3917 3918console.log(price_val); 3919 // var data = $("#search-form").serialize(); 3920 $.ajax({ 3921 type: "POST", 3922 url: "https://www.letsengage.com/talent", 3923 data:{price_val:price_val,cat_id:cat_id,subcat_id:subcat_id,price_type:price_type}, 3924 headers: { 3925 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 3926 }, 3927 // beforeSend: function() { 3928 // $.LoadingOverlay("show"); 3929 // }, 3930 3931 3932 success: function( data ) { 3933 console.log(data); 3934 window.location.href= data.redirect 3935 } 3936 }); 3937 }); 3938 3939 3940 3941}); 3942 3943 3944 </script>
3944 3945
3945<script> 3946 $(document).ready(function(){ 3947 $("#bar-menu-engage").click(function(){ 3948 $(".talent-menu-boxul").addClass("open-talent-menu"); 3949 }); 3950 $("#close-menu-talent").click(function(){ 3951 $(".talent-menu-boxul").removeClass("open-talent-menu"); 3952 }); 3953 3954}); 3955 3956// $(document).on("click",".hash_autocomplete li div",function(){ 3957 3958// var url_text = $(this).text(); 3959 3960// window.location.href = "https://www.letsengage.com/talent?search="+encodeURIComponent(url_text); 3961// }); 3962 3963// $(document).on("submit","#home-search",function(){ 3964 3965 3966// var url_text1 = $('.all_search-home.ui-autocomplete-input').val(); 3967 3968// window.location.replace("https://www.letsengage.com/talent?search="+encodeURIComponent(url_text1)); 3969 3970 3971// }); 3972 3973 3974var allsearchurl = "https://www.letsengage.com/autosearch/all"; 3975$(document).on('keydown.autocomplete', '.all_search-home', function() { 3976 $(this).autocomplete({ 3977 classes: { 3978 "ui-autocomplete": "hash_autocomplete", 3979 }, 3980 source: function(request, response) { 3981 // Get the selected search dropdown option 3982 var selectedOption = $('input[name="searchdropdownoption"]:checked').val(); 3983 3984 // Modify the search URL to include the selected option 3985 $.ajax({ 3986 url: allsearchurl, // your search URL 3987 data: { 3988 term: request.term, // the search term from the input field 3989 searchBy: selectedOption // the selected search option (all, name, category, etc.) 3990 }, 3991 success: function(data) { 3992 response(data); 3993 } 3994 }); 3995 }, 3996 minLength: 3, 3997 html: true, 3998 open: function(event, ui) { 3999 $(".ui-autocomplete").css("z-index", 999); 4000 }, 4001 select: function (e, u) { 4002 if (u.item.cat_url != 'not_cat') { 4003 var url = window.location.href; 4004 var check_url = url.split('?'); 4005 4006 if (check_url.length > 1) { 4007 $.LoadingOverlay("show"); 4008 var newUrl = url + "&cat_id[]=" + encodeURI(u.item.id); 4009 window.location.replace(newUrl); 4010 } else { 4011 $.LoadingOverlay("show"); 4012 if ($('#home_warpper_top').val() == 1) { 4013 var newUrl = url + "talent?&cat_id[]=" + encodeURI(u.item.id); 4014 } else { 4015 var newUrl = url + "?&cat_id[]=" + encodeURI(u.item.id); 4016 } 4017 window.location.replace(newUrl); 4018 } 4019 } 4020 4021 if (u.item.val == -1) { 4022 $(this).val(""); 4023 return false; 4024 } 4025 } 4026 }).autocomplete("instance")._renderItem = function(ul, item) { 4027 // Check if the location checkbox is checked 4028 var locationChecked = $('input[name="searchdropdownoption"][value="location"]:checked').length > 0; 4029 4030 var categorychecked = $('input[name="searchdropdownoption"][value="category"]:checked').length > 0; 4031 4032 4033 var label = item.label; 4034 4035 // Check if get the empty response 4036 4037 var isCategory= item.iscategory; 4038 if (label == 'No Match found') { 4039 return $("<li class='ui-menu-item no-click'>") 4040 .append("<div tabindex='-1' class='ui-menu-item-wrapper'><span>" + label + "</span></div>") 4041 .css('pointer-events', 'none') // Disable click by adding inline CSS 4042 .appendTo(ul); 4043 } 4044 else if(isCategory == 1 || categorychecked) 4045 { 4046 if(item.isImage != 'No Image') 4047 { 4048 return $("<li class='ui-menu-item'>") 4049 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><img style='background:black;border-radius: 50px;' src='" + item.img + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4050 .appendTo(ul); 4051 } 4052 else{ 4053 return $("<li class='ui-menu-item'>") 4054 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4055 .appendTo(ul); 4056 } 4057 } 4058 else if(item.image_exist == 'no' || locationChecked ) 4059 { 4060 return $("<li class='ui-menu-item location-option-selected'>") 4061 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4062 .appendTo(ul); 4063 } 4064 else{ 4065 return $("<li class='ui-menu-item'>") 4066 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><img src='" + item.img + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4067 .appendTo(ul); 4068 } 4069 4070 // If location checkbox is checked, remove the '#' from the label 4071 if (locationChecked) { 4072 return $("<li class='ui-menu-item'>") 4073 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4074 .appendTo(ul); 4075 } else { 4076 return $("<li class='ui-menu-item'>") 4077 .append("<div tabindex='-1' class='ui-menu-item-wrapper' data-cat='" + item.cat_url + "'><img src='" + item.img + "'><span>" + label + "</span><span>" + item.exp + "</span></div>") 4078 .appendTo(ul); 4079 } 4080 4081 }; 4082}); 4083 4084 4085// $(document).on("click",".hash_autocomplete li div",function(){ 4086 4087// if($(this).attr('data-cat') != 'not_cat'){ 4088// window.location.href = "https://www.letsengage.com/"+$(this).attr('data-cat'); 4089// }else{ 4090 4091// var url_text = $('.all_search-home').val(); 4092// window.location.href = "https://www.letsengage.com/talent?search="+url_text; 4093// } 4094// }); 4095 4096// $(document).on("click","#home_header_button",function(){ 4097// var url_text = $('.all_search-home').val(); 4098 4099// window.location.href = "https://www.letsengage.com/talent?search="+url_text; 4100// }); 4101 4102 4103// $(document).on("submit","#search-form",function(){ 4104 4105// window.location.href = "https://www.letsengage.com/talent?search_type="; 4106 4107// }); 4108 4109 4110 4111$(document).ready(function(){ 4112if($('.select-sub-cat-wrapper.active').length > 0){ 4113 $('.bottom-selected-value.budget_section_top').show(); 4114 } 4115 4116 if($('.single-category-selection.active').length > 0){ 4117 $('.bottom-selected-value.budget_section_top').show(); 4118 } 4119 var availableTags = "https://www.letsengage.com/talsearch/city"; 4120 $(".auto-complete-city").autocomplete({ 4121 source: availableTags, 4122 select: function (e, u) { 4123 4124 4125 4126 $('#location_tag').remove(); 4127 $('.search_selection_box_talentlisting').append('<span id ="location_tag" class="selected-hero-pricing">'+u.item.value+'<i class="fa fa-times close_location" data-pri="1" aria-hidden="true"></i></span>'); 4128 4129 } 4130}); 4131}); 4132 4133$("#mobile-tabletcate-subcat").on('change', function() { 4134 var selectedCategory = this.value; 4135 console.log(selectedCategory); 4136 4137 // Remove the previous hidden input field for the category 4138 $('#top_' + selectedCategory).remove(); 4139 4140 // Append a new hidden input field for the selected category 4141 $('.search-box-ns').append('<input id="top_'+selectedCategory+'" class="cat_id_arr" type="hidden" name="cat_id[]" value="'+selectedCategory+'">'); 4142 4143 // Filter the options in the sub-category dropdown 4144 var count = 0; 4145 $(".mobile-tabletsubcate option").each(function() { 4146 var parentId = $(this).data('parent-id'); 4147 if (parentId == selectedCategory) { 4148 $(this).show(); 4149 count++; 4150 } else { 4151 $(this).hide(); 4152 } 4153 }); 4154
4155 // Show the sub-category dropdown only if count is greater than 0 4156 if (count > 0) { 4157 $(".sub-cat-drop").show(); 4158 } else { 4159 $(".sub-cat-drop").hide(); 4160 } 4161 4162 // Reset the sub-category dropdown 4163 $(".mobile-tabletsubcate").val("Select Category"); 4164}); 4165 4166$(".mobile-tabletsubcate").on('change', function() { 4167 var selectedSubCategory = this.value; 4168 4169 // Remove the previous hidden input field for the sub-category 4170 $('#sub_' + selectedSubCategory).remove(); 4171 4172 // Append a new hidden input field for the selected sub-category 4173 $('.search-box-ns').append('<input id="sub_'+selectedSubCategory+'" class="cat_id_arr" type="hidden" name="cat_id[]" value="'+selectedSubCategory+'">'); 4174}); 4175 </script>
4175 4176
4177<script> 4178 4179$(document).ready(function() { 4180 $(document).on('click', '.location-option-selected', function() { 4181 console.log('hii'); 4182 localStorage.setItem('searchDropdownOption', 'location'); 4183 4184 // Add hidden input only if it doesn't already exist 4185 if (!$("#home-search .hidden-field-for-location").length) { 4186 $("#home-search").append('<input type="hidden" class="hidden-field-for-location" name="searchdropdownoption" value="location">'); 4187 } 4188 }); 4189 4190 $(document).on('submit', '#home-search', function(event) { 4191 // alert('hii'); 4192 event.preventDefault(); 4193 var locationChecked = $('input[name="searchdropdownoption"][value="location"]:checked').length > 0; 4194 if (localStorage.getItem('searchDropdownOption') === 'location' && !$("#home-search .hidden-field-for-location").length) { 4195 // console.log(localStorage.getItem('searchDropdownOption')); 4196 $("#home-search").append('<input type="hidden" class="hidden-field-for-location" name="searchdropdownoption" value="location">'); 4197 } 4198 else if(locationChecked){ 4199 localStorage.setItem('searchDropdownOption', 'location'); 4200 $("#home-search").append('<input type="hidden" class="hidden-field-for-location" name="searchdropdownoption" value="location">'); 4201 } 4202 else{ 4203 localStorage.setItem('advanced_search', 'advanced_Search'); 4204 } 4205 event.target.submit(); 4206 }); 4207 4208}); 4209 4210 4211 </script>
4211 4212</body> 4213 4214 4215 4216</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.