From: <Saved by Windows Internet Explorer 8>
Subject: Teachers' Domain: Virtual Cave
Date: Fri, 16 Apr 2010 08:55:52 -0700
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CADD42.9DF464E0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.virtmap/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Teachers' Domain: =
Virtual Cave</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3Dcontent-type>
<META name=3Ddescription=20
content=3D"This interactive resource adapted from The Virtual Cave by =
Dave Bunnell, presents images of various features found in solution =
caves and includes detailed information on how these features are formed =
and where they occur.">
<SCRIPT type=3Dtext/javascript>=0A=
    var is_preview =3D false;=0A=
    </SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript>=0A=
    var page_type =3D 'learning_object';=0A=
</SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/resource.css" =
charset=3Dutf-8><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/rev_com.css" =
charset=3Dutf-8><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/common.css" =
charset=3Dutf-8><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/global_login.css"=20
charset=3Dutf-8><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/edition_k12.css" =
charset=3Dutf-8>
<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/vendor/prototype.js"></SCRI=
PT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/vendor/parseuri.js"></SCRIP=
T>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/generic.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/common.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/jsd_4_5_8/e.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/jsd_4_5_8/test_drive.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/init_auth.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/standards.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/dynamo.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/folders.js"></SCRIPT>

<SCRIPT language=3Djavascript type=3Dtext/javascript=20
src=3D"http://www.teachersdomain.org/js_4_5_8/rev_comment.js"></SCRIPT>
<!--[if IE]><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.teachersdomain.org/css_4_5_8/hack_ie.css"><![endif]-->=
<!--[if IE 6]>=0A=
<link rel=3D"stylesheet" type=3D"text/css" =
href=3D"/css_4_5_8/hack_ie6.css" />=0A=
<script type=3D"text/javascript">=0A=
    IS_IE6 =3D true;=0A=
</script>=0A=
<![endif]--><!--[if IE 7]>=0A=
<link rel=3D"stylesheet" type=3D"text/css" =
href=3D"/css_4_5_8/hack_ie7.css" />=0A=
<script type=3D"text/javascript">=0A=
    IS_IE7 =3D true;=0A=
</script>=0A=
<![endif]-->
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18783"></HEAD>
<BODY>
<DIV id=3Dtd_banner>
<DIV id=3Dlogos>
<DIV style=3D"POSITION: relative" class=3Dmax_constraint><A=20
href=3D"http://www.teachersdomain.org/"><IMG alt=3D"Teachers' =
Domain=C2=AE"=20
src=3D"http://www.teachersdomain.org/images/logo_k12_top.gif"></A>=20
<DIV style=3D"POSITION: absolute; TOP: 0px; RIGHT: 0px"=20
id=3Daff_brand></DIV></DIV></DIV>
<DIV style=3D"BACKGROUND-IMAGE: url(/images/logo_k12_bot.gif)" =
id=3Dcrumb_nav>
<DIV class=3Dmax_constraint>
<DIV style=3D"DISPLAY: none" id=3Dcrumb_default>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_k12_sci.ess.earthsys.changearth_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci/">Science</A> =
</LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci.ess/">Earth =
and Space=20
  Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys/">E=
arth=20
  System, Structure, and Processes</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.cha=
ngearth/">Changes=20
  in the Earth</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_k12_sci.ess.earthsys.ematprop_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci/">Science</A> =
</LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci.ess/">Earth =
and Space=20
  Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys/">E=
arth=20
  System, Structure, and Processes</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.ema=
tprop/">Properties=20
  of Earth Materials</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_k12_sci.ess.earthsys.surface_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci/">Science</A> =
</LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci.ess/">Earth =
and Space=20
  Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys/">E=
arth=20
  System, Structure, and Processes</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.sur=
face/">Surface=20
  Processes</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_k12_sci.ess.watcyc.watcyc_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci/">Science</A> =
</LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12/sci.ess/">Earth =
and Space=20
  Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.watcyc/">Wat=
er=20
  Cycle, Weather, and Climate</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.watcyc.watcy=
c/">Water=20
  Cycle</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_vitalny_hscore.sci.earth.geol.eros_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/vitalny/hscore.sci/">Sci=
ence</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/vitalny/hscore.sci.earth=
/">Earth=20
  and Space Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/vitalny/hscore.sci.earth=
.geol/">Geology</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/vitalny/hscore.sci.earth=
.geol.eros/">Weathering,=20
  Erosion, and Deposition</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_tdce_collsci.geos.topic.geol_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos/">Geos=
cience</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos.topic.=
geol/">Geology</A>=20
  </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_tdce_collsci.geos.course.dyn_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos/">Geos=
cience</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos.course=
.dyn/">Dynamic=20
  Earth</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none" =
id=3Dcrumb__collection_tdce_collsci.geos.course.min_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos/">Geos=
cience</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos.course=
.min/">Mineralogy=20
  and Petrology</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_tdce_collsci.geos.course.geochem_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos/">Geos=
cience</A>=20
  </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/tdce/collsci.geos.course=
.geochem/">Geochemistry</A>=20
  </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_k12ma_scima.essma.earthsysma.changearthma_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12ma/scima/">Science =
and=20
  Technology/Engineering</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma/">Eart=
h and=20
  Space Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.earths=
ysma/">Earth=20
  System, Structure, and Processes</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.earths=
ysma.changearthma/">Changes=20
  in the Earth</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_k12ma_scima.essma.earthsysma.surfacema_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12ma/scima/">Science =
and=20
  Technology/Engineering</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma/">Eart=
h and=20
  Space Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.earths=
ysma/">Earth=20
  System, Structure, and Processes</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.earths=
ysma.surfacema/">Surface=20
  Processes</A> </LI>
  <LI>Resource </LI></UL></DIV>
<DIV style=3D"DISPLAY: none"=20
id=3Dcrumb__collection_k12ma_scima.essma.watcycma.watcycma_>
<UL class=3Dcrumb>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/">Home</A></LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  href=3D"http://www.teachersdomain.org/collection/k12ma/scima/">Science =
and=20
  Technology/Engineering</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma/">Eart=
h and=20
  Space Science</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.watcyc=
ma/">Water=20
  Cycle, Weather, and Climate</A> </LI>
  <LI><A style=3D"BACKGROUND-IMAGE: url(/images/arrow_white.gif)"=20
  =
href=3D"http://www.teachersdomain.org/collection/k12ma/scima.essma.watcyc=
ma.watcycma/">Water=20
  Cycle</A> </LI>
  <LI>Resource </LI></UL></DIV></DIV>
<DIV class=3Dclear> </DIV></DIV>
<DIV id=3Ddisc_context_color>
<DIV id=3Dsearch_my>
<DIV style=3D"BACKGROUND-IMAGE: url(/images/tabside_k12.gif)" =
id=3Dsearch>
<DIV id=3Dsearch_container>
<FORM method=3Dget action=3D/search/><INPUT value=3Dsimple type=3Dhidden =
name=3Dmode>=20
<INPUT id=3Dsearch_box class=3Dbox type=3Dtext name=3Dquery> <INPUT =
class=3Dbutton value=3DSearch type=3Dsubmit> </FORM>
<P><A href=3D"http://www.teachersdomain.org/search/">Advanced Search</A> =

</P></DIV></DIV>
<DIV id=3Dmy_stuff>
<P id=3Duser_string_container>User: <SPAN id=3Duser_string></SPAN></P>
<DIV id=3Dmy_help>
<DIV id=3Dhelp_out><A style=3D"BACKGROUND: url(/images/help.gif) =
no-repeat 0px 57%"=20
class=3Dhelp href=3D"http://www.teachersdomain.org/faq.html">Help</A>=20
<DIV style=3D"DISPLAY: none" id=3Dsign_out_top>| <A=20
href=3D"http://www.teachersdomain.org/logout/">Sign out</A> </DIV></DIV>
<UL id=3Dmy_links class=3Dpulldown_menu>
  <LI><A=20
  style=3D"BACKGROUND-IMAGE: url(/images/folder_arrow.gif); BORDER-LEFT: =
#999966 1px solid"=20
  id=3Dpulldown_link class=3Dpulldown=20
  onmousedown=3D"showFolders('top_folders','click');" =
href=3D"javascript:void%200"=20
  name=3Dpulldown_link>My Folders</A>=20
  <UL id=3Dtop_folders onmouseover=3D"showFolders('top_folders');"=20
  onmouseout=3D"hideFolders('top_folders');">
    <LI><A style=3D"FONT-WEIGHT: bold" =
onclick=3Ddocument.location=3Dmanage_folders;=20
    =
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.vir=
tmap/#">Manage=20
    My Folders</A> </LI></UL></LI>
  <LI><A onclick=3D"document.location=3D'/groups/';return false;"=20
  href=3D"http://www.teachersdomain.org/groups/">My Groups</A> </LI>
  <LI><A onclick=3D"document.location=3D'/profile/';return false;"=20
  href=3D"http://www.teachersdomain.org/profile/">My Profile</A>=20
</LI></UL></DIV></DIV></DIV></DIV></DIV><!-- end banner -->
<DIV id=3Dglobal_login_container>
<DIV id=3Dsite_alert_lo class=3Dsite_alert></DIV>
<DIV id=3Dsso_banner></DIV>
<TABLE id=3Dlogin-drive cellSpacing=3D0>
  <TBODY>
  <TR>
    <TD id=3Dltd-left-col>
      <DIV id=3Dltd-stnd-login>
      <FORM class=3Dtdr-ignore method=3Dpost action=3D/login/>
      <DIV class=3Dlabel><LABEL for=3Dusername>Sign-in Name:</LABEL> =
</DIV>
      <DIV class=3Dtarget><INPUT id=3Dusername class=3Duname_box =
type=3Dtext=20
      name=3Dusername> </DIV>
      <DIV id=3Dorg_data>
      <DIV class=3Dlabel>
      <P>Organization:</P></DIV>
      <DIV class=3Dtarget>
      <H2 id=3Dsignin_org_name></H2>
      <P><A class=3Dtdr-ignore=20
      href=3D"http://www.teachersdomain.org/login_change_org/">Change=20
      Organization</A></P></DIV></DIV><!-- end org data div -->
      <DIV class=3Dlabel><LABEL for=3Dpassword>Password:</LABEL> </DIV>
      <DIV class=3Dtarget><INPUT id=3Dpassword class=3Dpass_box =
type=3Dpassword=20
      name=3Dpassword> <INPUT class=3Dbutton value=3D"Sign in" =
type=3Dsubmit> </DIV>
      <P class=3Dlost_pass><A class=3Dtdr-ignore=20
      href=3D"http://www.teachersdomain.org/lost_pass/">Forgot Your=20
      Password?</A></P></FORM></DIV>
      <DIV id=3Dltd-sso-login1>
      <H2>Already have a TD account?</H2>
      <P>If you are already a Teachers' Domain user, sign in now to =
connect your=20
      Teachers' Domain and <SPAN=20
      id=3Dsso-tdr-name-login1a></SPAN>&nbsp;accounts.</P>
      <P>Your <SPAN id=3Dsso-tdr-name-login1b></SPAN>ID: <SPAN=20
      id=3Dsso-tdr-id-login1></SPAN>&nbsp;<A class=3Dtdr-ignore=20
      onclick=3D"SSOManager.clear_sso_user();return false;"=20
      href=3D"javascript:void(0)"><SPAN=20
      style=3D"FONT-SIZE: =
85%">not&nbsp;your&nbsp;account?</SPAN></A></P>
      <FORM class=3Dtdr-ignore method=3Dpost =
action=3Djavascript:void(0)><INPUT class=3Dbutton =
onclick=3D"hideElement('ltd-sso-login1');showElement('ltd-sso-login2');re=
turn false;" value=3D"Sign In and Connect this Account" type=3Dsubmit>=20
      </FORM></DIV>
      <DIV id=3Dltd-sso-login2>
      <FORM class=3Dtdr-ignore method=3Dpost action=3D/login/>
      <DIV class=3Dlabel><LABEL style=3D"MARGIN-TOP: 0px" =
for=3Dusername_sso>Teachers'=20
      Domain sign-in name:</LABEL> </DIV>
      <DIV style=3D"PADDING-BOTTOM: 10px; PADDING-TOP: 5px" =
class=3Dtarget><INPUT=20
      id=3Dusername_sso class=3Duname_box type=3Dtext name=3Dusername> =
</DIV>
      <DIV style=3D"CLEAR: both" id=3Dorg_data_ssol>
      <DIV class=3Dlabel>
      <P>Organization:</P></DIV>
      <DIV class=3Dtarget>
      <H2 id=3Dsignin_org_name_sso></H2>
      <P><A class=3Dtdr-ignore=20
      href=3D"http://www.teachersdomain.org/login_change_org/">Change=20
      Organization</A></P></DIV></DIV><!-- end org data div -->
      <DIV style=3D"CLEAR: both" class=3Dlabel><LABEL=20
      for=3Dpassword_sso>Password:</LABEL> </DIV>
      <DIV class=3Dtarget><INPUT id=3Dpassword_sso class=3Dpass_box =
type=3Dpassword=20
      name=3Dpassword> </DIV>
      <P class=3Dlost_pass><A class=3Dtdr-ignore=20
      href=3D"http://www.teachersdomain.org/lost_pass/">Forgot Your=20
      Password?</A></P>
      <P style=3D"MARGIN: 12px 8px 10px">Signing in now will connect =
your <SPAN=20
      id=3Dsso-tdr-name-login1c></SPAN>&nbsp;and Teachers' Domain =
accounts, so=20
      that in the future you will automatically be signed into Teachers' =
Domain=20
      when you come from <SPAN =
id=3Dsso-tdr-name-login1d></SPAN>.</P><INPUT style=3D"MARGIN-BOTTOM: =
15px; MARGIN-LEFT: 120px" class=3Dbutton value=3D"Sign in" =
type=3Dsubmit>=20
      </FORM></DIV></TD>
    <TD id=3Dltd-right-col>
      <DIV id=3Dltd-rc-content-1>
      <H2>Not yet registered?</H2>
      <P>Register now to download, share, and save resources. It's =
simple, safe,=20
      and free! <A style=3D"WHITE-SPACE: nowrap" =
id=3Dltd-rc-learn-more-link1=20
      class=3Dtdr-ignore=20
      =
onclick=3D"swap_content('ltd-rc-learn-more','ltd-rc-learn-more-link1');" =

      href=3D"javascript:void(0);">Learn More</A></P></DIV>
      <DIV id=3Dltd-rc-content-sso-pre>
      <H2>First time here?</H2>
      <P>As a <SPAN id=3Dsso-tdr-name-login1e></SPAN>&nbsp;user, you may =
browse=20
      Teachers' Domain and view as many resources as you wish without=20
      registering.</P>
      <P>However, for access to all fo the features of Teachers' Domain, =
we'll=20
      need a little more information. <A style=3D"WHITE-SPACE: nowrap"=20
      id=3Dltd-rc-learn-more-link-sso-pre class=3Dtdr-ignore=20
      =
onclick=3D"swap_content('ltd-rc-learn-more','ltd-rc-learn-more-link-sso-p=
re');"=20
      href=3D"javascript:void(0);">Learn More</A></P></DIV>
      <DIV id=3Dltd-rc-content-2>
      <H2 style=3D"COLOR: #cc0000">You are now "Test Driving" Teachers'=20
Domain</H2>
      <P>You may view up to 7 resources in this limited trial =
period.</P>
      <P>You have <SPAN id=3Dltd-left-string>6</SPAN> views remaining. =
Register=20
      now for unlimited free access and to download, share, and save =
resources.=20
      <A style=3D"WHITE-SPACE: nowrap" id=3Dltd-rc-learn-more-link2 =
class=3Dtdr-ignore=20
      =
onclick=3D"swap_content('ltd-rc-learn-more','ltd-rc-learn-more-link2');" =

      href=3D"javascript:void(0);">Learn More</A></P></DIV>
      <DIV id=3Dltd-rc-content-sso>
      <H2 style=3D"COLOR: #cc0000">You are now "Test Driving" Teachers'=20
Domain</H2>
      <P>As a <SPAN id=3Dsso-tdr-name></SPAN>user, you may view as many =
resources=20
      as you like without registering.</P>
      <P>Register now to download, share, and save resources. <A=20
      id=3Dltd-rc-learn-more-link-sso=20
      =
onclick=3D"swap_content('ltd-rc-learn-more','ltd-rc-learn-more-link-sso')=
;return false;"=20
      href=3D"javascript:void(0)">Learn&nbsp;more</A></P></DIV>
      <DIV id=3Dltd-rc-learn-more>
      <H2>About Registration:</H2>
      <P>Registering with Teachers' Domain is free and allows you =
to:</P>
      <UL>
        <LI>=E2=80=A2 View as many resources as you like</LI>
        <LI>=E2=80=A2 Save, sort, and share resources using My Folders =
and My=20
Groups</LI>
        <LI>=E2=80=A2 Download resources to your desktop</LI>
        <LI>=E2=80=A2 See standards correlations for your =
state</LI></UL></DIV>
      <DIV id=3Dltd-rc-content-3p1>
      <H2 style=3D"COLOR: #cc0000">Thank you for "Test Driving" =
Teachers'=20
      Domain</H2>
      <P>You have viewed all seven resources permitted in this limited =
trial=20
      period. You may continue to browse the site, but to view, =
download, share,=20
      and save resources, you must register now. <SPAN=20
      style=3D"WHITE-SPACE: nowrap">Registration is simple, safe, and=20
      free.</SPAN></P></DIV>
      <DIV id=3Dreg-form-container>
      <FORM class=3Dtdr-ignore action=3Djavascript:void%200;><INPUT =
class=3Dbutton onclick=3D"redirect_to('/register/');return false;" =
value=3D"Register Now" type=3Dsubmit>=20
      </FORM></DIV>
      <DIV id=3Dltd-rc-content-3p2>
      <H2>For more information:</H2>
      <P>Learn about our online <A=20
      =
href=3D"http://www.teachersdomain.org/collection/pd/lnd/">Professional=20
      Development Courses,</A> or review our <A=20
      href=3D"http://www.teachersdomain.org/privacy_policy.html">Privacy =

      Policy</A>.</P>
      <P>If you still have questions, please <A=20
      href=3D"http://www.teachersdomain.org/contact.html">contact=20
    us</A>.</P></DIV></TD></TR></TBODY></TABLE></DIV>
<DIV id=3Dmain_content>
<DIV id=3Dcontent_restraint>
<DIV id=3Dres_grade_range>Recommended for: <STRONG>Grades =
3-12</STRONG></DIV>
<H1><SPAN class=3Dpage_tag>Resource:</SPAN> Virtual Cave </H1>
<DIV id=3Dasset_box>
<DIV id=3Dthumb_box><IMG class=3Dpic_box_img alt=3D"Virtual Cave"=20
src=3D"http://www.teachersdomain.org/assets/wgbh/ess05/ess05_int_virtmap/=
ess05_int_virtmap_l.jpg">=20
<A style=3D"BACKGROUND: url(/images/folder_icon.gif) no-repeat left 50%" =

id=3Dsave_to_action class=3Dsave_to=20
onclick=3D"show_action_form('save_resource','save_to_folder');return =
false;"=20
href=3D"javascript:void%200;">Save to a folder</A>=20
<FORM id=3Dsave_to_form class=3Daction_form =
action=3Djavascript:void%200;><SELECT=20
id=3Dsave_to_select class=3Dsave_select> <OPTION selected =
value=3Dnull>Choose a=20
  folder:</OPTION></SELECT> <BR><INPUT class=3Dbutton =
onclick=3D"save_item('708');return false;" value=3DSave type=3Dsubmit>=20
<IMG id=3Dsave_to_loading class=3Dloader_graphic border=3D0 =
alt=3DLoading...=20
src=3D"http://www.teachersdomain.org/images/loader.gif" width=3D15 =
height=3D15> <INPUT class=3Dbutton =
onclick=3D"this.form.reset();cancel_action();return false;" =
value=3DCancel type=3Dsubmit>=20
</FORM>
<DIV class=3Dclear>&nbsp;</DIV>
<DIV style=3D"DISPLAY: none" id=3Drecommend_to_action><A=20
style=3D"BACKGROUND: url(/images/recommend.gif) no-repeat left 50%"=20
class=3Drecommend_to=20
onclick=3D"swap_content('recommend_to_content','recommend_to_action');"=20
href=3D"javascript:void(0)">Recommend to a Colleague</A> </DIV>
<DIV id=3Drecommend_to_content>
<FORM id=3Drecommend_to_form class=3Daction_form=20
onsubmit=3D"verify_and_submit_recommendation(this); return false;"=20
action=3D/resource/recommend/><LABEL =
for=3Did_recommend_email_address>Enter an email=20
address:</LABEL><BR><INPUT id=3Did_resource_code=20
value=3Dess05.sci.ess.earthsys.virtmap type=3Dhidden =
name=3Dresource_code>=20
<DIV id=3Demail_fields><INPUT id=3Did_email_address class=3Demail_field =
size=3D40=20
type=3Dtext></DIV><BR>
<SCRIPT language=3Djavascript>=0A=
=0A=
        </SCRIPT>

<DIV style=3D"CLEAR: both"><A=20
style=3D"BACKGROUND: url(/images/plus.gif) no-repeat left 50%" =
id=3Dadd_email_anchor=20
onclick=3Djavascript:submit_email_addresses(); =
href=3D"javascript:void%200;">Add=20
another address</A> </DIV><BR>
<DIV id=3Drecommend_to_submit>
<DIV class=3Drecommend_to_buttons><INPUT id=3Did_submit_recommend_to =
class=3Dbutton value=3DSend type=3Dsubmit>=20
<INPUT class=3Dbutton onclick=3D"reset_recommend_to_state(); return =
false;" value=3DCancel type=3Dsubmit>=20
</DIV><IMG id=3Drecommend_to_loading class=3Dloader_graphic border=3D0 =
alt=3DLoading...=20
src=3D"http://www.teachersdomain.org/images/loader.gif" width=3D15 =
height=3D15> </DIV>
<DIV id=3Dvalid_email_message>You must enter a valid email=20
address.</DIV></FORM></DIV></DIV>
<DIV id=3Dmeta_box>
<P>Media Type:<BR><STRONG>Flash Interactive</STRONG></P>
<P>Length: <BR>Size: 1.3 MB </P>
<FORM action=3Djavascript:void%200;><INPUT class=3Dbutton =
onclick=3D"td_pop('interactive','/asset/ess05_int_virtmap/','800','660');=
stat('1095','708');return false;" value=3DView type=3Dsubmit>=20

<P class=3Dlow_para>or</P><INPUT class=3Dbutton =
onclick=3D"td_pop('download','/oer_download/ess05_int_virtmap/','500','70=
0')" value=3DDownload type=3Dsubmit>=20

<DIV class=3Dmedialink>Permitted use:<BR>Download, Share, and =
Remix</DIV>
<DIV class=3Dmedialink><IMG alt=3D"Download, Share, and Remix"=20
src=3D"http://www.teachersdomain.org/images/oer/l3icon.gif"></DIV></FORM>=
</DIV>
<DIV id=3Dmisc_box>
<P>Caves are cavities in Earth that typically form over thousands of =
years=20
through natural mechanical and chemical processes. Most underground =
caves form=20
as slightly acidic groundwater dissolves limestone rock. The result is a =

subterranean environment of caverns and, in some places, vast networks =
of=20
smaller, interconnecting chambers. This interactive activity, adapted =
from=20
<EM>The Virtual Cave</EM>, by Dave Bunnell, provides a detailed map of a =

solution cave system with links to images and descriptions of its many=20
formations.</P></DIV>
<DIV class=3Dclear>&nbsp;</DIV></DIV>
<DIV id=3Dreviews>
<SCRIPT type=3Dtext/javascript>=0A=
        ReviewManager.get_review_url =3D '/getreviews/resource/708/';=0A=
        ReviewManager.number_of_reviews =3D 0;=0A=
        ReviewManager.rating_average =3D 0;=0A=
    </SCRIPT>

<DIV style=3D"DISPLAY: none; BORDER-TOP: 0px" id=3Drev_launcher>
<DIV class=3Drev_left_col><A=20
style=3D"BACKGROUND: url(/images/ratings/star_on.gif) no-repeat left =
50%"=20
class=3Dstar_link onclick=3D"ReviewManager.show_ratings();return false;" =

href=3D"javascript:void(0);">Ratings and Reviews</A></DIV>
<DIV class=3Drev_right_col><SPAN style=3D"DISPLAY: none"=20
id=3Dreview_meta_launch>Average User Rating: <IMG=20
style=3D"PADDING-LEFT: 3px; PADDING-RIGHT: 8px; VERTICAL-ALIGN: =
text-bottom"=20
id=3Davg_rating_img_link class=3Dinline alt=3D"Not rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/stars_0.gif"> <SPAN=20
style=3D"COLOR: #336633">Based on</SPAN> <A=20
onclick=3D"ReviewManager.show_ratings();return false;"=20
href=3D"javascript:void(0);"><SPAN id=3Dnum_of_reviews_link>0</SPAN> =
<SPAN=20
id=3Dnum_reviews_text_link>reviews</SPAN></A></SPAN></DIV>
<DIV class=3Dclear>&nbsp;</DIV></DIV>
<DIV style=3D"DISPLAY: none; BORDER-TOP: 0px" id=3Drev_content>
<DIV id=3Drev_closer>
<DIV class=3Drev_left_col><A=20
style=3D"BACKGROUND: url(/images/ratings/star_on.gif) no-repeat left =
50%"=20
class=3Dstar_link onclick=3D"ReviewManager.hide_ratings();return false;" =

href=3D"javascript:void(0)">Hide Ratings and Reviews</A></DIV>
<DIV class=3Drev_right_col><SPAN style=3D"DISPLAY: none"=20
id=3Dreview_meta_closer>Average User Rating: <IMG=20
style=3D"PADDING-LEFT: 3px; PADDING-RIGHT: 8px; VERTICAL-ALIGN: =
text-bottom"=20
id=3Davg_rating_img_plain class=3Dinline alt=3D"Not rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/stars_0.gif"> <SPAN=20
style=3D"COLOR: #336633">Based on <SPAN =
id=3Dnum_of_reviews_plain>0</SPAN> <SPAN=20
id=3Dnum_reviews_text_plain>reviews</SPAN></SPAN></SPAN></DIV>
<DIV class=3Dclear>&nbsp;</DIV></DIV>
<DIV id=3Dreview_form_container>
<H3>Please rate and review this resource:</H3>
<DIV class=3Dreview_box>
<DIV class=3Dreview_box_left>
<DIV class=3Dstar_field><B>Overall rating</B>: <A id=3Doverall_link_1=20
href=3D"javascript:void(0)"><IMG id=3Doverall_1 class=3Dstar_rating_set =
alt=3D"1 star"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Doverall_link_2 href=3D"javascript:void(0)"><IMG id=3Doverall_2=20
class=3Dstar_rating_set alt=3D"2 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Doverall_link_3 href=3D"javascript:void(0)"><IMG id=3Doverall_3=20
class=3Dstar_rating_set alt=3D"3 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Doverall_link_4 href=3D"javascript:void(0)"><IMG id=3Doverall_4=20
class=3Dstar_rating_set alt=3D"4 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Doverall_link_5 href=3D"javascript:void(0)"><IMG id=3Doverall_5=20
class=3Dstar_rating_set alt=3D"5 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Doverall_link_none href=3D"javascript:void(0)"><IMG =
id=3Doverall_none=20
class=3Dstar_rating_set_none alt=3D"Not Rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/notrated_on.gif"></A>=
 </DIV>
<P style=3D"DISPLAY: none" id=3Dreview_text_error class=3Dalert></P>
<FORM id=3Dreview_form class=3Dreview_form onsubmit=3D"return false;" =
method=3Dpost=20
action=3D/submitreview/><INPUT id=3Dreview_target_type value=3Dresource =
type=3Dhidden=20
name=3Dreview_target_type> <INPUT id=3Dreview_target_id value=3D708 =
type=3Dhidden=20
name=3Dreview_target_id> <LABEL class=3Dreview_form_name_label>Your =
Name:</LABEL>=20
<INPUT id=3Dreview_name class=3Dreview_form_name_input type=3Dtext =
name=3Dname> <LABEL=20
for=3Dreview_text>Your review:</LABEL><BR><TEXTAREA id=3Dreview_text =
class=3Dreview_text rows=3D8 cols=3D20></TEXTAREA>=20

<DIV class=3Drev_form_button_container>
<DIV class=3D"rev_form_left_col rev_form_button_col"></DIV>
<DIV class=3D"rev_form_right_col rev_form_button_col">
<DIV style=3D"TEXT-ALIGN: right"><IMG style=3D"DISPLAY: none"=20
id=3Drev_review_submit_loader alt=3D"Loading Content"=20
src=3D"http://www.teachersdomain.org/images/loader.gif"> <INPUT =
style=3D"MARGIN-RIGHT: 18px" class=3Dbutton =
onclick=3D"ReviewManager.submit_review();return false;" value=3D"Post =
your review" type=3Dsubmit>=20
</DIV></DIV></DIV></FORM></DIV>
<DIV class=3Dreview_box_right>
<H4>Rating Details (optional):</H4>
<DIV class=3Dopt_star_ratings>
<DIV class=3D"star_field star_field_opt">Content: <A id=3Dcontent_link_1 =

href=3D"javascript:void(0)"><IMG id=3Dcontent_1 class=3Dstar_rating_set =
alt=3D"1 star"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dcontent_link_2 href=3D"javascript:void(0)"><IMG id=3Dcontent_2=20
class=3Dstar_rating_set alt=3D"2 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dcontent_link_3 href=3D"javascript:void(0)"><IMG id=3Dcontent_3=20
class=3Dstar_rating_set alt=3D"3 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dcontent_link_4 href=3D"javascript:void(0)"><IMG id=3Dcontent_4=20
class=3Dstar_rating_set alt=3D"4 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dcontent_link_5 href=3D"javascript:void(0)"><IMG id=3Dcontent_5=20
class=3Dstar_rating_set alt=3D"5 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dcontent_link_none href=3D"javascript:void(0)"><IMG =
id=3Dcontent_none=20
class=3Dstar_rating_set_none alt=3D"Not Rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/notrated_on.gif"></A>=
 </DIV>
<DIV class=3D"star_field star_field_opt">Presentation: <A =
id=3Dpresentation_link_1=20
href=3D"javascript:void(0)"><IMG id=3Dpresentation_1 =
class=3Dstar_rating_set=20
alt=3D"1 star"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dpresentation_link_2 href=3D"javascript:void(0)"><IMG =
id=3Dpresentation_2=20
class=3Dstar_rating_set alt=3D"2 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dpresentation_link_3 href=3D"javascript:void(0)"><IMG =
id=3Dpresentation_3=20
class=3Dstar_rating_set alt=3D"3 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dpresentation_link_4 href=3D"javascript:void(0)"><IMG =
id=3Dpresentation_4=20
class=3Dstar_rating_set alt=3D"4 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dpresentation_link_5 href=3D"javascript:void(0)"><IMG =
id=3Dpresentation_5=20
class=3Dstar_rating_set alt=3D"5 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dpresentation_link_none href=3D"javascript:void(0)"><IMG =
id=3Dpresentation_none=20
class=3Dstar_rating_set_none alt=3D"Not Rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/notrated_on.gif"></A>=
 </DIV>
<DIV class=3D"star_field star_field_opt">Standards alignment: <A=20
id=3Dstandards_link_1 href=3D"javascript:void(0)"><IMG id=3Dstandards_1=20
class=3Dstar_rating_set alt=3D"1 star"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dstandards_link_2 href=3D"javascript:void(0)"><IMG id=3Dstandards_2=20
class=3Dstar_rating_set alt=3D"2 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dstandards_link_3 href=3D"javascript:void(0)"><IMG id=3Dstandards_3=20
class=3Dstar_rating_set alt=3D"3 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dstandards_link_4 href=3D"javascript:void(0)"><IMG id=3Dstandards_4=20
class=3Dstar_rating_set alt=3D"4 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dstandards_link_5 href=3D"javascript:void(0)"><IMG id=3Dstandards_5=20
class=3Dstar_rating_set alt=3D"5 stars"=20
src=3D"http://www.teachersdomain.org/images/ratings/star_off.gif"></A><A =

id=3Dstandards_link_none href=3D"javascript:void(0)"><IMG =
id=3Dstandards_none=20
class=3Dstar_rating_set_none alt=3D"Not Rated"=20
src=3D"http://www.teachersdomain.org/images/ratings/notrated_on.gif"></A>=
=20
</DIV></DIV></DIV>
<DIV class=3Dclear></DIV></DIV></DIV>
<DIV id=3Dreview_list>
<DIV style=3D"DISPLAY: none" id=3Drev_loading_reviews><IMG=20
id=3Drev_loading_reviews_loader alt=3D"Loading reviews..."=20
src=3D"http://www.teachersdomain.org/images/loader.gif"> Loading =
reviews...</DIV>
<DIV style=3D"DISPLAY: none" id=3Drev_pag_links_top><SPAN=20
id=3Drev_pag_links_count_top>0</SPAN> <SPAN=20
id=3Dnum_reviews_text_plain_2>reviews</SPAN> of this resource: <SPAN=20
id=3Drev_page_links_top_nav></SPAN></DIV>
<DIV style=3D"DISPLAY: none" id=3Dreview_list_content></DIV>
<DIV id=3Drev_pag_links_bottom></DIV></DIV></DIV></DIV>
<DIV id=3Dresource_content>
<P id=3Dcite_link_action class=3Dcite_resource_cont><A =
class=3Dcite_resource=20
onclick=3D"swap_content('citation_content','cite_link_action');showElemen=
t('hide_cite_link_action')"=20
href=3D"javascript:void(0)">View Citation</A></P>
<P style=3D"DISPLAY: none" id=3Dhide_cite_link_action =
class=3Dcite_resource_cont><A=20
class=3Dcite_resource=20
onclick=3D"swap_content('cite_link_action','citation_content');hideElemen=
t('hide_cite_link_action')"=20
href=3D"javascript:void(0)">Hide Citation</A></P>
<P id=3Dcitation_content>Teachers' Domain, Virtual Cave, published =
October 21,=20
2005, retrieved on
<SCRIPT language=3Djavascript type=3Dtext/javascript>var now =3D new =
Date();document.write(now.defaultString());</SCRIPT>
 =
,<BR>http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.virtma=
p/</P>
<DIV id=3Dleft_col>
<DIV id=3Ddyn_tab_group_0 class=3Dtab_group>
<UL style=3D"BACKGROUND: url(/images/k12_border_horiz.gif) repeat-x left =
bottom"=20
class=3Dtabs>
  <LI style=3D"BACKGROUND: url(/images/on_bg.gif) #fff repeat-x left =
bottom"=20
  class=3D"add_border current">Background Essay</LI>
  <LI><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_1','dyn_tab_group_0');">Discu=
ssion=20
  Questions</A></LI>
  <LI><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_2','dyn_tab_group_0');getStan=
dards('1091,1093,1094,1250,1251,1389,1390,1394,1394,1403','standards_cont=
ent');">Standards</A></LI></UL>
<DIV id=3Dtext_box_backgrounder class=3Dtext_box>
<DIV class=3Dprinter_friendly_link><A=20
onclick=3D"td_pop('document', =
'/resource/viewtext_printer_friendly/2915', '510', '600'); return =
false;"=20
href=3D"http://www.teachersdomain.org/resource/viewtext_printer_friendly/=
2915"><IMG=20
alt=3D"Printer Friendly Version of Background Essay"=20
src=3D"http://www.teachersdomain.org/images/printer_friendly.gif">Print =
Background=20
Essay</A> </DIV>
<DIV class=3Dclear>&nbsp;</DIV>
<P>Underground caves, also known as solution caves, form from a chemical =

reaction between water and rock. Limestone rock is composed primarily of =
the=20
mineral calcite, a crystallized form of calcium carbonate. Pure water by =
itself=20
has little effect on calcite. Rainwater, however, which absorbs carbon =
dioxide=20
(CO<SUB>2</SUB>) as it passes through the atmosphere and percolates =
through=20
soil, becomes a slightly acidic solution called carbonic acid.</P>
<P>Carbonic acid is capable of dissolving calcite. When it does, it =
forms a=20
solution called calcium bicarbonate. As the calcite is slowly dissolved, =

cavities and passageways form in the limestone rock. Most initial cave=20
development occurs just below the water table in the zone of =
saturation.</P>
<P>A secondary phase of development occurs after the water table falls =
and the=20
cavities fill with air. As soon as calcium bicarbonate solution enters a =

ventilated cave through cracks in its ceiling, CO<SUB>2</SUB> gas begins =
to=20
evaporate out of solution. Calcium bicarbonate only exists in solution, =
and the=20
loss of CO<SUB>2</SUB> prompts calcite to be deposited and the remaining =
water=20
to run off. The general term for all such secondary cave formations is=20
<EM>speleothems</EM>, from the Greek words <EM>spelaion</EM>, meaning =
cave, and=20
<EM>thema</EM>, meaning deposit.</P>
<P>Speleothems form at varying rates, depending on how fast the calcite =
residue=20
builds up. Although it takes an average of 120 years for a cubic inch of =
calcite=20
to form, environmental factors can influence the rate of growth. For =
instance,=20
higher ground temperature speeds the decay rate of plants and animals. =
This, in=20
turn, adds more organic material to groundwater and raises its calcium=20
bicarbonate concentration. Because this fortified water is more acidic, =
the rate=20
of speleothem growth increases.</P>
<P>The location and unique shapes of speleothems depend on whether the=20
depositing water source is flowing, dripping, seeping, splashing, still, =
or=20
heated, among other possibilities. The most commonly known speleothems =
are=20
stalactites and stalagmites. Stalactites project down from the ceiling =
and=20
resemble slowly dripping icicles. Their droplets give rise to =
stalagmites, which=20
grow up from the cave floor.</P>
<P>A delicate soda straw represents the earliest growth phase of =
stalactites.=20
Imagine a thin tube attached to the ceiling. As a drop of calcium =
bicarbonate=20
solution accumulates and runs down the inside of the tube, it hangs =
momentarily=20
-- and sometimes much longer -- before falling to the floor. During this =

hesitation, CO<SUB>2</SUB> escapes into the air, precipitating a very =
thin film=20
of calcite. Over successive drops, the straw lengthens ever so =
slightly.</P>
<P>To learn more about limestone caves and management strategies, check =
out <A=20
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.cav=
eform/">How=20
Caves Form</A> and <A=20
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.cav=
eintro/">Caves=20
and Karst</A>.</P>
<P>To learn about bacteria's role in cave formation, check out <A=20
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.cav=
ebiogeo/">Cave=20
Formation: Biogeochemical Cycles</A> and <A=20
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.kan=
ecave/">Cave=20
Formation: Kane Cave</A>.</P>
<P>To learn more detailed information and images of features of another =
cave=20
type, check out <A=20
href=3D"http://www.teachersdomain.org/resource/ess05.sci.ess.earthsys.lav=
atube/">Virtual=20
Lava Tube</A>.</P></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3Ddyn_tab_group_1 class=3Dtab_group>
<UL style=3D"BACKGROUND: url(/images/k12_border_horiz.gif) repeat-x left =
bottom"=20
class=3Dtabs>
  <LI class=3Dadd_border><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_0','dyn_tab_group_1');">Backg=
round=20
  Essay</A></LI>
  <LI style=3D"BACKGROUND: url(/images/on_bg.gif) #fff repeat-x left =
bottom"=20
  class=3Dcurrent>Discussion Questions</LI>
  <LI><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_2','dyn_tab_group_1');getStan=
dards('1091,1093,1094,1250,1251,1389,1390,1394,1394,1403','standards_cont=
ent');">Standards</A></LI></UL>
<DIV id=3Dtext_box_questions class=3Dtext_box>
<DIV class=3Dprinter_friendly_link><A=20
onclick=3D"td_pop('document', =
'/resource/viewtext_printer_friendly/2916', '510', '600'); return =
false;"=20
href=3D"http://www.teachersdomain.org/resource/viewtext_printer_friendly/=
2916"><IMG=20
alt=3D"Printer Friendly Version of Discussion Questions"=20
src=3D"http://www.teachersdomain.org/images/printer_friendly.gif">Print =
Discussion=20
Questions</A> </DIV>
<DIV class=3Dclear>&nbsp;</DIV>
<UL style=3D"LIST-STYLE-TYPE: disc">
  <LI>Choose one cave feature and describe it. Explain how the feature =
forms,=20
  what material it is made of, and where you might see it.</LI>
  <LI>Describe how stalactites, stalagmites, and columns form in =
relation to one=20
  another.</LI>
  <LI>How does rain water become a weak carbonic acid by the time it =
hits the=20
  ground?</LI>
  <LI>Pick three speleothems not yet discussed and explain how they are=20
  formed.</LI></UL></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3Ddyn_tab_group_2 class=3Dtab_group>
<UL style=3D"BACKGROUND: url(/images/k12_border_horiz.gif) repeat-x left =
bottom"=20
class=3Dtabs>
  <LI class=3Dadd_border><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_0','dyn_tab_group_2');">Backg=
round=20
  Essay</A></LI>
  <LI><A=20
  =
href=3D"javascript:tabToggle('dyn_tab_group_1','dyn_tab_group_2');">Discu=
ssion=20
  Questions</A></LI>
  <LI style=3D"BACKGROUND: url(/images/on_bg.gif) #fff repeat-x left =
bottom"=20
  class=3Dcurrent>Standards</LI></UL>
<DIV id=3Dstandards class=3Dtext_box>
<DIV id=3Dgrade_range_widget>
<DIV id=3Dgrade_range_label class=3Dgrade_range_div><SPAN=20
id=3Drow_count_legend>Standards for Grades: </SPAN><SPAN =
id=3Dgrade_range_value_1=20
class=3Dgr_tag></SPAN>&nbsp; <A id=3Dchange_grade_link=20
onclick=3D"grade_widget_obj.toggle_grade_widget();return false;"=20
href=3D"javascript:void(0);">Change grade range</A>=20
<DIV id=3Dstandards_linkset class=3Dlinkset><A id=3Dabout_standards_link =

onclick=3D"toggle_about_standards();return false;"=20
href=3D"javascript:void(0);">About Standards</A> | <A=20
onclick=3D"toggle_report_problem('report_problem');"=20
href=3D"javascript:void(0)">Report a Problem</A> </DIV>
<DIV style=3D"DISPLAY: none" id=3Dstandards_linkset_no_about =
class=3Dlinkset>About=20
Standards | <A onclick=3D"toggle_report_problem('report_problem');"=20
href=3D"javascript:void(0)">Report a Problem</A> </DIV>
<DIV style=3D"DISPLAY: none" id=3Dstandards_linkset_no_report =
class=3Dlinkset><A=20
id=3Dabout_standards_link onclick=3D"toggle_about_standards();return =
false;"=20
href=3D"javascript:void(0);">About Standards</A> | Report a Problem =
</DIV>
<DIV class=3Dclear>&nbsp;</DIV>
<DIV style=3D"DISPLAY: none" id=3Dreport_problem>
<DIV id=3Dreport_body>
<P><SPAN><B id=3Dreport_head_p>Report a standards correlation =
problem</B></SPAN><A=20
id=3Dreport_problem_hide =
onclick=3D"toggle_report_problem('report_problem');"=20
href=3D"javascript:void(0)">close</A></P>
<DIV id=3Dreport_form_div>
<P>To help improve this service, please report and describe any =
standards=20
correlations that you find to be inaccurate.</P>
<FORM><TEXTAREA id=3Dreport_textarea rows=3D5 =
cols=3D42></TEXTAREA><BR><INPUT id=3Dbtn_send_report =
onclick=3D"send_standards_report('report_textarea','Virtual Cave =
(ess05.sci.ess.earthsys.virtmap)')" value=3D"Send Report" =
type=3Dbutton><IMG=20
style=3D"DISPLAY: none" id=3Dsend_report_loader_img alt=3DLoading...=20
src=3D"http://www.teachersdomain.org/images/loader.gif"> =
</FORM></DIV></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3Dabout_standards>
<P><B>About standards correlation</B> <A id=3Dabout_standards_hide=20
onclick=3D"toggle_about_standards();return false;"=20
href=3D"javascript:void(0);">close</A></P>
<P>Academic standards correlations on Teachers' Domain use the <A=20
href=3D"http://www.achievementstandards.org/" target=3Dasn>Achievement =
Standards=20
Network</A> (ASN) database of state and national standards, provided to =
NSDL=20
projects courtesy of JES &amp; Co. <IMG id=3Dasn_img alt=3DNSDL:ASN=20
src=3D"http://www.teachersdomain.org/images/NSDL_ASN.jpg" width=3D134 =
height=3D31> We=20
assign reference terms to each statement within a standards document and =
to each=20
media resource, and correlations are based upon matches of these terms =
for a=20
given grade band. If a particular standards document of interest to you =
is not=20
displayed yet, it most likely has not yet been processed by ASN or by =
Teachers'=20
Domain. We will be adding social studies and arts correlations over the =
coming=20
year, and also will be increasing the specificity of =
alignment.</P></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3Dgrade_range_selects =
class=3Dgrade_range_div>
<FORM id=3Dgrade_widget_form name=3Dgrade_widget_form=20
action=3Djavascript:void(0);><LABEL>Standards for Grades:</LABEL> =
<SELECT=20
id=3Dgw_lower name=3Dgrade_widget_select_lower> <OPTION =
selected>K</OPTION>=20
  <OPTION>1</OPTION> <OPTION>2</OPTION> <OPTION>3</OPTION> =
<OPTION>4</OPTION>=20
  <OPTION>5</OPTION> <OPTION>6</OPTION> <OPTION>7</OPTION> =
<OPTION>8</OPTION>=20
  <OPTION>9</OPTION> <OPTION>10</OPTION> <OPTION>11</OPTION>=20
<OPTION>12</OPTION></SELECT> to: <SELECT id=3Dgw_upper=20
name=3Dgrade_widget_select_upper> <OPTION selected>K</OPTION> =
<OPTION>1</OPTION>=20
  <OPTION>2</OPTION> <OPTION>3</OPTION> <OPTION>4</OPTION> =
<OPTION>5</OPTION>=20
  <OPTION>6</OPTION> <OPTION>7</OPTION> <OPTION>8</OPTION> =
<OPTION>9</OPTION>=20
  <OPTION>10</OPTION> <OPTION>11</OPTION> <OPTION>12</OPTION></SELECT> =
<INPUT class=3D"button widget_button" =
onclick=3D"grade_widget_obj.change_grade_range(&#10;            &#10;    =
        &#10;            =
'getStandards','1091,1093,1094,1250,1251,1389,1390,1394,1394,1403','stand=
ards_content'&#10;            &#10;            );return false;" =
value=3DOK type=3Dsubmit>=20
</FORM></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3Dtest>
<P>You must be signed in to see standards matches for your state. =
</P></DIV>
<DIV id=3Dstandards_content>
<H4><IMG class=3Dloader alt=3D"Loading Content"=20
src=3D"http://www.teachersdomain.org/images/loader.gif">Loading=20
Standards</H4></DIV></DIV></DIV>
<DIV id=3Dcollection_brand><IMG border=3D0 alt=3D"National Science =
Digital Library"=20
src=3D"http://www.teachersdomain.org/assets/image_support/branding/logo/n=
sdl/nsdl_logo_color_small.gif">=20

<P class=3Dbrand>Teachers' Domain is proud to be a Pathways portal to =
the National=20
Science Digital Library.</P></DIV></DIV>
<DIV id=3Dright_col>
<DIV id=3Drelated_content>
<H3>See Also:</H3>
<P class=3Dsee_also>K-12 Subject:<BR><A=20
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.cha=
ngearth/">Changes=20
in the Earth</A><BR><A=20
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.ema=
tprop/">Properties=20
of Earth Materials</A><BR><A=20
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.earthsys.sur=
face/">Surface=20
Processes</A><BR><A=20
href=3D"http://www.teachersdomain.org/collection/k12/sci.ess.watcyc.watcy=
c/">Water=20
Cycle</A> </P></DIV>
<DIV id=3Dprod_credits>
<H3>Source: <SPAN class=3Dsource>Dave Bunnell</SPAN></H3>
<DIV id=3Dext_attribution>This media asset was adapted from <A =
class=3Dstandard=20
href=3D"http://www.goodearthgraphics.com/virtcave/virtmap.html" =
target=3D_blank>The=20
Virtual Cave</A> by Dave Bunnell.</DIV>
<H3>Resource Produced by:</H3><IMG alt=3D"WGBH Educational Foundation"=20
src=3D"http://www.teachersdomain.org/assets/image_support/branding/logo/m=
ono/mono_wgbh.gif">=20

<H3>Collection Developed by:</H3><IMG alt=3D"WGBH Educational =
Foundation"=20
src=3D"http://www.teachersdomain.org/assets/image_support/branding/logo/m=
ono/mono_wgbh.gif">=20

<P><A =
href=3D"http://www.teachersdomain.org/collection_credits/ess05">Collectio=
n=20
Credits</A></P>
<H3>Collection Funded by:</H3><IMG alt=3D"National Science Foundation"=20
src=3D"http://www.teachersdomain.org/assets/image_support/branding/logo/m=
ono/mono_nsf.gif">=20
</DIV></DIV><!--[if IE 6]><div =
class=3D"clear">&nbsp;</div><![endif]--></DIV></DIV></DIV>
<DIV id=3Dfooter>
<DIV id=3Dsa_li_cont>
<DIV id=3Dsite_alert_li class=3Dsite_alert></DIV>
<DIV class=3Dclear>&nbsp;</DIV></DIV>
<P class=3Dfoot_major_fund>Major funding for Teachers' Domain was =
provided by the=20
National Science Foundation.</P>
<DIV id=3Dfooter_links>
<P><A href=3D"http://www.teachersdomain.org/">Teachers' Domain=C2=AE =
Home</A> | <A=20
href=3D"http://www.teachersdomain.org/editions.html">Change =
Edition</A><BR><A=20
href=3D"http://www.teachersdomain.org/about.html">About Teachers' =
Domain</A> | <A=20
href=3D"http://www.teachersdomain.org/contact.html">Contact Us</A> | <A=20
href=3D"http://www.teachersdomain.org/privacy_policy.html">Privacy =
Policy</A> | <A=20
href=3D"http://www.teachersdomain.org/terms_of_use.html">Terms of =
Use</A>=20
</P></DIV>
<DIV id=3Dfooter_copyright>
<P>Teachers' Domain: =C2=A9 2002-2010 WGBH Educational Foundation | <A=20
href=3D"http://teacher.shop.pbs.org/" target=3D_blank>shopPBS =
Educational Media</A>=20
</P></DIV></DIV>
<SCRIPT type=3Dtext/javascript>=0A=
    var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");=0A=
    document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' type=3D'text/javascript'%3E%3C/script%3E"));=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
    var pageTracker =3D _gat._getTracker("UA-237277-6");=0A=
    pageTracker._initData();=0A=
    pageTracker._trackPageview();=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
/**=0A=
JJB: Putting the autoTrack_teachersdomain.txt JS here as well.=0A=
*/=0A=
/*********/=0A=
function listenToClicks() { =0A=
=0A=
  var fileTypes  =3D [".doc",".xls",".exe",".zip",".pdf",".mp3"];=0A=
    =0A=
	if (document.getElementsByTagName) {=0A=
    var aTags =3D document.getElementsByTagName('a'); =0A=
    =0A=
    ANCHOR:=0A=
    for (var i =3D 0; i < aTags.length; i++) { =0A=
      if (aTags[i]=3D=3D"")                                         =
{continue ANCHOR; }=0A=
      if (typeof aTags[i].hostname =3D=3D "undefined")              =
{continue ANCHOR; }=0A=
      if (aTags[i].protocol.indexOf("javascript") !=3D -1)        =
{continue ANCHOR; }=0A=
      =0A=
      if (aTags[i].hostname.indexOf(window.location.href)) {=0A=
       =0A=
        FILE:=0A=
        // look for a file extension=0A=
        for (k =3D 0; k < fileTypes.length; k++){=0A=
          if (aTags[i].pathname.indexOf(fileTypes[k]) !=3D -1) {=0A=
            startListening(aTags[i],"click",trackDocuments);  continue =
ANCHOR; } // file extension was found, go to next anchor=0A=
        }=0A=
      }=0A=
    }=0A=
  }     =0A=
}=0A=
=0A=
=0A=
function startListening (obj,evnt,func) { =0A=
  if (obj.addEventListener) { =0A=
    obj.addEventListener(evnt,func,false);=0A=
  } else if (obj.attachEvent) { =0A=
    obj.attachEvent("on" + evnt,func);=0A=
  }=0A=
}=0A=
=0A=
// trackDocuments:  calls _trackPageview before downloading a file=0A=
function trackDocuments (evnt) { =0A=
  var url =3D (evnt.srcElement) ? "/" + evnt.srcElement.pathname : =
this.pathname; =0A=
  url =3D docIdentifier + url;=0A=
  if (typeof(benchmarkTracker) =3D=3D "object") {=0A=
	  benchmarkTracker._trackPageview(url);=0A=
  }=0A=
}=0A=
=0A=
startListening(window, 'load', listenToClicks); // register an event =
listener to run the script when the load event fires.=0A=
=0A=
/*********/=0A=
=0A=
var benchmarkTracker =3D _gat._getTracker("UA-5056761-1");=0A=
benchmarkTracker._initData();=0A=
benchmarkTracker._trackPageview();=0A=
=0A=
var overallTracker =3D _gat._getTracker("UA-5033010-1");=0A=
overallTracker._initData();=0A=
overallTracker._trackPageview();=0A=
</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/logo_k12_top.gif

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

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/assets/wgbh/ess05/ess05_int_virtmap/ess05_int_virtmap_l.jpg

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

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/loader.gif

R0lGODlhDwAPAJEDAP//8czMqmZmRP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgADACwAAAAA
DwAPAAACOZwtmceTAOFiIoIaxcEwiGBpThd4JXiNpFlm2Mm213t+p0TD9xzpcpqDSRCW3ZBoCTUe
IVHDoXAaCgAh+QQFCgADACwHAAIABQAFAAACCsQ+gaIj6U54pwAAIfkEBQoAAwAsCAADAAUABQAA
AgicYRO51iZiLAAh+QQFCgADACwIAAcABQAFAAACCIwDMrvK45gqACH5BAUKAAMALAcACAAFAAUA
AAIJVB52oMEOWIwFACH5BAUKAAMALAMACAAFAAUAAAIJnBU3KRbtjAEFACH5BAUKAAMALAIABwAF
AAUAAAIIlD05oZw+gCoAIfkEBQoAAwAsAgADAAUABQAAAgichnhpbBBiKAA7

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/oer/l3icon.gif

R0lGODlhNwAMAJEAAAAAAP///6qqiP///yH5BAEAAAMALAAAAAA3AAwAAAJVlI9pM+rInpwu0mQv
DS8bPnlCQILg1jUHSYnnyKKVCpcxRn+rLSverYPkRomXxHhwFV9KBHJZ8g0/tlumurpEpRtmbhvs
4cSCJk+TQienao3o8qYUAAA7

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/ratings/stars_0.gif

R0lGODlhNAAPAJECAP/uqoh3RP///wAAACH5BAEAAAIALAAAAAA0AA8AAAJmlI+py+0PYwy02ouz
3hr4D4biSJYhZabqCqJe8L7u9VWtnAFWC8v6HwvWgrAe0AhMunRF5fB2dDJ7xmqVKU3ihldtFxtD
fZE/6i76VHbNSDJVyi7aamSW/b6861mcvv+fISE4uFAAADs=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/ratings/star_off.gif

R0lGODlhDwAPAJECAMzMqvb23f///wAAACH5BAEAAAIALAAAAAAPAA8AAAIolI+pAOrsEgihRTPr
xdQiBlIdaDHiWXkcqn5ne2TvM3ZLikESrG9KAQA7

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/ratings/notrated_on.gif

R0lGODlhNAAPAJECAP/uqoh3RP///wAAACH5BAEAAAIALAAAAAA0AA8AAAJmlI+py+0PYwy02ouz
3hr4D4biSJYhZabqCqJe8L7u9VWtnAFWC8v6HwvWgrAe0AhMunRF5fB2dDJ7xmqVKU3ihldtFxtD
fZE/6i76VHbNSDJVyi7aamSW/b6861mcvv+fISE4uFAAADs=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/printer_friendly.gif

R0lGODlhEgARAJEDAP///4h3RP/uqgAAACH5BAEAAAMALAAAAAASABEAAAI7nBepxx0AQWr0xRco
s9BmjUSS8lWiWCLkeZEcd74v27UdjHq66970PwLSEoKi8YgUEJPMIu/JM0CjgwIAOw==

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/images/NSDL_ASN.jpg

/9j/4AAQSkZJRgABAgEASABIAAD/4QxkRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAeAAAAcgEyAAIAAAAUAAAAkIdp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRv
c2gAMjAwODoxMToyNSAxMToxMjowNQAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAhqADAAQAAAAB
AAAAHwAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAsuAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAHwCGAwEiAAIRAQMRAf/dAAQACf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A7Pr2TcM7bW5zRTW0u2kwJM73QrHUs83dIqsrcW2XPa120wQR
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
2Mtqc6slgDrG1XUYzYsttd6jnWZGSz+X/Nqv/wA3emOxmUDrWI6wsx6cawBjSG1HIGNbU6rIZb9q
tssus9bf+lsqt9mzehwQvi4Rxd61XHmMxh7ZyT9v9zilwf4rv03dB+rzcPCp/RV9TuLaCCXtdY5u
7c6yXe1/sYxBxbfquzLf1mtzKcq+t9j3PcWuNbJbZb6RP53o7k3WOkdNyaKquoZ7amjEfjUve5jH
b3mnbm1uln6Wu1lOzZ/hFlf83eiNseD1fHIfQ2uXOYbG2DHdjNvZ+m9Pb6PqZWz0v9J+l9JHhjoK
Gmy33clyPHK5ipm/nH9b956Wnq/R+o4bLa8mt1GS32y4NJBZ6zm7Xe5rm0/pHIBu6A45G7LqNdTG
MvYbRtY0/wA3v93t5WHf9Xug25lWRkdWoa8GguqY6tjCKaXNzGsZ6m5rc3DNfrf6PFYnr6D0RjmP
yOrY1mPTYHVVn0mg1jI+0PryHep+me/N9Gj1P5Hp+n6liEscJayiD5rRIjY077Ou9IfjvcLgKq3+
huOkw6ul1jP3qWvvr/SpLEp+r/SWZGRZR1Wv17LGvyxuY79IMxubj/o/U/QN9UfYfR/wv/GpJ1BD
/9n/7S78UGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAAAAAAAAAAOEJJTQPqAAAA
AB2wPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0
IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIx
LjAiPgo8ZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFs
UmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwv
a2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0
PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tl
eT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNs
aWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+
CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+
MjAwOC0xMS0yNVQxNDo1MDoxMlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJ
PC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Pcmll
bnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0
b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8
ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwv
a2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv
c3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJ
CTxkYXRlPjIwMDgtMTEtMjVUMTQ6NTA6MTJaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJPC9k
aWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0
LlBNU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNy
ZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4K
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJ
CQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1TY2FsaW5nPC9r
ZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNs
aWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+
CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+
MjAwOC0xMS0yNVQxNDo1MDoxMlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr
ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJ
PC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0
aWNhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0
b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8
a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8
ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwv
a2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
Y2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmlu
Zz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0
ZT4yMDA4LTExLTI1VDE0OjUwOjEyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4K
CQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZl
cnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmlu
Zz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5
PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNh
bFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFn
ZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+
CgkJCQk8ZGF0ZT4yMDA4LTExLTI1VDE0OjUwOjEyWjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxl
LnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJ
CTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuc3ViVGlj
a2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNv
bS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5w
cmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0
ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJ
CQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjcz
NDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc2PC9yZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5j
b20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxl
LnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOC0xMS0yNVQxNDo1MDoxMlo8L2RhdGU+CgkJ
CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRl
Z2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+
Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxk
aWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3Ry
aW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4K
CQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFs
PgoJCQkJCQk8cmVhbD43NzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU5NDwvcmVhbD4KCQkJCQk8L2Fy
cmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8
c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDgtMTEtMjVUMTQ6
NTA6MTJaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8
L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJ
CTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tl
eT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K
CQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxk
aWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5
PgoJCQkJCTxzdHJpbmc+bmEtbGV0dGVyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBv
c3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0
ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDMtMDctMDFUMTc6NDk6MzZaPC9kYXRlPgoJCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9p
bnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20u
YXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJ
CTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJ
CQkJCTxyZWFsPjczNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc2PC9yZWFsPgoJCQkJCTwvYXJyYXk+
CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJp
bmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxl
LnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOC0xMS0yNVQxNDo1MDox
Mlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5
PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9k
aWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJl
Y3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8
L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJ
CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4K
CQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0
ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJ
CQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD43NzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU5
NDwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5j
bGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmlu
Zz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxk
YXRlPjIwMDgtMTEtMjVUMTQ6NTA6MTJaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9k
aWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlcklu
Zm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50
LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RT
Y3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwv
a2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBl
ckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5VUyBMZXR0ZXI8L3N0cmlu
Zz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQkJPHN0
cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMy0wNy0wMVQx
Nzo0OTozNlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxh
Zzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+
CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5BUElWZXJzaW9uPC9rZXk+
CgkJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5w
cml2YXRlTG9jazwva2V5PgoJCTxmYWxzZS8+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LnR5cGU8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYXBlckluZm9UaWNrZXQ8L3N0
cmluZz4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5BUElWZXJzaW9uPC9r
ZXk+Cgk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
cHJpdmF0ZUxvY2s8L2tleT4KCTxmYWxzZS8+Cgk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQu
dHlwZTwva2V5PgoJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdFRpY2tldDwvc3Ry
aW5nPgo8L2RpY3Q+CjwvcGxpc3Q+CjhCSU0D7QAAAAAAEABIAAAAAQABAEgAAAABAAE4QklNBCYA
AAAAAA4AAAAAAAAAAAAAP4AAADhCSU0EDQAAAAAABAAAAHg4QklNBBkAAAAAAAQAAAAeOEJJTQPz
AAAAAAAJAAAAAAAAAAABADhCSU0ECgAAAAAAAQAAOEJJTScQAAAAAAAKAAEAAAAAAAAAAThCSU0D
9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAA
AAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA////////////////////////////
/wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////
A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIAAThCSU0EAgAAAAAA
BAAAAAA4QklNBDAAAAAAAAIBAThCSU0ELQAAAAAABgABAAAAAjhCSU0ECAAAAAAAEAAAAAEAAAJA
AAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANJAAAABgAAAAAAAAAAAAAAHwAAAIYA
AAAKAFUAbgB0AGkAdABsAGUAZAAtADEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
AIYAAAAfAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxs
AAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABM
ZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAfAAAAAFJnaHRsb25nAAAAhgAAAAZzbGljZXNWbExz
AAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElE
bG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAA
AABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABS
Y3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAHwAA
AABSZ2h0bG9uZwAAAIYAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dl
VEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAI
Y2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAA
B2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAA
AAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRz
ZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAA
AAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBQAAAAA
AAQAAAACOEJJTQQMAAAAAAtKAAAAAQAAAIYAAAAfAAABlAAAMOwAAAsuABgAAf/Y/+AAEEpGSUYA
AQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsK
CxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0O
DRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAz/wAARCAAfAIYDASIAAhEBAxEB/90ABAAJ/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcI
CQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCES
MQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl
8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQE
AwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJDUxVjczTxJQYWorKD
ByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9ic3R1dn
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
N9wHsrse13vdtb7EunWfU/pNt2Lh2VVuawnIvLt0Df6PpPvJ9r/U/wAF/IVLA6B0jGyqrcrqtGTY
y2pzqyWAOsbVdRjNiy213qOdZkZLP5f82q//ADd6Y7GZQOtYjrCzHpxrAGNIbUcgY1tTqshlv2q2
yy6z1t/6Wyq32bN6HBC+LhHF3rVceYzGHtnJP2/3OKXB/iu/Td0H6vNw8Kn9FX1O4toIJe11jm7t
zrJd7X+xjEHFt+q7Mt/Wa3Mpyr632Pc9xa41sltlvpE/nejuTdY6R03Joqq6hntqaMR+NS97mMdv
eadubW6Wfpa7WU7Nn+EWV/zd6I2x4PV8ch9Da5c5hsbYMd2M29n6b09vo+plbPS/0n6X0keGOgoa
bLfdyXI8crmKmb+cf1v3npaer9H6jhstrya3UZLfbLg0kFnrObtd7mubT+kcgG7oDjkbsuo11MYy
9htG1jT/ADe/3e3lYd/1e6DbmVZGR1ahrwaC6pjq2MIppc3MaxnqbmtzcM1+t/o8VievoPRGOY/I
6tjWY9NgdVWfSaDWMj7Q+vId6n6Z7830aPU/ken6fqWISxwlrKIPmtEiNjTvs670h+O9wuAqrf6G
46TDq6XWM/epa++v9KksSn6v9JZkZFlHVa/Xssa/LG5jv0gzG5uP+j9T9A31R9h9H/C/8aknUEP/
2ThCSU0EIQAAAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAAABMA
QQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIABDAFMAMwAAAAEAOEJJTQQGAAAAAAAHAAgA
AAABAQD/4Q/PaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7
vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFk
b2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA0LjEtYzAzNiA0Ni4yNzY3MjAs
IE1vbiBGZWIgMTkgMjAwNyAyMjoxMzo0MyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8x
LjEvIiB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhhcE1N
PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25z
LmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJo
dHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMu
YWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlm
LzEuMC8iIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90
b3Nob3AgQ1MzIE1hY2ludG9zaCIgeGFwOkNyZWF0ZURhdGU9IjIwMDgtMTEtMjVUMTE6MTI6MDUt
MDU6MDAiIHhhcDpNb2RpZnlEYXRlPSIyMDA4LTExLTI1VDExOjEyOjA1LTA1OjAwIiB4YXA6TWV0
YWRhdGFEYXRlPSIyMDA4LTExLTI1VDExOjEyOjA1LTA1OjAwIiB4YXBNTTpEb2N1bWVudElEPSJ1
dWlkOkYyMUMxMzFCNjlCQ0REMTE4NzNBOTA0MTI3RjI5QTREIiB4YXBNTTpJbnN0YW5jZUlEPSJ1
dWlkOkYzMUMxMzFCNjlCQ0REMTE4NzNBOTA0MTI3RjI5QTREIiBwaG90b3Nob3A6Q29sb3JNb2Rl
PSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHBob3Rvc2hvcDpI
aXN0b3J5PSIiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8x
MDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0
PSIyIiB0aWZmOk5hdGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1
MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMw
NSwzMTUsMzM0MzI7OUJEMzRBRDE2N0U4RTExMzc2OUNGNkMxNUU2NTU3MDYiIGV4aWY6UGl4ZWxY
RGltZW5zaW9uPSIxMzQiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSIzMSIgZXhpZjpDb2xvclNwYWNl
PSIxIiBleGlmOk5hdGl2ZURpZ2VzdD0iMzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcxMjIsNDA5
NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAsMzQ4NTIs
MzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzczODMsMzcz
ODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgsNDE0OTIs
NDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5ODgsNDE5
ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYsMCwyLDQs
NSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1LDI2LDI3
LDI4LDMwOzE3RjkyOTU3NEYxMEMwMDdENzRBQjFBNUNCNzlCQzVGIj4gPHhhcE1NOkRlcml2ZWRG
cm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6NzhBOTE4QzI2OEJDREQxMTg3M0E5MDQxMjdGMjlB
NEQiIHN0UmVmOmRvY3VtZW50SUQ9InV1aWQ6NzhBOTE4QzI2OEJDREQxMTg3M0E5MDQxMjdGMjlB
NEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVu
ZD0idyI/Pv/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAG
ADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAABAAD21gABAAAAANMtSFAgIAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl
c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAA
FGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPU
AAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMA
AAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFj
a2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNS
R0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABYWVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAA
AG+iAAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAA
AAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVj
LmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAA
AAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAA
AAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAA
AAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4g
SUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElF
QzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQA
A+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAA
AAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA
LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACpAK4AsgC3
ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkB
YAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YD
cgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wTh
BPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0G
rwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+
CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyIL
OQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34
DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMR
MRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixSt
FM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoY
rxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1
HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEh
ziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtybo
JxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4s
oizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb
MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5
Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAj
QGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tH
wEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+T
T91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BY
L1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhq
n2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRw
dMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/
I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+
imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+V
yZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2
oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2u
oa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7Lrun
vCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJ
uco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg
2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn
H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt
9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////uAA5BZG9iZQBkQAAAAAH/2wCEAAEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMD
AwMDAwMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDA//AABEIAB8AhgMBEQACEQEDEQH/3QAEABH/xAGiAAAABgIDAQAAAAAAAAAA
AAAHCAYFBAkDCgIBAAsBAAAGAwEBAQAAAAAAAAAAAAYFBAMHAggBCQAKCxAAAgEDBAEDAwIDAwMC
Bgl1AQIDBBEFEgYhBxMiAAgxFEEyIxUJUUIWYSQzF1JxgRhikSVDobHwJjRyChnB0TUn4VM2gvGS
okRUc0VGN0djKFVWVxqywtLi8mSDdJOEZaOzw9PjKThm83UqOTpISUpYWVpnaGlqdnd4eXqFhoeI
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
J7r3X//Z

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/assets/image_support/branding/logo/nsdl/nsdl_logo_color_small.gif

R0lGODlhPQAQAMQAAP///5wFKvGkFPHUkf/MZpOZGy8sK/jlwPLx8f/z2+zp5PW1PgAzZjBkjdzb
yN/i5rK2WP378z0yIQRDdF2FpUtHQ92ptqC1xtbf5r3N2Ts6O/X29e7u6+3z9+S4wwAAACH5BAAA
AAAALAAAAAA9ABAAAAX/oGYY4miO5SgZq1iuK6nN9GmT910pHYIohWABwvFhJALBYnBQIDacw2CR
1HA2gI1208lQJgywwfkLmM9oQwXAZh+EkPYDSYi074AEdY2/PygMDBp3aIUBan0DQXFscwt2bAlM
dxECGlh9d4AaCG2GaXx3HYtyEgRtEVQCA3cQFZgAGRcZeBwNBrCfZ4h9DkOlp21SBAsExAQCr20N
YQ20bRcGHZ66h6F4EIwAjpCoEQfEScpszGANfpzUurwAERyoA9PbdAmZeciDyxNgEw9tHBU6salm
DRWEbhwgzUlS7EC3Nh0IjANQbp8/NgAFAiDILkKBAbBKKWFYbEC9NhgCoOozdwdDuoHV2AEI4qDP
Aw0HEugckETJyW0TyzXAcCeaRo6hIkAIYlPCgXbtkPls42CirGdtNtySB8CDBwtgw5rpKISVH1Pe
DuS8s2Bipg2bQrKBZGfstaU0zwoINrdbBGTX+mAAJEhuH7tFfggJQobDkSQEBjjRgkCKqh0+MndQ
4IWfIDKZQz8Zi6P0iRQsJKiWQGO16tM4UN8oQRuFiRAAOw==

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/assets/image_support/branding/logo/mono/mono_wgbh.gif

R0lGODlhPwAcALMNAKioqNfX13d3d+Li4vT09JmZmYCAgOrq6v///4qKirq6uszMzMPDw////wAA
AAAAACH5BAEAAA0ALAAAAAA/ABwAAAT/sMlJq7046827/2AojtignAzSLKcyNEfLNAOQGEYCvHAr
qzQfAqEAABSbgEHAFJiagl2iqVtCmYDF9CooEALXQQGqOWybY2ghzbRy39eCW5CDGjKDM3zP7/Pv
FwNzfoSFe4AVBwBrYwmMYwaMUwYADAuXCmmPm1OOjEyea26IE3kHEmAzEgRRE0WnFlo8FkRIEghL
qg0IbKQNAVM8rAETCAmqCMQTBAMEEwfOt0C3sLu5FL0USkwLtwWzDTu3FLxd0xQMjufFTLrlbaVu
ugHREgPrEgdojNUAdPXkCiTo5q0JojkAROgrYKRhvQMBqg1QJm3aOzoT2AhIgG+DPoIcy3jZwnAR
EYMr1caRO6dPwYGOzKIhGABy15Bi2exdoYgKIIGa+uh09GegnkWBIC9SNAalJq+UBBLMQuAPQMcB
DFJcQNAOJxOeFwWMpCFAF1kvxV4W63hr6rWMBnhK8IeGgoIudpkUSNn2G0kGCW+93VWgpis7DI1M
SmzDIMMWi/QuMsK40WS6DBODozDAkOfPTTPgAk3aT1wNYSPF0fhm0BU9dGCf3gAABw4GBGzneFlb
t+0EAXr7xqFAie4ACnzLJcG8ufPn0KNLvxABADs=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.teachersdomain.org/assets/image_support/branding/logo/mono/mono_nsf.gif

R0lGODlhxAAyALMOAPX19aysrHd3d7a2tszMzNvb26Ojo+vr67+/v5mZmf///+Tk5I6OjoKCgv//
/wAAACH5BAEAAA4ALAAAAADEADIAAAT/0MlJq7046827/2AojmRpnmiqrmzrvnAsz3Rt3+eSHHjv
/6tCYwEsGo8OBQCDECAwhCVySk0VdhUFoSFoIKQTAoNYLZtBAMYYcCggDFyBPBFAENyCgOLM72ea
XQwBBAcHCQIMBW0EBnJOfpCRDgNyQxMKAQIGexOHAgmckqJUC3ENYAAJamClXV6jsEcABnZcDFI6
qQQSCwxdiga7scM4AAMFEgYMCVgEu24OhgMJBhLGBJwAYMTcJwWEAAvBEwgBDgQDC4ML4gXHk0/W
dOgMwt33JFvLDQkUB+YOECwzQFBVgCUIyEigJGfANnwQPxyIUy9UwgAYVamhEyABuj0A/xjFqRax
ZAgCjhAFU0cnQRxHDQQxI9DRlyN7JnNuEOJSwAAE0wTZTJkywLIF2vgVqKezqQZ0DpYKG2CUqNUG
AQzwGLDpXDynYCkklHDAwAKaQ612IfRmAE0pCr4eEaOzCQxMqKY1UuvI3BZmB8XyuCAEoANjDZBl
KCBgBIDGFNRlJVmB8YpMGAWheKzB8ggC/awdmMbRbQCsd+7wEMeAICFOPzNkkmt4MQnIE25JkEtB
sQrcA1LgxuAbxAEGDe607ZhgyYEl2A44IxTttIEAehEITAwg1IRBAnzXpkA5w0MLwx2Ed3xbxHkK
6ZN1eE81bQJkV25NNMBGwYE3eTjQCP8/TwCQSUrUWGAOJVIABIBA/aBUhw6HYdQRAIz9hNVhAjEg
QXqzUTDAAAw8QaEDmWHoRGsTjFgiilw9BFk8BhqFUGMoReUTAhsGVF9jDy5zTh4JhVajbk0IVF5V
CBJRABzhIBKSAQUs8Q2KXSSAgBaeVFKHghK4JAFACRABGWSW0bJQPwIswdl96n1oASW6DcKLjiju
YkBwbcaZJy9fYlRBHqeFiQwCoZ35oZuNjWhNY2X6CdkCkMGJqJx+SqBEL8nRtGdWt1DaHEox7cJD
Jg0YwBEB7KhxgHff5dZPbZxl2hhunOGGq6IWABBTphPcaiEyvA5HqJ3wyWcrprzGaez/BLXqiqmk
01LAyCXGMBNlc4dp498umQy0DbIXGObrdYBSMu2tYNwa7GE/NRsVtOwOqt42xbarkL3JMuuvnH3K
qY66yxYsL7TBXTINdqj+5HBQJH4yk1jvjdlbgA4w1SykCV8qrcbVEkCjh0LOGyeL8/JashihFQds
xk+A9u/HhjUGcsEvykztBQgMhokzcPBFVKoDGCLMg4sx4FAYACnThENqOCNAFHTEiNITTdCkZQPx
2pMGRmY50IsmyKB0B3L8mU3pM2hX6UvY1iSJCkdSqJHk1QFNvRTXlLxRok9p1GP2YXQPWQBjOIWx
CybmYDLAS3ylikUpu4gcQsVh+SEG/GhTL1CAUacJnardzvjiEm+ZN8VYSoKgZRTkgSiTSDnI9ZV6
5geSLYUdkzGzETXBFK3pFY64fHtEcTnCraaNi7EMNWp0ZYdYiHCR+PH4iOEWiQoZIvYxg7ARwGgO
0TSBDlGEZDz23SgQijpkbEFi2cG5k4RRauyxQDrsH/8PIZ4QhiHEYY8DuQVu/btdL2zylVk0oAGD
CdNNEsg+QKynRVKClidAQUHsUUoOSlOEOH7RBkQ9UBOw6iBYUBKMb7wBcrRQhH9OE0EVgkUBBMnC
UtYCKxxez4Y5UUCVLoCShPUKc0DM3ER+mEQbzmJ9TYyiFKdIxSpa8YpYlEQEAAA7

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/css_4_5_8/resource.css

#res_grade_range {
	MARGIN-TOP: 8px; FLOAT: right; FONT-SIZE: 90%
}
#main_content H1 {
	MARGIN-BOTTOM: 7px
}
#asset_box {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f7f7de; MARGIN: 0px; =
PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cca 1px solid; =
BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 10px
}
.page_tag {
	COLOR: #664
}
#thumb_box {
	WIDTH: 271px; FLOAT: left
}
.pic_box_img {
	BORDER-BOTTOM: #000 1px solid; BORDER-LEFT: #000 1px solid; =
MARGIN-BOTTOM: 0px; FLOAT: left; BORDER-TOP: #000 1px solid; =
BORDER-RIGHT: #000 1px solid
}
#res_thumb_banner {
	BORDER-BOTTOM: 0px; BORDER-LEFT: #000 1px solid; MARGIN-BOTTOM: 0px; =
FLOAT: left; BORDER-TOP: #000 1px solid; BORDER-RIGHT: #000 1px solid
}
#meta_box {
	BORDER-BOTTOM: 1px solid; TEXT-ALIGN: center; BORDER-LEFT: 1px solid; =
PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #fff; PADDING-LEFT: 0px; WIDTH: =
140px; PADDING-RIGHT: 0px; FLOAT: left; MARGIN-LEFT: 20px; BORDER-TOP: =
1px solid; BORDER-RIGHT: 1px solid; PADDING-TOP: 4px
}
#meta_box P {
	MARGIN-TOP: 0px
}
.low_para {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.medialink {
	TEXT-ALIGN: center; PADDING-BOTTOM: 3px; PADDING-LEFT: 6px; =
PADDING-RIGHT: 6px; COLOR: #664; FONT-SIZE: 0.8em; PADDING-TOP: 6px
}
.medialink IMG {
	MARGIN: auto
}
#misc_box {
	WIDTH: 230px; FLOAT: left; MARGIN-LEFT: 20px
}
#misc_box P {
	MARGIN-TOP: 0px
}
#misc_box H2 {
	MARGIN-BOTTOM: 0px; COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: normal
}
#misc_box UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px
}
#misc_box UL LI {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 120%; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 90%; PADDING-TOP: 0px
}
A.email_to {
	PADDING-LEFT: 27px; BACKGROUND: url(/images/email_icon.gif) no-repeat =
left 50%; FLOAT: right; FONT-SIZE: 90%
}
#left_col {
	MARGIN-TOP: 18px; WIDTH: 424px; FLOAT: left
}
#right_col {
	MARGIN-TOP: 18px; WIDTH: 256px; MAX-WIDTH: 256px; FLOAT: right
}
UL.tabs {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 100%; PADDING-RIGHT: 18px; FLOAT: left; LIST-STYLE-IMAGE: =
none; PADDING-TOP: 0px
}
UL.tabs LI {
	BORDER-BOTTOM: #cca; BORDER-LEFT: #cca; PADDING-BOTTOM: 4px; =
PADDING-LEFT: 8px; PADDING-RIGHT: 8px; FLOAT: left; FONT-SIZE: 90%; =
BORDER-TOP: #cca 1px solid; BORDER-RIGHT: #cca 1px solid; PADDING-TOP: =
4px
}
UL.tabs LI.add_border {
	BORDER-BOTTOM-COLOR: #cca; BORDER-LEFT: #cca 1px solid; =
BORDER-TOP-COLOR: #cca; BORDER-RIGHT-COLOR: #cca
}
UL.tabs LI.current {
	BORDER-BOTTOM: 0px; PADDING-BOTTOM: 5px; FONT-WEIGHT: bold
}
UL.tabs LI A {
	DISPLAY: block
}
DIV.text_box {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 15px; BACKGROUND-COLOR: #fff; PADDING-LEFT: 8px; WIDTH: =
100%; PADDING-RIGHT: 8px; CLEAR: both; BORDER-TOP: #cca 0px; =
BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 5px
}
DIV.text_box UL {
	LINE-HEIGHT: 14px; FONT-SIZE: 90%
}
DIV.text_box OL {
	LINE-HEIGHT: 14px; FONT-SIZE: 90%
}
DIV.text_box LI UL {
	FONT-SIZE: 100%
}
DIV.text_box LI OL {
	FONT-SIZE: 100%
}
DIV.text_box LI P {
	MARGIN-TOP: 2px; MARGIN-BOTTOM: 2px; FONT-SIZE: 100%
}
DIV.text_box LI {
	MARGIN-BOTTOM: 6px
}
#text_box_questions UL {
	PADDING-LEFT: 10px; MARGIN-LEFT: 10px
}
#text_box_teaching_tips UL {
	PADDING-LEFT: 10px; MARGIN-LEFT: 10px
}
#text_box_teaching_tips UL LI {
	LINE-HEIGHT: 140%; FONT-SIZE: 90%
}
#solo_standards_link {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 6px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; BORDER-TOP: =
#cca 1px solid; BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 6px
}
#tab_group_2 {
	DISPLAY: none
}
#tab_group_3 {
	DISPLAY: none
}
#related_content {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #f7f7de; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; BORDER-TOP: #cca 1px solid; BORDER-RIGHT: #cca 1px =
solid; PADDING-TOP: 6px
}
#right_col #related_content H3 {
	BORDER-TOP: #aa8 1px solid
}
#right_col H3 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 2px; COLOR: #664; FONT-SIZE: 87%; =
BORDER-TOP: #cca 1px solid; PADDING-TOP: 2px
}
.see_also {
	COLOR: #664
}
#related_content UL {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; PADDING-LEFT: 0px; MARGIN-LEFT: =
0px; LIST-STYLE-IMAGE: none
}
#related_content UL LI {
	MARGIN-BOTTOM: 3px; FONT-SIZE: 90%
}
#prod_credits P.producer_line {
	MARGIN-TOP: 2px; COLOR: #666664; FONT-SIZE: 90%
}
#prod_credits IMG {
	MARGIN-BOTTOM: 2px
}
.source {
	FONT-WEIGHT: normal
}
.funder {
	FONT-WEIGHT: normal
}
#ext_attribution {
	LINE-HEIGHT: 140%; MARGIN-TOP: 10px; FONT-SIZE: 90%
}
#ext_attribution P {
	LINE-HEIGHT: 140%; MARGIN-TOP: 0px; FONT-SIZE: 100%
}
A.save_to {
	MARGIN-TOP: 6px; MARGIN-BOTTOM: 4px
}
A.cite_resource {
	FONT-SIZE: 95%
}
A.recommend_to {
	PADDING-LEFT: 18px; FLOAT: left; FONT-SIZE: 90%
}
#citation_content {
	DISPLAY: none; FONT-SIZE: 80%
}
#save_to_form {
	DISPLAY: none
}
#save_to_form SELECT {
	WIDTH: 200px; MARGIN-BOTTOM: 4px; FONT-SIZE: 90%
}
#thumb_box IMG.loader_graphic {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px; DISPLAY: none; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px
}
#collection_brand {
	MARGIN-TOP: 4px
}
#collection_brand P.brand {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN-TOP: 2px; MARGIN-BOTTOM: =
4px; FONT-SIZE: 80%; BORDER-TOP: 0px; BORDER-RIGHT: 0px
}
.shop_icon {
	DISPLAY: inline; VERTICAL-ALIGN: middle
}
P.cite_resource_cont {
	CLEAR: both; PADDING-TOP: 4px
}
DIV.survey {
	MARGIN-BOTTOM: 10px
}
DIV.survey_form {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; =
PADDING-BOTTOM: 10px; MARGIN-TOP: 0px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; BACKGROUND: #fff; BORDER-TOP: #066 1px solid; =
BORDER-RIGHT: #066 1px solid; PADDING-TOP: 6px
}
DIV.survey P {
	MARGIN-TOP: 4px; MARGIN-BOTTOM: 2px; COLOR: #066; FONT-SIZE: 90%; =
FONT-WEIGHT: bold
}
#survey H3 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 10px; =
BACKGROUND-COLOR: #066; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
MARGIN-BOTTOM: 0px; COLOR: #fff; FONT-SIZE: 100%; BORDER-TOP: 0px; =
FONT-WEIGHT: bold; BORDER-RIGHT: 0px; PADDING-TOP: 6px
}
#survey_answer_list LABEL {
	FONT-SIZE: 80%
}
#survey_response H3 {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 10px; =
BACKGROUND-COLOR: #066; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
MARGIN-BOTTOM: 0px; COLOR: #fff; FONT-SIZE: 100%; BORDER-TOP: 0px; =
FONT-WEIGHT: bold; BORDER-RIGHT: 0px; PADDING-TOP: 6px
}
#survey_response P {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; =
PADDING-BOTTOM: 10px; MARGIN-TOP: 0px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; MARGIN-BOTTOM: 2px; BACKGROUND: #fff; COLOR: #000; =
FONT-SIZE: 90%; BORDER-TOP: #066 1px solid; FONT-WEIGHT: bold; =
BORDER-RIGHT: #066 1px solid; PADDING-TOP: 6px
}
#survey_button {
	MARGIN-TOP: 4px
}
#survey_textbox {
	FONT-SIZE: 80%
}
#valid_email_message {
	MARGIN-TOP: 5px; DISPLAY: none; COLOR: #f00; FONT-SIZE: 90%
}
#add_email_anchor {
	MARGIN-TOP: 6px; PADDING-LEFT: 15px; CLEAR: none
}
.email_input_row {
	WIDTH: 264px
}
#email_fields {
	WIDTH: 278px
}
.email_field {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 0px; MARGIN: 0.25em 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FLOAT: left; FONT-SIZE: 90%; BORDER-TOP: #cca 1px =
solid; BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 0px
}
#recommend_to_content {
	DISPLAY: none; FONT-SIZE: 90%
}
#recommend_to_form LABEL {
	FONT-SIZE: 90%
}
#recommend_to_submit {
	MARGIN-TOP: 5px
}
#recommend_to_buttons {
	FLOAT: left; MARGIN-RIGHT: 5px
}
#id_email_address {
	MARGIN-TOP: 3px
}
P.building_block_description {
	FONT-STYLE: italic; COLOR: #407742; FONT-SIZE: 0.85em
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/css_4_5_8/rev_com.css

#rev_launcher {
	BORDER-BOTTOM: #9c9 1px solid; POSITION: relative; BORDER-LEFT: #9c9 =
1px solid; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #fff; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: =
#9c9 1px solid; PADDING-TOP: 8px
}
#rev_content {
	BORDER-BOTTOM: #9c9 1px solid; POSITION: relative; BORDER-LEFT: #9c9 =
1px solid; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #fff; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: =
#9c9 1px solid; PADDING-TOP: 8px
}
DIV.rev_left_col {
	WIDTH: 204px; FLOAT: left; FONT-SIZE: 85%
}
DIV.rev_right_col {
	WIDTH: 350px; FLOAT: left; COLOR: #664; FONT-SIZE: 85%
}
A.star_link {
	PADDING-LEFT: 18px
}
#rev_closer {
	POSITION: relative
}
#review_form_container H3 {
	MARGIN-TOP: 18px; MARGIN-BOTTOM: 4px; COLOR: #664; FONT-SIZE: 90%
}
.review H3 {
	MARGIN-TOP: 18px; MARGIN-BOTTOM: 4px; COLOR: #664; FONT-SIZE: 90%
}
.review_box {
	BORDER-BOTTOM: #cca 1px solid; POSITION: relative; BORDER-LEFT: #cca =
1px solid; PADDING-BOTTOM: 8px; BACKGROUND-COLOR: #fffff1; PADDING-LEFT: =
18px; PADDING-RIGHT: 18px; FONT-SIZE: 90%; BORDER-TOP: #cca 1px solid; =
BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 8px
}
.review_box_left {
	WIDTH: 382px; FLOAT: left
}
.review_box_right {
	WIDTH: 257px; FLOAT: right
}
IMG.star_rating_set {
	DISPLAY: inline; VERTICAL-ALIGN: text-bottom
}
IMG.star_rating_set_none {
	PADDING-LEFT: 4px; DISPLAY: inline; VERTICAL-ALIGN: text-bottom
}
.review_form {
	MARGIN-TOP: 13px
}
.review_form LABEL {
	FONT-WEIGHT: bold
}
.review_text {
	BACKGROUND-COLOR: #fff; WIDTH: 373px; HEIGHT: 70px; FONT-SIZE: 100%
}
.review_box_right H4 {
	MARGIN-TOP: 0px; FONT-SIZE: 100%
}
.opt_star_ratings {
	TEXT-ALIGN: right
}
.review_form_name_label {
	DISPLAY: none
}
.review_form_name_input {
	DISPLAY: none
}
DIV.star_field_opt {
	MARGIN-BOTTOM: 12px
}
DIV.review {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 10px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; BORDER-TOP: #cccba8 1px solid; PADDING-TOP: 2px
}
DIV.rev_meta_container {
	POSITION: relative
}
DIV.rev_meta_left {
	WIDTH: 468px; FLOAT: left
}
DIV.rev_meta_right {
	POSITION: relative; WIDTH: 205px; FLOAT: right
}
DIV.date_flag_container {
	POSITION: relative
}
P.rev_date {
	TEXT-ALIGN: right; WIDTH: 150px; FLOAT: left
}
P.flag_cont {
	TEXT-ALIGN: right; WIDTH: 50px; FLOAT: right
}
A.flag_link {
	PADDING-LEFT: 18px
}
P.rev_meta {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; COLOR: #664
}
#rev_pag_links_top {
	MARGIN-TOP: 12px; COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: bold
}
#rev_pag_links_bottom {
	MARGIN-TOP: 12px; COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: bold
}
P.rev_content {
	MARGIN-TOP: 0px
}
DIV.review IMG.rev_overall_image {
	PADDING-RIGHT: 4px; DISPLAY: inline; VERTICAL-ALIGN: text-bottom
}
DIV.review IMG.rev_rat_detail_image {
	PADDING-LEFT: 3px; PADDING-RIGHT: 25px; DISPLAY: inline; =
VERTICAL-ALIGN: text-bottom
}
#rev_review_submit_loader {
	DISPLAY: inline; VERTICAL-ALIGN: text-bottom
}
#rev_loading_reviews_loader {
	DISPLAY: inline; VERTICAL-ALIGN: text-bottom
}
#rev_loading_reviews {
	MARGIN-TOP: 15px
}
DIV.flag_details {
	BORDER-BOTTOM: #c00 1px solid; BORDER-LEFT: #c00 1px solid; =
PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
MARGIN-BOTTOM: 5px; BORDER-TOP: #c00 1px solid; BORDER-RIGHT: #c00 1px =
solid; PADDING-TOP: 5px
}
DIV.flag_icon {
	PADDING-LEFT: 5px; WIDTH: 55px; FLOAT: left; COLOR: #c00; FONT-SIZE: =
90%; PADDING-TOP: 6px
}
DIV.flag_icon IMG {
	PADDING-RIGHT: 3px
}
DIV.flag_description {
	LINE-HEIGHT: 10px; WIDTH: 275px; FLOAT: left; COLOR: #664; FONT-SIZE: =
75%; PADDING-TOP: 5px
}
DIV.flag_reasons_pulldown {
	PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FLOAT: left; PADDING-TOP: 5px
}
SELECT.flag_reasons_pulldown {
	WIDTH: 210px
}
DIV.comments_container SELECT.flag_reasons_pulldown {
	WIDTH: 130px
}
DIV.comments_container DIV.flag_description {
	WIDTH: 175px
}
DIV.flag_buttons {
	PADDING-TOP: 3px
}
DIV.flag_confirmation {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #fffff1; PADDING-LEFT: 5px; =
PADDING-RIGHT: 3px; COLOR: #664; FONT-SIZE: 90%; BORDER-TOP: #cca 1px =
solid; BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 3px
}
DIV.rev_comment_block {
	TEXT-ALIGN: center
}
DIV.comments_container {
	BORDER-BOTTOM: #cca 1px solid; TEXT-ALIGN: left; BORDER-LEFT: #cca 1px =
solid; PADDING-BOTTOM: 12px; PADDING-LEFT: 12px; WIDTH: 516px; =
PADDING-RIGHT: 12px; MARGIN-LEFT: auto; BORDER-TOP: #cca 1px solid; =
MARGIN-RIGHT: auto; BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 5px
}
FORM.comment_form TEXTAREA {
	BACKGROUND-COLOR: #fff; WIDTH: 100%; HEIGHT: 46px; FONT-SIZE: 100%
}
FORM.comment_form LABEL {
	COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: bold
}
DIV.comment {
	MARGIN-TOP: 12px; BORDER-TOP: #cca 1px solid
}
DIV.comment_meta_container {
	POSITION: relative
}
DIV.cmeta_left {
	WIDTH: 400px; FLOAT: left
}
DIV.cmeta_right {
	TEXT-ALIGN: right; WIDTH: 40px; FLOAT: right
}
DIV.cmeta_left P {
	MARGIN-TOP: 4px; MARGIN-BOTTOM: 7px; COLOR: #664
}
.comment_form_name_label {
	DISPLAY: none
}
.comment_form_name_input {
	DISPLAY: none
}
DIV.rev_form_button_container {
	POSITION: relative
}
DIV.rev_form_left_col {
	WIDTH: 100px; FLOAT: left
}
DIV.rev_form_right_col {
	WIDTH: 200px; FLOAT: right
}
DIV.rev_form_button_col {
	MARGIN-TOP: 14px
}
P.edit_comment_link {
	MARGIN-TOP: 10px
}
DIV.comment_edit_actions {
	POSITION: relative; MARGIN-TOP: 10px
}
DIV.cea_left_col {
	WIDTH: 156px; FLOAT: left
}
DIV.cea_right_col {
	WIDTH: 225px; FLOAT: left
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/css_4_5_8/common.css

BODY {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
P {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
LI {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
H1 {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
H2 {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
H3 {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
H4 {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
INPUT {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
TEXTAREA {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
PRE {
	FONT-FAMILY: "Trebuchet MS", arial, verdana, helvetica, sans-serif
}
BODY {
	Z-INDEX: 1; POSITION: relative; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: =
#fffff1; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
FONT-SIZE: small; PADDING-TOP: 0px
}
P {
	LINE-HEIGHT: 140%; FONT-SIZE: 90%
}
#user_string_container {
	WHITE-SPACE: nowrap; OVERFLOW: visible
}
#main_content {
	Z-INDEX: 1; BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; =
PADDING-RIGHT: 0px; FLOAT: left; BORDER-TOP: 0px; BORDER-RIGHT: 0px; =
PADDING-TOP: 0px
}
#content_restraint {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 30px; WIDTH: 720px; =
PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; BORDER-TOP: 0px; =
BORDER-RIGHT: 0px; PADDING-TOP: 0px
}
.inline {
	DISPLAY: inline
}
DIV.clear {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; CLEAR: both; FONT-SIZE: 1px; PADDING-TOP: 0px
}
DIV.center {
	TEXT-ALIGN: center; WIDTH: 100%
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
A:link {
	COLOR: #066
}
A:active {
	COLOR: #0f0
}
A:visited {
	COLOR: #666
}
A:hover {
	COLOR: #5b5
}
A.glossary_term:link {
	BORDER-BOTTOM: #666 1px dotted; COLOR: #666; TEXT-DECORATION: none
}
A.glossary_term:visited {
	BORDER-BOTTOM: #666 1px dotted; COLOR: #666; TEXT-DECORATION: none
}
A.glossary_term:hover {
	BORDER-BOTTOM: #066 1px dotted; COLOR: #066; TEXT-DECORATION: none
}
P.alert {
	COLOR: red; FONT-WEIGHT: bold
}
P.notify {
	COLOR: green
}
P.all_set {
	COLOR: green
}
A.save_to {
	PADDING-LEFT: 18px; BACKGROUND: url(/images/folder_icon.gif) no-repeat =
left 50%; FLOAT: left; FONT-SIZE: 90%
}
.loader_graphic {
	DISPLAY: none
}
INPUT.button {
	BACKGROUND-COLOR: #ddddcf; FONT-SIZE: 90%
}
#main_content H1 {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 150%; PADDING-TOP: 0px
}
.page_tag {
	COLOR: #363; FONT-SIZE: 70%
}
#td_banner {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#logos {
	Z-INDEX: 1; BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fff; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 100%; PADDING-RIGHT: 0px; FLOAT: left; HEIGHT: 40px; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px
}
#logo_bottom {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 263px; PADDING-RIGHT: 0px; BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 22px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; =
PADDING-TOP: 0px
}
#crumb_nav {
	Z-INDEX: 1; POSITION: relative; BACKGROUND-REPEAT: no-repeat; HEIGHT: =
53px; CLEAR: both
}
#breadcrumbs {
	PADDING-LEFT: 18px
}
UL.crumb {
	PADDING-BOTTOM: 4px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
12px; PADDING-RIGHT: 0px; FLOAT: left; LIST-STYLE-IMAGE: none; =
PADDING-TOP: 20px
}
UL.crumb LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FLOAT: left; FONT-SIZE: 90%; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
UL.crumb LI A {
	PADDING-RIGHT: 20px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: =
95% 50%; FONT-WEIGHT: normal
}
UL.crumb LI A:hover {
	COLOR: #fff
}
#search {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 12px; WIDTH: 315px; PADDING-RIGHT: =
0px; BACKGROUND-REPEAT: no-repeat; PADDING-TOP: 3px
}
#search P {
	PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 90%; PADDING-TOP: 3px
}
#search P A:hover {
	COLOR: #fff
}
#search INPUT.box {
	BACKGROUND-COLOR: #fff; WIDTH: 150px; FONT-SIZE: 90%
}
.max_constraint {
	Z-INDEX: 1; POSITION: relative; TEXT-ALIGN: left; WIDTH: 750px
}
DIV.site_alert {
	BORDER-BOTTOM: #cecead 1px solid; TEXT-ALIGN: left; BORDER-LEFT: =
#cecead 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fff; =
PADDING-LEFT: 10px; WIDTH: 698px; PADDING-RIGHT: 10px; DISPLAY: none; =
COLOR: red; FONT-SIZE: 90%; BORDER-TOP: #cecead 1px solid; FONT-WEIGHT: =
bold; BORDER-RIGHT: #cecead 1px solid; PADDING-TOP: 5px
}
#site_alert_lo {
	BORDER-BOTTOM: 0px
}
#site_alert_li {
	FLOAT: left
}
#sa_li_cont {
	TEXT-ALIGN: right; WIDTH: 750px; MARGIN-BOTTOM: 15px; CLEAR: both; =
PADDING-TOP: 20px
}
#disc_context_color {
	Z-INDEX: 1; POSITION: relative; WIDTH: 100%; MARGIN-BOTTOM: -1px
}
#search_my {
	Z-INDEX: 1; POSITION: relative
}
#my_stuff {
	POSITION: absolute; WIDTH: 435px; TOP: 0px; LEFT: 317px
}
#my_stuff P {
	PADDING-BOTTOM: 4px; MARGIN: 0px; PADDING-LEFT: 4px; PADDING-RIGHT: =
4px; COLOR: #664; FONT-SIZE: 90%; PADDING-TOP: 2px
}
#help_out {
	MARGIN-TOP: 4px; MARGIN-BOTTOM: 0px; FLOAT: right; FONT-SIZE: 90%
}
A.help {
	PADDING-LEFT: 15px
}
#my_links {
	Z-INDEX: 1000; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 4px; WIDTH: 300px; PADDING-RIGHT: 0px; FLOAT: left; =
PADDING-TOP: 3px
}
UL.pulldown_menu {
	LIST-STYLE-TYPE: none; FLOAT: left; FONT-SIZE: 90%; LIST-STYLE-IMAGE: =
none
}
UL.pulldown_menu LI {
	WIDTH: auto; FLOAT: left
}
UL.pulldown_menu LI A {
	BORDER-BOTTOM: #996 1px solid; BORDER-LEFT: 0px; PADDING-BOTTOM: 2px; =
BACKGROUND-COLOR: #f6f6dd; PADDING-LEFT: 4px; PADDING-RIGHT: 4px; =
DISPLAY: block; BORDER-TOP: #996 1px solid; BORDER-RIGHT: #996 1px =
solid; TEXT-DECORATION: none; PADDING-TOP: 2px
}
UL.pulldown_menu LI A:visited {
	COLOR: #066
}
UL.pulldown_menu LI A:hover {
	COLOR: #066
}
UL.pulldown_menu UL {
	Z-INDEX: 1200; POSITION: absolute; PADDING-BOTTOM: 0px; =
BACKGROUND-COLOR: #00f; LIST-STYLE-TYPE: none; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 12.2em; PADDING-RIGHT: 0px; TOP: auto; =
LIST-STYLE-IMAGE: none; PADDING-TOP: 0px; LEFT: -10000px
}
UL.pulldown_menu UL LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 12.2em; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL.pulldown_menu UL LI A {
	BORDER-BOTTOM: #996 1px solid; BORDER-LEFT: #996 1px solid; =
BACKGROUND-COLOR: #fff; BORDER-TOP: 0px; BORDER-RIGHT: #996 1px solid
}
UL.pulldown_menu UL LI A.fmenu_divider {
	BORDER-BOTTOM: #996 1px solid; BORDER-LEFT: #996 1px solid; =
BACKGROUND-COLOR: #f6f6dd; COLOR: black; BORDER-TOP: 0px; BORDER-RIGHT: =
#996 1px solid
}
UL.pulldown_menu UL LI A:hover {
	BACKGROUND-COLOR: #399; COLOR: #fff
}
UL.pulldown_menu UL LI A.fmenu_divider:hover {
	BACKGROUND-COLOR: #f6f6dd; COLOR: #000
}
UL.pulldown_menu LI A.pulldown {
	BACKGROUND-COLOR: #f6f6dd; PADDING-RIGHT: 17px; BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: 93% 45%
}
DIV.content_area {
	Z-INDEX: 1; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 30px; WIDTH: 720px; PADDING-RIGHT: 0px; PADDING-TOP: 20px
}
DIV.content_area H1 {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 20px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 150%; PADDING-TOP: 0px
}
#description {
	PADDING-BOTTOM: 20px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-WEIGHT: 100; PADDING-TOP: 0px
}
#resource_highlight {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; WIDTH: =
230px; MARGIN-BOTTOM: 20px; BORDER-TOP: 0px; BORDER-RIGHT: #cca 1px =
solid
}
#resource_highlight H2 {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #cca; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; COLOR: #664; FONT-SIZE: 95%; PADDING-TOP: 2px
}
#resource_highlight #res_high_meta {
	WIDTH: 100px; PADDING-RIGHT: 10px; FLOAT: right
}
#resource_highlight #res_high_meta P {
	LINE-HEIGHT: 107%; MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px
}
P.res_high_text {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 10px; CLEAR: both; PADDING-TOP: 10px
}
P.res_high_dll_text {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 110%; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; COLOR: #664; CLEAR: both; PADDING-TOP: 10px
}
#single_resource_highlight {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; WIDTH: 230px; PADDING-RIGHT: =
0px; MARGIN-BOTTOM: 20px; BORDER-TOP: 0px; PADDING-TOP: 0px
}
#single_resource_highlight H2 {
	PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 1em; PADDING-TOP: 4px
}
DIV.resource_highlight IMG.medium_thumb {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; WIDTH: =
107px; DISPLAY: inline; BORDER-TOP: #066 1px solid; BORDER-RIGHT: #066 =
1px solid
}
DIV.resource_highlight IMG.large_thumb {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; WIDTH: =
270px; DISPLAY: inline; BORDER-TOP: #066 1px solid; BORDER-RIGHT: #066 =
1px solid
}
DIV.res_high_thumb {
	FLOAT: left; PADDING-TOP: 5px
}
DIV.res_high_meta {
	WIDTH: 100px; PADDING-RIGHT: 10px; FLOAT: right; PADDING-TOP: 10px
}
DIV.res_high_meta P {
	LINE-HEIGHT: 107%; MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px
}
DIV.res_high_meta_right_col {
	PADDING-LEFT: 10px; WIDTH: 320px; FLOAT: left; PADDING-TOP: 5px
}
DIV.res_high_meta_right_col P {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 107%; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 10px; PADDING-TOP: 10px
}
#multiple_resource_highlight {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; WIDTH: 97.5%; PADDING-RIGHT: =
0px; MARGIN-BOTTOM: 10px; FLOAT: left; PADDING-TOP: 0px
}
#multiple_resource_highlight H3 {
	PADDING-BOTTOM: 0px; MARGIN: 2px 0px 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-SIZE: 0.95em; PADDING-TOP: 0px
}
UL.multiple_resource_highlight_list {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FLOAT: left; LIST-STYLE-IMAGE: none; =
PADDING-TOP: 4px
}
UL.multiple_resource_highlight_list LI {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FLOAT: left; PADDING-TOP: 0px
}
#multiple_resource_highlight UL.multiple_resource_highlight_list A IMG {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; =
PADDING-BOTTOM: 0px; MARGIN: 1px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
BORDER-TOP: #066 1px solid; BORDER-RIGHT: #066 1px solid; PADDING-TOP: =
0px
}
#multiple_resource_highlight UL.multiple_resource_highlight_list LI =
IMG.thumb_selected {
	MARGIN: 1px
}
#multiple_resource_highlight UL.multiple_resource_highlight_list LI =
A:hover IMG {
	BORDER-BOTTOM: #000 2px solid; BORDER-LEFT: #000 2px solid; MARGIN: =
0px; BORDER-TOP: #000 2px solid; BORDER-RIGHT: #000 2px solid
}
A.hide_highlight {
	FONT-SIZE: 0.9em
}
#footer {
	Z-INDEX: 0; POSITION: relative; TEXT-ALIGN: center; WIDTH: 720px; =
MARGIN-LEFT: 30px; CLEAR: both; PADDING-TOP: 10px
}
#footer_links {
	Z-INDEX: 0; POSITION: relative; LINE-HEIGHT: 140%; MARGIN-TOP: 10px; =
MARGIN-BOTTOM: 15px
}
#footer_copyright {
	Z-INDEX: 0; POSITION: relative; LINE-HEIGHT: 140%; MARGIN-BOTTOM: 7px; =
COLOR: #886
}
#nsdl_tag {
	WIDTH: 200px; MARGIN-BOTTOM: 20px; COLOR: #363; FONT-SIZE: 70%
}
#nsdl_tag IMG {
	PADDING-BOTTOM: 2px
}
#small_resource_list {
	WIDTH: 230px
}
#small_resource_list IMG {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; FLOAT: =
left; BORDER-TOP: #066 1px solid; BORDER-RIGHT: #066 1px solid
}
#small_resource_list P {
	MARGIN-TOP: 0px; WIDTH: 160px; FLOAT: left; MARGIN-LEFT: 8px
}
DIV.sm_res_list_item {
	CLEAR: left
}
DIV.tdrive_window {
	BORDER-BOTTOM: #664 2px solid; POSITION: absolute; BORDER-LEFT: #664 =
2px solid; BACKGROUND-COLOR: #fff; WIDTH: 250px; BORDER-TOP: #664 2px =
solid; BORDER-RIGHT: #664 2px solid
}
DIV.tdrive_titlebar {
	BACKGROUND-COLOR: #eec; HEIGHT: 30px
}
DIV.tdrive_titlebar H1 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; COLOR: #664; FONT-SIZE: 14px; PADDING-TOP: 5px
}
DIV.closeIcon {
	POSITION: absolute; TOP: 10px; RIGHT: 10px
}
#nag_top {
	BORDER-BOTTOM: #664 1px solid; TEXT-ALIGN: left; PADDING-BOTTOM: 8px; =
BACKGROUND-COLOR: #fffff1; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
PADDING-TOP: 5px
}
#nag_top H2 {
	MARGIN: 6px 0px 0px; COLOR: #664; FONT-SIZE: 90%
}
#nag_top P {
	LINE-HEIGHT: 14px; MARGIN-TOP: 0px; COLOR: #000
}
#nag_bottom {
	PADDING-BOTTOM: 8px; PADDING-TOP: 6px
}
#nb_feature {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-LEFT: =
25px; PADDING-RIGHT: 25px; PADDING-TOP: 5px
}
#nb_feature P {
	LINE-HEIGHT: 14px; MARGIN: 0px; COLOR: #c00; FONT-WEIGHT: bold
}
#nb_about {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; COLOR: #000; PADDING-TOP: 0px
}
#nb_about H2 {
	MARGIN: 6px 0px 0px; COLOR: #664; FONT-SIZE: 90%
}
#nb_about P {
	LINE-HEIGHT: 14px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px
}
#nb_about UL {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; TEXT-INDENT: -1em; =
PADDING-LEFT: 1em; MARGIN-LEFT: 0px; FONT-SIZE: 90%; LIST-STYLE-IMAGE: =
none
}
#nb_about UL LI {
	MARGIN-BOTTOM: 6px
}
.nag_section {
	DISPLAY: none
}
#nb_reg {
	TEXT-ALIGN: center
}
#nb_complete {
	TEXT-ALIGN: center
}
#nb_complete P {
	MARGIN-BOTTOM: 0px
}
#footer_nsf {
	Z-INDEX: 0; POSITION: relative; MARGIN-BOTTOM: 5px
}
.foot_major_fund {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; COLOR: #886; FONT-SIZE: 80%; PADDING-TOP: 0px
}
IMG.footer_logo {
	DISPLAY: inline; MARGIN-LEFT: auto; VERTICAL-ALIGN: middle; =
MARGIN-RIGHT: auto
}
#unpublished_footnote {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; COLOR: =
#f00; PADDING-TOP: 10px
}
.unpublished_indicator {
	COLOR: #f00
}
.highlight_medialink {
	PADDING-BOTTOM: 3px; LINE-HEIGHT: 0.8em; COLOR: #664; PADDING-TOP: 10px
}
.highlight_medialink IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 2px; DISPLAY: =
inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px
}
#asn_img {
	MARGIN-TOP: 0.5em; MARGIN-BOTTOM: 0.5em
}
#choose_jurisdiction {
	PADDING-BOTTOM: 0.75em; PADDING-TOP: 0.75em
}
.jurisdiction {
	LINE-HEIGHT: 140%; FONT-FAMILY: "Trebuchet MS", arial, verdana, =
helvetica, sans-serif; CLEAR: both; FONT-SIZE: 90%
}
.jurisdiction A {
	COLOR: #000; FONT-WEIGHT: bold
}
.jurisdiction A:hover {
	COLOR: #000; FONT-WEIGHT: bold
}
.standards_atom {
	PADDING-LEFT: 0.7em
}
.linkset {
	MARGIN-TOP: 0.6em; FLOAT: right
}
#report_textarea {
	MARGIN-TOP: 0.5em; WIDTH: 360px; HEIGHT: 100px; FONT-SIZE: 90%
}
.standards_top_atom {
	MARGIN-TOP: 0.5em; FONT-WEIGHT: bold
}
#about_standards_link {
	MARGIN-LEFT: 60px
}
#about_standards_hide {
	MARGIN-LEFT: 200px
}
#report_problem_hide {
	MARGIN-LEFT: 148px
}
#btn_send_report {
	MARGIN-TOP: 0.6em
}
#report_text {
	MARGIN-TOP: 1em; FONT-SIZE: 8pt
}
#report_problem {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 0.5em; MARGIN: 0.8em 0px 0px; PADDING-LEFT: 1em; =
PADDING-RIGHT: 1em; FONT-SIZE: 110%; BORDER-TOP: #cca 1px solid; =
BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 0px
}
#report_problem P {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; MARGIN-BOTTOM: 0px; PADDING-TOP: 0.5em
}
#about_standards {
	BORDER-BOTTOM: #cca 1px solid; BORDER-LEFT: #cca 1px solid; =
PADDING-BOTTOM: 0.5em; MARGIN: 0.8em 0px 0px; PADDING-LEFT: 1em; =
PADDING-RIGHT: 1em; FONT-SIZE: 110%; BORDER-TOP: #cca 1px solid; =
BORDER-RIGHT: #cca 1px solid; PADDING-TOP: 0px
}
#about_standards P {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; MARGIN-BOTTOM: 0px; PADDING-TOP: 0.5em
}
#grade_range_widget {
	DISPLAY: block; MARGIN-BOTTOM: 1em; FONT-SIZE: 90%
}
#asset_access_restricted_box {
	BORDER-BOTTOM: #797857 2px solid; BORDER-LEFT: #797857 2px solid; =
MARGIN: 20px auto; WIDTH: 275px; BORDER-TOP: #797857 2px solid; =
BORDER-RIGHT: #797857 2px solid
}
#asset_access_restricted_box H3.asset_access_restricted_header {
	PADDING-BOTTOM: 7px; LINE-HEIGHT: 1em; BACKGROUND-COLOR: #f2f1d7; =
MARGIN: 0px; PADDING-LEFT: 7px; PADDING-RIGHT: 7px; COLOR: #797857; =
PADDING-TOP: 7px
}
#asset_access_restricted_body {
	PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #fffff6; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; PADDING-TOP: 10px
}
DIV.side_tabs_header {
	Z-INDEX: 1; POSITION: relative; PADDING-BOTTOM: 3px; MARGIN-TOP: 2px; =
PADDING-LEFT: 11px; PADDING-RIGHT: 0px; FONT-WEIGHT: 700; PADDING-TOP: =
3px
}
#side_tabs_container {
	Z-INDEX: 1; POSITION: relative; WIDTH: 100%
}
#side_tabs_list {
	Z-INDEX: 1; POSITION: absolute; WIDTH: 150px; TOP: 0px
}
#side_tabs_list UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px
}
#side_tabs_list UL LI {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f7f7de; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; FONT-SIZE: 90%; BORDER-TOP: #9c9; BORDER-RIGHT: #9c9 =
1px solid; PADDING-TOP: 4px
}
#side_tabs_list UL LI.current {
	BACKGROUND-COLOR: #fffff1; FONT-WEIGHT: bold; BORDER-RIGHT: 0px
}
#side_tabs_list UL LI.current A:link {
	CURSOR: text; TEXT-DECORATION: none
}
#side_tabs_list UL LI.current A:visited {
	CURSOR: text; TEXT-DECORATION: none
}
#side_tabs_content {
	Z-INDEX: 1; POSITION: relative; MIN-HEIGHT: 150px; WIDTH: 316px; LEFT: =
149px
}
#side_tabs_content DIV.text_box {
	Z-INDEX: 1; BORDER-BOTTOM: #9c9 1px solid; POSITION: relative; =
BORDER-LEFT: #9c9 1px solid; PADDING-BOTTOM: 7px; BACKGROUND-COLOR: =
#fffff1; MIN-HEIGHT: 150px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; =
DISPLAY: none; BORDER-TOP: #9c9; BORDER-RIGHT: #9c9 1px solid; =
PADDING-TOP: 5px
}
#side_tabs_content DIV.current {
	DISPLAY: block
}
#error_search {
	PADDING-BOTTOM: 30px; LINE-HEIGHT: 2em; PADDING-LEFT: 25px
}
#internal_server_error {
	PADDING-BOTTOM: 125px; PADDING-RIGHT: 80px
}
DIV.printer_friendly_link {
	TEXT-ALIGN: left; FLOAT: right; FONT-SIZE: 0.9em
}
DIV.printer_friendly_link IMG {
	PADDING-RIGHT: 5px; FLOAT: left
}
DIV.printer_friendly_content {
	MARGIN-LEFT: 15px; MARGIN-RIGHT: 15px
}
DIV.inline_image_caption {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT: italic 1em verdana, "trebuchet MS", helvetica, =
sans-serif; COLOR: #666; PADDING-TOP: 5px
}
DIV.inline_image_credit {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT: 0.8em verdana, "trebuchet MS", helvetica, =
sans-serif; COLOR: #666; PADDING-TOP: 5px
}
DIV.media_upload_form {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px; PADDING-TOP: 0px
}
TABLE.form_table {
	BORDER-BOTTOM: medium none; MARGIN-BOTTOM: 10px
}
TABLE.form_table TH {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: right; BORDER-LEFT: medium =
none; WIDTH: 80px; PADDING-RIGHT: 4px; VERTICAL-ALIGN: top; BORDER-TOP: =
medium none; BORDER-RIGHT: medium none; PADDING-TOP: 10px
}
TABLE.form_table TD {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
10px; PADDING-RIGHT: 10px; BORDER-TOP: medium none; BORDER-RIGHT: medium =
none; PADDING-TOP: 10px
}
TABLE.form_table INPUT[type=3D'text'] {
	WIDTH: 350px
}
TABLE.form_table INPUT[type=3D'password'] {
	WIDTH: 350px
}
TABLE.form_table TEXTAREA[name=3D'xml'] {
	WIDTH: 500px; HEIGHT: 450px
}
TABLE.form_table SELECT[multiple=3D'multiple'] {
	WIDTH: 400px
}
DIV.flag_interface {
	MARGIN-TOP: 15px; WIDTH: 330px; MARGIN-LEFT: 12px; CLEAR: both
}
IMG.flag_icon {
	MARGIN-TOP: 0px; DISPLAY: inline; VERTICAL-ALIGN: top; PADDING-TOP: 0px
}
DIV.flag_content {
	DISPLAY: none; COLOR: #664; FONT-SIZE: 90%
}
DIV.flag_interface SELECT {
	MARGIN-TOP: 8px; WIDTH: 200px
}
DIV.flag_interface TEXTAREA {
	BACKGROUND-COLOR: #fff; WIDTH: 260px; HEIGHT: 36px; FONT-SIZE: 95%
}
DIV.flag_interface .flag_label {
	MARGIN-TOP: 6px; DISPLAY: block
}
IMG.flag_loader {
	DISPLAY: none
}
DIV.flag_interface P {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; COLOR: #664; =
PADDING-TOP: 1em
}
DIV.res_icon_disp_bb_small {
	POSITION: relative; TEXT-ALIGN: left; WIDTH: 220px; MARGIN-BOTTOM: 10px
}
DIV.res_icon_disp_small {
	POSITION: relative; TEXT-ALIGN: left; WIDTH: 220px; MARGIN-BOTTOM: 10px
}
DIV.res_icon_small_bb_content {
	DISPLAY: none
}
DIV.res_icon_small_left_col {
	WIDTH: 40px; FLOAT: left; PADDING-TOP: 4px
}
DIV.res_icon_small_right_col {
	WIDTH: 165px; FLOAT: right
}
DIV.res_icon_small_right_col P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
IMG.icon_view_thumb {
	BORDER-BOTTOM: #066 1px solid; BORDER-LEFT: #066 1px solid; =
MARGIN-LEFT: auto; BORDER-TOP: #066 1px solid; MARGIN-RIGHT: auto; =
BORDER-RIGHT: #066 1px solid
}
DIV.res_icon_disp_default {
	TEXT-ALIGN: center; LINE-HEIGHT: 100%; MARGIN-BOTTOM: 12px; =
MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
P.res_icon_title {
	LINE-HEIGHT: 100%; MARGIN: 8px 0px 0px
}
P.res_icon_info {
	MARGIN-TOP: 8px; MARGIN-BOTTOM: 8px
}
IMG.asset_display_icon {
	MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
DIV.icon_display_small_lc {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 40px; =
PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 3px
}
DIV.icon_display_small_rc {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 145px; =
PADDING-RIGHT: 0px; FLOAT: right; PADDING-TOP: 0px
}
DIV.icon_display_small_rc H3 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 100%; PADDING-TOP: 0px
}
DIV.icon_display_small_rc P {
	MARGIN-TOP: 0px
}
DIV.asset_display_icon_container {
	TEXT-ALIGN: center
}
DIV.asset_display_icon_container_large {
	MARGIN-TOP: 6px; FONT-SIZE: 100%
}
DIV.asset_display_icon_container_medium H3 {
	MARGIN-TOP: 6px; FONT-SIZE: 100%
}
DIV.asset_display_icon_container_small {
	POSITION: relative; TEXT-ALIGN: left; WIDTH: 195px; MARGIN-BOTTOM: =
12px; CLEAR: both
}
P.asset_display_icon_info {
	MARGIN-TOP: 4px; MARGIN-BOTTOM: 4px
}
#sso_banner {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: left; BORDER-LEFT: #cecead 1px =
solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fff; PADDING-LEFT: 10px; =
WIDTH: 698px; PADDING-RIGHT: 10px; DISPLAY: none; FONT-SIZE: 90%; =
BORDER-TOP: #cecead 1px solid; BORDER-RIGHT: #cecead 1px solid; =
PADDING-TOP: 5px
}
#sso_banner IMG {
	PADDING-RIGHT: 5px; DISPLAY: inline; VERTICAL-ALIGN: middle
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/css_4_5_8/global_login.css

#global_login_container {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 30px; PADDING-RIGHT: 0px; DISPLAY: =
none; PADDING-TOP: 20px
}
#global_login_spec_cont {
	DISPLAY: none
}
#login-drive {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 720px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; =
BORDER-RIGHT: 0px; PADDING-TOP: 0px
}
#login-drive FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#ltd-left-col {
	BORDER-BOTTOM: #cecead 1px solid; BORDER-LEFT: #cecead 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fffff1; WIDTH: 359px; =
BORDER-TOP: #cecead 1px solid; BORDER-RIGHT: 0px; PADDING-TOP: 5px
}
#ltd-stnd-login H2 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
#ltd-stnd-login P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; COLOR: #664
}
#ltd-right-col {
	BORDER-BOTTOM: #cecead 1px solid; BORDER-LEFT: #cecead 1px solid; =
BACKGROUND-COLOR: #efefce; WIDTH: 358px; BORDER-TOP: #cecead 1px solid; =
BORDER-RIGHT: #cecead 1px solid; PADDING-TOP: 0px
}
#reg-form-container {
	TEXT-ALIGN: center; PADDING-BOTTOM: 12px
}
#ltd-right-col H2 {
	MARGIN-TOP: 8px; MARGIN-BOTTOM: 2px; FONT-SIZE: 95%
}
#ltd-rc-content-1 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 40px; =
PADDING-RIGHT: 40px; PADDING-TOP: 4px
}
#ltd-rc-content-2 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; DISPLAY: none; PADDING-TOP: 4px
}
#ltd-rc-content-1 H2 {
	COLOR: #664
}
#ltd-rc-content-2 H2 {
	COLOR: #c00
}
#ltd-right-col P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px
}
#ltd-left-string {
	COLOR: #c00; FONT-WEIGHT: bold
}
#ltd-stnd-login LABEL {
	COLOR: #664; FONT-SIZE: 90%
}
#org_data {
	DISPLAY: none
}
#org_data_ssol {
	DISPLAY: none
}
INPUT.uname_box {
	PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fff; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 225px; PADDING-RIGHT: 0px; COLOR: #000; FONT-SIZE: 90%; =
PADDING-TOP: 0px
}
INPUT.pass_box {
	PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fff; MARGIN: 0px; PADDING-LEFT: =
0px; WIDTH: 135px; PADDING-RIGHT: 0px; COLOR: #000; FONT-SIZE: 90%; =
PADDING-TOP: 0px
}
P.lost_pass {
	MARGIN-BOTTOM: 0px; MARGIN-LEFT: 95px; CLEAR: both; FONT-SIZE: 90%
}
DIV.label {
	TEXT-ALIGN: right; MARGIN-TOP: 3px; WIDTH: 91px; FLOAT: left
}
DIV.target {
	MARGIN-TOP: 3px; WIDTH: 230px; FLOAT: left; MARGIN-LEFT: 4px
}
#ltd-rc-learn-more {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; PADDING-LEFT: 20px; =
PADDING-RIGHT: 20px; DISPLAY: none; PADDING-TOP: 0px
}
#ltd-rc-learn-more H2 {
	MARGIN: 6px 0px 0px; COLOR: #664; FONT-SIZE: 90%
}
#ltd-rc-learn-more P {
	LINE-HEIGHT: 14px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px
}
#ltd-rc-learn-more UL {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; TEXT-INDENT: -1em; =
PADDING-LEFT: 1em; COLOR: #000; MARGIN-LEFT: 0px; FONT-SIZE: 90%; =
LIST-STYLE-IMAGE: none
}
#ltd-rc-learn-more UL LI {
	MARGIN-BOTTOM: 6px
}
#ltd-rc-content-3p1 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 25px; =
PADDING-RIGHT: 25px; DISPLAY: none; PADDING-TOP: 4px
}
#ltd-rc-content-3p2 {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 25px; =
PADDING-RIGHT: 25px; DISPLAY: none; PADDING-TOP: 4px
}
#ltd-rc-content-3p2 H2 {
	COLOR: #664
}
#nsdl-login-section {
	MARGIN-TOP: 4px
}
#nsdl-login-section P {
	PADDING-BOTTOM: 4px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
#ltd-rc-content-sso {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; DISPLAY: none; PADDING-TOP: 4px
}
#ltd-sso-login1 {
	TEXT-ALIGN: center; DISPLAY: none; MARGIN-BOTTOM: 45px; MARGIN-LEFT: =
25px; MARGIN-RIGHT: 25px
}
#ltd-sso-login1 H2 {
	MARGIN-TOP: 8px; MARGIN-BOTTOM: 2px; COLOR: #664; FONT-SIZE: 95%
}
#ltd-sso-login1 P {
	MARGIN-TOP: 0px
}
#ltd-sso-login2 {
	DISPLAY: none
}
#ltd-sso-login2 H2 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; COLOR: #664; FONT-SIZE: 90%; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
#ltd-sso-login2 P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; COLOR: #664
}
#ltd-sso-login2 LABEL {
	COLOR: #664; FONT-SIZE: 85%
}
#ltd-rc-content-sso-pre {
	TEXT-ALIGN: center; PADDING-BOTTOM: 10px; PADDING-LEFT: 40px; =
PADDING-RIGHT: 40px; DISPLAY: none; PADDING-TOP: 4px
}
#ltd-rc-content-sso-pre H2 {
	COLOR: #664
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/css_4_5_8/edition_k12.css

.page_tag {
	COLOR: #363
}
#asset_box {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
BACKGROUND-COLOR: #ded; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: #9c9 =
1px solid
}
#meta_box {
	BORDER-BOTTOM-COLOR: #9c9; BORDER-TOP-COLOR: #9c9; BORDER-RIGHT-COLOR: =
#9c9; BORDER-LEFT-COLOR: #9c9
}
#single_resource_highlight {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
BACKGROUND-COLOR: #dfefdf; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: =
#9c9 1px solid
}
#single_resource_highlight H2 {
	COLOR: #363
}
#multiple_resource_highlight {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
BACKGROUND-COLOR: #dfefdf; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: =
#9c9 1px solid
}
#multiple_resource_highlight H3 {
	COLOR: #363
}
#multiple_resource_highlight UL.multiple_resource_highlight_list =
IMG.thumb_selected {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; BORDER-TOP: =
#9c9 1px solid; BORDER-RIGHT: #9c9 1px solid
}
UL.tabs LI {
	BORDER-BOTTOM-COLOR: #9c9; BORDER-TOP-COLOR: #9c9; BORDER-RIGHT-COLOR: =
#9c9; BORDER-LEFT-COLOR: #9c9
}
UL.tabs LI.add_border {
	BORDER-BOTTOM-COLOR: #9c9; BORDER-TOP-COLOR: #9c9; BORDER-RIGHT-COLOR: =
#9c9; BORDER-LEFT-COLOR: #9c9
}
DIV.text_box {
	BORDER-BOTTOM-COLOR: #9c9; BORDER-TOP-COLOR: #9c9; BORDER-RIGHT-COLOR: =
#9c9; BORDER-LEFT-COLOR: #9c9
}
#res_grade_range {
	COLOR: #363
}
#collection_brand P.brand {
	COLOR: #363
}
#crumb_nav {
	BACKGROUND-COLOR: #9c9
}
UL.crumb LI {
	COLOR: #363
}
#disc_context_color {
	BACKGROUND-COLOR: #fffff1
}
#main_content {
	BACKGROUND-COLOR: #fffff1
}
#logo_bottom {
	BACKGROUND-COLOR: #9c9
}
DIV.browse_box {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
BACKGROUND-COLOR: #fff; MARGIN-BOTTOM: 15px; BORDER-TOP: #9c9 1px solid; =
BORDER-RIGHT: #9c9 1px solid
}
DIV.tab_bar {
	BACKGROUND-COLOR: #9c9; WIDTH: 100%
}
DIV.tab_bar H3 {
	PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fff; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FLOAT: left; FONT-SIZE: 100%; PADDING-TOP: 0px
}
DIV.tab_bar P {
	PADDING-BOTTOM: 0px; MARGIN: 0px 12px 0px 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FLOAT: right; PADDING-TOP: 0px
}
DIV.tab_bar P A:hover {
	COLOR: #fff
}
DIV.browse_box UL {
	PADDING-BOTTOM: 3px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; CLEAR: both; LIST-STYLE-IMAGE: none; =
PADDING-TOP: 0px
}
DIV.browse_box LI {
	PADDING-BOTTOM: 2px; MARGIN: 0px; PADDING-LEFT: 10px; WIDTH: auto; =
FONT-SIZE: 90%; BORDER-TOP: #9c9 1px solid
}
DIV.browse_box UL.nested {
	LIST-STYLE-TYPE: none; PADDING-LEFT: 15px; LIST-STYLE-IMAGE: none
}
DIV.browse_box UL.nested LI {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; FONT-SIZE: 100%; BORDER-TOP: 0px; =
BORDER-RIGHT: 0px
}
DIV.browse_box UL.subject_nested {
	PADDING-LEFT: 25px
}
DIV.browse_box UL.topic_nested {
	PADDING-BOTTOM: 15px; PADDING-LEFT: 25px
}
DIV.see_all_lesson_plans {
	PADDING-BOTTOM: 15px; PADDING-LEFT: 12px; FONT-SIZE: 90%
}
A.bull {
	PADDING-LEFT: 8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: =
left 50%
}
UL.nested {
	DISPLAY: none
}
A.twiddle_closed {
	BACKGROUND-IMAGE: url(../images/twiddler_closed.gif); PADDING-BOTTOM: =
0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: center 50%; TEXT-DECORATION: none; =
PADDING-TOP: 0px
}
A.twiddle_open {
	BACKGROUND-IMAGE: url(../images/twiddler_open.gif); PADDING-BOTTOM: =
0px; PADDING-LEFT: 0px; PADDING-RIGHT: 10px; BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: center 50%; TEXT-DECORATION: none; =
PADDING-TOP: 0px
}
#multi_media {
	BORDER-BOTTOM: #9c9 1px solid; BORDER-LEFT: #9c9 1px solid; =
BACKGROUND-COLOR: #dfefdf; BORDER-TOP: #9c9 1px solid; BORDER-RIGHT: =
#9c9 1px solid
}
#multi_media H2 {
	BACKGROUND-COLOR: #9c9; COLOR: #363
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://www.teachersdomain.org/css_4_5_8/hack_ie.css

UL.accordion_list LI {
	HEIGHT: 1%
}

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/vendor/prototype.js

/*  Prototype JavaScript framework, version 1.6.0.1=0A=
 *  (c) 2005-2007 Sam Stephenson=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *  For details, see the Prototype web site: http://www.prototypejs.org/=0A=
 *=0A=
 =
*------------------------------------------------------------------------=
--*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.6.0.1',=0A=
=0A=
  Browser: {=0A=
    IE:     !!(window.attachEvent && !window.opera),=0A=
    Opera:  !!window.opera,=0A=
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,=0A=
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && =
navigator.userAgent.indexOf('KHTML') =3D=3D -1,=0A=
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)=0A=
  },=0A=
=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate,=0A=
    ElementExtensions: !!window.HTMLElement,=0A=
    SpecificElementExtensions:=0A=
      document.createElement('div').__proto__ &&=0A=
      document.createElement('div').__proto__ !=3D=3D=0A=
        document.createElement('form').__proto__=0A=
  },=0A=
=0A=
  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',=0A=
  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,=0A=
=0A=
  emptyFunction: function() { },=0A=
  K: function(x) { return x }=0A=
};=0A=
=0A=
if (Prototype.Browser.MobileSafari)=0A=
  Prototype.BrowserFeatures.SpecificElementExtensions =3D false;=0A=
=0A=
=0A=
/* Based on Alex Arnell's inheritance implementation. */=0A=
var Class =3D {=0A=
  create: function() {=0A=
    var parent =3D null, properties =3D $A(arguments);=0A=
    if (Object.isFunction(properties[0]))=0A=
      parent =3D properties.shift();=0A=
=0A=
    function klass() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
=0A=
    Object.extend(klass, Class.Methods);=0A=
    klass.superclass =3D parent;=0A=
    klass.subclasses =3D [];=0A=
=0A=
    if (parent) {=0A=
      var subclass =3D function() { };=0A=
      subclass.prototype =3D parent.prototype;=0A=
      klass.prototype =3D new subclass;=0A=
      parent.subclasses.push(klass);=0A=
    }=0A=
=0A=
    for (var i =3D 0; i < properties.length; i++)=0A=
      klass.addMethods(properties[i]);=0A=
=0A=
    if (!klass.prototype.initialize)=0A=
      klass.prototype.initialize =3D Prototype.emptyFunction;=0A=
=0A=
    klass.prototype.constructor =3D klass;=0A=
=0A=
    return klass;=0A=
  }=0A=
};=0A=
=0A=
Class.Methods =3D {=0A=
  addMethods: function(source) {=0A=
    var ancestor   =3D this.superclass && this.superclass.prototype;=0A=
    var properties =3D Object.keys(source);=0A=
=0A=
    if (!Object.keys({ toString: true }).length)=0A=
      properties.push("toString", "valueOf");=0A=
=0A=
    for (var i =3D 0, length =3D properties.length; i < length; i++) {=0A=
      var property =3D properties[i], value =3D source[property];=0A=
      if (ancestor && Object.isFunction(value) &&=0A=
          value.argumentNames().first() =3D=3D "$super") {=0A=
        var method =3D value, value =3D Object.extend((function(m) {=0A=
          return function() { return ancestor[m].apply(this, arguments) =
};=0A=
        })(property).wrap(method), {=0A=
          valueOf:  function() { return method },=0A=
          toString: function() { return method.toString() }=0A=
        });=0A=
      }=0A=
      this.prototype[property] =3D value;=0A=
    }=0A=
=0A=
    return this;=0A=
  }=0A=
};=0A=
=0A=
var Abstract =3D { };=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (var property in source)=0A=
    destination[property] =3D source[property];=0A=
  return destination;=0A=
};=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (Object.isUndefined(object)) return 'undefined';=0A=
      if (object =3D=3D=3D null) return 'null';=0A=
      return object.inspect ? object.inspect() : object.toString();=0A=
    } catch (e) {=0A=
      if (e instanceof RangeError) return '...';=0A=
      throw e;=0A=
    }=0A=
  },=0A=
=0A=
  toJSON: function(object) {=0A=
    var type =3D typeof object;=0A=
    switch (type) {=0A=
      case 'undefined':=0A=
      case 'function':=0A=
      case 'unknown': return;=0A=
      case 'boolean': return object.toString();=0A=
    }=0A=
=0A=
    if (object =3D=3D=3D null) return 'null';=0A=
    if (object.toJSON) return object.toJSON();=0A=
    if (Object.isElement(object)) return;=0A=
=0A=
    var results =3D [];=0A=
    for (var property in object) {=0A=
      var value =3D Object.toJSON(object[property]);=0A=
      if (!Object.isUndefined(value))=0A=
        results.push(property.toJSON() + ': ' + value);=0A=
    }=0A=
=0A=
    return '{' + results.join(', ') + '}';=0A=
  },=0A=
=0A=
  toQueryString: function(object) {=0A=
    return $H(object).toQueryString();=0A=
  },=0A=
=0A=
  toHTML: function(object) {=0A=
    return object && object.toHTML ? object.toHTML() : =
String.interpret(object);=0A=
  },=0A=
=0A=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({ }, object);=0A=
  },=0A=
=0A=
  isElement: function(object) {=0A=
    return object && object.nodeType =3D=3D 1;=0A=
  },=0A=
=0A=
  isArray: function(object) {=0A=
    return object && object.constructor =3D=3D=3D Array;=0A=
  },=0A=
=0A=
  isHash: function(object) {=0A=
    return object instanceof Hash;=0A=
  },=0A=
=0A=
  isFunction: function(object) {=0A=
    return typeof object =3D=3D "function";=0A=
  },=0A=
=0A=
  isString: function(object) {=0A=
    return typeof object =3D=3D "string";=0A=
  },=0A=
=0A=
  isNumber: function(object) {=0A=
    return typeof object =3D=3D "number";=0A=
  },=0A=
=0A=
  isUndefined: function(object) {=0A=
    return typeof object =3D=3D "undefined";=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Function.prototype, {=0A=
  argumentNames: function() {=0A=
    var names =3D =
this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").inv=
oke("strip");=0A=
    return names.length =3D=3D 1 && !names[0] ? [] : names;=0A=
  },=0A=
=0A=
  bind: function() {=0A=
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return =
this;=0A=
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();=0A=
    return function() {=0A=
      return __method.apply(object, args.concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  bindAsEventListener: function() {=0A=
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();=0A=
    return function(event) {=0A=
      return __method.apply(object, [event || =
window.event].concat(args));=0A=
    }=0A=
  },=0A=
=0A=
  curry: function() {=0A=
    if (!arguments.length) return this;=0A=
    var __method =3D this, args =3D $A(arguments);=0A=
    return function() {=0A=
      return __method.apply(this, args.concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  delay: function() {=0A=
    var __method =3D this, args =3D $A(arguments), timeout =3D =
args.shift() * 1000;=0A=
    return window.setTimeout(function() {=0A=
      return __method.apply(__method, args);=0A=
    }, timeout);=0A=
  },=0A=
=0A=
  wrap: function(wrapper) {=0A=
    var __method =3D this;=0A=
    return function() {=0A=
      return wrapper.apply(this, =
[__method.bind(this)].concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  methodize: function() {=0A=
    if (this._methodized) return this._methodized;=0A=
    var __method =3D this;=0A=
    return this._methodized =3D function() {=0A=
      return __method.apply(null, [this].concat($A(arguments)));=0A=
    };=0A=
  }=0A=
});=0A=
=0A=
Function.prototype.defer =3D Function.prototype.delay.curry(0.01);=0A=
=0A=
Date.prototype.toJSON =3D function() {=0A=
  return '"' + this.getUTCFullYear() + '-' +=0A=
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +=0A=
    this.getUTCDate().toPaddedString(2) + 'T' +=0A=
    this.getUTCHours().toPaddedString(2) + ':' +=0A=
    this.getUTCMinutes().toPaddedString(2) + ':' +=0A=
    this.getUTCSeconds().toPaddedString(2) + 'Z"';=0A=
};=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var lambda =3D arguments[i];=0A=
      try {=0A=
        returnValue =3D lambda();=0A=
        break;=0A=
      } catch (e) { }=0A=
    }=0A=
=0A=
    return returnValue;=0A=
  }=0A=
};=0A=
=0A=
RegExp.prototype.match =3D RegExp.prototype.test;=0A=
=0A=
RegExp.escape =3D function(str) {=0A=
  return String(str).replace(/([.*+?^=3D!:${}()|[\]\/\\])/g, '\\$1');=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create({=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  execute: function() {=0A=
    this.callback(this);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.execute();=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
});=0A=
Object.extend(String, {=0A=
  interpret: function(value) {=0A=
    return value =3D=3D null ? '' : String(value);=0A=
  },=0A=
  specialChar: {=0A=
    '\b': '\\b',=0A=
    '\t': '\\t',=0A=
    '\n': '\\n',=0A=
    '\f': '\\f',=0A=
    '\r': '\\r',=0A=
    '\\': '\\\\'=0A=
  }=0A=
});=0A=
=0A=
Object.extend(String.prototype, {=0A=
  gsub: function(pattern, replacement) {=0A=
    var result =3D '', source =3D this, match;=0A=
    replacement =3D arguments.callee.prepareReplacement(replacement);=0A=
=0A=
    while (source.length > 0) {=0A=
      if (match =3D source.match(pattern)) {=0A=
        result +=3D source.slice(0, match.index);=0A=
        result +=3D String.interpret(replacement(match));=0A=
        source  =3D source.slice(match.index + match[0].length);=0A=
      } else {=0A=
        result +=3D source, source =3D '';=0A=
      }=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  sub: function(pattern, replacement, count) {=0A=
    replacement =3D this.gsub.prepareReplacement(replacement);=0A=
    count =3D Object.isUndefined(count) ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return String(this);=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D Object.isUndefined(truncation) ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : =
String(this);=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(function(script) { return =
eval(script) });=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var self =3D arguments.callee;=0A=
    self.text.data =3D this;=0A=
    return self.div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D new Element('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A=
      $A(div.childNodes).inject('', function(memo, node) { return =
memo+node.nodeValue }) :=0A=
      div.childNodes[0].nodeValue) : '';=0A=
  },=0A=
=0A=
  toQueryParams: function(separator) {=0A=
    var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A=
    if (!match) return { };=0A=
=0A=
    return match[1].split(separator || '&').inject({ }, function(hash, =
pair) {=0A=
      if ((pair =3D pair.split('=3D'))[0]) {=0A=
        var key =3D decodeURIComponent(pair.shift());=0A=
        var value =3D pair.length > 1 ? pair.join('=3D') : pair[0];=0A=
        if (value !=3D undefined) value =3D decodeURIComponent(value);=0A=
=0A=
        if (key in hash) {=0A=
          if (!Object.isArray(hash[key])) hash[key] =3D [hash[key]];=0A=
          hash[key].push(value);=0A=
        }=0A=
        else hash[key] =3D value;=0A=
      }=0A=
      return hash;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this.slice(0, this.length - 1) +=0A=
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A=
  },=0A=
=0A=
  times: function(count) {=0A=
    return count < 1 ? '' : new Array(count + 1).join(this);=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var parts =3D this.split('-'), len =3D parts.length;=0A=
    if (len =3D=3D 1) return parts[0];=0A=
=0A=
    var camelized =3D this.charAt(0) =3D=3D '-'=0A=
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A=
      : parts[0];=0A=
=0A=
    for (var i =3D 1; i < len; i++)=0A=
      camelized +=3D parts[i].charAt(0).toUpperCase() + =
parts[i].substring(1);=0A=
=0A=
    return camelized;=0A=
  },=0A=
=0A=
  capitalize: function() {=0A=
    return this.charAt(0).toUpperCase() + =
this.substring(1).toLowerCase();=0A=
  },=0A=
=0A=
  underscore: function() {=0A=
    return this.gsub(/::/, =
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{=
1}_#{2}').gsub(/-/,'_').toLowerCase();=0A=
  },=0A=
=0A=
  dasherize: function() {=0A=
    return this.gsub(/_/,'-');=0A=
  },=0A=
=0A=
  inspect: function(useDoubleQuotes) {=0A=
    var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) {=0A=
      var character =3D String.specialChar[match[0]];=0A=
      return character ? character : '\\u00' + =
match[0].charCodeAt().toPaddedString(2, 16);=0A=
    });=0A=
    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') =
+ '"';=0A=
    return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    return this.inspect(true);=0A=
  },=0A=
=0A=
  unfilterJSON: function(filter) {=0A=
    return this.sub(filter || Prototype.JSONFilter, '#{1}');=0A=
  },=0A=
=0A=
  isJSON: function() {=0A=
    var str =3D this;=0A=
    if (str.blank()) return false;=0A=
    str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');=0A=
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);=0A=
  },=0A=
=0A=
  evalJSON: function(sanitize) {=0A=
    var json =3D this.unfilterJSON();=0A=
    try {=0A=
      if (!sanitize || json.isJSON()) return eval('(' + json + ')');=0A=
    } catch (e) { }=0A=
    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());=0A=
  },=0A=
=0A=
  include: function(pattern) {=0A=
    return this.indexOf(pattern) > -1;=0A=
  },=0A=
=0A=
  startsWith: function(pattern) {=0A=
    return this.indexOf(pattern) =3D=3D=3D 0;=0A=
  },=0A=
=0A=
  endsWith: function(pattern) {=0A=
    var d =3D this.length - pattern.length;=0A=
    return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d;=0A=
  },=0A=
=0A=
  empty: function() {=0A=
    return this =3D=3D '';=0A=
  },=0A=
=0A=
  blank: function() {=0A=
    return /^\s*$/.test(this);=0A=
  },=0A=
=0A=
  interpolate: function(object, pattern) {=0A=
    return new Template(this, pattern).evaluate(object);=0A=
  }=0A=
});=0A=
=0A=
if (Prototype.Browser.WebKit || Prototype.Browser.IE) =
Object.extend(String.prototype, {=0A=
  escapeHTML: function() {=0A=
    return =
this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');=0A=
  },=0A=
  unescapeHTML: function() {=0A=
    return =
this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (Object.isFunction(replacement)) return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
};=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
Object.extend(String.prototype.escapeHTML, {=0A=
  div:  document.createElement('div'),=0A=
  text: document.createTextNode('')=0A=
});=0A=
=0A=
with (String.prototype.escapeHTML) div.appendChild(text);=0A=
=0A=
var Template =3D Class.create({=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    if (Object.isFunction(object.toTemplateReplacements))=0A=
      object =3D object.toTemplateReplacements();=0A=
=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      if (object =3D=3D null) return '';=0A=
=0A=
      var before =3D match[1] || '';=0A=
      if (before =3D=3D '\\') return match[2];=0A=
=0A=
      var ctx =3D object, expr =3D match[3];=0A=
      var pattern =3D /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;=0A=
      match =3D pattern.exec(expr);=0A=
      if (match =3D=3D null) return before;=0A=
=0A=
      while (match !=3D null) {=0A=
        var comp =3D match[1].startsWith('[') ? match[2].gsub('\\\\]', =
']') : match[1];=0A=
        ctx =3D ctx[comp];=0A=
        if (null =3D=3D ctx || '' =3D=3D match[3]) break;=0A=
        expr =3D expr.substring('[' =3D=3D match[3] ? match[1].length : =
match[0].length);=0A=
        match =3D pattern.exec(expr);=0A=
      }=0A=
=0A=
      return before + String.interpret(ctx);=0A=
    }.bind(this));=0A=
  }=0A=
});=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
=0A=
var $break =3D { };=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator, context) {=0A=
    var index =3D 0;=0A=
    iterator =3D iterator.bind(context);=0A=
    try {=0A=
      this._each(function(value) {=0A=
        iterator(value, index++);=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.collect(iterator, context);=0A=
  },=0A=
=0A=
  all: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!iterator(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result =3D false;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!iterator(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(filter, iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var results =3D [];=0A=
=0A=
    if (Object.isString(filter))=0A=
      filter =3D new RegExp(filter);=0A=
=0A=
    this.each(function(value, index) {=0A=
      if (filter.match(value))=0A=
        results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    if (Object.isFunction(this.indexOf))=0A=
      if (this.indexOf(object) !=3D -1) return true;=0A=
=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D Object.isUndefined(fillWith) ? null : fillWith;=0A=
    return this.eachSlice(number, function(slice) {=0A=
      while(slice.length < number) slice.push(fillWith);=0A=
      return slice;=0A=
    });=0A=
  },=0A=
=0A=
  inject: function(memo, iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    this.each(function(value, index) {=0A=
      memo =3D iterator(memo, value, index);=0A=
    });=0A=
    return memo;=0A=
  },=0A=
=0A=
  invoke: function(method) {=0A=
    var args =3D $A(arguments).slice(1);=0A=
    return this.map(function(value) {=0A=
      return value[method].apply(value, args);=0A=
    });=0A=
  },=0A=
=0A=
  max: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D iterator(value, index);=0A=
      if (result =3D=3D null || value >=3D result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D iterator(value, index);=0A=
      if (result =3D=3D null || value < result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      (iterator(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    return this.map(function(value, index) {=0A=
      return {value: value, criteria: iterator(value, index)};=0A=
    }).sort(function(left, right) {=0A=
      var a =3D left.criteria, b =3D right.criteria;=0A=
      return a < b ? -1 : a > b ? 1 : 0;=0A=
    }).pluck('value');=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.map();=0A=
  },=0A=
=0A=
  zip: function() {=0A=
    var iterator =3D Prototype.K, args =3D $A(arguments);=0A=
    if (Object.isFunction(args.last()))=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      return iterator(collections.pluck(index));=0A=
    });=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.toArray().length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Enumerable, {=0A=
  map:     Enumerable.collect,=0A=
  find:    Enumerable.detect,=0A=
  select:  Enumerable.findAll,=0A=
  filter:  Enumerable.findAll,=0A=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray,=0A=
  every:   Enumerable.all,=0A=
  some:    Enumerable.any=0A=
});=0A=
function $A(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) return iterable.toArray();=0A=
  var length =3D iterable.length || 0, results =3D new Array(length);=0A=
  while (length--) results[length] =3D iterable[length];=0A=
  return results;=0A=
}=0A=
=0A=
if (Prototype.Browser.WebKit) {=0A=
  function $A(iterable) {=0A=
    if (!iterable) return [];=0A=
    if (!(Object.isFunction(iterable) && iterable =3D=3D '[object =
NodeList]') &&=0A=
        iterable.toArray) return iterable.toArray();=0A=
    var length =3D iterable.length || 0, results =3D new Array(length);=0A=
    while (length--) results[length] =3D iterable[length];=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Array.from =3D $A;=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse) Array.prototype._reverse =3D =
Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(Object.isArray(value) ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function(sorted) {=0A=
    return this.inject([], function(array, value, index) {=0A=
      if (0 =3D=3D index || (sorted ? array.last() !=3D value : =
!array.include(value)))=0A=
        array.push(value);=0A=
      return array;=0A=
    });=0A=
  },=0A=
=0A=
  intersect: function(array) {=0A=
    return this.uniq().findAll(function(item) {=0A=
      return array.detect(function(value) { return item =3D=3D=3D value =
});=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    var results =3D [];=0A=
    this.each(function(object) {=0A=
      var value =3D Object.toJSON(object);=0A=
      if (!Object.isUndefined(value)) results.push(value);=0A=
    });=0A=
    return '[' + results.join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
// use native browser JS 1.6 implementation if available=0A=
if (Object.isFunction(Array.prototype.forEach))=0A=
  Array.prototype._each =3D Array.prototype.forEach;=0A=
=0A=
if (!Array.prototype.indexOf) Array.prototype.indexOf =3D function(item, =
i) {=0A=
  i || (i =3D 0);=0A=
  var length =3D this.length;=0A=
  if (i < 0) i =3D length + i;=0A=
  for (; i < length; i++)=0A=
    if (this[i] =3D=3D=3D item) return i;=0A=
  return -1;=0A=
};=0A=
=0A=
if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf =3D =
function(item, i) {=0A=
  i =3D isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;=0A=
  var n =3D this.slice(0, i).reverse().indexOf(item);=0A=
  return (n < 0) ? n : i - n - 1;=0A=
};=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
=0A=
function $w(string) {=0A=
  if (!Object.isString(string)) return [];=0A=
  string =3D string.strip();=0A=
  return string ? string.split(/\s+/) : [];=0A=
}=0A=
=0A=
if (Prototype.Browser.Opera){=0A=
  Array.prototype.concat =3D function() {=0A=
    var array =3D [];=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++) =
array.push(this[i]);=0A=
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      if (Object.isArray(arguments[i])) {=0A=
        for (var j =3D 0, arrayLength =3D arguments[i].length; j < =
arrayLength; j++)=0A=
          array.push(arguments[i][j]);=0A=
      } else {=0A=
        array.push(arguments[i]);=0A=
      }=0A=
    }=0A=
    return array;=0A=
  };=0A=
}=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    return this.toPaddedString(2, 16);=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  toPaddedString: function(length, radix) {=0A=
    var string =3D this.toString(radix || 10);=0A=
    return '0'.times(length - string.length) + string;=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    return isFinite(this) ? this.toString() : 'null';=0A=
  }=0A=
});=0A=
=0A=
$w('abs round ceil floor').each(function(method){=0A=
  Number.prototype[method] =3D Math[method].methodize();=0A=
});=0A=
function $H(object) {=0A=
  return new Hash(object);=0A=
};=0A=
=0A=
var Hash =3D Class.create(Enumerable, (function() {=0A=
=0A=
  function toQueryPair(key, value) {=0A=
    if (Object.isUndefined(value)) return key;=0A=
    return key + '=3D' + encodeURIComponent(String.interpret(value));=0A=
  }=0A=
=0A=
  return {=0A=
    initialize: function(object) {=0A=
      this._object =3D Object.isHash(object) ? object.toObject() : =
Object.clone(object);=0A=
    },=0A=
=0A=
    _each: function(iterator) {=0A=
      for (var key in this._object) {=0A=
        var value =3D this._object[key], pair =3D [key, value];=0A=
        pair.key =3D key;=0A=
        pair.value =3D value;=0A=
        iterator(pair);=0A=
      }=0A=
    },=0A=
=0A=
    set: function(key, value) {=0A=
      return this._object[key] =3D value;=0A=
    },=0A=
=0A=
    get: function(key) {=0A=
      return this._object[key];=0A=
    },=0A=
=0A=
    unset: function(key) {=0A=
      var value =3D this._object[key];=0A=
      delete this._object[key];=0A=
      return value;=0A=
    },=0A=
=0A=
    toObject: function() {=0A=
      return Object.clone(this._object);=0A=
    },=0A=
=0A=
    keys: function() {=0A=
      return this.pluck('key');=0A=
    },=0A=
=0A=
    values: function() {=0A=
      return this.pluck('value');=0A=
    },=0A=
=0A=
    index: function(value) {=0A=
      var match =3D this.detect(function(pair) {=0A=
        return pair.value =3D=3D=3D value;=0A=
      });=0A=
      return match && match.key;=0A=
    },=0A=
=0A=
    merge: function(object) {=0A=
      return this.clone().update(object);=0A=
    },=0A=
=0A=
    update: function(object) {=0A=
      return new Hash(object).inject(this, function(result, pair) {=0A=
        result.set(pair.key, pair.value);=0A=
        return result;=0A=
      });=0A=
    },=0A=
=0A=
    toQueryString: function() {=0A=
      return this.map(function(pair) {=0A=
        var key =3D encodeURIComponent(pair.key), values =3D pair.value;=0A=
=0A=
        if (values && typeof values =3D=3D 'object') {=0A=
          if (Object.isArray(values))=0A=
            return values.map(toQueryPair.curry(key)).join('&');=0A=
        }=0A=
        return toQueryPair(key, values);=0A=
      }).join('&');=0A=
    },=0A=
=0A=
    inspect: function() {=0A=
      return '#<Hash:{' + this.map(function(pair) {=0A=
        return pair.map(Object.inspect).join(': ');=0A=
      }).join(', ') + '}>';=0A=
    },=0A=
=0A=
    toJSON: function() {=0A=
      return Object.toJSON(this.toObject());=0A=
    },=0A=
=0A=
    clone: function() {=0A=
      return new Hash(this);=0A=
    }=0A=
  }=0A=
})());=0A=
=0A=
Hash.prototype.toTemplateReplacements =3D Hash.prototype.toObject;=0A=
Hash.from =3D $H;=0A=
var ObjectRange =3D Class.create(Enumerable, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
};=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
};=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (Object.isFunction(responder[callback])) {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) { }=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate:   function() { Ajax.activeRequestCount++ },=0A=
  onComplete: function() { Ajax.activeRequestCount-- }=0A=
});=0A=
=0A=
Ajax.Base =3D Class.create({=0A=
  initialize: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   '',=0A=
      evalJSON:     true,=0A=
      evalJS:       true=0A=
    };=0A=
    Object.extend(this.options, options || { });=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
=0A=
    if (Object.isString(this.options.parameters))=0A=
      this.options.parameters =3D =
this.options.parameters.toQueryParams();=0A=
    else if (Object.isHash(this.options.parameters))=0A=
      this.options.parameters =3D this.options.parameters.toObject();=0A=
  }=0A=
});=0A=
=0A=
Ajax.Request =3D Class.create(Ajax.Base, {=0A=
  _complete: false,=0A=
=0A=
  initialize: function($super, url, options) {=0A=
    $super(options);=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    this.url =3D url;=0A=
    this.method =3D this.options.method;=0A=
    var params =3D Object.clone(this.options.parameters);=0A=
=0A=
    if (!['get', 'post'].include(this.method)) {=0A=
      // simulate other verbs over post=0A=
      params['_method'] =3D this.method;=0A=
      this.method =3D 'post';=0A=
    }=0A=
=0A=
    this.parameters =3D params;=0A=
=0A=
    if (params =3D Object.toQueryString(params)) {=0A=
      // when GET, append parameters to URL=0A=
      if (this.method =3D=3D 'get')=0A=
        this.url +=3D (this.url.include('?') ? '&' : '?') + params;=0A=
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
        params +=3D '&_=3D';=0A=
    }=0A=
=0A=
    try {=0A=
      var response =3D new Ajax.Response(this);=0A=
      if (this.options.onCreate) this.options.onCreate(response);=0A=
      Ajax.Responders.dispatch('onCreate', this, response);=0A=
=0A=
      this.transport.open(this.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous) =
this.respondToReadyState.bind(this).defer(1);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      this.body =3D this.method =3D=3D 'post' ? (this.options.postBody =
|| params) : null;=0A=
      this.transport.send(this.body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
=0A=
    }=0A=
    catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var headers =3D {=0A=
      'X-Requested-With': 'XMLHttpRequest',=0A=
      'X-Prototype-Version': Prototype.Version,=0A=
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'=0A=
    };=0A=
=0A=
    if (this.method =3D=3D 'post') {=0A=
      headers['Content-type'] =3D this.options.contentType +=0A=
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');=0A=
=0A=
      /* Force "Connection: close" for older Mozilla browsers to work=0A=
       * around a bug where XMLHttpRequest sends an incorrect=0A=
       * Content-length header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType &&=0A=
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)=0A=
            headers['Connection'] =3D 'close';=0A=
    }=0A=
=0A=
    // user-defined headers=0A=
    if (typeof this.options.requestHeaders =3D=3D 'object') {=0A=
      var extras =3D this.options.requestHeaders;=0A=
=0A=
      if (Object.isFunction(extras.push))=0A=
        for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A=
          headers[extras[i]] =3D extras[i+1];=0A=
      else=0A=
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });=0A=
    }=0A=
=0A=
    for (var name in headers)=0A=
      this.transport.setRequestHeader(name, headers[name]);=0A=
  },=0A=
=0A=
  success: function() {=0A=
    var status =3D this.getStatus();=0A=
    return !status || (status >=3D 200 && status < 300);=0A=
  },=0A=
=0A=
  getStatus: function() {=0A=
    try {=0A=
      return this.transport.status || 0;=0A=
    } catch (e) { return 0 }=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState], response =3D new =
Ajax.Response(this);=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        this._complete =3D true;=0A=
        (this.options['on' + response.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(response, response.headerJSON);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      var contentType =3D response.getHeader('Content-type');=0A=
      if (this.options.evalJS =3D=3D 'force'=0A=
          || (this.options.evalJS && contentType=0A=
          && =
contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s=
*$/i)))=0A=
        this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(response, =
response.headerJSON);=0A=
      Ajax.Responders.dispatch('on' + state, this, response, =
response.headerJSON);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name) || null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval((this.transport.responseText || '').unfilterJSON());=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Response =3D Class.create({=0A=
  initialize: function(request){=0A=
    this.request =3D request;=0A=
    var transport  =3D this.transport  =3D request.transport,=0A=
        readyState =3D this.readyState =3D transport.readyState;=0A=
=0A=
    if((readyState > 2 && !Prototype.Browser.IE) || readyState =3D=3D 4) =
{=0A=
      this.status       =3D this.getStatus();=0A=
      this.statusText   =3D this.getStatusText();=0A=
      this.responseText =3D String.interpret(transport.responseText);=0A=
      this.headerJSON   =3D this._getHeaderJSON();=0A=
    }=0A=
=0A=
    if(readyState =3D=3D 4) {=0A=
      var xml =3D transport.responseXML;=0A=
      this.responseXML  =3D Object.isUndefined(xml) ? null : xml;=0A=
      this.responseJSON =3D this._getResponseJSON();=0A=
    }=0A=
  },=0A=
=0A=
  status:      0,=0A=
  statusText: '',=0A=
=0A=
  getStatus: Ajax.Request.prototype.getStatus,=0A=
=0A=
  getStatusText: function() {=0A=
    try {=0A=
      return this.transport.statusText || '';=0A=
    } catch (e) { return '' }=0A=
  },=0A=
=0A=
  getHeader: Ajax.Request.prototype.getHeader,=0A=
=0A=
  getAllHeaders: function() {=0A=
    try {=0A=
      return this.getAllResponseHeaders();=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  getResponseHeader: function(name) {=0A=
    return this.transport.getResponseHeader(name);=0A=
  },=0A=
=0A=
  getAllResponseHeaders: function() {=0A=
    return this.transport.getAllResponseHeaders();=0A=
  },=0A=
=0A=
  _getHeaderJSON: function() {=0A=
    var json =3D this.getHeader('X-JSON');=0A=
    if (!json) return null;=0A=
    json =3D decodeURIComponent(escape(json));=0A=
    try {=0A=
      return json.evalJSON(this.request.options.sanitizeJSON);=0A=
    } catch (e) {=0A=
      this.request.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  _getResponseJSON: function() {=0A=
    var options =3D this.request.options;=0A=
    if (!options.evalJSON || (options.evalJSON !=3D 'force' &&=0A=
      !(this.getHeader('Content-type') || =
'').include('application/json')) ||=0A=
        this.responseText.blank())=0A=
          return null;=0A=
    try {=0A=
      return this.responseText.evalJSON(options.sanitizeJSON);=0A=
    } catch (e) {=0A=
      this.request.dispatchException(e);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create(Ajax.Request, {=0A=
  initialize: function($super, container, url, options) {=0A=
    this.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (container.success ? null : =
container))=0A=
    };=0A=
=0A=
    options =3D Object.clone(options);=0A=
    var onComplete =3D options.onComplete;=0A=
    options.onComplete =3D (function(response, json) {=0A=
      this.updateContent(response.responseText);=0A=
      if (Object.isFunction(onComplete)) onComplete(response, json);=0A=
    }).bind(this);=0A=
=0A=
    $super(url, options);=0A=
  },=0A=
=0A=
  updateContent: function(responseText) {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'],=0A=
        options =3D this.options;=0A=
=0A=
    if (!options.evalScripts) responseText =3D =
responseText.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (options.insertion) {=0A=
        if (Object.isString(options.insertion)) {=0A=
          var insertion =3D { }; insertion[options.insertion] =3D =
responseText;=0A=
          receiver.insert(insertion);=0A=
        }=0A=
        else options.insertion(receiver, responseText);=0A=
      }=0A=
      else receiver.update(responseText);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create(Ajax.Base, {=0A=
  initialize: function($super, container, url, options) {=0A=
    $super(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D { };=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.options.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(response) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (response.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D response.responseText;=0A=
    }=0A=
    this.timer =3D this.onTimerEvent.bind(this).delay(this.decay * =
this.frequency);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (Object.isString(element))=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A=
      results.push(Element.extend(query.snapshotItem(i)));=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Node) var Node =3D { };=0A=
=0A=
if (!Node.ELEMENT_NODE) {=0A=
  // DOM level 2 ECMAScript Language Binding=0A=
  Object.extend(Node, {=0A=
    ELEMENT_NODE: 1,=0A=
    ATTRIBUTE_NODE: 2,=0A=
    TEXT_NODE: 3,=0A=
    CDATA_SECTION_NODE: 4,=0A=
    ENTITY_REFERENCE_NODE: 5,=0A=
    ENTITY_NODE: 6,=0A=
    PROCESSING_INSTRUCTION_NODE: 7,=0A=
    COMMENT_NODE: 8,=0A=
    DOCUMENT_NODE: 9,=0A=
    DOCUMENT_TYPE_NODE: 10,=0A=
    DOCUMENT_FRAGMENT_NODE: 11,=0A=
    NOTATION_NODE: 12=0A=
  });=0A=
}=0A=
=0A=
(function() {=0A=
  var element =3D this.Element;=0A=
  this.Element =3D function(tagName, attributes) {=0A=
    attributes =3D attributes || { };=0A=
    tagName =3D tagName.toLowerCase();=0A=
    var cache =3D Element.cache;=0A=
    if (Prototype.Browser.IE && attributes.name) {=0A=
      tagName =3D '<' + tagName + ' name=3D"' + attributes.name + '">';=0A=
      delete attributes.name;=0A=
      return Element.writeAttribute(document.createElement(tagName), =
attributes);=0A=
    }=0A=
    if (!cache[tagName]) cache[tagName] =3D =
Element.extend(document.createElement(tagName));=0A=
    return Element.writeAttribute(cache[tagName].cloneNode(false), =
attributes);=0A=
  };=0A=
  Object.extend(this.Element, element || { });=0A=
}).call(window);=0A=
=0A=
Element.cache =3D { };=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, content) {=0A=
    element =3D $(element);=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) return =
element.update().insert(content);=0A=
    content =3D Object.toHTML(content);=0A=
    element.innerHTML =3D content.stripScripts();=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, content) {=0A=
    element =3D $(element);=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    else if (!Object.isElement(content)) {=0A=
      content =3D Object.toHTML(content);=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNode(element);=0A=
      content.evalScripts.bind(content).defer();=0A=
      content =3D range.createContextualFragment(content.stripScripts());=0A=
    }=0A=
    element.parentNode.replaceChild(content, element);=0A=
    return element;=0A=
  },=0A=
=0A=
  insert: function(element, insertions) {=0A=
    element =3D $(element);=0A=
=0A=
    if (Object.isString(insertions) || Object.isNumber(insertions) ||=0A=
        Object.isElement(insertions) || (insertions && =
(insertions.toElement || insertions.toHTML)))=0A=
          insertions =3D {bottom:insertions};=0A=
=0A=
    var content, insert, tagName, childNodes;=0A=
=0A=
    for (position in insertions) {=0A=
      content  =3D insertions[position];=0A=
      position =3D position.toLowerCase();=0A=
      insert =3D Element._insertionTranslations[position];=0A=
=0A=
      if (content && content.toElement) content =3D content.toElement();=0A=
      if (Object.isElement(content)) {=0A=
        insert(element, content);=0A=
        continue;=0A=
      }=0A=
=0A=
      content =3D Object.toHTML(content);=0A=
=0A=
      tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')=0A=
        ? element.parentNode : element).tagName.toUpperCase();=0A=
=0A=
      childNodes =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());=0A=
=0A=
      if (position =3D=3D 'top' || position =3D=3D 'after') =
childNodes.reverse();=0A=
      childNodes.each(insert.curry(element));=0A=
=0A=
      content.evalScripts.bind(content).defer();=0A=
    }=0A=
=0A=
    return element;=0A=
  },=0A=
=0A=
  wrap: function(element, wrapper, attributes) {=0A=
    element =3D $(element);=0A=
    if (Object.isElement(wrapper))=0A=
      $(wrapper).writeAttribute(attributes || { });=0A=
    else if (Object.isString(wrapper)) wrapper =3D new Element(wrapper, =
attributes);=0A=
    else wrapper =3D new Element('div', wrapper);=0A=
    if (element.parentNode)=0A=
      element.parentNode.replaceChild(wrapper, element);=0A=
    wrapper.appendChild(element);=0A=
    return wrapper;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    return $(element).getElementsBySelector("*");=0A=
  },=0A=
=0A=
  firstDescendant: function(element) {=0A=
    element =3D $(element).firstChild;=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    return $(element);=0A=
  },=0A=
=0A=
  immediateDescendants: function(element) {=0A=
    if (!(element =3D $(element).firstChild)) return [];=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    if (element) return [element].concat($(element).nextSiblings());=0A=
    return [];=0A=
  },=0A=
=0A=
  previousSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('previousSibling');=0A=
  },=0A=
=0A=
  nextSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('nextSibling');=0A=
  },=0A=
=0A=
  siblings: function(element) {=0A=
    element =3D $(element);=0A=
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());=0A=
  },=0A=
=0A=
  match: function(element, selector) {=0A=
    if (Object.isString(selector))=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match($(element));=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return $(element.parentNode);=0A=
    var ancestors =3D element.ancestors();=0A=
    return Object.isNumber(expression) ? ancestors[expression] :=0A=
      Selector.findElement(ancestors, expression, index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return element.firstDescendant();=0A=
    return Object.isNumber(expression) ? =
element.descendants()[expression] :=0A=
      element.select(expression)[index || 0];=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.previousElementSibling(element));=0A=
    var previousSiblings =3D element.previousSiblings();=0A=
    return Object.isNumber(expression) ? previousSiblings[expression] :=0A=
      Selector.findElement(previousSiblings, expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.nextElementSibling(element));=0A=
    var nextSiblings =3D element.nextSiblings();=0A=
    return Object.isNumber(expression) ? nextSiblings[expression] :=0A=
      Selector.findElement(nextSiblings, expression, index);=0A=
  },=0A=
=0A=
  select: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  adjacent: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element.parentNode, =
args).without(element);=0A=
  },=0A=
=0A=
  identify: function(element) {=0A=
    element =3D $(element);=0A=
    var id =3D element.readAttribute('id'), self =3D arguments.callee;=0A=
    if (id) return id;=0A=
    do { id =3D 'anonymous_element_' + self.counter++ } while ($(id));=0A=
    element.writeAttribute('id', id);=0A=
    return id;=0A=
  },=0A=
=0A=
  readAttribute: function(element, name) {=0A=
    element =3D $(element);=0A=
    if (Prototype.Browser.IE) {=0A=
      var t =3D Element._attributeTranslations.read;=0A=
      if (t.values[name]) return t.values[name](element, name);=0A=
      if (t.names[name]) name =3D t.names[name];=0A=
      if (name.include(':')) {=0A=
        return (!element.attributes || !element.attributes[name]) ? null =
:=0A=
         element.attributes[name].value;=0A=
      }=0A=
    }=0A=
    return element.getAttribute(name);=0A=
  },=0A=
=0A=
  writeAttribute: function(element, name, value) {=0A=
    element =3D $(element);=0A=
    var attributes =3D { }, t =3D Element._attributeTranslations.write;=0A=
=0A=
    if (typeof name =3D=3D 'object') attributes =3D name;=0A=
    else attributes[name] =3D Object.isUndefined(value) ? true : value;=0A=
=0A=
    for (var attr in attributes) {=0A=
      name =3D t.names[attr] || attr;=0A=
      value =3D attributes[attr];=0A=
      if (t.values[attr]) name =3D t.values[attr](element, value);=0A=
      if (value =3D=3D=3D false || value =3D=3D=3D null)=0A=
        element.removeAttribute(name);=0A=
      else if (value =3D=3D=3D true)=0A=
        element.setAttribute(name, name);=0A=
      else element.setAttribute(name, value);=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    return $(element).getDimensions().height;=0A=
  },=0A=
=0A=
  getWidth: function(element) {=0A=
    return $(element).getDimensions().width;=0A=
  },=0A=
=0A=
  classNames: function(element) {=0A=
    return new Element.ClassNames(element);=0A=
  },=0A=
=0A=
  hasClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    var elementClassName =3D element.className;=0A=
    return (elementClassName.length > 0 && (elementClassName =3D=3D =
className ||=0A=
      new RegExp("(^|\\s)" + className + =
"(\\s|$)").test(elementClassName)));=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    if (!element.hasClassName(className))=0A=
      element.className +=3D (element.className ? ' ' : '') + className;=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    element.className =3D element.className.replace(=0A=
      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();=0A=
    return element;=0A=
  },=0A=
=0A=
  toggleClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return element[element.hasClassName(className) ?=0A=
      'removeClassName' : 'addClassName'](className);=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.blank();=0A=
  },=0A=
=0A=
  descendantOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    var originalAncestor =3D ancestor;=0A=
=0A=
    if (element.compareDocumentPosition)=0A=
      return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D 8;=0A=
=0A=
    if (element.sourceIndex && !Prototype.Browser.Opera) {=0A=
      var e =3D element.sourceIndex, a =3D ancestor.sourceIndex,=0A=
       nextAncestor =3D ancestor.nextSibling;=0A=
      if (!nextAncestor) {=0A=
        do { ancestor =3D ancestor.parentNode; }=0A=
        while (!(nextAncestor =3D ancestor.nextSibling) && =
ancestor.parentNode);=0A=
      }=0A=
      if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);=0A=
    }=0A=
=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D originalAncestor) return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D element.cumulativeOffset();=0A=
    window.scrollTo(pos[0], pos[1]);=0A=
    return element;=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value) {=0A=
      var css =3D document.defaultView.getComputedStyle(element, null);=0A=
      value =3D css ? css[style] : null;=0A=
    }=0A=
    if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0;=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  getOpacity: function(element) {=0A=
    return $(element).getStyle('opacity');=0A=
  },=0A=
=0A=
  setStyle: function(element, styles) {=0A=
    element =3D $(element);=0A=
    var elementStyle =3D element.style, match;=0A=
    if (Object.isString(styles)) {=0A=
      element.style.cssText +=3D ';' + styles;=0A=
      return styles.include('opacity') ?=0A=
        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : =
element;=0A=
    }=0A=
    for (var property in styles)=0A=
      if (property =3D=3D 'opacity') =
element.setOpacity(styles[property]);=0A=
      else=0A=
        elementStyle[(property =3D=3D 'float' || property =3D=3D =
'cssFloat') ?=0A=
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : =
'styleFloat') :=0A=
            property] =3D styles[property];=0A=
=0A=
    return element;=0A=
  },=0A=
=0A=
  setOpacity: function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :=0A=
      (value < 0.00001) ? 0 : value;=0A=
    return element;=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    var display =3D $(element).getStyle('display');=0A=
    if (display !=3D 'none' && display !=3D null) // Safari bug=0A=
      return {width: element.offsetWidth, height: element.offsetHeight};=0A=
=0A=
    // All *Width and *Height properties give 0 on elements with display =
none,=0A=
    // so enable the element temporarily=0A=
    var els =3D element.style;=0A=
    var originalVisibility =3D els.visibility;=0A=
    var originalPosition =3D els.position;=0A=
    var originalDisplay =3D els.display;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D 'block';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D originalDisplay;=0A=
    els.position =3D originalPosition;=0A=
    els.visibility =3D originalVisibility;=0A=
    return {width: originalWidth, height: originalHeight};=0A=
  },=0A=
=0A=
  makePositioned: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Element.getStyle(element, 'position');=0A=
    if (pos =3D=3D 'static' || !pos) {=0A=
      element._madePositioned =3D true;=0A=
      element.style.position =3D 'relative';=0A=
      // Opera returns the offset relative to the positioning context, =
when an=0A=
      // element is position relative but top and left have not been =
defined=0A=
      if (window.opera) {=0A=
        element.style.top =3D 0;=0A=
        element.style.left =3D 0;=0A=
      }=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return element;=0A=
    element._overflow =3D Element.getStyle(element, 'overflow') || =
'auto';=0A=
    if (element._overflow !=3D=3D 'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  },=0A=
=0A=
  cumulativeOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  positionedOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
      if (element) {=0A=
        if (element.tagName =3D=3D 'BODY') break;=0A=
        var p =3D Element.getStyle(element, 'position');=0A=
        if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A=
      }=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  absolutize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.getStyle('position') =3D=3D 'absolute') return;=0A=
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.=0A=
=0A=
    var offsets =3D element.positionedOffset();=0A=
    var top     =3D offsets[1];=0A=
    var left    =3D offsets[0];=0A=
    var width   =3D element.clientWidth;=0A=
    var height  =3D element.clientHeight;=0A=
=0A=
    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);=0A=
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);=0A=
    element._originalWidth  =3D element.style.width;=0A=
    element._originalHeight =3D element.style.height;=0A=
=0A=
    element.style.position =3D 'absolute';=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.width  =3D width + 'px';=0A=
    element.style.height =3D height + 'px';=0A=
    return element;=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.getStyle('position') =3D=3D 'relative') return;=0A=
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.=0A=
=0A=
    element.style.position =3D 'relative';=0A=
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);=0A=
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);=0A=
=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.height =3D element._originalHeight;=0A=
    element.style.width  =3D element._originalWidth;=0A=
    return element;=0A=
  },=0A=
=0A=
  cumulativeScrollOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.scrollTop  || 0;=0A=
      valueL +=3D element.scrollLeft || 0;=0A=
      element =3D element.parentNode;=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  getOffsetParent: function(element) {=0A=
    if (element.offsetParent) return $(element.offsetParent);=0A=
    if (element =3D=3D document.body) return $(element);=0A=
=0A=
    while ((element =3D element.parentNode) && element !=3D =
document.body)=0A=
      if (Element.getStyle(element, 'position') !=3D 'static')=0A=
        return $(element);=0A=
=0A=
    return $(document.body);=0A=
  },=0A=
=0A=
  viewportOffset: function(forElement) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
=0A=
    var element =3D forElement;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
=0A=
      // Safari fix=0A=
      if (element.offsetParent =3D=3D document.body &&=0A=
        Element.getStyle(element, 'position') =3D=3D 'absolute') break;=0A=
=0A=
    } while (element =3D element.offsetParent);=0A=
=0A=
    element =3D forElement;=0A=
    do {=0A=
      if (!Prototype.Browser.Opera || element.tagName =3D=3D 'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  clonePosition: function(element, source) {=0A=
    var options =3D Object.extend({=0A=
      setLeft:    true,=0A=
      setTop:     true,=0A=
      setWidth:   true,=0A=
      setHeight:  true,=0A=
      offsetTop:  0,=0A=
      offsetLeft: 0=0A=
    }, arguments[2] || { });=0A=
=0A=
    // find page position of source=0A=
    source =3D $(source);=0A=
    var p =3D source.viewportOffset();=0A=
=0A=
    // find coordinate system to use=0A=
    element =3D $(element);=0A=
    var delta =3D [0, 0];=0A=
    var parent =3D null;=0A=
    // delta [0,0] will do fine with position: fixed elements,=0A=
    // position:absolute needs offsetParent deltas=0A=
    if (Element.getStyle(element, 'position') =3D=3D 'absolute') {=0A=
      parent =3D element.getOffsetParent();=0A=
      delta =3D parent.viewportOffset();=0A=
    }=0A=
=0A=
    // correct by body offsets (fixes Safari)=0A=
    if (parent =3D=3D document.body) {=0A=
      delta[0] -=3D document.body.offsetLeft;=0A=
      delta[1] -=3D document.body.offsetTop;=0A=
    }=0A=
=0A=
    // set position=0A=
    if (options.setLeft)   element.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';=0A=
    if (options.setTop)    element.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';=0A=
    if (options.setWidth)  element.style.width =3D source.offsetWidth + =
'px';=0A=
    if (options.setHeight) element.style.height =3D source.offsetHeight =
+ 'px';=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Element.Methods.identify.counter =3D 1;=0A=
=0A=
Object.extend(Element.Methods, {=0A=
  getElementsBySelector: Element.Methods.select,=0A=
  childElements: Element.Methods.immediateDescendants=0A=
});=0A=
=0A=
Element._attributeTranslations =3D {=0A=
  write: {=0A=
    names: {=0A=
      className: 'class',=0A=
      htmlFor:   'for'=0A=
    },=0A=
    values: { }=0A=
  }=0A=
};=0A=
=0A=
if (Prototype.Browser.Opera) {=0A=
  Element.Methods.getStyle =3D Element.Methods.getStyle.wrap(=0A=
    function(proceed, element, style) {=0A=
      switch (style) {=0A=
        case 'left': case 'top': case 'right': case 'bottom':=0A=
          if (proceed(element, 'position') =3D=3D=3D 'static') return =
null;=0A=
        case 'height': case 'width':=0A=
          // returns '0px' for hidden elements; we want it to return null=0A=
          if (!Element.visible(element)) return null;=0A=
=0A=
          // returns the border-box dimensions rather than the =
content-box=0A=
          // dimensions, so we subtract padding and borders from the =
value=0A=
          var dim =3D parseInt(proceed(element, style), 10);=0A=
=0A=
          if (dim !=3D=3D element['offset' + style.capitalize()])=0A=
            return dim + 'px';=0A=
=0A=
          var properties;=0A=
          if (style =3D=3D=3D 'height') {=0A=
            properties =3D ['border-top-width', 'padding-top',=0A=
             'padding-bottom', 'border-bottom-width'];=0A=
          }=0A=
          else {=0A=
            properties =3D ['border-left-width', 'padding-left',=0A=
             'padding-right', 'border-right-width'];=0A=
          }=0A=
          return properties.inject(dim, function(memo, property) {=0A=
            var val =3D proceed(element, property);=0A=
            return val =3D=3D=3D null ? memo : memo - parseInt(val, 10);=0A=
          }) + 'px';=0A=
        default: return proceed(element, style);=0A=
      }=0A=
    }=0A=
  );=0A=
=0A=
  Element.Methods.readAttribute =3D Element.Methods.readAttribute.wrap(=0A=
    function(proceed, element, attribute) {=0A=
      if (attribute =3D=3D=3D 'title') return element.title;=0A=
      return proceed(element, attribute);=0A=
    }=0A=
  );=0A=
}=0A=
=0A=
else if (Prototype.Browser.IE) {=0A=
  $w('positionedOffset getOffsetParent =
viewportOffset').each(function(method) {=0A=
    Element.Methods[method] =3D Element.Methods[method].wrap(=0A=
      function(proceed, element) {=0A=
        element =3D $(element);=0A=
        var position =3D element.getStyle('position');=0A=
        if (position !=3D 'static') return proceed(element);=0A=
        element.setStyle({ position: 'relative' });=0A=
        var value =3D proceed(element);=0A=
        element.setStyle({ position: position });=0A=
        return value;=0A=
      }=0A=
    );=0A=
  });=0A=
=0A=
  Element.Methods.getStyle =3D function(element, style) {=0A=
    element =3D $(element);=0A=
    style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? =
'styleFloat' : style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value && element.currentStyle) value =3D =
element.currentStyle[style];=0A=
=0A=
    if (style =3D=3D 'opacity') {=0A=
      if (value =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))=0A=
        if (value[1]) return parseFloat(value[1]) / 100;=0A=
      return 1.0;=0A=
    }=0A=
=0A=
    if (value =3D=3D 'auto') {=0A=
      if ((style =3D=3D 'width' || style =3D=3D 'height') && =
(element.getStyle('display') !=3D 'none'))=0A=
        return element['offset' + style.capitalize()] + 'px';=0A=
      return null;=0A=
    }=0A=
    return value;=0A=
  };=0A=
=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    function stripAlpha(filter){=0A=
      return filter.replace(/alpha\([^\)]*\)/gi,'');=0A=
    }=0A=
    element =3D $(element);=0A=
    var currentStyle =3D element.currentStyle;=0A=
    if ((currentStyle && !currentStyle.hasLayout) ||=0A=
      (!currentStyle && element.style.zoom =3D=3D 'normal'))=0A=
        element.style.zoom =3D 1;=0A=
=0A=
    var filter =3D element.getStyle('filter'), style =3D element.style;=0A=
    if (value =3D=3D 1 || value =3D=3D=3D '') {=0A=
      (filter =3D stripAlpha(filter)) ?=0A=
        style.filter =3D filter : style.removeAttribute('filter');=0A=
      return element;=0A=
    } else if (value < 0.00001) value =3D 0;=0A=
    style.filter =3D stripAlpha(filter) +=0A=
      'alpha(opacity=3D' + (value * 100) + ')';=0A=
    return element;=0A=
  };=0A=
=0A=
  Element._attributeTranslations =3D {=0A=
    read: {=0A=
      names: {=0A=
        'class': 'className',=0A=
        'for':   'htmlFor'=0A=
      },=0A=
      values: {=0A=
        _getAttr: function(element, attribute) {=0A=
          return element.getAttribute(attribute, 2);=0A=
        },=0A=
        _getAttrNode: function(element, attribute) {=0A=
          var node =3D element.getAttributeNode(attribute);=0A=
          return node ? node.value : "";=0A=
        },=0A=
        _getEv: function(element, attribute) {=0A=
          attribute =3D element.getAttribute(attribute);=0A=
          return attribute ? attribute.toString().slice(23, -2) : null;=0A=
        },=0A=
        _flag: function(element, attribute) {=0A=
          return $(element).hasAttribute(attribute) ? attribute : null;=0A=
        },=0A=
        style: function(element) {=0A=
          return element.style.cssText.toLowerCase();=0A=
        },=0A=
        title: function(element) {=0A=
          return element.title;=0A=
        }=0A=
      }=0A=
    }=0A=
  };=0A=
=0A=
  Element._attributeTranslations.write =3D {=0A=
    names: Object.clone(Element._attributeTranslations.read.names),=0A=
    values: {=0A=
      checked: function(element, value) {=0A=
        element.checked =3D !!value;=0A=
      },=0A=
=0A=
      style: function(element, value) {=0A=
        element.style.cssText =3D value ? value : '';=0A=
      }=0A=
    }=0A=
  };=0A=
=0A=
  Element._attributeTranslations.has =3D {};=0A=
=0A=
  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +=0A=
      'encType maxLength readOnly longDesc').each(function(attr) {=0A=
    Element._attributeTranslations.write.names[attr.toLowerCase()] =3D =
attr;=0A=
    Element._attributeTranslations.has[attr.toLowerCase()] =3D attr;=0A=
  });=0A=
=0A=
  (function(v) {=0A=
    Object.extend(v, {=0A=
      href:        v._getAttr,=0A=
      src:         v._getAttr,=0A=
      type:        v._getAttr,=0A=
      action:      v._getAttrNode,=0A=
      disabled:    v._flag,=0A=
      checked:     v._flag,=0A=
      readonly:    v._flag,=0A=
      multiple:    v._flag,=0A=
      onload:      v._getEv,=0A=
      onunload:    v._getEv,=0A=
      onclick:     v._getEv,=0A=
      ondblclick:  v._getEv,=0A=
      onmousedown: v._getEv,=0A=
      onmouseup:   v._getEv,=0A=
      onmouseover: v._getEv,=0A=
      onmousemove: v._getEv,=0A=
      onmouseout:  v._getEv,=0A=
      onfocus:     v._getEv,=0A=
      onblur:      v._getEv,=0A=
      onkeypress:  v._getEv,=0A=
      onkeydown:   v._getEv,=0A=
      onkeyup:     v._getEv,=0A=
      onsubmit:    v._getEv,=0A=
      onreset:     v._getEv,=0A=
      onselect:    v._getEv,=0A=
      onchange:    v._getEv=0A=
    });=0A=
  })(Element._attributeTranslations.read.values);=0A=
}=0A=
=0A=
else if (Prototype.Browser.Gecko && =
/rv:1\.8\.0/.test(navigator.userAgent)) {=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1) ? 0.999999 :=0A=
      (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value;=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
else if (Prototype.Browser.WebKit) {=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :=0A=
      (value < 0.00001) ? 0 : value;=0A=
=0A=
    if (value =3D=3D 1)=0A=
      if(element.tagName =3D=3D 'IMG' && element.width) {=0A=
        element.width++; element.width--;=0A=
      } else try {=0A=
        var n =3D document.createTextNode(' ');=0A=
        element.appendChild(n);=0A=
        element.removeChild(n);=0A=
      } catch (e) { }=0A=
=0A=
    return element;=0A=
  };=0A=
=0A=
  // Safari returns margins on body which is incorrect if the child is =
absolutely=0A=
  // positioned.  For performance reasons, redefine =
Element#cumulativeOffset for=0A=
  // KHTML/WebKit only.=0A=
  Element.Methods.cumulativeOffset =3D function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      if (element.offsetParent =3D=3D document.body)=0A=
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;=0A=
=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  };=0A=
}=0A=
=0A=
if (Prototype.Browser.IE || Prototype.Browser.Opera) {=0A=
  // IE and Opera are missing .innerHTML support for TABLE-related and =
SELECT elements=0A=
  Element.Methods.update =3D function(element, content) {=0A=
    element =3D $(element);=0A=
=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) return =
element.update().insert(content);=0A=
=0A=
    content =3D Object.toHTML(content);=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
=0A=
    if (tagName in Element._insertionTranslations.tags) {=0A=
      $A(element.childNodes).each(function(node) { =
element.removeChild(node) });=0A=
      Element._getContentFromAnonymousElement(tagName, =
content.stripScripts())=0A=
        .each(function(node) { element.appendChild(node) });=0A=
    }=0A=
    else element.innerHTML =3D content.stripScripts();=0A=
=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
if (document.createElement('div').outerHTML) {=0A=
  Element.Methods.replace =3D function(element, content) {=0A=
    element =3D $(element);=0A=
=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) {=0A=
      element.parentNode.replaceChild(content, element);=0A=
      return element;=0A=
    }=0A=
=0A=
    content =3D Object.toHTML(content);=0A=
    var parent =3D element.parentNode, tagName =3D =
parent.tagName.toUpperCase();=0A=
=0A=
    if (Element._insertionTranslations.tags[tagName]) {=0A=
      var nextSibling =3D element.next();=0A=
      var fragments =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());=0A=
      parent.removeChild(element);=0A=
      if (nextSibling)=0A=
        fragments.each(function(node) { parent.insertBefore(node, =
nextSibling) });=0A=
      else=0A=
        fragments.each(function(node) { parent.appendChild(node) });=0A=
    }=0A=
    else element.outerHTML =3D content.stripScripts();=0A=
=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
Element._returnOffset =3D function(l, t) {=0A=
  var result =3D [l, t];=0A=
  result.left =3D l;=0A=
  result.top =3D t;=0A=
  return result;=0A=
};=0A=
=0A=
Element._getContentFromAnonymousElement =3D function(tagName, html) {=0A=
  var div =3D new Element('div'), t =3D =
Element._insertionTranslations.tags[tagName];=0A=
  if (t) {=0A=
    div.innerHTML =3D t[0] + html + t[1];=0A=
    t[2].times(function() { div =3D div.firstChild });=0A=
  } else div.innerHTML =3D html;=0A=
  return $A(div.childNodes);=0A=
};=0A=
=0A=
Element._insertionTranslations =3D {=0A=
  before: function(element, node) {=0A=
    element.parentNode.insertBefore(node, element);=0A=
  },=0A=
  top: function(element, node) {=0A=
    element.insertBefore(node, element.firstChild);=0A=
  },=0A=
  bottom: function(element, node) {=0A=
    element.appendChild(node);=0A=
  },=0A=
  after: function(element, node) {=0A=
    element.parentNode.insertBefore(node, element.nextSibling);=0A=
  },=0A=
  tags: {=0A=
    TABLE:  ['<table>',                '</table>',                   1],=0A=
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],=0A=
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],=0A=
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],=0A=
    SELECT: ['<select>',               '</select>',                  1]=0A=
  }=0A=
};=0A=
=0A=
(function() {=0A=
  Object.extend(this.tags, {=0A=
    THEAD: this.tags.TBODY,=0A=
    TFOOT: this.tags.TBODY,=0A=
    TH:    this.tags.TD=0A=
  });=0A=
}).call(Element._insertionTranslations);=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    attribute =3D Element._attributeTranslations.has[attribute] || =
attribute;=0A=
    var node =3D $(element).getAttributeNode(attribute);=0A=
    return node && node.specified;=0A=
  }=0A=
};=0A=
=0A=
Element.Methods.ByTag =3D { };=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
if (!Prototype.BrowserFeatures.ElementExtensions &&=0A=
    document.createElement('div').__proto__) {=0A=
  window.HTMLElement =3D { };=0A=
  window.HTMLElement.prototype =3D =
document.createElement('div').__proto__;=0A=
  Prototype.BrowserFeatures.ElementExtensions =3D true;=0A=
}=0A=
=0A=
Element.extend =3D (function() {=0A=
  if (Prototype.BrowserFeatures.SpecificElementExtensions)=0A=
    return Prototype.K;=0A=
=0A=
  var Methods =3D { }, ByTag =3D Element.Methods.ByTag;=0A=
=0A=
  var extend =3D Object.extend(function(element) {=0A=
    if (!element || element._extendedByPrototype ||=0A=
        element.nodeType !=3D 1 || element =3D=3D window) return element;=0A=
=0A=
    var methods =3D Object.clone(Methods),=0A=
      tagName =3D element.tagName, property, value;=0A=
=0A=
    // extend methods for specific tags=0A=
    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);=0A=
=0A=
    for (property in methods) {=0A=
      value =3D methods[property];=0A=
      if (Object.isFunction(value) && !(property in element))=0A=
        element[property] =3D value.methodize();=0A=
    }=0A=
=0A=
    element._extendedByPrototype =3D Prototype.emptyFunction;=0A=
    return element;=0A=
=0A=
  }, {=0A=
    refresh: function() {=0A=
      // extend methods for all tags (Safari doesn't need this)=0A=
      if (!Prototype.BrowserFeatures.ElementExtensions) {=0A=
        Object.extend(Methods, Element.Methods);=0A=
        Object.extend(Methods, Element.Methods.Simulated);=0A=
      }=0A=
    }=0A=
  });=0A=
=0A=
  extend.refresh();=0A=
  return extend;=0A=
})();=0A=
=0A=
Element.hasAttribute =3D function(element, attribute) {=0A=
  if (element.hasAttribute) return element.hasAttribute(attribute);=0A=
  return Element.Methods.Simulated.hasAttribute(element, attribute);=0A=
};=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag;=0A=
=0A=
  if (!methods) {=0A=
    Object.extend(Form, Form.Methods);=0A=
    Object.extend(Form.Element, Form.Element.Methods);=0A=
    Object.extend(Element.Methods.ByTag, {=0A=
      "FORM":     Object.clone(Form.Methods),=0A=
      "INPUT":    Object.clone(Form.Element.Methods),=0A=
      "SELECT":   Object.clone(Form.Element.Methods),=0A=
      "TEXTAREA": Object.clone(Form.Element.Methods)=0A=
    });=0A=
  }=0A=
=0A=
  if (arguments.length =3D=3D 2) {=0A=
    var tagName =3D methods;=0A=
    methods =3D arguments[1];=0A=
  }=0A=
=0A=
  if (!tagName) Object.extend(Element.Methods, methods || { });=0A=
  else {=0A=
    if (Object.isArray(tagName)) tagName.each(extend);=0A=
    else extend(tagName);=0A=
  }=0A=
=0A=
  function extend(tagName) {=0A=
    tagName =3D tagName.toUpperCase();=0A=
    if (!Element.Methods.ByTag[tagName])=0A=
      Element.Methods.ByTag[tagName] =3D { };=0A=
    Object.extend(Element.Methods.ByTag[tagName], methods);=0A=
  }=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!Object.isFunction(value)) continue;=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D value.methodize();=0A=
    }=0A=
  }=0A=
=0A=
  function findDOMClass(tagName) {=0A=
    var klass;=0A=
    var trans =3D {=0A=
      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",=0A=
      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": =
"DList",=0A=
      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": =
"Heading",=0A=
      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",=0A=
      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", =
"CAPTION":=0A=
      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":=0A=
      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", =
"TR":=0A=
      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":=0A=
      "FrameSet", "IFRAME": "IFrame"=0A=
    };=0A=
    if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
    klass =3D 'HTML' + tagName + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
    klass =3D 'HTML' + tagName.capitalize() + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
=0A=
    window[klass] =3D { };=0A=
    window[klass].prototype =3D =
document.createElement(tagName).__proto__;=0A=
    return window[klass];=0A=
  }=0A=
=0A=
  if (F.ElementExtensions) {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
  }=0A=
=0A=
  if (F.SpecificElementExtensions) {=0A=
    for (var tag in Element.Methods.ByTag) {=0A=
      var klass =3D findDOMClass(tag);=0A=
      if (Object.isUndefined(klass)) continue;=0A=
      copy(T[tag], klass.prototype);=0A=
    }=0A=
  }=0A=
=0A=
  Object.extend(Element, Element.Methods);=0A=
  delete Element.ByTag;=0A=
=0A=
  if (Element.extend.refresh) Element.extend.refresh();=0A=
  Element.cache =3D { };=0A=
};=0A=
=0A=
document.viewport =3D {=0A=
  getDimensions: function() {=0A=
    var dimensions =3D { };=0A=
    var B =3D Prototype.Browser;=0A=
    $w('width height').each(function(d) {=0A=
      var D =3D d.capitalize();=0A=
      dimensions[d] =3D (B.WebKit && !document.evaluate) ? self['inner' =
+ D] :=0A=
        (B.Opera) ? document.body['client' + D] : =
document.documentElement['client' + D];=0A=
    });=0A=
    return dimensions;=0A=
  },=0A=
=0A=
  getWidth: function() {=0A=
    return this.getDimensions().width;=0A=
  },=0A=
=0A=
  getHeight: function() {=0A=
    return this.getDimensions().height;=0A=
  },=0A=
=0A=
  getScrollOffsets: function() {=0A=
    return Element._returnOffset(=0A=
      window.pageXOffset || document.documentElement.scrollLeft || =
document.body.scrollLeft,=0A=
      window.pageYOffset || document.documentElement.scrollTop || =
document.body.scrollTop);=0A=
  }=0A=
};=0A=
/* Portions of the Selector class are derived from Jack Slocum=E2=80=99s =
DomQuery,=0A=
 * part of YUI-Ext version 0.40, distributed under the terms of an =
MIT-style=0A=
 * license.  Please see http://www.yui-ext.com/ for more information. */=0A=
=0A=
var Selector =3D Class.create({=0A=
  initialize: function(expression) {=0A=
    this.expression =3D expression.strip();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  shouldUseXPath: function() {=0A=
    if (!Prototype.BrowserFeatures.XPath) return false;=0A=
=0A=
    var e =3D this.expression;=0A=
=0A=
    // Safari 3 chokes on :*-of-type and :empty=0A=
    if (Prototype.Browser.WebKit &&=0A=
     (e.include("-of-type") || e.include(":empty")))=0A=
      return false;=0A=
=0A=
    // XPath can't do namespaced attributes, nor can it read=0A=
    // the "checked" property from DOM nodes=0A=
    if ((/(\[[\w-]*?:|:checked)/).test(this.expression))=0A=
      return false;=0A=
=0A=
    return true;=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    if (this.shouldUseXPath())=0A=
      return this.compileXPathMatcher();=0A=
=0A=
    var e =3D this.expression, ps =3D Selector.patterns, h =3D =
Selector.handlers,=0A=
        c =3D Selector.criteria, le, p, m;=0A=
=0A=
    if (Selector._cache[e]) {=0A=
      this.matcher =3D Selector._cache[e];=0A=
      return;=0A=
    }=0A=
=0A=
    this.matcher =3D ["this.matcher =3D function(root) {",=0A=
                    "var r =3D root, h =3D Selector.handlers, c =3D =
false, n;"];=0A=
=0A=
    while (e && le !=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        p =3D ps[i];=0A=
        if (m =3D e.match(p)) {=0A=
          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :=0A=
    	      new Template(c[i]).evaluate(m));=0A=
          e =3D e.replace(m[0], '');=0A=
          break;=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    this.matcher.push("return h.unique(n);\n}");=0A=
    eval(this.matcher.join('\n'));=0A=
    Selector._cache[this.expression] =3D this.matcher;=0A=
  },=0A=
=0A=
  compileXPathMatcher: function() {=0A=
    var e =3D this.expression, ps =3D Selector.patterns,=0A=
        x =3D Selector.xpath, le, m;=0A=
=0A=
    if (Selector._cache[e]) {=0A=
      this.xpath =3D Selector._cache[e]; return;=0A=
    }=0A=
=0A=
    this.matcher =3D ['.//*'];=0A=
    while (e && le !=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        if (m =3D e.match(ps[i])) {=0A=
          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :=0A=
            new Template(x[i]).evaluate(m));=0A=
          e =3D e.replace(m[0], '');=0A=
          break;=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    this.xpath =3D this.matcher.join('');=0A=
    Selector._cache[this.expression] =3D this.xpath;=0A=
  },=0A=
=0A=
  findElements: function(root) {=0A=
    root =3D root || document;=0A=
    if (this.xpath) return document._getElementsByXPath(this.xpath, =
root);=0A=
    return this.matcher(root);=0A=
  },=0A=
=0A=
  match: function(element) {=0A=
    this.tokens =3D [];=0A=
=0A=
    var e =3D this.expression, ps =3D Selector.patterns, as =3D =
Selector.assertions;=0A=
    var le, p, m;=0A=
=0A=
    while (e && le !=3D=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        p =3D ps[i];=0A=
        if (m =3D e.match(p)) {=0A=
          // use the Selector.assertions methods unless the selector=0A=
          // is too complex.=0A=
          if (as[i]) {=0A=
            this.tokens.push([i, Object.clone(m)]);=0A=
            e =3D e.replace(m[0], '');=0A=
          } else {=0A=
            // reluctantly do a document-wide search=0A=
            // and look for a match in the array=0A=
            return this.findElements(document).include(element);=0A=
          }=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    var match =3D true, name, matches;=0A=
    for (var i =3D 0, token; token =3D this.tokens[i]; i++) {=0A=
      name =3D token[0], matches =3D token[1];=0A=
      if (!Selector.assertions[name](element, matches)) {=0A=
        match =3D false; break;=0A=
      }=0A=
    }=0A=
=0A=
    return match;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return "#<Selector:" + this.expression.inspect() + ">";=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Selector, {=0A=
  _cache: { },=0A=
=0A=
  xpath: {=0A=
    descendant:   "//*",=0A=
    child:        "/*",=0A=
    adjacent:     "/following-sibling::*[1]",=0A=
    laterSibling: '/following-sibling::*',=0A=
    tagName:      function(m) {=0A=
      if (m[1] =3D=3D '*') return '';=0A=
      return "[local-name()=3D'" + m[1].toLowerCase() +=0A=
             "' or local-name()=3D'" + m[1].toUpperCase() + "']";=0A=
    },=0A=
    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",=0A=
    id:           "[@id=3D'#{1}']",=0A=
    attrPresence: function(m) {=0A=
      m[1] =3D m[1].toLowerCase();=0A=
      return new Template("[@#{1}]").evaluate(m);=0A=
    },=0A=
    attr: function(m) {=0A=
      m[1] =3D m[1].toLowerCase();=0A=
      m[3] =3D m[5] || m[6];=0A=
      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);=0A=
    },=0A=
    pseudo: function(m) {=0A=
      var h =3D Selector.xpath.pseudos[m[1]];=0A=
      if (!h) return '';=0A=
      if (Object.isFunction(h)) return h(m);=0A=
      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);=0A=
    },=0A=
    operators: {=0A=
      '=3D':  "[@#{1}=3D'#{3}']",=0A=
      '!=3D': "[@#{1}!=3D'#{3}']",=0A=
      '^=3D': "[starts-with(@#{1}, '#{3}')]",=0A=
      '$=3D': "[substring(@#{1}, (string-length(@#{1}) - =
string-length('#{3}') + 1))=3D'#{3}']",=0A=
      '*=3D': "[contains(@#{1}, '#{3}')]",=0A=
      '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",=0A=
      '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"=0A=
    },=0A=
    pseudos: {=0A=
      'first-child': '[not(preceding-sibling::*)]',=0A=
      'last-child':  '[not(following-sibling::*)]',=0A=
      'only-child':  '[not(preceding-sibling::* or =
following-sibling::*)]',=0A=
      'empty':       "[count(*) =3D 0 and (count(text()) =3D 0 or =
translate(text(), ' \t\r\n', '') =3D '')]",=0A=
      'checked':     "[@checked]",=0A=
      'disabled':    "[@disabled]",=0A=
      'enabled':     "[not(@disabled)]",=0A=
      'not': function(m) {=0A=
        var e =3D m[6], p =3D Selector.patterns,=0A=
            x =3D Selector.xpath, le, v;=0A=
=0A=
        var exclusion =3D [];=0A=
        while (e && le !=3D e && (/\S/).test(e)) {=0A=
          le =3D e;=0A=
          for (var i in p) {=0A=
            if (m =3D e.match(p[i])) {=0A=
              v =3D Object.isFunction(x[i]) ? x[i](m) : new =
Template(x[i]).evaluate(m);=0A=
              exclusion.push("(" + v.substring(1, v.length - 1) + ")");=0A=
              e =3D e.replace(m[0], '');=0A=
              break;=0A=
            }=0A=
          }=0A=
        }=0A=
        return "[not(" + exclusion.join(" and ") + ")]";=0A=
      },=0A=
      'nth-child':      function(m) {=0A=
        return =
Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);=0A=
      },=0A=
      'nth-last-child': function(m) {=0A=
        return =
Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);=0A=
      },=0A=
      'nth-of-type':    function(m) {=0A=
        return Selector.xpath.pseudos.nth("position() ", m);=0A=
      },=0A=
      'nth-last-of-type': function(m) {=0A=
        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", =
m);=0A=
      },=0A=
      'first-of-type':  function(m) {=0A=
        m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m);=0A=
      },=0A=
      'last-of-type':   function(m) {=0A=
        m[6] =3D "1"; return =
Selector.xpath.pseudos['nth-last-of-type'](m);=0A=
      },=0A=
      'only-of-type':   function(m) {=0A=
        var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + =
p['last-of-type'](m);=0A=
      },=0A=
      nth: function(fragment, m) {=0A=
        var mm, formula =3D m[6], predicate;=0A=
        if (formula =3D=3D 'even') formula =3D '2n+0';=0A=
        if (formula =3D=3D 'odd')  formula =3D '2n+1';=0A=
        if (mm =3D formula.match(/^(\d+)$/)) // digit only=0A=
          return '[' + fragment + "=3D " + mm[1] + ']';=0A=
        if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b=0A=
          if (mm[1] =3D=3D "-") mm[1] =3D -1;=0A=
          var a =3D mm[1] ? Number(mm[1]) : 1;=0A=
          var b =3D mm[2] ? Number(mm[2]) : 0;=0A=
          predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " +=0A=
          "((#{fragment} - #{b}) div #{a} >=3D 0)]";=0A=
          return new Template(predicate).evaluate({=0A=
            fragment: fragment, a: a, b: b });=0A=
        }=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  criteria: {=0A=
    tagName:      'n =3D h.tagName(n, r, "#{1}", c);   c =3D false;',=0A=
    className:    'n =3D h.className(n, r, "#{1}", c); c =3D false;',=0A=
    id:           'n =3D h.id(n, r, "#{1}", c);        c =3D false;',=0A=
    attrPresence: 'n =3D h.attrPresence(n, r, "#{1}"); c =3D false;',=0A=
    attr: function(m) {=0A=
      m[3] =3D (m[5] || m[6]);=0A=
      return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}"); c =
=3D false;').evaluate(m);=0A=
    },=0A=
    pseudo: function(m) {=0A=
      if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"');=0A=
      return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c =
=3D false;').evaluate(m);=0A=
    },=0A=
    descendant:   'c =3D "descendant";',=0A=
    child:        'c =3D "child";',=0A=
    adjacent:     'c =3D "adjacent";',=0A=
    laterSibling: 'c =3D "laterSibling";'=0A=
  },=0A=
=0A=
  patterns: {=0A=
    // combinators must be listed first=0A=
    // (and descendant needs to be last combinator)=0A=
    laterSibling: /^\s*~\s*/,=0A=
    child:        /^\s*>\s*/,=0A=
    adjacent:     /^\s*\+\s*/,=0A=
    descendant:   /^\s/,=0A=
=0A=
    // selectors follow=0A=
    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,=0A=
    id:           /^#([\w\-\*]+)(\b|$)/,=0A=
    className:    /^\.([\w\-\*]+)(\b|$)/,=0A=
    pseudo:=0A=
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis=
)abled|not)(\((.*?)\))?(\b|$|(?=3D\s|[:+~>]))/,=0A=
    attrPresence: /^\[([\w]+)\]/,=0A=
    attr:         =
/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\4]*?)\4|([^'"][^=
\]]*?)))?\]/=0A=
  },=0A=
=0A=
  // for Selector.match and Element#match=0A=
  assertions: {=0A=
    tagName: function(element, matches) {=0A=
      return matches[1].toUpperCase() =3D=3D =
element.tagName.toUpperCase();=0A=
    },=0A=
=0A=
    className: function(element, matches) {=0A=
      return Element.hasClassName(element, matches[1]);=0A=
    },=0A=
=0A=
    id: function(element, matches) {=0A=
      return element.id =3D=3D=3D matches[1];=0A=
    },=0A=
=0A=
    attrPresence: function(element, matches) {=0A=
      return Element.hasAttribute(element, matches[1]);=0A=
    },=0A=
=0A=
    attr: function(element, matches) {=0A=
      var nodeValue =3D Element.readAttribute(element, matches[1]);=0A=
      return Selector.operators[matches[2]](nodeValue, matches[3]);=0A=
    }=0A=
  },=0A=
=0A=
  handlers: {=0A=
    // UTILITY FUNCTIONS=0A=
    // joins two collections=0A=
    concat: function(a, b) {=0A=
      for (var i =3D 0, node; node =3D b[i]; i++)=0A=
        a.push(node);=0A=
      return a;=0A=
    },=0A=
=0A=
    // marks an array of nodes for counting=0A=
    mark: function(nodes) {=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        node._counted =3D true;=0A=
      return nodes;=0A=
    },=0A=
=0A=
    unmark: function(nodes) {=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        node._counted =3D undefined;=0A=
      return nodes;=0A=
    },=0A=
=0A=
    // mark each child node with its position (for nth calls)=0A=
    // "ofType" flag indicates whether we're indexing for nth-of-type=0A=
    // rather than nth-child=0A=
    index: function(parentNode, reverse, ofType) {=0A=
      parentNode._counted =3D true;=0A=
      if (reverse) {=0A=
        for (var nodes =3D parentNode.childNodes, i =3D nodes.length - =
1, j =3D 1; i >=3D 0; i--) {=0A=
          var node =3D nodes[i];=0A=
          if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) =
node.nodeIndex =3D j++;=0A=
        }=0A=
      } else {=0A=
        for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node =
=3D nodes[i]; i++)=0A=
          if (node.nodeType =3D=3D 1 && (!ofType || node._counted)) =
node.nodeIndex =3D j++;=0A=
      }=0A=
    },=0A=
=0A=
    // filters out duplicates and extends all nodes=0A=
    unique: function(nodes) {=0A=
      if (nodes.length =3D=3D 0) return nodes;=0A=
      var results =3D [], n;=0A=
      for (var i =3D 0, l =3D nodes.length; i < l; i++)=0A=
        if (!(n =3D nodes[i])._counted) {=0A=
          n._counted =3D true;=0A=
          results.push(Element.extend(n));=0A=
        }=0A=
      return Selector.handlers.unmark(results);=0A=
    },=0A=
=0A=
    // COMBINATOR FUNCTIONS=0A=
    descendant: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        h.concat(results, node.getElementsByTagName('*'));=0A=
      return results;=0A=
    },=0A=
=0A=
    child: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        for (var j =3D 0, child; child =3D node.childNodes[j]; j++)=0A=
          if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') =
results.push(child);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    adjacent: function(nodes) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        var next =3D this.nextElementSibling(node);=0A=
        if (next) results.push(next);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    laterSibling: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        h.concat(results, Element.nextSiblings(node));=0A=
      return results;=0A=
    },=0A=
=0A=
    nextElementSibling: function(node) {=0A=
      while (node =3D node.nextSibling)=0A=
	      if (node.nodeType =3D=3D 1) return node;=0A=
      return null;=0A=
    },=0A=
=0A=
    previousElementSibling: function(node) {=0A=
      while (node =3D node.previousSibling)=0A=
        if (node.nodeType =3D=3D 1) return node;=0A=
      return null;=0A=
    },=0A=
=0A=
    // TOKEN FUNCTIONS=0A=
    tagName: function(nodes, root, tagName, combinator) {=0A=
      var uTagName =3D tagName.toUpperCase();=0A=
      var results =3D [], h =3D Selector.handlers;=0A=
      if (nodes) {=0A=
        if (combinator) {=0A=
          // fastlane for ordinary descendant combinators=0A=
          if (combinator =3D=3D "descendant") {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              h.concat(results, node.getElementsByTagName(tagName));=0A=
            return results;=0A=
          } else nodes =3D this[combinator](nodes);=0A=
          if (tagName =3D=3D "*") return nodes;=0A=
        }=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node.tagName.toUpperCase() =3D=3D=3D uTagName) =
results.push(node);=0A=
        return results;=0A=
      } else return root.getElementsByTagName(tagName);=0A=
    },=0A=
=0A=
    id: function(nodes, root, id, combinator) {=0A=
      var targetNode =3D $(id), h =3D Selector.handlers;=0A=
      if (!targetNode) return [];=0A=
      if (!nodes && root =3D=3D document) return [targetNode];=0A=
      if (nodes) {=0A=
        if (combinator) {=0A=
          if (combinator =3D=3D 'child') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (targetNode.parentNode =3D=3D node) return [targetNode];=0A=
          } else if (combinator =3D=3D 'descendant') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (Element.descendantOf(targetNode, node)) return =
[targetNode];=0A=
          } else if (combinator =3D=3D 'adjacent') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (Selector.handlers.previousElementSibling(targetNode) =
=3D=3D node)=0A=
                return [targetNode];=0A=
          } else nodes =3D h[combinator](nodes);=0A=
        }=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node =3D=3D targetNode) return [targetNode];=0A=
        return [];=0A=
      }=0A=
      return (targetNode && Element.descendantOf(targetNode, root)) ? =
[targetNode] : [];=0A=
    },=0A=
=0A=
    className: function(nodes, root, className, combinator) {=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      return Selector.handlers.byClassName(nodes, root, className);=0A=
    },=0A=
=0A=
    byClassName: function(nodes, root, className) {=0A=
      if (!nodes) nodes =3D Selector.handlers.descendant([root]);=0A=
      var needle =3D ' ' + className + ' ';=0A=
      for (var i =3D 0, results =3D [], node, nodeClassName; node =3D =
nodes[i]; i++) {=0A=
        nodeClassName =3D node.className;=0A=
        if (nodeClassName.length =3D=3D 0) continue;=0A=
        if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' =
').include(needle))=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    attrPresence: function(nodes, root, attr) {=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      var results =3D [];=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        if (Element.hasAttribute(node, attr)) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    attr: function(nodes, root, attr, value, operator) {=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      var handler =3D Selector.operators[operator], results =3D [];=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A=
        var nodeValue =3D Element.readAttribute(node, attr);=0A=
        if (nodeValue =3D=3D=3D null) continue;=0A=
        if (handler(nodeValue, value)) results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    pseudo: function(nodes, name, value, root, combinator) {=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      return Selector.pseudos[name](nodes, value, root);=0A=
    }=0A=
  },=0A=
=0A=
  pseudos: {=0A=
    'first-child': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        if (Selector.handlers.previousElementSibling(node)) continue;=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
    'last-child': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        if (Selector.handlers.nextElementSibling(node)) continue;=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
    'only-child': function(nodes, value, root) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!h.previousElementSibling(node) && =
!h.nextElementSibling(node))=0A=
          results.push(node);=0A=
      return results;=0A=
    },=0A=
    'nth-child':        function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root);=0A=
    },=0A=
    'nth-last-child':   function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, true);=0A=
    },=0A=
    'nth-of-type':      function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, false, true);=0A=
    },=0A=
    'nth-last-of-type': function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, true, true);=0A=
    },=0A=
    'first-of-type':    function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, "1", root, false, true);=0A=
    },=0A=
    'last-of-type':     function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, "1", root, true, true);=0A=
    },=0A=
    'only-of-type':     function(nodes, formula, root) {=0A=
      var p =3D Selector.pseudos;=0A=
      return p['last-of-type'](p['first-of-type'](nodes, formula, root), =
formula, root);=0A=
    },=0A=
=0A=
    // handles the an+b logic=0A=
    getIndices: function(a, b, total) {=0A=
      if (a =3D=3D 0) return b > 0 ? [b] : [];=0A=
      return $R(1, total).inject([], function(memo, i) {=0A=
        if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i);=0A=
        return memo;=0A=
      });=0A=
    },=0A=
=0A=
    // handles nth(-last)-child, nth(-last)-of-type, and =
(first|last)-of-type=0A=
    nth: function(nodes, formula, root, reverse, ofType) {=0A=
      if (nodes.length =3D=3D 0) return [];=0A=
      if (formula =3D=3D 'even') formula =3D '2n+0';=0A=
      if (formula =3D=3D 'odd')  formula =3D '2n+1';=0A=
      var h =3D Selector.handlers, results =3D [], indexed =3D [], m;=0A=
      h.mark(nodes);=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A=
        if (!node.parentNode._counted) {=0A=
          h.index(node.parentNode, reverse, ofType);=0A=
          indexed.push(node.parentNode);=0A=
        }=0A=
      }=0A=
      if (formula.match(/^\d+$/)) { // just a number=0A=
        formula =3D Number(formula);=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node.nodeIndex =3D=3D formula) results.push(node);=0A=
      } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // =
an+b=0A=
        if (m[1] =3D=3D "-") m[1] =3D -1;=0A=
        var a =3D m[1] ? Number(m[1]) : 1;=0A=
        var b =3D m[2] ? Number(m[2]) : 0;=0A=
        var indices =3D Selector.pseudos.getIndices(a, b, nodes.length);=0A=
        for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; =
i++) {=0A=
          for (var j =3D 0; j < l; j++)=0A=
            if (node.nodeIndex =3D=3D indices[j]) results.push(node);=0A=
        }=0A=
      }=0A=
      h.unmark(nodes);=0A=
      h.unmark(indexed);=0A=
      return results;=0A=
    },=0A=
=0A=
    'empty': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        // IE treats comments as element nodes=0A=
        if (node.tagName =3D=3D '!' || (node.firstChild && =
!node.innerHTML.match(/^\s*$/))) continue;=0A=
        results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    'not': function(nodes, selector, root) {=0A=
      var h =3D Selector.handlers, selectorType, m;=0A=
      var exclusions =3D new Selector(selector).findElements(root);=0A=
      h.mark(exclusions);=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!node._counted) results.push(node);=0A=
      h.unmark(exclusions);=0A=
      return results;=0A=
    },=0A=
=0A=
    'enabled': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!node.disabled) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    'disabled': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (node.disabled) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    'checked': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (node.checked) results.push(node);=0A=
      return results;=0A=
    }=0A=
  },=0A=
=0A=
  operators: {=0A=
    '=3D':  function(nv, v) { return nv =3D=3D v; },=0A=
    '!=3D': function(nv, v) { return nv !=3D v; },=0A=
    '^=3D': function(nv, v) { return nv.startsWith(v); },=0A=
    '$=3D': function(nv, v) { return nv.endsWith(v); },=0A=
    '*=3D': function(nv, v) { return nv.include(v); },=0A=
    '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + =
' '); },=0A=
    '|=3D': function(nv, v) { return ('-' + nv.toUpperCase() + =
'-').include('-' + v.toUpperCase() + '-'); }=0A=
  },=0A=
=0A=
  matchElements: function(elements, expression) {=0A=
    var matches =3D new Selector(expression).findElements(), h =3D =
Selector.handlers;=0A=
    h.mark(matches);=0A=
    for (var i =3D 0, results =3D [], element; element =3D elements[i]; =
i++)=0A=
      if (element._counted) results.push(element);=0A=
    h.unmark(matches);=0A=
    return results;=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (Object.isNumber(expression)) {=0A=
      index =3D expression; expression =3D false;=0A=
    }=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    var exprs =3D expressions.join(',');=0A=
    expressions =3D [];=0A=
    exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {=0A=
      expressions.push(m[1].strip());=0A=
    });=0A=
    var results =3D [], h =3D Selector.handlers;=0A=
    for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) {=0A=
      selector =3D new Selector(expressions[i].strip());=0A=
      h.concat(results, selector.findElements(element));=0A=
    }=0A=
    return (l > 1) ? h.unique(results) : results;=0A=
  }=0A=
});=0A=
=0A=
if (Prototype.Browser.IE) {=0A=
  // IE returns comment nodes on getElementsByTagName("*").=0A=
  // Filter them out.=0A=
  Selector.handlers.concat =3D function(a, b) {=0A=
    for (var i =3D 0, node; node =3D b[i]; i++)=0A=
      if (node.tagName !=3D=3D "!") a.push(node);=0A=
    return a;=0A=
  };=0A=
}=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements, options) {=0A=
    if (typeof options !=3D 'object') options =3D { hash: !!options };=0A=
    else if (Object.isUndefined(options.hash)) options.hash =3D true;=0A=
    var key, value, submitted =3D false, submit =3D options.submit;=0A=
=0A=
    var data =3D elements.inject({ }, function(result, element) {=0A=
      if (!element.disabled && element.name) {=0A=
        key =3D element.name; value =3D $(element).getValue();=0A=
        if (value !=3D null && (element.type !=3D 'submit' || =
(!submitted &&=0A=
            submit !=3D=3D false && (!submit || key =3D=3D submit) && =
(submitted =3D true)))) {=0A=
          if (key in result) {=0A=
            // a key is already present; construct an array of values=0A=
            if (!Object.isArray(result[key])) result[key] =3D =
[result[key]];=0A=
            result[key].push(value);=0A=
          }=0A=
          else result[key] =3D value;=0A=
        }=0A=
      }=0A=
      return result;=0A=
    });=0A=
=0A=
    return options.hash ? data : Object.toQueryString(data);=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form, options) {=0A=
    return Form.serializeElements(Form.getElements(form), options);=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    return $A($(form).getElementsByTagName('*')).inject([],=0A=
      function(elements, child) {=0A=
        if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A=
          elements.push(Element.extend(child));=0A=
        return elements;=0A=
      }=0A=
    );=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name) return $A(inputs).map(Element.extend);=0A=
=0A=
    for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i =
< length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) || (name && input.name =
!=3D name))=0A=
        continue;=0A=
      matchingInputs.push(Element.extend(input));=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    form =3D $(form);=0A=
    Form.getElements(form).invoke('disable');=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    Form.getElements(form).invoke('enable');=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    var elements =3D $(form).getElements().findAll(function(element) {=0A=
      return 'hidden' !=3D element.type && !element.disabled;=0A=
    });=0A=
    var firstByIndex =3D elements.findAll(function(element) {=0A=
      return element.hasAttribute('tabIndex') && element.tabIndex >=3D 0;=0A=
    }).sortBy(function(element) { return element.tabIndex }).first();=0A=
=0A=
    return firstByIndex ? firstByIndex : elements.find(function(element) =
{=0A=
      return ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  },=0A=
=0A=
  request: function(form, options) {=0A=
    form =3D $(form), options =3D Object.clone(options || { });=0A=
=0A=
    var params =3D options.parameters, action =3D =
form.readAttribute('action') || '';=0A=
    if (action.blank()) action =3D window.location.href;=0A=
    options.parameters =3D form.serialize(true);=0A=
=0A=
    if (params) {=0A=
      if (Object.isString(params)) params =3D params.toQueryParams();=0A=
      Object.extend(options.parameters, params);=0A=
    }=0A=
=0A=
    if (form.hasAttribute('method') && !options.method)=0A=
      options.method =3D form.method;=0A=
=0A=
    return new Ajax.Request(action, options);=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element.disabled && element.name) {=0A=
      var value =3D element.getValue();=0A=
      if (value !=3D undefined) {=0A=
        var pair =3D { };=0A=
        pair[element.name] =3D value;=0A=
        return Object.toQueryString(pair);=0A=
      }=0A=
    }=0A=
    return '';=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    return Form.Element.Serializers[method](element);=0A=
  },=0A=
=0A=
  setValue: function(element, value) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    Form.Element.Serializers[method](element, value);=0A=
    return element;=0A=
  },=0A=
=0A=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    try {=0A=
      element.focus();=0A=
      if (element.select && (element.tagName.toLowerCase() !=3D 'input' =
||=0A=
          !['button', 'reset', 'submit'].include(element.type)))=0A=
        element.select();=0A=
    } catch (e) { }=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Field =3D Form.Element;=0A=
var $F =3D Form.Element.Methods.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element, value) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element, value);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(element, value);=0A=
    }=0A=
  },=0A=
=0A=
  inputSelector: function(element, value) {=0A=
    if (Object.isUndefined(value)) return element.checked ? =
element.value : null;=0A=
    else element.checked =3D !!value;=0A=
  },=0A=
=0A=
  textarea: function(element, value) {=0A=
    if (Object.isUndefined(value)) return element.value;=0A=
    else element.value =3D value;=0A=
  },=0A=
=0A=
  select: function(element, index) {=0A=
    if (Object.isUndefined(index))=0A=
      return this[element.type =3D=3D 'select-one' ?=0A=
        'selectOne' : 'selectMany'](element);=0A=
    else {=0A=
      var opt, value, single =3D !Object.isArray(index);=0A=
      for (var i =3D 0, length =3D element.length; i < length; i++) {=0A=
        opt =3D element.options[i];=0A=
        value =3D this.optionValue(opt);=0A=
        if (single) {=0A=
          if (value =3D=3D index) {=0A=
            opt.selected =3D true;=0A=
            return;=0A=
          }=0A=
        }=0A=
        else opt.selected =3D index.include(value);=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var index =3D element.selectedIndex;=0A=
    return index >=3D 0 ? this.optionValue(element.options[index]) : =
null;=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var values, length =3D element.length;=0A=
    if (!length) return null;=0A=
=0A=
    for (var i =3D 0, values =3D []; i < length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) values.push(this.optionValue(opt));=0A=
    }=0A=
    return values;=0A=
  },=0A=
=0A=
  optionValue: function(opt) {=0A=
    // extend element because hasAttribute may not be native=0A=
    return Element.extend(opt).hasAttribute('value') ? opt.value : =
opt.text;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.TimedObserver =3D Class.create(PeriodicalExecuter, {=0A=
  initialize: function($super, element, frequency, callback) {=0A=
    $super(callback, frequency);=0A=
    this.element   =3D $(element);=0A=
    this.lastValue =3D this.getValue();=0A=
  },=0A=
=0A=
  execute: function() {=0A=
    var value =3D this.getValue();=0A=
    if (Object.isString(this.lastValue) && Object.isString(value) ?=0A=
        this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value)) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Form.Element.Observer =3D Class.create(Abstract.TimedObserver, {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create(Abstract.TimedObserver, {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D Class.create({=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    Form.getElements(this.element).each(this.registerCallback, this);=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        default:=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Form.Element.EventObserver =3D Class.create(Abstract.EventObserver, {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create(Abstract.EventObserver, {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) var Event =3D { };=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=0A=
  KEY_INSERT:   45,=0A=
=0A=
  cache: { },=0A=
=0A=
  relatedTarget: function(event) {=0A=
    var element;=0A=
    switch(event.type) {=0A=
      case 'mouseover': element =3D event.fromElement; break;=0A=
      case 'mouseout':  element =3D event.toElement;   break;=0A=
      default: return null;=0A=
    }=0A=
    return Element.extend(element);=0A=
  }=0A=
});=0A=
=0A=
Event.Methods =3D (function() {=0A=
  var isButton;=0A=
=0A=
  if (Prototype.Browser.IE) {=0A=
    var buttonMap =3D { 0: 1, 1: 4, 2: 2 };=0A=
    isButton =3D function(event, code) {=0A=
      return event.button =3D=3D buttonMap[code];=0A=
    };=0A=
=0A=
  } else if (Prototype.Browser.WebKit) {=0A=
    isButton =3D function(event, code) {=0A=
      switch (code) {=0A=
        case 0: return event.which =3D=3D 1 && !event.metaKey;=0A=
        case 1: return event.which =3D=3D 1 && event.metaKey;=0A=
        default: return false;=0A=
      }=0A=
    };=0A=
=0A=
  } else {=0A=
    isButton =3D function(event, code) {=0A=
      return event.which ? (event.which =3D=3D=3D code + 1) : =
(event.button =3D=3D=3D code);=0A=
    };=0A=
  }=0A=
=0A=
  return {=0A=
    isLeftClick:   function(event) { return isButton(event, 0) },=0A=
    isMiddleClick: function(event) { return isButton(event, 1) },=0A=
    isRightClick:  function(event) { return isButton(event, 2) },=0A=
=0A=
    element: function(event) {=0A=
      var node =3D Event.extend(event).target;=0A=
      return Element.extend(node.nodeType =3D=3D Node.TEXT_NODE ? =
node.parentNode : node);=0A=
    },=0A=
=0A=
    findElement: function(event, expression) {=0A=
      var element =3D Event.element(event);=0A=
      if (!expression) return element;=0A=
      var elements =3D [element].concat(element.ancestors());=0A=
      return Selector.findElement(elements, expression, 0);=0A=
    },=0A=
=0A=
    pointer: function(event) {=0A=
      return {=0A=
        x: event.pageX || (event.clientX +=0A=
          (document.documentElement.scrollLeft || =
document.body.scrollLeft)),=0A=
        y: event.pageY || (event.clientY +=0A=
          (document.documentElement.scrollTop || =
document.body.scrollTop))=0A=
      };=0A=
    },=0A=
=0A=
    pointerX: function(event) { return Event.pointer(event).x },=0A=
    pointerY: function(event) { return Event.pointer(event).y },=0A=
=0A=
    stop: function(event) {=0A=
      Event.extend(event);=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
      event.stopped =3D true;=0A=
    }=0A=
  };=0A=
})();=0A=
=0A=
Event.extend =3D (function() {=0A=
  var methods =3D Object.keys(Event.Methods).inject({ }, function(m, =
name) {=0A=
    m[name] =3D Event.Methods[name].methodize();=0A=
    return m;=0A=
  });=0A=
=0A=
  if (Prototype.Browser.IE) {=0A=
    Object.extend(methods, {=0A=
      stopPropagation: function() { this.cancelBubble =3D true },=0A=
      preventDefault:  function() { this.returnValue =3D false },=0A=
      inspect: function() { return "[object Event]" }=0A=
    });=0A=
=0A=
    return function(event) {=0A=
      if (!event) return false;=0A=
      if (event._extendedByPrototype) return event;=0A=
=0A=
      event._extendedByPrototype =3D Prototype.emptyFunction;=0A=
      var pointer =3D Event.pointer(event);=0A=
      Object.extend(event, {=0A=
        target: event.srcElement,=0A=
        relatedTarget: Event.relatedTarget(event),=0A=
        pageX:  pointer.x,=0A=
        pageY:  pointer.y=0A=
      });=0A=
      return Object.extend(event, methods);=0A=
    };=0A=
=0A=
  } else {=0A=
    Event.prototype =3D Event.prototype || =
document.createEvent("HTMLEvents").__proto__;=0A=
    Object.extend(Event.prototype, methods);=0A=
    return Prototype.K;=0A=
  }=0A=
})();=0A=
=0A=
Object.extend(Event, (function() {=0A=
  var cache =3D Event.cache;=0A=
=0A=
  function getEventID(element) {=0A=
    if (element._eventID) return element._eventID;=0A=
    arguments.callee.id =3D arguments.callee.id || 1;=0A=
    return element._eventID =3D ++arguments.callee.id;=0A=
  }=0A=
=0A=
  function getDOMEventName(eventName) {=0A=
    if (eventName && eventName.include(':')) return "dataavailable";=0A=
    return eventName;=0A=
  }=0A=
=0A=
  function getCacheForID(id) {=0A=
    return cache[id] =3D cache[id] || { };=0A=
  }=0A=
=0A=
  function getWrappersForEventName(id, eventName) {=0A=
    var c =3D getCacheForID(id);=0A=
    return c[eventName] =3D c[eventName] || [];=0A=
  }=0A=
=0A=
  function createWrapper(element, eventName, handler) {=0A=
    var id =3D getEventID(element);=0A=
    var c =3D getWrappersForEventName(id, eventName);=0A=
    if (c.pluck("handler").include(handler)) return false;=0A=
=0A=
    var wrapper =3D function(event) {=0A=
      if (!Event || !Event.extend ||=0A=
        (event.eventName && event.eventName !=3D eventName))=0A=
          return false;=0A=
=0A=
      Event.extend(event);=0A=
      handler.call(element, event);=0A=
    };=0A=
=0A=
    wrapper.handler =3D handler;=0A=
    c.push(wrapper);=0A=
    return wrapper;=0A=
  }=0A=
=0A=
  function findWrapper(id, eventName, handler) {=0A=
    var c =3D getWrappersForEventName(id, eventName);=0A=
    return c.find(function(wrapper) { return wrapper.handler =3D=3D =
handler });=0A=
  }=0A=
=0A=
  function destroyWrapper(id, eventName, handler) {=0A=
    var c =3D getCacheForID(id);=0A=
    if (!c[eventName]) return false;=0A=
    c[eventName] =3D c[eventName].without(findWrapper(id, eventName, =
handler));=0A=
  }=0A=
=0A=
  function destroyCache() {=0A=
    for (var id in cache)=0A=
      for (var eventName in cache[id])=0A=
        cache[id][eventName] =3D null;=0A=
  }=0A=
=0A=
  if (window.attachEvent) {=0A=
    window.attachEvent("onunload", destroyCache);=0A=
  }=0A=
=0A=
  return {=0A=
    observe: function(element, eventName, handler) {=0A=
      element =3D $(element);=0A=
      var name =3D getDOMEventName(eventName);=0A=
=0A=
      var wrapper =3D createWrapper(element, eventName, handler);=0A=
      if (!wrapper) return element;=0A=
=0A=
      if (element.addEventListener) {=0A=
        element.addEventListener(name, wrapper, false);=0A=
      } else {=0A=
        element.attachEvent("on" + name, wrapper);=0A=
      }=0A=
=0A=
      return element;=0A=
    },=0A=
=0A=
    stopObserving: function(element, eventName, handler) {=0A=
      element =3D $(element);=0A=
      var id =3D getEventID(element), name =3D =
getDOMEventName(eventName);=0A=
=0A=
      if (!handler && eventName) {=0A=
        getWrappersForEventName(id, eventName).each(function(wrapper) {=0A=
          element.stopObserving(eventName, wrapper.handler);=0A=
        });=0A=
        return element;=0A=
=0A=
      } else if (!eventName) {=0A=
        Object.keys(getCacheForID(id)).each(function(eventName) {=0A=
          element.stopObserving(eventName);=0A=
        });=0A=
        return element;=0A=
      }=0A=
=0A=
      var wrapper =3D findWrapper(id, eventName, handler);=0A=
      if (!wrapper) return element;=0A=
=0A=
      if (element.removeEventListener) {=0A=
        element.removeEventListener(name, wrapper, false);=0A=
      } else {=0A=
        element.detachEvent("on" + name, wrapper);=0A=
      }=0A=
=0A=
      destroyWrapper(id, eventName, handler);=0A=
=0A=
      return element;=0A=
    },=0A=
=0A=
    fire: function(element, eventName, memo) {=0A=
      element =3D $(element);=0A=
      if (element =3D=3D document && document.createEvent && =
!element.dispatchEvent)=0A=
        element =3D document.documentElement;=0A=
=0A=
      var event;=0A=
      if (document.createEvent) {=0A=
        event =3D document.createEvent("HTMLEvents");=0A=
        event.initEvent("dataavailable", true, true);=0A=
      } else {=0A=
        event =3D document.createEventObject();=0A=
        event.eventType =3D "ondataavailable";=0A=
      }=0A=
=0A=
      event.eventName =3D eventName;=0A=
      event.memo =3D memo || { };=0A=
=0A=
      if (document.createEvent) {=0A=
        element.dispatchEvent(event);=0A=
      } else {=0A=
        element.fireEvent(event.eventType, event);=0A=
      }=0A=
=0A=
      return Event.extend(event);=0A=
    }=0A=
  };=0A=
})());=0A=
=0A=
Object.extend(Event, Event.Methods);=0A=
=0A=
Element.addMethods({=0A=
  fire:          Event.fire,=0A=
  observe:       Event.observe,=0A=
  stopObserving: Event.stopObserving=0A=
});=0A=
=0A=
Object.extend(document, {=0A=
  fire:          Element.Methods.fire.methodize(),=0A=
  observe:       Element.Methods.observe.methodize(),=0A=
  stopObserving: Element.Methods.stopObserving.methodize(),=0A=
  loaded:        false=0A=
});=0A=
=0A=
(function() {=0A=
  /* Support for the DOMContentLoaded event is based on work by Dan Webb,=0A=
     Matthias Miller, Dean Edwards and John Resig. */=0A=
=0A=
  var timer;=0A=
=0A=
  function fireContentLoadedEvent() {=0A=
    if (document.loaded) return;=0A=
    if (timer) window.clearInterval(timer);=0A=
    document.fire("dom:loaded");=0A=
    document.loaded =3D true;=0A=
  }=0A=
=0A=
  if (document.addEventListener) {=0A=
    if (Prototype.Browser.WebKit) {=0A=
      timer =3D window.setInterval(function() {=0A=
        if (/loaded|complete/.test(document.readyState))=0A=
          fireContentLoadedEvent();=0A=
      }, 0);=0A=
=0A=
      Event.observe(window, "load", fireContentLoadedEvent);=0A=
=0A=
    } else {=0A=
      document.addEventListener("DOMContentLoaded",=0A=
        fireContentLoadedEvent, false);=0A=
    }=0A=
=0A=
  } else {=0A=
    document.write("<script id=3D__onDOMContentLoaded defer =
src=3D//:><\/script>");=0A=
    $("__onDOMContentLoaded").onreadystatechange =3D function() {=0A=
      if (this.readyState =3D=3D "complete") {=0A=
        this.onreadystatechange =3D null;=0A=
        fireContentLoadedEvent();=0A=
      }=0A=
    };=0A=
  }=0A=
})();=0A=
/*------------------------------- DEPRECATED =
-------------------------------*/=0A=
=0A=
Hash.toQueryString =3D Object.toQueryString;=0A=
=0A=
var Toggle =3D { display: Element.toggle };=0A=
=0A=
Element.Methods.childOf =3D Element.Methods.descendantOf;=0A=
=0A=
var Insertion =3D {=0A=
  Before: function(element, content) {=0A=
    return Element.insert(element, {before:content});=0A=
  },=0A=
=0A=
  Top: function(element, content) {=0A=
    return Element.insert(element, {top:content});=0A=
  },=0A=
=0A=
  Bottom: function(element, content) {=0A=
    return Element.insert(element, {bottom:content});=0A=
  },=0A=
=0A=
  After: function(element, content) {=0A=
    return Element.insert(element, {after:content});=0A=
  }=0A=
};=0A=
=0A=
var $continue =3D new Error('"throw $continue" is deprecated, use =
"return" instead');=0A=
=0A=
// This should be moved to script.aculo.us; notice the deprecated methods=0A=
// further below, that map to the newer Element methods.=0A=
var Position =3D {=0A=
  // set to true if needed, warning: firefox performance problems=0A=
  // NOT neeeded for page scrolling, only if draggable contained in=0A=
  // scrollable elements=0A=
  includeScrollOffsets: false,=0A=
=0A=
  // must be called before calling withinIncludingScrolloffset, every =
time the=0A=
  // page is scrolled=0A=
  prepare: function() {=0A=
    this.deltaX =3D  window.pageXOffset=0A=
                || document.documentElement.scrollLeft=0A=
                || document.body.scrollLeft=0A=
                || 0;=0A=
    this.deltaY =3D  window.pageYOffset=0A=
                || document.documentElement.scrollTop=0A=
                || document.body.scrollTop=0A=
                || 0;=0A=
  },=0A=
=0A=
  // caches x/y coordinate pair to use with overlap=0A=
  within: function(element, x, y) {=0A=
    if (this.includeScrollOffsets)=0A=
      return this.withinIncludingScrolloffsets(element, x, y);=0A=
    this.xcomp =3D x;=0A=
    this.ycomp =3D y;=0A=
    this.offset =3D Element.cumulativeOffset(element);=0A=
=0A=
    return (y >=3D this.offset[1] &&=0A=
            y <  this.offset[1] + element.offsetHeight &&=0A=
            x >=3D this.offset[0] &&=0A=
            x <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  withinIncludingScrolloffsets: function(element, x, y) {=0A=
    var offsetcache =3D Element.cumulativeScrollOffset(element);=0A=
=0A=
    this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A=
    this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A=
    this.offset =3D Element.cumulativeOffset(element);=0A=
=0A=
    return (this.ycomp >=3D this.offset[1] &&=0A=
            this.ycomp <  this.offset[1] + element.offsetHeight &&=0A=
            this.xcomp >=3D this.offset[0] &&=0A=
            this.xcomp <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  // within must be called directly before=0A=
  overlap: function(mode, element) {=0A=
    if (!mode) return 0;=0A=
    if (mode =3D=3D 'vertical')=0A=
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A=
        element.offsetHeight;=0A=
    if (mode =3D=3D 'horizontal')=0A=
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A=
        element.offsetWidth;=0A=
  },=0A=
=0A=
  // Deprecation layer -- use newer Element methods now (1.5.2).=0A=
=0A=
  cumulativeOffset: Element.Methods.cumulativeOffset,=0A=
=0A=
  positionedOffset: Element.Methods.positionedOffset,=0A=
=0A=
  absolutize: function(element) {=0A=
    Position.prepare();=0A=
    return Element.absolutize(element);=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    Position.prepare();=0A=
    return Element.relativize(element);=0A=
  },=0A=
=0A=
  realOffset: Element.Methods.cumulativeScrollOffset,=0A=
=0A=
  offsetParent: Element.Methods.getOffsetParent,=0A=
=0A=
  page: Element.Methods.viewportOffset,=0A=
=0A=
  clone: function(source, target, options) {=0A=
    options =3D options || { };=0A=
    return Element.clonePosition(target, source, options);=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!document.getElementsByClassName) document.getElementsByClassName =
=3D function(instanceMethods){=0A=
  function iter(name) {=0A=
    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' =
" + name + " ')]";=0A=
  }=0A=
=0A=
  instanceMethods.getElementsByClassName =3D =
Prototype.BrowserFeatures.XPath ?=0A=
  function(element, className) {=0A=
    className =3D className.toString().strip();=0A=
    var cond =3D /\s/.test(className) ? $w(className).map(iter).join('') =
: iter(className);=0A=
    return cond ? document._getElementsByXPath('.//*' + cond, element) : =
[];=0A=
  } : function(element, className) {=0A=
    className =3D className.toString().strip();=0A=
    var elements =3D [], classNames =3D (/\s/.test(className) ? =
$w(className) : null);=0A=
    if (!classNames && !className) return elements;=0A=
=0A=
    var nodes =3D $(element).getElementsByTagName('*');=0A=
    className =3D ' ' + className + ' ';=0A=
=0A=
    for (var i =3D 0, child, cn; child =3D nodes[i]; i++) {=0A=
      if (child.className && (cn =3D ' ' + child.className + ' ') && =
(cn.include(className) ||=0A=
          (classNames && classNames.all(function(name) {=0A=
            return !name.toString().blank() && cn.include(' ' + name + ' =
');=0A=
          }))))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  };=0A=
=0A=
  return function(className, parentElement) {=0A=
    return $(parentElement || =
document.body).getElementsByClassName(className);=0A=
  };=0A=
}(Element.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/vendor/parseuri.js

/*=0A=
	parseUri 1.2.1=0A=
	(c) 2007 Steven Levithan <stevenlevithan.com>=0A=
	MIT License=0A=
*/=0A=
=0A=
function parseUri (str) {=0A=
	var	o   =3D parseUri.options,=0A=
		m   =3D o.parser[o.strictMode ? "strict" : "loose"].exec(str),=0A=
		uri =3D {},=0A=
		i   =3D 14;=0A=
=0A=
	while (i--) uri[o.key[i]] =3D m[i] || "";=0A=
=0A=
	uri[o.q.name] =3D {};=0A=
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {=0A=
		if ($1) uri[o.q.name][$1] =3D $2;=0A=
	});=0A=
=0A=
	return uri;=0A=
};=0A=
=0A=
parseUri.options =3D {=0A=
	strictMode: false,=0A=
	key: =
["source","protocol","authority","userInfo","user","password","host","por=
t","relative","path","directory","file","query","anchor"],=0A=
	q:   {=0A=
		name:   "queryKey",=0A=
		parser: /(?:^|&)([^&=3D]*)=3D?([^&]*)/g=0A=
	},=0A=
	parser: {=0A=
		strict: =
/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*=
))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,=0A=
		loose:  =
/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))=
?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$))=
)*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/=0A=
	}=0A=
};=0A=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/generic.js

var =
Global=3Dthis;Date.DAYNAMES=3D["Sunday","Monday","Tuesday","Wednesday","T=
hursday","Friday","Saturday"];Date.prototype.DAYNAMES=3DDate.DAYNAMES;Dat=
e.MONTHNAMES=3D["January","February","March","April","May","June","July",=
"August","September","October","November","December"];Date.prototype.MONT=
HNAMES=3DDate.MONTHNAMES;Date.prototype.getFullDay=3Dfunction(){return =
this.DAYNAMES[this.getDay()]};Date.prototype.getFullMonth=3Dfunction(){re=
turn =
this.MONTHNAMES[this.getMonth()]};Date.prototype.getMonthAbbr=3Dfunction(=
){return =
this.getFullMonth().slice(0,3)};Date.prototype.defaultString=3Dfunction()=
{return this.getFullMonth()+" "+this.getDate()+", =
"+this.getFullYear()};function rewrite_link(F,D,A){var =
E=3DF.parentNode;if(!E){return }var =
C=3Ddocument.createElement("a");C.setAttribute("href",A);if(F.getAttribut=
e("class")){var =
B=3DF.getAttribute("class");C.setAttribute("class",B);C.setAttribute("cla=
ssName",B)}var =
D=3Ddocument.createTextNode(D);C.appendChild(D);E.replaceChild(C,F);retur=
n C}function addChildren(C,B){for(var =
A=3D0;A<B.length;A++){C.appendChild(B[A])}}function setZIndex(A,B){var =
C=3Ddocument.getElementById(A);C.style.zIndex=3DB}function =
changeBorderColor(A,B){var =
C=3Ddocument.getElementById(A);C.style.borderColor=3DB}function =
changeBackgroundColor(A,B){var =
C=3Ddocument.getElementById(A);C.style.backgroundColor=3DB}function =
changeBackgroundColorNoID(B,A){B.style.backgroundColor=3DA}function =
changeColor(A,B){var =
C=3Ddocument.getElementById(A);C.style.color=3DB}function =
setFloat(A,C){var =
B=3Ddocument.getElementById(A);B.style.cssFloat=3DC;B.style.styleFloat=3D=
C}function get_class_names_by_id(A){var =
B=3Ddocument.getElementById(A);if(B){return =
get_class_names_by_element(B)}else{return new Array()}}function =
get_class_names_by_element(A){if(A.className){var =
B=3DA.className;B=3Dstrip(B);return B.split(/\s+/)}else{return new =
Array()}}function showElement(A,C){if(!C&&C!=3D""){C=3D"block"}var =
B=3Ddocument.getElementById(A);if(B){B.style.display=3DC}}function =
showElementNoID(A,B){if(!B){B=3D""}A.style.display=3DB}function =
hideElement(A){var C=3D"none";var =
B=3Ddocument.getElementById(A);if(B){B.style.display=3DC}}function =
hideElementNoID(A){var B=3D"none";A.style.display=3DB}function =
changeElementClass(B,A){var =
C=3Ddocument.getElementById(B);C.className=3DA}function =
changeElementClassNoID(B,A){B.className=3DA}function =
appendElementClass(A,C){var =
B=3Ddocument.getElementById(A);B.className+=3DC}function =
makeParamString(F,E){if(!F){return""}return =
F;if(!E){E=3Dfalse}else{E=3Dtrue}var A=3Dnew Array();for(var B in =
F){value=3DF[B];if(E=3D=3Dtrue){B=3Descape(B);value=3Descape(value)}var =
D=3DB+"=3D"+value;A.push(D)}var C=3DA.join("&");return C}function =
swap_content(A,B){showElement(A);hideElement(B)}function =
strip(A){A=3DA.replace(/^\s+/,"");A=3DA.replace(/\s+$/,"");return =
A}function trim(A){return strip(A)}function =
redirect_to(A){document.location=3DA}function getCookieVal(A){return =
get_cookie_val(A)}function get_cookie_val(C){var E;var =
D=3Ddocument.cookie;if(!D){return E}C=3DC+"=3D";var B=3DC.length;var =
G=3DD.indexOf(C);if(G!=3D-1){var F=3DG+B;var =
A=3DD.indexOf(";",F);if(A=3D=3D-1){A=3DD.length}E=3DD.substring(F,A)}retu=
rn E}function =
textLimit(B,A,C){if(B.value.length>A){B.value=3DB.value.substring(0,A);if=
(C!=3Dnull){alert(C)}}}function =
checkEquality(A,C,B){if(A.value=3D=3DC.value){return =
true}else{if(B!=3Dnull){alert(B)}return false}}function =
show(A){if(document.getElementById&&document.getElementById(A)!=3Dnull){d=
ocument.getElementById(A).style.visibility=3D"visible"}else{if(document.l=
ayers&&document.layers[A]!=3Dnull){document.layers[A].visibility=3D"visib=
le"}else{if(document.all){document.all[A].style.visibility=3D"visible"}}}=
}function =
hide(A){if(document.getElementById&&document.getElementById(A)!=3Dnull){d=
ocument.getElementById(A).style.visibility=3D"hidden"}else{if(document.la=
yers&&document.layers[A]!=3Dnull){document.layers[A].visibility=3D"hidden=
"}else{if(document.all){document.all[A].style.visibility=3D"hidden"}}}}fu=
nction delete_cookie(C){var B=3DgetCookieVal(C);if(B){var D=3D"/";var =
A=3Dnew =
Date();A.setHours(A.getHours()-1);document.cookie=3DC+"=3D"+D+";path=3D/;=
expires=3D"+A.toGMTString()}}function =
deleteCookie(A){delete_cookie(A)}function in_array(B,C){var =
D=3Dfalse;for(var =
A=3D0;A<C.length;A++){if(C[A]=3D=3DB){D=3Dtrue;break}}return D}function =
remove_child_nodes(A){if(A&&A.childNodes){while(A.hasChildNodes()){A.remo=
veChild(A.firstChild)}}}function =
imgOn(imgName){if(document.images){onImage=3Deval(imgName+"on.src");docum=
ent[imgName].src=3DonImage}}function =
imgOff(imgName){if(document.images){offImage=3Deval(imgName+"off.src");do=
cument[imgName].src=3DoffImage}}function =
Utf8(){}Utf8.encode=3Dfunction(B){B=3DB.replace(/\r\n/g,"\n");var =
A=3D"";for(var D=3D0;D<B.length;D++){var =
C=3DB.charCodeAt(D);if(C<128){A+=3DString.fromCharCode(C)}else{if((C>127)=
&&(C<2048)){A+=3DString.fromCharCode((C>>6)|192);A+=3DString.fromCharCode=
((C&63)|128)}else{A+=3DString.fromCharCode((C>>12)|224);A+=3DString.fromC=
harCode(((C>>6)&63)|128);A+=3DString.fromCharCode((C&63)|128)}}}return =
A};Utf8.decode=3Dfunction(A){var C=3D"";var E=3D0;var G=3D0;var =
F=3D0;var =
D=3D0;while(E<A.length){G=3DA.charCodeAt(E);if(G<128){C+=3DString.fromCha=
rCode(G);E++}else{if((G>191)&&(G<224)){D=3DA.charCodeAt(E+1);C+=3DString.=
fromCharCode(((G&31)<<6)|(D&63));E+=3D2}else{D=3DA.charCodeAt(E+1);var =
B=3DA.charCodeAt(E+2);C+=3DString.fromCharCode(((G&15)<<12)|((D&63)<<6)|(=
B&63));E+=3D3}}}return C};function =
url_switch_hosts(B,C,A){B=3DB.replace(C,A);return B}function =
random_string(D){var =
C=3DArray("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p"=
,"q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H",=
"I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");=
var B=3D"";for(var =
A=3D0;A<=3DD;A++){B+=3DC[Math.floor(Math.random()*52)]}return B}function =
isPDF(A){if(A.indexOf(".pdf")!=3D-1||A.indexOf(".PDF")!=3D-1){return =
true}else{return false}}function =
isJavaWebStart(A){if(A.indexOf(".jnlp")!=3D-1||A.indexOf(".JNLP")!=3D-1){=
return true}else{return false}}function =
FormHelper(){}FormHelper.throw_errors=3Dfalse;FormHelper.trim_values=3Dtr=
ue;FormHelper.get_missing_fields=3Dfunction(B,C){var D=3D"Please fill in =
the following field(s): FIELD_NAMES and re-submit.";var =
A=3D{missing_field_ids:new =
Array(),has_missing_fields:false,message:D,missing_field_labels:new =
Array()};for(var F in B){var =
E=3DFormHelper.get_value(F);if(E&&C&&C[F]&&in_array(E,C[F])){E=3D""}if(!E=
){A.missing_field_ids.push(F);A.missing_field_labels.push(B[F])}}if(A.mis=
sing_field_ids.length>0){A.has_missing_fields=3Dtrue;A.message=3DA.messag=
e.replace("FIELD_NAMES",A.missing_field_labels.join(", "))}return =
A};FormHelper.fields_are_equal=3Dfunction(C){if(C.length<2){if(FormHelper=
.throw_errors){throw new Error("Not enough ids passed.")}else{return =
null}}var A=3Dnew Array();for(var B=3D0;B<C.length;B++){var =
D=3DFormHelper.get_value(C[B]);if(!in_array(D,A)){A.push(D)}}if(A.length=3D=
=3D1){return true}else{return =
false}};FormHelper.get_value=3Dfunction(C){var A=3D"";var =
B=3Ddocument.getElementById(C);if(!B&&FormHelper.throw_errors){throw new =
Error("No form field found with id of "+C)}else{if(!B){return =
A}else{if(typeof =
(B.value)=3D=3D"undefined"&&FormHelper.throw_errors){throw new =
Error("Element with id of "+C+" has no 'value' =
attribute!")}else{if(typeof (B.value)=3D=3D"undefined"){return =
A}}}}A=3DB.value;if(FormHelper.trim_values){return trim(A)}else{return =
A}};FormHelper.get_edited_value=3Dfunction(C,A){var =
B=3DFormHelper.get_value(C);if(B&&A&&in_array(B,A)){B=3D""}return =
B};FormHelper.get_selected_checkboxes=3Dfunction(A,H){var =
G=3Ddocument.getElementById(A);var C=3Dnew Array();for(var =
D=3D0;D<G.elements.length;D++){var =
F=3DG.elements[D];if(F.name&&F.name=3D=3DH){C.push(F)}}var B=3Dnew =
Array();for(var D=3D0;D<C.length;D++){var =
E=3DC[D];if(E.checked=3D=3Dtrue){B.push(E.value)}}return =
B.join(",")};FormHelper.get_selected_radiobutton=3Dfunction(A,H){var =
G=3Ddocument.getElementById(A);var B=3Dnew Array();for(var =
D=3D0;D<G.elements.length;D++){var =
F=3DG.elements[D];if(F.name&&F.name=3D=3DH){B.push(F)}}var =
E=3D"";for(var D=3D0;D<B.length;D++){var =
C=3DB[D];if(C.checked=3D=3Dtrue){E=3DC.value;break}}return =
E};FormHelper.disable=3Dfunction(B){var =
A=3Ddocument.getElementById(B);A.disabled=3Dtrue};FormHelper.enable=3Dfun=
ction(B){var A=3Ddocument.getElementById(B);A.disabled=3Dfalse};function =
Logger(){}Logger.log=3Dfunction(A){if(Global.console){Global.console.log(=
A)}else{if(window.console){window.console.log(A)}}};
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/common.js

var =
Global=3Dthis;Global.GLOSSARY_POPUP_MAX_HEIGHT=3D550;Global.GLOSSARY_POPU=
P_WIDTH=3D510;var IS_IE6=3Dfalse;var =
IS_IE7=3Dfalse;if(Element&&Element.addMethods){Element.addMethods({redraw=
:function(A){A=3D$(A);var B=3Ddocument.createTextNode(" =
");A.appendChild(B);(function(){B.parentNode.removeChild(B)}).defer();ret=
urn A}})}function niy(A){if(!A){A=3D"Feature not implemented =
yet."}alert(A)}function prev(A){if(!A){A=3D"Not available in preview =
mode."}alert(A)}function tabToggle(A,B){swap_content(A,B)}function =
TDToggle(){}var toggledContentState=3Dnew =
Array();TDToggle.toggle=3Dfunction(B,E,D){var =
A=3DE.id;if(!D){D=3D"block"}var =
C=3DtoggledContentState[B];if(!C){C=3D"hidden"}if(C=3D=3D"hidden"){showEl=
ement(B,D);toggledContentState[B]=3D"shown";if(A){changeElementClass(A,"t=
widdle_open")}}else{if(C=3D=3D"shown"){hideElement(B);toggledContentState=
[B]=3D"hidden";if(A){changeElementClass(A,"twiddle_closed")}}}};function =
TDListToggle(){}TDListToggle.handleChange=3Dfunction(F,A){var =
D=3D$(F).childElements();for(var =
C=3D0;C<D.length;C++){if(D[C].id!=3Dnull){D[C].removeClassName("current")=
;$(D[C].id+"_link").show();$(D[C].id+"_content").hide()}}var =
E=3D$(A).ancestors()[0];E.hide();var =
B=3DE.nextSiblings()[0];B.show();$(A).ancestors()[1].addClassName("curren=
t")};function TDAccordion(){}TDAccordion.init=3Dfunction(D,C){var =
B=3D$(D).childElements();for(var =
A=3D0;A<B.length;A++){if(B[A].id!=3Dnull){div_list=3DB[A].childElements()=
;if(C.indexOf(A)=3D=3D-1){if(div_list.length>1){div_list[1].hide()}}else{=
div_list[0].addClassName("expanded")}}}};TDAccordion.handleChange=3Dfunct=
ion(B,A){if($(A).hasClassName("expanded")){Effect.SlideUp($(A).nextSiblin=
gs()[0],{duration:0.3,queue:"end"});$(A).removeClassName("expanded")}else=
{Effect.SlideDown($(A).nextSiblings()[0],{duration:0.3,queue:"end"});$(A)=
.addClassName("expanded")}};TDAccordion.handleChange_old=3Dfunction(E,A){=
var D=3D$(E).childElements();for(var =
B=3D0;B<D.length;B++){current_item=3DD[B];if(!current_item.hasClassName("=
current")){continue}if(($(current_item).ancestors()[0].id=3D=3D$(A).ances=
tors()[1].id)&&(current_item.id=3D=3D$(A).ancestors()[0].id)){return =
}var =
C=3Dcurrent_item.getElementsByClassName("accordion_item_content");Effect.=
SlideUp(C[0],{duration:0.5});Element.removeClassName(current_item,"curren=
t")}Effect.SlideDown($(A).nextSiblings()[0],{duration:0.5});$(A).ancestor=
s()[0].addClassName("current")};function save_lp(A){niy()}function =
tdPop(C,D,A,B){td_pop(C,D,A,B)}function td_pop(J,G,L,E){var =
B=3DJ+random_string(4);if(isJavaWebStart(G)){document.location=3DG;return=
 }var C=3Dfeature_settings.get(J,"stat");var =
H=3Dfeature_settings.get(J,"re_size");var =
K=3Dfeature_settings.get(J,"scroll");var =
F=3Dfeature_settings.get(J,"tools");var =
I=3Dfeature_settings.get(J,"locvar");var =
A=3Dpop_dimensions.get(J,L,E);var =
D=3Dwindow.open(G,B,"width=3D"+A[0]+",height=3D"+A[1]+",toolbar=3D"+F+",s=
tatus=3D"+C+",scrollbars=3D"+K+",resizable=3D"+H+",location=3D"+I);D.focu=
s()}feature_settings=3D{};feature_settings.DEFAULT=3D{stat:"no",re_size:"=
yes",scroll:"yes",tools:"no",locvar:"no"};feature_settings.get=3Dfunction=
(B,A){if(this[B]&&this[B][A]){return =
this[B][A]}else{if(this.DEFAULT[A]){return(this.DEFAULT[A])}else{throw =
new Error("Unsupported feature: =
"+A)}}};feature_settings.user_url=3D{tools:"yes",locvar:"yes",stat:"yes"}=
;feature_settings.interactive=3D{stat:"yes",tools:"yes"};feature_settings=
.document=3D{stat:"yes",tools:"yes"};feature_settings.help=3D{stat:"yes"}=
;feature_settings.contact=3D{stat:"yes"};feature_settings.video=3D{scroll=
:"no"};var =
pop_dimensions=3D{};pop_dimensions.get=3Dfunction(F,C,E){if((C&&C=3D=3D"N=
one")||C=3D=3D0){C=3D""}if((E&&E=3D=3D"None")||E=3D=3D0){E=3D""}var =
B=3Dthis.DEFAULT;for(var G in this){if(G=3D=3DF){B=3Dthis[F];break}}var =
D=3DB[0];var =
A=3DB[1];if(C){D=3DC}if(E){A=3DE}return[D,A]};pop_dimensions.DEFAULT=3D[6=
60,456];pop_dimensions.audio=3D[425,296];pop_dimensions.document=3D[660,4=
50];pop_dimensions.image=3D[660,456];pop_dimensions.interactive=3D[700,51=
0];pop_dimensions.video=3D[425,484];pop_dimensions.help=3D[750,450];pop_d=
imensions.contact=3D[720,450];pop_dimensions.confirmation=3D[250,100];pop=
_dimensions.compare=3D[550,350];pop_dimensions.essay=3Dpop_dimensions.com=
pare;var grade_widget_obj;var full_grade_set_index=3D"";function =
update_grade_widget(){widget_exists=3D!($("grade_range_widget")=3D=3Dnull=
);if(widget_exists){grade_widget_obj=3Dnew grade_widget}}function =
grade_widget(){this.lower_grade_default_value=3D"K";this.upper_grade_defa=
ult_value=3D"12";this.grade_range_label=3D$("grade_range_label");this.gra=
de_range_selects=3D$("grade_range_selects");this.grade_widget_form=3D$("g=
rade_widget_form");this.select_gw_lower=3Dthis.grade_widget_form.gw_lower=
;this.select_gw_upper=3Dthis.grade_widget_form.gw_upper;this.lower_grade_=
value=3Dthis.select_gw_lower.value;this.upper_grade_value=3Dthis.select_g=
w_upper.value;this.grade_range_display_str=3D"foo";this.set_grade_value=3D=
function(u_or_l,val){if(u_or_l=3D=3D"upper"){this.upper_grade_value=3Dval=
}else{this.lower_grade_value=3Dval}};this.toggle_grade_widget=3Dfunction(=
whichelement){grade_widget_obj.grade_range_label.toggle();grade_widget_ob=
j.grade_range_selects.toggle()};this.change_grade_range=3Dfunction(post_c=
hange_action,lexicon_terms,target_html_element){this.lower_grade_value=3D=
this.get_grade_select_value("lower");this.upper_grade_value=3Dthis.get_gr=
ade_select_value("upper");if(get_grade_index(this.lower_grade_value)>get_=
grade_index(this.upper_grade_value)){new_l=3Dthis.upper_grade_value;this.=
upper_grade_value=3Dthis.lower_grade_value;this.lower_grade_value=3Dnew_l=
}this.set_browsing_cookie(this.lower_grade_value,this.upper_grade_value);=
cookie_vals=3Dthis.get_browsing_grades();this.set_grade_value("upper",coo=
kie_vals.upper_grade);this.set_grade_value("lower",cookie_vals.lower_grad=
e);this.update_grade_range_display_str();this.update_browser_items();this=
.toggle_grade_widget();if(post_change_action=3D=3D"getStandards"){getStan=
dards(lexicon_terms,target_html_element)}else{if(post_change_action=3D=3D=
"refresh_listing"){filter_list_on_gradeband(this.lower_grade_value,this.u=
pper_grade_value)}}};this.update_browser_items=3Dfunction(){this.update_g=
rade_range_display();this.update_form_select_elems()};this.update_form_se=
lect_elems=3Dfunction(){for(i=3D0;i<$("gw_lower").options.length;i++){if(=
$("gw_lower").options[i].text=3D=3Dthis.lower_grade_value){$("gw_lower").=
options.selectedIndex=3Di}}for(i=3D0;i<this.select_gw_upper.options.lengt=
h;i++){if($("gw_upper").options[i].text=3D=3Dthis.upper_grade_value){$("g=
w_upper").options.selectedIndex=3Di}}};this.update_grade_range_display=3D=
function(){grade_display_elem=3D$("grade_range_value_1");grade_display_el=
em.innerHTML=3Dthis.get_grade_range_display_str()};this.update_grade_rang=
e_display_str=3Dfunction(){this.grade_range_display_str=3Dthis.create_gra=
de_range_display_str(this.lower_grade_value,this.upper_grade_value)};this=
.get_grade_range_display_str=3Dfunction(){return =
this.grade_range_display_str};this.create_grade_range_display_str=3Dfunct=
ion(l,u){g_string=3Dl+"-"+u;return =
g_string};this.get_grade_select_value=3Dfunction(upper_or_lower){if(upper=
_or_lower=3D=3D"upper"){return $F("gw_upper")}else{return =
$F("gw_lower")}};this.get_browsing_grades=3Dfunction(){var =
bgr_c=3DgetCookieVal(bgr);var bgrade=3Dnull;if(bgr_c){var =
c_vals=3Dbgr_c.split(cookiesep);if(c_vals.length=3D=3D2){lower_grade=3Dc_=
vals[0];upper_grade=3Dc_vals[1];if(lower_grade=3D=3D""||upper_grade=3D=3D=
""){lower_grade=3Dthis.lower_grade_default_value;upper_grade=3Dthis.upper=
_grade_default_value}var =
bgrade=3D{lower_grade:lower_grade,upper_grade:upper_grade}}}return =
bgrade};this.reset_cookie_values=3Dfunction(){this.set_browsing_cookie(th=
is.lower_grade_default_value,this.upper_grade_default_value)};this.set_br=
owsing_cookie=3Dfunction(lower_grade,upper_grade){var =
cookie_val=3Dlower_grade+cookiesep+upper_grade;var expire=3Dnew =
Date();expire.setFullYear(expire.getFullYear()+10);document.cookie=3Dbgr+=
"=3D"+cookie_val+";path=3D/;expires=3D"+expire.toGMTString()};this.__init=
__=3Dfunction(){this.grade_range_display_str=3Dthis.update_grade_range_di=
splay_str();var =
grade_in_cookie=3Dthis.get_browsing_grades();if(grade_in_cookie=3D=3Dnull=
){this.reset_cookie_values();grade_in_cookie=3Dthis.get_browsing_grades()=
}this.lower_grade_value=3Dgrade_in_cookie.lower_grade;this.upper_grade_va=
lue=3Dgrade_in_cookie.upper_grade;this.update_grade_range_display_str();t=
his.update_browser_items();if(page_type=3D=3D"hierarchy"){filter_list_on_=
gradeband(this.lower_grade_value,this.upper_grade_value)}full_grade_set_i=
ndex=3Deval(FULL_GRADE_SET_INDEX)};this.__init__()}function =
filter_list_on_gradeband(G,H){var =
D=3Ddocument.getElementById("listing").getElementsByTagName("tbody")[0];v=
ar F=3DD.getElementsByTagName("tr");var A=3D0;for(var =
C=3D0;C<F.length;C++){var =
B=3DF[C].getElementsByTagName("td")[1].innerHTML;if(gb_filter(B,G,H)){if(=
A%2=3D=3D1){changeElementClassNoID(F[C],"odd")}else{changeElementClassNoI=
D(F[C],"even")}showElementNoID(F[C]);A++}else{hideElementNoID(F[C])}}var =
E=3DA+" out of "+F.length+" resources are within grades =
";document.getElementById("row_count_legend").innerHTML=3DE;document.getE=
lementById("row_count_legend2").innerHTML=3DE}function =
gb_filter(C,B,A){is_within_range=3Dfalse;C=3DC.split("-");r_l=3Dget_grade=
_index(C[0].strip(),full_grade_set_index);r_u=3Dget_grade_index(C[1].stri=
p(),full_grade_set_index);B=3Dget_grade_index(B.strip(),full_grade_set_in=
dex);A=3Dget_grade_index(A.strip(),full_grade_set_index);if(r_l<=3DA&&r_u=
>=3DB){is_within_range=3Dtrue}return is_within_range}function =
get_grade_index(B){index_value=3D"";for(var =
A=3D0;A<full_grade_set_index.length;A++){if(full_grade_set_index[A]=3D=3D=
B){index_value=3DA}}return index_value}function =
init_banner(){if(Global.is_preview){set_banner_user_name("Preview");retur=
n =
}else{set_banner_user_name()}if(AuthManager.status=3D=3DAuthManager.AUTH_=
USER){build_top_folder_menu()}var =
A=3Ddocument.getElementById("recommend_to_action");if(A&&AuthManager.stat=
us=3D=3DAuthManager.AUTH_USER){showElement("recommend_to_action")}handle_=
affiliate()}function set_crumb(){return }function =
init_tdhome(){if(Global.is_preview&&Global.is_preview=3D=3Dtrue){return =
}insert_dname(" =
","");if($("accordion_list_k12")!=3Dnull){TDAccordion.init("accordion_lis=
t_k12",$A([]))}if($("accordion_list_vitalny")!=3Dnull){TDAccordion.init("=
accordion_list_vitalny",$A([0,1]))}if($("accordion_list_k12ma")!=3Dnull){=
TDAccordion.init("accordion_list_k12ma",$A([]))}if($("accordion_list_tdce=
")!=3Dnull){TDAccordion.init("accordion_list_tdce",$A([]))}if($("accordio=
n_list_pd")!=3Dnull){TDAccordion.init("accordion_list_pd",$A([]))}if($("a=
ccordion_list_special")!=3Dnull){TDAccordion.init("accordion_list_special=
",$A([]))}}function insert_dname(C,D){if(!C){C=3D""}if(!D){D=3D""}var =
A=3Ddocument.getElementById("user_name");if(A){var =
B=3Dget_display_name();if(B){A.innerHTML=3DC+B+D}}}function =
set_banner_user_name(C){var =
A;if(C){A=3DC}else{A=3Dget_display_string()}var =
B=3Ddocument.getElementById("user_string");if(B&&A){B.innerHTML=3DA}if(Gl=
obal.TestDriveManager&&A=3D=3DTestDriveManager.tdrive_display_name){chang=
eColor("user_string_container","#cc0000")}}function =
get_display_string(C){var B=3Dget_display_name();var =
A=3Dget_org_name();var D=3D" ";if(C=3D=3Dtrue){D=3D"<br =
/>"}if(B&&A){return B+D+"of "+A}else{if(B&&!A){return =
B}else{return"Please sign in."}}}function get_display_name(){var =
A=3Dget_cookie_val(lgn);if(A){var B=3DA.split(cookiesep);var =
C=3DUtf8.decode(unescape(B[2]));return C}else{return""}}function =
get_jursidiction_state(){var A;var B=3Dget_cookie_val(org);if(!B){return =
A}var C=3Dnew =
Array();C=3DB.split(cookiesep);if(C[1]){A=3Dunescape(C[2]);state=3DA.spli=
t("-")[1]}return Utf8.decode(state)}function get_org_name(){var A;var =
B=3Dget_cookie_val(org);if(!B){return A}var C=3Dnew =
Array();C=3DB.split(cookiesep);if(C[1]){A=3Dunescape(C[1])}return =
Utf8.decode(A)}function get_org_id(){var B;var =
A=3Dget_cookie_val(org);if(!A){return B}var C=3Dnew =
Array();C=3DA.split(cookiesep);if(C[0]){B=3DC[0]}return B}function =
handle_affiliate(){var B=3Dget_cookie_val(afy);var =
C=3D"";if(Global.asset_link_base){C=3Dasset_link_base}if(B){var =
A=3DB.split(cookiesep);var =
D=3Ddocument.createElement("img");if(page_type=3D=3D"tdhome"){var =
E=3DC+"/assets/image_support/aff_support/AFFILX_home.gif"}else{if(page_ty=
pe=3D=3D"media_enclosure"){var =
E=3DC+"/assets/image_support/aff_support/AFFILX_pop.gif"}else{var =
E=3DC+"/assets/image_support/aff_support/AFFILX_stnd.gif"}}E=3DE.replace(=
/AFFILX/g,A[0]);D.setAttribute("src",E.replace(/"/g,""));D.setAttribute("=
alt",A[0].replace(/"/g,""));var =
F=3Ddocument.getElementById("aff_brand");if(F){F.appendChild(D)}}}functio=
n setTrapCookie(){var B=3Dwindow.location.href;var A=3Dnew =
Date();A.setHours(A.getHours()+1);document.cookie=3Dtrap+"=3D"+B+";path=3D=
/;expires=3D"+A.toGMTString()}function removeTrapCookie(){var =
A=3DgetCookieVal(trap);if(A){var C=3D"/";var B=3Dnew =
Date();B.setHours(B.getHours()-1);document.cookie=3Dtrap+"=3D"+C+";path=3D=
/;expires=3D"+B.toGMTString()}}function get_folders(F){var E=3Dnew =
Array();var =
B;if(F=3D=3D"user"){B=3Dfld}else{if(F=3D=3D"group"){B=3Dgfld}}var =
A=3Dget_cookie_val(B);if(A){var H=3DA.split(cookiesep);for(var =
D=3D0;D<H.length;D++){var =
C=3DH[D].split(foldersep);if(C.length=3D=3D2){var =
G=3D{folder_name:unescape(C[1]),folder_id:C[0]};E.push(G)}else{if(C.lengt=
h=3D=3D3){var =
G=3D{folder_name:unescape(C[2]),folder_id:C[0],in_dropdown:C[1]};E.push(G=
)}}}}return E}var folder_menu_visible=3Dfalse;function =
hideFolders(A){folder_menu_visible=3Dfalse;setZIndex("main_content",100);=
var =
B=3Ddocument.getElementById(A);B.style.left=3D"-10000px";changeBorderColo=
r("pulldown_link","#999966");changeBackgroundColor("pulldown_link","#f6f6=
dd")}function =
showFolders(A,C){if(folder_menu_visible=3D=3Dtrue&&C!=3Dnull&&C=3D=3D"cli=
ck"){hideFolders(A)}else{setZIndex("main_content",-100);var =
B=3Ddocument.getElementById(A);B.style.left=3D"auto";folder_menu_visible=3D=
true;changeBorderColor("pulldown_link","#006666");changeBackgroundColor("=
pulldown_link","#fff")}}function get_user_type_code(){var =
A=3Dget_cookie_val(lgn);if(A){var B=3DA.split(cookiesep);var =
C=3DUtf8.decode(unescape(B[1]));return C}else{return""}}function =
build_top_folder_menu(){var H=3Dget_user_type_code();if(!H){return }var =
G=3Dtrue;if(H!=3D"student"){G=3Dfalse}var E=3Dget_folders("user");var =
B=3Dget_folders("group");var =
D=3Ddocument.getElementById("top_folders");if(D){var C=3D"";C=3D'<li><a =
href=3D"'+manage_folders+'"><strong>Manage My Folders =
&gt;</strong></a></li>';if(!G){C+=3D'<li><a =
href=3D"'+upload_media+'"><strong>Upload Media =
&gt;</strong></a></li>'}if(E.length>0){C+=3D'<li><a name=3D"pf_dummy" =
class=3D"fmenu_divider"><strong>Personal Folders:</strong></a></li>';var =
A=3DE[0];C+=3D'<li><a =
href=3D"'+vf_serv+A.folder_id+'">'+Utf8.decode(A.folder_name)+"</a></li>"=
;if(!G){C+=3D'<li><a href=3D"'+my_uploads+'">My =
Uploads</a></li>'}for(var =
F=3D1;F<E.length;F++){if(E[F].in_dropdown=3D=3D1){C+=3D'<li><a =
href=3D"'+vf_serv+E[F].folder_id+'">'+Utf8.decode(E[F].folder_name)+"</a>=
</li>"}}}if(B.length>0){C+=3D'<li><a name=3D"gf_dummy" =
class=3D"fmenu_divider"><strong>Group =
Folders:</strong></a></li>';for(var F=3D0;F<B.length;F++){C+=3D'<li><a =
href=3D"'+vf_serv+B[F].folder_id+'">'+Utf8.decode(B[F].folder_name)+"</a>=
</li>"}}D.innerHTML=3DC}}function init_pop(){handle_affiliate()}function =
init_login(){var =
A=3Ddocument.getElementById("signin_org_name");if(!A){return }var =
B=3Dget_org_name();if(B!=3D0&&B!=3Dundefined){A.innerHTML=3DB;showElement=
("org_data")}}function =
check_user_type(A){if(A=3D=3D1){showElement("subject")}else{hideElement("=
subject")}}function trap_enter_press(C,E){var A=3D13;var =
D=3DC||window.event;var B=3DD.charCode||D.keyCode;if(B!=3DA){return =
true}else{if(E){E()}return false}}function stat(C,B){if(!C){return =
}if(!B){B=3D""}if(Global.is_preview&&Global.is_preview=3D=3Dtrue){return =
}var E=3DmakeParamString({asset_id:C,resource_id:B});var =
A=3Dlog_asset_view;var D=3Dnew =
Ajax.Request(A,{method:"post",parameters:E,onSuccess:function(){return =
},onFailure:function(){return }})}function =
SurveyHandler(){}SurveyHandler.init=3Dfunction(){hideElement("survey_resp=
onse");hideElement("survey");if(!Global.page_identifier||!Global.question=
_list){return }var E=3Dget_cookie_val(lgn);if(E){var =
J=3DE.split(cookiesep);var K=3DJ[0];var C=3DJ[1]}else{var K=3D"";var =
C=3D"";return }var F=3Dget_cookie_val(surva);var D=3D"";var I=3Dnew =
Array();var G=3D"";if(F){var =
J=3DF.split(cookiesep);for(i=3D0;i<J.length;i++){var =
A=3DJ[i].split("+");var =
B=3DA[0];B=3DB.replace(/\_/g,"/");A.shift();if(B=3D=3Dpage_identifier){D=3D=
"+"+A.join("+")+"+"}for(j=3D0;j<A.length;j++){I.push(A[j])}}G=3D"+"+I.joi=
n("+")+"+"}while(question_list.length>0){var =
H=3DSurveyHandler.get_question(question_list);var =
L=3DSurveyHandler.test_question(H,K,C,D,G);if(L=3D=3D1){SurveyHandler.pro=
duce_question(H,K,page_identifier);return =
}else{if(L=3D=3D-1){hideElement("survey");return }}}return =
};SurveyHandler.log_ask=3Dfunction(C,B,A){if(!C||!B||!A){return }var =
F=3DmakeParamString({user_id:C,question_id:A,page_identifier:B});var =
D=3Dlog_survey_ask;var E=3Dnew =
Ajax.Request(D,{method:"post",parameters:F,onSuccess:function(){return =
},onFailure:function(){return =
}})};SurveyHandler.produce_question=3Dfunction(I,B,H){var =
F=3Ddocument.getElementById("survey_question_text");F.innerHTML=3DI.quest=
ion_text;var =
L=3Ddocument.getElementById("survey_question_id");L.value=3DI.question_id=
;var =
P=3Ddocument.getElementById("survey_answer_type");P.value=3DI.answer_type=
;var E=3Dnew Array();var A=3Dnew Array();var =
N=3Ddocument.getElementById("survey_answers");var =
C=3Ddocument.createElement("div");C.id=3D"survey_answer_list";var =
K=3D"survey_answer";for(var O=3D0;O<I.answers.length;O++){var =
J=3D"ffa_id_"+O;var =
M=3DI.answers[O].answer_id;if(I.answer_type=3D=3D"radio"){try{var =
R=3Ddocument.createElement("<input type=3D'radio' name=3D'"+K+"' =
id=3D'"+J+"' value=3D'"+M+"' />")}catch(G){var =
R=3Ddocument.createElement("input");R.type=3DI.answer_type;R.name=3DK;R.i=
d=3DJ;R.value=3DM}}else{var =
R=3Ddocument.createElement("input");R.type=3DI.answer_type;R.name=3DK;R.i=
d=3DJ;R.value=3DM}var Q=3Ddocument.createElement("label");var =
D=3Ddocument.createTextNode(I.answers[O].answer_text);Q.setAttribute("for=
",J);Q.appendChild(D);C.appendChild(R);C.appendChild(Q);if(I.answers[O].i=
s_other=3D=3D1){other_box=3Ddocument.createElement("textarea");other_box.=
name=3D"other_text";other_box.id=3D"survey_textbox";C.appendChild(documen=
t.createElement("br"));C.appendChild(other_box)}C.appendChild(document.cr=
eateElement("br"))}N.appendChild(C);SurveyHandler.log_ask(B,H,I.question_=
id);showElement("survey")};SurveyHandler.get_question=3Dfunction(B){if(B.=
length=3D=3D0){return }else{var =
A=3DMath.floor(Math.random()*B.length);var =
C=3Dquestion_list[A];question_list[A]=3Dquestion_list[0];question_list[0]=
=3DC;question_list.shift();return =
C}};SurveyHandler.test_question=3Dfunction(E,C,H,G,D){if(!E){return =
-1}if(E.filter_user_type!=3D""){if(E.filter_user_type!=3DH){return =
0}}var B=3DE.question_id;var F=3D"+"+B+"+";var =
A=3DG.indexOf(F);if(A>=3D0){return =
0}if(!E.ask_different_locations){if(D.indexOf(F)>=3D0){return 0}}return =
1};function answer_survey_question(){var J=3D"";var =
H=3Ddocument.getElementById("page_identifier");if(H){J=3DH.value}var =
C=3D0;H=3Ddocument.getElementById("survey_question_id");if(H){C=3DH.value=
}var =
E=3D"";H=3Ddocument.getElementById("survey_answer_type");if(H){E=3DH.valu=
e}var =
B=3D"";if(E=3D=3D"checkbox"){B=3DFormHelper.get_selected_checkboxes("surv=
ey_asked_question","survey_answer")}else{if(E=3D"radio"){B=3DFormHelper.g=
et_selected_radiobutton("survey_asked_question","survey_answer")}}var =
G=3D"";H=3Ddocument.getElementById("survey_textbox");if(H){G=3DH.value}va=
r L=3D0;var F=3Dget_cookie_val(lgn);if(F){var =
K=3DF.split(cookiesep);L=3DK[0]}var =
I=3DmakeParamString({user_id:L,question_id:C,page_identifier:J,answer_id:=
B,other_text:G});var A=3Dlog_survey_answer;var D=3Dnew =
Ajax.Request(A,{method:"post",parameters:I,onSuccess:function(){return =
},onFailure:function(){return =
}});update_survey_cookie(J,C);hideElement("survey");showElement("survey_r=
esponse");return }function update_survey_cookie(H,C){var =
F=3Dget_cookie_val(surva);var G=3DF;if(F){var I=3DF.split(cookiesep);var =
J=3D0;for(i=3D0;i<I.length;i++){var A=3DI[i].split("+");var =
B=3DA[0];B=3DB.replace(/\_/g,"/");A.shift();if(B=3D=3DH){var =
E=3D"+"+A.join("+")+"+"+C;I[i]=3DB.replace(/\//g,"_")+E;G=3DI.join(cookie=
sep);J=3D1;break}}if(!J){var =
D=3D"|"+H+"+"+C;G=3DF+D}}else{G=3DH+"+"+C}document.cookie=3Dsurva+"=3D"+G=
+";path=3D/"}function =
selectTab(B,A){A.up().up().childElements().each(function(C){C.removeClass=
Name("current")});A.up().addClassName("current");$(B).up().childElements(=
).each(function(C){C.removeClassName("current")});$(B).addClassName("curr=
ent");return false}function =
unescape_html(A){if(!A){return""}A=3DA.replace("&lt;","<");A=3DA.replace(=
"&gt;",">");A=3DA.replace("&quot;",'"');A=3DA.replace("&#039;","'");A=3DA=
.replace("&amp;","&");return A}function =
show_breadcrumb(){if(!$("crumb_default")){return =
}uri=3DparseUri(document.referrer);var =
B=3D"";if(TD_LOCAL_DEV||site_uri.match(uri.host)){B=3D"crumb_"+uri.path.r=
eplace(/\//g,"_")}var =
A=3D$(B);if(!A){A=3D$("crumb_default")}if(A){A.setStyle("display:block;")=
}}function =
init_glossary_popup(){if($("pop_content")){if($("pop_content").offsetHeig=
ht<GLOSSARY_POPUP_MAX_HEIGHT){window.resizeTo(Global.GLOSSARY_POPUP_WIDTH=
,$("pop_content").offsetHeight+115)}else{window.resizeTo(Global.GLOSSARY_=
POPUP_WIDTH,Global.GLOSSARY_POPUP_MAX_HEIGHT)}}}function =
value_or_default(A){if(A){return escape(A)}else{return"NULL"}}function =
hide_all_resource_highlight_details(){$$("div.resource_highlight_detail")=
.each(function(A){A.hide()})}function =
show_all_resource_highlight_thumbnails(){$$("div.resource_highlight_thumb=
").each(function(A){A.show()});$$("div.resource_highlight_thumb_selected"=
).each(function(A){A.hide()})}function =
show_resource_highlight_details(A){show_all_resource_highlight_thumbnails=
();$("resource_highlight_thumb_"+A).hide();$("resource_highlight_thumb_se=
lected_"+A).show();hide_all_resource_highlight_details();$("resource_high=
light_detail_"+A).show()}function =
init_printer_friendly_popup(){Event.observe(window,"load",function(){prin=
t();return false})}var active_flag_mu_id=3Dnull;function =
change_flag_text(B,D){var A=3Dflag_type_text_map[B];if(!A){A=3D"Please =
provide more details"}var =
C=3Ddocument.getElementById("flag_details_label_"+D);C.innerHTML=3DA+":"}=
function post_flag_handler_media_upload(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.target_id){hid=
eElement("flag_content_"+resp_obj.target_id);hideElement("media_upload_fl=
ag_loader_"+resp_obj.target_id,"inline")}showElement("post_flag_msg_"+res=
p_obj.target_id);hideElement("media_upload_flag_loader_"+resp_obj.target_=
id)}function =
FlagManager(){}FlagManager.do_flag=3Dfunction(B,E,D,A){showElement("flag_=
loader_"+E+"_"+D,"inline");var C=3DB.action;var =
G=3D{};G.target_type=3DE;G.target_id=3DD;G.flag_reason=3DFormHelper.get_v=
alue("flag_reasons_pulldown_"+E+"_"+D);G.flag_details=3DFormHelper.get_va=
lue("flag_details_"+D);var F=3Dnew =
Ajax.Request(C,{method:"post",parameters:G,onComplete:A,onFailure:A})};Fl=
agManager.toggle_flag_details=3Dfunction(B,C,A){details_id=3D"flag_detail=
s_"+C+"_"+A;link_id=3D"flag_link_"+C+"_"+A;if(B.id.startsWith("flag_cance=
l_button_"+C)){$(details_id).hide();$(link_id).show()}else{$(details_id).=
show();$(link_id).hide()}};function =
reset_recommend_to_state(){$("email_fields").update('<input =
type=3D"text"  size=3D"40" class=3D"email_field" id=3D"id_email_address" =
/>');$("id_email_address").value=3D"";hideElement("valid_email_message");=
hideElement("recommend_to_loading");swap_content("recommend_to_action","r=
ecommend_to_content")}function =
remove_email_field(A){Element.remove($(A))}function =
submit_email_addresses(){var =
A=3D$("email_fields").select("input");num=3DA.length;the_id=3D"email_fiel=
d_row_"+num;$("email_fields").insert({bottom:'<div =
class=3D"email_input_row" id=3D"'+the_id+'" ><input type=3D"text"  =
size=3D"40" class=3D"email_field" /><a =
href=3D"javascript:remove_email_field(\''+the_id+'\');" ><img =
src=3D"/images/minus.gif" =
style=3D"width:11px;float:left;margin-top:4px;margin-left:5px;"/></div></=
a>'})}function verify_and_submit_recommendation(D){url=3DD.action;var =
F=3D$("email_fields").select("input");var A=3Dnew Array();var =
B=3Dtrue;var C=3Dnew =
RegExp("^[\\w-_.+]*[\\w-_.]@([\\w]+\\.)+[\\w]+[\\w]$");for(i=3D0;i<=3DF.l=
ength-1;i++){if(!C.test(F[i].value)){showElement("valid_email_message");F=
[i].setStyle({backgroundImage:"url(/images/aster2.jpg)",backgroundPositio=
n:"right =
center",backgroundRepeat:"no-repeat"});B=3Dfalse}else{if(!(A.join(",").in=
dexOf(F[i].value)>=3D0)){A.push(F[i].value)}}}if(!B){showElement("valid_e=
mail_message");return =
}else{resource_code=3DFormHelper.get_value("id_resource_code");params=3D{=
resource_code:resource_code,email_addresses:A.join(",")};showElement("rec=
ommend_to_loading");var E=3Dnew =
Ajax.Request(url,{method:"post",parameters:params,onComplete:function(G){=
reset_recommend_to_state()},onFailure:function(G){reset_recommend_to_stat=
e()}})}}function =
SGUID(){}SGUID.S4=3Dfunction(){return(((1+Math.random())*65536)|0).toStri=
ng(16).substring(1)};SGUID.generate=3Dfunction(){return(SGUID.S4()+SGUID.=
S4()+"-"+SGUID.S4()+"-"+SGUID.S4()+"-"+SGUID.S4()+"-"+SGUID.S4()+SGUID.S4=
()+SGUID.S4())};function =
TruncateText(){}TruncateText.is_in_tag=3Dfunction(D,C){if(C.charAt(D)=3D=3D=
"<"||C.charAt(D)=3D=3D">"){return true}if(C.length/2>D){var =
A=3DC.lastIndexOf("<",D);var B=3DC.lastIndexOf(">",D);if(A>B){return =
true}else{return false}}else{var A=3DC.indexOf("<",D);var =
B=3DC.indexOf(">",D);if(A<B){return true}else{return =
false}}};TruncateText.truncate=3Dfunction(J,C,D){if(J.length<C){return =
J}if(!D){D=3D"more..."}var =
F=3DC-1;while(TruncateText.is_in_tag(F,J)||J.charAt(F)!=3D" =
"){C--;F--}var I=3D"trigger_"+SGUID.generate();var =
H=3D"target_"+SGUID.generate();var B=3DJ.substring(0,C);var G=3D'<span =
id=3D"'+H+'" style=3D"display:none;">'+J.substring(C)+"</span>";var =
A=3D'<a href=3D"javascript:void(0)" =
onclick=3D"hideElement(\''+I+"');showElement('"+H+"','inline');return =
false;\" id=3D\""+I+'">'+D+"</a>";var E=3DB+A+G;return E};
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/jsd_4_5_8/e.js

var sa_msg =3D "";var seu=3D"sess";var lgn=3D"bum";var edi=3D"yuk";var =
sso=3D"ssock";var bgr=3D"grr";var trap=3D"curl";var org=3D"fud";var =
surva=3D"srvan";var tdr=3D"tdr";var gfld=3D"broc";var fld=3D"nub";var =
afy=3D"aff";var cookiesep=3D"|";var foldersep=3D"_";var =
survsep=3D"+";var page_identifier_slash_repl =3D "_";var =
site_uri=3D"http://www.teachersdomain.org";var =
my_profile=3D"/profile/";var org_support_find=3D"/find_orgs";var =
org_support_set_cookie=3D"/set_org_cookie";var =
reg_new_org=3D"/do_new_org_reg";var =
check_uname_avail=3D"/username_exists";var do_reg =3D "/do_reg/";var =
del_acct =3D "/profile_del/";var prof_co=3D"/profile_co/";var =
manage_folders=3D"#";var vf_serv=3D"/folder/view/";var =
edit_folder_title=3D"/edit_folder_title";var =
edit_folder_description=3D"/edit_folder_description";var =
save_note_url=3D"/save_note";var =
media_upload_save_note_url=3D"/media_upload_save_note";var =
copy_folder_item=3D"/copy_folder_item";var =
edit_mediaupload_item=3D"/edit_mediaupload_item";var =
delete_mediaupload_item=3D"/delete_mediaupload_item";var =
reorder_folder_items=3D"/reorder_folder_items";var =
manage_folders=3D"/manage_folders/";var =
folder_manage_new=3D"/new_folder/";var =
folder_manage_delete=3D"/remove_folder/";var =
folder_manage_display=3D"/change_dd_val/";var =
folder_save=3D"/save_to_folder/";var =
folder_lp_save=3D"/save_lp_to_folder/";var group_new=3D"/add_group/";var =
my_groups=3D"/groups/";var group_delete=3D"/remove_group/";var =
group_title_save=3D"/change_group_title/";var =
group_desc_save=3D"/edit_group_description/";var =
group_access_change=3D"/edit_group_access/";var =
group_add_remove_folders=3D"/add_remove_folders/";var =
group_add_remove_users=3D"/add_remove_users/";var =
group_join=3D"/join_group/";var group_leave=3D"/leave_group/";var =
group_change_folder_access=3D"/change_group_folder_display";var =
log_asset_view=3D"/log_asset_view/";var =
log_survey_ask=3D"/log_survey_ask/";var =
log_survey_answer=3D"/log_survey_answer/";var =
upload_media=3D"/media_upload/";var my_uploads=3D"/my_uploads/view/";var =
edit_review_url=3D"/editreview/";var =
delete_review_url=3D"/deletereview/";var =
submit_comment_url=3D"/submit_comment/";var =
edit_comment_url=3D"/edit_comment/";var =
delete_comment_url=3D"/delete_comment/";var comment_cutoff=3D500;var =
review_cutoff=3D2000;var default_folder_name=3D"My Resources";var =
reserved_folder_names =3D ['My Resources', 'My Uploads'];var =
FULL_GRADE_SET_INDEX=3D"['Pre-K', 'K', '1', '2', '3', '4', '5', '6', =
'7', '8', '9', '10', '11', '12', 'Post-secondary']";var =
default_no_description=3D"None provided.";var asset_link_base=3D"";var =
TD_LOCAL_DEV=3Dfalse;var flag_type_text_map =3D =
{};flag_type_text_map["sc_2"] =3D "Please provide =
details";flag_type_text_map["sc_1"] =3D "Please provide =
details";flag_type_text_map["violent_1"] =3D "Please provide =
details";flag_type_text_map["violent_2"] =3D "Please provide =
details";flag_type_text_map["hateful_1"] =3D "Please provide =
details";flag_type_text_map["hateful_2"] =3D =
"";flag_type_text_map["hateful_3"] =3D "Please provide =
details";flag_type_text_map["inaccurate_1"] =3D "Please provide =
details";flag_type_text_map["inaccurate_2"] =3D "Please provide =
details";flag_type_text_map["inaccurate_3"] =3D "Please provide =
details";flag_type_text_map["rights_1"] =3D "Please provide =
details";flag_type_text_map["rights_2"] =3D "Please provide =
details";flag_type_text_map["promotional_1"] =3D "Please provide =
details";flag_type_text_map["inappropriate_1"] =3D "Please provide =
details";flag_type_text_map["other_1"] =3D "Please describe your =
concern";var takedown_reason_map =3D =
{};takedown_reason_map["media_upload"] =3D [["sc_1", "Sexual Content: =
Contains nudity"], ["sc_2", "Sexual Content: Contains graphic sexual =
activity"], ["violent_1", "Violent or Harmful Content: Depicts dangerous =
acts"], ["violent_2", "Violent or Harmful Content: Depicts violence or =
fighting"], ["hateful_1", "Hateful or Threatening: Encourages hatred"], =
["hateful_2", "Hateful or Threatening: Encourages violence"], =
["hateful_3", "Hateful or Threatening: Contains abusive language"], =
["inaccurate_1", "Inaccurate Information: Information is inaccurate"], =
["inaccurate_2", "Inaccurate Information: Information is false "], =
["inaccurate_3", "Inaccurate Information: Information is misleading"], =
["rights_1", "Violates my rights: Infringes my copyright"], ["rights_2", =
"Violates my rights: Invades my privacy"], ["promotional_1", =
"Promotional Content"], ["inappropriate_1", "Inappropriate for the Age =
Group"], ["other_1", "Other Concern"]];takedown_reason_map["review"] =3D =
[["abuse", "Abusive or inappropriate language"], ["false_info", "False, =
inaccurate, or misleading information"], ["spam", "Commercial content =
(incl. spam)"], ["copyright", "Copyright infringement"], ["privacy", =
"Privacy invasion"], ["other_1", "Other =
Concern"]];takedown_reason_map["review_comment"] =3D [["abuse", "Abusive =
or inappropriate language"], ["false_info", "False, inaccurate, or =
misleading information"], ["spam", "Commercial content (incl. spam)"], =
["copyright", "Copyright infringement"], ["privacy", "Privacy =
invasion"], ["other_1", "Other Concern"]];takedown_reason_map["asset"] =
=3D [["rights_expired_1", "Rights Expired"], ["other_1", "Other =
Concern"]];var flag_url =3D"/flag/";=0A=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/jsd_4_5_8/test_drive.js

var floaters =3D {'td_nag': '<div class=3D"tdrive_window" =
style=3D"left:265px; top:155px;z-index:26;" id=3D"td_nag">\n\t<div =
class=3D"tdrive_titlebar">\n\t\t<h1>Please Sign In for Full Access</h1> =
\n\t\t<div class=3D"closeIcon">\n\t\t\t<a href=3D"javascript:void(0);" =
id=3D"hidden_closewin3" =
onclick=3D"TestDriveManager.hide_current_window();return false;"><img =
src=3D"/images/x.gif" width=3D"10" height=3D"10" alt=3D"" border=3D"0" =
style=3D"border:0;margin:0;padding:0;" /></a> =
\n\t\t</div>\n\t</div>\n\t<div class=3D"tdrive_content">\n\t\t<div =
id=3D"nag_top">\n\t\t\t<div id=3D"td_nag_folders" =
class=3D"nag_section">\n\t\t\t\t<h2>About My =
Folders:</h2>\n\t\t\t\t<p>Use folders to save and organize your favorite =
Teachers\' Domain resources, sort your collections, and write notes =
specific to each resource. Folders are useful for making presentations =
and creating lesson plans.</p>\n\t\t\t</div>\n\t\t\t<div =
id=3D"td_nag_download" class=3D"nag_section">\n\t\t\t\t<h2>About =
Downloading Resources:</h2>\n\t\t\t\t<p>Many Teachers\' Domain resources =
are available for downloading, sharing, and remixing. This feature =
allows you the flexibility to embed video or audio into presentations, =
give compilations of resources to your students, or to create derivative =
works and mashups.</p>\n\t\t\t</div>\n\t\t\t<div id=3D"td_nag_groups" =
class=3D"nag_section">\n\t\t\t\t<h2>About My =
Groups:</h2>\n\t\t\t\t<p>Share access to resources you\'ve saved and =
notes you\'ve added.</p>\n\t\t\t\t<p>Groups can be useful for providing =
resources to students, collaborating with colleagues, sharing ideas, or =
creating portfolios.</p>\n\t\t\t</div>\n\t\t\t<div id=3D"td_nag_profile" =
class=3D"nag_section">\n\t\t\t\t<h2>About My =
Profile:</h2>\n\t\t\t\t<p>Customize your Teachers\' Domain experience by =
specifying the grade range you teach, the state standards you use, and =
the accessibility features you need. You can also change your user name =
and password and sign up for email alerts.</p>\n\t\t\t</div>\n\t\t\t<div =
id=3D"td_nag_complete" class=3D"nag_section">\n\t\t\t\t<h2 =
style=3D"color:#cc0000;">Your "Test Drive" is now =
complete.</h2>\n\t\t\t\t<p>You have viewed all seven resources permitted =
in this limited trial period. You may continue to browse the site, but =
to view, download, share, and save resources, you must register =
now.</p>\n\t\t\t</div>\n\t\t</div>\n\t\t<div =
id=3D"nag_bottom">\n\t\t\t<div id=3D"nb_feature" =
class=3D"nag_section">\n\t\t\t\t<p>This Teachers\' Domain feature =
requires registration, which is simple, safe, and free. <a =
href=3D"javascript:void(0);" =
onclick=3D"TestDriveManager.pop_learn_more(\'standard\');">Learn =
more</a></p>\n\t\t\t</div>\n\t\t\t<div id=3D"nb_about" =
class=3D"nag_section">\n\t\t\t\t<h2>About =
Registration:</h2>\n\t\t\t\t<p>Registering with Teachers\' Domain is =
free and allows you to:</p>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>&#8226; View as =
many resources as you like</li>\n\t\t\t\t\t<li>&#8226; Save, sort, and =
share resources using My Folders and My =
Groups</li>\n\t\t\t\t\t<li>&#8226; Download resources to your =
desktop</li>\n\t\t\t\t\t<li>&#8226; See standards correlations for your =
state</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div id=3D"nb_reg" =
class=3D"nag_section">\n\t\t\t\t<form =
action=3D"javascript:void(0);">\n\t\t\t\t\t<input type=3D"submit" =
class=3D"button" value=3D"Register Now" =
onclick=3D"redirect_to(\'/register/\');return false;" /> =
\n\t\t\t\t</form>\n\t\t\t</div>\n\t\t\t<div id=3D"nb_complete" =
class=3D"nag_section">\n\t\t\t\t<p>Registration is simple, safe, and =
free!<br /><a href=3D"javascript:void(0);" =
onclick=3D"TestDriveManager.pop_learn_more(\'over\');">Learn =
more</a></p>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n'};=0A=
/**=0A=
TestDrive:=0A=
=0A=
For this version of TestDrive, we want to allow the user to do as =0A=
much as possible on the site without logging in. So, they should be able =0A=
to do everything but view media, and use the top 'My *' functionality. =0A=
Standards should return national and MCREL standards with a caveat that =0A=
if they were logged in they could get their state standards as well. =
Search =0A=
should function as well. =0A=
=0A=
TestDrive doesn't start until they actually try to view some media. =
They'll get =0A=
nags when they try to access the 'My *' functionallity, but it won't =
start TestDrive.=0A=
=0A=
Weve recently added an "enhanced" test drive for SSO partner users who =
haven't yet =0A=
tied their td accounts to their sso accounts. They get the TestDrive =
interface, but don't have a =0A=
limit on the amount of video they can watch.=0A=
*/=0A=
function TestDriveManager() {=0A=
	/**=0A=
	Class to manage the test drive process. Everything is done via =0A=
	class methods and properties.=0A=
	*/=0A=
}=0A=
TestDriveManager.test_drive_complete =3D false;=0A=
TestDriveManager.current_nag_div_id =3D null;=0A=
TestDriveManager.max_views =3D 7;=0A=
TestDriveManager.cookie_name =3D 'tdr';=0A=
TestDriveManager.tdrive_display_name =3D 'Test Driver';=0A=
=0A=
=0A=
TestDriveManager.set_count_cookie =3D function(count) {=0A=
	/**=0A=
	Need to track 'View' clicks across http requests, so=0A=
	we'll be tracking them using a cookie. Cookie is made of =0A=
	click_count + cookiesep + session_id=0A=
	=0A=
	*/=0A=
	var session_id =3D get_cookie_val(seu);=0A=
	if (!session_id) {=0A=
		session_id =3D '';=0A=
	}=0A=
	var cookie_value =3D count + cookiesep + session_id;=0A=
	document.cookie =3D TestDriveManager.cookie_name + '=3D' + cookie_value =
+ ';path=3D/;';=0A=
};=0A=
=0A=
=0A=
TestDriveManager.process_view_click =3D function() {=0A=
	//see if weve started the testdrive process yet:=0A=
	if (AuthManager.status !=3D AuthManager.AUTH_TESTDRIVE) {=0A=
		TestDriveManager.start_testdrive();=0A=
	}=0A=
	if (!SSOManager.is_sso_user()) {=0A=
	    var count =3D TestDriveManager.get_view_count();=0A=
=0A=
    	TestDriveManager.update_view_count(count + 1);=0A=
    	TestDriveManager.set_view_count_string(count + 1);=0A=
=0A=
    	//see if we need to end testdrive:=0A=
    	if (count >=3D TestDriveManager.max_views) {=0A=
    		throw new Error('tdrive_done');=0A=
    	}=0A=
	}=0A=
};=0A=
=0A=
TestDriveManager.update_view_count =3D function(count) {=0A=
	TestDriveManager.set_count_cookie(count);=0A=
};=0A=
=0A=
TestDriveManager.get_view_count =3D function() {=0A=
	var count =3D 0;=0A=
	var cookie_val =3D get_cookie_val(TestDriveManager.cookie_name);=0A=
	if (cookie_val) {=0A=
		var cookie_bits =3D cookie_val.split(cookiesep);=0A=
		var cookie_count =3D parseInt(cookie_bits[0]);=0A=
		if (!isNaN(cookie_count)) {=0A=
			count =3D cookie_count;=0A=
		}=0A=
	} =0A=
	return count;=0A=
};=0A=
=0A=
TestDriveManager.set_view_count_string =3D function(count) {=0A=
	var remaining =3D TestDriveManager.max_views - count;=0A=
	if (remaining < 0) {=0A=
		remaining =3D 0;=0A=
	}=0A=
	//set the display string:=0A=
	var num_node =3D document.getElementById('ltd-left-string');=0A=
	num_node.innerHTML =3D remaining;=0A=
};=0A=
=0A=
TestDriveManager.start_testdrive =3D function() {=0A=
	AuthManager.status =3D AuthManager.AUTH_TESTDRIVE;=0A=
	TestDriveManager.init_testdrive_content();=0A=
};=0A=
=0A=
TestDriveManager.init_testdrive_content =3D function() {=0A=
	/*=0A=
	Set up the page for a TestDriver.=0A=
	*/=0A=
	if (!SSOManager.is_sso_user()) {=0A=
	    if (TestDriveManager.get_view_count() >=3D =
TestDriveManager.max_views) {=0A=
    		TestDriveManager.test_drive_complete =3D true;=0A=
    	}=0A=
    	=
TestDriveManager.set_view_count_string(TestDriveManager.get_view_count())=
;=0A=
	}=0A=
	TestDriveManager.set_tdrive_login_widget();=0A=
	TestDriveManager.set_banner_text();=0A=
	=0A=
};=0A=
TestDriveManager.set_banner_text =3D function() {=0A=
	/*=0A=
	Set the User: text in the standard banner.=0A=
	*/=0A=
	if (SSOManager.is_sso_user()) {=0A=
	    TestDriveManager.tdrive_display_name =3D =
SSOManager.get_sso_partner_name() + ' ' + =
TestDriveManager.tdrive_display_name;=0A=
    	set_banner_user_name(TestDriveManager.tdrive_display_name);=0A=
	} else {=0A=
    	set_banner_user_name(TestDriveManager.tdrive_display_name);=0A=
	}=0A=
};=0A=
TestDriveManager.set_tdrive_login_widget =3D function() {=0A=
	/* =0A=
	Change the stuff in the right column of the =0A=
	login widget, and set the remaining views parameter. =0A=
	*/=0A=
	=0A=
	if (SSOManager.is_sso_user()) {=0A=
	    hideElement('ltd-rc-content-sso-pre');=0A=
	    var e =3D document.getElementById('sso-tdr-name');=0A=
	    e.innerHTML =3D SSOManager.get_sso_partner_name();=0A=
	    showElement('ltd-rc-content-sso');=0A=
	} else {=0A=
	    hideElement('ltd-rc-content-1');=0A=
	    if (TestDriveManager.test_drive_complete =3D=3D true) {=0A=
    		//it's possible this was visible:=0A=
    		hideElement('ltd-rc-content-2');=0A=
    		showElement('ltd-rc-content-3p1');=0A=
    		showElement('ltd-rc-content-3p2');=0A=
    	} else {=0A=
    		showElement('ltd-rc-content-2');=0A=
    	}=0A=
	}=0A=
	=0A=
	=0A=
	changeBorderColor('ltd-right-col','#cc0000');=0A=
	changeBackgroundColor('ltd-right-col','#fff');=0A=
	//this may have been opened by the ltd-rc-content-1 content:=0A=
	hideElement('ltd-rc-learn-more');=0A=
};=0A=
=0A=
TestDriveManager.show_nag =3D function(nag_name) {=0A=
	//pop-in the html:=0A=
	var insert_div =3D TestDriveManager.get_insertion_div();=0A=
	insert_div.innerHTML =3D floaters['td_nag'];=0A=
	=0A=
	=0A=
	//hide a previous nag window:=0A=
	if (TestDriveManager.current_nag_div_id) {=0A=
		hideElement(TestDriveManager.current_nag_div_id);=0A=
	}=0A=
	TestDriveManager.set_bottom_nag();=0A=
	=0A=
	//nag id is built:=0A=
	TestDriveManager.current_nag_div_id =3D 'td_nag_' + nag_name;=0A=
	//TO DO: talk to Chris W. about this. It seems better to continue =0A=
	//to explain what the functionality is, rather then just saying tdrive =
over:=0A=
	/* =0A=
	if (TestDriveManager.test_drive_complete) {=0A=
		TestDriveManager.current_nag_div_id =3D 'td_nag_complete';=0A=
	}=0A=
	*/=0A=
	showElement(TestDriveManager.current_nag_div_id);=0A=
	window.scrollTo(0,0);=0A=
	return false;=0A=
	=0A=
};=0A=
=0A=
=0A=
TestDriveManager.hide_current_window =3D function() {=0A=
	/*=0A=
	Getting the insertion div, automatically removes =0A=
	any previous incantation of the insertion div.=0A=
	*/=0A=
	var div =3D TestDriveManager.get_insertion_div();=0A=
	TestDriveManager.set_bottom_nag();=0A=
};=0A=
=0A=
TestDriveManager.get_insertion_sibling =3D function() {=0A=
	var main_content =3D document.getElementById('main_content');=0A=
	return main_content;=0A=
};=0A=
=0A=
TestDriveManager.get_insertion_div =3D function() {=0A=
	/*=0A=
	Dynamically insert Test Drive 'windows' into the page. The =0A=
	insertion div will be put into the page right before the main_content =0A=
	div, and will have it's innertHTML property set by various functions.=0A=
	*/=0A=
	var tdrive_div =3D document.getElementById('test_drive_container');=0A=
	if (tdrive_div) {=0A=
		document.body.removeChild(tdrive_div);=0A=
	} =0A=
	=0A=
	var insert_sibling =3D TestDriveManager.get_insertion_sibling();=0A=
	tdrive_div =3D document.createElement('div');=0A=
	tdrive_div.id =3D 'test_drive_container';=0A=
	document.body.insertBefore(tdrive_div,insert_sibling);=0A=
	return tdrive_div;=0A=
	=0A=
};=0A=
=0A=
TestDriveManager.pop_learn_more =3D function(source) {=0A=
	/*=0A=
	Do the 'learn more' link in the nag pop-ups.=0A=
	*/=0A=
	if (source =3D=3D 'over') {=0A=
		hideElement('nb_complete');=0A=
	} else if (source =3D=3D 'standard') {=0A=
		hideElement('nb_feature');=0A=
	}=0A=
	showElement('nb_reg');=0A=
	showElement('nb_about');=0A=
};=0A=
=0A=
TestDriveManager.set_bottom_nag =3D function() {=0A=
	/* Reset the 'learn more' stuff: */=0A=
	if (TestDriveManager.test_drive_complete =3D=3D true) {=0A=
		showElement('nb_complete');=0A=
	} else {=0A=
		showElement('nb_feature');=0A=
	}=0A=
	hideElement('nb_about');=0A=
	hideElement('nb_reg');=0A=
};=0A=
=0A=
=0A=
TestDriveManager.lock_down =3D function() {=0A=
	/**=0A=
	Re-write links and form submissions actions as necessary to support =0A=
	TestDrive functionality:=0A=
	=0A=
	=0A=
	*/=0A=
	for (var i =3D 0;i < document.links.length;i++) {=0A=
		var link =3D document.links[i];=0A=
		//ie6 pathname attribute bug:=0A=
		var ie666_pathname =3D '/' + link.pathname;=0A=
		if (should_ignore(link)) {=0A=
			continue;=0A=
		//My Folders button:=0A=
		} else if (link.id =3D=3D 'pulldown_link') {=0A=
			link.onmousedown =3D function() {void(0);};=0A=
			link.onclick =3D function() {TestDriveManager.show_nag('folders');};=0A=
		//My Groups button:=0A=
		} else if (link.pathname =3D=3D my_groups || ie666_pathname =3D=3D =
my_groups) {=0A=
			link.href =3D "javascript:void(0);";=0A=
			link.onclick =3D function() {TestDriveManager.show_nag('groups');};=0A=
		//My Profile button:=0A=
		} else if (link.pathname =3D=3D my_profile || ie666_pathname =3D=3D =
my_profile) {=0A=
			link.href =3D "javascript:void(0);";=0A=
			link.onclick =3D function() {TestDriveManager.show_nag('profile');};=0A=
		//most text links to assets will look like this:=0A=
		} else if (link.pathname.search(/^\/assets\//) =3D=3D 0 || =
ie666_pathname.search(/^\/assets\//) =3D=3D 0) {=0A=
			link.href =3D "javascript:void(0);";=0A=
			link.onclick =3D view_click_handler;=0A=
		//Save lesson plan link and Save to a folder link:=0A=
		} else if (link.id =3D=3D 'save_lp_action' || link.id =3D=3D =
'save_to_action') {=0A=
			link.onmousedown =3D function() {void(0);};=0A=
			link.onclick =3D function() {TestDriveManager.show_nag('folders');};=0A=
		} =0A=
	}=0A=
	=0A=
	for (i =3D 0;i < document.forms.length;i++) {=0A=
		var f =3D document.forms[i];=0A=
		if (should_ignore(f)) {=0A=
			continue;=0A=
		}=0A=
	=0A=
		//need to check onclick handlers for View buttons:=0A=
		for (var j =3D 0;j < f.elements.length;j++) {=0A=
			var e =3D f.elements[j];=0A=
			if (e.type =3D=3D 'submit' && e.value =3D=3D 'View' && =
!should_ignore(e) && e.onclick) {=0A=
				//save the original onclick action:=0A=
				e.original_onclick =3D e.onclick;=0A=
				e.onclick =3D view_click_handler;=0A=
			} else if (e.type =3D=3D 'submit' && e.value =3D=3D 'Download' && =
!should_ignore(e) && e.onclick) {=0A=
				e.onclick =3D function() {TestDriveManager.show_nag('download');};=0A=
			}=0A=
		}=0A=
	}=0A=
	=0A=
	function view_click_handler() {=0A=
		try {=0A=
			TestDriveManager.process_view_click();=0A=
			//run the original onclick action:=0A=
			this.original_onclick();=0A=
		} catch(ex) {=0A=
			TestDriveManager.test_drive_complete =3D true;=0A=
			TestDriveManager.set_tdrive_login_widget();=0A=
			TestDriveManager.show_nag('complete');=0A=
		}=0A=
		=0A=
	}=0A=
	=0A=
	=0A=
	function should_ignore(element) {=0A=
		/* =0A=
		Ignore any element that has a class name of 'tdr-ignore'.=0A=
		*/=0A=
		var cnames =3D get_class_names_by_element(element);=0A=
		var rval =3D false;=0A=
		for (var array_index in cnames) {=0A=
			if (cnames[array_index] =3D=3D 'tdr-ignore') {=0A=
				rval =3D true;=0A=
				break;=0A=
			}=0A=
		}=0A=
		return rval;=0A=
	}=0A=
};=0A=
=0A=
=0A=

------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/init_auth.js

var Global=3Dthis;function =
AuthManager(){}AuthManager.AUTH_UNKNOWN=3D"auth_unknown";AuthManager.AUTH=
_USER=3D"auth_user";AuthManager.AUTH_TESTDRIVE=3D"auth_testdrive";AuthMan=
ager.AUTH_PREVIEW=3D"auth_preview";AuthManager.status=3DAuthManager.AUTH_=
UNKNOWN;AuthManager.set_status=3Dfunction(){var =
A=3Dget_cookie_val(lgn);if(A){AuthManager.status=3DAuthManager.AUTH_USER}=
else{if(Global.TestDriveManager&&get_cookie_val(TestDriveManager.cookie_n=
ame)){AuthManager.status=3DAuthManager.AUTH_TESTDRIVE}else{if(Global.is_p=
review){AuthManager.status=3DAuthManager.AUTH_PREVIEW}}}};function =
PageManager(){}PageManager.page_inits=3D[];PageManager.init_page=3Dfuncti=
on(){AuthManager.set_status();if(Global.TestDriveManager&&(AuthManager.st=
atus=3D=3DAuthManager.AUTH_TESTDRIVE||AuthManager.status=3D=3DAuthManager=
.AUTH_UNKNOWN)){TestDriveManager.lock_down()}update_grade_widget();show_b=
readcrumb();PageManager.assign_inits();PageManager.run_inits();PageManage=
r.process_login_widgets();PageManager.process_signed_in_links();PageManag=
er.process_site_alert()};PageManager.assign_inits=3Dfunction(){if(Global.=
page_type){var =
C=3D{tdhome:function(){return[init_banner,init_tdhome]},hierarchy:functio=
n(){return[init_banner]},learning_object:function(){return[init_banner,lo=
ad_save_to_folder_select,SurveyHandler.init,ReviewManager.init,CommentMan=
ager.init]},lesson_plan:function(){return[init_banner,ReviewManager.init]=
},student_activity:function(){return[init_banner,load_save_to_folder_sele=
ct,ReviewManager.init]},teacher_activity:function(){return[init_banner,lo=
ad_save_to_folder_select,ReviewManager.init]},special_collection:function=
(){return[init_banner]},special_collection_echo:function(){return[init_ba=
nner,init_img_roll]},special_collection_ipy:function(){return[init_banner=
,init_img_roll]},media_enclosure:function(){return[init_banner]},login:fu=
nction(){return[init_login]},register:function(){return[ProfileManager.in=
it_reg]},profile:function(){return[init_banner]},search:function(){return=
[init_banner,update_all_selects]},folder_view:function(){return[init_fold=
er_view,init_banner]},my_upload_view:function(){return[init_my_upload_vie=
w,init_banner]},folder_manage:function(){return[init_banner]},my_groups:f=
unction(){return[init_banner,init_my_groups]},error:function(){return[ini=
t_banner]},glossary_popup:function(){return[init_glossary_popup]},printer=
_friendly_popup:function(){return[init_printer_friendly_popup]},media_upl=
oad:function(){return[init_banner,init_media_upload]},search_edcar:functi=
on(){return[init_banner,update_all_selects]},resource_edcar:function(){re=
turn[init_banner]},edcar_list:function(){return[init_banner]},edcar_media=
_enclosure:function(){return[init_banner]},pd_course:function(){return[in=
it_banner,load_save_to_folder_select,SurveyHandler.init]},building_block:=
function(){return[init_banner,load_save_to_folder_select,SurveyHandler.in=
it,ReviewManager.init]}};if(C[Global.page_type]){var =
B=3DC[Global.page_type]();for(var =
A=3D0;A<B.length;A++){PageManager.page_inits.push(B[A])}}}};PageManager.r=
un_inits=3Dfunction(){for(var =
A=3D0;A<PageManager.page_inits.length;A++){PageManager.page_inits[A]()}};=
PageManager.process_login_widgets=3Dfunction(){if(!PageManager.page_has_l=
ogin_widget()){return =
}if(AuthManager.status=3D=3DAuthManager.AUTH_UNKNOWN||AuthManager.status=3D=
=3DAuthManager.AUTH_TESTDRIVE){var =
C=3Dget_org_name();if(C!=3D0&&C!=3Dundefined){var =
A=3Ddocument.getElementById("signin_org_name");A.innerHTML=3DC;showElemen=
t("org_data")}showElement("global_login_container");var =
B=3Ddocument.getElementById("global_login_spec_cont");if(B){showElement("=
global_login_spec_cont")}if(AuthManager.status=3D=3DAuthManager.AUTH_TEST=
DRIVE){TestDriveManager.init_testdrive_content()}setTrapCookie();SSOManag=
er.set_login_widget_banner()}};PageManager.page_has_login_widget=3Dfuncti=
on(){var =
A=3Ddocument.getElementById("global_login_container");if(A){return =
true}else{return =
false}};PageManager.process_signed_in_links=3Dfunction(){if(AuthManager.s=
tatus=3D=3DAuthManager.AUTH_USER){showElement("sign_out_top","inline")}};=
PageManager.process_site_alert=3Dfunction(){if(!Global.sa_msg||Global.sa_=
msg=3D=3D""){return }var =
B=3Dnull;if(AuthManager.status=3D=3DAuthManager.AUTH_USER){B=3D"site_aler=
t_li"}else{B=3D"site_alert_lo"}var =
A=3Ddocument.getElementById(B);if(!A){return =
}A.innerHTML=3Dunescape(Global.sa_msg);showElement(B)};function =
SSOManager(){}function =
SSOData(A){this.uid=3Dnull;this.ssop_id=3Dnull;this.ssop_code=3Dnull;this=
.ssop_name=3Dnull;this.username=3D"";this.has_branding=3Dfalse;if(A){var =
B=3DA.split(cookiesep);if(B.length=3D=3D7){this.uid=3DUtf8.decode(unescap=
e(B[0]));this.ssop_id=3Dunescape(B[1]);this.ssop_code=3Dunescape(B[2]);th=
is.ssop_name=3DUtf8.decode(unescape(B[3]));if(B[5]){this.username=3DUtf8.=
decode(unescape(B[5]))}if(B[6]&&B[6]=3D=3D"true"){this.has_branding=3Dtru=
e}}}}SSOData.prototype.get_uname=3Dfunction(){if(this.username){return =
this.username}else{return =
this.uid}};SSOManager.set_login_widget_banner=3Dfunction(){if(!PageManage=
r.page_has_login_widget()){return }var =
G=3Dget_cookie_val(sso);if(!G){return }var A=3Dnew =
SSOData(G);if(!A.uid){return }var =
E=3Ddocument.getElementById("sso_banner");if(E){var =
K=3D"";if(A.has_branding){var =
J=3D"/assets/image_support/sso_partners/"+A.ssop_code+"_brand.gif";if(TD_=
LOCAL_DEV){J=3Dsite_uri+J;K=3D'<img src=3D"'+J+'" =
alt=3D"'+A.ssop_name+'"  />'}}E.innerHTML=3DK+"<b>Welcome =
"+A.ssop_name+" =
user!</b>";showElement("sso_banner")}hideElement("ltd-stnd-login");showEl=
ement("ltd-sso-login1");var =
C=3D["sso-tdr-name-login1a","sso-tdr-name-login1b","sso-tdr-name-login1c"=
,"sso-tdr-name-login1d","sso-tdr-name-login1e"];for(var =
F=3D0;F<C.length;F++){var D=3DC[F];var =
I=3Ddocument.getElementById(D);if(I){I.innerHTML=3DA.ssop_name}}var =
H=3Dget_org_name();if(H!=3D0&&H!=3Dundefined){var =
B=3Ddocument.getElementById("signin_org_name_sso");B.innerHTML=3DH;showEl=
ement("org_data_ssol")}var =
L=3Ddocument.getElementById("sso-tdr-id-login1");if(L){L.innerHTML=3DA.ge=
t_uname()}hideElement("ltd-rc-content-1");showElement("ltd-rc-content-sso=
-pre")};SSOManager.is_sso_user=3Dfunction(){var B=3Dfalse;var =
A=3Dget_cookie_val(sso);var C=3Dnew SSOData(A);if(C.uid){B=3Dtrue}return =
B};SSOManager.get_sso_partner_name=3Dfunction(){var B=3D"";var =
A=3Dget_cookie_val(sso);var C=3Dnew =
SSOData(A);if(C.ssop_name){B=3DC.ssop_name}return =
B};SSOManager.clear_sso_user=3Dfunction(){delete_cookie(sso);document.loc=
ation=3Dwindow.location.href};document.observe("dom:loaded",PageManager.i=
nit_page);
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/standards.js

function =
standards_change_jurisdiction(A){form=3D$("J_select");options_list=3Dform=
.options;num_of_option=3Doptions_list.length;if(A=3D=3Dtrue){selected_jur=
isdiction=3D0}else{selected_jurisdiction=3Dform.selectedIndex}for(i=3D0;i=
<=3Dnum_of_option-1;i++){block_name_str=3D"jurisdiction_block_"+form.opti=
ons[i].text;if(i=3D=3Dselected_jurisdiction){$(block_name_str).show()}els=
e{$(block_name_str).hide()}}}var target_element=3D"";var =
no_jurisdiction;function =
getStandards(A,B){jurisdictions=3Dget_jursidiction_state();var =
C;no_jurisdiction=3D(jurisdictions=3D=3DC);grade_range=3Dgrade_widget_obj=
.get_grade_range_display_str();update_rpc_standards(jurisdictions,A,grade=
_range,B)}function =
update_rpc_standards(A,C,F,D){target_element=3DD;if(C=3D=3D""){C=3D0}var =
H=3DmakeParamString({jurisdictions:A,lexicon_terms:C,grade_range:F});var =
B=3Dwindow.location.href.split("/",3).join("/")+"/td_standards_rpc/";var =
G=3Dnew =
Ajax.Request(B,{method:"post",parameters:H,onSuccess:handle_find_standard=
s,onFailure:handle_find_standards_fail});if(no_jurisdiction){advise_login=
()}return false}function advise_login(){var =
A=3D$("test");A.show();$("standards_content").hide()}function =
handle_find_standards(A){E=3D$(target_element);E.innerHTML=3DA.responseTe=
xt;standards_change_jurisdiction(true)}function =
handle_find_standards_fail(A){fail_msg=3D"<div>Teachers' Domain =
Educational Standards Service encountered a server error. Please try =
again later.<br =
/>(JS)</div>";E=3D$(target_element);E.innerHTML=3Dfail_msg}function =
send_standards_report(B,C){if(!no_jurisdiction){var =
G=3D$(B).value;if(!(G=3D=3D"")){var =
F=3DmakeParamString({msg:G,res:C});var =
A=3Dwindow.location.href.split("/",3).join("/")+"/submit_stnd_report/";ha=
ndle_send_report();var D=3Dnew =
Ajax.Request(A,{method:"post",parameters:F,onSuccess:handle_send_report,o=
nFailure:handle_send_report_fail})}}else{alert("Please sign in before =
sending your comments.")}}function handle_send_report(B){var C=3D'<b =
style=3D"margin-right:56px;">Thanks for your feedback!</b>';var =
A=3D"Your report will help us imporve our standards =
correlations.";head_p=3D$("report_head_p");head_p.innerHTML=3DC;var =
D=3D$("report_form_div");D.innerHTML=3DA}function =
handle_send_report_fail(B){var C=3D"<b>Thanks for your =
feedback!</b>";var A=3D"Your report will help us improve our standards =
correlations.";head_p=3D$("report_head_p");head_p.innerHTML=3DC;var =
D=3D$("report_form_div");D.innerHTML=3DA}function =
toggle_report_problem(B){var =
A=3D$(B);if(A.visible()=3D=3Dfalse){$("about_standards").show();toggle_ab=
out_standards();$("standards_linkset").hide();$("standards_linkset_no_rep=
ort").show();$("standards_linkset_no_about").hide();A.show()}else{$("stan=
dards_linkset").show();$("standards_linkset_no_report").hide();$("standar=
ds_linkset_no_about").hide();A.hide()}}function =
toggle_about_standards(){var A=3D$("about_standards");var =
B=3D$("about_standards_link");if(A.visible()=3D=3Dfalse){$("report_proble=
m").show();toggle_report_problem("report_problem");A.show();$("standards_=
linkset").hide();$("standards_linkset_no_report").hide();$("standards_lin=
kset_no_about").show()}else{A.hide();$("standards_linkset").show();$("sta=
ndards_linkset_no_report").hide();$("standards_linkset_no_about").hide()}=
};
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/dynamo.js

var current_item_action=3D{};function =
show_action_form(A,C){if(!action_ids){return =
}if(current_item_action.item_id){exit_edit_mode(current_item_action.item_=
id,current_item_action.action_name);current_item_action=3D{}}current_item=
_action.item_id=3DA;current_item_action.action_name=3DC;var D;var =
B;if(action_ids[C]){do_action_support(A,C,"show");D=3Daction_ids[C].show_=
action_id;B=3Daction_ids[C].do_action_id;D=3DD.replace(/ITEMID/,A);B=3DB.=
replace(/ITEMID/,A)}else{return =
}if(B&&D){hideElement(D);showElement(B)}}function =
cancel_action(){exit_edit_mode(current_item_action.item_id,current_item_a=
ction.action_name);current_item_action=3D{}}function =
exit_edit_mode(A,C){if(!action_ids){return }var B;var =
D;if(action_ids[C]){do_action_support(A,C,"do");B=3Daction_ids[C].show_ac=
tion_id;D=3Daction_ids[C].do_action_id;D=3DD.replace(/ITEMID/,A);B=3DB.re=
place(/ITEMID/,A)}else{return =
}if(B&&D){hideElement(D);showElement(B)}}function =
handle_failure(A){do_error("There was an error with your =
request!")}function do_error(A){alert("ERROR: "+A);cancel_action()};
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/folders.js

var =
action_ids=3D{edit_media_upload:{show_action_id:"media_upload_ITEMID_edit=
",do_action_id:"media_upload_ITEMID_edit_form"},sort:{show_action_id:"ite=
m_ITEMID_sort",do_action_id:"item_ITEMID_sort_form"},edit_note:{show_acti=
on_id:"notes_ITEMID_content_area",do_action_id:"notes_ITEMID_edit"},add_n=
ote:{show_action_id:"notes_ITEMID_content_area",do_action_id:"notes_ITEMI=
D_edit"},remove:{show_action_id:"item_ITEMID_remove",do_action_id:"item_I=
TEMID_remove_form"},copy:{show_action_id:"item_ITEMID_copy",do_action_id:=
"item_ITEMID_copy_form"},edit_desc:{show_action_id:"folder_desc",do_actio=
n_id:"folder_desc_form"},edit_title:{show_action_id:"folder_title",do_act=
ion_id:"folder_title_form"},save_to_folder:{show_action_id:"save_to_actio=
n",do_action_id:"save_to_form"}};function =
do_action_support(B,C,A){if(C=3D=3D"edit_note"&&A=3D=3D"show"){update_not=
e_textarea(B)}else{if(C=3D=3D"edit_desc"&&A=3D=3D"show"){update_desc_text=
area()}}}function save_item(F,C){if(!C){C=3D"resource"}var B;var =
E=3Ddocument.getElementById("save_to_select");if(E){var =
A=3DE.options[E.selectedIndex].value;if(A!=3D"null"){B=3DA}else{return =
}}showElement("save_to_loading","inline");var =
H=3DmakeParamString({item_id:F,to_folder_id:B,item_type:C});var =
D=3Dfolder_save;var G=3Dnew =
Ajax.Request(D,{method:"post",parameters:H,onSuccess:handle_item_save,onF=
ailure:handle_failure})}function handle_item_save(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){do_erro=
r(resp_obj.error)}hideElement("save_to_loading");cancel_action()}function=
 save_title(){showElement("folder_title_loader","inline");var =
B=3D$F("folder_title_text");var D=3D{folder_id:folder_id,title:B};var =
A=3Dedit_folder_title;var C=3Dnew =
Ajax.Request(A,{method:"post",parameters:D,onSuccess:handle_title_save,on=
Failure:handle_failure})}function handle_title_save(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){do_titl=
e_error(resp_obj.error)}else{if(resp_obj.title){build_top_folder_menu();s=
et_title_content(Utf8.decode(resp_obj.title));cancel_action()}}hideElemen=
t("folder_title_loader")}function do_title_error(C){var =
B=3Ddocument.getElementById("folder_title_form");B.reset();var =
A=3Ddocument.getElementById("title_alert_box_content");if(A){A.innerHTML=3D=
C;showElement("title_alert_box")}else{alert(C)}}function =
set_title_content(A){var =
B=3Ddocument.getElementById("folder_title_content");B.innerHTML=3DA}funct=
ion save_description(){showElement("folder_desc_loader","inline");var =
B=3D$F("folder_desc_ta");var D=3D{folder_id:folder_id,description:B};var =
A=3Dedit_folder_description;var C=3Dnew =
Ajax.Request(A,{method:"post",parameters:D,onSuccess:handle_description_s=
ave,onFailure:handle_failure})}function =
handle_description_save(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){do_erro=
r(resp_obj.error)}else{if(resp_obj.description||resp_obj.description=3D=3D=
""){set_desc_content(Utf8.decode(resp_obj.description));if(resp_obj.descr=
iption=3D=3D""){change_desc_link_text("Add folder =
description")}else{change_desc_link_text("Edit folder =
description")}}}hideElement("folder_desc_loader");cancel_action()}functio=
n set_desc_content(A){var =
B=3Ddocument.getElementById("folder_desc_content");B.innerHTML=3DA.replac=
e(/</g,"&lt;").replace(/>/g,"&gt;")}function copy_item(I){var D;var =
C=3D"copy_select_"+I;var E=3Ddocument.getElementById(C);if(E){var =
G=3DE.options[E.selectedIndex].value;if(G!=3D"null"){D=3DG}}if(D){var =
H=3D"copy_item_loader_"+I;showElement(H,"inline");var =
F=3D{item_id:I,from_folder_id:folder_id,to_folder_id:D};var =
A=3Dcopy_folder_item;var B=3Dnew =
Ajax.Request(A,{method:"post",parameters:F,onSuccess:handle_item_copy,onF=
ailure:handle_failure})}}function handle_item_copy(response){var =
resp_obj=3Deval("("+response.responseText+")");var =
item_id;if(resp_obj.error){do_error(resp_obj.error)}else{if(resp_obj.item=
_id){item_id=3Dresp_obj.item_id}}if(item_id){var =
copy_loading_gif_id=3D"copy_item_loader_"+item_id;hideElement(copy_loadin=
g_gif_id,"inline");var form_id=3D"item_"+item_id+"_copy_form";var =
form_e=3Ddocument.getElementById(form_id);form_e.reset()}cancel_action()}=
function update_desc_textarea(){var =
C=3Ddocument.getElementById("folder_desc_content");var =
B=3DC.innerHTML;var =
A=3Ddocument.getElementById("folder_desc_ta");A.innerHTML=3DB}function =
update_note_textarea(D){var C=3D"notes_"+D+"_content";var =
F=3Ddocument.getElementById(C);var E=3DF.innerHTML;var =
B=3D"notes_"+D+"_ta";var =
A=3Ddocument.getElementById(B);A.innerHTML=3DE}function =
set_note_content(B,C){var A=3D"notes_"+B+"_content";var =
D=3Ddocument.getElementById(A);D.innerHTML=3DC}function =
save_note(A,D){showElement("save_note_loader_"+D,"inline");var =
B=3D"notes_"+D+"_ta";var E=3D$F(B);var =
G=3D{folder_id:A,item_id:D,note:E};var C=3Dsave_note_url;var F=3Dnew =
Ajax.Request(C,{method:"post",parameters:G,onSuccess:handle_note_save,onF=
ailure:handle_failure})}function handle_note_save(response){var =
resp_obj=3Deval("("+response.responseText+")");var =
item_id;if(resp_obj.error){}else{if(resp_obj.note||resp_obj.note=3D=3D"")=
{if(resp_obj.item_id){item_id=3Dresp_obj.item_id;set_note_content(item_id=
,Utf8.decode(resp_obj.note));if(resp_obj.note=3D=3D""){change_note_link_t=
ext(item_id,"add_note")}else{change_note_link_text(item_id,"edit_note")}}=
}else{}}cancel_action();hideElement("save_note_loader_"+item_id)}function=
 change_note_link_text(A,C){var =
B=3Ddocument.getElementById("notes_"+A+"_edit_link");if(B&&C=3D=3D"edit_n=
ote"){B.innerHTML=3D"Edit =
note"}else{if(B&&C=3D=3D"add_note"){B.innerHTML=3D"Add a =
note"}}}function change_desc_link_text(A){var =
B=3Ddocument.getElementById("edit_folder_link");if(B){B.innerHTML=3DA}}fu=
nction =
remove_item(A,C){showElement("remove_item_loader_"+C,"inline");var =
E=3DmakeParamString({folder_id:A,item_id:C});var B=3Ditem_remove;var =
D=3Dnew =
Ajax.Request(B,{method:"post",parameters:E,onSuccess:handle_item_remove,o=
nFailure:handle_failure})}function handle_item_remove(response){var =
resp_obj=3Deval("("+response.responseText+")");var =
item_id;if(resp_obj.error){alert("error! =
"+resp_obj.error)}else{if(resp_obj.item_id){item_id=3Dresp_obj.item_id}el=
se{alert("unmet condition!")}}if(item_id){var =
row_id=3D"folder_item_"+item_id;remove_row(row_id)}}function =
remove_row(A){hideElement(A)}function update_row_numbers(){var =
D=3Dget_row_elements();for(var B=3D0;B<D.length;B++){var F=3DD[B];var =
C=3DF.id.split("_");var A=3DC[2];var =
E=3D"num_"+A;ele_e=3Ddocument.getElementById(E);if(ele_e){ele_e.innerHTML=
=3DB+1}}}function resort_table(B){var =
G=3D"sort_item_loader_"+B;showElement(G,"inline");var =
C=3Dget_new_sort_val(B);var D;if(C){var =
D=3Dget_swap_item_id(default_sort,C)}if(D){var =
F=3DmakeParamString({item_id:B,swap_item_id:D,folder_id:folder_id});var =
A=3Dreorder_folder_items;var E=3Dnew =
Ajax.Request(A,{method:"post",parameters:F,onSuccess:handle_sort_response=
,onFailure:handle_failure})}else{do_error("Error")}}function =
get_new_sort_val(C){var A=3D"item_"+C+"_sort_form";var E=3D"sel_"+C;var =
B=3Ddocument.forms[A][E];var =
D;if(B){D=3DB.selectedIndex+1;if(!D){D=3DB.options[B.selectedIndex].text}=
}else{do_error("DOM Error")}return D}function =
handle_sort_response(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){do_erro=
r("There was an error with your request!")}else{if(resp_obj.item_id){var =
item_id=3Dresp_obj.item_id;var =
spinner_id=3D"sort_item_loader_"+item_id;hideElement(spinner_id);var =
new_sort_val=3Dget_new_sort_val(item_id);if(default_sort&&new_sort_val){d=
efault_sort=3Dupdate_default_sort(default_sort,item_id,new_sort_val);do_s=
ort();cancel_action()}}}}function init_folder_view(){var B=3D0;for(var A =
in =
default_sort){B+=3D1;break}if(B>0){set_tbody();load_folder_copy_selects()=
}}function load_save_to_folder_select(){var =
A=3Dget_folders("user");if(A){var =
B=3Ddocument.getElementById("save_to_select");if(B){for(var =
C=3D0;C<A.length;C++){var D=3DA[C];B.options[C+1]=3Dnew =
Option(unescape_html(Utf8.decode(D.folder_name)),D.folder_id,0,0)}}}}func=
tion load_folder_copy_selects(){var =
A=3Dget_folders("user");if(A){for(var C in default_sort){var =
G=3D"copy_select_"+C;var B=3Ddocument.getElementById(G);if(B){var =
F=3D1;for(var D=3D0;D<A.length;D++){var =
E=3DA[D];if(E&&E.folder_name&&E.folder_id){if(E.folder_id=3D=3Dfolder_id)=
{continue}B.options[F]=3Dnew =
Option(Utf8.decode(E.folder_name),E.folder_id,0,0);F+=3D1}}}}}}function =
set_tbody(){shade_rows();update_row_numbers()}function shade_rows(){var =
B=3Dget_row_elements();for(var =
A=3D0;A<B.length;A++){if(A%2!=3D0){changeBackgroundColorNoID(B[A],"#efefc=
f")}else{changeBackgroundColorNoID(B[A],"#fffff1")}}}function =
get_row_elements(){var A=3Ddocument.getElementsByTagName("tbody");var =
B=3DA[0];var C=3DB.getElementsByTagName("tr");return C}function =
update_selects(){var E=3Dget_row_elements();for(var =
C=3D0;C<E.length;C++){var F=3DE[C];var D=3DF.id.split("_");var =
B=3DD[2];var G=3D"sel_"+B;var =
A=3Ddocument.getElementById(G);A.selectedIndex=3DC}}function =
get_swap_item_id(D,A){var B;for(var C in =
D){if(D[C]=3D=3DA){B=3DC;break}}return B}function =
update_default_sort(E,A,C){if(E[A]!=3DC){var B=3DE[A];var =
D=3Dget_swap_item_id(E,C);var F=3DE;if(D){F[A]=3DC;F[D]=3DB}return =
F}else{return E}}function do_sort(){var L=3D"folder_"+folder_id;var =
B=3Ddocument.getElementById(L);var =
G=3Ddocument.createElement("tbody");G.id=3DL;var J=3Dnew Array();var =
C=3Dnew Array();for(var K in default_sort){var =
D=3Ddefault_sort[K]-1;C[D]=3DK}if(B){for(var F=3D0;F<C.length;F++){var =
A=3D"folder_item_"+C[F];for(var =
E=3D0;E<B.childNodes.length;E++){if(A=3D=3DB.childNodes[E].id){G.appendCh=
ild(B.childNodes[E]);break}}}var H=3DB.parentNode;var =
I=3DH.replaceChild(G,B);set_tbody();update_selects()}}function =
save_lp(A){showElement("lp_save_loading","inline");var =
D=3DmakeParamString({resource_code:A});var B=3Dfolder_lp_save;var =
C=3Dnew =
Ajax.Request(B,{method:"post",parameters:D,onSuccess:handle_lp_save,onFai=
lure:handle_lp_ajax_failure})}function =
handle_lp_ajax_failure(A){handle_lp_save_error("There was a server =
error. Sorry for any inconvenience.")}function =
handle_lp_save(response){var =
resp_obj=3Deval("("+response.responseText+")");hideElement("lp_save_loadi=
ng");if(resp_obj.error){handle_lp_save_error(resp_obj.error)}else{hideEle=
ment("save_lp_action");showElement("lp_saved_msg");build_top_folder_menu(=
)}}function handle_lp_save_error(A){alert(A)};
------=_NextPart_000_0000_01CADD42.9DF464E0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.teachersdomain.org/js_4_5_8/rev_comment.js

function =
RatingData(){this.overall=3D0;this.content=3D0;this.presentation=3D0;this=
.standards=3D0}function =
ReviewManager(){}ReviewManager.generic_error_msg=3D"There was a system =
error. Please try again =
later.";ReviewManager.get_review_url=3Dnull;ReviewManager.number_of_revie=
ws=3Dnull;ReviewManager.rating_average=3Dnull;ReviewManager.reviews_retri=
eved=3Dfalse;ReviewManager.reviews_per_page=3D10;ReviewManager.user_types=
=3D["teacher","schooladmin","parent","other"];ReviewManager.current_revie=
ws=3D[];ReviewManager.image_root=3D"";if(TD_LOCAL_DEV){ReviewManager.imag=
e_root=3D"/local_dev"}ReviewManager.rating_data=3Dnew =
RatingData();ReviewManager.edit_rating_data=3Dnew =
RatingData();ReviewManager.show_form_error=3Dfunction(A){$("review_text_e=
rror").innerHTML=3DA;$("review_text_error").show()};ReviewManager.reset_f=
orm_error=3Dfunction(){$("review_text_error").innerHTML=3D"";$("review_te=
xt_error").hide()};ReviewManager.init=3Dfunction(){if(is_preview){return =
}if(AuthManager.status=3D=3DAuthManager.AUTH_USER&&in_array(get_user_type=
_code(),ReviewManager.user_types)){var =
A=3Ddocument.getElementById("rev_launcher");if(A){$("rev_launcher").show(=
)}ReviewManager.set_star_event_handlers();if(ReviewManager.number_of_revi=
ews>0){$("review_meta_launch").show();$("review_meta_closer").show()}Revi=
ewManager.flag_options_html=3Dget_flag_options_html("review")}};ReviewMan=
ager.submit_review=3Dfunction(){$("rev_review_submit_loader").show();Revi=
ewManager.reset_form_error();var =
E=3Dstrip($F("review_text"));if(!E){ReviewManager.show_form_error("Please=
 enter a review and =
re-submit.");$("rev_review_submit_loader").hide();return }var =
A=3Dnull;var =
D=3Ddocument.getElementById("review_form");if(D){A=3DD.getAttribute("acti=
on")}if(A){post_data=3D{};post_data.review_text=3DE;post_data.review_targ=
et_type=3D$F("review_target_type");post_data.review_target_id=3D$F("revie=
w_target_id");post_data.star_overall=3DReviewManager.rating_data.overall;=
post_data.star_content=3DReviewManager.rating_data.content;post_data.star=
_presentation=3DReviewManager.rating_data.presentation;post_data.star_sta=
ndards=3DReviewManager.rating_data.standards;var =
B=3D$F("review_name");if(!B){B=3D""}post_data.review_name=3DB;var =
C=3Dnew =
Ajax.Request(A,{method:"post",parameters:post_data,onSuccess:ReviewManage=
r.handle_review_submit_success,onFailure:ReviewManager.handle_review_subm=
it_failure})}else{ReviewManager.show_form_error(ReviewManager.generic_err=
or_msg);$("rev_review_submit_loader").hide()}};ReviewManager.handle_revie=
w_submit_success=3Dfunction(response){$("rev_review_submit_loader").hide(=
);var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){ReviewM=
anager.show_form_error(resp_obj.error_msg)}else{$("review_form_container"=
).hide();if(resp_obj.submitted_review){ReviewManager.current_reviews.unsh=
ift(resp_obj.submitted_review);ReviewManager.show_review_list();if(resp_o=
bj.num_of_reviews){ReviewManager.set_number_of_reviews(resp_obj.num_of_re=
views);ReviewManager.number_of_reviews=3Dresp_obj.num_of_reviews}if(resp_=
obj.rating_average){ReviewManager.set_rating_img(resp_obj.rating_average)=
;ReviewManager.rating_average=3Dresp_obj.rating_average}}}};ReviewManager=
.delete_review=3Dfunction(B){$("edit_review_text_error").hide();var =
A=3D"Please confirm that you would like to delete this =
review:";if(confirm(A)){$("edit_rev_review_submit_loader").show();if(dele=
te_review_url){var C=3Dnew =
Ajax.Request(delete_review_url,{method:"post",parameters:{review_id:B},on=
Success:ReviewManager.handle_delete_review_success,onFailure:ReviewManage=
r.handle_delete_review_failure})}else{$("edit_review_text_error").innerHT=
ML=3DReviewManager.generic_error_msg;$("edit_review_text_error").show();$=
("edit_rev_review_submit_loader").hide()}}};ReviewManager.handle_delete_r=
eview_success=3Dfunction(response){$("edit_rev_review_submit_loader").hid=
e();var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){$("edit=
_review_text_error").innerHTML=3Dresp_obj.error_msg;$("edit_review_text_e=
rror").show()}else{if(resp_obj.review_id){for(var =
i=3D0;i<ReviewManager.current_reviews.length;i++){if(resp_obj.review_id=3D=
=3DReviewManager.current_reviews[i]["review_id"]){if(resp_obj.review_data=
){ReviewManager.current_reviews[i]=3Dresp_obj.review_data}break}}}if(resp=
_obj.num_of_reviews){ReviewManager.set_number_of_reviews(resp_obj.num_of_=
reviews);ReviewManager.number_of_reviews=3Dresp_obj.num_of_reviews}if(res=
p_obj.rating_average){ReviewManager.set_rating_img(resp_obj.rating_averag=
e);ReviewManager.rating_average=3Dresp_obj.rating_average}ReviewManager.s=
how_review_list()}};ReviewManager.handle_delete_review_failure=3Dfunction=
(A){$("edit_rev_review_submit_loader").hide();$("edit_review_text_error")=
.innerHTML=3DReviewManager.generic_error_msg;$("edit_review_text_error").=
show()};ReviewManager.set_number_of_reviews=3Dfunction(A){$("num_of_revie=
ws_link").innerHTML=3DA;$("num_of_reviews_plain").innerHTML=3DA;$("rev_pa=
g_links_count_top").innerHTML=3DA;if(A=3D=3D1){$("num_reviews_text_link")=
.innerHTML=3D"review";$("num_reviews_text_plain").innerHTML=3D"review";$(=
"num_reviews_text_plain_2").innerHTML=3D"review"}else{$("num_reviews_text=
_link").innerHTML=3D"reviews";$("num_reviews_text_plain").innerHTML=3D"re=
views";$("num_reviews_text_plain_2").innerHTML=3D"reviews"}};ReviewManage=
r.set_pagination_links=3Dfunction(H){if(ReviewManager.number_of_reviews<=3D=
ReviewManager.reviews_per_page){return }var I=3D0;var =
J=3DReviewManager.number_of_reviews/ReviewManager.reviews_per_page;if(J%p=
arseInt(J)){I=3DparseInt(J)+1}else{I=3DJ}var E=3D"";var B=3D0;for(var =
F=3D1;F<=3DI;F++){var =
C=3D(F*ReviewManager.reviews_per_page)-ReviewManager.reviews_per_page;var=
 A=3DB+1;var =
D=3DB+ReviewManager.reviews_per_page;if(D>ReviewManager.number_of_reviews=
){D=3DReviewManager.number_of_reviews}var =
G=3DA+"-"+D;if(H=3D=3DB){E+=3DG}else{E+=3D'<a =
href=3D"javascript:void(0)" =
onclick=3D"ReviewManager.get_reviews('+C+');return =
false;">'+G+"</a>"}if(F<I){E+=3D" | =
"}B=3DD}$("rev_page_links_top_nav").innerHTML=3DE;$("rev_pag_links_bottom=
").innerHTML=3DE};ReviewManager.set_rating_img=3Dfunction(B){var =
A=3DReviewManager.image_root+"/images/ratings/stars_"+B+".gif";var =
C=3D"";if(B=3D=3D0){C=3D"Not rated"}else{if(B=3D=3D1){C=3D"1 =
star"}else{C=3DB+" =
stars"}}$("avg_rating_img_link").writeAttribute("src",A);$("avg_rating_im=
g_link").writeAttribute("alt",C);$("avg_rating_img_plain").writeAttribute=
("src",A);$("avg_rating_img_plain").writeAttribute("alt",C)};ReviewManage=
r.handle_review_submit_failure=3Dfunction(A){$("rev_review_submit_loader"=
).hide();ReviewManager.show_form_error(ReviewManager.generic_error_msg)};=
ReviewManager.set_rating=3Dfunction(C,A,B){if(!B){ReviewManager.rating_da=
ta[C]=3DA}else{ReviewManager.edit_rating_data[C]=3DA}ReviewManager.show_c=
urrent_star_rating(C,B)};ReviewManager.set_edited_rating=3Dfunction(B,A){=
ReviewManager.edit_rating_data[B]=3DA;ReviewManager.show_current_edit_sta=
r_rating(B)};ReviewManager.set_star_event_handlers=3Dfunction(A){var =
G=3D["overall","content","presentation","standards"];var =
F=3D"";if(A){F=3D"edit_"}for(var D=3D0;D<G.length;D++){var H=3DG[D];var =
E=3D5;for(var C=3D1;C<=3DE;C++){var =
I=3Ddocument.getElementById(F+H+"_link_"+C);if(I){I.root=3DH;I.star_count=
=3DC;I.edit_version=3DA;I.onclick=3Dfunction(){ReviewManager.set_rating(t=
his.root,this.star_count,this.edit_version)};I.onmouseover=3Dfunction(){R=
eviewManager.star_over(this.root,this.star_count,this.edit_version)};I.on=
mouseout=3Dfunction(){ReviewManager.star_out(this.root,this.edit_version)=
}}}var =
B=3Ddocument.getElementById(F+H+"_link_none");if(B){B.root=3DH;B.onclick=3D=
function(){ReviewManager.set_rating(this.root,0,A)}}}};ReviewManager.show=
_ratings=3Dfunction(){var =
B=3Ddocument.getElementById("rev_launcher");if(B){$("rev_launcher").hide(=
)}var =
A=3Ddocument.getElementById("rev_content");if(A){$("rev_content").show();=
$("rev_content").redraw()}if(!ReviewManager.reviews_retrieved){$("rev_loa=
ding_reviews").show();ReviewManager.get_reviews(0)}ReviewManager.reviews_=
retrieved=3Dtrue;hideElement("resource_content")};ReviewManager.get_revie=
ws=3Dfunction(B){$("rev_loading_reviews").show();$("review_list_content")=
.innerHTML=3D"";if(ReviewManager.get_review_url){post_data=3D{};post_data=
.count=3DReviewManager.reviews_per_page;post_data.offset=3DB;var A=3Dnew =
Ajax.Request(ReviewManager.get_review_url,{method:"post",parameters:post_=
data,onSuccess:ReviewManager.handle_getreviews_success,onFailure:ReviewMa=
nager.handle_getreviews_failure})}};ReviewManager.toggle_rating_on_text=3D=
"See rating =
details";ReviewManager.toggle_rating_details=3Dfunction(B,A){var =
C=3DReviewManager.toggle_rating_on_text;if(B.innerHTML=3D=3DC){B.innerHTM=
L=3D"Hide rating =
details";$(A).show()}else{B.innerHTML=3DReviewManager.toggle_rating_on_te=
xt;$(A).hide()}};ReviewManager.post_flag_handler=3Dfunction(response){var=
 =
resp_obj=3Deval("("+response.responseText+")");$("flag_confirmation_revie=
w_"+resp_obj.target_id).show();$("flag_loader_review_"+resp_obj.target_id=
).hide();$("flag_details_review_"+resp_obj.target_id).hide();$("flag_link=
_review_"+resp_obj.target_id).hide()};ReviewManager.review_template=3Dnew=
 Template('<div class=3D"review" id=3D"review_#{review_id}"><div =
class=3D"rev_meta_container"><div class=3D"rev_meta_left"><p =
class=3D"rev_meta"><img src=3D"#{sr_overall}" =
alt=3D"#{sr_overall_alttext}" class=3D"rev_overall_image" />Reviewed by: =
<b>#{reviewer}</b> of #{org_name}</p></div><div =
class=3D"rev_meta_right"><div class=3D"date_flag_container"><p =
class=3D"rev_meta rev_date">#{reviewed_on}</p><p class=3D"rev_meta =
flag_cont"><a href=3D"javascript:void(0)" =
onclick=3D"ReviewManager.flag_toggle_comments(#{review_id});FlagManager.t=
oggle_flag_details(this,\'review\',\'#{review_id}\');" =
id=3D"flag_link_review_#{review_id}" =
style=3D"background:url(#{flag_img}) no-repeat left;" =
class=3D"flag_link">Flag</a></p></div></div><div =
class=3D"clear">&nbsp;</div></div><p =
class=3D"rev_content">#{review_content}</p><p class=3D"ratings_detail" =
id=3D"rating_details_#{review_id}" style=3D"display:none;">Content:<img =
src=3D"#{sr_content}" alt=3D"#{sr_content_alttext}" =
class=3D"rev_rat_detail_image" />Presentation:<img =
src=3D"#{sr_presentation}" alt=3D"#{sr_presentation_alttext}" =
class=3D"rev_rat_detail_image" />Standards alignment:<img =
src=3D"#{sr_standards}" alt=3D"#{sr_standards_alttext}" =
class=3D"rev_rat_detail_image" /></p><p class=3D"rating_action_links"><a =
href=3D"javascript:void(0)" =
onclick=3D"ReviewManager.toggle_rating_details(this,\'rating_details_#{re=
view_id}\')">'+ReviewManager.toggle_rating_on_text+'</a> | <a =
href=3D"javascript.void(0)" =
onclick=3D"ReviewManager.toggle_comments(#{review_id});return false;" =
id=3D"comment_toggle_#{review_id}">#{comment_link_text}</a>#{edit_link}</=
p></div><div id=3D"comments_container_#{review_id}" =
class=3D"rev_comment_block" =
style=3D"display:none"></div>#{flag_form_contents}<!--[if IE 6]><div =
class=3D"ie6_bug_div">&nbsp;</div><div =
class=3D"ie6_bug_div">&nbsp;</div><![endif]-->');ReviewManager.removed_re=
view_template=3Dnew Template('<div class=3D"review" =
id=3D"review_#{review_id}"><div class=3D"rev_meta_container"><div =
class=3D"rev_meta_left"><p class=3D"rev_meta"><b>#{reviewer}</b> of =
#{org_name}</p></div><div class=3D"rev_meta_right"><p class=3D"rev_meta =
rev_date">#{reviewed_on}</p></div><div =
class=3D"clear">&nbsp;</div></div><p class=3D"rev_content" =
style=3D"color:#666644">Review removed #{last_edited_on} by =
#{removed_by}.</p></div>');ReviewManager.flag_form_template=3Dnew =
Template('<div class=3D"flag_confirmation" =
id=3D"flag_confirmation_review_#{review_id}" =
style=3D"display:none;">Thank you for sharing your concern about this =
item. We will review it as soon as possible. If you want additional =
information about this process, feel free to contact us.</div><div =
class=3D"flag_details" id=3D"flag_details_review_#{review_id}" =
style=3D"display:none;"><form action=3D"#{flag_url}" method=3D"POST" =
onsubmit=3D"FlagManager.do_flag(this,\'review\',\'#{review_id}\',ReviewMa=
nager.post_flag_handler);return false;"><input type=3D"hidden" =
name=3D"target_type" value=3D"review"/><input type=3D"hidden" =
name=3D"target_id" value=3D"#{review_id}"/><div class=3D"flag_icon"><img =
src=3D"#{flag_img}" alt=3D"Flag" style=3D"float:left;"/>Flag</div><div =
class=3D"flag_description">Please choose a reason for your concern, so =
that we can review this item to determine if it violates our <a =
href=3D"/terms_of_use.html">Terms of Use</a>.</div><div =
class=3D"flag_reasons_pulldown"><select name=3D"flag_reason" =
class=3D"flag_reasons_pulldown" =
id=3D"flag_reasons_pulldown_review_#{review_id}">#{flag_options_html}</se=
lect></div><div class=3D"flag_buttons"><input class=3D"button" =
type=3D"submit" name=3D"flag" value=3D"Flag" =
style=3D"margin-right:5px;"/><img src=3D"#{loader_img}" alt=3D"Loading =
Content" class=3D"flag_loader" id=3D"flag_loader_review_#{review_id}" =
/><input class=3D"button" id=3D"flag_cancel_button_review_#{review_id}" =
type=3D"submit" name=3D"cancel" value=3D"Cancel" =
onClick=3D"FlagManager.toggle_flag_details(this,\'review\',\'#{review_id}=
\'); return false;"/></div><div =
class=3D"clear">&nbsp;</div></form></div>');function =
get_flag_options_html(C){var A=3D'<option value=3D"">Choose a =
reason:</option>';for(var =
B=3D0;B<takedown_reason_map[C].length;B++){A+=3D'<option value =
=3D"'+takedown_reason_map[C][B][0]+'">'+takedown_reason_map[C][B][1]+"</o=
ption>"}return =
A}ReviewManager.get_review_comments_link_text=3Dfunction(A){var B=3D"Add =
a comment";if(A.comments){if(A.comments.length=3D=3D1){B=3D"1 =
comment"}else{if(A.comments.length>1){B=3DA.comments.length+" =
comments"}}}return B};ReviewManager.get_review_html=3Dfunction(A){var =
D=3D["overall","content","presentation","standards"];for(var =
F=3D0;F<D.length;F++){var C=3DD[F];var E=3DA.star_ratings[C];var =
B=3D"sr_"+C;var =
G=3D"sr_"+C+"_alttext";if(E=3D=3D0){A[B]=3DReviewManager.image_root+"/ima=
ges/ratings/notrated_on.gif";A[G]=3D"Not =
Rated"}else{A[B]=3DReviewManager.image_root+"/images/ratings/stars_"+E+".=
gif";A[G]=3DE+" =
stars."}A.comment_link_text=3DReviewManager.get_review_comments_link_text=
(A);if(A.creator&&A.can_edit){A.edit_link=3D' | <a =
href=3D"javascript:void(0)" =
onclick=3D"ReviewManager.edit_review('+A.review_id+');return =
false;">Edit your =
review</a>'}else{A.edit_link=3D""}}A.image_root=3DReviewManager.image_roo=
t;A.flag_img=3DReviewManager.image_root+"/images/flag.gif";A.loader_img=3D=
ReviewManager.image_root+"/images/loader.gif";A.flag_url=3Dflag_url;A.fla=
g_options_html=3DReviewManager.flag_options_html;A.flag_form_contents=3DR=
eviewManager.flag_form_template.evaluate(A);return =
ReviewManager.review_template.evaluate(A)};ReviewManager.handle_getreview=
s_success=3Dfunction(response){$("rev_loading_reviews").hide();var =
resp_obj=3Deval("("+response.responseText+")");if(!resp_obj.error){if(res=
p_obj.num_of_reviews){ReviewManager.number_of_reviews=3Dresp_obj.num_of_r=
eviews;ReviewManager.set_number_of_reviews(resp_obj.num_of_reviews);Revie=
wManager.number_of_reviews=3Dresp_obj.num_of_reviews}if(resp_obj.rating_a=
verage){ReviewManager.rating_average=3Dresp_obj.rating_average;ReviewMana=
ger.set_rating_img(resp_obj.rating_average);ReviewManager.rating_average=3D=
resp_obj.rating_average}}if(!resp_obj.error&&resp_obj.reviews){ReviewMana=
ger.current_reviews=3Dresp_obj.reviews;ReviewManager.show_review_list();i=
f(resp_obj.offset){ReviewManager.set_pagination_links(resp_obj.offset)}el=
se{ReviewManager.set_pagination_links(0)}}else{if(!resp_obj.error&&!resp_=
obj.reviews){$("review_list_content").innerHTML=3D"<p =
class=3D'alert'>"+ReviewManager.generic_error_msg+"</p>";$("review_list_c=
ontent").show()}else{$("review_list_content").innerHTML=3D"<p =
class=3D'alert'>"+ReviewManager.generic_error_msg+"</p>";$("review_list_c=
ontent").show()}}};ReviewManager.show_review_list=3Dfunction(){var =
C=3D"";for(var =
A=3D0;A<ReviewManager.current_reviews.length;A++){if(ReviewManager.curren=
t_reviews[A].status=3D=3D"taken_down"||ReviewManager.current_reviews[A].s=
tatus=3D=3D"removed_by_user"){C+=3DReviewManager.removed_review_template.=
evaluate(ReviewManager.current_reviews[A])}else{var =
B=3DReviewManager.current_reviews[A];if(!B.html_edited){B.review_content=3D=
TruncateText.truncate(B.review_content,review_cutoff);B.html_edited=3Dtru=
e}C+=3DReviewManager.get_review_html(ReviewManager.current_reviews[A])}}$=
("review_list_content").innerHTML=3DC;$("review_list_content").show();$("=
rev_pag_links_top").show()};ReviewManager.handle_getreviews_failure=3Dfun=
ction(A){$("rev_loading_reviews").hide();$("review_list").innerHTML=3D"<p=
 =
class=3D'alert'>"+ReviewManager.generic_error_msg+"</p>"};ReviewManager.h=
ide_ratings=3Dfunction(){var =
B=3Ddocument.getElementById("rev_content");if(B){$("rev_content").hide()}=
var =
A=3Ddocument.getElementById("rev_launcher");if(A){$("rev_launcher").show(=
)}showElement("resource_content")};ReviewManager.star_over=3Dfunction(G,B=
,E){var A=3D"";if(E){A=3D"edit_"}for(var C=3D1;C<=3DB;C++){var =
D=3DA+G+"_"+C;var =
F=3Ddocument.getElementById(D);F.src=3DReviewManager.image_root+"/images/=
ratings/star_on.gif"}};ReviewManager.show_current_star_rating=3Dfunction(=
H,F){var C=3Dnull;var =
B=3D"";if(!F){C=3DReviewManager.rating_data[H]}else{C=3DReviewManager.edi=
t_rating_data[H];B=3D"edit_"}for(var D=3D1;D<=3D5;D++){var =
E=3DB+H+"_"+D;var =
G=3Ddocument.getElementById(E);if(D<=3DC){G.src=3DReviewManager.image_roo=
t+"/images/ratings/star_on.gif"}else{G.src=3DReviewManager.image_root+"/i=
mages/ratings/star_off.gif"}}var =
A=3Ddocument.getElementById(B+H+"_none");if(A){if(C=3D=3D0){A.src=3DRevie=
wManager.image_root+"/images/ratings/notrated_on.gif"}else{A.src=3DReview=
Manager.image_root+"/images/ratings/notrated_off.gif"}}};ReviewManager.st=
ar_out=3Dfunction(B,A){ReviewManager.show_current_star_rating(B,A)};Revie=
wManager.get_review_data=3Dfunction(C){var D=3Dnull;for(var =
B=3D0;B<ReviewManager.current_reviews.length;B++){var =
A=3DReviewManager.current_reviews[B];if(A.review_id&&A.review_id=3D=3DC){=
D=3DA;break}}return D};ReviewManager.hide_comments_text=3D"Hide =
comments";ReviewManager.get_comment_div_id=3Dfunction(A){return"comments_=
container_"+A};ReviewManager.comments_are_visible=3Dfunction(B){if($("com=
ment_toggle_"+B)){var =
A=3D$("comment_toggle_"+B).innerHTML;if(A=3D=3DReviewManager.hide_comment=
s_text){return true}else{return =
false}}};ReviewManager.flag_toggle_comments=3Dfunction(A){if(ReviewManage=
r.comments_are_visible(A)){ReviewManager.toggle_comments(A)}};ReviewManag=
er.toggle_comments=3Dfunction(B){if(ReviewManager.comments_are_visible(B)=
){ReviewManager.hide_comments(B)}else{ReviewManager.display_comments(B)}i=
f(IS_IE7){for(var =
A=3D0;A<ReviewManager.current_reviews.length;A++){if(ReviewManager.commen=
ts_are_visible(ReviewManager.current_reviews[A]["review_id"])){ReviewMana=
ger.display_comments(ReviewManager.current_reviews[A]["review_id"])}}}};R=
eviewManager.hide_comments=3Dfunction(A){var =
B=3DReviewManager.get_comment_div_id(A);CommentManager.hide_comments(B);$=
("comment_toggle_"+A).innerHTML=3DReviewManager.get_review_comments_link_=
text(ReviewManager.get_review_data(A))};ReviewManager.display_comments=3D=
function(B){var C=3DReviewManager.get_comment_div_id(B);var =
A=3DReviewManager.get_review_data(B);if(!A){return }var =
D=3D[];if(A.comments){D=3DA.comments}CommentManager.show_comments("review=
",A.review_id,C,D);$("comment_toggle_"+B).innerHTML=3DReviewManager.hide_=
comments_text};ReviewManager.edit_review_template=3Dnew =
Template('<h3>Edit your review:</h3><p class=3D"alert" =
id=3D"edit_review_error" style=3D"display:none"></p><div =
class=3D"review_box"><div class=3D"review_box_left"><div =
class=3D"star_field"><b>Overall rating</b>: <a =
id=3D"edit_overall_link_1" href=3D"javascript:void(0)"><img =
class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"1 star" =
id=3D"edit_overall_1" /></a><a id=3D"edit_overall_link_2" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"2 stars" =
id=3D"edit_overall_2" /></a><a id=3D"edit_overall_link_3" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"3 stars" =
id=3D"edit_overall_3" /></a><a id=3D"edit_overall_link_4" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"4 stars" =
id=3D"edit_overall_4" /></a><a id=3D"edit_overall_link_5" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"5 stars" =
id=3D"edit_overall_5" /></a><a id=3D"edit_overall_link_none" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set_none" =
src=3D"#{image_root}/images/ratings/notrated_on.gif" alt=3D"Not Rated" =
id=3D"edit_overall_none" /></a></div><p class=3D"alert" =
style=3D"display:none" id=3D"edit_review_text_error"></p><form =
id=3D"edit_review_form" class=3D"review_form" action=3D"#" =
onsubmit=3D"return false;" method=3D"post"><input type=3D"hidden" =
name=3D"edit_review_id" id=3D"edit_review_id" value=3D"#{review_id}" =
/><label class=3D"review_form_name_label">Your Name:</label> <input =
class=3D"review_form_name_input" type=3D"text" name=3D"name" =
id=3D"edit_review_name" /> <label for=3D"review_text">Your =
review:</label><br /><textarea cols=3D"20" rows=3D"8" =
class=3D"review_text" =
id=3D"edit_review_text">#{review_content}</textarea><div =
class=3D"rev_form_button_container"><div class=3D"rev_form_left_col =
rev_form_button_col"><a href=3D"javascript:void(0);return false;" =
style=3D"background:url(#{image_root}/images/remove_x.gif) no-repeat =
left;padding-left:18px;" =
onclick=3D"ReviewManager.delete_review(#{review_id});return =
false;">Delete Review</a></div><div class=3D"rev_form_right_col =
rev_form_button_col"><div style=3D"text-align:right"><img =
src=3D"#{image_root}/images/loader.gif" =
id=3D"edit_rev_review_submit_loader" alt=3D"Loading Content" =
style=3D"display:none" /> <input type=3D"submit" value=3D"Save changes" =
class=3D"button" =
onclick=3D"ReviewManager.save_edited_review(#{review_id});return false;" =
style=3D"margin-right:8px" /> <input type=3D"submit" value=3D"Cancel" =
class=3D"button" =
onclick=3D"ReviewManager.cancel_edit_review(#{review_id});return false;" =
/></div></div></div></form></div><div =
class=3D"review_box_right"><h4>Rating Details (optional):</h4><div =
class=3D"opt_star_ratings"><div class=3D"star_field =
star_field_opt">Content: <a id=3D"edit_content_link_1" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"1 star" =
id=3D"edit_content_1" /></a><a id=3D"edit_content_link_2" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"2 stars" =
id=3D"edit_content_2" /></a><a id=3D"edit_content_link_3" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"3 stars" =
id=3D"edit_content_3" /></a><a id=3D"edit_content_link_4" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"4 stars" =
id=3D"edit_content_4" /></a><a id=3D"edit_content_link_5" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"5 stars" =
id=3D"edit_content_5" /></a><a id=3D"edit_content_link_none" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set_none" =
src=3D"#{image_root}/images/ratings/notrated_on.gif" alt=3D"Not Rated" =
id=3D"edit_content_none" /></a></div><div class=3D"star_field =
star_field_opt">Presentation: <a id=3D"edit_presentation_link_1" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"1 star" =
id=3D"edit_presentation_1" /></a><a id=3D"edit_presentation_link_2" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"2 stars" =
id=3D"edit_presentation_2" /></a><a id=3D"edit_presentation_link_3" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"3 stars" =
id=3D"edit_presentation_3" /></a><a id=3D"edit_presentation_link_4" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"4 stars" =
id=3D"edit_presentation_4" /></a><a id=3D"edit_presentation_link_5" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"5 stars" =
id=3D"edit_presentation_5" /></a><a id=3D"edit_presentation_link_none" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set_none" =
src=3D"#{image_root}/images/ratings/notrated_on.gif" alt=3D"Not Rated" =
id=3D"edit_presentation_none" /></a></div><div class=3D"star_field =
star_field_opt">Standards alignment: <a id=3D"edit_standards_link_1" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"1 star" =
id=3D"edit_standards_1" /></a><a id=3D"edit_standards_link_2" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"2 stars" =
id=3D"edit_standards_2" /></a><a id=3D"edit_standards_link_3" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"3 stars" =
id=3D"edit_standards_3" /></a><a id=3D"edit_standards_link_4" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"4 stars" =
id=3D"edit_standards_4" /></a><a id=3D"edit_standards_link_5" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set" =
src=3D"#{image_root}/images/ratings/star_off.gif" alt=3D"5 stars" =
id=3D"edit_standards_5" /></a><a id=3D"edit_standards_link_none" =
href=3D"javascript:void(0)"><img class=3D"star_rating_set_none" =
src=3D"#{image_root}/images/ratings/notrated_on.gif" alt=3D"Not Rated" =
id=3D"edit_standards_none" /></a></div></div></div><div =
class=3D"clear"></div></div>');ReviewManager.edit_review=3Dfunction(D){va=
r =
A=3DReviewManager.get_review_data(D);if(A){ReviewManager.show_review_list=
();if(A.star_ratings){ReviewManager.edit_rating_data.overall=3DA.star_rat=
ings["overall"];ReviewManager.edit_rating_data.content=3DA.star_ratings["=
content"];ReviewManager.edit_rating_data.standards=3DA.star_ratings["stan=
dards"];ReviewManager.edit_rating_data.presentation=3DA.star_ratings["pre=
sentation"]}var C=3Ddocument.getElementById("review_"+D);if(C){var =
B=3D{};B.review_id=3DD;B.image_root=3DReviewManager.image_root;B.review_c=
ontent=3DA.orig_content;var =
E=3DReviewManager.edit_review_template.evaluate(B);C.innerHTML=3DE;Review=
Manager.set_star_event_handlers(true);ReviewManager.show_current_star_rat=
ing("overall",true);ReviewManager.show_current_star_rating("content",true=
);ReviewManager.show_current_star_rating("standards",true);ReviewManager.=
show_current_star_rating("presentation",true)}}};ReviewManager.save_edite=
d_review=3Dfunction(A){$("edit_rev_review_submit_loader").show();$("edit_=
review_text_error").hide();var =
D=3D{};D.review_id=3D$F("edit_review_id");D.review_text=3Dstrip($F("edit_=
review_text"));if(!D.review_text){$("edit_review_text_error").innerHTML=3D=
"Please enter a review and =
re-submit.";$("edit_review_text_error").show();$("edit_rev_review_submit_=
loader").hide();return =
}D.star_overall=3DReviewManager.edit_rating_data.overall;D.star_content=3D=
ReviewManager.edit_rating_data.content;D.star_presentation=3DReviewManage=
r.edit_rating_data.presentation;D.star_standards=3DReviewManager.edit_rat=
ing_data.standards;var =
B=3D$F("edit_review_name");if(!B){B=3D""}D.review_name=3DB;if(edit_review=
_url){var C=3Dnew =
Ajax.Request(edit_review_url,{method:"post",parameters:D,onSuccess:Review=
Manager.handle_edit_review_submit_success,onFailure:ReviewManager.handle_=
edit_review_submit_failure})}else{$("edit_review_text_error").innerHTML=3D=
ReviewManager.generic_error_msg;$("edit_review_text_error").show();$("edi=
t_rev_review_submit_loader").hide()}};ReviewManager.handle_edit_review_su=
bmit_success=3Dfunction(response){$("edit_rev_review_submit_loader").hide=
();var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){$("edit=
_review_text_error").innerHTML=3Dresp_obj.error_msg;$("edit_review_text_e=
rror").show()}else{if(resp_obj.review_id&&resp_obj.review_data){for(var =
i=3D0;i<ReviewManager.current_reviews.length;i++){if(ReviewManager.curren=
t_reviews[i]["review_id"]=3D=3Dresp_obj.review_id){ReviewManager.current_=
reviews[i]=3Dresp_obj.review_data;ReviewManager.show_review_list();if(res=
p_obj.num_of_reviews){ReviewManager.set_number_of_reviews(resp_obj.num_of=
_reviews);ReviewManager.number_of_reviews=3Dresp_obj.num_of_reviews}if(re=
sp_obj.rating_average){ReviewManager.set_rating_img(resp_obj.rating_avera=
ge);ReviewManager.rating_average=3Dresp_obj.rating_average}break}}}}};Rev=
iewManager.handle_edit_review_submit_failure=3Dfunction(A){$("edit_rev_re=
view_submit_loader").hide();$("edit_review_text_error").innerHTML=3DRevie=
wManager.generic_error_msg;$("edit_review_text_error").show()};ReviewMana=
ger.cancel_edit_review=3Dfunction(A){ReviewManager.show_review_list()};fu=
nction =
CommentManager(){}CommentManager.image_root=3DReviewManager.image_root;Co=
mmentManager.init=3Dfunction(){CommentManager.flag_options_html=3Dget_fla=
g_options_html("review_comment")};CommentManager.current_target_type=3Dnu=
ll;CommentManager.current_target_id=3Dnull;CommentManager.comment_templat=
e=3Dnew Template('<div class=3D"comment" =
id=3D"comment_#{comment_id}"><div class=3D"comment_meta_container"><div =
class=3D"cmeta_left"><p>Comment by: <b>#{commenter}</b> of =
#{org_name}:<br />#{date}</p></div><div class=3D"cmeta_right"><p =
class=3D"rev_flag"><a href=3D"javascript:void(0)" =
onClick=3D"FlagManager.toggle_flag_details(this,\'review_comment\',\'#{co=
mment_id}\');" id=3D"flag_link_review_comment_#{comment_id}"><img =
src=3D"#{image_root}/images/flag.gif" alt=3D"Flag" =
style=3D"float:left;"/>Flag</a></p></div><div =
class=3D"clear">&nbsp;</div></div><div =
class=3D"comment_content">#{comment_content}</div>#{edit_comment_text}</d=
iv>');CommentManager.comment_form_template=3Dnew Template('<div =
class=3D"comment_form_container"><form class=3D"comment_form" =
id=3D"comments_form_#{target_type}_#{target_id}" =
action=3D"#{comment_submit_url}" method=3D"post"><label =
class=3D"comment_form_name_label" =
for=3D"comments_name_#{target_type}_#{target_id}"></label><input =
class=3D"comment_form_name_input" =
id=3D"comments_name_#{target_type}_#{target_id}" type=3D"text" =
name=3D"comment_name" /><label =
for=3D"comments_#{target_type}_#{target_id}">Add a comment:</label><p =
class=3D"alert" style=3D"display:none" =
id=3D"comment_error_#{target_type}_#{target_id}"></p><br /><textarea =
id=3D"comments_#{target_type}_#{target_id}" cols=3D"8" =
rows=3D"8"></textarea><br /><input type=3D"submit" value=3D"Post your =
comment"  =
onclick=3D"CommentManager.submit_comment(\'#{target_type}\',#{target_id})=
;return false;" class=3D"button" /><img =
src=3D"#{image_root}/images/loader.gif" =
id=3D"comment_loader_#{target_type}_#{target_id}" alt=3D"Loading =
Content" style=3D"display:none;padding-left:5px" =
/></form></div>');CommentManager.fresh_comment_template=3Dnew =
Template('<div class=3D"comment" id=3D"comment_#{comment_id}"><div =
class=3D"comment_meta_container"><div class=3D"cmeta_left"><p>Comment =
by: <b>#{commenter}</b> of #{org_name}:<br />#{date}</p></div><div =
class=3D"cmeta_right"><!-- No flag on new comment --></div><div =
class=3D"clear">&nbsp;</div></div><div =
class=3D"comment_content">#{comment_content}</div>#{edit_comment_text}</d=
iv>');CommentManager.flag_form_template=3Dnew Template('<div =
class=3D"flag_confirmation" =
id=3D"flag_confirmation_review_comment_#{comment_id}" =
style=3D"display:none;">Thank you for sharing your concern about this =
item. We will review it as soon as possible. If you want additional =
information about this process, feel free to contact us.</div><div =
class=3D"flag_details" id=3D"flag_details_review_comment_#{comment_id}" =
style=3D"display:none;"><form action=3D"#{flag_url}" method=3D"POST" =
onsubmit=3D"FlagManager.do_flag(this,\'review_comment\',\'#{comment_id}\'=
,CommentManager.post_flag_handler);return false;"><input type=3D"hidden" =
name=3D"target_type" value=3D"review_comment"/><input type=3D"hidden" =
name=3D"target_id" value=3D"#{comment_id}"/><div =
class=3D"flag_icon"><img src=3D"#{image_root}/images/flag.gif" =
alt=3D"Flag" style=3D"float:left;"/>Flag</div><div =
class=3D"flag_description">Please choose a reason for your concern, so =
that we can review this item to determine if it violates our <a =
href=3D"/terms_of_use.html">Terms of Use</a>.</div><div =
class=3D"flag_reasons_pulldown"><select name=3D"flag_reason" =
class=3D"flag_reasons_pulldown" =
id=3D"flag_reasons_pulldown_review_comment_#{comment_id}">#{flag_options_=
html}</select></div><div class=3D"flag_buttons"><input class=3D"button" =
type=3D"submit" name=3D"flag" value=3D"Flag" =
style=3D"margin-right:5px;"/><img =
src=3D"#{image_root}/images/loader.gif" alt=3D"Loading Content" =
class=3D"flag_loader" id=3D"flag_loader_review_comment_#{comment_id}" =
/><input class=3D"button" =
id=3D"flag_cancel_button_review_comment_#{comment_id}" type=3D"submit" =
name=3D"cancel" value=3D"Cancel" =
onClick=3D"FlagManager.toggle_flag_details(this,\'review_comment\',\'#{co=
mment_id}\'); return false;"/></div><div =
class=3D"clear">&nbsp;</div></form></div>');CommentManager.edit_comment_f=
orm_template=3Dnew Template('<div class=3D"comment_form_container"><form =
class=3D"comment_form" =
id=3D"edit_comments_form_#{target_type}_#{target_id}" =
action=3D"#{comment_submit_url}" method=3D"post"><label =
class=3D"comment_form_name_label" =
for=3D"comments_name_#{target_type}_#{target_id}"></label> <input =
class=3D"comment_form_name_input" =
id=3D"edit_comments_name_#{target_type}_#{target_id}" type=3D"text" =
name=3D"comment_name" /> <label =
for=3D"comments_#{target_type}_#{target_id}">Edit your =
comment:</label><p class=3D"alert" style=3D"display:none" =
id=3D"edit_comment_error_#{target_type}_#{target_id}"></p><br =
/><textarea id=3D"edit_comments_#{target_type}_#{target_id}" cols=3D"8" =
rows=3D"8">#{orig_content}</textarea><div =
class=3D"comment_edit_actions"><div class=3D"cea_left_col"><a =
href=3D"javascript:void(0);return false;" =
style=3D"background:url(#{image_root}/images/remove_x.gif) no-repeat =
left;padding-left:18px;" =
onclick=3D"CommentManager.delete_comment(#{comment_id},\'#{target_type}\'=
,#{target_id});return false;">Delete Comment</a></div><div =
class=3D"cea_right_col"><input type=3D"submit" value=3D"Save changes" =
onclick=3D"CommentManager.submit_edited_comment(#{comment_id},\'#{target_=
type}\',#{target_id});return false;" class=3D"button" /> <input =
type=3D"submit" class=3D"button" value=3D"Cancel" =
style=3D"padding-left:15px" =
onclick=3D"CommentManager.hide_edit_interface(#{comment_id},\'#{target_ty=
pe}\',#{target_id});return false;" /> <img =
src=3D"#{image_root}/images/loader.gif" =
id=3D"edit_comment_loader_#{target_type}_#{target_id}" alt=3D"Loading =
Content" style=3D"display:none;padding-left:5px" /></div><div =
class=3D"clear">&nbsp;</div></div></form></div>');CommentManager.removed_=
comment_form_template=3Dnew Template('<div class=3D"comment" =
id=3D"comment_#{comment_id}"><div class=3D"comment_meta_container"><div =
class=3D"cmeta_left"><p>Comment removed by: <b>#{removed_by}</b>:<br =
/>originally posted #{date}</p></div><div =
class=3D"cmeta_right"></div><div class=3D"clear">&nbsp;</div></div><div =
class=3D"comment_content" style=3D"color:#666644">This comment was =
removed #{last_edited_on} by the =
#{removed_by}.</div></div>');CommentManager.post_flag_handler=3Dfunction(=
response){var =
resp_obj=3Deval("("+response.responseText+")");$("flag_confirmation_revie=
w_comment_"+resp_obj.target_id).show();$("flag_loader_review_comment_"+re=
sp_obj.target_id).hide();$("flag_details_review_comment_"+resp_obj.target=
_id).hide();$("flag_link_review_comment_"+resp_obj.target_id).hide()};Com=
mentManager.hide_comments=3Dfunction(A){hideElement(A)};CommentManager.sh=
ow_comments=3Dfunction(B,H,F,E){var =
D=3DCommentManager.comment_form_template.evaluate({target_type:B,target_i=
d:H,comment_submit_url:submit_comment_url,image_root:ReviewManager.image_=
root});var I=3Ddocument.getElementById(F);if(I){var G=3D'<div =
class=3D"comments_container">'+D;G+=3D'<div =
id=3D"comment_list_'+B+"_"+H+'">';if(E){for(var =
C=3D0;C<E.length;C++){var =
A=3DE[C];A.image_root=3DCommentManager.image_root;A.flag_options_html=3DC=
ommentManager.flag_options_html;A.flag_url=3Dflag_url;if(A.creator&&A.can=
_edit){A.edit_comment_text=3D'<p class=3D"edit_comment_link"><a =
href=3D"javascript:void(0)" =
onclick=3D"CommentManager.show_edit_interface('+A.comment_id+",'"+B+"',"+=
H+');return false;">Edit your =
comment</a></p>'}if(A.status=3D=3D"taken_down"||A.status=3D=3D"removed_by=
_user"){G+=3DCommentManager.removed_comment_form_template.evaluate(A)}els=
e{if(A.is_new_comment){G+=3DCommentManager.fresh_comment_template.evaluat=
e(A)}else{if(!A.html_edited){A.comment_content=3DTruncateText.truncate(A.=
comment_content,comment_cutoff);A.html_edited=3Dtrue}G+=3DCommentManager.=
comment_template.evaluate(A)}G+=3DCommentManager.flag_form_template.evalu=
ate(A)}}}G+=3D"</div></div>";I.innerHTML=3DG;showElement(F)}};CommentMana=
ger.hide_edit_interface=3Dfunction(B,D,A){if(D=3D=3D"review"){var =
E=3DCommentManager.get_review_comments(A);var =
C=3DReviewManager.get_comment_div_id(A);CommentManager.show_comments(D,A,=
C,E)}};CommentManager.get_review_comments=3Dfunction(B){var =
C=3D[];for(var =
A=3D0;A<ReviewManager.current_reviews.length;A++){if(ReviewManager.curren=
t_reviews[A].review_id=3D=3DB){C=3DReviewManager.current_reviews[A].comme=
nts;break}}return =
C};CommentManager.get_comment_dict=3Dfunction(E,C,D){var =
A=3Dnull;if(E=3D=3D"review"){var =
F=3DCommentManager.get_review_comments(C);for(var =
B=3D0;B<F.length;B++){if(F[B]["comment_id"]=3D=3DD){A=3DF[B];break}}}retu=
rn =
A};CommentManager.delete_comment=3Dfunction(C,D,B){$("edit_comment_error_=
"+D+"_"+B).hide();var A=3D"Please confirm that you would like to delete =
this =
comment:";if(confirm(A)){showElement("edit_comment_loader_"+D+"_"+B,"inli=
ne");if(delete_comment_url){post_data=3D{};post_data.comment_id=3DC;post_=
data.target_type=3DD;post_data.target_id=3DB;CommentManager.current_targe=
t_type=3DD;CommentManager.current_target_id=3DB;var E=3Dnew =
Ajax.Request(delete_comment_url,{method:"post",parameters:post_data,onSuc=
cess:CommentManager.handle_comment_delete_success,onFailure:CommentManage=
r.handle_comment_delete_failure})}}};CommentManager.handle_comment_delete=
_success=3Dfunction(A){CommentManager.handle_comment_edit_success(A)};Com=
mentManager.handle_comment_delete_failure=3Dfunction(A){CommentManager.ha=
ndle_comment_edit_failure(A)};CommentManager.submit_edited_comment=3Dfunc=
tion(D,E,C){$("edit_comment_error_"+E+"_"+C).hide();showElement("edit_com=
ment_loader_"+E+"_"+C,"inline");var =
A=3Dstrip($F("edit_comments_"+E+"_"+C));if(!A){$("edit_comment_error_"+E+=
"_"+C).innerHTML=3D"Please enter some text and =
re-submit.";$("edit_comment_error_"+E+"_"+C).show();hideElement("edit_com=
ment_loader_"+E+"_"+C);return }var =
B=3Dedit_comment_url;if(B){post_data=3D{};post_data.comment_text=3DA;post=
_data.comment_id=3DD;post_data.target_type=3DE;post_data.target_id=3DC;va=
r =
G=3D$F("edit_comments_name_"+E+"_"+C);if(!G){G=3D""}post_data.comment_nam=
e=3DG;CommentManager.current_target_type=3DE;CommentManager.current_targe=
t_id=3DC;var F=3Dnew =
Ajax.Request(B,{method:"post",parameters:post_data,onSuccess:CommentManag=
er.handle_comment_edit_success,onFailure:CommentManager.handle_comment_ed=
it_failure})}else{hideElement("edit_comment_loader_"+E+"_"+C);$("edit_com=
ment_error_"+E+"_"+C).innerHTML=3DReviewManager.generic_error_msg;$("edit=
_comment_error_"+E+"_"+C).show()}};CommentManager.handle_comment_edit_suc=
cess=3Dfunction(response){var =
resp_obj=3Deval("("+response.responseText+")");var =
target_type=3Dresp_obj.target_type;var =
target_id=3Dresp_obj.target_id;hideElement("edit_comment_loader_"+target_=
type+"_"+target_id);if(resp_obj.error){$("edit_comment_error_"+target_typ=
e+"_"+target_id).innerHTML=3Dresp_obj.error_msg;$("edit_comment_error_"+t=
arget_type+"_"+target_id).show()}else{if(target_type=3D=3D"review"){for(v=
ar =
i=3D0;i<ReviewManager.current_reviews.length;i++){if(ReviewManager.curren=
t_reviews[i].review_id=3D=3Dtarget_id){for(var =
j=3D0;j<ReviewManager.current_reviews[i].comments.length;j++){if(ReviewMa=
nager.current_reviews[i].comments[j]["comment_id"]=3D=3Dresp_obj.comment_=
dict["comment_id"]){ReviewManager.current_reviews[i].comments[j]=3Dresp_o=
bj.comment_dict;break}}break}}var =
comments=3DCommentManager.get_review_comments(target_id);var =
div_id=3DReviewManager.get_comment_div_id(target_id);CommentManager.show_=
comments(target_type,target_id,div_id,comments)}}};CommentManager.handle_=
comment_edit_failure=3Dfunction(A){var =
C=3DCommentManager.current_target_type;var =
B=3DCommentManager.current_target_id;hideElement("edit_comment_loader_"+C=
+"_"+B);$("edit_comment_error_"+C+"_"+B).innerHTML=3DReviewManager.generi=
c_error_msg;$("edit_comment_error_"+C+"_"+B).show()};CommentManager.show_=
edit_interface=3Dfunction(C,E,B){if(E=3D=3D"review"){var =
H=3DCommentManager.get_review_comments(B);var =
D=3DReviewManager.get_comment_div_id(B);CommentManager.show_comments(E,B,=
D,H);var A=3DCommentManager.get_comment_dict(E,B,C);if(A){var =
G=3Ddocument.getElementById("comment_"+C);var =
F=3DCommentManager.edit_comment_form_template.evaluate(A);G.innerHTML=3DF=
}}};CommentManager.submit_comment=3Dfunction(D,C){$("comment_error_"+D+"_=
"+C).hide();showElement("comment_loader_"+D+"_"+C,"inline");var =
A=3Dstrip($F("comments_"+D+"_"+C));if(!A){$("comment_error_"+D+"_"+C).inn=
erHTML=3D"Please enter some text and =
re-submit.";$("comment_error_"+D+"_"+C).show();hideElement("comment_loade=
r_"+D+"_"+C);return }var =
B=3Dsubmit_comment_url;if(B){post_data=3D{};post_data.comment_text=3DA;po=
st_data.target_type=3DD;post_data.target_id=3DC;var =
F=3D$F("comments_name_"+D+"_"+C);if(!F){F=3D""}post_data.comment_name=3DF=
;CommentManager.current_target_type=3DD;CommentManager.current_target_id=3D=
C;var E=3Dnew =
Ajax.Request(B,{method:"post",parameters:post_data,onSuccess:CommentManag=
er.handle_comment_submit_success,onFailure:CommentManager.handle_comment_=
submit_failure})}else{hideElement("comment_loader_"+D+"_"+C);$("comment_e=
rror_"+D+"_"+C).innerHTML=3DReviewManager.generic_error_msg;$("comment_er=
ror_"+D+"_"+C).show()}};CommentManager.handle_comment_submit_success=3Dfu=
nction(response){var =
resp_obj=3Deval("("+response.responseText+")");if(resp_obj.error){hideEle=
ment("comment_loader_"+CommentManager.current_target_type+"_"+CommentMana=
ger.current_target_id);$("comment_error_"+CommentManager.current_target_t=
ype+"_"+CommentManager.current_target_id).innerHTML=3DReviewManager.gener=
ic_error_msg;$("comment_error_"+CommentManager.current_target_type+"_"+Co=
mmentManager.current_target_id).show()}else{hideElement("comment_loader_"=
+resp_obj.target_type+"_"+resp_obj.target_id);$("comments_form_"+resp_obj=
.target_type+"_"+resp_obj.target_id).hide();if(resp_obj.target_type=3D=3D=
"review"){for(var =
i=3D0;i<ReviewManager.current_reviews.length;i++){if(ReviewManager.curren=
t_reviews[i].review_id=3D=3Dresp_obj.target_id){resp_obj.comment_dict["is=
_new_comment"]=3Dtrue;ReviewManager.current_reviews[i].comments.unshift(r=
esp_obj.comment_dict);break}}var =
comments=3DCommentManager.get_review_comments(resp_obj.target_id);var =
div_id=3DReviewManager.get_comment_div_id(resp_obj.target_id);CommentMana=
ger.show_comments(resp_obj.target_type,resp_obj.target_id,div_id,comments=
)}}};CommentManager.handle_comment_submit_failure=3Dfunction(A){if(Commen=
tManager.current_target_type&&CommentManager.current_target_id){hideEleme=
nt("comment_loader_"+CommentManager.current_target_type+"_"+CommentManage=
r.current_target_id);$("comment_error_"+CommentManager.current_target_typ=
e+"_"+CommentManager.current_target_id).innerHTML=3DReviewManager.generic=
_error_msg;$("comment_error_"+CommentManager.current_target_type+"_"+Comm=
entManager.current_target_id).show()}};
------=_NextPart_000_0000_01CADD42.9DF464E0--
