rubyuw 0.99.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. data/.gitignore +4 -0
  2. data/README.md +81 -0
  3. data/Rakefile +45 -0
  4. data/VERSION +1 -0
  5. data/lib/rubyuw.rb +9 -0
  6. data/lib/rubyuw/base.rb +122 -0
  7. data/lib/rubyuw/connection.rb +145 -0
  8. data/lib/rubyuw/curriculum_enrollment.rb +75 -0
  9. data/lib/rubyuw/errors.rb +16 -0
  10. data/lib/rubyuw/schedule.rb +52 -0
  11. data/lib/rubyuw/sln.rb +108 -0
  12. data/rubyuw.gemspec +97 -0
  13. data/test/live/curriculum_enrollment_test.rb +47 -0
  14. data/test/live/sln_test.rb +54 -0
  15. data/test/live/test_helper.rb +24 -0
  16. data/test/mocked/base_test.rb +171 -0
  17. data/test/mocked/connection_test.rb +178 -0
  18. data/test/mocked/curriculum_enrollment_test.rb +158 -0
  19. data/test/mocked/fixture_pages/bad_request.html +80 -0
  20. data/test/mocked/fixture_pages/curric_courses.html +2659 -0
  21. data/test/mocked/fixture_pages/curric_no_courses.html +88 -0
  22. data/test/mocked/fixture_pages/curric_no_curric_found.html +86 -0
  23. data/test/mocked/fixture_pages/logged_in_relay.html +660 -0
  24. data/test/mocked/fixture_pages/login.html +121 -0
  25. data/test/mocked/fixture_pages/no_form_login.html +122 -0
  26. data/test/mocked/fixture_pages/no_login_button.html +100 -0
  27. data/test/mocked/fixture_pages/not_logged_in_relay.html +15 -0
  28. data/test/mocked/fixture_pages/registration.html +699 -0
  29. data/test/mocked/fixture_pages/registration_error.html +699 -0
  30. data/test/mocked/fixture_pages/registration_error_no_rows.html +627 -0
  31. data/test/mocked/fixture_pages/registration_no_form.html +700 -0
  32. data/test/mocked/fixture_pages/registration_success.html +718 -0
  33. data/test/mocked/fixture_pages/registration_unknown.html +721 -0
  34. data/test/mocked/fixture_pages/schedule.html +166 -0
  35. data/test/mocked/fixture_pages/schedule_diff_credit_row.html +167 -0
  36. data/test/mocked/fixture_pages/schedule_empty.html +130 -0
  37. data/test/mocked/fixture_pages/schedule_no_credit_row.html +169 -0
  38. data/test/mocked/fixture_pages/sln_does_not_exist.html +85 -0
  39. data/test/mocked/fixture_pages/sln_no_course_info.html +94 -0
  40. data/test/mocked/fixture_pages/sln_no_course_notes.html +94 -0
  41. data/test/mocked/fixture_pages/sln_no_enrollment_info.html +94 -0
  42. data/test/mocked/fixture_pages/sln_status.html +92 -0
  43. data/test/mocked/fixture_pages/welcome.html +93 -0
  44. data/test/mocked/schedule_test.rb +89 -0
  45. data/test/mocked/sln_test.rb +146 -0
  46. data/test/mocked/test_helper.rb +67 -0
  47. data/test/password.rb.sample +8 -0
  48. metadata +118 -0
@@ -0,0 +1,121 @@
1
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2
+ <html>
3
+ <head>
4
+ <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5
+ <meta name="viewport" content="width = 580">
6
+ <title>UW NetID Weblogin</title>
7
+ </head>
8
+
9
+ <body bgcolor="#ffffff" onLoad="document.query.elements[0].focus()">
10
+ <center>
11
+ <table cellpadding="0" cellspacing="0" border="0" width="580">
12
+ <tr>
13
+ <td width="310" valign="middle">
14
+ <img src="/images/login/weblogin.gif" alt="" height="57" width="198">
15
+
16
+ <form name="query" method="POST" action="https://weblogin.washington.edu/"
17
+ enctype="application/x-www-form-urlencoded" autocomplete="off">
18
+
19
+ <!-- Custom login message, if there is such -->
20
+
21
+ <!-- The end of reasons. -->
22
+
23
+ <!-- The reason we were sent here. -->
24
+ <P>The resource you requested requires you to log in with your UW NetID and password.</P>
25
+
26
+ <!-- The end of reasons. -->
27
+
28
+ <P>
29
+ <B>UW NetID:</B><BR>
30
+ <INPUT TYPE="text" NAME="user" SIZE="20" VALUE="">
31
+
32
+ <P>
33
+ <B>Password:</B><BR>
34
+ <INPUT TYPE="password" NAME="pass" SIZE="20">
35
+
36
+ <P>
37
+ <!-- The hidden fields -->
38
+
39
+ <input type="hidden" name="one" value="myuw.washington.edu">
40
+ <input type="hidden" name="two" value="myuw">
41
+ <input type="hidden" name="creds_from_greq" value="1">
42
+ <input type="hidden" name="three" value="1">
43
+ <input type="hidden" name="four" value="a5">
44
+ <input type="hidden" name="five" value="GET">
45
+ <input type="hidden" name="six" value="myuw.washington.edu">
46
+ <input type="hidden" name="seven" value="L3NlcnZsZXQvdXNlcg==">
47
+ <input type="hidden" name="relay_url" value="https://myuw.washington.edu/PubCookie.reply">
48
+ <input type="hidden" name="eight" value="ZGVmYnV0PUxvZytpbit3aXRoK3lvdXIrVVcrTmV0SUQ=">
49
+ <input type="hidden" name="fr" value="NFR">
50
+ <input type="hidden" name="hostname" value="myuw.washington.edu">
51
+ <input type="hidden" name="nine" value="1">
52
+ <input type="hidden" name="file" value="">
53
+ <input type="hidden" name="flag" value="0">
54
+ <input type="hidden" name="referer" value="http://myuw.washington.edu/">
55
+ <input type="hidden" name="post_stuff" value="">
56
+ <input type="hidden" name="sess_re" value="0">
57
+ <input type="hidden" name="pre_sess_tok" value="-1687712352">
58
+ <input type="hidden" name="first_kiss" value="1246127602-993852">
59
+ <input type="hidden" name="pinit" value="0">
60
+ <input type="hidden" name="reply" value="1">
61
+ <input type="hidden" name="create_ts" value="1246127602">
62
+
63
+ <!-- The GetCred target, if defined -->
64
+
65
+ <!-- End of inserted stuff. -->
66
+ </P>
67
+
68
+ <P>
69
+ <input type="SUBMIT" name="submit" value="Log in">
70
+ </P>
71
+
72
+ </form>
73
+ </td>
74
+ <td width="9">
75
+ &nbsp;
76
+ </td>
77
+ <td width="2" bgcolor="#000000">
78
+ <img src="/images/1pixffcc33iystpiwfy.gif" width="1" height="1" align="BOTTOM" alt="" oncontextmenu="return false">
79
+ </td>
80
+ <td width="9">
81
+ &nbsp;
82
+ </td>
83
+ <td width="250" valign="MIDDLE">
84
+ <p>
85
+ <a href="https://uwnetid.washington.edu/newid/">Need a UW NetID?</a>
86
+ </p>
87
+ <p>
88
+ <a href="http://www.washington.edu/computing/uwnetid/password/forget.html">Forget your password?</a>
89
+ </p>
90
+ <dl>
91
+ <dt>Have a question?</dt>
92
+ <dd>
93
+ <a href="http://www.washington.edu/computing/uwnetid/">Read About UW NetIDs</a><BR>
94
+ <a href="http://www.washington.edu/computing/weblogin/">Read About "weblogin"</A><BR>
95
+ <a href="http://www.washington.edu/computing/help/">Contact UW Technology</a>
96
+ </dd>
97
+ </dl>
98
+ </td>
99
+ </tr>
100
+
101
+ <tr>
102
+ <td colspan="5" align="center">
103
+ <p>
104
+ Login gives you 8-hour access without repeat login to UW NetID-protected Web resources.
105
+ </p>
106
+ <p>
107
+ <strong>WARNING</strong>: Protect your privacy! Prevent unauthorized use!<br>
108
+ <a href="http://www.washington.edu/computing/weblogin/logout.html">Completely exit your Web browser when you are finished.</a>
109
+ </p>
110
+ </td>
111
+ </tr>
112
+ <tr>
113
+ <td colspan="5" align="center">
114
+ <small>Copyright &#169; 2008 University of Washington</small>
115
+ </td>
116
+ </tr>
117
+ </table>
118
+ </center>
119
+ <!-- Version: 3.3.4-pre-beta1 -->
120
+ </body>
121
+ </html>
@@ -0,0 +1,122 @@
1
+ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2
+ <html>
3
+ <head>
4
+ <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5
+ <meta name="viewport" content="width = 580">
6
+ <title>UW NetID Weblogin</title>
7
+ </head>
8
+
9
+ <body bgcolor="#ffffff" onLoad="document.query.elements[0].focus()">
10
+ <center>
11
+ <table cellpadding="0" cellspacing="0" border="0" width="580">
12
+ <tr>
13
+ <td width="310" valign="middle">
14
+ <img src="/images/login/weblogin.gif" alt="" height="57" width="198">
15
+
16
+ <!-- MODIFIED FOR TESTING -->
17
+ <form name="no_query" method="POST" action="https://weblogin.washington.edu/"
18
+ enctype="application/x-www-form-urlencoded" autocomplete="off">
19
+
20
+ <!-- Custom login message, if there is such -->
21
+
22
+ <!-- The end of reasons. -->
23
+
24
+ <!-- The reason we were sent here. -->
25
+ <P>The resource you requested requires you to log in with your UW NetID and password.</P>
26
+
27
+ <!-- The end of reasons. -->
28
+
29
+ <P>
30
+ <B>UW NetID:</B><BR>
31
+ <INPUT TYPE="text" NAME="user" SIZE="20" VALUE="">
32
+
33
+ <P>
34
+ <B>Password:</B><BR>
35
+ <INPUT TYPE="password" NAME="pass" SIZE="20">
36
+
37
+ <P>
38
+ <!-- The hidden fields -->
39
+
40
+ <input type="hidden" name="one" value="myuw.washington.edu">
41
+ <input type="hidden" name="two" value="myuw">
42
+ <input type="hidden" name="creds_from_greq" value="1">
43
+ <input type="hidden" name="three" value="1">
44
+ <input type="hidden" name="four" value="a5">
45
+ <input type="hidden" name="five" value="GET">
46
+ <input type="hidden" name="six" value="myuw.washington.edu">
47
+ <input type="hidden" name="seven" value="L3NlcnZsZXQvdXNlcg==">
48
+ <input type="hidden" name="relay_url" value="https://myuw.washington.edu/PubCookie.reply">
49
+ <input type="hidden" name="eight" value="ZGVmYnV0PUxvZytpbit3aXRoK3lvdXIrVVcrTmV0SUQ=">
50
+ <input type="hidden" name="fr" value="NFR">
51
+ <input type="hidden" name="hostname" value="myuw.washington.edu">
52
+ <input type="hidden" name="nine" value="1">
53
+ <input type="hidden" name="file" value="">
54
+ <input type="hidden" name="flag" value="0">
55
+ <input type="hidden" name="referer" value="http://myuw.washington.edu/">
56
+ <input type="hidden" name="post_stuff" value="">
57
+ <input type="hidden" name="sess_re" value="0">
58
+ <input type="hidden" name="pre_sess_tok" value="-1687712352">
59
+ <input type="hidden" name="first_kiss" value="1246127602-993852">
60
+ <input type="hidden" name="pinit" value="0">
61
+ <input type="hidden" name="reply" value="1">
62
+ <input type="hidden" name="create_ts" value="1246127602">
63
+
64
+ <!-- The GetCred target, if defined -->
65
+
66
+ <!-- End of inserted stuff. -->
67
+ </P>
68
+
69
+ <P>
70
+ <input type="SUBMIT" name="submit" value="Log in">
71
+ </P>
72
+
73
+ </form>
74
+ </td>
75
+ <td width="9">
76
+ &nbsp;
77
+ </td>
78
+ <td width="2" bgcolor="#000000">
79
+ <img src="/images/1pixffcc33iystpiwfy.gif" width="1" height="1" align="BOTTOM" alt="" oncontextmenu="return false">
80
+ </td>
81
+ <td width="9">
82
+ &nbsp;
83
+ </td>
84
+ <td width="250" valign="MIDDLE">
85
+ <p>
86
+ <a href="https://uwnetid.washington.edu/newid/">Need a UW NetID?</a>
87
+ </p>
88
+ <p>
89
+ <a href="http://www.washington.edu/computing/uwnetid/password/forget.html">Forget your password?</a>
90
+ </p>
91
+ <dl>
92
+ <dt>Have a question?</dt>
93
+ <dd>
94
+ <a href="http://www.washington.edu/computing/uwnetid/">Read About UW NetIDs</a><BR>
95
+ <a href="http://www.washington.edu/computing/weblogin/">Read About "weblogin"</A><BR>
96
+ <a href="http://www.washington.edu/computing/help/">Contact UW Technology</a>
97
+ </dd>
98
+ </dl>
99
+ </td>
100
+ </tr>
101
+
102
+ <tr>
103
+ <td colspan="5" align="center">
104
+ <p>
105
+ Login gives you 8-hour access without repeat login to UW NetID-protected Web resources.
106
+ </p>
107
+ <p>
108
+ <strong>WARNING</strong>: Protect your privacy! Prevent unauthorized use!<br>
109
+ <a href="http://www.washington.edu/computing/weblogin/logout.html">Completely exit your Web browser when you are finished.</a>
110
+ </p>
111
+ </td>
112
+ </tr>
113
+ <tr>
114
+ <td colspan="5" align="center">
115
+ <small>Copyright &#169; 2008 University of Washington</small>
116
+ </td>
117
+ </tr>
118
+ </table>
119
+ </center>
120
+ <!-- Version: 3.3.4-pre-beta1 -->
121
+ </body>
122
+ </html>
@@ -0,0 +1,100 @@
1
+ <!-- myuw.washington.edu -->
2
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
3
+ "http://www.w3.org/TR/html4/loose.dtd">
4
+ <html>
5
+ <head>
6
+ <title>Welcome to MyUW</title>
7
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
8
+ <meta http-equiv="pragma" content="no-cache">
9
+ <meta http-equiv="cache-control" content="no-cache">
10
+ <meta http-equiv="expires" content="Fri, 01 Dec 2000 00:00:00 GMT">
11
+ <meta name="author" lang="en"
12
+ content="Copyright (c) 1998- University of Washington">
13
+
14
+ <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
15
+ <link rel="stylesheet" href="/css/myuw.css" type="text/css">
16
+ <script type="text/javascript" src="/js/base.js"></script>
17
+ </head>
18
+
19
+ <body bgcolor="#ffffff" onLoad="sf()">
20
+
21
+ <table cellpadding="0" cellspacing="20" border="0" width="700" align="center">
22
+
23
+ <tr>
24
+ <td width="50%" valign="baseline">
25
+ <img src="/graphics/myuwbig.gif" border="0" alt="MyUW Logo">
26
+ </td>
27
+
28
+ <td width="2" bgcolor="#9999FF" rowspan="4"><img src="/graphics/1pixffcc33.gif"
29
+ width="1" height="1" align="BOTTOM" alt=""></td>
30
+
31
+ <td valign="middle" align="left">
32
+ Your personal gateway to the UW Web resources you use most.
33
+ </td>
34
+ </tr>
35
+
36
+
37
+
38
+ <tr>
39
+
40
+ <td align="left" style="padding-left: 10px;" valign="top">
41
+ <form method="get" name="f" action='https://myuw.washington.edu/servlet/user'>
42
+
43
+ <!--
44
+ REMOVING THIS HTML FOR TEST
45
+ <input type="submit" name="defbut" value="Log in with your UW NetID">
46
+ -->
47
+ </form></td>
48
+
49
+ <td align="left" rowspan="3" valign="top">
50
+ <a href="http://www.washington.edu/computing/uwnetid/">What is the UW NetID</a>?<br>
51
+ <a href="/info.html">Help, FAQs</a><br>
52
+ <a href="/about.html">About MyUW</a><br>
53
+ <a href="/policy.html">Privacy statement</a><br>
54
+ <a href="http://www.washington.edu/computing/rules">Appropriate use</a>
55
+ </td>
56
+ </tr>
57
+
58
+ <tr>
59
+ <td align="left" style="padding-left: 10px;" valign="top">
60
+ <form method="get" action='http://myuw.washington.edu/servlet/guest'>
61
+ <input type="submit" value="Enter as a guest"></form></td>
62
+ </tr>
63
+
64
+ <tr>
65
+ <td align="left" style="padding: 10px;">
66
+ <!--
67
+ <div style="background-color: #E6CDE6; padding: 5px;">
68
+ <a href="http://careerweek.washington.edu/">Career Discovery Week, Jan. 26-30, 2009</a><br>All three UW campuses
69
+ </div>
70
+ -->
71
+ </td>
72
+ </tr>
73
+
74
+ <tr>
75
+ <td colspan="3">
76
+ <table border="0" cellpadding="5" >
77
+ <tr><td><img src="/graphics/caution.gif" alt= "caution icon" align="right"></td>
78
+ <td>To prevent unauthorized use of your UW NetID and protect your privacy, <a href="info.html#logout"><b>Log Out</b> and completely exit your Web browser</a> when you finish.</td></table>
79
+ </td>
80
+ </tr>
81
+
82
+ <tr>
83
+ <td colspan="3">
84
+ <hr size="2" noshade >
85
+ <table border="0" cellspacing="0" cellpadding="0" width="100%">
86
+ <tr><td align="center" valign="top" width="73"><a href="http://www.washington.edu/"><img src="/graphics/UW.gif" width="53" height="37" alt="UW logo" border="0"></a></td>
87
+ <td align="left" valign="top" style="white-space:nowrap"><div class="chancontrols"><img src="/graphics/uwtech.gif" width="167" height="44" alt="UW Technology logo" align="top" border="0"></div>
88
+ <div><address><a href="/cgi-bin/contactmyuw.cgi">Contact MyUW</a><br>Copyright&copy; 1998-2009, University of Washington<br>MyUW&reg; is a registered trademark of the University of Washington.</address></div></td>
89
+ </tr></table>
90
+
91
+ </td>
92
+ </tr>
93
+ </table>
94
+
95
+ <script type="text/javascript">
96
+ displayAlert();
97
+ </script>
98
+
99
+ </body>
100
+ </html>
@@ -0,0 +1,15 @@
1
+ <html>
2
+ <head>
3
+ </head>
4
+ <body onLoad="document.relay.submit()">
5
+ <form method=post action="https://weblogin.washington.edu/" name=relay>
6
+ <input type=hidden name=pubcookie_g_req value="b25lPW15dXcud2FzaGluZ3Rvbi5lZHUmdHdvPW15dXcmdGhyZWU9MSZmb3VyPWE1JmZpdmU9R0VUJnNpeD1teXV3Lndhc2hpbmd0b24uZWR1JnNldmVuPUwzTmxjblpzWlhRdmRYTmxjZz09JmVpZ2h0PSZob3N0bmFtZT1teXV3Lndhc2hpbmd0b24uZWR1Jm5pbmU9MSZmaWxlPSZyZWZlcmVyPWh0dHA6Ly9teXV3Lndhc2hpbmd0b24uZWR1LyZzZXNzX3JlPTAmcHJlX3Nlc3NfdG9rPS0xMTgzODQxMDkxJmZsYWc9MA==">
7
+ <input type=hidden name=post_stuff value="">
8
+ <input type=hidden name=relay_url value="https://myuw.washington.edu/PubCookie.reply">
9
+ <noscript>
10
+ <p align=center>You do not have Javascript turned on, please click the button to continue.
11
+ <p align=center>
12
+ <input type=submit name=go value=Continue>
13
+ </noscript>
14
+ </form>
15
+ </html>
@@ -0,0 +1,699 @@
1
+
2
+ <html>
3
+ <head>
4
+ <meta NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
5
+ <style type="text/css">
6
+ div.waitClass { position:absolute; font-size:large; text-align: center;}
7
+ div.readyClass { position:absolute; visibility:hidden;}
8
+ </style>
9
+ <title>Registration</title>
10
+ <link REL="stylesheet" TYPE="text/css" HREF="https://www.washington.edu/home/home.css">
11
+
12
+ </head>
13
+ <body onload="self.focus(); initPage(); return true;">
14
+
15
+ <div id='waitDiv' class='waitClass'>
16
+ <p><br>&nbsp;<br>
17
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
18
+ <tr><td align='center' valign='middle'>
19
+ <table width='60%' border='3' bordercolor='#e90000' cellpadding='20'><tr><td align='center'><h3><i>Please wait while your request is being processed . . . .</i></h3></td></tr>
20
+ </table>
21
+ </td></tr></table></p>
22
+ </div>
23
+ <div id='doneDiv' class='readyClass'>
24
+ <table border='0' cellpadding='0' cellspacing='0' width='100%' align='center'>
25
+ <tr>
26
+ <td width='100%' class='rpad'>
27
+ <a href='http://www.washington.edu/' target='_top'><img src='/sdb_library/images/uwlogo150p.gif' border='0' width='150' height='28' alt='University of Washington'></a>
28
+ </td>
29
+ <td rowspan='2' valign='bottom'>
30
+
31
+ <table border='0' cellpadding='0' cellspacing='0'>
32
+ <tr><td colspan='2' bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td></tr>
33
+ <tr>
34
+ <td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
35
+ <td nowrap><span class='l1text'>
36
+ &nbsp;<font color='#9999cc' face='tahoma,sans-serif,arial,helvetica' style='font-size:110%'><b>Student Personal Services</b></font>&nbsp;<span class='noprint'> | <a href='/students/logout.asp'>Logout</a>&nbsp;</span> </span></td>
37
+ </tr>
38
+ </table>
39
+
40
+ </td>
41
+ </tr>
42
+ <tr>
43
+ <td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td>
44
+ </tr>
45
+ </table>
46
+ <table border='0' cellpadding='0' cellspacing='0' width='100%'>
47
+ <tr>
48
+ <td bgcolor='#e6e6e6'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='5'></TD>
49
+ </tr>
50
+ </table>
51
+ <span class='noprint'>
52
+ <table border='0' cellpadding='0' cellspacing='0'>
53
+ <tr>
54
+ <td nowrap>&#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/register.asp' CLASS='barnav'><font color='#333399'><b>Registration</b></font></a></td>
55
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/grades.asp' CLASS='barnav'><font color='#333399'>Grade Inquiry</font></a></td>
56
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/dars.asp' CLASS='barnav'><font color='#333399'>DARS - Degree Audit</font></a></td>
57
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/finaidstatus.asp' CLASS='barnav'><font color='#333399'>Financial Aid Status</font></a></td>
58
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/sisStudents/uwnetid/tuition.aspx' CLASS='barnav'><font color='#333399'>Tuition Statement</font></a></td>
59
+ </tr>
60
+ <tr>
61
+ <td nowrap>&#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/schedule.asp' CLASS='barnav'><font color='#333399'>Class Schedule</font></a></td>
62
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/unofficial.asp' CLASS='barnav'><font color='#333399'>Unofficial Transcript</font></a></td>
63
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/address.asp' CLASS='barnav'><font color='#333399'>Change of Address</font></a></td>
64
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/emt.asp' CLASS='barnav'><font color='#333399'>Direct Deposit Transfer</font></a></td>
65
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/ccpay.asp' CLASS='barnav'><font color='#333399'>Credit Card Payment</font></a></td>
66
+ </tr>
67
+ <tr>
68
+ <td nowrap>&#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/vschedule.asp' CLASS='barnav'><font color='#333399'>Visual Schedule</font></a></td>
69
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/official.asp' CLASS='barnav'><font color='#333399'>Official Transcript</font></a></td>
70
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/op_charges.asp' CLASS='barnav'><font color='#333399'>Insurance/Optional Charges</font></a></td>
71
+ <td nowrap> &nbsp; &#183; <a href='https://sdb.admin.washington.edu/students/uwnetid/shorttermloan.asp' CLASS='barnav'><font color='#333399'>Short-Term Loan</font></a></td>
72
+ </table>
73
+ </span>
74
+ <TABLE WIDTH="90%" BORDER=0 CELLPADDING=3>
75
+ <TR>
76
+ <TD WIDTH="70%" VALIGN=TOP><BR><H1>Registration - Autumn 2009</H1>
77
+ <FORM METHOD="post" ACTION="register.asp" id=qtrform name=qtrform>
78
+ <SELECT NAME="QYYYY" >
79
+ <OPTION VALUE="00000">&nbsp;Select a different quarter&nbsp;</OPTION>
80
+ <OPTION VALUE="32009">&nbsp;Summer</OPTION>
81
+ </SELECT>
82
+ <INPUT TYPE=HIDDEN NAME=INPUTFORM VALUE="QTRCHG">
83
+ <INPUT TYPE="submit" VALUE="Change Quarter">
84
+ </FORM>
85
+ <p>
86
+ <TABLE BORDER=0 CELLPADDING=2>
87
+ <TR><TH ALIGN=left>Prepared for:</TH><TD>Somebody </TD></TR>
88
+ <TR><TH ALIGN=left>Prepared on:</TH><TD>June 27, 2009 at 9:10 p.m.</TD></TR>
89
+ <tr><th align='left'>Major:</th><td>Underwater Basketweaving</td>
90
+ </tr>
91
+ </TABLE></p>
92
+ </TD>
93
+ <TD WIDTH="20%">
94
+ <TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0>
95
+ <TR BGCOLOR="#DDDDFF"><TD NOWRAP ALIGN=CENTER><FONT CLASS="navlinkbig">&nbsp;Registration&nbsp;Resources&nbsp;</FONT><BR>
96
+ <FONT CLASS="navlink">(will open in new window)</FONT></TD></TR>
97
+ <TR BGCOLOR="#FOFOFO"><TD NOWRAP> <A HREF="http://www.washington.edu/students/timeschd/AUT2009/" TARGET="_TS"> <FONT CLASS="navlink">Time Schedule</A></FONT><BR>
98
+ <A HREF="https://sdb.admin.washington.edu/TimeSchd/UWNetID/findschd.asp?QTRYR=42009" TARGET="FindSchd"> <FONT CLASS="navlink">Schedule Finder</A></FONT><BR>
99
+ <A HREF="http://www.washington.edu/students/crscat/" TARGET="_CRSCAT"> <FONT CLASS="navlink">Course Catalog</A></FONT><BR>
100
+ <A HREF="http://depts.washington.edu/figs/registration" TARGET="_FIG"> <FONT CLASS="navlink">Freshman Interest Groups</A></FONT><BR>
101
+ <A HREF="http://www.washington.edu/students/reg/calendar.html" TARGET="_REGCAL"> <FONT CLASS="navlink">Academic Calendar</A></FONT><BR>
102
+ <A HREF="http://www.washington.edu/students/reg/A2009exam.html" TARGET="_EXAM"> <FONT CLASS="navlink">Final Exam Schedule</A></FONT><BR>
103
+ <A HREF="http://www.washington.edu/students/timeschd/genedinq.html" TARGET="_GENED"> <FONT CLASS="navlink">General Education Search</A></FONT><BR>
104
+ <A HREF="http://www.washington.edu/students/ugrad/advising/secrets.html" TARGET="_TIPS"> <FONT CLASS="navlink">Tips for Closed Classes</A></FONT><BR>
105
+ <A HREF="http://www.washington.edu/admin/pb/home/opb-tuition.htm" TARGET="_TUIT"> <FONT CLASS="navlink">Tuition Rates</A></FONT><BR>
106
+ <A HREF="http://www.washington.edu/students/" TARGET="_SGR"> <FONT CLASS="navlink">Student Guide</A></FONT><BR>
107
+ </TD></TR>
108
+ </TABLE>
109
+ </TD></TR>
110
+ </TABLE>
111
+
112
+ <FORM METHOD="post" ACTION="register.asp" id='regform' name='regform'>
113
+ <INPUT TYPE=HIDDEN NAME=INPUTFORM VALUE="UPDATE">
114
+ <INPUT TYPE=HIDDEN NAME=YR VALUE=2009>
115
+ <INPUT TYPE=HIDDEN NAME=QTR VALUE=4>
116
+ <p><b>Your current schedule:</b><br>
117
+ <TABLE BORDER='1' CELLPADDING='3'>
118
+ <TR BGCOLOR="#d0d0d0">
119
+ <TH ROWSPAN='2'>Drop<BR>from<BR>schedule</TH>
120
+ <TH ROWSPAN='2'>SLN</TH>
121
+ <TH ROWSPAN='2'>Course</TH>
122
+ <TH ROWSPAN='2'>Type</TH>
123
+ <TH ROWSPAN='2'>Credits</TH>
124
+ <TH ROWSPAN='2'><A HREF="http://www.washington.edu/students/gencat/front/Grading_Sys.html", TARGET="_GS">Grading<BR>Option</A></TH>
125
+ <TH ROWSPAN='2'>Title</TH>
126
+ <TH COLSPAN='4'>Meetings</TH>
127
+ </TR>
128
+ <TR BGCOLOR="#d0d0d0">
129
+ <TH>Days</TH>
130
+ <TH>Time</TH>
131
+ <TH>Location</TH>
132
+ <TH>Instructor</TH>
133
+ </TR>
134
+ <TR>
135
+ <TD NOWRAP ALIGN=CENTER><INPUT TYPE=CHECKBOX NAME=action1 VALUE='D'></TD>
136
+ <INPUT TYPE=HIDDEN NAME=entcode1 VALUE="">
137
+ <INPUT TYPE=HIDDEN NAME=sln1 VALUE=14368>
138
+ <INPUT TYPE=HIDDEN NAME=dup1 VALUE= >
139
+ <INPUT TYPE=HIDDEN NAME=credits1>
140
+ <TD ALIGN='center'><TT>14368 </TD>
141
+ <TD NOWRAP><TT>HIST 111 A </TD>
142
+ <TD ALIGN='center'><TT>LC </TD>
143
+ <TD ALIGN='center'><TT>5.0 </TD>
144
+ <TD ALIGN=left><TT><INPUT TYPE=RADIO NAME=gr_sys1 ID=gr_sys_dec1 VALUE="decnochange" CHECKED>standard<BR>
145
+ <INPUT TYPE=RADIO NAME=gr_sys1 ID=gr_sys_sns1 VALUE='snschange' onClick=snsWarning(1,2)>S/NS
146
+ </TD>
147
+ <TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
148
+ <TD NOWRAP><TT>MTWTh</TD>
149
+ <TD NOWRAP><TT>&nbsp;130-&nbsp;220</TD>
150
+ <TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?SMI" TARGET="_SMI">SMI</A> 120</TD>
151
+ <TD NOWRAP><TT><A HREF="http://www.washington.edu/students/icd/S/hist/111jwalker.html" TARGET="_WALKER,JOEL T">WALKER,JOEL T</A>&nbsp;</TD>
152
+ </TR>
153
+ <TR>
154
+ <TD NOWRAP ALIGN=CENTER><INPUT TYPE=CHECKBOX NAME=action2 VALUE='D'></TD>
155
+ <INPUT TYPE=HIDDEN NAME=entcode2 VALUE="">
156
+ <INPUT TYPE=HIDDEN NAME=sln2 VALUE=14372>
157
+ <INPUT TYPE=HIDDEN NAME=dup2 VALUE= >
158
+ <INPUT TYPE=HIDDEN NAME=credits2>
159
+ <TD ALIGN='center'><TT>14372 </TD>
160
+ <TD NOWRAP><TT>HIST 111 AD </TD>
161
+ <TD ALIGN='center'><TT>QZ </TD>
162
+ <TD ALIGN='center'><TT>&nbsp;</TD>
163
+ <TD ALIGN=left><TT>&nbsp;</TD>
164
+ <TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
165
+ <TD NOWRAP><TT>F</TD>
166
+ <TD NOWRAP><TT>1130-1220</TD>
167
+ <TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?CDH" TARGET="_CDH">CDH</A> 223B</TD>
168
+ <TD NOWRAP><TT>&nbsp;&nbsp;</TD>
169
+ </TR>
170
+ <TR>
171
+ <TD NOWRAP ALIGN=CENTER><INPUT TYPE=CHECKBOX NAME=action3 VALUE='D'></TD>
172
+ <INPUT TYPE=HIDDEN NAME=entcode3 VALUE="">
173
+ <INPUT TYPE=HIDDEN NAME=sln3 VALUE=12271>
174
+ <INPUT TYPE=HIDDEN NAME=dup3 VALUE= >
175
+ <INPUT TYPE=HIDDEN NAME=credits3>
176
+ <TD ALIGN='center'><TT>12271 </TD>
177
+ <TD NOWRAP><TT>CSE 322 A </TD>
178
+ <TD ALIGN='center'><TT>LC </TD>
179
+ <TD ALIGN='center'><TT>3.0 </TD>
180
+ <TD ALIGN=left><TT><INPUT TYPE=RADIO NAME=gr_sys3 ID=gr_sys_dec3 VALUE="decnochange" CHECKED>standard<BR>
181
+ <INPUT TYPE=RADIO NAME=gr_sys3 ID=gr_sys_sns3 VALUE='snschange' onClick=snsWarning(3,2)>S/NS
182
+ </TD>
183
+ <TD><TT><A HREF="http://www.washington.edu/students/crscat/cse.html#cse322" TARGET="_CSE322">INTRO FORMAL MODELS</A></TD>
184
+ <TD NOWRAP><TT>MWF</TD>
185
+ <TD NOWRAP><TT>&nbsp;930-1020</TD>
186
+ <TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?EEB" TARGET="_EEB">EEB</A> 037</TD>
187
+ <TD NOWRAP><TT>BEAME,PAUL W.&nbsp;</TD>
188
+ </TR>
189
+ <TR></TR>
190
+ <TR>
191
+ <TD ALIGN='right' COLSPAN='5'><TT>Total credits: 8.0&nbsp;</TD>
192
+ <TD ALIGN=right COLSPAN=6> <A HREF="https://sdb.admin.washington.edu/students/UWNetID/vschedule.asp?Q=4" TARGET="_V_SCHED">Display Visual Schedule</A>
193
+ &nbsp; &nbsp; &nbsp;<A HREF="https://sdb.admin.washington.edu/textbooks/query.asp?qtr=Autumn&sln1=14368&sln2=14372&sln3=12271" TARGET="_tb">Display Textbooks</A></TD></TR>
194
+ </TABLE></p>
195
+ <P><B>Add the following sections:</B><BR>
196
+ <TABLE BORDER=1 CELLPADDING=3>
197
+ <TR BGCOLOR="#d0d0d0">
198
+ <TH>SLN</TH>
199
+ <TH><A HREF="http://www.washington.edu/students/reg/regopt.html#Q1", TARGET="_REGOPT">Add Code or<BR>Faculty Number</A></TH>
200
+ <TH>Credits<BR>(for variable-credit courses)</TH>
201
+ <TH>Check to select<BR><A HREF="http://www.washington.edu/students/gencat/front/Grading_Sys.html", TARGET="_GS">S/NS grading</A></TH>
202
+ <TH>Status</TH>
203
+ <TR>
204
+ <INPUT TYPE=HIDDEN NAME=action4 VALUE="A">
205
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln4 VALUE="" ></TD>
206
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode4 VALUE="" ></TD>
207
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits4 VALUE="" ></TD>
208
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys4 onClick=snsWarning(4,1) ></TD>
209
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup4 VALUE=" ">
210
+ <TD> &nbsp; <BR></TD>
211
+ </TR>
212
+ <TR>
213
+ <INPUT TYPE=HIDDEN NAME=action5 VALUE="A">
214
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln5 VALUE="" ></TD>
215
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode5 VALUE="" ></TD>
216
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits5 VALUE="" ></TD>
217
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys5 onClick=snsWarning(5,1) ></TD>
218
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup5 VALUE=" ">
219
+ <TD> &nbsp; <BR></TD>
220
+ </TR>
221
+ <TR>
222
+ <INPUT TYPE=HIDDEN NAME=action6 VALUE="A">
223
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln6 VALUE="" ></TD>
224
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode6 VALUE="" ></TD>
225
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits6 VALUE="" ></TD>
226
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys6 onClick=snsWarning(6,1) ></TD>
227
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup6 VALUE=" ">
228
+ <TD> &nbsp; <BR></TD>
229
+ </TR>
230
+ <TR>
231
+ <INPUT TYPE=HIDDEN NAME=action7 VALUE="A">
232
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln7 VALUE="" ></TD>
233
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode7 VALUE="" ></TD>
234
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits7 VALUE="" ></TD>
235
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys7 onClick=snsWarning(7,1) ></TD>
236
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup7 VALUE=" ">
237
+ <TD> &nbsp; <BR></TD>
238
+ </TR>
239
+ <TR>
240
+ <INPUT TYPE=HIDDEN NAME=action8 VALUE="A">
241
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln8 VALUE="" ></TD>
242
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode8 VALUE="" ></TD>
243
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits8 VALUE="" ></TD>
244
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys8 onClick=snsWarning(8,1) ></TD>
245
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup8 VALUE=" ">
246
+ <TD> &nbsp; <BR></TD>
247
+ </TR>
248
+ <TR>
249
+ <INPUT TYPE=HIDDEN NAME=action9 VALUE="A">
250
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln9 VALUE="" ></TD>
251
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode9 VALUE="" ></TD>
252
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits9 VALUE="" ></TD>
253
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys9 onClick=snsWarning(9,1) ></TD>
254
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup9 VALUE=" ">
255
+ <TD> &nbsp; <BR></TD>
256
+ </TR>
257
+ <TR>
258
+ <INPUT TYPE=HIDDEN NAME=action10 VALUE="A">
259
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln10 VALUE="" ></TD>
260
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode10 VALUE="" ></TD>
261
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits10 VALUE="" ></TD>
262
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys10 onClick=snsWarning(10,1) ></TD>
263
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup10 VALUE=" ">
264
+ <TD> &nbsp; <BR></TD>
265
+ </TR>
266
+ <TR>
267
+ <INPUT TYPE=HIDDEN NAME=action11 VALUE="A">
268
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=sln11 VALUE="" ></TD>
269
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=5 MAXLENGTH=5 NAME=entcode11 VALUE="" ></TD>
270
+ <TD ALIGN=CENTER><INPUT TYPE=TEXT SIZE=4 MAXLENGTH=2 NAME=credits11 VALUE="" ></TD>
271
+ <TD ALIGN=CENTER><INPUT TYPE=CHECKBOX VALUE="sns" NAME=gr_sys11 onClick=snsWarning(11,1) ></TD>
272
+ <INPUT TYPE=HIDDEN SIZE=1 NAME=dup11 VALUE=" ">
273
+ <TD> &nbsp; <BR></TD>
274
+ </TR>
275
+ </TABLE></p><BR><INPUT TYPE=HIDDEN NAME=maxdrops VALUE=3>
276
+ <INPUT TYPE=HIDDEN NAME=maxadds VALUE=8>
277
+ <INPUT TYPE="submit" VALUE=' Update Schedule 'onClick="return editFormInput()">
278
+ </FORM>
279
+ <br><p>Please <A HREF='http://www.washington.edu/students/ps/feedback.html', TARGET='_FEEDBACK'>let us know</A> if you encounter a problem with this service, or have a suggestion for how it might be improved.</p><span class='noprint'><p><center>
280
+ <table border='0' cellpadding='4' bgcolor='yellow' width='80%'><tr><td>
281
+
282
+ <table border='0' cellpadding='5' cellspacing='0' bgcolor='white' width='100%'><tr>
283
+ <td><img src='/sdb_library/images/caution.gif' width='30' height='30' hspace='10'></td>
284
+ <td>
285
+ To protect your privacy and prevent unauthorized use,
286
+ &nbsp;<a href='http://www.washington.edu/computing/weblogin/logout.html' target='_logout'>close
287
+ <b>ALL</b> of your web browser windows</a>
288
+ and web-enabled applications when you finish.
289
+ </td>
290
+ </tr></table>
291
+
292
+ </td></tr></table>
293
+ </center></p></span>
294
+ <P></P>
295
+ <table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'>
296
+ <tr>
297
+ <td rowspan='2'>
298
+ <a href='http://www.washington.edu/'><img src='/sdb_library/images/footersealW.gif' border='0' height='48' width='48' hspace='5' vspace='7' alt='UW Seal'></a>
299
+ </td>
300
+ <td rowspan='3' bgcolor='#666666' width='5'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
301
+ <td colspan='2' bgcolor='#666666' height='1'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
302
+ </tr><tr>
303
+ <td width='100%'>
304
+ <table border='0' width='100%'>
305
+ <tr>
306
+ <td valign='top'><address>
307
+ Office of the Registrar<br>
308
+ regoff@u.washington.edu<br>
309
+ June 27, 2009
310
+ </address>
311
+ </td>
312
+ </tr>
313
+ </table>
314
+ </td>
315
+ </tr><tr height='1'>
316
+ <td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
317
+ </tr>
318
+ </table>
319
+ </div>
320
+
321
+ </body>
322
+ </html>
323
+
324
+ <script LANGUAGE="JavaScript">
325
+ <!--
326
+ window.name = "Registration";
327
+ /*************************** CLIENT-SIDE SCRIPTS ******************************/
328
+ /******************************************************************************/
329
+ var timer;
330
+ /******************************************************************************
331
+ * displayTimeRemain
332
+ * This function is initiated with a setInterval in the initPage function.
333
+ * It updates the remaining time displayed on the page in the timeRemain form
334
+ * field.
335
+ ******************************************************************************/
336
+ function displayTimeRemain(iMSecsEnd)
337
+ {
338
+ var elem, iDisplaySecs,iMin, iSec, sMin, sSec, oNoTime, oRemain;
339
+
340
+ var oDate = new Date();
341
+ var iMSecsNow = oDate.getTime();
342
+
343
+ if (document.getElementById){
344
+ if (document.getElementById('txtTimeRemain')){
345
+ elem = document.getElementById('txtTimeRemain');
346
+ }
347
+ }else if (document.all){
348
+ if (document.all['txtTimeRemain']){
349
+ elem = document.all['txtTimeRemain'];
350
+ }
351
+ }else if (document.layers){
352
+ if (document.layers['txtTimeRemain']){
353
+ elem = document.layers['txtTimeRemain'];
354
+ }
355
+ }
356
+
357
+ if (elem){
358
+ iDisplaySecs = Number(iMSecsEnd) - iMSecsNow;
359
+ if (iDisplaySecs > 1000){
360
+ oNoTime = new Date(oDate.setHours(00,00,00));
361
+ oRemain = new Date(oNoTime.setTime(oNoTime.getTime() + iDisplaySecs));
362
+ sMin = " " + String(oRemain.getMinutes());
363
+ iSec = oRemain.getSeconds();
364
+ sSec = String(iSec);
365
+ iSec = oRemain.getSeconds();
366
+ if (iSec < 10){
367
+ sSec = "0" + String(iSec);
368
+ }
369
+ elem.value = sMin + ":" + sSec;
370
+ }else{
371
+ elem.value = "It's time!";
372
+ clearInterval(timer);
373
+ return(false);
374
+ }
375
+ }
376
+ return (true);
377
+ }
378
+
379
+ /******************************************************************************
380
+ * initPage
381
+ * This function handles flipping the divs when 'processing please wait'
382
+ * is displayed and also handles starting the timer when the reject feature is
383
+ * employed. This function is triggered by the onload event of the body of the
384
+ * response.
385
+ ******************************************************************************/
386
+ function initPage()
387
+ {
388
+ var oWait, oDone, elem, timer, sMin, iMin, sSec, iSec, oDate, oNoTime, oRemain;
389
+ if (document.getElementById){
390
+ if (document.getElementById('waitDiv')){
391
+ oWait = document.getElementById('waitDiv').style;
392
+ oDone = document.getElementById('doneDiv').style;
393
+ }
394
+ }else if (document.all){
395
+ if (document.all['waitDiv']){
396
+ oWait = document.all['waitDiv'].style;
397
+ oDone = document.all['doneDiv'].style;
398
+ }
399
+ }else if (document.layers){
400
+ if (document.layers['waitDiv']){
401
+ oWait = document.layers['waitDiv'];
402
+ odone = document.layers['doneDiv'];
403
+ }
404
+ }
405
+
406
+ if (oWait && oDone){
407
+ oWait.visibility = 'hidden';
408
+ oDone.visibility = 'visible';
409
+ }
410
+
411
+ if (document.getElementById){
412
+ if (document.getElementById('txtTimeRemain')){
413
+ elem = document.getElementById('txtTimeRemain');
414
+ }
415
+ }else if (document.all){
416
+ if (document.all['txtTimeRemain']){
417
+ elem = document.all['txtTimeRemain'];
418
+ }
419
+ }else if (document.layers){
420
+ if (document.layers['txtTimeRemain']){
421
+ elem = document.layers['txtTimeRemain'];
422
+ }
423
+ }
424
+ if (elem){
425
+ iMSecsDelay = Number(elem.value) * 60 * 1000;
426
+ oDate = new Date();
427
+ oEndTime = new Date(oDate.setTime(oDate.getTime() + iMSecsDelay));
428
+ iMSecsEnd = oEndTime.getTime();
429
+ oNoTime = new Date(oDate.setHours(00,00,00));
430
+ oRemain = new Date(oNoTime.setTime(oNoTime.getTime() + iMSecsDelay));
431
+ sMin = " " + String(oRemain.getMinutes());
432
+ iSec = oRemain.getSeconds();
433
+ sSec = String(iSec);
434
+ iSec = oRemain.getSeconds();
435
+ if (iSec < 10){
436
+ sSec = "0" + String(iSec);
437
+ }
438
+ elem.value = sMin + ":" + sSec;
439
+
440
+ if (iMSecsEnd > 1000){
441
+ timer = setInterval("displayTimeRemain(iMSecsEnd)",1000);
442
+ }else{
443
+ elem.value = "It's time!";
444
+ }
445
+ }
446
+ return;
447
+ }
448
+ /******************************************************************************
449
+ * checkDelayFormInput
450
+ * This function is triggered by the onClick event of the Submit button.
451
+ ******************************************************************************/
452
+ function checkDelayFormInput()
453
+ {
454
+ var oDate,iTimeNow;
455
+
456
+ if (document.getElementById){
457
+ if (document.getElementById('txtTimeRemain')){
458
+ elem = document.getElementById('txtTimeRemain');
459
+ }
460
+ }else if (document.all){
461
+ if (document.all['txtTimeRemain']){
462
+ elem = document.all['txtTimeRemain'];
463
+ }
464
+ }else if (document.layers){
465
+ if (document.layers['txtTimeRemain']){
466
+ elem = document.layers['txtTimeRemain'];
467
+ }
468
+ }
469
+ if (elem){
470
+ if (isNaN(elem.value.substring(0,1))){
471
+ return(true);
472
+ }
473
+ }
474
+ return (false);
475
+ }
476
+
477
+ /******************************************************************************
478
+ * editFormInput
479
+ * This function is triggered by the onClick event of the Submit button.
480
+ * It will edit the form input for basic valid values and display a
481
+ * warning if the student is attempting to drop all of their classes.
482
+ ******************************************************************************/
483
+ function editFormInput()
484
+ {
485
+ var i, sMsg, sInput;
486
+ var f = document.regform;
487
+ var iMaxDrops = parseInt(f.maxdrops.value);
488
+ var iMaxAdds = parseInt(f.maxadds.value);
489
+ var sDropAll = "Y";
490
+ var sDropAny = "N";
491
+
492
+ sMsg = "";
493
+
494
+ for (i=1; i<=iMaxDrops + iMaxAdds; i++) {
495
+ if ( f["action"+i].value == "D" ) {
496
+ // if checked, dropping something
497
+ if (f["action"+i].checked) {
498
+ sDropAny = "Y";
499
+ }
500
+ // if not checked, not dropping all
501
+ else {
502
+ sDropAll = "N";
503
+ }
504
+ // drop edits: entry code
505
+ sInput = f["entcode"+i].value;
506
+ if ( sInput!="" && (isNaN(sInput) || (!isNaN(sInput) && parseInt(sInput)<10000) ) ) {
507
+ sMsg += "\"" + sInput + "\"" + " is not a valid drop code. "
508
+ + "Please enter the correct 5-digit code.";
509
+ alert(sMsg);
510
+ f["entcode"+i].focus();
511
+ return (false);
512
+ }
513
+ // drop edits: checkbox
514
+ if ( sInput!="" && !f["action"+i].checked ) {
515
+ sMsg += "Please check the drop box if you wish to drop SLN "
516
+ + f["sln"+i].value + ".";
517
+ f["action"+i].focus();
518
+ alert(sMsg);
519
+ return (false);
520
+ }
521
+ }
522
+ else {
523
+ // if an sln is being added or changed, not dropping all
524
+ if (!isNaN(parseInt(f["sln"+i].value))) {
525
+ sDropAll = "N";
526
+ }
527
+ sInput = f["sln"+i].value;
528
+ if ( sInput!="" && (isNaN(sInput) || (!isNaN(sInput) && parseInt(sInput)<1000) ) ) {
529
+ sMsg += "\"" + sInput + "\"" + " is not a valid SLN. "
530
+ + "Please enter the correct Schedule Line Number.";
531
+ f["sln"+i].focus();
532
+ alert(sMsg);
533
+ return (false);
534
+ }
535
+ sInput = f["entcode"+i].value;
536
+ if ( sInput!="" && (isNaN(sInput) || (!isNaN(sInput) && parseInt(sInput)<10000) ) ) {
537
+ sMsg += "\"" + sInput + "\"" + " is not a valid add code or faculty number. "
538
+ + "Please enter the correct 5-digit code.";
539
+ f["entcode"+i].focus();
540
+ alert(sMsg);
541
+ return (false);
542
+ }
543
+ }
544
+ }
545
+
546
+ if ( sDropAll == "Y" && sDropAny == "Y" ) {
547
+ if (iMaxAdds > 0) {
548
+ sMsg = "WARNING: You have requested to drop all of your courses. You will "
549
+ + "be considered withdrawn for the quarter unless you subsequently add "
550
+ + "courses.\n\n"
551
+ + "If this is your intention, click \"OK\". Otherwise click \"Cancel\".";
552
+ }
553
+ else {
554
+ sMsg = "WARNING: You have requested to drop all of your courses and withdraw "
555
+ + "for the quarter. It is past the deadline to add courses.\n\nIf you are "
556
+ + "withdrawing, click \"OK\". Otherwise click \"Cancel\".";
557
+ }
558
+ return (confirm(sMsg));
559
+ }
560
+
561
+ return (true);
562
+ }
563
+
564
+ /******************************************************************************
565
+ * editMMNotice
566
+ * This function is triggered by the onClick event of the MMNotice submit button.
567
+ ******************************************************************************/
568
+ function editMMForm() {
569
+
570
+ var f = document.mmform;
571
+ var sMsg = "You must check the box to acknowledge you have\n"
572
+ + "read the meningococcal meningitis notice before\n"
573
+ + "you may continue with registration. ";
574
+ if (!f["chkMMNotice"].checked){
575
+ alert(sMsg);
576
+ return (false);
577
+ }
578
+
579
+ return (true);
580
+ }
581
+ /******************************************************************************
582
+ * editRIAANotice
583
+ * This function is triggered by the onClick event of the RIAANotice submit button.
584
+ ******************************************************************************/
585
+ function editRIAAForm() {
586
+
587
+ var f = document.riaaform;
588
+ var sMsg = "You must check the box to acknowledge you have read\n"
589
+ + "the File-Sharing and Copyright Infringement Notice\n"
590
+ + " before you may continue with registration. ";
591
+ if (!f["chkRIAANotice"].checked){
592
+ alert(sMsg);
593
+ return (false);
594
+ }
595
+
596
+ return (true);
597
+ }
598
+ /******************************************************************************
599
+ * editCleryNotice
600
+ * This function is triggered by the onClick event of the Clery Notice submit button.
601
+ ******************************************************************************/
602
+ function editCleryForm() {
603
+
604
+ var oElem;
605
+ var sMsg = "You must check the box to acknowledge you have\n"
606
+ + " viewed the Your Safety Your Health notice before\n"
607
+ + " you may continue with registration. ";
608
+
609
+ oElem = document.getElementById('chkCleryNotice');
610
+ if (oElem){
611
+ if (!oElem.checked){
612
+ alert(sMsg);
613
+ return (false);
614
+ }
615
+ }
616
+
617
+ return (true);
618
+ }
619
+
620
+ /******************************************************************************
621
+ * snsWarning
622
+ ******************************************************************************/
623
+ function snsWarning(iSub,iType) {
624
+ var f = document.regform;
625
+ var sMsg = "REMINDER: Undergraduates may only use courses graded with the \n"
626
+ + "S/NS (Satisfactory/Not-Satisfactory) option to meet General Electives.\n"
627
+ + "Graduate students should see their adviser before selecting "
628
+ + "S/NS grading. \n\n"
629
+ + "S/NS is not the same as CREDIT/NO CREDIT. Click on the grading option\n"
630
+ + "link for an explanation of the grade system.\n\n"
631
+ + "One $20 change fee is assessed for any number of change transactions made\n"
632
+ + "during a given day including changes to or from S/NS grading option.\n\n"
633
+ + "Are you sure you want to take this course with the S/NS grading option?\n\n"
634
+ + "NOTE: Your request to change to S/NS grading will not be processed until\n"
635
+ + "you click the \"Update Schedule\" button at the bottom of the page and\n"
636
+ + "you receive the \"Schedule updated\" confirmation message.";
637
+
638
+ if (iType == 1) {
639
+ if ( f["gr_sys"+iSub].checked ) {
640
+ if ( !confirm(sMsg) ){
641
+ f["gr_sys"+iSub].checked = false;
642
+ }
643
+ }
644
+ }
645
+
646
+ if (iType == 2) {
647
+ if ( f["gr_sys_sns"+iSub].checked ) {
648
+ if ( !confirm(sMsg) ){
649
+ f["gr_sys_sns"+iSub].checked = false;
650
+ f["gr_sys_dec"+iSub].checked = true;
651
+ }
652
+ }
653
+ }
654
+ }
655
+ function openWin(sWindowURL,sWindowName,iWidth,iHeight)
656
+ {
657
+ if (iWidth > screen.width) {
658
+ iWidth = screen.width * .99;
659
+ }
660
+ if (iHeight > screen.height) {
661
+ iHeight = screen.height * .99;
662
+ }
663
+
664
+ popupWindow = open
665
+ ( sWindowURL,
666
+ sWindowName,
667
+ "resizable=no"
668
+ + ",scrollbars=yes"
669
+ + ",toolbar=no"
670
+ + ",location=no"
671
+ + ",directories=no"
672
+ + ",status=no"
673
+ + ",menubar=no"
674
+ + ",width=" + iWidth
675
+ + ",height=" + iHeight
676
+ //+ ",top="+((screen.height-screen.height))
677
+ //+ ",left="+((screen.width-screen.width))
678
+ );
679
+ }
680
+
681
+
682
+ //-->
683
+ </script>
684
+ <noscript>
685
+ <div id="__Div" class="waitClass">
686
+ <p><br>&nbsp;<br>
687
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
688
+ <tr><td align="center" valign="middle">
689
+ <table width="100%" border="3" bordercolor="#e90000" cellpadding="20">
690
+ <tr>
691
+ <td align="center" bgcolor="#ffffff">
692
+ <h3><br><i>The Registration service requires that you enable JavaScript in your web browser. Please enable JavaScript and try again. For information on how to enable Javascript, see <a href=http://www.washington.edu/computing/web/cookiesjavascript.html>Accepting Cookies and Enabling Javascript.</a></i>
693
+ </h3>
694
+ </td>
695
+ </tr>
696
+ </table>
697
+ </td></tr></table></p>
698
+ </div>
699
+ </noscript>