From: <Saved by Windows Internet Explorer 8>
Subject: State-Journal.com - Something for Cinderella
Date: Wed, 24 Mar 2010 14:32:35 -0400
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CACB5E.D8C3DEC0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/news/article/4783765

=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>State-Journal.com - =
Something for Cinderella</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/site.js?1244689295"></SCR=
IPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/prototype.js?1241461185">=
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/effects.js?1241461185"></=
SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/dragdrop.js?1241461185"><=
/SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/controls.js?1241461185"><=
/SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/application.js?1241461185=
"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/swfobject.js?1241461185">=
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/tabpane.js?1241461185"></=
SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/javascripts/shadowbox/shadowbox.js?12=
53844115"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.state-journal.com/highslide/highslide-with-gallery.js">=
</SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
var showlocks =3D true;=0A=
</SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.state-journal.com/highslide/highslide.css"><!--[if lt =
IE 7]>=0A=
<link rel=3D"stylesheet" type=3D"text/css" =
href=3D"/highslide/highslide-ie6.css" />=0A=
<![endif]-->
<SCRIPT type=3Dtext/javascript charset=3Dutf-8=20
src=3D"http://www.state-journal.com/highslide/highslide.config.js"></SCRI=
PT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/ga.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/qos.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/qos_mps.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/swfobject.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/util.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://img.video.ap.org/inline/js/inlineutil.js"></SCRIPT>
<LINK rel=3DStylesheet type=3Dtext/css=20
href=3D"http://www.state-journal.com/stylesheets/site.css?1260733853"=20
media=3Dscreen><LINK rel=3DStylesheet type=3Dtext/css=20
href=3D"http://www.state-journal.com/stylesheets/nav.css?1241461186"=20
media=3Dscreen><LINK rel=3DStylesheet type=3Dtext/css=20
href=3D"http://www.state-journal.com/stylesheets/tab.css?1241461186" =
media=3Dscreen>
<SCRIPT type=3Dtext/javascript>
var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
try{
var pageTracker =3D _gat._getTracker("UA-398257-14");
pageTracker._trackPageview();
} catch(err) {}
</SCRIPT>
<!-- Start Quantcast tag -->
<SCRIPT type=3Dtext/javascript =
src=3D"http://edge.quantserve.com/quant.js"></SCRIPT>

<SCRIPT =
type=3Dtext/javascript>_qacct=3D"p-9e9TQPkAJlrSs";quantserve();</SCRIPT>
<NOSCRIPT>
<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18876"></HEAD>
<BODY style=3D"TEXT-ALIGN: left"><A=20
href=3D"http://www.quantcast.com/p-9e9TQPkAJlrSs" target=3D_blank><IMG=20
style=3D"DISPLAY: none" border=3D0 alt=3DQuantcast=20
src=3D"http://pixel.quantserve.com/pixel/p-9e9TQPkAJlrSs.gif" width=3D1=20
height=3D1></A> </NOSCRIPT><!-- End Quantcast tag -->
<META name=3Dverify-v1 =
content=3DdhcrYbhYXt3K10tD/gDMBUUjCtE6VN7kvEbfXdlZz7Q=3D>
<META name=3Ddix-mongrel-id content=3Dapp1>
<META name=3Dsitename content=3DStateJournal><LINK title=3DRSS =
rel=3Dalternate=20
type=3Dapplication/rss+xml href=3D"/news/rss/1699">
<TABLE id=3Dmastertable cellSpacing=3D0 cellPadding=3D0 align=3Dcenter>
  <TBODY>
  <TR>
    <TD=20
    style=3D"BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 100%; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px"=20
    id=3Dhead_p colSpan=3D2>
      <DIV id=3Dname_and_logo class=3Dnewbg>
      <DIV id=3Dlogin_box>
      <DIV style=3D"WIDTH: 680px; FLOAT: left" id=3Dlogin_form>
      <FORM method=3Dpost action=3D/news/login>
      <DIV>Email:&nbsp;<INPUT id=3Dlogin_email size=3D20 type=3Dtext=20
      name=3Dlogin[email]> &nbsp;Password:&nbsp; <INPUT =
id=3Dlogin_password size=3D15=20
      type=3Dpassword name=3Dlogin[password]>&nbsp;<INPUT =
onclick=3D"pageTracker._trackEvent('Auth','Login',$('login_email').value)=
" value=3DLogin type=3Dsubmit name=3Dcommit>=20
      &nbsp;|&nbsp; <A=20
      =
href=3D"http://www.state-journal.com/news/registration"><SMALL>Register/S=
ubscribe</SMALL></A>=20
      &nbsp;|&nbsp; <A=20
      href=3D"http://www.state-journal.com/news/login_page"><SMALL>Lost=20
      Password?</SMALL></A> </DIV></FORM></DIV>
      <DIV style=3D"WIDTH: 265px; FLOAT: right" id=3Dsearch_box>
      <FORM method=3Dpost action=3D/news/search><INPUT id=3Dadvanced =
value=3D0=20
      type=3Dhidden name=3Dadvanced> <INPUT id=3Dsearchbox=20
      onfocus=3D"$('searchbox').clear()"=20
      =
onclick=3D"pageTracker._trackEvent('Article','Search',$('searchbox').valu=
e)"=20
      value=3D"Search this Site" size=3D25 type=3Dtext =
name=3Dsearch[text]> <INPUT value=3DGo type=3Dsubmit name=3Dcommit> =
</FORM></DIV></DIV>
      <DIV style=3D"CLEAR: both; PADDING-TOP: 3px" id=3Dmain_logo>
      <DIV><A href=3D"http://www.state-journal.com/"><IMG border=3D0=20
      alt=3DStateJournal=20
      =
src=3D"http://www.state-journal.com/images/StateJournal/logo.png"></A>=20
</DIV>
      <DIV id=3Dheader_time>Wed Mar 24 2010 </DIV></DIV>
      <DIV style=3D"MARGIN: 3px; FLOAT: right"><!--/* OpenX Javascript =
Tag v2.8.2 */-->
      <SCRIPT type=3Dtext/javascript><!--//<![CDATA[
   var m3_u =3D =
(location.protocol=3D=3D'https:'?'https://ads.dixcom.com/sjads/www/delive=
ry/ajs.php':'http://ads.dixcom.com/sjads/www/delivery/ajs.php');
   var m3_r =3D Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used =3D ',';
   document.write ("<scr"+"ipt type=3D'text/javascript' src=3D'"+m3_u);
   document.write =
("?zoneid=3D2&amp;target=3D_blank&amp;blockcampaign=3D1");
   document.write ('&amp;cb=3D' + m3_r);
   if (document.MAX_used !=3D ',') document.write ("&amp;exclude=3D" + =
document.MAX_used);
   document.write (document.charset ? '&amp;charset=3D'+document.charset =
: (document.characterSet ? '&amp;charset=3D'+document.characterSet : =
''));
   document.write ("&amp;loc=3D" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=3D" + =
escape(document.referrer));
   if (document.context) document.write ("&context=3D" + =
escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=3D1");
   document.write ("'><\/scr"+"ipt>");
//]]>--></SCRIPT>
      <NOSCRIPT><A=20
      =
href=3D"http://ads.dixcom.com/sjads/www/delivery/ck.php?n=3Da164c8dd&amp;=
cb=3DINSERT_RANDOM_NUMBER_HERE"=20
      target=3D_blank><IMG border=3D0 alt=3D""=20
      =
src=3D"http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3D2&amp;cb=
=3DINSERT_RANDOM_NUMBER_HERE&amp;n=3Da164c8dd"></A></NOSCRIPT>=20
      </DIV></DIV>
      <DIV style=3D"PADDING-TOP: 1em" id=3Dtopnav>
      <UL style=3D"LIST-STYLE-TYPE: none" id=3Dnavheadings_ul>
        <LI id=3Ditem_446 class=3Dnav_item><A=20
        href=3D"http://www.state-journal.com/">Home</A> </LI>
        <LI id=3Ditem_447 class=3Dnav_item><A=20
        onclick=3D"new Ajax.Updater('nav_sections_display', =
'/nav/subnav/49', {asynchronous:true, evalScripts:true}); return false;" =

        =
href=3D"http://www.state-journal.com/news/article/4783765#">News</A> =
</LI>
        <LI id=3Ditem_560 class=3Dnav_item><A=20
        =
href=3D"http://www.state-journal.com/news/obituary_section/1696">Obituari=
es</A>=20
        </LI>
        <LI id=3Ditem_448 class=3Dnav_item><A=20
        onclick=3D"new Ajax.Updater('nav_sections_display', =
'/nav/subnav/50', {asynchronous:true, evalScripts:true}); return false;" =

        =
href=3D"http://www.state-journal.com/news/article/4783765#">Sports</A>=20
        </LI>
        <LI id=3Ditem_449 class=3Dnav_item><A=20
        onclick=3D"new Ajax.Updater('nav_sections_display', =
'/nav/subnav/51', {asynchronous:true, evalScripts:true}); return false;" =

        =
href=3D"http://www.state-journal.com/news/article/4783765#">AP</A> </LI>
        <LI id=3Ditem_451 class=3Dnav_item><A=20
        onclick=3D"new Ajax.Updater('nav_sections_display', =
'/nav/subnav/53', {asynchronous:true, evalScripts:true}); return false;" =

        =
href=3D"http://www.state-journal.com/news/article/4783765#">Services</A> =

        </LI>
        <LI id=3Ditem_452 class=3Dnav_item><A=20
        href=3D"http://www.state-journal.com/events/">Events =
Calendar</A> </LI>
        <LI id=3Ditem_453 class=3Dnav_item><A=20
        onclick=3D"new Ajax.Updater('nav_sections_display', =
'/nav/subnav/54', {asynchronous:true, evalScripts:true}); return false;" =

        =
href=3D"http://www.state-journal.com/news/article/4783765#">Citizen=20
        News</A> </LI>
        <LI id=3Ditem_1832 class=3Dnav_item><A=20
        href=3D"http://www.findkyjobs.com/">FindKYJobs</A> </LI>
        <LI id=3Ditem_455 class=3Dnav_item><A=20
        =
href=3D"http://www.state-journal.com/classifieds">Classifieds</A> </LI>
        <LI id=3Ditem_456 class=3Dnav_item><A=20
        href=3D"http://homes.state-journal.com/">Homes</A> </LI>
        <LI id=3Ditem_457 class=3Dnav_item><A=20
        =
href=3D"http://www.state-journal.com/news/dining_guide">Dining</A> </LI>
        <LI id=3Ditem_458 class=3Dnav_item><A=20
        =
href=3D"http://www.state-journal.com/news/template/printroom">Buy=20
        Photos</A> </LI>
        <LI id=3Ditem_459 class=3Dnav_item><A=20
        href=3D"http://www.state-journal.com/news/pdfs/">E-Edition</A> =
</LI>
        <LI id=3Ditem_460 class=3Dnav_item><A=20
        =
href=3D"http://www.state-journal.com/news/registration">Subscribe</A>=20
      </LI></UL></DIV>
      <DIV style=3D"MIN-HEIGHT: 20px" =
id=3Dnav_sections_display><BR></DIV></TD></TR>
  <TR>
    <TD style=3D"WIDTH: 700px; VERTICAL-ALIGN: top" id=3Dmain_content>
      <DIV style=3D"MARGIN: 5px">
      <DIV style=3D"HEIGHT: 3px"></DIV><A=20
      href=3D"http://www.state-journal.com/news">Home</A> | <A=20
      href=3D"javascript: history.go(-1)">Back</A> <!--=0A=
<a href=3D"/news/section/1699">Back To Local News</a>=0A=
-->
      <CENTER><!--Banner Ad-->
      <CENTER>
      <SCRIPT type=3Dtext/javascript><!--//<![CDATA[
   var m3_u =3D =
(location.protocol=3D=3D'https:'?'https://ads.dixcom.com/sjads/www/delive=
ry/ajs.php':'http://ads.dixcom.com/sjads/www/delivery/ajs.php');
   var m3_r =3D Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used =3D ',';
   document.write ("<scr"+"ipt type=3D'text/javascript' src=3D'"+m3_u);
   document.write =
("?zoneid=3D1&amp;target=3D_blank&amp;block=3D1&amp;blockcampaign=3D1");
   document.write ('&amp;cb=3D' + m3_r);
   if (document.MAX_used !=3D ',') document.write ("&amp;exclude=3D" + =
document.MAX_used);
   document.write ("&amp;loc=3D" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=3D" + =
escape(document.referrer));
   if (document.context) document.write ("&context=3D" + =
escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=3D1");
   document.write ("'><\/scr"+"ipt>");
//]]>--></SCRIPT>
      <NOSCRIPT><A=20
      =
href=3D"http://ads.dixcom.com/sjads/www/delivery/ck.php?n=3Daf8be645&amp;=
cb=3DINSERT_RANDOM_NUMBER_HERE"=20
      target=3D_blank><IMG border=3D0 alt=3D""=20
      =
src=3D"http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3D1&amp;n=3D=
af8be645"></A></NOSCRIPT></CENTER></CENTER>
      <H2>Something for Cinderella </H2><!-- SHARETHIS -->
      <DIV=20
      style=3D"TEXT-ALIGN: center; PADDING-BOTTOM: 3px; =
BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
FONT-SIZE: 1.2em; PADDING-TOP: 3px"><A=20
      =
href=3D"http://www.state-journal.com/news/email_story_form/4783765"><IMG =

      style=3D"VERTICAL-ALIGN: middle" title=3D"E-mail to a Friend" =
border=3D0=20
      alt=3DShare_email=20
      =
src=3D"http://www.state-journal.com/images/share_email.gif?1254929595"></=
A>=20
      <A=20
      =
href=3D"http://www.state-journal.com/news/email_story_form/4783765">E-mai=
l=20
      Story</A> &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; <A=20
      =
href=3D"http://www.state-journal.com/news/printer_friendly/4783765"><IMG =

      style=3D"VERTICAL-ALIGN: middle" title=3D"Printer Friendly" =
border=3D0=20
      alt=3DShare_print=20
      =
src=3D"http://www.state-journal.com/images/share_print.gif?1254929595"></=
A>=20
      <A =
href=3D"http://www.state-journal.com/news/printer_friendly/4783765">Print=
=20
      Story</A> &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; <A=20
      =
href=3D"http://www.state-journal.com/news/article/4783765#comment">Commen=
ts</A>=20
      &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
      <SCRIPT type=3Dtext/javascript=20
      =
src=3D"http://w.sharethis.com/button/sharethis.js#publisher=3Dae725188-8a=
8d-4fb3-8a64-764c56aefdba&amp;type=3Dwebsite&amp;send_services=3Dmyspace%=
2Caim%2Csms"></SCRIPT>
       </DIV><!-- END --><BR>
      <DIV class=3Dbyline>By Katheran Wasson</DIV>
      <DIV class=3Ddateline>March 7, 2010</DIV>
      <DIV class=3Dmcopy></DIV></DIV>
      <DIV style=3D"MARGIN: 5px" id=3D#arttext>
      <DIV class=3Dhighslide-gallery>
      <DIV class=3Dassociated_image><A id=3D"#<Image:0xb5418290>" =
class=3Dhighslide=20
      onclick=3D"return hs.expand(this)"=20
      =
href=3D"http://www.state-journal.com/images/media/20100306/photos/3d706a2=
7c59e514340a5838539cca843753225e9_dresses030610km.jpg"><IMG=20
      title=3D" State Journal/Kelly Mackey&#13;Volunteer Ann Morst helps =
Franklin County High School senior Teairra Simmons try on shoes at =
Cinderella's Closet."=20
      alt=3D"State Journal/Kelly Mackey&#13;Volunteer Ann Morst helps =
Franklin County High School senior Teairra Simmons try on shoes at =
Cinderella's Closet."=20
      =
src=3D"http://www.state-journal.com/images/media/20100306/photos/3d706a27=
c59e514340a5838539cca843753225e9_dresses030610km-thumb.jpg?1267919750"=20
      width=3D144 height=3D102></A>=20
      <DIV class=3Dhighslide-caption>State Journal/Kelly Mackey =
Volunteer Ann=20
      Morst helps Franklin County High School senior Teairra Simmons try =
on=20
      shoes at Cinderella's Closet.</DIV></DIV>
      <DIV class=3Dassociated_image><A id=3D"#<Image:0xb5418268>" =
class=3Dhighslide=20
      onclick=3D"return hs.expand(this)"=20
      =
href=3D"http://www.state-journal.com/images/media/20100306/photos/299894b=
372a544ca8ac50248d160cfe23505c33a_earring030610km.jpg"><IMG=20
      title=3D" State Journal/Kelly Mackey&#13;Franklin County High =
School senior Miranda Eastman tries on a pair of earrings at =
Cinderella's Closet."=20
      alt=3D"State Journal/Kelly Mackey&#13;Franklin County High School =
senior Miranda Eastman tries on a pair of earrings at Cinderella's =
Closet."=20
      =
src=3D"http://www.state-journal.com/images/media/20100306/photos/299894b3=
72a544ca8ac50248d160cfe23505c33a_earring030610km-thumb.jpg?1267919817"=20
      width=3D102 height=3D144></A>=20
      <DIV class=3Dhighslide-caption>State Journal/Kelly Mackey Franklin =
County=20
      High School senior Miranda Eastman tries on a pair of earrings at=20
      Cinderella's Closet.</DIV></DIV></DIV>
      <P>
      <P>Wearing a long, black prom dress, a teenage girl looked into =
the=20
      mirror, smiled and blushed.</P>
      <P><SPAN>=E2=80=9CThat=E2=80=99s definitely the one,=E2=80=9D said =
the Cinderella=E2=80=99s Closet=20
      volunteer standing next to her in the gym at First United =
Methodist=20
      Church.</SPAN></P>
      <P><SPAN>Cinderella=E2=80=99s Closet paired 71 low-income =
teenagers with free prom=20
      dresses, shoes and jewelry Saturday. The annual tradition can cost =

      hundreds, a price tag some families just can=E2=80=99t =
afford.</SPAN></P>
      <P><SPAN>=E2=80=9CI guess amazing is the word for it =E2=80=93 it =
all comes down to that=20
      smile,=E2=80=9D said Amy Nance, coordinator of the Youth Services =
Center at=20
      Franklin County High School and one of the event=E2=80=99s =
organizers.</SPAN></P>
      <P><SPAN>=E2=80=9CWe=E2=80=99ve had girls look in the mirror and =
burst into tears because=20
      they look so pretty, and these are girls who could not afford to =
go to=20
      prom otherwise.=E2=80=9D</SPAN></P>
      <P><SPAN>Nance and Betty Lawson, student support specialist for =
Western=20
      Hills High School and Bondurant Middle School, announced the =
effort last=20
      March.</SPAN></P>
      <P><SPAN>Since then, the women have received more than 500 dresses =
from=20
      the community, dress shops and clothing designers. They purchased =
dozens=20
      of pairs of high heels at Shoe Carnival at a discount =
rate.</SPAN></P>
      <P><SPAN>=E2=80=9CHow many thousands of dollars are in this =
room?=E2=80=9D Nance said,=20
      looking at the rainbow-colored rows of dresses.&nbsp;</SPAN></P>
      <P><SPAN>High school seniors from all three local high schools, =
Owen and=20
      Bullitt counties participated. To qualify, girls met income =
guidelines or=20
      faced special circumstances, like recent layoffs in the family, =
Nance=20
      said.&nbsp;</SPAN></P>
      <P><SPAN>Next year they hope to give prom dresses to 200 =
girls.</SPAN></P>
      <P><SPAN>=E2=80=9CWe didn=E2=80=99t turn anyone away,=E2=80=9D she =
said, adding that about 10 more=20
      girls would receive dresses in the coming weeks.</SPAN></P>
      <P><SPAN>More than 100 Frankfort residents gave their time to the =
effort,=20
      many as =E2=80=9Cfairy godmothers=E2=80=9D helping girls choose =
dresses and accessories.=20
      The women zipped zippers and tied sashes, buckled bracelets and =
slipped=20
      shoes on the girls=E2=80=99 feet.</SPAN></P>
      <P><SPAN>=E2=80=9CI=E2=80=99m not picky,=E2=80=9D said Johanna =
Cornish, as she stood between two=20
      racks of dresses Saturday.&nbsp;</SPAN></P>
      <P><SPAN>She walked toward a dressing room with two =E2=80=9Cfairy =
godmothers=E2=80=9D=20
      behind her, their arms filled with red, blue and peach =
taffeta.</SPAN></P>
      <P><SPAN>Johanna stepped out from behind the curtain wearing a =
long, white=20
      dress with red flowers and a sash, and twirled in front of a=20
      mirror.&nbsp;</SPAN></P>
      <P><SPAN>After trying on four more picks, she went back to the=20
      first.</SPAN></P>
      <P><SPAN>=E2=80=9CI just really like red and white,=E2=80=9D she =
said. =E2=80=9CRed is my favorite=20
      color.=E2=80=9D</SPAN></P>
      <P><SPAN>Sewing machines whirled down the hall, as volunteer =
seamstresses=20
      folded and tucked dresses until they fit perfectly. Others cooked =
food for=20
      the volunteers, who spent all day on their feet.</SPAN></P>
      <P><SPAN>Volunteers came from First United Methodist Church, local =
schools=20
      and the community at large.</SPAN></P>
      <P><SPAN>Beth Caffery, curator of collections at Liberty Hall, =
heard about=20
      Cinderella=E2=80=99s Closet through word of mouth and online. She =
spent the day=20
      working as a fairy godmother .</SPAN></P>
      <P><SPAN>=E2=80=9CIt reminds me of what it was like looking for my =
own prom dress,=20
      and it=E2=80=99s fun to get to see these girls be a part of =
that,=E2=80=9D she=20
      said.</SPAN></P>
      <P><SPAN>=E2=80=9CI think every girl deserves to go to prom and =
have the dress of=20
      her dreams.=E2=80=9D</SPAN></P>
      <P><SPAN>Caffery said she cried at least three times =
Saturday.</SPAN></P>
      <P><SPAN>=E2=80=9CI can=E2=80=99t even put it into words,=E2=80=9D =
she said. =E2=80=9CI just hope these=20
      girls leave here today knowing there are other people out there =
who really=20
      do care and want to see them enjoy their life and =
succeed.=E2=80=9D</SPAN></P>
      <P><SPAN>Dress, jewelry and handbag donations can be dropped off =
year=20
      round at First United Methodist Church, 211 Washington St. Dry =
cleaning is=20
      recommended, but not required.</SPAN></P>
      <P><SPAN>Money will also be accepted and will go toward items that =
are=20
      donated less frequently, like plus-sized dresses.</SPAN></P>
      <P><SPAN>Anyone interested in volunteering for next year=E2=80=99s =
event can=20
      contact Nance at <A=20
      =
href=3D"mailto:amy.nance@franklin.kyschools.us">amy.nance@franklin.kyscho=
ols.us</A>=20
      or visit the Web site at <A=20
      =
href=3D"http://www.cinderellasclosetusa.org/">http://www.cinderellasclose=
tusa.org/</A>.&nbsp;</SPAN></P>
      <P>&nbsp;</P>
      <P></P></DIV><BR><BR>
      <CENTER><!--Banner Ad-->
      <CENTER>
      <SCRIPT type=3Dtext/javascript><!--//<![CDATA[
   var m3_u =3D =
(location.protocol=3D=3D'https:'?'https://ads.dixcom.com/sjads/www/delive=
ry/ajs.php':'http://ads.dixcom.com/sjads/www/delivery/ajs.php');
   var m3_r =3D Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used =3D ',';
   document.write ("<scr"+"ipt type=3D'text/javascript' src=3D'"+m3_u);
   document.write =
("?zoneid=3D1&amp;target=3D_blank&amp;block=3D1&amp;blockcampaign=3D1");
   document.write ('&amp;cb=3D' + m3_r);
   if (document.MAX_used !=3D ',') document.write ("&amp;exclude=3D" + =
document.MAX_used);
   document.write ("&amp;loc=3D" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=3D" + =
escape(document.referrer));
   if (document.context) document.write ("&context=3D" + =
escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=3D1");
   document.write ("'><\/scr"+"ipt>");
//]]>--></SCRIPT>
      <NOSCRIPT><A=20
      =
href=3D"http://ads.dixcom.com/sjads/www/delivery/ck.php?n=3Daf8be645&amp;=
cb=3DINSERT_RANDOM_NUMBER_HERE"=20
      target=3D_blank><IMG border=3D0 alt=3D""=20
      =
src=3D"http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3D1&amp;n=3D=
af8be645"></A></NOSCRIPT></CENTER></CENTER><BR>
      <DIV id=3Dcomment>
      <DIV=20
      style=3D"PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #0072fc; =
PADDING-LEFT: 3px; PADDING-RIGHT: 3px; FONT: bold 12pt helvetica; COLOR: =
white; PADDING-TOP: 3px"=20
      class=3Dctitle>Comments</DIV>
      <DIV class=3Dsmall_text>By Posting to this site, you agree to our =
<A=20
      href=3D"http://www.state-journal.com/news/terms_of_service">Terms =
of=20
      Service</A> Be polite. Inappropriate posts may be removed.=20
      State-Journal.com doesn't necessarily condone the comments here, =
nor does=20
      it review every post.</DIV></DIV><BR>Login above or <A=20
      =
href=3D"http://www.state-journal.com/news/registration">Register</A> to=20
      comment. <BR>&nbsp;0 Total Comments <A=20
      href=3D"http://www.state-journal.com/news">Home</A> | <A=20
      href=3D"javascript: history.go(-1)">Back</A> <!--=0A=
<a href=3D"/news/section/1699">Back To Local News</a>=0A=
-->
      <CENTER>
      <SCRIPT type=3Dtext/javascript><!--=0A=
	google_ad_client =3D "pub-1433055657119537";=0A=
	/* 468x60, created 10/28/08 */=0A=
	google_ad_slot =3D "6864604977";=0A=
	google_ad_width =3D 468;=0A=
	google_ad_height =3D 60;=0A=
	//-->=0A=
	</SCRIPT>

      <SCRIPT type=3Dtext/javascript=20
      src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js">=0A=
	</SCRIPT>
      </CENTER><BR>
      <DIV></DIV></TD>
    <TD style=3D"WIDTH: 300px; VERTICAL-ALIGN: top; BORDER-RIGHT: 0px">
      <CENTER><!--/* OpenX Javascript Tag v2.8.2 */-->
      <SCRIPT type=3Dtext/javascript><!--//<![CDATA[
   var m3_u =3D =
(location.protocol=3D=3D'https:'?'https://ads.dixcom.com/sjads/www/delive=
ry/ajs.php':'http://ads.dixcom.com/sjads/www/delivery/ajs.php');
   var m3_r =3D Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used =3D ',';
   document.write ("<scr"+"ipt type=3D'text/javascript' src=3D'"+m3_u);
   document.write =
("?zoneid=3D19&amp;target=3D_blank&amp;blockcampaign=3D1");
   document.write ('&amp;cb=3D' + m3_r);
   if (document.MAX_used !=3D ',') document.write ("&amp;exclude=3D" + =
document.MAX_used);
   document.write (document.charset ? '&amp;charset=3D'+document.charset =
: (document.characterSet ? '&amp;charset=3D'+document.characterSet : =
''));
   document.write ("&amp;loc=3D" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=3D" + =
escape(document.referrer));
   if (document.context) document.write ("&context=3D" + =
escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=3D1");
   document.write ("'><\/scr"+"ipt>");
//]]>--></SCRIPT>
      <NOSCRIPT><A=20
      =
href=3D"http://ads.dixcom.com/sjads/www/delivery/ck.php?n=3Dad978c0c&amp;=
cb=3DINSERT_RANDOM_NUMBER_HERE"=20
      target=3D_blank><IMG border=3D0 alt=3D""=20
      =
src=3D"http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3D19&amp;c=
b=3DINSERT_RANDOM_NUMBER_HERE&amp;n=3Dad978c0c"></A></NOSCRIPT>=20
      </CENTER>
      <DIV style=3D"HEIGHT: 5px"></DIV><!-- end cache --><!--/* OpenX =
Javascript Tag v2.8.2 */-->
      <SCRIPT type=3Dtext/javascript><!--//<![CDATA[
   var m3_u =3D =
(location.protocol=3D=3D'https:'?'https://ads.dixcom.com/sjads/www/delive=
ry/ajs.php':'http://ads.dixcom.com/sjads/www/delivery/ajs.php');
   var m3_r =3D Math.floor(Math.random()*99999999999);
   if (!document.MAX_used) document.MAX_used =3D ',';
   document.write ("<scr"+"ipt type=3D'text/javascript' src=3D'"+m3_u);
   document.write =
("?zoneid=3D3&amp;target=3D_blank&amp;blockcampaign=3D1");
   document.write ('&amp;cb=3D' + m3_r);
   if (document.MAX_used !=3D ',') document.write ("&amp;exclude=3D" + =
document.MAX_used);
   document.write (document.charset ? '&amp;charset=3D'+document.charset =
: (document.characterSet ? '&amp;charset=3D'+document.characterSet : =
''));
   document.write ("&amp;loc=3D" + escape(window.location));
   if (document.referrer) document.write ("&amp;referer=3D" + =
escape(document.referrer));
   if (document.context) document.write ("&context=3D" + =
escape(document.context));
   if (document.mmm_fo) document.write ("&amp;mmm_fo=3D1");
   document.write ("'><\/scr"+"ipt>");
//]]>--></SCRIPT>
      <NOSCRIPT><A=20
      =
href=3D"http://ads.dixcom.com/sjads/www/delivery/ck.php?n=3Da827135f&amp;=
cb=3DINSERT_RANDOM_NUMBER_HERE"=20
      target=3D_blank><IMG border=3D0 alt=3D""=20
      =
src=3D"http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3D3&amp;cb=
=3DINSERT_RANDOM_NUMBER_HERE&amp;n=3Da827135f"></A></NOSCRIPT>=20

      <DIV style=3D"HEIGHT: 5px"></DIV><!-- end cache -->
      <CENTER><BR><BR>
      <SCRIPT type=3Dtext/javascript><!--
google_ad_client =3D "pub-1433055657119537";
google_ad_width =3D 120;
google_ad_height =3D 600;
google_ad_format =3D "120x600_as";
google_ad_type =3D "text_image";
google_ad_channel =3D "";
//-->
</SCRIPT>

      <SCRIPT type=3Dtext/javascript=20
      src=3D"http://pagead2.googlesyndication.com/pagead/show_ads.js">
</SCRIPT>
      </CENTER>
      <DIV style=3D"HEIGHT: 5px"></DIV><!-- end cache --></TD></TR>
  <TR>
    <TD=20
    style=3D"BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; WIDTH: 100%; =
BORDER-TOP: 0px; BORDER-RIGHT: 0px"=20
    id=3Dfooter_p colSpan=3D3>
      <DIV style=3D"BACKGROUND-COLOR: #eee; WIDTH: 100%">
      <HR style=3D"WIDTH: 100%">
      <BR>
      <DIV id=3Dtos_box>
      <DIV style=3D"MIN-WIDTH: 250px; PADDING-LEFT: 3px; FLOAT: left"><A =

      href=3D"http://www.state-journal.com/news/terms_of_service">Terms =
of=20
      Service</A> </DIV>
      <DIV=20
      style=3D"MIN-WIDTH: 550px; TEXT-ALIGN: center; FLOAT: =
left"><B>Copyright=20
      Frankfort Publishing Co., LLC 1995-2010. All Rights=20
      Reserved.</B><BR>Content may not be republished without the =
expressed=20
      written consent of the publisher. </DIV>
      <DIV style=3D"FLOAT: right; VERTICAL-ALIGN: middle"><A=20
      href=3D"http://www.dixcom.com/"><IMG border=3D0 alt=3D""=20
      src=3D"http://www.state-journal.com/images/dixbadge.gif">Dix=20
      Communications</A> </DIV>
      <DIV style=3D"CLEAR: both">&nbsp;</DIV></DIV>
      <DIV style=3D"BACKGROUND-COLOR: #eee; MARGIN-LEFT: 20%"=20
      id=3Dfooter_material>&nbsp;=20
      <DIV style=3D"PADDING-RIGHT: 1em; FLOAT: left; borderpadding-left: =
1em"=20
      id=3D_foot_site>
      <DIV><A =
href=3D"http://www.state-journal.com/news/feedback">Website=20
      Feedback</A> </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/advanced_search">Advanced=20
      Search</A> </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/archive">Archives</A>=20
      </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/contacts">Contacts</A>=20
      </DIV>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/news/advertising">Advertising</A>=20
</DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/newsroom">Online =

      Newsroom</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/about">About</A> =
</DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/privacy">Privacy</A>=20
      </DIV></DIV>
      <DIV=20
      style=3D"PADDING-LEFT: 1em; PADDING-RIGHT: 1em; MAX-WIDTH: 300px; =
FLOAT: left"=20
      id=3D_foot_sections>
      <DIV style=3D"FLOAT: left" ref=3D"containg div for cols">
      <DIV><A =
href=3D"http://www.state-journal.com/news/index/1742">Home</A>=20
</DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/1699">Local=20
      News</A> </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/1693">Sports</A>=20
      </DIV>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/news/obituary_section/1696">Obituari=
es</A>=20
      </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/1695">Opinion</A>=20
      </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/1697">Calendar</A>=20
      </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/1694">Spectrum</A>=20
      </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/4461">Breaking</A>=20
      </DIV>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/news/election_section/9541">Election=
s</A>=20
      </DIV>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/news/video_section/4962">Videos</A> =

      </DIV></DIV>
      <DIV style=3D"PADDING-LEFT: 1em; FLOAT: left" ref=3D"containg div =
for cols">
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/8381">Featured=20
      News</A> </DIV>
      <DIV><A =
href=3D"http://www.state-journal.com/news/section/8391">Latest=20
      Headlines</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/1782">AP =
National=20
      News</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/1792">AP =
National=20
      Sports</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/2002">AP =
Kentucky=20
      News</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4302">AP =

      Entertainment</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4312">AP =

      Health</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4322">AP =

      Economy</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4332">AP =

      Automotive</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4342">AP =

      Technology</A> </DIV>
      <DIV><A href=3D"http://www.state-journal.com/news/ap_feed/4352">AP =

      Business</A> </DIV></DIV>
      <DIV style=3D"CLEAR: both">&nbsp;</DIV></DIV>
      <DIV style=3D"PADDING-LEFT: 1em; PADDING-RIGHT: 1em; FLOAT: left">
      <DIV style=3D"PADDING-RIGHT: 1em"><A=20
      =
href=3D"http://www.state-journal.com/news/section_citizen/1632">Citizen=20
      News</A> </DIV>
      <DIV style=3D"PADDING-RIGHT: 1em"><A=20
      =
href=3D"http://www.state-journal.com/news/section_citizen/1633">Citizen=20
      Opinion</A> </DIV>
      <DIV style=3D"PADDING-RIGHT: 1em"><A=20
      =
href=3D"http://www.state-journal.com/news/section_citizen/1634">Citizen=20
      Photos</A> </DIV>
      <DIV style=3D"PADDING-RIGHT: 1em"><A=20
      =
href=3D"http://www.state-journal.com/news/section_citizen/1635">Citizen=20
      Videos</A> </DIV></DIV>
      <DIV style=3D"PADDING-LEFT: 1em; PADDING-RIGHT: 1em; FLOAT: left">
      <DIV><A =
href=3D"http://www.state-journal.com/events">Events</A></DIV>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/classifieds/jobs">JobFinder</A></DIV=
>
      <DIV><A=20
      =
href=3D"http://www.state-journal.com/classifieds">ClassifiedFinder</A></D=
IV>
      <DIV><A href=3D"http://profiles.state-journal.com/" =
target=3D_blank>Local=20
      Businesses</A></DIV></DIV>
      <DIV=20
style=3D"CLEAR: =
both">&nbsp;</DIV></DIV></DIV></TD></TR></TBODY></TABLE><BR><BR><!-- =
PageEar function call -->
<SCRIPT type=3Dtext/javascript>=0A=
    writeObjects();=0A=
</SCRIPT>
<!-- Locked story AJAX -->
<SCRIPT type=3Dtext/javascript>=0A=
 $$('span.locked').each(function(elem) { if (showlocks) { elem.innerHTML =
=3D '<img src=3D"/images/icon_padlock.png" border=3D0>';} else { =
elem.innerHTML =3D'';} });=0A=
</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://pixel.quantserve.com/pixel/p-9e9TQPkAJlrSs.gif

R0lGODlhAQABAAAAACwAAAAAAQABAID///8AAAACAkQBADs=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/StateJournal/logo.png

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
pmE9/w4QYACHTQJOV43GrgAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=2&cb=INSERT_RANDOM_NUMBER_HERE&n=a164c8dd

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

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=1&n=af8be645

R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/share_email.gif?1254929595

R0lGODlhEAARALP/AP/zyv/qo/3rU/vnQvLZC/znnv3mL//utv3rYcHBwfnhJRAREVxcXFBYUP/O
AMDAwCH5BAEAAA8ALAAAAAAQABEAQARZ8MlJq2wAOMbcZkXhLFZZNYwyCIgwKASxkU+y3Hh+J2b/
YADGamBQbES0xubAPAQCoQ7NR6UmGtisFsv7BVcIxEsmvWSChuIRaV4eOE/Q6NLx2O+MaXVfiQAA
Ow==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/share_print.gif?1254929595

R0lGODlhEAAQAOZMAP///zI9SACX/3yHkyUtOKPp/0NOWQAok7vEygB533uFkWp0ffv4+P3+/pSf
q/r7/IKPnPb4+vL1+bS9xQB43i2h9evy+F5mbwAjkHF7hm53gvDv8ABx23iDj1JRVaq1wMPN1bG8
yNze4/n39wCT/y45RLrDyT1IU3Ws40pTXajr/wCU/3WBiwCb/3R3fJqdowCZ/1hgadTd5n2IlIiU
of7//+ru8vP2+YOQnHuHkvL2+VZeZ4eSnoeTnnV5fvH1+HeCjsnP1VFaYnV5f4+PyICMmPf5+pKR
y/z9/oOQnZ2evnN+iP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
BAEAAEwALAAAAAAQABAAAAe4gEyCNEkQhjg9DoKLi0UAj49HAIqMgjkADZkARI+UjEAAD6I1SkI7
M5VMSwARrUZINkE8qUMAPxK4OjcAPowvLS6QwgAuLS9MCgwwHgTNzs0eMAwKySQqBdjZ2Cok0ywb
KwLi4+QrGywZIhUcFAnu7xQcFSIZGiAjKBgH+/wYKCMgNCwI8WGCCQQIE5qY8CHEggUxLJwwQLEi
xRMWYixgckFGhwEgQ4LsIOOCoBQlAqhcybJECiaBAAA7

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/media/20100306/photos/3d706a27c59e514340a5838539cca843753225e9_dresses030610km-thumb.jpg?1267919750

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

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/media/20100306/photos/299894b372a544ca8ac50248d160cfe23505c33a_earring030610km-thumb.jpg?1267919817

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

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=19&cb=INSERT_RANDOM_NUMBER_HERE&n=ad978c0c

R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://ads.dixcom.com/sjads/www/delivery/avw.php?zoneid=3&cb=INSERT_RANDOM_NUMBER_HERE&n=a827135f

R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.state-journal.com/images/dixbadge.gif

R0lGODlhHwAQAPcAAP//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+ZzP+Z
mf+ZZv+ZM/+ZAP9m//9mzP9mmf9mZv9mM/9mAP8z//8zzP8zmf8zZv8zM/8zAP8A//8AzP8Amf8A
Zv8AM/8AAMz//8z/zMz/mcz/Zsz/M8z/AMzM/8zMzMzMmczMZszMM8zMAMyZ/8yZzMyZmcyZZsyZ
M8yZAMxm/8xmzMxmmcxmZsxmM8xmAMwz/8wzzMwzmcwzZswzM8wzAMwA/8wAzMwAmcwAZswAM8wA
AJn//5n/zJn/mZn/Zpn/M5n/AJnM/5nMzJnMmZnMZpnMM5nMAJmZ/5mZzJmZmZmZZpmZM5mZAJlm
/5lmzJlmmZlmZplmM5lmAJkz/5kzzJkzmZkzZpkzM5kzAJkA/5kAzJkAmZkAZpkAM5kAAGb//2b/
zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAGaZ/2aZzGaZmWaZZmaZM2aZAGZm/2ZmzGZm
mWZmZmZmM2ZmAGYz/2YzzGYzmWYzZmYzM2YzAGYA/2YAzGYAmWYAZmYAM2YAADP//zP/zDP/mTP/
ZjP/MzP/ADPM/zPMzDPMmTPMZjPMMzPMADOZ/zOZzDOZmTOZZjOZMzOZADNm/zNmzDNmmTNmZjNm
MzNmADMz/zMzzDMzmTMzZjMzMzMzADMA/zMAzDMAmTMAZjMAMzMAAAD//wD/zAD/mQD/ZgD/MwD/
AADM/wDMzADMmQDMZgDMMwDMAACZ/wCZzACZmQCZZgCZMwCZAABm/wBmzABmmQBmZgBmMwBmAAAz
/wAzzAAzmQAzZgAzMwAzAAAA/wAAzAAAmQAAZgAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAAfABAA
QAjOAP8JHEiwoMGCgVYAWLiQlUCFDAGs+MeqIUFEJBYGKmjxH8SFARxWBOBwVQCJAzGiHOnQI8MA
Gylq/GcFAIuCMgCEtMKqJc0VQGNSBOowkJWDJiO2/LhwIsuBh06uOPmEYEemJGVm/Zf0SasqOoUe
HEuWoIqFZdMeZLr05SqBLFlJRXjSCtitWDc+/Rco49G+AGQMvBpxZUeBSQEctYq38NG9fDMe0Pl2
cGOGE/laDHSyykAWAEggGrqipRWgPAeyIipwccEnOkmonT2UYUAAOw==

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/highslide/highslide.css

.highslide-container DIV {
	FONT-FAMILY: Verdana, Helvetica; FONT-SIZE: 10pt
}
.highslide-container TABLE {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
.highslide {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; =
TEXT-DECORATION: none
}
.highslide IMG {
	BORDER-BOTTOM: silver 2px solid; BORDER-LEFT: silver 2px solid; =
BORDER-TOP: silver 2px solid; BORDER-RIGHT: silver 2px solid
}
.highslide:hover IMG {
	BORDER-BOTTOM-COLOR: gray; BORDER-TOP-COLOR: gray; BORDER-RIGHT-COLOR: =
gray; BORDER-LEFT-COLOR: gray
}
.highslide-active-anchor IMG {
	VISIBILITY: hidden
}
.highslide-gallery .highslide-active-anchor IMG {
	BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; VISIBILITY: =
visible; BORDER-RIGHT-COLOR: black; BORDER-LEFT-COLOR: black; CURSOR: =
default
}
.highslide-image {
	BORDER-BOTTOM: white 2px solid; BORDER-LEFT: white 2px solid; =
BACKGROUND: gray; BORDER-TOP: white 2px solid; BORDER-RIGHT: white 2px =
solid
}
.highslide-wrapper {
	BACKGROUND: white
}
.highslide-outline {
	BACKGROUND: white
}
.glossy-dark {
	BACKGROUND: #111
}
.highslide-image-blur {
=09
}
.highslide-number {
	COLOR: gray; FONT-SIZE: 0.9em; FONT-WEIGHT: bold
}
.highslide-caption {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; DISPLAY: =
none; FONT-SIZE: 1em; PADDING-TOP: 5px
}
.highslide-heading {
	MARGIN: 0.4em; DISPLAY: none; FONT-WEIGHT: bold
}
.highslide-dimming {
	POSITION: absolute; BACKGROUND: black
}
A.highslide-full-expand {
	MARGIN: 0px 10px 10px 0px; WIDTH: 34px; DISPLAY: block; BACKGROUND: =
url(graphics/fullexpand.gif) no-repeat; HEIGHT: 34px
}
.highslide-loading {
	BACKGROUND-IMAGE: url(graphics/loader.white.gif); BORDER-BOTTOM: white =
1px solid; BORDER-LEFT: white 1px solid; PADDING-BOTTOM: 3px; =
TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: white; PADDING-LEFT: 22px; =
PADDING-RIGHT: 3px; DISPLAY: block; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: 3px 1px; COLOR: black; FONT-SIZE: 9px; BORDER-TOP: =
white 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: white 1px solid; =
TEXT-DECORATION: none; PADDING-TOP: 3px
}
A.highslide-credits {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; COLOR: =
silver; FONT-SIZE: 10px; TEXT-DECORATION: none; PADDING-TOP: 2px
}
A.highslide-credits I {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; COLOR: =
silver; FONT-SIZE: 10px; TEXT-DECORATION: none; PADDING-TOP: 2px
}
A.highslide-credits:hover {
	BACKGROUND-COLOR: gray; COLOR: white
}
A.highslide-credits:hover I {
	BACKGROUND-COLOR: gray; COLOR: white
}
.highslide-move {
	CURSOR: move
}
.highslide-move * {
	CURSOR: move
}
.highslide-viewport {
	Z-INDEX: 1; POSITION: fixed; WIDTH: 100%; DISPLAY: none; BACKGROUND: =
none transparent scroll repeat 0% 0%; HEIGHT: 100%; TOP: 0px; LEFT: 0px
}
.highslide-overlay {
	DISPLAY: none
}
.hidden-container {
	DISPLAY: none
}
.closebutton {
	POSITION: relative; WIDTH: 30px; BACKGROUND: url(graphics/close.png); =
HEIGHT: 30px; TOP: -15px; CURSOR: pointer; LEFT: 15px
}
.highslide-gallery UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.highslide-gallery UL LI {
	BORDER-BOTTOM: silver 1px solid; POSITION: relative; BORDER-LEFT: =
silver 1px solid; LINE-HEIGHT: 0; MARGIN: 2px; WIDTH: 106px; DISPLAY: =
block; BACKGROUND: #ededed; FLOAT: left; HEIGHT: 106px; OVERFLOW: =
hidden; BORDER-TOP: silver 1px solid; BORDER-RIGHT: silver 1px solid
}
.highslide-gallery UL A {
	POSITION: absolute; TOP: 50%; LEFT: 50%
}
.highslide-gallery UL IMG {
	POSITION: relative; TOP: -50%; LEFT: -50%
}
HTML > BODY .highslide-gallery UL LI {
	TEXT-ALIGN: center; DISPLAY: table
}
HTML > BODY .highslide-gallery UL LI {
	TEXT-ALIGN: center
}
HTML > BODY .highslide-gallery UL A {
	POSITION: static; DISPLAY: table-cell; VERTICAL-ALIGN: middle
}
HTML > BODY .highslide-gallery UL IMG {
	POSITION: static
}
.highslide-controls {
	MARGIN: 20px 15px 10px 0px; WIDTH: 195px; BACKGROUND: =
url(graphics/controlbar-white.gif) no-repeat 0px -90px; HEIGHT: 40px
}
.highslide-controls UL {
	POSITION: relative; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: =
0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BACKGROUND: =
url(graphics/controlbar-white.gif) no-repeat right -90px; HEIGHT: 40px; =
LIST-STYLE-IMAGE: none; PADDING-TOP: 0px; LEFT: 15px
}
.highslide-controls LI {
	PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FLOAT: left; PADDING-TOP: 5px
}
.highslide-controls A {
	BACKGROUND-IMAGE: url(graphics/controlbar-white.gif); OUTLINE-STYLE: =
none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium; WIDTH: 30px; =
DISPLAY: block; FLOAT: left; HEIGHT: 30px
}
.highslide-controls A.disabled {
	CURSOR: default
}
.highslide-controls A.disabled SPAN {
	CURSOR: default
}
.highslide-controls A SPAN {
	DISPLAY: none; CURSOR: pointer
}
.highslide-controls .highslide-previous A {
	BACKGROUND-POSITION: 0px 0px
}
.highslide-controls .highslide-previous A:hover {
	BACKGROUND-POSITION: 0px -30px
}
.highslide-controls .highslide-previous A.disabled {
	BACKGROUND-POSITION: 0px -60px
}
.highslide-controls .highslide-play A {
	BACKGROUND-POSITION: -30px 0px
}
.highslide-controls .highslide-play A:hover {
	BACKGROUND-POSITION: -30px -30px
}
.highslide-controls .highslide-play A.disabled {
	BACKGROUND-POSITION: -30px -60px
}
.highslide-controls .highslide-pause A {
	BACKGROUND-POSITION: -60px 0px
}
.highslide-controls .highslide-pause A:hover {
	BACKGROUND-POSITION: -60px -30px
}
.highslide-controls .highslide-next A {
	BACKGROUND-POSITION: -90px 0px
}
.highslide-controls .highslide-next A:hover {
	BACKGROUND-POSITION: -90px -30px
}
.highslide-controls .highslide-next A.disabled {
	BACKGROUND-POSITION: -90px -60px
}
.highslide-controls .highslide-move A {
	BACKGROUND-POSITION: -120px 0px
}
.highslide-controls .highslide-move A:hover {
	BACKGROUND-POSITION: -120px -30px
}
.highslide-controls .highslide-full-expand A {
	BACKGROUND-POSITION: -150px 0px
}
.highslide-controls .highslide-full-expand A:hover {
	BACKGROUND-POSITION: -150px -30px
}
.highslide-controls .highslide-full-expand A.disabled {
	BACKGROUND-POSITION: -150px -60px
}
.highslide-controls .highslide-close A {
	BACKGROUND-POSITION: -180px 0px
}
.highslide-controls .highslide-close A:hover {
	BACKGROUND-POSITION: -180px -30px
}
.highslide-maincontent {
	DISPLAY: none
}
.highslide-html {
	BACKGROUND-COLOR: white
}
.highslide-html-content {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; WIDTH: 400px; PADDING-RIGHT: =
5px; DISPLAY: none; PADDING-TOP: 0px
}
.highslide-header {
	PADDING-BOTTOM: 5px
}
.highslide-header UL {
	TEXT-ALIGN: right; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.highslide-header UL LI {
	PADDING-LEFT: 1em; DISPLAY: inline
}
.highslide-header UL LI.highslide-previous {
	DISPLAY: none
}
.highslide-header UL LI.highslide-next {
	DISPLAY: none
}
.highslide-header A {
	TEXT-TRANSFORM: uppercase; COLOR: gray; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.highslide-header A:hover {
	COLOR: black
}
.highslide-header .highslide-move A {
	CURSOR: move
}
.highslide-footer {
	HEIGHT: 16px
}
.highslide-footer .highslide-resize {
	MARGIN-TOP: 5px; WIDTH: 11px; DISPLAY: block; BACKGROUND: =
url(graphics/resize.gif) no-repeat; FLOAT: right; HEIGHT: 11px
}
.highslide-footer .highslide-resize SPAN {
	DISPLAY: none
}
.highslide-body {
=09
}
.highslide-resize {
	CURSOR: nw-resize
}
.draggable-header .highslide-header {
	BORDER-BOTTOM: #dddddd 1px solid; HEIGHT: 18px
}
.draggable-header .highslide-heading {
	POSITION: absolute; MARGIN: 2px 0.4em
}
.draggable-header .highslide-header .highslide-move {
	Z-INDEX: 1; POSITION: absolute; WIDTH: 100%; DISPLAY: block; HEIGHT: =
16px; TOP: 0px; CURSOR: move; RIGHT: 24px
}
.draggable-header .highslide-header .highslide-move * {
	DISPLAY: none
}
.draggable-header .highslide-header .highslide-close {
	Z-INDEX: 2; POSITION: absolute; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; TOP: 2px; RIGHT: 2px; PADDING-TOP: 0px
}
.draggable-header .highslide-header .highslide-close A {
	BACKGROUND-IMAGE: url(graphics/closeX.png); WIDTH: 16px; DISPLAY: =
block; HEIGHT: 16px
}
.draggable-header .highslide-header .highslide-close A:hover {
	BACKGROUND-POSITION: 0px 16px
}
.draggable-header .highslide-header .highslide-close SPAN {
	DISPLAY: none
}
.draggable-header .highslide-maincontent {
	PADDING-TOP: 1em
}
.titlebar .highslide-header {
	BORDER-BOTTOM: #dddddd 1px solid; HEIGHT: 18px
}
.titlebar .highslide-heading {
	POSITION: absolute; MARGIN: 1px 0.4em; COLOR: #666666
}
.titlebar .highslide-header .highslide-move {
	Z-INDEX: 1; POSITION: absolute; WIDTH: 100%; DISPLAY: block; HEIGHT: =
16px; TOP: 0px; CURSOR: move; RIGHT: 24px
}
.titlebar .highslide-header .highslide-move * {
	DISPLAY: none
}
.titlebar .highslide-header LI {
	Z-INDEX: 2; POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 1em; =
PADDING-RIGHT: 0px; TOP: 3px; PADDING-TOP: 0px
}
.titlebar .highslide-maincontent {
	PADDING-TOP: 1em
}
.no-footer .highslide-footer {
	DISPLAY: none
}
.wide-border {
	BACKGROUND: white
}
.wide-border .highslide-image {
	BORDER-RIGHT-WIDTH: 10px; BORDER-TOP-WIDTH: 10px; BORDER-BOTTOM-WIDTH: =
10px; BORDER-LEFT-WIDTH: 10px
}
.wide-border .highslide-caption {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; =
PADDING-TOP: 0px
}
.borderless .highslide-image {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: =
medium none; BORDER-RIGHT: medium none
}
.borderless .highslide-caption {
	BORDER-BOTTOM: white 1px solid; BACKGROUND: silver; BORDER-TOP: white =
1px solid
}
.outer-glow {
	BACKGROUND: #444
}
.outer-glow .highslide-image {
	BORDER-BOTTOM: #444444 5px solid; BORDER-LEFT: #444444 5px solid; =
BORDER-TOP: #444444 5px solid; BORDER-RIGHT: #444444 5px solid
}
.outer-glow .highslide-caption {
	BORDER-BOTTOM: #444444 5px solid; BORDER-LEFT: #444444 5px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: gray; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; BORDER-TOP: medium none; BORDER-RIGHT: #444444 5px =
solid; PADDING-TOP: 5px
}
.colored-border {
	BACKGROUND: white
}
.colored-border .highslide-image {
	BORDER-BOTTOM: green 2px solid; BORDER-LEFT: green 2px solid; =
BORDER-TOP: green 2px solid; BORDER-RIGHT: green 2px solid
}
.colored-border .highslide-caption {
	BORDER-BOTTOM: green 2px solid; BORDER-LEFT: green 2px solid; =
BORDER-TOP: medium none; BORDER-RIGHT: green 2px solid
}
.dark {
	BACKGROUND: #111
}
.dark .highslide-image {
	BORDER-BOTTOM-COLOR: #202020; BORDER-TOP-COLOR: black; BACKGROUND: =
gray; BORDER-RIGHT-COLOR: black; BORDER-LEFT-COLOR: black
}
.dark .highslide-caption {
	BACKGROUND: #111; COLOR: white
}
.dark .highslide-controls {
	BACKGROUND-IMAGE: url(graphics/controlbar-black-border.gif)
}
.dark .highslide-controls UL {
	BACKGROUND-IMAGE: url(graphics/controlbar-black-border.gif)
}
.dark .highslide-controls A {
	BACKGROUND-IMAGE: url(graphics/controlbar-black-border.gif)
}
.floating-caption .highslide-caption {
	BORDER-BOTTOM: medium none; POSITION: absolute; BORDER-LEFT: medium =
none; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: white; =
BORDER-TOP: medium none; FONT-WEIGHT: bold; BORDER-RIGHT: medium none; =
PADDING-TOP: 1em
}
.controls-in-heading .highslide-heading {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 22px; PADDING-RIGHT: =
0px; BACKGROUND: url(graphics/icon.gif) no-repeat 0px 1px; HEIGHT: 20px; =
COLOR: gray; OVERFLOW: hidden; CURSOR: default; FONT-WEIGHT: bold; =
PADDING-TOP: 0px
}
.controls-in-heading .highslide-controls {
	POSITION: relative; MARGIN: 0px; WIDTH: 105px; BACKGROUND: none =
transparent scroll repeat 0% 0%; HEIGHT: 20px; TOP: -23px; LEFT: 7px
}
.controls-in-heading .highslide-controls UL {
	POSITION: static; BACKGROUND: none transparent scroll repeat 0% 0%; =
HEIGHT: 20px
}
.controls-in-heading .highslide-controls LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.controls-in-heading .highslide-controls A {
	BACKGROUND-IMAGE: url(graphics/controlbar-white-small.gif); WIDTH: =
20px; HEIGHT: 20px
}
.controls-in-heading .highslide-controls .highslide-move {
	DISPLAY: none
}
.controls-in-heading .highslide-controls .highslide-previous A {
	BACKGROUND-POSITION: 0px 0px
}
.controls-in-heading .highslide-controls .highslide-previous A:hover {
	BACKGROUND-POSITION: 0px -20px
}
.controls-in-heading .highslide-controls .highslide-previous A.disabled =
{
	BACKGROUND-POSITION: 0px -40px
}
.controls-in-heading .highslide-controls .highslide-play A {
	BACKGROUND-POSITION: -20px 0px
}
.controls-in-heading .highslide-controls .highslide-play A:hover {
	BACKGROUND-POSITION: -20px -20px
}
.controls-in-heading .highslide-controls .highslide-play A.disabled {
	BACKGROUND-POSITION: -20px -40px
}
.controls-in-heading .highslide-controls .highslide-pause A {
	BACKGROUND-POSITION: -40px 0px
}
.controls-in-heading .highslide-controls .highslide-pause A:hover {
	BACKGROUND-POSITION: -40px -20px
}
.controls-in-heading .highslide-controls .highslide-next A {
	BACKGROUND-POSITION: -60px 0px
}
.controls-in-heading .highslide-controls .highslide-next A:hover {
	BACKGROUND-POSITION: -60px -20px
}
.controls-in-heading .highslide-controls .highslide-next A.disabled {
	BACKGROUND-POSITION: -60px -40px
}
.controls-in-heading .highslide-controls .highslide-full-expand A {
	BACKGROUND-POSITION: -100px 0px
}
.controls-in-heading .highslide-controls .highslide-full-expand A:hover =
{
	BACKGROUND-POSITION: -100px -20px
}
.controls-in-heading .highslide-controls .highslide-full-expand =
A.disabled {
	BACKGROUND-POSITION: -100px -40px
}
.controls-in-heading .highslide-controls .highslide-close A {
	BACKGROUND-POSITION: -120px 0px
}
.controls-in-heading .highslide-controls .highslide-close A:hover {
	BACKGROUND-POSITION: -120px -20px
}
.text-controls .highslide-controls {
	TEXT-ALIGN: center; MARGIN: 0px; WIDTH: auto; BACKGROUND: none =
transparent scroll repeat 0% 0%; HEIGHT: auto
}
.text-controls UL {
	POSITION: static; BACKGROUND: none transparent scroll repeat 0% 0%; =
HEIGHT: auto; LEFT: 0px
}
.text-controls .highslide-move {
	DISPLAY: none
}
.text-controls LI {
	BACKGROUND-IMAGE: url(graphics/controlbar-text-buttons.png); =
PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: auto; PADDING-RIGHT: 0px; =
DISPLAY: block; BACKGROUND-POSITION: right top; MARGIN-LEFT: 15px; =
PADDING-TOP: 0px
}
.text-controls A {
	POSITION: relative; WIDTH: auto; DISPLAY: block; BACKGROUND: =
url(graphics/controlbar-text-buttons.png) no-repeat left top; HEIGHT: =
auto; TEXT-DECORATION: none !important; LEFT: -10px
}
.text-controls A SPAN {
	MIN-WIDTH: 4em; PADDING-BOTTOM: 1px; LINE-HEIGHT: 18px; MARGIN: 1px 2px =
1px 10px; PADDING-LEFT: 18px; PADDING-RIGHT: 0px; DISPLAY: block; =
FONT-FAMILY: "Trebuchet MS", Arial, sans-serif; WHITE-SPACE: nowrap; =
BACKGROUND: url(graphics/controlbar-text-buttons.png) no-repeat; HEIGHT: =
18px; COLOR: #333; FONT-SIZE: 12px; FONT-WEIGHT: bold; PADDING-TOP: 1px
}
.text-controls .highslide-next {
	MARGIN-RIGHT: 1em
}
.text-controls .highslide-full-expand A SPAN {
	MIN-WIDTH: 0px; PADDING-BOTTOM: 1px; MARGIN: 1px 0px; PADDING-LEFT: =
10px; PADDING-RIGHT: 0px; PADDING-TOP: 1px
}
.text-controls .highslide-close A SPAN {
	MIN-WIDTH: 0px
}
.text-controls A:hover SPAN {
	COLOR: black
}
.text-controls A.disabled SPAN {
	COLOR: #999
}
.text-controls .highslide-previous SPAN {
	BACKGROUND-POSITION: 0px -40px
}
.text-controls .highslide-previous A.disabled {
	BACKGROUND-POSITION: left top
}
.text-controls .highslide-previous A.disabled SPAN {
	BACKGROUND-POSITION: 0px -140px
}
.text-controls .highslide-play SPAN {
	BACKGROUND-POSITION: 0px -60px
}
.text-controls .highslide-play A.disabled {
	BACKGROUND-POSITION: left top
}
.text-controls .highslide-play A.disabled SPAN {
	BACKGROUND-POSITION: 0px -160px
}
.text-controls .highslide-pause SPAN {
	BACKGROUND-POSITION: 0px -80px
}
.text-controls .highslide-next SPAN {
	BACKGROUND-POSITION: 0px -100px
}
.text-controls .highslide-next A.disabled {
	BACKGROUND-POSITION: left top
}
.text-controls .highslide-next A.disabled SPAN {
	BACKGROUND-POSITION: 0px -200px
}
.text-controls .highslide-full-expand SPAN {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
.text-controls .highslide-full-expand A.disabled {
	BACKGROUND-POSITION: left top
}
.text-controls .highslide-close SPAN {
	BACKGROUND-POSITION: 0px -120px
}
.highslide-thumbstrip {
	HEIGHT: 100%
}
.highslide-thumbstrip DIV {
	OVERFLOW: hidden
}
.highslide-thumbstrip TABLE {
	POSITION: relative; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; BORDER-COLLAPSE: collapse; PADDING-TOP: 0px
}
.highslide-thumbstrip TD {
	PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; =
PADDING-TOP: 1px
}
.highslide-thumbstrip A {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium
}
.highslide-thumbstrip IMG {
	BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid; MARGIN: 0px =
auto; DISPLAY: block; BORDER-TOP: gray 1px solid; BORDER-RIGHT: gray 1px =
solid
}
.highslide-thumbstrip .highslide-active-anchor IMG {
	VISIBILITY: visible
}
.highslide-thumbstrip .highslide-marker {
	BORDER-BOTTOM: transparent 0px solid; POSITION: absolute; BORDER-LEFT: =
transparent 0px solid; WIDTH: 0px; HEIGHT: 0px; BORDER-TOP: transparent =
0px solid; BORDER-RIGHT: transparent 0px solid
}
.highslide-thumbstrip-horizontal DIV {
	WIDTH: auto
}
.highslide-thumbstrip-horizontal .highslide-scroll-up {
	POSITION: absolute; WIDTH: 25px; DISPLAY: none; HEIGHT: 42px; TOP: 3px; =
LEFT: 3px
}
.highslide-thumbstrip-horizontal .highslide-scroll-up DIV {
	MARGIN-BOTTOM: 10px; BACKGROUND: url(graphics/scrollarrows.png) =
no-repeat left center; HEIGHT: 42px; CURSOR: pointer
}
.highslide-thumbstrip-horizontal .highslide-scroll-down {
	POSITION: absolute; WIDTH: 25px; DISPLAY: none; HEIGHT: 42px; TOP: 3px; =
RIGHT: 3px
}
.highslide-thumbstrip-horizontal .highslide-scroll-down DIV {
	MARGIN-BOTTOM: 10px; BACKGROUND: url(graphics/scrollarrows.png) =
no-repeat right center; HEIGHT: 42px; CURSOR: pointer
}
.highslide-thumbstrip-horizontal TABLE {
	MARGIN: 2px 0px 10px
}
.highslide-viewport .highslide-thumbstrip-horizontal TABLE {
	MARGIN-LEFT: 10px
}
.highslide-thumbstrip-horizontal IMG {
	WIDTH: auto; HEIGHT: 40px
}
.highslide-thumbstrip-horizontal .highslide-marker {
	BORDER-BOTTOM: gray 6px solid; BORDER-RIGHT-WIDTH: 6px; =
BORDER-LEFT-WIDTH: 6px; TOP: 47px
}
.highslide-viewport .highslide-thumbstrip-horizontal .highslide-marker {
	MARGIN-LEFT: 10px
}
.dark .highslide-thumbstrip-horizontal .highslide-marker {
	BORDER-BOTTOM-COLOR: white !important
}
.highslide-viewport .highslide-thumbstrip-horizontal .highslide-marker {
	BORDER-BOTTOM-COLOR: white !important
}
.highslide-thumbstrip-vertical DIV {
	HEIGHT: 100%
}
.highslide-thumbstrip-vertical A {
	DISPLAY: block
}
.highslide-thumbstrip-vertical .highslide-scroll-up {
	POSITION: absolute; WIDTH: 100%; DISPLAY: none; HEIGHT: 25px; TOP: 0px; =
LEFT: 0px
}
.highslide-thumbstrip-vertical .highslide-scroll-up DIV {
	BACKGROUND: url(graphics/scrollarrows.png) no-repeat center top; =
HEIGHT: 25px; MARGIN-LEFT: 10px; CURSOR: pointer
}
.highslide-thumbstrip-vertical .highslide-scroll-down {
	POSITION: absolute; WIDTH: 100%; BOTTOM: 0px; DISPLAY: none; HEIGHT: =
25px; LEFT: 0px
}
.highslide-thumbstrip-vertical .highslide-scroll-down DIV {
	BACKGROUND: url(graphics/scrollarrows.png) no-repeat center bottom; =
HEIGHT: 25px; MARGIN-LEFT: 10px; CURSOR: pointer
}
.highslide-thumbstrip-vertical TABLE {
	MARGIN: 10px 0px 0px 10px
}
.highslide-thumbstrip-vertical IMG {
	MAX-WIDTH: 60px
}
.highslide-thumbstrip-vertical .highslide-marker {
	BORDER-LEFT: gray 6px solid; MARGIN-TOP: 8px; BORDER-TOP-WIDTH: 6px; =
BORDER-BOTTOM-WIDTH: 6px; LEFT: 0px
}
.dark .highslide-thumbstrip-vertical .highslide-marker {
	BORDER-LEFT-COLOR: white
}
.highslide-viewport .highslide-thumbstrip-vertical .highslide-marker {
	BORDER-LEFT-COLOR: white
}
.highslide-viewport .highslide-thumbstrip-float {
	OVERFLOW: auto
}
.highslide-thumbstrip-float UL {
	PADDING-BOTTOM: 0px; MARGIN: 2px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.highslide-thumbstrip-float LI {
	LIST-STYLE-TYPE: none; MARGIN: 0px 2px; DISPLAY: block; FLOAT: left; =
HEIGHT: 60px; LIST-STYLE-IMAGE: none
}
.highslide-thumbstrip-float IMG {
	BORDER-BOTTOM-COLOR: silver; BORDER-TOP-COLOR: silver; DISPLAY: inline; =
MAX-HEIGHT: 56px; BORDER-RIGHT-COLOR: silver; BORDER-LEFT-COLOR: silver
}
.highslide-thumbstrip-float .highslide-active-anchor IMG {
	BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; =
BORDER-RIGHT-COLOR: black; BORDER-LEFT-COLOR: black
}
.highslide-thumbstrip-float .highslide-scroll-up DIV {
	DISPLAY: none
}
.highslide-thumbstrip-float .highslide-scroll-down DIV {
	DISPLAY: none
}
.highslide-thumbstrip-float .highslide-marker {
	DISPLAY: none
}

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/stylesheets/site.css?1260733853

DIV {
	WORD-WRAP: break-word; wrap: hard
}
BODY {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-FAMILY: helvetica, arial, sans-serif; BACKGROUND: #cbcbcb; =
PADDING-TOP: 0px
}
H2 {
	FONT: bold 16pt sans-serif, helvetica, arial
}
H1 {
	FONT: bold 22pt sans-serif, helvetica, arial
}
H3 {
	FONT: bold 12pt sans-serif, helvetica, arial
}
TABLE {
	FONT-SIZE: 10pt
}
A:link {
	COLOR: #1c5b86; FONT-SIZE: 10pt; TEXT-DECORATION: none
}
A:active {
	COLOR: #1c5b86; FONT-SIZE: 10pt; TEXT-DECORATION: none
}
A:visited {
	COLOR: #1c5b86; FONT-SIZE: 10pt; TEXT-DECORATION: none
}
A:hover {
	COLOR: #ff0000; FONT-SIZE: 10pt; TEXT-DECORATION: underline
}
A.title:link {
	FONT: 11pt sans-serif
}
A.title:active {
	FONT: 11pt sans-serif
}
A.title:visited {
	FONT: 11pt sans-serif
}
A.title:hover {
	FONT: 11pt sans-serif; TEXT-DECORATION: underline
}
A.large_title:link {
	FONT: bold 12pt sans-serif
}
A.large_title:active {
	FONT: bold 12pt sans-serif
}
A.large_title:visited {
	FONT: bold 12pt sans-serif
}
A.large_title:hover {
	FONT: bold 12pt sans-serif; TEXT-DECORATION: underline
}
.small_and_bold {
	FONT: bold 9pt arial, helvetica, sans-serif
}
.indent {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 15px; PADDING-RIGHT: 3px; =
PADDING-TOP: 3px
}
.medium_font {
	FONT: 10pt sans-serif
}
.copyb {
	FONT-FAMILY: arial; FONT-SIZE: 12px; FONT-WEIGHT: bold
}
#container {
	BORDER-BOTTOM: 0px; TEXT-ALIGN: left; BORDER-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px auto; PADDING-LEFT: 0px; WIDTH: 955px; PADDING-RIGHT: =
0px; BACKGROUND: #ffffff; BORDER-TOP: 0px; BORDER-RIGHT: 0px; =
PADDING-TOP: 0px
}
#content {
	BORDER-BOTTOM: white 1px solid; BORDER-LEFT: white 1px solid; =
BORDER-TOP: white 1px solid; BORDER-RIGHT: white 1px solid
}
#bad {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; MARGIN-BOTTOM: 20px; PADDING-TOP: 0px
}
.search {
	FONT-FAMILY: arial; COLOR: #fff; FONT-SIZE: 15px; FONT-WEIGHT: bold
}
.searchform {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 149px; HEIGHT: =
13px; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#wrapper {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 968px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#wrapper2 {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 520px; =
PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
#col1 {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 128px; PADDING-RIGHT: =
0px; FONT-FAMILY: arial; FLOAT: left; FONT-SIZE: 12px; PADDING-TOP: 0px
}
#members {
	TEXT-ALIGN: center; BACKGROUND-COLOR: #0072bc; MARGIN-TOP: 5px; =
FONT-FAMILY: arial; HEIGHT: 20px; COLOR: #fff; FONT-SIZE: 12px; =
FONT-WEIGHT: bold; PADDING-TOP: 5px
}
#memcontent {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #c4e8ff; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; FONT-FAMILY: arial; FONT-SIZE: 11px; FONT-WEIGHT: =
bold; PADDING-TOP: 5px
}
.memform {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 109px; HEIGHT: =
13px; BORDER-TOP: 1px solid; BORDER-RIGHT: 1px solid
}
.sections {
	MARGIN-TOP: 10px; MARGIN-LEFT: 5px
}
.sections UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: none; PADDING-TOP: 0px
}
.sections LI A {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-LEFT: 5px; PADDING-TOP: 0px
}
#col2 {
	BORDER-LEFT: gray 0px solid; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: =
white; MIN-HEIGHT: 2500px; PADDING-LEFT: 5px; WIDTH: 540px; =
PADDING-RIGHT: 5px; FLOAT: left; MARGIN-LEFT: 10px; BORDER-RIGHT: gray =
0px solid; PADDING-TOP: 0px
}
.banner {
	TEXT-ALIGN: center; MARGIN: 10px 0px 0px
}
#subcol1 {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 5px; PADDING-LEFT: 0px; WIDTH: 300px; =
PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
#breaking {
	PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #e9e9e9; PADDING-LEFT: 5px; =
PADDING-RIGHT: 5px; PADDING-TOP: 5px
}
.breaking_box {
	PADDING-BOTTOM: 20px; BACKGROUND-COLOR: #272d31; MARGIN: 5px; =
MIN-HEIGHT: 48px; PADDING-LEFT: 140px; WIDTH: 99%; PADDING-RIGHT: 5px; =
BACKGROUND-REPEAT: no-repeat; COLOR: #fff; FONT-SIZE: 1.1em; =
PADDING-TOP: 6px; -moz-border-radius: 4px; -webkit-border-radius: 4px
}
#bn {
	BACKGROUND-IMAGE: url(/images/rp_bnback2.jpg); PADDING-BOTTOM: 2px; =
BACKGROUND-COLOR: #282d31; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; =
BACKGROUND-REPEAT: no-repeat; COLOR: #fff; PADDING-TOP: 2px
}
#bn P {
	PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-LEFT: 150px; PADDING-RIGHT: =
10px; PADDING-TOP: 3px
}
#bn A {
	COLOR: #ffffff
}
#bn SPAN {
	COLOR: #92a2ad
}
.heading {
	PADDING-BOTTOM: 5px; FONT-FAMILY: arial; COLOR: #990000; FONT-SIZE: =
21px; FONT-WEIGHT: bold; PADDING-TOP: 5px
}
.heading2 {
	FONT-FAMILY: arial; FONT-SIZE: 15px; FONT-WEIGHT: bold
}
.img_inline {
	BORDER-BOTTOM: #333333 1px solid; BORDER-LEFT: #333333 1px solid; =
PADDING-BOTTOM: 2px; MARGIN: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; =
BORDER-TOP: #333333 1px solid; BORDER-RIGHT: #333333 1px solid; =
PADDING-TOP: 2px
}
.reverse_title {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #0072fc; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; FONT: bold 12pt sans-serif, helevtica, arial; COLOR: =
white; PADDING-TOP: 2px
}
.mcopy {
	FONT: 10pt sans-serif, helvetica, arial
}
A {
	FONT: 10pt sans-serif, helvetica, arial
}
.teaser {
	PADDING-RIGHT: 10px; FONT: 10pt sans-serif, helvetica, arial
}
#ln_sports_container .teaser {
	MARGIN-BOTTOM: 20px
}
#ln_sports_container .teaser .title {
	FONT-SIZE: 11pt
}
.large_title {
	PADDING-BOTTOM: 5px; FONT: bold 12pt arial, helvetcia, sans-serif
}
.title {
	PADDING-BOTTOM: 5px; FONT-FAMILY: verdana; FONT-SIZE: 12px; =
FONT-WEIGHT: bold
}
.small_title {
	PADDING-BOTTOM: 5px; FONT-FAMILY: verdana; FONT-SIZE: 10px; =
FONT-WEIGHT: bold
}
.byline {
	FONT: bold 12pt sans-serif, helvetica, arial; MARGIN-BOTTOM: 3px; =
CLEAR: both
}
.dateline {
	FONT: bold 10pt sans-serif, helvetica, arial; MARGIN-BOTTOM: 3px; =
COLOR: #666666
}
.copys {
	FONT-FAMILY: verdana; FONT-SIZE: 10px
}
.divider {
	BACKGROUND-COLOR: #e1e1e1; HEIGHT: 1px
}
#subcol2 {
	PADDING-BOTTOM: 0px; MARGIN-TOP: 5px; PADDING-LEFT: 0px; WIDTH: 300px; =
PADDING-RIGHT: 0px; FLOAT: left; MARGIN-LEFT: 10px; PADDING-TOP: 0px
}
#col3 {
	PADDING-BOTTOM: 0px; BACKGROUND-COLOR: white; PADDING-LEFT: 4px; WIDTH: =
255px; PADDING-RIGHT: 0px; FLOAT: left; PADDING-TOP: 0px
}
#adtop {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#squarelist {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#squarelist LI {
	BACKGROUND-IMAGE: url(images/backbullet.gif); PADDING-LEFT: 13px; =
BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px 2px
}
.clear {
	CLEAR: both
}
#errorExplanation {
	BORDER-BOTTOM: red 2px solid; BORDER-LEFT: red 2px solid; =
PADDING-BOTTOM: 12px; BACKGROUND-COLOR: #f0f0f0; PADDING-LEFT: 7px; =
WIDTH: 400px; PADDING-RIGHT: 7px; MARGIN-BOTTOM: 20px; BORDER-TOP: red =
2px solid; BORDER-RIGHT: red 2px solid; PADDING-TOP: 7px
}
#errorExplanation H2 {
	TEXT-ALIGN: left; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #c00; MARGIN: =
-7px; PADDING-LEFT: 15px; PADDING-RIGHT: 5px; COLOR: #fff; FONT-SIZE: =
12px; FONT-WEIGHT: bold; PADDING-TOP: 5px
}
#errorExplanation P {
	PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
MARGIN-BOTTOM: 0px; COLOR: #333; PADDING-TOP: 5px
}
#errorExplanation UL LI {
	LIST-STYLE-TYPE: square; FONT-SIZE: 12px
}
.citizen_section_title {
	FONT: bold 14pt courier new
}
.citizen_title {
	FONT: bold 18pt courier new
}
.citizen_large {
	FONT: bold 24pt courier new
}
.citizen_section_subtitle {
	BORDER-BOTTOM: #e1e1e1 1px solid; FONT: bold 10pt arial, helvetica, =
sans-serif
}
.citizen_dateline {
	FONT: 10pt arial, helvetica, sans-serif; COLOR: gray
}
DIV.gallery_holder {
	WIDTH: 600px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; align: center
}
DIV.gallery_info {
	TEXT-ALIGN: center; BACKGROUND-COLOR: lightgrey
}
DIV.gallery_images {
	WIDTH: 500px; MARGIN-LEFT: auto; MARGIN-RIGHT: auto; align: center
}
.cit_gallery_image {
	MARGIN: 0em
}
.classifieds {
	FONT: bold 12pt arial, sans-serif, helvetica; COLOR: blue
}
.dpclassifieds {
	FONT: bold 12pt arial, sans-serif, helvetica; COLOR: blue
}
.std_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 5px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: darkgray 1px solid; =
BORDER-RIGHT: darkgray 1px solid; PADDING-TOP: 5px
}
.std_box_new {
	BORDER-BOTTOM: #ddd 2px solid; BORDER-LEFT: #ddd 2px solid; =
PADDING-BOTTOM: 5px; MARGIN: 8px; PADDING-LEFT: 20px; WIDTH: auto; =
PADDING-RIGHT: 20px; BORDER-TOP: #ddd 2px solid; BORDER-RIGHT: #ddd 2px =
solid; PADDING-TOP: 5px; -moz-border-radius: 10px; =
-webkit-border-radius: 10px
}
.std_box_new H1 {
	TEXT-ALIGN: center; COLOR: #fff; text-shadow: 3px 3px 3px #4c4c4c
}
.std_box_school {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 20px; WIDTH: auto; =
PADDING-RIGHT: 20px; BACKGROUND: =
url(http://www.recordpub.web/images/schoolClosing.gif) #ffc66d repeat-x =
center 50%; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid; =
PADDING-TOP: 5px
}
.std_box_show {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 5px; =
PADDING-LEFT: 20px; WIDTH: 350px; PADDING-RIGHT: 20px; BORDER-TOP: =
darkgray 1px solid; BORDER-RIGHT: darkgray 1px solid; PADDING-TOP: 5px; =
-moz-border-radius: 10px; -webkit-border-radius: 10px
}
.std_box_new P {
	FONT: bold 1.1em sans-serif, helvetica, arial; COLOR: #668cd9
}
.std_box_list P {
	FONT: bold 1.1em sans-serif, helvetica, arial; COLOR: #668cd9
}
.std_box_show P {
	FONT: bold 1.1em sans-serif, helvetica, arial; COLOR: #668cd9
}
.vendTitle {
	COLOR: #555
}
.choice {
	FONT-STYLE: italic
}
.std_box_2 {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; MARGIN: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
BORDER-TOP: darkgray 1px solid; BORDER-RIGHT: darkgray 1px solid; =
PADDING-TOP: 5px
}
.column_width {
	WIDTH: 300px
}
.mid_spacer_width {
	WIDTH: 10px
}
.inner_box {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: cornsilk; MARGIN: 5px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; =
BORDER-RIGHT: black 1px solid; PADDING-TOP: 5px
}
.ap_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 5px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-SIZE: 10px; BORDER-TOP: =
darkgray 1px solid; BORDER-RIGHT: darkgray 1px solid; PADDING-TOP: 5px
}
.show_ad_box {
	BORDER-BOTTOM: darkgray 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
darkgray 1px solid; PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f4f4f4; =
MARGIN: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT: 12pt arial, =
helvetica, sans-serif; BORDER-TOP: darkgray 1px solid; BORDER-RIGHT: =
darkgray 1px solid; PADDING-TOP: 5px
}
.show_ad_title {
	BACKGROUND-COLOR: darkblue; COLOR: white; FONT-SIZE: 14pt
}
.in_article_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 0px 0px 0px =
200px; PADDING-LEFT: 3px; WIDTH: 120px; PADDING-RIGHT: 3px; DISPLAY: =
inline; FLOAT: right; BORDER-TOP: darkgray 1px solid; BORDER-RIGHT: =
darkgray 1px solid; PADDING-TOP: 3px
}
.comment_in_article_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 3px; =
WIDTH: 600px; PADDING-RIGHT: 3px; MARGIN-LEFT: auto; BORDER-TOP: =
darkgray 1px solid; MARGIN-RIGHT: auto; BORDER-RIGHT: darkgray 1px =
solid; PADDING-TOP: 3px
}
.pdf_text_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 3px; =
PADDING-LEFT: 3px; PADDING-RIGHT: 3px; BORDER-TOP: darkgray 1px solid; =
BORDER-RIGHT: darkgray 1px solid; PADDING-TOP: 3px
}
.inline_multimedia {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 3px; =
WIDTH: 160px; PADDING-RIGHT: 3px; MARGIN-BOTTOM: 3px; BORDER-TOP: =
darkgray 1px solid; MARGIN-RIGHT: 5px; BORDER-RIGHT: darkgray 1px solid; =
PADDING-TOP: 3px
}
.inline_pdfview {
	BORDER-BOTTOM: red 0px solid; BORDER-LEFT: red 0px solid; =
PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; =
MARGIN-BOTTOM: 3px; BORDER-TOP: red 0px solid; MARGIN-RIGHT: 10px; =
BORDER-RIGHT: red 0px solid; PADDING-TOP: 3px
}
.submit_error {
	PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #0072fc; PADDING-LEFT: 3px; =
WIDTH: 400px; PADDING-RIGHT: 3px; COLOR: white; FONT-SIZE: 12pt; =
PADDING-TOP: 3px
}
.footer {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; FONT-SIZE: =
12px; PADDING-TOP: 3px
}
.search_box {
	BORDER-BOTTOM: #e1e1e1 1px solid; MARGIN-TOP: 3px; PADDING-LEFT: 10px
}
.forum_poll {
	MARGIN-LEFT: 100px; FONT-SIZE: 16px
}
.poll_answer {
=09
}
.top_title {
	FONT: bold 12pt arial, sans-serif, helvetica; COLOR: darkred; =
MARGIN-LEFT: 5px
}
.top_items {
	FONT: 9pt arial, sans-serif, helvetica; MARGIN-LEFT: 10px
}
.top_divider {
	BACKGROUND-COLOR: #e1e1e1; MARGIN: 5px 0px; HEIGHT: 1px; FONT-SIZE: 1px
}
.top_ads_box {
	BORDER-BOTTOM: #0092f2 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#0092f2 1px solid; MARGIN: 5px; BACKGROUND: #0092f2; COLOR: white; =
BORDER-TOP: #0092f2 1px solid; BORDER-RIGHT: #0092f2 1px solid
}
TABLE.subscribe_table {
	BORDER-BOTTOM: #333 1px solid; BORDER-LEFT: #333 1px solid; BORDER-TOP: =
#333 1px solid; BORDER-RIGHT: #333 1px solid
}
TABLE#mastertable {
	BACKGROUND-COLOR: white; WIDTH: 990px
}
#main_content {
	PADDING-LEFT: 1em
}
.body_width {
	WIDTH: 540px
}
.small_text {
	FONT: 8pt arial, helvetica, sans-serif
}
.page_container {
	MARGIN: 5px
}
.page_container_2 {
	MARGIN: 20px
}
.gas_key_item {
	BORDER-BOTTOM: #333333 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#333333 1px solid; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; WIDTH: 100px; =
PADDING-RIGHT: 3px; BORDER-TOP: #333333 1px solid; BORDER-RIGHT: #333333 =
1px solid; PADDING-TOP: 3px
}
.gas_hl_seventy_two {
	BACKGROUND-COLOR: #ccffcc
}
.gas_hl_twenty_four {
	BACKGROUND-COLOR: #ffff99
}
.yellow_pages_box {
	BACKGROUND-IMAGE: url(http://www.recordpub.com/images/yp40.png); =
BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #fff78d; MARGIN: 5px; =
PADDING-LEFT: 5px; WIDTH: auto; PADDING-RIGHT: 5px; BACKGROUND-REPEAT: =
no-repeat; FONT: 12pt arial, helvetica, sans-serif; BACKGROUND-POSITION: =
190px 5px; BORDER-TOP: darkgray 1px solid; BORDER-RIGHT: darkgray 1px =
solid; PADDING-TOP: 5px; -moz-border-radius: 5px; -webkit-border-radius: =
5px
}
.yellow_pages_label {
	FONT: bold 10pt arial, helvetica, sans-serif
}
.Hidden {
	WIDTH: 0px; HEIGHT: 0px; VISIBILITY: hidden
}
.Visible {
	VISIBILITY: visible
}
.vendSite {
	LINE-HEIGHT: 1.5em; COLOR: #333333; FONT-SIZE: 1.1em; FONT-WEIGHT: bold
}
.vendAddr {
	BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 2em; BORDER-RIGHT-STYLE: =
none; BACKGROUND-COLOR: #d0d0ff; FONT-STYLE: italic; PADDING-LEFT: 2em; =
PADDING-RIGHT: 2em; BORDER-COLLAPSE: collapse; BORDER-TOP-STYLE: none; =
COLOR: #333333; BORDER-LEFT-STYLE: none; PADDING-TOP: 2em
}
.vend {
	MARGIN: auto; WIDTH: 500px; BORDER-COLLAPSE: collapse
}
.zip {
	FONT-STYLE: italic; COLOR: #0080ff; FONT-WEIGHT: bold
}
.zipSmall {
	FONT-STYLE: italic; COLOR: #0080ff; FONT-SIZE: 0.9em
}
.searchAgain {
	BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; =
PADDING-BOTTOM: 0.25em; BACKGROUND-COLOR: #eee; MARGIN: auto 8em; =
PADDING-LEFT: 0.25em; PADDING-RIGHT: 0.25em; BORDER-TOP: #cccccc 1px =
solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 0.25em
}
#zipPage {
	TEXT-ALIGN: center
}
#schClosDelay {
	BACKGROUND-IMAGE: url(/images/sClosDelay.gif); MARGIN: auto; WIDTH: =
600px; HEIGHT: 53px
}
#schClosDelay .pushDown {
	PADDING-TOP: 3.5em
}
.reason {
	FONT-VARIANT: normal; MARGIN-LEFT: 1em; FONT-SIZE: 1em
}
.schName {
	PADDING-BOTTOM: 0.25em; BACKGROUND-COLOR: #efefef; PADDING-LEFT: 0.5em; =
PADDING-RIGHT: 0.5em; FONT: 1em helvetica, arial; PADDING-TOP: 0.25em
}
.schEntry {
	BORDER-BOTTOM: darkgrey 1px solid; BORDER-LEFT: darkgrey 1px solid; =
MARGIN: 1em; BORDER-TOP: darkgrey 1px solid; BORDER-RIGHT: darkgrey 1px =
solid
}
.schReason {
	PADDING-BOTTOM: 0.5em; PADDING-LEFT: 0.5em; PADDING-RIGHT: 0.5em; FONT: =
1em normal italic helvetica, arial; PADDING-TOP: 0.5em
}
#schClosDelay .expire {
	FONT: 0.9em normal helvetica, arial; COLOR: blue; CLEAR: both
}
.smText {
	FONT-STYLE: italic; COLOR: #cc7833; FONT-SIZE: 0.9em
}
.schAlert {
	MARGIN: 5px
}
.rightBox {
	CLEAR: both
}
.profilePic {
	MARGIN: 10px; FLOAT: right
}
.javaDate {
	BACKGROUND-IMAGE: url(/images/nav/nav_bg.jpg); BACKGROUND-REPEAT: =
repeat-x; HEIGHT: 30px
}
.specDate {
	TEXT-ALIGN: right; PADDING-LEFT: 5px; WIDTH: 100%; PADDING-RIGHT: 20px; =
FONT: bold 12pt arial, helvetica, sans-serif; COLOR: #333333; =
text-shadow: #444 0.2em 0.2em 0.2em
}
.weathMini {
	MARGIN: 0px auto
}
#sam_page {
	BACKGROUND-COLOR: #433a3d
}
#name_and_logo {
	BACKGROUND-IMAGE: url(/images/header_blue_grad2.jpg); WIDTH: 100%; =
BACKGROUND-REPEAT: repeat-x; HEIGHT: 125px
}
#main_logo {
	PADDING-LEFT: 0px; WIDTH: 250px; FLOAT: left
}
#header_time {
	FONT-STYLE: italic; COLOR: #ffffff; MARGIN-LEFT: 10px; FONT-WEIGHT: =
bold
}
#login_box {
	HEIGHT: 25px; COLOR: #000000; MARGIN-LEFT: 10px; FONT-WEIGHT: bold; =
PADDING-TOP: 2px
}
#citizen_header_box {
	BORDER-BOTTOM: darkgray 1px solid; BORDER-LEFT: darkgray 1px solid; =
PADDING-BOTTOM: 5px; BACKGROUND-COLOR: #f4f4f4; MARGIN: 5px; =
PADDING-LEFT: 5px; PADDING-RIGHT: 5px; FONT-FAMILY: arial; HEIGHT: 25px; =
COLOR: black; FONT-SIZE: 21px; BORDER-TOP: darkgray 1px solid; =
FONT-WEIGHT: bold; BORDER-RIGHT: darkgray 1px solid; PADDING-TOP: 5px
}
#topnav {
	MARGIN-TOP: -2px; MARGIN-LEFT: -35px
}
#footer {
	BACKGROUND-COLOR: darkgray
}
#footer_tos {
=09
}
#footer_copy {
=09
}
#footer_dix_logo {
=09
}
.centeredContent A#school_closing_box {
	PADDING-LEFT: 4em
}
.associated_image {
	MARGIN: 1em; WIDTH: 144px; FLOAT: left; HEIGHT: 144px
}
.photo_byline {
	FONT-SIZE: small
}

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/stylesheets/nav.css?1241461186

DIV.seperator {
=09
}
BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#topnav {
	BACKGROUND-IMAGE: url(/images/rpb_navbackrep.jpg); PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; =
BACKGROUND-REPEAT: repeat; BACKGROUND-POSITION: left 50%; HEIGHT: 31px; =
PADDING-TOP: 0px
}
#topnav A {
	FONT-FAMILY: arial; COLOR: #fff; FONT-SIZE: 12px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
#topnav A:hover {
	TEXT-DECORATION: underline
}
#navheadings_ul {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
1px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#navheadings_ul LI {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 1em; MARGIN: 0.5em 0px 0px; =
PADDING-LEFT: 0.3em; PADDING-RIGHT: 0.3em; FLOAT: left; BORDER-RIGHT: =
#fff 1px solid; PADDING-TOP: 0px
}
#nav_sections_display {
	FONT-FAMILY: arial; FONT-SIZE: 12px; FONT-WEIGHT: bold
}

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/stylesheets/tab.css?1241461186

.tab-pane.dynamic-tab-pane-control {
	POSITION: relative; WIDTH: 100%
}
.dynamic-tab-pane-control .tab-row .tab {
	Z-INDEX: 1; BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 3px; MARGIN: 1px -5px 1px 5px; PADDING-LEFT: 6px; =
PADDING-RIGHT: 6px; DISPLAY: inline; FONT-FAMILY: Verdana, Helvetica, =
Arial; BACKGROUND: rgb(234,242,255); FLOAT: left; FONT-SIZE: 12px; =
BORDER-TOP: 0px; TOP: 0px; CURSOR: pointer; BORDER-RIGHT: =
rgb(120,172,255) 1px solid; PADDING-TOP: 3px
}
.dynamic-tab-pane-control .tab-row .selected.tab {
	Z-INDEX: 3; BORDER-BOTTOM: 0px; BORDER-LEFT: rgb(120,172,255) 1px =
solid; PADDING-BOTTOM: 5px; MARGIN: 1px -6px -2px 0px; PADDING-LEFT: =
6px; PADDING-RIGHT: 6px; BACKGROUND: white; BORDER-TOP: rgb(120,172,255) =
1px solid; TOP: -2px; BORDER-RIGHT: rgb(120,172,255) 1px solid; =
PADDING-TOP: 2px
}
.dynamic-tab-pane-control .tab-row .tab A {
	FONT-FAMILY: Verdana, Helvetica, Arial; COLOR: rgb(0,66,174); =
FONT-SIZE: 13px; CURSOR: pointer; TEXT-DECORATION: none
}
.dynamic-tab-pane-control .tab-row .hover A {
	COLOR: rgb(0,66,174)
}
.dynamic-tab-pane-control .tab-row .selected.tab A {
	FONT-WEIGHT: bold
}
.dynamic-tab-pane-control .tab-page {
	Z-INDEX: 2; BORDER-BOTTOM: rgb(120,172,255) 1px solid; POSITION: =
relative; BORDER-LEFT: rgb(120,172,255) 1px solid; PADDING-BOTTOM: 10px; =
PADDING-LEFT: 10px; PADDING-RIGHT: 10px; FONT-FAMILY: Verdana, =
Helvetica, Arial; BACKGROUND: white; COLOR: black; CLEAR: both; =
FONT-SIZE: 13px; BORDER-TOP: rgb(120,172,255) 1px solid; TOP: -2px; =
BORDER-RIGHT: rgb(120,172,255) 1px solid; PADDING-TOP: 10px
}
.dynamic-tab-pane-control .tab-row {
	Z-INDEX: 1; WIDTH: 100%; WHITE-SPACE: nowrap; BACKGROUND: =
rgb(234,242,255); HEIGHT: 1.85em
}

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/site.js?1244689295

=0A=
function MM_findObj(n, d) { //v4.01=0A=
  var p,i,x;  if(!d) d=3Ddocument; =
if((p=3Dn.indexOf("?"))>0&&parent.frames.length) {=0A=
    d=3Dparent.frames[n.substring(p+1)].document; n=3Dn.substring(0,p);}=0A=
  if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for =
(i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n];=0A=
  for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) =
x=3DMM_findObj(n,d.layers[i].document);=0A=
  if(!x && d.getElementById) x=3Dd.getElementById(n); return x;=0A=
}=0A=
function MM_swapImage() { //v3.0=0A=
  var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; =
for(i=3D0;i<(a.length-2);i+=3D3)=0A=
   if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; =
if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];}=0A=
}=0A=
function MM_swapImgRestore() { //v3.0=0A=
  var i,x,a=3Ddocument.MM_sr; =
for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc;=0A=
}=0A=
=0A=
function MM_preloadImages() { //v3.0=0A=
  var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array();=0A=
    var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; =
i<a.length; i++)=0A=
    if (a[i].indexOf("#")!=3D0){ d.MM_p[j]=3Dnew Image; =
d.MM_p[j++].src=3Da[i];}}=0A=
}=0A=
=0A=
/* for showing and hiding the subscription rates */=0A=
function show(id){=0A=
  if (document.getElementById){=0A=
    obj =3D document.getElementById(id);=0A=
    obj.style.display =3D "";=0A=
  }=0A=
} =0A=
=0A=
function hide(id){=0A=
  if (document.getElementById){=0A=
    obj =3D document.getElementById(id);=0A=
    obj.style.display =3D "none";=0A=
  }=0A=
}=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/prototype.js?1241461185

/*  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, 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, 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);=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, t, range;=0A=
=0A=
    for (position in insertions) {=0A=
      content  =3D insertions[position];=0A=
      position =3D position.toLowerCase();=0A=
      t =3D Element._insertionTranslations[position];=0A=
=0A=
      if (content && content.toElement) content =3D content.toElement();=0A=
      if (Object.isElement(content)) {=0A=
        t.insert(element, content);=0A=
        continue;=0A=
      }=0A=
=0A=
      content =3D Object.toHTML(content);=0A=
=0A=
      range =3D element.ownerDocument.createRange();=0A=
      t.initializeRange(element, range);=0A=
      t.insert(element, =
range.createContextualFragment(content.stripScripts()));=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 expression ? Selector.findElement(ancestors, expression, =
index) :=0A=
      ancestors[index || 0];=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return element.firstDescendant();=0A=
    var descendants =3D element.descendants();=0A=
    return expression ? Selector.findElement(descendants, expression, =
index) :=0A=
      descendants[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 expression ? Selector.findElement(previousSiblings, =
expression, index) :=0A=
      previousSiblings[index || 0];=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 expression ? Selector.findElement(nextSiblings, expression, =
index) :=0A=
      nextSiblings[index || 0];=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=
=0A=
if (!document.createRange || Prototype.Browser.Opera) {=0A=
  Element.Methods.insert =3D 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 t =3D Element._insertionTranslations, content, position, pos, =
tagName;=0A=
=0A=
    for (position in insertions) {=0A=
      content  =3D insertions[position];=0A=
      position =3D position.toLowerCase();=0A=
      pos      =3D t[position];=0A=
=0A=
      if (content && content.toElement) content =3D content.toElement();=0A=
      if (Object.isElement(content)) {=0A=
        pos.insert(element, content);=0A=
        continue;=0A=
      }=0A=
=0A=
      content =3D Object.toHTML(content);=0A=
      tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')=0A=
        ? element.parentNode : element).tagName.toUpperCase();=0A=
=0A=
      if (t.tags[tagName]) {=0A=
        var fragments =3D =
Element._getContentFromAnonymousElement(tagName, content.stripScripts());=0A=
        if (position =3D=3D 'top' || position =3D=3D 'after') =
fragments.reverse();=0A=
        fragments.each(pos.insert.curry(element));=0A=
      }=0A=
      else element.insertAdjacentHTML(pos.adjacency, =
content.stripScripts());=0A=
=0A=
      content.evalScripts.bind(content).defer();=0A=
    }=0A=
=0A=
    return element;=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=
  div.innerHTML =3D t[0] + html + t[1];=0A=
  t[2].times(function() { div =3D div.firstChild });=0A=
  return $A(div.childNodes);=0A=
};=0A=
=0A=
Element._insertionTranslations =3D {=0A=
  before: {=0A=
    adjacency: 'beforeBegin',=0A=
    insert: function(element, node) {=0A=
      element.parentNode.insertBefore(node, element);=0A=
    },=0A=
    initializeRange: function(element, range) {=0A=
      range.setStartBefore(element);=0A=
    }=0A=
  },=0A=
  top: {=0A=
    adjacency: 'afterBegin',=0A=
    insert: function(element, node) {=0A=
      element.insertBefore(node, element.firstChild);=0A=
    },=0A=
    initializeRange: function(element, range) {=0A=
      range.selectNodeContents(element);=0A=
      range.collapse(true);=0A=
    }=0A=
  },=0A=
  bottom: {=0A=
    adjacency: 'beforeEnd',=0A=
    insert: function(element, node) {=0A=
      element.appendChild(node);=0A=
    }=0A=
  },=0A=
  after: {=0A=
    adjacency: 'afterEnd',=0A=
    insert: function(element, node) {=0A=
      element.parentNode.insertBefore(node, element.nextSibling);=0A=
    },=0A=
    initializeRange: function(element, range) {=0A=
      range.setStartAfter(element);=0A=
    }=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=
  this.bottom.initializeRange =3D this.top.initializeRange;=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:       =
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis=
)abled|not)(\((.*?)\))?(\b|$|(?=3D\s)|(?=3D:))/,=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=
      tagName =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 tagName) =
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=
      if (document.createEvent) {=0A=
        var event =3D document.createEvent("HTMLEvents");=0A=
        event.initEvent("dataavailable", true, true);=0A=
      } else {=0A=
        var 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=
});=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, fired =3D false;=0A=
=0A=
  function fireContentLoadedEvent() {=0A=
    if (fired) return;=0A=
    if (timer) window.clearInterval(timer);=0A=
    document.fire("dom:loaded");=0A=
    fired =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_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/effects.js?1241461185

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// Contributors:=0A=
//  Justin Palmer (http://encytemedia.com/)=0A=
//  Mark Pilgrim (http://diveintomark.org/)=0A=
//  Martin Bialasinki=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: =
http://script.aculo.us/ =0A=
=0A=
// converts rgb() and #xxx to #xxxxxx format,  =0A=
// returns self (or first argument) if not convertable  =0A=
String.prototype.parseColor =3D function() {  =0A=
  var color =3D '#';=0A=
  if (this.slice(0,4) =3D=3D 'rgb(') {  =0A=
    var cols =3D this.slice(4,this.length-1).split(',');  =0A=
    var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while =
(++i<3);  =0A=
  } else {  =0A=
    if (this.slice(0,1) =3D=3D '#') {  =0A=
      if (this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D =
(this.charAt(i) + this.charAt(i)).toLowerCase();  =0A=
      if (this.length=3D=3D7) color =3D this.toLowerCase();  =0A=
    }  =0A=
  }  =0A=
  return (color.length=3D=3D7 ? color : (arguments[0] || this));  =0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.collectTextNodes =3D function(element) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A=
  }).flatten().join('');=0A=
};=0A=
=0A=
Element.collectTextNodesIgnoreClass =3D function(element, className) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A=
        Element.collectTextNodesIgnoreClass(node, className) : ''));=0A=
  }).flatten().join('');=0A=
};=0A=
=0A=
Element.setContentZoom =3D function(element, percent) {=0A=
  element =3D $(element);  =0A=
  element.setStyle({fontSize: (percent/100) + 'em'});   =0A=
  if (Prototype.Browser.WebKit) window.scrollBy(0,0);=0A=
  return element;=0A=
};=0A=
=0A=
Element.getInlineOpacity =3D function(element){=0A=
  return $(element).style.opacity || '';=0A=
};=0A=
=0A=
Element.forceRerendering =3D function(element) {=0A=
  try {=0A=
    element =3D $(element);=0A=
    var n =3D document.createTextNode(' ');=0A=
    element.appendChild(n);=0A=
    element.removeChild(n);=0A=
  } catch(e) { }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Effect =3D {=0A=
  _elementDoesNotExistError: {=0A=
    name: 'ElementDoesNotExistError',=0A=
    message: 'The specified DOM element does not exist, but is required =
for this effect to operate'=0A=
  },=0A=
  Transitions: {=0A=
    linear: Prototype.K,=0A=
    sinoidal: function(pos) {=0A=
      return (-Math.cos(pos*Math.PI)/2) + 0.5;=0A=
    },=0A=
    reverse: function(pos) {=0A=
      return 1-pos;=0A=
    },=0A=
    flicker: function(pos) {=0A=
      var pos =3D ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A=
      return pos > 1 ? 1 : pos;=0A=
    },=0A=
    wobble: function(pos) {=0A=
      return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A=
    },=0A=
    pulse: function(pos, pulses) { =0A=
      pulses =3D pulses || 5; =0A=
      return (=0A=
        ((pos % (1/pulses)) * pulses).round() =3D=3D 0 ? =0A=
              ((pos * pulses * 2) - (pos * pulses * 2).floor()) : =0A=
          1 - ((pos * pulses * 2) - (pos * pulses * 2).floor())=0A=
        );=0A=
    },=0A=
    spring: function(pos) { =0A=
      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); =0A=
    },=0A=
    none: function(pos) {=0A=
      return 0;=0A=
    },=0A=
    full: function(pos) {=0A=
      return 1;=0A=
    }=0A=
  },=0A=
  DefaultOptions: {=0A=
    duration:   1.0,   // seconds=0A=
    fps:        100,   // 100=3D assume 66fps max.=0A=
    sync:       false, // true for combining=0A=
    from:       0.0,=0A=
    to:         1.0,=0A=
    delay:      0.0,=0A=
    queue:      'parallel'=0A=
  },=0A=
  tagifyText: function(element) {=0A=
    var tagifyStyle =3D 'position:relative';=0A=
    if (Prototype.Browser.IE) tagifyStyle +=3D ';zoom:1';=0A=
    =0A=
    element =3D $(element);=0A=
    $A(element.childNodes).each( function(child) {=0A=
      if (child.nodeType=3D=3D3) {=0A=
        child.nodeValue.toArray().each( function(character) {=0A=
          element.insertBefore(=0A=
            new Element('span', {style: tagifyStyle}).update(=0A=
              character =3D=3D ' ' ? String.fromCharCode(160) : =
character), =0A=
              child);=0A=
        });=0A=
        Element.remove(child);=0A=
      }=0A=
    });=0A=
  },=0A=
  multiple: function(element, effect) {=0A=
    var elements;=0A=
    if (((typeof element =3D=3D 'object') || =0A=
        Object.isFunction(element)) && =0A=
       (element.length))=0A=
      elements =3D element;=0A=
    else=0A=
      elements =3D $(element).childNodes;=0A=
      =0A=
    var options =3D Object.extend({=0A=
      speed: 0.1,=0A=
      delay: 0.0=0A=
    }, arguments[2] || { });=0A=
    var masterDelay =3D options.delay;=0A=
=0A=
    $A(elements).each( function(element, index) {=0A=
      new effect(element, Object.extend(options, { delay: index * =
options.speed + masterDelay }));=0A=
    });=0A=
  },=0A=
  PAIRS: {=0A=
    'slide':  ['SlideDown','SlideUp'],=0A=
    'blind':  ['BlindDown','BlindUp'],=0A=
    'appear': ['Appear','Fade']=0A=
  },=0A=
  toggle: function(element, effect) {=0A=
    element =3D $(element);=0A=
    effect =3D (effect || 'appear').toLowerCase();=0A=
    var options =3D Object.extend({=0A=
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }=0A=
    }, arguments[2] || { });=0A=
    Effect[element.visible() ? =0A=
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, =
options);=0A=
  }=0A=
};=0A=
=0A=
Effect.DefaultOptions.transition =3D Effect.Transitions.sinoidal;=0A=
=0A=
/* ------------- core effects ------------- */=0A=
=0A=
Effect.ScopedQueue =3D Class.create(Enumerable, {=0A=
  initialize: function() {=0A=
    this.effects  =3D [];=0A=
    this.interval =3D null;    =0A=
  },=0A=
  _each: function(iterator) {=0A=
    this.effects._each(iterator);=0A=
  },=0A=
  add: function(effect) {=0A=
    var timestamp =3D new Date().getTime();=0A=
    =0A=
    var position =3D Object.isString(effect.options.queue) ? =0A=
      effect.options.queue : effect.options.queue.position;=0A=
    =0A=
    switch(position) {=0A=
      case 'front':=0A=
        // move unstarted effects after this effect  =0A=
        this.effects.findAll(function(e){ return e.state=3D=3D'idle' =
}).each( function(e) {=0A=
            e.startOn  +=3D effect.finishOn;=0A=
            e.finishOn +=3D effect.finishOn;=0A=
          });=0A=
        break;=0A=
      case 'with-last':=0A=
        timestamp =3D this.effects.pluck('startOn').max() || timestamp;=0A=
        break;=0A=
      case 'end':=0A=
        // start effect after last queued effect has finished=0A=
        timestamp =3D this.effects.pluck('finishOn').max() || timestamp;=0A=
        break;=0A=
    }=0A=
    =0A=
    effect.startOn  +=3D timestamp;=0A=
    effect.finishOn +=3D timestamp;=0A=
=0A=
    if (!effect.options.queue.limit || (this.effects.length < =
effect.options.queue.limit))=0A=
      this.effects.push(effect);=0A=
    =0A=
    if (!this.interval)=0A=
      this.interval =3D setInterval(this.loop.bind(this), 15);=0A=
  },=0A=
  remove: function(effect) {=0A=
    this.effects =3D this.effects.reject(function(e) { return =
e=3D=3Deffect });=0A=
    if (this.effects.length =3D=3D 0) {=0A=
      clearInterval(this.interval);=0A=
      this.interval =3D null;=0A=
    }=0A=
  },=0A=
  loop: function() {=0A=
    var timePos =3D new Date().getTime();=0A=
    for(var i=3D0, len=3Dthis.effects.length;i<len;i++) =0A=
      this.effects[i] && this.effects[i].loop(timePos);=0A=
  }=0A=
});=0A=
=0A=
Effect.Queues =3D {=0A=
  instances: $H(),=0A=
  get: function(queueName) {=0A=
    if (!Object.isString(queueName)) return queueName;=0A=
    =0A=
    return this.instances.get(queueName) ||=0A=
      this.instances.set(queueName, new Effect.ScopedQueue());=0A=
  }=0A=
};=0A=
Effect.Queue =3D Effect.Queues.get('global');=0A=
=0A=
Effect.Base =3D Class.create({=0A=
  position: null,=0A=
  start: function(options) {=0A=
    function codeForEvent(options,eventName){=0A=
      return (=0A=
        (options[eventName+'Internal'] ? =
'this.options.'+eventName+'Internal(this);' : '') +=0A=
        (options[eventName] ? 'this.options.'+eventName+'(this);' : '')=0A=
      );=0A=
    }=0A=
    if (options && options.transition =3D=3D=3D false) =
options.transition =3D Effect.Transitions.linear;=0A=
    this.options      =3D Object.extend(Object.extend({ =
},Effect.DefaultOptions), options || { });=0A=
    this.currentFrame =3D 0;=0A=
    this.state        =3D 'idle';=0A=
    this.startOn      =3D this.options.delay*1000;=0A=
    this.finishOn     =3D this.startOn+(this.options.duration*1000);=0A=
    this.fromToDelta  =3D this.options.to-this.options.from;=0A=
    this.totalTime    =3D this.finishOn-this.startOn;=0A=
    this.totalFrames  =3D this.options.fps*this.options.duration;=0A=
    =0A=
    eval('this.render =3D function(pos){ '+=0A=
      'if (this.state=3D=3D"idle"){this.state=3D"running";'+=0A=
      codeForEvent(this.options,'beforeSetup')+=0A=
      (this.setup ? 'this.setup();':'')+ =0A=
      codeForEvent(this.options,'afterSetup')+=0A=
      '};if (this.state=3D=3D"running"){'+=0A=
      =
'pos=3Dthis.options.transition(pos)*'+this.fromToDelta+'+'+this.options.f=
rom+';'+=0A=
      'this.position=3Dpos;'+=0A=
      codeForEvent(this.options,'beforeUpdate')+=0A=
      (this.update ? 'this.update(pos);':'')+=0A=
      codeForEvent(this.options,'afterUpdate')+=0A=
      '}}');=0A=
    =0A=
    this.event('beforeStart');=0A=
    if (!this.options.sync)=0A=
      Effect.Queues.get(Object.isString(this.options.queue) ? =0A=
        'global' : this.options.queue.scope).add(this);=0A=
  },=0A=
  loop: function(timePos) {=0A=
    if (timePos >=3D this.startOn) {=0A=
      if (timePos >=3D this.finishOn) {=0A=
        this.render(1.0);=0A=
        this.cancel();=0A=
        this.event('beforeFinish');=0A=
        if (this.finish) this.finish(); =0A=
        this.event('afterFinish');=0A=
        return;  =0A=
      }=0A=
      var pos   =3D (timePos - this.startOn) / this.totalTime,=0A=
          frame =3D (pos * this.totalFrames).round();=0A=
      if (frame > this.currentFrame) {=0A=
        this.render(pos);=0A=
        this.currentFrame =3D frame;=0A=
      }=0A=
    }=0A=
  },=0A=
  cancel: function() {=0A=
    if (!this.options.sync)=0A=
      Effect.Queues.get(Object.isString(this.options.queue) ? =0A=
        'global' : this.options.queue.scope).remove(this);=0A=
    this.state =3D 'finished';=0A=
  },=0A=
  event: function(eventName) {=0A=
    if (this.options[eventName + 'Internal']) this.options[eventName + =
'Internal'](this);=0A=
    if (this.options[eventName]) this.options[eventName](this);=0A=
  },=0A=
  inspect: function() {=0A=
    var data =3D $H();=0A=
    for(property in this)=0A=
      if (!Object.isFunction(this[property])) data.set(property, =
this[property]);=0A=
    return '#<Effect:' + data.inspect() + ',options:' + =
$H(this.options).inspect() + '>';=0A=
  }=0A=
});=0A=
=0A=
Effect.Parallel =3D Class.create(Effect.Base, {=0A=
  initialize: function(effects) {=0A=
    this.effects =3D effects || [];=0A=
    this.start(arguments[1]);=0A=
  },=0A=
  update: function(position) {=0A=
    this.effects.invoke('render', position);=0A=
  },=0A=
  finish: function(position) {=0A=
    this.effects.each( function(effect) {=0A=
      effect.render(1.0);=0A=
      effect.cancel();=0A=
      effect.event('beforeFinish');=0A=
      if (effect.finish) effect.finish(position);=0A=
      effect.event('afterFinish');=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
Effect.Tween =3D Class.create(Effect.Base, {=0A=
  initialize: function(object, from, to) {=0A=
    object =3D Object.isString(object) ? $(object) : object;=0A=
    var args =3D $A(arguments), method =3D args.last(), =0A=
      options =3D args.length =3D=3D 5 ? args[3] : null;=0A=
    this.method =3D Object.isFunction(method) ? method.bind(object) :=0A=
      Object.isFunction(object[method]) ? object[method].bind(object) : =0A=
      function(value) { object[method] =3D value };=0A=
    this.start(Object.extend({ from: from, to: to }, options || { }));=0A=
  },=0A=
  update: function(position) {=0A=
    this.method(position);=0A=
  }=0A=
});=0A=
=0A=
Effect.Event =3D Class.create(Effect.Base, {=0A=
  initialize: function() {=0A=
    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));=0A=
  },=0A=
  update: Prototype.emptyFunction=0A=
});=0A=
=0A=
Effect.Opacity =3D Class.create(Effect.Base, {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if (!this.element) throw(Effect._elementDoesNotExistError);=0A=
    // make this work on IE on elements without 'layout'=0A=
    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))=0A=
      this.element.setStyle({zoom: 1});=0A=
    var options =3D Object.extend({=0A=
      from: this.element.getOpacity() || 0.0,=0A=
      to:   1.0=0A=
    }, arguments[1] || { });=0A=
    this.start(options);=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setOpacity(position);=0A=
  }=0A=
});=0A=
=0A=
Effect.Move =3D Class.create(Effect.Base, {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if (!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      x:    0,=0A=
      y:    0,=0A=
      mode: 'relative'=0A=
    }, arguments[1] || { });=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    this.element.makePositioned();=0A=
    this.originalLeft =3D parseFloat(this.element.getStyle('left') || =
'0');=0A=
    this.originalTop  =3D parseFloat(this.element.getStyle('top')  || =
'0');=0A=
    if (this.options.mode =3D=3D 'absolute') {=0A=
      this.options.x =3D this.options.x - this.originalLeft;=0A=
      this.options.y =3D this.options.y - this.originalTop;=0A=
    }=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({=0A=
      left: (this.options.x  * position + this.originalLeft).round() + =
'px',=0A=
      top:  (this.options.y  * position + this.originalTop).round()  + =
'px'=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
// for backwards compatibility=0A=
Effect.MoveBy =3D function(element, toTop, toLeft) {=0A=
  return new Effect.Move(element, =0A=
    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));=0A=
};=0A=
=0A=
Effect.Scale =3D Class.create(Effect.Base, {=0A=
  initialize: function(element, percent) {=0A=
    this.element =3D $(element);=0A=
    if (!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      scaleX: true,=0A=
      scaleY: true,=0A=
      scaleContent: true,=0A=
      scaleFromCenter: false,=0A=
      scaleMode: 'box',        // 'box' or 'contents' or { } with =
provided values=0A=
      scaleFrom: 100.0,=0A=
      scaleTo:   percent=0A=
    }, arguments[2] || { });=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    this.restoreAfterFinish =3D this.options.restoreAfterFinish || false;=0A=
    this.elementPositioning =3D this.element.getStyle('position');=0A=
    =0A=
    this.originalStyle =3D { };=0A=
    ['top','left','width','height','fontSize'].each( function(k) {=0A=
      this.originalStyle[k] =3D this.element.style[k];=0A=
    }.bind(this));=0A=
      =0A=
    this.originalTop  =3D this.element.offsetTop;=0A=
    this.originalLeft =3D this.element.offsetLeft;=0A=
    =0A=
    var fontSize =3D this.element.getStyle('font-size') || '100%';=0A=
    ['em','px','%','pt'].each( function(fontSizeType) {=0A=
      if (fontSize.indexOf(fontSizeType)>0) {=0A=
        this.fontSize     =3D parseFloat(fontSize);=0A=
        this.fontSizeType =3D fontSizeType;=0A=
      }=0A=
    }.bind(this));=0A=
    =0A=
    this.factor =3D (this.options.scaleTo - this.options.scaleFrom)/100;=0A=
    =0A=
    this.dims =3D null;=0A=
    if (this.options.scaleMode=3D=3D'box')=0A=
      this.dims =3D [this.element.offsetHeight, =
this.element.offsetWidth];=0A=
    if (/^content/.test(this.options.scaleMode))=0A=
      this.dims =3D [this.element.scrollHeight, =
this.element.scrollWidth];=0A=
    if (!this.dims)=0A=
      this.dims =3D [this.options.scaleMode.originalHeight,=0A=
                   this.options.scaleMode.originalWidth];=0A=
  },=0A=
  update: function(position) {=0A=
    var currentScale =3D (this.options.scaleFrom/100.0) + (this.factor * =
position);=0A=
    if (this.options.scaleContent && this.fontSize)=0A=
      this.element.setStyle({fontSize: this.fontSize * currentScale + =
this.fontSizeType });=0A=
    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * =
currentScale);=0A=
  },=0A=
  finish: function(position) {=0A=
    if (this.restoreAfterFinish) =
this.element.setStyle(this.originalStyle);=0A=
  },=0A=
  setDimensions: function(height, width) {=0A=
    var d =3D { };=0A=
    if (this.options.scaleX) d.width =3D width.round() + 'px';=0A=
    if (this.options.scaleY) d.height =3D height.round() + 'px';=0A=
    if (this.options.scaleFromCenter) {=0A=
      var topd  =3D (height - this.dims[0])/2;=0A=
      var leftd =3D (width  - this.dims[1])/2;=0A=
      if (this.elementPositioning =3D=3D 'absolute') {=0A=
        if (this.options.scaleY) d.top =3D this.originalTop-topd + 'px';=0A=
        if (this.options.scaleX) d.left =3D this.originalLeft-leftd + =
'px';=0A=
      } else {=0A=
        if (this.options.scaleY) d.top =3D -topd + 'px';=0A=
        if (this.options.scaleX) d.left =3D -leftd + 'px';=0A=
      }=0A=
    }=0A=
    this.element.setStyle(d);=0A=
  }=0A=
});=0A=
=0A=
Effect.Highlight =3D Class.create(Effect.Base, {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if (!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({ startcolor: '#ffff99' }, =
arguments[1] || { });=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    // Prevent executing on elements not in the layout flow=0A=
    if (this.element.getStyle('display')=3D=3D'none') { this.cancel(); =
return; }=0A=
    // Disable background image during the effect=0A=
    this.oldStyle =3D { };=0A=
    if (!this.options.keepBackgroundImage) {=0A=
      this.oldStyle.backgroundImage =3D =
this.element.getStyle('background-image');=0A=
      this.element.setStyle({backgroundImage: 'none'});=0A=
    }=0A=
    if (!this.options.endcolor)=0A=
      this.options.endcolor =3D =
this.element.getStyle('background-color').parseColor('#ffffff');=0A=
    if (!this.options.restorecolor)=0A=
      this.options.restorecolor =3D =
this.element.getStyle('background-color');=0A=
    // init color calculations=0A=
    this._base  =3D $R(0,2).map(function(i){ return =
parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A=
    this._delta =3D $R(0,2).map(function(i){ return =
parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] =
}.bind(this));=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({backgroundColor: =
$R(0,2).inject('#',function(m,v,i){=0A=
      return =
m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); =
}.bind(this)) });=0A=
  },=0A=
  finish: function() {=0A=
    this.element.setStyle(Object.extend(this.oldStyle, {=0A=
      backgroundColor: this.options.restorecolor=0A=
    }));=0A=
  }=0A=
});=0A=
=0A=
Effect.ScrollTo =3D function(element) {=0A=
  var options =3D arguments[1] || { },=0A=
    scrollOffsets =3D document.viewport.getScrollOffsets(),=0A=
    elementOffsets =3D $(element).cumulativeOffset(),=0A=
    max =3D (window.height || document.body.scrollHeight) - =
document.viewport.getHeight();  =0A=
=0A=
  if (options.offset) elementOffsets[1] +=3D options.offset;=0A=
=0A=
  return new Effect.Tween(null,=0A=
    scrollOffsets.top,=0A=
    elementOffsets[1] > max ? max : elementOffsets[1],=0A=
    options,=0A=
    function(p){ scrollTo(scrollOffsets.left, p.round()) }=0A=
  );=0A=
};=0A=
=0A=
/* ------------- combination effects ------------- */=0A=
=0A=
Effect.Fade =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var options =3D Object.extend({=0A=
    from: element.getOpacity() || 1.0,=0A=
    to:   0.0,=0A=
    afterFinishInternal: function(effect) { =0A=
      if (effect.options.to!=3D0) return;=0A=
      effect.element.hide().setStyle({opacity: oldOpacity}); =0A=
    }=0A=
  }, arguments[1] || { });=0A=
  return new Effect.Opacity(element,options);=0A=
};=0A=
=0A=
Effect.Appear =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
  from: (element.getStyle('display') =3D=3D 'none' ? 0.0 : =
element.getOpacity() || 0.0),=0A=
  to:   1.0,=0A=
  // force Safari to render floated elements properly=0A=
  afterFinishInternal: function(effect) {=0A=
    effect.element.forceRerendering();=0A=
  },=0A=
  beforeSetup: function(effect) {=0A=
    effect.element.setOpacity(effect.options.from).show(); =0A=
  }}, arguments[1] || { });=0A=
  return new Effect.Opacity(element,options);=0A=
};=0A=
=0A=
Effect.Puff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D { =0A=
    opacity: element.getInlineOpacity(), =0A=
    position: element.getStyle('position'),=0A=
    top:  element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height=0A=
  };=0A=
  return new Effect.Parallel(=0A=
   [ new Effect.Scale(element, 200, =0A=
      { sync: true, scaleFromCenter: true, scaleContent: true, =
restoreAfterFinish: true }), =0A=
     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], =0A=
     Object.extend({ duration: 1.0, =0A=
      beforeSetupInternal: function(effect) {=0A=
        Position.absolutize(effect.effects[0].element)=0A=
      },=0A=
      afterFinishInternal: function(effect) {=0A=
         effect.effects[0].element.hide().setStyle(oldStyle); }=0A=
     }, arguments[1] || { })=0A=
   );=0A=
};=0A=
=0A=
Effect.BlindUp =3D function(element) {=0A=
  element =3D $(element);=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 0,=0A=
    Object.extend({ scaleContent: false, =0A=
      scaleX: false, =0A=
      restoreAfterFinish: true,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping();=0A=
      } =0A=
    }, arguments[1] || { })=0A=
  );=0A=
};=0A=
=0A=
Effect.BlindDown =3D function(element) {=0A=
  element =3D $(element);=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false,=0A=
    scaleFrom: 0,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping();=0A=
    }=0A=
  }, arguments[1] || { }));=0A=
};=0A=
=0A=
Effect.SwitchOff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  return new Effect.Appear(element, Object.extend({=0A=
    duration: 0.4,=0A=
    from: 0,=0A=
    transition: Effect.Transitions.flicker,=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Scale(effect.element, 1, { =0A=
        duration: 0.3, scaleFromCenter: true,=0A=
        scaleX: false, scaleContent: false, restoreAfterFinish: true,=0A=
        beforeSetup: function(effect) { =0A=
          effect.element.makePositioned().makeClipping();=0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: =
oldOpacity});=0A=
        }=0A=
      })=0A=
    }=0A=
  }, arguments[1] || { }));=0A=
};=0A=
=0A=
Effect.DropOut =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left'),=0A=
    opacity: element.getInlineOpacity() };=0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), =0A=
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],=0A=
    Object.extend(=0A=
      { duration: 0.5,=0A=
        beforeSetup: function(effect) {=0A=
          effect.effects[0].element.makePositioned(); =0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);=0A=
        } =0A=
      }, arguments[1] || { }));=0A=
};=0A=
=0A=
Effect.Shake =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    distance: 20,=0A=
    duration: 0.5=0A=
  }, arguments[1] || {});=0A=
  var distance =3D parseFloat(options.distance);=0A=
  var split =3D parseFloat(options.duration) / 10.0;=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left') };=0A=
    return new Effect.Move(element,=0A=
      { x:  distance, y: 0, duration: split, afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -distance, y: 0, duration: split, afterFinishInternal: =
function(effect) {=0A=
        effect.element.undoPositioned().setStyle(oldStyle);=0A=
  }}) }}) }}) }}) }}) }});=0A=
};=0A=
=0A=
Effect.SlideDown =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  // SlideDown need to have the content of the element wrapped in a =
container element with fixed height!=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleFrom: window.opera ? 0 : 1,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if (window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },=0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' }); =0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping().undoPositioned();=0A=
      effect.element.down().undoPositioned().setStyle({bottom: =
oldInnerBottom}); }=0A=
    }, arguments[1] || { })=0A=
  );=0A=
};=0A=
=0A=
Effect.SlideUp =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, window.opera ? 0 : 1,=0A=
   Object.extend({ scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleMode: 'box',=0A=
    scaleFrom: 100,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if (window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().show();=0A=
    },  =0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' });=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.hide().undoClipping().undoPositioned();=0A=
      effect.element.down().undoPositioned().setStyle({bottom: =
oldInnerBottom});=0A=
    }=0A=
   }, arguments[1] || { })=0A=
  );=0A=
};=0A=
=0A=
// Bug in opera makes the TD containing this element expand for a =
instance after finish =0A=
Effect.Squish =3D function(element) {=0A=
  return new Effect.Scale(element, window.opera ? 1 : 0, { =0A=
    restoreAfterFinish: true,=0A=
    beforeSetup: function(effect) {=0A=
      effect.element.makeClipping(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.hide().undoClipping(); =0A=
    }=0A=
  });=0A=
};=0A=
=0A=
Effect.Grow =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.full=0A=
  }, arguments[1] || { });=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();    =0A=
  var initialMoveX, initialMoveY;=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      initialMoveX =3D initialMoveY =3D moveX =3D moveY =3D 0; =0A=
      break;=0A=
    case 'top-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D moveY =3D 0;=0A=
      moveX =3D -dims.width;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      initialMoveX =3D moveX =3D 0;=0A=
      initialMoveY =3D dims.height;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D dims.height;=0A=
      moveX =3D -dims.width;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'center':=0A=
      initialMoveX =3D dims.width / 2;=0A=
      initialMoveY =3D dims.height / 2;=0A=
      moveX =3D -dims.width / 2;=0A=
      moveY =3D -dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Move(element, {=0A=
    x: initialMoveX,=0A=
    y: initialMoveY,=0A=
    duration: 0.01, =0A=
    beforeSetup: function(effect) {=0A=
      effect.element.hide().makeClipping().makePositioned();=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Parallel(=0A=
        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, =
from: 0.0, transition: options.opacityTransition }),=0A=
          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: =
true, transition: options.moveTransition }),=0A=
          new Effect.Scale(effect.element, 100, {=0A=
            scaleMode: { originalHeight: dims.height, originalWidth: =
dims.width }, =0A=
            sync: true, scaleFrom: window.opera ? 1 : 0, transition: =
options.scaleTransition, restoreAfterFinish: true})=0A=
        ], Object.extend({=0A=
             beforeSetup: function(effect) {=0A=
               effect.effects[0].element.setStyle({height: =
'0px'}).show(); =0A=
             },=0A=
             afterFinishInternal: function(effect) {=0A=
               =
effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldSty=
le); =0A=
             }=0A=
           }, options)=0A=
      )=0A=
    }=0A=
  });=0A=
};=0A=
=0A=
Effect.Shrink =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.none=0A=
  }, arguments[1] || { });=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      moveX =3D moveY =3D 0;=0A=
      break;=0A=
    case 'top-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D 0;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      moveX =3D 0;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'center':  =0A=
      moveX =3D dims.width / 2;=0A=
      moveY =3D dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, =
transition: options.opacityTransition }),=0A=
      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, =
transition: options.scaleTransition, restoreAfterFinish: true}),=0A=
      new Effect.Move(element, { x: moveX, y: moveY, sync: true, =
transition: options.moveTransition })=0A=
    ], Object.extend({            =0A=
         beforeStartInternal: function(effect) {=0A=
           effect.effects[0].element.makePositioned().makeClipping(); =0A=
         },=0A=
         afterFinishInternal: function(effect) {=0A=
           =
effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle=
(oldStyle); }=0A=
       }, options)=0A=
  );=0A=
};=0A=
=0A=
Effect.Pulsate =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options    =3D arguments[1] || { };=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var transition =3D options.transition || Effect.Transitions.sinoidal;=0A=
  var reverser   =3D function(pos){ return =
transition(1-Effect.Transitions.pulse(pos, options.pulses)) };=0A=
  reverser.bind(transition);=0A=
  return new Effect.Opacity(element, =0A=
    Object.extend(Object.extend({  duration: 2.0, from: 0,=0A=
      afterFinishInternal: function(effect) { =
effect.element.setStyle({opacity: oldOpacity}); }=0A=
    }, options), {transition: reverser}));=0A=
};=0A=
=0A=
Effect.Fold =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height };=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 5, Object.extend({   =0A=
    scaleContent: false,=0A=
    scaleX: false,=0A=
    afterFinishInternal: function(effect) {=0A=
    new Effect.Scale(element, 1, { =0A=
      scaleContent: false, =0A=
      scaleY: false,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping().setStyle(oldStyle);=0A=
      } });=0A=
  }}, arguments[1] || { }));=0A=
};=0A=
=0A=
Effect.Morph =3D Class.create(Effect.Base, {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if (!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      style: { }=0A=
    }, arguments[1] || { });=0A=
    =0A=
    if (!Object.isString(options.style)) this.style =3D =
$H(options.style);=0A=
    else {=0A=
      if (options.style.include(':'))=0A=
        this.style =3D options.style.parseStyle();=0A=
      else {=0A=
        this.element.addClassName(options.style);=0A=
        this.style =3D $H(this.element.getStyles());=0A=
        this.element.removeClassName(options.style);=0A=
        var css =3D this.element.getStyles();=0A=
        this.style =3D this.style.reject(function(style) {=0A=
          return style.value =3D=3D css[style.key];=0A=
        });=0A=
        options.afterFinishInternal =3D function(effect) {=0A=
          effect.element.addClassName(effect.options.style);=0A=
          effect.transforms.each(function(transform) {=0A=
            effect.element.style[transform.style] =3D '';=0A=
          });=0A=
        }=0A=
      }=0A=
    }=0A=
    this.start(options);=0A=
  },=0A=
  =0A=
  setup: function(){=0A=
    function parseColor(color){=0A=
      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) =
color =3D '#ffffff';=0A=
      color =3D color.parseColor();=0A=
      return $R(0,2).map(function(i){=0A=
        return parseInt( color.slice(i*2+1,i*2+3), 16 ) =0A=
      });=0A=
    }=0A=
    this.transforms =3D this.style.map(function(pair){=0A=
      var property =3D pair[0], value =3D pair[1], unit =3D null;=0A=
=0A=
      if (value.parseColor('#zzzzzz') !=3D '#zzzzzz') {=0A=
        value =3D value.parseColor();=0A=
        unit  =3D 'color';=0A=
      } else if (property =3D=3D 'opacity') {=0A=
        value =3D parseFloat(value);=0A=
        if (Prototype.Browser.IE && =
(!this.element.currentStyle.hasLayout))=0A=
          this.element.setStyle({zoom: 1});=0A=
      } else if (Element.CSS_LENGTH.test(value)) {=0A=
          var components =3D value.match(/^([\+\-]?[0-9\.]+)(.*)$/);=0A=
          value =3D parseFloat(components[1]);=0A=
          unit =3D (components.length =3D=3D 3) ? components[2] : null;=0A=
      }=0A=
=0A=
      var originalValue =3D this.element.getStyle(property);=0A=
      return { =0A=
        style: property.camelize(), =0A=
        originalValue: unit=3D=3D'color' ? parseColor(originalValue) : =
parseFloat(originalValue || 0), =0A=
        targetValue: unit=3D=3D'color' ? parseColor(value) : value,=0A=
        unit: unit=0A=
      };=0A=
    }.bind(this)).reject(function(transform){=0A=
      return (=0A=
        (transform.originalValue =3D=3D transform.targetValue) ||=0A=
        (=0A=
          transform.unit !=3D 'color' &&=0A=
          (isNaN(transform.originalValue) || =
isNaN(transform.targetValue))=0A=
        )=0A=
      )=0A=
    });=0A=
  },=0A=
  update: function(position) {=0A=
    var style =3D { }, transform, i =3D this.transforms.length;=0A=
    while(i--)=0A=
      style[(transform =3D this.transforms[i]).style] =3D =0A=
        transform.unit=3D=3D'color' ? '#'+=0A=
          (Math.round(transform.originalValue[0]+=0A=
            =
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorP=
art() +=0A=
          (Math.round(transform.originalValue[1]+=0A=
            =
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorP=
art() +=0A=
          (Math.round(transform.originalValue[2]+=0A=
            =
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorP=
art() :=0A=
        (transform.originalValue +=0A=
          (transform.targetValue - transform.originalValue) * =
position).toFixed(3) + =0A=
            (transform.unit =3D=3D=3D null ? '' : transform.unit);=0A=
    this.element.setStyle(style, true);=0A=
  }=0A=
});=0A=
=0A=
Effect.Transform =3D Class.create({=0A=
  initialize: function(tracks){=0A=
    this.tracks  =3D [];=0A=
    this.options =3D arguments[1] || { };=0A=
    this.addTracks(tracks);=0A=
  },=0A=
  addTracks: function(tracks){=0A=
    tracks.each(function(track){=0A=
      track =3D $H(track);=0A=
      var data =3D track.values().first();=0A=
      this.tracks.push($H({=0A=
        ids:     track.keys().first(),=0A=
        effect:  Effect.Morph,=0A=
        options: { style: data }=0A=
      }));=0A=
    }.bind(this));=0A=
    return this;=0A=
  },=0A=
  play: function(){=0A=
    return new Effect.Parallel(=0A=
      this.tracks.map(function(track){=0A=
        var ids =3D track.get('ids'), effect =3D track.get('effect'), =
options =3D track.get('options');=0A=
        var elements =3D [$(ids) || $$(ids)].flatten();=0A=
        return elements.map(function(e){ return new effect(e, =
Object.extend({ sync:true }, options)) });=0A=
      }).flatten(),=0A=
      this.options=0A=
    );=0A=
  }=0A=
});=0A=
=0A=
Element.CSS_PROPERTIES =3D $w(=0A=
  'backgroundColor backgroundPosition borderBottomColor =
borderBottomStyle ' + =0A=
  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +=0A=
  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +=0A=
  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +=0A=
  'fontSize fontWeight height left letterSpacing lineHeight ' +=0A=
  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight =
'+=0A=
  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +=0A=
  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +=0A=
  'right textIndent top width wordSpacing zIndex');=0A=
  =0A=
Element.CSS_LENGTH =3D =
/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;=0A=
=0A=
String.__parseStyleElement =3D document.createElement('div');=0A=
String.prototype.parseStyle =3D function(){=0A=
  var style, styleRules =3D $H();=0A=
  if (Prototype.Browser.WebKit)=0A=
    style =3D new Element('div',{style:this}).style;=0A=
  else {=0A=
    String.__parseStyleElement.innerHTML =3D '<div style=3D"' + this + =
'"></div>';=0A=
    style =3D String.__parseStyleElement.childNodes[0].style;=0A=
  }=0A=
  =0A=
  Element.CSS_PROPERTIES.each(function(property){=0A=
    if (style[property]) styleRules.set(property, style[property]); =0A=
  });=0A=
  =0A=
  if (Prototype.Browser.IE && this.include('opacity'))=0A=
    styleRules.set('opacity', =
this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);=0A=
=0A=
  return styleRules;=0A=
};=0A=
=0A=
if (document.defaultView && document.defaultView.getComputedStyle) {=0A=
  Element.getStyles =3D function(element) {=0A=
    var css =3D document.defaultView.getComputedStyle($(element), null);=0A=
    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) =
{=0A=
      styles[property] =3D css[property];=0A=
      return styles;=0A=
    });=0A=
  };=0A=
} else {=0A=
  Element.getStyles =3D function(element) {=0A=
    element =3D $(element);=0A=
    var css =3D element.currentStyle, styles;=0A=
    styles =3D Element.CSS_PROPERTIES.inject({ }, function(hash, =
property) {=0A=
      hash.set(property, css[property]);=0A=
      return hash;=0A=
    });=0A=
    if (!styles.opacity) styles.set('opacity', element.getOpacity());=0A=
    return styles;=0A=
  };=0A=
};=0A=
=0A=
Effect.Methods =3D {=0A=
  morph: function(element, style) {=0A=
    element =3D $(element);=0A=
    new Effect.Morph(element, Object.extend({ style: style }, =
arguments[2] || { }));=0A=
    return element;=0A=
  },=0A=
  visualEffect: function(element, effect, options) {=0A=
    element =3D $(element)=0A=
    var s =3D effect.dasherize().camelize(), klass =3D =
s.charAt(0).toUpperCase() + s.substring(1);=0A=
    new Effect[klass](element, options);=0A=
    return element;=0A=
  },=0A=
  highlight: function(element, options) {=0A=
    element =3D $(element);=0A=
    new Effect.Highlight(element, options);=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+=0A=
  'pulsate shake puff squish switchOff dropOut').each(=0A=
  function(effect) { =0A=
    Effect.Methods[effect] =3D function(element, options){=0A=
      element =3D $(element);=0A=
      Effect[effect.charAt(0).toUpperCase() + =
effect.substring(1)](element, options);=0A=
      return element;=0A=
    }=0A=
  }=0A=
);=0A=
=0A=
$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes =
collectTextNodesIgnoreClass getStyles').each( =0A=
  function(f) { Effect.Methods[f] =3D Element[f]; }=0A=
);=0A=
=0A=
Element.addMethods(Effect.Methods);=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/dragdrop.js?1241461185

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
//           (c) 2005-2007 Sammi Williams =
(http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: http://script.aculo.us/=0A=
=0A=
if(Object.isUndefined(Effect))=0A=
  throw("dragdrop.js requires including script.aculo.us' effects.js =
library");=0A=
=0A=
var Droppables =3D {=0A=
  drops: [],=0A=
=0A=
  remove: function(element) {=0A=
    this.drops =3D this.drops.reject(function(d) { return =
d.element=3D=3D$(element) });=0A=
  },=0A=
=0A=
  add: function(element) {=0A=
    element =3D $(element);=0A=
    var options =3D Object.extend({=0A=
      greedy:     true,=0A=
      hoverclass: null,=0A=
      tree:       false=0A=
    }, arguments[1] || { });=0A=
=0A=
    // cache containers=0A=
    if(options.containment) {=0A=
      options._containers =3D [];=0A=
      var containment =3D options.containment;=0A=
      if(Object.isArray(containment)) {=0A=
        containment.each( function(c) { options._containers.push($(c)) =
});=0A=
      } else {=0A=
        options._containers.push($(containment));=0A=
      }=0A=
    }=0A=
    =0A=
    if(options.accept) options.accept =3D [options.accept].flatten();=0A=
=0A=
    Element.makePositioned(element); // fix IE=0A=
    options.element =3D element;=0A=
=0A=
    this.drops.push(options);=0A=
  },=0A=
  =0A=
  findDeepestChild: function(drops) {=0A=
    deepest =3D drops[0];=0A=
      =0A=
    for (i =3D 1; i < drops.length; ++i)=0A=
      if (Element.isParent(drops[i].element, deepest.element))=0A=
        deepest =3D drops[i];=0A=
    =0A=
    return deepest;=0A=
  },=0A=
=0A=
  isContained: function(element, drop) {=0A=
    var containmentNode;=0A=
    if(drop.tree) {=0A=
      containmentNode =3D element.treeNode; =0A=
    } else {=0A=
      containmentNode =3D element.parentNode;=0A=
    }=0A=
    return drop._containers.detect(function(c) { return containmentNode =
=3D=3D c });=0A=
  },=0A=
  =0A=
  isAffected: function(point, element, drop) {=0A=
    return (=0A=
      (drop.element!=3Delement) &&=0A=
      ((!drop._containers) ||=0A=
        this.isContained(element, drop)) &&=0A=
      ((!drop.accept) ||=0A=
        (Element.classNames(element).detect( =0A=
          function(v) { return drop.accept.include(v) } ) )) &&=0A=
      Position.within(drop.element, point[0], point[1]) );=0A=
  },=0A=
=0A=
  deactivate: function(drop) {=0A=
    if(drop.hoverclass)=0A=
      Element.removeClassName(drop.element, drop.hoverclass);=0A=
    this.last_active =3D null;=0A=
  },=0A=
=0A=
  activate: function(drop) {=0A=
    if(drop.hoverclass)=0A=
      Element.addClassName(drop.element, drop.hoverclass);=0A=
    this.last_active =3D drop;=0A=
  },=0A=
=0A=
  show: function(point, element) {=0A=
    if(!this.drops.length) return;=0A=
    var drop, affected =3D [];=0A=
    =0A=
    this.drops.each( function(drop) {=0A=
      if(Droppables.isAffected(point, element, drop))=0A=
        affected.push(drop);=0A=
    });=0A=
        =0A=
    if(affected.length>0)=0A=
      drop =3D Droppables.findDeepestChild(affected);=0A=
=0A=
    if(this.last_active && this.last_active !=3D drop) =
this.deactivate(this.last_active);=0A=
    if (drop) {=0A=
      Position.within(drop.element, point[0], point[1]);=0A=
      if(drop.onHover)=0A=
        drop.onHover(element, drop.element, =
Position.overlap(drop.overlap, drop.element));=0A=
      =0A=
      if (drop !=3D this.last_active) Droppables.activate(drop);=0A=
    }=0A=
  },=0A=
=0A=
  fire: function(event, element) {=0A=
    if(!this.last_active) return;=0A=
    Position.prepare();=0A=
=0A=
    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], =
element, this.last_active))=0A=
      if (this.last_active.onDrop) {=0A=
        this.last_active.onDrop(element, this.last_active.element, =
event); =0A=
        return true; =0A=
      }=0A=
  },=0A=
=0A=
  reset: function() {=0A=
    if(this.last_active)=0A=
      this.deactivate(this.last_active);=0A=
  }=0A=
}=0A=
=0A=
var Draggables =3D {=0A=
  drags: [],=0A=
  observers: [],=0A=
  =0A=
  register: function(draggable) {=0A=
    if(this.drags.length =3D=3D 0) {=0A=
      this.eventMouseUp   =3D this.endDrag.bindAsEventListener(this);=0A=
      this.eventMouseMove =3D this.updateDrag.bindAsEventListener(this);=0A=
      this.eventKeypress  =3D this.keyPress.bindAsEventListener(this);=0A=
      =0A=
      Event.observe(document, "mouseup", this.eventMouseUp);=0A=
      Event.observe(document, "mousemove", this.eventMouseMove);=0A=
      Event.observe(document, "keypress", this.eventKeypress);=0A=
    }=0A=
    this.drags.push(draggable);=0A=
  },=0A=
  =0A=
  unregister: function(draggable) {=0A=
    this.drags =3D this.drags.reject(function(d) { return =
d=3D=3Ddraggable });=0A=
    if(this.drags.length =3D=3D 0) {=0A=
      Event.stopObserving(document, "mouseup", this.eventMouseUp);=0A=
      Event.stopObserving(document, "mousemove", this.eventMouseMove);=0A=
      Event.stopObserving(document, "keypress", this.eventKeypress);=0A=
    }=0A=
  },=0A=
  =0A=
  activate: function(draggable) {=0A=
    if(draggable.options.delay) { =0A=
      this._timeout =3D setTimeout(function() { =0A=
        Draggables._timeout =3D null; =0A=
        window.focus(); =0A=
        Draggables.activeDraggable =3D draggable; =0A=
      }.bind(this), draggable.options.delay); =0A=
    } else {=0A=
      window.focus(); // allows keypress events if window isn't =
currently focused, fails for Safari=0A=
      this.activeDraggable =3D draggable;=0A=
    }=0A=
  },=0A=
  =0A=
  deactivate: function() {=0A=
    this.activeDraggable =3D null;=0A=
  },=0A=
  =0A=
  updateDrag: function(event) {=0A=
    if(!this.activeDraggable) return;=0A=
    var pointer =3D [Event.pointerX(event), Event.pointerY(event)];=0A=
    // Mozilla-based browsers fire successive mousemove events with=0A=
    // the same coordinates, prevent needless redrawing (moz bug?)=0A=
    if(this._lastPointer && (this._lastPointer.inspect() =3D=3D =
pointer.inspect())) return;=0A=
    this._lastPointer =3D pointer;=0A=
    =0A=
    this.activeDraggable.updateDrag(event, pointer);=0A=
  },=0A=
  =0A=
  endDrag: function(event) {=0A=
    if(this._timeout) { =0A=
      clearTimeout(this._timeout); =0A=
      this._timeout =3D null; =0A=
    }=0A=
    if(!this.activeDraggable) return;=0A=
    this._lastPointer =3D null;=0A=
    this.activeDraggable.endDrag(event);=0A=
    this.activeDraggable =3D null;=0A=
  },=0A=
  =0A=
  keyPress: function(event) {=0A=
    if(this.activeDraggable)=0A=
      this.activeDraggable.keyPress(event);=0A=
  },=0A=
  =0A=
  addObserver: function(observer) {=0A=
    this.observers.push(observer);=0A=
    this._cacheObserverCallbacks();=0A=
  },=0A=
  =0A=
  removeObserver: function(element) {  // element instead of observer =
fixes mem leaks=0A=
    this.observers =3D this.observers.reject( function(o) { return =
o.element=3D=3Delement });=0A=
    this._cacheObserverCallbacks();=0A=
  },=0A=
  =0A=
  notify: function(eventName, draggable, event) {  // 'onStart', =
'onEnd', 'onDrag'=0A=
    if(this[eventName+'Count'] > 0)=0A=
      this.observers.each( function(o) {=0A=
        if(o[eventName]) o[eventName](eventName, draggable, event);=0A=
      });=0A=
    if(draggable.options[eventName]) =
draggable.options[eventName](draggable, event);=0A=
  },=0A=
  =0A=
  _cacheObserverCallbacks: function() {=0A=
    ['onStart','onEnd','onDrag'].each( function(eventName) {=0A=
      Draggables[eventName+'Count'] =3D Draggables.observers.select(=0A=
        function(o) { return o[eventName]; }=0A=
      ).length;=0A=
    });=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Draggable =3D Class.create({=0A=
  initialize: function(element) {=0A=
    var defaults =3D {=0A=
      handle: false,=0A=
      reverteffect: function(element, top_offset, left_offset) {=0A=
        var dur =3D =
Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;=0A=
        new Effect.Move(element, { x: -left_offset, y: -top_offset, =
duration: dur,=0A=
          queue: {scope:'_draggable', position:'end'}=0A=
        });=0A=
      },=0A=
      endeffect: function(element) {=0A=
        var toOpacity =3D Object.isNumber(element._opacity) ? =
element._opacity : 1.0;=0A=
        new Effect.Opacity(element, {duration:0.2, from:0.7, =
to:toOpacity, =0A=
          queue: {scope:'_draggable', position:'end'},=0A=
          afterFinish: function(){ =0A=
            Draggable._dragging[element] =3D false =0A=
          }=0A=
        }); =0A=
      },=0A=
      zindex: 1000,=0A=
      revert: false,=0A=
      quiet: false,=0A=
      scroll: false,=0A=
      scrollSensitivity: 20,=0A=
      scrollSpeed: 15,=0A=
      snap: false,  // false, or xy or [x,y] or function(x,y){ return =
[x,y] }=0A=
      delay: 0=0A=
    };=0A=
    =0A=
    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))=0A=
      Object.extend(defaults, {=0A=
        starteffect: function(element) {=0A=
          element._opacity =3D Element.getOpacity(element);=0A=
          Draggable._dragging[element] =3D true;=0A=
          new Effect.Opacity(element, {duration:0.2, =
from:element._opacity, to:0.7}); =0A=
        }=0A=
      });=0A=
    =0A=
    var options =3D Object.extend(defaults, arguments[1] || { });=0A=
=0A=
    this.element =3D $(element);=0A=
    =0A=
    if(options.handle && Object.isString(options.handle))=0A=
      this.handle =3D this.element.down('.'+options.handle, 0);=0A=
    =0A=
    if(!this.handle) this.handle =3D $(options.handle);=0A=
    if(!this.handle) this.handle =3D this.element;=0A=
    =0A=
    if(options.scroll && !options.scroll.scrollTo && =
!options.scroll.outerHTML) {=0A=
      options.scroll =3D $(options.scroll);=0A=
      this._isScrollChild =3D Element.childOf(this.element, =
options.scroll);=0A=
    }=0A=
=0A=
    Element.makePositioned(this.element); // fix IE    =0A=
=0A=
    this.options  =3D options;=0A=
    this.dragging =3D false;   =0A=
=0A=
    this.eventMouseDown =3D this.initDrag.bindAsEventListener(this);=0A=
    Event.observe(this.handle, "mousedown", this.eventMouseDown);=0A=
    =0A=
    Draggables.register(this);=0A=
  },=0A=
  =0A=
  destroy: function() {=0A=
    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);=0A=
    Draggables.unregister(this);=0A=
  },=0A=
  =0A=
  currentDelta: function() {=0A=
    return([=0A=
      parseInt(Element.getStyle(this.element,'left') || '0'),=0A=
      parseInt(Element.getStyle(this.element,'top') || '0')]);=0A=
  },=0A=
  =0A=
  initDrag: function(event) {=0A=
    if(!Object.isUndefined(Draggable._dragging[this.element]) &&=0A=
      Draggable._dragging[this.element]) return;=0A=
    if(Event.isLeftClick(event)) {    =0A=
      // abort on form elements, fixes a Firefox issue=0A=
      var src =3D Event.element(event);=0A=
      if((tag_name =3D src.tagName.toUpperCase()) && (=0A=
        tag_name=3D=3D'INPUT' ||=0A=
        tag_name=3D=3D'SELECT' ||=0A=
        tag_name=3D=3D'OPTION' ||=0A=
        tag_name=3D=3D'BUTTON' ||=0A=
        tag_name=3D=3D'TEXTAREA')) return;=0A=
        =0A=
      var pointer =3D [Event.pointerX(event), Event.pointerY(event)];=0A=
      var pos     =3D Position.cumulativeOffset(this.element);=0A=
      this.offset =3D [0,1].map( function(i) { return (pointer[i] - =
pos[i]) });=0A=
      =0A=
      Draggables.activate(this);=0A=
      Event.stop(event);=0A=
    }=0A=
  },=0A=
  =0A=
  startDrag: function(event) {=0A=
    this.dragging =3D true;=0A=
    if(!this.delta)=0A=
      this.delta =3D this.currentDelta();=0A=
    =0A=
    if(this.options.zindex) {=0A=
      this.originalZ =3D =
parseInt(Element.getStyle(this.element,'z-index') || 0);=0A=
      this.element.style.zIndex =3D this.options.zindex;=0A=
    }=0A=
    =0A=
    if(this.options.ghosting) {=0A=
      this._clone =3D this.element.cloneNode(true);=0A=
      this.element._originallyAbsolute =3D =
(this.element.getStyle('position') =3D=3D 'absolute');=0A=
      if (!this.element._originallyAbsolute)=0A=
        Position.absolutize(this.element);=0A=
      this.element.parentNode.insertBefore(this._clone, this.element);=0A=
    }=0A=
    =0A=
    if(this.options.scroll) {=0A=
      if (this.options.scroll =3D=3D window) {=0A=
        var where =3D this._getWindowScroll(this.options.scroll);=0A=
        this.originalScrollLeft =3D where.left;=0A=
        this.originalScrollTop =3D where.top;=0A=
      } else {=0A=
        this.originalScrollLeft =3D this.options.scroll.scrollLeft;=0A=
        this.originalScrollTop =3D this.options.scroll.scrollTop;=0A=
      }=0A=
    }=0A=
    =0A=
    Draggables.notify('onStart', this, event);=0A=
        =0A=
    if(this.options.starteffect) this.options.starteffect(this.element);=0A=
  },=0A=
  =0A=
  updateDrag: function(event, pointer) {=0A=
    if(!this.dragging) this.startDrag(event);=0A=
    =0A=
    if(!this.options.quiet){=0A=
      Position.prepare();=0A=
      Droppables.show(pointer, this.element);=0A=
    }=0A=
    =0A=
    Draggables.notify('onDrag', this, event);=0A=
    =0A=
    this.draw(pointer);=0A=
    if(this.options.change) this.options.change(this);=0A=
    =0A=
    if(this.options.scroll) {=0A=
      this.stopScrolling();=0A=
      =0A=
      var p;=0A=
      if (this.options.scroll =3D=3D window) {=0A=
        with(this._getWindowScroll(this.options.scroll)) { p =3D [ left, =
top, left+width, top+height ]; }=0A=
      } else {=0A=
        p =3D Position.page(this.options.scroll);=0A=
        p[0] +=3D this.options.scroll.scrollLeft + Position.deltaX;=0A=
        p[1] +=3D this.options.scroll.scrollTop + Position.deltaY;=0A=
        p.push(p[0]+this.options.scroll.offsetWidth);=0A=
        p.push(p[1]+this.options.scroll.offsetHeight);=0A=
      }=0A=
      var speed =3D [0,0];=0A=
      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] =
=3D pointer[0]-(p[0]+this.options.scrollSensitivity);=0A=
      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] =
=3D pointer[1]-(p[1]+this.options.scrollSensitivity);=0A=
      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] =
=3D pointer[0]-(p[2]-this.options.scrollSensitivity);=0A=
      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] =
=3D pointer[1]-(p[3]-this.options.scrollSensitivity);=0A=
      this.startScrolling(speed);=0A=
    }=0A=
    =0A=
    // fix AppleWebKit rendering=0A=
    if(Prototype.Browser.WebKit) window.scrollBy(0,0);=0A=
    =0A=
    Event.stop(event);=0A=
  },=0A=
  =0A=
  finishDrag: function(event, success) {=0A=
    this.dragging =3D false;=0A=
    =0A=
    if(this.options.quiet){=0A=
      Position.prepare();=0A=
      var pointer =3D [Event.pointerX(event), Event.pointerY(event)];=0A=
      Droppables.show(pointer, this.element);=0A=
    }=0A=
=0A=
    if(this.options.ghosting) {=0A=
      if (!this.element._originallyAbsolute)=0A=
        Position.relativize(this.element);=0A=
      delete this.element._originallyAbsolute;=0A=
      Element.remove(this._clone);=0A=
      this._clone =3D null;=0A=
    }=0A=
=0A=
    var dropped =3D false; =0A=
    if(success) { =0A=
      dropped =3D Droppables.fire(event, this.element); =0A=
      if (!dropped) dropped =3D false; =0A=
    }=0A=
    if(dropped && this.options.onDropped) =
this.options.onDropped(this.element);=0A=
    Draggables.notify('onEnd', this, event);=0A=
=0A=
    var revert =3D this.options.revert;=0A=
    if(revert && Object.isFunction(revert)) revert =3D =
revert(this.element);=0A=
    =0A=
    var d =3D this.currentDelta();=0A=
    if(revert && this.options.reverteffect) {=0A=
      if (dropped =3D=3D 0 || revert !=3D 'failure')=0A=
        this.options.reverteffect(this.element,=0A=
          d[1]-this.delta[1], d[0]-this.delta[0]);=0A=
    } else {=0A=
      this.delta =3D d;=0A=
    }=0A=
=0A=
    if(this.options.zindex)=0A=
      this.element.style.zIndex =3D this.originalZ;=0A=
=0A=
    if(this.options.endeffect) =0A=
      this.options.endeffect(this.element);=0A=
      =0A=
    Draggables.deactivate(this);=0A=
    Droppables.reset();=0A=
  },=0A=
  =0A=
  keyPress: function(event) {=0A=
    if(event.keyCode!=3DEvent.KEY_ESC) return;=0A=
    this.finishDrag(event, false);=0A=
    Event.stop(event);=0A=
  },=0A=
  =0A=
  endDrag: function(event) {=0A=
    if(!this.dragging) return;=0A=
    this.stopScrolling();=0A=
    this.finishDrag(event, true);=0A=
    Event.stop(event);=0A=
  },=0A=
  =0A=
  draw: function(point) {=0A=
    var pos =3D Position.cumulativeOffset(this.element);=0A=
    if(this.options.ghosting) {=0A=
      var r   =3D Position.realOffset(this.element);=0A=
      pos[0] +=3D r[0] - Position.deltaX; pos[1] +=3D r[1] - =
Position.deltaY;=0A=
    }=0A=
    =0A=
    var d =3D this.currentDelta();=0A=
    pos[0] -=3D d[0]; pos[1] -=3D d[1];=0A=
    =0A=
    if(this.options.scroll && (this.options.scroll !=3D window && =
this._isScrollChild)) {=0A=
      pos[0] -=3D this.options.scroll.scrollLeft-this.originalScrollLeft;=0A=
      pos[1] -=3D this.options.scroll.scrollTop-this.originalScrollTop;=0A=
    }=0A=
    =0A=
    var p =3D [0,1].map(function(i){ =0A=
      return (point[i]-pos[i]-this.offset[i]) =0A=
    }.bind(this));=0A=
    =0A=
    if(this.options.snap) {=0A=
      if(Object.isFunction(this.options.snap)) {=0A=
        p =3D this.options.snap(p[0],p[1],this);=0A=
      } else {=0A=
      if(Object.isArray(this.options.snap)) {=0A=
        p =3D p.map( function(v, i) {=0A=
          return (v/this.options.snap[i]).round()*this.options.snap[i] =
}.bind(this))=0A=
      } else {=0A=
        p =3D p.map( function(v) {=0A=
          return (v/this.options.snap).round()*this.options.snap =
}.bind(this))=0A=
      }=0A=
    }}=0A=
    =0A=
    var style =3D this.element.style;=0A=
    if((!this.options.constraint) || =
(this.options.constraint=3D=3D'horizontal'))=0A=
      style.left =3D p[0] + "px";=0A=
    if((!this.options.constraint) || =
(this.options.constraint=3D=3D'vertical'))=0A=
      style.top  =3D p[1] + "px";=0A=
    =0A=
    if(style.visibility=3D=3D"hidden") style.visibility =3D ""; // fix =
gecko rendering=0A=
  },=0A=
  =0A=
  stopScrolling: function() {=0A=
    if(this.scrollInterval) {=0A=
      clearInterval(this.scrollInterval);=0A=
      this.scrollInterval =3D null;=0A=
      Draggables._lastScrollPointer =3D null;=0A=
    }=0A=
  },=0A=
  =0A=
  startScrolling: function(speed) {=0A=
    if(!(speed[0] || speed[1])) return;=0A=
    this.scrollSpeed =3D =
[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];=0A=
    this.lastScrolled =3D new Date();=0A=
    this.scrollInterval =3D setInterval(this.scroll.bind(this), 10);=0A=
  },=0A=
  =0A=
  scroll: function() {=0A=
    var current =3D new Date();=0A=
    var delta =3D current - this.lastScrolled;=0A=
    this.lastScrolled =3D current;=0A=
    if(this.options.scroll =3D=3D window) {=0A=
      with (this._getWindowScroll(this.options.scroll)) {=0A=
        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {=0A=
          var d =3D delta / 1000;=0A=
          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], =
top + d*this.scrollSpeed[1] );=0A=
        }=0A=
      }=0A=
    } else {=0A=
      this.options.scroll.scrollLeft +=3D this.scrollSpeed[0] * delta / =
1000;=0A=
      this.options.scroll.scrollTop  +=3D this.scrollSpeed[1] * delta / =
1000;=0A=
    }=0A=
    =0A=
    Position.prepare();=0A=
    Droppables.show(Draggables._lastPointer, this.element);=0A=
    Draggables.notify('onDrag', this);=0A=
    if (this._isScrollChild) {=0A=
      Draggables._lastScrollPointer =3D Draggables._lastScrollPointer || =
$A(Draggables._lastPointer);=0A=
      Draggables._lastScrollPointer[0] +=3D this.scrollSpeed[0] * delta =
/ 1000;=0A=
      Draggables._lastScrollPointer[1] +=3D this.scrollSpeed[1] * delta =
/ 1000;=0A=
      if (Draggables._lastScrollPointer[0] < 0)=0A=
        Draggables._lastScrollPointer[0] =3D 0;=0A=
      if (Draggables._lastScrollPointer[1] < 0)=0A=
        Draggables._lastScrollPointer[1] =3D 0;=0A=
      this.draw(Draggables._lastScrollPointer);=0A=
    }=0A=
    =0A=
    if(this.options.change) this.options.change(this);=0A=
  },=0A=
  =0A=
  _getWindowScroll: function(w) {=0A=
    var T, L, W, H;=0A=
    with (w.document) {=0A=
      if (w.document.documentElement && documentElement.scrollTop) {=0A=
        T =3D documentElement.scrollTop;=0A=
        L =3D documentElement.scrollLeft;=0A=
      } else if (w.document.body) {=0A=
        T =3D body.scrollTop;=0A=
        L =3D body.scrollLeft;=0A=
      }=0A=
      if (w.innerWidth) {=0A=
        W =3D w.innerWidth;=0A=
        H =3D w.innerHeight;=0A=
      } else if (w.document.documentElement && =
documentElement.clientWidth) {=0A=
        W =3D documentElement.clientWidth;=0A=
        H =3D documentElement.clientHeight;=0A=
      } else {=0A=
        W =3D body.offsetWidth;=0A=
        H =3D body.offsetHeight=0A=
      }=0A=
    }=0A=
    return { top: T, left: L, width: W, height: H };=0A=
  }=0A=
});=0A=
=0A=
Draggable._dragging =3D { };=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var SortableObserver =3D Class.create({=0A=
  initialize: function(element, observer) {=0A=
    this.element   =3D $(element);=0A=
    this.observer  =3D observer;=0A=
    this.lastValue =3D Sortable.serialize(this.element);=0A=
  },=0A=
  =0A=
  onStart: function() {=0A=
    this.lastValue =3D Sortable.serialize(this.element);=0A=
  },=0A=
  =0A=
  onEnd: function() {=0A=
    Sortable.unmark();=0A=
    if(this.lastValue !=3D Sortable.serialize(this.element))=0A=
      this.observer(this.element)=0A=
  }=0A=
});=0A=
=0A=
var Sortable =3D {=0A=
  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,=0A=
  =0A=
  sortables: { },=0A=
  =0A=
  _findRootElement: function(element) {=0A=
    while (element.tagName.toUpperCase() !=3D "BODY") {  =0A=
      if(element.id && Sortable.sortables[element.id]) return element;=0A=
      element =3D element.parentNode;=0A=
    }=0A=
  },=0A=
=0A=
  options: function(element) {=0A=
    element =3D Sortable._findRootElement($(element));=0A=
    if(!element) return;=0A=
    return Sortable.sortables[element.id];=0A=
  },=0A=
  =0A=
  destroy: function(element){=0A=
    var s =3D Sortable.options(element);=0A=
    =0A=
    if(s) {=0A=
      Draggables.removeObserver(s.element);=0A=
      s.droppables.each(function(d){ Droppables.remove(d) });=0A=
      s.draggables.invoke('destroy');=0A=
      =0A=
      delete Sortable.sortables[s.element.id];=0A=
    }=0A=
  },=0A=
=0A=
  create: function(element) {=0A=
    element =3D $(element);=0A=
    var options =3D Object.extend({ =0A=
      element:     element,=0A=
      tag:         'li',       // assumes li children, override with =
tag: 'tagname'=0A=
      dropOnEmpty: false,=0A=
      tree:        false,=0A=
      treeTag:     'ul',=0A=
      overlap:     'vertical', // one of 'vertical', 'horizontal'=0A=
      constraint:  'vertical', // one of 'vertical', 'horizontal', false=0A=
      containment: element,    // also takes array of elements (or =
id's); or false=0A=
      handle:      false,      // or a CSS class=0A=
      only:        false,=0A=
      delay:       0,=0A=
      hoverclass:  null,=0A=
      ghosting:    false,=0A=
      quiet:       false, =0A=
      scroll:      false,=0A=
      scrollSensitivity: 20,=0A=
      scrollSpeed: 15,=0A=
      format:      this.SERIALIZE_RULE,=0A=
      =0A=
      // these take arrays of elements or ids and can be =0A=
      // used for better initialization performance=0A=
      elements:    false,=0A=
      handles:     false,=0A=
      =0A=
      onChange:    Prototype.emptyFunction,=0A=
      onUpdate:    Prototype.emptyFunction=0A=
    }, arguments[1] || { });=0A=
=0A=
    // clear any old sortable with same element=0A=
    this.destroy(element);=0A=
=0A=
    // build options for the draggables=0A=
    var options_for_draggable =3D {=0A=
      revert:      true,=0A=
      quiet:       options.quiet,=0A=
      scroll:      options.scroll,=0A=
      scrollSpeed: options.scrollSpeed,=0A=
      scrollSensitivity: options.scrollSensitivity,=0A=
      delay:       options.delay,=0A=
      ghosting:    options.ghosting,=0A=
      constraint:  options.constraint,=0A=
      handle:      options.handle };=0A=
=0A=
    if(options.starteffect)=0A=
      options_for_draggable.starteffect =3D options.starteffect;=0A=
=0A=
    if(options.reverteffect)=0A=
      options_for_draggable.reverteffect =3D options.reverteffect;=0A=
    else=0A=
      if(options.ghosting) options_for_draggable.reverteffect =3D =
function(element) {=0A=
        element.style.top  =3D 0;=0A=
        element.style.left =3D 0;=0A=
      };=0A=
=0A=
    if(options.endeffect)=0A=
      options_for_draggable.endeffect =3D options.endeffect;=0A=
=0A=
    if(options.zindex)=0A=
      options_for_draggable.zindex =3D options.zindex;=0A=
=0A=
    // build options for the droppables  =0A=
    var options_for_droppable =3D {=0A=
      overlap:     options.overlap,=0A=
      containment: options.containment,=0A=
      tree:        options.tree,=0A=
      hoverclass:  options.hoverclass,=0A=
      onHover:     Sortable.onHover=0A=
    }=0A=
    =0A=
    var options_for_tree =3D {=0A=
      onHover:      Sortable.onEmptyHover,=0A=
      overlap:      options.overlap,=0A=
      containment:  options.containment,=0A=
      hoverclass:   options.hoverclass=0A=
    }=0A=
=0A=
    // fix for gecko engine=0A=
    Element.cleanWhitespace(element); =0A=
=0A=
    options.draggables =3D [];=0A=
    options.droppables =3D [];=0A=
=0A=
    // drop on empty handling=0A=
    if(options.dropOnEmpty || options.tree) {=0A=
      Droppables.add(element, options_for_tree);=0A=
      options.droppables.push(element);=0A=
    }=0A=
=0A=
    (options.elements || this.findElements(element, options) || =
[]).each( function(e,i) {=0A=
      var handle =3D options.handles ? $(options.handles[i]) :=0A=
        (options.handle ? $(e).select('.' + options.handle)[0] : e); =0A=
      options.draggables.push(=0A=
        new Draggable(e, Object.extend(options_for_draggable, { handle: =
handle })));=0A=
      Droppables.add(e, options_for_droppable);=0A=
      if(options.tree) e.treeNode =3D element;=0A=
      options.droppables.push(e);      =0A=
    });=0A=
    =0A=
    if(options.tree) {=0A=
      (Sortable.findTreeElements(element, options) || []).each( =
function(e) {=0A=
        Droppables.add(e, options_for_tree);=0A=
        e.treeNode =3D element;=0A=
        options.droppables.push(e);=0A=
      });=0A=
    }=0A=
=0A=
    // keep reference=0A=
    this.sortables[element.id] =3D options;=0A=
=0A=
    // for onupdate=0A=
    Draggables.addObserver(new SortableObserver(element, =
options.onUpdate));=0A=
=0A=
  },=0A=
=0A=
  // return all suitable-for-sortable elements in a guaranteed order=0A=
  findElements: function(element, options) {=0A=
    return Element.findChildren(=0A=
      element, options.only, options.tree ? true : false, options.tag);=0A=
  },=0A=
  =0A=
  findTreeElements: function(element, options) {=0A=
    return Element.findChildren(=0A=
      element, options.only, options.tree ? true : false, =
options.treeTag);=0A=
  },=0A=
=0A=
  onHover: function(element, dropon, overlap) {=0A=
    if(Element.isParent(dropon, element)) return;=0A=
=0A=
    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {=0A=
      return;=0A=
    } else if(overlap>0.5) {=0A=
      Sortable.mark(dropon, 'before');=0A=
      if(dropon.previousSibling !=3D element) {=0A=
        var oldParentNode =3D element.parentNode;=0A=
        element.style.visibility =3D "hidden"; // fix gecko rendering=0A=
        dropon.parentNode.insertBefore(element, dropon);=0A=
        if(dropon.parentNode!=3DoldParentNode) =0A=
          Sortable.options(oldParentNode).onChange(element);=0A=
        Sortable.options(dropon.parentNode).onChange(element);=0A=
      }=0A=
    } else {=0A=
      Sortable.mark(dropon, 'after');=0A=
      var nextElement =3D dropon.nextSibling || null;=0A=
      if(nextElement !=3D element) {=0A=
        var oldParentNode =3D element.parentNode;=0A=
        element.style.visibility =3D "hidden"; // fix gecko rendering=0A=
        dropon.parentNode.insertBefore(element, nextElement);=0A=
        if(dropon.parentNode!=3DoldParentNode) =0A=
          Sortable.options(oldParentNode).onChange(element);=0A=
        Sortable.options(dropon.parentNode).onChange(element);=0A=
      }=0A=
    }=0A=
  },=0A=
  =0A=
  onEmptyHover: function(element, dropon, overlap) {=0A=
    var oldParentNode =3D element.parentNode;=0A=
    var droponOptions =3D Sortable.options(dropon);=0A=
        =0A=
    if(!Element.isParent(dropon, element)) {=0A=
      var index;=0A=
      =0A=
      var children =3D Sortable.findElements(dropon, {tag: =
droponOptions.tag, only: droponOptions.only});=0A=
      var child =3D null;=0A=
            =0A=
      if(children) {=0A=
        var offset =3D Element.offsetSize(dropon, droponOptions.overlap) =
* (1.0 - overlap);=0A=
        =0A=
        for (index =3D 0; index < children.length; index +=3D 1) {=0A=
          if (offset - Element.offsetSize (children[index], =
droponOptions.overlap) >=3D 0) {=0A=
            offset -=3D Element.offsetSize (children[index], =
droponOptions.overlap);=0A=
          } else if (offset - (Element.offsetSize (children[index], =
droponOptions.overlap) / 2) >=3D 0) {=0A=
            child =3D index + 1 < children.length ? children[index + 1] =
: null;=0A=
            break;=0A=
          } else {=0A=
            child =3D children[index];=0A=
            break;=0A=
          }=0A=
        }=0A=
      }=0A=
      =0A=
      dropon.insertBefore(element, child);=0A=
      =0A=
      Sortable.options(oldParentNode).onChange(element);=0A=
      droponOptions.onChange(element);=0A=
    }=0A=
  },=0A=
=0A=
  unmark: function() {=0A=
    if(Sortable._marker) Sortable._marker.hide();=0A=
  },=0A=
=0A=
  mark: function(dropon, position) {=0A=
    // mark on ghosting only=0A=
    var sortable =3D Sortable.options(dropon.parentNode);=0A=
    if(sortable && !sortable.ghosting) return; =0A=
=0A=
    if(!Sortable._marker) {=0A=
      Sortable._marker =3D =0A=
        ($('dropmarker') || =
Element.extend(document.createElement('DIV'))).=0A=
          =
hide().addClassName('dropmarker').setStyle({position:'absolute'});=0A=
      =
document.getElementsByTagName("body").item(0).appendChild(Sortable._marke=
r);=0A=
    }    =0A=
    var offsets =3D Position.cumulativeOffset(dropon);=0A=
    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + =
'px'});=0A=
    =0A=
    if(position=3D=3D'after')=0A=
      if(sortable.overlap =3D=3D 'horizontal') =0A=
        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) =
+ 'px'});=0A=
      else=0A=
        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) =
+ 'px'});=0A=
    =0A=
    Sortable._marker.show();=0A=
  },=0A=
  =0A=
  _tree: function(element, options, parent) {=0A=
    var children =3D Sortable.findElements(element, options) || [];=0A=
  =0A=
    for (var i =3D 0; i < children.length; ++i) {=0A=
      var match =3D children[i].id.match(options.format);=0A=
=0A=
      if (!match) continue;=0A=
      =0A=
      var child =3D {=0A=
        id: encodeURIComponent(match ? match[1] : null),=0A=
        element: element,=0A=
        parent: parent,=0A=
        children: [],=0A=
        position: parent.children.length,=0A=
        container: $(children[i]).down(options.treeTag)=0A=
      }=0A=
      =0A=
      /* Get the element containing the children and recurse over it */=0A=
      if (child.container)=0A=
        this._tree(child.container, options, child)=0A=
      =0A=
      parent.children.push (child);=0A=
    }=0A=
=0A=
    return parent; =0A=
  },=0A=
=0A=
  tree: function(element) {=0A=
    element =3D $(element);=0A=
    var sortableOptions =3D this.options(element);=0A=
    var options =3D Object.extend({=0A=
      tag: sortableOptions.tag,=0A=
      treeTag: sortableOptions.treeTag,=0A=
      only: sortableOptions.only,=0A=
      name: element.id,=0A=
      format: sortableOptions.format=0A=
    }, arguments[1] || { });=0A=
    =0A=
    var root =3D {=0A=
      id: null,=0A=
      parent: null,=0A=
      children: [],=0A=
      container: element,=0A=
      position: 0=0A=
    }=0A=
    =0A=
    return Sortable._tree(element, options, root);=0A=
  },=0A=
=0A=
  /* Construct a [i] index for a particular node */=0A=
  _constructIndex: function(node) {=0A=
    var index =3D '';=0A=
    do {=0A=
      if (node.id) index =3D '[' + node.position + ']' + index;=0A=
    } while ((node =3D node.parent) !=3D null);=0A=
    return index;=0A=
  },=0A=
=0A=
  sequence: function(element) {=0A=
    element =3D $(element);=0A=
    var options =3D Object.extend(this.options(element), arguments[1] || =
{ });=0A=
    =0A=
    return $(this.findElements(element, options) || []).map( =
function(item) {=0A=
      return item.id.match(options.format) ? =
item.id.match(options.format)[1] : '';=0A=
    });=0A=
  },=0A=
=0A=
  setSequence: function(element, new_sequence) {=0A=
    element =3D $(element);=0A=
    var options =3D Object.extend(this.options(element), arguments[2] || =
{ });=0A=
    =0A=
    var nodeMap =3D { };=0A=
    this.findElements(element, options).each( function(n) {=0A=
        if (n.id.match(options.format))=0A=
            nodeMap[n.id.match(options.format)[1]] =3D [n, n.parentNode];=0A=
        n.parentNode.removeChild(n);=0A=
    });=0A=
   =0A=
    new_sequence.each(function(ident) {=0A=
      var n =3D nodeMap[ident];=0A=
      if (n) {=0A=
        n[1].appendChild(n[0]);=0A=
        delete nodeMap[ident];=0A=
      }=0A=
    });=0A=
  },=0A=
  =0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    var options =3D Object.extend(Sortable.options(element), =
arguments[1] || { });=0A=
    var name =3D encodeURIComponent(=0A=
      (arguments[1] && arguments[1].name) ? arguments[1].name : =
element.id);=0A=
    =0A=
    if (options.tree) {=0A=
      return Sortable.tree(element, arguments[1]).children.map( function =
(item) {=0A=
        return [name + Sortable._constructIndex(item) + "[id]=3D" + =0A=
                =
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));=0A=
      }).flatten().join('&');=0A=
    } else {=0A=
      return Sortable.sequence(element, arguments[1]).map( =
function(item) {=0A=
        return name + "[]=3D" + encodeURIComponent(item);=0A=
      }).join('&');=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
// Returns true if child is contained within element=0A=
Element.isParent =3D function(child, element) {=0A=
  if (!child.parentNode || child =3D=3D element) return false;=0A=
  if (child.parentNode =3D=3D element) return true;=0A=
  return Element.isParent(child.parentNode, element);=0A=
}=0A=
=0A=
Element.findChildren =3D function(element, only, recursive, tagName) {   =0A=
  if(!element.hasChildNodes()) return null;=0A=
  tagName =3D tagName.toUpperCase();=0A=
  if(only) only =3D [only].flatten();=0A=
  var elements =3D [];=0A=
  $A(element.childNodes).each( function(e) {=0A=
    if(e.tagName && e.tagName.toUpperCase()=3D=3DtagName &&=0A=
      (!only || (Element.classNames(e).detect(function(v) { return =
only.include(v) }))))=0A=
        elements.push(e);=0A=
    if(recursive) {=0A=
      var grandchildren =3D Element.findChildren(e, only, recursive, =
tagName);=0A=
      if(grandchildren) elements.push(grandchildren);=0A=
    }=0A=
  });=0A=
=0A=
  return (elements.length>0 ? elements.flatten() : []);=0A=
}=0A=
=0A=
Element.offsetSize =3D function (element, type) {=0A=
  return element['offset' + ((type=3D=3D'vertical' || =
type=3D=3D'height') ? 'Height' : 'Width')];=0A=
}=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/controls.js?1241461185

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
//           (c) 2005-2007 Ivan Krstic =
(http://blogs.law.harvard.edu/ivan)=0A=
//           (c) 2005-2007 Jon Tirsen (http://www.tirsen.com)=0A=
// Contributors:=0A=
//  Richard Livsey=0A=
//  Rahul Bhargava=0A=
//  Rob Wills=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: http://script.aculo.us/=0A=
=0A=
// Autocompleter.Base handles all the autocompletion functionality =0A=
// that's independent of the data source for autocompletion. This=0A=
// includes drawing the autocompletion menu, observing keyboard=0A=
// and mouse events, and similar.=0A=
//=0A=
// Specific autocompleters need to provide, at the very least, =0A=
// a getUpdatedChoices function that will be invoked every time=0A=
// the text inside the monitored textbox changes. This method =0A=
// should get the text for which to provide autocompletion by=0A=
// invoking this.getToken(), NOT by directly accessing=0A=
// this.element.value. This is to allow incremental tokenized=0A=
// autocompletion. Specific auto-completion logic (AJAX, etc)=0A=
// belongs in getUpdatedChoices.=0A=
//=0A=
// Tokenized incremental autocompletion is enabled automatically=0A=
// when an autocompleter is instantiated with the 'tokens' option=0A=
// in the options parameter, e.g.:=0A=
// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });=0A=
// will incrementally autocomplete with a comma as the token.=0A=
// Additionally, ',' in the above example can be replaced with=0A=
// a token array, e.g. { tokens: [',', '\n'] } which=0A=
// enables autocompletion on multiple tokens. This is most =0A=
// useful when one of the tokens is \n (a newline), as it =0A=
// allows smart autocompletion after linebreaks.=0A=
=0A=
if(typeof Effect =3D=3D 'undefined')=0A=
  throw("controls.js requires including script.aculo.us' effects.js =
library");=0A=
=0A=
var Autocompleter =3D { }=0A=
Autocompleter.Base =3D Class.create({=0A=
  baseInitialize: function(element, update, options) {=0A=
    element          =3D $(element)=0A=
    this.element     =3D element; =0A=
    this.update      =3D $(update);  =0A=
    this.hasFocus    =3D false; =0A=
    this.changed     =3D false; =0A=
    this.active      =3D false; =0A=
    this.index       =3D 0;     =0A=
    this.entryCount  =3D 0;=0A=
    this.oldElementValue =3D this.element.value;=0A=
=0A=
    if(this.setOptions)=0A=
      this.setOptions(options);=0A=
    else=0A=
      this.options =3D options || { };=0A=
=0A=
    this.options.paramName    =3D this.options.paramName || =
this.element.name;=0A=
    this.options.tokens       =3D this.options.tokens || [];=0A=
    this.options.frequency    =3D this.options.frequency || 0.4;=0A=
    this.options.minChars     =3D this.options.minChars || 1;=0A=
    this.options.onShow       =3D this.options.onShow || =0A=
      function(element, update){ =0A=
        if(!update.style.position || =
update.style.position=3D=3D'absolute') {=0A=
          update.style.position =3D 'absolute';=0A=
          Position.clone(element, update, {=0A=
            setHeight: false, =0A=
            offsetTop: element.offsetHeight=0A=
          });=0A=
        }=0A=
        Effect.Appear(update,{duration:0.15});=0A=
      };=0A=
    this.options.onHide =3D this.options.onHide || =0A=
      function(element, update){ new Effect.Fade(update,{duration:0.15}) =
};=0A=
=0A=
    if(typeof(this.options.tokens) =3D=3D 'string') =0A=
      this.options.tokens =3D new Array(this.options.tokens);=0A=
    // Force carriage returns as token delimiters anyway=0A=
    if (!this.options.tokens.include('\n'))=0A=
      this.options.tokens.push('\n');=0A=
=0A=
    this.observer =3D null;=0A=
    =0A=
    this.element.setAttribute('autocomplete','off');=0A=
=0A=
    Element.hide(this.update);=0A=
=0A=
    Event.observe(this.element, 'blur', =
this.onBlur.bindAsEventListener(this));=0A=
    Event.observe(this.element, 'keydown', =
this.onKeyPress.bindAsEventListener(this));=0A=
  },=0A=
=0A=
  show: function() {=0A=
    if(Element.getStyle(this.update, 'display')=3D=3D'none') =
this.options.onShow(this.element, this.update);=0A=
    if(!this.iefix && =0A=
      (Prototype.Browser.IE) &&=0A=
      (Element.getStyle(this.update, 'position')=3D=3D'absolute')) {=0A=
      new Insertion.After(this.update, =0A=
       '<iframe id=3D"' + this.update.id + '_iefix" '+=0A=
       =
'style=3D"display:none;position:absolute;filter:progid:DXImageTransform.M=
icrosoft.Alpha(opacity=3D0);" ' +=0A=
       'src=3D"javascript:false;" frameborder=3D"0" =
scrolling=3D"no"></iframe>');=0A=
      this.iefix =3D $(this.update.id+'_iefix');=0A=
    }=0A=
    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);=0A=
  },=0A=
  =0A=
  fixIEOverlapping: function() {=0A=
    Position.clone(this.update, this.iefix, =
{setTop:(!this.update.style.height)});=0A=
    this.iefix.style.zIndex =3D 1;=0A=
    this.update.style.zIndex =3D 2;=0A=
    Element.show(this.iefix);=0A=
  },=0A=
=0A=
  hide: function() {=0A=
    this.stopIndicator();=0A=
    if(Element.getStyle(this.update, 'display')!=3D'none') =
this.options.onHide(this.element, this.update);=0A=
    if(this.iefix) Element.hide(this.iefix);=0A=
  },=0A=
=0A=
  startIndicator: function() {=0A=
    if(this.options.indicator) Element.show(this.options.indicator);=0A=
  },=0A=
=0A=
  stopIndicator: function() {=0A=
    if(this.options.indicator) Element.hide(this.options.indicator);=0A=
  },=0A=
=0A=
  onKeyPress: function(event) {=0A=
    if(this.active)=0A=
      switch(event.keyCode) {=0A=
       case Event.KEY_TAB:=0A=
       case Event.KEY_RETURN:=0A=
         this.selectEntry();=0A=
         Event.stop(event);=0A=
       case Event.KEY_ESC:=0A=
         this.hide();=0A=
         this.active =3D false;=0A=
         Event.stop(event);=0A=
         return;=0A=
       case Event.KEY_LEFT:=0A=
       case Event.KEY_RIGHT:=0A=
         return;=0A=
       case Event.KEY_UP:=0A=
         this.markPrevious();=0A=
         this.render();=0A=
         Event.stop(event);=0A=
         return;=0A=
       case Event.KEY_DOWN:=0A=
         this.markNext();=0A=
         this.render();=0A=
         Event.stop(event);=0A=
         return;=0A=
      }=0A=
     else =0A=
       if(event.keyCode=3D=3DEvent.KEY_TAB || =
event.keyCode=3D=3DEvent.KEY_RETURN || =0A=
         (Prototype.Browser.WebKit > 0 && event.keyCode =3D=3D 0)) =
return;=0A=
=0A=
    this.changed =3D true;=0A=
    this.hasFocus =3D true;=0A=
=0A=
    if(this.observer) clearTimeout(this.observer);=0A=
      this.observer =3D =0A=
        setTimeout(this.onObserverEvent.bind(this), =
this.options.frequency*1000);=0A=
  },=0A=
=0A=
  activate: function() {=0A=
    this.changed =3D false;=0A=
    this.hasFocus =3D true;=0A=
    this.getUpdatedChoices();=0A=
  },=0A=
=0A=
  onHover: function(event) {=0A=
    var element =3D Event.findElement(event, 'LI');=0A=
    if(this.index !=3D element.autocompleteIndex) =0A=
    {=0A=
        this.index =3D element.autocompleteIndex;=0A=
        this.render();=0A=
    }=0A=
    Event.stop(event);=0A=
  },=0A=
  =0A=
  onClick: function(event) {=0A=
    var element =3D Event.findElement(event, 'LI');=0A=
    this.index =3D element.autocompleteIndex;=0A=
    this.selectEntry();=0A=
    this.hide();=0A=
  },=0A=
  =0A=
  onBlur: function(event) {=0A=
    // needed to make click events working=0A=
    setTimeout(this.hide.bind(this), 250);=0A=
    this.hasFocus =3D false;=0A=
    this.active =3D false;     =0A=
  }, =0A=
  =0A=
  render: function() {=0A=
    if(this.entryCount > 0) {=0A=
      for (var i =3D 0; i < this.entryCount; i++)=0A=
        this.index=3D=3Di ? =0A=
          Element.addClassName(this.getEntry(i),"selected") : =0A=
          Element.removeClassName(this.getEntry(i),"selected");=0A=
      if(this.hasFocus) { =0A=
        this.show();=0A=
        this.active =3D true;=0A=
      }=0A=
    } else {=0A=
      this.active =3D false;=0A=
      this.hide();=0A=
    }=0A=
  },=0A=
  =0A=
  markPrevious: function() {=0A=
    if(this.index > 0) this.index--=0A=
      else this.index =3D this.entryCount-1;=0A=
    this.getEntry(this.index).scrollIntoView(true);=0A=
  },=0A=
  =0A=
  markNext: function() {=0A=
    if(this.index < this.entryCount-1) this.index++=0A=
      else this.index =3D 0;=0A=
    this.getEntry(this.index).scrollIntoView(false);=0A=
  },=0A=
  =0A=
  getEntry: function(index) {=0A=
    return this.update.firstChild.childNodes[index];=0A=
  },=0A=
  =0A=
  getCurrentEntry: function() {=0A=
    return this.getEntry(this.index);=0A=
  },=0A=
  =0A=
  selectEntry: function() {=0A=
    this.active =3D false;=0A=
    this.updateElement(this.getCurrentEntry());=0A=
  },=0A=
=0A=
  updateElement: function(selectedElement) {=0A=
    if (this.options.updateElement) {=0A=
      this.options.updateElement(selectedElement);=0A=
      return;=0A=
    }=0A=
    var value =3D '';=0A=
    if (this.options.select) {=0A=
      var nodes =3D $(selectedElement).select('.' + this.options.select) =
|| [];=0A=
      if(nodes.length>0) value =3D Element.collectTextNodes(nodes[0], =
this.options.select);=0A=
    } else=0A=
      value =3D Element.collectTextNodesIgnoreClass(selectedElement, =
'informal');=0A=
    =0A=
    var bounds =3D this.getTokenBounds();=0A=
    if (bounds[0] !=3D -1) {=0A=
      var newValue =3D this.element.value.substr(0, bounds[0]);=0A=
      var whitespace =3D =
this.element.value.substr(bounds[0]).match(/^\s+/);=0A=
      if (whitespace)=0A=
        newValue +=3D whitespace[0];=0A=
      this.element.value =3D newValue + value + =
this.element.value.substr(bounds[1]);=0A=
    } else {=0A=
      this.element.value =3D value;=0A=
    }=0A=
    this.oldElementValue =3D this.element.value;=0A=
    this.element.focus();=0A=
    =0A=
    if (this.options.afterUpdateElement)=0A=
      this.options.afterUpdateElement(this.element, selectedElement);=0A=
  },=0A=
=0A=
  updateChoices: function(choices) {=0A=
    if(!this.changed && this.hasFocus) {=0A=
      this.update.innerHTML =3D choices;=0A=
      Element.cleanWhitespace(this.update);=0A=
      Element.cleanWhitespace(this.update.down());=0A=
=0A=
      if(this.update.firstChild && this.update.down().childNodes) {=0A=
        this.entryCount =3D =0A=
          this.update.down().childNodes.length;=0A=
        for (var i =3D 0; i < this.entryCount; i++) {=0A=
          var entry =3D this.getEntry(i);=0A=
          entry.autocompleteIndex =3D i;=0A=
          this.addObservers(entry);=0A=
        }=0A=
      } else { =0A=
        this.entryCount =3D 0;=0A=
      }=0A=
=0A=
      this.stopIndicator();=0A=
      this.index =3D 0;=0A=
      =0A=
      if(this.entryCount=3D=3D1 && this.options.autoSelect) {=0A=
        this.selectEntry();=0A=
        this.hide();=0A=
      } else {=0A=
        this.render();=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  addObservers: function(element) {=0A=
    Event.observe(element, "mouseover", =
this.onHover.bindAsEventListener(this));=0A=
    Event.observe(element, "click", =
this.onClick.bindAsEventListener(this));=0A=
  },=0A=
=0A=
  onObserverEvent: function() {=0A=
    this.changed =3D false;   =0A=
    this.tokenBounds =3D null;=0A=
    if(this.getToken().length>=3Dthis.options.minChars) {=0A=
      this.getUpdatedChoices();=0A=
    } else {=0A=
      this.active =3D false;=0A=
      this.hide();=0A=
    }=0A=
    this.oldElementValue =3D this.element.value;=0A=
  },=0A=
=0A=
  getToken: function() {=0A=
    var bounds =3D this.getTokenBounds();=0A=
    return this.element.value.substring(bounds[0], bounds[1]).strip();=0A=
  },=0A=
=0A=
  getTokenBounds: function() {=0A=
    if (null !=3D this.tokenBounds) return this.tokenBounds;=0A=
    var value =3D this.element.value;=0A=
    if (value.strip().empty()) return [-1, 0];=0A=
    var diff =3D arguments.callee.getFirstDifferencePos(value, =
this.oldElementValue);=0A=
    var offset =3D (diff =3D=3D this.oldElementValue.length ? 1 : 0);=0A=
    var prevTokenPos =3D -1, nextTokenPos =3D value.length;=0A=
    var tp;=0A=
    for (var index =3D 0, l =3D this.options.tokens.length; index < l; =
++index) {=0A=
      tp =3D value.lastIndexOf(this.options.tokens[index], diff + offset =
- 1);=0A=
      if (tp > prevTokenPos) prevTokenPos =3D tp;=0A=
      tp =3D value.indexOf(this.options.tokens[index], diff + offset);=0A=
      if (-1 !=3D tp && tp < nextTokenPos) nextTokenPos =3D tp;=0A=
    }=0A=
    return (this.tokenBounds =3D [prevTokenPos + 1, nextTokenPos]);=0A=
  }=0A=
});=0A=
=0A=
Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos =3D =
function(newS, oldS) {=0A=
  var boundary =3D Math.min(newS.length, oldS.length);=0A=
  for (var index =3D 0; index < boundary; ++index)=0A=
    if (newS[index] !=3D oldS[index])=0A=
      return index;=0A=
  return boundary;=0A=
};=0A=
=0A=
Ajax.Autocompleter =3D Class.create(Autocompleter.Base, {=0A=
  initialize: function(element, update, url, options) {=0A=
    this.baseInitialize(element, update, options);=0A=
    this.options.asynchronous  =3D true;=0A=
    this.options.onComplete    =3D this.onComplete.bind(this);=0A=
    this.options.defaultParams =3D this.options.parameters || null;=0A=
    this.url                   =3D url;=0A=
  },=0A=
=0A=
  getUpdatedChoices: function() {=0A=
    this.startIndicator();=0A=
    =0A=
    var entry =3D encodeURIComponent(this.options.paramName) + '=3D' + =0A=
      encodeURIComponent(this.getToken());=0A=
=0A=
    this.options.parameters =3D this.options.callback ?=0A=
      this.options.callback(this.element, entry) : entry;=0A=
=0A=
    if(this.options.defaultParams) =0A=
      this.options.parameters +=3D '&' + this.options.defaultParams;=0A=
    =0A=
    new Ajax.Request(this.url, this.options);=0A=
  },=0A=
=0A=
  onComplete: function(request) {=0A=
    this.updateChoices(request.responseText);=0A=
  }=0A=
});=0A=
=0A=
// The local array autocompleter. Used when you'd prefer to=0A=
// inject an array of autocompletion options into the page, rather=0A=
// than sending out Ajax queries, which can be quite slow sometimes.=0A=
//=0A=
// The constructor takes four parameters. The first two are, as usual,=0A=
// the id of the monitored textbox, and id of the autocompletion menu.=0A=
// The third is the array you want to autocomplete from, and the fourth=0A=
// is the options block.=0A=
//=0A=
// Extra local autocompletion options:=0A=
// - choices - How many autocompletion choices to offer=0A=
//=0A=
// - partialSearch - If false, the autocompleter will match entered=0A=
//                    text only at the beginning of strings in the =0A=
//                    autocomplete array. Defaults to true, which will=0A=
//                    match text at the beginning of any *word* in the=0A=
//                    strings in the autocomplete array. If you want to=0A=
//                    search anywhere in the string, additionally set=0A=
//                    the option fullSearch to true (default: off).=0A=
//=0A=
// - fullSsearch - Search anywhere in autocomplete array strings.=0A=
//=0A=
// - partialChars - How many characters to enter before triggering=0A=
//                   a partial match (unlike minChars, which defines=0A=
//                   how many characters are required to do any match=0A=
//                   at all). Defaults to 2.=0A=
//=0A=
// - ignoreCase - Whether to ignore case when autocompleting.=0A=
//                 Defaults to true.=0A=
//=0A=
// It's possible to pass in a custom function as the 'selector' =0A=
// option, if you prefer to write your own autocompletion logic.=0A=
// In that case, the other options above will not apply unless=0A=
// you support them.=0A=
=0A=
Autocompleter.Local =3D Class.create(Autocompleter.Base, {=0A=
  initialize: function(element, update, array, options) {=0A=
    this.baseInitialize(element, update, options);=0A=
    this.options.array =3D array;=0A=
  },=0A=
=0A=
  getUpdatedChoices: function() {=0A=
    this.updateChoices(this.options.selector(this));=0A=
  },=0A=
=0A=
  setOptions: function(options) {=0A=
    this.options =3D Object.extend({=0A=
      choices: 10,=0A=
      partialSearch: true,=0A=
      partialChars: 2,=0A=
      ignoreCase: true,=0A=
      fullSearch: false,=0A=
      selector: function(instance) {=0A=
        var ret       =3D []; // Beginning matches=0A=
        var partial   =3D []; // Inside matches=0A=
        var entry     =3D instance.getToken();=0A=
        var count     =3D 0;=0A=
=0A=
        for (var i =3D 0; i < instance.options.array.length &&  =0A=
          ret.length < instance.options.choices ; i++) { =0A=
=0A=
          var elem =3D instance.options.array[i];=0A=
          var foundPos =3D instance.options.ignoreCase ? =0A=
            elem.toLowerCase().indexOf(entry.toLowerCase()) : =0A=
            elem.indexOf(entry);=0A=
=0A=
          while (foundPos !=3D -1) {=0A=
            if (foundPos =3D=3D 0 && elem.length !=3D entry.length) { =0A=
              ret.push("<li><strong>" + elem.substr(0, entry.length) + =
"</strong>" + =0A=
                elem.substr(entry.length) + "</li>");=0A=
              break;=0A=
            } else if (entry.length >=3D instance.options.partialChars =
&& =0A=
              instance.options.partialSearch && foundPos !=3D -1) {=0A=
              if (instance.options.fullSearch || =
/\s/.test(elem.substr(foundPos-1,1))) {=0A=
                partial.push("<li>" + elem.substr(0, foundPos) + =
"<strong>" +=0A=
                  elem.substr(foundPos, entry.length) + "</strong>" + =
elem.substr(=0A=
                  foundPos + entry.length) + "</li>");=0A=
                break;=0A=
              }=0A=
            }=0A=
=0A=
            foundPos =3D instance.options.ignoreCase ? =0A=
              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + =
1) : =0A=
              elem.indexOf(entry, foundPos + 1);=0A=
=0A=
          }=0A=
        }=0A=
        if (partial.length)=0A=
          ret =3D ret.concat(partial.slice(0, instance.options.choices - =
ret.length))=0A=
        return "<ul>" + ret.join('') + "</ul>";=0A=
      }=0A=
    }, options || { });=0A=
  }=0A=
});=0A=
=0A=
// AJAX in-place editor and collection editor=0A=
// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April =
2007).=0A=
=0A=
// Use this if you notice weird scrolling problems on some browsers,=0A=
// the DOM might be a bit confused when this gets called so do this=0A=
// waits 1 ms (with setTimeout) until it does the activation=0A=
Field.scrollFreeActivate =3D function(field) {=0A=
  setTimeout(function() {=0A=
    Field.activate(field);=0A=
  }, 1);=0A=
}=0A=
=0A=
Ajax.InPlaceEditor =3D Class.create({=0A=
  initialize: function(element, url, options) {=0A=
    this.url =3D url;=0A=
    this.element =3D element =3D $(element);=0A=
    this.prepareOptions();=0A=
    this._controls =3D { };=0A=
    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION =
LAYER!!!=0A=
    Object.extend(this.options, options || { });=0A=
    if (!this.options.formId && this.element.id) {=0A=
      this.options.formId =3D this.element.id + '-inplaceeditor';=0A=
      if ($(this.options.formId))=0A=
        this.options.formId =3D '';=0A=
    }=0A=
    if (this.options.externalControl)=0A=
      this.options.externalControl =3D $(this.options.externalControl);=0A=
    if (!this.options.externalControl)=0A=
      this.options.externalControlOnly =3D false;=0A=
    this._originalBackground =3D =
this.element.getStyle('background-color') || 'transparent';=0A=
    this.element.title =3D this.options.clickToEditText;=0A=
    this._boundCancelHandler =3D this.handleFormCancellation.bind(this);=0A=
    this._boundComplete =3D (this.options.onComplete || =
Prototype.emptyFunction).bind(this);=0A=
    this._boundFailureHandler =3D this.handleAJAXFailure.bind(this);=0A=
    this._boundSubmitHandler =3D this.handleFormSubmission.bind(this);=0A=
    this._boundWrapperHandler =3D this.wrapUp.bind(this);=0A=
    this.registerListeners();=0A=
  },=0A=
  checkForEscapeOrReturn: function(e) {=0A=
    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;=0A=
    if (Event.KEY_ESC =3D=3D e.keyCode)=0A=
      this.handleFormCancellation(e);=0A=
    else if (Event.KEY_RETURN =3D=3D e.keyCode)=0A=
      this.handleFormSubmission(e);=0A=
  },=0A=
  createControl: function(mode, handler, extraClasses) {=0A=
    var control =3D this.options[mode + 'Control'];=0A=
    var text =3D this.options[mode + 'Text'];=0A=
    if ('button' =3D=3D control) {=0A=
      var btn =3D document.createElement('input');=0A=
      btn.type =3D 'submit';=0A=
      btn.value =3D text;=0A=
      btn.className =3D 'editor_' + mode + '_button';=0A=
      if ('cancel' =3D=3D mode)=0A=
        btn.onclick =3D this._boundCancelHandler;=0A=
      this._form.appendChild(btn);=0A=
      this._controls[mode] =3D btn;=0A=
    } else if ('link' =3D=3D control) {=0A=
      var link =3D document.createElement('a');=0A=
      link.href =3D '#';=0A=
      link.appendChild(document.createTextNode(text));=0A=
      link.onclick =3D 'cancel' =3D=3D mode ? this._boundCancelHandler : =
this._boundSubmitHandler;=0A=
      link.className =3D 'editor_' + mode + '_link';=0A=
      if (extraClasses)=0A=
        link.className +=3D ' ' + extraClasses;=0A=
      this._form.appendChild(link);=0A=
      this._controls[mode] =3D link;=0A=
    }=0A=
  },=0A=
  createEditField: function() {=0A=
    var text =3D (this.options.loadTextURL ? this.options.loadingText : =
this.getText());=0A=
    var fld;=0A=
    if (1 >=3D this.options.rows && !/\r|\n/.test(this.getText())) {=0A=
      fld =3D document.createElement('input');=0A=
      fld.type =3D 'text';=0A=
      var size =3D this.options.size || this.options.cols || 0;=0A=
      if (0 < size) fld.size =3D size;=0A=
    } else {=0A=
      fld =3D document.createElement('textarea');=0A=
      fld.rows =3D (1 >=3D this.options.rows ? this.options.autoRows : =
this.options.rows);=0A=
      fld.cols =3D this.options.cols || 40;=0A=
    }=0A=
    fld.name =3D this.options.paramName;=0A=
    fld.value =3D text; // No HTML breaks conversion anymore=0A=
    fld.className =3D 'editor_field';=0A=
    if (this.options.submitOnBlur)=0A=
      fld.onblur =3D this._boundSubmitHandler;=0A=
    this._controls.editor =3D fld;=0A=
    if (this.options.loadTextURL)=0A=
      this.loadExternalText();=0A=
    this._form.appendChild(this._controls.editor);=0A=
  },=0A=
  createForm: function() {=0A=
    var ipe =3D this;=0A=
    function addText(mode, condition) {=0A=
      var text =3D ipe.options['text' + mode + 'Controls'];=0A=
      if (!text || condition =3D=3D=3D false) return;=0A=
      ipe._form.appendChild(document.createTextNode(text));=0A=
    };=0A=
    this._form =3D $(document.createElement('form'));=0A=
    this._form.id =3D this.options.formId;=0A=
    this._form.addClassName(this.options.formClassName);=0A=
    this._form.onsubmit =3D this._boundSubmitHandler;=0A=
    this.createEditField();=0A=
    if ('textarea' =3D=3D this._controls.editor.tagName.toLowerCase())=0A=
      this._form.appendChild(document.createElement('br'));=0A=
    if (this.options.onFormCustomization)=0A=
      this.options.onFormCustomization(this, this._form);=0A=
    addText('Before', this.options.okControl || =
this.options.cancelControl);=0A=
    this.createControl('ok', this._boundSubmitHandler);=0A=
    addText('Between', this.options.okControl && =
this.options.cancelControl);=0A=
    this.createControl('cancel', this._boundCancelHandler, =
'editor_cancel');=0A=
    addText('After', this.options.okControl || =
this.options.cancelControl);=0A=
  },=0A=
  destroy: function() {=0A=
    if (this._oldInnerHTML)=0A=
      this.element.innerHTML =3D this._oldInnerHTML;=0A=
    this.leaveEditMode();=0A=
    this.unregisterListeners();=0A=
  },=0A=
  enterEditMode: function(e) {=0A=
    if (this._saving || this._editing) return;=0A=
    this._editing =3D true;=0A=
    this.triggerCallback('onEnterEditMode');=0A=
    if (this.options.externalControl)=0A=
      this.options.externalControl.hide();=0A=
    this.element.hide();=0A=
    this.createForm();=0A=
    this.element.parentNode.insertBefore(this._form, this.element);=0A=
    if (!this.options.loadTextURL)=0A=
      this.postProcessEditField();=0A=
    if (e) Event.stop(e);=0A=
  },=0A=
  enterHover: function(e) {=0A=
    if (this.options.hoverClassName)=0A=
      this.element.addClassName(this.options.hoverClassName);=0A=
    if (this._saving) return;=0A=
    this.triggerCallback('onEnterHover');=0A=
  },=0A=
  getText: function() {=0A=
    return this.element.innerHTML;=0A=
  },=0A=
  handleAJAXFailure: function(transport) {=0A=
    this.triggerCallback('onFailure', transport);=0A=
    if (this._oldInnerHTML) {=0A=
      this.element.innerHTML =3D this._oldInnerHTML;=0A=
      this._oldInnerHTML =3D null;=0A=
    }=0A=
  },=0A=
  handleFormCancellation: function(e) {=0A=
    this.wrapUp();=0A=
    if (e) Event.stop(e);=0A=
  },=0A=
  handleFormSubmission: function(e) {=0A=
    var form =3D this._form;=0A=
    var value =3D $F(this._controls.editor);=0A=
    this.prepareSubmission();=0A=
    var params =3D this.options.callback(form, value) || '';=0A=
    if (Object.isString(params))=0A=
      params =3D params.toQueryParams();=0A=
    params.editorId =3D this.element.id;=0A=
    if (this.options.htmlResponse) {=0A=
      var options =3D Object.extend({ evalScripts: true }, =
this.options.ajaxOptions);=0A=
      Object.extend(options, {=0A=
        parameters: params,=0A=
        onComplete: this._boundWrapperHandler,=0A=
        onFailure: this._boundFailureHandler=0A=
      });=0A=
      new Ajax.Updater({ success: this.element }, this.url, options);=0A=
    } else {=0A=
      var options =3D Object.extend({ method: 'get' }, =
this.options.ajaxOptions);=0A=
      Object.extend(options, {=0A=
        parameters: params,=0A=
        onComplete: this._boundWrapperHandler,=0A=
        onFailure: this._boundFailureHandler=0A=
      });=0A=
      new Ajax.Request(this.url, options);=0A=
    }=0A=
    if (e) Event.stop(e);=0A=
  },=0A=
  leaveEditMode: function() {=0A=
    this.element.removeClassName(this.options.savingClassName);=0A=
    this.removeForm();=0A=
    this.leaveHover();=0A=
    this.element.style.backgroundColor =3D this._originalBackground;=0A=
    this.element.show();=0A=
    if (this.options.externalControl)=0A=
      this.options.externalControl.show();=0A=
    this._saving =3D false;=0A=
    this._editing =3D false;=0A=
    this._oldInnerHTML =3D null;=0A=
    this.triggerCallback('onLeaveEditMode');=0A=
  },=0A=
  leaveHover: function(e) {=0A=
    if (this.options.hoverClassName)=0A=
      this.element.removeClassName(this.options.hoverClassName);=0A=
    if (this._saving) return;=0A=
    this.triggerCallback('onLeaveHover');=0A=
  },=0A=
  loadExternalText: function() {=0A=
    this._form.addClassName(this.options.loadingClassName);=0A=
    this._controls.editor.disabled =3D true;=0A=
    var options =3D Object.extend({ method: 'get' }, =
this.options.ajaxOptions);=0A=
    Object.extend(options, {=0A=
      parameters: 'editorId=3D' + encodeURIComponent(this.element.id),=0A=
      onComplete: Prototype.emptyFunction,=0A=
      onSuccess: function(transport) {=0A=
        this._form.removeClassName(this.options.loadingClassName);=0A=
        var text =3D transport.responseText;=0A=
        if (this.options.stripLoadedTextTags)=0A=
          text =3D text.stripTags();=0A=
        this._controls.editor.value =3D text;=0A=
        this._controls.editor.disabled =3D false;=0A=
        this.postProcessEditField();=0A=
      }.bind(this),=0A=
      onFailure: this._boundFailureHandler=0A=
    });=0A=
    new Ajax.Request(this.options.loadTextURL, options);=0A=
  },=0A=
  postProcessEditField: function() {=0A=
    var fpc =3D this.options.fieldPostCreation;=0A=
    if (fpc)=0A=
      $(this._controls.editor)['focus' =3D=3D fpc ? 'focus' : =
'activate']();=0A=
  },=0A=
  prepareOptions: function() {=0A=
    this.options =3D Object.clone(Ajax.InPlaceEditor.DefaultOptions);=0A=
    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);=0A=
    [this._extraDefaultOptions].flatten().compact().each(function(defs) {=0A=
      Object.extend(this.options, defs);=0A=
    }.bind(this));=0A=
  },=0A=
  prepareSubmission: function() {=0A=
    this._saving =3D true;=0A=
    this.removeForm();=0A=
    this.leaveHover();=0A=
    this.showSaving();=0A=
  },=0A=
  registerListeners: function() {=0A=
    this._listeners =3D { };=0A=
    var listener;=0A=
    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {=0A=
      listener =3D this[pair.value].bind(this);=0A=
      this._listeners[pair.key] =3D listener;=0A=
      if (!this.options.externalControlOnly)=0A=
        this.element.observe(pair.key, listener);=0A=
      if (this.options.externalControl)=0A=
        this.options.externalControl.observe(pair.key, listener);=0A=
    }.bind(this));=0A=
  },=0A=
  removeForm: function() {=0A=
    if (!this._form) return;=0A=
    this._form.remove();=0A=
    this._form =3D null;=0A=
    this._controls =3D { };=0A=
  },=0A=
  showSaving: function() {=0A=
    this._oldInnerHTML =3D this.element.innerHTML;=0A=
    this.element.innerHTML =3D this.options.savingText;=0A=
    this.element.addClassName(this.options.savingClassName);=0A=
    this.element.style.backgroundColor =3D this._originalBackground;=0A=
    this.element.show();=0A=
  },=0A=
  triggerCallback: function(cbName, arg) {=0A=
    if ('function' =3D=3D typeof this.options[cbName]) {=0A=
      this.options[cbName](this, arg);=0A=
    }=0A=
  },=0A=
  unregisterListeners: function() {=0A=
    $H(this._listeners).each(function(pair) {=0A=
      if (!this.options.externalControlOnly)=0A=
        this.element.stopObserving(pair.key, pair.value);=0A=
      if (this.options.externalControl)=0A=
        this.options.externalControl.stopObserving(pair.key, pair.value);=0A=
    }.bind(this));=0A=
  },=0A=
  wrapUp: function(transport) {=0A=
    this.leaveEditMode();=0A=
    // Can't use triggerCallback due to backward compatibility: requires=0A=
    // binding + direct element=0A=
    this._boundComplete(transport, this.element);=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Ajax.InPlaceEditor.prototype, {=0A=
  dispose: Ajax.InPlaceEditor.prototype.destroy=0A=
});=0A=
=0A=
Ajax.InPlaceCollectionEditor =3D Class.create(Ajax.InPlaceEditor, {=0A=
  initialize: function($super, element, url, options) {=0A=
    this._extraDefaultOptions =3D =
Ajax.InPlaceCollectionEditor.DefaultOptions;=0A=
    $super(element, url, options);=0A=
  },=0A=
=0A=
  createEditField: function() {=0A=
    var list =3D document.createElement('select');=0A=
    list.name =3D this.options.paramName;=0A=
    list.size =3D 1;=0A=
    this._controls.editor =3D list;=0A=
    this._collection =3D this.options.collection || [];=0A=
    if (this.options.loadCollectionURL)=0A=
      this.loadCollection();=0A=
    else=0A=
      this.checkForExternalText();=0A=
    this._form.appendChild(this._controls.editor);=0A=
  },=0A=
=0A=
  loadCollection: function() {=0A=
    this._form.addClassName(this.options.loadingClassName);=0A=
    this.showLoadingText(this.options.loadingCollectionText);=0A=
    var options =3D Object.extend({ method: 'get' }, =
this.options.ajaxOptions);=0A=
    Object.extend(options, {=0A=
      parameters: 'editorId=3D' + encodeURIComponent(this.element.id),=0A=
      onComplete: Prototype.emptyFunction,=0A=
      onSuccess: function(transport) {=0A=
        var js =3D transport.responseText.strip();=0A=
        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check=0A=
          throw 'Server returned an invalid collection representation.';=0A=
        this._collection =3D eval(js);=0A=
        this.checkForExternalText();=0A=
      }.bind(this),=0A=
      onFailure: this.onFailure=0A=
    });=0A=
    new Ajax.Request(this.options.loadCollectionURL, options);=0A=
  },=0A=
=0A=
  showLoadingText: function(text) {=0A=
    this._controls.editor.disabled =3D true;=0A=
    var tempOption =3D this._controls.editor.firstChild;=0A=
    if (!tempOption) {=0A=
      tempOption =3D document.createElement('option');=0A=
      tempOption.value =3D '';=0A=
      this._controls.editor.appendChild(tempOption);=0A=
      tempOption.selected =3D true;=0A=
    }=0A=
    tempOption.update((text || '').stripScripts().stripTags());=0A=
  },=0A=
=0A=
  checkForExternalText: function() {=0A=
    this._text =3D this.getText();=0A=
    if (this.options.loadTextURL)=0A=
      this.loadExternalText();=0A=
    else=0A=
      this.buildOptionList();=0A=
  },=0A=
=0A=
  loadExternalText: function() {=0A=
    this.showLoadingText(this.options.loadingText);=0A=
    var options =3D Object.extend({ method: 'get' }, =
this.options.ajaxOptions);=0A=
    Object.extend(options, {=0A=
      parameters: 'editorId=3D' + encodeURIComponent(this.element.id),=0A=
      onComplete: Prototype.emptyFunction,=0A=
      onSuccess: function(transport) {=0A=
        this._text =3D transport.responseText.strip();=0A=
        this.buildOptionList();=0A=
      }.bind(this),=0A=
      onFailure: this.onFailure=0A=
    });=0A=
    new Ajax.Request(this.options.loadTextURL, options);=0A=
  },=0A=
=0A=
  buildOptionList: function() {=0A=
    this._form.removeClassName(this.options.loadingClassName);=0A=
    this._collection =3D this._collection.map(function(entry) {=0A=
      return 2 =3D=3D=3D entry.length ? entry : [entry, entry].flatten();=0A=
    });=0A=
    var marker =3D ('value' in this.options) ? this.options.value : =
this._text;=0A=
    var textFound =3D this._collection.any(function(entry) {=0A=
      return entry[0] =3D=3D marker;=0A=
    }.bind(this));=0A=
    this._controls.editor.update('');=0A=
    var option;=0A=
    this._collection.each(function(entry, index) {=0A=
      option =3D document.createElement('option');=0A=
      option.value =3D entry[0];=0A=
      option.selected =3D textFound ? entry[0] =3D=3D marker : 0 =3D=3D =
index;=0A=
      option.appendChild(document.createTextNode(entry[1]));=0A=
      this._controls.editor.appendChild(option);=0A=
    }.bind(this));=0A=
    this._controls.editor.disabled =3D false;=0A=
    Field.scrollFreeActivate(this._controls.editor);=0A=
  }=0A=
});=0A=
=0A=
//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****=0A=
//**** This only  exists for a while,  in order to  let ****=0A=
//**** users adapt to  the new API.  Read up on the new ****=0A=
//**** API and convert your code to it ASAP!            ****=0A=
=0A=
Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions =3D =
function(options) {=0A=
  if (!options) return;=0A=
  function fallback(name, expr) {=0A=
    if (name in options || expr =3D=3D=3D undefined) return;=0A=
    options[name] =3D expr;=0A=
  };=0A=
  fallback('cancelControl', (options.cancelLink ? 'link' : =
(options.cancelButton ? 'button' :=0A=
    options.cancelLink =3D=3D options.cancelButton =3D=3D false ? false =
: undefined)));=0A=
  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? =
'button' :=0A=
    options.okLink =3D=3D options.okButton =3D=3D false ? false : =
undefined)));=0A=
  fallback('highlightColor', options.highlightcolor);=0A=
  fallback('highlightEndColor', options.highlightendcolor);=0A=
};=0A=
=0A=
Object.extend(Ajax.InPlaceEditor, {=0A=
  DefaultOptions: {=0A=
    ajaxOptions: { },=0A=
    autoRows: 3,                                // Use when multi-line =
w/ rows =3D=3D 1=0A=
    cancelControl: 'link',                      // 'link'|'button'|false=0A=
    cancelText: 'cancel',=0A=
    clickToEditText: 'Click to edit',=0A=
    externalControl: null,                      // id|elt=0A=
    externalControlOnly: false,=0A=
    fieldPostCreation: 'activate',              // =
'activate'|'focus'|false=0A=
    formClassName: 'inplaceeditor-form',=0A=
    formId: null,                               // id|elt=0A=
    highlightColor: '#ffff99',=0A=
    highlightEndColor: '#ffffff',=0A=
    hoverClassName: '',=0A=
    htmlResponse: true,=0A=
    loadingClassName: 'inplaceeditor-loading',=0A=
    loadingText: 'Loading...',=0A=
    okControl: 'button',                        // 'link'|'button'|false=0A=
    okText: 'ok',=0A=
    paramName: 'value',=0A=
    rows: 1,                                    // If 1 and multi-line, =
uses autoRows=0A=
    savingClassName: 'inplaceeditor-saving',=0A=
    savingText: 'Saving...',=0A=
    size: 0,=0A=
    stripLoadedTextTags: false,=0A=
    submitOnBlur: false,=0A=
    textAfterControls: '',=0A=
    textBeforeControls: '',=0A=
    textBetweenControls: ''=0A=
  },=0A=
  DefaultCallbacks: {=0A=
    callback: function(form) {=0A=
      return Form.serialize(form);=0A=
    },=0A=
    onComplete: function(transport, element) {=0A=
      // For backward compatibility, this one is bound to the IPE, and =
passes=0A=
      // the element directly.  It was too often customized, so we don't =
break it.=0A=
      new Effect.Highlight(element, {=0A=
        startcolor: this.options.highlightColor, keepBackgroundImage: =
true });=0A=
    },=0A=
    onEnterEditMode: null,=0A=
    onEnterHover: function(ipe) {=0A=
      ipe.element.style.backgroundColor =3D ipe.options.highlightColor;=0A=
      if (ipe._effect)=0A=
        ipe._effect.cancel();=0A=
    },=0A=
    onFailure: function(transport, ipe) {=0A=
      alert('Error communication with the server: ' + =
transport.responseText.stripTags());=0A=
    },=0A=
    onFormCustomization: null, // Takes the IPE and its generated form, =
after editor, before controls.=0A=
    onLeaveEditMode: null,=0A=
    onLeaveHover: function(ipe) {=0A=
      ipe._effect =3D new Effect.Highlight(ipe.element, {=0A=
        startcolor: ipe.options.highlightColor, endcolor: =
ipe.options.highlightEndColor,=0A=
        restorecolor: ipe._originalBackground, keepBackgroundImage: true=0A=
      });=0A=
    }=0A=
  },=0A=
  Listeners: {=0A=
    click: 'enterEditMode',=0A=
    keydown: 'checkForEscapeOrReturn',=0A=
    mouseover: 'enterHover',=0A=
    mouseout: 'leaveHover'=0A=
  }=0A=
});=0A=
=0A=
Ajax.InPlaceCollectionEditor.DefaultOptions =3D {=0A=
  loadingCollectionText: 'Loading options...'=0A=
};=0A=
=0A=
// Delayed observer, like Form.Element.Observer, =0A=
// but waits for delay after last key input=0A=
// Ideal for live-search fields=0A=
=0A=
Form.Element.DelayedObserver =3D Class.create({=0A=
  initialize: function(element, delay, callback) {=0A=
    this.delay     =3D delay || 0.5;=0A=
    this.element   =3D $(element);=0A=
    this.callback  =3D callback;=0A=
    this.timer     =3D null;=0A=
    this.lastValue =3D $F(this.element); =0A=
    =
Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListen=
er(this));=0A=
  },=0A=
  delayedListener: function(event) {=0A=
    if(this.lastValue =3D=3D $F(this.element)) return;=0A=
    if(this.timer) clearTimeout(this.timer);=0A=
    this.timer =3D setTimeout(this.onTimerEvent.bind(this), this.delay * =
1000);=0A=
    this.lastValue =3D $F(this.element);=0A=
  },=0A=
  onTimerEvent: function() {=0A=
    this.timer =3D null;=0A=
    this.callback(this.element, $F(this.element));=0A=
  }=0A=
});=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/application.js?1241461185

// Place your application-specific JavaScript functions and classes here=0A=
// This file is automatically included by javascript_include_tag =
:defaults=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/swfobject.js?1241461185

/**=0A=
 * SWFObject v1.5: Flash Player detection and embed - =
http://blog.deconcept.com/swfobject/=0A=
 *=0A=
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT =
License:=0A=
 * http://www.opensource.org/licenses/mit-license.php=0A=
 *=0A=
 */=0A=
if(typeof deconcept=3D=3D"undefined"){var deconcept=3Dnew =
Object();}if(typeof =
deconcept.util=3D=3D"undefined"){deconcept.util=3Dnew =
Object();}if(typeof =
deconcept.SWFObjectUtil=3D=3D"undefined"){deconcept.SWFObjectUtil=3Dnew =
Object();}deconcept.SWFObject=3Dfunction(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!=
document.getElementById){return;}this.DETECT_KEY=3D_a?_a:"detectflash";th=
is.skipDetect=3Ddeconcept.util.getRequestParameter(this.DETECT_KEY);this.=
params=3Dnew Object();this.variables=3Dnew =
Object();this.attributes=3Dnew =
Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id"=
,id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height=
",h);}if(_5){this.setAttribute("version",new =
deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=3Dd=
econcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&=
&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=3Dtrue;}if(c=
){this.addParam("bgcolor",c);}var =
q=3D_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpress=
Install",false);this.setAttribute("doExpressInstall",false);var =
_c=3D(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.s=
etAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);=
}};deconcept.SWFObject.prototype=3D{useExpressInstall:function(_d){this.x=
iSWFPath=3D!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInsta=
ll",true);},setAttribute:function(_e,_f){this.attributes[_e]=3D_f;},getAt=
tribute:function(_10){return =
this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=3D_12;=
},getParams:function(){return =
this.params;},addVariable:function(_13,_14){this.variables[_13]=3D_14;},g=
etVariable:function(_15){return =
this.variables[_15];},getVariables:function(){return =
this.variables;},getVariablePairs:function(){var _16=3Dnew Array();var =
key;var _18=3Dthis.getVariables();for(key in =
_18){_16[_16.length]=3Dkey+"=3D"+_18[key];}return =
_16;},getSWFHTML:function(){var =
_19=3D"";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.l=
ength){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplay=
erType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19=3D"<embed =
type=3D\"application/x-shockwave-flash\" =
src=3D\""+this.getAttribute("swf")+"\" =
width=3D\""+this.getAttribute("width")+"\" =
height=3D\""+this.getAttribute("height")+"\" =
style=3D\""+this.getAttribute("style")+"\"";_19+=3D" =
id=3D\""+this.getAttribute("id")+"\" =
name=3D\""+this.getAttribute("id")+"\" ";var =
_1a=3Dthis.getParams();for(var key in =
_1a){_19+=3D[key]+"=3D\""+_1a[key]+"\" ";}var =
_1c=3Dthis.getVariablePairs().join("&");if(_1c.length>0){_19+=3D"flashvar=
s=3D\""+_1c+"\"";}_19+=3D"/>";}else{if(this.getAttribute("doExpressInstal=
l")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",t=
his.xiSWFPath);}_19=3D"<object id=3D\""+this.getAttribute("id")+"\" =
classid=3D\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" =
width=3D\""+this.getAttribute("width")+"\" =
height=3D\""+this.getAttribute("height")+"\" =
style=3D\""+this.getAttribute("style")+"\">";_19+=3D"<param =
name=3D\"movie\" value=3D\""+this.getAttribute("swf")+"\" />";var =
_1d=3Dthis.getParams();for(var key in _1d){_19+=3D"<param =
name=3D\""+key+"\" value=3D\""+_1d[key]+"\" />";}var =
_1f=3Dthis.getVariablePairs().join("&");if(_1f.length>0){_19+=3D"<param =
name=3D\"flashvars\" value=3D\""+_1f+"\" />";}_19+=3D"</object>";}return =
_19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var =
_21=3Dnew =
deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21=
)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.=
setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",es=
cape(this.getAttribute("xiRedirectUrl")));document.title=3Ddocument.title=
.slice(0,47)+" - Flash Player =
Installation";this.addVariable("MMdoctitle",document.title);}}if(this.ski=
pDetect||this.getAttribute("doExpressInstall")||this.installedVer.version=
IsValid(this.getAttribute("version"))){var n=3D(typeof =
_20=3D=3D"string")?document.getElementById(_20):_20;n.innerHTML=3Dthis.ge=
tSWFHTML();return =
true;}else{if(this.getAttribute("redirectUrl")!=3D""){document.location.r=
eplace(this.getAttribute("redirectUrl"));}}return =
false;}};deconcept.SWFObjectUtil.getPlayerVersion=3Dfunction(){var =
_23=3Dnew =
deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeType=
s.length){var x=3Dnavigator.plugins["Shockwave =
Flash"];if(x&&x.description){_23=3Dnew =
deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replac=
e(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&nav=
igator.userAgent.indexOf("Windows CE")>=3D0){var axo=3D1;var =
_26=3D3;while(axo){try{_26++;axo=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=3Dnew =
deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=3Dnull;}}}else{try{var =
axo=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var =
axo=3Dnew ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=3Dnew =
deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess=3D"always";}catch=
(e){if(_23.major=3D=3D6){return _23;}}try{axo=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=3Dnull=
){_23=3Dnew deconcept.PlayerVersion(axo.GetVariable("$version").split(" =
")[1].split(","));}}}return =
_23;};deconcept.PlayerVersion=3Dfunction(_29){this.major=3D_29[0]!=3Dnull=
?parseInt(_29[0]):0;this.minor=3D_29[1]!=3Dnull?parseInt(_29[1]):0;this.r=
ev=3D_29[2]!=3Dnull?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototyp=
e.versionIsValid=3Dfunction(fv){if(this.major<fv.major){return =
false;}if(this.major>fv.major){return =
true;}if(this.minor<fv.minor){return =
false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return =
false;}return =
true;};deconcept.util=3D{getRequestParameter:function(_2b){var =
q=3Ddocument.location.search||document.location.hash;if(_2b=3D=3Dnull){re=
turn q;}if(q){var _2d=3Dq.substring(1).split("&");for(var =
i=3D0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("=3D"))=3D=3D=
_2b){return _2d[i].substring((_2d[i].indexOf("=3D")+1));}}}return =
"";}};deconcept.SWFObjectUtil.cleanupSWFs=3Dfunction(){var =
_2f=3Ddocument.getElementsByTagName("OBJECT");for(var =
i=3D_2f.length-1;i>=3D0;i--){_2f[i].style.display=3D"none";for(var x in =
_2f[i]){if(typeof =
_2f[i][x]=3D=3D"function"){_2f[i][x]=3Dfunction(){};}}}};if(deconcept.SWF=
Object.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.pre=
pUnload=3Dfunction(){__flash_unloadHandler=3Dfunction(){};__flash_savedUn=
loadHandler=3Dfunction(){};window.attachEvent("onunload",deconcept.SWFObj=
ectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFO=
bjectUtil.prepUnload);deconcept.unloadSet=3Dtrue;}}if(!document.getElemen=
tById&&document.all){document.getElementById=3Dfunction(id){return =
document.all[id];};}var =
getQueryParamValue=3Ddeconcept.util.getRequestParameter;var =
FlashObject=3Ddeconcept.SWFObject;var SWFObject=3Ddeconcept.SWFObject;
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/tabpane.js?1241461185

/*-----------------------------------------------------------------------=
-----\=0A=
|                               Tab Pane 1.02                            =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
|                         Created by Erik Arvidsson                      =
     |=0A=
|                  (http://webfx.eae.net/contact.html#erik)              =
     |=0A=
|                      For WebFX (http://webfx.eae.net/)                 =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
|                Copyright (c) 2002, 2003, 2006 Erik Arvidsson           =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
| Licensed under the Apache License, Version 2.0 (the "License"); you =
may not |=0A=
| use this file except in compliance with the License.  You may obtain a =
copy |=0A=
| of the License at http://www.apache.org/licenses/LICENSE-2.0           =
     |=0A=
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - =
- - - |=0A=
| Unless  required  by  applicable law or  agreed  to  in  writing,  =
software |=0A=
| distributed under the License is distributed on an  "AS IS" BASIS,  =
WITHOUT |=0A=
| WARRANTIES OR  CONDITIONS OF ANY KIND,  either express or implied.  =
See the |=0A=
| License  for the  specific language  governing permissions  and =
limitations |=0A=
| under the License.                                                     =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
| 2002-01-?? | First working version                                     =
     |=0A=
| 2002-02-17 | Cleaned up for 1.0 public version                         =
     |=0A=
| 2003-02-18 | Changed from javascript uri for anchors to return false   =
     |=0A=
| 2003-03-03 | Added dispose methods to release IE memory                =
     |=0A=
| 2006-05-28 | Changed license to Apache Software License 2.0.           =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
| Dependencies: *.css           a css file to define the layout          =
     |=0A=
|------------------------------------------------------------------------=
-----|=0A=
| Created 2002-01-?? | All changes are in the log above. | Updated =
2006-05-28 |=0A=
\------------------------------------------------------------------------=
----*/=0A=
=0A=
// This function is used to define if the browser supports the needed=0A=
// features=0A=
function hasSupport() {=0A=
=0A=
  if (typeof hasSupport.support !=3D "undefined")=0A=
    return hasSupport.support;=0A=
  =0A=
  var ie55 =3D /msie 5\.[56789]/i.test( navigator.userAgent );=0A=
  =0A=
  hasSupport.support =3D ( typeof document.implementation !=3D =
"undefined" &&=0A=
      document.implementation.hasFeature( "html", "1.0" ) || ie55 )=0A=
      =0A=
  // IE55 has a serious DOM1 bug... Patch it!=0A=
  if ( ie55 ) {=0A=
    document._getElementsByTagName =3D document.getElementsByTagName;=0A=
    document.getElementsByTagName =3D function ( sTagName ) {=0A=
      if ( sTagName =3D=3D "*" )=0A=
        return document.all;=0A=
      else=0A=
        return document._getElementsByTagName( sTagName );=0A=
    };=0A=
  }=0A=
=0A=
  return hasSupport.support;=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////////=
//////////=0A=
// The constructor for tab panes=0A=
//=0A=
// el : HTMLElement   The html element used to represent the tab pane=0A=
// bUseCookie : Boolean Optional. Default is true. Used to determine =
whether to us=0A=
//            persistance using cookies or not=0A=
//=0A=
function WebFXTabPane( el, bUseCookie ) {=0A=
  if ( !hasSupport() || el =3D=3D null ) return;=0A=
  =0A=
  this.element =3D el;=0A=
  this.element.tabPane =3D this;=0A=
  this.pages =3D [];=0A=
  this.selectedIndex =3D null;=0A=
  this.useCookie =3D bUseCookie !=3D null ? bUseCookie : true;=0A=
  =0A=
  // add class name tag to class name=0A=
  this.element.className =3D this.classNameTag + " " + =
this.element.className;=0A=
  =0A=
  // add tab row=0A=
  this.tabRow =3D document.createElement( "div" );=0A=
  this.tabRow.className =3D "tab-row";=0A=
  el.insertBefore( this.tabRow, el.firstChild );=0A=
=0A=
  var tabIndex =3D 0;=0A=
  if ( this.useCookie ) {=0A=
    tabIndex =3D Number( WebFXTabPane.getCookie( "webfxtab_" + =
this.element.id ) );=0A=
    if ( isNaN( tabIndex ) )=0A=
      tabIndex =3D 0;=0A=
  }=0A=
  this.selectedIndex =3D tabIndex;=0A=
  =0A=
  // loop through child nodes and add them=0A=
  var cs =3D el.childNodes;=0A=
  var n;=0A=
  for (var i =3D 0; i < cs.length; i++) {=0A=
    if (cs[i].nodeType =3D=3D 1 && cs[i].className =3D=3D "tab-page") {=0A=
      this.addTabPage( cs[i] );=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
WebFXTabPane.prototype.classNameTag =3D "dynamic-tab-pane-control";=0A=
=0A=
WebFXTabPane.prototype.setSelectedIndex =3D function ( n ) {=0A=
  if (this.selectedIndex !=3D n) {=0A=
    if (this.selectedIndex !=3D null && this.pages[ this.selectedIndex ] =
!=3D null )=0A=
      this.pages[ this.selectedIndex ].hide();=0A=
    this.selectedIndex =3D n;=0A=
    this.pages[ this.selectedIndex ].show();=0A=
    =0A=
    if ( this.useCookie )=0A=
      WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // =
session cookie=0A=
  }=0A=
};=0A=
  =0A=
WebFXTabPane.prototype.getSelectedIndex =3D function () {=0A=
  return this.selectedIndex;=0A=
};=0A=
  =0A=
WebFXTabPane.prototype.addTabPage =3D function ( oElement ) {=0A=
  if ( !hasSupport() ) return;=0A=
  =0A=
  if ( oElement.tabPage =3D=3D this ) // already added=0A=
    return oElement.tabPage;=0A=
=0A=
  var n =3D this.pages.length;=0A=
  var tp =3D this.pages[n] =3D new WebFXTabPage( oElement, this, n );=0A=
  tp.tabPane =3D this;=0A=
  =0A=
  // move the tab out of the box=0A=
  this.tabRow.appendChild( tp.tab );=0A=
      =0A=
  if ( n =3D=3D this.selectedIndex )=0A=
    tp.show();=0A=
  else=0A=
    tp.hide();=0A=
    =0A=
  return tp;=0A=
};=0A=
  =0A=
WebFXTabPane.prototype.dispose =3D function () {=0A=
  this.element.tabPane =3D null;=0A=
  this.element =3D null;    =0A=
  this.tabRow =3D null;=0A=
  =0A=
  for (var i =3D 0; i < this.pages.length; i++) {=0A=
    this.pages[i].dispose();=0A=
    this.pages[i] =3D null;=0A=
  }=0A=
  this.pages =3D null;=0A=
};=0A=
=0A=
=0A=
=0A=
// Cookie handling=0A=
WebFXTabPane.setCookie =3D function ( sName, sValue, nDays ) {=0A=
  var expires =3D "";=0A=
  if ( nDays ) {=0A=
    var d =3D new Date();=0A=
    d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );=0A=
    expires =3D "; expires=3D" + d.toGMTString();=0A=
  }=0A=
=0A=
  document.cookie =3D sName + "=3D" + sValue + expires + "; path=3D/";=0A=
};=0A=
=0A=
WebFXTabPane.getCookie =3D function (sName) {=0A=
  var re =3D new RegExp( "(\;|^)[^;]*(" + sName + ")\=3D([^;]*)(;|$)" );=0A=
  var res =3D re.exec( document.cookie );=0A=
  return res !=3D null ? res[3] : null;=0A=
};=0A=
=0A=
WebFXTabPane.removeCookie =3D function ( name ) {=0A=
  setCookie( name, "", -1 );=0A=
};=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
/////////////////////////////////////////////////////////////////////////=
//////////=0A=
// The constructor for tab pages. This one should not be used.=0A=
// Use WebFXTabPage.addTabPage instead=0A=
//=0A=
// el : HTMLElement     The html element used to represent the tab pane=0A=
// tabPane : WebFXTabPane The parent tab pane=0A=
// nindex : Number      The index of the page in the parent pane page =
array=0A=
//=0A=
function WebFXTabPage( el, tabPane, nIndex ) {=0A=
  if ( !hasSupport() || el =3D=3D null ) return;=0A=
  =0A=
  this.element =3D el;=0A=
  this.element.tabPage =3D this;=0A=
  this.index =3D nIndex;=0A=
  =0A=
  var cs =3D el.childNodes;=0A=
  for (var i =3D 0; i < cs.length; i++) {=0A=
    if (cs[i].nodeType =3D=3D 1 && cs[i].className =3D=3D "tab") {=0A=
      this.tab =3D cs[i];=0A=
      break;=0A=
    }=0A=
  }=0A=
  =0A=
  // insert a tag around content to support keyboard navigation=0A=
  =0A=
  =0A=
  var a =3D document.createElement( "A" );=0A=
  this.aElement =3D a;=0A=
  a.href =3D "#";=0A=
  a.onclick =3D function () { return false; };=0A=
  while ( this.tab.hasChildNodes() )=0A=
    a.appendChild( this.tab.firstChild );=0A=
  this.tab.appendChild( a );=0A=
=0A=
  =0A=
  // hook up events, using DOM0=0A=
  var oThis =3D this;=0A=
  this.tab.onclick =3D function () { oThis.select(); };=0A=
  this.tab.onmouseover =3D function () { WebFXTabPage.tabOver( oThis ); =
};=0A=
  this.tab.onmouseout =3D function () { WebFXTabPage.tabOut( oThis ); };=0A=
}=0A=
=0A=
WebFXTabPage.prototype.show =3D function () {=0A=
  var el =3D this.tab;=0A=
  var s =3D el.className + " selected";=0A=
  s =3D s.replace(/ +/g, " ");=0A=
  el.className =3D s;=0A=
  =0A=
  this.element.style.display =3D "block";=0A=
};=0A=
=0A=
WebFXTabPage.prototype.hide =3D function () {=0A=
  var el =3D this.tab;=0A=
  var s =3D el.className;=0A=
  s =3D s.replace(/ selected/g, "");=0A=
  el.className =3D s;=0A=
=0A=
  this.element.style.display =3D "none";=0A=
};=0A=
  =0A=
WebFXTabPage.prototype.select =3D function () {=0A=
  this.tabPane.setSelectedIndex( this.index );=0A=
};=0A=
  =0A=
WebFXTabPage.prototype.dispose =3D function () {=0A=
  this.aElement.onclick =3D null;=0A=
  this.aElement =3D null;=0A=
  this.element.tabPage =3D null;=0A=
  this.tab.onclick =3D null;=0A=
  this.tab.onmouseover =3D null;=0A=
  this.tab.onmouseout =3D null;=0A=
  this.tab =3D null;=0A=
  this.tabPane =3D null;=0A=
  this.element =3D null;=0A=
};=0A=
=0A=
WebFXTabPage.tabOver =3D function ( tabpage ) {=0A=
  var el =3D tabpage.tab;=0A=
  var s =3D el.className + " hover";=0A=
  s =3D s.replace(/ +/g, " ");=0A=
  el.className =3D s;=0A=
};=0A=
=0A=
WebFXTabPage.tabOut =3D function ( tabpage ) {=0A=
  var el =3D tabpage.tab;=0A=
  var s =3D el.className;=0A=
  s =3D s.replace(/ hover/g, "");=0A=
  el.className =3D s;=0A=
};=0A=
=0A=
=0A=
// This function initializes all uninitialized tab panes and tab pages=0A=
function setupAllTabs() {=0A=
  if ( !hasSupport() ) return;=0A=
=0A=
  var all =3D document.getElementsByTagName( "*" );=0A=
  var l =3D all.length;=0A=
  var tabPaneRe =3D /tab\-pane/;=0A=
  var tabPageRe =3D /tab\-page/;=0A=
  var cn, el;=0A=
  var parentTabPane;=0A=
  =0A=
  for ( var i =3D 0; i < l; i++ ) {=0A=
    el =3D all[i]=0A=
    cn =3D el.className;=0A=
=0A=
    // no className=0A=
    if ( cn =3D=3D "" ) continue;=0A=
    =0A=
    // uninitiated tab pane=0A=
    if ( tabPaneRe.test( cn ) && !el.tabPane )=0A=
      new WebFXTabPane( el );=0A=
  =0A=
    // unitiated tab page wit a valid tab pane parent=0A=
    else if ( tabPageRe.test( cn ) && !el.tabPage &&=0A=
          tabPaneRe.test( el.parentNode.className ) ) {=0A=
      el.parentNode.tabPane.addTabPage( el );     =0A=
    }=0A=
  }=0A=
}=0A=
=0A=
function disposeAllTabs() {=0A=
  if ( !hasSupport() ) return;=0A=
  =0A=
  var all =3D document.getElementsByTagName( "*" );=0A=
  var l =3D all.length;=0A=
  var tabPaneRe =3D /tab\-pane/;=0A=
  var cn, el;=0A=
  var tabPanes =3D [];=0A=
  =0A=
  for ( var i =3D 0; i < l; i++ ) {=0A=
    el =3D all[i]=0A=
    cn =3D el.className;=0A=
=0A=
    // no className=0A=
    if ( cn =3D=3D "" ) continue;=0A=
    =0A=
    // tab pane=0A=
    if ( tabPaneRe.test( cn ) && el.tabPane )=0A=
      tabPanes[tabPanes.length] =3D el.tabPane;=0A=
  }=0A=
  =0A=
  for (var i =3D tabPanes.length - 1; i >=3D 0; i--) {=0A=
    tabPanes[i].dispose();=0A=
    tabPanes[i] =3D null;=0A=
  }=0A=
}=0A=
=0A=
=0A=
// initialization hook up=0A=
=0A=
// DOM2=0A=
if ( typeof window.addEventListener !=3D "undefined" )=0A=
  window.addEventListener( "load", setupAllTabs, false );=0A=
=0A=
// IE =0A=
else if ( typeof window.attachEvent !=3D "undefined" ) {=0A=
  window.attachEvent( "onload", setupAllTabs );=0A=
  window.attachEvent( "onunload", disposeAllTabs );=0A=
}=0A=
=0A=
else {=0A=
  if ( window.onload !=3D null ) {=0A=
    var oldOnload =3D window.onload;=0A=
    window.onload =3D function ( e ) {=0A=
      oldOnload( e );=0A=
      setupAllTabs();=0A=
    };=0A=
  }=0A=
  else =0A=
    window.onload =3D setupAllTabs;=0A=
}
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/javascripts/shadowbox/shadowbox.js?1253844115

var Shadowbox=3Dfunction(){var =
ua=3Dnavigator.userAgent.toLowerCase(),S=3D{version:"3.0b",adapter:null,c=
urrent:-1,gallery:[],cache:[],content:null,dimensions:null,plugins:null,p=
ath:"",options:{adapter:null,animate:true,animateFade:true,autoplayMovies=
:true,autoDimensions:false,continuous:false,counterLimit:10,counterType:"=
default",displayCounter:true,displayNav:true,ease:function(x){return =
1+Math.pow(x-1,3)},enableKeys:true,errors:{fla:{name:"Flash",url:"http://=
www.adobe.com/products/flashplayer/"},qt:{name:"QuickTime",url:"http://ww=
w.apple.com/quicktime/download/"},wmp:{name:"Windows Media =
Player",url:"http://www.microsoft.com/windows/windowsmedia/"},f4m:{name:"=
Flip4Mac",url:"http://www.flip4mac.com/wmv_download.htm"}},ext:{img:["png=
","jpg","jpeg","gif","bmp"],swf:["swf"],flv:["flv"],qt:["dv","mov","moov"=
,"movie","mp4"],wmp:["asf","wm","wmv"],qtwmp:["avi","mpg","mpeg"],iframe:=
["asp","aspx","cgi","cfm","htm","html","jsp","pl","php","php3","php4","ph=
p5","phtml","rb","rhtml","shtml","txt","vbs"]},fadeDuration:0.35,flashPar=
ams:{bgcolor:"#000000",allowFullScreen:true},flashVars:{},flashVersion:"9=
.0.115",handleOversize:"resize",handleUnsupported:"link",initialHeight:16=
0,initialWidth:320,language:"en",modal:false,onChange:null,onClose:null,o=
nFinish:null,onOpen:null,overlayColor:"#000",overlayOpacity:0.8,players:[=
"img"],resizeDuration:0.35,showOverlay:true,showMovieControls:true,skipSe=
tup:false,slideshowDelay:0,useSizzle:true,viewportPadding:20},client:{isI=
E:ua.indexOf("msie")>-1,isIE6:ua.indexOf("msie =
6")>-1,isIE7:ua.indexOf("msie =
7")>-1,isGecko:ua.indexOf("gecko")>-1&&ua.indexOf("safari")=3D=3D-1,isWeb=
kit:ua.indexOf("applewebkit/")>-1,isWindows:ua.indexOf("windows")>-1||ua.=
indexOf("win32")>-1,isMac:ua.indexOf("macintosh")>-1||ua.indexOf("mac os =
x")>-1,isLinux:ua.indexOf("linux")>-1},regex:{domain:/:\/\/(.*?)[:\/]/,in=
line:/#(.+)$/,rel:/^(light|shadow)box/i,gallery:/^(light|shadow)box\[(.*?=
)\]/i,unsupported:/^unsupported-(\w+)/,param:/\s*([a-z_]*?)\s*=3D\s*(.+)\=
s*/},libraries:{Prototype:"prototype",jQuery:"jquery",MooTools:"mootools"=
,YAHOO:"yui",dojo:"dojo",Ext:"ext"},applyOptions:function(opts){if(opts){=
default_options=3Dapply({},S.options);apply(S.options,opts)}},buildCacheO=
bj:function(link,opts){var =
href=3Dlink.href,obj=3D{el:link,title:link.getAttribute("title"),options:=
apply({},opts||{}),content:href};each(["player","title","height","width",=
"gallery"],function(o){if(typeof =
obj.options[o]!=3D"undefined"){obj[o]=3Dobj.options[o];delete =
obj.options[o]}});if(!obj.player){obj.player=3DgetPlayer(href)}var =
rel=3Dlink.getAttribute("rel");if(rel){var =
m=3Drel.match(S.regex.gallery);if(m){obj.gallery=3Descape(m[2])}each(rel.=
split(";"),function(p){m=3Dp.match(S.regex.param);if(m){if(m[1]=3D=3D"opt=
ions"){eval("apply(obj.options,"+m[2]+")")}else{obj[m[1]]=3Dm[2]}}})}retu=
rn =
obj},change:function(n){if(!S.gallery){return}if(!S.gallery[n]){if(!S.opt=
ions.continuous){return}else{n=3Dn<0?S.gallery.length-1:0}}S.current=3Dn;=
if(typeof =
slide_timer=3D=3D"number"){clearTimeout(slide_timer);slide_timer=3Dnull;s=
lide_delay=3Dslide_start=3D0}if(S.options.onChange){S.options.onChange()}=
loadContent()},clearCache:function(){each(S.cache,function(obj){if(obj.el=
){S.lib.removeEvent(obj.el,"click",handleClick)}});S.cache=3D[]},close:fu=
nction(){if(!active){return}active=3Dfalse;listenKeys(false);if(S.content=
){S.content.remove();S.content=3Dnull}if(typeof =
slide_timer=3D=3D"number"){clearTimeout(slide_timer)}slide_timer=3Dnull;s=
lide_delay=3D0;if(S.options.onClose){S.options.onClose()}S.skin.onClose()=
;S.revertOptions();each(v_cache,function(c){c[0].style.visibility=3Dc[1]}=
)},contentId:function(){return content_id},getCounter:function(){var =
len=3DS.gallery.length;if(S.options.counterType=3D=3D"skip"){var =
c=3D[],i=3D0,end=3Dlen,limit=3DparseInt(S.options.counterLimit)||0;if(lim=
it<len&&limit>2){var =
h=3DMath.floor(limit/2);i=3DS.current-h;if(i<0){i+=3Dlen}end=3DS.current+=
(limit-h);if(end>len){end-=3Dlen}}while(i!=3Dend){if(i=3D=3Dlen){i=3D0}c.=
push(i++)}}else{var c=3D(S.current+1)+" "+S.lang.of+" "+len}return =
c},getCurrent:function(){return =
S.current>-1?S.gallery[S.current]:null},hasNext:function(){return =
S.gallery.length>1&&(S.current!=3DS.gallery.length-1||S.options.continuou=
s)},init:function(opts){if(initialized){return}initialized=3Dtrue;opts=3D=
opts||{};init_options=3Dopts;if(opts){apply(S.options,opts)}for(var e in =
S.options.ext){S.regex[e]=3Dnew =
RegExp(".("+S.options.ext[e].join("|")+")s*$","i")}if(!S.path){var =
path_re=3D/(.+)shadowbox\.js/i,path;each(document.getElementsByTagName("s=
cript"),function(s){if((path=3Dpath_re.exec(s.src))!=3Dnull){S.path=3Dpat=
h[1];return =
false}})}if(S.options.adapter){S.adapter=3DS.options.adapter}else{for(var=
 lib in S.libraries){if(typeof =
window[lib]!=3D"undefined"){S.adapter=3DS.libraries[lib];break}}if(!S.ada=
pter){S.adapter=3D"base"}}if(S.options.useSizzle&&!window.Sizzle){U.inclu=
de(S.path+"libraries/sizzle/sizzle.js")}if(!S.lang){U.include(S.path+"lan=
guages/shadowbox-"+S.options.language+".js")}each(S.options.players,funct=
ion(p){if((p=3D=3D"swf"||p=3D=3D"flv")&&!window.swfobject){U.include(S.pa=
th+"libraries/swfobject/swfobject.js")}if(!S[p]){U.include(S.path+"player=
s/shadowbox-"+p+".js")}});if(!S.lib){U.include(S.path+"adapters/shadowbox=
-"+S.adapter+".js")}},isActive:function(){return =
active},isPaused:function(){return =
slide_timer=3D=3D"paused"},load:function(){if(S.skin.options){apply(S.opt=
ions,S.skin.options);apply(S.options,init_options)}var =
markup=3DS.skin.markup.replace(/\{(\w+)\}/g,function(m,p){return =
S.lang[p]});S.lib.append(document.body,markup);if(S.skin.init){S.skin.ini=
t()}var =
id;S.lib.addEvent(window,"resize",function(){if(id){clearTimeout(id);id=3D=
null}if(active){id=3DsetTimeout(function(){if(S.skin.onWindowResize){S.sk=
in.onWindowResize()}var =
c=3DS.content;if(c&&c.onWindowResize){c.onWindowResize()}},50)}});if(!S.o=
ptions.skipSetup){S.setup()}},next:function(){S.change(S.current+1)},open=
:function(obj){if(U.isLink(obj)){obj=3DS.buildCacheObj(obj)}if(obj.constr=
uctor=3D=3DArray){S.gallery=3Dobj;S.current=3D0}else{if(!obj.gallery){S.g=
allery=3D[obj];S.current=3D0}else{S.current=3Dnull;S.gallery=3D[];each(S.=
cache,function(c){if(c.gallery&&c.gallery=3D=3Dobj.gallery){if(S.current=3D=
=3Dnull&&c.content=3D=3Dobj.content&&c.title=3D=3Dobj.title){S.current=3D=
S.gallery.length}S.gallery.push(c)}});if(S.current=3D=3Dnull){S.gallery.u=
nshift(obj);S.current=3D0}}}obj=3DS.getCurrent();if(obj.options){S.revert=
Options();S.applyOptions(obj.options)}var =
g,r,m,s,a,oe=3DS.options.errors,msg,el;for(var =
i=3D0;i<S.gallery.length;++i){g=3DS.gallery[i]=3Dapply({},S.gallery[i]);r=
=3Dfalse;if(g.player=3D=3D"unsupported"){r=3Dtrue}else{if(m=3DS.regex.uns=
upported.exec(g.player)){if(S.options.handleUnsupported=3D=3D"link"){g.pl=
ayer=3D"html";switch(m[1]){case"qtwmp":s=3D"either";a=3D[oe.qt.url,oe.qt.=
name,oe.wmp.url,oe.wmp.name];break;case"qtf4m":s=3D"shared";a=3D[oe.qt.ur=
l,oe.qt.name,oe.f4m.url,oe.f4m.name];break;default:s=3D"single";if(m[1]=3D=
=3D"swf"||m[1]=3D=3D"flv"){m[1]=3D"fla"}a=3D[oe[m[1]].url,oe[m[1]].name]}=
msg=3DS.lang.errors[s].replace(/\{(\d+)\}/g,function(m,n){return =
a[n]});g.content=3D'<div =
class=3D"sb-message">'+msg+"</div>"}else{r=3Dtrue}}else{if(g.player=3D=3D=
"inline"){m=3DS.regex.inline.exec(g.content);if(m){var =
el=3DU.get(m[1]);if(el){g.content=3Del.innerHTML}else{throw"Cannot find =
element with id "+m[1]}}else{throw"Cannot find element id for inline =
content"}}else{if(g.player=3D=3D"swf"||g.player=3D=3D"flv"){var =
version=3D(g.options&&g.options.flashVersion)||S.options.flashVersion;if(=
!swfobject.hasFlashPlayerVersion(version)){g.width=3D310;g.height=3D177}}=
}}}if(r){S.gallery.splice(i,1);if(i<S.current){--S.current}else{if(i=3D=3D=
S.current){S.current=3Di>0?i-1:i}}--i}}if(S.gallery.length){if(!active){i=
f(typeof =
S.options.onOpen=3D=3D"function"&&S.options.onOpen(obj)=3D=3D=3Dfalse){re=
turn}v_cache=3D[];each(["select","object","embed","canvas"],function(tag)=
{each(document.getElementsByTagName(tag),function(el){v_cache.push([el,el=
.style.visibility||"visible"]);el.style.visibility=3D"hidden"})});var =
h=3DS.options.autoDimensions&&"height" in =
obj?obj.height:S.options.initialHeight;var =
w=3DS.options.autoDimensions&&"width" in =
obj?obj.width:S.options.initialWidth;S.skin.onOpen(h,w,loadContent)}else{=
loadContent()}active=3Dtrue}},pause:function(){if(typeof =
slide_timer!=3D"number"){return}var time=3Dnew =
Date().getTime();slide_delay=3DMath.max(0,slide_delay-(time-slide_start))=
;if(slide_delay){clearTimeout(slide_timer);slide_timer=3D"paused";if(S.sk=
in.onPause){S.skin.onPause()}}},play:function(){if(!S.hasNext()){return}i=
f(!slide_delay){slide_delay=3DS.options.slideshowDelay*1000}if(slide_dela=
y){slide_start=3Dnew =
Date().getTime();slide_timer=3DsetTimeout(function(){slide_delay=3Dslide_=
start=3D0;S.next()},slide_delay);if(S.skin.onPlay){S.skin.onPlay()}}},pre=
vious:function(){S.change(S.current-1)},revertOptions:function(){apply(S.=
options,default_options)},setDimensions:function(height,width,max_h,max_w=
,tb,lr,resizable){var =
h=3Dheight=3DparseInt(height),w=3Dwidth=3DparseInt(width),pad=3DparseInt(=
S.options.viewportPadding)||0;var =
extra_h=3D2*pad+tb;if(h+extra_h>=3Dmax_h){h=3Dmax_h-extra_h}var =
extra_w=3D2*pad+lr;if(w+extra_w>=3Dmax_w){w=3Dmax_w-extra_w}var =
resize_h=3Dheight,resize_w=3Dwidth,change_h=3D(height-h)/height,change_w=3D=
(width-w)/width,oversized=3D(change_h>0||change_w>0);if(resizable&&oversi=
zed&&S.options.handleOversize=3D=3D"resize"){if(change_h>change_w){w=3DMa=
th.round((width/height)*h)}else{if(change_w>change_h){h=3DMath.round((hei=
ght/width)*w)}}resize_w=3Dw;resize_h=3Dh}S.dimensions=3D{height:h+tb,widt=
h:w+lr,inner_h:h,inner_w:w,top:(max_h-(h+extra_h))/2+pad,left:(max_w-(w+e=
xtra_w))/2+pad,oversized:oversized,resize_h:resize_h,resize_w:resize_w};r=
eturn S.dimensions},setup:function(links,opts){if(!links){var =
links=3D[],rel;each(document.getElementsByTagName("a"),function(a){rel=3D=
a.getAttribute("rel");if(rel&&S.regex.rel.test(rel)){links.push(a)}})}els=
e{var len=3Dlinks.length;if(len){if(window.Sizzle){if(typeof =
links=3D=3D"string"){links=3DSizzle(links)}else{if(len=3D=3D2&&links.push=
&&typeof =
links[0]=3D=3D"string"&&links[1].nodeType){links=3DSizzle(links[0],links[=
1])}}}}else{links=3D[links]}}each(links,function(link){if(typeof =
link.shadowboxCacheKey=3D=3D"undefined"){link.shadowboxCacheKey=3DS.cache=
.length;S.lib.addEvent(link,"click",handleClick)}S.cache[link.shadowboxCa=
cheKey]=3DS.buildCacheObj(link,opts)})}},U=3DS.util=3D{animate:function(e=
l,p,to,d,cb){var =
from=3DparseFloat(S.lib.getStyle(el,p));if(isNaN(from)){from=3D0}var =
delta=3Dto-from;if(delta=3D=3D0){if(cb){cb()}return}var =
op=3Dp=3D=3D"opacity";function fn(ease){var =
to=3Dfrom+ease*delta;if(op){U.setOpacity(el,to)}else{el.style[p]=3Dto+"px=
"}}if(!d||(!op&&!S.options.animate)||(op&&!S.options.animateFade)){fn(1);=
if(cb){cb()}return}d*=3D1000;var begin=3Dnew =
Date().getTime(),end=3Dbegin+d,time,timer=3DsetInterval(function(){time=3D=
new =
Date().getTime();if(time>=3Dend){clearInterval(timer);fn(1);if(cb){cb()}}=
else{fn(S.options.ease((time-begin)/d))}},10)},apply:function(o,e){for(va=
r p in e){o[p]=3De[p]}return o},clearOpacity:function(el){var =
s=3Del.style;if(window.ActiveXObject){if(typeof =
s.filter=3D=3D"string"&&(/alpha/i).test(s.filter)){s.filter=3Ds.filter.re=
place(/[\w\.]*alpha\(.*?\);?/i,"")}}else{s.opacity=3D""}},each:function(o=
bj,fn,scope){for(var =
i=3D0,len=3Dobj.length;i<len;++i){if(fn.call(scope||obj[i],obj[i],i,obj)=3D=
=3D=3Dfalse){return}}},get:function(id){return =
document.getElementById(id)},include:function(){var includes=3D{};return =
function(file){if(includes[file]){return}includes[file]=3Dtrue;document.w=
rite('<script type=3D"text/javascript" =
src=3D"'+file+'"><\/script>')}}(),isLink:function(obj){if(!obj||!obj.tagN=
ame){return false}var up=3Dobj.tagName.toUpperCase();return =
up=3D=3D"A"||up=3D=3D"AREA"},removeChildren:function(el){while(el.firstCh=
ild){el.removeChild(el.firstChild)}},setOpacity:function(el,o){var =
s=3Del.style;if(window.ActiveXObject){s.zoom=3D1;s.filter=3D(s.filter||""=
).replace(/\s*alpha\([^\)]*\)/gi,"")+(o=3D=3D1?"":" =
alpha(opacity=3D"+(o*100)+")")}else{s.opacity=3Do}}},apply=3DU.apply,each=
=3DU.each,init_options,initialized=3Dfalse,default_options=3D{},content_i=
d=3D"sb-content",active=3Dfalse,slide_timer,slide_start,slide_delay=3D0,v=
_cache=3D[];if(navigator.plugins&&navigator.plugins.length){var =
names=3D[];each(navigator.plugins,function(p){names.push(p.name)});names=3D=
names.join();var detectPlugin=3Dfunction(n){return =
names.indexOf(n)>-1};var =
f4m=3DdetectPlugin("Flip4Mac");S.plugins=3D{fla:detectPlugin("Shockwave =
Flash"),qt:detectPlugin("QuickTime"),wmp:!f4m&&detectPlugin("Windows =
Media"),f4m:f4m}}else{function detectPlugin(n){try{var axo=3Dnew =
ActiveXObject(n)}catch(e){}return =
!!axo}S.plugins=3D{fla:detectPlugin("ShockwaveFlash.ShockwaveFlash"),qt:d=
etectPlugin("QuickTime.QuickTime"),wmp:detectPlugin("wmplayer.ocx"),f4m:f=
alse}}function getPlayer(url){var =
re=3DS.regex,p=3DS.plugins,m=3Durl.match(re.domain),d=3Dm&&document.domai=
n=3D=3Dm[1];if(url.indexOf("#")>-1&&d){return"inline"}var =
q=3Durl.indexOf("?");if(q>-1){url=3Durl.substring(0,q)}if(re.img.test(url=
)){return"img"}if(re.swf.test(url)){return =
p.fla?"swf":"unsupported-swf"}if(re.flv.test(url)){return =
p.fla?"flv":"unsupported-flv"}if(re.qt.test(url)){return =
p.qt?"qt":"unsupported-qt"}if(re.wmp.test(url)){if(p.wmp){return"wmp"}if(=
p.f4m){return"qt"}if(S.client.isMac){return =
p.qt?"unsupported-f4m":"unsupported-qtf4m"}return"unsupported-wmp"}if(re.=
qtwmp.test(url)){if(p.qt){return"qt"}if(p.wmp){return"wmp"}return =
S.client.isMac?"unsupported-qt":"unsupported-qtwmp"}if(!d||re.iframe.test=
(url)){return"iframe"}return"unsupported"}function handleClick(e){var =
link;if(U.isLink(this)){link=3Dthis}else{link=3DS.lib.getTarget(e);while(=
!U.isLink(link)&&link.parentNode){link=3Dlink.parentNode}}if(link){var =
key=3Dlink.shadowboxCacheKey;if(typeof key!=3D"undefined"&&typeof =
S.cache[key]!=3D"undefined"){link=3DS.cache[key]}S.open(link);if(S.galler=
y.length){S.lib.preventDefault(e)}}}function =
listenKeys(on){if(!S.options.enableKeys){return}S.lib[(on?"add":"remove")=
+"Event"](document,"keydown",handleKey)}function handleKey(e){var =
code=3DS.lib.keyCode(e);S.lib.preventDefault(e);switch(code){case =
81:case 88:case 27:S.close();break;case 37:S.previous();break;case =
39:S.next();break;case 32:S[(typeof =
slide_timer=3D=3D"number"?"pause":"play")]()}}function loadContent(){var =
obj=3DS.getCurrent();if(!obj){return}var =
p=3Dobj.player=3D=3D"inline"?"html":obj.player;if(typeof =
S[p]!=3D"function"){throw"Unknown player: "+p}var =
change=3Dfalse;if(S.content){S.content.remove();change=3Dtrue;S.revertOpt=
ions();if(obj.options){S.applyOptions(obj.options)}}U.removeChildren(S.sk=
in.bodyEl());S.content=3Dnew =
S[p](obj);listenKeys(false);S.skin.onLoad(S.content,change,function(){if(=
!S.content){return}if(typeof S.content.ready!=3D"undefined"){var =
id=3DsetInterval(function(){if(S.content){if(S.content.ready){clearInterv=
al(id);id=3Dnull;S.skin.onReady(contentReady)}}else{clearInterval(id);id=3D=
null}},100)}else{S.skin.onReady(contentReady)}});if(S.gallery.length>1){v=
ar =
next=3DS.gallery[S.current+1]||S.gallery[0];if(next.player=3D=3D"img"){va=
r a=3Dnew Image();a.src=3Dnext.content}var =
prev=3DS.gallery[S.current-1]||S.gallery[S.gallery.length-1];if(prev.play=
er=3D=3D"img"){var b=3Dnew Image();b.src=3Dprev.content}}}function =
contentReady(){if(!S.content){return}S.content.append(S.skin.bodyEl(),con=
tent_id,S.dimensions);S.skin.onFinish(finishContent)}function =
finishContent(){if(!S.content){return}if(S.content.onLoad){S.content.onLo=
ad()}if(S.options.onFinish){S.options.onFinish()}if(!S.isPaused()){S.play=
()}listenKeys(true)}return S}();Shadowbox.skin=3Dfunction(){var =
e=3DShadowbox,d=3De.util,o=3Dfalse,k=3D["sb-nav-close","sb-nav-next","sb-=
nav-play","sb-nav-pause","sb-nav-previous"];function =
l(){d.get("sb-container").style.top=3Ddocument.documentElement.scrollTop+=
"px"}function g(p){var =
q=3Dd.get("sb-overlay"),r=3Dd.get("sb-container"),t=3Dd.get("sb-wrapper")=
;if(p){if(e.client.isIE6){l();e.lib.addEvent(window,"scroll",l)}if(e.opti=
ons.showOverlay){o=3Dtrue;q.style.backgroundColor=3De.options.overlayColo=
r;d.setOpacity(q,0);if(!e.options.modal){e.lib.addEvent(q,"click",e.close=
)}t.style.display=3D"none"}r.style.visibility=3D"visible";if(o){var =
s=3DparseFloat(e.options.overlayOpacity);d.animate(q,"opacity",s,e.option=
s.fadeDuration,p)}else{p()}}else{if(e.client.isIE6){e.lib.removeEvent(win=
dow,"scroll",l)}e.lib.removeEvent(q,"click",e.close);if(o){t.style.displa=
y=3D"none";d.animate(q,"opacity",0,e.options.fadeDuration,function(){r.st=
yle.display=3D"";t.style.display=3D"";d.clearOpacity(q)})}else{r.style.vi=
sibility=3D"hidden"}}}function b(r,p){var =
q=3Dd.get("sb-nav-"+r);if(q){q.style.display=3Dp?"":"none"}}function =
i(r,q){var =
t=3Dd.get("sb-loading"),v=3De.getCurrent().player,u=3D(v=3D=3D"img"||v=3D=
=3D"html");if(r){function =
s(){d.clearOpacity(t);if(q){q()}}d.setOpacity(t,0);t.style.display=3D"";i=
f(u){d.animate(t,"opacity",1,e.options.fadeDuration,s)}else{s()}}else{fun=
ction =
s(){t.style.display=3D"none";d.clearOpacity(t);if(q){q()}}if(u){d.animate=
(t,"opacity",0,e.options.fadeDuration,s)}else{s()}}}function a(s){var =
u=3De.getCurrent();d.get("sb-title-inner").innerHTML=3Du.title||"";var =
x,r,t,y,q;if(e.options.displayNav){x=3Dtrue;var =
w=3De.gallery.length;if(w>1){if(e.options.continuous){r=3Dq=3Dtrue}else{r=
=3D(w-1)>e.current;q=3De.current>0}}if(e.options.slideshowDelay>0&&e.hasN=
ext()){y=3D!e.isPaused();t=3D!y}}else{x=3Dr=3Dt=3Dy=3Dq=3Dfalse}b("close"=
,x);b("next",r);b("play",t);b("pause",y);b("previous",q);var =
x=3D"";if(e.options.displayCounter&&e.gallery.length>1){var =
v=3De.getCounter();if(typeof =
v=3D=3D"string"){x=3Dv}else{d.each(v,function(p){x+=3D'<a =
onclick=3D"Shadowbox.change('+p+');"';if(p=3D=3De.current){x+=3D' =
class=3D"sb-counter-current"'}x+=3D">"+(p+1)+"</a>"})}}d.get("sb-counter"=
).innerHTML=3Dx;s()}function h