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

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAQQAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQABQQEBAQEBQQEBQcFBAUHCQYFBQYJCggICQgICg0KCwsLCwoNDAwMDQwMDA8PEREPDxcWFhYX
GRkZGRkZGRkZGQEGBgYKCQoTDQ0TFhEOERYZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZ
GRkZGRkZGRkZGRkZGRkZGRkZ/8AAEQgAWgLYAwERAAIRAQMRAf/EAMYAAAEEAwEBAAAAAAAAAAAA
AAAEBQYHAgMIAQkBAAEFAQEBAAAAAAAAAAAAAAACAwQFBgEHCBAAAQMDAgQDBAYGBgUJCQAAAQID
BAARBRIGITETB0FRImFxMhSBkUIjFQihsVJicjPB0YKSNBayJDU2F6LCc4OTo0R0lPDh8kNTYyWV
JhEAAQMCBAIGCAMHAwIHAAAAAQACAxEEITESBUFRYXGxIjIT8IGRocHRFAbhQlLxYnKCIzM0siQV
kjWiwtLyU2MW/9oADAMBAAIRAxEAPwCaXryBekIvQhF6EIvQhF6EIvQhV7vLJvZJ5GBDK2IySl6U
VKTdwX9CbJJsOGrj7K1WyWTWNMxNTkOjn8vaqHc7kvPlAU4n4KMIEhOSixoq+h0rKQEDiAPKrvVX
FV2mhorBx2KRISFOlS1K5rUb8ajPcpsbOaclbQhuWWEfeDkoXprWU6YmlNr0bIYt06Ceif2Rz9hv
woDkl0XJIshj2ZpROgx1R5bYu6EDgr22pepM6UOPMDGOtuDprt8NrpJ9x5fRSmlJcFB/xWXt+Z8w
0hS4jpBSkcCT5caVd2TbloxpTsTUNyYHHjVWtt/JPZLHMvyg2mSsXWhokpTc8Bc87DnWLvIWxyEN
rp6VpbaQvYC7NO96ip9SLaW5HsBkElSice+QmS0eQ8lj2pq22jcnWsuPgdmPiq/cbIXEf74y+Stb
cmKRnsSFxF2ltASIEhs2UFAXFlCxGqtruVoLqCrT3h3mlZaxuDby0d4Tg4Kt/wAbxG5Yf+Xt+xEy
44uhjIgWfYX8OrUBcEftJ+kGs5ab02QeVdCo/VxHX8/bVWW57BHM2sY9X/pVT767V5baaTlMev8A
FtsrAW3kWbEtpUeAdSm9v4x6T7Dwp67sHRDW064zxC86vNukgJww7OtV5aq5VyLUIRahCLUIRahC
LUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRah
CLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCLUIRa
hCLUIRahCLUIRahCLUIRahCLUIRahCLUIRahCuHtJDZiRZeUlLQylz7tCnSEDieQKreCf01u/t61
LLbXTGQ+5uHbVWFoKCpT/kWdtSMiqYiYp98epbbN1A2Fh6ikj9NauMyhtKYJwhhdWqXYHKFE1nGQ
3HozM90RnHHXlOoCHDbg2AhNzyub+ym54qt1HHTjkpEMlDpHFWRnsdIzWJlRXpXSWLtlppGlKVo9
Sbk3UpJ4H3VURSCN4IFVYyML2kVVDzIz0R9yLJQUPtnStJ8/P2jyrSRvDgCMlRSNLTQpA5ToTRSV
ylhNuSNxCVnQoAhRsR76Hsa8UcAR04pook4HFvC3RDR/aaOg+Hh8P6Kz9z9t2U35dB/dw92SfLQm
WTtl1JvFfCh+y6LH60g/qrPXX2bIMYnh3Q7BNlgTU9jpsckOMKNuakescf4b2+ms5dbPd2/jjNOe
Y9oSNJSXnVYuK6b1RL3xF6EIvQhF6EIvQhA4kAczXUKAbnxysXuaTHmqvICi462DfxIT9BQE2r0R
sHkwMZyH7VjxL5srn8yo2+4mHMRJBvJlOJjNDla5Gr9dNjJOjNWnHkwoQaaWpQJSnglCl24eOkGm
HNU1pUuxkmDKbBZcC/A3BBB8iDY02RROBZ5VWNiMD5plbpXcBLabngOZJsAPaTQG1RVQVeRw8x5c
fGTI6JCCSYokIU5w58E3H6acMZAqmS9jsOKZZyW4r5YlEqbeI0rI5ahex8xQ0pD20zUX3Pi1O4xb
abkIPUbcHq0kceB4c+XGpUTgRpKhTNoahLe3WVU4j5Vw+pPAX9nOs5u9toNVcbbPqFFZt6z6uF7e
uIVv9t8yqbjXMa8sqehEdO54lpXL+6eFbv7cvDJEYycWdiyW922iQPGTu1Q3uBixjs8t5tOliaOs
n+P7f6aofuC18q5JGT8fmrjZ7jzIKHNuHySHb+6ZmDKmFJEvFPXTIgu8UKSrgrTe4BI5+B8aj7du
slqaeKM5t+XJO323R3LccHc/nzTHvbtdAykJe6u3iC7GAK5+DTxdaVzJaTxP/V/3bjhV9Lax3Efn
W+I4t4j05exeZ7rsr4HGg9XxCpcpKSUqBCgbEEWIIqoWeXlqFxFqEItQhFqEItQhFqEItQhFqEIt
QhTXE7Mw8jaB3hnM85i4YnnGhpqEZaisNhwG4eb5i/hU+Gza6LzHO0itMq/FTYrZro9bnUxplX4p
Nm9pY+Jttjdu380nNYRcowJSlMKiPsSNOoJU2pblwU2N9XiOFE1kGxiRjtTa0yoQuS2ulmtrtTcu
SiQsRcVAURe2oXFII+13X9n5Dd6pKER4MxuAIukla1uAKKtVwEgBQ871JZbF0JkrkaKQ2AmIvrka
KPJIULioxTC9tQuItQhFqEItQhFqEItQhFqEItQhFqEItQhFqEItQhFqEItQhFqEItQhOOCxf41m
8bh+r0PxGWzE6+nXo6zgRq03Tqte9rinIY/Me1uWogJyJmt4bzNFnubEJ25uHI4D5j5o494sfMaO
nrsAb6dSrc/M0u4gMTy2taJU8XlvLc6Jx3VtVO2IO3Zpm/Nfj+PRkQ30un0daUnRfWrXbVzsPdTl
xa+U1hrXW2vUnJrfy2tNa6hVRoC/GoijItQuItQhFqEItQhb4bUZ2Uw1NfVFiLcSl+ShvqqbQT6l
BF06rDja4pTACQCaBKbQnHALGWmI1MfZhPqlREOKSxIW30lOIB9Kii6tNxxtc117QCaGoXXAA4Yh
Pm0dqu7syMmC1JTEEWG9PddWkruhgC6UpBFySoeNPWtsZnEA0oCU7bwGVxFaUFVHEqSrlUchMUWV
q4uItQhFqEKTQNpibszN7vM3pDDPsMfJdLV1eutCL9TWNOnX+yalx2uuF0lfCRh1qSy31ROfXw8E
l2dtxzeG4YWAYkJiqmFy8haSsJS02p1R0gi5sngL0i2tzNIGVpVJghMsgZlVM0htLEp+MFayy4pv
Va19JIvbj5Uy5uk0TTm0NFhakpKLUIRahCLUIRahCLUIRahCyQ2pxaW0C61kJSPMk2FKY0ucAMyu
jFWFDi6WG2Un0NISjUfHSLX/AEV7VZW4toGR/pbRSgKp3hs9JK1XuVcL+wU691U8wUSlLrjLiHWl
FLjagtCh4KSbg/XSKVFCl1pirfb3XhcrGYksZWPByi2UolRpYV01G1yDxTxSq+lQNUbrV7KgtJbw
orYXDHUIcA7pVX7myi5klxiVGYElhRQmVHWVJUnmCk8QUkcRVpaQaBVpNDwKrrmXUaECo4hRZw1P
ChFMjubhpcKLLKRw6gAI+rnUkQOIVc++ja6mK8EyM/xaeSo+V7K+o8aDG4ZhKbOx+RSoZIp4Oo1e
ak8/qpHl8k759M1kmdFc4BwJPkv0n9Nc8ty6JmHik7zqE6nFEWHEH+qltHBIe8DEqOSll0qUuyiq
/FQBIvw4E8Rao91stnc/3I2k88j7Qqp1zI3Iq1L183r6TRehCL0IRehCL0ITxtiL87n8fHtcKeSp
Qtfgj1H9VTtsi8y5Y3pUS/k0QOPQox31w0XFbwjzoqg2clGSt0OLClqWhSklYHFQTawufLhyr0O7
bgCsfaHEhU1LlMzM5i2Gj91GfQCrzUtQ4n3moFKBWDcXBWHuDB7hyjrTePnKjw0AhUdtamCpZ4BS
loubDytQyRrcwnZY3uyKXwcdk8IqEPnFPv8AoS8NSlgkfESpXs5U3JpdklxB7cyrFykBOXhhpaih
LiEkWtY24kG/gaaYaFPvbUUTDhO3ODgOofcSZLzLi3mEuBAS0tfMpAA/TTzpS4UTEds1hqmveUWK
y1Ede9JUst+ywBIvUdmakTtFFGzDLKS8QFsujpupUfTY+Yp5jqFQXhQGFIOBzyW2fQ0+4VJbKtRF
wRz+mi/t/NiJpkPim7Wby5KdKuDGSXZDQcc4XFYiZoaVqI3EhON6ZTqlfb+auLuSOgK0okpUysHx
BGoD6xV1sExZdgfqwVXvEQfbk/pxUx7oxQvFxJYTdbL2gr8QlY/rFXv3PFWFr6ZHtVTsMlJXN5hV
HesQtUnLDZufg5iZkBzSocHGzxQ4n9lQ8RUqzvJLZ+th+R61HubVk7NLx+CV7x2RjO4EN7dG0W0x
tyNDXlMRwHXPipPIdQ+B5L8bKrUlsW4M82HCQeJvp28etebb3sT4nVH4O/FUK40404tp1Cm3W1FD
jawUqSpJsQQeIINUxBBoVkiCFjahcRahCLUIRahCLUIRahCLUIRahCs1rI4zF9kFyctiG83FO49A
hvPvxkhRjAheuOpC7ix4Xtxq/sy0WmI1d/4K5tSBbYive+Cj+3t4w915famyBhoeD2UMszJlY9lx
1z5h9V0jrOvqUpaVXCdJ/qs4yZr3NjoAyuSWyUPc1lAG1VmYbM7j3B3H3Xsvc8RP+SobMoKiOMIb
jxYrRKYrzarDQpafUFavM/Z4SW65JnMf/bxw5clIbqfI5jvBy5cko2PuyHjsbsbAZrHZPBryjY/D
TBTFlY7KCRpSVSAjqupUsKClhSUlHEkilWpDWsaQW9VKO6123Ia1jSC3qpQ9aju5cvlcH223/jYE
kMMY7c7uJjtReDTcOVZTjKQb6UnqqBHgeF6Q5pjhe0HDV7jwSXNLInNGWr3KAdo9yjbu6MfMlkfI
SyYE8K4p6EiyST7Eq0qPuqotZhFcA8DgfWq23kEcw5HAq1sli8R28j4jYst5Cl7y3IhUsFQFsSxI
SlpC1HlrBRe/msXq1+lbC0R/rfj/AAg+nvVh9O2JoZ+t2PUlGMze5Mt3Zzmxs1BH+R2GZCHMe4wh
EViGhs9B9B0jTrNrKv8AaPlwcbrdO5jh/T5UwA4JbdTpix3g5cKKH5zrzNi9rG8W07OS7PnRmiyk
rKlCX6R6QfUUoUbew+VQ5YNUMQGNCe1RpIaxRgcCe1WDls9KwO7+6uVg6fnMZhIMlguDUkLDF0kj
xseNTnVZLK4Z6R2KWatkkcM6Bc1zNz5PdWVkZjKFK5snR13G0JbCihCUBWlAAuQnj7az10S52p2Z
VJcVc7Ucyui8/ueRM7lbW7d5PoL2rPhxZEmM62hRcfQhbzV1KBPqcZQiw4EEg860Eji+VsbvBQYK
6e4ukaw+CgWuZlo+ZG/sXl50vLwMVEkOOYt3FtwG8SpkEsqakOv2VpQngEi6x6hwvcezWHtcdTaZ
aaaeorrm6w8ONRypSiWbT3PDbe2htPN4zJYKdNxqRFx7KIsvDZFpbduq4pvqrubazcpKeGom/FUB
A0MILcMsC0rsJA0tIIwyw0lV/uZp5rtSMfBZ+ZXD3tLx4biBTqbo67SAkC6rKJSE34m486g3Ft/t
9I4SH4qJNB/Q0j9fzVkKku47uSUuNDrxO3peWy6LjW1I4pUPeLGpoaWz15RfFSw0iav/ANfxUAk9
zt1p7NxN3CaFbgXnlYwZItNF5MctLfKUnTYXUkDly4UyZpPpw6vf1Ur0JkyyeSHV71c1YL7OLj7p
3vm2kpi52Jh8fLYlMRBMdYMhDvWkNx7p6ixoTc39/PjIMLRI94wfpGNK06aJ8xN8x7h4qDh71W3c
bJQ8h23wO4JEiRl8g7kTGh7ikw28e5JjFDiihTfVW4tKCkaV2t9J4wb2IPgaSdTq+KlKhQ7qPVEC
cXVzpRaO1AdYx259xpejY9jHQ0BeZdYVMkRC7qsqOwm2pR0/EogD3XqJtrCNbsBQZ0qR1BR7FhGt
2AoM86dQU6ykxmdG7WZouS578ncTcVvLZOO3HlPMKcWUkpRybVp1I1cSONWr49QidiSHZnNWLmah
G7M6szmkQ3hlNz7l7qbYzBbk4TEYvIOQYam06WnIaihtaTbVr9RUVX5+4UFzpHStdi2hoOpcLnPd
I12LaFZL3BuDbef7Z4DZ8cja2XhQn5PQZS43JU+sfNOLUBq1NtaXCb8OdJGuJ8bY/BQevmuDVG5j
WeCg9fNUx3JdcPdPdCD8InKA+oVW7k0eY7rUG+A1nrVxbh3PvjCxu02N20hxWNycOC3MbQyHESFl
DaVMrUpJGnpFSrcOF1eHCzbJI1kQbkWhT2veGRgZEBOny+3tttdycvhZP4VKgZNuKrJQ4gnuwYzk
dlx3pshSNCeq46hRB9Nv3a6IGR+Y5ndNc6Vpll710QtZrLcDXOlaKAd3JkN3A7OzLvVkZbItPpXl
3ozUFc5hGkodXHS44tKk6hxVa97jha0LcYQ5jXfm50pVRL6IOY135ueVUt2PuTIbX7U7zz+JWlvI
RpMMMOrSFhBeWhoqCVXTcBZtcc6Rt73R28hbnUJNk5zIXkZ1CkLO4kQ+3+3dzQ8w7gsjuKa/JyuQ
xmKTkFPzFPECOtKFt9NOr0pTY6re+88CkTXNdpc41JDa1PJTAKRgg6S41JArinPMNxMJJ35ntuY4
R93QsRAkojlpkuMrkLdD8hpltToQS2hKzxuCOPPip8IYXvYKP0j8SF18QaXuaO/QfiU2s7gzub29
2pym4EKGQmblaQXVt9JbrIKktOkWF9aADqA4jjSe+9kRfnrXO89sZdnqWMfdDO2X9+z8nj8jDwzm
534zm68IqI5JZcC0WZdaeKnEtJ+LVoUDqta5oadBeSCAX+IUqhp0F5IIBd4hSqfTPcgdz8h+FudC
NmdnHNLaQ30XlvtKKG3X2yBpd4q8B7rinQzTOS38zK+vmU4G6ZiR+ZqimCzKMb2sw+52c5Jw+Xz2
Sku5zNxMaMlIelGQ4EsuHUjphVgQPteHM3aaKQhwdpc44mlSm2ikQIOkk4mlVKETGMJvvceQx8L5
LJN7Kcystl1ptpK5KHbhwstrXo16AVIUrV58704GBkznNFD5fvSwwMlc4Ch0e9R3b273Mn22ye/J
2WON3FIyCIOUzsHHomSGGGGkhCS22WtCVjipd/te7S1GSYi8mjycXAYptlTGXk0eTiaKQsxcXO3l
t3IyIJk7ikbcmZFtyVGaiGdLYLIjvKjJcWUOKS44SF2IsPLg55DTK1xFX6TwpU8DRL8lpkDiKu0n
1ngaKDTd1bt3J2O3pM3N1Vuxp8RmK++10Vn/AFxnqo4JSD013HL08vYGWukfbO8zHH4poOe6B2vn
8Uxfl/my2t94xlp1SGpjUlqUgcloTHW4AfctCVfRUDbnFt0AONexQ7IkXAA417E/f5jz2M7cZvem
FWXt1StxOQs5lkoQ5JYhsoKWxe33aRpbHL7V6nEuEJe3xl2J40UwlwiLm+InEpp7svKOL2Pm8pGR
F3Rmse67mUJQlpaygt9JxxCbWWsLVfh7PCom4w6mscR3yMVGvoqta4+IjFV8g6khXnVEcFUFZWoX
EWoQi1CEWoQi1CE67fifM5Nu4+7ZBdWfcLJ/5RFXf29bGa9Zyb3j6vxTsIq5T9qOhCLBRtz416uX
VUwNolq2nI6iy62ptbfBSFixB9tIBBxCcpTArXeurlUndIB94pQSHJKtQ8KWEgptyUj5eG6sfERo
T71cKejbVwUa5k0RkqEuK8KsmhZmQrSa6kBO2PcWqOrWSQlVk38rVHkAqrK2cSzFePK52FyOP1V0
BckK1/MtLA9Vj5Gu6CEjzmuC0PEWpbUxKVa16+Wl9OIvQhF6EIvQhF6EKV9vUhe6Il/socI/uGrr
YBW8b6+xVm8Gls71dqhv5hsJjMVl486PHWvMZ9bkt+cs3CGorTLAYQPK5K/prdXIwWUtjiud4vU+
dsTou4FBw89STdJ+gioJyU8YLo7DyUTo0eQlQ+/bSpYHgq3H9NQ3hWbHVC3ZZtLDjFrIQdRcdPgA
P10hpxXXKVwVtqixww4HFFvxF0i3K5rpQl0V5LjRDjfTeAspPtrrXLpCqruvITHVhmb2U486sj91
ISD+uutCauHZKNRpMptp6E+D0nAXGSf2Tyt7KcaorlWOYU7EzwkuLCm1PokNgnikcdSbeA1A2qW9
uqNw5tUEHS8dauHbWdYnR0JQRcC1Ya7tyxy1ltMHBSgG4qvUtOeAWUZvGqBsRJat/fFS7A0uGfxD
tUe7FYX/AMJVw9wkg7WlqP2VNn61gf01ut/H+zd6u1ZPZz/uW+vsVGXrzpbRF6EJZjcnMxMxudBc
LUhs8D4KHilQ8Umn7a5fA8PYaOCangZKwtcKgp13ltGD3Exrm6tsspZ3RGSPxXGI5yAB8SR4rsPS
ftcudaxwj3CLzYxSUeJvp7l5pv2xuidVv/u/FUMpCkqKVApUkkKSRYgjmCKpDgseV5poqhGmiqEa
aKoRpoqhGmiqEaaKoRpoqhY5GdlpGH/ABKc/B/mPnDC4dPr6dGvzvp4VLhuHNbpr3c1JimIbprgk
caCltoC1ljkfEGmnyklNukNU55beO/cjAVh5m4J0jFrSG1x1uqIWgC2laviWPMKJvVgL97m0LjRT
BePc2hJSfFbr35gcYcVh8/OhY/1FEdp0hKNfxaCblHn6SOPHnSmX7migOCUy8c0UBwSHEZfduFjZ
GLjctKjxstq/EmgsqS+VgpUV6r3UoKIJ5mj65wqAc0fVkVAOactswsUuWyxn5TsLGc332GuuuyRf
SE6k/Fyv4c7GoQLHSDUaN9qigsc8ajQLPuruf/P29XMjES4jExWW4ONbdvqDDVzqVxPFa1KVVpc3
gkJcMuCsJ7kPNRlwWM3eO/pOLOFk7hnyMYtHSWw48o6m/wBlSvjUnwsTUf697m0LjRMfWOcKEmi0
YTc++dtQlQcFnJkGEtRc+WaX92FK5lKVXCSfHTRHfuYKA0C6y8c3AFJ3tx70myMrIlZV9x7Nsoi5
VatN5DLadKUL4cgPKlOvTjjnmum7OOOa146J0G7EcbVWzSaioMr6lKc3NzOdybWSyUx2RMjoQ0xI
UbLQho3QElNrab8KkfVudiTinvqHHEnFbM7urfmcgjEZXPzpmMOnXGddJSvRy6hHFzz9ZPHjzqT/
AMg9zaOJUj61zhQlZwd3b/xOIGGx24Z8bGpQW247bqgEIULFLaviQPLSRbwobuDwKBxoht64YA4J
JtzO7y2ozIb2/mZWPZkrDr7TK/QpYFtRSq41W4X50Nv3N8Joht45uRWx3de+5WTcyz+alLyLsJWL
dlKUNaoalai0Tb4SrjXTfOrWuNKLpuzWtcUj62ZVg0bdVLcOFbkfOogkjpiRpKOp530kimTdmmmu
CZNyaUrglzu4d5qzKNxN5qW3m22kx0zml6HCynk2rTYKRw+Ei1Lbfu1aq4pYvHVrXFIM3kt07pls
yNx5STk3I40MmQsqSgHidKRZKb+Nhxrst6XjE1XZLouzKesRmtwbaSt7b+Rfx8hxGhxTCrakjiAo
G4NvC4qHDdOjfVpoosU7mOq00SKfu7uDknYq5+fmyVQZiclCLy9fSlIuErRcenSCbAcPZVgdwccy
ppvHHMrXDym5Y0vK5FvIvInZtt1nKvgjU+3IOpxK+H2j5Uwb11SQc80ybo1JBzSrD7t37tyCMbhc
9NiY5ClKbiocuhBUbnQFX0gnjYcL04zcHtFAaJxl44CgKa9eTyeUkZbKvLkzpSy5IkOfEtZ5k2qP
cT68eKYnm1KTP7/7hQ4jWPxu4JkeCy0mOyy0sJ0NpTpSlJA1JsORBvTsF/I1unUaBOQ3jw2mpRzC
5HdOBmO5TCZWVj574IkPMuKBd1Ek9QG4XxN/Vfjx511l6WGoK626LDgVqykrcO5MmMluHIP5KYAE
JekLKylCeSUjkkexIrk14X4k1XJbnVmU7LnZZnCysFGlON4ucULmRE20OKaUFIKv4SAaixXDmgtr
3So8c5bUVwKMNuDeG14rjG3MzKxzLygtxllf3ZUBbVpVdIPtAqTDfPYaA4J+K7czIp42DncfjMlm
8ruuflWNwZFjTj90xHXnpEZ4BWovNdVAkIc9PBYV8I5cxMt71mo6ianipUN02p1E1PFLO4HdE5PH
7bwuAymQymRwUk5F7c05tMd12V9jpNAr0Jbvbifr5mRPdAtaASdONU9LcAgUNacVFsTunfGKmTsp
jc5MizcosvZBxtfB5xR1Fa0H0FV/G1xVf9c5riQc1D+rc01BSePmt4N7hXulOZmfj6wpKsgp1SnS
hQsUXVcaLcAnkPAcKDfuB1VxXDeOrWuKWQd27+xUqdNxufmxpGRdVJnFDnpdeVzcUggo1m3xWvXW
bg5pJBzXW3jgag5pBHyu7G5uTyQy0kz8wwuJk5K1lbj7DtgpC1KudJAA9nhXDfEEmua4bs1JrmlG
Aye5trdV3buTk4115IS98ushKwOWpJuk28CRwpqO9cw900TbLpzDgUjfn7qn5tG4pmWmO5xpQU1k
VPL66NN7BCgboAubBPCnHXxJ1VxTjrs1rXFOub3n3AzsB3EZjOSp2OkaOvHdKdCumsLTewHJSQaU
6/c8ULsF03jnChK1YR/IYZbM7HSHIk+OdbEho6VpVa3A+0GxqvMxbIHNNCFC80tfqBxW5vdu+4mZ
nZyHnZjOTyAQJr6F26waSEI1ptoUUpFgbcKnNv3g11YlTG3jga1xTTkJOc3Bkjks5MfnzVWCpEhZ
WrSOSRfkkX4AcBTUtzqxJqU3JPqxJqU5tt6EBPlVc41Kgk4rPTXKriNNFUI00VQjTRVCNNFUKXbV
iARnpB4Kdc0JP7qB/SVH6q3/ANm29GSSnidI7VLgb3aqXR470h9qOwB1nFBLdyEi/hcqsK2TnAAk
qU0EnBSCRLnISpWTbea6xbQ860ElhTVwlRWE+Pxm3mqq/wAnLRjT2qaZc9eHYkUswHY8qWkx1Lsl
tro/cK6l02KWvTdJ1LuSnkkcvFUb5A4NNfX8/TNJe2MtJFPV8kxpiuSWVyG9RIeQwEBCiDrvx1C/
K3HhVgZA1waeRPsUIMLhq6aLVMxk+IXesyShkpDjrZC0DqJCkElPLUCLXrsczH5FJkjc3MKKbgWv
5dqwJbCyVkeBtwvU62zKqNxcdA5KONNF4kk2SOZqY51FTxx6yslxf2FfQa4HpboKZFTXaO0ns1kW
MW6VtR+kt+S+1YkJSL8L+JUQKrb28ETC8Z8Fe2G3mRwY7AUqaKQvbHn7dmOTMY81OBbW10ZOplel
RBNlt352ty5XqtG7MlbpeC3pGPuVkdlfE7VG4O6HYe8KP5VWKAWrJ7fWy+Eum7Ppa1EEtoSpk3AF
gn1A+NTrefV4JB6/xVfc2wYP6kJ45Ze1vxVeKXpJN9KRxt4AVcOcGtJOQWdazU6iuG9fLK+nkXoQ
i9CEXoQi9CFKNgupb3TB1mwX1EX9pQbfpq32JwF4yvT2Kt3ZtbZ3q7Uo73YyduTGMTY3RTCw0pxp
oaVKfceKSl4FRslDY0gAWJUeNwOe03G5EIaSO6TQ9FeKy9jCZS4DMCoXOwwfzKlqi9NakXuQdSbn
nxHlUdwOYyUtrhkpPsvJPY+UcLP9Kh95GUDdKk/aA9o52qO/FTIXUwUzzLstLyfl0IksqSFAEkWv
5ADjTTVJFCcUuxWQzD1mGUstA8wltR4jhf1EAUrBPljAKqVtNOxwlb7nVUU+pVtPHx4VymKjlypT
eCZ2792qLCS1icYkw2XSCVOLBu4pA8bq4fRS2uUWWpKWTEoYwQVKQkPRCsN6jdaUpUElKjyVx4G3
I075RGKYMgKpHdM1mRMdDFtKnlqQb3OkqNhUw4MUM4uT/sic9GdQFE6SRWf3GMOCtrJ5BV3RXQ6y
lY8RWWeKFaBpqE/bZYVJ3BjWkfF8whYv+4dX9FS9tjL7lgH6h7lHvn6YHnoVs9x5CWdsutk2L7rb
aR52Or+itp9wyBtoRzIWX2VlbgHkCqOvXny2SL0IRehCcMRl5mEnNz4K9LrfBST8K0HmlQ8QakWl
1JbyB7DiPf0FM3FuyZhY4YJT3H2lE3Pjjv7azI6wBOegNj1hSQCp0JHinmv9oerzrUXUbLuL6iHP
8w9PQ5ryvfdofC8kD8Rz+apTTVJVZeq900VRVGmiqKo00VRVGmiqKo00VRVGmiqKrzSKKrtUaaKr
lUaAeYoqu1RoHlRVFUaB5V2qKrwtggiiqKpOiE2heu3GlmUkUSzIaJToHlSKpFUaB5VyqKrzpp8h
XaoqvdIrlUVWbTDj7iGWW1OPOKCG20AqUpRNgABxJNdFSaBAqcArP2v2S3BnI0qTmC5g+mlBhtvM
pdW+VBWoFPVbU1psn4xxv7KuLXZpZAS/ucsM/fgrS32uR4Jd3eXT78FAs5tnO7bfTHzuOegrXcNq
cALa9PPQ4kqQq37qqrp7aWE0eKKDLBJEe8KJq0DypiqZqtkeI5JfajR2y5IfWlpptIuVLWdKQPaS
a62rjQZldFSaBPG4tn5/aaoydwQhCVMCzGHVZd1BvTq/lLXa2oc6kXFpLBTWKV6vgnpreSKmsUqm
PQPKo1UxVSPBbC3XuVkycLiXZEYXtIUUMtEpNiEreUhKiL+BqVBZTzCrGkj2dqkQ2ssoq1tQsc/s
fdO2G0vZzFOxY6iAJAKHWgTyBcaUtCSfImieymhFXtoPTkia1lixc2ijuhPkKi1UeqfcDs7ce51K
GCxjsxKDpW6NLbSVWvYuOFKAbeGqpEFrLN4Gk+nNPQ28kvgFUszXbreO34pm5bDOtQ0i7j7am30I
HmssqXoHtVanJrC4iFXNNPb2JyWzmjFXNw9vYosEJ8AKh1UWq9KAeYoqiqNA8q5VFUaB5V2qKo01
yq5VGgeVFV2qwcYS4kpI4GlB1F0OokacUyleuwvTpnNE4ZjRLktJSLAcKZLk1Ve6B5UVRVGgeVFU
VRoHlRVFUaB5VyqKo0DyrtUVR00+VFUVRpFcqiqNA8q7VFUaB5UVRVe6a5VcqjTRVFUaaKoqjTRV
FUaaKoqvNNCFP8W2GIEZtPINpP0q9R/5RNexbJbCCzjb+7X24qxYKABOAe8DxvVpROalm7kHFo+X
W+pTfA6Fm/H3muCMZ0XTIcqpM46lKSb8bcPOlgJslbYuSzePjtrjreTB1lxtJSVMFYukmxBTfiaa
kgiecfF70tk8jBh4fcsW9wOMpFmUl1UlEl91SlKKwg3CfUSoAcPteApLrSpzwDSMvQe5Au6DLGtU
jZ+Vy2aAkaY8KQ8VOIK0I0tX+EKWUp1W8zTxLo4q5uA96ZAbLLTJpPuSqZsuEhUZTYCIs9xYjyGy
pwcFKCBZCdSrpAN9PjTUW4OINc2gemPzSpdrjFKCgcT6YfJNEvaD2NWl+SsridZxhpxBSUOLZVZW
lQNym/japcd62QUbnSvtUR+2GM1dlXsVs9pYsZQyb7lvmnglln2IR6lAe8n9FUe7SYtb61f7Wzul
3PBSjK4hqczNhjU3M6fUZWngSBe4FVIKtVVuVh+kkBQtw9Qsrhw406CkKo+4bzUTHhDbaUy3QU6w
AFWWQi3D3k/RUuS6fDZyuqaGjR1nP3Klv4o3TR4DUKuJ6Bl71ZV68PXsqL0IRehCL0IRehCW4qYI
GSiTVX0sOpcVbnYHj+in7WXypWv5FNXEfmRubzCde9eXnzJLOw8O8piPnEt5CbIYbW44gKCk9O7a
VaQtLSl/tKPD4dVel3NHR1pqp3gOkZLCwVa+lacCqXmMR8S9Di4mQqOGCAlsXLircbFKhdRV43qh
szcl5fLhVXFyIQ0Njxol2S05RKXIzLiZkBvrvSGQCWxqvqWRy4kcL1KkpXBIjrxUywqci/Fadltj
qWFyOSh528KYIUwYKX491YAtHWVcrabD66TjyS6hKstIMPHvzZJCENIKtP8AR7SaXSgSK4qIKxkn
HlmZAX05i2h88tJ6iA6TqIUk/CRfw50+GOZRQTI15Kpvf+4pfVUkyEcbtobaRYKSDc8STYX4kCpT
XYVKivFMAqrLiludRZuom5NIcaoGCn223mnA2lPxgiqa7aQrO2IKunGXERF/KsvN4lfxeFWR2xxp
l5tc9ST0oLZIV4dRz0gfVer37bttc5fwYPeVU75Pph08XFPHdfIAJgYxJBJKpDnHiLelN/fc1N+6
J8GR+tRNghxc/wBSqy9ZBaVF6EIvQhF6EJ+2vuN/buRTIF3IT1m5kfwW35gHhqTzH1eNWO2bg60l
1flPiHR8woV/ZNuY9J8XAqN9ztkMYKW1n8EnqbXy33jCkcUsOr9Rb9iTzR9I8Kt9ytGspLHjE/Lo
Xj+62DreQ4UHYfTJV1pqqqqlGmiqEaaKoRpoqhGmiqEaaKoRpoqhGmiqEaaKoRpoqhGmiqEaaKoR
poqhGmiqEaaKoRpoqhGmiqFeXYTbsV5eR3LIbDj8ZYhwlKFwhSk63VD97SUi/lfzrSbBbg6pDmMB
8VebNCDV54YBT3bXcyDuvOb1xWLjkx9n9Fky1K/xD6/mA4AkckIUxpBvx51oGS6iQOCumSaiehJM
RlsP3v7ZGY3H+XXPacaLDhC1RJ7NwCF2F9KrKCgOKDx5kU3JG24iIPHtSJGNnjIPFcnYqQqelKEJ
KnlEIDaRdRUTawA8b1h5oix1FkpYy00XSPantY/inmtzbka6c9I1Y/HrHFq4/muj9v8AZT9nmePL
Q7VtZYfMkHe4Dl0npV3t23lh1vz4BRH80U5cXJbOaQeDyJ9/7Ko/9dSN3iDgDyqntzjDgD1qCbGw
X+aNxYrDruGZToMgp5hlsFxyx8DoSQPbWatbfzp2s4E+7iqG3h82UMV8d3e6sHtFhMfAxMJmRmZi
C3i4KrpjsssgJLjgQQopBISlII1cePCtpNKIWhrQtVJIImgNC3dru5GN7w7cyETLY5uNkY6Qxlsa
SVsuNPA6HG9XHSqx4c0kc+RJFK2dpB9YRHI2VpB9a56lbekw99y9jJUVSW8gmFGWrmW31JLK1D2t
rSo1krmxLZvLHE0HrWbntC2XQOJouj99bwwXZTY0dcaKHlpKYWKgA6S8+QVKW4oAmwsVrVbieHjW
s7ttGGtGWS0ndgjAaExdmu9Ke5/zmEzuPZg51lkvBtnUY0qOSEr0pcKlJUkqGpJUbg387EFwJO6c
1yGcPwOapnuPg2to77yGEYTogPpROx6fJh+/pHsQ4laB7BWX3SzEUh05FZ/cLURvNMlH9NVFVWo0
0VQjTRVCNNFUI00VQjTRVCNNFUI00VQjTRVCNNFUI00VQjTRVCNNFUI00VQjTRVCNNFUI00VQjTR
VCNNFUI00VQjTRVCNNFUIKeBoqiqya3bkcQQ1LjmbDHJaDZ1I+ngr9HvrcbR9zujYGS94Djx/FT4
nhwxKmGC7h7ccAjqdZKS6l5UWYSwVKA0hJ1elaeRtfmK1Lb+3uTVkml1OOCnRu0ihGoJfDViZiFG
RJLD70hsNPC6mUR//mKNr6j5CrV7pG0LRqbTHpPBRmCN1Q46XVw6BxSpzbstaUKx7zU/WhpRSwbk
LeWUBHkVC1zx5Uht4ytHAtPyS3Wb6VaQ4JK3l58GO9BKAUhBbChfU2FKIuCk6SCQrnT/AJbHkOTA
lewFq0w/wR2KluW6tmUkuOOOAHilKfQhJ4j1e6/6KRKZg7uirUqIQlneNHLyPt6RPSRFksOOhXTs
SUoUpKOo4EL5K0D6/DhXXXjWHvAgZ+pcbaOeO6QTWixC1N8EKItdPpPDiLG1vMUsta4ZZoDi3I5L
bOys+bHhwHF9VuPZqIylIvc2QAAOZ5D20mOBjHOeOOaJJ3OaG8slMdv7ofwrMaNlicf8ihYQ860Q
2SlQ0pC0haFLIv8ATVPd2jpHl7O8D7fYra1umsYGv7pHs9qnLM1rIZZrI43Kx5DTsdLy2UyEuHqE
WIbbBNk34EVXOjc2ocDh0KwbKx2RBr0qPZ2CVPuOqBC1E3SLhNz+7yFAKUVzBv2Z+Kbq/D2uLMRd
iPC6fSD9eqom/wA/lwsi6NR63Zewdqz8smqSST+Ufy5+0q4b15OvakXoQi9CEXoQmLdG7MTtKCib
lFLPVV047DKdTjigLkAEgcBzJNTrGwlun6WcMyeCi3d4y3bV3FVxK7434QMIq37Uh4D9CUn9daCP
7YH5pPYPxVO/fj+VntK2N7/yO6w67NfajrbShyS4pC1upDI0pShSypI1elP3duAFwavtJiYGDEDB
VFQ95dlVWXtjaokRk5t5I0yQHGHFcVLbULgjULgG9RS0nFSg4BWTtjZ7QxGacWyloTGXGGmRbgCk
kk2A4k2pyOI6TVIfKNQomvbabREMOi62xp4+Q5VDarNylSEttI1WAApyib1KJZSQvcO5cVt9r1Q0
vokzQORQ0oKsfeqwojbqeAuTO0MJU9lbZxvUcW1GDa3CSstkpvfnextVoWhUoK4d7i4l7be8Mxg3
mx0YslZiXGk9F09Vux8ilVAjDhiguINQogh5lfpKumv9lfD9PKmXQOGWKW2UHPBT7Y8F1+ShQ4oB
B4GqPcn6G4q2sW6jgr1itlLbbSRdRsABzJNZJ1XFaMYBdBbLwidv4JBkWRJfHzEon7PC4BP7or0P
aLP6W3GrxHErF7ldfUTYZDAKnd15k5vOSpo/lBXSY/6NHAfXWJ3O7+onc/hkOoLVWFv5MIbx4pjv
VepiL0IRehCL0IRehCmu0Z0HLQpWyM/68XkwUxFE8Wn73TpJ5XUApP73vrRbLdtcDbS+B/h6D6e/
rWc3/bGzxl4HX1c/Uqc3DgJu2sxLwuQA+YirsHE30uIIuhab+Ckm/wCio1zbugkLHcF5HcQuieWn
gmrTUdMo00IRpoQjTQhLcfiMplnFtYuDJnutp1uIitLeUlN7XIQCQL05HE+Q0a0u6hVOMje/wgnq
SRbS21qbcSUOIJStChZSVA2IIPIikEEYFIOCcJG385EhpyMrFTWMesJUmY7HdQyQ58JDikhPqvw4
8addbytbqLXBvOhonHQyBuotNOdElhwZmRkIiY+M7LluX6ceOhTritIKjZKASbAE0hjHPNGgk9CQ
1rnGgFSlje29wuvyYzWHnOSYWkzGURnVLZ1gqT1EhN0agLjVzpwW0pJAY6ozwOHWnBBISRpNRngc
E12FMJlGmhCNNCEaaEI00IRpoQjTQhX52Cy8X5PLYFSwmYl5M5ts81trQltRH8BSm/vFar7flGhz
ONarQ7LINLm8a1T5sztk7sjNdwJ0V9MnG7pU1KgtC/VacHzKnGlA8CAp4aDfiOfKrpkJYXHgfxVs
yMtLulcX/wCUZ0Z5yDlYL+Pmo4qjy2lsugHkSlYCvCs1cTuiNCqGaZ0ZxU42GpnamcxeVlpcciwJ
Lch1DQBWUoVchIUUi/vNQmXbRM15yBqojbkea1x4FWijvbnd5dzNtbfw7K8Vtk5BHzKSbyJKQCQH
VJ4JR+4n6Sa0kV/5zxTBtVex3nmvFMAkn5qxfL7IP7mQ/wBKNXd08AStw8ISn8v8VLu6Xn1C/wAv
jXVo9ilONI/0Sap9jbW5J5NPaFV7S2s5PJvyUD/MU4rKd3TEcOpuBj4rCE+ACgp8/pdqy3OTSSp1
++hKmn5fkpx+8HmG+CJeOdQtPgVIcbWk/QAr66r9lnJnIPEKHtUxMxHMJ7y2PQfzQYkEeiTjkT1+
1TMZ9CT9bSauJYwbpp9MirOSMG4aVE/zWvrl7m2piSolpmI/J0eF33UoJ/7mubi/TTqXL51E29mG
UYvfWBda9PVU7HcA+0l1habH+1Y/RVFt1wfqm9PyVPYzn6gdKkH5m2hH3XtScBZUmHIjqPmGHUqA
/wC9NW+8Mq0FWe5tqAq4a9TaT5ise7NZg5re0w6+4lphtTrqr6W2wVKNhc2A48q4ASaBABJoE7ub
Q3Wy2p17AZNtpAuta4j6UgeZJRYVINnOBUsd/wBJTxtpRmx3sKZSgglJFiDYg8wRUdMpbJw2WhRW
J0zHyo0KSEmNKeZcbacC06k6FqASq6eIseVOOhe1ocWkA5GiW6J7QCQQD0LLH4PM5ZK1YrGy56Wz
ZxURhx4JJ8DoSbURwSSeFpd1AlDInv8AC0nqCSyocqDIciTWHIspo2dYfQptxJIvZSVAEcDSHsc0
0cKFJc0tNCKFadNJSUaaEJbAxGUyiijGQJM5aeKkxWlvEe8IBpyOJ8nhaXdQqnGRvf4QT1LLIYTM
YkJOUx0uAF8EGUy4zq58tYF+Vdkgkj8TS3rBCHxPZ4gR1hINNNJtGmhCNNCEaaEI00ISqDjMhlH/
AJbGQ35skJKyzGbW8vSOZ0oBNhelxxueaNBcejFLYxzzRoJPQtUiM/EfcjSmlsSWVFDrLqShaFDg
QpKrEEe2uOaWmhFCuOBaaHNatNJSUaaEI00IRpoQjTQhYrZQ4LKFxXQ4hdDqJslYKJIvdAuaksun
NT7LhzUgRh8jjVa8XMdj/uIUdB96TdJ+qrW13uaE91xCkC7BwcKpSndG64F7pStYsUvslTLoI8QU
ki/0VpbX7tdlK1rx7PT2JR0uHccWHoW0b4dkRn4mQSWVP9LW8tFlksFWglbfxW1kesfqrSWW/wBg
9wNTGRXA4jFQp4LgtIGl9aY5HCtO1KI2ZdWnUxITIR7wsfWONaSJ8Mwqxwd1FVRkniwdX1pzi5Mv
ak8W3AD8JNiDwNEkI44qTDeF3QU4ozK0AJdQFgfaBsabMNclIF3TNSjY0NO591YyGyVoabX80+rk
pLbHqJBF+OrSB7ahXzvJhcT1e1T7EieVoHX7ElzmxY22tx5XEba3VMx8yEWXAxJBcS98w2Xlk9C1
ksoGp1bjemxHG/CmYrsyRtc9gINcujr58E/JZiOQtY8tI5+nDiov+G7gW/1XIDOcSltMlb+AcbTJ
S0oAhxTLaNaLgg+thNTRcNApq08O/l1V/FV77NxNS3Vxqw4+z8E4wt1ZNtL8fGZ+T1I7TjrmMzLC
kuoQ2CTZR6qL25epPGm5LaF5BfGMeLT+xKZPcwg+XKcAcHj9vwVZYu+RzMyer1a3T6j424X+m168
r+47sS3D3DKtB1DAJ+QGOJrTnTHrOJ96vG9YVe6ovQhF6EIvQhUb3myDUvMY/FoOpUFlTrvsU+RY
f3UA/TW1+2oC2Fzz+Y9iy++Sh0jW/pHaq3KEpHsFaNUqtjsr28n7vyDmXmBTO04Swl8kcZj6eIYR
+6nm4fLhzNMyAHBOMJC6bzuX25tCB81mJsbGx2kXT1SlCiEjgltv41cuCUimhGnC+qlG0stBy23Y
GYxjqZOLnM/MNOpI+FXMKA5LB4KHgeFLGCScSoQiI/j5z4UQEtqUlPh6b8P0VVFpaSFfNIc0FYyM
lIkuohREKdkvHQ20jipSj4Cugk4BcLQ3E5JXFwGW2nHm7hWltzMkJX0nBrbQ2i50cDclRPE+HhUu
OIsFTmq6ecSmg8Ky2R3s2fvJ9eMkPJw2ebcUyYMxSQh5SSU3YdNkrvb4TZXsNTBkoBwKqb81G2FR
5mF3fGYOiUg4yaeX3jV3GVH+JBUn6KG4FByXNOkO8TanElZobcaUFsrW0scQpCikj6RQaHArgVt9
jd559juTt3EZJ9WVxU+UIymJai4ptS0qCHELNz6FWNjwqH/xtsZA/QA4clIN9OGFmo6Suwe5G6kQ
IisHDXeZKT/rCkn+W0fD3q/VVXv+5CNnkt8Ts+gfip+zWJe7zHeFuXSVTV6xC1aL0IRehCL0IReh
CL0IXqVqSoKSSlSTdKhwII8RQCQgiql+8YQ35sxnccZIVuDb6S3kUJHqcj2upVh5fzB4D11rZHfX
2gkH92PB3V6Y+1eY/c+1eW7U0ZYjq4j1Kk7VQVWHRpoqhGmiqEaaKoU87SZf8J3vAQtRSxkkrgue
RLg1N/8AeJSKttlm0XIH6sPT1qx2qXROOnBNu6cHIc7xztroRoRk8g08ypPLpTdLqlD2I1Kv7qk3
1jW50j8zu1SLu0rPQfmPar/3KvHbnxu6e38AAZLHYxhxtrhYOOpW5HAHHglTSL++tHOxsrHRcgPw
V3KxsjXR9H7FT/5d2BPzGRzckaG8XE0KUrgEOPqtc35WQhdUez22mdzj+UdvoVU7ZBSZzj+UdqaN
pS9+dwM3vTN7Qy7OLjddL81EhbjZcZcL3QSAhpy+htCk8bUqOKaV73xu01xPvolMjlkc9zHUrn76
Jq2JsXO73YyD2LdjJ/Dun1G5C1oUsuhZSEaUKT9g/ERVXBtz7gHRTu81Xw2L566KYc1Lkdld1rSt
KZeM+cbQHHIHzCy+kHlcBspF/wCK1PDYp+ba8q49idG0Tc215V/BV3NhSsbNfx05pUebFWWn2V2u
lQ91wfeKqZI3RuLXChCrXxuYSHChC0aabqkKeYvtRufI45vKyHIWJhPJStleSeLJWlfwmyULKb+G
q1WsOzzyM1nS0H9RVjFtkr26jRo6Ske6O3O4tpw0ZKcI8rGKKUmZDcLjaSv4dQUlCrK8Dpt7aRdb
XNA3U6hbzCRcbfLCNRoW8woeBflVaoKESMhAfayGKlOw8hGOtiSwopWk+8cweRB4EcDT9vOYnhwN
CnoJTG6oXQXZvuLufdkHcCN0tx3XcE3HWxKjtlpx9LwfKuokHp6h0hbQlI48q2u33pnaa/lWqsro
zNNeCkMeTs7vZssT8eerGe1tx3nUBEqFLSBdKhc6Vp9OoBRSpPmDT88Md1HQ/sTssTLhlD+xcqIU
sPSIT4CZMV1cd9I8FtqKFD6xWEnhMTiCshNEY3UKlHbmCyjfmAeCRrExBB+g1L22Um4YOlSbCQmZ
o6VI/wA1P+1tk/w5D/SjVpd18I9avtw8ITj+XxQTuCe34qxqlD3JeaH9NVOwn+u7+H4hVuzn+s7+
H4qvO9zah3nyalCwXGhqQfMdBA/WDUreMypG55lTbsm0Vb2ZUOTcN9R9xAT/AE1W7Fjc+oqDtH9/
1FSTLvoH5odvt39RwC2j/FolufqrTPP+4b1fNXzv746vmoJ+ZptX+f8AbiyPQrFlIPtTIcJ/WKh7
tl6lF3LL1JN2yaK96beSnmJIV9CUqUf1VnNtxumdapLHG4b1p7/NOtJzWymwfWlucoj2KVHA/Ua0
+6+EetX24+EKuIqSplsAXJAAArFP8Syrs1eu4snB7GbIhKhRmXt3Zi7apLqdXrSkKdNxYlDWpKUp
5XIJ8a17YhYwgNH9V2Z7fYtK2MWkQDR/Udx9OSp/F97u5jOQTkjkjNa1XdhyG2+gtPinShKdHvRY
1CG4SsdUuqoovZGOqXVUm7tbw2Ln04TLYF5Kdxy0JXlYbTagEocRqAec0pQp1tY0cONufC1d3RsM
zQ9nj4/j0ru4NilAe3xcVhuXA75/y3tV3K5mM/gsquI1iYynXP8AV+uzdouXaSEpQ2bK0qV9NRpb
afyma3AsdTSOWGHBMSW83ls1Oq00p0YK4Bg8/gu10XDbezWLxuZSr7zMLfKIh1vKWspdLSiVEWSP
RV7DbPjtQxjgHc+Gat44HMtwxpAPP1pi7W7ZmSMNuLcGcnY7JZ7KIeZayKHS6tgaXGV9VSkJ6YUR
e6RxT9VN2lng9ziC93H3JFtbYOcaFzuKo/KQHcJmJOFky4k1+MEFUiA4Xo6uohLg0rKUk2CrHhzr
K3dqYHaSQepZ65tzE6hxT5srbo3RuWBh1kpjOrLkpaeYZaSVrsfAqA0g+ZosLbz5ms4cepcs4POl
DeClndjuvL2Zkv8AImxUtYxjHtIRLeYQkr6jiArQgqBAskjUr4irx4cdLd3BiPlRdxrfT04q+uZj
GfLj7rQk3bjvFJlrlbf7nSG5WAlsLKJ0tsEoUOPTc0J9aVi9iRqCrfQi0vw6scp1NPNItrwOqyQ1
aeagsWNH3HuuXhdlB3JQnJLgxalJU2pTAJIKurpKQlPNS7e21Uk9lql0xY1OCqpbWsmmPGuSsFPZ
XcynEx1ZHEImqR1PklSHOsBa/wAIaP67VIGxT5amV5VNexPDaJcqtryr+Ch8ramYgbjjbWntJi5S
U8ywz1FXaPzCwhC9SNV0EnmBf2X4VXvspWSiJwo4kDoxUN1rI2QRkUcT2qZr7H7sQstqmYsLNwyk
vugukJKiEAs3uAPG31VYnYLjmz2n5Kb/AMPNzb7T8lFdt7Hz+6psmHimUKTDc6UuW4sJjtquRbWL
6uX2QTaoNtt807i1oyzPBRILKWVxDRlx4K2e2vbrN7W3IcrKkwZkFUZ6Mp2C8pzQ7qR6VBaEH7J5
VfbXtktvNrcWltCMCrjb7CSGXUSCKcFRW9cgp3uNuiN4N5KQn6lmqvc4aSuPSVX38VJHHpSbTVPV
ViNNFUI00VQjTRVCNNFUI00VQjTRVCNNFUVWKmUK+JINdDiF3UUkfxUV8EKQKdbO5qcbM4Jnf2u2
FFyMpTTngpBKT9YqdBuckZqCQU+26NKHEJMGM/j162nQ+lP2Xk34e8WNaa0+8LpgoXah+9j780ny
rd5rp0noW07gdR6ZsRxk/tt+tP8AQa1Fn94W7/7jS3qxUeXbi7wOHrVl9td+YDAyJr34gqPNkttM
x3kt6wlCVFSwtJ9Y1HTySeVN7++Xc4GtsZmNkDq940J6MQrnY5YbKQm4Y4tIpUYgdOCslJ2/uhWT
yHQRNey/QTmZkBwh55iMQQw4lerptL0p1pCU6rcaxj9/3ra6MvIKtbWhAoMeILatJ5LWssNuvqug
lFXUrj7qHEJrewmc6WZOPykAqy93pbXRXj3nChtKCyy6gupY+a0pLykrCfSAAL3q6svvbbJy0P1R
FuHfxGfPjp4VUG4+37yPVp0vB5YH8K8Vj3fkYva/anE49KGXc/NjtRXJuoPP/doSt8dW6lFKnSlJ
Gq1W0d817ZZ2OBYAaUOFXYN+arL6IxsjicO+aVrnRuJ+SonbEIMREqtxIrzO+k1OVHdvq5W1eqJe
9ovQhF6EKXbZ2PkM6BMlXh4hIKlyVCxUkc9AP6+VXW27NJcnUe7Hz59Sq77dI4MB3n8vmuK8/kPx
jP5XKC/TlSXVspUblLWohtN/3UACt1DC2JgY3wtWTkkdI4udmU1rOoW8PGnElSOP3I3oMMxt+Jmn
4GHx6fl48OBpip0/ESoshK1qUSSpSlXJpJaEAqOSFvzHC/KeckPq5uvKU4s+9SiTXUKzeyW7ty4P
dcLAwMg4nC5Jw/M49frZKwNWtKFXCF+nipPMU1LknIhUrqbcsnW23MICFlB62ngCUmwP1VXXGYVt
aHukJRsbZ70jo7qyrimkH73FxkGxIPJ1ZHn9lP0mnbeD8x9SYurrNg9aW9xcsMXt6atCuTKySTyA
SST+ipLlEYuANZcutXErJUq/mTenwEypA5vbdD23ntrS8m9NwLq23Ew5Z64ZWyrUlTK13W2fCyTa
3hRRCjo4kDxPjXVxbUn9HOhcTtt3KyNv7iw2diudJ/HzWZCXLXtoWCbg8xbnXHlwadOdMF0UJFcl
0u7lzlJDkx5/rPvK1rWTckmvMJjI9xc/FxW8iDGtDW5Be39tMJ1F6EIvQhF6EIvQhF6EIvQhSfZG
eGDzjSn1D8PmD5aYlXw6VHgo/wAJ/RerXZ736ecE+B2B+fqVdulp58JA8QxHy9ahu/8AbB2ruaXj
202gPf61jz4dBwmyf7CgUfRepG52n08xaPCcR1LxW/tvJlI4HEKLaarlCRpoQjTQhbGH3oUhibGV
pkRXUPsq8ltqCkn6xTkUhY4OGYKXG8tcCOC6VTtmLm+4OA7ktJSIH4C4Qs24OqKSyVeH8l9zj+7W
/EYkkbKMtPp2rZhge9snDSqQ7Y76XkO+WQzJcJgbkckQU3vYN3CovDzHSQj6agW1z/uDX85/YocE
/wDWx/N6BWJubGtdq9g9w57BDbufyLox2kgWbnpQhKU25dLqPEe6pcsfkxyEfmPb6FSJGeUx5H5i
or+Whot4jernitmIfqRKqLtjq+YOr4qPt5rr9XxSv8tEx38H3fI4FbIirRfiLpRII/VRtLdOunR8
V3bm6ddOj4qsOy+VzU3ufiMlIlOOvSpLoluLUSXA82vXq87k399RbZwbcN5lRoHATN5lPXd+Upvu
5nI44IUiGr6TEaqPvMQMpPV2JndIx5hPpkmyDHelS40aMgOSH3UNMtq5KWtQSkG/mTVBG0ucAMyV
TMBLgBmrc7lo2jFOKjd1d0zX8k02Ho+LwrCWWtC1ELUoaHPSSjQFFaVGxsPLZ3ETO6J36nDgBQLU
zRtw851Xcgtm5JuBV+XjIy9qsTI+DQGxCRkTqfOnJNpUr41jSV6iLH6BTr2sdaENHd6etOPax1sQ
3w/iqGxD5kxUrVzIrF3DNLqLKzN0uV+9rNlbN3Ptx2VlseJWRjylsvL677Z06UqR6W3Ep5K8qv8A
Z7C3nhq9tXA8z8CrrbLOCaKrhVwPM/NbO0+Lk4OX3Cws1pTUmCmM2rULa0FMotuDzStNlCpW0Wzo
HStPR/5k/tsDojI09HxXn5Z9uz8LsiXOmoWy1mZplQ2Vgi7KW0oDoB/+oQbHxAB5VY7e1wZU8VOs
wdFTxXOnz7eQ3fuOXHXriycrNfZWDcFDkhakke8GszuoBcSqHcQNRKsXt6P/AO2wP/m0fqNQ9r/y
Wdai7f8A32daePzT/wC1tk/w5D/SjVqt18I9a0O4+EJP2VyCMfvGAhxWlM9h6Hc8tSkhxI+lTYHv
qg2aXTdU/UCPj8FT7XJpuKc6hbfzFbXlxd24neTLRVjZsZOOlupFw3JZUpSNR8Oo2qyf4DVzvMR0
6lZ7pGdOpSvsNg3+tkNxutlMYsiFFWocFqUoLcKf4dCRf21D+37c6nSHLIfFRtlgOpzzlkq8y264
7n5mkZRDg+Sxs1jEKdHJI6PyzxPsS44u/sqwnmDbgHpp8FNllAmB6aKb/mW2tLmxMDu2G0pxrEOO
xcjoFylmSUFtw+SULSUn+IU5usRdHUcEvcYyWVHBNnYzCP5DcSM10z8li2VkvEekvPILaUD26VKV
7Kotkt3OuNfBnaVUbTAXTauDe1RL8x+Xbyfc3HYlhQUMPj20P2+y9IWp0j/sy2att1fw5BWO4uTD
BV8uGHSL9MpXbz0m9Y7VR9Vma96qs/8AMtjXs1idqbpx95GHaLrb7qOKUpmBpbKzbkFaFAnzsK2u
495jZG5fNaq+7zA8ZKFbTyewcNhlN7l267lpqnStuQ1IcYCWihICNKFpHBQUb28az1vNBiJGF7q5
1IwVJDLDiJGFxrzopTvzavb8dtYG+MDhDjJU6QyG1LkPuqShalpKSFuKRx0+VW1zbxC2D426Sekl
WU8EfkB7BSvSVv7xvqa7QdvlNHgtEAfQceadu2VtY68h/pTlw2tuyvIdiT72Qp38tOEF/UZDJP8A
6l2nGkCzb6cSltNLVq3diI6me3W+QT8cdZH/AKV2uba8FknpwXLF1WvVDbUjOAFRPCs/fvCprxwV
29pJjEHfOO+YUEJkodjIUeA6i0HSP7RGke013ZZA26FeNQjanhtwK8aqH93MDJx3dnLuTGyI+RLc
6E4rkttxABI/hcSpP0VY7sCxx6VO3IFrj0pdtLZa955dnCMr+XaUhbkiVo6gabQn4im6b3VZI48z
VNYW77iYNBpzPJVdnC6aTSDTpU07Z7IzW3t95vGYXJxGTjGks5LJBn5gaHSlwNtpWU2WSmyr8tJ5
+N3YwTNuHNDh3czSvsVtaRStnc0Ed3MpPBm9m074iyGsrnty7nk5NjpSG7IYMxbttaSEx1dMOHj6
lcB6bjnJjZbCQGrnPJz6fcn2NgD61c5xPvTh3VlqZ767Cjj4XRjdX/7JwU5fxg3Ebulv+pLvGAzs
PSO1RD8x+Uyv/EXGwo0hbTcXGsrjhtRSUrcddKlAg8FGwF/YKb3MjXU8Akbge/U8Apfjn5mA/LdN
nYhSkZJZcVLdauFjqTUsLVcG/wDIsL+Vdg/wiW8fnTsXYf8AEJbx+fyUX/LdNzQ3fIYS4tWLlwnV
y2bnQFNqT03LftAnTf8Aepna36ZiwZUTW3upLpHJQbdaT/xS3dfxysm3/aGoe7eI9ai7l4j1pbpr
PKlRpri4jTQhGmhCNNCEpx0ZuXkIkR0kNPvttuFNgrStYCrEgi9jw4U5E0F2OXyFVM2+3E9wyM5O
cArJx8DGTJLcYQYTLRClLWWEL0NoSVrN1AqVpSDzNzSYJnyPDe6B/CMAMT7l61J9t7dGyvlVp0nE
5DilHzWCZUW4uAxpjA2HzDCXXVDzUvhY/wANqdduVD3Y2aeluPrOHuouN+1rLTiwV6PhWqhW9IOK
izo0rEo6Eacx1VxSbhp1K1IWlJ/ZNgR/7ALn0Oa17MNVcOVPT2Lz77l2xllOGsFA4enpzUZtUZZx
e6a4uLwoB5i9dqu1Wh2DHdFlIFLbK4JQkITVK21DfuQkA1JjvXtUhl04JC3isziXRIxU55hxHwFK
zw9x5j6KvLP7kuIRQOOnkcR7CnPNjeauHe5jA+0KRwO6O+cSOnlEN5dlPL5lGtdh/wDcBS79OupT
7ja73/Jt26v1R9w+zJWttu13D/alJH6X94e3NMu7d1T9/wAzHI/Dvw2FBSq7WsuFxxatSlXIFk8g
Em/vph01taWxgtgRGXajXxE0oK9S7f377h4kkI1hunDJPMKOGGEI8hWXlfqdVZ6R1Sp3eoC+hFtj
x35byI8ZpTz7h0obQLkk0pkbnuDWipKS97WipNArc2n20ZjBufuBKXpHxIhc0J/j/aPsrY7Z9vtZ
R82J/Tw9azN/vJd3YsBz+SdO7OXVt3tjurJR/u3GMY8ywUj4VvjoIIA8isVpwABQKgrUr5ooOnSD
48KSU4Fg6uzOvzFcQkcC+pwngF8fqoKAnDkK4uqa9qLjuDhFAX0uOKt7m1U3L4U5F4l19uhtleGk
LaN2wwA2rz4C/wCm9Vk+JKtrY0aFYzd0RGGwQEoaQlKBwACUgAAVZDJVJzVI/mAyLmO2rII/8U2q
OD7XCE/qNI/ME4PCVx0DwtUhMIPKhCxQrgVDwOn6KEJQOJB/aoQs3xdo+6uhcKl+190TUPssrWVJ
skcfdWa3GyZVxCurK6dQAq8YLxfjocPMishI2jqLTMNQlN6QlIvQhF6EIvQhF6EIvQhF6EKabnYO
8O3UXLo9eW2ystSvFSoxACj/AHQhd/3VVqXO+ssA/wDPFger9lPYV5n92bdpcXAfvDqOfv8Acqdt
VAsEi1FUItRVC800VQpjM7yv4Tt1I2e1j3ncquFIgRsilaQhtD2pKVaed20KsPcK1Vhug8gRkYgU
qtFZ7gPKDDmFU+zWpOOXHyLXolxXUSGVeS2lBaT9YqsurjTIC3gVX3E2l4I4Kcd6u6a+4UXFYHH4
16BEiS1TJReWlfUWEdNq2kD4Qtd7+dXU25MmZgKK2lvmyswwS/tvviL2+w+YblQHphyrTKE9FSU6
Okl0EnVzv1KrrDcGwueCK6qfH5qDZ3oic4EV1U+Kbe0/cGPsDE56NMxz0xWVDQQplSU6OmlxJvq5
36lSra/bCXAiupSLe8bESCK1TB2zyids5yFm5DCnm4TpdUyggKV6SLAnh41A+pEUzX50UPzxHK13
JbN57hRvHf8AO3HHiuRGJSWEJZdIUodFlDRuRw4lN6dv7ls1XDinLycS1cOKcYsh+E+xMjK0SYy0
PMr52W2QpJ+sVRMeWuDhmCqhri1wIzClu5e62xdyPQ5G9NiKyOWhJCESWJSm2yEnUAdOhSkaiToX
qAv41rW7jFM0Oezvda0jb6OUAub3kj3P3yxu4tj5bZ722jAamN9DGogLR0Y7bRQtgKCkpvpcRx0p
HDkKd/5Br4y0tpyS/rQ5haRRQHbyCmGkKFjasrdnvrPXJ7ynmzt9TthZJyc0wZmMlJCMhCB0qUEk
lK0E8AtFza/Agke0S9qvzbv/AHTmpO3Xhhf0HNdC7N7jbS33HyMzCqdS7jm2vxRmUwpt1ttwOKbC
iNSFj0ucEKVbj5i+0huGSirVqYpmSCoVIdzfzK4iXiJG3e3AekSZjao7uZW2qO2yysFJ6CF6Xepb
kpSU6eYueUee7AbRqZmuABQKmdp41cdnqOCxVxrI38wcaBZq8lDirF2zlY2B3BjcxLQ45GhPpedQ
yAXCkA/CFFIv7zUWymEUzXnIFR7SURytccgUj71dxMN3Ey+3RhYk6P8AhIlJkmahpAUXy0U6Om65
e3TN72rTXt4yZlW19av7q6ZKyoTfCckRUx5MVxTMqOpLzDqfiQ4ghSVD3EVlRIWSahmFnQ8tfUcF
eGJ79bJnYs47uA0YEnp6JYdjOTIUi1uIS0hxQ1fFpWiw8zW1tdyjmZR+fHktXb38crKOzTTvP8ye
zMPhF4/t6lWRyamulCWmMuNDjX4ail1LayU8wlKLHxNSH3bGtoz8E8+4a0UaucdswJL7rs6WpS33
1FxxxZJUpajckk8yTWWv7jgFnrybgumtq9+MHGxyMP3ADrDzSCyrKBlUlh9sJI+9Q2lTgWR6TZCg
efCrvb91bIwNk8Xaray3Fr2Ufmss1+YvtftrDLY2Yj8SlhKhEx8OI7CjIcPIuF1tnSm/PQlR/XU8
3MTG0YPgpZnjYKNXMkB3J7kz03ceXUXZ2QfXJfXYgalm9gPBI5AeArN7hcVHSqO9nqpsEAJCfZVB
VU1VI8D3Rz2zoS8PKx7G4dsuBQVjJh0lIWbqShZSsaFHmlSFDytV/t26GNmh3earmx3Asbodi1KW
u5PaZpwym+37nzKRdDD0gqjlQtYFtRW2E3HH7v6KlGW1DtQiqevD2Ze5SDJbg6hHj1qK9xO7G4d/
xmsEzDj4zbzTqHG4UdOtX3dw2FOKA+AH7CUj2UqfcDI2hAa3kuy3he2hoAlW/d+sbk2PtXaLOPej
ycEmKl2StSVIc+Xi9A2A4i540iS/ZLE1gHh+SS+8bJGG08K27i37Hm9q8dsJGPeTLiuNuKmFSS2d
Dq3Lafi5KpLL9roBFTELjbxpiEdMku7cdwmtjYnIwsji1ZTGZNADzSFhtYslSCOIIUlaVWPKmbHc
BC9zSKtcmrO9ETnNIqHKIu5DbsvMvO7XxTuGxC0oDcB91T6kLCbLIWsqUQo8eJqLuWhzqsFAo99p
catFAl93EaXGVqbebIW24gkKSpJuCCORBqqY8tdUKua7SahTJ/vJCyEFjFdxNqNZ8xQQxk2HOi9c
2F7BIKFKHxKbcF+HprVR7kyePTK3UtCy+ZKykjdS8e754nBYl6B2/wBsIxEmQmypslzruA8QOBBU
sp+zrWQD9musvGRNLYWBleOfp7V1t0yMUiaG9KifbXuJntl5XIZiRHOVj5Uf/kWHVlLjigorDgcI
V6wVK5g3uffUe3vxA8nPVmmYbwQv51zT/F7q9v8Ab+QkZranb5uHuF1RKZUuQpbTRN7lpv1Bu4JF
m9H9FTfrYmd5jO8pX1cbcWNxTVvDuhjN3dwNq7uiYmVFOAdZMpl1aFdVuPJEhAQUjgeKxx9lcub1
jnNfTwkdq5PdNcWupkmzuLu1nfm9Wc7FhOw2URGopaeUFKu2par3TwsdVQr+7bN3hhgot5ciXEYK
U7W7jTdlxZGNl45vN7anX+cxrpAI1pCFlBUlSSFJ+JCk2V7OdR9s3Ew1YRVh4Jnb74xVacWlOuA7
37E2j1Ebd2S9j2XypUsiQFukjilKSvV6bk8NVh4DyuIr2GN3cZSueKso7qJh7raVVTv5Ybl3hmdw
tMLjMZOY7KbZcIKkJcUVAEjhwqo3KQOJI4quv3hxJ5p/tVFVU69tRVCLUVQi1FUItRVCyxLpTnsc
nzkN/oUDUqBta9Tv9JVzsbf97F/G1WPtkvSsxGjtN9YOhbb4uEhLLjakOrKjwTpQom5pjb2F0zQB
WtQeoihPqC9nvXBsRJNKZdYOHvXjuNWHtMadCfjk/dyPmWWrp81IcWlaT7Le69cdZnV3XMI56gPc
TVDbnDFrgeWkn3gUUe3VjpOUn4rHbebXknWIr7kp1oWSem4krWNWmzadYTdXPn41ZRWwfEGx97ST
U+yvq4Lz37uiklnYaY6ThyFeKbY+19wPrQy1jn3XXOsG0tjXq+VIDunSTfQSL2qL9JKTQNJz92ax
P00hNA08fdmvIm3M1ODZiQnHEusqkoVwALKXOkV3JAsHBp99JZbSvybwr6q07UllvI7IcK/BPuB2
LMyzWeYkMyWcximWVxoARZTjjyiAFBXG1uN/pqVbbe6QSAgh7AKDrUmCyc8PBB1Nph1pY1tDbJ3A
xtV3LunKrZW0/LbCPlEZHhoYFxqUkG6Sf2rCnRZQecIS866Z8NXL04pYtIvNERd3qZ8NXJN+Y2cr
C47GsSuurdmTeV08S2kK0MJUW0lQAKitxY9IHhTM9j5TGg185x8PR8zwTc1p5bWg18xx8PR+KYUY
PLuw15BGPkrgN6i5JS0stgINlEqtb0nn5VEEEhbqDTp50UYQvLdVDTmto2pNWhkzYMtgylBMNPyr
i+sVIK0hB4AlVhYe2/KnWwSClQ4VywOKcbC8UqCK5YZpHkcFHw8n5YKUZCQOs04ythbZIBAKV+YN
xSbgFh0k49VEmYFppX4JNpqNVMKydu7Wyu5X+nCb0x0n76Uu4bR/WfZTtjt0t06jRhxPBe+3d9Hb
irjjyV47a2hi9tsJDCA9NI+9lrHrJ8dP7I9grdWG2RWrcBV3NZG8v5Lg44N5KRVZKCqb/MvOZY7R
5yIXtEmWqKhpoH1KSmU0pfAeGkcaafKxrg0nvOyTjI3OBcBgM1xvi+12UzUFiajIR4xdSlxLS0rU
QFC4uU+ymnzgGlE62OoSp7svnHE6EZWHyt6kujxJ8j50n6kcl3yitY7LbibWlTc+CpKRa13R/wAy
j6kckeSVkez+6/syIKv+sWP+ZR9Q1HlFSLY3b7ce29xMZWd8sthlp5I6DupYW42UpICkp8TSJJg5
tEuNhaalXnMzCpmOlQvl3B1mvu/gsl23H7XI1Fk7wUmJ+g9Cl0fe0YIUh1DqQlISgaASeHM2UbVI
EyjliqTvS3nd7YmDjcBCVIDUjrPlakNWSlJt8ahfiaU2UVxQ5ppQKjP+FncDwwyle55g/wDPp3zm
pryyj/hfv9PPAvH3LZP6l0ec1Ghy1Dthv5AWP8vSyCOGkIVx+hVd81vNc0FR+REl4+SqBPYcjTGC
UvsPJKFoUPAg0sGq5SixcN2ia6FwrdiHelKZV/D+qqy8bWqm2ppRdE7ffD0Bsg/ZFYW6bR5Wut3V
ane9Rk+i9CEXoQi9CEXoQi9CEXoQpt23yDKMw/hZgC8fmmFxXm1fCVaTpv70lSfpq92CcNnMbvDI
KenvHrVLvtsJYK/p7DgVWGaxT2Ey8/EP36kJ9bOo8NSUn0r9y02UPfUK6hMMrmHgV4rcRGKQtPAp
BamEyi1CEWoQtD0Rp/8AmAGlNkLcktryFk1HbZTpQLChzyVwuJWpcBhxetSQVUoSkCiUJCAtqmEL
RoI9NIDyDVJDitQgsBJSEixpfmld8wrNuK00CEAAGkukJQXkrFMJlK+oEjVXTISKILzRKLUiqQkz
0Bh83WkE042UtTjZCFqGJifsClfUOXfOclTTCGU6UCwppzyUguqs1ICxY8Qa4DRcBWUDNbk2oxkB
taf8h+KJQicAyw91A2FhI++QvTbqK+G3OrSy3GSKoBwKn2t8+PAHNQzCbXaYVreQLg8L125vi7JK
uLsnJS9plDSQlAsBVW5xKry6qzKQQQfGuVXEhOKjF3q6Rq53p7z3UonPONKJalASLDkKZJTdUjmY
yPMSQ4kGnY53MyTjJS3JNje1YSF69IqSb55CfN24hPbEZuOgIbAAFQ3vLjiornErXKgsy0lLiQaV
HKW5JTJC3JM/+VYWvXpHnUr699FI+rdRPMWEzFQEtpAtUR8pccVGe8uzSm1ISFgtpKxZQuKA6i6D
RI14qKs30gU8J3BOCZy2NY6M0bpSL0l0ziuGQlZuQ2XCCpI4VwSELgeQvFwmVgBQFhQJCEB5Cz+W
b0dO3p8q5rNarmo1WpqAw0rUgWNKdKSlGQlKrU3VNrS9FaeFlpBpTZCMkpryEmGJig30inPqHJfn
OStMdpKdASLU2XklILikysVFUrUUi9OCdwSxM5epxcZB1JSL1wzuKDK5bBBZSvWEi9J800SfMK3K
aStOlQuKSHUSQUjViYqzcoHGnRcOCcEzltYgMRzdtIFJdKXZrjpCc0qtTabRahCLUIRahCLUIXsU
NsZCLMWDpYdQtenirSFC9gbcbcuNPQy6Tjkaj2iin7ddC3uGSOya4Eqxzk8LgNq/K47JxpOdzQ0z
5CFKAYiDj0hqSlQLnDVceY8qsWxthttMbmulk8R1DBvLGmfFenf8/ZTThz5AI2YtHM8z1KH/ADDB
5S2P7/8A7qqvpJP3f+pvzVl/+k2//wCUe/5JbjtwR8TKkOpbTMU5jJMFJKApoOyVoV6kPJs4hIbF
7psT7OJn21yLZhb4iQ7pGNPUclhPuPfIZ7isXeaGFteFT18Evgb2EGBGZaYW1OjMZFtD8fQ0hLs5
ba21ISkAIDZRyH0UuPcdDAAO8A/EYYupT2UWbZfaWgU7wDv/ABU7Esl73xGS6jcrHPRWJWMMGUmI
pHCQuWJbjjYWLBKl39PhenH7jHJgWkAs0mnPVqJCcffMfm0gFtDTnq1LFvf7bDWUaixn45fx0TGY
t1LoLrSYROlxxYCdSje/pA8q4N0ADgARVrWtxxGniVwbgAHAAirQ0fy80z7k3DCz0uFmGoiomaCU
/irjZAZedbtZ1AHFClW9VRru7bM5rwNL/wA3InmExc3DZXB4FH/m6elOWQ3lj8jvxG7no0hMVhbD
zMVKka9cdCQEkm4CVKTxt50/LuDH3fnEGgph1J2S8a+580g0FMOpYNbux6BCnriyPxfH493GMNJW
j5NSXUupDiwRr4B0lSR8RF7iuNv2DS6h1taW/u41x9+XFcF43B1Dqa0t6OPzS17fkFbcVLDMqM82
5EdVJaDCVtqiRTGJHp+/1g8nr2TdI5067c2ECgIPdxww0t0/zV/e4YJw37aCgIy5cBT1+tQ7OS4W
Qyj8vHxhEiOBsIYCUoGpLaUrVpRZCdawV6U8BewqsuJGvkLmjSPw+Oagzva95LRQJutTKZXXu1P9
hRP8J8P/AID+T/8AF+17a9E23+w3w/y5enNem3394+L+bNPdTlERQhcu/mL/AMLnP8R/hkf4j4Pj
T/K/crJzf91Z4vX1HLoWji/7e7L1dYz6VBdvf7txv5v8pj/D/wA34Ps+zzq6f4lVNyTmxzH+P/t0
2UtL0cv/ABH9quISlv8At/TXF1b08/tUIStvl9qhCzHxq5chy+L6a4hKG+f2q6uJa1yHOuoSlHOh
CUn+Q9/0auXPka7wQuVO7n+/+Q/8tD9/+HRzqZD4Uw/NQdz/AA9PBNnJEX+c1/Z5e6q64zKlwZBX
/s7/AGe38XwjnWJv/GtXZ+BSiq9TEUIRQhFCEUIRQhFCE6bc/wB4MR8X+Nj/AMv4v5qeVSrH/Ij/
AI29qj3f9l/8J7F53Z/39ynwfBG+Dn/h2/j/AHv6LVa77/lu9XYF4fu/+QfV2KD1UKtRQhFCEUIR
QhFCEUIRQhFCEUIRQhFCEUIRQhFCFirl4fTQEBYo+j6K6V0rZXFxFCEUIRQhFCEUIRQhFCEUIRQh
FCEUIRQhFCEUIRQhFCEUIRQhFCEUIRQhFCEUIRQhFCEUIRQhFCEUIRQhFCEUIRQhJ3v7P00tqU1a
kc/sUopRSxPL+qmim17QhFCEUIRQhFCEUIRQhFCEUIX/2Q==

------=_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(r,q){var =
w=3Dd.get("sb-wrapper"),z=3Dd.get("sb-title"),s=3Dd.get("sb-info"),p=3Dd.=
get("sb-title-inner"),x=3Dd.get("sb-info-inner"),y=3DparseInt(e.lib.getSt=
yle(p,"height"))||0,v=3DparseInt(e.lib.getStyle(x,"height"))||0;function =
u(){p.style.visibility=3Dx.style.visibility=3D"hidden";a(q)}if(r){d.anima=
te(z,"height",0,0.35);d.animate(s,"height",0,0.35);d.animate(w,"paddingTo=
p",y,0.35);d.animate(w,"paddingBottom",v,0.35,u)}else{z.style.height=3Ds.=
style.height=3D"0px";w.style.paddingTop=3Dy+"px";w.style.paddingBottom=3D=
v+"px";u()}}function j(r){var =
q=3Dd.get("sb-wrapper"),u=3Dd.get("sb-title"),s=3Dd.get("sb-info"),x=3Dd.=
get("sb-title-inner"),w=3Dd.get("sb-info-inner"),v=3DparseInt(e.lib.getSt=
yle(x,"height"))||0,p=3DparseInt(e.lib.getStyle(w,"height"))||0;x.style.v=
isibility=3Dw.style.visibility=3D"";if(x.innerHTML!=3D""){d.animate(u,"he=
ight",v,0.35);d.animate(q,"paddingTop",0,0.35)}d.animate(s,"height",p,0.3=
5);d.animate(q,"paddingBottom",0,0.35,r)}function c(q,x,w,p){var =
y=3Dd.get("sb-body"),v=3Dd.get("sb-wrapper"),u=3DparseInt(q),r=3DparseInt=
(x);if(w){d.animate(y,"height",u,e.options.resizeDuration);d.animate(v,"t=
op",r,e.options.resizeDuration,p)}else{y.style.height=3Du+"px";v.style.to=
p=3Dr+"px";if(p){p()}}}function f(u,x,v,p){var =
t=3Dd.get("sb-wrapper"),r=3DparseInt(u),q=3DparseInt(x);if(v){d.animate(t=
,"width",r,e.options.resizeDuration);d.animate(t,"left",q,e.options.resiz=
eDuration,p)}else{t.style.width=3Dr+"px";t.style.left=3Dq+"px";if(p){p()}=
}}function n(p){var r=3De.content;if(!r){return}var =
q=3Dm(r.height,r.width,r.resizable);switch(e.options.animSequence){case"h=
w":c(q.inner_h,q.top,true,function(){f(q.width,q.left,true,p)});break;cas=
e"wh":f(q.width,q.left,true,function(){c(q.inner_h,q.top,true,p)});break;=
default:f(q.width,q.left,true);c(q.inner_h,q.top,true,p)}}function =
m(p,s,r){var =
q=3Dd.get("sb-body-inner");sw=3Dd.get("sb-wrapper"),so=3Dd.get("sb-overla=
y"),tb=3Dsw.offsetHeight-q.offsetHeight,lr=3Dsw.offsetWidth-q.offsetWidth=
,max_h=3Dso.offsetHeight,max_w=3Dso.offsetWidth;return =
e.setDimensions(p,s,max_h,max_w,tb,lr,r)}return{markup:'<div =
id=3D"sb-container"><div id=3D"sb-overlay"></div><div =
id=3D"sb-wrapper"><div id=3D"sb-title"><div =
id=3D"sb-title-inner"></div></div><div id=3D"sb-body"><div =
id=3D"sb-body-inner"></div><div id=3D"sb-loading"><a =
onclick=3D"Shadowbox.close()">{cancel}</a></div></div><div =
id=3D"sb-info"><div id=3D"sb-info-inner"><div =
id=3D"sb-counter"></div><div id=3D"sb-nav"><a id=3D"sb-nav-close" =
title=3D"{close}" onclick=3D"Shadowbox.close()"></a><a =
id=3D"sb-nav-next" title=3D"{next}" onclick=3D"Shadowbox.next()"></a><a =
id=3D"sb-nav-play" title=3D"{play}" onclick=3D"Shadowbox.play()"></a><a =
id=3D"sb-nav-pause" title=3D"{pause}" =
onclick=3D"Shadowbox.pause()"></a><a id=3D"sb-nav-previous" =
title=3D"{previous}" onclick=3D"Shadowbox.previous()"></a></div><div =
style=3D"clear:both"></div></div></div></div></div>',options:{animSequenc=
e:"sync"},init:function(){if(e.client.isIE6){d.get("sb-body").style.zoom=3D=
1;var =
r,p,q=3D/url\("(.*\.png)"\)/;d.each(k,function(s){r=3Dd.get(s);if(r){p=3D=
e.lib.getStyle(r,"backgroundImage").match(q);if(p){r.style.backgroundImag=
e=3D"none";r.style.filter=3D"progid:DXImageTransform.Microsoft.AlphaImage=
Loader(enabled=3Dtrue,src=3D"+p[1]+",sizingMethod=3Dscale);"}}})}},bodyEl=
:function(){return =
d.get("sb-body-inner")},onOpen:function(r,q,p){d.get("sb-container").styl=
e.display=3D"block";var =
s=3Dm(r,q);c(s.inner_h,s.top,false);f(s.width,s.left,false);g(p)},onLoad:=
function(q,r,p){i(true);h(r,function(){if(!q){return}if(!r){d.get("sb-wra=
pper").style.display=3D""}p()})},onReady:function(p){n(function(){j(p)})}=
,onFinish:function(p){i(false,p)},onClose:function(){g(false)},onPlay:fun=
ction(){b("play",false);b("pause",true)},onPause:function(){b("pause",fal=
se);b("play",true)},onWindowResize:function(){var =
r=3De.content;if(!r){return}var =
q=3Dm(r.height,r.width,r.resizable);f(q.width,q.left,false);c(q.inner_h,q=
.top,false);var =
p=3Dd.get(e.contentId());if(p){if(r.resizable&&e.options.handleOversize=3D=
=3D"resize"){p.height=3Dq.resize_h;p.width=3Dq.resize_w}}}}}();
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/highslide/highslide-with-gallery.js

/************************************************************************=
******
Name:    Highslide JS
Version: 4.1.5 (June 26 2009)
Config:  default +slideshow +positioning +transitions +viewport =
+thumbstrip=0A=
Author:  Torstein H=F8nsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons =
Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
	* to copy, distribute, display, and perform the work
	* to make derivative works

Under the following conditions:
	* Attribution. You must attribute the work in the manner  specified by  =
the
	  author or licensor.
	* Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the =
license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission =
from the=20
  copyright holder.

Your fair use and other rights are in no way affected by the above.
*************************************************************************=
*****/
var hs =3D {
// Language strings
lang : {
	cssDirection: 'ltr',
	loadingText : 'Loading...',
	loadingTitle : 'Click to cancel',
	focusTitle : 'Click to bring to front',
	fullExpandTitle : 'Expand to actual size (f)',
	creditsText : 'Powered by <i>Highslide JS</i>',
	creditsTitle : 'Go to the Highslide JS homepage',
	previousText : 'Previous',
	nextText : 'Next',=20
	moveText : 'Move',
	closeText : 'Close',=20
	closeTitle : 'Close (esc)',=20
	resizeTitle : 'Resize',
	playText : 'Play',
	playTitle : 'Play slideshow (spacebar)',
	pauseText : 'Pause',
	pauseTitle : 'Pause slideshow (spacebar)',
	previousTitle : 'Previous (arrow left)',
	nextTitle : 'Next (arrow right)',
	moveTitle : 'Move',
	fullExpandText : '1:1',
	number: 'Image %1 of %2',
	restoreTitle : 'Click to close image, click and drag to move. Use arrow =
keys for next and previous.'
},
// See http://highslide.com/ref for examples of settings =20
graphicsDir : 'highslide/graphics/',
expandCursor : 'zoomin.cur', // null disables
restoreCursor : 'zoomout.cur', // null disables
expandDuration : 250, // milliseconds
restoreDuration : 250,
marginLeft : 15,
marginRight : 15,
marginTop : 15,
marginBottom : 15,
zIndexCounter : 1001, // adjust to other absolutely positioned elements
loadingOpacity : 0.75,
allowMultipleInstances: true,
numberOfImagesToPreload : 5,
outlineWhileAnimating : 2, // 0 =3D never, 1 =3D always, 2 =3D HTML only =

outlineStartOffset : 3, // ends at 10
padToMinWidth : false, // pad the popup width to make room for wide =
caption
fullExpandPosition : 'bottom right',
fullExpandOpacity : 1,
showCredits : true, // you can set this to false if you want
creditsHref : 'http://highslide.com/',
creditsTarget : '_self',
enableKeyListener : true,
openerTagNames : ['a'], // Add more to allow slideshow indexing
transitions : [],
transitionDuration: 250,
dimmingOpacity: 0, // Lightbox style dimming background
dimmingDuration: 50, // 0 for instant dimming

anchor : 'auto', // where the image expands from
align : 'auto', // position in the client (overrides anchor)
targetX: null, // the id of a target element
targetY: null,
dragByHeading: true,
minWidth: 200,
minHeight: 200,
allowSizeReduction: true, // allow the image to reduce to fit client =
size. If false, this overrides minWidth and minHeight
outlineType : 'drop-shadow', // set null to disable outlines=0A=
skin : {
	controls:
		'<div class=3D"highslide-controls"><ul>'+
			'<li class=3D"highslide-previous">'+
				'<a href=3D"#" title=3D"{hs.lang.previousTitle}">'+
				'<span>{hs.lang.previousText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-play">'+
				'<a href=3D"#" title=3D"{hs.lang.playTitle}">'+
				'<span>{hs.lang.playText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-pause">'+
				'<a href=3D"#" title=3D"{hs.lang.pauseTitle}">'+
				'<span>{hs.lang.pauseText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-next">'+
				'<a href=3D"#" title=3D"{hs.lang.nextTitle}">'+
				'<span>{hs.lang.nextText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-move">'+
				'<a href=3D"#" title=3D"{hs.lang.moveTitle}">'+
				'<span>{hs.lang.moveText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-full-expand">'+
				'<a href=3D"#" title=3D"{hs.lang.fullExpandTitle}">'+
				'<span>{hs.lang.fullExpandText}</span></a>'+
			'</li>'+
			'<li class=3D"highslide-close">'+
				'<a href=3D"#" title=3D"{hs.lang.closeTitle}" >'+
				'<span>{hs.lang.closeText}</span></a>'+
			'</li>'+
		'</ul></div>'
},
// END OF YOUR SETTINGS


// declare internal properties
preloadTheseImages : [],
continuePreloading: true,
expanders : [],
overrides : [
	'allowSizeReduction',
	'useBox',
	'anchor',
	'align',
	'targetX',
	'targetY',
	'outlineType',
	'outlineWhileAnimating',
	'captionId',
	'captionText',
	'captionEval',
	'captionOverlay',
	'headingId',
	'headingText',
	'headingEval',
	'headingOverlay',
	'creditsPosition',
	'dragByHeading',
	'autoplay',
	'numberPosition',
	'transitions',
	'dimmingOpacity',
=09
	'width',
	'height',
=09
	'wrapperClassName',
	'minWidth',
	'minHeight',
	'maxWidth',
	'maxHeight',
	'slideshowGroup',
	'easing',
	'easingClose',
	'fadeInOut',
	'src'
],
overlays : [],
idCounter : 0,
oPos : {
	x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
	y: ['above', 'top', 'middle', 'bottom', 'below']
},
mouse: {},
headingOverlay: {},
captionOverlay: {},
timers : [],

slideshows : [],

pendingOutlines : {},
clones : {},
onReady: [],
uaVersion: parseFloat((navigator.userAgent.toLowerCase().match( =
/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]),
ie : (document.all && !window.opera),
safari : /Safari/.test(navigator.userAgent),
geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),

$ : function (id) {
	if (id) return document.getElementById(id);
},

push : function (arr, val) {
	arr[arr.length] =3D val;
},

createElement : function (tag, attribs, styles, parent, nopad) {
	var el =3D document.createElement(tag);
	if (attribs) hs.extend(el, attribs);
	if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
	if (styles) hs.setStyles(el, styles);
	if (parent) parent.appendChild(el);=09
	return el;
},

extend : function (el, attribs) {
	for (var x in attribs) el[x] =3D attribs[x];
	return el;
},

setStyles : function (el, styles) {
	for (var x in styles) {
		if (hs.ie && x =3D=3D 'opacity') {
			if (styles[x] > 0.99) el.style.removeAttribute('filter');=0A=
			else el.style.filter =3D 'alpha(opacity=3D'+ (styles[x] * 100) +')';
		}
		else el.style[x] =3D styles[x];
	}
},=0A=
animate: function(el, prop, opt) {=0A=
	var start,
		end,
		unit;
	if (typeof opt !=3D 'object' || opt =3D=3D=3D null) {
		var args =3D arguments;
		opt =3D {
			duration: args[2],
			easing: args[3],
			complete: args[4]
		};
	}
	if (typeof opt.duration !=3D 'number') opt.duration =3D 250;
	opt.easing =3D Math[opt.easing] || Math.easeInQuad;
	opt.curAnim =3D hs.extend({}, prop);=0A=
	for (var name in prop) {
		var e =3D new hs.fx(el, opt , name );
	=09
		start =3D parseFloat(hs.css(el, name)) || 0;
		end =3D parseFloat(prop[name]);
		unit =3D name !=3D 'opacity' ? 'px' : '';=0A=
	=09
		e.custom( start, end, unit );
	}=09
},=0A=
css: function(el, prop) {
	if (document.defaultView) {=0A=
		return document.defaultView.getComputedStyle(el, =
null).getPropertyValue(prop);

	} else {=0A=
		if (prop =3D=3D 'opacity') prop =3D 'filter';
		var val =3D el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ =
return b.toUpperCase(); })];
		if (prop =3D=3D 'filter')=20
			val =3D val.replace(/alpha\(opacity=3D([0-9]+)\)/,=20
				function (a, b) { return b / 100 });
		return val =3D=3D=3D '' ? 1 : val;
	}=20
},

getPageSize : function () {
	var d =3D document, w =3D window, iebody =3D d.compatMode && =
d.compatMode !=3D 'BackCompat'=20
		? d.documentElement : d.body;=09
=09
=09
	var b =3D d.body;
	var xScroll =3D (w.innerWidth && w.scrollMaxX)=20
			? w.innerWidth + w.scrollMaxX : Math.max(b.scrollWidth, =
b.offsetWidth),
		yScroll =3D (w.innerHeight && window.scrollMaxY)=20
			? w.innerHeight + w.scrollMaxY : Math.max(b.scrollHeight, =
b.offsetHeight),
		pageWidth =3D hs.ie ? iebody.scrollWidth :
			(d.documentElement.clientWidth || self.innerWidth),
      	pageHeight =3D hs.ie ? Math.max(iebody.scrollHeight, =
iebody.clientHeight) :=20
			(d.documentElement.clientHeight || self.innerHeight);
=09
	var width =3D hs.ie ? iebody.clientWidth :=20
			(d.documentElement.clientWidth || self.innerWidth),
		height =3D hs.ie ? iebody.clientHeight : self.innerHeight;
=09
	hs.page =3D {
		pageWidth: Math.max(pageWidth, xScroll),
		pageHeight: Math.max(pageHeight, yScroll),
		width: width,
		height: height,	=09
		scrollLeft: hs.ie ? iebody.scrollLeft : pageXOffset,
		scrollTop: hs.ie ? iebody.scrollTop : pageYOffset
	}
},

getPosition : function(el)	{
	var p =3D { x: el.offsetLeft, y: el.offsetTop };
	while (el.offsetParent)	{
		el =3D el.offsetParent;
		p.x +=3D el.offsetLeft;
		p.y +=3D el.offsetTop;
		if (el !=3D document.body && el !=3D document.documentElement) {
			p.x -=3D el.scrollLeft;
			p.y -=3D el.scrollTop;
		}
	}
	return p;
},

expand : function(a, params, custom, type) {
	if (!a) a =3D hs.createElement('a', null, { display: 'none' }, =
hs.container);
	if (typeof a.getParams =3D=3D 'function') return params;=09
	try {=09
		new hs.Expander(a, params, custom);
		return false;
	} catch (e) { return true; }
},
getElementByClass : function (el, tagName, className) {
	var els =3D el.getElementsByTagName(tagName);
	for (var i =3D 0; i < els.length; i++) {
    	if ((new RegExp(className)).test(els[i].className)) {
			return els[i];
		}
	}
	return null;
},
replaceLang : function(s) {
	s =3D s.replace(/\s/g, ' ');
	var re =3D /{hs\.lang\.([^}]+)\}/g,
		matches =3D s.match(re),
		lang;
	if (matches) for (var i =3D 0; i < matches.length; i++) {
		lang =3D matches[i].replace(re, "$1");
		if (typeof hs.lang[lang] !=3D 'undefined') s =3D s.replace(matches[i], =
hs.lang[lang]);
	}
	return s;
},


focusTopmost : function() {
	var topZ =3D 0,=20
		topmostKey =3D -1,
		expanders =3D hs.expanders,
		exp,
		zIndex;
	for (var i =3D 0; i < expanders.length; i++) {
		exp =3D expanders[i];
		if (exp) {
			zIndex =3D exp.wrapper.style.zIndex;
			if (zIndex && zIndex > topZ) {
				topZ =3D zIndex;			=09
				topmostKey =3D i;
			}
		}
	}
	if (topmostKey =3D=3D -1) hs.focusKey =3D -1;
	else expanders[topmostKey].focus();
},

getParam : function (a, param) {
	a.getParams =3D a.onclick;
	var p =3D a.getParams ? a.getParams() : null;
	a.getParams =3D null;
=09
	return (p && typeof p[param] !=3D 'undefined') ? p[param] :=20
		(typeof hs[param] !=3D 'undefined' ? hs[param] : null);=0A=
},

getSrc : function (a) {
	var src =3D hs.getParam(a, 'src');
	if (src) return src;
	return a.href;
},

getNode : function (id) {
	var node =3D hs.$(id), clone =3D hs.clones[id], a =3D {};
	if (!node && !clone) return null;
	if (!clone) {
		clone =3D node.cloneNode(true);
		clone.id =3D '';
		hs.clones[id] =3D clone;
		return node;
	} else {
		return clone.cloneNode(true);
	}
},

discardElement : function(d) {=0A=
	if (d) hs.garbageBin.appendChild(d);
	hs.garbageBin.innerHTML =3D '';
},
dim : function(exp) {
	if (!hs.dimmer) {
		hs.dimmer =3D hs.createElement ('div',=20
			{=20
				className: 'highslide-dimming',
				owner: '',
				onclick: function() {
					=20
						hs.close();
				}
			}, {=20
				position: 'absolute',
				visibility: 'visible',
				left: 0,
				opacity: 0=20
			}, hs.container, true);
		hs.addEventListener(window, 'resize', hs.setDimmerSize);
	}
	hs.dimmer.style.display =3D '';
	hs.setDimmerSize();
	hs.dimmer.owner +=3D '|'+ exp.key;
	if (hs.geckoMac && hs.dimmingGeckoFix)=20
		hs.setStyles(hs.dimmer, {
			background: 'url('+ hs.graphicsDir + 'geckodimmer.png)',
			opacity: 1
		});
	else
		hs.animate(hs.dimmer, { opacity: exp.dimmingOpacity }, =
hs.dimmingDuration);
},
undim : function(key) {
	if (!hs.dimmer) return;
	if (typeof key !=3D 'undefined') hs.dimmer.owner =3D =
hs.dimmer.owner.replace('|'+ key, '');
=09
	if (
		(typeof key !=3D 'undefined' && hs.dimmer.owner !=3D '')
		|| (hs.upcoming && hs.getParam(hs.upcoming, 'dimmingOpacity'))
	) return;
	if (hs.geckoMac && hs.dimmingGeckoFix)=20
		hs.setStyles(hs.dimmer, { background: 'none', width: 0, height: 0 });
	else hs.animate(hs.dimmer, { opacity: 0 }, hs.dimmingDuration, null, =
function() {
		hs.setStyles(hs.dimmer, { display: 'none', width: 0, height: 0 });
	});
},
setDimmerSize : function(exp) {
	hs.getPageSize();
	if (!hs.dimmer) return;
	var h =3D (hs.ie && exp && exp.wrapper) ?=20
		parseInt(exp.wrapper.style.top) + parseInt(exp.wrapper.style.height)+ =
(exp.outline ? exp.outline.offset : 0) : 0;=20
	hs.setStyles(hs.dimmer, {=20
		width: hs.page.pageWidth +'px',=20
		height: Math.max(hs.page.pageHeight, h) +'px'
	});
},=0A=
transit : function (adj, exp) {
	var last =3D exp =3D exp || hs.getExpander();
	if (hs.upcoming) return false;
	else hs.last =3D last;
	try {
		hs.upcoming =3D adj;
		adj.onclick(); 	=09
	} catch (e){
		hs.last =3D hs.upcoming =3D null;
	}
	try {=0A=
		if (!adj || exp.transitions[1] !=3D 'crossfade')
		exp.close();
	} catch (e) {}
	return false;
},

previousOrNext : function (el, op) {
	var exp =3D hs.getExpander(el);
	if (exp) {
		adj =3D exp.getAdjacentAnchor(op);
		return hs.transit(adj, exp);
	} else return false;
},

previous : function (el) {
	return hs.previousOrNext(el, -1);
},

next : function (el) {
	return hs.previousOrNext(el, 1);=09
},

keyHandler : function(e) {
	if (!e) e =3D window.event;
	if (!e.target) e.target =3D e.srcElement; // ie
	if (typeof e.target.form !=3D 'undefined') return true; // form element =
has focus
	var exp =3D hs.getExpander();
=09
	var op =3D null;
	switch (e.keyCode) {
		case 70: // f
			if (exp) exp.doFullExpand();
			return true;
		case 32: // Space
			op =3D 2;
			break;
		case 34: // Page Down
		case 39: // Arrow right
		case 40: // Arrow down
			op =3D 1;
			break;
		case 8:  // Backspace
		case 33: // Page Up
		case 37: // Arrow left
		case 38: // Arrow up
			op =3D -1;
			break;
		case 27: // Escape
		case 13: // Enter
			op =3D 0;
	}
	if (op !=3D=3D null) {if (op !=3D 2)hs.removeEventListener(document, =
window.opera ? 'keypress' : 'keydown', hs.keyHandler);
		if (!hs.enableKeyListener) return true;
	=09
		if (e.preventDefault) e.preventDefault();
    	else e.returnValue =3D false;
    	if (exp) {
			if (op =3D=3D 0) {
				exp.close();
			} else if (op =3D=3D 2) {
				if (exp.slideshow) exp.slideshow.hitSpace();
			} else {
				if (exp.slideshow) exp.slideshow.pause();
				hs.previousOrNext(exp.key, op);
			}
			return false;
		}
	}
	return true;
},


registerOverlay : function (overlay) {
	hs.push(hs.overlays, hs.extend(overlay, { hsId: 'hsId'+ hs.idCounter++ =
} ));
},


addSlideshow : function (options) {
	var sg =3D options.slideshowGroup;
	if (typeof sg =3D=3D 'object') {
		for (var i =3D 0; i < sg.length; i++) {
			var o =3D {};
			for (var x in options) o[x] =3D options[x];
			o.slideshowGroup =3D sg[i];
			hs.push(hs.slideshows, o);
		}
	} else {
		hs.push(hs.slideshows, options);
	}
},

getWrapperKey : function (element, expOnly) {
	var el, re =3D /^highslide-wrapper-([0-9]+)$/;
	// 1. look in open expanders
	el =3D element;
	while (el.parentNode)	{
		if (el.hsKey !=3D=3D undefined) return el.hsKey;
		if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
		el =3D el.parentNode;
	}
	// 2. look in thumbnail
	if (!expOnly) {
		el =3D element;
		while (el.parentNode)	{
			if (el.tagName && hs.isHsAnchor(el)) {
				for (var key =3D 0; key < hs.expanders.length; key++) {
					var exp =3D hs.expanders[key];
					if (exp && exp.a =3D=3D el) return key;
				}
			}
			el =3D el.parentNode;
		}
	}
	return null;=20
},

getExpander : function (el, expOnly) {
	if (typeof el =3D=3D 'undefined') return hs.expanders[hs.focusKey] || =
null;
	if (typeof el =3D=3D 'number') return hs.expanders[el] || null;
	if (typeof el =3D=3D 'string') el =3D hs.$(el);
	return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
},

isHsAnchor : function (a) {
	return (a.onclick && a.onclick.toString().replace(/\s/g, ' =
').match(/hs.(htmlE|e)xpand/));
},

reOrder : function () {
	for (var i =3D 0; i < hs.expanders.length; i++)
		if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
},

mouseClickHandler : function(e)=20
{=09
	if (!e) e =3D window.event;
	if (e.button > 1) return true;
	if (!e.target) e.target =3D e.srcElement;
=09
	var el =3D e.target;
	while (el.parentNode
		&& !(/highslide-(image|move|html|resize)/.test(el.className)))
	{
		el =3D el.parentNode;
	}
	var exp =3D hs.getExpander(el);
	if (exp && (exp.isClosing || !exp.isExpanded)) return true;
	=09
	if (exp && e.type =3D=3D 'mousedown') {
		if (e.target.form) return true;
		var match =3D el.className.match(/highslide-(image|move|resize)/);
		if (match) {
			hs.dragArgs =3D { exp: exp , type: match[1], left: exp.x.pos, width: =
exp.x.size, top: exp.y.pos,=20
				height: exp.y.size, clickX: e.clientX, clickY: e.clientY };
		=09
		=09
			hs.addEventListener(document, 'mousemove', hs.dragHandler);
			if (e.preventDefault) e.preventDefault(); // FF
		=09
			if (/highslide-(image|html)-blur/.test(exp.content.className)) {
				exp.focus();
				hs.hasFocused =3D true;
			}
			return false;
		}
	} else if (e.type =3D=3D 'mouseup') {
	=09
		hs.removeEventListener(document, 'mousemove', hs.dragHandler);
	=09
		if (hs.dragArgs) {
			if (hs.styleRestoreCursor && hs.dragArgs.type =3D=3D 'image')=20
				hs.dragArgs.exp.content.style.cursor =3D hs.styleRestoreCursor;
			var hasDragged =3D hs.dragArgs.hasDragged;
		=09
			if (!hasDragged &&!hs.hasFocused && =
!/(move|resize)/.test(hs.dragArgs.type)) {
				exp.close();
			}=20
			else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
				hs.dragArgs.exp.doShowHide('hidden');
			}
			if (hasDragged) hs.setDimmerSize(exp);
		=09
			hs.hasFocused =3D false;
			hs.dragArgs =3D null;
	=09
		} else if (/highslide-image-blur/.test(el.className)) {
			el.style.cursor =3D hs.styleRestoreCursor;	=09
		}
	}
	return false;
},

dragHandler : function(e)
{
	if (!hs.dragArgs) return true;
	if (!e) e =3D window.event;
	var a =3D hs.dragArgs, exp =3D a.exp;
=09
	a.dX =3D e.clientX - a.clickX;
	a.dY =3D e.clientY - a.clickY;=09
=09
	var distance =3D Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
	if (!a.hasDragged) a.hasDragged =3D (a.type !=3D 'image' && distance > =
0)
		|| (distance > (hs.dragSensitivity || 5));
=09
	if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
	=09
		if (a.type =3D=3D 'resize') exp.resize(a);
		else {
			exp.moveTo(a.left + a.dX, a.top + a.dY);
			if (a.type =3D=3D 'image') exp.content.style.cursor =3D 'move';
		}
	}
	return false;
},

wrapperMouseHandler : function (e) {
	try {=0A=
		if (!e) e =3D window.event;
		var over =3D /mouseover/i.test(e.type);=20
		if (!e.target) e.target =3D e.srcElement; // ie
		if (hs.ie) e.relatedTarget =3D=20
			over ? e.fromElement : e.toElement; // ie
		var exp =3D hs.getExpander(e.target);
		if (!exp.isExpanded) return;
		if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) =
=3D=3D exp=20
			|| hs.dragArgs) return;
		for (var i =3D 0; i < exp.overlays.length; i++) (function() {
			var o =3D hs.$('hsId'+ exp.overlays[i]);
			if (o && o.hideOnMouseOut) {
				if (over) hs.setStyles(o, { visibility: 'visible', display: '' });
				hs.animate(o, { opacity: over ? o.opacity : 0 }, o.dur);
			}
		})();=09
	} catch (e) {}
},
addEventListener : function (el, event, func) {
	if (el =3D=3D document && event =3D=3D 'ready') hs.push(hs.onReady, =
func);
	try {
		el.addEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
			el.attachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] =3D func;
		}
	}=20
},

removeEventListener : function (el, event, func) {
	try {
		el.removeEventListener(event, func, false);
	} catch (e) {
		try {
			el.detachEvent('on'+ event, func);
		} catch (e) {
			el['on'+ event] =3D null;
		}
	}
},

preloadFullImage : function (i) {
	if (hs.continuePreloading && hs.preloadTheseImages[i] && =
hs.preloadTheseImages[i] !=3D 'undefined') {
		var img =3D document.createElement('img');
		img.onload =3D function() {=20
			img =3D null;=0A=
			hs.preloadFullImage(i + 1);
		};
		img.src =3D hs.preloadTheseImages[i];
	}
},
preloadImages : function (number) {
	if (number && typeof number !=3D 'object') hs.numberOfImagesToPreload =
=3D number;
=09
	var arr =3D hs.getAnchors();
	for (var i =3D 0; i < arr.images.length && i < =
hs.numberOfImagesToPreload; i++) {
		hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
	}
=09
	// preload outlines
	if (hs.outlineType)	new hs.Outline(hs.outlineType, function () { =
hs.preloadFullImage(0)} );
	else
=09
	hs.preloadFullImage(0);
=09
	// preload cursor
	if (hs.restoreCursor) var cur =3D hs.createElement('img', { src: =
hs.graphicsDir + hs.restoreCursor });
},


init : function () {
	if (!hs.container) {
=09
		hs.getPageSize();
		hs.ieLt7 =3D hs.ie && hs.uaVersion < 7;=0A=
		for (var x in hs.langDefaults) {
			if (typeof hs[x] !=3D 'undefined') hs.lang[x] =3D hs[x];
			else if (typeof hs.lang[x] =3D=3D 'undefined' && typeof =
hs.langDefaults[x] !=3D 'undefined')=20
				hs.lang[x] =3D hs.langDefaults[x];
		}
	=09
		hs.container =3D hs.createElement('div', {
				className: 'highslide-container'
			}, {
				position: 'absolute',=20
				left: 0,=20
				top: 0,=20
				width: '100%',=20
				zIndex: hs.zIndexCounter,
				direction: 'ltr'
			},=20
			document.body,
			true
		);
		hs.loading =3D hs.createElement('a', {
				className: 'highslide-loading',
				title: hs.lang.loadingTitle,
				innerHTML: hs.lang.loadingText,
				href: 'javascript:;'
			}, {
				position: 'absolute',
				top: '-9999px',
				opacity: hs.loadingOpacity,
				zIndex: 1
			}, hs.container
		);
		hs.garbageBin =3D hs.createElement('div', null, { display: 'none' }, =
hs.container);
		hs.viewport =3D hs.createElement('div', {
				className: 'highslide-viewport'
			}, {=0A=
				visibility: (hs.safari && hs.uaVersion < 525) ? 'visible' : 'hidden'
			}, hs.container, 1
		);
	=09
		// http://www.robertpenner.com/easing/=20
		Math.linearTween =3D function (t, b, c, d) {
			return c*t/d + b;
		};
		Math.easeInQuad =3D function (t, b, c, d) {
			return c*(t/=3Dd)*t + b;
		};
		Math.easeOutQuad =3D function (t, b, c, d) {
			return -c *(t/=3Dd)*(t-2) + b;
		};
	=09
		hs.hideSelects =3D hs.ieLt7;
		hs.hideIframes =3D ((window.opera && hs.uaVersion < 9) || =
navigator.vendor =3D=3D 'KDE'=20
			|| (hs.ie && hs.uaVersion < 5.5));
	}
},
ready : function() {
	if (hs.isReady) return;
	hs.isReady =3D true;
=09
	for (var i =3D 0; i < hs.onReady.length; i++) hs.onReady[i]();
},

updateAnchors : function() {
	var el, els, all =3D [], images =3D [],groups =3D {}, re;
	=09
	for (var i =3D 0; i < hs.openerTagNames.length; i++) {=0A=
		els =3D document.getElementsByTagName(hs.openerTagNames[i]);
		for (var j =3D 0; j < els.length; j++) {=0A=
			el =3D els[j];
			re =3D hs.isHsAnchor(el);
			if (re) {
				hs.push(all, el);=0A=
				if (re[0] =3D=3D 'hs.expand') hs.push(images, el);=0A=
				var g =3D hs.getParam(el, 'slideshowGroup') || 'none';
				if (!groups[g]) groups[g] =3D [];
				hs.push(groups[g], el);
			}
		}
	}
	hs.anchors =3D { all: all, groups: groups, images: images };
	return hs.anchors;
=09
},

getAnchors : function() {
	return hs.anchors || hs.updateAnchors();
},


close : function(el) {
	var exp =3D hs.getExpander(el);
	if (exp) exp.close();
	return false;
}
}; // end hs object=0A=
hs.fx =3D function( elem, options, prop ){
	this.options =3D options;
	this.elem =3D elem;
	this.prop =3D prop;

	if (!options.orig) options.orig =3D {};
};
hs.fx.prototype =3D {=0A=
	update: function(){=0A=
		(hs.fx.step[this.prop] || hs.fx.step._default)(this);
	=09
		if (this.options.step)
			this.options.step.call(this.elem, this.now, this);

	},=0A=
	custom: function(from, to, unit){
		this.startTime =3D (new Date()).getTime();
		this.start =3D from;
		this.end =3D to;
		this.unit =3D unit;// || this.unit || "px";
		this.now =3D this.start;
		this.pos =3D this.state =3D 0;

		var self =3D this;
		function t(gotoEnd){
			return self.step(gotoEnd);
		}

		t.elem =3D this.elem;

		if ( t() && hs.timers.push(t) =3D=3D 1 ) {
			hs.timerId =3D setInterval(function(){
				var timers =3D hs.timers;

				for ( var i =3D 0; i < timers.length; i++ )
					if ( !timers[i]() )
						timers.splice(i--, 1);

				if ( !timers.length ) {
					clearInterval(hs.timerId);
				}
			}, 13);
		}
	},=0A=
	step: function(gotoEnd){
		var t =3D (new Date()).getTime();
		if ( gotoEnd || t >=3D this.options.duration + this.startTime ) {
			this.now =3D this.end;
			this.pos =3D this.state =3D 1;
			this.update();

			this.options.curAnim[ this.prop ] =3D true;

			var done =3D true;
			for ( var i in this.options.curAnim )
				if ( this.options.curAnim[i] !=3D=3D true )
					done =3D false;

			if ( done ) {=0A=
				if (this.options.complete) this.options.complete.call(this.elem);
			}
			return false;
		} else {
			var n =3D t - this.startTime;
			this.state =3D n / this.options.duration;=0A=
			this.pos =3D this.options.easing(n, 0, 1, this.options.duration);
			this.now =3D this.start + ((this.end - this.start) * this.pos);=0A=
			this.update();
		}
		return true;
	}

};

hs.extend( hs.fx, {
	step: {

		opacity: function(fx){
			hs.setStyles(fx.elem, { opacity: fx.now });
		},

		_default: function(fx){
			if ( fx.elem.style && fx.elem.style[ fx.prop ] !=3D null )
				fx.elem.style[ fx.prop ] =3D fx.now + fx.unit;
			else
				fx.elem[ fx.prop ] =3D fx.now;
		}
	}
});

hs.Outline =3D  function (outlineType, onLoad) {
	this.onLoad =3D onLoad;
	this.outlineType =3D outlineType;
	var v =3D hs.uaVersion, tr;
=09
	this.hasAlphaImageLoader =3D hs.ie && v >=3D 5.5 && v < 7;
	if (!outlineType) {
		if (onLoad) onLoad();
		return;
	}
=09
	hs.init();
	this.table =3D hs.createElement(
		'table', {=20
			cellSpacing: 0=20
		}, {
			visibility: 'hidden',
			position: 'absolute',
			borderCollapse: 'collapse',
			width: 0
		},
		hs.container,
		true
	);
	var tbody =3D hs.createElement('tbody', null, null, this.table, 1);
=09
	this.td =3D [];
	for (var i =3D 0; i <=3D 8; i++) {
		if (i % 3 =3D=3D 0) tr =3D hs.createElement('tr', null, { height: =
'auto' }, tbody, true);
		this.td[i] =3D hs.createElement('td', null, null, tr, true);
		var style =3D i !=3D 4 ? { lineHeight: 0, fontSize: 0} : { position : =
'relative' };
		hs.setStyles(this.td[i], style);
	}
	this.td[4].className =3D outlineType +' highslide-outline';
=09
	this.preloadGraphic();=20
};

hs.Outline.prototype =3D {
preloadGraphic : function () {
	var src =3D hs.graphicsDir + (hs.outlinesDir || "outlines/")+ =
this.outlineType +".png";
			=09
	var appendTo =3D hs.safari ? hs.container : null;
	this.graphic =3D hs.createElement('img', null, { position: 'absolute',=20
		top: '-9999px' }, appendTo, true); // for onload trigger
=09
	var pThis =3D this;
	this.graphic.onload =3D function() { pThis.onGraphicLoad(); };
=09
	this.graphic.src =3D src;
},

onGraphicLoad : function () {
	var o =3D this.offset =3D this.graphic.width / 4,
		pos =3D [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
		dim =3D { height: (2*o) +'px', width: (2*o) +'px' };
	for (var i =3D 0; i <=3D 8; i++) {
		if (pos[i]) {
			if (this.hasAlphaImageLoader) {
				var w =3D (i =3D=3D 1 || i =3D=3D 7) ? '100%' : this.graphic.width =
+'px';
				var div =3D hs.createElement('div', null, { width: '100%', height: =
'100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
				hs.createElement ('div', null, {=20
						filter: =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=3Dscale,=
 src=3D'"+ this.graphic.src + "')",=20
						position: 'absolute',
						width: w,=20
						height: this.graphic.height +'px',
						left: (pos[i][0]*o)+'px',
						top: (pos[i][1]*o)+'px'
					},=20
				div,
				true);
			} else {
				hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') =
'+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
			}
		=09
			if (window.opera && (i =3D=3D 3 || i =3D=3D5))=20
				hs.createElement('div', null, dim, this.td[i], true);
		=09
			hs.setStyles (this.td[i], dim);
		}
	}
	this.graphic =3D null;
	if (hs.pendingOutlines[this.outlineType]) =
hs.pendingOutlines[this.outlineType].destroy();
	hs.pendingOutlines[this.outlineType] =3D this;
	if (this.onLoad) this.onLoad();
},
=09
setPosition : function (pos, offset, vis, dur, easing) {
	var exp =3D this.exp,
		stl =3D exp.wrapper.style,
		offset =3D offset || 0,
		pos =3D pos || {
			x: exp.x.pos + offset,
			y: exp.y.pos + offset,
			w: exp.x.get('wsize') - 2 * offset,
			h: exp.y.get('wsize') - 2 * offset
		};
	if (vis) this.table.style.visibility =3D (pos.h >=3D 4 * this.offset)=20
		? 'visible' : 'hidden';
	hs.setStyles(this.table, {
		left: (pos.x - this.offset) +'px',
		top: (pos.y - this.offset) +'px',
		width: (pos.w + 2 * this.offset) +'px'
	});
=09
	pos.w -=3D 2 * this.offset;
	pos.h -=3D 2 * this.offset;
	hs.setStyles (this.td[4], {
		width: pos.w >=3D 0 ? pos.w +'px' : 0,
		height: pos.h >=3D 0 ? pos.h +'px' : 0
	});
	if (this.hasAlphaImageLoader) this.td[3].style.height=20
		=3D this.td[5].style.height =3D this.td[4].style.height;=09
=09
},
=09
destroy : function(hide) {
	if (hide) this.table.style.visibility =3D 'hidden';
	else hs.discardElement(this.table);
}
};

hs.Dimension =3D function(exp, dim) {
	this.exp =3D exp;
	this.dim =3D dim;
	this.ucwh =3D dim =3D=3D 'x' ? 'Width' : 'Height';=0A=
	this.wh =3D this.ucwh.toLowerCase();=0A=
	this.uclt =3D dim =3D=3D 'x' ? 'Left' : 'Top';=0A=
	this.lt =3D this.uclt.toLowerCase();=0A=
	this.ucrb =3D dim =3D=3D 'x' ? 'Right' : 'Bottom';=0A=
	this.rb =3D this.ucrb.toLowerCase();=0A=
	this.p1 =3D this.p2 =3D 0;=0A=
};
hs.Dimension.prototype =3D {
get : function(key) {
	switch (key) {
		case 'loadingPos':
			return this.tpos + this.tb + (this.t - hs.loading['offset'+ =
this.ucwh]) / 2;
		case 'loadingPosXfade':
			return this.pos + this.cb+ this.p1 + (this.size - =
hs.loading['offset'+ this.ucwh]) / 2;
		case 'wsize':=0A=
			return this.size + 2 * this.cb + this.p1 + this.p2;
		case 'fitsize':=0A=
			return this.clientSize - this.marginMin - this.marginMax;
		case 'maxsize':=0A=
			return this.get('fitsize') - 2 * this.cb - this.p1 - this.p2 ;
		case 'opos':=0A=
			return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
		case 'osize':=0A=
			return this.get('wsize') + (this.exp.outline ? =
2*this.exp.outline.offset : 0);
		case 'imgPad':=0A=
			return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
	=09
	}
},
calcBorders: function() {
	// correct for borders
	this.cb =3D (this.exp.content['offset'+ this.ucwh] - this.t) / 2;=0A=
	this.marginMax =3D hs['margin'+ this.ucrb];
},
calcThumb: function() {
	this.t =3D this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) :=20
		this.exp.el['offset'+ this.ucwh];=0A=
	this.tpos =3D this.exp.tpos[this.dim];=0A=
	this.tb =3D (this.exp.el['offset'+ this.ucwh] - this.t) / 2;=0A=
	if (this.tpos < 1) {=0A=
		this.tpos =3D (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];	=09
	};
},
calcExpanded: function() {
	var exp =3D this.exp;
	this.justify =3D 'auto';
=09
	// get alignment
	if (exp.align =3D=3D 'center') this.justify =3D 'center';
	else if (new RegExp(this.lt).test(exp.anchor)) this.justify =3D null;
	else if (new RegExp(this.rb).test(exp.anchor)) this.justify =3D 'max';
=09
=09
	// size and position
	this.pos =3D this.tpos - this.cb + this.tb;=0A=
	this.size =3D Math.min(this.full, exp['max'+ this.ucwh] || this.full);
	this.minSize =3D exp.allowSizeReduction ?=20
		Math.min(exp['min'+ this.ucwh], this.full) :this.full;
	if (exp.isImage && exp.useBox)	{
		this.size =3D exp[this.wh];
		this.imgSize =3D this.full;
	}
	if (this.dim =3D=3D 'x' && hs.padToMinWidth) this.minSize =3D =
exp.minWidth;
	this.target =3D exp['target'+ this.dim.toUpperCase()];
	this.marginMin =3D hs['margin'+ this.uclt];
	this.scroll =3D hs.page['scroll'+ this.uclt];
	this.clientSize =3D hs.page[this.wh];
},
setSize: function(i) {
	var exp =3D this.exp;
	if (exp.isImage && (exp.useBox || hs.padToMinWidth)) {
		this.imgSize =3D i;
		this.size =3D Math.max(this.size, this.imgSize);
		exp.content.style[this.lt] =3D this.get('imgPad')+'px';
	} else
	this.size =3D i;

	exp.content.style[this.wh] =3D i +'px';
	exp.wrapper.style[this.wh] =3D this.get('wsize') +'px';
	if (exp.outline) exp.outline.setPosition();
	if (this.dim =3D=3D 'x' && exp.overlayBox) exp.sizeOverlayBox(true);
	if (this.dim =3D=3D 'x' && exp.slideshow && exp.isImage) {
		if (i =3D=3D this.full) exp.slideshow.disable('full-expand');
		else exp.slideshow.enable('full-expand');
	}
},
setPos: function(i) {
	this.pos =3D i;
	this.exp.wrapper.style[this.lt] =3D i +'px';=09
=09
	if (this.exp.outline) this.exp.outline.setPosition();
=09
}
};

hs.Expander =3D function(a, params, custom, contentType) {
	if (document.readyState && hs.ie && !hs.isReady) {
		hs.addEventListener(document, 'ready', function() {
			new hs.Expander(a, params, custom, contentType);
		});
		return;
	}=20
	this.a =3D a;
	this.custom =3D custom;
	this.contentType =3D contentType || 'image';
	this.isImage =3D !this.isHtml;
=09
	hs.continuePreloading =3D false;
	this.overlays =3D [];
	this.last =3D hs.last;
	hs.last =3D null;
	hs.init();
	var key =3D this.key =3D hs.expanders.length;
	// override inline parameters
	for (var i =3D 0; i < hs.overrides.length; i++) {
		var name =3D hs.overrides[i];
		this[name] =3D params && typeof params[name] !=3D 'undefined' ?
			params[name] : hs[name];
	}
	if (!this.src) this.src =3D a.href;
=09
	// get thumb
	var el =3D (params && params.thumbnailId) ? hs.$(params.thumbnailId) : =
a;
	el =3D this.thumb =3D el.getElementsByTagName('img')[0] || el;
	this.thumbsUserSetId =3D el.id || a.id;
=09
	// check if already open
	for (var i =3D 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].a =3D=3D a=20
			&& !(this.last && this.transitions[1] =3D=3D 'crossfade')) {
			hs.expanders[i].focus();
			return false;
		}
	}=09

	// cancel other
	if (!hs.allowSimultaneousLoading) for (var i =3D 0; i < =
hs.expanders.length; i++) {
		if (hs.expanders[i] && hs.expanders[i].thumb !=3D el && =
!hs.expanders[i].onLoadStarted) {
			hs.expanders[i].cancelLoading();
		}
	}=0A=
	hs.expanders[key] =3D this;
	if (!hs.allowMultipleInstances && !hs.upcoming) {
		if (hs.expanders[key-1]) hs.expanders[key-1].close();
		if (typeof hs.focusKey !=3D 'undefined' && hs.expanders[hs.focusKey])
			hs.expanders[hs.focusKey].close();=0A=
	}
=09
	// initiate metrics
	this.el =3D el;
	this.tpos =3D hs.getPosition(el);
	hs.getPageSize();
	var x =3D this.x =3D new hs.Dimension(this, 'x');
	x.calcThumb();
	var y =3D this.y =3D new hs.Dimension(this, 'y');
	y.calcThumb();=0A=
	this.wrapper =3D hs.createElement(
		'div', {
			id: 'highslide-wrapper-'+ this.key,
			className: 'highslide-wrapper '+ this.wrapperClassName
		}, {
			visibility: 'hidden',
			position: 'absolute',
			zIndex: hs.zIndexCounter +=3D 2
		}, null, true );
=09
	this.wrapper.onmouseover =3D this.wrapper.onmouseout =3D =
hs.wrapperMouseHandler;
	if (this.contentType =3D=3D 'image' && this.outlineWhileAnimating =
=3D=3D 2)
		this.outlineWhileAnimating =3D 0;
=09
	// get the outline
	if (!this.outlineType=20
		|| (this.last && this.isImage && this.transitions[1] =3D=3D =
'crossfade')) {
		this[this.contentType +'Create']();
=09
	} else if (hs.pendingOutlines[this.outlineType]) {
		this.connectOutline();
		this[this.contentType +'Create']();
=09
	} else {
		this.showLoading();
		var exp =3D this;
		new hs.Outline(this.outlineType,=20
			function () {
				exp.connectOutline();
				exp[exp.contentType +'Create']();
			}=20
		);
	}
	return true;=0A=
};

hs.Expander.prototype =3D {
error : function(e) {
	//alert ('Line '+ e.lineNumber +': '+ e.message);
	window.location.href =3D this.src;
},

connectOutline : function() {
	var outline =3D this.outline =3D hs.pendingOutlines[this.outlineType];
	outline.exp =3D this;
	outline.table.style.zIndex =3D this.wrapper.style.zIndex - 1;
	hs.pendingOutlines[this.outlineType] =3D null;
},

showLoading : function() {
	if (this.onLoadStarted || this.loading) return;
=09
	this.loading =3D hs.loading;
	var exp =3D this;
	this.loading.onclick =3D function() {
		exp.cancelLoading();
	};
	var exp =3D this,=20
		l =3D this.x.get('loadingPos') +'px',
		t =3D this.y.get('loadingPos') +'px';=0A=
	if (!tgt && this.last && this.transitions[1] =3D=3D 'crossfade')=20
		var tgt =3D this.last;=20
	if (tgt) {
		l =3D tgt.x.get('loadingPosXfade') +'px';
		t =3D tgt.y.get('loadingPosXfade') +'px';
		this.loading.style.zIndex =3D hs.zIndexCounter++;
	}
	setTimeout(function () {=20
		if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: =
hs.zIndexCounter++ })}
	, 100);
},

imageCreate : function() {
	var exp =3D this;
=09
	var img =3D document.createElement('img');
    this.content =3D img;
    img.onload =3D function () {
    	if (hs.expanders[exp.key]) exp.contentLoaded();=20
	};
    if (hs.blockRightClick) img.oncontextmenu =3D function() { return =
false; };
    img.className =3D 'highslide-image';
    hs.setStyles(img, {
    	visibility: 'hidden',=0A=
    	display: 'block',
    	position: 'absolute',
		maxWidth: '9999px',
		zIndex: 3
	});
    img.title =3D hs.lang.restoreTitle;
    if (hs.safari) hs.container.appendChild(img);
    if (hs.ie && hs.flushImgSize) img.src =3D null;
	img.src =3D this.src;
=09
	this.showLoading();
},

contentLoaded : function() {
	try {=09
		if (!this.content) return;
		this.content.onload =3D null;=0A=
		if (this.onLoadStarted) return;=0A=
		else this.onLoadStarted =3D true;
	=09
		var x =3D this.x, y =3D this.y;
	=09
		if (this.loading) {
			hs.setStyles(this.loading, { top: '-9999px' });
			this.loading =3D null;
		}=09
			x.full =3D this.content.width;
			y.full =3D this.content.height;
		=09
			hs.setStyles(this.content, {
				width: x.t +'px',
				height: y.t +'px'
			});
			this.wrapper.appendChild(this.content);
			hs.container.appendChild(this.wrapper);
	=09
		x.calcBorders();
		y.calcBorders();
	=09
		hs.setStyles (this.wrapper, {=0A=
			left: (x.tpos + x.tb - x.cb) +'px',
			top: (y.tpos + x.tb - y.cb) +'px'
		});	=09
	=09
	=09
		this.initSlideshow();=0A=
		this.getOverlays();
	=09
		var ratio =3D x.full / y.full;
	=09
		x.calcExpanded();
		this.justify(x);
	=09
		y.calcExpanded();
		this.justify(y);
		if (this.overlayBox) this.sizeOverlayBox(0, 1);
	=09
		if (this.allowSizeReduction) {
				this.correctRatio(ratio);=0A=
			var ss =3D this.slideshow;		=09
			if (ss && this.last && ss.controls && ss.fixedControls) {
				var pos =3D ss.overlayOptions.position || '', p;
				for (var dim in hs.oPos) for (var i =3D 0; i < 5; i++) {
					p =3D this[dim];
					if (pos.match(hs.oPos[dim][i])) {
						p.pos =3D this.last[dim].pos=20
							+ (this.last[dim].p1 - p.p1)
							+ (this.last[dim].size - p.size) * [0, 0, .5, 1, 1][i];
						if (ss.fixedControls =3D=3D 'fit') {
							if (p.pos + p.size + p.p1 + p.p2 > p.scroll + p.clientSize - =
p.marginMax)
								p.pos =3D p.scroll + p.clientSize - p.size - p.marginMin - =
p.marginMax - p.p1 - p.p2;
							if (p.pos < p.scroll + p.marginMin) p.pos =3D p.scroll + =
p.marginMin;=20
						}=20
					}
				}
			}
			if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
				this.createFullExpand();
				if (this.overlays.length =3D=3D 1) this.sizeOverlayBox();
			}
		}
		this.show();
	=09
	} catch (e) {
		this.error(e);
	}
},

justify : function (p, moveOnly) {
	var tgtArr, tgt =3D p.target, dim =3D p =3D=3D this.x ? 'x' : 'y';
=09
	if (tgt && tgt.match(/ /)) {
		tgtArr =3D tgt.split(' ');
		tgt =3D tgtArr[0];
	}
	if (tgt && hs.$(tgt)) {
		p.pos =3D hs.getPosition(hs.$(tgt))[dim];
		if (tgtArr && tgtArr[1] && tgtArr[1].match(/^[-]?[0-9]+px$/))=20
			p.pos +=3D parseInt(tgtArr[1]);
		if (p.size < p.minSize) p.size =3D p.minSize;
	=09
	} else if (p.justify =3D=3D 'auto' || p.justify =3D=3D 'center') {
=09
		var hasMovedMin =3D false;
	=09
		var allowReduce =3D p.exp.allowSizeReduction;=0A=
		if (p.justify =3D=3D 'center')
			p.pos =3D Math.round(p.scroll + (p.clientSize + p.marginMin - =
p.marginMax - p.get('wsize')) / 2);
		else
			p.pos =3D Math.round(p.pos - ((p.get('wsize') - p.t) / 2));=0A=
		if (p.pos < p.scroll + p.marginMin) {
			p.pos =3D p.scroll + p.marginMin;
			hasMovedMin =3D true;	=09
		}=0A=
		if (!moveOnly && p.size < p.minSize) {
			p.size =3D p.minSize;
			allowReduce =3D false;
		}=0A=
		if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {=0A=
			if (!moveOnly && hasMovedMin && allowReduce) {=0A=
				p.size =3D p.get(dim =3D=3D 'y' ? 'fitsize' : 'maxsize');=0A=
			} else if (p.get('wsize') < p.get('fitsize')) {
				p.pos =3D p.scroll + p.clientSize - p.marginMax - p.get('wsize');=0A=
			} else { // image larger than viewport
				p.pos =3D p.scroll + p.marginMin;
				if (!moveOnly && allowReduce) p.size =3D p.get(dim =3D=3D 'y' ? =
'fitsize' : 'maxsize');
			}		=09
		}=0A=
	=09
		if (!moveOnly && p.size < p.minSize) {
			p.size =3D p.minSize;
			allowReduce =3D false;
		}
	=09
=09
	} else if (p.justify =3D=3D 'max') {
		p.pos =3D Math.floor(p.pos - p.size + p.t);
	}
=09
	=09
	if (p.pos < p.marginMin) {
		var tmpMin =3D p.pos;
		p.pos =3D p.marginMin;=20
	=09
		if (allowReduce && !moveOnly) p.size =3D p.size - (p.pos - tmpMin);
	=09
	}
},

correctRatio : function(ratio) {
	var x =3D this.x,=20
		y =3D this.y,
		changed =3D false,=0A=
		xSize =3D Math.min(x.full, x.size),
		ySize =3D Math.min(y.full, y.size),
		useBox =3D (this.useBox || hs.padToMinWidth);
=09
	if (xSize / ySize > ratio) { // width greater
		xSize =3D ySize * ratio;
		if (xSize < x.minSize) { // below minWidth
			xSize =3D x.minSize;
			ySize =3D xSize / ratio;
		}
		changed =3D true;
=09
	} else if (xSize / ySize < ratio) { // height greater
		ySize =3D xSize / ratio;
		changed =3D true;
	}
=09
	if (hs.padToMinWidth && x.full < x.minSize) {
		x.imgSize =3D x.full;
		y.size =3D y.imgSize =3D y.full;
	} else if (this.useBox) {
		x.imgSize =3D xSize;
		y.imgSize =3D ySize;
	} else {
		x.size =3D xSize;
		y.size =3D ySize;
	}
	this.fitOverlayBox(useBox ? null : ratio);=0A=
	if (useBox && y.size < y.imgSize) {
		y.imgSize =3D y.size;
		x.imgSize =3D y.size * ratio;
	}=0A=
	if (changed || useBox) {
		x.pos =3D x.tpos - x.cb + x.tb;
		x.minSize =3D x.size;
		this.justify(x, true);
=09
		y.pos =3D y.tpos - y.cb + y.tb;
		y.minSize =3D y.size;
		this.justify(y, true);
		if (this.overlayBox) this.sizeOverlayBox();
	}
},
fitOverlayBox : function(ratio) {
	var x =3D this.x, y =3D this.y;=0A=
	if (this.overlayBox) {
		while (y.size > this.minHeight && x.size > this.minWidth=20
				&&  y.get('wsize') > y.get('fitsize')) {
			y.size -=3D 10;
			if (ratio) x.size =3D y.size * ratio;
			this.sizeOverlayBox(0, 1);
		}
	}
},

show : function () {
	var x =3D this.x, y =3D this.y;
	this.doShowHide('hidden');
	if (this.slideshow && this.slideshow.thumbstrip) =
this.slideshow.thumbstrip.selectThumb();
=09
	// Apply size change
	this.changeSize(
		1, {
			wrapper: {
				width : x.get('wsize'),
				height : y.get('wsize'),
				left: x.pos,
				top: y.pos
			},
			content: {
				left: x.p1 + x.get('imgPad'),
				top: y.p1 + y.get('imgPad'),
				width:x.imgSize ||x.size,
				height:y.imgSize ||y.size
			}
		},
		hs.expandDuration
	);
},

changeSize : function(up, to, dur) {
	// transition
	var trans =3D this.transitions,
	other =3D up ? (this.last ? this.last.a : null) : hs.upcoming,
	t =3D (trans[1] && other=20
			&& hs.getParam(other, 'transitions')[1] =3D=3D trans[1]) ?
		trans[1] : trans[0];
	=09
	if (this[t] && t !=3D 'expand') {
		this[t](up, to);
		return;
	}
=09
	if (this.outline && !this.outlineWhileAnimating) {
		if (up) this.outline.setPosition();
		else this.outline.destroy();
	}
=09
=09
	if (!up) this.destroyOverlays();
=09
	var exp =3D this,
		x =3D exp.x,
		y =3D exp.y,
		easing =3D this.easing;
	if (!up) easing =3D this.easingClose || easing;=0A=
	var after =3D up ?
		function() {
			=09
			if (exp.outline) exp.outline.table.style.visibility =3D "visible";
			setTimeout(function() {
				exp.afterExpand();
			}, 50);
		} :
		function() {
			exp.afterClose();
		};=0A=
	if (up) hs.setStyles( this.wrapper, {
		width: x.t +'px',
		height: y.t +'px'
	});=0A=
	if (this.fadeInOut) {
		hs.setStyles(this.wrapper, { opacity: up ? 0 : 1 });
		hs.extend(to.wrapper, { opacity: up });=0A=
	}
	hs.animate( this.wrapper, to.wrapper, {
		duration: dur,
		easing: easing,
		step: function(val, args) {
			if (exp.outline && exp.outlineWhileAnimating && args.prop =3D=3D =
'top') {
				var fac =3D up ? args.pos : 1 - args.pos;
				var pos =3D {
					w: x.t + (x.get('wsize') - x.t) * fac,
					h: y.t + (y.get('wsize') - y.t) * fac,
					x: x.tpos + (x.pos - x.tpos) * fac,
					y: y.tpos + (y.pos - y.tpos) * fac
				};
				exp.outline.setPosition(pos, 0, 1);			=09
			}
		}
	});=0A=
	hs.animate( this.content, to.content, dur, easing, after);=0A=
	if (up) {
		this.wrapper.style.visibility =3D 'visible';
		this.content.style.visibility =3D 'visible';
		this.a.className +=3D ' highslide-active-anchor';
	}
},



fade : function(up, to) {
	this.outlineWhileAnimating =3D false;
	var exp =3D this,	t =3D up ? hs.expandDuration : 0;
=09
	if (up) {
		hs.animate(this.wrapper, to.wrapper, 0);=0A=
		hs.setStyles(this.wrapper, { opacity: 0, visibility: 'visible' });
		hs.animate(this.content, to.content, 0);
		this.content.style.visibility =3D 'visible';

		hs.animate(this.wrapper, { opacity: 1 }, t, null,=20
			function() { exp.afterExpand(); });
	}
=09
	if (this.outline) {
		this.outline.table.style.zIndex =3D this.wrapper.style.zIndex;
		var dir =3D up || -1,=20
			offset =3D this.outline.offset,
			startOff =3D up ? 3 : offset,
			endOff =3D up? offset : 3;
		for (var i =3D startOff; dir * i <=3D dir * endOff; i +=3D dir, t +=3D =
25) {
			(function() {
				var o =3D up ? endOff - i : startOff - i;
				setTimeout(function() {
					exp.outline.setPosition(0, o, 1);
				}, t);
			})();
		}
	}
=09
=09
	if (up) {}//setTimeout(function() { exp.afterExpand(); }, t+50);
	else {
		setTimeout( function() {
			if (exp.outline) exp.outline.destroy(exp.preserveContent);
		=09
			exp.destroyOverlays();
=09
			hs.animate( exp.wrapper, { opacity: 0 }, hs.restoreDuration, null, =
function(){
				exp.afterClose();
			});
		}, t);	=09
	}
},

crossfade : function (up, to) {
	if (!up) return;
	var exp =3D this,=20
		dur =3D hs.transitionDuration,=20
		last =3D exp.last,
		x =3D exp.x,=20
		y =3D exp.y,
		lastX =3D last.x,
		lastY =3D last.y,
		overlayBox =3D exp.overlayBox,
		wrapper =3D this.wrapper,
		content =3D this.content;
	hs.removeEventListener(document, 'mousemove', hs.dragHandler);
	this.outline =3D last.outline;
	if (this.outline) this.outline.exp =3D exp;
	last.outline =3D null;=0A=
	last.wrapper.style.overflow =3D 'hidden';
	hs.setStyles(wrapper, {
		left: lastX.pos +'px',
		top: lastY.pos +'px',
		width: lastX.get('wsize') +'px',
		height: lastY.get('wsize') +'px'
	});
	hs.setStyles(content, {
		display: 'none',
		width: (x.imgSize || x.size) +'px',=20
		height: (y.imgSize || y.size) +'px',
		left: (x.p1 + x.get('imgPad')) +'px',
		top: (y.p1 + y.get('imgPad')) + 'px'
	});=0A=
	var fadeBox =3D hs.createElement('div', {
		className: 'highslide-image'
	}, {=20
		position: 'absolute',=20
		zIndex: 4,
		overflow: 'hidden',
		display: 'none',
		left: (lastX.p1 + lastX.get('imgPad')) +'px',
		top: (lastY.p1 + lastY.get('imgPad')) +'px',
		width: (lastX.imgSize || lastX.size) +'px',
		height: (lastY.imgSize || lastY.size) +'px'
	});
	for (var i =3D 0; i < this.overlays.length; i++) {
		var o =3D hs.$('hsId'+ this.overlays[i]);
		if (o.style.visibility =3D=3D 'hidden') o.style.display =3D 'none';
	}
	if (overlayBox) hs.setStyles(overlayBox, {
		overflow: 'visible',
		left: (lastX.p1 + lastX.cb) +'px',
		top: (lastY.p1 + lastY.cb) +'px',
		width: lastX.size +'px',
		height: lastY.size +'px'
	});=0A=
	var names =3D { oldImg: last, newImg: this };
	for (var n in names) { =09
		this[n] =3D names[n].content.cloneNode(1);
		hs.setStyles(this[n], {
			position: 'absolute',
			border: 0,
			visibility: 'visible'
		});
		fadeBox.appendChild(this[n]);
	}
	hs.setStyles(this.oldImg, {
		left: 0,
		top: 0
	});=09
	hs.setStyles(this.newImg, {
		display: 'block',
		opacity: 0,
		left: (x.pos - lastX.pos + x.p1 - lastX.p1 + x.get('imgPad') - =
lastX.get('imgPad')) +'px',
		top: (y.pos - lastY.pos + y.p1 - lastY.p1 + y.get('imgPad') - =
lastY.get('imgPad')) +'px'
	});
	wrapper.appendChild(fadeBox);
	if (overlayBox) {
		overlayBox.className =3D '';
		wrapper.appendChild(overlayBox);
	}
	fadeBox.style.display =3D '';
	last.content.style.display =3D 'none';

	if (hs.safari) {=0A=
		var match =3D navigator.userAgent.match(/Safari\/([0-9]{3})/);
		if (match && parseInt(match[1]) < 525) wrapper.style.visibility =3D =
'visible';
	}=0A=
	function end() {
		wrapper.style.visibility =3D content.style.visibility =3D 'visible';
		content.style.display =3D 'block';
		fadeBox.style.display =3D 'none';
		exp.a.className +=3D ' highslide-active-anchor';
		exp.afterExpand();
		last.afterClose();
		exp.last =3D null;
	}=0A=
	hs.animate(last.wrapper, {=20
		left: x.pos,
		top: y.pos,
		width: x.get('wsize'),
		height: y.get('wsize')
	}, dur);
=09
	hs.animate(fadeBox, {
		width: x.imgSize || x.size,
		height: y.imgSize || y.size,
		left: x.p1 + x.get('imgPad'),
		top: y.p1 + y.get('imgPad')
	}, dur);
=09
	hs.animate(this.oldImg, {
		left: (lastX.pos - x.pos + lastX.p1 - x.p1 + lastX.get('imgPad') - =
x.get('imgPad')),
		top: (lastY.pos - y.pos + lastY.p1 - y.p1 + lastY.get('imgPad') - =
y.get('imgPad'))
	}, dur);	=09
=09
	hs.animate(this.newImg, {
		opacity: 1,
		left: 0,
		top: 0
	}, dur);
	if (overlayBox) hs.animate(overlayBox, {
		left: x.p1 + x.cb,
		top: y.p1 + y.cb,
		width: x.size,
		height: y.size
	}, dur);
	if (this.outline) var wrapStep =3D  function(val, args) {
		if (args.prop =3D=3D 'top') {
			var stl =3D exp.wrapper.style;
			var pos =3D {
				w: parseInt(stl.width),
				h: parseInt(stl.height),
				x: parseInt(stl.left),
				y: parseInt(stl.top)
			};
			exp.outline.setPosition(pos);=0A=
		}
	};
	hs.animate(wrapper, to.wrapper, {
		duration: dur,=20
		complete: end,
		step: wrapStep
	});
=09
	fadeBox.style.visibility =3D 'visible';
},=0A=
reuseOverlay : function(o, el) {
	if (!this.last) return false;
	for (var i =3D 0; i < this.last.overlays.length; i++) {
		var oDiv =3D hs.$('hsId'+ this.last.overlays[i]);
		if (oDiv && oDiv.hsId =3D=3D o.hsId) {
			this.genOverlayBox();
			oDiv.reuse =3D this.key;
			hs.push(this.overlays, this.last.overlays[i]);
			return true;
		}
	}
	return false;
},


afterExpand : function() {
	this.isExpanded =3D true;=09
	this.focus();=0A=
	if (this.dimmingOpacity) hs.dim(this);
	if (hs.upcoming && hs.upcoming =3D=3D this.a) hs.upcoming =3D null;=0A=
	this.prepareNextOutline();=0A=
	var p =3D hs.page, mX =3D hs.mouse.x + p.scrollLeft, mY =3D hs.mouse.y =
+ p.scrollTop;
	this.mouseIsOver =3D this.x.pos < mX && mX < this.x.pos + =
this.x.get('wsize')
		&& this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');=09
	if (this.overlayBox) this.showOverlays();
=09
},


prepareNextOutline : function() {
	var key =3D this.key;
	var outlineType =3D this.outlineType;
	new hs.Outline(outlineType,=20
		function () { try { hs.expanders[key].preloadNext(); } catch (e) {} =
});
},


preloadNext : function() {
	var next =3D this.getAdjacentAnchor(1);
	if (next && next.onclick.toString().match(/hs\.expand/))=20
		var img =3D hs.createElement('img', { src: hs.getSrc(next) });
},


getAdjacentAnchor : function(op) {
	var current =3D this.getAnchorIndex(), as =3D =
hs.anchors.groups[this.slideshowGroup || 'none'];
=09
	/*< ? if ($cfg->slideshow) : ?>s*/
	if (!as[current + op] && this.slideshow && this.slideshow.repeat) {
		if (op =3D=3D 1) return as[0];
		else if (op =3D=3D -1) return as[as.length-1];
	}
	/*< ? endif ?>s*/
	return as[current + op] || null;
},

getAnchorIndex : function() {
	var arr =3D hs.getAnchors().groups[this.slideshowGroup || 'none'];
	if (arr) for (var i =3D 0; i < arr.length; i++) {
		if (arr[i] =3D=3D this.a) return i;=20
	}
	return null;
},


getNumber : function() {
	if (this[this.numberPosition]) {
		var arr =3D hs.anchors.groups[this.slideshowGroup || 'none'];
		if (arr) {
			var s =3D hs.lang.number.replace('%1', this.getAnchorIndex() + =
1).replace('%2', arr.length);=0A=
			this[this.numberPosition].innerHTML =3D=20
				'<div class=3D"highslide-number">'+ s +'</div>'+ =
this[this.numberPosition].innerHTML;
		}
	}
},
initSlideshow : function() {
	if (!this.last) {=0A=
		for (var i =3D 0; i < hs.slideshows.length; i++) {
			var ss =3D hs.slideshows[i], sg =3D ss.slideshowGroup;
			if (typeof sg =3D=3D 'undefined' || sg =3D=3D=3D null || sg =3D=3D=3D =
this.slideshowGroup)=20
				this.slideshow =3D new hs.Slideshow(this.key, ss);
		}=20
	} else {=0A=
		this.slideshow =3D this.last.slideshow;
	}
	var ss =3D this.slideshow;
	if (!ss) return;
	var key =3D ss.expKey =3D this.key;
=09
	ss.checkFirstAndLast();
	ss.disable('full-expand');
	if (ss.controls) {
		var o =3D ss.overlayOptions || {};
		o.overlayId =3D ss.controls;
		o.hsId =3D 'controls';	=09
		this.createOverlay(o);
	}
	if (ss.thumbstrip) ss.thumbstrip.add(this);=0A=
	if (!this.last && this.autoplay) ss.play(true);=0A=
	if (ss.autoplay) {
		ss.autoplay =3D setTimeout(function() {
			hs.next(key);
		}, (ss.interval || 500));
	}
},

cancelLoading : function() {
	hs.discardElement (this.wrapper);
	hs.expanders[this.key] =3D null;
	if (hs.upcoming =3D=3D this.a) hs.upcoming =3D null;
	hs.undim(this.key);
	if (this.loading) hs.loading.style.left =3D '-9999px';
},

writeCredits : function () {
	if (this.credits) return;
	this.credits =3D hs.createElement('a', {
		href: hs.creditsHref,
		target: hs.creditsTarget,
		className: 'highslide-credits',
		innerHTML: hs.lang.creditsText,
		title: hs.lang.creditsTitle
	});
	this.createOverlay({=20
		overlayId: this.credits,=20
		position: this.creditsPosition || 'top left',=20
		hsId: 'credits'=20
	});
},

getInline : function(types, addOverlay) {
	for (var i =3D 0; i < types.length; i++) {
		var type =3D types[i], s =3D null;=0A=
		if (!this[type +'Id'] && this.thumbsUserSetId) =20
			this[type +'Id'] =3D type +'-for-'+ this.thumbsUserSetId;=0A=
		if (this[type +'Id']) this[type] =3D hs.getNode(this[type +'Id']);=0A=
		if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
			s =3D eval(this[type +'Eval']);
		} catch (e) {}=0A=
		if (!this[type] && this[type +'Text']) {
			s =3D this[type +'Text'];
		}=0A=
		if (!this[type] && !s) {
			var next =3D this.a.nextSibling;
			while (next && !hs.isHsAnchor(next)) {
				if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
					this[type] =3D next.cloneNode(1);
					break;
				}
				next =3D next.nextSibling;
			}
		}=0A=
		if (!this[type] && !s && this.numberPosition =3D=3D type) s =3D '\n';
	=09
		if (!this[type] && s) this[type] =3D hs.createElement('div',=20
				{ className: 'highslide-'+ type, innerHTML: s } );
	=09
		if (addOverlay && this[type]) {
			var o =3D { position: (type =3D=3D 'heading') ? 'above' : 'below' };=0A=
			for (var x in this[type+'Overlay']) o[x] =3D this[type+'Overlay'][x];
			o.overlayId =3D this[type];
			this.createOverlay(o);
		}
	}
},


// on end move and resize
doShowHide : function(visibility) {
	if (hs.hideSelects) this.showHideElements('SELECT', visibility);
	if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
	if (hs.geckoMac) this.showHideElements('*', visibility);
},
showHideElements : function (tagName, visibility) {
	var els =3D document.getElementsByTagName(tagName);
	var prop =3D tagName =3D=3D '*' ? 'overflow' : 'visibility';
	for (var i =3D 0; i < els.length; i++) {
		if (prop =3D=3D 'visibility' || =
(document.defaultView.getComputedStyle(
				els[i], "").getPropertyValue('overflow') =3D=3D 'auto'
				|| els[i].getAttribute('hidden-by') !=3D null)) {
			var hiddenBy =3D els[i].getAttribute('hidden-by');
			if (visibility =3D=3D 'visible' && hiddenBy) {
				hiddenBy =3D hiddenBy.replace('['+ this.key +']', '');
				els[i].setAttribute('hidden-by', hiddenBy);
				if (!hiddenBy) els[i].style[prop] =3D els[i].origProp;
			} else if (visibility =3D=3D 'hidden') { // hide if behind
				var elPos =3D hs.getPosition(els[i]);
				elPos.w =3D els[i].offsetWidth;
				elPos.h =3D els[i].offsetHeight;
				if (!this.dimmingOpacity) { // hide all if dimming
			=09
					var clearsX =3D (elPos.x + elPos.w < this.x.get('opos')=20
						|| elPos.x > this.x.get('opos') + this.x.get('osize'));
					var clearsY =3D (elPos.y + elPos.h < this.y.get('opos')=20
						|| elPos.y > this.y.get('opos') + this.y.get('osize'));
				}
				var wrapperKey =3D hs.getWrapperKey(els[i]);
				if (!clearsX && !clearsY && wrapperKey !=3D this.key) { // element =
falls behind image
					if (!hiddenBy) {
						els[i].setAttribute('hidden-by', '['+ this.key +']');
						els[i].origProp =3D els[i].style[prop];
						els[i].style[prop] =3D 'hidden';
					=09
					} else if (hiddenBy.indexOf('['+ this.key +']') =3D=3D -1) {
						els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
					}
				} else if ((hiddenBy =3D=3D '['+ this.key +']' || hs.focusKey =3D=3D =
wrapperKey)
						&& wrapperKey !=3D this.key) { // on move
					els[i].setAttribute('hidden-by', '');
					els[i].style[prop] =3D els[i].origProp || '';
				} else if (hiddenBy && hiddenBy.indexOf('['+ this.key +']') > -1) {
					els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key =
+']', ''));
				}
					=09
			}
		}
	}
},

focus : function() {
	this.wrapper.style.zIndex =3D hs.zIndexCounter +=3D 2;
	// blur others
	for (var i =3D 0; i < hs.expanders.length; i++) {
		if (hs.expanders[i] && i =3D=3D hs.focusKey) {
			var blurExp =3D hs.expanders[i];
			blurExp.content.className +=3D ' highslide-'+ blurExp.contentType =
+'-blur';
				blurExp.content.style.cursor =3D hs.ie ? 'hand' : 'pointer';
				blurExp.content.title =3D hs.lang.focusTitle;
		}
	}
=09
	// focus this
	if (this.outline) this.outline.table.style.zIndex=20
		=3D this.wrapper.style.zIndex - 1;
	this.content.className =3D 'highslide-'+ this.contentType;
		this.content.title =3D hs.lang.restoreTitle;
	=09
		if (hs.restoreCursor) {
			hs.styleRestoreCursor =3D window.opera ? 'pointer' : 'url('+ =
hs.graphicsDir + hs.restoreCursor +'), pointer';
			if (hs.ie && hs.uaVersion < 6) hs.styleRestoreCursor =3D 'hand';
			this.content.style.cursor =3D hs.styleRestoreCursor;
		}
	=09
	hs.focusKey =3D this.key;=09
	hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', =
hs.keyHandler);=09
},
moveTo: function(x, y) {
	this.x.setPos(x);
	this.y.setPos(y);
},
resize : function (e) {
	var w, h, r =3D e.width / e.height;=0A=
	w =3D Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
	if (this.isImage && Math.abs(w - this.x.full) < 12) w =3D this.x.full;=0A=
	h =3D w / r;=0A=
	if (h < Math.min(this.minHeight, this.y.full)) {
		h =3D Math.min(this.minHeight, this.y.full);
		if (this.isImage) w =3D h * r;
	}
	this.resizeTo(w, h);
},
resizeTo: function(w, h) {
	this.y.setSize(h);=0A=
	this.x.setSize(w);
},

close : function() {
	if (this.isClosing || !this.isExpanded) return;=0A=
	if (this.transitions[1] =3D=3D 'crossfade' && hs.upcoming) {
		hs.getExpander(hs.upcoming).cancelLoading();
		hs.upcoming =3D null;
	}
	this.isClosing =3D true;
	if (this.slideshow && !hs.upcoming) this.slideshow.pause();
=09
	hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', =
hs.keyHandler);
=09
	try {
		this.content.style.cursor =3D 'default';
		this.changeSize(
			0, {
				wrapper: {
					width : this.x.t,
					height : this.y.t,
					left: this.x.tpos - this.x.cb + this.x.tb,
					top: this.y.tpos - this.y.cb + this.y.tb
				},
				content: {
					left: 0,
					top: 0,
					width: this.x.t,
					height: this.y.t
				}
			}, hs.restoreDuration
		);
	} catch (e) { this.afterClose(); }
},

createOverlay : function (o) {
	var el =3D o.overlayId,=20
		relToVP =3D (o.relativeTo =3D=3D 'viewport' && =
!/panel$/.test(o.position));
	if (typeof el =3D=3D 'string') el =3D hs.getNode(el);
	if (o.html) el =3D hs.createElement('div', { innerHTML: o.html });
	if (!el || typeof el =3D=3D 'string') return;
	el.style.display =3D 'block';
	o.hsId =3D o.hsId || o.overlayId;=20
	if (this.transitions[1] =3D=3D 'crossfade' && this.reuseOverlay(o, el)) =
return;
	this.genOverlayBox();
	var width =3D o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : =
'auto';=0A=
	if (/^(left|right)panel$/.test(o.position) && =
!/^[0-9]+px$/.test(o.width)) width =3D '200px';
	var overlay =3D hs.createElement(
		'div', {
			id: 'hsId'+ hs.idCounter++,
			hsId: o.hsId
		}, {
			position: 'absolute',
			visibility: 'hidden',
			width: width,
			direction: hs.lang.cssDirection || '',
			opacity: 0
		},
		relToVP ? hs.viewport :this.overlayBox,
		true
	);
	if (relToVP) overlay.hsKey =3D this.key;
=09
	overlay.appendChild(el);
	hs.extend(overlay, {=0A=
		opacity: 1,
		offsetX: 0,
		offsetY: 0,
		dur: (o.fade =3D=3D=3D 0 || o.fade =3D=3D=3D false || (o.fade =3D=3D 2 =
&& hs.ie)) ? 0 : 250
	});
	hs.extend(overlay, o);=0A=
	=09
	if (this.gotOverlays) {=0A=
		this.positionOverlay(overlay);
		if (!overlay.hideOnMouseOut || this.mouseIsOver)=20
			hs.animate(overlay, { opacity: overlay.opacity }, overlay.dur);
	}
	hs.push(this.overlays, hs.idCounter - 1);
},
positionOverlay : function(overlay) {
	var p =3D overlay.position || 'middle center',
		relToVP =3D (overlay.relativeTo =3D=3D 'viewport'),
		offX =3D overlay.offsetX,
		offY =3D overlay.offsetY;=0A=
	if (relToVP) {
		hs.viewport.style.display =3D 'block';
		overlay.hsKey =3D this.key;
		if (overlay.offsetWidth > overlay.parentNode.offsetWidth)=0A=
			overlay.style.width =3D '100%';
	} else
	if (overlay.parentNode !=3D this.overlayBox) =
this.overlayBox.appendChild(overlay);=0A=
	if (/left$/.test(p)) overlay.style.left =3D offX +'px';=20
=09
	if (/center$/.test(p))	hs.setStyles (overlay, {=20
		left: '50%',
		marginLeft: (offX - Math.round(overlay.offsetWidth / 2)) +'px'
	});=09
=09
	if (/right$/.test(p)) overlay.style.right =3D - offX +'px';
	=09
	if (/^leftpanel$/.test(p)) {=20
		hs.setStyles(overlay, {
			right: '100%',
			marginRight: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});		=20
		this.x.p1 =3D overlay.offsetWidth;
=09
	} else if (/^rightpanel$/.test(p)) {
		hs.setStyles(overlay, {
			left: '100%',
			marginLeft: this.x.cb +'px',
			top: - this.y.cb +'px',
			bottom: - this.y.cb +'px',
			overflow: 'auto'
		});
		this.x.p2 =3D overlay.offsetWidth;
	}=0A=
	var parOff =3D overlay.parentNode.offsetHeight;
	overlay.style.height =3D 'auto';
	if (relToVP && overlay.offsetHeight > parOff)=0A=
		overlay.style.height =3D hs.ieLt7 ? parOff +'px' : '100%';

	if (/^top/.test(p)) overlay.style.top =3D offY +'px';=20
	if (/^middle/.test(p))	hs.setStyles (overlay, {=20
		top: '50%',=20
		marginTop: (offY - Math.round(overlay.offsetHeight / 2)) +'px'
	});=09
	if (/^bottom/.test(p)) overlay.style.bottom =3D - offY +'px';=0A=
	if (/^above$/.test(p)) {
		hs.setStyles(overlay, {
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			bottom: '100%',
			marginBottom: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p1 =3D overlay.offsetHeight;
=09
	} else if (/^below$/.test(p)) {
		hs.setStyles(overlay, {
			position: 'relative',
			left: (- this.x.p1 - this.x.cb) +'px',
			right: (- this.x.p2 - this.x.cb) +'px',
			top: '100%',
			marginTop: this.y.cb +'px',
			width: 'auto'
		});
		this.y.p2 =3D overlay.offsetHeight;
		overlay.style.position =3D 'absolute';=0A=
	}
},

getOverlays : function() {=09
	this.getInline(['heading', 'caption'], true);
	this.getNumber();
	if (this.heading && this.dragByHeading) this.heading.className +=3D ' =
highslide-move';
	if (hs.showCredits) this.writeCredits();
	for (var i =3D 0; i < hs.overlays.length; i++) {
		var o =3D hs.overlays[i], tId =3D o.thumbnailId, sg =3D =
o.slideshowGroup;
		if ((!tId && !sg) || (tId && tId =3D=3D this.thumbsUserSetId)
				|| (sg && sg =3D=3D=3D this.slideshowGroup)) {
			this.createOverlay(o);
		}
	}=0A=
	var os =3D [];
	for (var i =3D 0; i < this.overlays.length; i++) {
		var o =3D hs.$('hsId'+ this.overlays[i]);
		if (/panel$/.test(o.position)) this.positionOverlay(o);
		else hs.push(os, o);
	}=0A=
	for (var i =3D 0; i < os.length; i++) this.positionOverlay(os[i]);
	this.gotOverlays =3D true;
},
genOverlayBox : function() {
	if (!this.overlayBox) this.overlayBox =3D hs.createElement (
		'div', {
			className: this.wrapperClassName=0A=
		}, {
			position : 'absolute',
			width: (this.x.size || (this.useBox ? this.width : null)=20
				|| this.x.full) +'px',=0A=
			height: (this.y.size || this.y.full) +'px',
			visibility : 'hidden',
			overflow : 'hidden',=0A=
			zIndex : hs.ie ? 4 : null
		},
		hs.container,
		true
	);
},
sizeOverlayBox : function(doWrapper, doPanels) {
	var overlayBox =3D this.overlayBox,=20
		x =3D this.x,
		y =3D this.y;
	hs.setStyles( overlayBox, {
		width: x.size +'px',=20
		height: y.size +'px'
	});
	if (doWrapper || doPanels) {
		for (var i =3D 0; i < this.overlays.length; i++) {
			var o =3D hs.$('hsId'+ this.overlays[i]);
			var ie6 =3D (hs.ieLt7 || document.compatMode =3D=3D 'BackCompat');
			if (o && /^(above|below)$/.test(o.position)) {=0A=
				if (ie6) {
					o.style.width =3D (overlayBox.offsetWidth + 2 * x.cb
						+ x.p1 + x.p2) +'px';
				}=0A=
				y[o.position =3D=3D 'above' ? 'p1' : 'p2'] =3D o.offsetHeight;
			}=0A=
			if (o && ie6 && /^(left|right)panel$/.test(o.position)) {
				o.style.height =3D (overlayBox.offsetHeight + 2* y.cb) +'px';
			}
		}
	}
	if (doWrapper) {
		hs.setStyles(this.content, {
			top: y.p1 +'px'
		});
		hs.setStyles(overlayBox, {
			top: (y.p1 + y.cb) +'px'
		});
	}
},

showOverlays : function() {=0A=
	var b =3D this.overlayBox;
	b.className =3D '';
	hs.setStyles(b, {
		top: (this.y.p1 + this.y.cb) +'px',
		left: (this.x.p1 + this.x.cb) +'px',
		overflow : 'visible'
	});
	if (hs.safari) b.style.visibility =3D 'visible';
	this.wrapper.appendChild (b);=0A=
	for (var i =3D 0; i < this.overlays.length; i++) {
		var o =3D hs.$('hsId'+ this.overlays[i]);
		o.style.zIndex =3D o.hsId =3D=3D 'controls' ? 5 : 4;
		if (!o.hideOnMouseOut || this.mouseIsOver) {
			o.style.visibility =3D 'visible';
			hs.setStyles(o, { visibility: 'visible', display: '' });
			hs.animate(o, { opacity: o.opacity }, o.dur);
		}
	}
},

destroyOverlays : function() {
	if (!this.overlays.length) return;
	for (var i =3D 0; i < this.overlays.length; i++) {
		var o =3D hs.$('hsId'+ this.overlays[i]);
		if (o.parentNode =3D=3D hs.viewport) hs.discardElement(o);
	}
	if (this.slideshow) {=0A=
		var c =3D this.slideshow.controls;
		if (c && hs.getExpander(c) =3D=3D this) c.parentNode.removeChild(c);
	}
	hs.discardElement(this.overlayBox);
},



createFullExpand : function () {
	if (this.slideshow && this.slideshow.controls) {
		this.slideshow.enable('full-expand');
		return;
	}
	this.fullExpandLabel =3D hs.createElement(
		'a', {
			href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
			title: hs.lang.fullExpandTitle,
			className: 'highslide-full-expand'
		}
	);
=09
	this.createOverlay({=20
		overlayId: this.fullExpandLabel,=20
		position: hs.fullExpandPosition,=20
		hideOnMouseOut: true,=20
		opacity: hs.fullExpandOpacity
	});
},

doFullExpand : function () {
	try {
		if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
	=09
		this.focus();
		var xSize =3D this.x.size;
		this.resizeTo(this.x.full, this.y.full);
	=09
		var xpos =3D this.x.pos - (this.x.size - xSize) / 2;
		if (xpos < hs.marginLeft) xpos =3D hs.marginLeft;
	=09
		this.moveTo(xpos, this.y.pos);
		this.doShowHide('hidden');
		hs.setDimmerSize(this);
=09
	} catch (e) {
		this.error(e);
	}
},


afterClose : function () {
	this.a.className =3D =
this.a.className.replace('highslide-active-anchor', '');
=09
	this.doShowHide('visible');
		if (this.outline && this.outlineWhileAnimating) =
this.outline.destroy();
=09
		hs.discardElement(this.wrapper);
	if (!hs.viewport.childNodes.length) hs.viewport.style.display =3D =
'none';
=09
	if (this.dimmingOpacity) hs.undim(this.key);
	hs.expanders[this.key] =3D null;	=09
	hs.reOrder();
}

};


hs.Slideshow =3D function (expKey, options) {
	if (hs.dynamicallyUpdateAnchors !=3D=3D false) hs.updateAnchors();
	this.expKey =3D expKey;
	for (var x in options) this[x] =3D options[x];
	if (this.useControls) this.getControls();
	if (this.thumbstrip) this.thumbstrip =3D hs.Thumbstrip(this);
};
hs.Slideshow.prototype =3D {
getControls: function() {
	this.controls =3D hs.createElement('div', { innerHTML: =
hs.replaceLang(hs.skin.controls) },=20
		null, hs.container);
=09
	var buttons =3D ['play', 'pause', 'previous', 'next', 'move', =
'full-expand', 'close'];=0A=
	this.btn =3D {};
	var pThis =3D this;
	for (var i =3D 0; i < buttons.length; i++) {
		this.btn[buttons[i]] =3D hs.getElementByClass(this.controls, 'li', =
'highslide-'+ buttons[i]);
		this.enable(buttons[i]);
	}=0A=
	this.btn.pause.style.display =3D 'none';
	//this.disable('full-expand');
},
checkFirstAndLast: function() {=0A=
	if (this.repeat || !this.controls) return;
	var exp =3D hs.expanders[this.expKey],
		cur =3D exp.getAnchorIndex(),=20
		re =3D /disabled$/;
	if (cur =3D=3D 0)=20
		this.disable('previous');
	else if =
(re.test(this.btn.previous.getElementsByTagName('a')[0].className))
		this.enable('previous');
	if (cur + 1 =3D=3D hs.anchors.groups[exp.slideshowGroup || =
'none'].length) {
		this.disable('next');
		this.disable('play');
	} else if =
(re.test(this.btn.next.getElementsByTagName('a')[0].className)) {
		this.enable('next');
		this.enable('play');
	}
},
enable: function(btn) {
	if (!this.btn) return;
	var sls =3D this, a =3D this.btn[btn].getElementsByTagName('a')[0], re =
=3D /disabled$/;
	a.onclick =3D function() {
		sls[btn]();
		return false;
	};
	if (re.test(a.className)) a.className =3D a.className.replace(re, '');
},
disable: function(btn) {
	if (!this.btn) return;
	var a =3D this.btn[btn].getElementsByTagName('a')[0];
	a.onclick =3D function() { return false; };
	if (!/disabled$/.test(a.className)) a.className +=3D ' disabled';
},
hitSpace: function() {
	if (this.autoplay) this.pause();
	else this.play();
},
play: function(wait) {
	if (this.btn) {
		this.btn.play.style.display =3D 'none';
		this.btn.pause.style.display =3D '';
	}
=09
	this.autoplay =3D true;=09
	if (!wait) hs.next(this.expKey);
},
pause: function() {
	if (this.btn) {
		this.btn.pause.style.display =3D 'none';
		this.btn.play.style.display =3D '';
	}
=09
	clearTimeout(this.autoplay);
	this.autoplay =3D null;
},
previous: function() {
	this.pause();
	hs.previous(this.btn.previous);
},
next: function() {
	this.pause();
	hs.next(this.btn.next);
},
move: function() {},
'full-expand': function() {
	hs.getExpander().doFullExpand();
},
close: function() {
	hs.close(this.btn.close);
}
};
hs.Thumbstrip =3D function(slideshow) {
	function add (exp) {
		hs.extend(options || {}, {
			overlayId: dom,
			hsId: 'thumbstrip'
		});
		if (hs.ieLt7) options.fade =3D 0;=0A=
		exp.createOverlay(options);=0A=
		hs.setStyles(dom.parentNode, { overflow: 'hidden' });
	};
=09
	function scroll (delta) {=09
		selectThumb(undefined, Math.round(delta * dom[isX ? 'offsetWidth' : =
'offsetHeight'] * 0.7));
	};
=09
	function selectThumb (i, scrollBy) {=0A=
		if (i =3D=3D=3D undefined) for (var j =3D 0; j < group.length; j++) {
			if (group[j] =3D=3D hs.expanders[slideshow.expKey].a) {
				i =3D j;
				break;
			}
		}
		if (i =3D=3D=3D undefined) return;=0A=
		var as =3D dom.getElementsByTagName('a'),
			active =3D as[i],
			cell =3D active.parentNode,
			left =3D isX ? 'Left' : 'Top',
			right =3D isX ? 'Right' : 'Bottom',
			width =3D isX ? 'Width' : 'Height',
			offsetLeft =3D 'offset' + left,
			offsetWidth =3D 'offset' + width,
			overlayWidth =3D div.parentNode.parentNode[offsetWidth],
			minTblPos =3D overlayWidth - table[offsetWidth],
			curTblPos =3D parseInt(table.style[isX ? 'left' : 'top']) || 0,
			tblPos =3D curTblPos,
			mgnRight =3D 20;=0A=
		if (scrollBy !=3D=3D undefined) {
			tblPos =3D curTblPos - scrollBy;
			if (tblPos > 0) tblPos =3D 0;
			if (tblPos < minTblPos) tblPos =3D minTblPos;
=09
		} else {=0A=
			for (var j =3D 0; j < as.length; j++) as[j].className =3D '';
			active.className =3D 'highslide-active-anchor';=0A=
			var activeLeft =3D i > 0 ? as[i - 1].parentNode[offsetLeft] : =
cell[offsetLeft],
				activeRight =3D cell[offsetLeft] + cell[offsetWidth] +=20
					(as[i + 1] ? as[i + 1].parentNode[offsetWidth] : 0);=0A=
			if (activeRight > overlayWidth - curTblPos) tblPos =3D overlayWidth - =
activeRight;
			else if (activeLeft < -curTblPos) tblPos =3D -activeLeft;
		}=0A=
		var markerPos =3D cell[offsetLeft] + (cell[offsetWidth] - =
marker[offsetWidth]) / 2 + tblPos;=0A=
		hs.animate(table, isX ? { left: tblPos } : { top: tblPos }, null, =
'easeOutQuad');
		hs.animate(marker, isX ? { left: markerPos } : { top: markerPos }, =
null, 'easeOutQuad');=0A=
		scrollUp.style.display =3D tblPos < 0 ? 'block' : 'none';
		scrollDown.style.display =3D (tblPos > minTblPos)  ? 'block' : 'none';
	};
=09

	// initialize
	var group =3D =
hs.anchors.groups[hs.expanders[slideshow.expKey].slideshowGroup || =
'none'],
		options =3D slideshow.thumbstrip,=0A=
		mode =3D options.mode || 'horizontal',
		floatMode =3D (mode =3D=3D 'float'),
		tree =3D floatMode ? ['div', 'ul', 'li', 'span'] : ['table', 'tbody', =
'tr', 'td'],
		isX =3D (mode =3D=3D 'horizontal'),
		dom =3D hs.createElement('div', {
				className: 'highslide-thumbstrip highslide-thumbstrip-'+ mode,
				innerHTML:
					'<div class=3D"highslide-thumbstrip-inner">'+
					'<'+ tree[0] +'><'+ tree[1] +'></'+ tree[1] +'></'+ tree[0] =
+'></div>'+
					'<div class=3D"highslide-scroll-up"><div></div></div>'+
					'<div class=3D"highslide-scroll-down"><div></div></div>'+
					'<div class=3D"highslide-marker"><div></div></div>'
			}, {
				display: 'none'
			}, hs.container),
		domCh =3D dom.childNodes,
		div =3D domCh[0],
		scrollUp =3D domCh[1],
		scrollDown =3D domCh[2],
		marker =3D domCh[3],
		table =3D div.firstChild,
		tbody =3D dom.getElementsByTagName(tree[1])[0],
		tr;=0A=
	for (var i =3D 0; i < group.length; i++) {
		if (i =3D=3D 0 || !isX) tr =3D hs.createElement(tree[2], null, null, =
tbody);
		(function(){
			var a =3D group[i],
				cell =3D hs.createElement(tree[3], null, null, tr),
				pI =3D i;
			hs.createElement('a', {
				href: a.href,
				onclick: function() {
					hs.getExpander(this).focus();
					return hs.transit(a);
				},
				innerHTML: hs.stripItemFormatter ? hs.stripItemFormatter(a) : =
a.innerHTML
			}, null, cell);
		})();
	}
=09
	if (!floatMode) {=0A=
		scrollUp.onclick =3D function () { scroll(-1); };
		scrollDown.onclick =3D function() { scroll(1); };=0A=
		hs.addEventListener(tbody, document.onmousewheel !=3D=3D undefined ?=20
				'mousewheel' : 'DOMMouseScroll', function(e) {       =20
			var delta =3D 0;
	        e =3D e || window.event;
	        if (e.wheelDelta) {=0A=
				delta =3D e.wheelDelta/120;
				if (hs.opera) delta =3D -delta;
	        } else if (e.detail) {=0A=
				delta =3D -e.detail/3;
	        }
	        if (delta) scroll(-delta * 0.2);
	        if (e.preventDefault) e.preventDefault();
			e.returnValue =3D false;
		});
	}
=09
	return {
		add: add,
		selectThumb: selectThumb
	}
};=0A=
if (hs.ie) {=0A=
	(function () {
		try {
			document.documentElement.doScroll('left');
		} catch (e) {
			setTimeout(arguments.callee, 50);
			return;
		}
		hs.ready();
	})();
}
hs.addEventListener(document, 'DOMContentLoaded', hs.ready);
hs.addEventListener(window, 'load', hs.ready);=0A=
hs.langDefaults =3D hs.lang;
// history
var HsExpander =3D hs.Expander;

// set handlers
hs.addEventListener(window, 'load', function() {
	if (hs.expandCursor) {=0A=
		var sel =3D '.highslide img',=20
			dec =3D 'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer =
!important;';
		=09
		var style =3D hs.createElement('style', { type: 'text/css' }, null,=20
			document.getElementsByTagName('HEAD')[0]);
=09
		if (!hs.ie) {
			style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
		} else {
			var last =3D document.styleSheets[document.styleSheets.length - 1];
			if (typeof(last.addRule) =3D=3D "object") last.addRule(sel, dec);
		}
	}
});
hs.addEventListener(window, 'resize', function() {
	hs.getPageSize();
	if (hs.viewport) for (var i =3D 0; i < hs.viewport.childNodes.length; =
i++) {
		var node =3D hs.viewport.childNodes[i],
			exp =3D hs.getExpander(node);
		exp.positionOverlay(node);
		if (node.hsId =3D=3D 'thumbstrip') =
exp.slideshow.thumbstrip.selectThumb();
	}
});
hs.addEventListener(document, 'mousemove', function(e) {
	hs.mouse =3D { x: e.clientX, y: e.clientY	};
});
hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);

hs.addEventListener(document, 'ready', hs.getAnchors);
hs.addEventListener(window, 'load', hs.preloadImages);
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.state-journal.com/highslide/highslide.config.js

    // override Highslide settings here=0A=
    // instead of editing the highslide.js file=0A=
    hs.graphicsDir =3D '/highslide/graphics/';=0A=
    hs.align =3D 'auto';=0A=
=0A=
    hs.addSlideshow({=0A=
	// slideshowGroup: 'group1',=0A=
	interval: 5000,=0A=
	repeat: false,=0A=
	useControls: true,=0A=
	fixedControls: true,=0A=
	overlayOptions: {=0A=
		opacity: .6,=0A=
		position: 'top center',=0A=
		hideOnMouseOut: true=0A=
	}=0A=
});=0A=
=0A=
// Optional: a crossfade transition looks good with the slideshow=0A=
hs.transitions =3D ['expand', 'crossfade'];=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/ga.js

//***********************************************************************=
*****
// Copyright (C) thePlatform for Media, Inc. All Rights Reserved.
//***********************************************************************=
*****

// a map of trackers, keyed by instance ID
var tpGaPageTrackers;

// a map of tracking queues, keyed by instance ID
var tpGaTrackingQueues;

// this is the callback for when this file is loaded.
function tpGaWrapperLoaded(s)
{
	var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
	tpScriptLoader.addScript(gaJsHost + "google-analytics.com/ga.js", =
"tpGaLoaded");
}

// this is the callback for the scripts used by this file are loaded.
function tpGaLoaded()
{
	tpController.dispatchEvent("OnJavascriptLoaded", "tpGaLoaded");
}

// initialize tracking
function tpGaInit(instanceID, trackingID)
{
	if (!tpGaPageTrackers)
	{
		tpGaPageTrackers =3D new Object();
	}
	tpGaPageTrackers[instanceID] =3D _gat._getTracker(trackingID);
	tpGaPageTrackers[instanceID]._initData();
}

// post a URL directly; should only be called privately
function tpGaTrack(instanceID, url)
{
	tpGaPageTrackers[instanceID]._trackPageview(url);
}

// add a URL to a queue of usage to be sent; this is to handle page =
close events
function tpGaUpdateTracking(instanceID, clipID, url)
{
	if (!tpGaTrackingQueues)
	{
		tpGaTrackingQueues =3D new Object();
	}
	if (!tpGaTrackingQueues[instanceID])
	{
		tpGaTrackingQueues[instanceID] =3D new Object();
	}
	tpGaTrackingQueues[instanceID][clipID] =3D url;
}

// commit pending tracking for a particular instance
function tpGaCommit(instanceID, clipID)
{
	var url =3D tpGaTrackingQueues[instanceID][clipID];
	if (url)
	{
		tpGaTrack(instanceID, url);
		tpGaTrackingQueues[instanceID][clipID] =3D null;
	}
}

// commit all pending tracking for all trackers; used on unload
function tpGaCommitAll()
{
	for (var instanceID in tpGaTrackingQueues)
	{
		var queue =3D tpGaTrackingQueues[instanceID];
		for (var clipID in queue)
		{
			var url =3D queue[clipID];
			if (url !=3D null)
			{
				tpGaTrack(instanceID, url);
			}
		}
	}
	tpGaTrackingQueues =3D new Object();
}

// set up the onunload event handler
if(window.attachEvent)
{
	window.attachEvent("onunload", tpGaCommitAll);
}
else if(window.addEventListener)
{
	window.addEventListener("unload", tpGaCommitAll, false);
}
else
{
	window.onunload =3D tpGaCommitAll;
}


------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/qos.js

/**********************************
Here is a list of the events that are produced by the flvPlayer.
Data structures are explained below.  NOTE: The mediaType for any event =
that sends back an entire playlist
is always "ALL".

Events that send in a playlist data type (which can include multiple =
clips):
onPlaylistBegin -- fired when new playlist data is first received by the =
player
onPlaylistEnd -- fired when a playlist has completed playing, either =
naturally or when it is replaced by another playlist
onClipTime -- fired every 5 seconds or so to give a snapshot of the =
state of the current playlist and the clips within it

Events that send in a single clip data type:
onBeginMedia -- fired when a media first starts playing, after it has =
buffered sufficiently.
onEndMedia -- fired when a media has completed naturally.  If a media =
ends because the playlist has been replaced, this event is not fired.
onMidMedia -- fired when a media reaches a point between 40 and 60 =
percent.  If the user skips over this section of the media, this event =
is not fired

playlist data type:
pl.currentDate
pl.playlistID
pl.userName
pl.countryCode
pl.regionCode
pl.browser
pl.operatingSystem
pl.feed
pl.affiliateTag
pl.playerName
pl.clips //array of clips below

clip data type:
clip.baseClip.title
clip.baseClip.author
clip.baseClip.abstract
clip.baseClip.copyright
clip.baseClip.height
clip.baseClip.width
clip.baseClip.isAd
clip.baseClip.keywords
clip.baseClip.releaseID
clip.baseClip.releaseLength -- the length of the clip as shown in =
system, in milliseconds
clip.baseClip.bitrate:Number -- the bitrate of the clip as shown in =
system, bps (not kbps)
clip.baseClip.trueLength -- the actual length of the clip as determined =
at runtime, in milliseconds
clip.baseClip.trueBitrate -- the actual bitrate of the clip as =
determined at runtime, in kbps (not bps)
clip.baseClip.connectionBitrate -- the actual bitrate of the user's =
connection as determined at runtime, if this data could not be =
ascertained, this value will be undefined, in kbps (not bps)
clip.baseClip.loadTime -- the total miliseconds between when the request =
is made for the clip and when the clip starts running.
clip.baseClip.lengthPlayed -- the total miliseconds that the clip =
actually played, if the clip did not play, this value is undefined
clip.baseClip.rebufferingTime -- the total miliseconds the player spent =
buffering itself.

***************************************/

tpQOSTypeArray =3D new Array();
var tpQOScurrentPL;
var tpQOSunloading;

function tpRegisterQOSType(eventType, mediaType, callback)
{
	for (var i =3D 1; i < tpQOSTypeArray.length; i++)
	{
		if (tpQOSTypeArray[i].eventType =3D=3D eventType && =
tpQOSTypeArray[i].mediaType =3D=3D mediaType && =
tpQOSTypeArray[i].callback =3D=3D callback)
		{
			return;//there's already one there, don't put another in
		}
	}=09
	var qosTypeObj =3D {mediaType:mediaType, eventType:eventType, =
callback:callback}
	tpQOSTypeArray.push(qosTypeObj);
}

function tpUnregisterQOSType(type, callback)
{
	for (var i =3D 1; i < tpQOSTypeArray.length; i++)
	{
		if (tpQOSTypeArray[i].eventType =3D=3D eventType && =
tpQOSTypeArray[i].mediaType =3D=3D mediaType && =
tpQOSTypeArray[i].callback =3D=3D callback)
		{
			tpQOSTypeArray.splice(i, 1);//get rid of the element
			break;
		}
	}
}

//called from the Player when an event is fired
function tpReceiveQOSEvent(eventType, mediaType, obj)
{
	if (obj =3D=3D undefined) return;//don't do anything, the data is bad
=09
	if (eventType =3D=3D "onClipTime" || eventType =3D=3D =
"onPlaylistBegin")
	{
		tpQOScurrentPL =3D obj;
	}
	else if (eventType =3D=3D "onPlaylistEnd")
	{
		tpQOScurrentPL =3D null;//get rid so we don't hit twice if browser =
closes and a new playlist hasn't yet replaced the old
	}
=09
	//go through the type array and see if we have a match
=09
	for (var i =3D 0; i < tpQOSTypeArray.length; i++)
	{
		if (tpQOSTypeArray[i].eventType =3D=3D eventType && (mediaType =3D=3D =
"ALL" || tpQOSTypeArray[i].mediaType =3D=3D mediaType || =
tpQOSTypeArray[i].mediaType =3D=3D "ALL"))
		{
			eval(tpQOSTypeArray[i].callback)(obj);
		}
	}
}

window.onunload =3D function()
{
	tpQOSUnload();
}

function tpQOSUnload()
{
	if(tpQOScurrentPL =3D=3D undefined || tpQOScurrentPL =3D=3D null) =
return;
	//mock up a playlist end event
	tpQOSunloading =3D true;
	tpReceiveQOSEvent("onPlaylistEnd", "ALL", tpQOScurrentPL);
}

function tpQOSSendURL(url)
{
alert("sending: " + url);
	connection.src =3D url;
	if (tpQOSunloading)
	{
		for (i =3D 0; ((!connection.complete) && (i < 100000)); i++)
		{
		}
	}
}


------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/qos_mps.js



//register our functionality with the qos component
tpRegisterQOSType("onPlaylistEnd", "ALL", "QOSMPS_handlePLEnd");

//what's the base url for the mps qos?
var QOSMPS_baseUrl =3D "http://release.theplatform.com/tracker.log"
var QOSMPS_qs =3D "";
var QOSMPS_baseCount =3D 0;
var QOSMPS_baseClips =3D new Array();

function QOSMPS_handlePLEnd(pl)
{
	QOSMPS_baseCount =3D 0;
	QOSMPS_baseClips.length =3D 0;
	//the first 3 values are always the same
	QOSMPS_qs =3D "?type=3Dqos&ver=3D1";
	//let's parse out the query string
	if (pl.currentDate !=3D undefined) QOSMPS_appendStr_qs("d", =
pl.currentDate);
	if (pl.userName !=3D undefined) QOSMPS_appendStr_qs("un", pl.userName);
	if (pl.countryCode !=3D undefined) QOSMPS_appendStr_qs("cc", =
pl.countryCode);
	if (pl.regionCode !=3D undefined) QOSMPS_appendStr_qs("rc", =
pl.regionCode);
	if (pl.browser !=3D undefined) QOSMPS_appendStr_qs("br", pl.browser);
	if (pl.operatingSystem !=3D undefined) QOSMPS_appendStr_qs("os", =
pl.operatingSystem);
	if (pl.feed !=3D undefined) QOSMPS_appendStr_qs("p", pl.feed);
	if (pl.player !=3D undefined) QOSMPS_appendStr_qs("pl", pl.player);
	if (pl.affiliate !=3D undefined) QOSMPS_appendStr_qs("af", =
pl.affiliate);
	if (pl.playlistID !=3D undefined) QOSMPS_appendStr_qs("prid", =
pl.playlistID);
	for (var i =3D 0;i < pl.clips.length;i++)
	{
		QOSMPS_parseClip(pl.clips[i]);
	}
=09
	if (QOSMPS_baseClips.length > 1) =
QOSMPS_parseAggregate(pl.playlistID)//parse the aggregate data only if =
there are 2 or more clips
	QOSMPS_sendData(QOSMPS_qs);
}

function QOSMPS_parseClip(c)
{
	var bc =3D c.baseClip;
	var isC =3D false;
	for (var i =3D 0; i < QOSMPS_baseClips.length; i++)
	{
		if (QOSMPS_baseClips[i].releaseID =3D=3D bc.releaseID)
		{
			if (c.isAd)
			{
				QOSMPS_appendStr_qs("c" + QOSMPS_baseCount, "1");
				break;
			}
			else
			{
				return;//don't parse this one, it's a repeat content
			}
		}
	}
	QOSMPS_baseClips.push(bc);
	if (bc.releaseID !=3D undefined)  QOSMPS_appendStr_qs("rid" + =
QOSMPS_baseCount, bc.releaseID);
=09
	if (bc.title !=3D undefined && bc.title !=3D null && bc.title !=3D =
"null")  QOSMPS_appendStr_qs("t" + QOSMPS_baseCount, bc.title);
	if (bc.author !=3D undefined && bc.author !=3D null && bc.author !=3D =
"null")  QOSMPS_appendStr_qs("a" + QOSMPS_baseCount, bc.author);
	if (bc.releaseLength !=3D undefined)  QOSMPS_appendStr_qs("l" + =
QOSMPS_baseCount, bc.releaseLength);
	if (bc.bitrate !=3D undefined && bc.bitrate !=3D NaN && bc.bitrate !=3D =
"NaN")  QOSMPS_appendStr_qs("b" + QOSMPS_baseCount, bc.bitrate);
	if (bc.loadTime !=3D undefined)  QOSMPS_appendStr_qs("lt" + =
QOSMPS_baseCount, bc.loadTime);
	if (bc.trueLength =3D=3D undefined && c.baseClip.releaseLength !=3D =
undefined) bc.trueLength =3D bc.releaseLength;
	if (bc.lengthPlayed !=3D undefined)
	{
		var percentPlayed =3D QOSMPS_round((bc.lengthPlayed / bc.trueLength) * =
100, 2);
		if (percentPlayed > 100) percentPlayed =3D 100;
		if (!isNaN(percentPlayed))
		{
			QOSMPS_appendStr_qs("pp" + QOSMPS_baseCount, percentPlayed);
		}
	}
	if (bc.rebufferingTime !=3D undefined)
	{
		var percentRebuff =3D QOSMPS_round((bc.rebufferingTime / =
(bc.rebufferingTime + bc.lengthPlayed)) * 100, 2);
		QOSMPS_appendStr_qs("pr" + QOSMPS_baseCount, percentRebuff);
	}
	var percentBW;
	if (bc.connectionBitrate !=3D undefined)
	{
		if (bc.trueBitrate =3D=3D undefined && bc.bitrate !=3D undefined) =
bc.trueBitrate =3D=3D bc.bitrate / 1000;
		percentBW =3D QOSMPS_round((bc.connectionBitrate / bc.trueBitrate) * =
100, 2);
		if (!isNaN(percentBW))
		{
			if (percentBW > 100) percentBW =3D 100;//cap it out at 100%
		}
		else
		{
			percentBW =3D 100;
		}
	}
	else
	{
		percentBW =3D 100;
	}
	if (bc.lengthPlayed !=3D undefined && bc.lengthPlayed > 0)//don't =
include unless the clip has played
	{
		bc.percentBW =3D percentBW;
		QOSMPS_appendStr_qs("pb" + QOSMPS_baseCount, percentBW)
	}
	else
	{
		bc.percentBW =3D undefined;
	}
	if (bc.lengthPlayed !=3D undefined && bc.lengthPlayed > 0)  =
QOSMPS_appendStr_qs("lp" + QOSMPS_baseCount, bc.lengthPlayed);
	QOSMPS_baseCount++;
}

function QOSMPS_parseAggregate(plid)
{
	if (plid !=3D undefined) QOSMPS_appendStr_qs("rid" + QOSMPS_baseCount, =
plid);
	var loadTime =3D QOSMPS_baseClips[0].loadTime;
	var trueLength =3D 0;
	var lengthPlayed =3D 0;
	var percentBW =3D 100;
	var bwLength =3D 0;//the length of the clips that have bandwidth data
	var rebuffTime =3D 0;
	var bwCalcArray =3D new Array();
	//aggregate values
	for (var i =3D 0; i < QOSMPS_baseClips.length; i++)
	{
		var bc =3D QOSMPS_baseClips[i];
		if (bc.trueLength !=3D undefined) trueLength +=3D bc.trueLength;
		if (bc.lengthPlayed !=3D undefined)
		{
			if (bc.lengthPlayed > bc.trueLength) bc.lengthPlayed =3D =
bc.trueLength;//account for duration errors so pp is always <=3D 100;
			lengthPlayed +=3D bc.lengthPlayed;
		}
		if (bc.rebufferingTime !=3D undefined) rebuffTime +=3D =
bc.rebufferingTime;
		if (bc.percentBW !=3D undefined)
		{
			var bwObj =3D new Object();
			bwObj.percentBW =3D bc.percentBW;
			bwObj.trueLength =3D bc.trueLength;
			bwCalcArray.push(bwObj);
			bwLength +=3D bc.trueLength;
		}
	}
=09
	//calculate the weighted bandwidth
	var compositeBW =3D 0;
	if (bwLength > 0)
	{
		for (var i =3D 0; i < bwCalcArray.length; i++)
		{
			var bwObj =3D bwCalcArray[i];
			var percentTotal =3D bwObj.trueLength / bwLength;
			compositeBW +=3D bwObj.percentBW * percentTotal
		}
	}
	if (compositeBW > 100) compositeBW =3D 100;
	if (trueLength > 0) QOSMPS_appendStr_qs("l" + QOSMPS_baseCount, =
trueLength);
	if (loadTime !=3D undefined) QOSMPS_appendStr_qs("lt" + =
QOSMPS_baseCount, loadTime);
	if (lengthPlayed > 0 && trueLength > 0)
	{
		var percentPlayed =3D QOSMPS_round((lengthPlayed / trueLength) * 100, =
2);
		if (percentPlayed > 100) percentPlayed =3D 100;
		if (!isNaN(percentPlayed)) QOSMPS_appendStr_qs("pp" + =
QOSMPS_baseCount, percentPlayed);
	}
	if (rebuffTime > 0 && trueLength > 0)
	{
		var percentRebuff =3D QOSMPS_round((rebuffTime / (rebuffTime + =
lengthPlayed))*100, 2);
		if (!isNaN(percentRebuff)) QOSMPS_appendStr_qs("pr" + =
QOSMPS_baseCount, percentRebuff);
	}
	if (compositeBW > 0) QOSMPS_appendStr_qs("pb" + QOSMPS_baseCount, =
QOSMPS_round(compositeBW, 2));
	if (lengthPlayed > 0) QOSMPS_appendStr_qs("lp" + QOSMPS_baseCount, =
lengthPlayed);
}

function QOSMPS_appendStr_qs(name, value)
{
	QOSMPS_qs +=3D "&" + name + "=3D" + value;
}

function QOSMPS_sendData(qString)
{
	//send the query string
	var theUrl =3D QOSMPS_baseUrl + qString;
	tpQOSSendURL(theUrl);
	//reset the query string
	QOSMPS_qs =3D ""
	alert("sending " + theURL);
}

function QOSMPS_round(num, power)
{
	var mult =3D Math.pow(10, power);
	var raw =3D num * mult;
	raw =3D Math.round(raw);
	return raw / mult;
}
/*
function QOSMPS_sendHttpReq(url)
{
	try=20
	{
		xmlhttp =3D new ActiveXObject("Msxml2.XMLHTTP");
	}=20
	catch (e)=20
	{
		try=20
		{
			xmlhttp =3D new ActiveXObject("Microsoft.XMLHTTP");
		}=20
		catch (E)=20
		{
			xmlhttp =3D false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!=3D'undefined')=20
	{
		try=20
		{
			xmlhttp =3D new XMLHttpRequest();
		}=20
		catch (e)=20
		{
			xmlhttp=3Dfalse;
		}
	}
	if (!xmlhttp && window.createRequest)=20
	{
		try=20
		{
			xmlhttp =3D window.createRequest();
		}=20
		catch (e)=20
		{
			xmlhttp=3Dfalse;
		}
	}
	if (!xmlhttp) return;//maybe we'll try another method
	alert("send xmlhttp " + xmlhttp + ":" + url);
	xmlhttp.open("GET", url, true);//we don't need the return data
}
*/
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/swfobject.js

/**
 * SWFObject v1.5: Flash Player detection and embed - =
http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT =
License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept =3D=3D "undefined") var deconcept =3D new Object();
if(typeof deconcept.util =3D=3D "undefined") deconcept.util =3D new =
Object();
if(typeof deconcept.SWFObjectUtil =3D=3D "undefined") =
deconcept.SWFObjectUtil =3D new Object();
deconcept.SWFObject =3D function(swf, id, w, h, ver, c, quality, =
xiRedirectUrl, redirectUrl, detectKey) {
	if (!document.getElementById) { return; }
	this.DETECT_KEY =3D detectKey ? detectKey : 'detectflash';
	this.skipDetect =3D =
deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params =3D new Object();
	this.variables =3D new Object();
	this.attributes =3D new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new =
deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer =3D deconcept.SWFObjectUtil.getPlayerVersion();
	if (!window.opera && document.all && this.installedVer.major > 7) {
		// only add the onunload cleanup if the Flash Player version supports =
External Interface and we are in IE
		// fixes bug in some fp9 versions see =
http://blog.deconcept.com/2006/07/28/swfobject-143-released/
		if (!deconcept.unloadSet) {
			deconcept.SWFObjectUtil.prepUnload =3D function() {
				__flash_unloadHandler =3D function(){};
				__flash_savedUnloadHandler =3D function(){};
				if(!deconcept.prepUnloadSet) {
					deconcept.prepUnloadSet =3D true;
					window.attachEvent("onunload", =
deconcept.SWFObjectUtil.cleanupSWFs);
				}
			}
			window.attachEvent("onbeforeunload", =
deconcept.SWFObjectUtil.prepUnload);
			deconcept.unloadSet =3D true;
		}
	}
	if(c) { this.addParam('bgcolor', c); }
	var q =3D quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', false);
	this.setAttribute('doExpressInstall', false);
	var xir =3D (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype =3D {
	useExpressInstall: function(path) {
		this.xiSWFPath =3D !path ? "expressinstall.swf" : path;
		this.setAttribute('useExpressInstall', true);
	},
	setAttribute: function(name, value){
		this.attributes[name] =3D value;
	},
	getAttribute: function(name){
		return this.attributes[name] || "";
	},
	addParam: function(name, value){
		this.params[name] =3D value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] =3D value;
	},
	getVariable: function(name){
		return this.variables[name] || "";
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs =3D new Array();
		var key;
		var variables =3D this.getVariables();
		for(key in variables){
			variablePairs[variablePairs.length] =3D escape(key) +"=3D"+ =
escape(variables[key]);
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode =3D "";
		if (navigator.plugins && navigator.mimeTypes && =
navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "PlugIn");
				this.setAttribute('swf', this.xiSWFPath);
			}
			swfNode =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') || "") +'"';
			swfNode +=3D ' id=3D"'+ this.getAttribute('id') +'" name=3D"'+ =
this.getAttribute('id') +'" ';
			var params =3D this.getParams();
			 for(var key in params){ swfNode +=3D [key] +'=3D"'+ params[key] +'" =
'; }
			var pairs =3D this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode +=3D 'flashvars=3D"'+ pairs +'"'; }
			swfNode +=3D '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) {
				this.addVariable("MMplayerType", "ActiveX");
				this.setAttribute('swf', this.xiSWFPath);
			}
			swfNode =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') || "") +'">';
			swfNode +=3D '<param name=3D"movie" value=3D"'+ =
this.getAttribute('swf') +'" />';
			var params =3D this.getParams();
			for(var key in params) {
			 swfNode +=3D '<param name=3D"'+ key +'" value=3D"'+ params[key] +'" =
/>';
			}
			var pairs =3D this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode +=3D '<param name=3D"flashvars" =
value=3D"'+ pairs +'" />';}
			swfNode +=3D "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer =3D new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && =
!this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", =
escape(this.getAttribute('xiRedirectUrl')));
				document.title =3D document.title.slice(0, 47) + " - Flash Player =
Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || =
this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n =3D (typeof elementId =3D=3D 'string') ? =
document.getElementById(elementId) : elementId;
			n.innerHTML =3D this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') !=3D "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion =3D function(){
	var PlayerVersion =3D new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x =3D navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion =3D new =
deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, =
"").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else if (navigator.userAgent && navigator.userAgent.indexOf("Windows =
CE") >=3D 0){ // if Windows CE
		var axo =3D 1;
		var counter =3D 3;
		while(axo) {
			try {
				counter++;
				axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ =
counter);
//				document.write("player v: "+ counter);
				PlayerVersion =3D new deconcept.PlayerVersion([counter,0,0]);
			} catch (e) {
				axo =3D null;
			}
		}
	} else { // Win IE (non mobile)
		// do minor version lookup in IE, but avoid fp6 crashing issues
		// see =
http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-intern=
et-explorer-flash-6/
		try{
			var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}catch(e){
			try {
				var axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion =3D new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess =3D "always"; // error if player version < =
6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {
				if (PlayerVersion.major =3D=3D 6) {
					return PlayerVersion;
				}
			}
			try {
				axo =3D new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch(e) {}
		}
		if (axo !=3D null) {
			PlayerVersion =3D new =
deconcept.PlayerVersion(axo.GetVariable("$version").split(" =
")[1].split(","));
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion =3D function(arrVersion){
	this.major =3D arrVersion[0] !=3D null ? parseInt(arrVersion[0]) : 0;
	this.minor =3D arrVersion[1] !=3D null ? parseInt(arrVersion[1]) : 0;
	this.rev =3D arrVersion[2] !=3D null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid =3D function(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;
}
/* ---- get value of query string param ---- */
deconcept.util =3D {
	getRequestParameter: function(param) {
		var q =3D document.location.search || document.location.hash;
		if (param =3D=3D null) { return q; }
		if(q) {
			var pairs =3D q.substring(1).split("&");
			for (var i=3D0; i < pairs.length; i++) {
				if (pairs[i].substring(0, pairs[i].indexOf("=3D")) =3D=3D param) {
					return pairs[i].substring((pairs[i].indexOf("=3D")+1));
				}
			}
		}
		return "";
	}
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs =3D function() {
	var objects =3D document.getElementsByTagName("OBJECT");
	for (var i =3D objects.length - 1; i >=3D 0; i--) {
		objects[i].style.display =3D 'none';
		for (var x in objects[i]) {
			if (typeof objects[i][x] =3D=3D 'function') {
				objects[i][x] =3D function(){};
			}
		}
		objects[i].removeNode(true);
	}
}
/* add document.getElementById if needed (mobile IE < 5) */
if (!document.getElementById && document.all) { document.getElementById =
=3D function(id) { return document.all[id]; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue =3D deconcept.util.getRequestParameter;
var FlashObject =3D deconcept.SWFObject; // for legacy support
var SWFObject =3D deconcept.SWFObject;

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/util.js

//***********************************************************************=
*****=0A=
// Copyright (C) thePlatform for Media, Inc. All Rights Reserved.=0A=
//***********************************************************************=
*****=0A=
=0A=
// handle references to the communication manager=0A=
var tpController;=0A=
var tpCommID =3D "communicationwidget";=0A=
var tpExternalController;=0A=
=0A=
// dynamically resize an element, for example, the category list=0A=
function tpResize(divID, height, width)=0A=
{=0A=
	var element =3D document.getElementById(divID);=0A=
	element.style.height =3D height + "px";=0A=
	element.style.width =3D width + "px";=0A=
}=0A=
=0A=
=0A=
// helper function for getting the "top" coordinate of an object=0A=
function tpGetTop(obj)=0A=
{=0A=
	result =3D 0;=0A=
	while (obj)=0A=
	{=0A=
		result +=3D obj.offsetTop;=0A=
		obj =3D obj.offsetParent;=0A=
	}=0A=
	return result;=0A=
}=0A=
=0A=
// helper function for getting the "left" coordinate of an object=0A=
function tpGetLeft(obj)=0A=
{=0A=
	result =3D 0;=0A=
	while(obj)=0A=
	{=0A=
		result +=3D obj.offsetLeft;=0A=
		obj =3D obj.offsetParent;=0A=
	}=0A=
	return result;=0A=
}=0A=
=0A=
// open a new pop-up window=0A=
function tpOpenNewWindow(URLtoOpen, windowName, windowFeatures)=0A=
{=0A=
	var newWindow=3Dwindow.open(URLtoOpen, windowName, windowFeatures); =0A=
}=0A=
=0A=
// handle tracking URLs=0A=
var tpTrackingImage =3D new Image();=0A=
function tpCallTrackingUrl(url)=0A=
{=0A=
	tpTrackingImage.src =3D url;=0A=
	for (i =3D 0; ((!tpTrackingImage.complete) && (i < 100000)); i++)=0A=
	{=0A=
	}=0A=
}=0A=
=0A=
// create a unique token for each set of player controls=0A=
var tpInstanceID =3D (new Date()).getTime() + "|" + =
Math.round(Math.random() * 100000000000000000);=0A=
=0A=
function tpGetInstanceID()=0A=
{=0A=
	return tpInstanceID; =0A=
}=0A=
=0A=
//determine if we're on a mac and forego localConnections=0A=
var tpUseJS =3D false;=0A=
if (navigator.appVersion.indexOf("Mac")!=3D-1) tpUseJS =3D true;=0A=
=0A=
function tpGetUseJS()=0A=
{=0A=
	return tpUseJS ? "true" : "false";=0A=
}=0A=
=0A=
// manage a list of registered control IDs for the communication manager=0A=
var tpRegisteredIDs =3D new Array();=0A=
=0A=
function tpRegisterID(componentName)=0A=
{=0A=
	tpRegisteredIDs.push(componentName);=0A=
}=0A=
=0A=
function tpGetRegisteredIDs()=0A=
{=0A=
	var retString =3D "";=0A=
	var start =3D true;=0A=
	tpController.shutdownIDs =3D new Array();=0A=
	while (tpRegisteredIDs.length > 0)=0A=
	{=0A=
		if (!start) retString +=3D "|";=0A=
		var id =3D tpRegisteredIDs.shift();=0A=
		tpController.shutdownIDs.push(id);=0A=
		retString +=3D id;=0A=
		start =3D false;=0A=
	}=0A=
	tpRegisteredIDs.length =3D 0;//zap it so it isn't sitting around=0A=
	return retString;=0A=
}=0A=
=0A=
function tpSetCommManagerID(commID)=0A=
{=0A=
	// controller=0A=
	tpController =3D null;=0A=
	tpCommID =3D null;=0A=
	tpInstanceID =3D null;=0A=
	tpRegisteredIDs =3D null;=0A=
	tpRegisteredIDs =3D new Array();=0A=
	tpInstanceID =3D (new Date()).getTime() + "|" + =
Math.round(Math.random() * 100000000000000000);=0A=
	tpController =3D new tpControllerClass();=0A=
	tpCommID =3D commID;=0A=
	=0A=
	//external controller=0A=
	tpCleanupExternal();=0A=
	tpExternalController =3D null;=0A=
	tpExternalController =3D new tpExternalControllerClass();=0A=
}=0A=
=0A=
function tpGetCommManagerID()=0A=
{=0A=
	return tpCommID;=0A=
}=0A=
=0A=
// implementation of the controller proxy in javascript=0A=
function tpControllerClass()=0A=
{=0A=
	this.events =3D new Object();=0A=
	this.functions =3D new Object();=0A=
	this.isLoading =3D true;=0A=
	this.canMessage =3D false;=0A=
	this.messageQueue =3D new Array();=0A=
	this.priorityQueue =3D new Array();=0A=
	this.sendQueue =3D new Array();//yet another queue for timing =
externalInterface calls=0A=
	this.isSending =3D false;=0A=
	this.sendInterval;=0A=
	this.shutdownIDs;//array to keep all the controller ids for shutdown=0A=
	this.isShutDown =3D false;=0A=
	this.blankString =3D "__blank_string__";=0A=
	=0A=
	this.register =3D function(callback)=0A=
	{=0A=
		if (this.events["OnPlayerLoaded"] =3D=3D undefined)=0A=
		{=0A=
			var eventArray =3D new Array();=0A=
			eventArray.push(callback);=0A=
			this.events["OnPlayerLoaded"] =3D eventArray;=0A=
		}=0A=
		else=0A=
		{=0A=
			var eventArray =3D this.events["OnPlayerLoaded"];=0A=
			var repeat =3D false;=0A=
			for (var i =3D 0; i < eventArray.length; i++)=0A=
			{=0A=
				if (eventArray[i] =3D=3D callback)=0A=
				{=0A=
					repeat =3D true;=0A=
					break;=0A=
				}=0A=
			}=0A=
			if (!repeat) eventArray.push(callback);=0A=
		}=0A=
		//registering for now simply means that the component will get an =
OnPlayerLoaded event=0A=
	}=0A=
	=0A=
	this.registerFunction =3D function(funcName, callback)=0A=
	{=0A=
		if (this.functions[funcName] =3D=3D undefined)=0A=
		{=0A=
			var functionArray =3D new Array();=0A=
			functionArray.push(callback);=0A=
			this.functions[funcName] =3D functionArray;=0A=
			this.sendMessage("addBusFunction", tpGetCommManagerID(), [funcName, =
"javascript"], true);=0A=
		}=0A=
		else=0A=
		{=0A=
			var functionArray =3D this.functions[funcName];=0A=
			var repeat =3D false;=0A=
			for (var i =3D 0; i < functionArray.length; i++)=0A=
			{=0A=
				if (functionArray[i] =3D=3D funcName)=0A=
				{=0A=
					repeat =3D true;=0A=
					break;=0A=
				}=0A=
			}=0A=
			if (!repeat) functionArray.push(callback);=0A=
		}=0A=
	}=0A=
	=0A=
	this.unRegisterFunction =3D function(funcName, callback)=0A=
	{=0A=
		if (this.functions[funcName] !=3D undefined)=0A=
		{=0A=
			var funcs =3D this.functions[funcName];=0A=
			for (var i =3D 0; i < funcs.length; i++)=0A=
			{=0A=
				if (funcs[i] =3D=3D callback)=0A=
				{=0A=
					funcs.splice(i, 1);=0A=
					break;=0A=
				}=0A=
			}=0A=
			if (funcs.length =3D=3D 0)=0A=
			{=0A=
				//delete the array just to tidy things up=0A=
				delete functions[funcName];=0A=
				this.sendMessage("removeBusFunction", tpGetCommManagerID(), =
[funcName, "javascript"]);=0A=
			}=0A=
		}=0A=
	}=0A=
	=0A=
	//all communication to the communication manager happens here=0A=
	this.sendMessage =3D function(method, destination, parameters, skipBus)=0A=
	{=0A=
		var methObj =3D new Object();=0A=
		methObj.method =3D method;=0A=
		methObj.parameters =3D parameters;=0A=
		methObj.destination =3D destination;=0A=
		if (this.isLoading && !skipBus)=0A=
		{=0A=
			//these are low priority messages that should be sent only after =
OnPlayerLoaded is fired=0A=
			this.messageQueue.push(methObj);=0A=
		}=0A=
		else if (!this.canMessage)=0A=
		{=0A=
			//these are high priority messages (like addEventListener or =
registerFunction) that usually need to be sent before OnPlayerLoaded is =
fired=0A=
			//but we still have to wait until after the communication manager has =
loaded or they'll just disappear=0A=
			this.priorityQueue.push(methObj);=0A=
		}=0A=
		else=0A=
		{=0A=
			this.doSendMessage(methObj);=0A=
		}=0A=
	}=0A=
	=0A=
	this.doSendMessage =3D function(messageObj)//private function=0A=
	{=0A=
		if (this.isShutDown) return;=0A=
		var obj =3D this.thisMovie(messageObj.destination);=0A=
		=0A=
		// Flash ExternalInterface will convert any "" or " " string to null.  =
However,=0A=
		// in the PDK, null and "" mean different things.  So, if there are =
blank strings,=0A=
		// convert to a signal value, and then unconvert on the way out.=0A=
		for (var i=3D0; i<messageObj.parameters.length; i++)=0A=
		{=0A=
			var param =3D messageObj.parameters[i];=0A=
			if (typeof param =3D=3D "string" && (param.length =3D=3D 0 || param =
=3D=3D " "))=0A=
			{=0A=
				messageObj.parameters[i] =3D this.blankString;=0A=
			}=0A=
		}=0A=
		obj.execute(messageObj.method, messageObj.parameters);	=0A=
	}	=0A=
	=0A=
	this.addEventListener =3D function(eventName, callback)=0A=
	{=0A=
		if (this.events[eventName] =3D=3D undefined)=0A=
		{=0A=
			var eventArray =3D new Array();=0A=
			eventArray.push(callback);=0A=
			this.events[eventName] =3D eventArray;=0A=
			var args =3D [eventName, "javascript"];=0A=
			this.sendMessage("addEventListener", tpGetCommManagerID(), args, =
true);=0A=
		}=0A=
		else=0A=
		{=0A=
			var eventArray =3D this.events[eventName];=0A=
			var repeat =3D false;=0A=
			for (var i =3D 0; i < eventArray.length; i++)=0A=
			{=0A=
				if (eventArray[i] =3D=3D callback)=0A=
				{=0A=
					repeat =3D true;=0A=
					break;=0A=
				}=0A=
			}=0A=
			if (!repeat) eventArray.push(callback);=0A=
		}=0A=
	}=0A=
	=0A=
	this.removeEventListener =3D function(eventName, callback)=0A=
	{=0A=
		if (this.events[eventName] !=3D undefined)=0A=
		{=0A=
			var eventArray =3D this.events[eventName];=0A=
			for (var i =3D 0; i < eventArray.length; i++)=0A=
			{=0A=
				if (eventArray[i] =3D=3D callback)=0A=
				{=0A=
					eventArray.splice(i, 1);//remove that element=0A=
					break;=0A=
				}=0A=
			}=0A=
			if (eventArray.length =3D=3D 0)=0A=
			{=0A=
				//no callbacks left, zap the variable=0A=
				delete this.events[eventName];=0A=
				this.sendMessage("removeEventListener", tpGetCommManagerID(), =
[eventName, "javascript"])=0A=
			}=0A=
		}=0A=
	}=0A=
	=0A=
	this.dispatchEvent =3D function(evtName, value, sender, originator)=0A=
	{=0A=
		this.sendMessage("remoteDispatchEvent", tpGetCommManagerID(), =
[{type:evtName, data:value, sender:sender, originator:originator},true]);=0A=
	}=0A=
	=0A=
	this.checkMessageQueue =3D function()//private function=0A=
	{=0A=
		var len =3D this.messageQueue.length=0A=
		while (this.messageQueue.length > 0)=0A=
		{=0A=
			this.doSendMessage(this.messageQueue.shift());=0A=
		}=0A=
	}=0A=
	=0A=
	this.checkPriorityQueue =3D function()=0A=
	{=0A=
		while (this.priorityQueue.length > 0)=0A=
		{=0A=
			var messObj =3D this.priorityQueue.shift();=0A=
			this.doSendMessage(messObj);=0A=
		}=0A=
	}=0A=
	=0A=
	//all communication from the communication manager happens here=0A=
	this.receiveMessage =3D function(funcName, destination, args)=0A=
	{=0A=
		if (destination =3D=3D "javascript")=0A=
		{=0A=
			switch(funcName)=0A=
			{=0A=
				case "receiveEvent":=0A=
					var evt =3D args[0];=0A=
					this.receiveEvent(evt);=0A=
					break;=0A=
				case "commReady":=0A=
					this.canMessage =3D true;=0A=
					this.checkPriorityQueue();=0A=
					break;=0A=
				default:=0A=
					var functionArray =3D this.functions[funcName];=0A=
					for (var i =3D 0;i < functionArray.length;i++)=0A=
					{=0A=
						var callback =3D functionArray[i];=0A=
						eval(callback)(args);//hit all the callbacks=0A=
					}=0A=
					break;=0A=
			}=0A=
		}=0A=
		else=0A=
		{=0A=
			//transfer the message to its final destination=0A=
			this.sendMessage(funcName, destination, args, true);=0A=
		}=0A=
	}=0A=
	=0A=
	this.receiveEvent =3D function(evt)=0A=
	{=0A=
		if (evt.type =3D=3D "OnPlayerLoaded")=0A=
		{=0A=
			this.isLoading =3D false;=0A=
			this.checkMessageQueue();=0A=
		}=0A=
		=0A=
		if (this.events[evt.type]) =0A=
		{=0A=
			var eventArray =3D this.events[evt.type];=0A=
			for (var i =3D 0; i < eventArray.length; i++)=0A=
			{=0A=
				// need to use a try/catch block, otherwise an error in a listener=0A=
				// prevents messages from getting to the rest of the listeners=0A=
				try=0A=
				{=0A=
					eval(eventArray[i])(evt);=0A=
				}=0A=
				catch (exception)=0A=
				{=0A=
				}=0A=
			}=0A=
		}=0A=
		=0A=
	}=0A=
	=0A=
	this.thisMovie =3D function(movieName)=0A=
	{=0A=
 		var oDoc=0A=
		if (window.frame)=0A=
		{=0A=
			oDoc =3D frame.contentWindow.document || =
frame.contentDocument.document ;=0A=
		}=0A=
		else=0A=
		{=0A=
			oDoc =3D document=0A=
		}=0A=
		return oDoc.getElementById(movieName);=0A=
	}=0A=
=0A=
	//create a list of direct calls=0A=
	=0A=
	// PLAYER=0A=
	=0A=
	this.setRelease =3D function(release)=0A=
	{=0A=
		var args =3D [release, "javascript"];=0A=
		this.sendMessage("setRelease", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.setReleaseURL =3D function(url)=0A=
	{=0A=
		var args =3D [url, "javascript"];=0A=
		this.sendMessage("setReleaseURL", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.seekToPosition =3D function(position)=0A=
	{=0A=
		var args =3D [position, "javascript"];=0A=
		this.sendMessage("seekToPosition", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.seekToPercentage =3D function(percent)=0A=
	{=0A=
		var args =3D [percent, "javascript"];=0A=
		this.sendMessage("seekToPercentage", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.nextClip =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("nextClip", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.previousClip =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("previousClip", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.mute =3D function(isMute)=0A=
	{=0A=
		var args =3D [isMute, "javascript"];=0A=
		this.sendMessage("mute", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.play =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("play", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.stop =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("stop", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.pause =3D function(isPaused)=0A=
	{=0A=
		var args =3D [isPaused, "javascript"];=0A=
		this.sendMessage("pause", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.showFullScreen =3D function(isFullScreen)=0A=
	{=0A=
		var args =3D [isFullScreen, "javascript"];=0A=
		this.sendMessage("showFullScreen", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.showEmailForm =3D function(isVisible)=0A=
	{=0A=
		var args =3D [isVisible, "javascript"];=0A=
		this.sendMessage("showEmailForm", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.showLinkForm =3D function(isVisible)=0A=
	{=0A=
		var args =3D [isVisible, "javascript"];=0A=
		this.sendMessage("showLinkForm", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.useDefaultPlayOverlay =3D function(useDefault)=0A=
	{=0A=
		var args =3D [useDefault,"javascript"];=0A=
		this.sendMessage("useDefaultPlayOverlay", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.useDefaultLinkForm =3D function(useDefault)=0A=
	{=0A=
		var args =3D [useDefault,"javascript"];=0A=
		this.sendMessage("useDefaultLinkForm", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.useDefaultEmailForm =3D function(useDefault)=0A=
	{=0A=
		var args =3D [useDefault,"javascript"];=0A=
		this.sendMessage("useDefaultEmailForm", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.getSubtitleLanguage =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("getSubtitleLanguage", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.clickPlayButton =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("clickPlayButton", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.disablePlayerControls =3D function(disable)=0A=
	{=0A=
		var args =3D [disable, "javascript"];=0A=
		this.sendMessage("disablePlayerControls", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.setSubtitleLanguage =3D function(language)=0A=
	{=0A=
		var args =3D [language, "javascript"];=0A=
		this.sendMessage("setSubtitleLanguage", tpGetCommManagerID(), args);=0A=
	}	=0A=
	this.getPlayerVariables =3D function(names)=0A=
	{=0A=
		var args =3D [names, "javascript"];=0A=
		this.sendMessage("getPlayerVariables", tpGetCommManagerID(), args);	=0A=
	}=0A=
	this.setVolume =3D function(volume)=0A=
	{=0A=
		var args =3D [volume, "javascript"];=0A=
		this.sendMessage("setVolume", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	// RELEASE MODEL=0A=
	=0A=
	this.refreshReleaseModel =3D function(category, search, sort, range, =
params, secondaryParams)=0A=
	{=0A=
		var args =3D [category, search, sort, range, params, "javascript", =
secondaryParams];=0A=
		this.sendMessage("refreshReleaseModel", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	// CATEGORY MODEL=0A=
	=0A=
	this.refreshCategoryModel =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("refreshCategoryModel", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	// NAVIGATION=0A=
	=0A=
	this.nextRange =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("nextRange", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.previousRange =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("previousRange", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	=0A=
	// CLIP INFO=0A=
	=0A=
	this.setClipInfo =3D function(clip, isDefault)=0A=
	{=0A=
		var args =3D [clip, "javascript", isDefault];=0A=
		this.sendMessage("setClipInfo", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	// CATEGORY LIST=0A=
=0A=
	this.clearCategorySelection =3D function() =0A=
	{		=0A=
		var args =3D ["javascript"];=0A=
		this.sendMessage("clearCategorySelection", tpGetCommManagerID(), args);=0A=
	}=0A=
=0A=
	// RELEASE LIST=0A=
	=0A=
	this.suspendPlayAll =3D function(suspend) =0A=
	{		=0A=
		var args =3D [suspend, "javascript"];=0A=
		this.sendMessage("suspendPlayAll", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.playNext =3D function(wrapAround) =0A=
	{		=0A=
		var args =3D [wrapAround, "javascript"];=0A=
		this.sendMessage("playNext", tpGetCommManagerID(), args);=0A=
	}=0A=
	this.playPrevious =3D function(wrapAround) =0A=
	{		=0A=
		var args =3D [wrapAround, "javascript"];=0A=
		this.sendMessage("playPrevious", tpGetCommManagerID(), args);=0A=
	}=0A=
	=0A=
	// GENERAL=0A=
	=0A=
	this.shutDown =3D function()=0A=
	{=0A=
		var args =3D ["javascript"];=0A=
		for (var i =3D 0; i < this.shutdownIDs.length; i++)=0A=
		{=0A=
			this.sendMessage("shutDown", this.shutdownIDs[i], args);=0A=
		}=0A=
		this.sendMessage("shutDown", tpGetCommManagerID(), args);=0A=
		this.isShutDown =3D true;//prevent any more messages		=0A=
	}=0A=
}=0A=
=0A=
function tpReceiveMessage(funcName, destination, args)=0A=
{=0A=
	tpController.receiveMessage(funcName, destination, args);=0A=
}=0A=
=0A=
=0A=
//functions for controlling external players=0A=
=0A=
var tpPlayerName =3D "playerwidget";=0A=
var tpHolderName =3D "pdkHolder";=0A=
var tpExternalJS;=0A=
=0A=
function tpSetPlayerIDForExternal(playerName)=0A=
{=0A=
	tpPlayerName =3D playerName;=0A=
}=0A=
=0A=
function tpSetHolderIDForExternal(holderName)=0A=
{=0A=
	tpHolderName =3D holderName;=0A=
}=0A=
=0A=
function tpLoadExternalMediaJS()=0A=
{=0A=
	tpExternalJS =3D tpLoadExternalMediaJS.arguments;=0A=
	=0A=
	for (var i =3D 0; i < tpExternalJS.length; i++)=0A=
	{=0A=
		tpLoadScript(tpExternalJS[i]);=0A=
	}=0A=
}=0A=
=0A=
function tpCleanupExternal()=0A=
{=0A=
	if (tpExternalJS)//if there's no external js, then nothing was loaded in=0A=
	{=0A=
		var scripts =3D =
window.document.getElementsByTagName('head')[0].getElementsByTagName('scr=
ipt');=0A=
		for (var i =3D 0; i < scripts.length;i++)=0A=
		{=0A=
			for (var j =3D 0; j < tpExternalJS.length; j++)=0A=
			{=0A=
				if (scripts[i].src =3D=3D tpExternalJS[j])=0A=
				{=0A=
					=
window.document.getElementsByTagName('head')[0].removeChild(scripts[i]);=0A=
					break;=0A=
				}=0A=
			}=0A=
		}=0A=
		tpExternalJS.length =3D 0;=0A=
	}=0A=
	if (tpExternalController)=0A=
	{=0A=
		tpExternalController.cleanup();=0A=
	}=0A=
}=0A=
=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
=0A=
tpScriptLoader =3D new ScriptLoader();=0A=
=0A=
// called from flash via ExternalInterface=0A=
function tpLoadJScript(scriptFile, callback, id, atts)=0A=
{=0A=
	tpScriptLoader.addScript(scriptFile, callback, id, atts);=0A=
}=0A=
=0A=
// need to wrap method to fix scoping issue on callback=0A=
function callbackDispatcher(loadObj) { =
tpScriptLoader.callbackDispatcher(loadObj) }=0A=
function invokeCallbacks(loadObj) { tpScriptLoader.invokeCallbacks() }=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
//					L O A D   O B J E C T=0A=
/////////////////////////////////////////////////////////////////////=0A=
function LoadObj(scriptFile, callback, id, atts)=0A=
{=0A=
	this.script =3D scriptFile;=0A=
	this.callback =3D callback;=0A=
	this.id =3D id;=0A=
	this.atts =3D atts;=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
//					S C R I P T   L O A D E R=0A=
/////////////////////////////////////////////////////////////////////=0A=
=0A=
=0A=
// constructor=0A=
function ScriptLoader()=0A=
{=0A=
	// queued up for loading scripts=0A=
	this.scriptQueue =3D new Array();=0A=
	=0A=
	// queued up for invoking callbacks=0A=
	this.callbackQueue =3D new Array();=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
ScriptLoader.prototype.addScript =3D function(scriptFile, callback, id, =
atts)=0A=
{=0A=
	// We need the last item in the scriptQueue to be a "dummy".=0A=
	// This will ensure that the callback for the last item in the =0A=
	// queue will be defined when it is invoked.=0A=
	=0A=
	//var dummyObj =3D (this.scriptQueue.length) ? this.scriptQueue.pop() : =
new LoadObj("js/dummy.js","dummyLoaded");=0A=
	var loadObj =3D new LoadObj( scriptFile, callback, id, atts );=0A=
	this.scriptQueue.push(loadObj);=0A=
	//this.scriptQueue.push(dummyObj);=0A=
	=0A=
	// if the queue was empty, we need to kick=0A=
	// off the queue processing again.=0A=
	=0A=
	if (this.scriptQueue.length =3D=3D 1)=0A=
		this.checkScriptQueue();=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
ScriptLoader.prototype.checkScriptQueue =3D function()=0A=
{=0A=
	if (this.scriptQueue.length)=0A=
	{=0A=
		var loadObj =3D this.scriptQueue.shift();=0A=
		this.loadScript(loadObj);=0A=
	}=0A=
	else=0A=
	{=0A=
		// as a timing precaution, we wait until the queue=0A=
		// empties out before we invoke callbacks=0A=
		interval_id =3D setInterval("invokeCallbacks()",100) // more timing =
precautions :-/=0A=
		//this.invokeCallbacks();=0A=
	}=0A=
}=0A=
	=0A=
/////////////////////////////////////////////////////////////////////=0A=
ScriptLoader.prototype.callbackDispatcher =3D function(loadObj)=0A=
{=0A=
	for (var i in this.callbackQueue)=0A=
	{=0A=
		if (this.callbackQueue[i] =3D=3D loadObj)=0A=
		{=0A=
			//alert("dup found!")=0A=
			this.checkScriptQueue();=0A=
			return;=0A=
		}=0A=
	}=0A=
	this.callbackQueue.push(loadObj);=0A=
	this.checkScriptQueue();=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
ScriptLoader.prototype.invokeCallbacks =3D function()=0A=
{=0A=
	clearInterval(interval_id);=0A=
	while (this.callbackQueue.length)=0A=
	{=0A=
		var loadObj =3D this.callbackQueue.shift();=0A=
		eval(loadObj.callback)(loadObj.script);=0A=
	}=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
ScriptLoader.prototype.loadScript =3D function(loadObj)=0A=
{=0A=
	var scriptFilename =3D loadObj.script;=0A=
	var callbackFunction =3D loadObj.callback;=0A=
	var id =3D loadObj.id;=0A=
	var atts =3D loadObj.atts;=0A=
	=0A=
	// Create script element and set it to load the requested script=0A=
	var scriptEl =3D window.document.createElement('script');=0A=
	scriptEl.charset =3D "utf-8";=0A=
	if (id) scriptEl.id =3D id;=0A=
	scriptEl.type =3D "text/javascript";=0A=
	//scriptEl.defer =3D true;=0A=
	if (atts)=0A=
	{=0A=
		for (var i =3D 0; i < atts.length; i++)=0A=
			scriptEl.setAttribute(atts[i].att, atts[i].value);=0A=
	}=0A=
	scriptEl.src =3D scriptFilename;=0A=
	=0A=
	if (callbackFunction)=0A=
	{=0A=
		// Function to be called when script has finished loading=0A=
		var _onFinished =3D function(_loadObj, _callback)=0A=
		{=0A=
			// Invoke the callback function=0A=
			_callback(_loadObj)=0A=
=0A=
			// Clean up event handlers=0A=
			this.onreadystatechange =3D null;=0A=
			this.onload =3D null;=0A=
			this.onerror =3D null;=0A=
		};=0A=
=0A=
		// Set callback for IE=0A=
		// In defiance of MSDN documentation IE's script object has no onload =
handler=0A=
		scriptEl.onreadystatechange =3D function()=0A=
		{=0A=
			_onFinished(loadObj, callbackDispatcher);=0A=
		};=0A=
=0A=
		// Set callback for W3C-compatible browsers=0A=
		scriptEl.onload =3D function()=0A=
		{=0A=
			_onFinished(loadObj, callbackDispatcher);=0A=
		};=0A=
		// Set another callback for W3C-compatible browsers=0A=
		// since onreadystatechange for IE also fires in case of an error=0A=
		scriptEl.onerror =3D function()=0A=
		{=0A=
			_onFinished(loadObj, callbackDispatcher);=0A=
		};=0A=
	}=0A=
=0A=
	// Add script element to the document=0A=
	window.document.getElementsByTagName('head')[0].appendChild(scriptEl);=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
// ORIGINAL LOADSCRIPT - USED BY MOVENETWORKS =0A=
/////////////////////////////////////////////////////////////////////=0A=
function tpLoadScript(scriptFilename, callbackFunction, id, atts)=0A=
{=0A=
   	// Create script element and set it to load the requested script=0A=
   	var scriptEl =3D window.document.createElement('script');=0A=
   	scriptEl.charset =3D "utf-8";=0A=
   	if (id) scriptEl.id =3D id;=0A=
   	scriptEl.type =3D "text/javascript";=0A=
   	//scriptEl.defer =3D true;=0A=
   	if (atts)=0A=
   	{=0A=
   		for (var i =3D 0; i < atts.length; i++)=0A=
   		{=0A=
   			scriptEl.setAttribute(atts[i].att, atts[i].value);=0A=
   		}=0A=
   	}=0A=
   	scriptEl.src =3D scriptFilename;=0A=
   	if (callbackFunction)=0A=
   	{=0A=
   		// Function to be called when script has finished loading=0A=
   		var _onFinished =3D function(_callbackFunction, _scriptFilename)=0A=
   		{=0A=
   			// Invoke the callback function=0A=
   			_callbackFunction(_scriptFilename);=0A=
   =0A=
   			// Clean up event handlers=0A=
   			this.onreadystatechange =3D null;=0A=
   			this.onload =3D null;=0A=
   			this.onerror =3D null;=0A=
   		};=0A=
   =0A=
   		// Set callback for IE=0A=
   		// In defiance of MSDN documentation IE's script object has no =
onload handler=0A=
   		scriptEl.onreadystatechange =3D function()=0A=
   		{=0A=
   			_onFinished(callbackFunction, scriptFilename);=0A=
   		};=0A=
   =0A=
   		// Set callback for W3C-compatible browsers=0A=
   		scriptEl.onload =3D function()=0A=
   		{=0A=
   			_onFinished(callbackFunction, scriptFilename);=0A=
   		};=0A=
   		// Set another callback for W3C-compatible browsers=0A=
   		// since onreadystatechange for IE also fires in case of an error=0A=
   		scriptEl.onerror =3D function()=0A=
   		{=0A=
   			_onFinished(callbackFunction, scriptFilename);=0A=
   		};=0A=
   	}=0A=
   =0A=
   	// Add script element to the document=0A=
   	=
window.document.getElementsByTagName('head')[0].appendChild(scriptEl);=0A=
}=0A=
=0A=
/////////////////////////////////////////////////////////////////////=0A=
=0A=
=0A=
=0A=
//constructor for tpExternalControl=0A=
function tpExternalControllerClass()=0A=
{=0A=
	this.extPlayers =3D new Array();=0A=
	this.curPlayer =3D null;=0A=
	=0A=
	this.registerExternalPlayer =3D function(type, callback)=0A=
	{=0A=
		var playObj =3D {type:type, callback:callback};=0A=
		this.extPlayers.push(playObj);=0A=
	}=0A=
	=0A=
	this.routeMessage =3D function(funcName, args)=0A=
	{=0A=
		switch (funcName)=0A=
		{=0A=
			case "closePlayer":=0A=
				if (this.curPlayer !=3D null) this.curPlayer.callback.closePlayer();=0A=
				this.curPlayer =3D null;=0A=
				break;=0A=
			case "resizeMP":=0A=
				var type =3D args[0];=0A=
				for (var i =3D 0; i < this.extPlayers.length; i++)=0A=
				{=0A=
					if (this.extPlayers[i].type =3D=3D type)=0A=
					{=0A=
						this.curPlayer =3D this.extPlayers[i];=0A=
						break;=0A=
					}=0A=
				}=0A=
				//fall through=0A=
			default:=0A=
				if (this.curPlayer !=3D null) =
this.curPlayer.callback[funcName](args);=0A=
				break;=0A=
		}=0A=
	}=0A=
	=0A=
	this.returnMessage =3D function(funcName, args)=0A=
	{=0A=
		tpController.thisMovie(tpPlayerName).receiveJSMessage(funcName, args);=0A=
	}=0A=
	=0A=
	this.cleanup =3D function()=0A=
	{=0A=
		for (var i =3D 0; i < this.extPlayers.length; i++)=0A=
		{=0A=
			this.extPlayers[i].callback.cleanup();=0A=
		}=0A=
		this.extPlayers.length =3D 0;=0A=
	}=0A=
}=0A=
=0A=
function tpExternalMessage(funcName, args)=0A=
{=0A=
	tpExternalController.routeMessage(funcName, args);=0A=
}=0A=
=0A=
function tpShowAlert(alertCode) =0A=
{=0A=
	switch(alertCode)=0A=
	{=0A=
		case "FULLSCREEN_DISABLED":=0A=
		//if (deconcept.SWFObjectUtil.getPlayerVersion().major < 9)=0A=
		alert("Full screen is only available with Flash 9 or later")=0A=
		break;=0A=
	}=0A=
}=0A=
=0A=
function dummy() { alert(0) }=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://img.video.ap.org/inline/js/inlineutil.js

//***********************************************************************=
*****=0A=
// Inline Player=0A=
// The Associated Press=0A=
// Revised 12/8/2008 by ctownley=0A=
//***********************************************************************=
*****=0A=
=0A=
    // User settable variables=0A=
    var playerTitle =3D "Inline Player";=0A=
    var playerFParam =3D "";=0A=
    var playerCategory =3D "";
    //var playerPID =3D "YWC9kv7h8eVqaRiJNlzklv2KyXHbuaL5"; // Testing
    var playerPID =3D "PSlvHKIjOdolYsUhSjbpf7ROOkJP5EYR" // Production
    var playerAuto =3D "false";
    var directPID =3D "";
    var directOnly =3D "false";
    var isLocal =3D "false";
   =20
    // Required Player variables
    var pathSWF =3D "http://img.video.ap.org/inline/";=0A=
    var adPattern =3D "count:0|2"=0A=
    var playerURL =3D "http://release.theplatform.com/content.select";
    var feedURL =3D =
"http://ap.feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList=
?PID=3D";=0A=
    var redirectURL =3D "http://video.ap.org/";
    var debugMode =3D "true";
    var pidEntities =3D "oUFmCcyEZuCA7UqChCElKJFTJxFcgO9G";
    var affiliateCMA =3D "";
    var thisCommID =3D "";
    var thisPlayerID =3D "";
    var liveTitle =3D "";
    var liveDescription =3D "";
    var liveFeedURL =3D =
"http://ap.feeds.theplatform.com/ps/JSON/PortalService/2.2/getReleaseList=
?PID=3DVX36Dt2kyMm4oh2JDAZKacgMHCgS3CRP";

    function embedInlinePlayer(commID, playerID)=20
    {
        thisCommID =3D commID;
        thisPlayerID =3D playerID;
        var entitiesURL =3D feedURL + pidEntities + =
"&field=3DthumbnailURL&field=3DcontentCustomData&query=3DContentCustomTex=
t|CustomerID|" + playerFParam + "&startIndex=3D1&endIndex=3D1";
        jsonpFeeds(entitiesURL);
    }=0A=
    =0A=
    function doEmbed(commID, playerID) {
        if (isLocal=3D=3D"true") { playerCategory =3D ""; }=0A=
        =0A=
        // Embed Inline Player into the appropriate div=0A=
	    tpRegisterID("playerwidget");

	    var soP =3D new SWFObject(pathSWF + "swf/inlinePlayer.swf", =
"playerwidget", "302", "389", "9.0.0.0");
	    soP.addParam("quality", "high");
	    soP.addParam("scale", "noscale");
	    soP.addParam("allowScriptAccess", "always");
	    soP.addVariable("ID", "playerwidget");
	    soP.addVariable("commManagerID", tpGetCommManagerID());
	    soP.addVariable("instanceID", tpGetInstanceID());
	    soP.addVariable("useJS", tpGetUseJS());
	    soP.addParam("allowFullScreen", "true");
	    soP.addParam("bgcolor", "Transparent");
	    soP.addParam("wmode", "Transparent");
	    soP.addVariable("height", "389");
	    soP.addVariable("width", "302");
	    soP.addVariable("plugin0", "type=3Dadcomponent|URL=3D" + pathSWF + =
"swf/SMIL.swf|priority=3D3");
	    soP.addVariable("playbackManagerURL", pathSWF + =
"swf/playback.swf");
	    soP.addVariable("parserURL", pathSWF + "swf/parser.swf");
	    soP.addVariable("inlineURL", pathSWF + "swf/inlineVideo.swf");
	    soP.addVariable("qosURL", pathSWF + "swf/qos.swf");
	    soP.addVariable("plugin2", "type=3Dadcomponent|adcomponent|URL=3D" =
+ pathSWF + =
"swf/msn.swf|priority=3D1|hosts=3Dmsnap.adbureau.net,rad.msn-int.com");
	    soP.addVariable("plugin3", "type=3Dtracking|URL=3D" + pathSWF + =
"swf/googleAnalytics.swf|ID=3DUA-6058144-1|histograms=3D1|trackAds=3Dfals=
e|pattern=3Dap/{title}//{playlist.player}/{histogram}");
	    soP.addVariable("fVal", playerFParam);
	    soP.addVariable("cmaVal", affiliateCMA);
	    soP.addVariable("title", playerTitle);
	    soP.addVariable("catID", playerCategory);
	    soP.addVariable("feedName", playerCategory);
	    soP.addVariable("feedURL", feedURL + playerPID);
	    soP.addVariable("liveFeedURL", liveFeedURL);
	    soP.addVariable("autoPlay", playerAuto);
	    soP.addVariable("showDebug", debugMode);
	    //soP.addVariable("adPattern", adPattern);
	    soP.addVariable("baseURL", playerURL);
	    if (directPID !=3D null && directPID !=3D "") { =
soP.addVariable("directPID", directPID); }
	    if (directOnly !=3D null && directPID !=3D "") { =
soP.addVariable("directOnly", directOnly); }
	    soP.addVariable("mainURL", redirectURL);
	    soP.addVariable("isLocalContent", isLocal);
	    soP.addVariable("liveTitle", liveTitle);
	    soP.addVariable("liveDescription", liveDescription);	=0A=
	    																															=0A=
	    soP.write(playerID);=0A=
	    =0A=
	     // Embed Comm Manager into the appropriate div=0A=
        tpSetCommManagerID("commmanagerwidget");=0A=
        =0A=
	    var soC =3D new SWFObject(pathSWF + "swf/commManager.swf", =
tpGetCommManagerID(), "1", "1", "9.0.0.0");=0A=
	    soC.addParam("allowScriptAccess", "always");=0A=
	    soC.addParam("wmode", "transparent");=0A=
	    soC.addVariable("ID", tpGetCommManagerID());=0A=
	    soC.addVariable("instanceID", tpGetInstanceID());=0A=
	    soC.addVariable("registeredIDs", tpGetRegisteredIDs());=0A=
=0A=
    	soC.write("commmanagerDiv");
 }

 function jsonpFeeds(pURL) {

     var req =3D new JSONRequest(pURL, "onQueryAffiliateResult");
     req.send();
 }

 function onQueryAffiliateResult(pJSON) {
     if (pJSON.items.length > 0) {
         var affiliateInfo =3D pJSON.items[0];

         for (i =3D 0; i < affiliateInfo.contentCustomData.length; i++) =
{
             var aInfo =3D affiliateInfo.contentCustomData[i];
             switch (aInfo.title) {
                 case "CMAccountName":
                     affiliateCMA =3D aInfo.value;
                     break;
             }
         }
     }
     if (affiliateCMA =3D=3D "") { affiliateCMA =3D playerFParam; }

     doEmbed(thisCommID, thisPlayerID);
 }=0A=
    =0A=
// Using the following values for testing purposes
//------------------------------------------------
//  prod PID: PSlvHKIjOdolYsUhSjbpf7ROOkJP5EYR
//  staging PID: YWC9kv7h8eVqaRiJNlzklv2KyXHbuaL5
//  prod Ad =
URL:type%3Dadcomponent%7Cadcomponent%7CURL%3Dswf/msn.swf%7Cpriority%3D1%7=
Chosts%3Dmsnap.adbureau.net%2Crad.msn-int.com
//  staging Ad URL: =
type%3Dadcomponent%7Cadcomponent%7CURL%3Dswf/msn.swf%7Cpriority%3D1%7Chos=
ts%3Dmsnap.adbureau.net%2Crad.msn-int.com
 //------------------------------------------------

 // JSONRequest file...
 function JSONRequest(URL, Callback, Context) {
     // get the head tag
     var head =3D document.getElementsByTagName("head");

     if (!head) {
         alert("You need to define a <head> element to use the =
JSONRequest object.");
         return false;
     }
     this.headTag =3D head.item(0);

     // check the URL
     if (URL =3D=3D null || URL.length =3D=3D 0) {
         alert("You need to provide the URL.");
         return false;
     }

     this.url =3D URL;

     // add callback and/or context
     if (Callback !=3D null && Callback.length > 0) {
         this.url +=3D "&callback=3D" + escape(Callback);
     }

     if (Context !=3D null && Context.length > 0) {
         this.url +=3D "&context=3D" + escape(Context);
     }

     // determine the ID for this script
     this.scriptID =3D "JSONRequest" + JSONRequest.index++;
 }

 // a counter for ID references
 JSONRequest.index =3D 1;

 // send the request
 JSONRequest.prototype.send =3D function() {
     // Create a script element
     var scriptObj =3D document.createElement("script");

     // Set the attributes
     scriptObj.setAttribute("type", "text/javascript");
     scriptObj.setAttribute("src", this.url);
     scriptObj.setAttribute("id", this.scriptID);

     // Add it to the <head>; this will immediately run it
     this.headTag.appendChild(scriptObj);
 }
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://edge.quantserve.com/quant.js

//=0A=
// For correct measurement, DO NOT HOST THIS FROM ANOTHER SERVER=0A=
//=0A=
function _qcdst(){if(_qctzoff(0)!=3D_qctzoff(6))return 1;return 0;}=0A=
function _qctzoff(m){=0A=
var d1=3Dnew Date(2000,m,1,0,0,0,0);=0A=
var t=3Dd1.toGMTString();=0A=
var d3=3Dnew Date(t.substring(0,t.lastIndexOf(" ")-1));=0A=
return d1-d3;=0A=
}=0A=
function _qceuc(s){=0A=
if(typeof(encodeURIComponent)=3D=3D'function'){return =
encodeURIComponent(s);}=0A=
else{return escape(s);}=0A=
}=0A=
function _qcrnd(){return Math.round(Math.random()*2147483647);}=0A=
function _qcgc(n){=0A=
 var v=3D'';=0A=
 var c=3Ddocument.cookie;if(!c)return v;=0A=
 var i=3Dc.indexOf(n+"=3D");=0A=
 var len=3Di+n.length+1;=0A=
 if(i>-1){=0A=
  var end=3Dc.indexOf(";", len);=0A=
  if(end<0)end=3Dc.length;=0A=
  v=3Dc.substring(len,end);=0A=
 }=0A=
 return v;=0A=
}=0A=
function _qcdomain(){=0A=
 var d=3Ddocument.domain;=0A=
 if(d.substring(0,4)=3D=3D"www.")d=3Dd.substring(4,d.length);=0A=
 var a=3Dd.split(".");var len=3Da.length;=0A=
 if(len<3)return d;=0A=
 var e=3Da[len-1];=0A=
 if(e.length<3)return d;=0A=
 d=3Da[len-2]+"."+a[len-1];=0A=
 return d;=0A=
}=0A=
function _qcsc(m){=0A=
 var s=3D"";var d=3D_qcdomain();=0A=
 if =
(m=3D=3D"ad"||d=3D=3D"doubleclick.net"||d=3D=3D"atdmt.com"||d=3D=3D"yield=
manager.com"||d=3D=3D"fimserve.com"||=0A=
  =
d=3D=3D"tribalfusion.com"||d=3D=3D"trafficmp.com"){s+=3D";fpan=3Du;fpa=3D=
";return s;}=0A=
 var u=3Ddocument;var a=3D_qcgc("__qca");=0A=
 if(a.length>0){s+=3D";fpan=3D0;fpa=3D"+a;}=0A=
 else{=0A=
  var da=3Dnew Date();=0A=
  a=3D'P0-'+_qcrnd()+'-'+da.getTime();=0A=
  u.cookie=3D"__qca=3D"+a+"; expires=3DSun, 18 Jan 2038 00:00:00 GMT; =
path=3D/; domain=3D"+d;=0A=
  a=3D_qcgc("__qca");=0A=
  if(a.length>0){s+=3D";fpan=3D1;fpa=3D"+a;}=0A=
  else{s+=3D";fpan=3Du;fpa=3D";}=0A=
 }=0A=
 return s;=0A=
}=0A=
function _qcdc(n){=0A=
 document.cookie=3Dn+"=3D; expires=3DThu, 01 Jan 1970 00:00:01 GMT; =
path=3D/; domain=3D"+_qcdomain();=0A=
}=0A=
function _qpxload(){=0A=
 if((_qimg)&& typeof _qimg.width =3D=3D"number"){=0A=
  if (_qimg.width=3D=3D3){_qcdc("__qca");}=0A=
}}=0A=
function quantserve(){=0A=
 var r=3D_qcrnd();=0A=
 var =
sr=3D'',qo=3D'',qm=3D'',url=3D'',ref=3D'',je=3D'u',ns=3D'1',media=3D'webp=
age',event=3D'load';=0A=
 if(typeof _qoptions !=3D"undefined" && _qoptions!=3Dnull){=0A=
  for(var k in _qoptions){=0A=
   if(typeof(_qoptions[k])!=3D'string'){continue;}=0A=
   if(k=3D=3D'qacct'){_qacct=3D_qoptions[k];}=0A=
   else{qo+=3D';'+k+'=3D'+_qceuc(_qoptions[k]);}=0A=
   if(k=3D=3D'media'){media=3D_qoptions[k];}=0A=
   if(k=3D=3D'event'){event=3D_qoptions[k];}=0A=
  }=0A=
  _qoptions=3Dnull;=0A=
 }=0A=
 if((typeof _qacct =3D=3D"undefined")||(_qacct.length=3D=3D0))return;=0A=
 if(media=3D=3D'webpage' && event=3D=3D'load'){=0A=
  if((typeof _qpixelsent =
!=3D"undefined")&&(_qpixelsent=3D=3D_qacct))return;=0A=
  _qpixelsent=3D_qacct;}=0A=
 var ce=3D(navigator.cookieEnabled)?"1":"0";=0A=
 if(typeof navigator.javaEnabled =
!=3D'undefined')je=3D(navigator.javaEnabled())?"1":"0";=0A=
 if(typeof _qmeta !=3D"undefined" && =
_qmeta!=3Dnull){qm=3D';m=3D'+_qceuc(_qmeta);_qmeta=3Dnull;}=0A=
 =
if(self.screen){sr=3Dscreen.width+"x"+screen.height+"x"+screen.colorDepth=
;}=0A=
 var d=3Dnew Date();=0A=
 var dst=3D_qcdst();=0A=
 var dg=3D"P10682-W-MS-8";var qs=3D"http://pixel.quantserve.com";=0A=
 var fp=3D_qcsc(media);=0A=
 if(window.location && =
window.location.href)url=3D_qceuc(window.location.href);=0A=
 if(window.document && =
window.document.referrer)ref=3D_qceuc(window.document.referrer);=0A=
 if(self=3D=3Dtop)ns=3D'0';=0A=
 _qimg=3Dnew Image();=0A=
 _qimg.alt=3D"";=0A=
 =
_qimg.src=3Dqs+'/pixel'+';r=3D'+r+fp+';ns=3D'+ns+';url=3D'+url+';ref=3D'+=
ref+';ce=3D'+ce+';je=3D'+je+';sr=3D'+sr+';dg=3D'+dg+';dst=3D'+dst+';et=3D=
'+d.getTime()+';tzo=3D'+d.getTimezoneOffset()+';a=3D'+_qacct+qo+qm;=0A=
 _qimg.onload=3Dfunction() {_qpxload();}=0A=
}=0A=
quantserve();=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://w.sharethis.com/button/sharethis.js#publisher=ae725188-8a8d-4fb3-8a64-764c56aefdba&type=website&send_services=myspace%2Caim%2Csms

ST_JSON=3Dnew function(){this.encode=3Dfunction(){var =
self=3Darguments.length?arguments[0]:this,result,tmp;if(self=3D=3D=3Dnull=
){result=3D"null"}else{if(self!=3D=3Dundefined&&(tmp=3D$[typeof =
self](self))){switch(tmp){case Array:result=3D[];for(var =
i=3D0,j=3D0,k=3Dself.length;j<k;j++){if(self[j]!=3D=3Dundefined&&(tmp=3DS=
T_JSON.encode(self[j]))){result[i++]=3Dtmp}}result=3D"[".concat(result.jo=
in(","),"]");break;case Boolean:result=3DString(self);break;case =
Date:result=3D'"'.concat(self.getFullYear(),"-",d(self.getMonth()+1),"-",=
d(self.getDate()),"T",d(self.getHours()),":",d(self.getMinutes()),":",d(s=
elf.getSeconds()),'"');break;case Function:break;case =
Number:result=3DisFinite(self)?String(self):"null";break;case =
String:result=3D'"'.concat(self.replace(rs,s).replace(ru,u),'"');break;de=
fault:var i=3D0,key;result=3D[];for(key in =
self){if(self[key]!=3D=3Dundefined&&(tmp=3DST_JSON.encode(self[key]))){re=
sult[i++]=3D'"'.concat(key.replace(rs,s).replace(ru,u),'":',tmp)}}result=3D=
"{".concat(result.join(","),"}");break}}}return =
result};this.toDate=3Dfunction(){var =
self=3Darguments.length?arguments[0]:this,result;if(rd.test(self)){result=
=3Dnew =
Date;result.setHours(i(self,11,2));result.setMinutes(i(self,14,2));result=
.setSeconds(i(self,17,2));result.setMonth(i(self,5,2)-1);result.setDate(i=
(self,8,2));result.setFullYear(i(self,0,4))}else{if(rt.test(self)){result=
=3Dnew Date(self*1000)}}return result};var =
c=3D{"\b":"b","\t":"t","\n":"n","\f":"f","\r":"r",'"':'"',"\\":"\\","/":"=
/"},d=3Dfunction(n){return =
n<10?"0".concat(n):n},e=3Dfunction(c,f,e){e=3Deval;delete eval;if(typeof =
eval=3D=3D=3D"undefined"){eval=3De}f=3Deval(""+c);eval=3De;return =
f},i=3Dfunction(e,p,l){return =
1*e.substr(p,l)},p=3D["","000","00","0",""],rc=3Dnull,rd=3D/^[0-9]{4}\-[0=
-9]{2}\-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}$/,rs=3D/(\x5c|\x2F|\x22|[\x0c=
-\x0d]|[\x08-\x0a])/g,rt=3D/^([0-9]+|[0-9]+[,\.][0-9]{1,3})$/,ru=3D/([\x0=
0-\x07]|\x0b|[\x0e-\x1f])/g,s=3Dfunction(i,d){return"\\".concat(c[d])},u=3D=
function(i,d){var =
n=3Dd.charCodeAt(0).toString(16);return"\\u".concat(p[n.length],n)},v=3Df=
unction(k,v){return $[typeof =
result](result)!=3D=3DFunction&&(v.hasOwnProperty?v.hasOwnProperty(k):v.c=
onstructor.prototype[k]!=3D=3Dv[k])},$=3D{"boolean":function(){return =
Boolean},"function":function(){return Function},number:function(){return =
Number},object:function(o){return o instanceof =
o.constructor?o.constructor:null},string:function(){return =
String},"undefined":function(){return null}},$$=3Dfunction(m){function =
$(c,t){t=3Dc[m];delete c[m];try{e(c)}catch(z){c[m]=3Dt;return 1}}return =
$(Array)&&$(Object)};try{rc=3Dnew =
RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u =
\\n\\r\\t])+?$')}catch(z){rc=3D/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|=
\d+\.\d+)$/}};try{if(!SHARETHIS){if(!SHARETHIS_TOOLBAR){var =
SHARETHIS_TOOLBAR=3Dfalse}var SHARETHIS=3Dnull;function =
parseQueryString(b){var =
d=3D{};if(b=3D=3Dundefined){b=3Dlocation.search?location.search:""}if(b.c=
harAt(0)=3D=3D"?"){b=3Db.substring(1)}var =
f=3Db.indexOf("?");if(f){b=3Db.substring(f+1)}f=3Db.indexOf("#");if(f){b=3D=
b.substring(f+1)}b=3Db.replace("+"," ");var g=3Db.split(/[&;]/g);for(var =
f=3D0;f<g.length;f++){var c=3Dg[f].split("=3D");var =
a=3DdecodeURIComponent(c[0]);var =
e=3DdecodeURIComponent(c[1]);if(!d[a]){d[a]=3D[]}d[a].push((c.length=3D=3D=
1)?"":e)}return d}var hexcase=3D0;var b64pad=3D"";var chrsz=3D8;function =
hex_sha1(a){return =
binb2hex(core_sha1(str2binb(a),a.length*chrsz))}function =
core_sha1(h,m){h[m>>5]|=3D128<<(24-m%32);h[((m+64>>9)<<4)+15]=3Dm;var =
f=3DArray(80);var g=3D1732584193;var i=3D-271733879;var =
j=3D-1732584194;var k=3D271733878;var l=3D-1009589776;for(var =
q=3D0;q<h.length;q+=3D16){var n=3Dg;var o=3Di;var a=3Dj;var b=3Dk;var =
d=3Dl;for(var =
c=3D0;c<80;c++){if(c<16){f[c]=3Dh[q+c]}else{f[c]=3Drol(f[c-3]^f[c-8]^f[c-=
14]^f[c-16],1)}var =
e=3Dsafe_add(safe_add(rol(g,5),sha1_ft(c,i,j,k)),safe_add(safe_add(l,f[c]=
),sha1_kt(c)));l=3Dk;k=3Dj;j=3Drol(i,30);i=3Dg;g=3De}g=3Dsafe_add(g,n);i=3D=
safe_add(i,o);j=3Dsafe_add(j,a);k=3Dsafe_add(k,b);l=3Dsafe_add(l,d)}retur=
n Array(g,i,j,k,l)}function =
sha1_ft(d,a,b,c){if(d<20){return(a&b)|((~a)&c)}if(d<40){return =
a^b^c}if(d<60){return(a&b)|(a&c)|(b&c)}return a^b^c}function =
sha1_kt(a){return(a<20)?1518500249:(a<40)?1859775393:(a<60)?-1894007588:-=
899497514}function safe_add(a,b){var c=3D(a&65535)+(b&65535);var =
d=3D(a>>16)+(b>>16)+(c>>16);return(d<<16)|(c&65535)}function =
rol(a,b){return(a<<b)|(a>>>(32-b))}function str2binb(b){var =
c=3DArray();var a=3D(1<<chrsz)-1;for(var =
d=3D0;d<b.length*chrsz;d+=3Dchrsz){c[d>>5]|=3D(b.charCodeAt(d/chrsz)&a)<<=
(32-chrsz-d%32)}return c}function binb2hex(c){var =
d=3Dhexcase?"0123456789ABCDEF":"0123456789abcdef";var b=3D"";for(var =
a=3D0;a<c.length*4;a++){b+=3Dd.charAt((c[a>>2]>>((3-a%4)*8+4))&15)+d.char=
At((c[a>>2]>>((3-a%4)*8))&15)}return b}function hash_page(a){return =
hex_sha1(a)}var stVisibleInterval=3Dnull;var =
readyTestInterval=3Dnull;var st_showing=3Dfalse;var =
stautoclose=3Dtrue;function SHARETHIS_merge(){var e=3D{};for(var =
d=3D0,a=3Darguments.length;d<a;d++){var =
b=3Darguments[d];if(SHARETHIS_typeof(b)!=3D"object"){continue}for(var c =
in b){var =
g=3Db[c],f=3De[c];e[c]=3D(f&&SHARETHIS_typeof(g)=3D=3D"object"&&SHARETHIS=
_typeof(f)=3D=3D"object")?SHARETHIS_merge(f,g):SHARETHIS_unlink(g)}}retur=
n e}function SHARETHIS_unlink(c){var =
a;switch(SHARETHIS_typeof(c)){case"object":a=3D{};for(var e in =
c){a[e]=3DSHARETHIS_unlink(c[e])}break;case"hash":a=3DSHARETHIS_unlink(c.=
getClean());break;case"array":a=3D[];for(var =
d=3D0,b=3Dc.length;d<b;d++){a[d]=3DSHARETHIS_unlink(c[d])}break;default:r=
eturn c}return a}function =
SHARETHIS_typeof(a){if(SHARETHIS_isArray(a)){return"array"}else{return =
typeof a}}function SHARETHIS_isArray(c){var b=3Dc!=3Dnull&&typeof =
c=3D=3D"object"&&"splice" in c&&"join" in c;return b}function =
cleanURL(d){var c=3Dwindow.location.hash;var b=3Dnew =
RegExp("STS=3D","i");var a=3Dc.match(b);if(a!=3Dnull){var =
e=3Dd.split("#");return e[0]}else{return d}}function =
Shareable(b,a){this.idx=3D-1;this.frameUrl=3D"";this.element=3Dnull;this.=
trigger=3Dnull;this.page=3D"";this.properties=3D{type:"",title:encodeURIC=
omponent(document.title),summary:"",content:"",url:cleanURL(document.URL)=
,icon:"",category:"",updated:document.lastModified,published:"",author:""=
};this.options=3D{button:true,onmouseover:true,buttonText:"ShareThis",pop=
up:false,offsetLeft:0,offsetTop:0,embeds:false,autoclose:false};this.init=
ialize=3Dfunction(d,c){this.options=3DSHARETHIS_merge(this.options,c);thi=
s.properties=3DSHARETHIS_merge(this.properties,d);if(c.target){var =
e=3Dthis;c.target.onclick=3Dfunction(){e.share()};if(c.mouseover){c.targe=
t.onmouseover=3Dfunction(){e.share()}}}};this.initialize(b,a);this.share=3D=
function(){frames.stframe.location=3Dthis.frameUrl+"#getObject/"+SHARETHI=
S.guid+"/"+this.idx};this.attachButton=3Dfunction(c){this.element=3Dc;c.s=
etAttribute("st_page","home");if(this.options.onmouseover){c.onmouseover=3D=
this.popup}else{c.onclick=3Dthis.popup}};this.attachChicklet=3Dfunction(f=
,c){switch(f){case"facebook":c.setAttribute("st_dest","facebook.com");var=
 e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","facebook.com")}catch(g){}}c.onclic=
k=3Dthis.chicklet;break;case"digg":c.setAttribute("st_dest","digg.com");v=
ar e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","digg.com")}catch(g){}}c.onclick=3D=
this.chicklet;break;case"yahoo_buzz":c.setAttribute("st_dest","buzz.yahoo=
.com");var e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","buzz.yahoo.com")}catch(g){}}c.oncl=
ick=3Dthis.chicklet;break;case"email":c.setAttribute("st_page","send");va=
r e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_page","send")}catch(g){}}c.onclick=3Dthis=
.popup;break;case"twitter":c.setAttribute("st_dest","twitter.com");var =
e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","twitter.com")}catch(g){}}c.onclick=
=3Dthis.chicklet;break;case"myspace":c.setAttribute("st_dest","myspace.co=
m");var e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","myspace.com")}catch(g){}}c.onclick=
=3Dthis.chicklet;break;case"aim":c.setAttribute("st_dest","aim.com");var =
e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","aim.com")}catch(g){}}c.onclick=3Dt=
his.chicklet;break;case"mixx":c.setAttribute("st_dest","mixx.com");var =
e=3Dc.childNodes;for(var d=3D0;d<e.length;d++){var =
h=3De[d];try{h.setAttribute("st_dest","mixx.com")}catch(g){}}c.onclick=3D=
this.chicklet;break}}}function =
ShareThis(options){this.version=3D2.03;this.tmpSendData=3D"";this.sendArr=
ay=3D[];this.sendInit=3D[];this.sendNum=3D0;this.guid=3Dnull;this.popExis=
ts=3Dfalse;this.popup_win=3Dnull;this.newwinfrag=3D"";this.page=3Dnull;th=
is.shareables=3D[];this.readyList=3D[];this.postUrl=3D"";this.frameUrl=3D=
"";this.counter=3D0;this.wrapper=3Dnull;this.ready=3Dfalse;this.popupCall=
ed=3Dfalse;this.referrer_sts=3D"";this.shr_flag=3D"";this.publisherID=3Dn=
ull;this.bodyLoaded=3Dfalse;if(options.publisher){this.publisherID=3Dopti=
ons.publisher[0]}this.hash_flag=3Dfalse;if(this.publisherID=3D=3D"6beba85=
4-ee6d-4ae1-a4f3-b69815c8ef63"||this.publisherID=3D=3D"d775c91e-1adb-499e=
-919d-de52745e7902"||this.publisherID=3D=3D"275c66cf-cb06-447c-aec0-28914=
6e214aa"||this.publisherID=3D=3D"61531667-de39-47ee-96fb-a799c77ecc81"||t=
his.publisherID=3D=3D"06ef2313-b562-44c3-9e07-cb8ce2076dd4"||this.publish=
erID=3D=3D"f82262be-2900-45bb-bc4c-a962baead4c0"||this.publisherID=3D=3D"=
1a31d67e-e32a-4e95-94d4-5abe21e6b7a5"||this.publisherID=3D=3D"2e79a50d-64=
c7-419c-9cba-7a8e2f9dc610"||this.publisherID=3D=3D"3c393c3e-a5a8-4c2a-962=
2-050378087434"||this.publisherID=3D=3D"5ebf95cb-1249-41fe-b26e-a25ca5528=
bb0"||this.publisherID=3D=3D"14f5174c-5e32-48b4-9cd9-4311b6985d85"||this.=
publisherID=3D=3D"83da16e4-922b-45e3-9333-cc03e7637354"||this.publisherID=
=3D=3D"eab3790a-5b6e-4a77-b55a-c923d1211107"){this.hash_flag=3Dtrue}if(op=
tions.hash_flag){if(options.hash_flag=3D=3D"true"){this.hash_flag=3Dtrue}=
else{if(options.hash_flag=3D=3D"false"){this.hash_flag=3Dfalse}}}options.=
hash_flag=3Dthis.hash_flag;this.sessionID_time=3D(new =
Date()).getTime().toString();this.sessionID_rand=3DNumber(Math.random().t=
oPrecision(5).toString().substr(2)).toString();this.sessionID=3Dthis.sess=
ionID_time+"."+this.sessionID_rand;options.sessionID=3Dthis.sessionID;thi=
s.fpc=3D_stFpc();options.fpc=3Dthis.fpc;options.pUrl=3DencodeURIComponent=
(document.location.href);this.widgetCalled=3Dfalse;this.lastUrl=3D"blank"=
;this.logFlag=3Dtrue;this.closebutton=3Dnull;this.widgetExists=3Dfalse;th=
is.oldScroll=3D0;this.fp=3Dnull;this.currentId=3Dnull;this.toolbar=3Dfals=
e;this.st_clicked=3Dfalse;this.st_clicked_o=3Dnull;this.curr_offsetTop=3D=
0;this.curr_offsetLeft=3D0;this.frameReady=3Dfalse;this.delayShow=3Dfalse=
;this.numIframe=3D0;this.frameLoaded=3Dfalse;this.curr_id=3Dnull;this.cur=
rent_element=3Dnull;this.opt_arr=3D[];this.mousetimer=3Dnull;this.autoPos=
ition=3Dtrue;this.openDuration=3D0;this.stopClosing=3Dfalse;this.inTime=3D=
0;this.outTime=3D0;this.buttonCount=3D0;this.buttonClicked=3Dfalse;this.m=
eta=3D{publisher:"",hostname:location.host,location:location.pathname};th=
is.positionWidget=3Dfunction(){var id=3DSHARETHIS.curr_id;var =
shareel=3DSHARETHIS.current_element;if(shareel=3D=3Dnull){shareel=3Ddocum=
ent.getElementById(id)}var =
curleft=3Dcurtop=3D0;if(shareel.offsetParent){curleft=3Dshareel.offsetLef=
t;curtop=3Dshareel.offsetTop;while(shareel=3Dshareel.offsetParent){curlef=
t+=3Dshareel.offsetLeft;curtop+=3Dshareel.offsetTop}}shareel=3DSHARETHIS.=
current_element;if(shareel=3D=3Dnull){shareel=3Ddocument.getElementById(i=
d)}var eltop=3D0;var elleft=3D0;var topVal=3D0;var leftVal=3D0;var =
elemH=3D0;var =
elemW=3D0;eltop=3Dcurtop+shareel.offsetHeight+5;elleft=3Dcurleft+5;topVal=
=3D(eltop+SHARETHIS.curr_offsetTop);topVal=3Deval(topVal);elemH=3DtopVal;=
topVal+=3D"px";leftVal=3D(elleft+SHARETHIS.curr_offsetLeft);leftVal=3Deva=
l(leftVal);elemW=3DleftVal;leftVal+=3D"px";SHARETHIS.wrapper.style.top=3D=
topVal;SHARETHIS.wrapper.style.left=3DleftVal;if(SHARETHIS.autoPosition=3D=
=3Dtrue){SHARETHIS.oldScroll=3Ddocument.body.scrollTop;var =
pginfo=3Dthis.pageSize();var effectiveH=3Dpginfo.height+pginfo.scrY;var =
effectiveW=3Dpginfo.width+pginfo.scrX;var widgetH=3D280;var =
widgetW=3D355;var needH=3DwidgetH+elemH;var needW=3DwidgetW+elemW;var =
diffH=3DneedH-effectiveH;var diffW=3DneedW-effectiveW;var =
newH=3DelemH-diffH;var newW=3DelemW-diffW;function getHW(elem){var =
retH=3D0;var =
retW=3D0;while(elem!=3Dnull){retH+=3Delem.offsetTop;retW+=3Delem.offsetLe=
ft;elem=3Delem.offsetParent}return{height:retH,width:retW}}var =
buttonPos=3DgetHW(shareel);var =
leftA,rightA,topA,bottomA=3Dfalse;if(diffH>0){bottomA=3Dfalse;topA=3Dtrue=
;if((buttonPos.height-widgetH)>0){newH=3DbuttonPos.height-widgetH}SHARETH=
IS.wrapper.style.top=3DnewH+"px"}if(diffW>0){leftA=3Dfalse;rightA=3Dtrue;=
if((buttonPos.width-widgetW)>0){newW=3DbuttonPos.width-widgetW}SHARETHIS.=
wrapper.style.left=3DnewW+"px"}}SHARETHIS.wrapper.style.visibility=3D"vis=
ible";SHARETHIS.mainstframe.style.visibility=3D"visible"},this.hideWidget=
=3Dfunction(){if(SHARETHIS.wrapper.style.visibility!=3D=3D"hidden"){SHARE=
THIS.wrapper.style.visibility=3D"hidden"}if(SHARETHIS.mainstframe.style.v=
isibility!=3D=3D"hidden"){SHARETHIS.mainstframe.style.visibility=3D"hidde=
n"}},this.pageSize=3Dfunction(){var pScroll=3D[0,0,0,0];var scX=3D0;var =
scY=3D0;var winX=3D0;var =
winY=3D0;if(typeof(window.pageYOffset)=3D=3D"number"){scX=3Dwindow.pageXO=
ffset;scY=3Dwindow.pageYOffset}else{if(document.body&&(document.body.scro=
llLeft||document.body.scrollTop)){scX=3Ddocument.body.scrollLeft;scY=3Ddo=
cument.body.scrollTop}else{if(document.documentElement&&(document.documen=
tElement.scrollLeft||document.documentElement.scrollTop)){scX=3Ddocument.=
documentElement.scrollLeft;scY=3Ddocument.documentElement.scrollTop}}}if(=
window.innerWidth){winX=3Dwindow.innerWidth;winY=3Dwindow.innerHeight}els=
e{if(document.documentElement.offsetWidth){winX=3Ddocument.documentElemen=
t.offsetWidth;winY=3Ddocument.documentElement.offsetHeight}}pScroll=3D{sc=
rX:scX,scrY:scY,width:winX,height:winY};return =
pScroll};this.postPopup=3Dfunction(){field=3Dfunction(k,v){var =
f=3Ddocument.createElement("input");f.type=3D"hidden";f.name=3Dk;f.value=3D=
v;return f};normalize=3Dfunction(s){if(s=3D=3Dnull){return""}return =
encodeURIComponent(s)};var =
f=3Ddocument.createElement("form");f.method=3D"post";f.action=3DSHARETHIS=
.postUrl;f.target=3D"stpostframe";var urls=3D"";var =
propertylist=3D[];for(var i=3D0;i<this.shareables.length;i++){var =
tmp_prop=3D{};var =
o=3Dthis.shareables[i];urls=3Durls+o.properties.url;for(p in =
o.properties){if(SHARETHIS_tstOptions(p)=3D=3Dtrue){tmp_prop[p]=3Do.prope=
rties[p]}}propertylist.push(tmp_prop)}var =
jsonstr=3DST_JSON.encode(propertylist);this.guid=3Dhash_page(urls);f.appe=
ndChild(field("key",this.guid));f.appendChild(field("data",normalize(json=
str)));document.body.appendChild(f);f.submit()};this.addEntry=3Dfunction(=
properties,options){if(_thisScript=3D=3D=3Dnull){var =
tmpScr=3DgetShareThisScript();SHARETHIS.options=3DparseQueryString(tmpScr=
.src);this.frameUrl=3D"http://wd.sharethis.com/share3x/lightbox.15af31b73=
a3eb29d5bb023140bc5710d.html";this.postUrl=3D"http://wd.sharethis.com/api=
/setCache_ws.php";if(SHARETHIS.options.button){SHARETHIS.options.button=3D=
SHARETHIS.getBool(SHARETHIS.options.button.toString())}if(SHARETHIS.optio=
ns.popup){SHARETHIS.options.popup=3DSHARETHIS.getBool(SHARETHIS.options.p=
opup.toString())}if(SHARETHIS.options.embeds){SHARETHIS.options.embeds=3D=
SHARETHIS.getBool(SHARETHIS.options.embeds.toString())}var =
init=3D"#init";SHARETHIS.newwinfrag=3D"#popup";for(var o in =
SHARETHIS.options){if(SHARETHIS_tstOptions(o)=3D=3Dtrue){init=3Dinit+"/"+=
o+"=3D"+encodeURIComponent(options[o]);this.newwinfrag=3Dthis.newwinfrag+=
"/"+o+"=3D"+encodeURIComponent(options[o])}}SHARETHIS.initstr=3Dinit;SHAR=
ETHIS.mainstframe.src=3DSHARETHIS.frameUrl+SHARETHIS.initstr}var o=3Dnew =
Shareable(properties,SHARETHIS_merge(SHARETHIS.options,options));if(typeo=
f(o.properties.url)=3D=3D=3D"object"){try{o.properties.url=3Do.properties=
.url.href}catch(err){}}for(var prop in =
o.properties){try{o.properties[prop]=3Do.properties[prop].toString()}catc=
h(err){}}var xInt=3D"";var xInt2=3D"";var sendDataInt=3D"";var =
sendPopupDataInt=3D"";if(this.meta.publisher=3D=3D"5afea983-e449-4a75-a46=
4-3c9a7f6c6e37"||this.meta.publisher=3D=3D"e1e0ea5a-a326-4731-b1d1-f21623=
043511"||this.meta.publisher=3D=3D"ccd2a158-6cce-4bbc-afa8-1d2dc62fe84c"|=
|this.meta.publisher=3D=3D"1e542d6f-546f-4d85-a790-bbaf333155b7"||this.me=
ta.publisher=3D=3D"9d1a65ad-45f1-4259-a6e4-41a9b42d837c"||this.meta.publi=
sher=3D=3D"5afea983-e449-4a75-a464-3c9a7f6c6e37"||this.meta.publisher=3D=3D=
"89879177-51bf-4cf0-91c9-6326d062d5e6"||this.meta.publisher=3D=3D"44b6b8a=
4-c8df-4bd0-8d8d-e6ad27ec63f4"){o.options.onmouseover=3Dfalse}if(SHARETHI=
S.options.onmouseover){if(SHARETHIS.options.onmouseover=3D=3D"true"){o.op=
tions.onmouseover=3Dtrue}else{if(SHARETHIS.options.onmouseover=3D=3D"fals=
e"){o.options.onmouseover=3Dfalse}}}if(o.options.popup){o.options.onmouse=
over=3Dfalse;SHARETHIS.popupExists=3Dtrue}else{if(SHARETHIS_TOOLBAR!=3D=3D=
true){SHARETHIS.widgetExists=3Dtrue}}o.idx=3Dthis.shareables.push(o)-1;va=
r id=3D"sharethis_"+o.idx;var =
oidx=3Do.idx;if(o.properties.url!=3D=3Dthis.lastUrl){this.lastUrl=3Do.pro=
perties.url}else{this.logFlag=3Dfalse}o.chicklet=3Dfunction(e){if(!e){var=
 =
e=3Dwindow.event}if(e.target){o.trigger=3De.target}else{if(e.srcElement){=
o.trigger=3De.srcElement}}var =
dest=3Do.trigger.getAttribute("st_dest");var =
loggerUrl=3D"http://l.sharethis.com/log?event=3Dclick&source=3Dchicklet&p=
ublisher=3D"+encodeURIComponent(SHARETHIS.options.publisher)+"&hostname=3D=
"+encodeURIComponent(SHARETHIS.meta.hostname)+"&location=3D"+encodeURICom=
ponent(SHARETHIS.meta.location)+"&destinations=3D"+dest+"&ts"+(new =
Date()).getTime()+"&title=3D"+encodeURIComponent(o.properties.title)+"&ur=
l=3D"+encodeURIComponent(cleanURL(o.properties.url))+"&sessionID=3D"+SHAR=
ETHIS.options.sessionID+"&fpc=3D"+SHARETHIS.options.fpc;var logger=3Dnew =
Image(1,1);logger.src=3DloggerUrl;logger.onload=3Dfunction(){return};var =
url=3D"http://wd.sharethis.com/button/redirect.php";url+=3D"?d=3D"+dest;u=
rl+=3D"&pk=3D"+SHARETHIS.options.publisher;url+=3D"&s=3D"+SHARETHIS.optio=
ns.sessionID;url+=3D"&p=3D"+encodeURIComponent(ST_JSON.encode(o.propertie=
s));window.open(url,"stpopup","width=3D970,height=3D700,location=3D1,tool=
bar=3D1,scrollbars=3D1,menubar=3D1,resizable=3D1")};o.popup=3Dfunction(e)=
{stCancelClose();o.options.autoclose=3Dtrue;SHARETHIS.postEntries(o);if(S=
HARETHIS_TOOLBAR=3D=3D=3Dtrue){if(st_showing=3D=3D=3Dfalse){SHARETHIS.log=
("widget",o,"toolbar")}st_showing=3Dtrue;clearInterval(stVisibleInterval)=
;added_tool=3D"/glo_toolbar=3Dtrue";SHARETHIS.hideEmbeds();var =
pgval=3D"";if(SHARETHIS.page!=3Dnull){pgval=3D"/page=3D"+SHARETHIS.page}S=
HARETHIS.mainstframe.src=3DSHARETHIS.frameUrl+SHARETHIS.newwinfrag+"/guid=
_index=3D0/guid=3D"+SHARETHIS.guid+added_tool+pgval;SHARETHIS.wrapper.sty=
le.visibility=3D"visible";SHARETHIS.mainstframe.style.visibility=3D"visib=
le"}else{if((SHARETHIS.ready=3D=3D=3Dtrue&&SHARETHIS.frameReady=3D=3D=3Dt=
rue)||(SHARETHIS.popupExists=3D=3D=3Dtrue&&SHARETHIS.ready=3D=3Dtrue&&SHA=
RETHIS.widgetExists=3D=3D=3Dfalse)||(SHARETHIS.popupExists=3D=3D=3Dtrue&&=
SHARETHIS.ready=3D=3Dtrue&&SHARETHIS.frameReady=3D=3D=3Dtrue)){clearInter=
val(stVisibleInterval);if((typeof(e)!=3D"undefined"&&typeof(e)!=3D"unknow=
n"&&e)||(typeof(event)!=3D"undefined"&&typeof(event)!=3D"unknown"&&event)=
){if(typeof(e)!=3D"undefined"&&typeof(e)!=3D"unknown"&&e){o.trigger=3De.t=
arget}else{if(typeof(event)!=3D"undefined"&&typeof(event)!=3D"unknown"&&e=
vent){o.trigger=3Devent.srcElement}}if(o.trigger!=3D=3Dnull&&o.trigger){i=
d=3Do.trigger.id;SHARETHIS.current_element=3Do.trigger;o.page=3Do.trigger=
.getAttribute("st_page");if(st_showing=3D=3D=3Dfalse){if(o.page=3D=3D"hom=
e"){SHARETHIS.log("widget",o,"button")}else{SHARETHIS.log("widget",o,"chi=
cklet")}}}else{o.page=3D"home";if(st_showing=3D=3D=3Dfalse){SHARETHIS.log=
("widget",o,"button")}}}else{if(o.element!=3Dnull){id=3Do.element.id;SHAR=
ETHIS.current_element=3Do.element}o.page=3D"home";if(st_showing=3D=3D=3Df=
alse){SHARETHIS.log("widget",o,"button")}}var =
pageFrag=3D"/page=3D"+o.page;SHARETHIS.curr_offsetTop=3DNumber(o.options.=
offsetTop);SHARETHIS.curr_offsetLeft=3DNumber(o.options.offsetLeft);if(SH=
ARETHIS.curr_offsetTop>0||SHARETHIS.curr_offsetTop>0){SHARETHIS.autoPosit=
ion=3Dfalse}SHARETHIS.curr_id=3Did;if(o.options.onclick){var =
res=3Do.options.onclick.apply(document,[o]);if(res=3D=3Dfalse){return =
false}}if(o.options.popup){var =
newwinurl=3DSHARETHIS.frameUrl+SHARETHIS.newwinfrag+"/guid_index=3D0/guid=
=3D"+SHARETHIS.guid+pageFrag;window.open(newwinurl,"newstframe","status=3D=
1,toolbar=3D0,width=3D353,height=3D598")}else{if(st_showing=3D=3Dfalse){i=
f(o.options.embeds=3D=3Dfalse){SHARETHIS.hideEmbeds()}stautoclose=3Do.opt=
ions.autoclose;if(SHARETHIS.sendNum<SHARETHIS.sendArray.length){var =
temparr=3D[];SHARETHIS.sendArray.push("#show/guid_index=3D0"+pageFrag);if=
(SHARETHIS.delayShow=3D=3D=3Dtrue){sendDataInt=3DsetTimeout(SHARETHIS.sen=
dData,1000)}else{sendDataInt=3DsetTimeout(SHARETHIS.sendData,20)}}else{wi=
ndow.frames.stframe.location.replace(SHARETHIS.frameUrl+"#show/guid_index=
=3D0"+pageFrag);if(SHARETHIS.delayShow=3D=3D=3Dtrue){sendDataInt=3DsetTim=
eout(SHARETHIS.sendData,1000)}else{sendDataInt=3DsetTimeout(SHARETHIS.sen=
dData,20)}}SHARETHIS.positionWidget();st_showing=3Dtrue}else{if(o.options=
.onmouseover=3D=3Dfalse||o.options.onmouseover=3D=3D"false"){stcloseWidge=
t()}}}}else{SHARETHIS.st_clicked=3Dtrue;SHARETHIS.delayShow=3Dtrue;SHARET=
HIS.st_clicked_o=3Do}}};var =
style=3Do.options.style?o.options.style:(SHARETHIS.options.style?SHARETHI=
S.options.style:"default");switch(style){case"vertical":var =
ovr=3Ddocument.createElement("div");ovr.className=3D"stoverlay";o.button=3D=
ovr;var =
img=3Ddocument.createElement("img");img.setAttribute("src","http://w.shar=
ethis.com/images/vbutton.gif");if(o.options.onmouseover=3D=3Dfalse||o.opt=
ions.onmouseover=3D=3D"false"){ovr.onclick=3Do.popup}if(o.options.onmouse=
over=3D=3Dtrue||o.options.onmouseover=3D=3D"true"){ovr.onclick=3Dfunction=
(){stCancelClose()};ovr.onmouseover=3Dfunction(){stCancelClose();SHARETHI=
S.mousetimer=3DsetTimeout(o.popup,150)};ovr.onmouseout=3Dfunction(){clear=
Interval(SHARETHIS.mousetimer);stClose()}}try{if(o.options.button=3D=3Dtr=
ue&&SHARETHIS.bodyLoaded=3D=3Dfalse){document.write('<div =
class=3D"stbutton vertical" id=3D"'+id+'"></div>')}}catch(err){}var =
x=3Ddocument.getElementById(id);if(x){if(o.options.button){x.appendChild(=
ovr);x.appendChild(img)}}break;case"horizontal":case"vertical":var =
ovr=3Ddocument.createElement("div");ovr.className=3D"stoverlay";o.button=3D=
ovr;var =
img=3Ddocument.createElement("img");img.setAttribute("src","http://w.shar=
ethis.com/images/hbutton.gif");if(o.options.onmouseover=3D=3Dfalse||o.opt=
ions.onmouseover=3D=3D"false"){ovr.onclick=3Do.popup}if(o.options.onmouse=
over=3D=3Dtrue||o.options.onmouseover=3D=3D"true"){ovr.onclick=3Dfunction=
(){stCancelClose()};ovr.onmouseover=3Dfunction(){stCancelClose();SHARETHI=
S.mousetimer=3DsetTimeout(o.popup,150)};ovr.onmouseout=3Dfunction(){clear=
Interval(SHARETHIS.mousetimer);stClose()}}try{if(o.options.button=3D=3Dtr=
ue&&SHARETHIS.bodyLoaded=3D=3Dfalse){document.write('<div =
class=3D"stbutton horizontal" id=3D"'+id+'"></div>')}}catch(err){}var =
x=3Ddocument.getElementById(id);if(x){if(o.options.button){x.appendChild(=
ovr);x.appendChild(img)}}break;default:var =
a=3Ddocument.createElement("a");a.className=3D"stbutton =
stico_"+(o.options.style?o.options.style:(SHARETHIS.options.style?SHARETH=
IS.options.style:"default"));a.title=3D"ShareThis via email, AIM, social =
bookmarking and networking sites, =
etc.";a.href=3D"javascript:void(0)";a.setAttribute("st_page","home");if(o=
.options.onmouseover=3D=3Dfalse||o.options.onmouseover=3D=3D"false"){a.on=
click=3Do.popup}if(o.options.onmouseover=3D=3Dtrue||o.options.onmouseover=
=3D=3D"true"){a.onclick=3Dfunction(){stCancelClose()};a.onmouseover=3Dfun=
ction(){stCancelClose();SHARETHIS.mousetimer=3DsetTimeout(o.popup,150)};a=
.onmouseout=3Dfunction(){clearInterval(SHARETHIS.mousetimer);stClose()}}v=
ar =
t=3Ddocument.createElement("span");t.className=3D"stbuttontext";t.setAttr=
ibute("st_page","home");t.appendChild(document.createTextNode(o.options.b=
uttonText));a.appendChild(t);o.button=3Da;try{if(o.options.button=3D=3Dtr=
ue&&SHARETHIS.bodyLoaded=3D=3Dfalse){document.write('<span =
id=3D"'+id+'"></span>')}}catch(err){}var =
x=3Ddocument.getElementById(id);if(x){if(o.options.button){x.appendChild(=
a)}}}if(this.logFlag){SHARETHIS.buttonCount++}return =
o},this.postEntries=3Dfunction(o){SHARETHIS.sendNum=3D0;var =
urls=3D"";var propertylist=3D[];var =
tmp_prop=3D{};urls=3Durls+o.properties.url;for(p in =
o.properties){if(SHARETHIS_tstOptions(p)=3D=3Dtrue){tmp_prop[p]=3Dnull;tm=
p_prop[p]=3Do.properties[p]}}propertylist.push(tmp_prop);var =
tmp=3D"/pageTitle=3D"+encodeURIComponent(encodeURIComponent(document.titl=
e))+"/pageURL=3D"+encodeURIComponent(encodeURIComponent(cleanURL(document=
.URL)))+"/pageHost=3D"+encodeURIComponent(encodeURIComponent(document.loc=
ation.host))+"/pagePath=3D"+encodeURIComponent(encodeURIComponent(documen=
t.location.pathname));SHARETHIS.sendArray.push("#data"+tmp);var =
jsonstr=3DST_JSON.encode(propertylist);var =
tmp=3DencodeURIComponent(jsonstr);var b=3Dtmp.length;var a=3D1700;var =
c=3DparseInt(b/a);c=3Dc+1;var d=3Db%a;var sendArr=3D[];var =
tmpSend=3D"";for(var =
i=3D0;i<c;i++){sendArr.push(tmp.substring(i*a,(i*a)+a))}for(var =
i=3D0;i<sendArr.length;i++){tmpSend=3D"#data/jsonData=3D"+encodeURICompon=
ent(sendArr[i]);SHARETHIS.sendArray.push(tmpSend)}SHARETHIS.sendArray.pus=
h("#data/jsonData=3Ddone")},this.sendData=3Dfunction(){xInt=3DsetInterval=
(SHARETHIS.sendJSON,50)},this.sendJSON=3Dfunction(){if(SHARETHIS.sendNum<=
SHARETHIS.sendArray.length){window.frames.stframe.location.replace(SHARET=
HIS.frameUrl+SHARETHIS.sendArray[SHARETHIS.sendNum])}else{clearInterval(x=
Int)}SHARETHIS.sendNum++},this.defer=3Dfunction(f){if(this.ready){f.apply=
(document,[SHARETHIS])}else{this.readyList.push(function(){return =
f.apply(this,[SHARETHIS])})}},this.onReady=3Dfunction(){SHARETHIS.ready=3D=
true;for(var =
i=3D0;i<SHARETHIS.readyList.length;++i){SHARETHIS.readyList[i].apply(docu=
ment,[SHARETHIS])}},this.load=3Dfunction(t,opts){var =
e=3Ddocument.createElement(t);for(var i in =
opts){e.setAttribute(i,opts[i])}try{document.getElementsByTagName("head")=
[0].appendChild(e)}catch(err){document.body.appendChild(e)}},this.hideEmb=
eds=3Dfunction(){var =
embeds=3Ddocument.getElementsByTagName("embed");for(var =
i=3D0;i<embeds.length;i++){embeds[i].style.visibility=3D"hidden"}},this.s=
howEmbeds=3Dfunction(){var =
embeds=3Ddocument.getElementsByTagName("embed");for(var =
i=3D0;i<embeds.length;i++){embeds[i].style.visibility=3D"visible"}},this.=
manageHashTracking=3Dfunction(url_str){try{var =
sts_hash=3DparseFloat(this.sessionID_time).toString(36)+"."+parseFloat(th=
is.sessionID_rand).toString(36);var =
url_hash=3Durl_str.split("#",2)[1];var hash_regexp=3Dnew =
RegExp("STS=3D([^&\\s]+)(&SHR=3D([^&\\s]+))?","i");var =
match_results=3Dnull;if(typeof(url_hash)!=3D"undefined"){match_results=3D=
url_hash.match(hash_regexp)}if(match_results!=3Dnull&&match_results.lengt=
h>1){var raw_str=3Dmatch_results[1];var =
temp_arr=3Draw_str.split(".");if(temp_arr!=3Dnull){this.referrer_sts=3Dpa=
rseInt(temp_arr[0],36)+"."+parseInt(temp_arr[1],36);if(match_results.leng=
th>2&&match_results[3]!=3Dnull){this.shr_flag=3Dmatch_results[3]}}}if(thi=
s.hash_flag=3D=3Dtrue&&(match_results!=3Dnull||url_str.split("#",2).lengt=
h<2)){var =
uri_part=3Durl_str.split("#",2)[0];url_str=3Duri_part+"#STS=3D"+sts_hash;=
window.location.replace(url_str)}return url_str}catch(err){return =
url_str}},this.log=3Dfunction(event,obj,source){if(obj&&obj.properties&&o=
bj.properties.url){url=3Dthis.manageHashTracking(obj.properties.url)}else=
{url=3Dthis.manageHashTracking(document.URL)}var =
lurl=3D"http://l.sharethis.com/log?event=3D";if(event=3D=3D"pview"){lurl=3D=
"http://l.sharethis.com/pview?event=3D"}lurl+=3Devent;if(source!=3Dnull){=
lurl+=3D"&source=3D"+source}lurl+=3D"&publisher=3D"+encodeURIComponent(SH=
ARETHIS.meta.publisher)+"&hostname=3D"+encodeURIComponent(SHARETHIS.meta.=
hostname)+"&location=3D"+encodeURIComponent(SHARETHIS.meta.location)+"&ur=
l=3D"+encodeURIComponent(cleanURL(url))+"&sessionID=3D"+SHARETHIS.session=
ID+"&fpc=3D"+SHARETHIS.fpc+"&ts"+(new =
Date()).getTime()+"."+SHARETHIS.counter+++"&r_sessionID=3D"+this.referrer=
_sts+"&hash_flag=3D"+SHARETHIS.hash_flag+"&shr=3D"+this.shr_flag;var =
logger2=3Dnew =
Image(1,1);logger2.src=3Dlurl;logger2.onload=3Dfunction(){return}},this.g=
etBool=3Dfunction(variable){var vtype;var =
toReturn;if(variable!=3Dnull){switch(typeof(variable)){case"boolean":vtyp=
e=3D"boolean";return =
variable;break;case"number":vtype=3D"number";if(variable=3D=3D0){toReturn=
=3Dfalse}else{toReturn=3Dtrue}break;case"string":vtype=3D"string";if(vari=
able=3D=3D"true"||variable=3D=3D"1"){toReturn=3Dtrue}else{if(variable=3D=3D=
"false"||variable=3D=3D"0"){toReturn=3Dfalse}else{if(variable.length>0){t=
oReturn=3Dtrue}else{if(variable.length=3D=3D0){toReturn=3Dfalse}}}}break}=
return =
toReturn}},this.onStFrameLoad=3Dfunction(){if(SHARETHIS.frameLoaded=3D=3D=
=3Dfalse){SHARETHIS.widgetCalled=3Dtrue;SHARETHIS.frameLoaded=3Dtrue;if(S=
HARETHIS.st_clicked=3D=3Dtrue){setTimeout("SHARETHIS.st_clicked_o.popup()=
",1000)}}};this.readyTest=3Dfunction(){if(SHARETHIS.frameReady=3D=3D=3Dtr=
ue&&SHARETHIS.ready=3D=3D=3Dtrue){clearInterval(SHARETHIS.readyTestInterv=
al);SHARETHIS.onStFrameLoad()}};this.sendEvent=3Dfunction(name,value){var=
 =
tmpSend=3D"#widget/"+name+"=3D"+value;window.frames.stframe.location.repl=
ace(SHARETHIS.frameUrl+tmpSend)};this.initialize=3Dfunction(options){for(=
o in =
options){options[o]=3Doptions[o].toString()}if(_thisScript=3D=3Dnull){var=
 _slist=3Ddocument.getElementsByTagName("script");var =
_thisScript3=3D_slist[_slist.length-1];var =
ST_script_src=3D_thisScript3.src}else{var =
ST_script_src=3D_thisScript.src}this.frameUrl=3D"http://wd.sharethis.com/=
share3x/lightbox.15af31b73a3eb29d5bb023140bc5710d.html";this.postUrl=3D"h=
ttp://wd.sharethis.com/api/setCache_ws.php";this.options=3Doptions||{};if=
(this.options.button){this.options.button=3Dthis.getBool(this.options.but=
ton.toString())}if(this.options.popup){this.options.popup=3Dthis.getBool(=
this.options.popup.toString())}if(this.options.embeds){this.options.embed=
s=3Dthis.getBool(this.options.embeds.toString())}if(this.options.publishe=
r){this.meta.publisher=3Dthis.options.publisher}var =
tmp_css=3D"http://w.sharethis.com/button/css/sharethis.b179c8fdc812a8966f=
afbacf74e72836.css";try{if(this.options.css){tmp_css=3Dthis.options.css.t=
oString()}}catch(err){}var =
css=3Dtmp_css;this.load("link",{href:(this.options.css?this.options.css:c=
ss),rel:"stylesheet",type:"text/css"});try{this.mainstframe=3Ddocument.cr=
eateElement('<iframe name=3D"stframe" allowTransparency=3D"true" =
style=3D"body{background:transparent;}" =
></iframe>');this.mainstframe.onreadystatechange=3Dfunction(){if(SHARETHI=
S.mainstframe.readyState=3D=3D=3D"complete"){SHARETHIS.frameReady=3Dtrue}=
}}catch(err){this.mainstframe=3Ddocument.createElement("iframe");this.mai=
nstframe.allowTransparency=3D"true";this.mainstframe.setAttribute("allowT=
ransparency","true");this.mainstframe.onload=3Dfunction(){SHARETHIS.frame=
Ready=3Dtrue}}this.mainstframe.id=3D"stframe";this.mainstframe.className=3D=
"stframe";this.mainstframe.name=3D"stframe";this.mainstframe.frameBorder=3D=
"0";this.mainstframe.scrolling=3D"no";this.mainstframe.width=3D"353px";th=
is.mainstframe.height=3D"598px";this.mainstframe.style.top=3D"0px";this.m=
ainstframe.style.left=3D"0px";try{this.fp=3Ddocument.createElement('<ifra=
me name=3D"stpostframe" =
style=3D"visibility:hidden"></iframe>')}catch(err){this.fp=3Ddocument.cre=
ateElement("iframe");this.fp.style.visibility=3D"hidden"}this.fp.name=3D"=
stpostframe";this.fp.width=3D"0px";this.fp.height=3D"0px";this.fp.src=3D"=
";var init=3D"#init";this.newwinfrag=3D"#popup";for(var o in =
options){if(SHARETHIS_tstOptions(o)=3D=3Dtrue){init=3Dinit+"/"+o+"=3D"+en=
codeURIComponent(options[o]);this.newwinfrag=3Dthis.newwinfrag+"/"+o+"=3D=
"+encodeURIComponent(options[o])}}this.initstr=3Dinit;this.sendInit.push(=
this.initstr);this.mainstframe.src=3Dthis.frameUrl+this.sendInit[0];this.=
wrapper=3Ddocument.createElement("div");this.wrapper.id=3D"stwrapper";thi=
s.wrapper.className=3D"stwrapper";this.wrapper.style.visibility=3D"hidden=
";this.wrapper.style.top=3D"-999px";this.wrapper.style.left=3D"-999px";th=
is.closewrapper=3Ddocument.createElement("div");this.closewrapper.classNa=
me=3D"stclose";this.closewrapper.onclick=3DstcloseWidget;this.wrapper.app=
endChild(this.closewrapper);this.wrapper.appendChild(this.mainstframe);th=
is.defer(function(){SHARETHIS.bodyLoaded=3Dtrue;var =
burl=3D"http://l.sharethis.com/log?event=3Dbview";var =
additional=3DdbrInfo();if(additional=3D=3Dfalse){additional=3D""}burl+=3D=
"&publisher=3D"+encodeURIComponent(SHARETHIS.meta.publisher)+"&hostname=3D=
"+encodeURIComponent(SHARETHIS.meta.hostname)+"&location=3D&url=3D&sessio=
nID=3D"+SHARETHIS.sessionID+"&fpc=3D"+SHARETHIS.fpc+"&ts"+(new =
Date()).getTime()+"."+SHARETHIS.counter+++"&count=3D"+SHARETHIS.buttonCou=
nt+additional;var logger3=3Dnew =
Image(1,1);logger3.src=3Dburl;logger3.onload=3Dfunction(){return};if(SHAR=
ETHIS_TOOLBAR=3D=3D=3Dtrue){document.body.appendChild(SHARETHIS.fp);SHARE=
THIS.postPopup();SHARETHIS_TOOLBAR_DIV.appendChild(SHARETHIS.wrapper)}if(=
SHARETHIS.popupExists=3D=3D=3Dtrue&&SHARETHIS.popupCalled=3D=3D=3Dfalse){=
document.body.appendChild(SHARETHIS.fp);SHARETHIS.postPopup();SHARETHIS.p=
opupCalled=3Dtrue}if(SHARETHIS.widgetCalled=3D=3D=3Dfalse&&SHARETHIS.widg=
etExists=3D=3D=3Dtrue){document.body.appendChild(SHARETHIS.wrapper);try{w=
indow.frames.stframe.location.replace(SHARETHIS.mainstframe.src)}catch(er=
r){}SHARETHIS.readyTestInterval=3DsetInterval(SHARETHIS.readyTest,250)}tr=
y{var =
stfrm=3Ddocument.getElementById("stframe");stfrm.onmouseover=3Dfunction()=
{stCancelClose();SHARETHIS.inTime=3D(new =
Date()).getTime()};stfrm.onmouseout=3Dfunction(){SHARETHIS.outTime=3D(new=
 =
Date()).getTime();SHARETHIS.openDuration=3D(SHARETHIS.outTime-SHARETHIS.i=
nTime)/1000;stClose()};document.body.onclick=3Dfunction(){if(SHARETHIS.bu=
ttonClicked=3D=3Dfalse){SHARETHIS.stopClosing=3Dfalse;SHARETHIS.openDurat=
ion=3D0;stClose(100)}}}catch(err){}});if(typeof(window.addEventListener)!=
=3D"undefined"){window.addEventListener("load",this.onReady,false)}else{i=
f(typeof(document.addEventListener)!=3D"undefined"){document.addEventList=
ener("load",this.onReady,false)}else{if(typeof =
window.attachEvent!=3D"undefined"){window.attachEvent("onload",this.onRea=
dy)}}}setTimeout(function(){for(var s in =
SHARETHIS.shareables){if(SHARETHIS.shareables[s].options!=3Dundefined){sw=
itch(SHARETHIS.shareables[s].options.style){case"vertical":var =
ifr;try{ifr=3Ddocument.createElement('<iframe =
allowTransparency=3D"true"></iframe>')}catch(err){ifr=3Ddocument.createEl=
ement("iframe");ifr.allowTransparency=3D"true";ifr.setAttribute("allowTra=
nsparency","true")}ifr.className=3D"stcounter";ifr.frameBorder=3D"0";ifr.=
scrolling=3D"no";ifr.width=3D"57px";ifr.height=3D"39px";ifr.src=3D"http:/=
/wd.sharethis.com/button/vcounter.php?url=3D"+encodeURIComponent(SHARETHI=
S.shareables[s].properties.url);SHARETHIS.shareables[s].button.parentNode=
.appendChild(ifr);break;case"horizontal":var =
ifr;try{ifr=3Ddocument.createElement('<iframe =
allowTransparency=3D"true"></iframe>')}catch(err){ifr=3Ddocument.createEl=
ement("iframe");ifr.allowTransparency=3D"true";ifr.setAttribute("allowTra=
nsparency","true")}ifr.className=3D"stcounter";ifr.frameBorder=3D"0";ifr.=
scrolling=3D"no";ifr.width=3D"37px";ifr.height=3D"18px";ifr.src=3D"http:/=
/wd.sharethis.com/button/hcounter.php?url=3D"+encodeURIComponent(SHARETHI=
S.shareables[s].properties.url);SHARETHIS.shareables[s].button.parentNode=
.appendChild(ifr);break}}}},1000)};this.initialize(options)}var =
closetimeout;function =
stClose(a){if(!a){a=3D1000}if(stautoclose=3D=3Dtrue&&SHARETHIS_TOOLBAR=3D=
=3Dfalse){if(SHARETHIS.openDuration<2&&SHARETHIS.stopClosing=3D=3Dfalse){=
closetimeout=3DsetTimeout("stcloseWidget()",a)}else{SHARETHIS.stopClosing=
=3Dtrue}}}function =
stCancelClose(){clearTimeout(closetimeout);SHARETHIS.buttonClicked=3Dtrue=
;setTimeout(function(){SHARETHIS.buttonClicked=3Dfalse},100)}function =
stcloseWidget(){st_showing=3Dfalse;SHARETHIS.wrapper.style.visibility=3D"=
hidden";SHARETHIS.mainstframe.style.visibility=3D"hidden";SHARETHIS.wrapp=
er.style.top=3D"-999px";SHARETHIS.wrapper.style.left=3D"-999px";SHARETHIS=
.showEmbeds();SHARETHIS.sendEvent("screen","home");SHARETHIS.sendArray=3D=
[]}function SHARETHIS_tstOptions(a){var =
d=3D["type","title","summary","content","url","icon","category","updated"=
,"published","author","button","onmouseover","buttonText","popup","offset=
Left","offsetTop","embeds","autoclose","publisher","tabs","services","cha=
rset","headerbg","inactivebg","inactivefg","linkfg","style","send_service=
s","exclusive_services","post_services","headerfg","headerType","headerTi=
tle","sessionID","tracking","fpc","ads","pUrl","hash_flag"];var =
c=3Dfalse;for(var =
b=3D0;b<d.length;b++){if(a=3D=3D=3Dd[b]){c=3Dtrue}}return c}function =
SHARETHIS_TEST(){SHARETHIS.mainstframe.src=3DSHARETHIS.frameUrl+"#test"}f=
unction =
_stFpc(){if(!document.domain||document.domain.search(/\.gov/)>0){return =
false}var g=3D_stGetFpc("__unam");if(g=3D=3Dfalse){var =
c=3DMath.round(Math.random()*2147483647);c=3Dc.toString(16);var h=3D(new =
Date()).getTime();h=3Dh.toString(16);var e=3D"";var =
a=3D_stGetD();a=3Da.split(/\./)[1];if(!a){return =
false}e=3D_stdHash(a)+"-"+h+"-"+c+"-1";g=3De;_stSetFpc(g)}else{var =
b=3Dg;var f=3Db.split(/\-/);if(f.length=3D=3D4){var =
d=3DNumber(f[3]);d++;b=3Df[0]+"-"+f[1]+"-"+f[2]+"-"+d;g=3Db;_stSetFpc(g)}=
}return g}function _stSetFpc(g){var a=3D"__unam";var c=3Dnew Date;var =
i=3Dc.getFullYear();var f=3Dc.getMonth()+9;var h=3Dc.getDate();var =
d=3Da+"=3D"+escape(g);if(i){var b=3Dnew Date(i,f,h);d+=3D"; =
expires=3D"+b.toGMTString()}var e=3D_stGetD();d+=3D"; =
domain=3D"+escape(e)+";path=3D/";document.cookie=3Dd}function =
_stGetD(){var b=3Ddocument.domain.split(/\./);var =
a=3D"";if(b.length>1){a=3D"."+b[b.length-2]+"."+b[b.length-1]}return =
a}function _stGetFpc(b){var a=3Ddocument.cookie.match("(^|;) =
?"+b+"=3D([^;]*)(;|$)");if(a){return(unescape(a[2]))}else{return =
false}}function _stdHash(a){var e=3D0,d=3D0;for(var =
c=3Da.length-1;c>=3D0;c--){var =
b=3DparseInt(a.charCodeAt(c));e=3D((e<<8)&268435455)+b+(b<<12);if((d=3De&=
161119850)!=3D0){e=3D(e^(d>>20))}}return e.toString(16)}var =
_thisScript=3Dnull;function getShareThisScript(){var =
d=3Ddocument.getElementsByTagName("script");var c=3Dnull;for(var =
b=3D0;b<d.length;b++){var =
a=3Dd[b].src;if(a.search(/.*sharethis.*\/button/)>=3D0){c=3Dd[b]}else{if(=
a.search(/.*sharethis.*\/widget\/\?/)>=3D0||a.search(/.*sharethis.*\/widg=
et\/index/)>=3D0||a.search(/.*sharethis.*\/widget\/\?&/)>=3D0){c=3Dd[b]}}=
}return c}function dbrInfo(){var =
a=3Ddocument.referrer;if(a&&a.length>0){var =
c=3D/(http:\/\/)(.*?)\/.*/i;var b=3D/(^.*\?)(.*)/ig;var f=3D"";var =
e=3Da.replace(c,"$2");if(e.length>0){f+=3D"&refDomain=3D"+e}else{return =
false}var =
d=3Da.replace(b,"$2");if(d.length>0){f+=3D"&refQuery=3D"+encodeURICompone=
nt(d)}return f}else{return =
false}}_thisScript=3DgetShareThisScript();if(_thisScript){SHARETHIS=3Dnew=
 ShareThis(parseQueryString(_thisScript.src))}else{SHARETHIS=3Dnew =
ShareThis()}SHARETHIS.log("pview",null,null)}var =
_slist=3Ddocument.getElementsByTagName("script");var =
_thisScript2=3D_slist[_slist.length-1];if(_thisScript2&&_thisScript2.pare=
ntNode.tagName!=3D"HEAD"&&typeof(_sttoolbar)=3D=3D"undefined"){var =
obj=3DSHARETHIS.addEntry()}}catch(err){};
------=_NextPart_000_0000_01CACB5E.D8C3DEC0
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js

(function(){var h=3Dtrue,i=3Dnull,j=3Dfalse,aa=3D(new =
Date).getTime(),ba=3Dfunction(a){var b=3D(new =
Date).getTime()-aa;b=3D"&dtd=3D"+(b<1E3?b:"M");return a+b};var =
k=3Dthis,ca=3Dfunction(a,b,c){a=3Da.split(".");c=3Dc||k;!(a[0]in =
c)&&c.execScript&&c.execScript("var "+a[0]);for(var =
d;a.length&&(d=3Da.shift());)if(!a.length&&b!=3D=3Dundefined)c[d]=3Db;els=
e c=3Dc[d]?c[d]:(c[d]=3D{})},l=3Dfunction(a){var b=3Dtypeof =
a;if(b=3D=3D"object")if(a){if(a instanceof Array||!(a instanceof =
Object)&&Object.prototype.toString.call(a)=3D=3D"[object Array]"||typeof =
a.length=3D=3D"number"&&typeof a.splice!=3D"undefined"&&typeof =
a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("splice"))=
return"array";=0A=
if(!(a instanceof =
Object)&&(Object.prototype.toString.call(a)=3D=3D"[object =
Function]"||typeof a.call!=3D"undefined"&&typeof =
a.propertyIsEnumerable!=3D"undefined"&&!a.propertyIsEnumerable("call")))r=
eturn"function"}else return"null";else if(b=3D=3D"function"&&typeof =
a.call=3D=3D"undefined")return"object";return b},m=3Dfunction(a){return =
l(a)=3D=3D"array"},da=3Dfunction(a){var b=3Dl(a);return =
b=3D=3D"array"||b=3D=3D"object"&&typeof =
a.length=3D=3D"number"},n=3Dfunction(a){return typeof =
a=3D=3D"string"},ea=3Dfunction(a){a=3Dl(a);return a=3D=3D"object"||=0A=
a=3D=3D"array"||a=3D=3D"function"},fa=3Dfunction(a){var =
b=3Dl(a);if(b=3D=3D"object"||b=3D=3D"array"){if(a.clone)return =
a.clone.call(a);b=3Db=3D=3D"array"?[]:{};for(var c in =
a)b[c]=3Dfa(a[c]);return b}return a},ga=3Dfunction(a,b){var =
c=3Db||k;if(arguments.length>2){var =
d=3DArray.prototype.slice.call(arguments,2);return function(){var =
e=3DArray.prototype.slice.call(arguments);Array.prototype.unshift.apply(e=
,d);return a.apply(c,e)}}else return function(){return =
a.apply(c,arguments)}},p=3Dfunction(a,b,c){ca(a,b,c)},ha=3Dfunction(a,b){=
function c(){}=0A=
c.prototype=3Db.prototype;a.Y=3Db.prototype;a.prototype=3Dnew =
c;a.prototype.constructor=3Da};var =
q=3Dfunction(a,b){a=3DparseFloat(a);return =
isNaN(a)||a>1||a<0?b:a},ia=3Dfunction(a,b){if(a=3D=3D"true")return =
h;if(a=3D=3D"false")return j;return =
b},ja=3D/^([\w-]+\.)*([\w-]{2,})(\:[0-9]+)?$/,r=3Dfunction(a,b){if(!a)ret=
urn b;return(a=3Da.match(ja))?a[0]:b};var ka=3Dfunction(){return =
r("","googleads.g.doubleclick.net")},la=3Dfunction(){return =
r("","pagead2.googlesyndication.com")},s=3Dfunction(){return =
r("","pagead2.googlesyndication.com")};var =
t=3DArray.prototype,ma=3Dt.forEach?function(a,b,c){t.forEach.call(a,b,c)}=
:function(a,b,c){for(var =
d=3Da.length,e=3Dn(a)?a.split(""):a,f=3D0;f<d;f++)f in =
e&&b.call(c,e[f],f,a)},na=3Dfunction(){return =
t.concat.apply(t,arguments)},oa=3Dfunction(a){if(m(a))return =
na(a);else{for(var b=3D[],c=3D0,d=3Da.length;c<d;c++)b[c]=3Da[c];return =
b}};var =
u=3Dfunction(a,b){this.width=3Da;this.height=3Db};u.prototype.clone=3Dfun=
ction(){return new =
u(this.width,this.height)};u.prototype.toString=3Dfunction(){return"("+th=
is.width+" x =
"+this.height+")"};u.prototype.ceil=3Dfunction(){this.width=3DMath.ceil(t=
his.width);this.height=3DMath.ceil(this.height);return =
this};u.prototype.floor=3Dfunction(){this.width=3DMath.floor(this.width);=
this.height=3DMath.floor(this.height);return this};=0A=
u.prototype.round=3Dfunction(){this.width=3DMath.round(this.width);this.h=
eight=3DMath.round(this.height);return =
this};u.prototype.scale=3Dfunction(a){this.width*=3Da;this.height*=3Da;re=
turn this};var pa=3Dfunction(a,b,c){for(var d in =
a)b.call(c,a[d],d,a)};var qa=3Dfunction(a){for(var =
b=3D1;b<arguments.length;b++){var =
c=3DString(arguments[b]).replace(/\$/g,"$$$$");a=3Da.replace(/\%s/,c)}ret=
urn a},wa=3Dfunction(a,b){if(b)return =
a.replace(ra,"&amp;").replace(sa,"&lt;").replace(ta,"&gt;").replace(ua,"&=
quot;");else{if(!va.test(a))return =
a;if(a.indexOf("&")!=3D-1)a=3Da.replace(ra,"&amp;");if(a.indexOf("<")!=3D=
-1)a=3Da.replace(sa,"&lt;");if(a.indexOf(">")!=3D-1)a=3Da.replace(ta,"&gt=
;");if(a.indexOf('"')!=3D-1)a=3Da.replace(ua,"&quot;");return =
a}},ra=3D/&/g,sa=3D/</g,ta=3D/>/g,ua=3D/\"/g,=0A=
va=3D/[&<>\"]/,za=3Dfunction(a){if(a.indexOf("&")!=3D-1)return"document"i=
n k&&a.indexOf("<")=3D=3D-1?xa(a):ya(a);return a},xa=3Dfunction(a){var =
b=3Dk.document.createElement("a");b.innerHTML=3Da;b.normalize&&b.normaliz=
e();a=3Db.firstChild.nodeValue;b.innerHTML=3D"";return =
a},ya=3Dfunction(a){return =
a.replace(/&([^;]+);/g,function(b,c){switch(c){case "amp":return"&";case =
"lt":return"<";case "gt":return">";case =
"quot":return'"';default:if(c.charAt(0)=3D=3D"#"){c=3DNumber("0"+c.substr=
(1));if(!isNaN(c))return String.fromCharCode(c)}return b}})},=0A=
Aa=3Dfunction(a,b){for(var c=3Db.length,d=3D0;d<c;d++){var =
e=3Dc=3D=3D1?b:b.charAt(d);if(a.charAt(0)=3D=3De&&a.charAt(a.length-1)=3D=
=3De)return a.substring(1,a.length-1)}return a},Ca=3Dfunction(a,b){var =
c=3D0;a=3DString(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split(".");b=3DS=
tring(b).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split(".");for(var =
d=3DMath.max(a.length,b.length),e=3D0;c=3D=3D0&&e<d;e++){var =
f=3Da[e]||"",g=3Db[e]||"",o=3Dnew RegExp("(\\d*)(\\D*)","g"),A=3Dnew =
RegExp("(\\d*)(\\D*)","g");do{var =
H=3Do.exec(f)||["","",""],I=3DA.exec(g)||["",=0A=
"",""];if(H[0].length=3D=3D0&&I[0].length=3D=3D0)break;c=3DH[1].length=3D=
=3D0?0:parseInt(H[1],10);var =
Db=3DI[1].length=3D=3D0?0:parseInt(I[1],10);c=3DBa(c,Db)||Ba(H[2].length=3D=
=3D0,I[2].length=3D=3D0)||Ba(H[2],I[2])}while(c=3D=3D0)}return =
c},Ba=3Dfunction(a,b){if(a<b)return-1;else if(a>b)return 1;return 0};var =
v,Da,w,Ea,Fa,Ga,Ha,Ia,Ja,Ka=3Dfunction(){return =
k.navigator?k.navigator.userAgent:i},x=3Dfunction(){return =
k.navigator},La=3Dfunction(){Fa=3DEa=3Dw=3DDa=3Dv=3Dj;var =
a;if(a=3DKa()){var =
b=3Dx();v=3Da.indexOf("Opera")=3D=3D0;Da=3D!v&&a.indexOf("MSIE")!=3D-1;Ea=
=3D(w=3D!v&&a.indexOf("WebKit")!=3D-1)&&a.indexOf("Mobile")!=3D-1;Fa=3D!v=
&&!w&&b.product=3D=3D"Gecko"}};La();=0A=
var y=3Dv,z=3DDa,Ma=3DFa,Na=3Dw,Oa=3DEa,Pa=3Dfunction(){var =
a=3Dx();return =
a&&a.platform||""},Qa=3DPa(),Ra=3Dfunction(){Ga=3DQa.indexOf("Mac")!=3D-1=
;Ha=3DQa.indexOf("Win")!=3D-1;Ia=3DQa.indexOf("Linux")!=3D-1;Ja=3D!!x()&&=
(x().appVersion||"").indexOf("X11")!=3D-1};Ra();=0A=
var Sa=3DGa,Ta=3DHa,Ua=3DIa,Va=3Dfunction(){var =
a=3D"",b;if(y&&k.opera){a=3Dk.opera.version;a=3Dtypeof =
a=3D=3D"function"?a():a}else{if(Ma)b=3D/rv\:([^\);]+)(\)|;)/;else =
if(z)b=3D/MSIE\s+([^\);]+)(\)|;)/;else =
if(Na)b=3D/WebKit\/(\S+)/;if(b)a=3D(a=3Db.exec(Ka()))?a[1]:""}return =
a},Wa=3DVa(),Xa=3D{},B=3Dfunction(a){return =
Xa[a]||(Xa[a]=3DCa(Wa,a)>=3D0)};var Ya=3Dfunction(a){return =
n(a)?document.getElementById(a):a},Za=3DYa,ab=3Dfunction(a,b){pa(b,functi=
on(c,d){if(d=3D=3D"style")a.style.cssText=3Dc;else =
if(d=3D=3D"class")a.className=3Dc;else =
if(d=3D=3D"for")a.htmlFor=3Dc;else if(d in =
$a)a.setAttribute($a[d],c);else =
a[d]=3Dc})},$a=3D{cellpadding:"cellPadding",cellspacing:"cellSpacing",col=
span:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"w=
idth",usemap:"useMap",frameborder:"frameBorder",type:"type"},bb=3Dfunctio=
n(a){var b=3Da.document;if(Na&&!B("500")&&!Oa){if(typeof =
a.innerHeight=3D=3D=0A=
"undefined")a=3Dwindow;b=3Da.innerHeight;var =
c=3Da.document.documentElement.scrollHeight;if(a=3D=3Da.top)if(c<b)b-=3D1=
5;return new =
u(a.innerWidth,b)}a=3Db.compatMode=3D=3D"CSS1Compat"&&(!y||y&&B("9.50"))?=
b.documentElement:b.body;return new =
u(a.clientWidth,a.clientHeight)},db=3Dfunction(){return =
cb(document,arguments)},cb=3Dfunction(a,b){var =
c=3Db[0],d=3Db[1];if(z&&d&&(d.name||d.type)){c=3D["<",c];d.name&&c.push('=
 name=3D"',wa(d.name),'"');if(d.type){c.push(' =
type=3D"',wa(d.type),'"');d=3Dfa(d);delete =
d.type}c.push(">");c=3Dc.join("")}var e=3D=0A=
a.createElement(c);if(d)if(n(d))e.className=3Dd;else =
ab(e,d);if(b.length>2){d=3Dfunction(g){if(g)e.appendChild(n(g)?a.createTe=
xtNode(g):g)};for(c=3D2;c<b.length;c++){var =
f=3Db[c];da(f)&&!(ea(f)&&f.nodeType>0)?ma(eb(f)?oa(f):f,d):d(f)}}return =
e},fb=3Dfunction(a,b){a.appendChild(b)},eb=3Dfunction(a){if(a&&typeof =
a.length=3D=3D"number")if(ea(a))return typeof =
a.item=3D=3D"function"||typeof a.item=3D=3D"string";else =
if(l(a)=3D=3D"function")return typeof a.item=3D=3D"function";return =
j};var gb=3Ddocument,C=3Dwindow;s();var D=3Dfunction(a,b){for(var c in =
a)Object.prototype.hasOwnProperty.call(a,c)&&b.call(i,a[c],c,a)},ib=3Dfun=
ction(a,b){if(!a||!ea(a))return =
h;return!hb(a,b.prototype)},hb=3Dfunction(a,b){if(!a)return j;var =
c=3Dh;D(b,function(d,e){if(!c||!(e in a)||typeof d!=3Dtypeof =
a[e])c=3Dj});return c},jb=3Dfunction(a){if(arguments.length<2)return =
a.length;for(var =
b=3D1,c=3Darguments.length;b<c;++b)a.push(arguments[b]);return a.length};=0A=
function E(a){return typeof =
encodeURIComponent=3D=3D"function"?encodeURIComponent(a):escape(a)}functi=
on kb(a,b,c){var =
d=3Ddocument.createElement("script");d.type=3D"text/javascript";if(b)d.on=
load=3Db;if(c)d.id=3Dc;d.src=3Da;var =
e=3Ddocument.getElementsByTagName("head")[0];if(!e)return =
j;window.setTimeout(function(){e.appendChild(d)},0);return h}function =
lb(a,b){if(a.attachEvent){a.attachEvent("onload",b);return =
h}if(a.addEventListener){a.addEventListener("load",b,j);return h}return =
j}=0A=
function =
mb(a,b){a.google_image_requests||(a.google_image_requests=3D[]);var =
c=3Dnew Image;c.src=3Db;a.google_image_requests.push(c)}function =
nb(a){if(a in ob)return ob[a];return =
ob[a]=3Dnavigator.userAgent.toLowerCase().indexOf(a)!=3D-1}var ob=3D{};=0A=
function pb(){if(navigator.plugins&&navigator.mimeTypes.length){var =
a=3Dnavigator.plugins["Shockwave Flash"];if(a&&a.description)return =
a.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s)+r/,".")}else =
if(navigator.userAgent&&navigator.userAgent.indexOf("Windows =
CE")>=3D0){a=3D3;for(var b=3D1;b;)try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash."+(a+1));a++}catch(c){b=3Di}=
return a.toString()}else if(nb("msie")&&!window.opera){b=3Di;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(d){a=3D=0A=
0;try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");a=3D6;b.AllowScriptAcces=
s=3D"always"}catch(e){if(a=3D=3D6)return a.toString()}try{b=3Dnew =
ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(f){}}if(b){a=3Db.Get=
Variable("$version").split(" ")[1];return =
a.replace(/,/g,".")}}return"0"}function F(a){var =
b=3Da.google_ad_format;if(b)return b.indexOf("_0ads")>0;return =
a.google_ad_output!=3D"html"&&a.google_num_radlinks>0}function =
G(a){return!!a&&a.indexOf("_sdo")!=3D-1}=0A=
function J(a,b){if(!(Math.random()<1.0E-4)){var =
c=3DMath.random();if(c<b){b=3DMath.floor(c/b*a.length);return =
a[b]}}return""}=0A=
var qb=3Dfunction(a){a.u_tz=3D-(new =
Date).getTimezoneOffset();a.u_his=3Dwindow.history.length;a.u_java=3Dnavi=
gator.javaEnabled();if(window.screen){a.u_h=3Dwindow.screen.height;a.u_w=3D=
window.screen.width;a.u_ah=3Dwindow.screen.availHeight;a.u_aw=3Dwindow.sc=
reen.availWidth;a.u_cd=3Dwindow.screen.colorDepth}if(navigator.plugins)a.=
u_nplug=3Dnavigator.plugins.length;if(navigator.mimeTypes)a.u_nmime=3Dnav=
igator.mimeTypes.length},rb=3Dfunction(a){var =
b=3DC;if(a&&b.top!=3Db)b=3Db.top;try{return =
b.document&&!b.document.body?new u(-1,=0A=
-1):bb(b||window)}catch(c){return new =
u(-12245933,-12245933)}},sb=3Dfunction(a,b){var =
c=3Da.length;if(c=3D=3D0)return 0;b=3Db||305419896;for(var =
d=3D0;d<c;d++){var =
e=3Da.charCodeAt(d);b^=3D(b<<5)+(b>>2)+e&4294967295}return =
b},tb=3Dfunction(a){if(a=3D=3Da.top)return 0;var =
b=3D[];b.push(document.URL);a.name&&b.push(a.name);a=3Dh;a=3Drb(!a);b.pus=
h(a.width.toString());b.push(a.height.toString());b=3Dsb(b.join(""));retu=
rn b>0?b:4294967296+b};var =
ub=3D{google_ad_channel:"channel",google_ad_host:"host",google_ad_host_ch=
annel:"h_ch",google_ad_host_tier_id:"ht_id",google_ad_section:"region",go=
ogle_ad_type:"ad_type",google_adtest:"adtest",google_allow_expandable_ads=
:"ea",google_alternate_ad_url:"alternate_ad_url",google_alternate_color:"=
alt_color",google_bid:"bid",google_city:"gcs",google_color_bg:"color_bg",=
google_color_border:"color_border",google_color_line:"color_line",google_=
color_link:"color_link",google_color_text:"color_text",google_color_url:"=
color_url",=0A=
google_contents:"contents",google_country:"gl",google_cpm:"cpm",google_cu=
st_age:"cust_age",google_cust_ch:"cust_ch",google_cust_gender:"cust_gende=
r",google_cust_id:"cust_id",google_cust_interests:"cust_interests",google=
_cust_job:"cust_job",google_cust_l:"cust_l",google_cust_lh:"cust_lh",goog=
le_cust_u_url:"cust_u_url",google_disable_video_autoplay:"disable_video_a=
utoplay",google_ed:"ed",google_encoding:"oe",google_feedback:"feedback_li=
nk",google_flash_version:"flash",google_font_face:"f",google_font_size:"f=
s",=0A=
google_hints:"hints",google_kw:"kw",google_kw_type:"kw_type",google_langu=
age:"hl",google_page_url:"url",google_region:"gr",google_reuse_colors:"re=
use_colors",google_safe:"adsafe",google_tag_info:"gut",google_targeting:"=
targeting",google_ui_features:"ui",google_ui_version:"uiv",google_video_d=
oc_id:"video_doc_id",google_video_product_type:"video_product_type"},vb=3D=
{google_ad_client:"client",google_ad_format:"format",google_ad_output:"ou=
tput",google_ad_callback:"callback",google_ad_height:"h",google_ad_overri=
de:"google_ad_override",=0A=
google_ad_slot:"slotname",google_ad_width:"w",google_ctr_threshold:"ctr_t=
",google_image_size:"image_size",google_last_modified_time:"lmt",google_m=
ax_num_ads:"num_ads",google_max_radlink_len:"max_radlink_len",google_num_=
radlinks:"num_radlinks",google_num_radlinks_per_unit:"num_radlinks_per_un=
it",google_only_ads_with_video:"only_ads_with_video",google_rl_dest_url:"=
rl_dest_url",google_rl_filtering:"rl_filtering",google_rl_mode:"rl_mode",=
google_rt:"rt",google_skip:"skip"},wb=3D{google_only_pyv_ads:"pyv",=0A=
google_with_pyv_ads:"withpyv"};function xb(a,b){try{return =
a.top.document.URL=3D=3Db.URL}catch(c){}return j}function =
yb(a,b,c,d){c=3Dc||a.google_ad_width;d=3Dd||a.google_ad_height;if(xb(a,b)=
)return j;var e=3Db.documentElement;if(c&&d){var =
f=3D1,g=3D1;if(a.innerHeight){f=3Da.innerWidth;g=3Da.innerHeight}else =
if(e&&e.clientHeight){f=3De.clientWidth;g=3De.clientHeight}else =
if(b.body){f=3Db.body.clientWidth;g=3Db.body.clientHeight}if(g>2*d||f>2*c=
)return j}return h}function =
zb(a,b){D(b,function(c,d){a["google_"+d]=3Dc})}=0A=
function Ab(a,b){if(!b)return a.URL;return a.referrer}function =
Bb(a,b){if(!b&&a.google_referrer_url=3D=3Di)return"0";else =
if(b&&a.google_referrer_url=3D=3Di)return"1";else =
if(!b&&a.google_referrer_url!=3Di)return"2";else =
if(b&&a.google_referrer_url!=3Di)return"3";return"4"}function =
Cb(a,b,c,d){a.page_url=3DAb(c,d);a.page_location=3Di}function =
Eb(a,b,c,d){a.page_url=3Db.google_page_url;a.page_location=3DAb(c,d)||"EM=
PTY"}=0A=
function Fb(a,b){var =
c=3D{},d=3Dyb(a,b,a.google_ad_width,a.google_ad_height);c.iframing=3DBb(a=
,d);a.google_page_url?Eb(c,a,b,d):Cb(c,a,b,d);c.last_modified_time=3Db.UR=
L=3D=3Dc.page_url?Date.parse(b.lastModified)/1E3:i;c.referrer_url=3Dd?a.g=
oogle_referrer_url:a.google_page_url&&a.google_referrer_url?a.google_refe=
rrer_url:b.referrer;return c}function Gb(a){var =
b=3D{},c=3Da.URL.substring(a.URL.lastIndexOf("http"));b.iframing=3Di;b.pa=
ge_url=3Dc;b.page_location=3Da.URL;b.last_modified_time=3Di;b.referrer_ur=
l=3Dc;return b}=0A=
function Hb(a,b){b=3DIb(a,b);zb(a,b)}function Ib(a,b){return =
a=3Da.google_page_url=3D=3Di&&Jb[b.domain]?Gb(b):Fb(a,b)}var =
Jb=3D{};Jb["ad.yieldmanager.com"]=3Dh;var =
Kb=3Dq("0.2",0),Lb=3Dq("1",0),Mb=3Dq("0.01",0),Nb=3Dq("0.01",0),Ob=3Dq("0=
.008",0),Pb=3Dq("0.01",0),Qb=3Dq("0",0);var =
Rb=3Dia("false",j),Sb=3Dia("false",j),Tb=3Dia("false",j);var =
Ub=3Dfunction(a,b,c){b=3Dga(b,k,a);a=3Dwindow.onerror;window.onerror=3Db;=
try{c()}catch(d){c=3Dd.toString();var =
e=3D"";if(d.fileName)e=3Dd.fileName;var =
f=3D-1;if(d.lineNumber)f=3Dd.lineNumber;b=3Db(c,e,f);if(!b)throw =
d;}window.onerror=3Da};p("google_protectAndRun",Ub);=0A=
var Wb=3Dfunction(a,b,c,d){if(Math.random()<0.01){var =
e=3Dgb;a=3D["http://",la(),"/pagead/gen_204","?id=3Djserror","&jscb=3D",R=
b?1:0,"&jscd=3D",Sb?1:0,"&context=3D",E(a),"&msg=3D",E(b),"&file=3D",E(c)=
,"&line=3D",E(d.toString()),"&url=3D",E(e.URL.substring(0,512)),"&ref=3D"=
,E(e.referrer.substring(0,512))];a.push(Vb());mb(C,a.join(""))}return!Tb}=
;p("google_handleError",Wb);=0A=
var Yb=3Dfunction(a){Xb|=3Da},Xb=3D0,Vb=3Dfunction(){var =
a=3D["&client=3D",E(C.google_ad_client),"&format=3D",E(C.google_ad_format=
),"&slotname=3D",E(C.google_ad_slot),"&output=3D",E(C.google_ad_output),"=
&ad_type=3D",E(C.google_ad_type)];return a.join("")};var =
Zb=3D"",bc=3Dfunction(){if(window.google_ad_frameborder=3D=3Di)window.goo=
gle_ad_frameborder=3D0;if(window.google_ad_output=3D=3Di)window.google_ad=
_output=3D"html";if(G(window.google_ad_format)){var =
a=3Dwindow.google_ad_format.match(/^(\d+)x(\d+)_.*/);if(a){window.google_=
ad_width=3DparseInt(a[1],10);window.google_ad_height=3DparseInt(a[2],10);=
window.google_ad_output=3D"html"}}window.google_ad_format=3D$b(window.goo=
gle_ad_format,window.google_ad_output,window.google_ad_width,window.googl=
e_ad_height,window.google_ad_slot,=0A=
!!window.google_override_format);Zb=3Dwindow.google_ad_client||"";window.=
google_ad_client=3Dac(window.google_ad_format,window.google_ad_client);Hb=
(window,document);if(window.google_flash_version=3D=3Di)window.google_fla=
sh_version=3Dpb();window.google_ad_section=3Dwindow.google_ad_section||wi=
ndow.google_ad_region||"";window.google_country=3Dwindow.google_country||=
window.google_gl||"";a=3D(new =
Date).getTime();if(m(window.google_color_bg))window.google_color_bg=3DK(w=
indow.google_color_bg,a);if(m(window.google_color_text))window.google_col=
or_text=3D=0A=
K(window.google_color_text,a);if(m(window.google_color_link))window.googl=
e_color_link=3DK(window.google_color_link,a);if(m(window.google_color_url=
))window.google_color_url=3DK(window.google_color_url,a);if(m(window.goog=
le_color_border))window.google_color_border=3DK(window.google_color_borde=
r,a);if(m(window.google_color_line))window.google_color_line=3DK(window.g=
oogle_color_line,a)},cc=3Dfunction(a){D(ub,function(b,c){a[c]=3Di});D(vb,=
function(b,c){a[c]=3Di});D(wb,function(b,c){a[c]=3Di});a.google_container=
_id=3Di;=0A=
a.google_eids=3Di;a.google_page_location=3Di;a.google_referrer_url=3Di;a.=
google_ad_region=3Di;a.google_gl=3Di},K=3Dfunction(a,b){Yb(2);return =
a[b%a.length]},ac=3Dfunction(a,b){if(!b)return"";b=3Db.toLowerCase();retu=
rn =
b=3DG(a)?dc(b):ec(b)},ec=3Dfunction(a){if(a&&a.substring(0,3)!=3D"ca-")a=3D=
"ca-"+a;return =
a},dc=3Dfunction(a){if(a&&a.substring(0,7)!=3D"ca-aff-")a=3D"ca-aff-"+a;r=
eturn =
a},$b=3Dfunction(a,b,c,d,e,f){if(!a&&b=3D=3D"html")a=3Dc+"x"+d;return =
a=3Dfc(a,e,f)?a.toLowerCase():""},fc=3Dfunction(a,b,c){if(!a)return =
j;if(!b)return h;return c};var L=3Ddocument,M=3Dnavigator,N=3Dwindow;=0A=
function gc(){var a=3DL.cookie,b=3DMath.round((new =
Date).getTime()/1E3),c=3DN.google_analytics_domain_name;c=3Dtypeof =
c=3D=3D"undefined"?hc("auto"):hc(c);var =
d=3Da.indexOf("__utma=3D"+c+".")>-1,e=3Da.indexOf("__utmb=3D"+c)>-1,f=3Da=
.indexOf("__utmc=3D"+c)>-1,g=3D{},o=3D!!N&&!!N.gaGlobal;if(d){a=3Da.split=
("__utma=3D"+c+".")[1].split(";")[0].split(".");g.sid=3De&&f?a[3]+"":o&&N=
.gaGlobal.sid?N.gaGlobal.sid:b+"";g.vid=3Da[0]+"."+a[1];g.from_cookie=3Dh=
}else{g.sid=3Do&&N.gaGlobal.sid?N.gaGlobal.sid:b+"";g.vid=3Do&&N.gaGlobal=
.vid?N.gaGlobal.vid:=0A=
(Math.round(Math.random()*2147483647)^ic()&2147483647)+"."+b;g.from_cooki=
e=3Dj}g.dh=3Dc;g.hid=3Do&&N.gaGlobal.hid?N.gaGlobal.hid:Math.round(Math.r=
andom()*2147483647);return N.gaGlobal=3Dg}=0A=
function ic(){var =
a=3DL.cookie?L.cookie:"",b=3DN.history.length,c,d=3D[M.appName,M.version,=
M.language?M.language:M.browserLanguage,M.platform,M.userAgent,M.javaEnab=
led()?1:0].join("");if(N.screen)d+=3DN.screen.width+"x"+N.screen.height+N=
.screen.colorDepth;else =
if(N.java){c=3Djava.awt.Toolkit.getDefaultToolkit().getScreenSize();d+=3D=
c.screen.width+"x"+c.screen.height}d+=3Da;d+=3DL.referrer?L.referrer:"";f=
or(a=3Dd.length;b>0;)d+=3Db--^a++;return jc(d)}=0A=
function jc(a){var =
b=3D1,c=3D0,d;if(!(a=3D=3Dundefined||a=3D=3D"")){b=3D0;for(d=3Da.length-1=
;d>=3D0;d--){c=3Da.charCodeAt(d);b=3D(b<<6&268435455)+c+(c<<14);c=3Db&266=
338304;b=3Dc!=3D0?b^c>>21:b}}return b}function =
hc(a){if(!a||a=3D=3D""||a=3D=3D"none")return =
1;if("auto"=3D=3Da){a=3DL.domain;if("www."=3D=3Da.substring(0,4))a=3Da.su=
bstring(4,a.length)}return jc(a.toLowerCase())};var =
kc,lc,mc,nc,oc,pc,qc=3Dfunction(){pc=3Doc=3Dnc=3Dmc=3Dlc=3Dkc=3Dj;var =
a=3DKa();if(a)if(a.indexOf("Firefox")!=3D-1)kc=3Dh;else =
if(a.indexOf("Camino")!=3D-1)lc=3Dh;else =
if(a.indexOf("iPhone")!=3D-1||a.indexOf("iPod")!=3D-1)mc=3Dh;else =
if(a.indexOf("Android")!=3D-1)nc=3Dh;else =
if(a.indexOf("Chrome")!=3D-1)oc=3Dh;else =
if(a.indexOf("Safari")!=3D-1)pc=3Dh};qc();var rc=3Dfunction(a){var =
b=3D"google_test";try{var =
c=3Da[b];a[b]=3D!c;if(a[b]=3D=3D=3D!c){a[b]=3Dc;return =
h}}catch(d){}return =
j},sc=3Dfunction(a){for(;a!=3Da.parent&&rc(a.parent);)a=3Da.parent;return=
 =
a},O=3Di,tc=3Dfunction(){if(!O){O=3Dsc(window);O!=3Dwindow&&Yb(4)}return =
O};var P=3Dfunction(a){this.stack=3D(new =
Error).stack||"";if(a)this.message=3DString(a)};ha(P,Error);P.prototype.n=
ame=3D"CustomError";var =
Q=3Dfunction(a,b){b.unshift(a);P.call(this,qa.apply(i,b));b.shift();this.=
messagePattern=3Da};ha(Q,P);Q.prototype.name=3D"AssertionError";var =
uc=3Dfunction(a,b,c,d){var e=3D"Assertion failed";if(c){e+=3D": "+c;var =
f=3Dd}else if(a){e+=3D": "+a;f=3Db}throw new =
Q(""+e,f||[]);},vc=3Dfunction(a,b){a||uc("",i,b,Array.prototype.slice.cal=
l(arguments,2))},wc=3Dfunction(a){throw new Q("Failure"+(a?": =
"+a:""),Array.prototype.slice.call(arguments,1));};var =
R=3Dfunction(){this.defaultBucket=3D[];this.layers=3D{};for(var =
a=3D0,b=3Darguments.length;a<b;++a)this.layers[arguments[a]]=3D""},xc=3Df=
unction(a){for(var b=3Dnew =
R,c=3D0,d=3Da.defaultBucket.length;c<d;++c)b.defaultBucket.push(a.default=
Bucket[c]);D(a.layers,ga(R.prototype.i,b));return =
b};R.prototype.i=3Dfunction(a,b){this.layers[b]=3Da};R.prototype.U=3Dfunc=
tion(a,b){if(a=3D=3D"")return"";if(!b){this.defaultBucket.push(a);return =
a}if(this.layers.hasOwnProperty(b))return this.layers[b]=3Da;return""};=0A=
R.prototype.g=3Dfunction(a,b,c){if(!(Math.random()<1.0E-4)&&this.K(c)){va=
r =
d=3DMath.random();if(d<b){b=3DMath.floor(a.length*d/b);if(a=3Da[b])return=
 this.U(a,c)}}return""};R.prototype.K=3Dfunction(a){if(!a)return =
h;return =
this.layers.hasOwnProperty(a)&&this.layers[a]=3D=3D""};R.prototype.l=3Dfu=
nction(a){if(this.layers.hasOwnProperty(a))return =
this.layers[a];return""};=0A=
R.prototype.B=3Dfunction(){var =
a=3D[],b=3Dfunction(c){c!=3D""&&a.push(c)};D(this.layers,b);if(this.defau=
ltBucket.length>0&&a.length>0)return =
this.defaultBucket.join(",")+","+a.join(",");return =
this.defaultBucket.join(",")+a.join(",")};var =
S=3Dfunction(a){this.W=3Da;this.S()},T,U=3Dfunction(){if(T)return =
T;if(ib(window.google_persistent_state,S)){var a=3Dwindow;return =
window.google_persistent_state=3DT=3Dnew S(a)}return =
T=3Dwindow.google_persistent_state};S.prototype.S=3Dfunction(){this.a(1,j=
);this.a(2,j);this.a(3,i);this.a(4,0);this.a(5,0);this.a(6,0);this.a(8,{}=
);this.a(9,{});this.a(10,{});this.a(11,[]);this.a(13,0);this.T((new =
Date).getTime());this.t(0)};=0A=
var yc=3Dfunction(a){switch(a){case =
1:return"google_new_domain_enabled";case =
2:return"google_new_domain_checked";case =
3:return"google_exp_persistent";case 4:return"google_num_sdo_slots";case =
5:return"google_num_0ad_slots";case 6:return"google_num_ad_slots";case =
7:return"google_correlator";case =
8:return"google_prev_ad_formats_by_region";case =
9:return"google_prev_ad_slotnames_by_region";case =
10:return"google_num_slots_by_channel";case =
11:return"google_viewed_host_channels";case =
12:return"google_num_slot_to_show";=0A=
case 13:return"google_unique_id"}wc("Unrecognized public key: =
"+a)};S.prototype.b=3Dfunction(a){a=3Dyc(a);a=3Dthis.W[a];vc(a!=3D=3Dunde=
fined,"Values must be set before they are accessed or we might violate =
@type.");return a};S.prototype.a=3Dfunction(a,b){return =
this.W[yc(a)]=3Db};S.prototype.c=3Dfunction(a){return =
this.a(a,this.b(a)+1)};S.prototype.j=3Dfunction(){if(this.b(1))return =
h;return =
this.a(1,!!window.google_new_domain_enabled)};S.prototype.k=3Dfunction(){=
return this.b(2)};=0A=
S.prototype.s=3Dfunction(){return =
this.a(2,h)};S.prototype.C=3Dfunction(){return =
this.b(3)};S.prototype.V=3Dfunction(a){return =
this.a(3,a)};S.prototype.J=3Dfunction(){return =
this.c(4)};S.prototype.I=3Dfunction(){return =
this.c(5)};S.prototype.G=3Dfunction(){return =
this.c(6)};S.prototype.getCorrelator=3Dfunction(){return =
this.b(7)};S.prototype.T=3Dfunction(a){return =
this.a(7,a)};S.prototype.n=3Dfunction(){return =
this.b(8)};S.prototype.o=3Dfunction(){return =
this.b(9)};S.prototype.D=3Dfunction(){return this.b(10)};=0A=
S.prototype.F=3Dfunction(){return =
this.b(11)};S.prototype.p=3Dfunction(){return =
this.b(12)};S.prototype.t=3Dfunction(a){return =
this.a(12,a)};S.prototype.d=3Dfunction(){return =
this.b(13)};S.prototype.H=3Dfunction(){return this.c(13)};var =
V,zc,W=3Dfunction(){if(V)return V;var =
a=3DU(),b=3Da.C();if(ib(b,R))return V=3Da.V(new R(1,2));return =
V=3Db},Ac=3Dfunction(){zc||(zc=3Dxc(W()));return zc};var =
Bc=3D{google:1,googlegroups:1,gmail:1,googlemail:1,googleimages:1,googlep=
rint:1};function =
Cc(a){a=3Da.google_page_location||a.google_page_url;if(!a)return =
j;a=3Da.toString();if(a.indexOf("http://")=3D=3D0)a=3Da.substring(7,a.len=
gth);else =
if(a.indexOf("https://")=3D=3D0)a=3Da.substring(8,a.length);var =
b=3Da.indexOf("/");if(b=3D=3D-1)b=3Da.length;a=3Da.substring(0,b);a=3Da.s=
plit(".");b=3Dj;if(a.length>=3D3)b=3Da[a.length-3]in =
Bc;if(a.length>=3D2)b=3Db||a[a.length-2]in Bc;return b}=0A=
function Dc(a,b,c){var =
d=3DU();if(Cc(a))return!d.s();if(!d.k()){a=3DMath.random();if(a<=3Dc){c=3D=
"http://"+ka()+"/pagead/test_domain.js";a=3D"script";b.write("<"+a+' =
src=3D"'+c+'"></'+a+">");return d.s()}}return j}var Ec=3Dfunction(a){var =
b=3DW();if(b.l(1)=3D=3D"44901216")return 1=3D=3DMath.floor(a/2)%2;return =
j};function Fc(a){var b=3DU();if(!Cc(a)&&b.j())return =
Ec(b.d())?"http://"+r("","googleads2.g.doubleclick.net"):"http://"+ka();r=
eturn"http://"+la()};var =
X=3Dfunction(a){this.X=3Da;this.r=3D[];this.q=3D0;this.e=3D[];this.O=3D0;=
this.f=3D[];this.M=3Dj;this.u=3Dthis.v=3D"";this.L=3Dj};X.prototype.Q=3Df=
unction(a,b){var =
c=3Dthis.X[b],d=3Dthis.r;this.X[b]=3Dfunction(e){if(e&&e.length>0){var =
f=3De.length>1?e[1].url:i;d.push([a,za(e[0].url),f])}c(e)}};X.prototype.P=
=3Dfunction(){this.q++};X.prototype.R=3Dfunction(a){this.e.push(a)};var =
Gc=3D"http://"+s()+"/pagead/osd.js";X.prototype.N=3Dfunction(){if(!this.M=
){lb(C,Hc);kb(Gc);this.M=3Dh}};=0A=
X.prototype.w=3Dfunction(a){if(this.q>0)for(var =
b=3Ddocument.getElementsByTagName("iframe"),c=3Dthis.L?"google_ads_iframe=
_":"google_ads_frame",d=3D0;d<b.length;d++){var =
e=3Db.item(d);e.src&&e.name&&e.name.indexOf(c)=3D=3D0&&a(e,e.src)}};=0A=
X.prototype.z=3Dfunction(a){var b=3Dthis.r;if(b.length>0)for(var =
c=3Ddocument.getElementsByTagName("a"),d=3D0;d<c.length;d++)for(var =
e=3D0;e<b.length;e++)if(c.item(d).href=3D=3Db[e][1]){var =
f=3Dc.item(d).parentNode;if(b[e][2])for(var =
g=3Df,o=3D0;o<4;o++){if(g.innerHTML.indexOf(b[e][2])>0){f=3Dg;break}g=3Dg=
.parentNode}a(f,b[e][0]);b.splice(e,1);break}};X.prototype.A=3Dfunction(a=
){for(var b=3D0;b<this.e.length;b++){var =
c=3Dthis.e[b],d=3DIc(c);if(d)(d=3Ddocument.getElementById("google_ads_div=
_"+d))&&a(d,c)}};=0A=
X.prototype.h=3Dfunction(a){this.z(a);this.A(a);this.w(a)};X.prototype.se=
tupOsd=3Dfunction(a,b,c){this.O=3Da;this.v=3Db;this.u=3Dc};X.prototype.ge=
tOsdMode=3Dfunction(){return =
this.O};X.prototype.getEid=3Dfunction(){return =
this.v};X.prototype.getCorrelator=3Dfunction(){return =
this.u};X.prototype.m=3Dfunction(){return =
this.r.length+this.q+this.e.length};X.prototype.setValidOutputTypes=3Dfun=
ction(a){this.f=3Da};=0A=
X.prototype.registerAdBlockByType=3Dfunction(a,b,c){if(this.f.length>0){f=
or(var =
d=3D0;d<this.f.length;d++)if(this.f[d]=3D=3Da){this.L=3Dc;if(a=3D=3D"js")=
this.Q(b,"google_ad_request_done");else if(a=3D=3D"html")this.P();else =
a=3D=3D"json_html"&&this.R(b)}this.N()}};var =
Ic=3Dfunction(a){if((a=3Da.match(/[&\?](?:slotname)=3D([^&]+)/))&&a.lengt=
h=3D=3D2)return =
a[1];return""},Hc=3Dfunction(){C.google_osd_page_loaded=3Dh},Jc=3Dfunctio=
n(){window.__google_ad_urls||(window.__google_ad_urls=3Dnew =
X(window));return window.__google_ad_urls};=0A=
p("Goog_AdSense_getAdAdapterInstance",Jc);p("Goog_AdSense_OsdAdapter",X);=
p("Goog_AdSense_OsdAdapter.prototype.numBlocks",X.prototype.m);p("Goog_Ad=
Sense_OsdAdapter.prototype.findBlocks",X.prototype.h);p("Goog_AdSense_Osd=
Adapter.prototype.getOsdMode",X.prototype.getOsdMode);p("Goog_AdSense_Osd=
Adapter.prototype.getEid",X.prototype.getEid);p("Goog_AdSense_OsdAdapter.=
prototype.getCorrelator",X.prototype.getCorrelator);p("Goog_AdSense_OsdAd=
apter.prototype.setValidOutputTypes",X.prototype.setValidOutputTypes);=0A=
p("Goog_AdSense_OsdAdapter.prototype.setupOsd",X.prototype.setupOsd);p("G=
oog_AdSense_OsdAdapter.prototype.registerAdBlockByType",X.prototype.regis=
terAdBlockByType);var Kc=3Dfunction(a,b){var =
c=3Da.nodeType=3D=3D9?a:a.ownerDocument||a.document;if(c.defaultView&&c.d=
efaultView.getComputedStyle)if(a=3Dc.defaultView.getComputedStyle(a,""))r=
eturn a[b];return i},Lc=3Dfunction(a,b){return =
Kc(a,b)||(a.currentStyle?a.currentStyle[b]:i)||a.style[b]},Mc=3Dfunction(=
a,b,c,d){if(/^\d+px?$/.test(b))return parseInt(b,10);else{var =
e=3Da.style[c],f=3Da.runtimeStyle[c];a.runtimeStyle[c]=3Da.currentStyle[c=
];a.style[c]=3Db;b=3Da.style[d];a.style[c]=3De;a.runtimeStyle[c]=3Df;retu=
rn b}},Nc=3Dfunction(a){var b=3D=0A=
a.nodeType=3D=3D9?a:a.ownerDocument||a.document,c=3D"";if(b.createTextRan=
ge){c=3Db.body.createTextRange();c.moveToElementText(a);c=3Dc.queryComman=
dValue("FontName")}if(!c){c=3DLc(a,"fontFamily");if(y&&Ua)c=3Dc.replace(/=
 \[[^\]]*\]/,"")}a=3Dc.split(",");if(a.length>1)c=3Da[0];return =
Aa(c,"\"'")},Oc=3D/[^\d]+$/,Pc=3Dfunction(a){return(a=3Da.match(Oc))&&a[0=
]||i},Qc=3D{cm:1,"in":1,mm:1,pc:1,pt:1},Rc=3D{em:1,ex:1},Sc=3Dfunction(a)=
{var b=3DLc(a,"fontSize"),c=3DPc(b);if(b&&"px"=3D=3Dc)return =
parseInt(b,10);if(z)if(c in Qc)return Mc(a,b,"left",=0A=
"pixelLeft");else if(a.parentNode&&a.parentNode.nodeType=3D=3D1&&c in =
Rc){a=3Da.parentNode;c=3DLc(a,"fontSize");return =
Mc(a,b=3D=3Dc?"1em":b,"left","pixelLeft")}c=3Ddb("span",{style:"visibilit=
y:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;heig=
ht:1em;"});fb(a,c);b=3Dc.offsetHeight;c&&c.parentNode&&c.parentNode.remov=
eChild(c);return b};var Y=3D{};function Tc(a){if(a=3D=3D1)return =
h;return!Y[a]}function =
Uc(a,b){if(!(!a||a=3D=3D""))if(b=3D=3D1)if(Y[b])Y[b]+=3D","+a;else =
Y[b]=3Da;else Y[b]=3Da}function Vc(){var =
a=3D[];D(Y,function(b){a.push(b)});return a.join(",")}function =
Wc(a,b){if(m(a))for(var c=3D0;c<a.length;c++)n(a[c])&&Uc(a[c],b)}var =
Z=3Dj;=0A=
function Xc(a,b){var =
c=3D"script";Z=3DYc(a,b);if(!Z)a.google_allow_expandable_ads=3Dj;var =
d=3D!Zc();Z&&d&&b.write("<"+c+' =
src=3D"http://'+s()+'/pagead/expansion_embed.js"></'+c+">");a=3DDc(a,b,Lb=
);(d=3Dd||a)&&nb("msie")&&!window.opera?b.write("<"+c+' =
src=3D"http://'+s()+'/pagead/render_ads.js"></'+c+">"):b.write("<"+c+'>go=
ogle_protectAndRun("ads_core.google_render_ad", google_handleError, =
google_render_ad);</'+c+">")}function $(a){return a!=3Di?'"'+a+'"':'""'}=0A=
var $c=3Dfunction(a,b){var =
c=3Db.slice(-1),d=3Dc=3D=3D"?"||c=3D=3D"#"?"":"&",e=3D[b];b=3Dfunction(f,=
g){if(f||f=3D=3D=3D0||f=3D=3D=3Dj){if(typeof =
f=3D=3D"boolean")f=3Df?1:0;jb(e,d,g,"=3D",E(f));d=3D"&"}};D(a,b);return =
e.join("")};function ad(){var =
a=3Dz&&B("6"),b=3DMa&&B("1.8.1"),c=3DNa&&B("525");if(Ta&&(a||b||c))return=
 h;else if(Sa&&(c||b))return h;else if(Ua&&b)return h;return j}=0A=
function Zc(){return(typeof =
ExpandableAdSlotFactory=3D=3D"function"||typeof =
ExpandableAdSlotFactory=3D=3D"object")&&typeof =
ExpandableAdSlotFactory.createIframe=3D=3D"function"}function =
Yc(a,b){if(a.google_allow_expandable_ads=3D=3D=3Dj||!b.body||a.google_ad_=
output!=3D"html"||yb(a,b)||!bd(a)||isNaN(a.google_ad_height)||isNaN(a.goo=
gle_ad_width)||!ad())return j;return h}function bd(a){var =
b=3Da.google_ad_format;if(G(b))return =
j;if(F(a)&&b!=3D"468x15_0ads_al")return j;return h}=0A=
function cd(){var =
a;if(C.google_ad_output=3D=3D"html"&&!(F(C)||G(C.google_ad_format))&&Tc(0=
)){a=3D["6083035","6083034"];a=3DJ(a,Qb);Uc(a,0)}return =
a=3D=3D"6083035"}function dd(a,b){var =
c=3DU();if(c.d()>0||G(a.google_ad_format))return"";c=3D"";a=3DF(a);if(b=3D=
=3D"html"||a)c=3DJ(["36815001","36815002"],Mb);if(c=3D=3D""&&(b=3D=3D"js"=
||a))c=3DJ(["36815003","36815004"],Nb);if(c=3D=3D""&&(b=3D=3D"html"||b=3D=
=3D"js"))c=3DJ(["36813005","36813006"],Ob);return c}=0A=
function ed(){var =
a=3DJc(),b=3Dwindow.google_enable_osd,c;if(b=3D=3D=3Dh){c=3D"36813006";fd=
(c,a)}else =
if(b!=3D=3Dj&&Tc(0)){c=3Da.getEid();if(c=3D=3D"")(c=3Ddd(window,window.go=
ogle_ad_output))&&fd(c,a);else =
if(c!=3D"36815001"&&c!=3D"36815002"&&c!=3D"36815003"&&c!=3D"36815004"&&c!=
=3D"36813005"&&c!=3D"36813006")c=3D""}if(c){Uc(c,0);return c}return""}=0A=
function fd(a,b){var c=3Db.getOsdMode(),d=3D[];switch(a){case =
"36815004":c=3D1;d=3D["js"];break;case =
"36815002":c=3D1;d=3D["html"];break;case =
"36813006":c=3D0;d=3D["html","js"];break}d.length>0&&b.setValidOutputType=
s(d);d=3DU();b.setupOsd(c,a,d.getCorrelator().toString())}=0A=
function gd(a,b,c,d){var =
e=3DU();e=3De.H();c=3D$c({ifi:e},c);c=3Dc.substring(0,1992);c=3Dc.replace=
(/%\w?$/,"");var =
f=3D"script";if((a.google_ad_output=3D=3D"js"||a.google_ad_output=3D=3D"j=
son_html")&&(a.google_ad_request_done||a.google_radlink_request_done))b.w=
rite("<"+f+' language=3D"JavaScript1.1" =
src=3D'+$(ba(c))+"></"+f+">");else =
if(a.google_ad_output=3D=3D"html")if(Z&&Zc()){b=3Da.google_container_id||=
d||i;a["google_expandable_ad_slot"+e]=3DExpandableAdSlotFactory.createIfr=
ame("google_ads_frame"+e,ba(c),a.google_ad_width,a.google_ad_height,=0A=
b)}else{d=3D'<iframe name=3D"google_ads_frame" =
width=3D'+$(a.google_ad_width)+" height=3D"+$(a.google_ad_height)+" =
frameborder=3D"+$(a.google_ad_frameborder)+" src=3D"+$(ba(c))+' =
marginwidth=3D"0" marginheight=3D"0" vspace=3D"0" hspace=3D"0" =
allowtransparency=3D"true" =
scrolling=3D"no"></iframe>';a.google_container_id?hd(a.google_container_i=
d,b,d):b.write(d)}return c}function id(a){cc(a)}=0A=
function jd(a){var b=3DAc().l(2)=3D=3D"44901217";if(!kd(b))return =
j;b=3Dcd();var =
c=3DFc(window);a=3Dld(a);b=3Dc+md(a.google_ad_format,b);window.google_ad_=
url=3D$c(a,b);return h}=0A=
var pd=3Dfunction(a){a.dt=3Daa;var =
b=3DU(),c=3Db.n(),d=3Dwindow.google_ad_section,e=3Dwindow.google_ad_forma=
t,f=3Dwindow.google_ad_slot;if(c[d])G(e)||(a.prev_fmts=3Dc[d]);var =
g=3Db.o();if(g[d])a.prev_slotnames=3Dg[d].toLowerCase();if(e){if(!G(e))if=
(c[d])c[d]+=3D","+e;else c[d]=3De}else if(f)if(g[d])g[d]+=3D","+f;else =
g[d]=3Df;a.correlator=3Db.getCorrelator();if(b.k()&&!b.j())a.dblk=3D1;if(=
window.google_ad_channel){c=3Db.D();d=3D"";e=3Dwindow.google_ad_channel.s=
plit(nd);for(f=3D0;f<e.length;f++){g=3De[f];if(c[g])d+=3Dg+"+";else =
c[g]=3Dh}a.pv_ch=3D=0A=
d}if(window.google_ad_host_channel){b=3Dod(window.google_ad_host_channel,=
b.F());a.pv_h_ch=3Db}if(Rb)a.jscb=3D1;if(Sb)a.jscd=3D1;a.frm=3Dwindow.goo=
gle_iframing;b=3Dgc();a.ga_vid=3Db.vid;a.ga_sid=3Db.sid;a.ga_hid=3Db.hid;=
a.ga_fc=3Db.from_cookie;a.ga_wpids=3Dwindow.google_analytics_uacct},qd=3D=
function(a){var =
b=3Dh;if(b=3Drb(b)){a.biw=3Db.width;a.bih=3Db.height}},rd=3Dfunction(a){v=
ar b=3Dtb(window);if(b!=3D0)a.ifk=3Db.toString()};=0A=
function od(a,b){var c=3Da.split("|");a=3D-1;for(var =
d=3D[],e=3D0;e<c.length;e++){var =
f=3Dc[e].split(nd);b[e]||(b[e]=3D{});for(var =
g=3D"",o=3D0;o<f.length;o++){var =
A=3Df[o];if(A!=3D"")if(b[e][A])g+=3D"+"+A;else =
b[e][A]=3Dh}g=3Dg.slice(1);d[e]=3Dg;if(g!=3D"")a=3De}b=3D"";if(a>-1){for(=
e=3D0;e<a;e++)b+=3Dd[e]+"|";b+=3Dd[a]}return b}function sd(){var =
a=3D["44901212","44901216"];W().g(a,Kb,1);a=3D["44901218","44901217"];W()=
.g(a,Pb,2)}=0A=
function td(){tc();var a=3DU();0=3D=3Da.d()&&sd();a=3Ded();var =
b=3DMath.random()<0.01,c=3Di,d=3D"";if(b){d=3D"google_temp_span";c=3Dud(d=
)}b=3Djd(c);c&&c.id=3D=3Dd&&(c&&c.parentNode?c.parentNode.removeChild(c):=
i);if(b){c=3Dgd(window,document,window.google_ad_url);a&&Jc().registerAdB=
lockByType(window.google_ad_output,c,j);id(window)}}=0A=
var =
vd=3Dfunction(a){D(vb,function(b,c){a[b]=3Dwindow[c]});D(ub,function(b,c)=
{a[b]=3Dwindow[c]});D(wb,function(b,c){a[b]=3Dwindow[c]})},wd=3Dfunction(=
a){Wc(window.google_eids,1);a.eid=3DVc();var =
b=3DAc().B();if(a.eid.length>0&&b.length>0)a.eid+=3D",";a.eid+=3Db};funct=
ion xd(a,b,c,d){a=3DWb(a,b,c,d);Xc(window,document);return a}function =
yd(){bc()}=0A=
function zd(a){var =
b=3D{};a=3Da.split("?");a=3Da[a.length-1].split("&");for(var =
c=3D0;c<a.length;c++){var =
d=3Da[c].split("=3D");if(d[0])try{b[d[0].toLowerCase()]=3Dd.length>1?wind=
ow.decodeURIComponent?decodeURIComponent(d[1].replace(/\+/g," =
")):unescape(d[1]):""}catch(e){}}return b}function Ad(){var =
a=3Dwindow,b=3Dzd(document.URL);if(b.google_ad_override){a.google_ad_over=
ride=3Db.google_ad_override;a.google_adtest=3D"on"}}=0A=
function =
hd(a,b,c){if(a)if((a=3Db.getElementById(a))&&c&&c.length!=3D""){a.style.v=
isibility=3D"visible";a.innerHTML=3Dc}}=0A=
var md=3Dfunction(a,b){return =
a=3DG(a)?"/pagead/sdo?":b?"/pagead/render_iframe_ads.html#":"/pagead/ads?=
"},Bd=3Dfunction(a,b){b.dff=3DNc(a);b.dfs=3DSc(a)},Cd=3Dfunction(a){a.ref=
=3Dwindow.google_referrer_url;a.loc=3Dwindow.google_page_location},kd=3Df=
unction(a){var =
b=3DU(),c=3Db.n(),d=3Db.o(),e=3Dwindow.google_ad_section;if(G(window.goog=
le_ad_format)){if(b.J()>4&&!a)return j}else =
if(F(window)){if(b.I()>3&&!a)return j}else{var =
f=3Db.G();if(window.google_num_slots_to_rotate){Yb(1);c[e]=3D"";d[e]=3D""=
;b.p()||b.t((new Date).getTime()%=0A=
window.google_num_slots_to_rotate+1);if(b.p()!=3Df)return j}else =
if(!a&&f>6&&e=3D=3D"")return j}return h},ld=3Dfunction(a){var =
b=3D{};vd(b);pd(b);qb(b);a&&Bd(a,b);qd(b);rd(b);wd(b);Cd(b);b.fu=3DXb;ret=
urn b},ud=3Dfunction(a){var =
b=3Dwindow.google_container_id&&Za(window.google_container_id)||Za(a);if(=
!b&&!window.google_container_id&&a){document.write("<span =
id=3D"+a+"></span>");b=3DZa(a)}return b},nd=3D/[+, =
]/;window.google_render_ad=3Dtd;function Dd(){if(Tb&&typeof =
C.alternateShowAds=3D=3D"function")C.alternateShowAds.call(i);else{Ad();U=
b("show_ads.google_init_globals",xd,yd);Xc(window,document)}}Ub("show_ads=
.main",Wb,Dd);})()=0A=

------=_NextPart_000_0000_01CACB5E.D8C3DEC0--

