1 2<!doctype html> 3<html id="ng-app" ng-app="usssa" class="ng-app:usssa" xmlns:ng="http://angularjs.org"> 4 5<head id="htmlHead"><meta name="pbstck_context:site_name" content="usssa.com" /><meta name="pbstck_context:website" content="usssa.com" /> 6 7 <!-- Google Tag Manager --> 8
8<script>
vendor: 335 bytes, lines 8-12
8(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 9 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 10 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 11 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 12 })(window,document,'script','dataLayer','
12GTM-PM359KC
vendor: 3 bytes, line 12
12');
12</script>
12 13 <!-- End Google Tag Manager --> 14 15 <meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /> 16 <!--[if lte IE 8]> 17
17<script src="/js/json2.js"></script>
17 18 <![endif]--> 19 <title> 20 USSSA - United States Specialty Sports Association 21</title><link rel="shortcut icon" href="https://v11.usssa.net/ico/favicon.png" /> 22 <!-- build:css --> 23 <link href="/css/_lib/_1_bootstrap.css" rel="stylesheet" /><link href="/css/_lib/_2_font-awesome.css" rel="stylesheet" /><link href="/css/_lib/_3_ui-select.css" rel="stylesheet" /><link href="/css/_lib/_4_select2.css" rel="stylesheet" /><link href="/css/_lib/_5_selectize.default.css" rel="stylesheet" /><link href="/css/_lib/_6_angular-dropdowns.css" rel="stylesheet" /><link href="/css/_lib/_7_ngNotificationsBar.min.css" rel="stylesheet" /><link href="/css/_lib/angular-responsive-tables.css" rel="stylesheet" /><link href="/css/main.css" rel="stylesheet" /><link href="/css/header.css" rel="stylesheet" /><link href="/css/footer.css" rel="stylesheet" /><link href="/css/sidebar.css" rel="stylesheet" /><link rel="stylesheet" href="/css/print.css" media="print" type="text/css" /><link href="/css/launch_banner.css" rel="stylesheet" /> 24 <!-- endbuild --> 25 26 <!-- build:js --> 27
27<script src="/js/_lib/__0_jquery.js"></script>
27 28
28<script src="/js/_lib/__01_jquery-maskedinput.js" type="text/javascript"></script>
28 29
29<script src="/js/_lib/__1_modernizr.js"></script>
29 30
30<script src="/js/_lib/__2_moment.js"></script>
30 31
31<script src="/js/_lib/__3_popper.js"></script>
31 32
32<script src="/js/_lib/__4_bootstrap.js"></script>
32 33 34
34<script src="/js/_lib/_-5_angular.js"></script>
34 35
35<script src="/js/_lib/_-6_angular-animate.js"></script>
35 36
36<script src="/js/_lib/_-7_angular-sanitize.js"></script>
36 37
37<script src="/js/_lib/_-8_ui-bootstrap.js"></script>
37 38
38<script src="/js/_lib/_-9_ui-select.js"></script>
38 39
39<script src="/js/_lib/_-10_ui-bootstrap-custom-tpls-2.0.0.js"></script>
39 40
40<script src="/js/_lib/_datepicker.js"></script>
40 41
41<script src="/js/_lib/ui-bootstrap-tpls.js"></script>
41 42 43 44 <!-- endbuild --> 45
45<script src="/js/app.js"></script>
45 46
46<script src="/js/pagination.js"></script>
46 47
47<script src="/js/ng-plugins/angular-dropdowns.js"></script>
47 48
48<script src="/js/ng-plugins/ngNotificationsBar.js"></script>
48 49
49<script src="/js/_lib/angular-responsive-tables.js"></script>
49 50 51 <!-- Intercome Agent Manager --> 52
52<script src="/js/controllers/intercomCtrl.js"></script>
52 53 <!-- End Intercome Agent Manager --> 54 55 56 <!-- build:ngModules --> 57
57<script src="/js/services/1_jsLib.js"></script>
57 58
58<script src="/js/services/2_api.js?v1.012"></script>
58 59
59<script src="/js/services/21_coreApi.js"></script>
59 60
60<script src="/js/services/3_storage.js"></script>
60 61
61<script src="/js/services/4_paging.js"></script>
61 62
62<script src="/js/services/5_boostrapBreakpointSvc.js"></script>
62 63
63<script src="/js/services/6_scoriApiSvc.js"></script>
63 64
64<script src="/js/services/22_searchSvc.js"></script>
64 65
65<script src="/js/filters/propsFilter.js"></script>
65 66
66<script src="/js/filters/unique-filter.js"></script>
66 67
67<script src="/js/filters/dateFormat.js"></script>
67 68
68<script src="/js/filters/phoneFilter.js"></script>
68 69
69<script src="/js/filters/absoluteValue.js"></script>
69 70
70<script src="/js/filters/trustHtml.js"></script>
70 71
71<script src="/js/directives/loading.js"></script>
71 72
72<script src="/js/directives/mapDirective.js"></script>
72 73
73<script src="/js/directives/fontAwesomeDirective.js"></script>
73 74
74<script src="/js/directives/cssButtonDirective.js"></script>
74 75
75<script src="/js/directives/calendarDayDirective.js"></script>
75 76
76<script src="/js/directives/lwcTableDirective.js"></script>
76 77
77<script src="/js/directives/tooltip.js"></script>
77 78
78<script src="/js/directives/dropdown.js"></script>
78 79
79<script src="/js/directives/uiColorpicker.js"></script>
79 80 81 82 <!-- endbuild --> 83 <link href="https://fonts.googleapis.com/css?family=Abel|Pragati+Narrow:700|Coda+Caption:800" rel="stylesheet" /> 84 85 86
86<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3590908160751907" crossorigin="anonymous"></script>
86 87 88 <!-- STRIPE SDK --> 89
89<script src="https://js.stripe.com/v3/"></script>
89 90 91 <!--SNACK MEDIA SCRIPT --> 92
92<script type="text/javascript">!(function(b,_name){b[_name]=b[_name]||function V(){(V.q=V.q||[]).push(arguments)},b[_name].v=b[_name].v||2,b[_name].s="1";!(function(b,V,H,r){function x(H,r){try{x=b.localStorage,(H=JSON.parse(x[decodeURI(decodeURI('%67%2565t%25%349%2574%25%365%256%64'))]("_aQS01RURFNzIxODNCRDkxODFGQUMyOTBCOTMtMTEw")).lgk||[])&&(r=b[V].pubads())&&H.forEach((function(b){b&&b[0]&&r.setTargeting(b[0],b[1]||"")}))}catch(C){}var x}try{(r=b[V]=b[V]||{}).cmd=r.cmd||[],typeof r.pubads===H?x():typeof r.cmd.unshift===H?r.cmd.unshift(x):r.cmd.push(x)}catch(C){}})(window,decodeURI(decodeURI('%2567%25%36%66ogl%256%35%74%256%31%67')),"function");;!(function(b){b.__admiral_getConsentForGTM=function(V){function H(b,H){V((function(b,V){const H=b&&b.purpose&&b.purpose.consents||{};return{adConsentGranted:V||!!H[1],adUserData:V||!!H[7],adPersonalization:V||!!H[3],analyticsConsentGranted:V||!!H[1],personalizationConsentGranted:V||!!H[5],functionalityConsentGranted:V||!1,securityConsentGranted:V||!0}})(b,!H))}b[_name]("after","cmp.loaded",(function(V){V&&V.tcData&&V.tcData.gdprApplies?(V.consentKnown&&H(V.tcData,!0),b[_name]("after","cmp.updated",(function(b){H(b.tcData,!0)}))):H({},!1)}))}})(window);})(window,decodeURI(decodeURI('%25%361dmi%25%37%32%25%361%256%63')));!(function(b,V,H,r){H=b.createElement(V),b=b.getElementsByTagName(V)[0],H.async=1,H.src="https://nowaymail.com/files/ppq86m/4rvafk1gjf-prod.js",(r=0)&&r(H),b.parentNode.insertBefore(H,b)})(document,"script");;;!(function(b,V,H,r,x){function C(){for(var b=[],H=0;H<arguments.length;H++)b.push(arguments[H]);if(!b.length)return x;"ping"===b[0]?b[2]({gdprAppliesGlobally:!!V[decodeURI(decodeURI('%5f_c%256%64pG%64%70r%25%34%31%257%30p%256ci%25%36%35s%47%25%36c%6fb%25%361%6cly'))],cmpLoaded:!1,cmpStatus:"stub"}):b.length>0&&x.push(b)}function Y(b){if(b&&b.data&&b.source){var r,x=b.source,C="__tcfapiCall",Y="string"==typeof b.data&&b.data.indexOf(C)>=0;(r=Y?((function(b){try{return JSON.parse(b)}catch(V){}})(b.data)||{})[C]:(b.data||{})[C])&&V[H](r.command,r.version,(function(b,V){var H={__tcfapiReturn:{returnValue:b,success:V,callId:r.callId}};x&&x.postMessage(Y?JSON.stringify(H):H,"*")}),r.parameter)}}!(function G(){if(!V.frames[r]){var H=b.body;if(H){var x=b.createElement("iframe");x.style.display="none",x.name=r,H.appendChild(x)}else setTimeout(G,5)}})(),C.v=1,"function"!=typeof V[H]&&(V[H]=V[H]||C,V.addEventListener?V.addEventListener("message",Y,!1):V.attachEvent&&V.attachEvent("onmessage",Y))})(document,window,"__tcfapi","__tcfapiLocator",[]);;;!(function(b,V,H,r,x,C,Y,G,f,J,W){function w(){for(var b=[],V=arguments.length,H=0;H<V;H++)b.push(arguments[H]);var r,x=b[1],C=typeof x===Y,G=b[2],w={gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["7:usnat"].reduce((function(b,V){return V&&b.push(V),b}),[]),cmpId:9,sectionList:[],applicableSections:[0],gppString:"",parsedSections:{}};function A(b){C&&x(b,!0)}switch(b[0]){case"ping":return A(w);case"queue":return f;case"events":return J;case"addEventListener":return C&&(r=++W,J.push({id:r,callback:x,parameter:G})),A({eventName:"listenerRegistered",listenerId:r,data:!0,pingData:w});case"removeEventListener":for(r=!1,H=0;H<J.length;H++)if(J[H].id===G){J.splice(H,1),r=!0;break}return A(r);case"hasSection":case"getSection":case"getField":return A(null);default:return void f.push(b)}}w.v=2,typeof V[H]!==Y&&(V[H]=V[H]||w,V[G]&&V[G]("message",(function(b,r){var Y="string"==typeof b.data;(r=Y?((function(b){try{return JSON.parse(b)}catch(V){}})(b.data)||{})[x]:(b.data||{})[x])&&V[H](r.command,(function(V,H){var x={__gppReturn:{returnValue:V,success:H,callId:r.callId}};b.source.postMessage(Y?JSON.stringify(x):x,"*")}),C in r?r[C]:null,r.version||1)}),!1),(function A(){if(!V.frames[r]){var H=b.body;if(H){var x=b.createElement("iframe");x.style.display="none",x.name=r,H.appendChild(x)}else setTimeout(A,5)}})())})(document,window,"__gpp","__gppLocator","__gppCall","parameter","function","addEventListener",[],[],0);</script>
92 93
93<script src="https://ats-wrapper.privacymanager.io/ats-modules/50d077b7-1c57-45ce-bb1f-820397be7b56/ats.js"></script>
93 94 95<!-- Add CryptoJS Library CDN before your script -->
96<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/crypto-js.js"></script>
vendor: 2 bytes, line 96
96
97<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
97 98
99<script> 100 // Wait until the page has fully loaded to initialize the hashes 101 window.addEventListener('DOMContentLoaded', function () { 102 var email = localStorage.getItem("email"); 103 104 if (!email) { 105 console.log("Email not found. Script halted."); 106 return; // Stop execution if email is not found 107 } 108 109 // Function to normalize email (for example: removing dots, case normalization, etc.) 110 function normalizeEmail(email) { 111 if (typeof email !== 'string') return null; 112 let normalized = email.trim().toLowerCase(); 113 const atIndex = normalized.indexOf('@'); 114 if (atIndex !== -1) { 115 const localPart = normalized.substring(0, atIndex); 116 const plusIndex = localPart.indexOf('+'); 117 if (plusIndex !== -1) { 118 normalized = localPart.substring(0, plusIndex) + normalized.substring(atIndex); 119 } 120 } 121 if (normalized.endsWith("@gmail.com")) { 122 const atIndex = normalized.indexOf('@'); 123 const localPart = normalized.substring(0, atIndex); 124 const withoutDots = localPart.replace(/\./g, ""); 125 normalized = withoutDots + normalized.substring(atIndex); 126 } 127 return normalized; 128 } 129 130 // Hashing functions 131 function sha1Hash(email) { 132 const normalized = normalizeEmail(email); 133 if (!normalized) return null; 134 return CryptoJS.SHA1(normalized).toString(CryptoJS.enc.Hex); 135 } 136 137 function sha256Hash(email) { 138 const normalized = normalizeEmail(email); 139 if (!normalized) return null; 140 return CryptoJS.SHA256(normalized).toString(CryptoJS.enc.Hex); 141 } 142 143 function md5Hash(email) { 144 const normalized = normalizeEmail(email); 145 if (!normalized) return null; 146 return CryptoJS.MD5(normalized).toString(CryptoJS.enc.Hex); 147 } 148 149 function generateEmailHashes(email) { 150 return { 151 sha1: sha1Hash(email), 152 sha256: sha256Hash(email), 153 md5: md5Hash(email) 154 }; 155 } 156 157 const hashes = generateEmailHashes(email); 158 159 window.addEventListener("envelopeModuleReady", function () { 160 atsenvelopemodule.setAdditionalData({ 161 'type': 'emailHashes', 162 'id': [hashes.sha1, hashes.sha256, hashes.md5] 163 }); 164 }); 165 }); 166</script>
166 167 168
168<script> 169 var bannerController = usssa.controller('bannerCntrl', ['$scope', 'storage', function ($scope, storage) { 170 171 var isHome = document.URL.includes("/home"); 172 $scope.bannerClass = "launch-banner-content hide"; 173 var element = document.getElementById("bannerDiv"); 174 element.style.display = "none"; 175 $scope.line01 = $scope.line02 = $scope.line03 = ""; 176 $scope.line11 = $scope.line12 = $scope.line13 = ""; 177 $scope.bannerText1 = $scope.bannerText2 = false; 178 179 if(isHome) { 180 $scope.bannerClass = "launch-banner-content show"; 181 element.style.display = "inline"; 182 183 var d = new Date(); 184 var year = d.getYear(); 185 var month = d.getMonth() 186 var day = d.getDate(); 187 var hour = d.getHours(); 188 var m = d.getMinutes(); 189 190 // console.log('%here% --------------------------------------------'); 191 // console.log('year ' + year + ' month ' + month); 192 // console.log('%here% day ' + day + ' hour ' + hour + ' m ' + m); 193 // console.log('day >= 23 ' + (day >= 23)); 194 // console.log('hour >= 2 ' + (hour >= 2)); 195 // console.log('day <= 24 ' + (day <= 24)); 196 // console.log('hour >= 2 ' + (hour >= 2)); 197 // console.log('(day >= 23 && hour >= 2) ' + (day >= 23 && hour >= 2)); 198 // console.log('(day <= 24 && hour <= 7) ' + (day <= 24 && hour <= 7)); 199 // if (year <= 124 && month >= 0 && ) 200 // console.log('%here% --------------------------------------------'); 201 202 var yellowTime = false; 203 if((day >= 23 && hour >= 2) && (day <= 24 && hour <= 7)) { 204 yellowTime = true; 205 } else { 206 yellowTime = false; 207 } 208 yellowTime = true; 209 if(yellowTime) { 210 $scope.bannerText1 = true; 211 $scope.bannerText2 = false; 212 var el = document.getElementById('bannerWrapper'); 213 el.style.backgroundColor = 'lightblue'; 214 // $scope.line11 = "On 10/31 from 3:30am-7am EST routine maintenance will be performed,"; 215 // $scope.line11 = "PAYMENT PROCESSING: On 2/28 from 10:00am-11:00am EST routine maintenance will be performed."; 216 // $scope.line12 = "Please refrain from submitting payments on usssa.com as they will not process during this time."; 217 // $scope.line11 = "As a result of scheduled maintenance, usssa.com may be temporarily unavailable on"; 218 // $scope.line12 = "Tuesday October 24th from 3:30am - 7am EST."; 219 //" (8/3 11pm - 8/4 5am CST | 8/3 9pm - 8/4 3am PST)."; 220 // $scope.line12 = "between the hours of 5am-6am EST on Monday 5/14-Thurs 5/15."; 221 // $scope.line13 = "We appreciate your patience."; 222 } else { 223 $scope.bannerText1 = true; 224 $scope.bannerText2 = false; 225 $scope.line01 = "The 2024 baseball and fastpitch season is now open for registration."; 226 $scope.line02 = `Team insurance is available for purchase by team managers through your USSSA account.`; 227 $scope.line03 = "Use the Login button to get started."; 228 } 229 } 230 231 }]); 232 </script>
232 233 234
234<script> 235 function closeBanner(){ 236 var element = document.getElementById("bannerDiv"); 237 element.style.display = "none"; 238 } 239 </script>
239 240 241 <!-- Snack Media Footer Bidding --> 242
242<script type="text/javascript" async src="https://btloader.com/tag?o=5180208835985408&upapi=true" defer></script>
242 243 244 <style> 245 .showBanner { 246 -webkit-animation: fadein 1s; /* Safari, Chrome and Opera > 12.1 */ 247 -moz-animation: fadein 1s; /* Firefox < 16 */ 248 -ms-animation: fadein 1s; /* Internet Explorer */ 249 -o-animation: fadein 1s; /* Opera < 12.1 */ 250 animation: fadein 1s; 251 color:'black'; 252 } 253 254 @keyframes fadein { 255 from { opacity: 0; } 256 to { opacity: 1; } 257 } 258 259 /* Firefox < 16 */ 260 @-moz-keyframes fadein { 261 from { opacity: 0; } 262 to { opacity: 1; } 263 } 264 265 /* Safari, Chrome and Opera > 12.1 */ 266 @-webkit-keyframes fadein { 267 from { opacity: 0; } 268 to { opacity: 1; } 269 } 270 271 /* Internet Explorer */ 272 @-ms-keyframes fadein { 273 from { opacity: 0; } 274 to { opacity: 1; } 275 } 276 277 /* Opera < 12.1 */ 278 @-o-keyframes fadein { 279 from { opacity: 0; } 280 to { opacity: 1; } 281 } 282 .buttonBcg { 283 background-color: rgb(24, 178, 230); 284 color:black; 285 } 286 .textWhite { 287 color:white; 288 } 289 .textBlack { 290 color:black; 291 } 292 </style> 293 294 <!-- NEW SNACK MEDIA SCRIPT LP-4876 --> 295
295<script async src="https://boot.pbstck.com/v1/adm/fbfb0bff-d7b8-4f68-be8b-04b24040f87a"></script>
295 296
296<script src="https://geohb.b-cdn.net/inteintiq/IIQUniversalID.js" async></script>
296 297 298 <link rel="stylesheet" href="/css/_lib/angular-advanced-searchbox.css"> 299</head> 300 301<body id="bdy"> 302 <!-- INTERCOM INITIALIZATION --> 303 <div ng-controller="intercomCtrl"></div> 304 305 <!-- LEGACY BANNER PAYMENTS DOWN --> 306 307 <!--<div ng-controller="bannerCntrl"> 308 <div id="bannerDiv" ng-class="[bannerClass]"> 309 <div id="bannerWrapper" class="q-banner-wrapper" role="alert"> 310 <div class="q-banner-content"> 311 <div class="q-banner-content-row"> 312 <div class="copy"> 313 <p> 314 <span class="showBanner textBlack"> 315 *THE 2027 BASEBALL AND FASTPITCH SEASON IS NOW OPEN FOR REGISTRATION.*<br> 316 TEAM INSURANCE IS AVAILABLE FOR PURCHASE BY TEAM MANAGERS THROUGH YOUR USSSA ACCOUNT.<br> 317 LOG IN OR CREATE AN ACCOUNT TO GET STARTED! 318 </span> 319 320 <a class="showBanner buttonBcg" href class="btn btn-info" onclick="closeBanner()">Close</a> 321 </p> 322 </div> 323 </div> 324 </div> 325 </div> 326 </div> 327 </div>--> 328 329 <!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 329-330
329 330 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
330GTM-PM359KC
vendor: 87 bytes, lines 330-332
330" 331 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 332
332<!-- End Google Tag Manager (noscript) --> 333
333<script> 334 var controller = usssa.controller('pageCntrl', ['$scope', function ($scope) { 335 $scope.sideBarVisible = true; 336 $scope.toggleSideBar = function(){ 337 $scope.sideBarVisible = !$scope.sideBarVisible; 338 } 339 }]); 340 </script>
340 341 <form method="post" action="/home/" id="frm"> 342<div class="aspNetHidden"> 343<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Z7rQlaZwIoWGU0Tyc7mM9Rp7NQjuJ7r0NpZ4O9ScizjxRbaw2MFo2bLlUB5lJhui1GDHN6VYAzXsFNAu4p8Myr2Lr6RQg2pvw5oZRVbZtN42BnQq6ksrDpeW7EvmgpykJjKdCn9NKhz/evCxBzU+6PZ/ZMCOAJyzQgtThelENBQ=" /> 344</div> 345 346<div class="aspNetHidden"> 347 348 <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" /> 349 <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" /> 350</div> 351 <div class="container ctContent" ng-cloak ng-controller="pageCntrl"> 352 353 354 355<!-- Header --> 356<nav class="header-v11 navbar navbar-light navbar-expand-lg noPrint"> 357 <button class="navbar-toggler btnSideBar mr-2" type="button" data-toggle="collapse" data-target="#sideBar" aria-controls="sideBar" aria-expanded="false" aria-label="Sidebar" style="display:none;"><span class="navbar-toggler-icon" ></span></button> 358 359 <div class="navbar-brand"> 360 <a class="logo" href=" https://usssa.com"> 361 <div id="logo-header" alt="USSSA"></div></a> 362 363 </div> 364 365 <div style="flex-grow: 1;"></div> 366 367 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#topMenu" aria-controls="topMenu" aria-expanded="false" aria-label="Menu"> 368 <span class="lblMenu4People">Menu</span> <span class="navbar-toggler-icon"></span> 369 </button> 370 371 <div class="navbar-collapse navbar-responsive-collapse collapse" id="topMenu"> 372
373<script> 374 usssa.controller('sportMenuCtrl', ['$scope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage', function($scope, $filter, $http, $location, jsLib, API, storage) { 375 376 function init() { 377 $scope.loading = true; 378 $scope.jsLib = jsLib; 379 var page = null; 380 var tmp = document.URL.split('/'); 381 if (tmp.length > 0){ 382 page = tmp[4]; 383 } 384 385 API.post({ action: 'v11GetTopMenu', sport: jsLib.getSportName(), page: page }, 24) 386 .then(function(data) { 387 $scope.menu = data; 388 $scope.loading = false; 389 }, 390 function(error) { 391 console.log('error', error); 392 $scope.loading = false; 393 } 394 ); 395 } 396 397 $scope.hasGrandChildren = function(item){ 398 if (item.children){ 399 if (item.children[0]){ 400 if (item.children[0].children) 401 return true; 402 } 403 } 404 return false; 405 } 406 407 init(); 408 }]); 409</script>
409 410 411<div class="secondBg" ng-controller="sportMenuCtrl"> 412 <ul class="navbar-nav float-lg-right topMenu" ng-hide="loading"> 413 414 <li class="nav-item hidden-md hidden-lg hidden-xl"> 415 <a class="nav-link" href="/login">Login</a> 416 </li> 417 418 <li class="nav-item" ng-class="{'dropdown': item.children}" ng-repeat="item in menu.items"> 419 <a class="nav-link" ng-if="!item.children" href="{{item.url}}" ng-attr-target="{{(item.target != '') ? '_blank' : undefined}}" ng-bind-html="jsLib.trustedHtml(item.title)"></a> 420 <a class="nav-link dropdown-toggle" ng-if="item.children" href="#" id="sportDropdownMenu{{item.id}}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 421 <span ng-if="item.title != '---'">{{item.title}}</span> 422 <i class="fa fa-bars" aria-hidden="true" ng-if="item.title == '---'"></i> 423 </a> 424 <div class="dropdown-menu row" ng-class="{'sport-menu': hasGrandChildren(item), '{{item.classes}}': item.classes, 'row': item.classes}" aria-labelledby="sportDropdownMenu{{item.id}}" ng-if="item.children"> 425 <a class="dropdown-item" ng-class="{'col':item.classes}" href="{{child1.url}}" ng-if="!hasGrandChildren(item)" ng-repeat="child1 in item.children" ng-bind-html="jsLib.trustedHtml(child1.title)"></a> 426 427 <div class="sport-menu-section col-lg-3 col-md-6 col-sm-6 col-6" ng-repeat="child1 in item.children" ng-if="hasGrandChildren(item)"> 428 <h5 ng-if="child1.children" ng-bind-html="jsLib.trustedHtml(child1.title)"></h5> 429 <ul class="submenu-list" ng-if="child1.children"> 430 <li ng-repeat="child2 in child1.children"><a href="{{child2.url}}" ng-attr-target="{{(child2.target != '') ? '_blank' : undefined}}" ng-bind-html="jsLib.trustedHtml(child2.title)"></a></li> 431 </ul> 432 </div> 433 </div> 434 </li> 435 </ul> 436</div> 437 </div> 438</nav> 439 440 441<div class="row no-gutters"> 442 443 444<!-- Sidebar Start --> 445<div class="dvSideBar noPrint" ng-show="sideBarVisible"> 446 <div class="mobile-sideBar-ad"> 447 <div id="snack-mobile-top-leaderboard"></div> 448 </div> 449 <div id="sideBar" class="sideBar navbar-collapse navbar-responsive-collapse"> 450 451 452 <!-- Favorites Module --> 453 454
455<script src="/js/controllers/mostRecentCtrl.js"></script>
455 456<div class="dvRecently transBox-desktop" ng-controller="mostRecentCtrl" style="padding-bottom: 15px"> 457 <h5 class="hidden-md hidden-lg hidden-xl">Recently Visited</h5> 458 <h3 class="hidden-xs hidden-sm">Recently Visited</h3> 459 <ul class="nav nav-tabs marginB5 marginT5"> 460 <li class="nav-item"><a class="nav-link" ng-class="currentTab == 'event' ? 'active':''" title="Events" href ng-click="setTab('event')">Events</a></li> 461 <li class="nav-item"><a class="nav-link" ng-class="currentTab == 'team' ? 'active':''" title="Teams" href ng-click="setTab('team')">Teams</a></li> 462 <li class="nav-item"><a class="nav-link" ng-class="currentTab == 'player' ? 'active':''" title="Players" href ng-click="setTab('player')">Players</a></li> 463 <!-- <li class="nav-item"><a class="nav-link" ng-class="currentTab == 'searche' ? 'active':''" title="Searches" href ng-click="setTab('searche')">Searches</a></li> --> 464 </ul> 465 <span class="badge badge-secondary hidden-xs hidden-sm" ng-hide="currentTab"><fa icon="arrow-up"></fa> Select an Option</span> 466 <loading-bar ng-show="loading"></loading-bar> 467 <div class="padding10" ng-hide="loading || !currentTab"> 468 <div class="text-right"><a href ng-click="closeTab()"><fa icon="window-close"></fa> Close</a></div> 469 <strong style="text-transform: capitalize;">{{currentTab}}s:</strong> 470 <a ng-repeat-start="t in teams" ng-if="currentTab == 'team'" href="/{{t.folder}}/teamHome/?teamID={{t.id}}" class="badge" ng-class="t.owner?'badge-primary':'badge-secondary'" ng-hide="$index > 4 && !showAll">{{t.name}}</a><a href ng-click="deleteItem(t.id, 'team')" ng-hide="$index > 4 && !showAll"><fa icon="trash"></fa></a><br ng-repeat-end ng-hide="$index > 4 && !showAll"> 471 472 <a ng-repeat-start="e in events" ng-if="currentTab == 'event'" href="/{{e.folder}}/event_home/?eventID={{e.id}}" class="badge" ng-class="e.entered?'badge-primary':'badge-secondary'" ng-hide="$index > 4 && !showAll">{{e.name}}</a><a ng-repeat-end href ng-click="deleteItem(e.id, 'event')" ng-hide="$index > 4 && !showAll"><fa icon="trash"></fa></a><!-- <br ng-hide="$index > 4 && !showAll"> --> 473 474 <a ng-repeat-start="p in players" ng-if="currentTab == 'player'" href="/{{p.folder}}/PlayerLocker/?playerID={{p.id}}" class="badge" ng-class="p.entered?'badge-primary':'badge-secondary'" ng-hide="$index > 4 && !showAll">{{p.name}}</a><a href ng-click="deleteItem(p.id, 'event')" ng-hide="$index > 4 && !showAll"><fa icon="trash"></fa></a><br ng-repeat-end ng-hide="$index > 4 && !showAll"> 475 476 <a href ng-click="showAllItems()" class="badge badge-danger" ng-if="teams.length > 5 && !showAll">Show All</a> 477 <span class="badge badge-secondary" ng-if="currentTab == 'team' && teams.length == 0">No Team Found!</span> 478 <span class="badge badge-secondary" ng-if="currentTab == 'event' && events.length == 0">No Event Found!</span> 479 <span class="badge badge-secondary" ng-if="currentTab == 'player' && players.length == 0">No Player Found!</span> 480 <center><a href ng-click="clearList()" class="badge badge-danger" ng-if="(teams.length > 0 && currentTab=='team')||(events.length > 0 && currentTab == 'event')|| (players.length > 0 && currentTab == 'player')" style="display: block;">Clear the List</a></center> 481 </div> 482 <div class="hidden-md hidden-lg hidden-xl" style="margin-bottom: -30px"></div> 483</div> 484 <!-- /Favorites Module --> 485 486 487 488 489 <div class="sidebar-ad" style="margin:10px auto 0px auto; text-align:center; width:100%; overflow:hidden; min-height: 250px;"> 490 <div id="snack-gutter-top-left"></div> 491 </div> 492 493 494 495 <div class="sideBar-teamManager mt-1"> 496
497<script src="/js/controllers/teamManagerSidebarCtrl.js"></script>
vendor: 2 bytes, line 497
497
498<script src="/js/filters/getReceiptLink.js"></script>
498 499<div class="transBox dvTeamManagerSidebar" ng-controller="teamManagerSidebarCtrl" ng-show="1 == 0"> 500 <h3>Team Manager</h3> 501 502 <nav class="nav-sidebar"> 503 <ul class="nav flex-column"> 504 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSMenu"><fa icon="home"></fa> Dashboard</a></li> 505 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSMyAccount"><fa icon="id-badge"></fa> Your Account</a></li> 506 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSBillingInfo"><fa icon="address-card-o"></fa> Billing Info</a></li> 507 <li class="nav-item"><a class="nav-link" href="/payments"><fa icon="credit-card"></fa> Your Payments</a></li> 508 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSYourPlayers"><fa icon="users"></fa> Your Players</a></li> 509 <!-- <li class="nav-item"><a class="nav-link" href="https://sports.athpro360.com/Ists/remoteLogin/?managerID=={{AthPro.managerID}}&chksum={{AthPro.chksum}}&page=dashboard"><fa icon="trash"></fa> AthClub</a></li> --> 510 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSCreateTeam"><fa icon="plus"></fa> Create a New Team</a></li> 511 <li class="nav-item"><a class="nav-link" href="/{{sport}}ISTSCreateTeam"><fa icon="plus"></fa> Register Existing Team for New Season</a></li> 512 513 <li class="nav-item"><a class="nav-link" ng-click="logout()" style="cursor:pointer"><fa icon="power-off"></fa> Logout</a></li> 514 </ul> 515 </nav> 516 <div ng-if="payments.length > 0"> 517 <h3>Online Payments</h3> 518 <nav class="nav-sidebar" style="max-height: 400px;overflow-y: auto"> 519 <loading ng-show="loading"></loading> 520 <ul class="nav flex-column" ng-hide="loading"> 521 <li class="nav-item" ng-repeat="p in payments"> 522 <a class="nav-link" href="{{p| getReceiptLink}}" ng-class="{'text_green':p.transamount > 0, 'text_red': p.transamount < 0}"> 523 <b>{{p.date | date: "MM/dd/yyyy"}} | #{{p.orderNum}} | ${{p.amount}}</b><br> 524 <b>{{p.descrP1}}</b><br> 525 {{p.descrP2}} 526 </a> 527 </li> 528 </ul> 529 </nav> 530 <!-- <div class="text-right">Show All</div> --> 531 </div> 532</div> 533 <div class="sideBar-shoppingCart mt-md-3"> 534 <!-- #checkout# --> 535 536<!-- shoppie -->
537<script> 538 usssa.controller('ShoppingCartWidgetController', ['$scope', '$rootScope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage', '$window', function($scope, $rootScope, $filter, $http, $location, jsLib, API, storage, $window) { 539 540 $scope.cartLimit = 8000; 541 542 $rootScope.$on('updateCart', function(event, args) { 543 getCartItems(); 544 }); 545 546 function getCartItems(){ 547 $scope.loading = true; 548 API.post({ action: 'getCartItemsV11'}) 549 .then(function(data) { 550 $scope.loading = false; 551 data.cartTotal = 0; 552 angular.forEach(data.cart, function(team){ 553 team.total = 0; 554 angular.forEach(team.items, function(div){ 555 div.total = 0; 556 angular.forEach(div.items, function(item){ 557 div.total += item.amount; 558 }); 559 team.total =+ div.total; 560 data.cartTotal += team.total; 561 }); 562 }); 563 564 $scope.cartData = data; 565 $scope.cartAmount = data.cartTotal; 566 }, 567 function(error) { 568 console.log('http error'); 569 $scope.loading = false; 570 }); 571 } 572 573 $scope.changeStatus = function(item, status){ 574 var _params = { action: 'shoppingcart-changeStatusV11', teamID: item.team_id, status: status}; 575 if (item.payment_type != 6){ 576 _params.seqNo = item.seqno; 577 } else { 578 _params.divisionID = item.division_id; 579 } 580 API.post(_params) 581 .then(function(data) { 582 $scope.loading = false; 583 getCartItems(); 584 }, 585 function(error) { 586 //console.log('http error'); 587 getCartItems(); 588 $scope.loading = false 589 }); 590 } 591 592 $scope.remove = function(item){ 593 if (confirm((item.payment_type == 6)?"Removing this item will remove other fee items from your cart, do you want to continue?":"Are you sure?")){ 594 if (confirm('Removing this item from your Shopping Cart does NOT mean that your team is removed from the event. To do this you must contact the Event Director.')){ 595 var _params = { action: 'shoppingcart-removeV11', teamID: item.team_id}; 596 if (item.payment_type != 6){ 597 _params.seqNo = item.seqno; 598 } else { 599 _params.divisionID = item.division_id; 600 } 601 602 API.post(_params) 603 .then(function(data) { 604 $scope.loading = false; 605 getCartItems(); 606 }, 607 function(error) { 608 $scope.loading = false; 609 console.log('http error'); 610 }); 611 } 612 } 613 } 614 615 $scope.checkoutCart = function(){ 616 if ($scope.cartAmount >= $scope.cartLimit) 617 alert("Total Cart amount can't be more than $8000, please move some items to \"Saved for Later\" to proceed."); 618 else{ 619 //Update cart items amount for stuff in the cart. 620 var cartItems = []; 621 var cartIDs = []; 622 angular.forEach($scope.cartData.cart, function(team){ 623 angular.forEach(team.items, function(div){ 624 angular.forEach(div.items, function(item){ 625 cartItems.push({seqno: item.seqno, amount: item.amount}); 626 cartIDs.push(item.seqno); 627 }); 628 }); 629 }); 630 631 API.post({ action: 'updateCartItemsBeforeCheckoutV11', json: encodeURIComponent(angular.toJson(cartItems))}) 632 .then(function(data) { 633 $scope.loading = false; 634 if (data.success){ 635 checkoutStripe('', $scope.cartAmount, 'USSSA Shopping Cart Payment', 60, 60, 0, '', 0, 'https://www.usssa.com/' + jsLib.getSportName($scope.sportID, document.URL) + '/ISTSMenu/?gdSport=' + $scope.sportID, '', angular.toJson(cartIDs), jsLib.getSportID(), jsLib.getSportNameFull()); 636 } else { 637 alert('An event in your shopping cart is not available because the max teams have already entered. This event has been removed from your cart, please contact the tournament host regarding entry into this event.'); 638 getCartItems(); 639 } 640 }, 641 function(error) { 642 console.log('http error'); 643 $scope.loading = false; 644 }); 645 } 646 } 647 if ('' != '') 648 getCartItems(); 649 }]); 650 651 function checkoutStripe(customerid, transamount, transdesc, trans_type_id, org_id, team_id, tournament_id, season_id, return_URL, paymentMemo, cartIDs, sport_id, sport_name) { 652 $("#customerid").val(customerid); 653 $("#transamount").val(transamount); 654 $("#transdesc").val(transdesc);
655 $("#trans_type_id").val(trans_type_id); 656 $("#org_id").val(org_id); 657 $("#team_id").val(team_id); 658 $("#tournament_id").val(tournament_id); 659 $("#season_id").val(season_id); 660 $("#cartIDs").val(cartIDs); 661 $("#return_URL").val(return_URL); 662 $("#paymentMemo").val(paymentMemo); 663 // Shopping cart payments are tournament entry fees 664 $("#category").val("event_reg"); 665 $("#sport_id").val(sport_id || ''); 666 $("#sport_name").val(sport_name || ''); 667 668 if (window.location.hostname === 'localhost') { 669 670 $("#frm").attr('action', 'http://localhost:22227/stripePreparePayment'); 671 672 } 673 else if (window.location.hostname === 'qa.usssa.com') { 674 675 $("#frm").attr('action', 'https://qa.usssa.com/stripePreparePayment'); 676 677 } 678 else if (window.location.hostname === 'prod-lns-mainsite.usssa.com') { 679 680 $("#frm").attr('action', 'https://prod-lns-mainsite.usssa.com/stripePreparePayment'); 681 682 } 683 else { 684 685 $("#frm").attr('action', 'https://www.usssa.com/stripePreparePayment'); 686 687 } 688 689 $(".aspNetHidden").remove(); 690 $("#frm").submit(); 691 } 692 693 function cleanItem(item) { 694 var result = ""; 695 if (item === null) { 696 console.info(item + ' is null ==='); 697 return result; 698 } else if (item == null) { 699 console.info(item + ' is null =='); 700 return result; 701 } else if (item == '') { 702 console.info(item + ' is \'\''); 703 return result; 704 } else if (item == "") { 705 console.info(item + ' is \'\''); 706 return result; 707 } else if (item === undefined) { 708 console.info(item + ' is undefined'); 709 return result; 710 } else if (item == "\"\"") { 711 console.info(item + ' is ""'); 712 return null; 713 } else { 714 console.info(item + ' is not null'); 715 return item.toString(); 716 } 717 } 718 719 function checkout(purchase) { 720 $("#customerid").val(purchase.customerid || ''); 721 $("#transamount").val(purchase.transamount || ''); 722 $("#transdesc").val(purchase.transdesc || ''); 723 $("#trans_type_id").val(purchase.trans_type_id || ''); 724 $("#org_id").val(purchase.org_id || ''); 725 $("#team_id").val(purchase.team_id || ''); 726 $("#tournament_id").val(purchase.tournament_id || ''); 727 $("#season_id").val(purchase.season_id || ''); 728 $("#cartIDs").val(purchase.cartIDs || ''); 729 $("#return_URL").val(purchase.return_URL || ''); 730 $("#paymentMemo").val(purchase.paymentMemo || ''); 731 $("#category").val(purchase.category || ''); 732 $("#sport_id").val(purchase.sport_id || ''); 733 $("#sport_name").val(purchase.sport_name || ''); 734 735 if (window.location.hostname === 'localhost') { 736 $("#frm").attr('action', 'http://localhost:22227/stripePreparePayment'); 737 } else if (window.location.hostname === 'qa.usssa.com') { 738 $("#frm").attr('action', 'https://qa.usssa.com/stripePreparePayment'); 739 } else if (window.location.hostname === 'prod-lns-mainsite.usssa.com') { 740 $("#frm").attr('action', 'https://prod-lns-mainsite.usssa.com/stripePreparePayment'); 741 } else { 742 $("#frm").attr('action', 'https://www.usssa.com/stripePreparePayment'); 743 } 744 745 $(".aspNetHidden").remove(); 746 $("#frm").submit(); 747 } 748</script>
748 749 750<div ng-controller="ShoppingCartWidgetController"> 751 <div style="display:none"> 752 <input type="hidden" id="customerid" name="customerid" value="" /> 753 <input type="hidden" id="transamount" name="transamount" value="" /> 754 <input type="hidden" id="transdesc" name="transdesc" value="" /> 755 <input type="hidden" id="trans_type_id" name="trans_type_id" value="" /> 756 <input type="hidden" id="org_id" name="org_id" value="" /> 757 <input type="hidden" id="team_id" name="team_id" value="" /> 758 <input type="hidden" id="tournament_id" name="tournament_id" value="" /> 759 <input type="hidden" id="season_id" name="season_id" value="" /> 760 <input type="hidden" id="cartIDs" name="cartIDs" value="" /> 761 <input type="hidden" id="return_URL" name="return_URL" value="" /> 762 <input type="hidden" id="paymentMemo" name="paymentMemo" value="" /> 763 <input type="hidden" id="from" name="from" value="v11" /> 764 <input type="hidden" id="category" name="category" value="" /> 765 <input type="hidden" id="sport_id" name="sport_id" value="" /> 766 <input type="hidden" id="sport_name" name="sport_name" value="" /> 767 </div> 768 769</div> 770 771 </div> 772 </div> 773 774 <div class="d-none d-lg-block mt-2" style="flex-grow: 1"> 775 776 777<style> 778.watch-live-container { 779 background-color: #cccccc; 780 background-size: 100% 100%; 781 background-image: url('/img/usssalive-cta-ad.jpg'); 782 width: 300px; 783 height: 100px; 784} 785.watch-live-container .watch-live-link { 786 display: inline-block; 787 width: 100%; 788 height: 100%; 789} 790 791</style> 792 793<div class="watch-live-container"> 794 <a class="watch-live-link" href="https://www.usssalive.com"> </a> 795</div> 796 797<hr class="d-block d-md-none"> 798 <div class="sticky-wrapper position-sticky"> 799 <div style="margin:16px auto 10px auto; text-align:center; width:100%; overflow:hidden; min-height: 250px;"> 800 <div id="snack-gutter-top"></div> 801 </div> 802 </div> 803 </div> 804 805 806 <div class="sideBarFooter d-block d-md-none"></div> 807 </div> 808</div> 809<style> 810 .mobile-sideBar-ad { 811 display: none; 812 } 813 @media (max-width: 768px) { 814 .sidebar-ad { 815 display: none; 816 } 817 .mobile-sideBar-ad { 818 display: block; 819 margin: 10px auto 0px auto; 820 text-align: center; 821 width: 100%; 822 overflow: hidden; 823 min-height: 50px; 824 } 825 } 826 827 .sticky-wrapper { 828 top: 20px; 829 height: 600px; 830 } 831</style> 832<!-- /Sidebar --> 833 834 <div class="col dvContent"> 835 836
837<script src="/js/controllers/superEventSearchCtrl.js"></script>
837 838<style> 839.leaderboard-ad { 840 display: block; 841} 842@media (max-width: 768px) { 843 .leaderboard-ad { 844 display: none; 845 } 846 } 847</style> 848<div class="leaderboard-ad text-center" style="padding-top:15px"> 849 <div style="margin:10px auto 10px auto; text-align:center; width:100%; overflow:hidden; min-height: 90px;"> 850 <div id="snack-desktop-top-leaderboard"></div> 851 </div> 852</div> 853<div ng-controller="superEventSearchCtrl" class="superSearch"> 854 <div ng-if="!program" class="bg-white searchWidget ng-cloak noPrint"> 855 856 <div class="marginB15" ng-if="!onEventSearch"> 857 <h4 class="h4 hh hh-dk-gray">Quick Search</h4> 858 <ul class="nav nav-tabs"> 859 <li class="nav-item"><a class="nav-link" ng-class="currentTab == 'event' ? 'active':''" title="Event Search" href ng-click="setTab('event')">Event<span class="hidden-xs"> Search</span></a></li> 860 <li class="nav-item" ng-if="searchSystem != 'scori'"><a class="nav-link" ng-class="currentTab == 'team' ? 'active':''" title="Team Search" href ng-click="setTab('team')">Team<span class="hidden-xs"> Search</span></a></li> 861 <li class="nav-item" ng-if="searchSystem != 'scori'"><a class="nav-link" ng-class="currentTab == 'player' ? 'active':''" title="Player Search" href ng-click="setTab('player')">Player<span class="hidden-xs"> Search</span></a></li> 862 <li class="nav-item" ng-if="searchSystem != 'scori'"><a class="nav-link" ng-class="currentTab == 'ranking' ? 'active':''" title="Ranking" href ng-click="setTab('ranking')">Ranking</a></li> 863 <li class="nav-item" ng-if="searchSystem != 'scori'"><a class="nav-link" title="Points Race" href ng-click="pointsRaceClicked()">Points Race</a></li> 864 </ul> 865 </div> 866 </div> 867 868 869 <h4 ng-if="onEventSearch" class="h4 hh hh-dk-gray noPrint">Event Search Parameters</h4> 870 <hr class="marginB15"> 871 <div class="noPrint" ng-if="currentTab == 'event'"> 872 <h3 ng-if="onHome">Event S<a href ng-click="hiddenFields()" style="color: #dd2109;cursor: text;">e</a>arch</h3> 873 <div ng-if="searchSystem != 'scori'" class="row"> 874 <!-- Sport dropdown --> 875 876 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="inSpecificSport == 32"> 877 <h4 class="text_red" style="border: none;">Sport:</h4> 878 <ui-select ng-disabled="loadingSports" ng-model="searchParams.sportID" theme="select2" on-select="selectSport($item)" close-on-select="true" skip-focusser="true"> 879 <ui-select-match allow-clear="true" placeholder="{{loadingSports ? 'Loading Sports...' : 'Select a sport 2 start' }}">{{$select.selected.name}}</ui-select-match> 880 <ui-select-choices repeat="sport in searchFields.sports | propsFilter: {name: $select.search}" position='bottom'> 881 <div ng-bind-html="sport.name | highlight: $select.search"></div> 882 </ui-select-choices> 883 </ui-select> 884 </div> 885 <!-- Season dropdown --> 886 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchParams.sportID"> 887 <h4 class="text_red" style="border: none;">Season:</h4> 888 <ui-select ng-disabled="loadingSeasons" ng-model="searchParams.seasonID" theme="select2" on-select="selectSeason($item)" close-on-select="true" skip-focusser="true"> 889 <ui-select-match allow-clear="true" placeholder="{{loadingSeasons ? 'Loading Seasons...' : 'Select a season' }}">{{$select.selected.name}}</ui-select-match> 890 <ui-select-choices repeat="season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'> 891 <div ng-bind-html="season.name | highlight: $select.search"></div> 892 </ui-select-choices> 893 </ui-select> 894 </div> 895 <!-- Age dropdown --> 896 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.ages"> 897 <h4 class="text_red" style="border: none;">Age:</h4> 898 <ui-select multiple ng-model="searchParams.age" theme="select2" close-on-select="true" skip-focusser="true"> 899 <ui-select-match allow-clear="true" placeholder="All ages">{{$item.name}}</ui-select-match> 900 <ui-select-choices repeat="age in searchFields.ages | propsFilter: {name: $select.search}" position='bottom'> 901 <div ng-bind-html="age.name | highlight: $select.search"></div> 902 </ui-select-choices> 903 </ui-select> 904 </div> 905 <!-- Period dropdown --> 906 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.searchPeriods" close-on-select="true" skip-focusser="true"> 907 <h4 class="text_red" style="border: none;">Start Date:</h4> 908 <ui-select ng-model="searchParams.period" theme="select2"> 909 <ui-select-match allow-clear="true" placeholder="Pick a start date">{{$select.selected.name}}</ui-select-match> 910 <ui-select-choices group-by="'group'" repeat="period in searchFields.searchPeriods | propsFilter: {name: $select.search}" position='bottom'> 911 <div ng-bind-html="period.name | highlight: $select.search"></div> 912 </ui-select-choices> 913 </ui-select> 914 </div> 915 <!-- Class dropdown --> 916 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.
916classes"> 917 <h4 class="text_red" style="border: none;">Class:</h4> 918 <ui-select multiple ng-model="searchParams.class" theme="select2" close-on-select="true" skip-focusser="true"> 919 <ui-select-match allow-clear="true" placeholder="All classes">{{$item.name}}</ui-select-match> 920 <ui-select-choices repeat="class in searchFields.classes | propsFilter: {name: $select.search}" position='bottom'> 921 <div ng-bind-html="class.name | highlight: $select.search"></div> 922 </ui-select-choices> 923 </ui-select> 924 </div> 925 <!-- Stature dropdown --> 926 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.statures"> 927 <h4 class="text_red" style="border: none;">Stature:</h4> 928 <ui-select multiple ng-model="searchParams.stature" theme="select2" close-on-select="true" skip-focusser="true"> 929 <ui-select-match allow-clear="true" placeholder="All statures">{{$item.name}}</ui-select-match> 930 <ui-select-choices repeat="stature in searchFields.statures | propsFilter: {name: $select.search}" position='bottom'> 931 <div ng-bind-html="stature.name | highlight: $select.search"></div> 932 </ui-select-choices> 933 </ui-select> 934 </div> 935 <!-- State dropdown --> 936 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.states" close-on-select="true" skip-focusser="true"> 937 <h4 class="text_red" style="border: none;">State:</h4> 938 <ui-select ng-model="searchParams.region" theme="select2" on-select="selectState($item)"> 939 <ui-select-match allow-clear="true" placeholder="Select a state">{{$select.selected.name}}</ui-select-match> 940 <ui-select-choices repeat="state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'> 941 <div ng-bind-html="state.name | highlight: $select.search"></div> 942 </ui-select-choices> 943 </ui-select> 944 </div> 945 <!-- Director dropdown --> 946 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-show="whichDirectorList('all')" close-on-select="true" skip-focusser="true"> 947 <h4 class="text_red" style="border: none;">Director:</h4> 948 <ui-select ng-model="searchParams.director" theme="select2"> 949 <ui-select-match allow-clear="true" placeholder="Select a director!">{{$select.selected.name}}</ui-select-match> 950 <ui-select-choices group-by="'state'" repeat="director in searchFields.directors | propsFilter: {name: $select.search}" position='bottom'> 951 <div ng-bind-html="director.name | highlight: $select.search"></div> 952 </ui-select-choices> 953 </ui-select> 954 </div> 955 <!-- Selected State Directors dropdown --> 956 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-show="whichDirectorList('singleRegion')" close-on-select="true" skip-focusser="true"> 957 <h4 class="text_red" style="border: none;">Director:</h4> 958 <ui-select ng-model="searchParams.director" ng-disabled="searchFields.selectedStateDirectors.length == 0" theme="select2"> 959 <ui-select-match allow-clear="true" placeholder="{{searchFields.selectedStateDirectors.length > 0 ? 'Select a director' : 'No directors found'}}">{{$select.selected.name}}</ui-select-match> 960 <ui-select-choices repeat="director in searchFields.selectedStateDirectors | propsFilter: {name: $select.search}" position='bottom'> 961 <div ng-bind-html="director.name | highlight: $select.search"></div> 962 </ui-select-choices> 963 </ui-select> 964 </div> 965 <!-- Zipcode --> 966 <div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" ng-hide="!searchFields.states" close-on-select="true" skip-focusser="true"> 967 <h4 class="text_red" style="border: none;">Zip Code:</h4> 968 <input autocomplete="off" type="text" id="zipCode" ng-model="searchParams.zipCode" placeholder="Enter a zip code" class="form-control"> 969 </div> 970 <!-- Miles dropdown --> 971 <div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" ng-hide="!searchFields.states" close-on-select="true" skip-focusser="true"> 972 <h4 class="text_red" style="border: none;">Range:</h4> 973 <ui-select ng-model="searchParams.zipRadius" theme="select2"> 974 <ui-select-match allow-clear="true" placeholder="Within range of">{{$select.selected.name}}</ui-select-match> 975 <ui-select-choices repeat="mile in searchFields.miles | propsFilter: {name: $select.search}" position='bottom'> 976 <div ng-bind-html="mile.name | highlight: $select.search"></div> 977 </ui-select-choices> 978 </ui-select> 979 </div> 980 <!-- Selected State Parks dropdown --> 981 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-show="searchParams.region && searchFields.selectedStateParks" close-on-select="true" skip-focusser="true"> 982 <h4 class="text_red" style="border: none;">Park:</h4> 983 <ui-select ng-model="searchParams.park" theme="select2"> 984 <ui-select-match allow-clear="true" placeholder="Select a park">{{$select.selected.name}}</ui-select-match> 985 <ui-select-choices repeat="park in searchFields.selectedStateParks | propsFilter: {name: $select.search}" position='bottom'> 986 <div ng-bind-html="park.name | highlight: $select.search"></div> 987 </ui-select-choices> 988 </ui-select> 989 </div> 990 <!-- EventID 4 BJ --> 991 <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-6" ng-show="fields4BJ" close-on-select="true" skip-focusser="true"> 992 <h4 class="text_red" style="border: none;">EventID:</h4> 993 <input autocomplete="off" type="text" id="eventID" ng-model="searchParams.eventID4BJ" placeholder="Event ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}"> 994 </div> 995 <!-- DivisionID 4 BJ --> 996 <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-6" ng-show="fields4BJ" close-on-select="true" skip-focusser="true"> 997 <h4 class="text_red" style="border: none;">DivisionID:</h4> 998 <input autocomplete="off" type="text" id="divisionID" ng-model="searchParams.divisionID4BJ" placeholder="Division ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}"> 999 </div> 1000 </div> 1001 <div ng-if="searchSystem == 'scori'" class="row"> 1002 <!-- Sport dropdown --> 1003 1004 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="inSpecificSport == 32"> 1005 <h4 class="text_red" style="border: none;">Sport:</h4> 1006 <ui-select ng-disabled="loadingSports" ng-model="searchParams.sportID" theme="select2" on-select="selectSport($item)" close-on-select="true" skip-focusser="true"> 1007 <ui-select-match allow-clear="true" placeholder="{{loadingSports ? 'Loading Sports...' : 'Select a sport 2 start' }}">{{$select.selected.name}}</ui-select-match> 1008 <ui-select-choices repeat="sport in searchFields.sports | propsFilter: {name: $select.search}" position='bottom'> 1009 <div ng-bind-html="sport.name | highlight: $select.search"></div> 1010 </ui-select-choices> 1011 </ui-select> 1012 </div> 1013 <!-- Season dropdown --> 1014 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchParams.sportID"> 1015 <h4 class="text_red" style="border: none;">Season:</h4> 1016 <ui-select ng-disabled="loadingSeasons" ng-model="searchParams.seasonID" theme="select2" on-select="selectSeason($item)" close-on-select="true" skip-focusser="true"> 1017 <ui-select-match allow-clear="true" placeholder="{{loadingSeasons ? 'Loading Seasons...' : 'Select a season' }}">{{$select.selected.name}}</ui-select-match> 1018 <ui-select-choices repeat="season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'> 1019 <div ng-bind-html="season.name | highlight: $select.search"></div> 1020 </ui-select-choices> 1021 </ui-select> 1022 </div> 1023 <!-- Stature dropdown --> 1024 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.statures"> 1025 <h4 class="text_red" style="border: none;">Stature:</h4> 1026 <ui-select multiple ng-disabled="loadingDropdowns" ng-model="searchParams.stature" theme="select2" close-on-select="true" skip-focusser="true"> 1027 <ui-select-match allow-clear="true" placeholder="{{loadingDropdowns ? 'Loading...' : 'All statures'}}">{{$item.name}}</ui-select-match> 1028 <ui-select-choices repeat="stature in searchFields.statures | propsFilter: {name: $select.search}" position='bottom'> 1029 <div ng-bind-html="stature.name | highlight: $select.search"></div> 1030 </ui-select-choices> 1031 </ui-select> 1032 </div> 1033 <div class="w-100"> 1034 </div> 1035 <!-- Zipcode --> 1036 <div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" close-on-select="true" skip-focusser="true"> 1037 <h4 class="text_red" style="border: none;">Zip Code:</h4> 1038 <input autocomplete="off" type="text" id="zipCode" ng-model="searchParams.zipCode" placeholder="Enter a zip code" class="form-control"> 1039 </div> 1040 <!-- Miles dropdown --> 1041 <div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" close-on-select="true" skip-focusser="true"> 1042 <h4 class="text_red" style="border: none;">Range:</h4> 1043 <ui-select ng-model="searchParams.zipRadius" theme="select2"> 1044 <ui-select-match allow-clear="true" placeholder="Within range of">{{$select.selected.name}}</ui-select-match> 1045 <ui-select-choices repeat="mile in searchFields.miles | propsFilter: {name: $select.search}" position='bottom'> 1046 <div ng-bind-html="mile.name | highlight: $select.search"></div> 1047 </ui-select-choices> 1048 </ui-select> 1049 </div> 1050 <!-- State dropdown --> 1051 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.states" close-on-select="true" skip-focusser="true"> 1052 <h4 class="text_red" style="border: none;">State:</h4> 1053 <ui-select ng-model="searchParams.state" theme="select2"> 1054 <ui-select-match allow-clear="true" placeholder="Select a state">{{$select.selected.name}}</ui-select-match> 1055 <ui-select-choices repeat="state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'> 1056 <div ng-bind-html="state.name | highlight: $select.search"></div> 1057 </ui-select-choices> 1058 </ui-select> 1059 </div> 1060 <!-- Org dropdown --> 1061 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.organizations" close-on-select="true" skip-focusser="true"> 1062 <h4 class="text_red" style="border: none;">Organization:</h4> 1063 <ui-select ng-model="searchParams.organization" theme="select2"> 1064 <ui-select-match allow-clear="true" placeholder="Select an organization">{{$select.selected.name}}</ui-select-match> 1065 <ui-select-choices repeat="org in searchFields.organizations | propsFilter: {name: $select.search}" position='bottom'> 1066 <div ng-bind-html="org.name | highlight: $select.search"></div> 1067 </ui-select-choices> 1068 </ui-select> 1069 </div> 1070 </div> 1071 1072 <!-- Search/Reset Buttons --> 1073 <div class="row"> 1074 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-12 col-6 col-sm-6 col-md-6 col-lg-6 col-lg-6 col-xl-6 md-text-right sm-text-center xs-text-right noPrint"> 1075 <a href ng-click="clearAll()" class="btn btn-warning" style="width: 100%">Reset Form</a><br> 1076 </div> 1077 <div class="col-xl-4 col-lg-4 col-md-4 col-sm-12 col-6 col-sm-6 col-md-6 col-lg-6 col-lg-6 col-xl-6 md-text-right sm-text-center xs-text-right noPrint"> 1078 <button ng-disabled="!(searchParams.sportID && searchParams.seasonID)" ng-click="searchEvents($event)" class="btn btn-primary" style="width: 100%">Search</button><br> 1079 </div> 1080 1081 <div class="col-12 alert alert-danger" ng-show="error" style="padding-left: 20px;">{{error}}</div> 1082 </div> 1083 </div> 1084 1085 1086 1087 <div ng-if="currentTab == 'team'"> 1088 1089 1090 1091 1092<div ng-controller="teamSearchCtrl"> 1093 <h3 ng-if="onHome">Team S<a href ng-click="hiddenFields()" style="color: #dd2109;cursor: text;">e</a>arch</h3> 1094 1095 1096 <div class="row marginT15 marginB15"> 1097 1098 <!--Sport Dropdown--> 1099 <div ng-show="onHome" class="col-6 col-sm-6 col-md-4" ng-class="{'has-error':validation4teamSearch.sport, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1100 <h4 class="text_red" style="border: none;">Sport</h4> 1101 <ui-select ng-model="teamSearchParams.sport" theme="select2" on-select="selectSport($item)"> 1102 <ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match> 1103 <ui-select-choices repeat="sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'> 1104 <div ng-bind-html="sport.sport | highlight: $select.search"></div> 1105 </ui-select-choices> 1106 </ui-select> 1107 <span class="help-block">{{validation4teamSearch.sport}}</span> 1108 </div> 1109 1110 <!--Team Name--> 1111 <div class="col-6 col-sm-6 col-md-4" ng-show="teamSearchParams.sport || !onHome" ng-class="{'has-error':validation4teamSearch.teamName, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1112 <h4 class="text_red" style="border: none;">Team Name</h4> 1113 <input ng-model="teamSearchParams.teamName" class="form-control" type="search" placeholder="Enter a Team Name Here..."> 1114 <span class="help-block">{{validation4teamSearch.teamName}}</span> 1115 </div> 1116 1117 <!--Class Dropdown--> 1118 <div class="col-6 col-sm-6 col-md-4" ng-show="teamSearchParams.sport || !onHome" ng-class="{'has-error':validation4teamSearch.teamName, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1119 <h4 class="text_red" style="border: none;">Class</h4> 1120 <ui-select ng-model="teamSearchParams.class" theme="select2"> 1121 <ui-select-match allow-clear="true" placeholder="Select a Class">{{$select.selected.ClassName}}</ui-select-match> 1122 <ui-select-choices repeat="class.ClassID as class in teamClasses | propsFilter: {ClassName: $select.search}" position='bottom'> 1123 <div ng-bind-html="class.ClassName | highlight: $select.search"></div> 1124 </ui-select-choices> 1125 </ui-select> 1126 </div> 1127 <!--/Class Dropdown--> 1128 1129 <!--State Dropdown--> 1130 <div class="col-6 col-sm-6 col-md-4" ng-show="teamSearchParams.sport || !onHome" ng-class="{'has-error':validation4teamSearch.teamName, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1131 <h4 class="text_red" style="border: none;">State</h4> 1132 <ui-select ng-model="teamSearchParams.region" theme="select2"> 1133 <ui-select-match allow-clear="true" placeholder="Select a State">{{$select.selected.name}}</ui-select-match> 1134 <ui-select-choices repeat="state.value as state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'> 1135 <div ng-bind-html="state.name | highlight: $select.search"></div> 1136 </ui-select-choices> 1137 </ui-select> 1138 </div> 1139 <!--/State Dropdown--> 1140 1141 <!--Season Dropdown--> 1142 <div class="col-6 col-sm-6 col-md-4" ng-show="teamSearchParams.sport || !onHome" ng-class="{'has-error':validation4teamSearch.season, 'col
1142-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1143 <h4 class="text_red" style="border: none;">Season</h4> 1144 <ui-select ng-model="teamSearchParams.season" theme="select2" on-select="selectSeason($item)"> 1145 <ui-select-match allow-clear="true" placeholder="Select a Season">{{$select.selected.name}}</ui-select-match> 1146 <ui-select-choices repeat="season.value as season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'> 1147 <div ng-bind-html="season.name | highlight: $select.search"></div> 1148 </ui-select-choices> 1149 </ui-select> 1150 <span class="help-block">{{validation4teamSearch.season}}</span> 1151 </div> 1152 <!--/Season Dropdown--> 1153 1154 <!-- TeamID 4 BJ --> 1155 <div class="col-xl-6 col-lg-6 col-md-6 col-sm-6 col-6" ng-show="fields4BJ" close-on-select="true" skip-focusser="true"> 1156 <h4 class="text_red" style="border: none;">TeamID:</h4> 1157 <input type="text" id="teamID" ng-model="teamSearchParams.teamID4BJ" placeholder="Team ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}"> 1158 </div> 1159 1160 1161 <div class="col-6 col-sm-6 col-md-4 noPrint text-right" style="padding-top:28px" ng-class="onHome? 'col-lg-4 col-xl-4': 'col-lg-3 col-xl-3'"> 1162 <a style="width:100%" href ng-click="teamSearch()" class="btn btn-danger btn-sm"><i class="fa fa-search" aria-hidden="true"></i> Search</a> 1163 </div> 1164 1165 </div> 1166 1167 1168</div> 1169
1170<script> 1171 1172 usssa.controller('teamSearchCtrl', ['$scope', '$rootScope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage','$window', function($scope, $rootScope, $filter, $http, $location, jsLib, API, storage,$window) { 1173 1174 function init() { 1175 $scope.loading = true; 1176 $scope.onHome = document.URL.indexOf('home')>-1; 1177 $scope.fields4BJ = false; 1178 1179 1180 $scope.teamSearchParams ={}; 1181 1182 if(jsLib.getVal('teamname') || jsLib.getVal('classID') || jsLib.getVal('stateID') || jsLib.getVal('seasonID')){ 1183 $scope.teamSearchParams.teamName = jsLib.getVal('teamname'); 1184 $scope.teamSearchParams.class = jsLib.getVal('classID')*1; 1185 $scope.teamSearchParams.state = jsLib.getVal('stateID')*1; 1186 $scope.teamSearchParams.region = jsLib.getVal('regionID')*1; 1187 $scope.teamSearchParams.season = jsLib.getVal('seasonID'); 1188 } else { 1189 var savedParams = storage.get('teamSearchParams'); 1190 if(savedParams){ 1191 $scope.teamSearchParams = savedParams; 1192 if ($scope.teamSearchParams.sport) 1193 loadClasses(); 1194 } 1195 } 1196 1197 if($scope.onHome){ 1198 //console.log('$scope.onHome', $scope.onHome); 1199 getSportsWithFolder(); 1200 } else{ 1201 loadClasses(); 1202 } 1203 1204 if(!$scope.onHome){ 1205 getSearchFields(jsLib.getSportID()); 1206 } 1207 1208 $scope.availableSearchParams = [ 1209 { key: "name", name: "Team Name", placeholder: "Team Name..." }, 1210 // { key: "class", name: "Class", placeholder: "Class..." , restrictToSuggestedValues: true, suggestedValues: ['Berlin', 'London', 'Paris']}, 1211 { key: "city", name: "City", placeholder: "City..." , suggestedValues: [{name:'Berlin', value:1}, {name:'London', value:2}, {name:'Paris', value:3}]}, 1212 { key: "country", name: "Country", placeholder: "Country..." }, 1213 { key: "emailAddress", name: "E-Mail", placeholder: "E-Mail...", allowMultiple: true }, 1214 { key: "job", name: "Job", placeholder: "Job..." } 1215 ]; 1216 } 1217 1218 $scope.hiddenFields = function(){ 1219 $scope.fields4BJ = true; 1220 } 1221 1222 $scope.selectSport = function($item) { 1223 $scope.teamSearchParams.class = null; 1224 $scope.fields4BJ = false; 1225 1226 loadClasses(); 1227 if($scope.onHome){ 1228 getSearchFields($scope.teamSearchParams.sport.sportID); 1229 } 1230 1231 }; 1232 1233 function getSearchFields(_sportID){ 1234 API.post({ action: 'getBasicEventSearchFieldsV11', sportID: _sportID}, 24*3) 1235 .then( 1236 function(data) { 1237 $scope.searchFields = data; 1238 $scope.loading = false; 1239 $scope.teamSearchParams.season = data.seasons[1].value; 1240 }, 1241 function(error) { 1242 console.log('error', error); 1243 $scope.loading = false; 1244 $scope.error = true; 1245 } 1246 ); 1247 } 1248 1249 function getSportsWithFolder(){ 1250 API.post({ action: 'getSportsWithFolder'}) 1251 .then( 1252 function(data) { 1253 $scope.sportsWithFolder = data; 1254 $scope.loading = false; 1255 }, 1256 function(error) { 1257 console.log('error', error); 1258 $scope.loading = false; 1259 $scope.error = true; 1260 } 1261 ); 1262 } 1263 1264 $scope.teamSearch = function(){ 1265 1266 if($scope.teamSearchParams.teamID4BJ){ 1267 1268 location.assign('/' + 'teamHome/?teamID=' + $scope.teamSearchParams.teamID4BJ); 1269 1270 } else { 1271 1272 $scope.validation4teamSearch = { 1273 error: false, 1274 messages: [] 1275 }; 1276 1277 if($scope.onHome){ 1278 1279 if (!$scope.teamSearchParams.sport || $scope.teamSearchParams.sport === '') { 1280 $scope.validation4teamSearch.sport = 'Sport is required'; 1281 $scope.validation4teamSearch.error = true; 1282 } 1283 } 1284 1285 1286 if ((!$scope.teamSearchParams.teamName || $scope.teamSearchParams.teamName === '') && (!$scope.teamSearchParams.class || $scope.teamSearchParams.class === '') && (!$scope.teamSearchParams.state || $scope.teamSearchParams.state === '')){ 1287 $scope.validation4teamSearch.teamName = 'At least one search parameter is required'; 1288 $scope.validation4teamSearch.error = true; 1289 } 1290 1291 if (!$scope.teamSearchParams.season || $scope.teamSearchParams.season === '') { 1292 $scope.validation4teamSearch.season = 'Season is required'; 1293 $scope.validation4teamSearch.error = true; 1294 } 1295 1296 if (!$scope.validation4teamSearch.error) { 1297 var params = "teamname=" + $scope.teamSearchParams.teamName + 1298 "®ionID=" + $scope.teamSearchParams.region + 1299 "&classID=" + $scope.teamSearchParams.class + 1300 "&seasonID=" + $scope.teamSearchParams.season; 1301 1302 storage.save('teamSearchParams', $scope.teamSearchParams); 1303 location.assign(location.origin + '/' + ($scope.teamSearchParams.sport ? $scope.teamSearchParams.sport.folder : jsLib.getSportName()) + '/TeamSearchResults/?' + params) 1304 } 1305 } 1306 } 1307 1308 function loadClasses() { 1309 if ($location.absUrl().indexOf("gsl") > -1) 1310 loadGSLClasses(); 1311 else { 1312 $scope.loading = true; 1313 console.log('sport',$scope.teamSearchParams.sport); 1314 API.post({ action: 'StatsGetClass',gdSport:($scope.teamSearchParams.sport ? $scope.teamSearchParams.sport.sportID : jsLib.getSportID())}) 1315 .then(function(data) { 1316 $scope.loading = false; 1317 $scope.teamClasses = data; 1318 }, 1319 function(error) { 1320 $scope.loading = false; 1321 $scope.error = true; 1322 }); 1323 } 1324 } 1325 1326 function loadGSLClasses() { 1327 $scope.loading = true;
1328 API.post({ action: 'StatsGetClass',gsl_only:1,gdSport:34}) 1329 .then(function(data) { 1330 $scope.loading = false; 1331 $scope.teamClasses = data; 1332 }, 1333 function(error) { 1334 $scope.loading = false; 1335 $scope.error = true; 1336 }); 1337 } 1338 1339 init(); 1340 }]); 1341 1342</script>
1342 1343 </div> 1344 1345 1346 <div ng-if="currentTab == 'player'"> 1347 1348 1349<div ng-controller="playerSearchCtrl"> 1350 <h3 class="noPrint">Player Search</h3> 1351 <div class="row marginT15 marginB15 noPrint"> 1352 <!--Player Name--> 1353 <div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3" ng-class="{'has-error':validation4playerSearch.firstName}"> 1354 <h4 class="text_red" style="border: none;">First Name</h4> 1355 <input ng-model="playerSearchParams.firstName" class="form-control" type="search" placeholder="First Name"> 1356 <span class="help-block">{{validation4playerSearch.firstName}}</span> 1357 </div> 1358 <!--Player Last Name--> 1359 <div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3" ng-class="{'has-error':validation4playerSearch.firstName}"> 1360 <h4 class="text_red" style="border: none;">Last Name</h4> 1361 <input ng-model="playerSearchParams.lastName" class="form-control" type="search" placeholder="Last Name"> 1362 1363 </div> 1364 <!--State Dropdown--> 1365 <div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3"> 1366 <h4 class="text_red" style="border: none;">State</h4> 1367 <ui-select ng-model="playerSearchParams.state" theme="select2"> 1368 <ui-select-match allow-clear="true" placeholder="Select a State">{{$select.selected.StateName}}</ui-select-match> 1369 <ui-select-choices repeat="state.StateID as state in states | propsFilter: {StateName: $select.search}" position='bottom'> 1370 <div ng-bind-html="state.StateName | highlight: $select.search"></div> 1371 </ui-select-choices> 1372 </ui-select> 1373 1374 </div> 1375 <div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3" ng-class="{'has-error':validation4playerSearch.sport}"> 1376 <h4 class="text_red" style="border: none;">Sport</h4> 1377 <ui-select ng-model="playerSearchParams.sport" theme="select2"> 1378 <ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match> 1379 <ui-select-choices repeat="sport.folder as sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'> 1380 <div ng-bind-html="sport.sport | highlight: $select.search"></div> 1381 </ui-select-choices> 1382 </ui-select> 1383 <span class="help-block">{{validation4playerSearch.sport}}</span> 1384 </div> 1385 <!--/State Dropdown--> 1386 </div> 1387 <div class="row"> 1388 <div class="col-12 noPrint text-center"> 1389 <a href ng-click="playerSearch()" class="btn btn-danger btn-md"><i class="fa fa-search" aria-hidden="true"></i> Search</a> 1390 </div> 1391 </div> 1392 <div ng-hide="onPlayerSearch || onHome" class="noPrint"> 1393 <hr> 1394 <ul> 1395 <li>You can search for any player that has been added to an online USSSA roster.</li> 1396 <li>View the roster history of any player. Example <a class="text-danger" href="//PlayerLocker/?gdSport={{sportID}}&PlaID=88">Click Here</a>.</li> 1397 <li>Career stats can now be tracked. Tools are available for each coach to track player stats. 1398 <br /> Those stats will show up on a players individual page.</li> 1399 <li>You can enter partial first or last names. For example : to find "Eddie Kutz" typing "KUT" in last name and "ED" in first name will work.</li> 1400 <li>Why can't I find myself? Your coach has not entered your teams roster online or your name has been mispelled.</li> 1401 </ul> 1402 </div> 1403</div>
1404<script> 1405usssa.controller('playerSearchCtrl', ['$scope', '$rootScope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage', '$window', function($scope, $rootScope, $filter, $http, $location, jsLib, API, storage, $window) { 1406 1407 function init() { 1408 $scope.loading = true; 1409 $scope.onPlayerSearch = document.URL.indexOf('playerSearchResults') > -1; 1410 $scope.onHome = document.URL.indexOf('home') > -1; 1411 $scope.playerSearchParams = { 1412 sport: null 1413 }; 1414 1415 if (jsLib.getVal('firstname') || jsLib.getVal('lastname') || jsLib.getVal('stateID')) { 1416 $scope.playerSearchParams.firstName = jsLib.getVal('firstname'); 1417 $scope.playerSearchParams.lastName = jsLib.getVal('lastname'); 1418 $scope.playerSearchParams.state = jsLib.getVal('stateID') * 1; 1419 $scope.playerSearchParams.sport = jsLib.getSportName(); 1420 } else { 1421 var savedParams = storage.get('playerSearchParams'); 1422 if (savedParams) 1423 $scope.playerSearchParams = savedParams; 1424 } 1425 getStates(); 1426 1427 // if($scope.onHome){ 1428 getSportsWithFolder(); 1429 //} 1430 1431 API.post({ action: 'getBasicEventSearchFieldsV11', sportID: jsLib.getSportID() }, 24 * 3) 1432 .then( 1433 function(data) { 1434 $scope.searchFields = data; 1435 $scope.loading = false; 1436 }, 1437 function(error) { 1438 console.log('error', error); 1439 $scope.loading = false; 1440 $scope.error = true; 1441 } 1442 ); 1443 } 1444 1445 function getStates() { 1446 $scope.loading2 = true; 1447 API.post({ action: 'getStatesNoSplit', gdSport: jsLib.getSportID() }). 1448 then(function(data) { 1449 $scope.states = data; 1450 $scope.loading2 = false; 1451 }); 1452 } 1453 1454 function getSportsWithFolder() { 1455 API.post({ action: 'getSportsWithFolder' }, 24 * 30) 1456 .then( 1457 function(data) { 1458 $scope.sportsWithFolder = data; 1459 if (jsLib.getSportID()) 1460 $scope.playerSearchParams.sport = jsLib.getSportName(); 1461 $scope.loading = false; 1462 }, 1463 function(error) { 1464 console.log('error', error); 1465 $scope.loading = false; 1466 $scope.error = true; 1467 } 1468 ); 1469 1470 } 1471 1472 $scope.playerSearch = function() { 1473 $scope.validation4playerSearch = { 1474 error: false, 1475 messages: [] 1476 }; 1477 1478 if ((!$scope.playerSearchParams.firstName || $scope.playerSearchParams.firstName === '') && (!$scope.playerSearchParams.lastName || $scope.playerSearchParams.lastName === '')) { 1479 $scope.validation4playerSearch.firstName = 'At least one search parameter is required'; 1480 $scope.validation4playerSearch.error = true; 1481 } 1482 1483 if ($scope.onHome) { 1484 1485 if (!$scope.playerSearchParams.sport || $scope.playerSearchParams.sport === '') { 1486 $scope.validation4playerSearch.sport = 'Sport is required'; 1487 $scope.validation4playerSearch.error = true; 1488 } 1489 } 1490 1491 if (!$scope.validation4playerSearch.error) { 1492 1493 var params = 1494 "firstname=" + $scope.playerSearchParams.firstName + 1495 "&lastname=" + $scope.playerSearchParams.lastName + 1496 "&stateID=" + $scope.playerSearchParams.state; 1497 1498 storage.save('playerSearchParams', $scope.playerSearchParams); 1499 location.assign(location.origin + '/' + ($scope.playerSearchParams.sport ? $scope.playerSearchParams.sport : jsLib.getSportName()) + '/playerSearchResults/?' + params); 1500 } 1501 } 1502 1503 init(); 1504}]); 1505</script>
1505 1506 </div> 1507 1508 1509 <div ng-if="currentTab == 'ranking'"> 1510
1511<script src="/js/controllers/ISTSRank1Ctrl.js"></script>
1511 1512<div ng-controller="ISTSRank1Ctrl"> 1513 1514 <h3>Rankings</h3> 1515 <!-- Spinner --> 1516 <loading ng-show="loading"></loading> 1517 <!-- Error --> 1518 <div ng-if="error"> 1519 <div class="alert danger">{{errorMsg}}</div> 1520 </div> 1521 1522 <div class="row marginT20"> 1523 1524 <div ng-show="onHome" class="col-6 col-sm-6 col-md-4" ng-class="{'has-error':validation4rankings.sport, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}"> 1525 <h4 class="text_red" style="border: none;">Sport</h4> 1526 <ui-select ng-model="searchFields.sport" theme="select2" on-select="selectSport2($item)"> 1527 <ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match> 1528 <ui-select-choices repeat="sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'> 1529 <div ng-bind-html="sport.sport | highlight: $select.search"></div> 1530 </ui-select-choices> 1531 </ui-select> 1532 <span class="help-block">{{validation4rankings.sport}}</span> 1533 </div> 1534 1535 <div ng-show="searchFields.sport || !onHome" ng-class="{'has-error':validation4rankings.classID, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}" class="col-6 col-sm-6 col-md-4"> 1536 <h4 class="text_red" style="border: none;">Class</h4> 1537 <ui-select ng-model="searchFields.classID" theme="select2"> 1538 <ui-select-match allow-clear="true" placeholder="Select a Class">{{$select.selected.ClassName}}</ui-select-match> 1539 <ui-select-choices repeat="class.ClassID as class in formData.classes | propsFilter: {ClassName: $select.search}" position='bottom'> 1540 <div ng-bind-html="class.ClassName | highlight: $select.search"></div> 1541 </ui-select-choices> 1542 </ui-select> 1543 <span class="help-block">{{validation4rankings.classID}}</span> 1544 </div> 1545 1546 <div ng-show="searchFields.sport || !onHome" ng-class="{'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}" class="col-6 col-sm-6 col-md-4"> 1547 <h4 class="text_red" style="border: none;">State</h4> 1548 <ui-select ng-model="searchFields.regionID" theme="select2"> 1549 <ui-select-match allow-clear="true" placeholder="State">{{$select.selected.name}}</ui-select-match> 1550 <ui-select-choices repeat="state.value as state in formData.states | propsFilter: {name: $select.search}" position='bottom'> 1551 <div ng-bind-html="state.name | highlight: $select.search"></div> 1552 </ui-select-choices> 1553 </ui-select> 1554 <span class="help-block">{{validation4rankings.state}}</span> 1555 1556 </div> 1557 1558 <div ng-show="searchFields.sport || !onHome" ng-class="{'has-error':validation4rankings.season, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}" class="col-6 col-sm-6 col-md-4"> 1559 <h4 class="text_red" style="border: none;">Season</h4> 1560 <ui-select ng-model="searchFields.seasonID" theme="select2"> 1561 <ui-select-match allow-clear="true" placeholder="Season">{{$select.selected.season_description}}</ui-select-match> 1562 <ui-select-choices repeat="season.season_id as season in formData.seasons | propsFilter: {season_description: $select.search}" position='bottom'> 1563 <div ng-bind-html="season.season_description | highlight: $select.search"></div> 1564 </ui-select-choices> 1565 </ui-select> 1566 <span class="help-block">{{validation4rankings.season}}</span> 1567 </div> 1568 1569 <div ng-show="searchFields.sport || !onHome" ng-class="{'has-error':validation4rankings.rank, 'col-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}" class="col-6 col-sm-6 col-md-4"> 1570 <h4 class="text_red" style="border: none;">Ranking</h4> 1571 <ui-select ng-model="searchFields.rank" theme="select2"> 1572 <ui-select-match allow-clear="true" placeholder="Ranking">{{$select.selected.name}}</ui-select-match> 1573 <ui-select-choices repeat="rank.value as rank in formData.ranks | propsFilter: {name: $select.search}"> 1574 <div ng-bind-html="rank.name | highlight: $select.search"></div> 1575 </ui-select-choices> 1576 </ui-select> 1577 <span class="help-block">{{validation4rankings.rank}}</span> 1578 </div> 1579 <!-- SUBMIT --> 1580 <div class="col-6 col-sm-6 col-md-4 noPrint text-right" style="padding-top:35px" ng-class="onHome? 'col-lg-4 col-xl-4': 'col-lg-3 col-xl-3'"> 1581 <a style="width:100%" href class="margintop20 btn btn-danger btn-md" ng-click="findRankings()">Search <fa icon="search" style="color:#fff"></fa></a> 1582 </div> 1583 </div> 1584 <hr class="marginB20"> 1585</div> 1586 </div> 1587 1588 <div style="margin-top: 36px"> 1589 <div id="snack-video-player"></div> 1590
1590<script> 1591 function loadSnackScript(src) { 1592 const script = document.createElement('script'); 1593 script.src = src; 1594 script.async = true; 1595 const snackvideo = document.getElementById('snack-video-player'); 1596 if (snackvideo) { 1597 snackvideo.appendChild(script); 1598 } 1599 } 1600 1601 if (Math.random() < 0.05) { 1602 loadSnackScript('https://videohb.snack-media.com/config/usssa.com-pubstack.min.js'); 1603 console.log('loading snack player'); 1604 } else { 1605 loadSnackScript('https://live.primis.tech/live/liveView.php?s=118351&schain=1.0,1!snack-media.com,SNM_4050,1'); 1606 console.log('loading primis player'); 1607 } 1608 1609 var $vvv = $vvv || {}; 1610 $vvv.queue = $vvv.queue || []; 1611 $vvv.queue.push(function () { 1612 let snackIsMobile = window.innerWidth < 768; 1613 if (snackIsMobile){ 1614 //console.log("Snack Video Player mobile"); 1615 $vvvInit( 1616 'snack-video-player', 'snackmedia-videoplayer-instream/usssa.com-instream-mobile', [ 1617 'https://1733451806.rsc.cdn77.org/usssa/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48_original.mp4', 1618 'https://1733451806.rsc.cdn77.org/usssa/000d945f-ca65-4ae6-969c-54ca6f689ff0/000d945f-ca65-4ae6-969c-54ca6f689ff0_hd.mp4'], 1619 'companion', 1620 ['https://v11.usssa.net/images/VideoAdPlaceholder_1056x594.jpg' 1621 ]); 1622 } else { 1623 //console.log("Snack Video Player desktop"); 1624 $vvvInit( 1625 'snack-video-player', 'snackmedia-videoplayer-instream/usssa.com-instream', [ 1626 'https://1733451806.rsc.cdn77.org/usssa/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48_original.mp4', 1627 'https://1733451806.rsc.cdn77.org/usssa/000d945f-ca65-4ae6-969c-54ca6f689ff0/000d945f-ca65-4ae6-969c-54ca6f689ff0_hd.mp4'], 1628 'companion', 1629 ['https://v11.usssa.net/images/VideoAdPlaceholder_1056x594.jpg' 1630 ] 1631 ); 1632 } 1633 }); 1634 </script>
1634 1635 </div> 1636</div> 1637 1638 1639 <div id="snack-mrec" class="text-center d-lg-none noPrint pt-3"></div> 1640
1641<script src="/js/controllers/newsCtrl.js"></script>
1641 1642<div class="dvNews marginT15" ng-controller="newsCtrl"> 1643 <loading ng-show="loading"></loading> 1644 <div ng-hide="loading" ng-repeat="sport in newsSports"> 1645 <div id="{{getLeaderboardId($index, false)}}" ng-if="!isMobile && shouldShowLeaderboard($index, false)" class="text-center pt-3"></div> 1646 <div id="{{getLeaderboardId($index, true)}}" ng-if="isMobile && shouldShowLeaderboard($index, true)" class="text-center pt-3"></div> 1647 <div class="row"> 1648 <div class="col-lg-12 no-padding sport-header"> 1649 <h3><span class="title">{{sport.name}} News</span> 1650 <a href="/{{sport.folder}}/news" ng-if="!jsLib.getSportID()"><span class="all">Show All</span></a> 1651 <br class="clearfix"> 1652 </h3> 1653 </div> 1654 </div> 1655 <div ng-class="{'longNewsList': sport.showAll}"> 1656 <loading ng-show="sport.loading"></loading> 1657 <div class="row no-gutters news-item" ng-repeat="news in sport.news" ng-hide="sport.loading"> 1658 <div class="col-lg-3" style="--aspect-ratio: 3/2;"> 1659 <img class="news-item--preview-img" ng-src="{{news.imageUrl}}"> 1660 <div class="news-item--type-overlay" ng-if="shouldShowTypeIcon(news)"> 1661 <i class="fa fa-play"></i> 1662 </div> 1663 </div> 1664 <div class="col-lg-9 pl-3 pt-3 pt-lg-0"> 1665 <a href="/{{jsLib.getSportName(sport.id)}}/newsRead/?id={{news.id}}"> 1666 <h4 ng-bind-html="news.title"></h4> 1667 <p ng-bind-html="jsLib.trustedHtml(news.content)"></p> 1668 </a> 1669 </div> 1670 </div> 1671 </div> 1672 </div> 1673</div> 1674 </div> 1675</div> 1676<div ng-controller="sportHomeCtrl"></div>
1677<script> 1678usssa.controller('sportHomeCtrl', ['pageTitle', function(pageTitle) { 1679 pageTitle.set('Home', true); 1680}]); 1681</script>
1681 1682 1683
1684<script src="/js/directives/u3SocialDirective.js"></script>
1684 1685<!-- Footer --> 1686<div id="footer-v1" class="footer-v1 noPrint"> 1687 <div class="footer"> 1688 1689 1690<div class="container"> 1691 <div class="div-sponsors footer-v1"> 1692 <div class="headline"><h2>National Sponsors</h2></div> 1693 <ul class="sponsors row" style="margin-left: -30px; margin-right: 0;"> 1694 <li class="col"><a class="d-block" href="http://www.demarini.com/en-us/" title="Demarini" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Demarini')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_demarini.jpg" alt="Demarini"></a></li> 1695 <li class="col"><a class="d-block" href="http://www.dudleysports.com/" title="Dudley" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Dudley')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_Dudley.jpg" alt="Dudley"></a></li> 1696 <li class="col"><a class="d-block" href="https://easton.rawlings.com/" title="Easton" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Easton')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_easton.png" alt="Easton"></a></li> 1697 <li class="col"><a class="d-block" href="http://www.slugger.com/" title="Louisville Slugger" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Louisville Slugger')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_louisville.jpg" alt="Louisville Slugger"></a></li> 1698 <li class="col"><a class="d-block" href="https://maruccisports.com/" title="Marucci" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Marucci')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_marucci.jpg" alt="Marucci"></a></li> 1699 1700 <!-- <li class="col"><a class="d-block" href="https://www.dickssportinggoods.com/" title="Dicks" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Dicks')"><img src="https://usssa.com/img/logos/sponsor_dicks.jpg" alt="Dicks"></a></li> --> 1701 </ul> 1702 <ul class="sponsors row" style="margin-left: -30px; margin-right: 0;"> 1703 <!-- <li class="col"><a class="d-block" style="align-items: center; justify-content: center; padding-top: 5%; display: flex !important;" href=" https://www.newbalance.com/" title="New Balance" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'New Balance')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_new_balance.png" alt="New Balance"></a></li> --> 1704 <!-- <li class="col"><a class="d-block" href="http://www.neweracap.com" title="New Era" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'New Era')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_new_era.jpg" alt="New Era"></a></li> --> 1705 <li class="col"><a class="d-block" href="https://miken.rawlings.com/" title="Miken" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Miken')"><img src="/img/logos/sponsor_miken_2021082401.png" alt="Miken"></a></li> 1706 <li class="col"><a class="d-block" href="https://www.rawlings.com/" title="Rawlings" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Rawlings')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_rawlings.jpg" alt="Rawlings"></a></li> 1707 <li class="col"><a class="d-block" style="align-items: center; justify-content: center; display: flex !important; height: 100%;" href="https://signaturepins.com/usssa?lid=JVT" title="Signature Pins" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Signature Pins')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_sig_pins.png" alt="Signature Pins"></a></li> 1708 <li class="col"><a class="d-block " href="http://www.worthsports.com/" title="Worth" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Worth')"><img src="/img/logos/sponsor_worth_2021082401.png" alt="Worth"></a></li> 1709 <li class="col">
1709<a class="d-block" href="https://www.wilson.com/en-us/" title="Wilson" onclick="ga('send', 'event', 'Footer Logo-Clicked', 'Wilson')"><img src="https://v11.usssa.net/images/logos/footer_logos/sponsor_wilson.png" alt="Wilson"></a></li> 1710 </ul> 1711 </div> 1712</div> 1713 1714 <div class="container"> 1715 <div> 1716 <div class="headline"><h2>Social Media</h2></div> 1717 <div class="social_items"> 1718 <u3-social></u3-social> 1719 </div> 1720 </div> 1721 <div class="row" style="margin-top: 15px"> 1722 <!-- Latest --> 1723 <div class="col-md-8 md-margin-bottom-40"> 1724 <div class="posts"> 1725 <div class="headline"><h2>Useful Links</h2></div> 1726 <div class="row"> 1727 <div class="col-6"> 1728 <ul class="list-unstyled link-list"> 1729 <!-- original --> 1730 <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li> 1731 <li><a href="https://support.usssa.com"><i class="fa fa-angle-right"></i> Help Center</a></li> 1732 <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li> 1733 <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li> 1734 <li><a href="https://usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li> 1735 <li><a href="https://storage.googleapis.com/prod-mainsite-docs/v11/general/ByLaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li> 1736 <li><a href="https://usssa.com/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li> 1737 <!--PROD <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li> 1738 <li><a href="https://hq.usssa.com/faqs"><i class="fa fa-angle-right"></i> Questions</a></li> 1739 <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li> 1740 <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li> 1741 <li><a href="https://hq.usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li> 1742 <li><a href="https://www.usssa.com/docs/general/Bylaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li> 1743 <li><a href="/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li> --> 1744 <!-- QA <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li> 1745 <li><a href="https://dev-next.usssa.com/faqs"><i class="fa fa-angle-right"></i> Questions</a></li> 1746 <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li> 1747 <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li> 1748 <li><a href="https://dev-next.usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li> 1749 <li><a href="https://www.usssa.com/docs/general/Bylaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li> 1750 <li><a href="/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li> QA--> 1751 </ul> 1752 </div> 1753 <div class="col-6"> 1754 <ul class="list-unstyled link-list"> 1755 <li><a href="https://usssa.com/abusemolestation"><i class="fa fa-angle-right"></i> Abuse/ Molestation</a></li> 1756 <li><a href="https://usssa.com/athlete-safety"><i class="fa fa-angle-right"></i> Athlete Safety</a></li> 1757 <li><a href="https://usssa.com/terms-of-use"><i class="fa fa-angle-right"></i> Terms of Use</a></li> 1758 <li><a href="https://usssa.com/privacy"><i class="fa fa-angle-right"></i> Privacy</a></li> 1759 <li><a href="https://usssa.com/jobs"><i class="fa fa-angle-right"></i> Careers</a></li> 1760 <li><a href="https://storage.googleapis.com/prod-mainsite-docs/v11/general/Policy%26Procedures.pdf"><i class="fa fa-angle-right"></i> Policies & Procedures</a></li> 1761 <li><a href="https://usssa.com/fastpitch_events"><i class="fa fa-angle-right"></i> USSSA Fastpitch Events</a></li> 1762 </ul> 1763 </div> 1764 </div> 1765 </div> 1766 </div> 1767 <!-- End Latest --> 1768 1769 <!-- Address --> 1770 <div class="col-md-4 map-img md-margin-bottom-40"> 1771 <div class="headline"><h2>United States Specialty Sports Association</h2></div> 1772 <address class="md-margin-bottom-40"> 1773 <i class="fa fa-home" aria-hidden="true"></i> <span class="lbl-adress">5800 Stadium Pkwy<br/>Melbourne, FL 32940</span> 1774 </address> 1775 </div> 1776 <!-- End Address --> 1777 </div> 1778 </div> 1779 </div><!--/footer--> 1780 1781 <div class="copyrightV11"> 1782 <div class="container"> 1783 <div class="row"> 1784 <div class="col-md-6 text-left xs-text-center"> 1785 <p> 1786 1996 - 2026 © All Rights Reserved. 1787 </p> 1788 </div> 1789 <!-- Social Links --> 1790 <div class="col-md-6 text-right xs-text-center"> 1791 <ul class="social-icons"> 1792 <li><a href="https://www.facebook.com/playusssa/" data-original-title="Facebook" class="rounded-x social_facebook"></a></li> 1793 <li><a href="http://twitter.com/usssa" data-original-title="Twitter" class="rounded-x social_twitter"></a></li> 1794 <li><a href="https://www.youtube.com/user/usssatoday" data-original-title="YouTube" class="rounded-x social_youtube"></a></li> 1795 <li><a href="https://www.instagram.com/playusssa/" data-original-title="Instagram" class="rounded-x social_instagram"></a></li> 1796 </ul> 1797 </div> 1798 <!-- End Social Links --> 1799 </div> 1800 </div> 1801 </div><!--/copyright--> 1802</div> 1803 </div> 1804 1805 </form> 1806 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 1806-1807
1806 1807 <script async src="https://www.googletagmanager.com/gtag/js?id=
1807UA-97468231-8
vendor: 14 bytes, lines 1807-1808
1807"></script> 1808
1808<script> 1809
vendor: 144 bytes, lines 1809-1813
1809window.dataLayer = window.dataLayer || []; 1810 function gtag(){dataLayer.push(arguments);} 1811 gtag('js', new Date()); 1812 1813 gtag('config', '
1813UA-97468231-8
vendor: 6 bytes, lines 1813-1814
1813'); 1814
1814</script>
1814 1815 1816 1817
1817<script type="text/javascript"> 1818 window.onUsersnapCXLoad = function(api) { api.init(); } 1819 var script = document.createElement('script'); 1820 script.defer = 1; 1821 script.src = 'https://widget.usersnap.com/global/load/e34b6a1b-cba7-4a37-8fa0-90cc8d03faee?onload=onUsersnapCXLoad'; 1822 document.getElementsByTagName('head')[0].appendChild(script); 1823 </script>
1823 1824 1825 <!-- SNACK MEDIA SCRIPTS --> 1826 <div id="snack-sticky"></div> 1827</body> 1828</html> 1829
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.