PageSourceSearch

https://usssa.com/home/

html usssa.com collected 2026-09-24 09:31:16 UTC 91,868 bytes, 1,823 lines download raw bytes

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>
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="LtuzJflBqoNz6TUEuu3r5qGsMji7k0HPMbui/XV5TZ/Hm0Zmt5LbHD4XsSGmkyNXuai/CRvXTbyzXiR9/DJ5aVPR6Z2vDGrQ6dHES6/lTXRARUfr0h5IIjSWWAFInQESVCwvTeHWR3Tv5Cm8QM3I3hg7x5DsXK/JnrREZRpUx84=" />
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>
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));
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) {
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
666        if (window.location.hostname === 'localhost') {
667
668			$("#frm").attr('action', 'http://localhost:22227/stripePreparePayment');
669
670		}
671        else if (window.location.hostname === 'qa.usssa.com') {
672
673			$("#frm").attr('action', 'https://qa.usssa.com/stripePreparePayment');
674
675		}
676        else if (window.location.hostname === 'prod-lns-mainsite.usssa.com') {
677
678			$("#frm").attr('action', 'https://prod-lns-mainsite.usssa.com/stripePreparePayment');
679
680		}
681        else {
682
683			$("#frm").attr('action', 'https://www.usssa.com/stripePreparePayment');
684
685		}
686
687		$(".aspNetHidden").remove();
688		$("#frm").submit();
689	}
690
691	function cleanItem(item) {
692		var result = "";
693		if (item === null) {
694			console.info(item + ' is null ===');
695			return result;
696		} else if (item == null) {
697			console.info(item + ' is null ==');
698			return result;
699		} else if (item == '') {
700			console.info(item + ' is \'\'');
701			return result;
702		} else if (item == "") {
703			console.info(item + ' is \'\'');
704			return result;
705		} else if (item === undefined) {
706			console.info(item + ' is undefined');
707			return result;
708		} else if (item == "\"\"") {
709			console.info(item + ' is ""');
710			return null;
711		} else {
712			console.info(item + ' is not null');
713			return item.toString();
714		}
715	}
716
717	function checkout(purchase) {
718		$("#customerid").val(purchase.customerid || '');
719		$("#transamount").val(purchase.transamount || '');
720		$("#transdesc").val(purchase.transdesc || '');
721		$("#trans_type_id").val(purchase.trans_type_id || '');
722		$("#org_id").val(purchase.org_id || '');
723		$("#team_id").val(purchase.team_id || '');
724		$("#tournament_id").val(purchase.tournament_id || '');
725		$("#season_id").val(purchase.season_id || '');
726		$("#cartIDs").val(purchase.cartIDs || '');
727		$("#return_URL").val(purchase.return_URL || '');
728		$("#paymentMemo").val(purchase.paymentMemo || '');
729		$("#category").val(purchase.category || '');
730
731		if (window.location.hostname === 'localhost') {
732			$("#frm").attr('action', 'http://localhost:22227/stripePreparePayment');
733		} else if (window.location.hostname === 'qa.usssa.com') {
734			$("#frm").attr('action', 'https://qa.usssa.com/stripePreparePayment');
735		} else if (window.location.hostname === 'prod-lns-mainsite.usssa.com') {
736			$("#frm").attr('action', 'https://prod-lns-mainsite.usssa.com/stripePreparePayment');
737		} else {
738			$("#frm").attr('action', 'https://www.usssa.com/stripePreparePayment');
739		}
740
741		$(".aspNetHidden").remove();
742		$("#frm").submit();
743	}
744</script>
744
745
746<div ng-controller="ShoppingCartWidgetController">
747	<div style="display:none">
748		<input type="hidden" id="customerid" name="customerid" value="" />
749		<input type="hidden" id="transamount" name="transamount" value="" />
750		<input type="hidden" id="transdesc" name="transdesc" value="" />
751		<input type="hidden" id="trans_type_id" name="trans_type_id" value="" />
752		<input type="hidden" id="org_id" name="org_id" value="" />
753		<input type="hidden" id="team_id" name="team_id" value="" />
754		<input type="hidden" id="tournament_id" name="tournament_id" value="" />
755		<input type="hidden" id="season_id" name="season_id" value="" />
756		<input type="hidden" id="cartIDs" name="cartIDs" value="" />
757		<input type="hidden" id="return_URL" name="return_URL" value="" />
758		<input type="hidden" id="paymentMemo" name="paymentMemo" value="" />
759		<input type="hidden" id="from" name="from" value="v11" />
760		<input type="hidden" id="category" name="category" value="" />
761	</div>
762	
763</div>
764
765				</div>
766			</div>
767
768			<div class="d-none d-lg-block mt-2" style="flex-grow: 1">
769				
770
771<style>
772.watch-live-container {
773	background-color: #cccccc;
774	background-size: 100% 100%;
775	background-image: url('/img/usssalive-cta-ad.jpg');
776	width: 300px;
777	height: 100px;
778}
779.watch-live-container .watch-live-link {
780	display: inline-block;
781	width: 100%;
782	height: 100%;
783}
784
785</style>
786
787<div class="watch-live-container">
788	<a class="watch-live-link" href="https://www.usssalive.com">&nbsp;</a>
789</div>
790
791<hr class="d-block d-md-none">
792				<div class="sticky-wrapper position-sticky">
793					<div style="margin:16px auto 10px auto; text-align:center; width:100%; overflow:hidden; min-height: 250px;">
794    					<div id="snack-gutter-top"></div>
795					</div>
796				</div>
797			</div>
798
799		
800		<div class="sideBarFooter d-block d-md-none"></div>
801	</div>
802</div>
803<style>
804	.mobile-sideBar-ad {
805		display: none;
806	}
807	@media (max-width: 768px) {
808		.sidebar-ad {
809			display: none;
810		}
811		.mobile-sideBar-ad {
812			display: block;
813			margin: 10px auto 0px auto;
814			text-align: center;
815			width: 100%;
816			overflow: hidden;
817			min-height: 50px;
818		}
819	}
820
821	.sticky-wrapper {
822		top: 20px;
823		height: 600px;
824	}
825</style>
826<!-- /Sidebar -->
827
828	<div class="col dvContent">
829					
830
831<script src="/js/controllers/superEventSearchCtrl.js"></script>
831
832<style>
833.leaderboard-ad {
834	display: block;
835}
836@media (max-width: 768px) {
837		.leaderboard-ad {
838			display: none;
839		}
840	}
841</style>
842<div class="leaderboard-ad text-center" style="padding-top:15px">
843	<div style="margin:10px auto 10px auto; text-align:center; width:100%; overflow:hidden; min-height: 90px;">
844    	<div id="snack-desktop-top-leaderboard"></div>
845	</div>
846</div>
847<div ng-controller="superEventSearchCtrl" class="superSearch">
848	<div ng-if="!program" class="bg-white searchWidget ng-cloak noPrint">
849		
850		<div class="marginB15" ng-if="!onEventSearch">
851			<h4 class="h4 hh hh-dk-gray">Quick Search</h4>
852			<ul class="nav nav-tabs">
853				<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>
854        		<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>
855        		<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>
856        		<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>
857        		<li class="nav-item" ng-if="searchSystem != 'scori'"><a class="nav-link" title="Points Race" href ng-click="pointsRaceClicked()">Points Race</a></li>
858			</ul>
859		</div>
860	</div>		
861
862
863		<h4 ng-if="onEventSearch" class="h4 hh hh-dk-gray noPrint">Event Search Parameters</h4>
864		<hr class="marginB15"> 
865		<div class="noPrint" ng-if="currentTab == 'event'">
866			<h3 ng-if="onHome">Event S<a href ng-click="hiddenFields()" style="color: #dd2109;cursor: text;">e</a>arch</h3>
867			<div ng-if="searchSystem != 'scori'" class="row">
868			<!-- Sport dropdown -->
869				
870				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="inSpecificSport == 32">
871					<h4 class="text_red" style="border: none;">Sport:</h4>					
872					<ui-select ng-disabled="loadingSports" ng-model="searchParams.sportID" theme="select2" on-select="selectSport($item)" close-on-select="true" skip-focusser="true">
873						<ui-select-match allow-clear="true" placeholder="{{loadingSports ? 'Loading Sports...' : 'Select a sport 2 start' }}">{{$select.selected.name}}</ui-select-match>
874						<ui-select-choices repeat="sport in searchFields.sports | propsFilter: {name: $select.search}" position='bottom'>
875							<div ng-bind-html="sport.name | highlight: $select.search"></div>
876						</ui-select-choices>
877					</ui-select>
878				</div>
879			<!-- Season dropdown -->
880				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchParams.sportID">
881					<h4 class="text_red" style="border: none;">Season:</h4>
882					<ui-select ng-disabled="loadingSeasons" ng-model="searchParams.seasonID" theme="select2" on-select="selectSeason($item)" close-on-select="true" skip-focusser="true">
883						<ui-select-match allow-clear="true" placeholder="{{loadingSeasons ? 'Loading Seasons...' : 'Select a season' }}">{{$select.selected.name}}</ui-select-match>
884						<ui-select-choices repeat="season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'>
885							<div ng-bind-html="season.name | highlight: $select.search"></div>
886						</ui-select-choices>
887					</ui-select>
888				</div>
889			<!-- Age dropdown -->
890				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.ages">
891					<h4 class="text_red" style="border: none;">Age:</h4>					
892					<ui-select multiple ng-model="searchParams.age" theme="select2" close-on-select="true" skip-focusser="true">
893						<ui-select-match allow-clear="true" placeholder="All ages">{{$item.name}}</ui-select-match>
894						<ui-select-choices repeat="age in searchFields.ages | propsFilter: {name: $select.search}" position='bottom'>
895							<div ng-bind-html="age.name | highlight: $select.search"></div>
896						</ui-select-choices>
897					</ui-select>
898				</div>
899			<!-- Period dropdown -->
900				<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">
901						<h4 class="text_red" style="border: none;">Start Date:</h4>
902						<ui-select ng-model="searchParams.period" theme="select2">
903								<ui-select-match allow-clear="true" placeholder="Pick a start date">{{$select.selected.name}}</ui-select-match>
904								<ui-select-choices group-by="'group'" repeat="period in searchFields.searchPeriods | propsFilter: {name: $select.search}" position='bottom'>
905										<div ng-bind-html="period.name | highlight: $select.search"></div>
906								</ui-select-choices>
907						</ui-select>
908				</div>
909			<!-- Class dropdown -->
910				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.
910classes">
911					<h4 class="text_red" style="border: none;">Class:</h4>					
912					<ui-select multiple ng-model="searchParams.class" theme="select2" close-on-select="true" skip-focusser="true">
913						<ui-select-match allow-clear="true" placeholder="All classes">{{$item.name}}</ui-select-match>
914						<ui-select-choices repeat="class in searchFields.classes | propsFilter: {name: $select.search}" position='bottom'>
915							<div ng-bind-html="class.name | highlight: $select.search"></div>
916						</ui-select-choices>
917					</ui-select>
918				</div>
919			<!-- Stature dropdown -->
920				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.statures">
921					<h4 class="text_red" style="border: none;">Stature:</h4>					
922					<ui-select multiple ng-model="searchParams.stature" theme="select2" close-on-select="true" skip-focusser="true">
923						<ui-select-match allow-clear="true" placeholder="All statures">{{$item.name}}</ui-select-match>
924						<ui-select-choices repeat="stature in searchFields.statures | propsFilter: {name: $select.search}" position='bottom'>
925							<div ng-bind-html="stature.name | highlight: $select.search"></div>
926						</ui-select-choices>
927					</ui-select>
928				</div>
929			<!-- State dropdown -->
930				<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">
931					<h4 class="text_red" style="border: none;">State:</h4>					
932					<ui-select ng-model="searchParams.region" theme="select2" on-select="selectState($item)">
933						<ui-select-match allow-clear="true" placeholder="Select a state">{{$select.selected.name}}</ui-select-match>
934						<ui-select-choices repeat="state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'>
935							<div ng-bind-html="state.name | highlight: $select.search"></div>
936						</ui-select-choices>
937					</ui-select>
938				</div>
939			<!-- Director dropdown -->
940				<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">
941					<h4 class="text_red" style="border: none;">Director:</h4>					
942					<ui-select ng-model="searchParams.director" theme="select2">
943						<ui-select-match allow-clear="true" placeholder="Select a director!">{{$select.selected.name}}</ui-select-match>
944						<ui-select-choices group-by="'state'" repeat="director in searchFields.directors | propsFilter: {name: $select.search}" position='bottom'>
945							<div ng-bind-html="director.name | highlight: $select.search"></div>
946						</ui-select-choices>
947					</ui-select>
948				</div>
949			<!-- Selected State Directors dropdown -->
950				<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">
951					<h4 class="text_red" style="border: none;">Director:</h4>					
952					<ui-select ng-model="searchParams.director" ng-disabled="searchFields.selectedStateDirectors.length == 0" theme="select2">
953						<ui-select-match allow-clear="true" placeholder="{{searchFields.selectedStateDirectors.length > 0 ? 'Select a director' : 'No directors found'}}">{{$select.selected.name}}</ui-select-match>
954						<ui-select-choices repeat="director in searchFields.selectedStateDirectors | propsFilter: {name: $select.search}" position='bottom'>
955							<div ng-bind-html="director.name | highlight: $select.search"></div>
956						</ui-select-choices>
957					</ui-select>
958				</div>
959			<!-- Zipcode -->
960				<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">
961					<h4 class="text_red" style="border: none;">Zip Code:</h4>					
962					<input autocomplete="off" type="text" id="zipCode" ng-model="searchParams.zipCode" placeholder="Enter a zip code" class="form-control">
963				</div>
964			<!-- Miles dropdown -->
965				<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">
966					<h4 class="text_red" style="border: none;">Range:</h4>					
967					<ui-select ng-model="searchParams.zipRadius" theme="select2">
968						<ui-select-match allow-clear="true" placeholder="Within range of">{{$select.selected.name}}</ui-select-match>
969						<ui-select-choices repeat="mile in searchFields.miles | propsFilter: {name: $select.search}" position='bottom'>
970							<div ng-bind-html="mile.name | highlight: $select.search"></div>
971						</ui-select-choices>
972					</ui-select>
973				</div>
974			<!-- Selected State Parks dropdown -->
975				<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">
976					<h4 class="text_red" style="border: none;">Park:</h4>					
977					<ui-select ng-model="searchParams.park" theme="select2">
978						<ui-select-match allow-clear="true" placeholder="Select a park">{{$select.selected.name}}</ui-select-match>
979						<ui-select-choices repeat="park in searchFields.selectedStateParks | propsFilter: {name: $select.search}" position='bottom'>
980							<div ng-bind-html="park.name | highlight: $select.search"></div>
981						</ui-select-choices>
982					</ui-select>
983				</div>				
984			<!-- EventID 4 BJ -->
985				<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">
986					<h4 class="text_red" style="border: none;">EventID:</h4>					
987					<input autocomplete="off" type="text" id="eventID" ng-model="searchParams.eventID4BJ" placeholder="Event ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}">
988				</div>
989			<!-- DivisionID 4 BJ -->
990				<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">
991					<h4 class="text_red" style="border: none;">DivisionID:</h4>					
992					<input autocomplete="off" type="text" id="divisionID" ng-model="searchParams.divisionID4BJ" placeholder="Division ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}">
993				</div>
994			</div>
995			<div ng-if="searchSystem == 'scori'" class="row">
996			<!-- Sport dropdown -->
997				
998				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="inSpecificSport == 32">
999					<h4 class="text_red" style="border: none;">Sport:</h4>					
1000					<ui-select ng-disabled="loadingSports" ng-model="searchParams.sportID" theme="select2" on-select="selectSport($item)" close-on-select="true" skip-focusser="true">
1001						<ui-select-match allow-clear="true" placeholder="{{loadingSports ? 'Loading Sports...' : 'Select a sport 2 start' }}">{{$select.selected.name}}</ui-select-match>
1002						<ui-select-choices repeat="sport in searchFields.sports | propsFilter: {name: $select.search}" position='bottom'>
1003							<div ng-bind-html="sport.name | highlight: $select.search"></div>
1004						</ui-select-choices>
1005					</ui-select>
1006				</div>
1007			<!-- Season dropdown -->
1008				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchParams.sportID">
1009					<h4 class="text_red" style="border: none;">Season:</h4>
1010					<ui-select ng-disabled="loadingSeasons" ng-model="searchParams.seasonID" theme="select2" on-select="selectSeason($item)" close-on-select="true" skip-focusser="true">
1011						<ui-select-match allow-clear="true" placeholder="{{loadingSeasons ? 'Loading Seasons...' : 'Select a season' }}">{{$select.selected.name}}</ui-select-match>
1012						<ui-select-choices repeat="season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'>
1013							<div ng-bind-html="season.name | highlight: $select.search"></div>
1014						</ui-select-choices>
1015					</ui-select>
1016				</div>
1017			<!-- Stature dropdown -->
1018				<div class="col-xl-4 col-lg-4 col-md-4 col-sm-4 col-6" ng-hide="!searchFields.statures">
1019					<h4 class="text_red" style="border: none;">Stature:</h4>					
1020					<ui-select multiple ng-disabled="loadingDropdowns" ng-model="searchParams.stature" theme="select2" close-on-select="true" skip-focusser="true">
1021						<ui-select-match allow-clear="true" placeholder="{{loadingDropdowns ? 'Loading...' : 'All statures'}}">{{$item.name}}</ui-select-match>
1022						<ui-select-choices repeat="stature in searchFields.statures | propsFilter: {name: $select.search}" position='bottom'>
1023							<div ng-bind-html="stature.name | highlight: $select.search"></div>
1024						</ui-select-choices>
1025					</ui-select>
1026				</div>
1027				<div class="w-100">
1028				</div>
1029			<!-- Zipcode -->
1030				<div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" close-on-select="true" skip-focusser="true">
1031					<h4 class="text_red" style="border: none;">Zip Code:</h4>					
1032					<input autocomplete="off" type="text" id="zipCode" ng-model="searchParams.zipCode" placeholder="Enter a zip code" class="form-control">
1033				</div>
1034			<!-- Miles dropdown -->
1035				<div class="col-xl-2 col-lg-2 col-md-2 col-sm-2 col-6" close-on-select="true" skip-focusser="true">
1036					<h4 class="text_red" style="border: none;">Range:</h4>					
1037					<ui-select ng-model="searchParams.zipRadius" theme="select2">
1038						<ui-select-match allow-clear="true" placeholder="Within range of">{{$select.selected.name}}</ui-select-match>
1039						<ui-select-choices repeat="mile in searchFields.miles | propsFilter: {name: $select.search}" position='bottom'>
1040							<div ng-bind-html="mile.name | highlight: $select.search"></div>
1041						</ui-select-choices>
1042					</ui-select>
1043				</div>
1044			<!-- State dropdown -->
1045				<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">
1046					<h4 class="text_red" style="border: none;">State:</h4>					
1047					<ui-select ng-model="searchParams.state" theme="select2">
1048						<ui-select-match allow-clear="true" placeholder="Select a state">{{$select.selected.name}}</ui-select-match>
1049						<ui-select-choices repeat="state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'>
1050							<div ng-bind-html="state.name | highlight: $select.search"></div>
1051						</ui-select-choices>
1052					</ui-select>
1053				</div>
1054			<!-- Org dropdown -->
1055				<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">
1056					<h4 class="text_red" style="border: none;">Organization:</h4>					
1057					<ui-select ng-model="searchParams.organization" theme="select2">
1058						<ui-select-match allow-clear="true" placeholder="Select an organization">{{$select.selected.name}}</ui-select-match>
1059						<ui-select-choices repeat="org in searchFields.organizations | propsFilter: {name: $select.search}" position='bottom'>
1060							<div ng-bind-html="org.name | highlight: $select.search"></div>
1061						</ui-select-choices>
1062					</ui-select>
1063				</div>
1064			</div>
1065
1066			<!-- Search/Reset Buttons -->
1067			<div class="row">
1068				<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">
1069					<a href ng-click="clearAll()" class="btn btn-warning" style="width: 100%">Reset Form</a><br>			
1070				</div>
1071				<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">
1072					<button ng-disabled="!(searchParams.sportID && searchParams.seasonID)" ng-click="searchEvents($event)" class="btn btn-primary" style="width: 100%">Search</button><br>
1073				</div>
1074				
1075				<div class="col-12 alert alert-danger" ng-show="error" style="padding-left: 20px;">{{error}}</div>
1076			</div>
1077		</div>
1078		
1079
1080
1081		<div ng-if="currentTab == 'team'">
1082			
1083
1084
1085
1086<div ng-controller="teamSearchCtrl">
1087	<h3 ng-if="onHome">Team S<a href ng-click="hiddenFields()" style="color: #dd2109;cursor: text;">e</a>arch</h3>
1088	
1089		
1090	<div class="row marginT15 marginB15">
1091
1092	<!--Sport Dropdown-->
1093      <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}">
1094			<h4 class="text_red" style="border: none;">Sport</h4>
1095   		<ui-select ng-model="teamSearchParams.sport" theme="select2" on-select="selectSport($item)">
1096				<ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match>
1097				<ui-select-choices repeat="sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'>
1098					<div ng-bind-html="sport.sport | highlight: $select.search"></div>
1099				</ui-select-choices>
1100			</ui-select>
1101			<span class="help-block">{{validation4teamSearch.sport}}</span>				
1102		</div>
1103
1104	<!--Team Name-->
1105		<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}">
1106		   <h4 class="text_red" style="border: none;">Team Name</h4>
1107			<input ng-model="teamSearchParams.teamName" class="form-control" type="search" placeholder="Enter a Team Name Here...">
1108			<span class="help-block">{{validation4teamSearch.teamName}}</span>
1109		</div>
1110
1111	<!--Class Dropdown-->
1112		<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}">				
1113			<h4 class="text_red" style="border: none;">Class</h4>
1114			<ui-select ng-model="teamSearchParams.class" theme="select2">
1115				<ui-select-match allow-clear="true" placeholder="Select a Class">{{$select.selected.ClassName}}</ui-select-match>
1116				<ui-select-choices repeat="class.ClassID as class in teamClasses | propsFilter: {ClassName: $select.search}" position='bottom'>
1117					<div ng-bind-html="class.ClassName | highlight: $select.search"></div>
1118				</ui-select-choices>
1119			</ui-select>									
1120		</div>
1121      <!--/Class Dropdown-->
1122
1123    <!--State Dropdown-->
1124      <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}">				
1125			<h4 class="text_red" style="border: none;">State</h4>
1126   		<ui-select ng-model="teamSearchParams.region" theme="select2">
1127				<ui-select-match allow-clear="true" placeholder="Select a State">{{$select.selected.name}}</ui-select-match>
1128				<ui-select-choices repeat="state.value as state in searchFields.states | propsFilter: {name: $select.search}" position='bottom'>
1129					<div ng-bind-html="state.name | highlight: $select.search"></div>
1130				</ui-select-choices>
1131			</ui-select>									
1132		</div>
1133      <!--/State Dropdown-->					
1134
1135    <!--Season Dropdown-->
1136		<div class="col-6 col-sm-6 col-md-4" ng-show="teamSearchParams.sport || !onHome" ng-class="{'has-error':validation4teamSearch.season, 'col
1136-lg-4 col-xl-4': onHome,'col-lg-3 col-xl-3':!onHome}">
1137		   <h4 class="text_red" style="border: none;">Season</h4>
1138			<ui-select ng-model="teamSearchParams.season" theme="select2" on-select="selectSeason($item)">
1139				<ui-select-match allow-clear="true" placeholder="Select a Season">{{$select.selected.name}}</ui-select-match>
1140				<ui-select-choices repeat="season.value as season in searchFields.seasons | propsFilter: {name: $select.search}" position='bottom'>
1141					<div ng-bind-html="season.name | highlight: $select.search"></div>
1142				</ui-select-choices>
1143			</ui-select>
1144			<span class="help-block">{{validation4teamSearch.season}}</span>			    				
1145		</div>
1146      <!--/Season Dropdown-->
1147
1148    <!-- TeamID 4 BJ -->
1149		<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">
1150			<h4 class="text_red" style="border: none;">TeamID:</h4>					
1151			<input type="text" id="teamID" ng-model="teamSearchParams.teamID4BJ" placeholder="Team ID" class="form-control" ng-class="{'hiddenField': fields4BJ == 'false'}">
1152		</div>
1153	
1154
1155		<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'">
1156			<a style="width:100%" href ng-click="teamSearch()" class="btn btn-danger btn-sm"><i class="fa fa-search" aria-hidden="true"></i>&nbsp;Search</a>
1157		</div>
1158      		
1159	</div>
1160	
1161	
1162</div>
1163
1164<script>
1165	
1166	usssa.controller('teamSearchCtrl', ['$scope', '$rootScope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage','$window', function($scope, $rootScope, $filter, $http, $location, jsLib, API, storage,$window) {
1167	
1168		function init() {
1169			$scope.loading = true;
1170			$scope.onHome = document.URL.indexOf('home')>-1;
1171			$scope.fields4BJ = false;
1172
1173
1174			$scope.teamSearchParams ={};
1175
1176			if(jsLib.getVal('teamname') || jsLib.getVal('classID') || jsLib.getVal('stateID') || jsLib.getVal('seasonID')){
1177				$scope.teamSearchParams.teamName = jsLib.getVal('teamname');
1178				$scope.teamSearchParams.class = jsLib.getVal('classID')*1;
1179				$scope.teamSearchParams.state = jsLib.getVal('stateID')*1;
1180				$scope.teamSearchParams.region = jsLib.getVal('regionID')*1;
1181				$scope.teamSearchParams.season = jsLib.getVal('seasonID');
1182			} else {
1183				var savedParams = storage.get('teamSearchParams');
1184				if(savedParams){
1185					$scope.teamSearchParams = savedParams;
1186					if ($scope.teamSearchParams.sport)
1187						loadClasses();
1188				}
1189			}
1190
1191			if($scope.onHome){
1192				//console.log('$scope.onHome', $scope.onHome);
1193				getSportsWithFolder();
1194			} else{
1195				loadClasses();
1196			}
1197
1198			if(!$scope.onHome){
1199				getSearchFields(jsLib.getSportID());
1200			}
1201
1202			$scope.availableSearchParams = [
1203	          { key: "name", name: "Team Name", placeholder: "Team Name..." },
1204	          // { key: "class", name: "Class", placeholder: "Class..." , restrictToSuggestedValues: true, suggestedValues: ['Berlin', 'London', 'Paris']},
1205	          { key: "city", name: "City", placeholder: "City..." , suggestedValues: [{name:'Berlin', value:1}, {name:'London', value:2}, {name:'Paris', value:3}]},
1206	          { key: "country", name: "Country", placeholder: "Country..." },
1207	          { key: "emailAddress", name: "E-Mail", placeholder: "E-Mail...", allowMultiple: true },
1208	          { key: "job", name: "Job", placeholder: "Job..." }
1209	        ];
1210		}
1211
1212		$scope.hiddenFields = function(){
1213			$scope.fields4BJ = true;
1214		}
1215
1216		$scope.selectSport = function($item) {
1217			$scope.teamSearchParams.class = null;
1218			$scope.fields4BJ = false;
1219
1220			loadClasses();
1221			if($scope.onHome){
1222				getSearchFields($scope.teamSearchParams.sport.sportID);
1223			}
1224
1225		};
1226
1227		function getSearchFields(_sportID){
1228			API.post({ action: 'getBasicEventSearchFieldsV11', sportID: _sportID}, 24*3)
1229				.then(
1230					function(data) {					
1231						$scope.searchFields = data;
1232						$scope.loading = false;
1233						$scope.teamSearchParams.season = data.seasons[1].value;
1234					},
1235					function(error) {
1236						console.log('error', error);
1237						$scope.loading = false;
1238						$scope.error = true;
1239					}
1240				);
1241		}
1242
1243		function getSportsWithFolder(){
1244			API.post({ action: 'getSportsWithFolder'})
1245				.then(
1246					function(data) {
1247						$scope.sportsWithFolder = data;
1248						$scope.loading = false;
1249					},
1250					function(error) {
1251						console.log('error', error);
1252						$scope.loading = false;
1253						$scope.error = true;
1254					}
1255			);
1256		}
1257
1258		$scope.teamSearch = function(){
1259
1260			if($scope.teamSearchParams.teamID4BJ){
1261				
1262				location.assign('/' + 'teamHome/?teamID=' + $scope.teamSearchParams.teamID4BJ);
1263			
1264			} else {
1265  		
1266				$scope.validation4teamSearch = {
1267					error: false,
1268					messages: []
1269				};
1270
1271				if($scope.onHome){
1272
1273					if (!$scope.teamSearchParams.sport || $scope.teamSearchParams.sport === '') {
1274						$scope.validation4teamSearch.sport = 'Sport is required';
1275						$scope.validation4teamSearch.error = true;
1276					}	
1277				}				
1278
1279
1280				if ((!$scope.teamSearchParams.teamName || $scope.teamSearchParams.teamName === '') &&  (!$scope.teamSearchParams.class || $scope.teamSearchParams.class === '') && (!$scope.teamSearchParams.state || $scope.teamSearchParams.state === '')){
1281					$scope.validation4teamSearch.teamName = 'At least one search parameter is required';
1282					$scope.validation4teamSearch.error = true;
1283				}		
1284				
1285				if (!$scope.teamSearchParams.season || $scope.teamSearchParams.season === '') {
1286					$scope.validation4teamSearch.season = 'Season is required';
1287					$scope.validation4teamSearch.error = true;
1288				}
1289
1290				if (!$scope.validation4teamSearch.error) {
1291					var params = "teamname=" + $scope.teamSearchParams.teamName +
1292									"&regionID=" + $scope.teamSearchParams.region +
1293									"&classID=" + $scope.teamSearchParams.class +
1294									"&seasonID=" + $scope.teamSearchParams.season;
1295
1296					storage.save('teamSearchParams', $scope.teamSearchParams);
1297					location.assign(location.origin + '/' + ($scope.teamSearchParams.sport ? $scope.teamSearchParams.sport.folder : jsLib.getSportName()) + '/TeamSearchResults/?' + params)
1298				}
1299			}  		
1300	  	}
1301
1302	  	function loadClasses() {
1303			if ($location.absUrl().indexOf("gsl") > -1)
1304				loadGSLClasses();
1305			else {
1306				$scope.loading = true;
1307				console.log('sport',$scope.teamSearchParams.sport);
1308				API.post({ action: 'StatsGetClass',gdSport:($scope.teamSearchParams.sport ? $scope.teamSearchParams.sport.sportID : jsLib.getSportID())})
1309					.then(function(data) {
1310			        	$scope.loading = false;
1311						$scope.teamClasses = data;
1312					},
1313					function(error) {
1314						$scope.loading = false;
1315						$scope.error = true;
1316				});
1317			}
1318		}
1319
1320		function loadGSLClasses() {
1321			$scope.loading = true;
1322			API.post({ action: 'StatsGetClass',gsl_only:1,gdSport:34})
1323				.then(function(data) {
1324		        	$scope.loading = false;
1325					$scope.teamClasses = data;
1326				},
1327				function(error) {
1328					$scope.loading = false;
1329					$scope.error = true;
1330			});
1331		}
1332
1333		init();
1334	}]);
1335
1336</script>
1336			
1337		</div>
1338
1339
1340		<div ng-if="currentTab == 'player'">
1341			
1342
1343<div ng-controller="playerSearchCtrl">
1344	<h3 class="noPrint">Player Search</h3>
1345	<div class="row marginT15 marginB15 noPrint">
1346		<!--Player Name-->
1347		<div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3" ng-class="{'has-error':validation4playerSearch.firstName}">
1348			<h4 class="text_red" style="border: none;">First Name</h4>
1349			<input ng-model="playerSearchParams.firstName" class="form-control" type="search" placeholder="First Name">
1350			<span class="help-block">{{validation4playerSearch.firstName}}</span>
1351		</div>
1352		<!--Player Last 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;">Last Name</h4>
1355			<input ng-model="playerSearchParams.lastName" class="form-control" type="search" placeholder="Last Name">
1356			
1357		</div>
1358		<!--State Dropdown-->
1359		<div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3">
1360			<h4 class="text_red" style="border: none;">State</h4>
1361			<ui-select ng-model="playerSearchParams.state" theme="select2">
1362				<ui-select-match allow-clear="true" placeholder="Select a State">{{$select.selected.StateName}}</ui-select-match>
1363				<ui-select-choices repeat="state.StateID as state in states | propsFilter: {StateName: $select.search}" position='bottom'>
1364					<div ng-bind-html="state.StateName | highlight: $select.search"></div>
1365				</ui-select-choices>
1366			</ui-select>
1367			
1368		</div>
1369		<div class="col-6 col-sm-6 col-md-3 col-lg-3 col-xl-3" ng-class="{'has-error':validation4playerSearch.sport}">
1370			<h4 class="text_red" style="border: none;">Sport</h4>
1371			<ui-select ng-model="playerSearchParams.sport" theme="select2">
1372				<ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match>
1373				<ui-select-choices repeat="sport.folder as sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'>
1374					<div ng-bind-html="sport.sport | highlight: $select.search"></div>
1375				</ui-select-choices>
1376			</ui-select>
1377			<span class="help-block">{{validation4playerSearch.sport}}</span>
1378		</div>
1379		<!--/State Dropdown-->
1380	</div>
1381	<div class="row">
1382		<div class="col-12 noPrint text-center">
1383			<a href ng-click="playerSearch()" class="btn btn-danger btn-md"><i class="fa fa-search" aria-hidden="true"></i>&nbsp;Search</a>
1384		</div>
1385	</div>
1386	<div ng-hide="onPlayerSearch || onHome" class="noPrint">
1387		<hr>
1388		<ul>
1389			<li>You can search for any player that has been added to an online USSSA roster.</li>
1390			<li>View the roster history of any player. Example <a class="text-danger" href="//PlayerLocker/?gdSport={{sportID}}&PlaID=88">Click Here</a>.</li>
1391			<li>Career stats can now be tracked. Tools are available for each coach to track player stats.
1392				<br /> Those stats will show up on a players individual page.</li>
1393			<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>
1394			<li>Why can't I find myself? Your coach has not entered your teams roster online or your name has been mispelled.</li>
1395		</ul>
1396	</div>
1397</div>
1398<script>
1399usssa.controller('playerSearchCtrl', ['$scope', '$rootScope', '$filter', '$http', '$location', 'jsLib', 'API', 'storage', '$window', function($scope, $rootScope, $filter, $http, $location, jsLib, API, storage, $window) {
1400
1401	function init() {
1402		$scope.loading = true;
1403		$scope.onPlayerSearch = document.URL.indexOf('playerSearchResults') > -1;
1404		$scope.onHome = document.URL.indexOf('home') > -1;
1405		$scope.playerSearchParams = {
1406			sport: null
1407		};
1408
1409		if (jsLib.getVal('firstname') || jsLib.getVal('lastname') || jsLib.getVal('stateID')) {
1410			$scope.playerSearchParams.firstName = jsLib.getVal('firstname');
1411			$scope.playerSearchParams.lastName = jsLib.getVal('lastname');
1412			$scope.playerSearchParams.state = jsLib.getVal('stateID') * 1;
1413			$scope.playerSearchParams.sport = jsLib.getSportName();
1414		} else {
1415			var savedParams = storage.get('playerSearchParams');
1416			if (savedParams)
1417				$scope.playerSearchParams = savedParams;
1418		}
1419		getStates();
1420
1421		// if($scope.onHome){
1422		getSportsWithFolder();
1423		//}
1424
1425		API.post({ action: 'getBasicEventSearchFieldsV11', sportID: jsLib.getSportID() }, 24 * 3)
1426			.then(
1427				function(data) {
1428					$scope.searchFields = data;
1429					$scope.loading = false;
1430				},
1431				function(error) {
1432					console.log('error', error);
1433					$scope.loading = false;
1434					$scope.error = true;
1435				}
1436			);
1437	}
1438
1439	function getStates() {
1440		$scope.loading2 = true;
1441		API.post({ action: 'getStatesNoSplit', gdSport: jsLib.getSportID() }).
1442		then(function(data) {
1443			$scope.states = data;
1444			$scope.loading2 = false;
1445		});
1446	}
1447
1448	function getSportsWithFolder() {
1449		API.post({ action: 'getSportsWithFolder' }, 24 * 30)
1450			.then(
1451				function(data) {
1452					$scope.sportsWithFolder = data;
1453					if (jsLib.getSportID())
1454						$scope.playerSearchParams.sport = jsLib.getSportName();
1455					$scope.loading = false;
1456				},
1457				function(error) {
1458					console.log('error', error);
1459					$scope.loading = false;
1460					$scope.error = true;
1461				}
1462			);
1463
1464	}
1465
1466	$scope.playerSearch = function() {
1467		$scope.validation4playerSearch = {
1468			error: false,
1469			messages: []
1470		};
1471
1472		if ((!$scope.playerSearchParams.firstName || $scope.playerSearchParams.firstName === '') && (!$scope.playerSearchParams.lastName || $scope.playerSearchParams.lastName === '')) {
1473			$scope.validation4playerSearch.firstName = 'At least one search parameter is required';
1474			$scope.validation4playerSearch.error = true;
1475		}
1476
1477		if ($scope.onHome) {
1478
1479			if (!$scope.playerSearchParams.sport || $scope.playerSearchParams.sport === '') {
1480				$scope.validation4playerSearch.sport = 'Sport is required';
1481				$scope.validation4playerSearch.error = true;
1482			}
1483		}
1484
1485		if (!$scope.validation4playerSearch.error) {
1486
1487			var params =
1488				"firstname=" + $scope.playerSearchParams.firstName +
1489				"&lastname=" + $scope.playerSearchParams.lastName +
1490				"&stateID=" + $scope.playerSearchParams.state;
1491
1492			storage.save('playerSearchParams', $scope.playerSearchParams);
1493			location.assign(location.origin + '/' + ($scope.playerSearchParams.sport ? $scope.playerSearchParams.sport : jsLib.getSportName()) + '/playerSearchResults/?' + params);
1494		}
1495	}
1496
1497	init();
1498}]);
1499</script>
1499
1500		</div>
1501
1502
1503		<div ng-if="currentTab == 'ranking'">
1504			
1505<script src="/js/controllers/ISTSRank1Ctrl.js"></script>
1505
1506<div ng-controller="ISTSRank1Ctrl">
1507
1508	<h3>Rankings</h3>
1509	<!-- Spinner -->
1510	<loading ng-show="loading"></loading>
1511	<!-- Error -->
1512	<div ng-if="error">
1513		<div class="alert danger">{{errorMsg}}</div>
1514	</div>						
1515		
1516	<div class="row marginT20">
1517		
1518		<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}">
1519			<h4 class="text_red" style="border: none;">Sport</h4>
1520   			<ui-select ng-model="searchFields.sport" theme="select2" on-select="selectSport2($item)">
1521				<ui-select-match allow-clear="true" placeholder="Select a Sport">{{$select.selected.sport}}</ui-select-match>
1522				<ui-select-choices repeat="sport in sportsWithFolder | propsFilter: {sport: $select.search}" position='bottom'>
1523					<div ng-bind-html="sport.sport | highlight: $select.search"></div>
1524				</ui-select-choices>
1525			</ui-select>
1526			<span class="help-block">{{validation4rankings.sport}}</span>				
1527		</div>
1528		
1529		<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">
1530		   <h4 class="text_red" style="border: none;">Class</h4>
1531		   <ui-select ng-model="searchFields.classID" theme="select2">
1532				<ui-select-match allow-clear="true" placeholder="Select a Class">{{$select.selected.ClassName}}</ui-select-match>
1533				<ui-select-choices repeat="class.ClassID as class in formData.classes | propsFilter: {ClassName: $select.search}" position='bottom'>
1534					<div ng-bind-html="class.ClassName | highlight: $select.search"></div>
1535				</ui-select-choices>
1536			</ui-select>
1537			<span class="help-block">{{validation4rankings.classID}}</span>				
1538		</div>
1539		
1540		<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">
1541		   <h4 class="text_red" style="border: none;">State</h4>
1542			<ui-select ng-model="searchFields.regionID" theme="select2">
1543				<ui-select-match allow-clear="true" placeholder="State">{{$select.selected.name}}</ui-select-match>
1544				<ui-select-choices repeat="state.value as state in formData.states | propsFilter: {name: $select.search}" position='bottom'>
1545					<div ng-bind-html="state.name | highlight: $select.search"></div>
1546				</ui-select-choices>
1547			</ui-select>
1548			<span class="help-block">{{validation4rankings.state}}</span>			
1549
1550		</div>
1551		
1552		<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">
1553		   <h4 class="text_red" style="border: none;">Season</h4>
1554			<ui-select ng-model="searchFields.seasonID" theme="select2">
1555				<ui-select-match allow-clear="true" placeholder="Season">{{$select.selected.season_description}}</ui-select-match>
1556				<ui-select-choices repeat="season.season_id as season in formData.seasons | propsFilter: {season_description: $select.search}" position='bottom'>
1557					<div ng-bind-html="season.season_description | highlight: $select.search"></div>
1558				</ui-select-choices>
1559			</ui-select>
1560			<span class="help-block">{{validation4rankings.season}}</span>				
1561		</div>
1562		
1563		<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">
1564		   <h4 class="text_red" style="border: none;">Ranking</h4>
1565			<ui-select ng-model="searchFields.rank" theme="select2">
1566				<ui-select-match allow-clear="true" placeholder="Ranking">{{$select.selected.name}}</ui-select-match>
1567				<ui-select-choices repeat="rank.value as rank in formData.ranks | propsFilter: {name: $select.search}">
1568					<div ng-bind-html="rank.name | highlight: $select.search"></div>
1569				</ui-select-choices>
1570			</ui-select>
1571			<span class="help-block">{{validation4rankings.rank}}</span>				
1572		</div>
1573		<!-- SUBMIT -->
1574		<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'">
1575			<a style="width:100%" href class="margintop20 btn btn-danger btn-md" ng-click="findRankings()">Search &nbsp;<fa icon="search" style="color:#fff"></fa></a>
1576		</div>
1577	</div>
1578	<hr class="marginB20">
1579</div>			
1580		</div>
1581
1582		<div style="margin-top: 36px">
1583			<div id="snack-video-player"></div>
1584			
1584<script>
1585				function loadSnackScript(src) {
1586					const script = document.createElement('script');
1587					script.src = src;
1588					script.async = true;
1589					const snackvideo = document.getElementById('snack-video-player');
1590					if (snackvideo) {
1591						snackvideo.appendChild(script);
1592					}
1593				}
1594				
1595				if (Math.random() < 0.05) {
1596					loadSnackScript('https://videohb.snack-media.com/config/usssa.com-pubstack.min.js');
1597					console.log('loading snack player');
1598				} else {
1599					loadSnackScript('https://live.primis.tech/live/liveView.php?s=118351&schain=1.0,1!snack-media.com,SNM_4050,1');
1600					console.log('loading primis player');
1601				}
1602
1603				var $vvv = $vvv || {};
1604				$vvv.queue = $vvv.queue || [];
1605				$vvv.queue.push(function () {
1606					let snackIsMobile = window.innerWidth < 768;
1607					if (snackIsMobile){
1608						//console.log("Snack Video Player mobile");
1609						$vvvInit(
1610							'snack-video-player', 'snackmedia-videoplayer-instream/usssa.com-instream-mobile', [
1611								'https://1733451806.rsc.cdn77.org/usssa/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48_original.mp4',
1612								'https://1733451806.rsc.cdn77.org/usssa/000d945f-ca65-4ae6-969c-54ca6f689ff0/000d945f-ca65-4ae6-969c-54ca6f689ff0_hd.mp4'],
1613								'companion', 
1614								['https://v11.usssa.net/images/VideoAdPlaceholder_1056x594.jpg'
1615							]);
1616					} else { 
1617						//console.log("Snack Video Player desktop");
1618						$vvvInit(
1619							'snack-video-player', 'snackmedia-videoplayer-instream/usssa.com-instream', [
1620								'https://1733451806.rsc.cdn77.org/usssa/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48/dea2ea68-ee36-4b41-9c6d-b47a4a2f7a48_original.mp4',
1621								'https://1733451806.rsc.cdn77.org/usssa/000d945f-ca65-4ae6-969c-54ca6f689ff0/000d945f-ca65-4ae6-969c-54ca6f689ff0_hd.mp4'],
1622								'companion', 
1623								['https://v11.usssa.net/images/VideoAdPlaceholder_1056x594.jpg'
1624							]
1625						);
1626					}
1627				});
1628			</script>
1628
1629		</div>
1630</div>
1631
1632		
1633		<div id="snack-mrec" class="text-center d-lg-none noPrint pt-3"></div>
1634		
1635<script src="/js/controllers/newsCtrl.js"></script>
1635
1636<div class="dvNews marginT15" ng-controller="newsCtrl">
1637	<loading ng-show="loading"></loading>
1638	<div ng-hide="loading" ng-repeat="sport in newsSports">
1639		<div id="{{getLeaderboardId($index, false)}}" ng-if="!isMobile && shouldShowLeaderboard($index, false)" class="text-center pt-3"></div>
1640		<div id="{{getLeaderboardId($index, true)}}" ng-if="isMobile && shouldShowLeaderboard($index, true)" class="text-center pt-3"></div>
1641		<div class="row">
1642			<div class="col-lg-12 no-padding sport-header">
1643				<h3><span class="title">{{sport.name}} News</span>
1644				<a href="/{{sport.folder}}/news" ng-if="!jsLib.getSportID()"><span class="all">Show All</span></a>
1645				<br class="clearfix">
1646			</h3>
1647			</div>
1648		</div>
1649		<div ng-class="{'longNewsList': sport.showAll}">
1650			<loading ng-show="sport.loading"></loading>
1651			<div class="row no-gutters news-item" ng-repeat="news in sport.news" ng-hide="sport.loading">
1652				<div class="col-lg-3" style="--aspect-ratio: 3/2;">
1653					<img class="news-item--preview-img" ng-src="{{news.imageUrl}}">
1654					<div class="news-item--type-overlay" ng-if="shouldShowTypeIcon(news)">
1655						<i class="fa fa-play"></i>
1656					</div>
1657				</div>
1658				<div class="col-lg-9 pl-3 pt-3 pt-lg-0">
1659					<a href="/{{jsLib.getSportName(sport.id)}}/newsRead/?id={{news.id}}">
1660						<h4 ng-bind-html="news.title"></h4>
1661						<p ng-bind-html="jsLib.trustedHtml(news.content)"></p>
1662					</a>
1663				</div>
1664			</div>
1665		</div>
1666	</div>
1667</div>
1668	</div>
1669</div>
1670<div ng-controller="sportHomeCtrl"></div>
1671<script>
1672usssa.controller('sportHomeCtrl', ['pageTitle', function(pageTitle) {
1673	pageTitle.set('Home', true);
1674}]);
1675</script>
1675
1676			
1677
1678<script src="/js/directives/u3SocialDirective.js"></script>
1678
1679<!-- Footer -->
1680<div id="footer-v1" class="footer-v1 noPrint">
1681    <div class="footer">
1682        
1683
1684<div class="container">
1685	<div class="div-sponsors footer-v1">
1686	    <div class="headline"><h2>National Sponsors</h2></div>
1687	    <ul class="sponsors row" style="margin-left: -30px; margin-right: 0;">
1688	        <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>
1689	        <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>
1690	        <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>
1691	        <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>
1692	        <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>
1693	        
1694	        <!-- <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> -->
1695	    </ul>
1696	    <ul class="sponsors row" style="margin-left: -30px; margin-right: 0;">
1697	       	<!-- <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> -->
1698	        <!-- <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> -->
1699	        <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>
1700			<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>
1701	        <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>
1702	        <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>
1703	        <li class="col">
1703<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>
1704	    </ul>
1705	</div>
1706</div>
1707
1708        <div class="container">
1709            <div>
1710                <div class="headline"><h2>Social Media</h2></div>
1711                <div class="social_items">
1712                    <u3-social></u3-social>
1713                </div>
1714            </div>
1715            <div class="row" style="margin-top: 15px">
1716                <!-- Latest -->
1717                <div class="col-md-8 md-margin-bottom-40">
1718                    <div class="posts">
1719                        <div class="headline"><h2>Useful Links</h2></div>
1720                        <div class="row">
1721                            <div class="col-6">
1722                                <ul class="list-unstyled link-list">
1723                                <!-- original -->
1724                                  <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li>
1725                                  <li><a href="https://support.usssa.com"><i class="fa fa-angle-right"></i> Help Center</a></li>
1726                                  <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li>
1727                                  <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li>
1728                                  <li><a href="https://usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li>
1729                                  <li><a href="https://storage.googleapis.com/prod-mainsite-docs/v11/general/ByLaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li>
1730                                  <li><a href="https://usssa.com/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li>
1731                                 <!--PROD  <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li>
1732                                  <li><a href="https://hq.usssa.com/faqs"><i class="fa fa-angle-right"></i> Questions</a></li>
1733                                  <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li>
1734                                  <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li>
1735                                  <li><a href="https://hq.usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li>
1736                                  <li><a href="https://www.usssa.com/docs/general/Bylaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li>
1737                                  <li><a href="/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li> -->
1738                                  <!-- QA <li><a href="http://usssatoday.com"><i class="fa fa-angle-right"></i> News</a></li>
1739                                  <li><a href="https://dev-next.usssa.com/faqs"><i class="fa fa-angle-right"></i> Questions</a></li>
1740                                  <li><a href="http://media.usssa.com"><i class="fa fa-angle-right"></i> Media Center</a></li>
1741                                  <li><a href="http://hof.usssa.com/"><i class="fa fa-angle-right"></i> Hall of Fame</a></li>
1742                                  <li><a href="https://dev-next.usssa.com/contact"><i class="fa fa-angle-right"></i> Contact</a></li>
1743                                  <li><a href="https://www.usssa.com/docs/general/Bylaws.pdf"><i class="fa fa-angle-right"></i> Bylaws</a></li>
1744                                  <li><a href="/baseball_events"><i class="fa fa-angle-right"></i> USSSA Baseball Events</a></li>  QA-->
1745                                </ul>
1746                            </div>
1747                            <div class="col-6">
1748                                <ul class="list-unstyled link-list">
1749                                 <li><a href="https://usssa.com/abusemolestation"><i class="fa fa-angle-right"></i> Abuse/ Molestation</a></li>
1750                                  <li><a href="https://usssa.com/athlete-safety"><i class="fa fa-angle-right"></i> Athlete Safety</a></li>
1751                                  <li><a href="https://usssa.com/terms-of-use"><i class="fa fa-angle-right"></i> Terms of Use</a></li>
1752                                  <li><a href="https://usssa.com/privacy"><i class="fa fa-angle-right"></i> Privacy</a></li>
1753                                  <li><a href="https://usssa.com/jobs"><i class="fa fa-angle-right"></i> Careers</a></li>
1754                                  <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>
1755                                  <li><a href="https://usssa.com/fastpitch_events"><i class="fa fa-angle-right"></i> USSSA Fastpitch Events</a></li>
1756                                </ul>
1757                            </div>
1758                        </div>
1759                    </div>
1760                </div>
1761                <!-- End Latest -->
1762
1763                <!-- Address -->
1764                <div class="col-md-4 map-img md-margin-bottom-40">
1765                    <div class="headline"><h2>United States Specialty Sports Association</h2></div>
1766                    <address class="md-margin-bottom-40">
1767                        <i class="fa fa-home" aria-hidden="true"></i> <span class="lbl-adress">5800 Stadium Pkwy<br/>Melbourne, FL 32940</span>
1768                    </address>
1769                </div>
1770                <!-- End Address -->
1771            </div>
1772        </div>
1773    </div><!--/footer-->
1774
1775    <div class="copyrightV11">
1776        <div class="container">
1777            <div class="row">
1778                <div class="col-md-6 text-left xs-text-center">
1779                    <p>
1780                        1996 - 2026 &copy; All Rights Reserved.
1781                    </p>
1782                </div>
1783                <!-- Social Links -->
1784                <div class="col-md-6 text-right xs-text-center">
1785                    <ul class="social-icons">
1786                        <li><a href="https://www.facebook.com/playusssa/" data-original-title="Facebook" class="rounded-x social_facebook"></a></li>
1787                        <li><a href="http://twitter.com/usssa" data-original-title="Twitter" class="rounded-x social_twitter"></a></li>
1788                        <li><a href="https://www.youtube.com/user/usssatoday" data-original-title="YouTube" class="rounded-x social_youtube"></a></li>
1789                        <li><a href="https://www.instagram.com/playusssa/" data-original-title="Instagram" class="rounded-x social_instagram"></a></li>
1790                    </ul>
1791                </div>
1792                <!-- End Social Links -->
1793            </div>
1794        </div>
1795    </div><!--/copyright-->
1796</div>
1797		</div>
1798		
1799	</form>
1800	<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 1800-1801
1800
1801	<script async src="https://www.googletagmanager.com/gtag/js?id=
1801UA-97468231-8
vendor: 14 bytes, lines 1801-1802
1801"></script>
1802	
1802<script>
1803	  
vendor: 144 bytes, lines 1803-1807
1803window.dataLayer = window.dataLayer || [];
1804	  function gtag(){dataLayer.push(arguments);}
1805	  gtag('js', new Date());
1806	  
1807	  gtag('config', '
1807UA-97468231-8
vendor: 6 bytes, lines 1807-1808
1807');
1808	
1808</script>
1808
1809	
1810
1811	
1811<script type="text/javascript">
1812		window.onUsersnapCXLoad = function(api) { api.init(); }
1813		var script = document.createElement('script');
1814		script.defer = 1;
1815		script.src = 'https://widget.usersnap.com/global/load/e34b6a1b-cba7-4a37-8fa0-90cc8d03faee?onload=onUsersnapCXLoad';
1816		document.getElementsByTagName('head')[0].appendChild(script);
1817	</script>
1817
1818
1819	<!-- SNACK MEDIA SCRIPTS -->
1820	<div id="snack-sticky"></div>
1821</body>
1822</html>
1823

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.