1<!doctype html> 2<html lang='en'> 3 <head> 4 <!-- meta --> 5 <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 6 <meta charset="utf-8" /> 7 <title>Contact Us | George R. Brown Convention Center</title> 8 <link rel="canonical" href="https://www.grbhouston.com/contact-us/" /> 9 <meta name="description" content="Need to contact the George R. Brown Convention Center in Houston? Find our contact information, including phone numbers, or submit your comment online." /> 10 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1" /> 11 <meta name="sv-dynamic-personas" content="" /> 12 <meta name="sv-nav-properties" content="{"title":"Contact Us","id":"56f43ca7649d64270951ba3e","site_name":"conventioncenter","section":"secondary_cc","folderHref":"/contact-us/"}" /> 13 <meta name="twitter:site" content="@grbcc" /> 14 <meta name="twitter:creator" content="@grbcc" /> 15 <meta name="twitter:card" content="summary_large_image" /> 16 <meta name="referrer" content="always" /> 17 <meta name="robots" content="index, follow" /> 18 <meta property="og:title" content="Contact Us | George R. Brown Convention Center" /> 19 <meta property="og:url" content="https://www.grbhouston.com/contact-us/" /> 20 <meta property="og:description" content="Need to contact the George R. Brown Convention Center in Houston? Find our contact information, including phone numbers, or submit your comment online." /> 21 <meta property="og:locale" content="en" /> 22 <meta property="og:type" content="website" /> 23 <meta property="og:site_name" content="George R. Brown Convention Center - Houston" /> 24 25 <!-- head css bundles --> 26 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/search/virtuals/css/shared.css"/> 27 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/nav/virtuals/css/shared.css"/> 28 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/libs/sv/dlmenu/public/css/component.css"/> 29 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/node_modules/foundation-5.5.0/css/normalize.css"/> 30 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/node_modules/foundation-5.5.0/css/foundation.min.css"/> 31 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/common/virtuals/css/shared.css"/> 32 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/common/virtuals/css/shared_print.css"/> 33 <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700"/> 34 <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/> 35 <link rel="stylesheet" href="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/common/virtuals/css/widget_social_share.css" media="print" onload="this.onload=null;this.media='all'" class="preloaded-css"/> 36 37 <!-- head js bundles --> 38
38<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/node_modules/foundation-5.5.0/js/vendor/modernizr.js"></script>
38 39
39<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/libs/sv/requirejs/public/require.js" data-ot-ignore></script>
39 40
40<script src="/requirejs_config_a2e6ae52_ff242142.js" data-ot-ignore></script>
40 41
41<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/libs/sv/siteLib/public/js/globalHeader.js"></script>
41 42
42<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/common/virtuals/js/shared_header.js"></script>
42 43 44 <!-- bottomHead --> 45 46
46<script data-id="site_gtm">
vendor: 365 bytes, lines 46-51
46 47 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 48 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 49 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 50 '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 51 })(window,document,'script','gtmDataLayer','
51GTM-NFBVG93
vendor: 11 bytes, lines 51-52
51'); 52
52</script>
52 53 54 55 56 </head> 57 <body> 58 <!-- topBody --> 59 60 <noscript> 61 <iframe src="//www.googletagmanager.com/ns.html?id=GTM-NFBVG93" title="Google Tag Manager" height="0" width="0" style="display:none;visibility:hidden"></iframe> 62 </noscript> 63 64 65 <!-- content --> 66 <div data-civid="582f2aa418c1e346cf7e7511" class="contentRender contentRender_0 contentRender_type_panel contentRender_name_plugins_common_page" data-sv-time="0" data-sv-index="0" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 67 68<!-- Google Tag Manager -->
vendor: 63 bytes, lines 68-69
68 69<noscript><iframe src="//www.googletagmanager.com/ns.html?id=
69GTM-NN9C3D
vendor: 85 bytes, lines 69-70
69" 70height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
71<!-- End Google Tag Manager --> 72 73<div class="wrapper no-slide"> 74 <div class="headerWrapper"> 75 <div data-civid="56ac02ab5e8701025f9eca3f" class="contentRender contentRender_1 contentRender_type_panel contentRender_name_plugins_common_header_cc" data-sv-time="1" data-sv-index="1" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 76<div class="header-int"> 77 <div class="row header-row"> 78 <div class="logo-header left"> 79 <a class="logo-link" href="/"><img src="/includes/public/assets/images/logo.png" /></a> 80 </div> 81 <div class="header-navs"> 82 <div class="header-top-wrapper"> 83 <div class="header-top right"> 84 <div class="headerSecondary left"> 85 <div data-civid="570694e234d9436518a83ae4" class="contentRender contentRender_2 contentRender_type_widget contentRender_name_plugins_nav_secondary_cc" data-sv-time="13" data-sv-index="2" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 86<div class="navSecondary" data-sv-secondarynav> 87 88 <div class="item"> 89 <a class="" href="/" target="" title="Home">Home</a> 90 </div> 91 92 <span class="sep">|</span> 93 94 95 <div class="item"> 96 <a class="has-children" href="/about-us/" target="" title="About Us">About Us</a> 97 </div> 98 99 <span class="sep">|</span> 100 101 102 <div class="item"> 103 <a class="" href="/contact-us/" target="" title="Contact Us">Contact Us</a> 104 </div> 105 106 107</div> 108</div> 109 </div> 110 <div class="searchBox right" data-sv-searchBox> 111 <div data-civid="570694f034d9436518a83aeb" class="contentRender contentRender_3 contentRender_type_widget contentRender_name_plugins_search_headerbox" data-sv-time="12" data-sv-index="3" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'>
112<script type="text/template" data-sv-searchTmpl> 113 114 <form data-sv-searchForm action="{{searchurl}}" method="GET"> 115 <input class="searchInput left" name="q" type="text" value="" autocomplete="off" autocorrect="off" autocapitalize="off" data-sv-searchInput/> 116 <button type="submit" class="btn right"> 117 SEARCH <i class="fa fa-search"></i> 118 </button> 119 </form> 120 121</script>
121 122
123<script> 124 require(["jquery", "goatee", "domReady!"], function($, goatee) { 125 var tmpl = $("[data-sv-searchTmpl]").html(); 126 var html = goatee.fill(tmpl, {searchurl: "/search/"}); 127 var container = $("[data-sv-searchBox]"); 128 container.append(html); 129 130 var form = container.find('[data-sv-searchForm]'); 131 form.submit(function(e) { 132 var inp = $(this).find('[data-sv-searchInput]'); 133 if (inp.val().length === 0) e.preventDefault(); 134 }); 135 }); 136</script>
136</div> 137 </div> 138 </div> 139 <div class="clearfix"></div> 140 </div> 141 <div class="clearfix"></div> 142 <div class="header-bottom"> 143 <div data-civid="570694e234d9436518a83ae6" class="contentRender contentRender_4 contentRender_type_widget contentRender_name_plugins_nav_main_cc" data-sv-time="14" data-sv-index="4" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 144 145 146 <div class="navPrimary right show-for-large-up" data-sv-mainnav> 147 148 <div class="item has-children left"> 149 <a href="/planners/" target="_self" title="Planners">Planners</a> 150 151 <div class="dropdown"> 152 153 <div class="item"> 154 <a href="/planners/book-an-event/" target="_self" title="Book An Event">Book An Event</a> 155 </div> 156 157 <div class="item"> 158 <a href="/planners/grb-brochure/" target="_self" title="GRB Brochure">GRB Brochure</a> 159 </div> 160 161 <div class="item"> 162 <a href="/planners/floor-plans/" target="_self" title="Floor Plans">Floor Plans</a> 163 </div> 164 165 <div class="item"> 166 <a href="/planners/dimensions-capacities/" target="_self" title="Dimensions & Capacities">Dimensions & Capacities</a> 167 </div> 168 169 <div class="item"> 170 <a href="/planners/grb-services/" target="_self" title="GRB Services">GRB Services</a> 171 </div> 172 173 <div class="item"> 174 <a href="/planners/checklist/" target="_self" title="Meeting Planner Checklist">Meeting Planner Checklist</a> 175 </div> 176 177 <div class="item"> 178 <a href="https://www.grbhouston.com/media-gallery/" target="_self" title="Image Gallery">Image Gallery</a> 179 </div> 180 181 <div class="item"> 182 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/GRB_Sponsorship_Branding_Guide_2024_Mail_1__fd59a057-3eb1-4928-aa6e-5c527764c903.pdf" target="_self" title="Sponsorship Opportunities">Sponsorship Opportunities</a> 183 </div> 184 185 <div class="item"> 186 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/Facility_Signage_Map_Only_2025_95e3036f-f16c-42c9-a6fd-d6dd38662ae0.pdf" target="_self" title="Digital Signage">Digital Signage</a> 187 </div> 188 189 <div class="item"> 190 <a href="/planners/green-facts/" target="_self" title="Sustainability">Sustainability</a> 191 </div> 192 193 <div class="item"> 194 <a href="https://www.grbhouston.com/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 195 </div> 196 197 </div> 198 199 </div> 200 201 <div class="item has-children left"> 202 <a href="/exhibitors/" target="_self" title="Exhibitors">Exhibitors</a> 203 204 <div class="dropdown"> 205 206 <div class="item"> 207 <a href="https://www.grbhouston.com/planners/grb-brochure/" target="_self" title="GRB Brochure">GRB Brochure</a> 208 </div> 209 210 <div class="item"> 211 <a href="https://www.grbhouston.com/planners/grb-services/" target="_self" title="GRB Services">GRB Services</a> 212 </div> 213 214 <div class="item"> 215 <a href="https://www.grbhouston.com/planners/floor-plans/" target="_self" title="Floor Plans">Floor Plans</a> 216 </div> 217 218 <div class="item"> 219 <a href="/exhibitors/exhibitor-guidelines/" target="_self" title="Exhibitor Guidelines">Exhibitor Guidelines</a> 220 </div> 221 222 <div class="item"> 223 <a href="https://www.grbhouston.com/attendees/maps-and-directions/" target="_self" title="Parking, Maps & Directions">Parking, Maps & Directions</a> 224 </div> 225 226 <div class="item"> 227 <a href="/exhibitors/getting-around-houston/" target="_self" title="Getting Around Houston">Getting Around Houston</a> 228 </div> 229 230 <div class="item"> 231 <a href="http://www.visithoustontexas.com/" target="_blank" title="Visit Houston">Visit Houston</a> 232 </div> 233 234 <div class="item"> 235 <a href="http://www.downtownhouston.org/" target="_self" title="Downtown Houston">Downtown Houston</a> 236 </div> 237 238 <div class="item"> 239 <a href="https://www.grbhouston.com/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 240 </div> 241 242 </div> 243 244 </div> 245 246 <div class="item has-children last left"> 247 <a href="/attendees/" target="_self" title="Attendees">Attendees</a> 248 249 <div class="dropdown"> 250 251 <div class="item"> 252 <a href="/attendees/events-calendar/" target="_blank" title="Event Calendar">Event Calendar</a> 253 </div> 254 255 <div class="item"> 256 <a href="/attendees/maps-and-directions/" target="_self" title="Maps, Directions, & Transportation">Maps, Directions, & Transportation</a> 257 </div> 258 259 <div class="item"> 260 <a href="/attendees/parking/" target="_self" title="Parking">Parking</a> 261 </div> 262 263 <div class="item"> 264 <a href="https://www.grbhouston.com/exhibitors/getting-around-houston/" target="_self" title="Getting Aroun
264d Houston">Getting Around Houston</a> 265 </div> 266 267 <div class="item"> 268 <a href="/attendees/attendee-amenities/" target="_self" title="Attendee Amenities">Attendee Amenities</a> 269 </div> 270 271 <div class="item"> 272 <a href="/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 273 </div> 274 275 <div class="item"> 276 <a href="/attendees/lost-and-found/" target="_self" title="Lost and Found">Lost and Found</a> 277 </div> 278 279 <div class="item"> 280 <a href="http://www.visithoustontexas.com/" target="_blank" title="Visit Houston">Visit Houston</a> 281 </div> 282 283 <div class="item"> 284 <a href="http://www.downtownhouston.org/" target="_self" title="Downtown Houston">Downtown Houston</a> 285 </div> 286 287 </div> 288 289 </div> 290 291 </div> 292 293 <!-- mobile --> 294 295 296 <div class="navMobile hide-for-large-up" data-sv-mobile-nav> 297 <div id="dl-menu" data-sv-dl-menu class="dl-menuwrapper right"> 298 <button class="dl-trigger right"> 299 <a href="#"> 300 <div class="menu-icon left">MENU <i class="fa fa-bars"></i></div> 301 </a> 302 </button> 303 <div class="clearfix"></div> 304 <ul class="dl-menu" data-sv-mainnav> 305 306 <li class="item item-parent has-submenu"> 307 <a href="/planners/" class="has-children" target="_self" title="Planners">Planners <span></span></a> 308 309 310 <ul class="dl-submenu"> 311 312 <li class="has-submenu"> 313 <a href="/planners/book-an-event/" class="has-children" target="_self" title="Book An Event">Book An Event <span></span></a> 314 315 316 <ul class="dl-submenu"> 317 318 <li class=""> 319 <a href="/planners/book-an-event/meetings-rfp/" class="" target="_self" title="Submit RFP">Submit RFP</a> 320 321 322 323 </li> 324 325 <li class=""> 326 <a href="https://www.grbhouston.com/about-us/sales-staff/" class="" target="_self" title="Sales Team">Sales Team</a> 327 328 329 330 </li> 331 332 <li class=""> 333 <a href="https://www.vpix.net/758559" class="" target="_blank" title="Virtual Tours">Virtual Tours</a> 334 335 336 337 </li> 338 339 <li class=""> 340 <a href="/planners/book-an-event/convention-kit/" class="" target="_self" title="Visit Houston Convention Kit">Visit Houston Convention Kit</a> 341 342 343 344 </li> 345 346 <li class=""> 347 <a href="/planners/book-an-event/request-visitors-guide/" class="" target="_self" title="Request a Visitors Guide">Request a Visitors Guide</a> 348 349 350 351 </li> 352 353 </ul> 354 355 356 </li> 357 358 <li class=""> 359 <a href="/planners/grb-brochure/" class="" target="_self" title="GRB Brochure">GRB Brochure</a> 360 361 362 363 </li> 364 365 <li class=""> 366 <a href="/planners/floor-plans/" class="" target="_self" title="Floor Plans">Floor Plans</a> 367 368 369 370 </li> 371 372 <li class=""> 373 <a href="/planners/dimensions-capacities/" class="" target="_self" title="Dimensions & Capacities">Dimensions & Capacities</a> 374 375 376 377 </li> 378 379 <li class="has-submenu"> 380 <a href="/planners/grb-services/" class="has-children" target="_self" title="GRB Services">GRB Services <span></span></a> 381 382 383 <ul class="dl-submenu"> 384 385 <li class=""> 386 <a href="https://www.grbhouston.com/about-us/grb-operations-services-team/" class="" target="_self" title="GRB Operations & Services Team">GRB Operations & Services Team</a> 387 388 389 390 </li> 391 392 <li class=""> 393 <a href="/planners/grb-services/booth-cleaning/" class="" target="_self" title="Booth Cleaning">Booth Cleaning</a> 394 395 396 397 </li> 398 399 <li class=""> 400 <a href="/planners/grb-services/audio-visual/" class="" target="_self" title="Audio Visual & Rigging">Audio Visual & Rigging</a> 401 402 403 404 </li> 405 406 <li class=""> 407 <a href="/planners/grb-services/food-and-beverage/" class="" target="_self" title="Food & Beverage">Food & Beverage</a> 408 409 410 411 </li> 412 413 <li class=""> 414 <a href="/planners/grb-services/it-and-utilities/" class="" target="_self" title="IT & Utilities">IT & Utilities</a> 415 416 417 418 </li> 419 420 </ul> 421 422 423 </li> 424 425 <li class=""> 426 <a href="/planners/checklist/" class="" target="_self" title="Meeting Planner Checklist">Meeting Planner Checklist</a> 427 428 429 430 </li> 431 432 <li class=""> 433 <a href="https://www.grbhouston.com/media-gallery/" class="" target="_self" title="Image Gallery">Image Gallery</a> 434 435 436 437 </li> 438 439 <li class=""> 440 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/GRB_Sponsorship_Branding_Guide_2024_Mail_1__fd59a057-3eb1-4928-aa6e-5c527764c903.pdf" class="" target="_self" title="Sponsorship Opp
440ortunities">Sponsorship Opportunities</a> 441 442 443 444 </li> 445 446 <li class=""> 447 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/Facility_Signage_Map_Only_2025_95e3036f-f16c-42c9-a6fd-d6dd38662ae0.pdf" class="" target="_self" title="Digital Signage">Digital Signage</a> 448 449 450 451 </li> 452 453 <li class="has-submenu"> 454 <a href="/planners/green-facts/" class="has-children" target="_self" title="Sustainability">Sustainability <span></span></a> 455 456 457 <ul class="dl-submenu"> 458 459 <li class=""> 460 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/SustainabilityBrochure_March2026_df1a2d6b-5a2b-4bf9-b0a7-50aec6a08abc.pdf" class="" target="_self" title="GRB Sustainability Brochure">GRB Sustainability Brochure</a> 461 462 463 464 </li> 465 466 <li class=""> 467 <a href="/planners/green-facts/solid-waste-management-policy/" class="" target="_self" title="Solid Waste Management Policy">Solid Waste Management Policy</a> 468 469 470 471 </li> 472 473 <li class=""> 474 <a href="/planners/green-facts/compostable-foods-and-products/" class="" target="_self" title="Compostable Foods and Products">Compostable Foods and Products</a> 475 476 477 478 </li> 479 480 </ul> 481 482 483 </li> 484 485 <li class=""> 486 <a href="https://www.grbhouston.com/attendees/faqs/" class="" target="_self" title="FAQs">FAQs</a> 487 488 489 490 </li> 491 492 </ul> 493 494 495 </li> 496 497 <li class="item item-parent has-submenu"> 498 <a href="/exhibitors/" class="has-children" target="_self" title="Exhibitors">Exhibitors <span></span></a> 499 500 501 <ul class="dl-submenu"> 502 503 <li class=""> 504 <a href="https://www.grbhouston.com/planners/grb-brochure/" class="" target="_self" title="GRB Brochure">GRB Brochure</a> 505 506 507 508 </li> 509 510 <li class=""> 511 <a href="https://www.grbhouston.com/planners/grb-services/" class="" target="_self" title="GRB Services">GRB Services</a> 512 513 514 515 </li> 516 517 <li class=""> 518 <a href="https://www.grbhouston.com/planners/floor-plans/" class="" target="_self" title="Floor Plans">Floor Plans</a> 519 520 521 522 </li> 523 524 <li class=""> 525 <a href="/exhibitors/exhibitor-guidelines/" class="" target="_self" title="Exhibitor Guidelines">Exhibitor Guidelines</a> 526 527 528 529 </li> 530 531 <li class=""> 532 <a href="https://www.grbhouston.com/attendees/maps-and-directions/" class="" target="_self" title="Parking, Maps & Directions">Parking, Maps & Directions</a> 533 534 535 536 </li> 537 538 <li class=""> 539 <a href="/exhibitors/getting-around-houston/" class="" target="_self" title="Getting Around Houston">Getting Around Houston</a> 540 541 542 543 </li> 544 545 <li class=""> 546 <a href="http://www.visithoustontexas.com/" class="" target="_blank" title="Visit Houston">Visit Houston</a> 547 548 549 550 </li> 551 552 <li class=""> 553 <a href="http://www.downtownhouston.org/" class="" target="_self" title="Downtown Houston">Downtown Houston</a> 554 555 556 557 </li> 558 559 <li class=""> 560 <a href="https://www.grbhouston.com/attendees/faqs/" class="" target="_self" title="FAQs">FAQs</a> 561 562 563 564 </li> 565 566 </ul> 567 568 569 </li> 570 571 <li class="item item-parent has-submenu"> 572 <a href="/attendees/" class="has-children" target="_self" title="Attendees">Attendees <span></span></a> 573 574 575 <ul class="dl-submenu"> 576 577 <li class=""> 578 <a href="/attendees/events-calendar/" class="" target="_blank" title="Event Calendar">Event Calendar</a> 579 580 581 582 </li> 583 584 <li class=""> 585 <a href="/attendees/maps-and-directions/" class="" target="_self" title="Maps, Directions, & Transportation">Maps, Directions, & Transportation</a> 586 587 588 589 </li> 590 591 <li class=""> 592 <a href="/attendees/parking/" class="" target="_self" title="Parking">Parking</a> 593 594 595 596 </li> 597 598 <li class=""> 599 <a href="https://www.grbhouston.com/exhibitors/getting-around-houston/" class="" target="_self" title="Getting Aroun
599d Houston">Getting Around Houston</a> 600 601 602 603 </li> 604 605 <li class="has-submenu"> 606 <a href="/attendees/attendee-amenities/" class="has-children" target="_self" title="Attendee Amenities">Attendee Amenities <span></span></a> 607 608 609 <ul class="dl-submenu"> 610 611 <li class=""> 612 <a href="/attendees/attendee-amenities/restaurants/" class="" target="_self" title="Restaurants">Restaurants</a> 613 614 615 616 </li> 617 618 <li class=""> 619 <a href="/attendees/attendee-amenities/houston-infusion/" class="" target="_self" title="Art Installations - Houston Infusion">Art Installations - Houston Infusion</a> 620 621 622 623 </li> 624 625 </ul> 626 627 628 </li> 629 630 <li class=""> 631 <a href="/attendees/faqs/" class="" target="_self" title="FAQs">FAQs</a> 632 633 634 635 </li> 636 637 <li class=""> 638 <a href="/attendees/lost-and-found/" class="" target="_self" title="Lost and Found">Lost and Found</a> 639 640 641 642 </li> 643 644 <li class=""> 645 <a href="http://www.visithoustontexas.com/" class="" target="_blank" title="Visit Houston">Visit Houston</a> 646 647 648 649 </li> 650 651 <li class=""> 652 <a href="http://www.downtownhouston.org/" class="" target="_self" title="Downtown Houston">Downtown Houston</a> 653 654 655 656 </li> 657 658 </ul> 659 660 661 </li> 662 663 664 <li class="mobile-widgets"> 665 <div class="mobile-widgets-int"> 666 <!-- Disabled per client request. T: 258069 --> 667 <!-- <div class="social-mobile"> 668 <div class="item left"> 669 <a href="http://www.facebook.com/pages/Houston-TX/George-R-Brown-Convention-Center/50118257740" target="_blank"><i class="fab fa-facebook"></i></a> 670 </div> 671 <div class="item left"> 672 <a href="http://twitter.com/#!/grbcc" target="_blank"><i class="fab fa-twitter"></i></a> 673 </div> 674 <div class="item left"> 675 <a href="http://www.flickr.com/photos/29548060@N07/" target="_blank"><i class="fa fa-flickr"></i></a> 676 </div> 677 <div class="item left"> 678 <a href="http://www.youtube.com/results?search_type=&search_query=grbmarketing&aq=f" target="_blank"><i class="fab fa-youtube"></i></a> 679 </div> 680 </div> --> 681 <div class="clearfix"></div> 682 <div class="navSecondary-mobile" data-sv-secondarynav-mobile></div> 683 <div class="clearfix"></div> 684 <div class="searchBox" data-sv-searchBox></div> 685 <div class="clearfix"></div> 686 </div> 687 </li> 688 </ul> 689 <div class="clearfix"></div> 690 </div> 691 </div> 692 693
694<script type="text/javascript"> 695 require(["jquery", "plugins_common_custom_dlmenu", "domReady!"], function($) { 696 var snav = $('[data-sv-secondarynav]').html(); 697 $('[data-sv-secondarynav-mobile]').append(snav); 698 699 $("#dl-menu").dlmenu({ 700 animationClasses : { classin : 'dl-animate-in-2 dl-loading', classout : 'dl-animate-out-2 dl-loading' }, 701 useActiveItemAsLink : true 702 }); 703 }); 704</script>
704 705</div> 706 </div> 707 </div> 708 </div> 709</div> 710<div data-civid="570694e234d9436518a83ae8" class="contentRender contentRender_5 contentRender_type_widget contentRender_name_plugins_nav_breadcrumb_cc" data-sv-time="15" data-sv-index="5" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 711 712<div class="header-int-bottom"> 713 <div class="row header-row"> 714 <div class="header-info"> 715 You are here <i class="fa fa-angle-double-right"></i> 716 717 <a href="/" title="Home">Home</a> 718 719 720 721 722 723 724 725 726 727 728 729 730 <img src="/includes/public/assets/images/breadcrumb.png" /> 731 732 <span class="current">Contact Us</span> 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 </div> 748 </div> 749</div></div></div> 750 </div> 751 <div class="slideshowWrapper"> 752 753 </div> 754 <div class="content"> 755 <div data-civid="582f2aa418c1e346cf7e751b" class="contentRender contentRender_6 contentRender_type_panel contentRender_name_plugins_common_one_col_multi" data-sv-time="1" data-sv-index="6" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><div class="layout-panel one_col"> 756 <div class="row"> 757 <div class="columns small-12"> 758 <div data-civid="582f2aa418c1e346cf7e751f" class="contentRender contentRender_7 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="16" data-sv-index="7" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><section data-sv-core-textbox data-guid="8e1b3383-b194-4568-b904-b0a660341f3b"> 759 <h1>Contact Us</h1> 760 761<p>George R. Brown Convention Center<br> 7621001 Avenida de las Americas<br> 763Houston, Texas 77010<br> 764<strong>Main Line:</strong> 713-853-8000<br> 765<strong>Toll Free:</strong> 800-427-4697<br> 766<strong>Fax:</strong> 713-853-8290<br> 767<a data-sv-linklookup-id="mailto:[email protected]?subject=GRBinfo%20from%20GRBHouston.com" data-sv-linklookup-type="plugins_nav_mailto_link" href="mailto:[email protected]?subject=GRBinfo%20from%20GRBHouston.com" target="_blank">[email protected]</a></p> 768 769<p><strong>Office Hours:</strong> Monday through Friday: 8am - 5pm<br> 770<strong>After Hours and Weekends:</strong> Security Office - 713-853-8087</p> 771 772</section></div><div data-civid="582f2aa418c1e346cf7e751d" class="contentRender contentRender_8 contentRender_type_widget contentRender_name_plugins_crm_formbuilder" data-sv-time="372" data-sv-index="8" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 773 774 <form action="" method="post" name="frm_192" class="simpleForm" onsubmit="return svcrm.formBuilderScripts.validateForm(this);"> 775 <input id="formid" name="formid" type="hidden" value="192"> 776 <input id="groupid" name="groupid" type="hidden" value="5"> 777 <input id="isSubmitted" name="isSubmitted" value="1" type="hidden"> 778 779 780 <h3>Contact Details</h3> 781 782 <div id="rowcontainer_contact_fullname" class="row"> 783
784 <div id="labelcontainer_contact_fullname" class="medium-3 columns"> 785 <div id="td_contact_fullname"> 786 <label id="label_contact_fullname" for="contact_fullname" class=" formreq">Full Name*:</label> 787 788 </div> 789 </div> 790 791 <div id="fieldcontainer_contact_fullname" class="medium-9 columns"> 792 793 794 <input class=" " id="contact_fullname" name="contact_fullname" type="text" maxlength="100" size="25" value=""> 795 796 </div> 797 </div> 798 799 <div id="rowcontainer_udf_2979" class="row"> 800 801 <div id="labelcontainer_udf_2979" class="medium-3 columns"> 802 <div id="td_udf_2979"> 803 <label id="label_udf_2979" for="udf_2979" class=" formreq">Subject*:</label> 804 805 </div> 806 </div> 807 808 <div id="fieldcontainer_udf_2979" class="medium-9 columns"> 809 810 <select class=" " id="udf_2979" name="udf_2979" > 811 <option value="">--None--</option> 812 <option value="11436">Make a Comment</option> 813 814 <option value="11437">Lost & Found</option> 815 816 <option value="11438">Show Information</option> 817 818 <option value="11439">Parking & Directions</option> 819 820 <option value="11440">Marketing</option> 821 822 <option value="11441">Sales</option> 823 824 </select> 825 826 </div> 827 </div> 828 829 <div id="rowcontainer_contact_email" class="row"> 830
831 <div id="labelcontainer_contact_email" class="medium-3 columns"> 832 <div id="td_contact_email"> 833 <label id="label_contact_email" for="contact_email" class=" formreq">Email*:</label> 834 835 </div> 836 </div> 837 838 <div id="fieldcontainer_contact_email" class="medium-9 columns"> 839 840 841 <input class=" " id="contact_email" name="contact_email" type="text" maxlength="200" size="25" value="" onblur="svcrm.formBuilderScripts.checkEmail(this); "> 842 843 </div> 844 </div> 845 846 <div id="rowcontainer_contact_sendemail" class="row"> 847 848 <div class="medium-3 columns"></div> 849 850 <div id="fieldcontainer_contact_sendemail" class="medium-9 columns"> 851 852 <input class=" " id="contact_sendemail" name="contact_sendemail" type="checkbox" value="1"><label class=" formreq" for="contact_sendemail"> Permission to send to this email address </label> 853 <input type="hidden" name="contact_sendemail_checkbox_hidden" value="0"> 854 855 </div> 856 </div> 857 858 <div id="rowcontainer_contact_phone" class="row"> 859
860 <div id="labelcontainer_contact_phone" class="medium-3 columns"> 861 <div id="td_contact_phone"> 862 <label id="label_contact_phone" for="contact_phone" class=" formtext">Primary Phone:</label> 863 864 </div> 865 </div> 866 867 <div id="fieldcontainer_contact_phone" class="medium-9 columns"> 868 869 870 <input class=" " id="contact_phone" name="contact_phone" type="text" maxlength="40" size="25" value="" onblur="svcrm.formBuilderScripts.checkPhone(this); svcrm.formBuilderScripts.fmtPhone(this,'(xxx) xxx-xxxx'); "> 871 872 </div> 873 </div> 874 875 <h3>Comment/Description</h3> 876 877 <p class="text-center"><p>Please provide a comment or a description.</p></p> 878 879 <div id="rowcontainer_inquiry_comments" class="row"> 880 881 <div id="labelcontainer_inquiry_comments" class="medium-3 columns"> 882 <div id="td_inquiry_comments"> 883 <label id="label_inquiry_comments" for="inquiry_comments" class=" formtext">Comments:</label> 884 885 </div> 886 </div> 887 888 <div id="fieldcontainer_inquiry_comments" class="medium-9 columns"> 889 890 <textarea class=" " id="inquiry_comments" name="inquiry_comments" cols="40" rows="6" ></textarea> 891 892 </div> 893 </div> 894 895 <p class="hint formreq text-center">Red fields are required.</p> 896 897 <hr size="1" color="cccccc" width="100%"> 898 <div class="row"> 899 <div class="medium-6 small-centered captcha columns">
vendor: 107 bytes, lines 899-901
899 900 901 <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=
9016LfGMAAoAAAAAD57YWwQap4cu_4lPrffGVf__pkB
vendor: 26 bytes, lines 901-902
901"></script> 902
902<input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> 903 904 <input type="hidden" name="code" id="code" value="1234" /> 905 <input type="hidden" name="code_key" id="code_key" value="rO0ABXQABDEyMzQ=" /> 906 <input name="youcompleteme_sv" type="text" value="" autocomplete="field-youcompleteme_sv-1" style="top:-999999px;left:-999999px;position:absolute;" /> 907 908 </div> 909 </div> 910 911 <hr size="1" color="cccccc" width="100%"> 912 <div class="row"> 913 <div class="medium-6 small-centered columns formCntrls"> 914 915 <label for="savefrm_button" style='display:none;'>Submit</label> 916 <input class="button" id="savefrm_button" name="savefrm" type="Submit" value="Submit"> 917 <label for="resetfrm_button" style='display:none;'>Reset</label> 918 <input class="button" id="resetfrm_button" type="Reset" value="Reset"> 919 920 </div> 921 </div> 922 </form> 923 924 925
925<script type="text/javascript"> 926 /* IP Address Tracking enabled. IP addresses are being tracked in order to ensure compliance with local privacy laws */ 927 var __sv = __sv || {}; 928 929 930 (function(){ 931 function ___onload_function(){ 932 933 }; 934 935 936 937 if(window.addEventListener){ 938 window.addEventListener('load',___onload_function,false); 939 }else if(window.attachEvent){ 940 window.attachEvent('onload',___onload_function); 941 } 942 })(); 943 </script>
943 944 945
945<script type="text/javascript"> 946 function AoProcessForm(frm){ 947 var changeSaveFrmButtonTypeAndSubmit = function(frm){ 948 try{ 949 if(frm && 'savefrm' in frm && 'type' in frm.savefrm){ 950 frm.savefrm.style.opacity = '0'; 951 frm.savefrm.setAttribute("type","input"); 952 } 953 frm.submit(); 954 }catch(e){ 955 if(console && 'log' in console){ 956 console.log("Error trying to pass the save button", e); 957 } 958 } 959 }; 960 961 changeSaveFrmButtonTypeAndSubmit(frm); 962 963 } 964 </script>
964 965
965<script type="text/javascript"> 966 (function(){ 967 968 svcrm = ((typeof svcrm != 'undefined') ? svcrm : {}); 969 svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {}); 970 971 svcrm.formBuilderScripts.chkBoxes = function(fld){ 972 var i = 0; 973 var cnt = 0; 974 if(fld.length==undefined && fld.checked == true) return true; 975 for (i = 0; i < fld.length; i++) { 976 if (fld[i].checked) { 977 cnt++; 978 break; 979 } 980 } 981 if (cnt == 0) 982 return false; 983 else 984 return true; 985 }; 986 987 svcrm.formBuilderScripts.updReq = function(){ 988 var i = 0; 989 var st = new Array(); 990 var zp = new Array(); 991 992 993 994 return true; 995 }; 996 997 // removes the leading and trailing spaces from a string, 998 // similar to the java.lang.String.trim() function 999 // added by lturetsky, taken from http://www.voy.com/1888/58.html 1000 svcrm.formBuilderScripts.trim = function(st){ 1001 var len = st.length 1002 var begin = 0, end = len - 1; 1003 while (st.charAt(begin) == " " && begin < len) { 1004 begin++; 1005 } 1006 while (st.charAt(end) == " " && begin < end) { 1007 end--; 1008 } 1009 return st.substring(begin, end+1); 1010 }; 1011 1012 1013 svcrm.formBuilderScripts.validateForm = function(frm){ 1014 var errMsg = '', reqMsg = '', fmtMsg = ''; 1015 1016 1017 1018 if (svcrm.formBuilderScripts.trim(document.getElementById('contact_fullname').value).length == 0) 1019 1020 reqMsg += ' Full Name\n'; 1021 1022 if (document.getElementById('udf_2979').selectedIndex == 0) 1023 1024 reqMsg += ' Subject\n'; 1025 1026 if (svcrm.formBuilderScripts.trim(document.getElementById('contact_email').value).length == 0) 1027 1028 reqMsg += ' Email\n'; 1029 1030 if (!svcrm.formBuilderScripts.checkEmail(document.getElementById('contact_email'))) 1031 fmtMsg += ' Please enter a valid email address for: Email\n'; 1032 1033 if (!document.getElementById('contact_sendemail').checked) 1034 1035 reqMsg += ' Permission to send to this email address\n'; 1036 1037 svcrm.formBuilderScripts.fmtPhone(document.getElementById('contact_phone')); 1038 1039 1040 //only validate the captcha if it is there 1041 var cdElm = document.getElementById('code'); 1042 if (cdElm !== null && cdElm.value.length == 0){ 1043 reqMsg += ' Image Code\n'; 1044 } 1045 1046 //allow a hook in for custom validations 1047 var customValidations = svcrm.formBuilderScripts.processCustomValidations(); 1048 if('reqMsg' in customValidations && customValidations.reqMsg.length){ 1049 reqMsg += customValidations.reqMsg; 1050 } 1051 if('fmtMsg' in customValidations && customValidations.fmtMsg.length){ 1052 fmtMsg += customValidations.fmtMsg; 1053 } 1054 1055 return svcrm.formBuilderScripts.processValidationMessages(reqMsg,fmtMsg,frm); 1056 }; 1057 1058 //core will do nothing but gives devs a hook 1059 svcrm.formBuilderScripts.processCustomValidations = function(){ 1060 var rtnvar = {reqMsg:'',fmtMsg:''}; 1061 return rtnvar; 1062 }; 1063 1064 //might as well split this out so customizations can be made 1065 svcrm.formBuilderScripts.processValidationMessages = function(reqMsg,fmtMsg,frm){ 1066 var errMsg = ''; 1067 if ((reqMsg.length + fmtMsg.length) != 0) { 1068 1069 errMsg = 'This information cannot be sent at this time!\n\n'; 1070 if (reqMsg.length > 0) 1071 errMsg += 'The following fields are required!\n' + reqMsg + '\n'; 1072 1073 if (fmtMsg.length > 0) 1074 errMsg += 'The following information is invalid!\n' + fmtMsg + '\n'; 1075 1076 1077 svcrm.formBuilderScripts.showValidationErrorMsg(errMsg); 1078 return false; 1079 }else{ 1080 AoProcessForm(frm); 1081 return false; 1082 } 1083 }; 1084 1085 //why not :) 1086 svcrm.formBuilderScripts.showValidationErrorMsg = function(msg){ 1087 alert(msg); 1088 }; 1089 1090 svcrm.formBuilderScripts.updateDOB = function(monthFld,dayFld) { 1091 var days = 0; 1092 if (monthFld.selectedIndex == 0) return true; 1093 1094 switch (monthFld.selectedIndex) { 1095 case 2: 1096 days = 30; 1097 break; 1098 case 4: 1099 case 6: 1100 case 9: 1101 case 11: 1102 days = 31; 1103 break; 1104 default: 1105 days = 32; 1106 break; 1107 } 1108 1109 if (dayFld.options[dayFld.selectedIndex].value >= days) 1110 dayFld.selectedIndex = days - 1; 1111 1112 dayFld.length = days; 1113 for (var i = 28; i < days; i++) {
1114 dayFld.options[i].value = String(i); 1115 dayFld.options[i].text = String(i); 1116 } 1117 return true; 1118 } 1119 1120 })(); 1121 </script>
1121 1122 1123
1123<script type="text/javascript"> 1124 1125 1126 (function(){ 1127 svcrm = ((typeof svcrm != 'undefined') ? svcrm : {}); 1128 svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {}); 1129 1130 1131 window.svcrm.formBuilderScripts.states = [{"STATES":"**** - **","COUNTRYNAME":"AFGHANISTAN","COUNTRYID":239},{"STATES":"**** - **","COUNTRYNAME":"Ã LAND ISLANDS","COUNTRYID":272},{"STATES":"**** - **","COUNTRYNAME":"ALBANIA","COUNTRYID":1},{"STATES":"**** - **","COUNTRYNAME":"ALGERIA","COUNTRYID":2},{"STATES":"**** - **","COUNTRYNAME":"AMERICAN SAMOA","COUNTRYID":3},{"STATES":"**** - **","COUNTRYNAME":"ANDORRA","COUNTRYID":4},{"STATES":"**** - **","COUNTRYNAME":"ANGOLA","COUNTRYID":250},{"STATES":"**** - **","COUNTRYNAME":"ANGUILLA","COUNTRYID":5},{"STATES":"**** - **","COUNTRYNAME":"ANTARCTICA","COUNTRYID":256},{"STATES":"**** - **","COUNTRYNAME":"ANTIGUA AND BARBUDA","COUNTRYID":6},{"STATES":"**** - **","COUNTRYNAME":"ARGENTINA","COUNTRYID":7},{"STATES":"**** - **","COUNTRYNAME":"ARMENIA","COUNTRYID":251},{"STATES":"**** - **","COUNTRYNAME":"ARUBA","COUNTRYID":8},{"STATES":"**** - ** NSWNSW - New South Wales QldQld - Queensland SASA - South Australia TasTas - Tasmania VicVic - Victoria WAWA - Western Australia","COUNTRYNAME":"AUSTRALIA","COUNTRYID":9},{"STATES":"**** - **","COUNTRYNAME":"AUSTRIA","COUNTRYID":10},{"STATES":"**** - **","COUNTRYNAME":"AZERBAIJAN","COUNTRYID":252},{"STATES":"**** - **","COUNTRYNAME":"BAHAMAS","COUNTRYID":12},{"STATES":"**** - **","COUNTRYNAME":"BAHRAIN","COUNTRYID":13},{"STATES":"**** - **","COUNTRYNAME":"BANGLADESH","COUNTRYID":14},{"STATES":"**** - **","COUNTRYNAME":"BARBADOS","COUNTRYID":15},{"STATES":"**** - **","COUNTRYNAME":"BELARUS","COUNTRYID":18},{"STATES":"**** - **","COUNTRYNAME":"BELGIUM","COUNTRYID":16},{"STATES":"**** - **","COUNTRYNAME":"BELIZE","COUNTRYID":17},{"STATES":"**** - **","COUNTRYNAME":"BENIN","COUNTRYID":19},{"STATES":"**** - **","COUNTRYNAME":"BERMUDA","COUNTRYID":20},{"STATES":"**** - **","COUNTRYNAME":"BHUTAN","COUNTRYID":240},{"STATES":"**** - **","COUNTRYNAME":"BOLIVIA, PLURINATIONAL STATE OF","COUNTRYID":21},{"STATES":"**** - **","COUNTRYNAME":"BOSNIA AND HERZEGOVINA","COUNTRYID":23},{"STATES":"**** - **","COUNTRYNAME":"BOTSWANA","COUNTRYID":24},{"STATES":"**** - **","COUNTRYNAME":"BOUVET ISLAND","COUNTRYID":253},{"STATES":"**** - **","COUNTRYNAME":"BRAZIL","COUNTRYID":25},{"STATES":"**** - **","COUNTRYNAME":"BRITISH INDIAN OCEAN TERRITORY","COUNTRYID":278},{"STATES":"**** - **","COUNTRYNAME":"BRUNEI DARUSSALAM","COUNTRYID":27},{"STATES":"**** - **","COUNTRYNAME":"BULGARIA","COUNTRYID":28},{"STATES":"**** - **","COUNTRYNAME":"BURKINA FASO","COUNTRYID":29},{"STATES":"**** - **","COUNTRYNAME":"BURUNDI","COUNTRYID":30},{"STATES":"**** - **","COUNTRYNAME":"CAMBODIA","COUNTRYID":31},{"STATES":"**** - **","COUNTRYNAME":"CAMEROON","COUNTRYID":32},{"STATES":"**** - ** ABAB - Alberta BCBC - British Columbia MBMB - Manitoba NBNB - New Brunswick NLNL - Newfoundland and Labrador NTNT - Northwest Territory NSNS - Nova Scotia NUNU - Nunavut ONON - Ontario PEPE - Prince Edward Island QCQC - Quebec SKSK - Saskatchewan YTYT - Yukon","COUNTRYNAME":"CANADA","COUNTRYID":33},{"STATES":"**** - **","COUNTRYNAME":"CANARY ISLANDS","COUNTRYID":34},{"STATES":"**** - **","COUNTRYNAME":"CAPE VERDE","COUNTRYID":35},{"STATES":"**** - **","COUNTRYNAME":"CAYMAN ISLANDS","COUNTRYID":36},{"STATES":"**** - **","COUNTRYNAME":"CENTRAL AFRICAN REPUBLIC","COUNTRYID":37},{"STATES":"**** - **","COUNTRYNAME":"CHAD","COUNTRYID":38},{"STATES":"**** - ** SANSAN - Santiago","COUNTRYNAME":"CHILE","COUNTRYID":40},{"STATES":"**** - **","COUNTRYNAME":"CHINA","COUNTRYID":41},{"STATES":"**** - **","COUNTRYNAME":"CHRISTMAS ISLAND","COUNTRYID":254},{"STATES":"**** - **","COUNTRYNAME":"COCOS (KEELING) ISLANDS","COUNTRYID":241},{"STATES":"**** - **","COUNTRYNAME":"COLOMBIA","COUNTRYID":42},{"STATES":"**** - **","COUNTRYNAME":"COMOROS","COUNTRYID":255},{"STATES":"**** - **","COUNTRYNAME":"CONGO","COUNTRYID":43},{"STATES":"**** - **","COUNTRYNAME":"CONGO, THE DEMOCRATIC REPUBLIC OF THE","COUNTRYID":274},{"STATES":"**** - **","COUNTRYNAME":"COOK ISLANDS","COUNTRYID":44},{"STATES":"**** - **","COUNTRYNAME":"COSTA RICA","COUNTRYID":45},{"STATES":"**** - **","COUNTRYNAME":"CÃTE D'IVOIRE","COUNTRYID":94},{"STATES":"**** - **","COUNTRYNAME":"CROATIA","COUNTRYID":46},{"STATES":"**** - **","COUNTRYNAME":"CUBA","COUNTRYID":242},{"STATES":"**** - **","COUNTRYNAME":"CURACAO","COUNTRYID":47},{"STATES":"**** - **","COUNTRYNAME":"CYPRUS","COUNTRYID":48},{"STATES":"**** - **","COUNTRYNAME":"CZECH REPUBLIC","COUNTRYID":49},{"STATES":"**** - **","COUNTRYNAME":"DENMARK","COUNTRYID":50},{"STATES":"**** - **","COUNTRYNAME":"DJIBOUTI","COUNTRYID":51},{"STATES":"**** - **","COUNTRYNAME":"DOMINICA","COUNTRYID":52},{"STATES":"**** - **","COUNTRYNAME":"DOMINICAN REPUBLIC","COUNTRYID":53},{"STATES":"**** - **","COUNTRYNAME":"ECUADOR","COUNTRYID":54},{"STATES":"**** - **","COUNTRYNAME":"EGYPT","COUNTRYID":55},{"STATES":"**** - **","COUNTRYNAME":"EL SALVADOR","COUNTRYID":56},{"STATES":"**** - **","COUNTRYNAME":"EQUATORIAL GUINEA","COUNTRYID":58},{"STATES":"**** - **","COUNTRYNAME":"ERITREA","COUNTRYID":59},{"STATES":"**** - **","COUNTRYNAME":"ESTONIA","COUNTRYID":60},{"STATES":"**** - **","COUNTRYNAME":"ETHIOPIA","COUNTRYID":61},{"STATES":"**** - **","COUNTRYNAME":"FALKLAND ISLANDS (MALVINAS)","COUNTRYID":258},{"STATES":"**** - **","COUNTRYNAME":"FAROE ISLANDS","COUNTRYID":62},{"STATES":"**** - **","COUNTRYNAME":"FIJI","COUNTRYID":64},{"STATES":"**** - **","COUNTRYNAME":"FINLAND","COUNTRYID":65},{"STATES":"**** - **","COUNTRYNAME":"FRANCE","COUNTRYID":66},{"STATES":"**** - **","COUNTRYNAME":"FRENCH GUIANA","COUNTRYID":67},{"STATES":"**** - **","COUNTRYNAME":"FRENCH POLYNESIA","COUNTRYID":197},{"STATES":"**** - **","COUNTRYNAME":"FRENCH SOUTHERN TERRITORIES","COUNTRYID":283},{"STATES":"**** - **","COUNTRYNAME":"GABON","COUNTRYID":69},{"STATES":"**** - **","COUNTRYNAME":"GAMBIA","COUNTRYID":70},{"STATES":"**** - **","COUNTRYNAME":"GEORGIA","COUNTRYID":71},{"STATES":"**** - **","COUNTRYNAME":"GERMANY","COUNTRYID":72},{"STATES":"**** - **","COUNTRYNAME":"GHANA","COUNTRYID":73},{"STATES":"**** - **","COUNTRYNAME":"GIBRALTAR","COUNTRYID":74},{"STATES":"**** - **","COUNTRYNAME":"GREECE","COUNTRYID":75},{"STATES":"**** - **","COUNTRYNAME":"GREENLAND","COUNTRYID":76},{"STATES":"**** - **","COUNTRYNAME":"GRENADA","COUNTRYID":77},{"STATES":"**** - **","COUNTRYNAME":"GUADELOUPE","COUNTRYID":78},{"STATES":"**** - **","COUNTRYNAME":"GUAM","COUNTRYID":79},{"STATES":"**** - **","COUNTRYNAME":"GUATEMALA","COUNTRYID":80},{"STATES":"**** - **","COUNTRYNAME":"GUERNSEY","COUNTRYID":275},{"STATES":"**** - **","COUNTRYNAME":"GUINEA","COUNTRYID":81},{"STATES":"**** - **","COUNTRYNAME":"GUINEA-BISSAU","COUNTRYID":82},{"STATES":"**** - **","COUNTRYNAME":"GUYANA","COUNTRYID":83},{"STATES":"**** - **","COUNTRYNAME":"HAITI","COUNTRYID":84},{"STATES":"**** - **","COUNTRYNAME":"HEARD ISLAND AND MCDONALD ISLANDS","COUNTRYID":276},{"STATES":"**** - **","COUNTRYNAME":"HOLY SEE (VATICAN CITY STATE)","COUNTRYID":236},{"STATES":"**** - **","COUNTRYNAME":"HONDURAS","COUNTRYID":86},{"STATES":"**** - **","COUNTRYNAME":"HONG KONG","COUNTRYID":87},{"STATES":"**** - **","COUNTRYNAME":"HUNGARY","COUNTRYID":88},{"STATES":"**** - **","COUNTRYNAME":"ICELAND","COUNTRYID":89},{"STATES":"**** - **","COUNTRYNAME":"INDIA","COUNTRYID":90},{"STATES":"**** - **","COUNTRYNAME":"INDONESIA","COUNTRYID":91},{"STATES":"**** - **","COUNTRYNAME":"IRAN, ISLAMIC REPUBLIC OF","COUNTRYID":235},{"STATES":"**** - **","COUNTRYNAME":"IRAQ","COUNTRYID":238},{"STATES":"**** - **","COUNTRYNAME":"IRELAND","COUNTRYID":234},{"STATES":"**** - **","COUNTRYNAME":"ISLE OF MAN","COUNTRYID":277},{"STATES":"**** - **","COUNTRYNAME":"ISRAEL","COUNTRYID":92},{"STATES":"**** - **","COUNTRYNAME":"ITALY","COUNTRYID":93},{"STATES":"**** - **","COUNTRYNAME":"JAMAICA","COUNTRYID":95},{"STATES":"**** - **","COUNTRYNAME":"JAPAN","COUNTRYID":96},{"STATES":"**** - **","COUNTRYNAME":"JERSEY","COUNTRYID":279},{"STATES":"**** - **","COUNTRYNAME":"JORDAN","COUNTRYID":97},{"STATES":"**** - **","COUNTRYNAME":"KAZAKHSTAN","COUNTRYID":98},{"STATES":"**** - **","COUNTRYNAME":"KENYA","COUNTRYID":99},{"STATES":"**** - **","COUNTRYNAME":"KIRIBATI","COUNTRYID":100},{"STATES":"**
1131** - **","COUNTRYNAME":"KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF","COUNTRYID":264},{"STATES":"**** - **","COUNTRYNAME":"KOREA, REPUBLIC OF","COUNTRYID":177},{"STATES":"**** - **","COUNTRYNAME":"KOSRAE","COUNTRYID":101},{"STATES":"**** - **","COUNTRYNAME":"KUWAIT","COUNTRYID":102},{"STATES":"**** - **","COUNTRYNAME":"KYRGYZSTAN","COUNTRYID":103},{"STATES":"**** - **","COUNTRYNAME":"LAO PEOPLE'S DEMOCRATIC REPUBLIC","COUNTRYID":104},{"STATES":"**** - **","COUNTRYNAME":"LATVIA","COUNTRYID":105},{"STATES":"**** - **","COUNTRYNAME":"LEBANON","COUNTRYID":106},{"STATES":"**** - **","COUNTRYNAME":"LESOTHO","COUNTRYID":107},{"STATES":"**** - **","COUNTRYNAME":"LIBERIA","COUNTRYID":108},{"STATES":"**** - **","COUNTRYNAME":"LIBYAN ARAB JAMAHIRIYA","COUNTRYID":259},{"STATES":"**** - **","COUNTRYNAME":"LIECHTENSTEIN","COUNTRYID":109},{"STATES":"**** - **","COUNTRYNAME":"LITHUANIA","COUNTRYID":110},{"STATES":"**** - **","COUNTRYNAME":"LUXEMBOURG","COUNTRYID":111},{"STATES":"**** - **","COUNTRYNAME":"MACAO","COUNTRYID":112},{"STATES":"**** - **","COUNTRYNAME":"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF","COUNTRYID":113},{"STATES":"**** - **","COUNTRYNAME":"MADAGASCAR","COUNTRYID":114},{"STATES":"**** - **","COUNTRYNAME":"MALAWI","COUNTRYID":116},{"STATES":"**** - **","COUNTRYNAME":"MALAYSIA","COUNTRYID":117},{"STATES":"**** - **","COUNTRYNAME":"MALDIVES","COUNTRYID":118},{"STATES":"**** - **","COUNTRYNAME":"MALI","COUNTRYID":119},{"STATES":"**** - **","COUNTRYNAME":"MALTA","COUNTRYID":120},{"STATES":"**** - ** MHMH - Marshall Islands","COUNTRYNAME":"MARSHALL ISLANDS","COUNTRYID":121},{"STATES":"**** - **","COUNTRYNAME":"MARTINIQUE","COUNTRYID":122},{"STATES":"**** - **","COUNTRYNAME":"MAURITANIA","COUNTRYID":123},{"STATES":"**** - **","COUNTRYNAME":"MAURITIUS","COUNTRYID":124},{"STATES":"**** - **","COUNTRYNAME":"MAYOTTE","COUNTRYID":260},{"STATES":"**** - **","COUNTRYNAME":"MEXICO","COUNTRYID":125},{"STATES":"**** - **","COUNTRYNAME":"MICRONESIA, FEDERATED STATES OF","COUNTRYID":63},{"STATES":"**** - **","COUNTRYNAME":"MOLDOVA, REPUBLIC OF","COUNTRYID":126},{"STATES":"**** - **","COUNTRYNAME":"MONACO","COUNTRYID":127},{"STATES":"**** - **","COUNTRYNAME":"MONGOLIA","COUNTRYID":261},{"STATES":"**** - **","COUNTRYNAME":"MONTENEGRO","COUNTRYID":115},{"STATES":"**** - **","COUNTRYNAME":"MONTSERRAT","COUNTRYID":128},{"STATES":"**** - **","COUNTRYNAME":"MOROCCO","COUNTRYID":129},{"STATES":"**** - **","COUNTRYNAME":"MOZAMBIQUE","COUNTRYID":130},{"STATES":"**** - **","COUNTRYNAME":"MYANMAR","COUNTRYID":131},{"STATES":"**** - **","COUNTRYNAME":"NAMIBIA","COUNTRYID":132},{"STATES":"**** - **","COUNTRYNAME":"NAURU","COUNTRYID":262},{"STATES":"**** - **","COUNTRYNAME":"NEPAL","COUNTRYID":133},{"STATES":"**** - **","COUNTRYNAME":"NETHERLANDS","COUNTRYID":134},{"STATES":"**** - **","COUNTRYNAME":"NETHERLANDS ANTILLES","COUNTRYID":135},{"STATES":"**** - **","COUNTRYNAME":"NEW CALEDONIA","COUNTRYID":136},{"STATES":"**** - **","COUNTRYNAME":"NEW ZEALAND","COUNTRYID":137},{"STATES":"**** - **","COUNTRYNAME":"NICARAGUA","COUNTRYID":138},{"STATES":"**** - **","COUNTRYNAME":"NIGER","COUNTRYID":139},{"STATES":"**** - **","COUNTRYNAME":"NIGERIA","COUNTRYID":140},{"STATES":"**** - **","COUNTRYNAME":"NIUE","COUNTRYID":263},{"STATES":"**** - **","COUNTRYNAME":"NORFOLK ISLAND","COUNTRYID":141},{"STATES":"**** - **","COUNTRYNAME":"NORTHERN MARIANA ISLANDS","COUNTRYID":143},{"STATES":"**** - **","COUNTRYNAME":"NORWAY","COUNTRYID":144},{"STATES":"**** - **","COUNTRYNAME":"OMAN","COUNTRYID":145},{"STATES":"**** - **","COUNTRYNAME":"PAKISTAN","COUNTRYID":146},{"STATES":"**** - **","COUNTRYNAME":"PALAU","COUNTRYID":147},{"STATES":"**
1131** - **","COUNTRYNAME":"PALESTINIAN TERRITORY, OCCUPIED","COUNTRYID":281},{"STATES":"**** - **","COUNTRYNAME":"PANAMA","COUNTRYID":148},{"STATES":"**** - **","COUNTRYNAME":"PAPUA NEW GUINEA","COUNTRYID":149},{"STATES":"**** - **","COUNTRYNAME":"PARAGUAY","COUNTRYID":150},{"STATES":"**** - **","COUNTRYNAME":"PERU","COUNTRYID":151},{"STATES":"**** - **","COUNTRYNAME":"PHILIPPINES","COUNTRYID":152},{"STATES":"**** - **","COUNTRYNAME":"PITCAIRN","COUNTRYID":265},{"STATES":"**** - **","COUNTRYNAME":"POLAND","COUNTRYID":153},{"STATES":"**** - **","COUNTRYNAME":"PONAPE","COUNTRYID":154},{"STATES":"**** - **","COUNTRYNAME":"PORTUGAL","COUNTRYID":155},{"STATES":"**** - **","COUNTRYNAME":"PUERTO RICO","COUNTRYID":156},{"STATES":"**** - **","COUNTRYNAME":"QATAR","COUNTRYID":157},{"STATES":"**** - **","COUNTRYNAME":"RÃUNION","COUNTRYID":160},{"STATES":"**** - **","COUNTRYNAME":"ROMANIA","COUNTRYID":161},{"STATES":"**** - **","COUNTRYNAME":"RUSSIAN FEDERATION","COUNTRYID":163},{"STATES":"**** - **","COUNTRYNAME":"RWANDA","COUNTRYID":164},{"STATES":"**** - **","COUNTRYNAME":"SABA","COUNTRYID":165},{"STATES":"**** - **","COUNTRYNAME":"SAINT BARTHÃLEMY","COUNTRYID":273},{"STATES":"**** - **","COUNTRYNAME":"SAINT HELENA","COUNTRYID":245},{"STATES":"**** - **","COUNTRYNAME":"SAINT KITTS AND NEVIS","COUNTRYID":185},{"STATES":"**** - **","COUNTRYNAME":"SAINT LUCIA","COUNTRYID":186},{"STATES":"**** - **","COUNTRYNAME":"SAINT MARTIN","COUNTRYID":280},{"STATES":"**** - **","COUNTRYNAME":"SAINT PIERRE AND MIQUELON","COUNTRYID":269},{"STATES":"**** - **","COUNTRYNAME":"SAINT VINCENT AND THE GRENADINES","COUNTRYID":190},{"STATES":"**** - **","COUNTRYNAME":"SAIPAN","COUNTRYID":166},{"STATES":"**** - **","COUNTRYNAME":"SAMOA","COUNTRYID":228},{"STATES":"**** - **","COUNTRYNAME":"SAN MARINO","COUNTRYID":266},{"STATES":"**** - **","COUNTRYNAME":"SAO TOME AND PRINCIPE","COUNTRYID":267},{"STATES":"**** - **","COUNTRYNAME":"SAUDI ARABIA","COUNTRYID":167},{"STATES":"**** - **","COUNTRYNAME":"SCOTLAND","COUNTRYID":168},{"STATES":"**** - **","COUNTRYNAME":"SENEGAL","COUNTRYID":169},{"STATES":"**** - **","COUNTRYNAME":"SERBIA","COUNTRYID":284},{"STATES":"**** - **","COUNTRYNAME":"SEYCHELLES","COUNTRYID":170},{"STATES":"**** - **","COUNTRYNAME":"SIERRA LEONE","COUNTRYID":171},{"STATES":"**** - **","COUNTRYNAME":"SINGAPORE","COUNTRYID":172},{"STATES":"**** - **","COUNTRYNAME":"SLOVAKIA","COUNTRYID":173},{"STATES":"**** - **","COUNTRYNAME":"SLOVENIA","COUNTRYID":174},{"STATES":"**** - **","COUNTRYNAME":"SOLOMON ISLANDS","COUNTRYID":175},{"STATES":"**** - **","COUNTRYNAME":"SOMALIA","COUNTRYID":244},{"STATES":"**** - **","COUNTRYNAME":"SOUTH AFRICA","COUNTRYID":176},{"STATES":"**** - **","COUNTRYNAME":"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS","COUNTRYID":268},{"STATES":"**** - **","COUNTRYNAME":"SPAIN","COUNTRYID":178},{"STATES":"**** - **","COUNTRYNAME":"SRI LANKA","COUNTRYID":179},{"STATES":"**** - **","COUNTRYNAME":"ST. BARTHELEMY","COUNTRYID":180},{"STATES":"**** - **","COUNTRYNAME":"ST. CHRISTOPHER","COUNTRYID":181},{"STATES":"**** - **","COUNTRYNAME":"ST. CROIX","COUNTRYID":182},{"STATES":"**** - **","COUNTRYNAME":"ST. EUSTATIUS","COUNTRYID":183},{"STATES":"**** - **","COUNTRYNAME":"ST. JOHN","COUNTRYID":184},{"STATES":"**** - **","COUNTRYNAME":"ST. MAARTEN","COUNTRYID":187},{"STATES":"**** - **","COUNTRYNAME":"ST. MARTIN","COUNTRYID":188},{"STATES":"**** - **","COUNTRYNAME":"ST. THOMAS","COUNTRYID":189},{"STATES":"**** - **","COUNTRYNAME":"SUDAN","COUNTRYID":191},{"STATES":"**** - **","COUNTRYNAME":"SURINAME","COUNTRYID":192},{"STATES":"**** - **","COUNTRYNAME":"SVALBARD AND JAN MAYEN","COUNTRYID":282},{"STATES":"**** - **","COUNTRYNAME":"SWAZILAND","COUNTRYID":193},{"STATES":"**** - **","COUNTRYNAME":"SWEDEN","COUNTRYID":194},{"STATES":"**** - **","COUNTRYNAME":"SWITZERLAND","COUNTRYID":195},{"STATES":"**** - **","COUNTRYNAME":"SYRIAN ARAB REPUBLIC","COUNTRYID":196},{"STATES":"**** - **","COUNTRYNAME":"TAIWAN, PROVINCE OF CHINA","COUNTRYID":198},{"STATES":"**** - **","COUNTRYNAME":"TAJIKISTAN","COUNTRYID":199},{"STATES":"**** - **","COUNTRYNAME":"TANZANIA, UNITED REPUBLIC OF","COUNTRYID":200},{"STATES":"**** - **","COUNTRYNAME":"THAILAND","COUNTRYID":201},{"STATES":"**** - **","COUNTRYNAME":"TIMOR-LESTE","COUNTRYID":257},{"STATES":"**** - **","COUNTRYNAME":"TINIAN","COUNTRYID":202},{"STATES":"**** - **","COUNTRYNAME":"TOGO","COUNTRYID":203},{"STATES":"**** - **","COUNTRYNAME":"TOKELAU","COUNTRYID":270},{"STATES":"**** - **","COUNTRYNAME":"TONGA","COUNTRYID":204},{"STATES":"**** - **","COUNTRYNAME":"TORTOLA","COUNTRYID":205},{"STATES":"**** - **","COUNTRYNAME":"TRINIDAD AND TOBAGO","COUNTRYID":206},{"STATES":"**** - **","COUNTRYNAME":"TRUK","COUNTRYID":207},{"STATES":"**** - **","COUNTRYNAME":"TUNISIA","COUNTRYID":208},{"STATES":"**** - **","COUNTRYNAME":"TURKEY","COUNTRYID":209},{"STATES":"**** - **","COUNTRYNAME":"TURKMENISTAN","COUNTRYID":271},{"STATES":"**** - **","COUNTRYNAME":"TURKS AND CAICOS ISLANDS","COUNTRYID":210},{"STATES":"**** - **","COUNTRYNAME":"TUVALU","COUNTRYID":211},{"STATES":"**** - **","COUNTRYNAME":"UGANDA","COUNTRYID":212},{"STATES":"**** - **","COUNTRYNAME":"UKRAINE","COUNTRYID":213},{"STATES":"**** - **","COUNTRYNAME":"UNION ISLAND","COUNTRYID":214},{"STATES":"**** - **","COUNTRYNAME":"UNITED ARAB EMIRATES","COUNTRYID":215},{"STATES":"**** - **","COUNTRYNAME":"UNITED KINGDOM","COUNTRYID":57},{"STATES":"**** - ** ALAL - Alabama AKAK - Alaska AZAZ - Arizona ARAR - Arkansas CACA - California COCO - Colorado CTCT - Connecticut DEDE - Delaware DCDC - District of Columbia FLFL - Florida GAGA - Georgia HIHI - Hawaii IDID - Idaho ILIL - Illinois ININ - Indiana IAIA - Iowa KSKS - Kansas KYKY - Kentucky LALA - Louisiana MEME - Maine MDMD - Maryland MAMA - Massachusetts MIMI - Michigan MNMN - Minnesota MSMS - Mississippi MOMO - Missouri MTMT - Montana NENE - Nebraska NVNV - Nevada NHNH - New Hampshire NJNJ - New Jersey NMNM - New Mexico NYNY - New York NCNC - North Carolina NDND - North Dakota OHOH - Ohio OKOK - Oklahoma OROR - Oregon PAPA - Pennsylvania RIRI - Rhode Island SCSC - South Carolina SDSD - South Dakota TNTN - Tennessee TXTX - Texas UTUT - Utah VTVT - Vermont VAVA - Virginia WAWA - Washington WVWV - West Virginia WIWI - Wisconsin WYWY - Wyoming","COUNTRYNAME":"UNITED STATES","COUNTRYID":217},{"STATES":"**** - **","COUNTRYNAME":"UNITED STATES MINOR OUTLYING ISLANDS","COUNTRYID":225},{"STATES":"**** - **","COUNTRYNAME":"URUGUAY","COUNTRYID":218},{"STATES":"**** - **","COUNTRYNAME":"UZBEKISTAN","COUNTRYID":220},{"STATES":"**** - **","COUNTRYNAME":"VANUATU","COUNTRYID":221},{"STATES":"**** - **","COUNTRYNAME":"VENEZUELA, BOLIVARIAN REPUBLIC OF","COUNTRYID":222},{"STATES":"**** - **","COUNTRYNAME":"VIET NAM","COUNTRYID":223},{"STATES":"**** - **","COUNTRYNAME":"VIRGIN ISLANDS, BRITISH","COUNTRYID":26},{"STATES":"**** - **","COUNTRYNAME":"VIRGIN ISLANDS, U.S.","COUNTRYID":219},{"STATES":"**** - **","COUNTRYNAME":"WALES","COUNTRYID":226},{"STATES":"**** - **","COUNTRYNAME":"WALLIS AND FUTUNA","COUNTRYID":227},{"STATES":"**** - **","COUNTRYNAME":"WESTERN SAHARA","COUNTRYID":246},{"STATES":"**** - **","COUNTRYNAME":"YAP","COUNTRYID":229},{"STATES":"**** - **","COUNTRYNAME":"YEMEN","COUNTRYID":247},{"STATES":"**** - **","COUNTRYNAME":"ZAIRE","COUNTRYID":231},{"STATES":"**** - **","COUNTRYNAME":"ZAMBIA","COUNTRYID":232},{"STATES":"**** - **","COUNTRYNAME":"ZIMBABWE","COUNTRYID":233}]; 1132 1133 svcrm.formBuilderScripts.countryChanged = function(domElm){ 1134 1135 1136 var oldSelIndexVal = state.value; //$F('contact_state'); 1137 var myStates = new Array(); 1138 1139 // $('contact_state').options.length = 0; 1140 state.options.length = 0; 1141 1142 for (var i = 0; i < window.svcrm.formBuilderScripts.states.length; i++) {
1143 if (window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == domElm.options[domElm.selectedIndex].value || window.svcrm.formBuilderScripts.states[i].COUNTRYNAME == '') { 1144 var myObj = new Object(); 1145 1146 var tmp = window.svcrm.formBuilderScripts.states[i].STATES.split(''); 1147 for (var x = 0; x < tmp.length; x = x + 2) { 1148 var myObj = new Object(); 1149 myObj.statecode = tmp[x - 1]; 1150 myObj.statename = tmp[x]; 1151 if (tmp[x - 1] == oldSelIndexVal) { 1152 myObj.selected = true; 1153 } else { 1154 myObj.selected = false; 1155 } 1156 1157 if(!myObj.statecode){ 1158 myObj.statecode = ''; 1159 } 1160 myStates.push(myObj); 1161 } 1162 } 1163 } 1164 1165 if (myStates.length > 0) { 1166 for (var i = 0; i < myStates.length; i++) { 1167 // $('contact_state').options[$('state').options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected); 1168 state.options[state.options.length] = new Option(myStates[i].statename, myStates[i].statecode, myStates[i].selected, myStates[i].selected); 1169 1170 } 1171 } else { 1172 // $('contact_state').options.length = 0; 1173 state.options.length = 0; 1174 //$('contact_state').options[$('contact_state').options.length] = new Option("** - **", ""); 1175 state.options[state.options.length] = new Option("** - **", ""); 1176 } 1177 } 1178 1179 1180 })(); 1181 1182 </script>
1182 1183 1184
1184<script type="text/javascript"> 1185 1186 1187 (function(){ 1188 svcrm = ((typeof svcrm != 'undefined') ? svcrm : {}); 1189 svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {}); 1190 1191 1192 window.svcrm.formBuilderScripts._____fileInpElmsRemoved = {}; //being lazy, need a place to store the file inputs that get removed from the form 1193 window.svcrm.formBuilderScripts._____filesUploading = 0; //if this is greater than 0, a file is still uploading. 1194 1195 //this function is called when a file upload input has a file selected 1196 window.svcrm.formBuilderScripts.submitFileUpload = function(frmname,fldname){ 1197 //kill off the old temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload 1198 var oldinp = document.getElementById('thefileweneedtoupload'); 1199 if(oldinp){ oldinp.parentNode.removeChild(oldinp); } 1200 1201 //create the temp input that is used by formbuilder_fileAdd.cfm to know which form element to upload 1202 var inp = document.createElement('input'); inp.type = 'hidden'; inp.name = 'thefileweneedtoupload'; inp.id = 'thefileweneedtoupload'; inp.value = fldname; 1203 document[frmname].appendChild(inp); 1204 1205 //need to get some things from this input before it is killed so we will it so we can recreate it 1206 var fld = document.getElementById(fldname); 1207 window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldname] = { id:fld.id, name:fld.name, className:fld.className, tabIndex:fld.tabIndex, onchange:fld.onchange }; 1208 1209 //kill iframe element if one exists 1210 window.svcrm.formBuilderScripts.killFileInputIframeElm(fldname); 1211 1212 //create iframe to submit to 1213 var iframe = document.createElement('iframe'); iframe.id = 'fileUploaderIframe_'+fldname; iframe.name = 'fileUploaderIframe_'+fldname; iframe.style.display = 'none'; 1214 document.body.appendChild(iframe); 1215 1216 //store the form action before it is changed 1217 var origFormAttributes = {action: document[frmname].action, enctype: document[frmname].enctype}; 1218 1219 //change the form so that it will submit to the webapi and iframe target 1220 document[frmname].action = 'https://Houston.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileAdd.cfm'; 1221 document[frmname].target = 'fileUploaderIframe_'+fldname; 1222 document[frmname].enctype = 'multipart/form-data'; 1223 document[frmname].submit(); 1224 1225 //add to filesUploading so we don't allow form submissions while files are uploading 1226 window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading + 1; 1227 1228 //reset the form to submit to where it was originally intended to submit to and remove the target so it doesn't go to the iframe 1229 document[frmname].setAttribute('action',origFormAttributes.action); 1230 document[frmname].setAttribute('enctype',origFormAttributes.enctype); 1231 document[frmname].removeAttribute('target'); 1232 1233 // Disable the submit button and add a tool tip to the disabled element so it is clear why you can't submit yet -- useful for large files or slow connections 1234 document.getElementById('savefrm_button').disabled = true; 1235 var tt = document.getElementById('submit_tooltiptext'); 1236 if(tt){ 1237 //Make the tool tip show up 1238 tt.style.visibility = 'visible'; 1239 } else { 1240 // create a new element 1241 var toolTip = document.createElement("span"); 1242 var newContent = document.createTextNode("Unable to submit, file upload in progress."); 1243 toolTip.appendChild(newContent); 1244 toolTip.style.backgroundColor = "black"; 1245 toolTip.style.color = "white"; 1246 toolTip.style.textAlign = "center"; 1247 toolTip.style.borderRadius = "6px"; 1248 toolTip.style.padding = "4px 2px"; 1249 toolTip.setAttribute('id', 'submit_tooltiptext'); 1250 1251 // add the newly created element and its content into the DOM 1252 currentDiv = document.getElementById('resetfrm_button'); 1253 var br = document.createElement("br"); // but put it on a new line first 1254 currentDiv.parentElement.insertBefore(br, null); 1255 currentDiv.parentElement.insertBefore(toolTip, null); 1256 } 1257 }; 1258 1259 //this function is called by either the formbuilder_fileAdd.cfm window.parent.addFile() call or from the _handlePostMessage() function 1260 //it will take the filename that is returned and set it in the display element and hidden input 1261 //if success==true is not returned we will try to grab the message from errorMsg if passed otherwise will display a generic error message and will try to remove the file input and recreate it 1262 //it is possible that the IIS request filtering will kick
1262in and prevent us from knowing if it failed but the overall submission will end up getting blocked because the file inputs will still exist 1263 window.svcrm.formBuilderScripts.addFile = function(addFileArgs){ 1264 if(typeof addFileArgs.success && addFileArgs.success){ 1265 //set the hidden input with the new filename so we can process upon save 1266 document.getElementById(addFileArgs.fldname+'_formbuilder_hidden').value = addFileArgs.newfilename; 1267 1268 //subtract from filesUploading, if we're at 0 all files are finished 1269 window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1; 1270 if (window.svcrm.formBuilderScripts._____filesUploading <= 0) { 1271 //Re-enable submit button 1272 document.getElementById('savefrm_button').disabled = false; 1273 //hide tooltip 1274 var ttip = document.getElementById('submit_tooltiptext'); 1275 if (ttip) { 1276 ttip.style.visibility = "hidden"; 1277 } 1278 } 1279 1280 //create the delete button for this file 1281 var newBtn = document.createElement('img'); 1282 newBtn.src = 'https://Houston.simpleviewcrm.com/core_crm/webapi/forms/images/delete.png'; 1283 newBtn.onclick = function(){window.svcrm.formBuilderScripts.removeFile(addFileArgs.fldname);}; 1284 newBtn.alt = 'Remove File?'; 1285 newBtn.title = 'Remove File?'; 1286 newBtn.style.paddingTop = '5px'; 1287 newBtn.style.paddingRight = '5px'; 1288 newBtn.style.float = 'left'; 1289 1290 //create the element that will show the file name 1291 var newDiv = document.createElement('div'); 1292 newDiv.innerHTML = addFileArgs.newfilename; 1293 newDiv.style.paddingTop = '4px'; 1294 newDiv.style.float = 'left'; 1295 1296 //get this file inputs display element and append the delete button and name display elements in it 1297 var dispElm = document.getElementById(addFileArgs.fldname+'_display'); 1298 dispElm.appendChild(newBtn); 1299 dispElm.appendChild(newDiv); 1300 1301 //create an empty div to fix the float for the delete and filename element 1302 var newDiv2 = document.createElement('div'); 1303 newDiv2.style.clear = 'both'; 1304 dispElm.appendChild(newDiv2); 1305 dispElm.style.display = 'block'; //turn on the display element 1306 1307 //kill the file input we don't want it anymore unless they remove this file 1308 window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname); 1309 1310 }else{ 1311 //kill and recreate the element if we can 1312 if(typeof addFileArgs.fldname && addFileArgs.fldname.length){ 1313 window.svcrm.formBuilderScripts.killFileInputElm(addFileArgs.fldname); 1314 window.svcrm.formBuilderScripts.recreateFileInputElm(addFileArgs.fldname); 1315 } 1316 1317 //if we have a good message display it 1318 alert('There was a problem uploading your file:\n'+((typeof addFileArgs.errorMsg != 'undefined') ? addFileArgs.errorMsg : 'There was a problem uploading your file!' ) ); 1319 1320 //subtract from filesUploading, if we're at 0 all files are finished 1321 window.svcrm.formBuilderScripts._____filesUploading = window.svcrm.formBuilderScripts._____filesUploading - 1; 1322 1323 //Need to make sure that we re-enable the submit button in case it didn't happen above in the IF block 1324 // otherwise, they can't submit until they fix the issue; we should give them the option to abandon the file upload. 1325 if (window.svcrm.formBuilderScripts._____filesUploading <= 0) { 1326 //Re-enable submit button 1327 document.getElementById('savefrm_button').disabled = false; 1328 //hide tooltip 1329 var ttip = document.getElementById('submit_tooltiptext'); 1330 if (ttip) { 1331 ttip.style.visibility = "hidden"; 1332 } 1333 } 1334 } 1335 1336 //kill iframe element if it is still around 1337 window.svcrm.formBuilderScripts.killFileInputIframeElm(addFileArgs.fldname); 1338 }; 1339 1340 //this function will delete the file input element from the form, it is called when a file input is selected and the form submitted off to the iframe 1341 window.svcrm.formBuilderScripts.killFileInputElm = function(fldId){ 1342 var fileInpElmToRemove = document.getElementById(fldId); 1343 fileInpElmToRemove.parentNode.removeChild(fileInpElmToRemove); 1344 }; 1345 1346 //this function will re-create the file input element that was removed when a file was uploaded, this is called when a user clicks the delete button on an image or if we had an erorr upon file upload we wipe the input and recreate so it is empty 1347 window.svcrm.formBuilderScripts.recreateFileInputElm = function(fldId){ 1348 var elmstored = window.svcrm.formBuilderScripts._____fileInpElmsRemoved[fldId]; 1349 var recreatedElm = document.createElement('input'); 1350 recreatedElm.type = 'file'; 1351 recreatedElm.id = elmstored.id; 1352 recreatedElm.name = elmstored.name; 1353 recreatedElm.className = elmstored.className; 1354 recreatedElm.tabIndex = elmstored.tabIndex; 1355 recreatedElm.onchange = function(){ 1356 document.getElementById(fldId + '_formbuilder_hidden').value = this.value; 1357 window.svcrm.formBuilderScripts.submitFileUpload('frm_'+document.getElementById('formid').value, fldId); 1358 }; 1359 document.getElementById(fldId+'_container').appendChild(recreatedElm); 1360 } 1361 1362 //this function will kill off the iframe element if it exists 1363 window.svcrm.formBuilderScripts.killFileInputIframeElm = function(fldname){ 1364 var iframeElm = document.getElementById('fileUploaderIframe_'+fldname); 1365 if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);} 1366 }; 1367 1368 //this function will remove the file it will wipe the display and hidden input and recreate the file upload input element 1369 window.svcrm.formBuilderScripts.removeFile = function(fldId){ 1370 //try to remove delete this file from temp if exists 1371 try{ 1372 //create an iframe and form with a hidden input field that has the name of the file we are trying to wipe 1373 var html = '<html><body onload="document.fileDeleterIframeForm.submit();">'; 1374 html += '<form name="fileDeleterIframeForm" action="https://Houston.simpleviewcrm.com/webapi/formbuilder/formbuilder_fileDelete.cfm" method="post">'; 1375 html += '<input type="hidden" name="filenamevalue" id="filenamevalue" value="'+document.getElementById(fldId+'_formbuilder_hidden').value+'" />'; 1376 html += '</form>'; 1377 html += '<' + '/' + 'body' + '>' + '<' + '/' + 'html' + '>'; 1378 1379 var iframeElm = document.getElementById('fileDeleterIframe_'+fldId); 1380 if(iframeElm){iframeElm.parentNode.removeChild(iframeElm);} 1381 1382 var iframe = document.createElement('iframe'); 1383 iframe.id = 'fileDeleterIframe_'+fldId; 1384 iframe.style.display = 'none'; 1385 document.body.appendChild(iframe); 1386 iframe.contentWindow.document.open(); 1387 iframe.contentWindow.document.write(html); 1388 iframe.contentWindow.document.close(); 1389 1390 }catch(e){ 1391 //nothing for now 1392 } 1393 1394 document.getElementById(fldId+'_formbuilder_hidden').value = ''; 1395 var dispElm = document.getElementById(fldId+'_display'); 1396 dispElm.innerHTML = ''; 1397 dispElm.style.display = 'none'; 1398 1399 //recreate the element 1400 window.svcrm.formBuilderScripts.recreateFileInputElm(fldId); 1401 1402 }; 1403 1404 //this function will handle the postMessage's it will make sure that it is coming from the valid crm domain, it will then call the addFile() function passing along the returned json object 1405 var _handlePostMessage = function(evt){
1406 //check for correct postMessage source 1407 if(typeof evt.origin != 'undefined'){ 1408 //only run this if we are from the correct domain 1409 var _fixedOrigin = evt.origin + ( (evt.origin.substring(evt.origin.length-1,evt.origin.length) != '/') ? '/' : ''); 1410 var crmappurl = 'https://Houston.simpleviewcrm.com/'; 1411 if(_fixedOrigin.toLowerCase().indexOf(crmappurl.toLowerCase()) != -1){ 1412 var _postMsgRtn = {}; 1413 try { 1414 _postMsgRtn = JSON.parse(evt.data); //json parse the returned data 1415 } catch (e) { 1416 return false; 1417 } 1418 window.svcrm.formBuilderScripts.addFile(_postMsgRtn); //we will let the addFile handle any errors the same way as call from within crm form 1419 } 1420 } 1421 }; 1422 if (window.addEventListener) { 1423 window.addEventListener('message', _handlePostMessage, false); 1424 } else if (window.attachEvent) { 1425 window.attachEvent('onmessage', _handlePostMessage); 1426 } 1427 1428 1429 })(); 1430 1431 </script>
1431 1432 1433
1433<script type="text/javascript"> 1434 var setV3Key = async function () { 1435 var recaptcha_token = ''; 1436 grecaptcha.ready(() => { 1437 grecaptcha.execute('6LfGMAAoAAAAAD57YWwQap4cu_4lPrffGVf__pkB', {action: 'submit'}).then((token) => { 1438 recaptcha_token = token; 1439 document.getElementById('g-recaptcha-response').value=recaptcha_token; 1440 }); 1441 }); 1442 while(recaptcha_token == ''){ 1443 await new Promise(r => setTimeout(r, 100)); 1444 } 1445 Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=false}); 1446 return recaptcha_token; 1447 } 1448 1449 var wrapValidateWithRecaptcha = function(validateFn) { 1450 return async function(frm) { 1451 Array.prototype.forEach.call(document.getElementsByName("savefrm"), function(e){e.disabled=true}); 1452 await setV3Key(); 1453 return validateFn(frm); 1454 }; 1455 }; 1456 1457 var loadRecaptcha = function() { 1458 if (typeof svcrm !== 'undefined' && svcrm.formBuilderScripts && typeof svcrm.formBuilderScripts.validateForm === 'function') { 1459 svcrm.formBuilderScripts.validateForm = wrapValidateWithRecaptcha(svcrm.formBuilderScripts.validateForm); 1460 } else if (typeof svcrm.formBuilderScripts.validateForm === 'function') { 1461 svcrm.formBuilderScripts.validateForm = wrapValidateWithRecaptcha(svcrm.formBuilderScripts.validateForm); 1462 } 1463 if (document.getElementsByClassName('simpleForm')[0]) { 1464 setTimeout(function(){ 1465 document.getElementsByClassName('simpleForm')[0].setAttribute("onsubmit", "svcrm.formBuilderScripts.validateForm(this); return false;"); 1466 }, 500); 1467 } 1468 else if (document.getElementsByClassName('sv_api_form')[0]){ 1469 document.getElementsByClassName('sv_api_form')[0].setAttribute("onsubmit", "svcrm.formBuilderScripts.validateForm(this); return false;"); 1470 } 1471 } 1472 1473 // 08208501 - attach the function to load script to the page load event 1474 if (window.addEventListener) { 1475 window.addEventListener('load', loadRecaptcha, false); 1476 } else if (window.attachEvent) { 1477 window.attachEvent('onload', loadRecaptcha); 1478 } 1479 </script>
1479 1480 1481
1481<script type="text/javascript"> 1482 /* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/ 1483 (function(){ 1484 var crm_locale = {"SEPARATOR_GROUPING":3,"YAHOO_MDY_MONTH_POSITION":1,"CURRENCY_DECIMALPLACES":2,"DATEFMT_MDONLY":"mm\/dd","NUMBERFORMATTER":"standard","YAHOO_MDY_YEAR_POSITION":3,"ANGULAR_FORMAT_FILE":"en-us","YAHOO_DATE_FIELD_DELIMITER":"\/","YAHOO_START_WEEKDAY":0,"YAHOO_MDY_DAY_POSITION":2,"DOLLARFMT_MASK":"","THOUSANDS_SEPARATOR":",","LOCALE":"en_US","DOLLARFMT":0,"DOLLARFMT_PREFIX":"","NUMBERFMT_MASK":"0,000.00","DATEFMT":"mm\/dd\/yyyy","DECIMAL_SEPARATOR":".","DOLLARFMT_SUFFIX":""}; 1485 1486 svcrm = ((typeof svcrm != 'undefined') ? svcrm : {}); 1487 svcrm.formBuilderScripts = ((typeof svcrm.formBuilderScripts != 'undefined') ? svcrm.formBuilderScripts : {}); 1488 1489 svcrm.formBuilderScripts.curPopupWindow = null; 1490 svcrm.formBuilderScripts.lastMouseX = null; 1491 svcrm.formBuilderScripts.lastMouseY = null; 1492 1493 svcrm.formBuilderScripts.__onload_function = function(){ 1494 svcrm.formBuilderScripts.updReq(); 1495 }; 1496 1497 /* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/ 1498 /*Utility Functions, namespaced for nodejs cms sites*/ 1499 //Function to format floats 1500 //returns false if invalid 1501 //dec = number of decimal places to show 1502 svcrm.formBuilderScripts.fmtFloat = function(obj, dec){ 1503 var lt = "", rt = "", str = "" 1504 var inc = 0, num = 0, tmp = 0 1505 1506 if (obj.value.length == 0) 1507 obj.value = "0"; 1508 1509 if (!svcrm.formBuilderScripts.checkChars(obj.value, ".,0123456789")) return false; 1510 1511 // Check for valid number 1512 svcrm.formBuilderScripts.stripChars(obj, ","); 1513 if (!svcrm.formBuilderScripts.checkNumber(obj.value)) return false; 1514 1515 //Split number 1516 inc = Math.pow(10, dec); 1517 num = (obj.value * 1.0); 1518 num = Math.round(num * inc) / inc; 1519 str = "" + num; 1520 1521 tmp = str.indexOf("."); 1522 if (tmp < 0) { 1523 str += "."; 1524 tmp = str.indexOf("."); 1525 } 1526 1527 if ((str.length - tmp) <= dec) 1528 for (var i = (str.length - tmp); i <= dec; i++) 1529 str += "0"; 1530 1531 obj.value = str; 1532 return true; 1533 }; 1534 1535 //Function to format integers 1536 //returns false if invalid 1537 svcrm.formBuilderScripts.fmtInt = function(obj){ 1538 if (obj.value.length == 0) { 1539 return true; 1540 } 1541 1542 return (svcrm.formBuilderScripts.checkInteger(obj.value)); 1543 }; 1544 1545 //Function to formats money fields 1546 //returns false if invalid 1547 svcrm.formBuilderScripts.fmtMoney = function(obj){ 1548 var dec = 0, num = "", sign = 0 1549 var dollars = "", cents = "" 1550 var count = 0, tmp = "" 1551 1552 if (obj.value.length == 0) { 1553 tmp = "0"; 1554 cents = ".00"; 1555 } else { 1556 if (!svcrm.formBuilderScripts.checkChars(obj.value, "$.,0123456789")) return false; 1557 1558 // Check for valid number 1559 svcrm.formBuilderScripts.stripChars(obj, ","); 1560 sign = obj.value.indexOf("$"); 1561 if (sign > 0) 1562 return false; 1563 else { 1564 if (sign == 0) 1565 num = obj.value.substring(1,obj.value.length); 1566 else 1567 num = obj.value; 1568 1569 if (!svcrm.formBuilderScripts.checkNumber(num)) 1570 return false; 1571 } 1572 1573 // Check precision, round-up if necessary 1574 if (num.indexOf(".") != -1) 1575 num = "" + (Math.round(num * 100) / 100.0); 1576 1577 dec = num.indexOf("."); 1578 cents = ((dec > 0) ? num.substring(dec,num.length) : ".00"); 1579 if (cents.length == 2) cents += "0"; 1580 1581 // Add commas 1582 dollars = "" + parseInt(num); 1583 for (var i = dollars.length - 1; i >= 0; i--) { 1584 if (count == 3) { 1585 tmp = "," + tmp; 1586 count = 1; 1587 } else 1588 count ++; 1589 1590 tmp = dollars.charAt(i) + tmp; 1591 } 1592 } 1593 1594 // Format number 1595 num = "$" + tmp + cents; 1596 obj.value = num; 1597 return true; 1598 }; 1599 1600 //Function to format phone numbers 1601 //returns false if invalid 1602 svcrm.formBuilderScripts.fmtPhone = function(obj){ 1603 var phone = ""; 1604 var oldphone = ""; 1605 1606 if (obj.value.length == 0) return true; 1607 1608 //Remove formatting 1609 oldphone = obj.value;
1610 svcrm.formBuilderScripts.stripChars(obj, "- ()"); 1611 phone = obj.value; 1612 if (!svcrm.formBuilderScripts.checkChars(phone, "0123456789")) return false; 1613 1614 if (phone.length == 10) 1615 obj.value = "(" + phone.substring(0,3) + ") " + phone.substring(3,6) +"-" + phone.substring(6,10); 1616 else { 1617 obj.value = oldphone; 1618 return false; 1619 } 1620 1621 return true; 1622 }; 1623 1624 //Function to format social security numbers 1625 //returns false if invalid 1626 svcrm.formBuilderScripts.fmtSSN = function(obj){ 1627 var ssn = "" 1628 1629 if (obj.value.length == 0) return true; 1630 1631 //Remove all dashes 1632 svcrm.formBuilderScripts.stripChars(obj, "-"); 1633 ssn = obj.value; 1634 if (!svcrm.formBuilderScripts.checkChars(ssn, "0123456789")) return false; 1635 1636 if (ssn.length == 9) 1637 obj.value = ssn.substring(0,3) + "-" + ssn.substring(3,5) + "-" + ssn.substring(5,9); 1638 else 1639 return false; 1640 1641 return true; 1642 }; 1643 1644 //Function to verify valid URL 1645 svcrm.formBuilderScripts.fmtURL = function(obj){ 1646 if (obj.value.length == 0) return true; 1647 1648 if (obj.value.substring(0,7) != "http://") 1649 obj.value = "http://" + obj.value; 1650 1651 if (obj.value.length < 10) return false; 1652 1653 return true; 1654 }; 1655 1656 //Function to format zip codes 1657 //returns false if invalid 1658 svcrm.formBuilderScripts.fmtZip = function(obj){ 1659 var numberlist = "0123456789", zip = "" 1660 1661 if (obj.value.length == 0) return true; 1662 1663 // Remove dashes 1664 svcrm.formBuilderScripts.stripChars(obj, "-"); 1665 zip = obj.value; 1666 if (!svcrm.formBuilderScripts.checkChars(zip, numberlist)) return false; 1667 1668 if (zip.length == 5) 1669 obj.value = zip; 1670 else if (zip.length == 9) 1671 obj.value = zip.substring(0,5) + "-" + zip.substring(5,9) 1672 else 1673 return false; 1674 1675 //Passed all tests 1676 return true; 1677 }; 1678 1679 //Returns true if every character is in string list 1680 //otherwise false 1681 svcrm.formBuilderScripts.checkChars = function(val, charlist){ 1682 for (var i = 0; i < val.length; i++) 1683 if (charlist.indexOf(val.charAt(i)) < 0) 1684 return false; 1685 1686 //String passed so it is valid 1687 return true; 1688 }; 1689 1690 //Returns true if valid email 1691 //otherwise returns false 1692 svcrm.formBuilderScripts.checkEmail = function(obj){ 1693 if (obj.value.length != 0) { 1694 var pattern = /^['&a-zA-Z0-9._%+-]+@(?:[&a-zA-Z0-9-]+\.)+(([a-zA-Z]{2,4})|(aero|coop|info|museum|name|travel))$/; 1695 if (!pattern.test(obj.value)) { 1696 return false; 1697 } else { 1698 return true; 1699 } 1700 } 1701 1702 // Valid, passed all tests 1703 return true; 1704 }; 1705 1706 //Returns true if valid phone 1707 //otherwise returns false 1708 svcrm.formBuilderScripts.checkPhone = function(obj){ 1709 if (obj.value.length != 0) { 1710 var pattern = /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/; 1711 if (!pattern.test(obj.value)) { 1712 return false; 1713 } else { 1714 return true; 1715 } 1716 } 1717 1718 // Valid, passed all tests 1719 return true; 1720 }; 1721 1722 //Returns true if value is a number or is NULL 1723 //otherwise returns false 1724 svcrm.formBuilderScripts.checkInteger = function(object_value){ 1725 if (object_value.length == 0) 1726 return true; 1727 1728 if (object_value.indexOf(".") < 1) 1729 return svcrm.formBuilderScripts.checkNumber(object_value); 1730 else 1731 return false; 1732 }; 1733 1734 //Returns true if value is a number or is NULL 1735 //otherwise returns false 1736 svcrm.formBuilderScripts.checkNumber = function(object_value){ 1737 if (object_value.length == 0) 1738 return true; 1739 1740 //Returns true if value is a number defined as 1741 // having an optional leading + or -. 1742 // having at most 1 decimal point. 1743 // otherwise containing only the characters 0-9. 1744 var start_format = " .+-0123456789"; 1745 var number_format = " .0123456789"; 1746 var check_char; 1747 var decimal = false; 1748 var trailing_blank = false; 1749 var digits = false; 1750 1751 //The first character can be + - . blank or a digit. 1752 check_char = start_format.indexOf(object_value.charAt(0)) 1753 //Was it a decimal? 1754 if (check_char == 1) 1755 decimal = true; 1756 else if (check_char < 1) 1757 return false; 1758 1759 //Remaining characters can be only . or a digit, but only one decimal. 1760 for (var i = 1; i < object_value.length; i++) { 1761 check_char = number_format.indexOf(object_value.charAt(i)) 1762 if (check_char < 0) 1763 return false; 1764 else if (check_char == 1) { 1765 if (decimal) // Second decimal. 1766 return false; 1767 else 1768 decimal = true; 1769 } else if (check_char == 0) { 1770 if (decimal || digits) 1771 trailing_blank = true; 1772 // ignore leading blanks 1773 } else if (trailing_blank) 1774 return false; 1775 else 1776 digits = true; 1777 } 1778 1779 //All tests passed 1780 return true 1781 }; 1782 1783 //Returns true if value is a posiitve integer or is NULL 1784 //otherwise returns false 1785 svcrm.formBuilderScripts.checkPosInteger = function(object_value){ 1786 if (object_value.indexOf("-") != -1) 1787 return false; 1788 else 1789 return (svcrm.formBuilderScripts.checkInteger(object_value)); 1790 }; 1791 1792 //Function to find any char in charlist in the passed string 1793 //Returns true if a character is found 1794 //Otherwise false
1795 svcrm.formBuilderScripts.findChars = function(str, charlist){ 1796 for (var i = 0; i < charlist.length; i++) { 1797 if (str.indexOf(charlist.charAt(i)) != -1) 1798 return true; 1799 } 1800 1801 return false; 1802 }; 1803 1804 //Function to remove all occurances of chars in charlist 1805 svcrm.formBuilderScripts.stripChars = function(obj, charlist){ 1806 var i = 0, pos = 0 1807 var val = obj.value 1808 1809 while (i < val.length) { 1810 pos = charlist.indexOf(val.charAt(i)); 1811 if (pos != -1) 1812 val = val.substring(0,i) + val.substring(i + 1, val.length); 1813 else 1814 i++; 1815 } 1816 1817 obj.value = val; 1818 return true; 1819 }; 1820 1821 svcrm.formBuilderScripts.cntChars = function(val, charlist){ 1822 var i = 0, pos = 0, cnt = 0 1823 1824 for (i = 0; i < val.length; i++) { 1825 pos = charlist.indexOf(val.charAt(i)); 1826 if (pos != -1) cnt++; 1827 } 1828 1829 return cnt; 1830 }; 1831 1832 svcrm.formBuilderScripts.fmtTime = function(fld){ 1833 var hr = 0, mn = 0; 1834 var val = fld.value; 1835 1836 if (val.length == 0) return true; 1837 1838 var tt = svcrm.formBuilderScripts.strChars(val, '0123456789: '); 1839 1840 if (tt.length > 0) { 1841 tt = tt.toUpperCase(); 1842 if (tt != 'AM' && tt != 'PM') return false; 1843 1844 val = svcrm.formBuilderScripts.strChars(val, ' ampAMP'); 1845 } 1846 1847 var sepr = val.indexOf(':') 1848 if (sepr == -1) { 1849 hr = val; 1850 mn = 0; 1851 } else { 1852 hr = val.substring(0, sepr); 1853 mn = val.substring(sepr + 1, val.length); 1854 }
1855 if (isNaN(mn)) mn = 0; 1856 1857 if (!svcrm.formBuilderScripts.chkChars(hr, '0123456789')) return false; 1858 if (!svcrm.formBuilderScripts.chkChars(mn, '0123456789')) return false; 1859 if (hr < 0 || hr > 23) return false; 1860 if (mn < 0 || mn > 59) return false; 1861 1862 if (hr > 12) { 1863 tt = 'PM'; 1864 hr = hr - 12; 1865 } else if (hr == 0) { 1866 tt = 'AM'; 1867 hr = 12; 1868 } 1869 if (mn.toString().length == 0) mn = 0; 1870 if (tt.length == 0) { 1871 if (hr == 12) 1872 tt = 'PM'; 1873 else if (hr < 7) 1874 tt = 'PM'; 1875 else 1876 tt = 'AM'; 1877 } 1878 1879 str = hr; 1880 if (mn.toString().length == 1) 1881 str = str + ':0' + mn; 1882 else 1883 str = str + ':' + mn; 1884 str = str + ' ' + tt; 1885 1886 fld.value = str; 1887 return true; 1888 }; 1889 1890 //Function to remove all occurances of chars in charlist 1891 svcrm.formBuilderScripts.strChars = function(val, charlist){ 1892 var i = 0, pos = 0 1893 1894 while (i < val.length) { 1895 pos = charlist.indexOf(val.charAt(i)); 1896 if (pos != -1) 1897 val = val.substring(0,i) + val.substring(i + 1, val.length); 1898 else 1899 i++; 1900 } 1901 1902 return val; 1903 }; 1904 1905 svcrm.formBuilderScripts.chkChars = function (val, charlist){ 1906 for (var i = 0; i < val.length; i++) 1907 if (charlist.indexOf(val.charAt(i)) < 0) 1908 return false; 1909 1910 return true; 1911 }; 1912 /* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/formValidations.js +++++++++++++++++++++++++++++++++++++*/ 1913 1914 /* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/ 1915 // Author: Bill Simpson 1916 // Company: 220solutions.com 1917 // Email: [email protected] 1918 // Date Created: 02-09-2001 1919 // 1920 // Verifies and converts date strings to a valid format 1921 // 1922 // Valid input dates = 1923 // mdyy, mmdyy, mmddyy, mmmddyy, mmddyyyy, mmmddyyyy, 1924 // m/d/yy, m/dd/yy, mm/d/yy, mm/dd/yy, mmm/d/yy, mmm/dd/yy, 1925 // m/d/yyyy, m/dd/yyyy, mm/d/yyyy, mm/dd/yyyy, mmm/d/yyyy, mmm/dd/yyyy 1926 // Valid date seperators = '-./:_, ' 1927 // 1928 // Notes: Please feel free to use/edit this script. 1929 // If you do please keep comments and header 1930 // 1931 // Code based on functions from 1932 // Author: Simon Kneafsey 1933 // Email: [email protected] 1934 // WebSite: www.simonkneafsey.co.uk 1935 1936 1937 // Function to convert supplied date string 'fld' 1938 // fld: field containing date string 1939 // sep: seperator to use e.g. '-' or '/' 1940 // returns false if date string is invalid 1941 svcrm.formBuilderScripts.fmtDate = function(fld,sep){ 1942 var len = fld.value.length; 1943 var seps = new Array('-','.','/',':','_',',',' '); // Array of seperators. 1944 var d = '', m = '', y = ''; // date part holders 1945 //var div = ''; // divider holder 1946 //var outdate1 = null; // formatted date to send back to calling field holder 1947 var sepholder = new Array('0','0','0'); // array to hold positions of dividers in dates 1948 var s = String(fld.value); 1949 var outdate = ''; 1950 1951 if (len == 0 ) return true; 1952 1953 // Accept 'today' or 'now' 1954 if (fld.value.toUpperCase() == 'NOW' || fld.value.toUpperCase() == 'TODAY' ) { 1955 var newDate = new Date(); 1956 var myDay = newDate.getDate(); 1957 var myMonth = newDate.getMonth() + 1; 1958 if (navigator.appName == 'Netscape') 1959 var myYear = newDate.getYear() + 2000; 1960 else 1961 var myYear = newDate.getYear(); 1962 1963 fld.value = myMonth + "-" + myDay + "-" + myYear; 1964 // update string info 1965 len = fld.value.length; 1966 s = String(fld.value); 1967 } 1968 1969 // Check the date is a valid length 1970 if (len < 4 || len > 11) return false; 1971 1972 // Find positions of divider in the date 1973 var cnt = 0; 1974 for (var i = 0; i < 3; i++) { 1975 for (var j = 0; j < seps.length; j++) { 1976 if (s.indexOf(seps[j],cnt) != -1) { 1977 div = seps[j]; 1978 sepholder[i] = s.indexOf(seps[j],cnt); 1979 cnt = sepholder[i] + 1; 1980 break; 1981 } 1982 } 1983 } 1984 1985 // If element 2 is not 0 then more than 2 dividers have been found so date is invali
1985d. 1986 if (sepholder[2] != 0) return false; 1987 1988 // if no dividers are found strip out date parts 1989 if (sepholder[0] == 0 && sepholder[1] == 0) { 1990 switch (len) { 1991 case 4: // mdyy 1992 m = '0' + s.substring(0,1); 1993 d = '0' + s.substring(1,2); 1994 y = s.substring(2,4); 1995 if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false; 1996 break; 1997 case 5: // mmdyy 1998 m = s.substring(0,2); 1999 d = '0' + s.substring(2,3); 2000 y = s.substring(3,5); 2001 if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false; 2002 break; 2003 case 6: // mmddyy 2004 m = s.substring(0,2); 2005 d = s.substring(2,4); 2006 y = s.substring(4,6); 2007 if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false; 2008 break; 2009 case 7: //mmmddyy 2010 m = s.substring(0,3); 2011 d = s.substring(3,5); 2012 y = s.substring(5,7); 2013 if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false; 2014 if ((y = svcrm.formBuilderScripts.chkYear(y)) == false) return false; 2015 break; 2016 case 8: //mmddyyyy 2017 m = s.substring(0,2); 2018 d = s.substring(2,4); 2019 y = s.substring(4,8); 2020 break; 2021 case 9: //mmmddyyyy 2022 m = s.substring(0,3); 2023 d = s.substring(3,5); 2024 y = s.substring(5,9); 2025 if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false; 2026 break; 2027 default: 2028 return false; 2029 } 2030 2031 if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false; 2032 2033 // valid date 2034 fld.value = outdate; 2035 return true; 2036 } else if (sepholder[0] != 0 && sepholder[1] != 0) { 2037 // process with dividers 2038 m = s.substring(0, sepholder[0]); 2039 d = s.substring(sepholder[0] + 1, sepholder[1]); 2040 y = s.substring(sepholder[1] + 1, s.length); 2041 } else 2042 // Only one divider 2043 return false; 2044 2045 // Check day and year are numeric 2046 if (isNaN(d) && isNaN(y)) return false; 2047 2048 // Make d day dd 2049 if (d.length == 1) d = '0' + d; 2050 // Make m month mm 2051 if (m.length == 1) m = '0' + m; 2052 // Make yy year yyyy 2053 if (y.length == 2) 2054 if ((y = svcrm.formBuilderScripts.chkYear(y)) == false ) return false; 2055 2056 // Make mmm month mm 2057 if (m.length == 3 || m.length == 4) { 2058 if ((m = svcrm.formBuilderScripts.chkMonth(m)) == false) return false; 2059 } 2060 2061 // Date components are OK 2062 if (d.length != 2 || m.length != 2 || y.length != 4) return false; 2063 2064 // Validate the date 2065 if ((outdate = svcrm.formBuilderScripts.chkDate(m,d,y,sep)) == false) return false; 2066 2067 // Valid date 2068 fld.value = outdate; 2069 return true; 2070 }; 2071 2072 // checks for a valid date 2073 // m: month part (2 digit) 2074 // d: day part (2 digit) 2075 // y: year part (4 digit) 2076 // returns: date string formatted if valid, false if invalid 2077 svcrm.formBuilderScripts.chkDate = function(m, d, y, sep){ 2078 var dayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31); 2079 var dstr = m + d + y; 2080 var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/; 2081 2082 // Check mmddyyyy date supplied 2083 if (!filter.test(dstr)) return false; 2084 2085 // Check valid month 2086 filter=/01|02|03|04|05|06|07|08|09|10|11|12/; 2087 if (!filter.test(m)) return false; 2088 2089 // Check year 2090 if (y < 1900 || y > 2078) return false; 2091 2092 // Check for leap year 2093 var n = Number(y); 2094 if (n % 4 == 0 && (n % 100 != 0 || n % 400 == 0)) dayArray[1] = 29; 2095 2096 // Check for valid days for month 2097 var mnum = Number(m); 2098 if (d > dayArray[mnum - 1] || d <= 0) return false; 2099 2100 // Valid date 2101 return m + sep + d + sep + y; 2102 }; 2103 2104 // Checks for valid month 2105 // m: month part (3 or 4 digit)
2106 // returns: 2 digit month if valid, false is invalid 2107 svcrm.formBuilderScripts.chkMonth = function(m){ 2108 var months = new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'); 2109 2110 m = m.toUpperCase(); 2111 if (m.length == 3) { 2112 for (var i = 0; i < 12; i++) { 2113 if (m == months[i]) { 2114 m = i + 1; 2115 if (i < 10) 2116 m = '0' + m; 2117 return m; 2118 } 2119 } 2120 } else if (m.length == 4 && m == 'SEPT') { 2121 m = '09'; 2122 return m; 2123 } else 2124 return false; 2125 }; 2126 2127 // Check for a valid year 2128 // y: year part (2 digit) 2129 // returns: 4 digit year if valid, false if invalid 2130 svcrm.formBuilderScripts.chkYear = function(y){ 2131 if (y < 75) { 2132 y = "20" + y; 2133 return y; 2134 } else if (y >= 75) { 2135 y = "19" + y; 2136 return y; 2137 } else 2138 return false; 2139 }; 2140 2141 svcrm.formBuilderScripts.showDate = function(baseURL, fld, frm) { 2142 var urlSeparator = '?'; 2143 2144 if("https://www.grbhouston.com/contact-us/".indexOf('?') != -1){ 2145 urlSeparator = '&'; 2146 } 2147 2148 var str = "https://www.grbhouston.com/contact-us/" + urlSeparator + "action=popupCal&frm=" + frm + "&fld=" + fld + '&randid=' + new Date().getTime(); 2149 if (eval("document." + frm + "." + fld).value.length > 0) 2150 str = str + "&cdate=" + eval("document." + frm + "." + fld).value; 2151 2152 svcrm.formBuilderScripts.openPopup(str, "calwin", 210, 210, "width=210,height=210,toolbar=no,status=no,directories=no,menubar=no,resizable=no,scrollable=no", true); 2153 }; 2154 2155 svcrm.formBuilderScripts.openPopup = function(url, name, pWidth, pHeight, features, snapToLastMousePosition) { 2156 svcrm.formBuilderScripts.openPopupFocus(url, name, pWidth, pHeight, features, snapToLastMousePosition, true); 2157 }; 2158 2159 svcrm.formBuilderScripts.closePopup = function(){ 2160 if (svcrm.formBuilderScripts.curPopupWindow != null) { 2161 2162 if (!svcrm.formBuilderScripts.curPopupWindow.closed) 2163 svcrm.formBuilderScripts.curPopupWindow.close(); 2164 2165 svcrm.formBuilderScripts.curPopupWindow = null; 2166 } 2167 }; 2168 2169 svcrm.formBuilderScripts.openPopupFocus = function(url, name, pWidth, pHeight, features, snapToLastMousePosition, closeOnLoseFocus) { 2170 svcrm.formBuilderScripts.closePopup(); 2171 2172 if (snapToLastMousePosition) { 2173 if (svcrm.formBuilderScripts.lastMouseX - pWidth < 0) { 2174 svcrm.formBuilderScripts.lastMouseX = pWidth; 2175 } 2176 if (svcrm.formBuilderScripts.lastMouseY + pHeight > screen.height) { 2177 svcrm.formBuilderScripts.lastMouseY -= (svcrm.formBuilderScripts.lastMouseY + pHeight + 50) - screen.height; 2178 } 2179 svcrm.formBuilderScripts.lastMouseX -= pWidth; 2180 svcrm.formBuilderScripts.lastMouseY += 10; 2181 features += "screenX=" + svcrm.formBuilderScripts.lastMouseX + ",left=" + svcrm.formBuilderScripts.lastMouseX + "screenY=" + svcrm.formBuilderScripts.lastMouseY + ",top=" + svcrm.formBuilderScripts.lastMouseY; 2182 } 2183 2184 if (closeOnLoseFocus) { 2185 curPopupWindow = window.open(url, name, features, false); 2186 curPopupWindow.focus(); 2187 } else { 2188 win = window.open(url, name, features, false); 2189 win.focus(); 2190 } 2191 }; 2192 2193 svcrm.formBuilderScripts.setLastMousePosition = function(e) { 2194 if (navigator.appName.indexOf("Microsoft") != -1) e = window.event; 2195 svcrm.formBuilderScripts.lastMouseX = e.screenX; 2196 svcrm.formBuilderScripts.lastMouseY = e.screenY; 2197 }; 2198 /* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/dateValidate.js +++++++++++++++++++++++++++++++++++++*/ 2199 2200 /* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/ 2201 svcrm.formBuilderScripts.zipLookup = function(fuseroot, zip, fldCity, fldState){ 2202 var scriptID = 'zipLookupJSONP'; 2203 2204 //kill the existing one if we have one 2205 if(document.getElementById(scriptID)){ 2206 document.getElementById(scriptID).parentNode.removeChild(document.getElementById(scriptID)); 2207 } 2208 2209 if (svcrm.formBuilderScripts.trim(zip).length != 5 || !svcrm.formBuilderScripts.checkChars(zip, "0123456789")){ 2210 return false; 2211 }else{ 2212 //jsonP this thing over 2213 var s = document.createElement('script'); 2214 s.id = scriptID; 2215 s.type = 'application/javascript'; 2216 s.src = 'https://houston.simpleviewcrm.com/webapi/formbuilder/ziplookup.cfm?zip='+zip+'&fldCityId='+fldCity.id+'&fldStateId='+fldState.id+'&jsonp=svcrm.formBuilderScripts.processZipChange' 2217 document.body.appendChild(s); 2218 } 2219 }; 2220 2221 svcrm.formBuilderScripts.processZipChange = function(rtn){ 2222 var fldCity = document.getElementById(rtn.fldCityId); 2223 var fldState = document.getElementById(rtn.fldStateId); 2224 2225 if (rtn.city.length > 0 && fldCity != '')
2226 fldCity.value = rtn.city; 2227 else if (fldCity != '') 2228 fldCity.value = ''; 2229 2230 if (rtn.state.length > 0 && fldState != '') { 2231 for (var i = 0; i < fldState.options.length; i++) { 2232 if (fldState.options[i].value == rtn.state) { 2233 fldState.selectedIndex = i; 2234 break; 2235 } 2236 } 2237 if (i == fldState.options.length) fldState.selectedIndex = 0; 2238 } else if (fldState != '') 2239 fldState.selectedIndex = 0; 2240 }; 2241 /* +++++++++++++++++++++++++++ END Script copied from OLD CMS /includes/scripts/ziplookup.js +++++++++++++++++++++++++++++++++++++*/ 2242 2243 /* +++++++++++++++++++++++++++ START Script Calendar +++++++++++++++++++++++++++++++++++++*/ 2244 svcrm.formBuilderScripts.fbCalendar = { 2245 today: new Date(), 2246 monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], 2247 dayList: ['S','M','T','W','T','F','S'], 2248 2249 dayListTds: function(){ 2250 var rtn = ''; 2251 for(var i = 0; i < this.dayList.length; i++){ 2252 rtn += '<td align="center" class="Day" width="22">' + this.dayList[i] + '</td>'; 2253 } 2254 return rtn; 2255 }, 2256 2257 getPrevMonthDate: function (curDate) { 2258 var y = curDate.getFullYear(); 2259 var m = curDate.getMonth(); 2260 if (m === 0) { y -= 1; m = 12; } 2261 if (m.toString().length == 1) { m = '0' + m.toString(); } 2262 return m + '/01/' + y; 2263 }, 2264 2265 getNextMonthDate: function (curDate) { 2266 var y = curDate.getFullYear(); 2267 var m = curDate.getMonth() + 2; 2268 if (m == 13) { y += 1; m = 1; } 2269 if (m.toString().length == 1) { m = '0' + m.toString(); } 2270 return m + '/01/' + y; 2271 }, 2272 2273 getPrevYearDate: function(curDate){ 2274 var y = curDate.getFullYear()-1; 2275 var m = curDate.getMonth()+1; 2276 if (m.toString().length == 1) { m = '0' + m.toString(); } 2277 return m + '/01/' + y; 2278 }, 2279 2280 getNextYearDate: function (curDate) { 2281 var y = curDate.getFullYear() + 1; 2282 var m = curDate.getMonth()+1; 2283 if (m.toString().length == 1) { m = '0' + m.toString(); } 2284 return m + '/01/' + y; 2285 }, 2286 2287 getCurMonthName: function (curDate) { 2288 return this.monthNames[curDate.getMonth()]; 2289 }, 2290 2291 createCal: function (id, sDate, useToday) { 2292 try{ 2293 if(sDate){ 2294 sDate = new Date(sDate); 2295 }else{ 2296 sDate = this.today; 2297 } 2298 } catch (e) { 2299 sDate = this.today; 2300 } 2301 2302 var d = { 2303 inDate: sDate, 2304 today: this.today, 2305 day: sDate.getDate(), 2306 month: sDate.getMonth() + 1, 2307 year: sDate.getFullYear(), 2308 prevMonth: this.getPrevMonthDate(sDate), 2309 nextMonth: this.getNextMonthDate(sDate), 2310 2311 calendar: ' '+ 2312 '<div id="fbCalendar" align="center"> ' + 2313 '<div class="fbCalCloseBtn" onclick="svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(' + "'datepicker_" + id + "'" + '));"> </div> '+ 2314 '<table border="0" cellpadding="2" cellspacing="1" width="154"> '+ 2315 '<tr> '+ 2316 '<td class="CH"> '+ 2317 '<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevMonthDate(sDate) + '\');"><<</a> ' + this.getCurMonthName(sDate) + ' <a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextMonthDate(sDate) + '\');">>></a> '+ 2318 '</td> '+ 2319 '<td align="right" class="CH"> '+ 2320 '<a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getPrevYearDate(sDate) + '\');"><<</a> ' + sDate.getFullYear() + ' <a class="CH" href="javascript:svcrm.formBuilderScripts.fbCalendar.replaceCal(\'' + id + '\',\'' + this.getNextYearDate(sDate) + '\');">>></a>'+ 2321 '</td> '+ 2322 '</tr> '+ 2323 '</table> '+ 2324 '<table border="0" cellpadding="2" cellspacing="1" width="154"> '+ 2325 '<tr bgcolor="#ffffff">' + this.dayListTds() + '</tr>' + this.calDays(id, sDate, useToday) + 2326 '</table> '+ 2327 '</div>' 2328 }; 2329 2330 return d.calendar; 2331 }, 2332 2333 calDays: function(id, curDate, useToday){ 2334 var rtnvar = ''; 2335 var numDaysInMonth = new Date(curDate.getFullYear(), curDate.getMonth()+1, 0).getDate();
2336 var startofmonth = new Date(); 2337 startofmonth = new Date(curDate.getFullYear(),curDate.getMonth(),1); 2338 var rows = Math.ceil((startofmonth.getDay()+numDaysInMonth)/7); 2339 var cday = 1; 2340 var firstday = startofmonth.getDay()+1; 2341 var lastday = numDaysInMonth; 2342 2343 2344 var loopstart = 0; 2345 var loopend = 0; 2346 var currentDate = new Date(); 2347 currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()); 2348 2349 for(var i = 1; i <= rows; i++){ 2350 rtnvar += '<tr bgcolor="#ffffff">'; 2351 loopstart = ((i-1)*7)+1; 2352 loopend = loopstart+6; 2353 for(var d = loopstart; d <= loopend; d++){ 2354 rtnvar += '<td align="center" bgcolor="#ffffff" class="Day">'; 2355 if(d >= firstday && cday <= lastday){ 2356 var dt = new Date(curDate.getFullYear(), curDate.getMonth(), cday); 2357 var tmpDt = new Date(curDate.getFullYear(), curDate.getMonth(), curDate.getDate()); 2358 var className = (dt.getTime() == tmpDt.getTime() && useToday) ? 'today' : 'Day'; 2359 className += dt.getTime() == currentDate.getTime() ? ' currentDay' : ''; 2360 2361 var thisdate = this.convertToUserDate(parseInt(dt.getMonth()+1,10) +'/'+parseInt(dt.getDate(),10)+'/'+parseInt(dt.getFullYear(), 10)); 2362 2363 rtnvar += '<a class="' + className + '" href="javascript:svcrm.formBuilderScripts.fbCalendar.updateDate(\'' + id + '\',\'' + thisdate + '\');">' + cday + '</a><br>'; 2364 cday++; 2365 }else{ 2366 rtnvar += ' <br />'; 2367 } 2368 } 2369 rtnvar += '</tr>'; 2370 } 2371 2372 return rtnvar; 2373 }, 2374 2375 replaceCal: function (id, sDate) { 2376 var cal = this.createCal(id, sDate, false); 2377 if (document.getElementById(id + '_calendar')) { 2378 document.getElementById(id + '_calendar').innerHTML = cal; 2379 } else { 2380 var newDomElm = document.createElement('div'); 2381 newDomElm.style.position = 'absolute'; 2382 newDomElm.innerHTML = cal; 2383 newDomElm.id = id + '_calendar'; 2384 if (document.getElementById('fieldcontainer_' + id)) { 2385 document.getElementById('fieldcontainer_' + id).appendChild(newDomElm); 2386 } 2387 } 2388 2389 return; 2390 }, 2391 2392 updateDate: function(id, curDate){ 2393 document.getElementById(id).value = curDate; 2394 //document.getElementById(id).onchange(); 2395 if(document.getElementById(id + '_calendar')){ 2396 document.getElementById('fieldcontainer_' + id).removeChild(document.getElementById(id + '_calendar')); 2397 } 2398 2399 if(document.getElementById('datepicker_' + id)){ 2400 document.getElementById('datepicker_' + id).onclick = function(){ 2401 svcrm.formBuilderScripts.fbCalendar.showDatePicker(document.getElementById(id), document.getElementById(id).value); 2402 }; 2403 } 2404 2405 }, 2406 2407 showDatePicker: function(domElm, curDate){ 2408 var cleanID = domElm.id.replace('datepicker_', ''); 2409 var sDate = new Date(); 2410 if(!document.getElementById(cleanID + '_calendar')){ 2411 if(document.getElementById(cleanID)){ 2412 try{ 2413 if(curDate){ 2414 sDate = this.convertToUSDate(curDate); 2415 if(sDate == 'Invalid Date'){ 2416 sDate = new Date(); 2417 } 2418 } 2419 }catch(e){ 2420 sDate = new Date(); 2421 } 2422 this.getCalendar(cleanID, sDate); 2423 } 2424 }else{ 2425 document.getElementById('fieldcontainer_' + cleanID).removeChild(document.getElementById(cleanID + '_calendar')); 2426 } 2427 }, 2428 2429 getCalendar: function(id, curDate){ 2430 var newDomElm = document.createElement('div'); 2431 newDomElm.style.position = 'absolute'; 2432 newDomElm.innerHTML = this.createCal(id, curDate, true); 2433 newDomElm.id = id + '_calendar'; 2434 newDomElm.className = 'svcrm_datepicker'; 2435 document.getElementById('fieldcontainer_' + id).appendChild(newDomElm); 2436 }, 2437 2438 convertToUSDate: function(dte){ 2439 var rtnvar = false; 2440 var wrk = dte.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER); 2441 var wrkdate = []; 2442 var mydate = ''; 2443 if(wrk.length > 0){ 2444 wrkdate[0] = parseInt(wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1],10); //always holds the day 2445 wrkdate[1] = parseInt(wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1],10); //always holds the month 2446 wrkdate[2] = parseInt(wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1],10); //always holds the year 2447 2448 if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months 2449 var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi"); 2450 var numdays = 31; 2451 if(wrkdate[1] == 2){//feb 2452 numdays = 28; 2453 //check if leap year 2454 if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){ 2455 numdays = 29; 2456 } 2457 }else if(monthsWithDaysRegExp.test(wrkdate[1])){ 2458 numdays = 30; 2459 } 2460 2461 if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month 2462 if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it 2463 wrkdate[2] = chkYear(wrkdate[2]); 2464 } 2465 2466 if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this 2467 /* 2468 we are here we have a valid month 2469 and we have a valid day for that month 2470 and we have a valid 4 digit year 2471 */ 2472 //fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); 2473 wrk[1] = wrkdate[0]; //put the day back where it should be 2474 wrk[0] = wrkdate[1]; //put the month back where it should be 2475 wrk[2] = wrkdate[2]; //put the year back where it should be 2476 wrkdate = wrk.join("/"); //join on the us delim and return valid 2477 rtnvar = true; 2478 } 2479 } 2480 } 2481 } 2482 2483 if(!rtnvar){ //if we didn't get a good date from above we use today 2484 wrkdate = new Date(); 2485 } 2486 return wrkdate; 2487 }, 2488 2489 convertToUserDate: function(dte){ 2490 var rtnvar = false; 2491 var wrk = dte.split("/"); 2492 var wrkdate = []; 2493 var mydate = ''; 2494 if(wrk.length > 0){ 2495 wrkdate[0] = parseInt(wrk[1],10); //always holds the day 2496 wrkdate[1] = parseInt(wrk[0],10); //always holds the month 2497 wrkdate[2] = parseInt(wrk[2],10); //always holds the year 2498 2499 if(wrkdate[1] > 0 && wrkdate[1] < 13){ //Validate the months 2500 var monthsWithDaysRegExp = new RegExp("(4|6|9|11)", "gi"); 2501 var numdays = 31; 2502 if(wrkdate[1] == 2){//feb 2503 numdays = 28; 2504 //check if leap year 2505 if (wrkdate[2] % 4 === 0 && (wrkdate[2] % 100 !== 0 || wrkdate[2] % 400 === 0)){ 2506 numdays = 29; 2507 } 2508 }else if(monthsWithDaysRegExp.test(wrkdate[1])){ 2509 numdays = 30; 2510 } 2511 2512 if(wrkdate[0] > 0 && wrkdate[0] <= numdays){ //validate the days in this month 2513 if(wrkdate[2].toString().length == 2){ //if we have a two digit year pad it 2514 wrkdate[2] = chkYear(wrkdate[2]); 2515 } 2516 2517 if(wrkdate[2].toString().length == 4 && !isNaN(wrkdate[2])){ //validate the year, could expand this 2518 /* 2519 we are here we have a valid month 2520 and we have a valid day for that month 2521 and we have a valid 4 digit year 2522 */ 2523 //fld.value = wrkdate.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); 2524 wrk[crm_locale.YAHOO_MDY_DAY_POSITION-1] = wrkdate[0]; //put the day back where it should be 2525 wrk[crm_locale.YAHOO_MDY_MONTH_POSITION-1] = wrkdate[1]; //put the month back where it should be 2526 wrk[crm_locale.YAHOO_MDY_YEAR_POSITION-1] = wrkdate[2]; //put the year back where it should be 2527 wrkdate = wrk.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); //join on the correct delim and return valid 2528 rtnvar = true; 2529 } 2530 } 2531 } 2532 } 2533 2534 if(!rtnvar){ //I dont really know what to do here i guess just use today and convert to their date 2535 var t = new Date(); 2536 t = t.getMonth()+1 + '/' + t.getDay() + '/' + t.getFullYear(); 2537 wrkdate = this.convertToUserDate(t); 2538 } 2539 return wrkdate; 2540 }, 2541 2542 convertToUserMDOnlyDate: function(dte){ 2543 var dateFormat_MDOnly = crm_locale.DATEFMT_MDONLY.split(crm_locale.YAHOO_DATE_FIELD_DELIMITER); 2544 var _day = dte.getDate().toString();
2545 var _month = (dte.getMonth() + 1).toString(); 2546 var _dayFormat = ''; 2547 var _monthFormat = ''; 2548 var _dayPostion = ''; 2549 var _monthPostion = ''; 2550 2551 if(dateFormat_MDOnly[0].indexOf('d') != -1){ 2552 _dayFormat = dateFormat_MDOnly[0]; 2553 _monthFormat = dateFormat_MDOnly[1]; 2554 _dayPostion = 0; 2555 _monthPostion = 1; 2556 }else{ 2557 _dayFormat = dateFormat_MDOnly[1]; 2558 _monthFormat = dateFormat_MDOnly[0]; 2559 _dayPostion = 1; 2560 _monthPostion = 0; 2561 } 2562 2563 if(_dayFormat == 'dd' && _day.length != 2){ 2564 _day = '0' + _day; 2565 } 2566 if(_monthFormat == 'mm' && _month.length != 2){ 2567 _month = '0' + _month; 2568 } 2569 2570 var dsp = []; 2571 dsp[_dayPostion] = _day; 2572 dsp[_monthPostion] = _month; 2573 dsp = dsp.join(crm_locale.YAHOO_DATE_FIELD_DELIMITER); 2574 return dsp; 2575 } 2576 2577 }; 2578 /* +++++++++++++++++++++++++++ END Script Calendar +++++++++++++++++++++++++++++++++++++*/ 2579 2580 if (window.addEventListener) { 2581 window.addEventListener('load', svcrm.formBuilderScripts.__onload_function, false); 2582 } else if (window.attachEvent) { 2583 window.attachEvent('onload', svcrm.formBuilderScripts.__onload_function); 2584 } 2585 })(); 2586 /* +++++++++++++++++++++++++++ BEGIN Script copied from OLD CMS loadCRMForm +++++++++++++++++++++++++++++++++++++*/ 2587 </script>
2587 2588 2589 <style type="text/css"> 2590 /*** Styling for Forms ***/ 2591 form.simpleForm {} 2592 form.simpleForm fieldset {} 2593 form.simpleForm legend {} 2594 form.simpleForm label {} 2595 form.simpleForm label.label_hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;} 2596 form.simpleForm .formreq { color: #B30000;} 2597 form.simpleForm input[type="radio"], form.simpleForm input[type="checkbox"] {} 2598 form.simpleForm input[type="text"] {} 2599 form.simpleForm input.date { cursor: pointer;} 2600 form.simpleForm select {} 2601 form.simpleForm table { background: none; border: none; margin: 0;} 2602 form.simpleForm table tr td { padding: 0;} 2603 form.simpleForm .captcha {} 2604 2605 #capimage { height: 17px; width:17px;} 2606 2607 form.simpleForm .svcrm_datepicker { 2608 z-index: 3; 2609 } 2610 #fbCalendar{ 2611 background-color: white; 2612 border:1px solid #336699; 2613 border-radius:2px; 2614 box-shadow: #336699 1px 1px; 2615 } 2616 #fbCalendar TD { font-size: 12px; font-family: Arial } 2617 #fbCalendar .Day { font-size: 12px; color: #000000; border:1px solid transparent;} 2618 #fbCalendar .CH { font-size: 12px; color: #336699; font-weight: bold; bgcolor: #cccccc; } 2619 #fbCalendar A.today:link, #fbCalendar A.today:visited{text-decoration:none; color:#000000; font-weight: bold;} 2620 #fbCalendar A.today:hover{text-decoration:none; color:#CC3300; font-weight: bold;} 2621 #fbCalendar A.Day:link, #fbCalendar A.Day:visited{text-decoration:none; color:#990000; font-weight: normal;} 2622 #fbCalendar A.Day:hover{text-decoration:none; color:#CC3300; font-weight: normal; border:1px solid #000000;} 2623 #fbCalendar A.CH:link, #fbCalendar A.CH:visited{text-decoration:none; color:#336699;} 2624 #fbCalendar A.CH:hover{text-decoration:none; color:#0033FF;} 2625 #fbCalendar A.close:link, #fbCalendar A.close:visited{font-size: 10px; text-decoration:none; color:#666666;} 2626 #fbCalendar A.close:hover{font-size: 10px; text-decoration:underline; color:#666666;} 2627 #fbCalendar A:link, #fbCalendar A:visited{text-decoration:none; color:#000099;} 2628 #fbCalendar A:hover{text-decoration:none; color:#0000FF;} 2629 #fbCalendar .currentDay{border:1px solid #336699; padding: 2px;} 2630 #fbCalendar div.fbCalCloseBtn{ 2631 background:transparent url(https://Houston.simpleviewcrm.com/core_crm/Resources/images/calx.gif) no-repeat; 2632 width:17px; 2633 height:13px; 2634 float:right; 2635 border:2px solid #ffffff; 2636 } 2637 #fbCalendar div.fbCalCloseBtn:hover{ 2638 cursor: pointer; 2639 border:2px solid #336699; 2640 } 2641 2642 /*** Mobile ***/ 2643 @media only screen and (max-width: 40em) {} 2644 /*** Tablet ***/ 2645 @media only screen and (min-width: 40.063em) and (max-width: 64em) {} 2646 2647 /*** Desktop ***/ 2648 @media only screen and (min-width: 64.063em) { 2649 form.simpleForm label { max-width: 430px; text-align: right;} 2650 } 2651 </style> 2652 2653 2654 <style type="text/css"> 2655 .simpleForm { 2656 color: #333333; 2657 font-family: "Roboto",sans-serif; 2658 } 2659 2660 .simpleForm h3 { 2661 color: #ffffff; 2662 font-size: 24px; 2663 font-family: "Roboto",sans-serif !important; 2664 height: 100% !important; 2665 max-height: 100px !important; 2666 letter-spacing: 4px; 2667 margin-bottom: 60px; 2668 margin-top: 60px; 2669 padding: 0px 10px; 2670 text-align: center; 2671 text-transform: uppercase; 2672 } 2673 2674 .simpleForm label { 2675 font-weight: bold; 2676 line-height: 100%; 2677 font-size: 1rem; 2678 margin-top: 10px; 2679 } 2680 2681 .simpleForm p.hint { 2682 font-family: "Merriweather",serif; 2683 font-style: italic; 2684 font-size: 0.9rem; 2685 padding-bottom: 14px; 2686 } 2687 2688 .simpleForm div.formCntrls { 2689 padding-top: 1rem; 2690 text-align: center; 2691 } 2692 2693 .simpleForm input.button::before { 2694 box-sizing: content-box; 2695 content: " "; 2696 height: 100%; 2697 left: -10px; 2698 opacity: 0; 2699 padding: 10px; 2700 position: absolute; 2701 top: -10px; 2702 transform: scale(0.85, 0.6); 2703 transition: all 0.5s ease 0s; 2704 width: 100%; 2705 z-index: -1; 2706 box-shadow: 0 0 0 2px #c2df8d; 2707 } 2708 2709 .simpleForm input.button { 2710 color: #ffffff; 2711 /* font-family: "Roboto",sans-serif; */ 2712 font-size: 14px; 2713 font-weight: 400; 2714 margin: 0; 2715 padding: 16px 38px; 2716 position: relative; 2717 text-transform: uppercase; 2718 transition: all 0.3s ease 0s; 2719 z-index: 9; 2720 background-color: #6d9f11; 2721 } 2722 2723 .simpleForm input.button::after { 2724 content: "ïââ¦"; 2725 display: inline-block; 2726 font: 1.4em/1 FontAwesome; 2727 left: 6px; 2728 position: relative; 2729 text-rendering: auto; 2730 top: 1.3px; 2731 transform: translate(0px, 0px); 2732 transition: all 0.3s ease 0s; 2733 } 2734 2735 /* Center Captcha */ 2736 .simpleForm .captcha { 2737 text-align: center; 2738 } 2739 2740 .simpleForm select { 2741 height: 3rem; 2742 } 2743
2744 /* override default of inline-block because it will stack instead of laying side by side */ 2745 form.simpleForm input[type="checkbox"] { 2746 display: inline; 2747 } 2748 form.simpleForm input[type="checkbox"] + label { 2749 display: inline; 2750 } 2751 2752 2753 </style> 2754 2755 2756
2756<script> 2757 2758 function updateDOM(){ 2759 if (window.location.hostname.indexOf("mygayhouston") > 0) { 2760 var customCssId = 'LGBT_customCSS'; 2761 2762 var head = document.getElementsByTagName('head')[0]; 2763 //head.removeChild(document.getElementById('clientCustomCSS')); 2764 var link = document.createElement('link'); 2765 link.id = customCssId; 2766 link.rel = 'stylesheet'; 2767 link.type = 'text/css'; 2768 link.href = 'https://houston.simpleviewcrm.com/WebAPI/forms/includes/gayhouston.css'; 2769 link.media = 'all'; 2770 head.appendChild(link); 2771 } 2772 else { 2773 var customCssId = 'defaultHouston'; 2774 2775 var head = document.getElementsByTagName('head')[0]; 2776 //head.removeChild(document.getElementById('clientCustomCSS')); 2777 var link = document.createElement('link'); 2778 link.id = customCssId; 2779 link.rel = 'stylesheet'; 2780 link.type = 'text/css'; 2781 link.href = 'https://houston.simpleviewcrm.com/WebAPI/forms/includes/defaulthouston.css'; 2782 link.media = 'all'; 2783 head.appendChild(link); 2784 2785 (document.getElementById('td_contact_state')) ? document.getElementById('td_contact_state').children[0].id = 'label_contact_state' : null; 2786 (document.getElementById('td_contact_zip')) ? document.getElementById('td_contact_zip').children[0].id = 'label_contact_zip' : null; 2787 2788 2789 } 2790 } 2791 if (window.addEventListener) { 2792 window.addEventListener('load', updateDOM, false); 2793 } else if (window.attachEvent) { 2794 window.attachEvent('onload', updateDOM); 2795 } 2796 2797 </script>
2797 2798 </div> 2799 </div> 2800 </div> 2801</div></div> 2802 </div> 2803 <div class="footerWrapper"> 2804 <div data-civid="56ac02be5e8701025f9eca48" class="contentRender contentRender_9 contentRender_type_panel contentRender_name_plugins_common_footer_cc" data-sv-time="1" data-sv-index="9" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'><div class="footer-top"> 2805 <div class="row"> 2806 <div class="columns show-for-medium-down"> 2807 <div class="quick-links" data-sv-footer-toggle>QUICK LINKS <i class="fa fa-chevron-down"></i></div> 2808 </div> 2809 <div data-civid="5dd59e1d89c3e7c87ac7b675" class="contentRender contentRender_10 contentRender_type_widget contentRender_name_plugins_nav_footer_cc" data-sv-time="13" data-sv-index="10" data-gtm-vars='{ "tCore" : { "contentNum" : "1" } }'> 2810 2811 2812<div class="navFooter small-12" data-sv-footer-cont> 2813 2814 2815 2816 <div class="columns large-4"> 2817 <div class="item item-parent"> 2818 <a href="/planners/" target="_self" title="Planners">Planners</a> 2819 2820 <div class="dropdown"> 2821 2822 <div class="item"> 2823 <a href="/planners/book-an-event/" target="_self" title="Book An Event">Book An Event</a> 2824 </div> 2825 2826 <div class="item"> 2827 <a href="/planners/grb-brochure/" target="_self" title="GRB Brochure">GRB Brochure</a> 2828 </div> 2829 2830 <div class="item"> 2831 <a href="/planners/floor-plans/" target="_self" title="Floor Plans">Floor Plans</a> 2832 </div> 2833 2834 <div class="item"> 2835 <a href="/planners/dimensions-capacities/" target="_self" title="Dimensions & Capacities">Dimensions & Capacities</a> 2836 </div> 2837 2838 <div class="item"> 2839 <a href="/planners/grb-services/" target="_self" title="GRB Services">GRB Services</a> 2840 </div> 2841 2842 <div class="item"> 2843 <a href="/planners/checklist/" target="_self" title="Meeting Planner Checklist">Meeting Planner Checklist</a> 2844 </div> 2845 2846 <div class="item"> 2847 <a href="https://www.grbhouston.com/media-gallery/" target="_self" title="Image Gallery">Image Gallery</a> 2848 </div> 2849 2850 <div class="item"> 2851 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/GRB_Sponsorship_Branding_Guide_2024_Mail_1__fd59a057-3eb1-4928-aa6e-5c527764c903.pdf" target="_self" title="Sponsorship Opportunities">Sponsorship Opportunities</a> 2852 </div> 2853 2854 <div class="item"> 2855 <a href="https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/houston/Facility_Signage_Map_Only_2025_95e3036f-f16c-42c9-a6fd-d6dd38662ae0.pdf" target="_self" title="Digital Signage">Digital Signage</a> 2856 </div> 2857 2858 <div class="item"> 2859 <a href="/planners/green-facts/" target="_self" title="Sustainability">Sustainability</a> 2860 </div> 2861 2862 <div class="item"> 2863 <a href="https://www.grbhouston.com/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 2864 </div> 2865 2866 </div> 2867 2868 </div> 2869 </div> 2870 2871 2872 2873 <div class="columns large-4"> 2874 <div class="item item-parent"> 2875 <a href="/exhibitors/" target="_self" title="Exhibitors">Exhibitors</a> 2876 2877 <div class="dropdown"> 2878 2879 <div class="item"> 2880 <a href="https://www.grbhouston.com/planners/grb-brochure/" target="_self" title="GRB Brochure">GRB Brochure</a> 2881 </div> 2882 2883 <div class="item"> 2884 <a href="https://www.grbhouston.com/planners/grb-services/" target="_self" title="GRB Services">GRB Services</a> 2885 </div> 2886 2887 <div class="item"> 2888 <a href="https://www.grbhouston.com/planners/floor-plans/" target="_self" title="Floor Plans">Floor Plans</a> 2889 </div> 2890 2891 <div class="item"> 2892 <a href="/exhibitors/exhibitor-guidelines/" target="_self" title="Exhibitor Guidelines">Exhibitor Guidelines</a> 2893 </div> 2894 2895 <div class="item"> 2896 <a href="https://www.grbhouston.com/attendees/maps-and-directions/" target="_self" title="Parking, Maps & Directions">Parking, Maps & Directions</a> 2897 </div> 2898 2899 <div class="item"> 2900 <a href="/exhibitors/getting-around-houston/" target="_self" title="Getting Around Houston">Getting Around Houston</a> 2901 </div> 2902 2903 <div class="item"> 2904 <a href="http://www.visithoustontexas.com/" target="_blank" title="Visit Houston">Visit Houston</a> 2905 </div> 2906 2907 <div class="item"> 2908 <a href="http://www.downtownhouston.org/" target="_self" title="Downtown Houston">Downtown Houston</a> 2909 </div> 2910 2911 <div class="item"> 2912 <a href="https://www.grbhouston.com/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 2913 </div> 2914 2915 </div> 2916 2917 </div> 2918 </div> 2919 2920
2921 2922 <div class="columns large-4"> 2923 <div class="item item-parent"> 2924 <a href="/attendees/" target="_self" title="Attendees">Attendees</a> 2925 2926 <div class="dropdown"> 2927 2928 <div class="item"> 2929 <a href="/attendees/events-calendar/" target="_blank" title="Event Calendar">Event Calendar</a> 2930 </div> 2931 2932 <div class="item"> 2933 <a href="/attendees/maps-and-directions/" target="_self" title="Maps, Directions, & Transportation">Maps, Directions, & Transportation</a> 2934 </div> 2935 2936 <div class="item"> 2937 <a href="/attendees/parking/" target="_self" title="Parking">Parking</a> 2938 </div> 2939 2940 <div class="item"> 2941 <a href="https://www.grbhouston.com/exhibitors/getting-around-houston/" target="_self" title="Getting Around Houston">Getting Around Houston</a> 2942 </div> 2943 2944 <div class="item"> 2945 <a href="/attendees/attendee-amenities/" target="_self" title="Attendee Amenities">Attendee Amenities</a> 2946 </div> 2947 2948 <div class="item"> 2949 <a href="/attendees/faqs/" target="_self" title="FAQs">FAQs</a> 2950 </div> 2951 2952 <div class="item"> 2953 <a href="/attendees/lost-and-found/" target="_self" title="Lost and Found">Lost and Found</a> 2954 </div> 2955 2956 <div class="item"> 2957 <a href="http://www.visithoustontexas.com/" target="_blank" title="Visit Houston">Visit Houston</a> 2958 </div> 2959 2960 <div class="item"> 2961 <a href="http://www.downtownhouston.org/" target="_self" title="Downtown Houston">Downtown Houston</a> 2962 </div> 2963 2964 </div> 2965 2966 </div> 2967 </div> 2968 2969 2970 2971 <!-- <div class="columns large-3"> 2972 <div class="item last item-parent"> 2973 <a href="/">Contact Us</a> 2974 <div class="dropdown"> 2975 <div class="item"> 2976 <a href="/">Inquiry From</a> 2977 </div> 2978 <div class="item"> 2979 <a href="/">Social Media</a> 2980 </div> 2981 </div> 2982 </div> 2983 </div> --> 2984 <div class="clearfix"></div> 2985</div> 2986</div> 2987 </div> 2988 <div class="clearfix"></div> 2989</div> 2990 2991<div class="footer-bottom"> 2992 <div class="row"> 2993 <div class="columns"> 2994 <div class="top"> 2995 <div class="footer-left small-12 large-7 left"> 2996 <div class="footer-logo logo"><a href="/"><img src="/includes/public/assets/images/logo.png" /></a></div> 2997 <div class="show-for-medium-down"></div> 2998 <div class="footer-logo logohf"><a href="http://www.houstonfirst.com/" target="_blank"><img src="/includes/public/assets/images/logo-hf.png" /></a></div> 2999 <div class="show-for-small"></div> 3000 <div class="show-for-medium-down"></div> 3001 <div class="footer-logo logogreen"><a href="/grb-houston-achieves-leed-gold/"><img src="https://assets.simpleviewinc.com/simpleview/image/upload/c_limit,h_100,q_80,w_100/v1/clients/houston/LEED_22_Gold_V02_21b8a0ac-eabb-4d5c-a654-8019feb4b08e.png" /></a></div> 3002 </div> 3003 3004 <div class="footer-right small-12 large-5 left"> 3005 <div data-civid="5dd59e1d89c3e7c87ac7b677" class="contentRender contentRender_11 contentRender_type_widget contentRender_name_plugins_core_textbox" data-sv-time="14" data-sv-index="11" data-gtm-vars='{ "tCore" : { "contentNum" : "2" } }'><section data-sv-core-textbox data-guid="df02d43e-3bdb-4fb8-864a-13862f1209f8"> 3006 <p>George R. Brown Convention Center<br> 30071001 Avenida de las Americas<br> 3008Houston, Texas 77010<br> 3009Main Line: 713-853-8000<br> 3010Toll Free: 800-427-4697<br> 3011Fax: 713-853-8090<br> 3012 </p> 3013 3014<p>Office Hours: Monday through Friday: 8am - 5pm<br> 3015After Hours and Weekends: Security Office - 713-853-8087</p> 3016<p><a href="https://www.houstonfirst.com/terms/" target="_blank" title="Terms of Use">Terms of Use</a></p> 3017 3018</section></div> 3019 </div> 3020 <div class="clearfix"></div> 3021 </div> 3022 <div class="clearfix"></div> 3023 3024 <div class="bottom"> 3025 3026 <div class="info left">© 2026 Houston First Corporation. All Rights Reserved.</div> 3027 <!-- <div class="login right">Login</div> --> 3028 </div> 3029 </div> 3030 </div> 3031 3032 <div class="mobile-fixed"> 3033 3034 3035 </div> 3036</div> 3037
3038<script> 3039 require(["jquery", "domReady!"], function($) { 3040 $('[data-sv-footer-toggle]').on('click', function() { 3041 $('.navFooter').slideToggle(); 3042 }); 3043 }); 3044</script>
3044</div> 3045 </div> 3046</div> 3047 3048<!-- Quantcast Tag -->
3049<script type="text/javascript"> 3050var _qevents = _qevents || []; 3051 3052(function() { 3053var elem = document.createElement('script'); 3054elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; 3055elem.async = true; 3056elem.type = "text/javascript"; 3057var scpt = document.getElementsByTagName('script')[0]; 3058scpt.parentNode.insertBefore(elem, scpt); 3059})(); 3060 3061_qevents.push({ 3062qacct:"p-5do2auQ5tMq62" 3063}); 3064</script>
3064 3065 3066<noscript> 3067<div style="display:none;"> 3068<img src="//pixel.quantserve.com/pixel/p-5do2auQ5tMq62.gif" border="0" height="1" width="1" alt="Quantcast"/> 3069</div> 3070</noscript> 3071<!-- End Quantcast tag --> 3072</div> 3073 <!-- footer css bundles --> 3074 3075 <!-- footer js bundles --> 3076
3076<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/core/public/js/loginCheck.js"></script>
3076 3077
3077<script src="/includes/public/managed/v_a2e6ae52_ff242142/core/plugins/common/virtuals/js/shared_footer.js"></script>
3077 3078 3079
3079<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.grbhouston.com/#organization","name":"Houston First Corporation","url":"https://www.grbhouston.com/","telephone":"713-853-8100","address":{"@type":"PostalAddress","streetAddress":"701 Avenida de las Americas","addressLocality":"Houston","addressRegion":"Texas","postalCode":"77010"}},{"@type":"WebSite","@id":"https://www.grbhouston.com/#website","url":"https://www.grbhouston.com/","name":"Houston First Corporation","publisher":{"@id":"https://www.grbhouston.com/#organization"},"potentialAction":{"@type":"SearchAction","target":"https://www.grbhouston.com/search/?q={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"CollectionPage","@id":"https://www.grbhouston.com/contact-us/#collectionpage","url":"https://www.grbhouston.com/contact-us/","isPartOf":{"@id":"https://www.grbhouston.com/#website"},"breadcrumb":{"@type":"BreadcrumbList","name":"Breadcrumbs","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.grbhouston.com/"},{"@type":"ListItem","position":2,"name":"Contact Us","item":"https://www.grbhouston.com/contact-us/"}]},"mainEntity":[]}]}</script>
3079 3080 <!-- bottomBody --> 3081 3082
3082<script data-id="site_global_footer"> 3083 require(["sv_clientLib", "sv_load!plugins_dynamic_content"], function(clientLib) { 3084 clientLib._initLazy(); 3085 }); 3086 </script>
3086 3087 3088 3089
3089<script type="text/javascript"> 3090 !function(){var b=function(){window.__AudioEyeSiteHash = "0a7eec1ece61088794f0e0a5e340cdd8"; var a=document.createElement("script");a.src="https://wsmcdn.audioeye.com/aem.js";a.type="text/javascript";a.setAttribute("async","");document.getElementsByTagName("body")[0].appendChild(a)};"complete"!==document.readyState?window.addEventListener?window.addEventListener("load",b):window.attachEvent&&window.attachEvent("onload",b):b()}(); 3091 </script>
3091 3092 3093 �� </body> 3094</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.