{"id":262,"date":"2026-03-24T18:27:03","date_gmt":"2026-03-24T18:27:03","guid":{"rendered":"https:\/\/heatleybros.com\/?page_id=262"},"modified":"2026-04-24T03:55:15","modified_gmt":"2026-04-24T03:55:15","slug":"register","status":"publish","type":"page","link":"https:\/\/heatleybros.com\/index.php\/register\/","title":{"rendered":"Register"},"content":{"rendered":"\n<style>\n  .hb-reg-wrap {\n    font-family: inherit;\n    max-width: 560px;\n    margin: 0 auto;\n    padding: 0;\n  }\n  .hb-reg-eyebrow {\n    font-size: 11px;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n    color: #888;\n    margin-bottom: 8px;\n    font-weight: 400;\n  }\n  .hb-reg-title {\n    font-size: 26px;\n    font-weight: 600;\n    margin: 0 0 8px;\n    line-height: 1.2;\n  }\n  .hb-reg-sub {\n    font-size: 15px;\n    color: #666;\n    margin: 0 0 1.2rem;\n    line-height: 1.6;\n  }\n  .hb-disclaimer {\n    font-size: 13px;\n    color: #4A3E00;\n    background: #FFF9E6;\n    border: 1px solid #F5E4A8;\n    border-radius: 8px;\n    padding: 14px 16px;\n    margin-bottom: 2rem;\n    line-height: 1.6;\n  }\n  .hb-disclaimer strong { color: #3A2E00; }\n  .hb-reg-label {\n    display: block;\n    font-size: 13px;\n    font-weight: 600;\n    color: #555;\n    margin-bottom: 6px;\n    letter-spacing: 0.01em;\n  }\n  .hb-reg-field { margin-bottom: 1.2rem; }\n  .hb-reg-input {\n    width: 100%;\n    box-sizing: border-box;\n    padding: 11px 14px;\n    font-size: 15px;\n    border: 1.5px solid #ddd;\n    border-radius: 8px;\n    outline: none;\n    background: #fff;\n    color: #111;\n    transition: border-color 0.15s, box-shadow 0.15s;\n    font-family: inherit;\n  }\n  .hb-reg-input:focus { border-color: #378ADD; box-shadow: 0 0 0 3px rgba(55,138,221,0.12); }\n  .hb-reg-input.error { border-color: #E24B4A; box-shadow: 0 0 0 3px rgba(226,75,74,0.1); }\n  .hb-reg-toggle-row {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n    margin-bottom: 1.2rem;\n  }\n  .hb-reg-toggle {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    padding: 12px 14px;\n    background: #fff;\n    border: 1.5px solid #ddd;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: all 0.15s;\n    user-select: none;\n  }\n  .hb-reg-toggle.active { border-color: #378ADD; background: #EBF4FD; }\n  .hb-reg-toggle-icon {\n    width: 34px;\n    height: 34px;\n    border-radius: 6px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 16px;\n    flex-shrink: 0;\n  }\n  .icon-yt { background: #FAECE7; }\n  .icon-game { background: #EAF3DE; }\n  .hb-reg-toggle-name { font-size: 13px; font-weight: 600; color: #111; line-height: 1.2; }\n  .hb-reg-toggle-sub { font-size: 11px; color: #888; }\n  .hb-reg-hint { font-size: 12px; color: #888; margin-top: 5px; line-height: 1.5; }\n  .hb-reg-divider { border: none; border-top: 1px solid #eee; margin: 1.5rem 0; }\n  .hb-reg-submit {\n    width: 100%;\n    padding: 13px;\n    font-size: 14px;\n    font-weight: 700;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    color: #fff;\n    background: #378ADD;\n    border: none;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: background 0.15s, transform 0.1s;\n    font-family: inherit;\n  }\n  .hb-reg-submit:hover { background: #185FA5; }\n  .hb-reg-submit:active { transform: scale(0.99); }\n  .hb-reg-submit:disabled { background: #aaa; cursor: not-allowed; }\n  .hb-reg-fine { font-size: 12px; color: #aaa; text-align: center; margin-top: 1rem; line-height: 1.6; }\n  .hb-reg-success { display: none; text-align: center; padding: 3rem 1rem; }\n  .hb-reg-success-icon {\n    width: 52px; height: 52px;\n    border-radius: 50%;\n    background: #EAF3DE;\n    margin: 0 auto 1.2rem;\n    display: flex; align-items: center; justify-content: center;\n    font-size: 24px; color: #3B6D11;\n  }\n  .hb-reg-success-title { font-size: 20px; font-weight: 600; margin: 0 0 8px; }\n  .hb-reg-success-msg { font-size: 15px; color: #666; margin: 0; line-height: 1.6; }\n  .hb-reg-error-msg {\n    display: none;\n    font-size: 13px; color: #A32D2D;\n    text-align: center; margin-top: 10px;\n    padding: 10px;\n    background: #FCEBEB;\n    border-radius: 6px;\n  }\n\n  \/* Track picker *\/\n  .hb-track-mode-row {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 10px;\n    margin-bottom: 12px;\n  }\n  .hb-mode-btn {\n    padding: 10px 12px;\n    background: #fff;\n    border: 1.5px solid #ddd;\n    border-radius: 8px;\n    cursor: pointer;\n    font-size: 13px;\n    font-weight: 600;\n    color: #555;\n    transition: all 0.15s;\n    text-align: center;\n    font-family: inherit;\n  }\n  .hb-mode-btn.active { border-color: #378ADD; background: #EBF4FD; color: #185FA5; }\n  .hb-track-picker { position: relative; }\n  .hb-chips {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 6px;\n    padding: 8px;\n    border: 1.5px solid #ddd;\n    border-radius: 8px;\n    min-height: 48px;\n    background: #fff;\n    cursor: text;\n  }\n  .hb-chips:focus-within { border-color: #378ADD; box-shadow: 0 0 0 3px rgba(55,138,221,0.12); }\n  .hb-chip {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 4px 10px;\n    background: #EBF4FD;\n    color: #185FA5;\n    border-radius: 14px;\n    font-size: 13px;\n    font-weight: 500;\n  }\n  .hb-chip-x {\n    cursor: pointer;\n    font-weight: 700;\n    color: #6699cc;\n    line-height: 1;\n    font-size: 15px;\n  }\n  .hb-chip-x:hover { color: #185FA5; }\n  .hb-chip-input {\n    border: none;\n    outline: none;\n    background: transparent;\n    font-size: 14px;\n    padding: 4px 6px;\n    flex: 1;\n    min-width: 100px;\n    font-family: inherit;\n  }\n  .hb-dropdown {\n    position: absolute;\n    top: 100%;\n    left: 0;\n    right: 0;\n    background: #fff;\n    border: 1px solid #ddd;\n    border-radius: 8px;\n    margin-top: 4px;\n    max-height: 240px;\n    overflow-y: auto;\n    box-shadow: 0 6px 18px rgba(0,0,0,0.08);\n    z-index: 100;\n    display: none;\n  }\n  .hb-dropdown.show { display: block; }\n  .hb-dropdown-item {\n    padding: 10px 14px;\n    cursor: pointer;\n    font-size: 14px;\n    color: #111;\n    border-bottom: 1px solid #f3f3f3;\n  }\n  .hb-dropdown-item:last-child { border-bottom: none; }\n  .hb-dropdown-item:hover, .hb-dropdown-item.highlight { background: #F4F8FC; }\n  .hb-dropdown-empty { padding: 14px; color: #999; font-size: 13px; text-align: center; }\n  .hb-various-note {\n    padding: 12px 14px;\n    background: #FFF9E6;\n    border: 1px solid #F5E4A8;\n    border-radius: 8px;\n    font-size: 13px;\n    color: #665500;\n    line-height: 1.5;\n  }\n  .hb-various-note strong { color: #4A3E00; }\n\n  \/* Platform picker *\/\n  .hb-platforms {\n    display: grid;\n    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));\n    gap: 8px;\n  }\n  .hb-plat {\n    display: flex; align-items: center; gap: 8px;\n    padding: 10px 12px;\n    border: 1.5px solid #ddd;\n    border-radius: 8px;\n    cursor: pointer;\n    font-size: 13px;\n    font-weight: 500;\n    color: #333;\n    background: #fff;\n    user-select: none;\n    transition: all 0.15s;\n  }\n  .hb-plat:hover { border-color: #bbb; }\n  .hb-plat.on { border-color: #378ADD; background: #EBF4FD; color: #185FA5; }\n  .hb-plat-check {\n    width: 16px; height: 16px;\n    border-radius: 4px;\n    border: 1.5px solid #ccc;\n    display: flex; align-items: center; justify-content: center;\n    font-size: 11px; color: #fff;\n    flex-shrink: 0;\n  }\n  .hb-plat.on .hb-plat-check { background: #378ADD; border-color: #378ADD; }\n\n  @media (max-width: 480px) {\n    .hb-reg-toggle-row, .hb-track-mode-row { grid-template-columns: 1fr; }\n  }\n<\/style>\n\n<div class=\"hb-reg-wrap\">\n  <p class=\"hb-reg-eyebrow\">HeatleyBros Music<\/p>\n  <h2 class=\"hb-reg-title\">Register your channel or game<\/h2>\n  <p class=\"hb-reg-sub\">Using HeatleyBros music? Register here and we&#8217;ll have you on record. This protects you from accidental Content ID claims and lets us know who&#8217;s out there making things with our music.<\/p>\n\n  <div class=\"hb-disclaimer\">\n    <strong>Important:<\/strong> Registering your channel helps protect against Content ID claims, but crediting HeatleyBros is <strong>still required<\/strong> to use the music freely. Every video or game must include either a song link (for specific tracks) or a HeatleyBros channel link in its description or credits. A Content ID claim may still occur if this credit is missing.\n    <br><br>\n    <strong>Tip:<\/strong> Add the credit (channel link, or song links if you reuse the same tracks) to your default YouTube video description \u2014 set it once and you&#8217;re covered on every upload.\n  <\/div>\n\n  <div id=\"hbRegForm\">\n    <div class=\"hb-reg-field\">\n      <label class=\"hb-reg-label\" for=\"hbEmail\">Your email<\/label>\n      <input class=\"hb-reg-input\" type=\"email\" id=\"hbEmail\" placeholder=\"you@example.com\">\n    <\/div>\n\n    <div class=\"hb-reg-field\">\n      <label class=\"hb-reg-label\">What are you registering?<\/label>\n      <div class=\"hb-reg-toggle-row\">\n        <div class=\"hb-reg-toggle active\" id=\"hbBtnYt\" onclick=\"hbSelectType('youtube')\">\n          <div class=\"hb-reg-toggle-icon icon-yt\">\u25b6<\/div>\n          <div>\n            <div class=\"hb-reg-toggle-name\">YouTube channel<\/div>\n            <div class=\"hb-reg-toggle-sub\">Streamer or creator<\/div>\n          <\/div>\n        <\/div>\n        <div class=\"hb-reg-toggle\" id=\"hbBtnGame\" onclick=\"hbSelectType('game')\">\n          <div class=\"hb-reg-toggle-icon icon-game\">\u25c6<\/div>\n          <div>\n            <div class=\"hb-reg-toggle-name\">Game title<\/div>\n            <div class=\"hb-reg-toggle-sub\">Developer or studio<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- YOUTUBE FLOW -->\n    <div id=\"hbYtSection\">\n      <div class=\"hb-reg-field\">\n        <label class=\"hb-reg-label\" for=\"hbChannel\">YouTube channel URL<\/label>\n        <input class=\"hb-reg-input\" type=\"url\" id=\"hbChannel\" placeholder=\"https:\/\/youtube.com\/@yourchannel\">\n        <p class=\"hb-reg-hint\">Paste your full channel URL. No need to find your channel ID, we take care of that.<\/p>\n      <\/div>\n\n      <div class=\"hb-reg-field\">\n        <label class=\"hb-reg-label\">Which tracks do you use?<\/label>\n        <div class=\"hb-track-mode-row\">\n          <button type=\"button\" class=\"hb-mode-btn active\" id=\"hbModeVarious\" onclick=\"hbSetMode('various')\">Various tracks<\/button>\n          <button type=\"button\" class=\"hb-mode-btn\" id=\"hbModeSpecific\" onclick=\"hbSetMode('specific')\">Pick specific tracks<\/button>\n        <\/div>\n\n        <div id=\"hbVariousBox\" class=\"hb-various-note\">\n          <strong>Various mode:<\/strong> your videos use HeatleyBros music that changes over time.\n          A HeatleyBros channel link in your video description is required as your credit, for every video using our music.\n        <\/div>\n\n        <div id=\"hbSpecificBox\" style=\"display:none;\">\n          <div class=\"hb-track-picker\">\n            <div class=\"hb-chips\" id=\"hbChipBox\" onclick=\"document.getElementById('hbTrackInput').focus()\">\n              <input type=\"text\" class=\"hb-chip-input\" id=\"hbTrackInput\" placeholder=\"Type a track title...\" oninput=\"hbSearch()\" onkeydown=\"hbKeydown(event)\" onblur=\"hbHideDropdownSoon()\" onfocus=\"hbSearch()\">\n            <\/div>\n            <div class=\"hb-dropdown\" id=\"hbDropdown\"><\/div>\n          <\/div>\n          <p class=\"hb-reg-hint\">Start typing to search the full HeatleyBros catalog. Add as many as you use regularly.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- GAME FLOW -->\n    <div id=\"hbGameSection\" style=\"display:none;\">\n      <div class=\"hb-reg-field\">\n        <label class=\"hb-reg-label\" for=\"hbGame\">Game title<\/label>\n        <input class=\"hb-reg-input\" type=\"text\" id=\"hbGame\" placeholder=\"e.g. Hollow Knight\">\n        <p class=\"hb-reg-hint\">Enter the exact title as it appears on your store page or in-game.<\/p>\n      <\/div>\n\n      <div class=\"hb-reg-field\">\n        <label class=\"hb-reg-label\">Tracks used in this game<\/label>\n        <div class=\"hb-track-picker\">\n          <div class=\"hb-chips\" id=\"hbChipBoxGame\" onclick=\"document.getElementById('hbTrackInputGame').focus()\">\n            <input type=\"text\" class=\"hb-chip-input\" id=\"hbTrackInputGame\" placeholder=\"Type a track title...\" oninput=\"hbSearchGame()\" onkeydown=\"hbKeydownGame(event)\" onblur=\"hbHideDropdownGameSoon()\" onfocus=\"hbSearchGame()\">\n          <\/div>\n          <div class=\"hb-dropdown\" id=\"hbDropdownGame\"><\/div>\n        <\/div>\n        <p class=\"hb-reg-hint\">Add each HeatleyBros track your game includes.<\/p>\n      <\/div>\n\n      <div class=\"hb-reg-field\">\n        <label class=\"hb-reg-label\">Platforms (pick all that apply)<\/label>\n        <div class=\"hb-platforms\" id=\"hbPlatforms\">\n          <div class=\"hb-plat\" data-plat=\"Steam\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Steam<\/div>\n          <div class=\"hb-plat\" data-plat=\"itch.io\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>itch.io<\/div>\n          <div class=\"hb-plat\" data-plat=\"App Store\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>App Store<\/div>\n          <div class=\"hb-plat\" data-plat=\"Google Play\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Google Play<\/div>\n          <div class=\"hb-plat\" data-plat=\"Switch\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Switch<\/div>\n          <div class=\"hb-plat\" data-plat=\"PS5\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>PS5<\/div>\n          <div class=\"hb-plat\" data-plat=\"Xbox\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Xbox<\/div>\n          <div class=\"hb-plat\" data-plat=\"Scratch\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Scratch<\/div>\n          <div class=\"hb-plat\" data-plat=\"Newgrounds\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Newgrounds<\/div>\n          <div class=\"hb-plat\" data-plat=\"Web browser\" onclick=\"hbTogglePlat(this)\"><div class=\"hb-plat-check\">\u2713<\/div>Web browser<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"hb-reg-field\">\n      <label class=\"hb-reg-label\">Anything else? <span style=\"font-weight:400; opacity:0.6;\">(optional)<\/span><\/label>\n      <input class=\"hb-reg-input\" type=\"text\" id=\"hbNote\" placeholder=\"e.g. studio name, other details...\">\n    <\/div>\n\n    <hr class=\"hb-reg-divider\">\n\n    <button class=\"hb-reg-submit\" id=\"hbSubmitBtn\" onclick=\"hbSubmit()\">Register Now<\/button>\n    <div class=\"hb-reg-error-msg\" id=\"hbError\">Something went wrong. Please try again or email us directly.<\/div>\n    <p class=\"hb-reg-fine\">We don&#8217;t spam. This just helps us know who&#8217;s out there using our music.<\/p>\n  <\/div>\n\n  <div class=\"hb-reg-success\" id=\"hbSuccess\">\n    <div class=\"hb-reg-success-icon\">\u2713<\/div>\n    <p class=\"hb-reg-success-title\">You&#8217;re registered.<\/p>\n    <p class=\"hb-reg-success-msg\">Thanks for letting us know. We&#8217;ll review your submission. You&#8217;re in our records now. Go make something great.<\/p>\n  <\/div>\n<\/div>\n\n<script>\n(function() {\n  var FORM_ACTION = \"https:\/\/docs.google.com\/forms\/u\/0\/d\/e\/1FAIpQLSe7mBP3HA_4736TaYVHRVVa6uIU3p25_3FQNEiDOE8rVlEEMA\/formResponse\";\n  var ENTRY = {\n    email:      \"entry.10832427\",\n    type:       \"entry.1089036872\",\n    channelUrl: \"entry.124464270\",\n    gameTitle:  \"entry.1216471034\",\n    tracksUsed: \"entry.291868875\",\n    platforms:  \"entry.1057539682\",\n    note:       \"entry.1649456095\"\n  };\n\n  var TRACKS = [\"8 Bit Action\", \"8 Bit Adventure\", \"8 Bit Arcade\", \"8 Bit Beginning\", \"8 Bit Boss\", \"8 Bit Climb\", \"8 Bit Crush\", \"8 Bit Emperors Club\", \"8 Bit Ending\", \"8 Bit Epic Gameboy\", \"8 Bit Evil\", \"8 Bit Explore\", \"8 Bit Fall\", \"8 Bit Fun\", \"8 Bit Go\", \"8 Bit Grind\", \"8 Bit Grow\", \"8 Bit Halloween\", \"8 Bit Happy\", \"8 Bit Hero\", \"8 Bit Hideout\", \"8 Bit Journey\", \"8 Bit Joy\", \"8 Bit Jump\", \"8 Bit Legend\", \"8 Bit Let'S Go\", \"8 Bit Life\", \"8 Bit Love\", \"8 Bit Move\", \"8 Bit Nightmare\", \"8 Bit Onward\", \"8 Bit Passion\", \"8 Bit Play\", \"8 Bit Power\", \"8 Bit Push\", \"8 Bit Rainbow Ride\", \"8 Bit Roll\", \"8 Bit Scrap\", \"8 Bit Seas\", \"8 Bit Select\", \"8 Bit Slide\", \"8 Bit Soar\", \"8 Bit Space Groove\", \"8 Bit Spooky\", \"8 Bit Spring\", \"8 Bit Street\", \"8 Bit Summer\", \"8 Bit Sunshine\", \"8 Bit Tennis\", \"8 Bit Think\", \"8 Bit Town\", \"8 Bit Victory\", \"8 Bit Walk\", \"8 Bit Win\", \"8 Bit Winter\", \"8 Bit World\", \"8 Bit Zombies\", \"A Worthy Struggle\", \"Alien Imposter\", \"Ancient Passage\", \"And Yet, We March\", \"Autumn Waltz\", \"Back Home\", \"Back To Business\", \"Battle Fantasy\", \"Black Diamond\", \"Block Party\", \"Blossom Town\", \"Brassy Jazz\", \"Call Me Baby\", \"Can'T Stop Rockin'\", \"Challenge Accepted\", \"Choose Your Character\", \"Christmas Rush\", \"Coastal Market\", \"Continue?\", \"Crystal Caverns\", \"Dark Alley\", \"Dark Conspiracy\", \"Day Dream\", \"Dimension Drift\", \"Dream Dance\", \"Dream World\", \"Dreams Of Childhood\", \"Enemy Attacks\", \"Fairy's Tale\", \"Farm Town\", \"Feeling Lucky\", \"Fight Or Flight\", \"Flowerville\", \"Fond Farewell\", \"Fun Puzzle Quest\", \"Fury Road\", \"Game On\", \"Get Clappy\", \"Grocery Store\", \"Gun Slinger\", \"Halloween Dash\", \"Happy China Kung Fu\", \"Happy Day\", \"Happy Pigs\", \"Happy Victory\", \"Harvest Hop\", \"The Hero's Journey\", \"Hero'S Call\", \"Hero's Heart\", \"Inner Path\", \"Island Village\", \"Keepin On\", \"Love Grows Stronger\", \"Luminare\", \"Magic Sleigh Ride\", \"Mana Trail\", \"Mountain Pass\", \"My Little Daughter\", \"Mystic Forest\", \"New Challenger\", \"New Game Plus\", \"New Possibility\", \"Night Chase\", \"Ocean Palace\", \"Official Girl\", \"Option Menu\", \"Otherworld\", \"Play It Cool\", \"Press Start\", \"Quirkii\", \"Rocky Trail\", \"Sad Day\", \"Simple Fun\", \"Snowy Falls\", \"Spirit Run\", \"Starlit Dance\", \"Summer Love Dream\", \"Sunset Beach\", \"Super Duper\", \"Training Mode\", \"Troubling Mischief\", \"Truth Revealed\", \"Turning Leaves\", \"Uplifting City\", \"Valentine Quest\", \"Wakka Boom\", \"Warp Portal\", \"Where To\", \"Winter's End\", \"Wonderful Life\", \"Woods Of Linzor\", \"World Of Love\", \"Zombie Run\"];\n\n  var regType = \"youtube\";\n  var trackMode = \"various\";\n  var ytTracks = [];\n  var gameTracks = [];\n  var platforms = [];\n  var highlightIdx = -1;\n\n  window.hbSelectType = function(type) {\n    regType = type;\n    document.getElementById(\"hbBtnYt\").classList.toggle(\"active\", type === \"youtube\");\n    document.getElementById(\"hbBtnGame\").classList.toggle(\"active\", type === \"game\");\n    document.getElementById(\"hbYtSection\").style.display = type === \"youtube\" ? \"block\" : \"none\";\n    document.getElementById(\"hbGameSection\").style.display = type === \"game\" ? \"block\" : \"none\";\n  };\n\n  window.hbSetMode = function(mode) {\n    trackMode = mode;\n    document.getElementById(\"hbModeVarious\").classList.toggle(\"active\", mode === \"various\");\n    document.getElementById(\"hbModeSpecific\").classList.toggle(\"active\", mode === \"specific\");\n    document.getElementById(\"hbVariousBox\").style.display = mode === \"various\" ? \"block\" : \"none\";\n    document.getElementById(\"hbSpecificBox\").style.display = mode === \"specific\" ? \"block\" : \"none\";\n  };\n\n  function renderChips(boxId, inputId, arr, removeFn) {\n    var box = document.getElementById(boxId);\n    var input = document.getElementById(inputId);\n    [].slice.call(box.querySelectorAll('.hb-chip')).forEach(function(c) { c.remove(); });\n    arr.forEach(function(t, i) {\n      var chip = document.createElement('span');\n      chip.className = 'hb-chip';\n      chip.innerHTML = t + ' <span class=\"hb-chip-x\">&times;<\/span>';\n      chip.querySelector('.hb-chip-x').addEventListener('click', function(e) {\n        e.stopPropagation();\n        removeFn(i);\n      });\n      box.insertBefore(chip, input);\n    });\n  }\n\n  function showDropdown(dropdownId, inputVal, arr, addFn) {\n    var dd = document.getElementById(dropdownId);\n    var q = inputVal.toLowerCase().trim();\n    var matches = TRACKS.filter(function(t) {\n      return t.toLowerCase().indexOf(q) !== -1 && arr.indexOf(t) === -1;\n    }).slice(0, 50);\n\n    if (matches.length === 0) {\n      dd.innerHTML = '<div class=\"hb-dropdown-empty\">No matching tracks<\/div>';\n    } else {\n      dd.innerHTML = matches.map(function(t, i) {\n        return '<div class=\"hb-dropdown-item\" data-track=\"' + t.replace(\/\"\/g,'&quot;') + '\" data-idx=\"' + i + '\">' + t + '<\/div>';\n      }).join('');\n      [].slice.call(dd.querySelectorAll('.hb-dropdown-item')).forEach(function(el) {\n        el.addEventListener('mousedown', function(e) {\n          e.preventDefault();\n          addFn(el.getAttribute('data-track'));\n        });\n      });\n    }\n    dd.classList.add('show');\n    highlightIdx = -1;\n  }\n\n  function hideDropdown(dropdownId) {\n    document.getElementById(dropdownId).classList.remove('show');\n  }\n\n  function addYt(track) {\n    if (ytTracks.indexOf(track) === -1) ytTracks.push(track);\n    document.getElementById('hbTrackInput').value = '';\n    renderChips('hbChipBox','hbTrackInput', ytTracks, removeYt);\n    showDropdown('hbDropdown', '', ytTracks, addYt);\n    document.getElementById('hbTrackInput').focus();\n  }\n  function removeYt(i) {\n    ytTracks.splice(i,1);\n    renderChips('hbChipBox','hbTrackInput', ytTracks, removeYt);\n  }\n  window.hbSearch = function() {\n    var v = document.getElementById('hbTrackInput').value;\n    showDropdown('hbDropdown', v, ytTracks, addYt);\n  };\n  window.hbHideDropdownSoon = function() {\n    setTimeout(function(){ hideDropdown('hbDropdown'); }, 150);\n  };\n  window.hbKeydown = function(e) {\n    var dd = document.getElementById('hbDropdown');\n    var items = dd.querySelectorAll('.hb-dropdown-item');\n    if (e.key === 'ArrowDown') {\n      e.preventDefault();\n      highlightIdx = Math.min(items.length - 1, highlightIdx + 1);\n      updateHighlight(items);\n    } else if (e.key === 'ArrowUp') {\n      e.preventDefault();\n      highlightIdx = Math.max(0, highlightIdx - 1);\n      updateHighlight(items);\n    } else if (e.key === 'Enter') {\n      e.preventDefault();\n      if (highlightIdx >= 0 && items[highlightIdx]) {\n        addYt(items[highlightIdx].getAttribute('data-track'));\n      }\n    } else if (e.key === 'Backspace' && !document.getElementById('hbTrackInput').value && ytTracks.length) {\n      ytTracks.pop();\n      renderChips('hbChipBox','hbTrackInput', ytTracks, removeYt);\n    }\n  };\n\n  function addGame(track) {\n    if (gameTracks.indexOf(track) === -1) gameTracks.push(track);\n    document.getElementById('hbTrackInputGame').value = '';\n    renderChips('hbChipBoxGame','hbTrackInputGame', gameTracks, removeGame);\n    showDropdown('hbDropdownGame', '', gameTracks, addGame);\n    document.getElementById('hbTrackInputGame').focus();\n  }\n  function removeGame(i) {\n    gameTracks.splice(i,1);\n    renderChips('hbChipBoxGame','hbTrackInputGame', gameTracks, removeGame);\n  }\n  window.hbSearchGame = function() {\n    var v = document.getElementById('hbTrackInputGame').value;\n    showDropdown('hbDropdownGame', v, gameTracks, addGame);\n  };\n  window.hbHideDropdownGameSoon = function() {\n    setTimeout(function(){ hideDropdown('hbDropdownGame'); }, 150);\n  };\n  window.hbKeydownGame = function(e) {\n    var dd = document.getElementById('hbDropdownGame');\n    var items = dd.querySelectorAll('.hb-dropdown-item');\n    if (e.key === 'ArrowDown') {\n      e.preventDefault();\n      highlightIdx = Math.min(items.length - 1, highlightIdx + 1);\n      updateHighlight(items);\n    } else if (e.key === 'ArrowUp') {\n      e.preventDefault();\n      highlightIdx = Math.max(0, highlightIdx - 1);\n      updateHighlight(items);\n    } else if (e.key === 'Enter') {\n      e.preventDefault();\n      if (highlightIdx >= 0 && items[highlightIdx]) {\n        addGame(items[highlightIdx].getAttribute('data-track'));\n      }\n    } else if (e.key === 'Backspace' && !document.getElementById('hbTrackInputGame').value && gameTracks.length) {\n      gameTracks.pop();\n      renderChips('hbChipBoxGame','hbTrackInputGame', gameTracks, removeGame);\n    }\n  };\n\n  function updateHighlight(items) {\n    [].slice.call(items).forEach(function(el, i) {\n      el.classList.toggle('highlight', i === highlightIdx);\n      if (i === highlightIdx) el.scrollIntoView({block:'nearest'});\n    });\n  }\n\n  window.hbTogglePlat = function(el) {\n    var p = el.getAttribute('data-plat');\n    var i = platforms.indexOf(p);\n    if (i >= 0) { platforms.splice(i,1); el.classList.remove('on'); }\n    else { platforms.push(p); el.classList.add('on'); }\n  };\n\n  window.hbSubmit = function() {\n    var email = document.getElementById(\"hbEmail\").value.trim();\n    var channelUrl = document.getElementById(\"hbChannel\").value.trim();\n    var gameTitle = document.getElementById(\"hbGame\").value.trim();\n    var userNote = document.getElementById(\"hbNote\").value.trim();\n    var btn = document.getElementById(\"hbSubmitBtn\");\n    var errorEl = document.getElementById(\"hbError\");\n\n    if (!email || email.indexOf(\"@\") === -1) {\n      document.getElementById(\"hbEmail\").classList.add(\"error\");\n      document.getElementById(\"hbEmail\").focus();\n      return;\n    }\n    document.getElementById(\"hbEmail\").classList.remove(\"error\");\n\n    if (regType === \"youtube\") {\n      if (!channelUrl) {\n        document.getElementById(\"hbChannel\").classList.add(\"error\");\n        document.getElementById(\"hbChannel\").focus();\n        return;\n      }\n      if (trackMode === \"specific\" && ytTracks.length === 0) {\n        alert(\"Please add at least one track, or switch to Various tracks.\");\n        return;\n      }\n    }\n    if (regType === \"game\") {\n      if (!gameTitle) {\n        document.getElementById(\"hbGame\").classList.add(\"error\");\n        document.getElementById(\"hbGame\").focus();\n        return;\n      }\n      if (gameTracks.length === 0) {\n        alert(\"Please add at least one track used in the game.\");\n        return;\n      }\n      if (platforms.length === 0) {\n        alert(\"Please select at least one platform.\");\n        return;\n      }\n    }\n\n    btn.disabled = true;\n    btn.textContent = \"Sending...\";\n    errorEl.style.display = \"none\";\n\n    var tracksValue = \"\";\n    if (regType === \"youtube\") {\n      tracksValue = trackMode === \"various\"\n        ? \"VARIOUS (channel link credit required)\"\n        : ytTracks.join(\"; \");\n    } else {\n      tracksValue = gameTracks.join(\"; \");\n    }\n\n    var platformsValue = regType === \"game\" ? platforms.join(\", \") : \"\";\n\n    var formData = new FormData();\n    formData.append(ENTRY.email,      email);\n    formData.append(ENTRY.type,       regType);\n    formData.append(ENTRY.channelUrl, channelUrl);\n    formData.append(ENTRY.gameTitle,  gameTitle);\n    formData.append(ENTRY.tracksUsed, tracksValue);\n    formData.append(ENTRY.platforms,  platformsValue);\n    formData.append(ENTRY.note,       userNote);\n\n    fetch(FORM_ACTION, { method: \"POST\", mode: \"no-cors\", body: formData })\n    .then(function() {\n      document.getElementById(\"hbRegForm\").style.display = \"none\";\n      document.getElementById(\"hbSuccess\").style.display = \"block\";\n    })\n    .catch(function() {\n      btn.disabled = false;\n      btn.textContent = \"Register Now\";\n      errorEl.style.display = \"block\";\n    });\n  };\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>HeatleyBros Music Register your channel or game Using HeatleyBros music? Register here and we&#8217;ll have you on record. This protects you from accidental Content ID claims and lets us know who&#8217;s out there making things with our music. Important: Registering your channel helps protect against Content ID claims, but crediting HeatleyBros is still required to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_wp_convertkit_post_meta":{"form":"-1","landing_page":"0","tag":"0","restrict_content":"0"}},"_links":{"self":[{"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/pages\/262"}],"collection":[{"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/comments?post=262"}],"version-history":[{"count":9,"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/pages\/262\/revisions"}],"predecessor-version":[{"id":280,"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/pages\/262\/revisions\/280"}],"wp:attachment":[{"href":"https:\/\/heatleybros.com\/index.php\/wp-json\/wp\/v2\/media?parent=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}