rubyuw 0.99.1

Sign up to get free protection for your applications and to get access to all the features.
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>