.new-claim-flow-shared-header{padding-top:0;padding-bottom:0;}.new-claim-flow-shared-header p{margin:0;}
SportsEngine HQ

Let's Get Started

Find your organization


More than 20,000 youth sports organizations rely on SportsEngine HQ to attract new athletes, generate more signups, collect payments, manage teams, create fundraisers, and run their day-to-day operations. Join the largest youth sports directory today - and best of all it’s free.

(function() { window.addEventListener('DOMContentLoaded', function(){ const $ = window.jQuery; const searchForm = $('.form-find-your-org'); const searchSuggestions = $('.suggested-search'); const searchInput = $('#search-find-your-org'); function applySelection($suggestion) { const currentSuggestion = { name: $suggestion.data("name"), id: $suggestion.data("id"), status: $suggestion.data("status"), token: $suggestion.data("token") } clearPrevious(); searchInput.val(currentSuggestion.name).after(`${currentSuggestion.status}`); searchSuggestions.removeClass('active'); $('.claim-flow .is-' + currentSuggestion.status).addClass('active'); // When they select org if (currentSuggestion.status === 'unclaimed') { $('.is-unclaimed .claim-org').attr('href', 'https://www.sportsengine.com/org/' + currentSuggestion.id + '/claim?claim_token=' + currentSuggestion.token + '?claim_source=find-your-org'); } else if (currentSuggestion.status === 'claimed') { $('.is-claimed .claim-org').attr('href', 'https://www.sportsengine.com/solutions/request-access?id=' + currentSuggestion.id + '&org_name=' + encodeURIComponent(currentSuggestion.name)); } } function clearPrevious() { $('.claimed-inline').remove(); $('.claim-flow [class^="is-"]').removeClass('active'); } function generateSuggestedSearch() { const searchQuery = encodeURI(searchInput.val()); $.ajax({ url: 'https://www.sportsengine.com/portal/api/v1/organizations/suggest?name=' + searchQuery, method: "GET" }).done(function(data) { const results = data.response.result; searchSuggestions.empty(); if (results){ results.forEach(function(org) { const claimed = org.claimed ? "claimed" : "unclaimed"; const suggestionMarkup = `
  • ${org.name} ${org.city}, ${org.state} ${org.id} ${org.guid}
    ${claimed} `; searchSuggestions.append(suggestionMarkup); }); } }); } searchForm .on('submit', function(e) { e.preventDefault(); }); // KEY PRESS FUNCTIONALITY // -- Generate suggested search on key press // -- Enables users to arrow up/down and enter to select searchInput.keyup(function(e) { const key = e.keyCode; const searchSuggestion = searchSuggestions.find('.suggested-item'); const searchSuggestionCurrent = searchSuggestion.filter('.selected'); let $current; if ( key !== 40 && key !== 38 && key !== 13 ) { generateSuggestedSearch(); searchSuggestions.addClass('active'); } else { searchSuggestion.removeClass('selected'); // Down key if ( key == 40 ) { if ( ! searchSuggestionCurrent.length || searchSuggestionCurrent.is(':last-child') ) { $current = searchSuggestion.eq(0); } else { $current = searchSuggestionCurrent.next(); } } // Up key else if ( key == 38 ) { if ( ! searchSuggestionCurrent.length || searchSuggestionCurrent.is(':first-child') ) { $current = searchSuggestion.last(); } else { $current = searchSuggestionCurrent.prev(); } } // Return key else if (key === 13) { e.preventDefault(); $current = searchSuggestionCurrent; $current.addClass('selected'); applySelection($current); event.stopPropagation(); } $current.addClass('selected'); } }); // When an item is selected, add it to the input searchSuggestions.on('click', '.suggested-item', function () { applySelection($(this)); event.stopPropagation(); }) // Clearing the selection when clicking outside the input field $(document).click(function() { searchInput.val(""); $('.claimed-inline').remove(); $('.claim-flow [class^="is-"]').removeClass('active'); searchSuggestions.removeClass('active'); }); }); }());