PageSourceSearch

https://usssa.com/home/

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.