PageSourceSearch

https://www.brooksee.com/accounts/login?next=/

html brooksee.com collected 2026-10-01 15:08:24 UTC 39,139 bytes, 885 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en"sta>
3  <head>
4    <meta charset="utf-8" />
5    <meta property="og:image" content="https://www.brooksee.com/files/bee/imgs/facebook_image.jpg"/>
6    <meta property="og:title" content="Brooksee"/>
7    <meta property="og:description" content="We do Endurance Events. Check out the fast and beautiful REVEL Marathon/Half Marathon Race Series."/>
8    <meta property="og:site_name" content="Brooksee"/>
9    <meta property="og:url"       content="https://www.brooksee.com"/>
10    <meta property="og:type"      content="website" />
11    <meta property="fb:app_id"    context="" />
12    <meta http-equiv="X-UA-Compatible" content="IE=edge">
13    <link rel="stylesheet" href="/files/css/normalize.css" />
14    <link rel="stylesheet" href="/files/bee/css/master2.css" />
15    <!--
15<script src="https://code.jquery.com/jquery-1.11.0.min.js"></script>
15-->
16    <link href="/files/js/jquery-ui-1.10.3.custom/css/smoothness/jquery-ui-1.10.3.custom.min.css" rel="stylesheet">
17    <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic' rel='stylesheet' type='text/css'>
18    <link href='/files/fonts/aleo.css' rel='stylesheet' type='text/css'>
19    <link rel="stylesheet" href="https://use.typekit.net/sxx8ssb.css"> <!--Proxima Nova -->
20    
20<script src="/files/js/jquery-1.11.1.min.js"></script>
20
21    
21<script type="text/javascript" src="/files/js/jquery-ui-1.10.3.custom/js/jquery-ui-1.10.3.custom.min.js"></script>
21
22    
22<script src="/files/js/jquery.ui.touch-punch.min.js"></script>
22
23    
23<script type="text/javascript" src="/files/js/jquery.colorbox-min.js"></script>
23
24    <link rel="stylesheet" type="text/css" href="/files/css/colorbox.css">
25
26    <link rel="shortcut icon" href="/files/bee/imgs/favicon.ico" />
27    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
28    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400" rel="stylesheet">
29
30    <title> Brooksee</title>
31    
32    
33    
34
35<!-- Facebook Pixel Code -->
36<script>
vendor: 426 bytes, lines 36-45
36
37  !function(f,b,e,v,n,t,s)
38  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
39  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
40  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
41  n.queue=[];t=b.createElement(e);t.async=!0;
42  t.src=v;s=b.getElementsByTagName(e)[0];
43  s.parentNode.insertBefore(t,s)}(window, document,'script',
44  'https://connect.facebook.net/en_US/fbevents.js');
45  fbq('init', '
45525290401179405
vendor: 34 bytes, lines 45-46
45');
46  fbq('track', 'PageView');
47</script>
47
48<noscript><img height="1" width="1" style="display:none"
49  src="https://www.facebook.com/tr?id=525290401179405&ev=PageView&noscript=1"
50/></noscript>
51<!-- End Facebook Pixel Code -->
52
53<!-- Global site tag (gtag.js) - Google Ads: 1008471620 -->
vendor: 69 bytes, lines 53-54
53
54    <script async src="https://www.googletagmanager.com/gtag/js?id=
54AW-1008471620
vendor: 17 bytes, lines 54-55
54"></script>
55    
55<script>
56      
vendor: 148 bytes, lines 56-59
56window.dataLayer = window.dataLayer || [];
57      function gtag(){dataLayer.push(arguments);}
58      gtag('js', new Date());
59      gtag('config', '
59AW-1008471620
vendor: 9 bytes, lines 59-60
59');
60    
60</script>
60
61<style>
62#slideout .menu a {
63  color: #4d4d4d;
64  text-decoration: none;
65  padding: 5px 0;
66  width: 100%;
67  display: flex;
68  align-items: center;
69}
70#slideout .menu li {
71  padding: 10px 20px;
72  display: flex; 
73  align-items: center;
74}
75#slideout .menu a:hover {
76    background-color: #00aba363;
77    color: #0B1D46;
78}
79#slideout .menu {
80    margin: 0; 
81    padding: 0;
82}
83#slideout .menu li p {
84    margin: 0px;
85    padding-left: 10px;
86    font-size: 1.4rem;
87    
88}
89#slideout {
90    position: absolute; 
91    width: 30%; 
92    top:-100%; 
93    left:0px; 
94    transition: top 0.5s; 
95    background-color: white;
96    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3), 0 2px 5px rgba(0, 0, 0, 0.25);
97}
98.menu-list-container {
99    display: flex; 
100    flex-direction: column;
101}
102.cart-container {
103    display: flex; 
104    align-items: center; 
105    background-color: #00ABA3; 
106    padding: 10px 0px 10px 20px;
107}
108.cart-container img {
109    width: 20px; 
110    height: 20px;
111}
112.cart-container p {
113    margin: 0; 
114    padding-left: 15px;
115    font-size: 1.4rem;
116}
117.authenticated-user {
118    background-color: #0B1D46; 
119    padding: 20px 0 10px 0;
120}
121.user-name {
122    margin: 0px; 
123    display: flex; 
124    padding-left: 20px;
125}
126.user-name span, .logout-container span{
127    padding-left: 10px;
128}
129.user-email {
130    font-size: 0.8em; 
131    padding-top: 10px; 
132    padding-left: 60px;
133}
134.logout-container {
135    display: flex; 
136    align-items: center; 
137    padding-left: 20px;
138    font-size: 1.4rem;
139}
140.authenticated-user a {
141    color: white; 
142    font-size: 1.4rem;
143    display: flex;
144}
145.login-container {
146    padding-left: 20px; 
147    display: flex; 
148    align-items: center; 
149    font-size: 1.4rem;
150}
151#hamb{
152    position: absolute;
153    left: 2rem;
154    z-index: 10;
155    flex-direction: column;
156    justify-content: space-between;
157    display: flex;
158    width: 30px;
159    height: 23px;
160    transition: all 0.5s ease-out;
161    cursor: pointer;
162    z-index: 100;
163}
164#hamb .bar {
165    width: 30px;
166    height: 3px;
167    background-color: #0B1D46;
168    border-radius: 10px;
169    transition: all 0.5s ease-out;
170    display: block;
171    cursor: pointer;
172}
173#hamb, #hamb.close {
174    top: 25%;
175}
176#hamb.close {
177    transform: rotate(180deg);
178    cursor: pointer;
179    pointer-events: all;
180}
181#hamb.close .bar:nth-child(1) {
182    transform: rotate(45deg) translate(5px, 3px);
183}
184#hamb.close .bar:nth-child(2) {
185    opacity: 0;
186}
187#hamb.close .bar:nth-child(3) {
188    transform: rotate(-45deg) translate(11px, -8px);
189}
190@media only screen and (max-width: 1300px) {
191    #slideout {
192        width: 40%;
193    }
194}
195
196@media only screen and (max-width: 800px) {
197    #slideout {
198        width: 100%;
199    }
200    #hamb .bar {
201        width: 28px;
202    }
203    #hamb {
204        left: 0.75rem;
205    }
206    #slideout-menu li {
207        padding: 5px 20px;
208    }
209}
210@media only screen and (max-width: 350px) {
211    #hamb {
212        left: 0.5rem;
213    }
214    #hamb, #hamb.close {
215        top: 30%;
216    }
217    #hamb .bar {
218        width: 25px;
219    }
220}
221@media (hover: hover) {
222    .user-name span:hover, .logout-container span:hover{
223        transform: translateY(-2px);
224    }
225}
226</style>
227  </head>
228  
229  <body>
230    
231    <div data-role="page" id="page" style="display: flex; flex-direction: column; height: 100vh;">
232      <div style='position: relative; text-align: center; background-color: white; box-shadow: 0 -6px 10px 5px rgba(0,0,0,0.5); z-index:2;'>
233        <div id="hamb">
234            <span class="bar"></span>
235            <span class="bar"></span>
236            <span class="bar"></span>
237        </div>
238        <!--<img id='hamb' style='cursor: pointer; position: absolute; top: 20%; left: 5px' src="https://brookseeevents.s3.amazonaws.com/bee/2019/albums/hamburger.png" />-->
239        <a href="https://www.brooksee.com"><img style="padding: 10px 0" src="https://brookseeevents.s3.amazonaws.com/bee/2023/albums/BrookseeColor_web.png" width="275px" /></a>
240      </div>
241      <div id="content" style="z-index: 0; position: relative">
242	
243<!--<div class="row" id="subpage_header">
244  <div class="row_content">
245    <div class="row_inner">
246      <h1></h1>
247    </div>
248  </div>
249</div>-->
250
251<div class="row" id="nav2">
252  <div class="row_content">
253    <div class="row_inner">
254      
255    </div>
256  </div>
257</div>
258
259<div class="row">
260  <div class="row_content">
261    <div class="row_inner accounts" id="subpage">
262      <div id="subpage_inner">
263	
264
265<div id="login_form">
266    
267    
268    <form method="post" action="https://www.brooksee.com/accounts/login">
269      <fieldset>
270	<legend>Login</legend>
271	<input type='hidden' name='csrfmiddlewaretoken' value='6uxv67e7KG5FNVGakj85xCzn0dnkecoU' />
272	<table class="table_form">
273	  <tr>
274	    <th><label for="id_username">Email</label></th>
275	    <td><input id="id_username" type="text" name="username" maxlength="100" /></td>
276	  </tr>
277	  <tr>
278	    <th><label for="id_password">Password</label></th>
279	    <td><input id="id_password" type="password" name="password" maxlength="4096" /></td>
280	  </tr>
281	</table>
282	<p>
283	  <div class="button_bar">
284	    <input type="submit" value="Login" />
285	  </div>
286	</p>
287	<input type="hidden" name="next" value="/" />
288      </fieldset>
289      <p>
290	<a href="https://www.brooksee.com/accounts/password/reset">Forgot Username or Password</a>
291      </p>
292    </form>
293</div>
294
295
296      </div>
297    </div>
298  </div>
299</div>
300
301
302
303
304      </div>
305      <div id="footer" style="margin: 0px">
306
307
308<div class="row">
309  <div class="row_content">
310    <div class="row_inner">
311      <div class="col" id="announcement_list" style="width: auto;">
312      <img src="https://brookseeevents.s3.amazonaws.com/bee/2023/albums/BrookseeWhite_web.png" alt="Brooksee" />
313        <p id="announcement">Join the announcement list:</p>
314        <form id="subscribe" method="get" action="https://www.brooksee.com/subscribe2">
315          <input type="text" name="email" placeholder="Email Address"><br>
316          <input type="hidden" name="list_name" value="announcement">
317          <select name="which">
318            <option value="rev">REVEL Events</option>
319            <option value="pdx">Portland Marathon</option>
320            <option value="mes">Mesa Marathon</option>
321            <option value="lvm">Las Vegas Marathon</option>
322          </select>
323          <button class="button" style="float: none !important;">Submit</button>
324        </form>
325      </div>
326      <div class="col">
327      <div class="col bottom_nav" style="margin-top: 0px">
328        <ul class="nav_footer">
329          <li><a href="https://www.brooksee.com/jobs">Jobs</a></li>
330          <li><a href="https://www.brooksee.com/help">Contact Us </a></li>
331        </ul>
332      </div>
333      <div class="col bottom_nav" style="margin-top: 0px">
334        <ul class="nav_footer">
335          <li><a href="https://portlandmarathon.com">Portland Marathon</a></li>
336          <li><a href="https://mesamarathon.com">Mesa Marathon</a></li>
337          <li><a href="https://phxmarathon.com">Phoenix Marathon</a></li>
338          <li><a href="https://vegasmarathon.com">Las Vegas Marathon</a></li>
339          <li><a href="https://www.runrevel.com">REVEL Race Series</a></li>
340          <li><a href="https://timing.brooksee.com">Laurel Timing</a></li>
341          <!--<li><a href="https://www.brooksee.com/tst">Twenty Six Two Coaching</a></li>-->
342          <!--<li><a href="/stf/register">Staff Marathon</a></li>-->
343        </ul>
344      </div>
345      <div class="col bottom_nav" style="margin-top: 0px">
346        <ul class="nav_footer">
347          <li><a href="https://www.brooksee.com/terms">Terms of use</a></li>
348          <li><a href="https://www.brooksee.com/privacy">Privacy Policy</a></li>
349        </ul>
350      </div>
351      </div>
352      <p id="copyright" style="text-align: left">&copy; Brooksee 2026</p>
353    </div>
354  </div>
355</div>
356
357	
358      </div>
359    </div>
360    <div id='slideout'>
361      <div class="menu-list-container"> 
362          <ul class='menu'>
363             <a href="/">
364                <li>
365                    <img src="https://brookseeevents.s3.amazonaws.com/bee/2023/albums/favicon_web.png" style="height: 30px; width: 30px;" />
366                    <p>Home</p>
367                </li>
368            </a>
369            <a href="/blog">
370                <li>
371                    <svg xmlns="http://www.w3.org/2000/svg" width="30" height="21" viewBox="0 0 24 24" fill="none" stroke="#0B1D46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V8l-6-6z"/><path d="M14 3v5h5M16 13H8M16 17H8M10 9H8"/></svg>
372                    <p>News</p>
373                </li>
374            </a>
375            <a href="/jobs">
376                <li>
377                   <svg xmlns="http://www.w3.org/2000/svg" width="30" height="20" viewBox="0 0 24 24" fill="none" stroke="#0b1d46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87"></path><path d="M16 3.13a4 4 0 0 1 0 7.75"></path></svg>
378                   <p>Jobs</p>
379                </li>
380            </a>
381            <a href="/training/coaching">
382                <li>
383                    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="30" height="40" viewBox="0 0 2048 2048"> <defs>  <style type="text/css">   <![CDATA[    .fil1 {fill:none}    .fil0 {fill:#0B1d46;fill-rule:nonzero}   ]]>  </style> </defs> <g id="Layer_x0020_1">  <metadata id="CorelCorpID_0Corel-Layer"/>  <polygon class="fil0" points="282.946,1542.13 282.278,1540.11 282.707,1541.41 "/>  <path class="fil0" d="M397.732 1022.44c-0.478347,0.214961 -0.957875,0.414567 -1.44331,0.6l3.90237 1.70079c-0.516142,-0.392126 -1.41614,-1.25197 -2.45906,-2.30079z"/>  <path class="fil0" d="M370.259 975.209l185.971 -136.237c20.628,-15.1299 43.2355,-23.8347 66.2847,-23.2961 22.148,0.516142 43.4965,9.15473 62.4981,28.1563l137.707 137.707 168.702 -33.7406c31.0937,-6.19252 54.6626,7.28623 68.0623,27.8776 4.97481,7.64646 8.39292,16.1315 10.115,24.7772 1.72205,8.64449 1.82008,17.778 0.159449,26.7225 -4.48819,24.1748 -21.0969,45.6744 -52.1894,51.8693l-202.728 40.5449 -0.0165354 -0.0838583c-6.12638,1.06654 -20.8937,-0.131102 -33.3012,-3.71221 -8.62796,-2.4874 -17.5051,-6.13819 -24.202,-11.028 -1.38425,-0.947245 -2.7,-2.03386 -3.92835,-3.26221l0.0555119 -0.056693 -3.17599 -3.17481c-0.529134,-0.453544 -1.04528,-0.933072 -1.54606,-1.43386l0.00236221 -0.00236221 -35.4603 -35.4603 14.7638 169.034 0.433465 0.291733c1.05709,0.659056 2.08229,1.39725 3.06614,2.21693l-0.0744095 0.0897638 166.719 138.86c4.66418,1.91221 8.91969,5.16969 12.7831,9.49843 2.53583,2.84173 5.04331,6.49607 7.33111,10.3748 3.42048,5.79685 6.85867,13.4327 8.99646,19.2957 0.783071,1.68662 1.40669,3.47835 1.84488,5.35985l-0.124016 0.0295276 0.0011811 0.00354331 0.0885827 -0.0212599 65.0056 278.91c4.18583,17.9669 0.68504,35.9386 -8.35512,50.4674 -8.70709,13.9984 -22.5567,24.7949 -39.6201,29.3079 -1.24843,0.388583 -2.53465,0.692127 -3.85158,0.900001 -17.3303,3.52323 -34.5567,-0.0401575 -48.5776,-8.76497 -13.9961,-8.70709 -24.7914,-22.552 -29.3067,-39.6142 -0.298819,-0.956694 -0.544489,-1.93583 -0.73819,-2.93504l-70.4871 -252.601 -129.623 -89.9906 -29.5477 134.979c-0.133465,0.759449 -0.298819,1.52008 -0.498426,2.27953l-0.0614174 -0.0165354c-3.21614,12.1878 -9.61064,22.7043 -18.0567,30.8941 -8.17087,7.92284 -18.2575,13.6665 -29.2394,16.637 -0.348425,0.112205 -0.698032,0.220866 -1.05354,0.32126l-0.011811 -0.0437008 -0.329528 0.0826772 -267.968 75.3816c-0.657875,0.233858 -1.32992,0.442914 -2.01024,0.625985 -16.9949,5.20512 -34.6087,3.22559 -49.4953,-4.26378 -14.8193,-7.45512 -26.8736,-20.3847 -32.8536,-37.1126 -0.377953,-0.954331 -0.703938,-1.93347 -0.97441,-2.9374 -5.20867,-16.9984 -3.23032,-34.6193 4.26142,-49.5095 7.48229,-14.8689 20.4744,-26.9587 37.2886,-32.9138 0.414567,-0.16063 0.836221,-0.312992 1.2626,-0.454725l0.00590552 0.0188977 0.0874016 -0.0295276 0.0318898 0.0968505 221.789 -73.8662 27.554 -136.553c-1.19291,-3.2811 -2.20512,-6.67087 -3.02362,-10.1551 -1.55906,-6.63189 -2.38465,-13.4551 -2.38465,-20.3681l0.00236221 0c0,-0.307087 0.00354331,-0.616
383536 0.0141732,-0.927166l0.0933072 0.00354331 8.36812 -248.162 -48.8233 35.765 7.61339 171.956c1.36536,31.6784 -15.4843,52.8745 -37.7847,62.9221 -8.13544,3.66378 -17.0492,5.70591 -26.0327,6.09331 -8.91733,0.383859 -17.954,-0.889371 -26.4012,-3.84922 -23.1166,-8.10355 -41.7555,-27.7677 -43.1197,-59.4154l-9.05316 -204.474 1.6748 -0.0720473c-0.552756,-9.79253 1.08543,-21.815 5.50748,-31.9961 3.80079,-8.74843 9.17835,-17.8087 15.9803,-24.4347 1.15866,-1.24016 2.44725,-2.39292 3.86693,-3.43229l0.0366142 0.0507874z"/>  <path class="fil0" d="M692.869 656.258c-11.0315,-11.0315 -26.2795,-17.8571 -43.1209,-17.8571 -16.8414,0 -32.0882,6.82441 -43.1209,17.8571 -11.0327,11.0327 -17.8571,26.2795 -17.8571,43.1209 0,16.8414 6.8256,32.0882 17.8571,43.1197 11.0327,11.0327 26.2795,17.8583 43.1209,17.8583 16.8414,0 32.0894,-6.8256 43.1209,-17.8571 11.0327,-11.0327 17.8583,-26.2795 17.8583,-43.1209 0,-16.8414 -6.8256,-32.0882 -17.8583,-43.1209z"/>  <path class="fil0" d="M649.749 598.252c27.9213,0 53.2052,11.3209 71.5052,29.6209 18.3012,18.3012 29.6221,43.5839 29.6221,71.5052 0,27.9213 -11.3209,53.204 -29.6221,71.5052 -18.3,18.3 -43.5839,29.6209 -71.5052,29.6209 -27.9213,0 -53.204,-11.3209 -71.5052,-29.6221 -18.3,-18.3 -29.6209,-43.5827 -29.6209,-71.504 0,-27.9213 11.3209,-53.204 29.6209,-71.5052 18.3012,-18.3 43.5839,-29.6209 71.5052,-29.6209z"/>  <polygon class="fil0" points="989.198,1187.23 988.529,1185.21 988.958,1186.51 "/>  <path class="fil0" d="M1103.98 667.537c-0.477166,0.214961 -0.959056,0.414567 -1.44331,0.6l3.90118 1.70079c-0.517323,-0.392126 -1.41614,-1.25197 -2.45788,-2.30079z"/>  <path class="fil0" d="M1076.51 620.308l185.971 -136.237c20.628,-15.1299 43.2355,-23.8347 66.2847,-23.2961 22.148,0.516142 43.4965,9.15473 62.4981,28.1563l137.707 137.707 168.702 -33.7406c31.0949,-6.19252 54.6638,7.28741 68.0623,27.8776 4.97481,7.64646 8.39292,16.1315 10.115,24.7772 1.72205,8.64449 1.82008,17.778 0.159449,26.7225 -4.48819,24.1748 -21.0969,45.6744 -52.1894,51.8693l-202.728 40.5449 -0.0165354 -0.0838583c-6.12638,1.06536 -20.8937,-0.131102 -33.3012,-3.71221 -8.62796,-2.4874 -17.5051,-6.13819 -24.202,-11.028 -1.38425,-0.947245 -2.7,-2.03386 -3.92835,-3.26221l0.0555119 -0.056693 -3.17599 -3.17481c-0.529134,-0.453544 -1.04528,-0.933072 -1.54606,-1.43386l0.00236221 -0.00236221 -35.4603 -35.4603 14.7638 169.034 0.433465 0.291733c1.05709,0.659056 2.08229,1.39725 3.06614,2.21693l-0.0744095 0.0897638 166.715 138.856c4.66536,1.91221 8.92205,5.17087 12.7866,9.50198 2.53583,2.84292 5.04331,6.49607 7.33111,10.3748 3.42048,5.79685 6.85867,13.4327 8.99646,19.2957 0.783071,1.68662 1.40669,3.47835 1.84488,5.35985l-0.124016 0.0295276 0.0011811 0.00354331 0.0885827 -0.0212599 65.0056 278.91c4.18583,17.9669 0.68504,35.9386 -8.35512,50.4674 -8.70709,13.9973 -22.5567,24.7949 -39.6201,29.3079 -1.24725,0.388583 -2.53347,0.690945 -3.8504,0.89882 -17.3291,3.52205 -34.5579,-0.0389764 -48.5788,-8.76379 -13.9949,-8.70591 -24.7914,-22.552 -29.3067,-39.6142 -0.298819,-0.956694 -0.544489,-1.93583 -0.73819,-2.93504l-70.4871 -252.601 -129.623 -89.9906 -29.5477 134.979c-0.133465,0.759449 -0.298819,1.52008 -0.498426,2.27953l-0.0614174 -0.0165354c-3.21614,12.1878 -9.60946,22.7032 -18.0567,30.8941 -8.17087,7.92284 -18.2575,13.6665 -29.2394,16.637 -0.348425,0.112205 -0.698032,0.220866 -1.05354,0.32126l-0.011811 -0.0437008 -0.329528 0.0826772 -267.968 75.3816c-0.657875,0.233858 -1.32992,0.442914 -2.01024,0.625985 -16.9949,5.20512 -34.6087,3.22559 -49.4953,-4.26378 -14.8193,-7.45512 -26.8736,-20.3847 -32.8536,-37.1126 -0.377953,-0.954331 -0.703938,-1.93347 -0.97441,-2.9374 -5.20867,-16.9984 -3.23032,-34.6193 4.26142,-49.5095 7.48229,-14.8689 20.4744,-26.9587 37.2886,-32.9138 0.414567,-0.16063 0.836221,-0.312992 1.2626,-0.454725l0.00590552 0.0188977 0.0874016 -0.0295276 0.0318898 0.0968505 221.789 -73.8662 27.554 -136.553c-1.19291,-3.2811 -2.20512,-6.67087 -3.02362,-10.1551 -1.55906,-6.63189 -2.38465,-13.4551 -2.38465,-20.3681l0.00236221 0c0,-0.307087 0.00354331,-0.616536 0.0141732,-0.927166l0.0933072 0.00354331 8.36812 -248.162 -48.8233 35.765 7.61339 171.956c1.36536,31.6772 -15.4843,52.8745 -37.7847,62.9221 -8.13544,3.66378 -17.0492,5.70591 -26.0327,6.09331 
383-8.91615,0.383859 -17.954,-0.889371 -26.4012,-3.84922 -23.1166,-8.10355 -41.7555,-27.7677 -43.1197,-59.4154l-9.05316 -204.474 1.6748 -0.0720473c-0.552756,-9.79253 1.08543,-21.815 5.50748,-31.9961 3.80079,-8.74843 9.17835,-17.8087 15.9803,-24.4347 1.15866,-1.24016 2.44725,-2.39292 3.86693,-3.43229l0.0366142 0.0507874z"/>  <path class="fil0" d="M1399.12 301.357c-11.0315,-11.0315 -26.2795,-17.8571 -43.1209,-17.8571 -16.8414,0 -32.0882,6.8256 -43.1197,17.8571 -11.0327,11.0327 -17.8583,26.2795 -17.8583,43.1209 0,16.8414 6.8256,32.0882 17.8583,43.1197 11.0315,11.0327 26.2784,17.8583 43.1197,17.8583 16.8414,0 32.0894,-6.8256 43.1209,-17.8571 11.0327,-11.0327 17.8583,-26.2795 17.8583,-43.1209 0,-16.8414 -6.8256,-32.0882 -17.8583,-43.1209z"/>  <path class="fil0" d="M1356 243.352c27.9213,0 53.2052,11.3209 71.5052,29.6209 18.3012,18.3012 29.6221,43.5839 29.6221,71.5052 0,27.9213 -11.3209,53.204 -29.6221,71.5052 -18.3,18.3 -43.5839,29.6209 -71.5052,29.6209 -27.9225,0 -53.204,-11.3209 -71.504,-29.6221 -18.3012,-18.3 -29.6221,-43.5815 -29.6221,-71.504 0,-27.9213 11.3209,-53.204 29.6221,-71.5052 18.3,-18.3 43.5827,-29.6209 71.504,-29.6209z"/> </g> <rect class="fil1" width="2048" height="2048"/></svg>
384                    <p>Coaching</p>
385                </li>
386            </a>
387            <a href="/help">
388                <li>
389                   <svg xmlns="http://www.w3.org/2000/svg" width="30" height="20" viewBox="0 0 24 24" fill="none" stroke="#0b1d46" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
390                   <p>Contact Us</p>
391                </li>
392            </a>
393           
394          </ul>
395      </div>
396      <div style='color: white'>
397        <a style='color: white; text-decoration: none' href="/cart">        
398            <div class="cart-container">
399                <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="10" cy="20.5" r="1"/><circle cx="18" cy="20.5" r="1"/><path d="M2.5 2.5h3l2.7 12.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6l1.6-8.4H7.1"/></svg>
400                <!--<img src="/files/shop/imgs/cart.png" alt='Shopping Cart' /> -->
401                <p>My Cart</p>
402            </div>
403        </a>
404        
405        <div class="authenticated-user">
406            
407            	<div class="login-container">
408            	    <a style="color: white; text-decoration: none; display: flex; align-items: center" 
409            	        href="https://www.brooksee.com/accounts/login?next=/accounts/login"
410            	    >
411                	    <svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5.52 19c.64-2.2 1.84-3 3.22-3h6.52c1.38 0 2.58.8 3.22 3"/><circle cx="12" cy="10" r="3"/><circle cx="12" cy="12" r="10"/></svg>
412                	    <p style="margin: 0; padding-left: 10px; ">
413                	        Login
414                	    </p>
415            	    </a>
416            	</div>
417            
418        </div>
419    </div>
420</div>
421
422
423    
423<script>
424let isMenuOpen = false; 
425
426document.addEventListener("DOMContentLoaded", function() {
427    // Set up the "click outside" functionality after the DOM is loaded
428    document.addEventListener("click", closeMenuOnClickOutside);
429    
430    // Check if the masterReady function is defined and execute it
431    if (typeof masterReady == 'function') {
432        masterReady();
433    }
434    
435    // Set up the hamburger button click event
436    $("#hamb").click(function() {
437        toggleMenu();
438    });
439});
440
441function closeMenuOnClickOutside(event) {
442    const slideout = document.querySelector("#slideout");
443    const hamburger = document.querySelector("#hamb");
444
445    // Check if the click is outside of the slideout menu or hamburger button
446    if (!slideout.contains(event.target) && !hamburger.contains(event.target)) {
447        if (isMenuOpen) {
448            toggleMenu(); // Close the menu if it's open
449        }
450    }
451}
452
453function toggleMenu() {
454    if (isMenuOpen) {
455        $("#slideout").css('z-index', 0).css('top', '-100%'); // Close the menu
456    } else {
457        // If the menu is closed, slide it in (show)
458        $("#slideout").css('display', 'block').css('top', '62px');
459    }
460    isMenuOpen = !isMenuOpen; // Toggle the state
461    $("#hamb").toggleClass('close', isMenuOpen); // Update hamburger button
462}
463      
464      
465      
466      
467      $(".question_mark").tooltip(
468	{tooltipClass: "tooltip",
469	 content: function() { return $(this).prop('title'); }
470        });
471      if(typeof nav3_init == 'function') {
472       nav3_init();
473      }
474      $(".quotes").each(function(idx) {
475    var nav  = $(this).find(".nav");
476    var prev = nav.find(".prev");
477    var next = nav.find(".next");
478    var quotes = $(this).find("ul").children();
479    var count = quotes.length;
480    var pos = Math.floor(Math.random() * count);
481    if(count < 2) {
482	nav.hide();
483    } else {
484	for (var j=0; j<count; j++) {
485	    if(j==pos) { 
486		$(quotes[j]).css('display', 'list-item');
487	    } else {
488		$(quotes[j]).css('display', 'none');
489	    }
490	}
491	prev.click(function() { 
492	    $(quotes[pos]).css('display', 'none');
493	    pos = pos - 1;
494	    if(pos < 0) {
495		pos = count - 1;
496	    }
497	    $(quotes[pos]).css('display', 'list-item');
498	});
499	next.click(function() { 
500	    $(quotes[pos]).css('display', 'none');
501	    pos = pos + 1;
502	    if (pos >= count ) {
503		pos = 0;
504	    }
505	    $(quotes[pos]).css('display', 'list-item');
506	});
507    }
508});
509
510
511      (function() {
512    if (document.getElementById('ui_toast_styles')) { return; }
513    var style = document.createElement('style');
514    style.id = 'ui_toast_styles';
515    style.textContent =
516        '.ui_toast_stack { position:fixed; right:16px; bottom:16px; z-index:9500;' +
517        '  display:flex; flex-direction:column-reverse; gap:8px; }' +
518        '.ui_toast { min-width:220px; max-width:360px; padding:10px 14px; border-radius:8px;' +
519        '  background:#1f2937; color:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;' +
520        '  font-size:13px; box-shadow:0 8px 20px rgba(0,0,0,.25); opacity:0; transform:translateY(6px);' +
521        '  transition:opacity .15s ease, transform .15s ease; }' +
522        '.ui_toast.ui_toast_in { opacity:1; transform:translateY(0); }' +
523        '.ui_toast_title { font-weight:700; margin-bottom:2px; }' +
524        '.ui_toast_error { background:#991b1b; }';
525    document.head.appendChild(style);
526})();
527
528function ui_toast(title, msg, type) {
529    var stack = document.querySelector('.ui_toast_stack');
530    if (!stack) {
531        stack = document.createElement('div');
532        stack.className = 'ui_toast_stack';
533        document.body.appendChild(stack);
534    }
535    var toast = document.createElement('div');
536    toast.className = 'ui_toast' + (type === 'error' ? ' ui_toast_error' : '');
537    toast.innerHTML = (title ? '<div class="ui_toast_title"></div>' : '') + '<div class="ui_toast_msg"></div>';
538    if (title) { toast.querySelector('.ui_toast_title').textContent = title; }
539    toast.querySelector('.ui_toast_msg').textContent = msg;
540    stack.appendChild(toast);
541    requestAnimationFrame(function() { toast.classList.add('ui_toast_in'); });
542    setTimeout(function() {
543        toast.classList.remove('ui_toast_in');
544        setTimeout(function() { toast.remove(); }, 200);
545    }, 3000);
546}
547
548(function() {
549    if (document.getElementById('ui_modal_styles')) { return; }
550    var style = document.createElement('style');
551    style.id = 'ui_modal_styles';
552    style.textContent =
553        '.ui_modal_overlay { position:fixed; inset:0; background:rgba(15,23,42,.5); }' +
554        '.ui_modal { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);' +
555        '  min-width:320px; max-width:520px; background:#fff; border-radius:10px;' +
556        '  box-shadow:0 20px 40px rgba(0,0,0,.25); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }' +
557        '.ui_modal_titlebar { display:flex; align-items:center; justify-content:space-between;' +
558        '  padding:14px 16px; border-bottom:1px solid #e5e7eb; font-weight:700; font-size:15px;
558 color:#1f2937; }' +
559        '.ui_modal_close { border:0 !important; outline:0 !important; appearance:none !important;' +
560        '  -webkit-appearance:none !important; background:none !important; box-shadow:none !important;' +
561        '  font-size:26px !important; line-height:1 !important; padding:0 4px !important; margin:0 !important;' +
562        '  cursor:pointer; color:#9ca3af; }' +
563        '.ui_modal_close:hover { color:#4b5563 !important; background:none !important; }' +
564        '.ui_modal_body { padding:16px; font-size:14px; color:#374151; max-height:60vh; overflow-y:auto; }' +
565        '.ui_modal_body input[type=text], .ui_modal_body textarea {' +
566        '  box-sizing:border-box; width:100%; margin-top:8px; padding:7px 9px; border:1px solid #d1d5db;' +
567        '  border-radius:6px; font-size:14px; font-family:inherit; }' +
568        '.ui_modal_body textarea { min-height:70px; }' +
569        '.ui_modal_buttons { display:flex; justify-content:flex-end; gap:8px; padding:12px 16px; border-top:1px solid #e5e7eb; }' +
570        '.ui_modal_buttons button { border:1px solid #d1d5db; border-radius:6px; padding:8px 18px; background:#fff;' +
571        '  color:#1f2937; font-size:13px; font-weight:600; cursor:pointer; }' +
572        '.ui_modal_buttons button:hover { background:#f3f4f6; }';
573    document.head.appendChild(style);
574})();
575
576var _ui_modal_z = 9600;
577
578/* Shared engine behind ui_alert/ui_blocking_msg/ui_confirm/ui_prompt/ui_comment
579   -- vanilla JS/CSS, no jQuery UI. opts:
580     title, bodyHtml           -- same as each function's own args
581     buttons: [{label, cb}]    -- rendered left-to-right; clicking always
582                                  closes first, then calls cb (cb is optional
583                                  -- omit it for a plain Cancel/close button)
584     showClose (default true)  -- title-bar X icon
585     closeOnEscape (default true)
586     enterButton: index        -- Enter key clicks this button (unset = no
587                                  Enter binding, e.g. ui_comment's textarea)
588     onOpen(body)               -- called with the body element once it's in
589                                  the DOM, for callers that need to add their
590                                  own controls (ui_prompt's input, etc.)
591   Returns a jQuery-wrapped element with a .dialog('close') shim, since
592   several existing call sites hold onto the return value and close it
593   themselves later -- see git history for which ones. */
594function _ui_modal_open(opts) {
595    _ui_modal_z += 2;
596    var overlay = document.createElement('div');
597    overlay.className = 'ui_modal_overlay';
598    overlay.style.zIndex = _ui_modal_z;
599
600    var box = document.createElement('div');
601    box.className = 'ui_modal';
602    box.style.zIndex = _ui_modal_z + 1;
603
604    function close() {
605        overlay.remove();
606        box.remove();
607        $(document).off(keyNs);
608    }
609
610    var titlebar = document.createElement('div');
611    titlebar.className = 'ui_modal_titlebar';
612    var titleSpan = document.createElement('span');
613    titleSpan.textContent = opts.title || '';
614    titlebar.appendChild(titleSpan);
615    if (opts.showClose !== false) {
616        var closeBtn = document.createElement('button');
617        closeBtn.type = 'button';
618        closeBtn.className = 'ui_modal_close';
619        closeBtn.innerHTML = '&times;';
620        closeBtn.onclick = close;
621        titlebar.appendChild(closeBtn);
622    }
623
624    var body = document.createElement('div');
625    body.className = 'ui_modal_body';
626    body.innerHTML = opts.bodyHtml || '';
627
628    box.appendChild(titlebar);
629    box.appendChild(body);
630
631    var buttonEls = [];
632    if (opts.buttons && opts.buttons.length) {
633        var pane = document.createElement('div');
634        pane.className = 'ui_modal_buttons';
635        opts.buttons.forEach(function(b) {
636            var btn = document.createElement('button');
637            btn.type = 'button';
638            btn.textContent = b.label;
639            btn.onclick = function() {
640                close();
641                if (b.cb) { b.cb(); }
642            };
643            pane.appendChild(btn);
644            buttonEls.push(btn);
645        });
646        box.appendChild(pane);
647    }
648
649    var keyNs = 'keydown.ui_modal_' + _ui_modal_z;
650    $(document).on(keyNs, function(e) {
651        if (e.key === 'Escape' && opts.closeOnEscape !== false) {
652            close();
653        } else if (e.key === 'Enter' && opts.enterButton !== undefined && buttonEls[opts.enterButton]) {
654            buttonEls[opts.enterButton].click();
655        }
656    });
657
658    document.body.appendChild(overlay);
659    document.body.appendChild(box);
660    if (opts.onOpen) { opts.onOpen(body); }
661
662    var $box = $(box);
663    $box.dialog = function(action) { if (action === 'close') { close(); } };
664    return $box;
665}
666
667function ui_alert(title, msg, done_cb) {
668    return _ui_modal_open({
669        title: title,
670        bodyHtml: msg,
671        buttons: [{ label: "Ok", cb: done_cb }]
672    });
673}
674
675function ui_blocking_msg(title, msg) {
676    return _ui_modal_open({
677        title: title,
678        bodyHtml: msg,
679        showClose: false,
680        closeOnEscape: false
681    });
682}
683
684function ui_confirm(title, msg, yes_cb, no_cb, yes_text, no_text) {
685    return _ui_modal_open({
686        title: title,
687        bodyHtml: msg,
688        buttons: [
689            { label: yes_text || "Yes", cb: yes_cb },
690            { label: no_text || "No", cb: no_cb }
691        ],
692        enterButton: 0
693    });
694}
695
696function ui_prompt(title, msg, done_cb, defaultText) {
697    var defval = (defaultText != null) ? defaultText : "";
698    var input;
699    return _ui_modal_open({
700        title: title,
701        bodyHtml: msg + "<br>",
702        onOpen: function(body) {
703            input = document.createElement('input');
704            input.type = 'text';
705            input.className = 'nice input-text';
706            input.value = defval;
707            body.appendChild(input);
708            input.focus();
709        },
710        buttons: [
711            { label: "Cancel" },
712            { label: "Ok", cb: function() { done_cb(input.value); } }
713        ],
714        enterButton: 1
715    });
716}
717
718function ui_comment(title, msg, done_cb, defaultText) {
719    var defval = (defaultText != null) ? defaultText : "";
720    var textarea;
721    return _ui_modal_open({
722        title: title,
723        bodyHtml: msg + "<br>",
724        onOpen: function(body) {
725            body.classList.add('ui_comment_box');
726            textarea = document.createElement('textarea');
727            textarea.value = defval;
728            body.appendChild(textarea);
729        },
730        buttons: [
731            { label: "Cancel" },
732            { label: "Ok", cb: function() { done_cb(textarea.value); } }
733        ]
734    });
735}
736
737var _requests = [];
738var _abortAllRequests = function() {
739    $(_requests).each(function(i, xhr) { 
740	console.log("aborting..." + xhr.abort()); 
741    });
742}
743
744$(window).on("beforeunload", function() {
745  _abortAllRequests();
746});
747
748var _rpc_server = "" // blank to use relative path for rpc_server
749function rpc(mod, funcName, args, success, error, type, ajax_args) {
750    var xhr;
751    $("body").css("cursor", "progress");
752    function mySuccess(data, textStatus, jqXHR) {
753        _requests.pop(xhr);
754	$("body").css("cursor", "default");
755	if(data["status"] == "OK") {
756	    $("body").css("cursor", "default");
757	    success(data["result"], textStatus, jqXHR);
758	} else {
759	    $("body").css("cursor", "default");
760	    error(jqXHR, data["status"], data["result"]);
761	}
762    }
763    function myError(a0, a1, a2) {
764        if(a2=="abort") { return; }
765        _requests.pop(xhr);
766	$("body").css("cursor", "default");
767	error(a0, a1, a2);
768    }
769    if(!type)
770	type="POST";
771    var settings = {
772	url      : _rpc_server + "/func/" + mod + "/" + funcName,
773	type     : type,
774	data     : { '__json__': JSON.stringify(args)},
775	dataType : "json",
776	success  : mySuccess,
777	error    : myError
778    };
779    $.extend(settings, ajax_args);
780    xhr = $.ajax(settings);
781    _requests.push(xhr);
782}
783
784function rpc_file(mod, funcName, args, file_obj, success, error, type, ajax_args) {
785    let reader = new FileReader();
786    reader.onloadend = function(evt) {
787	args["data"] = reader.result
788	rpc(mod, funcName, args, success, error, type, ajax_args)
789    }
790    reader.readAsBinaryString(file_obj)
791}
792
793/*
794var _rpc2_server = "https://rpc.brooksee.com" // blank to use relative path for rpc_server
795async function rpc2(mod, view, func, args, msg, context, options) {
796    // cant share session with existing server, so will need to login again
797    let _context = {}
798    if(context !== undefined) {
799        Object.assign(_context, context)
800    }
801
802    let body = {
803        args: args,
804        context: _context
805    }
806    let loading
807    if(msg !== "__bg__") {
808	loading = ui_blocking_msg("", msg);
809    }
810    let url = _rpc2_server + "/rest/" + mod + "/" + view + "/" + func
811    console.log('rpc(' + url + ', ' + JSON.stringify(body) + ')')
812    try {
813	let response = await fetch(url, {
814	    method: 'POST',
815	    //mode: "no-cors",
816	    body:JSON.stringify(body),
817	})
818	console.log(response)
819	data = await response.json()
820	console.log(data)
821	if (data.status === 'OK') {
822	    return data.result
823	} else {
824	    throw(data)
825	}
826    } finally {
827	if(loading !== undefined) {
828	    loading.dialog("close")
829	}
830    }
831}
832*/
833
834let _rpc3_server = "https://rpc.brooksee.com" // blank to use relative path for rpc_server
835async function rpc3(mod, view, func, args) {
836    // Base rpc call that does not handle any errors but
837    // throws errors any error as an exception so that the
838    // caller can handle it and decide what do with the error.
839    // Does not display any indication of busy or progress.
840    let url = _rpc3_server + "/rest/" + mod + "/" + view + "/" + func
841    let body = {
842	args: args,
843	context: {},
844    }
845    console.log('rpc(' + url + ', ' + JSON.stringify(body) + ')')
846    let response = await fetch(url, {
847        method: "POST",
848        headers: { "X-Pickle-Session": "ro2qd0xh4o7a5uu9xyvptnipga50gd51" },
849        body: JSON.stringify(body),
850    })
851    console.log(response)
852    if(response.ok) {
853        let data = await response.json()
854        console.log(data)
855        if(data.status === "ERROR") {
856            console.log("err:",data.result)
857            throw(data.result)
858        } else if(data.status === "OK") {
859            return data.result
860        } else {
861            throw("Unknown Response")
862        }
863    } else {
864        throw("Error: " + response.status)
865    }
866}
867
868      $(".vimeo_colorbox,.vimeo").colorbox({iframe:true, width:"95%", height:"95%", reposition: true});
869
870    </script>
870
871
872    
872<script type="text/javascript">
873      var _gaq = _gaq || [];
874      _gaq.push(['_setAccount', 'G-L9EFPF17EV']);
875      _gaq.push(['_trackPageview']);
876      
877      (function() {
878      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
879      ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
880      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
881      })();
882    </script>
882
883    
884  </body>
885</html>

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.