document.addEventListener('DOMContentLoaded',()=>{document.querySelectorAll('.scorecard-expand-button').forEach(el=>{const nextSibling=el.nextElementSibling;nextSibling.classList.add('scorecard-expand-button--sibling--closed');el.addEventListener('click',event=>{const nextSibling=el.nextElementSibling;if(nextSibling.classList.contains('scorecard-expand-button--sibling--closed')){nextSibling.classList.remove('scorecard-expand-button--sibling--closed');nextSibling.classList.add('scorecard-expand-button--sibling--open')}else if(nextSibling.classList.contains('scorecard-expand-button--sibling--open')){nextSibling.classList.remove('scorecard-expand-button--sibling--open');nextSibling.classList.add('scorecard-expand-button--sibling--closed')}})});if(document.getElementById('rep-lifetime-score')){document.getElementById('rep-lifetime-score').addEventListener('click',event=>{const historicals=document.getElementById('rep-historical-scores');if(historicals.classList.contains('historical-scores-visible')){historicals.classList.remove('historical-scores-visible')}else{historicals.classList.add('historical-scores-visible')}})} const searchBox=document.getElementById('table-search');if(searchBox){const table=document.getElementById(searchBox.dataset.tableId||'scorecard-table');const filterTable=()=>{const terms=searchBox.value.trim().toLowerCase().replaceAll(/[-\/]/g,'.').replaceAll(/[^a-z0-9.\s]/g,' ').split(/[\s\+]/).map(str=>new RegExp(str));const allRows=Array.from(table.querySelectorAll(searchBox.dataset.rowSelector||'tbody tr'));const toShow=allRows.filter(el=>{const searchSubject=Array.from(el.querySelectorAll(searchBox.dataset.searchSelector)).reduce((text,el)=>text+' '+el.textContent.toLowerCase(),'');return terms.reduce((isMatch,term)=>(isMatch&&term.test(searchSubject)),!0)});allRows.forEach(el=>el.style.display='none');toShow.forEach(el=>el.style.display=(searchBox.dataset.rowSelector==='tbody'?'table-row-group':'table-row'))};const debounceTimeout=300;let debounceTimeoutId=!1;const debouncedFilterTable=()=>{clearTimeout(debounceTimeoutId);debounceTimeoutId=setTimeout(filterTable,debounceTimeout)};searchBox.addEventListener('keypress',debouncedFilterTable);searchBox.addEventListener('keyup',debouncedFilterTable);searchBox.addEventListener('input',debouncedFilterTable);searchBox.addEventListener('change',debouncedFilterTable)}});function scorecardSortCompare(a,b){const table=document.getElementById('scorecard-table');const orderby=table.dataset.orderby;let aData=a.dataset[orderby];let bData=b.dataset[orderby];if('int'===table.dataset.type){aData=parseInt(aData);bData=parseInt(bData)} if(aDatabData) return 1;return 0} function scorecardSortDataByAttribute(attr,type='string'){const table=document.getElementById('scorecard-table');table.dataset.orderby=attr;table.dataset.type=type;const order='false'===table.dataset.sorted||'DESC'===table.dataset.order?'ASC':'DESC';const sortMethod='ASC'===order?'sort':'reverse';const rows=document.querySelectorAll(`[data-${attr}]`);const rowsArray=Array.from(rows);let sorted=rowsArray[sortMethod](scorecardSortCompare);sorted.forEach(el=>document.querySelector('#scorecard-table-contents').appendChild(el));const columnHeaderIndicator=document.querySelector(`[data-sortable="${attr}"] i.fa`);if('true'===table.dataset.sorted&&columnHeaderIndicator){if(columnHeaderIndicator.classList.contains('fa-caret-down')){columnHeaderIndicator.classList.remove('fa-caret-down');columnHeaderIndicator.classList.add('fa-caret-up')}else if(columnHeaderIndicator.classList.contains('fa-caret-up')){columnHeaderIndicator.classList.remove('fa-caret-up');columnHeaderIndicator.classList.add('fa-caret-down')}} table.dataset.sorted='true';table.dataset.order=order}