";
    }
    return t;
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  unescape: function (html) {
    html = html.replace(/\&/gi, "&").replace(/\</gi, "<").replace(/\>/gi, ">");
    return html;
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  detailContent: function (html) {
    var fullId = "#exhs-" + $exhs._conf._eventKey.toLowerCase() + "-detail";
    var overlayId = "#exhs-" + $exhs._conf._eventKey.toLowerCase() + "-overlay";
    html = "
";
    if ($(fullId).length != 0) {
      $(fullId).html(html);
    } else {
      $("body").append("
" + html + "
");
    }
    $('html, body').css({overflow: 'hidden'});
  },
  hideOverlay: function () {
    var overlayId = "#exhs-" + $exhs._conf._eventKey.toLowerCase() + "-overlay";
    $(overlayId).remove();
    $('html, body').css({overflow: 'auto', height: 'auto'});
  },
  stopHideOverlay: function () {
    event.stopPropagation();
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  content: function (html) {
    $("#exhs-" + $exhs._conf._eventKey.toLowerCase()).html("
" + html + "
");
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  initialize: function () {
    console.info("exhs :: renderFull");
    var options = {};
    $.each(this._eventInfo.options, function (i, option) {
      options[option] = true;
      if (option.indexOf("l2") == 0) {
        options["l2"] = true;
      }
    });
    this._eventInfo.options = options;
    //console.info(this._eventInfo);
    $("head").append("");
    this.css();
    $("body").append("
");
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  data: function (type, data) {
    this._eventInfo[type] = data;
    this.render(type);
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  img: function (eid, iid) {
    return "

";
 },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  formatUSPhone: function (phonenumber) {
    if (phonenumber == null || phonenumber.trim().length == 0) return "";
    phonenumber = phonenumber.match(/\d*/g).join('')
    if (phonenumber.length == 11) phonenumber = phonenumber.substring(1);
    var parts = phonenumber.match(/(\d{0,3})(\d{0,3})(\d{0,4})/).slice(1);
    return "(" + parts[0] + ") " + parts[1] + "-" + parts[2];
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  convertEmbedMedia: function (html) {
    const youTube = /(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/watch\?v=|youtu\.be\/)([^&" \n<]+)(?:[^ \n<]+)?/g;
    const youTubeFull = /(https?:\/\/)?(www\.)?(youtube\.com\/watch\?v=|youtu\.be\/)([^& \n<]+)(?:[^ \n<]+)?/g;
    html = this.convertEmbedMediaDo(html, youTube, youTubeFull, this.embedYouTube);
    var vimeo = /(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?/i
    var vimeoFull = /(https?:\/\/)?(www\.)?(vimeo\.com)\/(.*\/)?(?:.+)/g;
    html = this.convertEmbedMediaDo(html, vimeo, vimeoFull, this.embedVimeo);
    return html.replace(/
<\/p>/gi, "").replace(/
<\/p>/gi, "");
  },
  //##############################################################################
  //##############################################################################
  convertEmbedMediaDo: function (html, regex, fullreg, createEmbed) {
    if (!html) return html;
    const linkreg = /(?:)]+)>(.+?)<\/a>/g;
    let resultHtml = html;
    var placeholders = {};
    const match = html.match(fullreg);
    if (match && match.length > 0) {
      const matchlinks = html.match(linkreg);
      if (matchlinks && matchlinks.length > 0) {
        for (var i = 0; i < matchlinks.length; i++) {
          placeholders["#placeholder" + i + "#"] = matchlinks[i];
          resultHtml = resultHtml.replace(matchlinks[i], "#placeholder" + i + "#");
        }
      }
      $.each(placeholders, function (placeholder, anchor) {
        let matchParts = anchor.split(regex);
        if (matchParts.length > 1) {
          resultHtml = resultHtml.replace(placeholder, createEmbed(matchParts[1]));
        }
      });
      for (var i = 0; i < match.length; i++) {
        let matchParts = match[i].split(regex);
        resultHtml = resultHtml.replace(match[i], createEmbed(matchParts[1]));
      }
      if (matchlinks && matchlinks.length > 0) {
        for (var i = 0; i < matchlinks.length; i++) {
          resultHtml = resultHtml.replace("#placeholder" + i + "#", matchlinks[i]);
        }
      }
    }
    return resultHtml;
  },
  //##############################################################################
  //##############################################################################
  embedYouTube: function (key) {
    return "";
  },
  //##############################################################################
  //##############################################################################
  embedVimeo: function (key) {
    return "";
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  debug: function (json) {
    t = "";
    $.each(json, function (key, value) {
      t += "| " + key + " | " + (value + "").replace(/<\/?[^>]+(>|$)/g, "") + " | 
"
    });
    $("#debug").html("
");
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  style: {
    ".exhs a": "color:inherit !important;font-size:inherit !important;",
    ".exhs img": "max-width:98%;margin:1px 1%;border-radius:4px;",
    ".exhs .fa": "font-size:120%;margin-right:7px;width:15px;text-align:center;",
    ".exhs, .exhs *": "font-size:12px;color:#666;",
    ".exhs hr": "border:none;border-bottom:1px solid #eee;margin:10px;",
    ".exhs .exh-category-list>div": "font-size:100%;padding:7px;border:1px solid #ddd;margin-bottom:-1px;cursor:pointer;",
    ".exhs .exh-category-list>div:first-child": "border-radius:4px 4px 0 0;",
    ".exhs .exh-category-list>div:last-child": "border-radius:0 0 4px 4px;",
    ".exhs .exh-category-list>div table": "width:100%;",
    ".exhs .exh-category-list>div table tr td": "vertical-align:middle;text-align:center;",
    ".exhs .exh-category-list>div table tr td:last-child": "width:20px;display:none;",
    ".exhs .exh-columns": "border:none;padding:0px;margin:0px;",
    ".exhs .exh-columns > div": "display:inline-block;vertical-align:top;",
    ".exhs .exh-columns.exh-columns-1": "display:none;",
    ".exhs .exh-columns.exh-columns-2": "display:none;",
    ".exhs .exh-columns.exh-columns-3": "display:none;",
    ".exhs .exh-columns.exh-columns-1.exh-columns-co1": "display:block;",
    ".exhs .exh-columns.exh-columns-2.exh-columns-co2": "display:block;",
    ".exhs .exh-columns.exh-columns-3.exh-columns-co3": "display:block;",
    ".exhs .exh-columns.exh-columns-1 > div": "width:100%;min-width:100%;",
    ".exhs .exh-columns.exh-columns-2 > div": "width:50%;",
    ".exhs .exh-columns.exh-columns-3 > div": "width:33.3%;",
    ".exhs .exh-category-list.exh-category-list-l2 i.fa": "margin-right:0px;font-size:160%;opacity:.4;",
    ".exhs .exh-category-list.exh-category-list-l2 > div": "padding:0px;margin:10px;border-radius:1px !important;background-color:rgba(200,200,200,.25);border:none;",
    ".exhs .exh-category-list.exh-category-list-l2 > div table tr td": "text-transform: uppercase;text-align:left;padding:5px 10px;word-break:break-word;",
    ".exhs .exh-category-list.exh-category-list-l2 > div table tr td:last-child": "display:table-cell;text-align:center;padding:5px 7px 5px 0px;",
    ".exhs .exh-category-list.exh-category-list-l2 > div > div.exh-category-exhibitors": "padding:10px;border-top:2px solid #ccc;",
    ".exhs .exh-category-list.exh-category-list-l2 > div > div.exh-category-exhibitors ul": "margin:0px 0px 0px 15px;padding:0px;",
    ".exhs .exh-category-list.exh-category-list-l2 > div > div.exh-category-exhibitors li": "padding:4px;list-style:circle;",
    ".exhs .exh-category-list.exh-category-list-l2 > div > div.exh-category-exhibitors a": "text-decoration:none;",
    ".exhs .exh-category-list.exh-category-list-l2 > div > div.exh-category-exhibitors i.fa": "font-size:100%;",
    ".exhs .exh-category-select": "border-radius:4px;font-size:110%;padding:7px;text-align:center; width:100%;border:1px solid #ddd;",
    ".exhs .exh-category": "font-size:150%;margin-top:20px;margin-bottom:5px;",
    ".exhs .exh-category:first-child": "margin-top:0px;",
    ".exhs .exh-name": "font-size: 120%;font-weight:bold;",
    ".exhs .exh-description": "opacity:.75;margin-left: 20px;margin:5px 0px 10px 10px;",
    ".exhs .exh-description,.exhs .exh-description p ": "font-size: 100%;",
    ".exhs .exh-description p ": "margin:12px 0;",
    ".exhs .exh-description * br:first-child": "display:none;",
    ".exhs .exh-description h1, .exhs .exh-description h2,.exhs .exh-description h3,.exhs .exh-description h4,.exhs .exh-description h5": "margin:10px 0;font-size:115%;",
    ".exhs .exh-special-offer": "margin:25px 0;border-top:1px solid #bbb;border-bottom:1px solid #bbb;padding:15px 20px 5px 20px;",
    ".exhs .exh-special-offer .exh-heading": "font-size:160%;margin-bottom:20px;",
    ".exhs .exh-media": "width:491px;height:240px;max-width:100%;max-height:20%;border:0px;",
    ".exhs .exh-contact": "margin:15px auto;width:90%;",
    ".exhs .exh-contact tr td": "font-size:90%;vertical-align:top;",
    ".exhs .exh-contact-inline .fa": "font-size:100%;margin:2px;opacity:.75;",
    ".exhs .exh-reviews-inline": "text-align:center;margin-top:5px;",
    ".exhs .exh-reviews-inline .exh-review": "margin:0 10px;opacity:.60;font-style:italic;font-size:90% !important;",
    ".exhs .exh-contactrow": "margin-bottom:3px;font-size:100%;",
    ".exhs .exh-address": "margin-top:15px;font-size:90%;padding-top:10px;",
    ".exhs .exh-more": "font-size:90%;margin-left:10px;",
    ".exhs .exh-fa": "margin-bottom:3px;font-size:120%;cursor:pointer;",
    ".exhs-overlay": "background:rgba(100,100,100,.5);width:100%;height:100%;z-index:999 !important;top:0;left:0;position:fixed;",
    ".exhs-overlay>div": "border-radius: 6px;width:600px;max-width: 98%;background-color:#fff;margin:5% auto;overflow-y: auto;max-height:90%;border:1px solid #aaa;",
    ".exhs-overlay .exh-content": "",
    ".exhs-overlay .exh-name": "font-size:170%;padding-bottom:5px;",
    ".exhs-overlay .exh-description": "padding-left:10px;padding-right:10px;",
    ".exhs-overlay .exh-images img": "width:98%",
    "@media only screen and (min-width: 850px)": ".exhs .exh-columns.exh-columns-3 {display:block;} .exhs .exh-columns.exh-columns-3.exh-columns-co1 {display:none;} .exhs .exh-columns.exh-columns-3.exh-columns-co2 {display:none;}",
    "@media only screen and (min-width: 550px) and (max-width: 850px)": ".exhs .exh-columns.exh-columns-2 {display:block;} .exhs .exh-columns.exh-columns-2.exh-columns-co1 {display:none;} .exhs .exh-columns.exh-columns-2.exh-columns-co3 {display:none;}",
    "@media only screen and (max-width: 550px)": ".exhs .exh-columns.exh-columns-1 {display:block;} .exhs .exh-columns.exh-columns-1.exh-columns-co2 {display:none;} .exhs .exh-columns.exh-columns-1.exh-columns-co3 {display:none;}"
  },
  css: function () {
    var css = "";
    $.each(this.style, function (k, v) {
      css += k + "{" + v + "} ";
    });
    $("").appendTo("head");
  },
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  //------------------------------------------------------------------------------------------------------------------------
  _eventInfo: { "zip": "37660", "country": "United States", "city": "Kingsport", "endDate": "2026-01-18 19:00:59.0", "eventMapFile": false, "storeKey": "2026-01-18-tri-cities-tn-pink-bride", "streetAddress1": "1901 Meadowview Parkway", "endDateTz": "EDT", "eventScheduleFile": false, "virtualShow": false, "url": "https://www.thepinkbride.com", "eventMapAssignmentsFile": false, "startDateTz": "EDT", "options": [ "l2co1", "c1" ], "name": "2026/01/18 - Tri-Cities TN - Pink Bride", "producer": { "zip": "37416", "country": "United States", "city": "Chattanooga", "contactName": "Tony Brown", "companyName": "First Verse Productions, LLC", "streetAddress1": "4817 Hwy 58", "streetAddress2": "Suite 101", "url": "https://www.thepinkbride.com", "emailAddress": "info@thepinkbride.com", "phoneNumber": "14233091476", "producerLogoImage": true, "name": "The Pink Bride Wedding and Women's Expo", "id": 130740, "state": "TN" }, "id": 1713, "state": "TN", "startDate": "2026-01-18 16:00:00.0" },
  _conf: { _uri:"https://www.bridescan.com", _authKey:"jmi", _eventKey:"tri" }
};
$(function (){eval("window.$exhs = exhs").init();});
window.addEventListener("message", function (event) {
  //console.info(event);
  if (typeof event.data === "string") {
    //console.info(event.data);
    var parts = event.data.split("::");
    //console.info(parts);
    if (parts.length == 2) {
      var type = parts[0];
      var data = JSON.parse(parts[1]);
      $exhs.data(type, data);
    }
  }
});