From: <Saved by Windows Internet Explorer 7>
Subject: The Stream of Life -
Date: Sun, 10 Feb 2008 16:26:36 -0600
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0153_01C86C01.B496FBE0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198

This is a multi-part message in MIME format.

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://aeddie.livejournal.com/240123.html

=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 id=3Dsixapart-standard =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>The Stream of Life =
-</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
title=3DFOAF href=3D"http://aeddie.livejournal.com/data/foaf"=20
type=3Dapplication/rdf+xml rel=3Dmeta>
<META content=3D"noindex, nofollow, noarchive" name=3Drobots>
<META content=3D"noindex, nofollow, noarchive, nosnippet" =
name=3Dgooglebot>
<SCRIPT>=0A=
// don't crawl this.  read =
http://www.livejournal.com/developer/exporting.bml=0A=
var LJ_cmtinfo =3D {"658427": {"parent": "",=0A=
"u": "yzzy",=0A=
"rc": []},=0A=
"658683": {"parent": "",=0A=
"u": "trystbat",=0A=
"rc": []},=0A=
"form_auth": =
"c0:1202680800:1114:86400:4vQpWiKJoS-0-AjN9UmAU3cQuAd1:67b8b7ac115dfe4c5f=
f18b118a906256",=0A=
"658939": {"parent": "",=0A=
"u": "rameymj",=0A=
"rc": []},=0A=
"657403": {"parent": "",=0A=
"u": "frualeydis",=0A=
"rc": []},=0A=
"remote": "",=0A=
"canAdmin": 0,=0A=
"journal": "aeddie"}=0A=
</SCRIPT>

<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
            var Site;=0A=
            if (!Site)=0A=
                Site =3D {};=0A=
=0A=
            var site_p =3D {"media_embed_enabled": 1,=0A=
"inbox_update_poll": 0,=0A=
"has_remote": 0,=0A=
"statprefix": "http://stat.livejournal.com",=0A=
"ctx_popup": 1,=0A=
"imgprefix": "http://stat.livejournal.com/img",=0A=
"esn_async": 1,=0A=
"currentJournal": "aeddie",=0A=
"siteroot": "http://www.livejournal.com",=0A=
"currentJournalBase": "http://aeddie.livejournal.com"};=0A=
            var site_k =3D ["media_embed_enabled", "inbox_update_poll", =
"has_remote", "statprefix", "ctx_popup", "imgprefix", "esn_async", =
"currentJournal", "siteroot", "currentJournalBase"];=0A=
            for (var i =3D 0; i < site_k.length; i++) {=0A=
                Site[site_k[i]] =3D site_p[site_k[i]];=0A=
            }=0A=
       </SCRIPT>

<SCRIPT=20
src=3D"http://www.livejournal.com/js/??core.js,dom.js,httpreq.js,livejour=
nal.js,common/AdEngine.js,esn.js,ippu.js,lj_ippu.js,hourglass.js,contextu=
alhover.js,x_core.js,quickreply.js,browserdetect.js,thread_expander.js,co=
mmentmanage.js,snapshots.js,livejournal-local.js?v=3D1197496718"=20
type=3Dtext/javascript></SCRIPT>
<LINK=20
href=3D"http://stat.livejournal.com/??lj_base.css,esn.css,contextualhover=
.css?v=3D1196381230"=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://stat.livejournal.com/sixhtml/themes/common/base-weblog.css=
"=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://stat.livejournal.com/sixhtml/themes/stylecontest/hot_sprin=
gs/style.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://stat.livejournal.com/sixhtml/ljextras.css" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK=20
href=3D"http://aeddie.livejournal.com/res/15276103/stylesheet?1200613245"=
=20
type=3Dtext/css rel=3Dstylesheet>
<META content=3D"MSHTML 6.00.6000.16587" name=3DGENERATOR></HEAD>
<BODY class=3D"layout-two-column-left lj-view-entry">
<DIV id=3Dcontainer>
<DIV class=3Dpkg id=3Dcontainer-inner>
<DIV id=3Dbanner>
<DIV class=3Dpkg id=3Dbanner-inner>
<H1 id=3Dbanner-header>The Stream of Life</H1>
<H2 id=3Dbanner-description>Roll with it, or get =
eroded.</H2></DIV></DIV>
<DIV id=3Dpagebody>
<DIV class=3Dpkg id=3Dpagebody-inner>
<DIV id=3Dalpha>
<DIV class=3Dpkg id=3Dalpha-inner>
<DIV class=3D"module-photo module">
<DIV class=3Dmodule-content><IMG height=3D100 alt=3D""=20
src=3D"http://userpic.livejournal.com/62515867/1732849" width=3D100> =
</DIV></DIV>
<DIV class=3D"module-viewlinks module">
<DIV class=3Dmodule-content>
<UL class=3Dmodule-list>
  <LI class=3Dmodule-list-item><A =
href=3D"http://aeddie.livejournal.com/">My=20
  Stuff</A>
  <LI class=3Dmodule-list-item><A =
href=3D"http://aeddie.livejournal.com/calendar">My=20
  Old Stuff</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/friends">Your Stuff</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/profile">Stuff About=20
Me</A></LI></UL></DIV></DIV>
<DIV class=3D"module-calendar module">
<H2 class=3Dmodule-header>February 2008</H2>
<DIV class=3Dmodule-content>
<TABLE summary=3D"Monthly calendar with links to each day's posts">
  <TBODY>
  <TR>
    <TH>S</TH>
    <TH>M</TH>
    <TH>T</TH>
    <TH>W</TH>
    <TH>T</TH>
    <TH>F</TH>
    <TH>S</TH></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>&nbsp;</TD>
    <TD>1</TD>
    <TD><A =
href=3D"http://aeddie.livejournal.com/2008/02/02/">2</A></TD></TR>
  <TR>
    <TD>3</TD>
    <TD><A href=3D"http://aeddie.livejournal.com/2008/02/04/">4</A></TD>
    <TD><A href=3D"http://aeddie.livejournal.com/2008/02/05/">5</A></TD>
    <TD>6</TD>
    <TD><A href=3D"http://aeddie.livejournal.com/2008/02/07/">7</A></TD>
    <TD><A href=3D"http://aeddie.livejournal.com/2008/02/08/">8</A></TD>
    <TD><A =
href=3D"http://aeddie.livejournal.com/2008/02/09/">9</A></TD></TR>
  <TR>
    <TD>10</TD>
    <TD>11</TD>
    <TD>12</TD>
    <TD>13</TD>
    <TD>14</TD>
    <TD>15</TD>
    <TD>16</TD></TR>
  <TR>
    <TD>17</TD>
    <TD>18</TD>
    <TD>19</TD>
    <TD>20</TD>
    <TD>21</TD>
    <TD>22</TD>
    <TD>23</TD></TR>
  <TR>
    <TD>24</TD>
    <TD>25</TD>
    <TD>26</TD>
    <TD>27</TD>
    <TD>28</TD>
    <TD>29</TD>
    <TD>&nbsp;</TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=3D"module-categories module">
<H2 class=3Dmodule-header>Tags</H2>
<DIV class=3Dmodule-content>
<UL class=3Dmodule-list>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/2008+books">2008 books</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/bliteotw">bliteotw</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/books">books</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/exercise">exercise</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/feet">feet</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/food">food</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/grill+cooking">grill =
cooking</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/gutenberg">gutenberg</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/meme">meme</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/memetic">memetic</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/moorpark">moorpark</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/neck">neck</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/photo">photo</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/pins">pins</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/rsd">rsd</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/sca">sca</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/sekrit+project">sekrit =
project</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/seneschal">seneschal</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/sewing">sewing</A>
  <LI class=3Dmodule-list-item><A=20
  href=3D"http://aeddie.livejournal.com/tag/website">website</A>
  <LI class=3Dmodule-list-item><A=20
  =
href=3D"http://aeddie.livejournal.com/tag/weight">weight</A></LI></UL></D=
IV></DIV>
<DIV class=3D"module-powered module">
<DIV class=3Dmodule-content>Powered by <A=20
href=3D"http://www.livejournal.com/">LiveJournal.com</A></DIV></DIV></DIV=
></DIV>
<DIV id=3Dbeta>
<DIV class=3Dpkg id=3Dbeta-inner>
<DIV class=3Dentry>
<DIV class=3Dentry-userpic><IMG height=3D100 alt=3D""=20
src=3D"http://userpic.livejournal.com/39497569/1732849" =
width=3D100></DIV>
<H3 class=3Dentry-header></H3>
<DIV class=3Dentry-content>
<DIV class=3Dentry-body>
<DIV class=3Dmetadata>
<DIV><STRONG>mood</STRONG>: <IMG height=3D32 alt=3D""=20
src=3D"http://stat.livejournal.com/img/mood/growf/dwaggins/blah.gif" =
width=3D32>=20
blah</DIV></DIV><A href=3D"http://www.msnbc.msn.com/id/23017866/"=20
target=3D_blank>Interesting study on how chronic pain affects the =
brain.</A> In a=20
nutshell, pain makes the brain more active, all the time and that can =
lead to=20
depression and other nasty effects.
<DIV class=3Dljtags>Tags: <A =
href=3D"http://aeddie.livejournal.com/tag/rsd"=20
rel=3Dtag>rsd</A></DIV></DIV>
<P class=3Dentry-footer>Posted on Feb. 5th, 2008 at 10:27 pm <SPAN=20
class=3Dseparator>|</SPAN> <A class=3Dpermalink=20
href=3D"http://aeddie.livejournal.com/240123.html">Link</A> <SPAN=20
class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?mode=3Dreply">Speak =
your=20
truth.</A> <SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://www.livejournal.com/tools/memadd.bml?journal=3Daeddie&amp;=
itemid=3D240123">Add=20
to Memories</A> <SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://www.livejournal.com/tools/tellafriend.bml?journal=3Daeddie=
&amp;itemid=3D240123">Tell=20
a Friend</A></P></DIV></DIV><A id=3Dcomments></A>
<DIV class=3Dcomments>
<H3 class=3Dcomments-header>Comments</H3>
<DIV class=3Dcomments-content><!-- comment list -->
<DIV class=3Dcomment id=3Dljcmt657403>
<DIV class=3Dcomment-userpic><IMG height=3D100 alt=3D""=20
src=3D"http://userpic.livejournal.com/65904546/1308902" width=3D100><BR>
<P class=3Dposter><SPAN class=3Dljuser style=3D"WHITE-SPACE: nowrap"=20
lj:user=3D"frualeydis"><A =
href=3D"http://frualeydis.livejournal.com/profile"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1px; BORDER-LEFT-WIDTH: =
0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: bottom; =
BORDER-RIGHT-WIDTH: 0px"=20
height=3D17 alt=3D[info] =
src=3D"http://stat.livejournal.com/img/userinfo.gif"=20
width=3D17></A><A=20
href=3D"http://frualeydis.livejournal.com/"><B>frualeydis</B></A></SPAN><=
/P></DIV>
<DIV class=3Dcomment-content>I need to read that. Or maybe I shouldn't =
it may make=20
me depressed. The most important effect I've noticed is that constant =
pain makes=20
me stupid -I can't analyze the way I could before, ordinary things yes, =
but if I=20
ever had any brilliance in my professional field I'm afraid it's=20
gone.<BR><BR>/Eva</DIV>
<DIV class=3Dcomment-footer>Posted on <SPAN=20
title=3D"44 minutes after journal entry, 08:11 am (frualeydis's =
time)">Feb. 6th,=20
2008 07:11 am (UTC)</SPAN> <SPAN class=3Dseparator>|</SPAN> <A =
class=3Dpermalink=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D657403#t657403=
">Link</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D657403#t657403=
">Thread</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?replyto=3D657403">Reply=
</A></DIV></DIV>
<DIV class=3Dcomment id=3Dljcmt658427>
<DIV class=3Dcomment-userpic><IMG height=3D80 alt=3D""=20
src=3D"http://userpic.livejournal.com/34494011/1075692" width=3D80><BR>
<P class=3Dposter><SPAN class=3Dljuser style=3D"WHITE-SPACE: nowrap" =
lj:user=3D"yzzy"><A=20
href=3D"http://yzzy.livejournal.com/profile"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1px; BORDER-LEFT-WIDTH: =
0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: bottom; =
BORDER-RIGHT-WIDTH: 0px"=20
height=3D17 alt=3D[info] =
src=3D"http://stat.livejournal.com/img/userinfo.gif"=20
width=3D17></A><A=20
href=3D"http://yzzy.livejournal.com/"><B>yzzy</B></A></SPAN></P></DIV>
<DIV class=3Dcomment-content>I have to agree with this 100%. I didn't =
have a lot=20
of these mood problems until after my first spinal injury. From there =
the brain=20
ramped up and I developed insomnia and the depression has been my =
housemate ever=20
since. It's funny that I didn't see the connection between these until =
after the=20
GB and my pain level reduced but went through wild fluctuations and my =
mood=20
matched. My pain could even cause panic attacks and anxiety. Very =
interesting=20
stuff.</DIV>
<DIV class=3Dcomment-footer>Posted on <SPAN=20
title=3D"10 hours after journal entry, 09:32 am (yzzy's time)">Feb. 6th, =
2008=20
04:32 pm (UTC)</SPAN> <SPAN class=3Dseparator>|</SPAN> <A =
class=3Dpermalink=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658427#t658427=
">Link</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658427#t658427=
">Thread</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?replyto=3D658427">Reply=
</A></DIV></DIV>
<DIV class=3Dcomment id=3Dljcmt658683>
<DIV class=3Dcomment-userpic><IMG height=3D100 alt=3D""=20
src=3D"http://userpic.livejournal.com/30814579/285047" width=3D100><BR>
<P class=3Dposter><SPAN class=3Dljuser style=3D"WHITE-SPACE: nowrap"=20
lj:user=3D"trystbat"><A =
href=3D"http://trystbat.livejournal.com/profile"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1px; BORDER-LEFT-WIDTH: =
0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: bottom; =
BORDER-RIGHT-WIDTH: 0px"=20
height=3D17 alt=3D[info] =
src=3D"http://stat.livejournal.com/img/userinfo.gif"=20
width=3D17></A><A=20
href=3D"http://trystbat.livejournal.com/"><B>trystbat</B></A></SPAN></P><=
/DIV>
<DIV class=3Dcomment-content>More studies brought to you from the Center =
for=20
Studying the Very Obvious!<BR><BR>I kid, really, I do. Just that =
everyone I know=20
dealing w/chronic pain would say "duh" to this, &amp; whenever I'm on a =
migraine=20
upswing, I get an accompanying bout of chronic depression too.</DIV>
<DIV class=3Dcomment-footer>Posted on <SPAN=20
title=3D"12 hours after journal entry, 11:13 am (trystbat's time)">Feb. =
6th, 2008=20
07:13 pm (UTC)</SPAN> <SPAN class=3Dseparator>|</SPAN> <A =
class=3Dpermalink=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658683#t658683=
">Link</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658683#t658683=
">Thread</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?replyto=3D658683">Reply=
</A></DIV></DIV>
<DIV class=3Dcomment id=3Dljcmt658939>
<DIV class=3Dcomment-userpic><IMG height=3D99 alt=3D""=20
src=3D"http://userpic.livejournal.com/71348675/9608016" width=3D97><BR>
<P class=3Dposter><SPAN class=3Dljuser style=3D"WHITE-SPACE: nowrap"=20
lj:user=3D"rameymj"><A =
href=3D"http://rameymj.livejournal.com/profile"><IMG=20
style=3D"BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1px; BORDER-LEFT-WIDTH: =
0px; BORDER-BOTTOM-WIDTH: 0px; VERTICAL-ALIGN: bottom; =
BORDER-RIGHT-WIDTH: 0px"=20
height=3D17 alt=3D[info] =
src=3D"http://stat.livejournal.com/img/userinfo.gif"=20
width=3D17></A><A=20
href=3D"http://rameymj.livejournal.com/"><B>rameymj</B></A></SPAN></P></D=
IV>
<DIV class=3Dcomment-content>"...a finding that could help explain why =
pain=20
patients have higher rates of depression, anxiety and other=20
disorders."<BR><BR>Or maybe they are in pain all the time! Gee, this is =
one of=20
those "obvious" things. Of course finding the mechanisms are important, =
but I=20
thought everyone realized that how we think influences the physical =
brain, which=20
influences how we think.<BR><BR>I want moneys for studying the mating =
habits of=20
lesbian females crickets. Give me, give me, give me, =
now!<BR><BR>WvF<BR><BR>PS-=20
I sincerely hope this discovery can be used to better those with chronic =
pain.=20
I'll probaly be there one of these days.</DIV>
<DIV class=3Dcomment-footer>Posted on <SPAN=20
title=3D"1 days after journal entry, 02:36 pm (rameymj's time)">Feb. =
7th, 2008=20
10:36 pm (UTC)</SPAN> <SPAN class=3Dseparator>|</SPAN> <A =
class=3Dpermalink=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658939#t658939=
">Link</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?thread=3D658939#t658939=
">Thread</A>=20
<SPAN class=3Dseparator>|</SPAN> <A=20
href=3D"http://aeddie.livejournal.com/240123.html?replyto=3D658939">Reply=
</A></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV><!-- =
Start Snap Shots JavaScript -->
<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
if (SnapShots) {=0A=
    SnapShots.init('livejournal.com', 'livejournal.ru');=0A=
}=0A=
</SCRIPT>

<SCRIPT=20
src=3D"http://shots.snap.com/snap_shots.js?ap=3D0&amp;key=3Deba7a5fe7e04a=
265eeaf0c05add86a7d&amp;sb=3D1&amp;th=3Dsilver&amp;cl=3D1&amp;si=3D0&amp;=
po=3D0&amp;df=3D0&amp;oi=3D0&amp;link_icon=3Don&amp;shots_trigger=3Dboth&=
amp;lang=3Den-us&amp;domain=3Dlivejournal.com&amp;pub=3Dpub-5821628-www.l=
ivejournal.com"=20
type=3Dtext/javascript></SCRIPT>
<!-- End Snap Shots JavaScript --></BODY></HTML>

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/62515867/1732849

iVBORw0KGgoAAAANSUhEUgAAAGQAAABkBAMAAACCzIhnAAAAMFBMVEUAAAAAKb0AY84AY/8xnM5j
nM6czv+tra3v7+////////////////////////////+mjoMvAAAACXBIWXMAAAsRAAALEQF/ZF+R
AAACsElEQVRYw+2Yv27cMAzGtXLUqPU2z1cE6CN07tS5zdAn6Cu0m4QUafm2JT/Sf2QrthWgrYfo
DJ+h488iqY+0k/C9e4Qf3Dl+vyGcgwxazIZOJNMZZLnC30bEP7lUH0OuQnsR0YjIwtLTifAVzILA
sT3fFoh+Ezi1P0LMcTjWhWCNTgSx9CIdjoUxv0AkyScRCZ+DLngG6RvXRn596xqXjuUVSMYxD7oU
olUvQ7WM4s+qTXoR0dIXy2wfuZBbkH3tOwYTWBvSBGrHFoj2qH3HeHbEV/Es7DuGKCrHDmPJNCOL
jFEb6RtvyIURFX9dZrbrNpFbiJrUP1DTeIUQilHtpNp00TxOTNMVIrcLEDCh0AJbaU4Tdl4jsCBz
RyWNMsXL0DTdQtgee6gAIORxYrpGiN0LmgpsPHiabiIaoq1CGjNSwNP0f9j9f4aU6YSMdyOZj5HI
MaXCKWKO0MegEPSynLeIGOOInByZtxE6oi2SxFYpQ+bGDFPKvEWEEaBGsqdBnwENRExTKUk+FgvW
ULHMSts4JuEXUFiGELMGkPGS1kJet5UXRZDbOcM2vKryup/tIHNvayClqMxkK5Oml8gLmH3nyftZ
sCbqgnGNFbUMo74cydkkIwR2aJRljLKTqn6VpL4pKGstkMZ+tkIS3BsRd93aE039jHBhGnP1Kzj1
VSDwySSDN4klovLSLCASe+HH31rWa5GO7ClcbmU63MV+xPr5ScHc7/eVYI7Gz0/8dICU2cmEq3cn
kHkIcrs9bJDInmNogKGfBP0UKXIenr5+WSEF9q406xxqr50QLg4Pz/ePNSICY/uw3T/5TUzkPDx+
Hj7USBq7X/QSWCPP7wdeIaP0XWxxvMBPguCoY0mIWQKGcXH7CAQZuw3rh/g6sZ7dxK2xg5TIB8jp
cWGk/x93fwA0s2yZTBVlHAAAABx6VFh0Q3JlYXRpb24gVGltZQAAeNpjv84kzgUAA8IBAgsZrZ4A
AAAASUVORK5CYII=

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/39497569/1732849

/9j/4AAQSkZJRgABAgEASABIAAD/7RLuUGhvdG9zaG9wIDMuMAA4QklNA+0KUmVzb2x1dGlvbgAA
AAAQAEgAAAABAAEASAAAAAEAAThCSU0EDRhGWCBHbG9iYWwgTGlnaHRpbmcgQW5nbGUAAAAABAAA
AB44QklNBBkSRlggR2xvYmFsIEFsdGl0dWRlAAAAAAQAAAAeOEJJTQPzC1ByaW50IEZsYWdzAAAA
CQAAAAAAAAAAAQA4QklNBAoOQ29weXJpZ2h0IEZsYWcAAAAAAQAAOEJJTScQFEphcGFuZXNlIFBy
aW50IEZsYWdzAAAAAAoAAQAAAAAAAAACOEJJTQP1F0NvbG9yIEhhbGZ0b25lIFNldHRpbmdzAAAA
SAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1
AAAAAQAtAAAABgAAAAAAAThCSU0D+BdDb2xvciBUcmFuc2ZlciBTZXR0aW5ncwAAAHAAAP//////
//////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA////////
/////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQIBkd1
aWRlcwAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHg1VUkwgb3ZlcnJpZGVzAAAABAAAAAA4QklN
BBoGU2xpY2VzAAAAAG0AAAAGAAAAAAAAAAAAAABkAAAAZAAAAAYAcABiAF8AMAA2ADcAAAABAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGQAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAADhCSU0EERFJQ0MgVW50YWdnZWQgRmxhZwAAAAEBADhCSU0EFBdMYXllciBJRCBH
ZW5lcmF0b3IgQmFzZQAAAAQAAAAFOEJJTQQMFU5ldyBXaW5kb3dzIFRodW1ibmFpbAAAD00AAAAB
AAAAZAAAAGQAAAEsAAB1MAAADzEAGAAB/9j/4AAQSkZJRgABAgEASABIAAD/7gAOQWRvYmUAZIAA
AAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwM
DAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABkAGQDASIAAhEBAxEB/90ABAAH/8QBPwAAAQUB
AQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEE
AQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFj
czUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2
N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR
8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSl
tcXV5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDjemdOGZTiPb9nrFlgos9S
rcQ0fZWevo0+rvuzaadv+ksZ/gfXtx54ObiMxBk5HTaHVD3btlZcRPp+q6oj1fs3q/ofV2eh6/6H
1PVQKW3VjpbaC19zLa78Zh722DHbssO5rdm7HqUKCy7CbiC1gBZ6ReQd4q9T7V9n59L0/tX6ff6f
r/8ADej+iTUtnKdXZZk7cTFxzi0faHVFtMwLK6HU2Qf0F7fV/mLP1n/A+l+kR8W6iuxtR6bj5RsO
M1jvSrb+ky6hkU0+/wD64zf9D9H/AINVLxU5tzxZS1r6RjuqbuLdjS11TfUe9+Q51VlVVlXqXf4K
uj+i/q6n0+/IozmW5NItaxmLaykAkF9FVf2Cz1GXVel+rP8Ac/8AWK/0v6TCs/waU9L03A6Vn47M
qrCx27vpNNFZA/6C1qvq50PeHPwsdsHVjqWceft/zXqj9XMe/E6fXU5sl3FkSGk67f6y1HZ+Njjc
/c4tGoH0pP7n9ZRkrqbVHS/q21pa/pOE4tPucaKZ8four/dT3fV76r5M5OJ0vHtLNNrKWNY4Hn2h
m3cljYl3UWi7IHp0u1FXDnD803vHu2f8Gum6Vg49Veg3EcDgD+q0ICRJoFcYgCy8oavq9RaaLeg4
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
fZv9P1PVyf5z/BfbN3q/Q/7T+mo4n7V+2u+z+r+0dz9+31ftG7X1t/p/pd30vVWekkVNxv2r0fZ/
Meo2du/Z6kO9KfzfV2+p6f8AhPprTwP219n6p6Mb9rvtvqfaN0Q/7T6k/qnqen6u/wC2frH/AHG/
TrASQU63+Uvt3/D/AGf/AIafS2/9v7fQ/wCtfZv5CSyUklP/2QA4QklNBCEaVmVyc2lvbiBjb21w
YXRpYmlsaXR5IGluZm8AAAAAVQAAAAEBAAAADwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8A
cAAAABMAQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAIAA2AC4AMAAAAAEAOEJJTQQGDEpQ
RUcgUXVhbGl0eQAAAAAHAAgAAAABAQD/7gAOQWRvYmUAZEAAAAAB/9sAhAABAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEB
AQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwP/wAARCABkAGQDAREAAhEBAxEB/90ABAAN/8QBogAAAAYCAwEAAAAAAAAAAAAABwgGBQQJAwoC
AQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIBAwQBAwMCAwMDAgYJdQECAwQRBRIG
IQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpElQ6Gx8CY0cgoZwdE1J+FTNoLxkqJEVHNFRjdHYyhV
VlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6SElKWFlaZ2hpanZ3eHl6hYaHiImKlJWWl5iZmqSl
pqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk5ebn6Onq9PX29/j5+hEAAgEDAgQEAwUEBAQGBgVt
AQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVSoWIWMwmxJMHRQ3LwF+GCNCWSUxhjRPGisiY1GVQ2
RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/MpGpSktMTU5PSVpbXF1eX1KEdXZjh2hpamtsbW5vZn
d4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIR
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

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://stat.livejournal.com/img/mood/growf/dwaggins/blah.gif

R0lGODlhIAAgAPcAAAAAAADAAMCAIPr6+v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAMALAAAAAAgACAA
AAiuAAcIHEiwoMGDCBMqXMiwocOHECNKnGgQAACCFykWtJjRosaNAS4CCPlx4MiQIz1+PBmg5UmP
GSGybEnz5YCYDTlapFkzpUSWHF0SIACA6M2bIhfOrDm0aEeBSRMCfUmUI8aoCF/ydKoTqUuSB7Xy
RLk15NawOseqHZsSJ9SOa+OyVbhULkqrdO2WBctwps6gZvn2xWtSANCSb5GqRAxVgGHGhd2WJAy5
suXLjAMCADs=

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/65904546/1308902

iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK
TWlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQ
WaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec
5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28A
AgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0
ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaO
WJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHi
wmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryM
AgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0l
YqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHi
NLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYA
QH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6c
wR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBie
whi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1c
QPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqO
Y4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hM
WEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgoh
JZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSU
Eko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/p
dLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Y
b1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7O
UndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsb
di97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W
7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83
MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxr
PGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW
2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1
U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd
8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H0
8PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+H
vqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsG
Lww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjg
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

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://stat.livejournal.com/img/userinfo.gif

R0lGODlhEQARAMQbAAAAAAAAawAIlAAI3ggIYwgI7wgI/wgQxhAQEBAY9xgYUiEhISkpKTExMTEx
rTk5zkJCQlJSjFpapXt7e4SEhKWcnM7GvdbOxufezvfv3v+EGAAAAAAAAAAAAAAAAAAAACH/C05F
VFNDQVBFMi4wAwEAAAAh+QQFCgAbACwAAAAAEQARAAAFbOAmjmRpikzKnCVjXVm2shtTWXE8nzae
76ZeTkYT/oq3IbCVjF2WJQgsc4HQUBMMZgItARAUCgIAOC0AAcOAPDAYBIDFaCFwFNzrgWY/OMg3
dA9uCRIAERKIEhFlgAwKAQEEDQANlZaMVyYhAAA7

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/34494011/1075692

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

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/30814579/285047

R0lGODlhZABkAPf/ANvd3f39/fr6+vj4+N/f39vb2/Dw8NHR0ff39+bm5vLy8unp6ezs7MLCwvX1
9ZCQkJmZme/v78XFxdfX19XV1cnJyb29vcbGxsvLy7+/v7a2tqOjo+Dg4LOzs6ampqSkpIaGhurq
6qCgoM7Ozp+fn+Tk5KioqK+vr+Li4tPT05ycnJaWlrS0tJubm7u7u8HBwbi4uHBwcLGxsaysrHx8
fIuLi42Njaurq3t7e3V1df8AAN3d3Y6OjpWVlZKSkoiIiF1dXWNjY8zMzNjY2GxsbIODg3Nzc4WF
hYGBgVtbW1JSUmtra3d3d29vb2FhYXl5eVFRUVZXV2ZmZmRkZFRUVP+Xl0lJSX5+fmlpaUdHR0BA
QFlZWU5OTktLS15eXkxMTP/29v+iov+6uv/s7ENDQ/+cnD8/Pzs7OzAwMP/m5jU1Nf/Y2P/W1v+Y
mC4uLv/7+0VFRf+Tk//ExP/b2z09Pf/9/f/4+P+Rkf/w8P+wsCoqKiwsLBISEv9lZf+np//o6Dk5
Of+0tP+Vlf+fnyEhIf8oKCgoKBgYGP/Hx/+bmxQUFBcXFx0dHTc3NzIyMhsbG/8nJ//l5f/g4P/e
3iMjI//V1REREf/09P/Dw/9/fyUlJf8NDf8bG/9zc//IyP+hoScnJx4eHv8ZGf/y8v+ysv9dXQ4O
Dv+lpf8DA//Ly/9paf+4uP8SEv+urv96ev86Ov85Of////8EBAwMDP+Ojv+MjP/r6//Bwf8xMQYG
Bv89Pf8hIf9UVP9SUgsLC/8UFP+Bgf93d/9tbf8tLf9fX/8cHP9JSQkJCf9HR/9FRf8XF/8PDwEB
Af/u7v9WVv8zM/9MTP9bW/9nZ/+Cgv8iIv9QUP9gYP94eP+qqv8GBv8LC/8fH/8qKv91df+Fhf+L
i/+trf+9vf++vv/Ozv/c3P/j41FSUv8ICP80NP8+Pv9AQP9PT/9jY/1qav9qav9vb/9wcP99faKo
qLa5uby/v/+Hh/aOjv+JifuQkP+oqP+2tv/NzeLS0v/Q0P/T0/r//yH/C0FET0JFOklSMS4wAt7t
ACH5BAAAAAAALAAAAABkAGQAAAj/AGMJHEiwoMGDCBMqpGPpUQtANRRKnEixosWLAndQmvXoB6Ef
GEOKHCnyhqJZoMws6hErAMmXMGPGQuLrGJQrinzIfImjQgonsa402EkRxDE+XrLoOUB0JBIcP3JJ
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
qjKkDq5yGCbMoH0HRY4kWdLkSZQpVa5kuTIgADs=

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://userpic.livejournal.com/71348675/9608016

/9j/4AAQSkZJRgABAQEAYABgAAD/4QAWRXhpZgAASUkqAAgAAAAAAAAAAAD/2wBDAAgGBgcGBQgH
BwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/
2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjL/wAARCABjAGEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQF
BgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS
0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4
eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi
4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl
8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImK
kpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP0
9fb3+Pn6/9oADAMBAAIRAxEAPwDxu9XN031rrtO8N2VzocDsh85ow7SBjkE84x04rkrv/j7b/er0
jwm/m+H7V0cZCmN1J6FWIH6YP41p1IR5xqVhLY3hgkGcj5WHRqzssqkgkcnivT/EWjxXsTN1YnKs
gyVPqPX3ri59E2mRRNhsj7y8VlJBYxUjyuW60pQMSfetKPSpFY/vFwDg+taOlaEs15+9BkjXkrt6
ntn2pWAraJ4Zk1LEs+6OAjK7fvMPXnoPes7WbCLT9TkghZmiAUqW5OCM816vFb+XaFI9oZxgnOOP
SvKdUvPP1O4kjbKbyF+g4H8qppKIjOH3uRn2pGxkfLipftDd1GKUzKSMcZ6jHSpAryfeFIfQVKzh
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
ZGUPhNbe3940UUVIH//Z

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://stat.livejournal.com/??lj_base.css,esn.css,contextualhover.css?v=1196381230

IFRAME.lj_embedcontent {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.ljclear {
	BORDER-TOP-WIDTH: 0px; CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: =
0px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 0px; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px -1px -1px 0px; WIDTH: 1px; LINE-HEIGHT: =
0; PADDING-TOP: 0px; HEIGHT: 1px; BORDER-RIGHT-WIDTH: 0px
}
.nowrap {
	WHITE-SPACE: nowrap
}
.lj_progresscontainer {
	BACKGROUND: url(/img/progress/inactive.gif); MARGIN: 1em; WIDTH: 400px; =
HEIGHT: 25px
}
.lj_progressoverlay {
	BACKGROUND: url(/img/progress/active.gif)
}
.lj_progressindefinite {
	BACKGROUND-IMAGE: url(/img/progress/barber.gif)
}
.lj_hourglass {
	Z-INDEX: 20000
}
.ErrorNote .Inner {
	BORDER-RIGHT: #ff9999 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: =
#ff9999 1px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; BORDER-LEFT: =
#ff9999 1px solid; PADDING-TOP: 8px; BORDER-BOTTOM: #ff9999 1px solid; =
BACKGROUND-REPEAT: repeat-x; BACKGROUND-COLOR: #ffeeee
}
.Note .Inner {
	BORDER-RIGHT: #ffcc33 1px solid; PADDING-RIGHT: 8px; BORDER-TOP: =
#ffcc33 1px solid; PADDING-LEFT: 8px; BACKGROUND: #ffffdd; =
PADDING-BOTTOM: 8px; BORDER-LEFT: #ffcc33 1px solid; PADDING-TOP: 8px; =
BORDER-BOTTOM: #ffcc33 1px solid
}
DIV.lj_ippu {
	BORDER-RIGHT: #444 2px solid; PADDING-RIGHT: 2px; BORDER-TOP: #444 2px =
solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #444 2px =
solid; PADDING-TOP: 2px; BORDER-BOTTOM: #444 2px solid; =
BACKGROUND-COLOR: #fff
}
DIV.lj_ippu_titlebar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; =
PADDING-BOTTOM: 0px; WIDTH: auto! important; COLOR: #fff; PADDING-TOP: =
5px; HEIGHT: 20px; BACKGROUND-COLOR: #444
}
DIV.lj_ippu_titlebar DIV {
=09
}
.lj_ippu_titlebar IMG {
	opacity: .25
}
.lj_ippu_titlebar IMG:hover {
	opacity: 1
}
.LJ_Placeholder_Container {
	BORDER-RIGHT: #ccc 1px dashed; BORDER-TOP: #ccc 1px dashed; =
VERTICAL-ALIGN: middle; OVERFLOW: hidden; BORDER-LEFT: #ccc 1px dashed; =
BORDER-BOTTOM: #ccc 1px dashed; _position: relative
}
.LJ_Placeholder_Container IMG {
	DISPLAY: block; MARGIN: 0px auto; CURSOR: pointer; _position: absolute; =
_top: 45%; _left: 45%
}
.ljhidden {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 0px; FILTER: =
alpha(opacity=3D0); LEFT: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 0px; LINE-HEIGHT: 0; PADDING-TOP: 0px; =
POSITION: absolute; TOP: 0px; HEIGHT: 0px; BORDER-RIGHT-WIDTH: 0px; =
opacity: 0
}
.lj_pollanswer {
=09
}
.lj_pollanswer_loading {
	BORDER-RIGHT: #eee 1px solid; BORDER-TOP: #eee 1px solid; BORDER-LEFT: =
#eee 1px solid; COLOR: #ccc; BORDER-BOTTOM: #eee 1px solid
}
.super {
	FONT-SIZE: 0.7em; VERTICAL-ALIGN: super
}
.notice {
	COLOR: #f00
}
.ljedittime {
	FONT-SIZE: smaller
}
#manageSettings {
=09
}
.Subscribe {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0.5em 0px 0px; WIDTH: 100%; PADDING-TOP: 0px
}
.Subscribe TR.Inactive {
	COLOR: #aaa
}
.Subscribe TR.Disabled {
	BACKGROUND-COLOR: #eee
}
.Subscribe TR.Inactive A {
	COLOR: #aaa
}
.Subscribe TD {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.3em; =
PADDING-TOP: 0.3em
}
.Subscribe TD IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
.Subscribe TD LABEL {
	CURSOR: pointer! important
}
.Subscribe TD P {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-SIZE: 1.4em; BACKGROUND: =
#fff; PADDING-BOTTOM: 0px; CURSOR: default! important; COLOR: #bbb; =
LINE-HEIGHT: 1.5; PADDING-TOP: 0px
}
.CategoryRow .Caption {
	TEXT-ALIGN: right
}
.CategoryRow {
	WIDTH: 100%
}
.CategoryRow TD {
	PADDING-RIGHT: 0.4em; PADDING-LEFT: 0.4em; FONT-SIZE: 0.85em; =
PADDING-BOTTOM: 0.2em; VERTICAL-ALIGN: middle; PADDING-TOP: 0.2em; =
BORDER-BOTTOM: #ddd 1px solid; BACKGROUND-COLOR: #eee
}
.CategoryRow .caption {
	TEXT-ALIGN: right
}
.CategoryRow LABEL {
=09
}
.CategoryHeading {
	FONT-WEIGHT: bold
}
.CategoryHeadingNote {
=09
}
#Subscriptions {
	WIDTH: 100%
}
#Subscriptions TH {
	TEXT-ALIGN: left
}
#Subscriptions TD {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em
}
#Subscriptions TH {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em
}
#Subscriptions TR.lighter {
	BACKGROUND-COLOR: #cff
}
#Subscriptions TR.darker {
	BACKGROUND-COLOR: #9cc
}
DIV.argOptsContainer {
	DISPLAY: none
}
#SubscribeSaveButtons {
	BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; MARGIN-LEFT: =
auto; BORDER-LEFT: #333 1px solid; WIDTH: 150px; MARGIN-RIGHT: auto; =
BORDER-BOTTOM: #333 1px solid; TEXT-ALIGN: center
}
#SubscribeSaveButtons INPUT {
	MARGIN: 5px
}
#SubscriptionInfo {
	MARGIN: 1em auto; WIDTH: 95%; TEXT-ALIGN: center
}
#SubscriptionInfo P {
	PADDING-RIGHT: 0.2em; PADDING-LEFT: 0.2em; FONT-SIZE: 1em; =
PADDING-BOTTOM: 0.2em; MARGIN: 0px; PADDING-TOP: 0.2em
}
#SubscriptionInfo DIV {
	PADDING-RIGHT: 0.2em; PADDING-LEFT: 0.2em; FONT-SIZE: 1em; =
PADDING-BOTTOM: 0.2em; MARGIN: 0px; PADDING-TOP: 0.2em
}
.NotificationTable {
	WIDTH: 100%
}
.NotificationTable TR.Selected {
	BACKGROUND-COLOR: #cee0fb
}
.NotificationTable TR.Selected TD {
	BORDER-TOP: #ccc 1px solid
}
.NotificationTable TD {
	BORDER-TOP: #ddd 1px solid
}
#NotificationSidebar {
=09
}
#NotificationSidebar P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#NotificationSidebar .Blurb {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 1em; PADDING-TOP: 0px
}
#NotificationSidebar .BlurbTitle {
	FONT-WEIGHT: bold; MARGIN: 0px 0px 0.4em
}
#NotificationSidebar .ljad {
	FLOAT: left; MARGIN-RIGHT: 1em
}
.esnlinks {
	DISPLAY: block; FONT-WEIGHT: normal; FLOAT: right; MARGIN: 0px
}
.NotificationTable .inbox {
	PADDING-RIGHT: 0px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0em 0px; PADDING-TOP: 0px
}
.inbox .header {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 3px; PADDING-LEFT: 3px; =
BORDER-LEFT-WIDTH: 0px; BACKGROUND: #ddd; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 3px; MARGIN: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; =
PADDING-TOP: 3px; BORDER-RIGHT-WIDTH: 0px
}
.actions {
	FONT-SIZE: 0.9em
}
SPAN.Pages {
	FLOAT: right
}
SPAN.Pages INPUT {
=09
}
.inbox TR {
	CURSOR: pointer
}
.inbox_newitems {
	FONT-WEIGHT: bold; OVERFLOW: hidden
}
.InboxItem_Controls {
	FLOAT: left; WIDTH: 40px
}
.InboxItem_Unread {
	FONT-WEIGHT: bold
}
.InboxItem_Read {
	COLOR: #888
}
SPAN.InboxItem_Read:hover {
	COLOR: #000
}
SPAN.InboxItem_Read A {
	COLOR: #999! important
}
SPAN.InboxItem_Read:hover A {
=09
}
.InboxItem_Meta {
=09
}
.InboxItem_Meta TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
.inbox .alt {
	BACKGROUND: #f6f6f6
}
.inbox .alt TD {
=09
}
.inbox .checkbox {
	PADDING-RIGHT: 0.1em; PADDING-LEFT: 0.1em; PADDING-BOTTOM: 0.1em; =
VERTICAL-ALIGN: top; WIDTH: 1%; PADDING-TOP: 0.1em
}
.inbox TD.NoItems {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-SIZE: 3em; PADDING-BOTTOM: =
1em; CURSOR: default! important; COLOR: #ddd; PADDING-TOP: 1em; =
TEXT-ALIGN: center
}
.inbox TD.item {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 0.4em! important; =
PADDING-BOTTOM: 0.2em! important; VERTICAL-ALIGN: middle; PADDING-TOP: =
0.3em! important
}
.InboxItem_Content {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0.2em; WIDTH: =
95%; PADDING-TOP: 0.5em
}
.inbox TD.time {
	FONT-SIZE: 0.8em; VERTICAL-ALIGN: top; WIDTH: 8.5em; COLOR: #555; =
PADDING-TOP: 0.4em
}
.inbox .JournalNewComment {
=09
}
.inbox .Subject {
	FONT-WEIGHT: bold
}
.inbox .ManageButtons {
	FLOAT: right; MARGIN: 0px 0px 0.5em; WIDTH: 104px; POSITION: relative; =
TOP: 4px
}
.inbox .Body {
=09
}
.NotificationTable TR.Selected .Body {
=09
}
.folders A {
	BORDER-RIGHT: #fff 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #fff 1px =
solid; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: 1px; MARGIN: =
0px; BORDER-LEFT: #fff 1px solid; COLOR: #000; PADDING-TOP: 0px; =
BORDER-BOTTOM: #fff 1px solid; WHITE-SPACE: nowrap; TEXT-DECORATION: =
none
}
.folders A.subs {
	PADDING-LEFT: 1em
}
.folders A:visited {
	COLOR: #000
}
.folders A:link {
	COLOR: #000
}
.folders A:hover {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 1px solid; BACKGROUND-COLOR: #eee
}
.ippu {
	COLOR: #000000
}
.ippu .track_title {
	FONT-WEIGHT: bold; MARGIN: 4px; COLOR: #cc6644
}
.ippu .track_btncontainer {
	PADDING-RIGHT: 1px; MARGIN-TOP: 5px; PADDING-LEFT: 1px; PADDING-BOTTOM: =
1px; WIDTH: 250px; PADDING-TOP: 1px
}
.ippu .track_moreopts {
	MARGIN: auto auto auto 1em; WIDTH: 49%
}
.ippu .track_savechanges {
	MARGIN: auto; WIDTH: 49%
}
#compose LABEL {
	FONT-WEIGHT: bold
}
DIV.ContextualPopup {
	MARGIN: 5px 0px 0px 20px; FONT: 11px "Arial", "Verdana", sans-serif; =
POSITION: relative
}
* HTML DIV.ContextualPopup {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
DIV.ContextualPopup IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
DIV.ContextualPopup DIV.Inner {
	BORDER-RIGHT: #036 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #036 1px =
solid; PADDING-LEFT: 0px; LEFT: -2px; PADDING-BOTTOM: 0px; BORDER-LEFT: =
#036 1px solid; WIDTH: 20em; COLOR: #000! important; PADDING-TOP: 0px; =
BORDER-BOTTOM: #036 1px solid; POSITION: relative; TOP: -2px; =
BACKGROUND-COLOR: #fff! important
}
* HTML DIV.ContextualPopup DIV.Inner {
	LEFT: 0px; TOP: 0px
}
DIV.ContextualPopup .Content {
	PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 6px; =
LINE-HEIGHT: 1.4; MARGIN-RIGHT: 50px; PADDING-TOP: 2px
}
DIV.ContextualPopup .Relation {
	FONT-WEIGHT: bold! important
}
DIV.ContextualPopup .Content .OnlineStatus {
	FONT-WEIGHT: bold
}
DIV.ContextualPopup .Content .GizmoBlurb {
	FONT-SIZE: smaller
}
DIV.ContextualPopup .Userpic {
	PADDING-RIGHT: 4px; PADDING-LEFT: 0px; RIGHT: 0px; FLOAT: right; =
PADDING-BOTTOM: 0px; PADDING-TOP: 4px; TOP: 0px
}
* HTML DIV.ContextualPopup .Userpic {
	TOP: 2px
}
DIV.ContextualPopup .Userpic IMG {
	MAX-WIDTH: 50px; MARGIN: 0px auto; VERTICAL-ALIGN: middle; ; WIDTH: =
expression(this.width > 50 ? "50px" : this.width); HEIGHT: auto
}
DIV.ContextualPopup DIV.Inner A {
	FONT-WEIGHT: bold; COLOR: #00c! important; TEXT-DECORATION: underline! =
important
}
DIV.ContextualPopup DIV.Inner A:visited {
	FONT-WEIGHT: bold; COLOR: #00c! important; TEXT-DECORATION: underline! =
important
}

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://stat.livejournal.com/sixhtml/themes/common/base-weblog.css

HTML {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px; FONT-FAMILY: verdana, 'trebuchet =
ms', sans-serif
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
A {
	TEXT-DECORATION: underline
}
A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
H1 {
	FONT-WEIGHT: normal
}
H2 {
	FONT-WEIGHT: normal
}
H3 {
	FONT-WEIGHT: normal
}
H4 {
	FONT-WEIGHT: normal
}
H5 {
	FONT-WEIGHT: normal
}
H6 {
	FONT-WEIGHT: normal
}
H1 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
H2 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
H3 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
H4 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
H5 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
H6 {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
P {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
OL {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
UL {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
PRE {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
BLOCKQUOTE {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
.clr {
	BORDER-TOP-WIDTH: 0px; CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: =
0px; BORDER-LEFT-WIDTH: 0px; FONT-SIZE: 0px; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px -1px -1px 0px; OVERFLOW: hidden; WIDTH: =
1px; LINE-HEIGHT: 0; PADDING-TOP: 0px; HEIGHT: 1px; BORDER-RIGHT-WIDTH: =
0px
}
.pkg:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0.1em; VISIBILITY: hidden; =
LINE-HEIGHT: 0; HEIGHT: 0px; content: " "
}
* HTML .pkg {
	DISPLAY: inline-block
}
* HTML .pkg {
	HEIGHT: 1%
}
.pkg {
	DISPLAY: block
}
BODY {
	TEXT-ALIGN: center
}
#container {
	MARGIN: 0px auto; WIDTH: 720px; POSITION: relative; TEXT-ALIGN: left
}
#container-inner {
	WIDTH: auto; POSITION: static
}
#banner {
	POSITION: relative
}
#banner-inner {
	POSITION: static
}
#pagebody {
	WIDTH: 100%; POSITION: relative
}
#pagebody-inner {
	WIDTH: 100%; POSITION: static
}
#alpha {
	DISPLAY: inline; MIN-HEIGHT: 1px; FLOAT: left; POSITION: relative
}
#beta {
	DISPLAY: inline; MIN-HEIGHT: 1px; FLOAT: left; POSITION: relative
}
#gamma {
	DISPLAY: inline; MIN-HEIGHT: 1px; FLOAT: left; POSITION: relative
}
#delta {
	DISPLAY: inline; MIN-HEIGHT: 1px; FLOAT: left; POSITION: relative
}
#delta {
	FLOAT: right
}
#alpha-inner {
	POSITION: static
}
#beta-inner {
	POSITION: static
}
#gamma-inner {
	POSITION: static
}
#delta-inner {
	POSITION: static
}
.banner-user {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; FLOAT: left; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px 15px 0px 0px; OVERFLOW: hidden; WIDTH: =
64px; PADDING-TOP: 0px; TEXT-ALIGN: center; BORDER-RIGHT-WIDTH: 0px
}
.banner-user-photo {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; BACKGROUND-POSITION: center =
center; DISPLAY: block; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 2px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; BORDER-RIGHT-WIDTH: 0px; =
TEXT-DECORATION: none! important
}
.banner-user-photo IMG {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; =
MARGIN: 0px; WIDTH: 64px; PADDING-TOP: 0px; HEIGHT: auto; =
BORDER-RIGHT-WIDTH: 0px
}
.content-nav {
	MARGIN: 10px; TEXT-ALIGN: center
}
.date-header {
	CLEAR: both; POSITION: static
}
.entry-content {
	CLEAR: both; POSITION: static
}
.entry {
	CLEAR: both; MARGIN-BOTTOM: 20px; OVERFLOW: hidden; WIDTH: 100%; =
POSITION: static
}
.trackbacks {
	CLEAR: both; MARGIN-BOTTOM: 20px; OVERFLOW: hidden; WIDTH: 100%; =
POSITION: static
}
.comments {
	CLEAR: both; MARGIN-BOTTOM: 20px; OVERFLOW: hidden; WIDTH: 100%; =
POSITION: static
}
.archive {
	CLEAR: both; MARGIN-BOTTOM: 20px; OVERFLOW: hidden; WIDTH: 100%; =
POSITION: static
}
.entry-content {
	CLEAR: both
}
.trackbacks-info {
	CLEAR: both
}
.trackback-content {
	CLEAR: both
}
.comment-content {
	CLEAR: both
}
.comments-open-content {
	CLEAR: both
}
.comments-closed {
	CLEAR: both
}
.entry-excerpt {
	CLEAR: both
}
.entry-body {
	CLEAR: both
}
.entry-more-link {
	CLEAR: both
}
.entry-more {
	CLEAR: both
}
.entry-footer {
	CLEAR: both; MARGIN: 5px 10px 20px
}
.trackback-footer {
	CLEAR: both; MARGIN: 5px 10px 20px
}
.comment-footer {
	CLEAR: both; MARGIN: 5px 10px 20px
}
.comments-open-footer {
	CLEAR: both; MARGIN: 5px 10px 20px
}
.archive-content {
	CLEAR: both; MARGIN: 5px 10px 20px
}
.comments-open LABEL {
	DISPLAY: block
}
#comment-author {
	WIDTH: 240px
}
#comment-email {
	WIDTH: 240px
}
#comment-url {
	WIDTH: 240px
}
#comment-text {
	WIDTH: 240px
}
#comment-bake-cookie {
	MARGIN-LEFT: 0px; VERTICAL-ALIGN: middle
}
.comments-open-header {
	CLEAR: both
}
#comment-post {
	FONT-WEIGHT: bold
}
IMG.image-full {
	WIDTH: 100%
}
.image-thumbnail {
	FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 115px
}
.image-thumbnail IMG {
	MARGIN: 0px 0px 2px; WIDTH: 115px; HEIGHT: 115px
}
.module {
	OVERFLOW: hidden; WIDTH: 100%; POSITION: relative
}
.module-content {
	MARGIN: 5px 10px 20px; POSITION: relative
}
.module-list {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.archive-list {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.module-list-item {
	MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px
}
.module-presence IMG {
	VERTICAL-ALIGN: middle
}
.module-powered .module-content {
	MARGIN-BOTTOM: 10px
}
.module-photo .module-content {
	TEXT-ALIGN: center
}
.module-wishlist .module-content {
	TEXT-ALIGN: center
}
.module-calendar .module-content TABLE {
	WIDTH: 100%; BORDER-COLLAPSE: collapse
}
.module-calendar .module-content TH {
	WIDTH: 14%; TEXT-ALIGN: center
}
.module-calendar .module-content TD {
	WIDTH: 14%; TEXT-ALIGN: center
}
.typelist-thumbnailed {
	MARGIN: 0px 0px 20px
}
.typelist-thumbnailed .module-list-item {
	CLEAR: both; DISPLAY: block; MARGIN: 0px
}
.typelist-thumbnailed .module-list-item:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0.1em; VISIBILITY: hidden; =
LINE-HEIGHT: 0; HEIGHT: 0px; content: " "
}
* HTML .typelist-thumbnailed .module-list-item {
	DISPLAY: inline-block
}
* HTML .typelist-thumbnailed .module-list-item {
	HEIGHT: 1%
}
.typelist-thumbnailed .module-list-item {
	DISPLAY: block
}
.typelist-thumbnail {
	MIN-WIDTH: 60px; FLOAT: left; MARGIN: 0px 5px 0px 0px; VERTICAL-ALIGN: =
middle; WIDTH: auto; TEXT-ALIGN: center
}
.typelist-thumbnail IMG {
	MARGIN: 5px
}
.module-galleries .typelist-thumbnail IMG {
	WIDTH: 50px
}
.typelist-description {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: =
0px; PADDING-TOP: 5px
}
.module-featured-photo .module-content {
	MARGIN: 0px
}
.module-photo .module-content {
	MARGIN: 0px
}
.module-featured-photo IMG {
	WIDTH: 100%
}
.module-recent-photos {
	MARGIN: 0px 0px 15px
}
.module-recent-photos .module-content {
	MARGIN: 0px
}
.module-recent-photos .module-list {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none; HEIGHT: 1%; BORDER-RIGHT-WIDTH: 0px
}
.module-recent-photos .module-list:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0.1em; VISIBILITY: hidden; =
LINE-HEIGHT: 0; HEIGHT: 0px; content: " "
}
* HTML .module-recent-photos .module-list {
	DISPLAY: inline-block
}
* HTML .module-recent-photos .module-list {
	HEIGHT: 1%
}
.module-recent-photos .module-list {
	DISPLAY: block
}
.module-recent-photos .module-list-item {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: left; =
BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: =
0px; HEIGHT: 1%; BORDER-RIGHT-WIDTH: 0px
}
.module-recent-photos .module-list-item A {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: =
0px
}
.module-recent-photos .module-list-item IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; WIDTH: 60px; PADDING-TOP: 0px; HEIGHT: 60px
}
.module-mmt-calendar {
	MARGIN-BOTTOM: 15px
}
.module-mmt-calendar .module-content {
	MARGIN: 0px
}
.module-mmt-calendar .module-header {
	MARGIN: 0px
}
.module-mmt-calendar .module-header A {
	TEXT-DECORATION: none
}
.module-mmt-calendar TABLE {
	WIDTH: 100%
}
.module-mmt-calendar TH {
	TEXT-ALIGN: left
}
.module-mmt-calendar TD {
	VERTICAL-ALIGN: top; WIDTH: 14%; HEIGHT: 75px; TEXT-ALIGN: left
}
.day-photo {
	WIDTH: 54px; HEIGHT: 54px
}
.day-photo A {
	DISPLAY: block
}
.day-photo A IMG {
	WIDTH: 50px; HEIGHT: 50px
}

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://stat.livejournal.com/sixhtml/themes/stylecontest/hot_springs/style.css

BODY {
	BACKGROUND: url(bg_page.jpg) #fff no-repeat center bottom; FONT: =
62.5%/1.7em Arial, Verdana, "Trebuchet MS", Helvetica, sans-serif; =
COLOR: #0c2309
}
.entry-userpic {
	DISPLAY: none
}
.comment-userpic {
	DISPLAY: none
}
A {
	COLOR: #b25205; TEXT-DECORATION: none
}
A:hover {
	COLOR: #720205; TEXT-DECORATION: underline
}
H1 {
	MARGIN: 0.5em 3%
}
H2 {
	MARGIN: 0.5em 3%
}
H3 {
	MARGIN: 0.5em 3%
}
H4 {
	MARGIN: 0.5em 3%
}
H5 {
	MARGIN: 0.5em 3%
}
H6 {
	MARGIN: 0.5em 3%
}
P {
	MARGIN: 0.5em 3%
}
LI {
	MARGIN: 0.5em 3%
}
H1 {
	FONT-SIZE: 1.9em
}
H2 {
	FONT-WEIGHT: 600; FONT-SIZE: 1.7em
}
H3 {
	FONT-WEIGHT: 600; FONT-SIZE: 1.6em
}
H4 {
	FONT-WEIGHT: 600; FONT-SIZE: 1.5em
}
H5 {
	FONT-WEIGHT: 600; FONT-SIZE: 1.4em
}
H6 {
	FONT-WEIGHT: 600; FONT-SIZE: 1.2em
}
P {
	FONT-SIZE: 1em
}
UL {
	FONT-SIZE: 0.9em
}
OL {
	FONT-SIZE: 0.9em
}
LI {
	FONT-SIZE: 1em; LINE-HEIGHT: 1.7em
}
STRONG {
	FONT-WEIGHT: 600
}
B {
	FONT-WEIGHT: 600
}
EM {
	FONT-WEIGHT: 600
}
I {
	FONT-WEIGHT: 600
}
BLOCKQUOTE {
	BORDER-RIGHT: #a6acaa 1px dotted; PADDING-RIGHT: 1%; PADDING-LEFT: 1%; =
FONT-SIZE: 1.1em; BACKGROUND: #e6ecca; PADDING-BOTTOM: 1%; MARGIN: 0px =
4%; BORDER-LEFT: #a6acaa 1px dotted; PADDING-TOP: 1%; FONT-STYLE: italic
}
#container {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
auto; WIDTH: 100%; PADDING-TOP: 0px
}
#container-inner {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 520px; PADDING-TOP: 0px
}
#banner-inner {
	WIDTH: 100%; POSITION: relative; TOP: 310px
}
#banner-inner H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 47%; LINE-HEIGHT: 1.2em; PADDING-TOP: 0px; =
LETTER-SPACING: 0.2em
}
#banner-inner H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: 500; FONT-SIZE: =
1.6em; FLOAT: right; PADDING-BOTTOM: 0px; MARGIN: 0px 2% 0px 0px; WIDTH: =
50%; LINE-HEIGHT: 1.2em; PADDING-TOP: 0px; TEXT-ALIGN: right; =
FONT-VARIANT: small-caps
}
#pagebody {
	MARGIN: 40px auto 0px; WIDTH: 90%
}
.module-content {
	FONT-SIZE: 1.1em
}
#alpha {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
BACKGROUND: #ecc884; BORDER-LEFT: #49230e 3px outset; WIDTH: 20%; =
BORDER-BOTTOM: #49230e 3px outset
}
#gamma {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
BACKGROUND: #ecc884; BORDER-LEFT: #49230e 3px outset; WIDTH: 20%; =
BORDER-BOTTOM: #49230e 3px outset
}
#gamma {
	FLOAT: right
}
#beta {
	MARGIN-LEFT: 1%; WIDTH: 57%
}
BODY.layout-three-column #alpha .module-categories H2.module-header {
	BACKGROUND: url(side_photo4.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-two-column-right #beta .module-categories H2.module-header {
	BACKGROUND: url(side_photo4.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-three-column #alpha .module-syndicate {
	BACKGROUND: url(side_photo5.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-two-column-right #beta .module-syndicate {
	BACKGROUND: url(side_photo5.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-three-column #alpha .module-powered {
	BACKGROUND: url(side_photo6.jpg) no-repeat 50% 90%; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 115px
}
BODY.layout-two-column-right #beta .module-powered {
	BACKGROUND: url(side_photo6.jpg) no-repeat 50% 90%; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 115px
}
BODY.layout-three-column #gamma .module-categories H2.module-header {
	BACKGROUND: url(side_photo1.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-two-column-left #alpha .module-categories H2.module-header {
	BACKGROUND: url(side_photo1.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-three-column #gamma .module-syndicate {
	BACKGROUND: url(side_photo2.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-two-column-left #alpha .module-syndicate {
	BACKGROUND: url(side_photo2.jpg) no-repeat center top; PADDING-TOP: =
115px
}
BODY.layout-three-column #gamma .module-powered {
	BACKGROUND: url(side_photo3.jpg) no-repeat 50% 90%; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 115px
}
BODY.layout-two-column-left #alpha .module-powered {
	BACKGROUND: url(side_photo3.jpg) no-repeat 50% 90%; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 115px
}
.module-syndicate A {
	PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; =
PADDING-TOP: 1px
}
H3.entry-header {
	BORDER-RIGHT: #49230e 3px outset; PADDING-RIGHT: 3%; BORDER-TOP: =
#49230e 3px outset; PADDING-LEFT: 3%; BACKGROUND: #ecc884; =
PADDING-BOTTOM: 0.75em; MARGIN: 0px 2% 0.25em 0px; BORDER-LEFT: #49230e =
3px outset; PADDING-TOP: 0.75em; BORDER-BOTTOM: #49230e 3px outset
}
.entry-body {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
FONT-SIZE: 1.2em; BACKGROUND: #e2e8c6; BORDER-LEFT: #49230e 3px outset; =
WIDTH: 97%; BORDER-BOTTOM: #49230e 3px outset
}
.entry IMG {
	BORDER-RIGHT: #49230e 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: =
#49230e 1px solid; PADDING-LEFT: 2px; BACKGROUND: #f7faf7; =
PADDING-BOTTOM: 2px; BORDER-LEFT: #49230e 1px solid; PADDING-TOP: 2px; =
BORDER-BOTTOM: #49230e 1px solid
}
.trackbacks {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
FONT-SIZE: 1.2em; BACKGROUND: #f7faf7; BORDER-LEFT: #49230e 3px outset; =
WIDTH: 97%; BORDER-BOTTOM: #49230e 3px outset
}
.comment-content {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
FONT-SIZE: 1.2em; BACKGROUND: #dad5b5; MARGIN-BOTTOM: 0.75em; =
BORDER-LEFT: #49230e 3px outset; BORDER-BOTTOM: #49230e 3px outset
}
.comments-open-moderated {
	FONT-WEIGHT: 600; FONT-SIZE: 1.6em; WORD-SPACING: 0.25em; COLOR: =
#9c7824
}
.module-search H2 {
	DISPLAY: none
}
INPUT#comment-author {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
OVERFLOW: auto; BORDER-LEFT: #49230e 2px inset; BORDER-BOTTOM: #49230e =
2px inset
}
INPUT#comment-email {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
OVERFLOW: auto; BORDER-LEFT: #49230e 2px inset; BORDER-BOTTOM: #49230e =
2px inset
}
INPUT#comment-url {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
OVERFLOW: auto; BORDER-LEFT: #49230e 2px inset; BORDER-BOTTOM: #49230e =
2px inset
}
TEXTAREA {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
OVERFLOW: auto; BORDER-LEFT: #49230e 2px inset; BORDER-BOTTOM: #49230e =
2px inset
}
.module-search INPUT {
	DISPLAY: none
}
.module-search INPUT#search {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
DISPLAY: block; BORDER-LEFT: #49230e 2px inset; WIDTH: 90%; =
BORDER-BOTTOM: #49230e 2px inset
}
#comments-open-footer INPUT#comment-preview {
	BORDER-RIGHT: #49230e 2px outset; BORDER-TOP: #49230e 2px outset; =
FONT-WEIGHT: 600; BACKGROUND: #dad5b5; BORDER-LEFT: #49230e 2px outset; =
BORDER-BOTTOM: #49230e 2px outset
}
#comments-open-footer INPUT#comment-post {
	BORDER-RIGHT: #49230e 2px outset; BORDER-TOP: #49230e 2px outset; =
FONT-WEIGHT: 600; BACKGROUND: #dad5b5; BORDER-LEFT: #49230e 2px outset; =
BORDER-BOTTOM: #49230e 2px outset
}
#comments-open-footer INPUT#comment-preview:hover {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
FONT-WEIGHT: 600; BACKGROUND: #f7faf7; BORDER-LEFT: #49230e 2px inset; =
CURSOR: pointer; BORDER-BOTTOM: #49230e 2px inset
}
#comments-open-footer INPUT#comment-post:hover {
	BORDER-RIGHT: #49230e 2px inset; BORDER-TOP: #49230e 2px inset; =
FONT-WEIGHT: 600; BACKGROUND: #f7faf7; BORDER-LEFT: #49230e 2px inset; =
CURSOR: pointer; BORDER-BOTTOM: #49230e 2px inset
}
* HTML #comments-open-footer INPUT#comment-preview {
	CURSOR: hand
}
* HTML #comments-open-footer INPUT#comment-post {
	CURSOR: hand
}
H2.date-header {
	FONT-SIZE: 1em; TEXT-ALIGN: right
}
BODY.layout-one-column #alpha {
	BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: 100%; =
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
BODY.layout-one-column #comments-open-footer {
	MARGIN-LEFT: 25px
}
BODY.layout-two-column-left #alpha {
	MARGIN-TOP: 3.5em; WIDTH: 20%
}
BODY.layout-two-column-left #beta {
	FLOAT: right; WIDTH: 77%
}
BODY.layout-two-column-left #comments-open-footer {
	MARGIN-LEFT: 20px
}
BODY.layout-two-column-right #alpha {
	BACKGROUND: none transparent scroll repeat 0% 0%; WIDTH: 77%; =
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
BODY.layout-two-column-right #beta {
	BORDER-RIGHT: #49230e 3px outset; BORDER-TOP: #49230e 3px outset; =
MARGIN-TOP: 3.5em; BACKGROUND: #ecc884; FLOAT: right; BORDER-LEFT: =
#49230e 3px outset; WIDTH: 20%; BORDER-BOTTOM: #49230e 3px outset
}
BODY.layout-two-column-right #comments-open-footer {
	MARGIN-LEFT: 20px
}
#banner {
	MARGIN: 0px auto; WIDTH: 90%; HEIGHT: 300px
}
BODY.layout-one-column #container {
	BACKGROUND: url(bg_banner-3.jpg) no-repeat center top
}
BODY.layout-two-column-left #container {
	BACKGROUND: url(bg_banner-1.jpg) no-repeat center top
}
BODY.layout-two-column-right #container {
	BACKGROUND: url(bg_banner-4.jpg) no-repeat center top
}
BODY.layout-three-column #container {
	BACKGROUND: url(bg_banner-2.jpg) no-repeat center top
}

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://stat.livejournal.com/sixhtml/ljextras.css

.comment .comment-replies {
	MARGIN-LEFT: 30px
}
.comment .comment-header {
	MARGIN-LEFT: 10px; MARGIN-RIGHT: 10px
}
.comment .comment-userpic {
	FLOAT: right; MARGIN: 5px; TEXT-ALIGN: right
}
.entry .entry-userpic {
	FLOAT: right; MARGIN: 5px; TEXT-ALIGN: right
}
.entry-userpic {
	Z-INDEX: 1
}
.comment .comment-content {
	CLEAR: none
}
.entry .entry-content {
	CLEAR: none
}
.entry .entry-body {
	CLEAR: none
}
.comment .comment-content {
	PADDING-TOP: 20px
}
.metadata {
	MARGIN-BOTTOM: 10px
}
.ljtags {
	MARGIN-TOP: 10px; MARGIN-BOTTOM: 10px
}
.poster {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 2px =
0px 0px; PADDING-TOP: 0px; TEXT-ALIGN: center
}
#ad-5linkunit {
	CLEAR: both
}
#ad-leaderboard {
	MARGIN-BOTTOM: 10px
}
#commenttext {
	WIDTH: 90%
}
#subject {
	WIDTH: 90%
}
.entry-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.comment-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
DIV.entry-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
DIV.comment-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
DIV.entry-userpic IMG {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
DIV.comment-userpic IMG {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.layout-two-column-right .entry-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.layout-two-column-right .comment-userpic {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.entry-userpic IMG {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.comment-userpic IMG {
	DISPLAY: inline; LEFT: 0px; VISIBILITY: visible; POSITION: static; TOP: =
0px
}
.ljuser IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; WIDTH: auto; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: auto; =
BORDER-BOTTOM-STYLE: none
}
BODY.layout-three-column #beta IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
BODY.layout-two-column-left #beta IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
BODY.layout-one-column #alpha IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
BODY.layout-two-column-right #alpha IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.livejournal.com/js/??core.js,dom.js,httpreq.js,livejournal.js,common/AdEngine.js,esn.js,ippu.js,lj_ippu.js,hourglass.js,contextualhover.js,x_core.js,quickreply.js,browserdetect.js,thread_expander.js,commentmanage.js,snapshots.js,livejournal-local.js?v=1197496718

/*=0A=
Core JavaScript Library=0A=
$Id: core.js 232 2007-10-01 20:32:42Z whitaker $=0A=
=0A=
Copyright (c) 2005, Six Apart, Ltd.=0A=
All rights reserved.=0A=
=0A=
Redistribution and use in source and binary forms, with or without=0A=
modification, are permitted provided that the following conditions are=0A=
met:=0A=
=0A=
    * Redistributions of source code must retain the above copyright=0A=
notice, this list of conditions and the following disclaimer.=0A=
=0A=
    * Redistributions in binary form must reproduce the above=0A=
copyright notice, this list of conditions and the following disclaimer=0A=
in the documentation and/or other materials provided with the=0A=
distribution.=0A=
=0A=
    * Neither the name of "Six Apart" nor the names of its=0A=
contributors may be used to endorse or promote products derived from=0A=
this software without specific prior written permission.=0A=
=0A=
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS=0A=
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT=0A=
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR=0A=
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT=0A=
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,=0A=
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT=0A=
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,=0A=
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY=0A=
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT=0A=
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=0A=
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.=0A=
=0A=
*/=0A=
=0A=
/* stubs */=0A=
=0A=
log =3D function() {};=0A=
log.error =3D log.warn =3D log.debug =3D log;=0A=
=0A=
=0A=
/* utility functions */=0A=
=0A=
defined =3D function( x ) {=0A=
    return x =3D=3D=3D undefined ? false : true;=0A=
}=0A=
=0A=
=0A=
/**=0A=
 * Utility method.=0A=
 * @param x <code>any</code> Any JavaScript value, including =
<code>undefined</code>.=0A=
 * @return boolean <code>true</code> if the value is not =
<code>null</code> and is not <code>undefined</code>.=0A=
 */=0A=
exists =3D function( x ) {=0A=
   return (x =3D=3D=3D undefined || x =3D=3D=3D null) ? false : true;=0A=
}=0A=
=0A=
=0A=
finite =3D function( x ) {=0A=
    return isFinite( x ) ? x : 0;=0A=
}=0A=
=0A=
=0A=
finiteInt =3D function( x, base ) {=0A=
    return finite( parseInt( x, base ) );=0A=
}=0A=
=0A=
=0A=
finiteFloat =3D function( x ) {=0A=
    return finite( parseFloat( x ) );=0A=
}=0A=
=0A=
=0A=
max =3D function() {=0A=
    var a =3D arguments;=0A=
    var n =3D a[ 0 ];=0A=
    for( var i =3D 1; i < a.length; i++ )=0A=
        if( a[ i ] > n )=0A=
            n =3D a[ i ];=0A=
    return n;=0A=
}=0A=
=0A=
=0A=
min =3D function() {=0A=
    var a =3D arguments;=0A=
    var n =3D a[ 0 ];=0A=
    for( var i =3D 1; i < a.length; i++ )=0A=
        if( a[ i ] < n )=0A=
            n =3D a[ i ];=0A=
    return n;=0A=
}=0A=
=0A=
=0A=
/* try block */  =0A=
 =0A=
Try =3D {=0A=
    these: function() {=0A=
        for( var i =3D 0; i < arguments.length; i++ ) {=0A=
            try {=0A=
                return arguments[ i ]();=0A=
            } catch( e ) {}=0A=
        }=0A=
        return undefined;=0A=
    }=0A=
}=0A=
=0A=
=0A=
/* unique id generator */=0A=
=0A=
Unique =3D {=0A=
    length: 0,=0A=
    =0A=
    id: function() {=0A=
        return ++this.length;=0A=
    }=0A=
}=0A=
=0A=
=0A=
/* event methods */=0A=
=0A=
if( !defined( window.Event ) )=0A=
    Event =3D {};=0A=
=0A=
=0A=
Event.stop =3D function( event ) {=0A=
    event =3D event || this;=0A=
    if( event =3D=3D=3D Event )=0A=
        event =3D window.event;=0A=
=0A=
    // w3c=0A=
    if( event.preventDefault )=0A=
        event.preventDefault();=0A=
    if( event.stopPropagation )=0A=
        event.stopPropagation();=0A=
=0A=
    // ie=0A=
    try {=0A=
        event.cancelBubble =3D true;=0A=
        event.returnValue =3D false;=0A=
    } catch( e ) {}=0A=
=0A=
    return false;=0A=
}=0A=
=0A=
=0A=
Event.prep =3D function( event ) {=0A=
    event =3D event || window.event;=0A=
    if( !defined( event.stop ) )=0A=
        event.stop =3D this.stop;=0A=
    if( !defined( event.target ) )=0A=
        event.target =3D event.srcElement;=0A=
    if( !defined( event.relatedTarget ) ) =0A=
        event.relatedTarget =3D event.toElement;=0A=
    return event;=0A=
}=0A=
=0A=
=0A=
try { Event.prototype.stop =3D Event.stop; }=0A=
catch( e ) {}=0A=
=0A=
=0A=
/* object extensions */=0A=
=0A=
Function.stub =3D function() {};=0A=
=0A=
=0A=
if( !Object.prototype.hasOwnProperty ) {=0A=
    Object.prototype.hasOwnProperty =3D function( p ) {=0A=
        if( !(p in this) )=0A=
            return false;=0A=
        try {=0A=
            var pr =3D this.constructor.prototype;=0A=
            while( pr ) {=0A=
                if( pr[ p ] =3D=3D=3D this[ p ] )=0A=
                    return false;=0A=
                if( pr =3D=3D=3D pr.constructor.prototype )=0A=
                    break;=0A=
                pr =3D pr.constructor.prototype;=0A=
            }=0A=
        } catch( e ) {}=0A=
        return true;=0A=
    }=0A=
}=0A=
=0A=
=0A=
Object.prototype.extend =3D function() {=0A=
    var a =3D arguments;=0A=
    for( var i =3D 0; i < a.length; i++ ) {=0A=
        var o =3D a[ i ];=0A=
        for( var p in o ) {=0A=
            try {=0A=
                if( !this[ p ] &&=0A=
                    (!o.hasOwnProperty || o.hasOwnProperty( p )) )=0A=
                    this[ p ] =3D o[ p ];=0A=
            } catch( e ) {}=0A=
        }=0A=
    }=0A=
    return this;=0A=
}=0A=
=0A=
=0A=
Object.prototype.override =3D function() {=0A=
    var a =3D arguments;=0A=
    for( var i =3D 0; i < a.length; i++ ) {=0A=
        var o =3D a[ i ];=0A=
        for( var p in o ) {=0A=
            try {=0A=
                if( !o.hasOwnProperty || o.hasOwnProperty( p ) )=0A=
                    this[ p ] =3D o[ p ];=0A=
            } catch( e ) {}=0A=
        }=0A=
    }=0A=
    return this;=0A=
}=0A=
=0A=
=0A=
Object.prototype.extend( {=0A=
    init: Function.stub,=0A=
    destroy: Function.stub=0A=
} );=0A=
=0A=
=0A=
=0A=
/* function extensions */=0A=
=0A=
Function.prototype.extend( {=0A=
    bind: function( object ) {=0A=
        var method =3D this;=0A=
        return function() {=0A=
            return method.apply( object, arguments );=0A=
        };=0A=
    },=0A=
    =0A=
    =0A=
    bindEventListener: function( object ) {=0A=
        var method =3D this; // Use double closure to work around IE 6 =
memory leak.=0A=
        return function( event ) {=0A=
            try {=0A=
                event =3D Event.prep( event );=0A=
            } catch( e ) {}=0A=
            return method.call( object, event );=0A=
        };=0A=
    }=0A=
} );=0A=
=0A=
=0A=
/* class helpers */=0A=
=0A=
indirectObjects =3D [];=0A=
=0A=
=0A=
Class =3D function( superClass ) {=0A=
=0A=
    // Set the constructor:=0A=
    var constructor =3D function() {=0A=
        if( arguments.length )=0A=
            this.init.apply( this, arguments );=0A=
    };    =0A=
    //   -- Accomplish static-inheritance:=0A=
    constructor.override( Class );  // inherit static methods from Class=0A=
    superClass =3D superClass || Object; =0A=
    constructor.override( superClass ); // inherit static methods from =
the superClass =0A=
    constructor.superClass =3D superClass.prototype;=0A=
    =0A=
    // Set the constructor's prototype (accomplish object-inheritance):=0A=
    constructor.prototype =3D new superClass();=0A=
    constructor.prototype.constructor =3D constructor; // rev. 0.7    =0A=
    //   -- extend prototype with Class instance methods=0A=
    constructor.prototype.extend( Class.prototype );    =0A=
    //   -- override prototype with interface methods=0A=
    for( var i =3D 1; i < arguments.length; i++ )=0A=
        constructor.prototype.override( arguments[ i ] );=0A=
    =0A=
    return constructor;=0A=
}=0A=
=0A=
=0A=
Class.extend( {=0A=
    initSingleton: function() {=0A=
        if( this.singleton )=0A=
            return this.singleton;=0A=
        this.singleton =3D this.singletonConstructor=0A=
            ? new this.singletonConstructor()=0A=
            : new this();=0A=
        this.singleton.init.apply( this.singleton, arguments );=0A=
        return this.singleton;=0A=
    }=0A=
} );=0A=
=0A=
=0A=
Class.prototype =3D {=0A=
    destroy: function() {=0A=
        try {=0A=
            if( this.indirectIndex )=0A=
                indirectObjects[ this.indirectIndex ] =3D undefined;=0A=
            delete this.indirectIndex;=0A=
        } catch( e ) {}=0A=
        =0A=
        for( var property in this ) {=0A=
            try {=0A=
                if( this.hasOwnProperty( property ) )=0A=
                    delete this[ property ];=0A=
            } catch( e ) {}=0A=
        }=0A=
    },=0A=
    =0A=
    =0A=
    getBoundMethod: function( methodName ) {=0A=
        return this[ name ].bind( this );=0A=
    },=0A=
    =0A=
    =0A=
    getEventListener: function( methodName ) {=0A=
        return this[ methodName ].bindEventListener( this );=0A=
    },=0A=
    =0A=
    =0A=
    getIndirectIndex: function() {=0A=
        if( !defined( this.indirectIndex ) ) {=0A=
            this.indirectIndex =3D indirectObjects.length;=0A=
            indirectObjects.push( this );=0A=
        }=0A=
        return this.indirectIndex;=0A=
    },=0A=
    =0A=
    =0A=
    getIndirectMethod: function( methodName ) {=0A=
        if( !this.indirectMethods )=0A=
            this.indirectMethods =3D {};=0A=
        var method =3D this[ methodName ];=0A=
        if( typeof method !=3D "function" )=0A=
            return undefined;=0A=
        var indirectIndex =3D this.getIndirectIndex();=0A=
        if( !this.indirectMethods[ methodName ] ) {=0A=
            this.indirectMethods[ methodName ] =3D new Function(=0A=
                "var o =3D indirectObjects[" + indirectIndex + "];" +=0A=
                "return o." + methodName + ".apply( o, arguments );"=0A=
            );=0A=
        }=0A=
        return this.indirectMethods[ methodName ];=0A=
    },=0A=
    =0A=
    =0A=
    getIndirectEventListener: function( methodName ) {=0A=
        if( !this.indirectEventListeners )=0A=
            this.indirectEventListeners =3D {};=0A=
        var method =3D this[ methodName ];=0A=
        if( typeof method !=3D "function" )=0A=
            return undefined;=0A=
        var indirectIndex =3D this.getIndirectIndex();=0A=
        if( !this.indirectEventListeners[ methodName ] ) {=0A=
            this.indirectEventListeners[ methodName ] =3D new Function( =
"event",=0A=
                "try { event =3D Event.prep( event ); } catch( e ) {}" +=0A=
                "var o =3D indirectObjects[" + indirectIndex + "];" +=0A=
                "return o." + methodName + ".call( o, event );"=0A=
            );=0A=
        }=0A=
        return this.indirectEventListeners[ methodName ];=0A=
    }=0A=
}=0A=
=0A=
=0A=
/* string extensions */=0A=
=0A=
String.extend( {=0A=
    escapeJSChar: function( c ) {=0A=
        // try simple escaping=0A=
        switch( c ) {=0A=
            case "\\": return "\\\\";=0A=
            case "\"": return "\\\"";=0A=
            case "'":  return "\\'";=0A=
            case "\b": return "\\b";=0A=
            case "\f": return "\\f";=0A=
            case "\n": return "\\n";=0A=
            case "\r": return "\\r";=0A=
            case "\t": return "\\t";=0A=
        }=0A=
        =0A=
        // return raw bytes now ... should be UTF-8=0A=
        if( c >=3D " " )=0A=
            return c;=0A=
        =0A=
        // try \uXXXX escaping, but shouldn't make it for case 1, 2=0A=
        c =3D c.charCodeAt( 0 ).toString( 16 );=0A=
        switch( c.length ) {=0A=
            case 1: return "\\u000" + c;=0A=
            case 2: return "\\u00" + c;=0A=
            case 3: return "\\u0" + c;=0A=
            case 4: return "\\u" + c;=0A=
        }=0A=
        =0A=
        // should never make it here=0A=
        return "";=0A=
    },=0A=
    =0A=
    =0A=
    encodeEntity: function( c ) {=0A=
        switch( c ) {=0A=
            case "<": return "&lt;";=0A=
            case ">": return "&gt;";=0A=
            case "&": return "&amp;";=0A=
            case '"': return "&quot;";=0A=
            case "'": return "&apos;";=0A=
        }=0A=
        return c;=0A=
    },=0A=
=0A=
=0A=
    decodeEntity: function( c ) {=0A=
        switch( c ) {=0A=
            case "amp": return "&";=0A=
            case "quot": return '"';=0A=
            case "gt": return ">";=0A=
            case "lt": return "<";=0A=
        }=0A=
        var m =3D c.match( /^#(\d+)$/ );=0A=
        if( m && defined( m[ 1 ] ) )=0A=
            return String.fromCharCode( m[ 1 ] );=0A=
        m =3D c.match( /^#x([0-9a-f]+)$/i );=0A=
        if(  m && defined( m[ 1 ] ) )=0A=
            return String.fromCharCode( parseInt( hex, m[ 1 ] ) );=0A=
        return c;=0A=
    }=0A=
} );=0A=
=0A=
=0A=
String.prototype.extend( {=0A=
    escapeJS: function() {=0A=
        return this.replace( /([^ -!#-\[\]-~])/g, function( m, c ) { =
return String.escapeJSChar( c ); } )=0A=
    },=0A=
    =0A=
    =0A=
    escapeJS2: function() {=0A=
        return this.replace( /([\u0000-\u0031'"\\])/g, function( m, c ) =
{ return String.escapeJSChar( c ); } )=0A=
    },=0A=
    =0A=
    =0A=
    escapeJS3: function() {=0A=
        return this.replace( /[\u0000-\u0031'"\\]/g, function( m ) { =
return String.escapeJSChar( m ); } )=0A=
    },=0A=
    =0A=
    =0A=
    escapeJS4: function() {=0A=
        return this.replace( /./g, function( m ) { return =
String.escapeJSChar( m ); } )=0A=
    },=0A=
    =0A=
    =0A=
    encodeHTML: function() {=0A=
        return this.replace( /([<>&"])/g, function( m, c ) { return =
String.encodeEntity( c ) } );=0A=
    },=0A=
=0A=
=0A=
    decodeHTML: function() {=0A=
        return this.replace( /&(.*?);/g, function( m, c ) { return =
String.decodeEntity( c ) } );=0A=
    },=0A=
    =0A=
    =0A=
    cssToJS: function() {=0A=
        return this.replace( /-([a-z])/g, function( m, c ) { return =
c.toUpperCase() } );=0A=
    },=0A=
    =0A=
    =0A=
    jsToCSS: function() {=0A=
        return this.replace( /([A-Z])/g, function( m, c ) { return "-" + =
c.toLowerCase() } );=0A=
    },=0A=
    =0A=
    =0A=
    firstToLowerCase: function() {=0A=
        return this.replace( /^(.)/, function( m, c ) { return =
c.toLowerCase() } );=0A=
    },=0A=
    =0A=
        =0A=
    rgbToHex: function() {=0A=
        var c =3D this.match( /(\d+)\D+(\d+)\D+(\d+)/ );=0A=
        if( !c )=0A=
            return undefined;=0A=
        return "#" +=0A=
            finiteInt( c[ 1 ] ).toString( 16 ).pad( 2, "0" ) +=0A=
            finiteInt( c[ 2 ] ).toString( 16 ).pad( 2, "0" ) +=0A=
            finiteInt( c[ 3 ] ).toString( 16 ).pad( 2, "0" );=0A=
    },=0A=
    =0A=
    =0A=
    pad: function( length, padChar ) {=0A=
        var padding =3D length - this.length;=0A=
        if( padding <=3D 0 )=0A=
            return this;=0A=
        if( !defined( padChar ) )=0A=
            padChar =3D " ";=0A=
        var out =3D [];=0A=
        for( var i =3D 0; i < padding; i++ )=0A=
            out.push( padChar );=0A=
        out.push( this );=0A=
        return out.join( "" );=0A=
    },=0A=
=0A=
=0A=
    trim: function() {=0A=
        return this.replace( /^\s+|\s+$/g, "" );=0A=
    }=0A=
=0A=
} );=0A=
=0A=
=0A=
/* extend array object */=0A=
=0A=
Array.extend( { =0A=
    fromPseudo: function ( args ) {=0A=
        var out =3D [];=0A=
        for ( var i =3D 0; i < args.length; i++ )=0A=
            out.push( args[ i ] );=0A=
        return out;=0A=
    }=0A=
});=0A=
=0A=
=0A=
/* extend array object */=0A=
=0A=
Array.prototype.extend( {=0A=
    copy: function() {=0A=
        var out =3D [];=0A=
        for( var i =3D 0; i < this.length; i++ )=0A=
            out[ i ] =3D this[ i ];=0A=
        return out;=0A=
    },=0A=
=0A=
=0A=
    first: function( callback, object ) {=0A=
        var length =3D this.length;=0A=
        for( var i =3D 0; i < length; i++ ) {=0A=
            var result =3D object=0A=
                ? callback.call( object, this[ i ], i, this )=0A=
                : callback( this[ i ], i, this );=0A=
            if( result )=0A=
                return this[ i ];=0A=
        }=0A=
        return null;=0A=
    },=0A=
=0A=
=0A=
    fitIndex: function( fromIndex, defaultIndex ) {=0A=
        if( !defined( fromIndex ) || fromIndex =3D=3D null )=0A=
            fromIndex =3D defaultIndex;=0A=
        else if( fromIndex < 0 ) {=0A=
            fromIndex =3D this.length + fromIndex;=0A=
            if( fromIndex < 0 )=0A=
                fromIndex =3D 0;=0A=
        } else if( fromIndex >=3D this.length )=0A=
            fromIndex =3D this.length - 1;=0A=
        return fromIndex;=0A=
    },=0A=
=0A=
=0A=
    scramble: function() {=0A=
        for( var i =3D 0; i < this.length; i++ ) {=0A=
            var j =3D Math.floor( Math.random() * this.length );=0A=
            var temp =3D this[ i ];=0A=
            this[ i ] =3D this[ j ];=0A=
            this[ j ] =3D temp;=0A=
        }=0A=
    },=0A=
    =0A=
    =0A=
    add: function() {=0A=
        var a =3D arguments;=0A=
        for( var i =3D 0; i < a.length; i++ ) {=0A=
            var index =3D this.indexOf( a[ i ] );=0A=
            if( index < 0 ) =0A=
                this.push( arguments[ i ] );=0A=
        }=0A=
        return this.length;=0A=
    },=0A=
        =0A=
    =0A=
    remove: function() {=0A=
        var a =3D arguments;=0A=
        for( var i =3D 0; i < a.length; i++ ) {=0A=
            var j =3D this.indexOf( a[ i ] );=0A=
            if( j >=3D 0 )=0A=
                this.splice( j, 1 );=0A=
        }=0A=
        return this.length;=0A=
    },=0A=
=0A=
=0A=
    /* javascript 1.5 array methods */=0A=
    /* =
http://developer-test.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:O=
bjects:Array#Methods */=0A=
=0A=
    every: function( callback, object ) {=0A=
        var length =3D this.length;=0A=
        for( var i =3D 0; i < length; i++ ) {=0A=
            var result =3D object=0A=
                ? callback.call( object, this[ i ], i, this )=0A=
                : callback( this[ i ], i, this );=0A=
            if( !result )=0A=
                return false;=0A=
        }=0A=
        return true;=0A=
    },=0A=
=0A=
=0A=
    filter: function( callback, object ) {=0A=
        var out =3D [];=0A=
        var length =3D this.length;=0A=
        for( var i =3D 0; i < length; i++ ) {=0A=
            var result =3D object=0A=
                ? callback.call( object, this[ i ], i, this )=0A=
                : callback( this[ i ], i, this );=0A=
            if( result )=0A=
                out.push( this[ i ] );=0A=
        }=0A=
        return out;=0A=
    },=0A=
    =0A=
    =0A=
    forEach: function( callback, object ) {=0A=
        var length =3D this.length;=0A=
        for( var i =3D 0; i < length; i++ ) {=0A=
            object=0A=
                ? callback.call( object, this[ i ], i, this )=0A=
                : callback( this[ i ], i, this );=0A=
        }=0A=
    },=0A=
    =0A=
    =0A=
    indexOf: function( value, fromIndex ) {=0A=
        fromIndex =3D this.fitIndex( fromIndex, 0 );=0A=
        for( var i =3D 0; i < this.length; i++ ) {=0A=
            if( this[ i ] =3D=3D=3D value )=0A=
                return i; =0A=
        }=0A=
        return -1;=0A=
    },=0A=
=0A=
=0A=
    lastIndexOf: function( value, fromIndex ) {=0A=
        fromIndex =3D this.fitIndex( fromIndex, this.length - 1 );=0A=
        for( var i =3D fromIndex; i >=3D 0; i-- ) {=0A=
            if( this[ i ] =3D=3D value )=0A=
                return i;=0A=
        }=0A=
        return -1;=0A=
    },=0A=
=0A=
=0A=
    some: function( callback, object ) {=0A=
        var length =3D this.length;=0A=
        for( var i =3D 0; i < length; i++ ) {=0A=
            var result =3D object=0A=
                ? callback.call( object, this[ i ], i, this )=0A=
                : callback( this[ i ], i, this );=0A=
            if( result )=0A=
                return true;=0A=
        }=0A=
        return false;=0A=
    },=0A=
=0A=
=0A=
    /* javascript 1.2 array methods */=0A=
=0A=
    concat: function() {=0A=
        var a =3D arguments;=0A=
        var out =3D this.copy();=0A=
        for( i =3D 0; i < a.length; i++ ) {=0A=
            var b =3D a[ i ];=0A=
            for( j =3D 0; j < b.length; j++ )=0A=
                out.push( b[ j ] );=0A=
        }=0A=
        return out;=0A=
    },=0A=
    =0A=
=0A=
    push: function() {=0A=
        var a =3D arguments;=0A=
        for( var i =3D 0; i < a.length; i++ )=0A=
            this[ this.length ] =3D a[ i ];=0A=
        return this.length;     =0A=
    },=0A=
=0A=
=0A=
    pop: function() {=0A=
        if( this.length =3D=3D 0 )=0A=
            return undefined;=0A=
        var out =3D this[ this.length - 1 ];=0A=
        this.length--;=0A=
        return out;=0A=
    },=0A=
    =0A=
    =0A=
    unshift: function() {=0A=
        var a =3D arguments;=0A=
        for( var i =3D 0; i < a.length; i++ ) {=0A=
            this[ i + a.length ] =3D this[ i ];=0A=
            this[ i ] =3D a[ i ];=0A=
        }=0A=
        return this.length;     =0A=
    },=0A=
    =0A=
    =0A=
    shift: function() {=0A=
        if( this.length =3D=3D 0 )=0A=
            return undefined;=0A=
        var out =3D this[ 0 ];=0A=
        for( var i =3D 1; i < this.length; i++ )=0A=
            this[ i - 1 ] =3D this[ i ];=0A=
        this.length--;=0A=
        return out;=0A=
    }=0A=
} );=0A=
=0A=
=0A=
/* date extensions */=0A=
=0A=
Date.extend( {=0A=
    /*  iso 8601 date format parser=0A=
        this was fun to write...=0A=
        thanks to: http://www.cl.cam.ac.uk/~mgk25/iso-time.html */=0A=
=0A=
    matchISOString: new RegExp(=0A=
        "^([0-9]{4})" +                                                  =
   // year=0A=
        "(?:-(?=3D0[1-9]|1[0-2])|$)(..)?" +                              =
     // month=0A=
        "(?:-(?=3D0[1-9]|[12][0-9]|3[01])|$)([0-9]{2})?" +               =
     // day of the month=0A=
        "(?:T(?=3D[01][0-9]|2[0-4])|$)T?([0-9]{2})?" +                   =
     // hours=0A=
        "(?::(?=3D[0-5][0-9])|\\+|-|Z|$)([0-9]{2})?" +                   =
     // minutes=0A=
        =
"(?::(?=3D[0-5][0-9]|60$|60[+|-|Z]|60.0+)|\\+|-|Z|$):?([0-9]{2})?" +  // =
seconds=0A=
        "(\.[0-9]+)?" +                                                  =
   // fractional seconds=0A=
        "(Z|\\+[01][0-9]|\\+2[0-4]|-[01][0-9]|-2[0-4])?" +               =
   // timezone hours=0A=
        ":?([0-5][0-9]|60)?$"                                            =
   // timezone minutes=0A=
    ),=0A=
    =0A=
    =0A=
    fromISOString: function( string ) {=0A=
        var t =3D this.matchISOString.exec( string );=0A=
        if( !t )=0A=
            return undefined;=0A=
=0A=
        var year =3D finiteInt( t[ 1 ], 10 );=0A=
        var month =3D finiteInt( t[ 2 ], 10 ) - 1;=0A=
        var day =3D finiteInt( t[ 3 ], 10 );=0A=
        var hours =3D finiteInt( t[ 4 ], 10 );=0A=
        var minutes =3D finiteInt( t[ 5 ], 10 );=0A=
        var seconds =3D finiteInt( t[ 6 ], 10 );=0A=
        var milliseconds =3D finiteInt( Math.round( parseFloat( t[ 7 ] ) =
* 1000 ) );=0A=
        var tzHours =3D finiteInt( t[ 8 ], 10 );=0A=
        var tzMinutes =3D finiteInt( t[ 9 ], 10 );=0A=
=0A=
        var date =3D new this( 0 );=0A=
        if( defined( t[ 8 ] ) ) {=0A=
            date.setUTCFullYear( year, month, day );=0A=
            date.setUTCHours( hours, minutes, seconds, milliseconds );=0A=
            var offset =3D (tzHours * 60 + tzMinutes) * 60000;=0A=
            if( offset )=0A=
                date =3D new this( date - offset );=0A=
        } else {=0A=
            date.setFullYear( year, month, day );=0A=
            date.setHours( hours, minutes, seconds, milliseconds );=0A=
        }=0A=
=0A=
        return date;=0A=
    }=0A=
} );=0A=
=0A=
=0A=
Date.prototype.extend( {=0A=
    getISOTimezoneOffset: function() {=0A=
        var offset =3D -this.getTimezoneOffset();=0A=
        var negative =3D false;=0A=
        if( offset < 0 ) {=0A=
            negative =3D true;=0A=
            offset *=3D -1;=0A=
        }=0A=
        var offsetHours =3D Math.floor( offset / 60 ).toString().pad( 2, =
"0" );=0A=
        var offsetMinutes =3D Math.floor( offset % 60 ).toString().pad( =
2, "0" );=0A=
        return (negative ? "-" : "+") + offsetHours + ":" + =
offsetMinutes;=0A=
    },=0A=
=0A=
=0A=
    toISODateString: function() {=0A=
        var year =3D this.getFullYear();=0A=
        var month =3D (this.getMonth() + 1).toString().pad( 2, "0" );=0A=
        var day =3D this.getDate().toString().pad( 2, "0" );=0A=
        return year + "-" + month + "-" + day;=0A=
    },=0A=
=0A=
=0A=
    toUTCISODateString: function() {=0A=
        var year =3D this.getUTCFullYear();=0A=
        var month =3D (this.getUTCMonth() + 1).toString().pad( 2, "0" );=0A=
        var day =3D this.getUTCDate().toString().pad( 2, "0" );=0A=
        return year + "-" + month + "-" + day;=0A=
    },=0A=
=0A=
=0A=
    toISOTimeString: function() {=0A=
        var hours =3D this.getHours().toString().pad( 2, "0" );=0A=
        var minutes =3D this.getMinutes().toString().pad( 2, "0" );=0A=
        var seconds =3D this.getSeconds().toString().pad( 2, "0" );=0A=
        var milliseconds =3D this.getMilliseconds().toString().pad( 3, =
"0" );=0A=
        var timezone =3D this.getISOTimezoneOffset();=0A=
        return hours + ":" + minutes + ":" + seconds + "." + =
milliseconds + timezone;=0A=
    },=0A=
=0A=
=0A=
    toUTCISOTimeString: function() {=0A=
        var hours =3D this.getUTCHours().toString().pad( 2, "0" );=0A=
        var minutes =3D this.getUTCMinutes().toString().pad( 2, "0" );=0A=
        var seconds =3D this.getUTCSeconds().toString().pad( 2, "0" );=0A=
        var milliseconds =3D this.getUTCMilliseconds().toString().pad( =
3, "0" );=0A=
        return hours + ":" + minutes + ":" + seconds + "." + =
milliseconds + "Z";=0A=
    },=0A=
=0A=
=0A=
    toISOString: function() {=0A=
        return this.toISODateString() + "T" + this.toISOTimeString();=0A=
    },=0A=
=0A=
=0A=
    toUTCISOString: function() {=0A=
        return this.toUTCISODateString() + "T" + =
this.toUTCISOTimeString();=0A=
    }=0A=
} );=0A=
=0A=
=0A=
/* ajax */=0A=
=0A=
if( !defined( window.XMLHttpRequest ) ) {=0A=
    window.XMLHttpRequest =3D function() {=0A=
        var types =3D [=0A=
            "Microsoft.XMLHTTP",=0A=
            "MSXML2.XMLHTTP.5.0",=0A=
            "MSXML2.XMLHTTP.4.0",=0A=
            "MSXML2.XMLHTTP.3.0",=0A=
            "MSXML2.XMLHTTP"=0A=
        ];=0A=
        =0A=
        for( var i =3D 0; i < types.length; i++ ) {=0A=
            try {=0A=
                return new ActiveXObject( types[ i ] );=0A=
            } catch( e ) {}=0A=
        }=0A=
        =0A=
        return undefined;=0A=
    }=0A=
}=0A=
/*=0A=
DOM Library - Copyright 2005 Six Apart=0A=
$Id: dom.js 245 2007-11-14 20:27:18Z henrylyne $=0A=
=0A=
Copyright (c) 2005, Six Apart, Ltd.=0A=
All rights reserved.=0A=
=0A=
Redistribution and use in source and binary forms, with or without=0A=
modification, are permitted provided that the following conditions are=0A=
met:=0A=
=0A=
    * Redistributions of source code must retain the above copyright=0A=
notice, this list of conditions and the following disclaimer.=0A=
=0A=
    * Redistributions in binary form must reproduce the above=0A=
copyright notice, this list of conditions and the following disclaimer=0A=
in the documentation and/or other materials provided with the=0A=
distribution.=0A=
=0A=
    * Neither the name of "Six Apart" nor the names of its=0A=
contributors may be used to endorse or promote products derived from=0A=
this software without specific prior written permission.=0A=
=0A=
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS=0A=
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT=0A=
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR=0A=
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT=0A=
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,=0A=
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT=0A=
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,=0A=
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY=0A=
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT=0A=
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=0A=
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.=0A=
=0A=
*/=0A=
=0A=
=0A=
/* Node class */=0A=
=0A=
if( !defined( window.Node ) )=0A=
    Node =3D {};=0A=
=0A=
try {=0A=
    Node.extend( {=0A=
        ELEMENT_NODE: 1,=0A=
        ATTRIBUTE_NODE: 2,=0A=
        TEXT_NODE: 3,=0A=
        CDATA_SECTION_NODE: 4,  =0A=
        COMMENT_NODE: 8,    =0A=
        DOCUMENT_NODE: 9,=0A=
        DOCUMENT_FRAGMENT_NODE: 11=0A=
    } );=0A=
} catch( e ) {}=0A=
=0A=
=0A=
/* DOM class */=0A=
=0A=
if( !defined( window.DOM ) )=0A=
    DOM =3D {};=0A=
=0A=
=0A=
DOM.extend( {=0A=
    getElement: function( e ) {=0A=
        return (typeof e =3D=3D "string" || typeof e =3D=3D "number") ? =
document.getElementById( e ) : e;=0A=
    },=0A=
=0A=
=0A=
    addEventListener: function( e, eventName, func, useCapture ) {=0A=
        try {=0A=
            if( e.addEventListener )=0A=
                e.addEventListener( eventName, func, useCapture );=0A=
            else if( e.attachEvent )=0A=
                e.attachEvent( "on" + eventName, func );=0A=
            else=0A=
                e[ "on" + eventName ] =3D func;=0A=
        } catch( e ) {}=0A=
    },=0A=
=0A=
=0A=
    removeEventListener: function( e, eventName, func, useCapture ) {=0A=
        try {=0A=
            if( e.removeEventListener )=0A=
                e.removeEventListener( eventName, func, useCapture );=0A=
            else if( e.detachEvent )=0A=
                e.detachEvent( "on" + eventName, func );=0A=
            else=0A=
                e[ "on" + eventName ] =3D undefined;=0A=
        } catch( e ) {}=0A=
    },=0A=
    =0A=
    =0A=
    focus: function( e ) {=0A=
        try {=0A=
            e =3D DOM.getElement( e );=0A=
            e.focus();=0A=
        } catch( e ) {}=0A=
    },=0A=
=0A=
=0A=
    blur: function( e ) {=0A=
        try {=0A=
            e =3D DOM.getElement( e );=0A=
            e.blur();=0A=
        } catch( e ) {}=0A=
    },=0A=
    =0A=
=0A=
    /* style */=0A=
    =0A=
    getComputedStyle: function( e ) {=0A=
        if( e.currentStyle )=0A=
            return e.currentStyle;=0A=
        var style =3D {};=0A=
        var owner =3D DOM.getOwnerDocument( e );=0A=
        if( owner && owner.defaultView && =
owner.defaultView.getComputedStyle ) {            =0A=
            try {=0A=
                style =3D owner.defaultView.getComputedStyle( e, null );=0A=
            } catch( e ) {}=0A=
        }=0A=
        return style;=0A=
    },=0A=
=0A=
=0A=
    getStyle: function( e, p ) {=0A=
        var s =3D DOM.getComputedStyle( e );=0A=
        return s[ p ];=0A=
    },=0A=
=0A=
=0A=
    // given a window (or defaulting to current window), returns=0A=
    // object with .x and .y of client's usable area=0A=
    getClientDimensions: function( w ) {=0A=
        if( !w )=0A=
            w =3D window;=0A=
=0A=
        var d =3D {};=0A=
=0A=
        // most browsers=0A=
        if( w.innerHeight ) {=0A=
            d.x =3D w.innerWidth;=0A=
            d.y =3D w.innerHeight;=0A=
            return d;=0A=
        }=0A=
=0A=
        // IE6, strict=0A=
        var de =3D w.document.documentElement;=0A=
        if( de && de.clientHeight ) {=0A=
            d.x =3D de.clientWidth;=0A=
            d.y =3D de.clientHeight;=0A=
            return d;=0A=
        }=0A=
=0A=
        // IE, misc=0A=
        if( document.body ) {=0A=
            d.x =3D document.body.clientWidth;=0A=
            d.y =3D document.body.clientHeight;=0A=
            return d;=0A=
        }=0A=
        =0A=
        return undefined;=0A=
    },=0A=
=0A=
=0A=
    getDimensions: function( e ) {=0A=
        if( !e )=0A=
            return undefined;=0A=
=0A=
        var style =3D DOM.getComputedStyle( e );=0A=
=0A=
        return {=0A=
            offsetLeft: e.offsetLeft,=0A=
            offsetTop: e.offsetTop,=0A=
            offsetWidth: e.offsetWidth,=0A=
            offsetHeight: e.offsetHeight,=0A=
            clientWidth: e.clientWidth,=0A=
            clientHeight: e.clientHeight,=0A=
            =0A=
            offsetRight: e.offsetLeft + e.offsetWidth,=0A=
            offsetBottom: e.offsetTop + e.offsetHeight,=0A=
            clientLeft: finiteInt( style.borderLeftWidth ) + finiteInt( =
style.paddingLeft ),=0A=
            clientTop: finiteInt( style.borderTopWidth ) + finiteInt( =
style.paddingTop ),=0A=
            clientRight: e.clientLeft + e.clientWidth,=0A=
            clientBottom: e.clientTop + e.clientHeight=0A=
        };=0A=
    },=0A=
=0A=
=0A=
    getAbsoluteDimensions: function( e ) {=0A=
        var d =3D DOM.getDimensions( e );=0A=
        if( !d )=0A=
            return d;=0A=
        d.absoluteLeft =3D d.offsetLeft;=0A=
        d.absoluteTop =3D d.offsetTop;=0A=
        d.absoluteRight =3D d.offsetRight;=0A=
        d.absoluteBottom =3D d.offsetBottom;=0A=
        var bork =3D 0;=0A=
        while( e ) {=0A=
            try { // IE 6 sometimes gives an unwarranted error =
("htmlfile: Unspecified error").=0A=
                e =3D e.offsetParent;=0A=
            } catch ( err ) {=0A=
                log( "In DOM.getAbsoluteDimensions: " + err.message ); =0A=
                if ( ++bork > 25 )=0A=
                    return null;=0A=
            }=0A=
            if( !e )=0A=
                return d;=0A=
            d.absoluteLeft +=3D e.offsetLeft;=0A=
            d.absoluteTop +=3D e.offsetTop;=0A=
            d.absoluteRight +=3D e.offsetLeft;=0A=
            d.absoluteBottom +=3D e.offsetTop;=0A=
        }=0A=
        return d;=0A=
    },=0A=
    =0A=
    =0A=
    getIframeAbsoluteDimensions: function( e ) {=0A=
        var d =3D DOM.getAbsoluteDimensions( e );=0A=
        if( !d )=0A=
            return d;=0A=
        var iframe =3D DOM.getOwnerIframe( e );=0A=
        if( !defined( iframe ) )=0A=
            return d;=0A=
        =0A=
        var d2 =3D DOM.getIframeAbsoluteDimensions( iframe );=0A=
        var scroll =3D DOM.getWindowScroll( iframe.contentWindow );=0A=
        var left =3D d2.absoluteLeft - scroll.left;=0A=
        var top =3D d2.absoluteTop - scroll.top;=0A=
        =0A=
        d.absoluteLeft +=3D left;=0A=
        d.absoluteTop +=3D top;=0A=
        d.absoluteRight +=3D left;=0A=
        d.absoluteBottom +=3D top;=0A=
        =0A=
        return d;=0A=
    },=0A=
    =0A=
    =0A=
    setLeft: function( e, v ) { e.style.left =3D finiteInt( v ) + "px"; =
},=0A=
    setTop: function( e, v ) { e.style.top =3D finiteInt( v ) + "px"; },=0A=
    setRight: function( e, v ) { e.style.right =3D finiteInt( v ) + =
"px"; },=0A=
    setBottom: function( e, v ) { e.style.bottom =3D finiteInt( v ) + =
"px"; },=0A=
    setWidth: function( e, v ) { e.style.width =3D max( 0, finiteInt( v =
) ) + "px"; },=0A=
    setHeight: function( e, v ) { e.style.height =3D max( 0, finiteInt( =
v ) ) + "px"; },=0A=
    setZIndex: function( e, v ) { e.style.zIndex =3D finiteInt( v ); },=0A=
=0A=
=0A=
    getWindowScroll: function( w ) {=0A=
        var s =3D {=0A=
            left: 0,=0A=
            top: 0=0A=
        };=0A=
=0A=
        if (!w) w =3D window;=0A=
        var d =3D w.document;=0A=
        var de =3D d.documentElement;=0A=
=0A=
        // most browsers=0A=
        if ( defined( w.pageXOffset ) ) {=0A=
            s.left =3D w.pageXOffset;=0A=
            s.top =3D w.pageYOffset;=0A=
        }=0A=
=0A=
        // ie=0A=
        else if( de && defined( de.scrollLeft ) ) {=0A=
            s.left =3D de.scrollLeft;=0A=
            s.top =3D de.scrollTop;=0A=
        }=0A=
=0A=
        // safari=0A=
        else if( defined( w.scrollX ) ) {=0A=
            s.left =3D w.scrollX;=0A=
            s.top =3D w.scrollY;=0A=
        }=0A=
=0A=
        // opera=0A=
        else if( d.body && defined( d.body.scrollLeft ) ) {=0A=
            s.left =3D d.body.scrollLeft;=0A=
            s.top =3D d.body.scrollTop;=0A=
        }=0A=
=0A=
=0A=
        return s;=0A=
    },=0A=
=0A=
=0A=
    getAbsoluteCursorPosition: function( event ) {=0A=
        event =3D event || window.event;=0A=
        var s =3D DOM.getWindowScroll( window );=0A=
        return {=0A=
            x: s.left + event.clientX,=0A=
            y: s.top + event.clientY=0A=
        };=0A=
    },=0A=
    =0A=
    =0A=
    invisibleStyle: {=0A=
        display: "block",=0A=
        position: "absolute",=0A=
        left: 0,=0A=
        top: 0,=0A=
        width: 0,=0A=
        height: 0,=0A=
        margin: 0,=0A=
        border: 0,=0A=
        padding: 0,=0A=
        fontSize: "0.1px",=0A=
        lineHeight: 0,=0A=
        opacity: 0,=0A=
        MozOpacity: 0,=0A=
        filter: "alpha(opacity=3D0)"=0A=
    },=0A=
    =0A=
    =0A=
    makeInvisible: function( e ) {=0A=
        for( var p in this.invisibleStyle ) {=0A=
            if( this.invisibleStyle.hasOwnProperty( p ) )=0A=
                e.style[ p ] =3D this.invisibleStyle[ p ];=0A=
        }=0A=
    },=0A=
=0A=
=0A=
    /* text and selection related methods */=0A=
=0A=
    mergeTextNodes: function( n ) {=0A=
        var c =3D 0;=0A=
        while( n ) {=0A=
            if( n.nodeType =3D=3D Node.TEXT_NODE && n.nextSibling && =
n.nextSibling.nodeType =3D=3D Node.TEXT_NODE ) {=0A=
                n.nodeValue +=3D n.nextSibling.nodeValue;=0A=
                n.parentNode.removeChild( n.nextSibling );=0A=
                c++;=0A=
            } else {=0A=
                if( n.firstChild )=0A=
                    c +=3D DOM.mergeTextNodes( n.firstChild );=0A=
                n =3D n.nextSibling;=0A=
            }=0A=
        }=0A=
        return c;=0A=
    },=0A=
    =0A=
    =0A=
    selectElement: function( e ) {  =0A=
        var d =3D e.ownerDocument;  =0A=
        =0A=
        // internet explorer  =0A=
        if( d.body.createControlRange ) {  =0A=
            var r =3D d.body.createControlRange();  =0A=
            r.addElement( e );  =0A=
            r.select();  =0A=
        }  =0A=
    }, =0A=
    =0A=
    =0A=
    /* dom methods */=0A=
    =0A=
    isImmutable: function( n ) {=0A=
        try {=0A=
            if( n.getAttribute( "contenteditable" ) =3D=3D "false" )=0A=
                return true;=0A=
        } catch( e ) {}=0A=
        return false;=0A=
    },=0A=
    =0A=
    =0A=
    getImmutable: function( n ) {=0A=
        var immutable =3D null;=0A=
        while( n ) {=0A=
            if( DOM.isImmutable( n ) )=0A=
                immutable =3D n;=0A=
            n =3D n.parentNode;=0A=
        }=0A=
        return immutable;=0A=
    },=0A=
=0A=
=0A=
    getOwnerDocument: function( n ) {=0A=
        if( !n )=0A=
            return document;=0A=
        if( n.ownerDocument )=0A=
            return n.ownerDocument;=0A=
        if( n.getElementById )=0A=
            return n;=0A=
        return document;=0A=
    },=0A=
=0A=
=0A=
    getOwnerWindow: function( n ) {=0A=
        if( !n )=0A=
            return window;=0A=
        if( n.parentWindow )=0A=
            return n.parentWindow;=0A=
        var doc =3D DOM.getOwnerDocument( n );=0A=
        if( doc && doc.defaultView )=0A=
            return doc.defaultView;=0A=
        return window;=0A=
    },=0A=
    =0A=
    =0A=
    getOwnerIframe: function( n ) {=0A=
        if( !n )=0A=
            return undefined;=0A=
        var nw =3D DOM.getOwnerWindow( n );=0A=
        var nd =3D DOM.getOwnerDocument( n );=0A=
        var pw =3D nw.parent || nw.parentWindow;=0A=
        if( !pw )=0A=
            return undefined;=0A=
        var parentDocument =3D pw.document;=0A=
        var es =3D parentDocument.getElementsByTagName( "iframe" );=0A=
        for( var i =3D 0; i < es.length; i++ ) {=0A=
            var e =3D es[ i ];=0A=
            try {=0A=
                var d =3D e.contentDocument || e.contentWindow.document;=0A=
                if( d =3D=3D=3D nd )=0A=
                    return e;=0A=
            }catch(err) {};=0A=
        }=0A=
        return undefined;=0A=
    },=0A=
=0A=
=0A=
    filterElementsByClassName: function( es, className ) {=0A=
        var filtered =3D [];=0A=
        for( var i =3D 0; i < es.length; i++ ) {=0A=
            var e =3D es[ i ];=0A=
            if( DOM.hasClassName( e, className ) )=0A=
                filtered[ filtered.length ] =3D e;=0A=
        }=0A=
        return filtered;=0A=
    },=0A=
    =0A=
    =0A=
    filterElementsByAttribute: function( es, attr ) {=0A=
        if( !es )=0A=
            return [];=0A=
        if( !defined( attr ) || attr =3D=3D null || attr =3D=3D "" )=0A=
            return es;=0A=
        var filtered =3D [];=0A=
        for( var i =3D 0; i < es.length; i++ ) {=0A=
            var element =3D es[ i ];=0A=
            if( !element )=0A=
                continue;=0A=
            if( element.getAttribute && ( element.getAttribute( attr ) ) =
)=0A=
                filtered[ filtered.length ] =3D element;=0A=
        }=0A=
        return filtered;=0A=
    },=0A=
=0A=
=0A=
    filterElementsByTagName: function( es, tagName ) {=0A=
        if( tagName =3D=3D "*" )=0A=
            return es;=0A=
        var filtered =3D [];=0A=
        tagName =3D tagName.toLowerCase();=0A=
        for( var i =3D 0; i < es.length; i++ ) {=0A=
            var e =3D es[ i ];=0A=
            if( e.tagName && e.tagName.toLowerCase() =3D=3D tagName )=0A=
                filtered[ filtered.length ] =3D e;=0A=
        }=0A=
        return filtered;=0A=
    },=0A=
=0A=
=0A=
    getElementsByTagAndAttribute: function( root, tagName, attr ) {=0A=
        if( !root )=0A=
            root =3D document;=0A=
        var es =3D root.getElementsByTagName( tagName );=0A=
        return DOM.filterElementsByAttribute( es, attr );=0A=
    },=0A=
    =0A=
    =0A=
    getElementsByAttribute: function( root, attr ) {=0A=
        return DOM.getElementsByTagAndAttribute( root, "*", attr );=0A=
    },=0A=
=0A=
=0A=
    getElementsByAttributeAndValue: function( root, attr, value ) {=0A=
        var es =3D DOM.getElementsByTagAndAttribute( root, "*", attr );=0A=
        var filtered =3D [];=0A=
        for ( var i =3D 0; i < es.length; i++ )=0A=
            if ( es[ i ].getAttribute( attr ) =3D=3D value )=0A=
                filtered.push( es[ i ] );=0A=
        return filtered;=0A=
    },=0A=
    =0A=
=0A=
    getElementsByTagAndClassName: function( root, tagName, className ) {=0A=
        if( !root )=0A=
            root =3D document;=0A=
        var elements =3D root.getElementsByTagName( tagName );=0A=
        return DOM.filterElementsByClassName( elements, className );=0A=
    },=0A=
=0A=
=0A=
    getElementsByClassName: function( root, className ) {=0A=
        return DOM.getElementsByTagAndClassName( root, "*", className );=0A=
    },=0A=
=0A=
=0A=
    getAncestors: function( n, includeSelf ) {=0A=
        if( !n )=0A=
            return [];=0A=
        var as =3D includeSelf ? [ n ] : [];=0A=
        n =3D n.parentNode;=0A=
        while( n ) {=0A=
            as.push( n );=0A=
            n =3D n.parentNode;=0A=
        }=0A=
        return as;=0A=
    },=0A=
    =0A=
    =0A=
    getAncestorsByTagName: function( n, tagName, includeSelf ) {=0A=
        var es =3D DOM.getAncestors( n, includeSelf );=0A=
        return DOM.filterElementsByTagName( es, tagName );=0A=
    },=0A=
    =0A=
    =0A=
    getFirstAncestorByTagName: function( n, tagName, includeSelf ) {=0A=
        return DOM.getAncestorsByTagName( n, tagName, includeSelf )[ 0 ];=0A=
    },=0A=
=0A=
=0A=
    getAncestorsByClassName: function( n, className, includeSelf ) {=0A=
        var es =3D DOM.getAncestors( n, includeSelf );=0A=
        return DOM.filterElementsByClassName( es, className );=0A=
    },=0A=
=0A=
=0A=
    getFirstAncestorByClassName: function( n, className, includeSelf ) {=0A=
        return DOM.getAncestorsByClassName( n, className, includeSelf )[ =
0 ];=0A=
    },=0A=
=0A=
=0A=
    getAncestorsByTagAndClassName: function( n, tagName, className, =
includeSelf ) {=0A=
        var es =3D DOM.getAncestorsByTagName( n, tagName, includeSelf );=0A=
        return DOM.filterElementsByClassName( es, className );=0A=
    },=0A=
=0A=
=0A=
    getFirstAncestorByTagAndClassName: function( n, tagName, className, =
includeSelf ) {=0A=
        return DOM.getAncestorsByTagAndClassName( n, tagName, className, =
includeSelf )[ 0 ];=0A=
    },=0A=
=0A=
=0A=
    getPreviousElement: function( n ) {=0A=
        n =3D n.previousSibling;=0A=
        while( n ) {=0A=
            if( n.nodeType =3D=3D Node.ELEMENT_NODE )=0A=
                return n;=0A=
            n =3D n.previousSibling;=0A=
        }=0A=
        return null;=0A=
    },=0A=
=0A=
=0A=
    getNextElement: function( n ) {=0A=
        n =3D n.nextSibling;=0A=
        while( n ) {=0A=
            if( n.nodeType =3D=3D Node.ELEMENT_NODE )=0A=
                return n;=0A=
            n =3D n.nextSibling;=0A=
        }=0A=
        return null;=0A=
    },=0A=
=0A=
=0A=
    isInlineNode: function( n ) {=0A=
        // text nodes are inline=0A=
        if( n.nodeType =3D=3D Node.TEXT_NODE )=0A=
            return n;=0A=
=0A=
        // document nodes are non-inline=0A=
        if( n.nodeType =3D=3D Node.DOCUMENT_NODE )=0A=
            return false;=0A=
=0A=
        // all nonelement nodes are inline=0A=
        if( n.nodeType !=3D Node.ELEMENT_NODE )=0A=
            return n;=0A=
=0A=
        // br elements are not inline=0A=
        if( n.tagName && n.tagName.toLowerCase() =3D=3D "br" )=0A=
            return false;=0A=
=0A=
        // examine the style property of the inline n=0A=
        var display =3D DOM.getStyle( n, "display" ); =0A=
        if( display && display.indexOf( "inline" ) >=3D 0 ) =0A=
            return n;=0A=
    },=0A=
    =0A=
    =0A=
    isTextNode: function( n ) {=0A=
        if( n.nodeType =3D=3D Node.TEXT_NODE )=0A=
            return n;=0A=
    },=0A=
    =0A=
    =0A=
    isInlineTextNode: function( n ) {=0A=
        if( n.nodeType =3D=3D Node.TEXT_NODE )=0A=
            return n;=0A=
        if( !DOM.isInlineNode( n ) )=0A=
            return null;=0A=
    },=0A=
=0A=
=0A=
    /* this and the following classname functions honor w3c =
case-sensitive classnames */=0A=
=0A=
    getClassNames: function( e ) {=0A=
        if( !e || !e.className )=0A=
            return [];=0A=
        return e.className.split( /\s+/g );=0A=
    },=0A=
=0A=
=0A=
    hasClassName: function( e, className ) {=0A=
        if( !e || !e.className )=0A=
            return false;=0A=
        var cs =3D DOM.getClassNames( e );=0A=
        for( var i =3D 0; i < cs.length; i++ ) {=0A=
            if( cs[ i ] =3D=3D className )=0A=
                return true;=0A=
        }=0A=
        return false;=0A=
    },=0A=
=0A=
=0A=
    addClassName: function( e, className ) {=0A=
        if( !e || !className )=0A=
            return false;=0A=
        var cs =3D DOM.getClassNames( e );=0A=
        for( var i =3D 0; i < cs.length; i++ ) {=0A=
            if( cs[ i ] =3D=3D className )=0A=
                return true;=0A=
        }=0A=
        cs.push( className );=0A=
        e.className =3D cs.join( " " );=0A=
        return false;=0A=
    },=0A=
=0A=
=0A=
    removeClassName: function( e, className ) {=0A=
        var r =3D false;=0A=
        if( !e || !e.className || !className )=0A=
            return r;=0A=
        var cs =3D (e.className && e.className.length)=0A=
            ? e.className.split( /\s+/g )=0A=
            : [];=0A=
        var ncs =3D [];=0A=
        for( var i =3D 0; i < cs.length; i++ ) {=0A=
            if( cs[ i ] =3D=3D className ) {=0A=
                r =3D true;=0A=
                continue;=0A=
            }=0A=
            ncs.push( cs[ i ] );=0A=
        }=0A=
        if( r )=0A=
            e.className =3D ncs.join( " " );=0A=
        return r;=0A=
    },=0A=
    =0A=
    =0A=
    /* tree manipulation methods */=0A=
    =0A=
    replaceWithChildNodes: function( n ) {=0A=
        var firstChild =3D n.firstChild;=0A=
        var parentNode =3D n.parentNode;=0A=
        while( n.firstChild )=0A=
            parentNode.insertBefore( n.removeChild( n.firstChild ), n );=0A=
        parentNode.removeChild( n );=0A=
        return firstChild;=0A=
    },=0A=
    =0A=
    =0A=
    /* factory methods */=0A=
    =0A=
    createInvisibleInput: function( d ) {=0A=
        if( !d )=0A=
            d =3D window.document;=0A=
        var e =3D document.createElement( "input" );=0A=
        e.setAttribute( "autocomplete", "off" );=0A=
        e.autocomplete =3D "off";=0A=
        DOM.makeInvisible( e );=0A=
        return e;=0A=
    },=0A=
=0A=
=0A=
    getMouseEventAttribute: function( event, a ) {=0A=
        if( !a )=0A=
            return;=0A=
        var es =3D DOM.getAncestors( event.target, true );=0A=
        for( var i =3D 0; i < es.length; i++ ) {=0A=
            try {=0A=
                var e =3D es[ i ]=0A=
                var v =3D e.getAttribute ? e.getAttribute( a ) : null;=0A=
                if( v ) {=0A=
                    event.attributeElement =3D e;=0A=
                    event.attribute =3D v;=0A=
                    return v;=0A=
                }=0A=
            } catch( e ) {}=0A=
        }=0A=
    },=0A=
    =0A=
=0A=
    setElementAttribute: function( e, a, v ) {=0A=
        /* safari workaround=0A=
         * safari's setAttribute assumes you want to use a namespace=0A=
         * when you have a colon in your attribute=0A=
         */=0A=
        if ( navigator.userAgent.toLowerCase().match(/webkit/) ) {=0A=
            var at =3D e.attributes;=0A=
            for ( var i =3D 0; i < at.length; i++ )=0A=
                if ( at[ i ].name =3D=3D a )=0A=
                    return at[ i ].nodeValue =3D v;=0A=
        } else=0A=
            e.setAttribute( a, v );=0A=
    },=0A=
=0A=
=0A=
    swapAttributes: function( e, tg, at ) {=0A=
        var ar =3D e.getAttribute( tg );=0A=
        if( !ar )=0A=
            return false;=0A=
        =0A=
        /* clone the node with all children */=0A=
        if ( e.tagName.toLowerCase() =3D=3D 'script' ) {=0A=
            /* only clone and replace script tags */=0A=
            var cl =3D e.cloneNode( true );=0A=
            if ( !cl )=0A=
                return false;=0A=
=0A=
            DOM.setElementAttribute( cl, at, ar );=0A=
            cl.removeAttribute( tg );=0A=
        =0A=
            /* replace new, old */=0A=
            return e.parentNode.replaceChild( cl, e );=0A=
        } else {=0A=
            DOM.setElementAttribute( e, at, ar );=0A=
            e.removeAttribute( tg );=0A=
        }=0A=
    }=0A=
    =0A=
    =0A=
} );=0A=
=0A=
=0A=
$ =3D DOM.getElement;=0A=
var HTTPReq =3D new Object;=0A=
=0A=
HTTPReq.create =3D function () {=0A=
    var xtr;=0A=
    var ex;=0A=
=0A=
    if (typeof(XMLHttpRequest) !=3D "undefined") {=0A=
        xtr =3D new XMLHttpRequest();=0A=
    } else {=0A=
        try {=0A=
            xtr =3D new ActiveXObject("Msxml2.XMLHTTP.4.0");=0A=
        } catch (ex) {=0A=
            try {=0A=
                xtr =3D new ActiveXObject("Msxml2.XMLHTTP");=0A=
            } catch (ex) {=0A=
            }=0A=
        }=0A=
    }=0A=
=0A=
    // let me explain this.  Opera 8 does XMLHttpRequest, but not =
setRequestHeader.=0A=
    // no problem, we thought:  we'll test for setRequestHeader and if =
it's not present=0A=
    // then fall back to the old behavior (treat it as not working).  =
BUT --- IE6 won't=0A=
    // let you even test for setRequestHeader without throwing an =
exception (you need=0A=
    // to call .open on the .xtr first or something)=0A=
    try {=0A=
        if (xtr && ! xtr.setRequestHeader)=0A=
            xtr =3D null;=0A=
    } catch (ex) { }=0A=
=0A=
    return xtr;=0A=
};=0A=
=0A=
// opts:=0A=
// url, onError, onData, method (GET or POST), data=0A=
// url: where to get/post to=0A=
// onError: callback on error=0A=
// onData: callback on data received=0A=
// method: HTTP method, GET by default=0A=
// data: what to send to the server (urlencoded)=0A=
HTTPReq.getJSON =3D function (opts) {=0A=
    var req =3D HTTPReq.create();=0A=
    if (! req) {=0A=
        if (opts.onError) opts.onError("noxmlhttprequest");=0A=
        return;=0A=
    }=0A=
=0A=
    var state_callback =3D function () {=0A=
        if (req.readyState !=3D 4) return;=0A=
=0A=
        if (req.status !=3D 200) {=0A=
            if (opts.onError) opts.onError(req.status ? "status: " + =
req.status : "no data");=0A=
            return;=0A=
        }=0A=
=0A=
        var resObj;=0A=
        var e;=0A=
        try {=0A=
            eval("resObj =3D " + req.responseText + ";");=0A=
        } catch (e) {=0A=
        }=0A=
=0A=
        if (e || ! resObj) {=0A=
            if (opts.onError)=0A=
                opts.onError("Error parsing response: \"" + =
req.responseText + "\"");=0A=
=0A=
            return;=0A=
        }=0A=
=0A=
        if (opts.onData)=0A=
            opts.onData(resObj);=0A=
    };=0A=
=0A=
    req.onreadystatechange =3D state_callback;=0A=
=0A=
    var method =3D opts.method || "GET";=0A=
    var data =3D opts.data || null;=0A=
=0A=
    var url =3D opts.url;=0A=
    if (opts.method =3D=3D "GET" && opts.data) {=0A=
        url +=3D url.match(/\?/) ? "&" : "?";=0A=
        url +=3D opts.data=0A=
    }=0A=
=0A=
    url +=3D url.match(/\?/) ? "&" : "?";=0A=
    url +=3D "_rand=3D" + Math.random();=0A=
=0A=
    req.open(method, url, true);=0A=
=0A=
    // we should send null unless we're in a POST=0A=
    var to_send =3D null;=0A=
=0A=
    if (method.toUpperCase() =3D=3D "POST") {=0A=
        req.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded");=0A=
        to_send =3D data;=0A=
    }=0A=
=0A=
    req.send(to_send);=0A=
};=0A=
=0A=
HTTPReq.formEncoded =3D function (vars) {=0A=
    var enc =3D [];=0A=
    var e;=0A=
    for (var key in vars) {=0A=
        try {=0A=
            if (!vars.hasOwnProperty(key))=0A=
                continue;=0A=
            enc.push(encodeURIComponent(key) + "=3D" + =
encodeURIComponent(vars[key]));=0A=
        } catch( e ) {}=0A=
    }=0A=
    return enc.join("&");=0A=
=0A=
};=0A=
=0A=
// This file contains general-purpose LJ code=0A=
=0A=
var LiveJournal =3D new Object;=0A=
=0A=
// The hook mappings=0A=
LiveJournal.hooks =3D {};=0A=
=0A=
LiveJournal.register_hook =3D function (hook, func) {=0A=
    if (! LiveJournal.hooks[hook])=0A=
        LiveJournal.hooks[hook] =3D [];=0A=
=0A=
    LiveJournal.hooks[hook].push(func);=0A=
};=0A=
=0A=
// args: hook, params to pass to hook=0A=
LiveJournal.run_hook =3D function () {=0A=
    var a =3D arguments;=0A=
=0A=
    var hookfuncs =3D LiveJournal.hooks[a[0]];=0A=
    if (!hookfuncs || !hookfuncs.length) return;=0A=
=0A=
    var hookargs =3D [];=0A=
=0A=
    for (var i =3D 1; i < a.length; i++) {=0A=
        hookargs.push(a[i]);=0A=
    }=0A=
=0A=
    var rv =3D null;=0A=
=0A=
    hookfuncs.forEach(function (hookfunc) {=0A=
        rv =3D hookfunc.apply(null, hookargs);=0A=
    });=0A=
=0A=
    return rv;=0A=
};=0A=
=0A=
LiveJournal.pageLoaded =3D false;=0A=
=0A=
LiveJournal.initPage =3D function () {=0A=
    // only run once=0A=
    if (LiveJournal.pageLoaded)=0A=
        return;=0A=
    LiveJournal.pageLoaded =3D 1;=0A=
=0A=
    // set up various handlers for every page=0A=
    LiveJournal.initPlaceholders();=0A=
    LiveJournal.initLabels();=0A=
    LiveJournal.initInboxUpdate();=0A=
    LiveJournal.initAds();=0A=
    LiveJournal.initPolls();=0A=
=0A=
    // run other hooks=0A=
    LiveJournal.run_hook("page_load");=0A=
};=0A=
=0A=
// Set up two different ways to test if the page is loaded yet.=0A=
// The proper way is using DOMContentLoaded, but only Mozilla supports =
it.=0A=
{=0A=
    // Others=0A=
    DOM.addEventListener(window, "load", LiveJournal.initPage);=0A=
=0A=
    // Mozilla=0A=
    DOM.addEventListener(window, "DOMContentLoaded", =
LiveJournal.initPage);=0A=
}=0A=
=0A=
// Set up a timer to keep the inbox count updated=0A=
LiveJournal.initInboxUpdate =3D function () {=0A=
    // Don't run if not logged in or this is disabled=0A=
    if (! Site || ! Site.has_remote || ! Site.inbox_update_poll) return;=0A=
=0A=
    // Don't run if no inbox count=0A=
    var unread =3D $("LJ_Inbox_Unread_Count");=0A=
    if (! unread) return;=0A=
=0A=
    // Update every five minutes=0A=
    window.setInterval(LiveJournal.updateInbox, 1000 * 60 * 5);=0A=
};=0A=
=0A=
// Do AJAX request to find the number of unread items in the inbox=0A=
LiveJournal.updateInbox =3D function () {=0A=
    var postData =3D {=0A=
        "action": "get_unread_items"=0A=
    };=0A=
=0A=
    var opts =3D {=0A=
        "data": HTTPReq.formEncoded(postData),=0A=
        "method": "POST",=0A=
        "onData": LiveJournal.gotInboxUpdate=0A=
    };=0A=
=0A=
    opts.url =3D Site.currentJournal ? "/" + Site.currentJournal + =
"/__rpc_esn_inbox" : "/__rpc_esn_inbox";=0A=
=0A=
    HTTPReq.getJSON(opts);=0A=
};=0A=
=0A=
// We received the number of unread inbox items from the server=0A=
LiveJournal.gotInboxUpdate =3D function (resp) {=0A=
    if (! resp || resp.error) return;=0A=
=0A=
    var unread =3D $("LJ_Inbox_Unread_Count");=0A=
    if (! unread) return;=0A=
=0A=
    unread.innerHTML =3D resp.unread_count ? "  (" + resp.unread_count + =
")" : "";=0A=
};=0A=
=0A=
// Search for placeholders and initialize them=0A=
LiveJournal.initPlaceholders =3D function () {=0A=
    var placeholders =3D DOM.getElementsByTagAndClassName(document, =
"img", "LJ_Placeholder") || [];=0A=
=0A=
    Array.prototype.forEach.call(placeholders, function (placeholder) {=0A=
        var parent =3D DOM.getFirstAncestorByClassName(placeholder, =
"LJ_Placeholder_Container", false);=0A=
        if (!parent) return;=0A=
=0A=
        var container =3D =
DOM.filterElementsByClassName(parent.getElementsByTagName("div"), =
"LJ_Container")[0];=0A=
        if (!container) return;=0A=
=0A=
        var html =3D =
DOM.filterElementsByClassName(parent.getElementsByTagName("div"), =
"LJ_Placeholder_HTML")[0];=0A=
        if (!html) return;=0A=
=0A=
        var placeholder_html =3D unescape(html.innerHTML);=0A=
=0A=
        var placeholderClickHandler =3D function (e) {=0A=
            Event.stop(e);=0A=
            // have to wrap placeholder_html in another block, IE is =
weird=0A=
            container.innerHTML =3D "<span>" + placeholder_html + =
"</span>";=0A=
            DOM.makeInvisible(placeholder);=0A=
        };=0A=
=0A=
        DOM.addEventListener(placeholder, "click", =
placeholderClickHandler);=0A=
=0A=
        return false;=0A=
    });=0A=
};=0A=
=0A=
// set up labels for Safari=0A=
LiveJournal.initLabels =3D function () {=0A=
    // disabled because new webkit has labels that work=0A=
    return;=0A=
=0A=
    // safari doesn't know what <label> tags are, lets fix them=0A=
    if (navigator.userAgent.indexOf('Safari') =3D=3D -1) return;=0A=
=0A=
    // get all labels=0A=
    var labels =3D document.getElementsByTagName("label");=0A=
=0A=
    for (var i =3D 0; i < labels.length; i++) {=0A=
        DOM.addEventListener(labels[i], "click", =
LiveJournal.labelClickHandler);=0A=
    }=0A=
};=0A=
=0A=
LiveJournal.labelClickHandler =3D function (evt) {=0A=
    Event.prep(evt);=0A=
=0A=
    var label =3D DOM.getAncestorsByTagName(evt.target, "label", =
true)[0];=0A=
    if (! label) return;=0A=
=0A=
    var targetId =3D label.getAttribute("for");=0A=
    if (! targetId) return;=0A=
=0A=
    var target =3D $(targetId);=0A=
    if (! target) return;=0A=
=0A=
    target.click();=0A=
=0A=
    return false;=0A=
};=0A=
=0A=
// change drsc to src for ads=0A=
LiveJournal.initAds =3D function () {=0A=
    AdEngine.init();=0A=
};=0A=
=0A=
// handy utilities to create elements with just text in them=0A=
function _textSpan () { return _textElements("span", arguments); }=0A=
function _textDiv  () { return _textElements("div", arguments);  }=0A=
=0A=
function _textElements (eleType, txts) {=0A=
    var ele =3D [];=0A=
    for (var i =3D 0; i < txts.length; i++) {=0A=
        var node =3D document.createElement(eleType);=0A=
        node.innerHTML =3D txts[i];=0A=
        ele.push(node);=0A=
    }=0A=
=0A=
    return ele.length =3D=3D 1 ? ele[0] : ele;=0A=
};=0A=
=0A=
LiveJournal.initPolls =3D function () {=0A=
    var pollLinks =3D DOM.getElementsByTagAndClassName(document, 'a', =
"LJ_PollAnswerLink") || [];  =0A=
=0A=
    // attach click handlers to each answer link=0A=
    Array.prototype.forEach.call(pollLinks, function (pollLink) {=0A=
        DOM.addEventListener(pollLink, "click", =
LiveJournal.pollAnswerLinkClicked.bindEventListener(pollLink));=0A=
    });=0A=
};=0A=
=0A=
// invocant is the pollLink from above=0A=
LiveJournal.pollAnswerLinkClicked =3D function (e) {=0A=
    Event.stop(e);=0A=
=0A=
    if (! this || ! this.tagName || this.tagName.toLowerCase() !=3D "a")=0A=
    return true;=0A=
=0A=
    var pollid =3D this.getAttribute("lj_pollid");=0A=
    if (! pollid) return true;=0A=
=0A=
    var pollqid =3D this.getAttribute("lj_qid");=0A=
    if (! pollqid) return true;=0A=
=0A=
    var action =3D "get_answers";=0A=
=0A=
    // Do ajax request to replace the link with the answers=0A=
    var params =3D {=0A=
        "pollid" : pollid,=0A=
        "pollqid": pollqid,=0A=
        "action" : action=0A=
    };=0A=
=0A=
    var opts =3D {=0A=
        "url"    : LiveJournal.getAjaxUrl("poll"),=0A=
        "method" : "POST",=0A=
        "data"   : HTTPReq.formEncoded(params),=0A=
        "onData" : LiveJournal.pollAnswersReceived,=0A=
        "onError": LiveJournal.ajaxError=0A=
    };=0A=
=0A=
    HTTPReq.getJSON(opts);=0A=
    this.innerHTML =3D "<div =
class=3D'lj_pollanswer_loading'>Loading...</div>";=0A=
=0A=
    return false;=0A=
};=0A=
=0A=
LiveJournal.pollAnswersReceived =3D function (answers) {=0A=
    if (! answers) return false;=0A=
    if (answers.error) return LiveJournal.ajaxError(answers.error);=0A=
=0A=
    var pollid =3D answers.pollid;=0A=
    var pollqid =3D answers.pollqid;=0A=
    if (! pollid || ! pollqid) return false;=0A=
=0A=
    var linkEle =3D $("LJ_PollAnswerLink_" + pollid + "_" + pollqid);=0A=
    if (! linkEle) return false;=0A=
=0A=
    var answerEle =3D document.createElement("div");=0A=
    DOM.addClassName(answerEle, "lj_pollanswer");=0A=
    answerEle.innerHTML =3D answers.answer_html ? answers.answer_html : =
"(No answers)";=0A=
=0A=
    linkEle.parentNode.insertBefore(answerEle, linkEle);=0A=
    linkEle.parentNode.removeChild(linkEle);=0A=
};=0A=
=0A=
=0A=
// gets a url for doing ajax requests=0A=
LiveJournal.getAjaxUrl =3D function (action) {=0A=
    // if we are on a journal subdomain then our url will be=0A=
    // /journalname/__rpc_action instead of /__rpc_action=0A=
    return Site.currentJournal=0A=
        ? "/" + Site.currentJournal + "/__rpc_" + action=0A=
        : "/__rpc_" + action;=0A=
};=0A=
=0A=
// generic handler for ajax errors=0A=
LiveJournal.ajaxError =3D function (err) {=0A=
    if (LJ_IPPU) {=0A=
        LJ_IPPU.showNote("Error: " + err);=0A=
    } else {=0A=
        alert("Error: " + err);=0A=
    }=0A=
};=0A=
=0A=
// utility method to get all items on the page with a certain class name=0A=
LiveJournal.getDocumentElementsByClassName =3D function (className) {=0A=
  var domObjects =3D document.getElementsByTagName("*");=0A=
  var items =3D DOM.filterElementsByClassName(domObjects, className) || =
[];=0A=
=0A=
  return items;=0A=
};=0A=
=0A=
// utility method to add an onclick callback on all items with a =
classname=0A=
LiveJournal.addClickHandlerToElementsWithClassName =3D function =
(callback, className) {=0A=
  var items =3D LiveJournal.getDocumentElementsByClassName(className);=0A=
=0A=
  items.forEach(function (item) {=0A=
    DOM.addEventListener(item, "click", callback);=0A=
  })=0A=
};=0A=
=0A=
LiveJournal.insertAdsMulti =3D function (params) {=0A=
  var i =3D 0;=0A=
  var containers =3D [];=0A=
=0A=
  for (i =3D 0; i < params.length; i++) {=0A=
    if (! params[i].html || params[i].html =3D=3D "<ul>\n</ul>") =
continue;=0A=
    AdEngine.insertAdResponse( params[i] );=0A=
    containers.push(document.getElementById(params[i].id));=0A=
  }=0A=
=0A=
    // add the ad box style to the containers=0A=
    containers.forEach(function (container) {=0A=
      if (! container) return;=0A=
=0A=
      DOM.addClassName(container.parentNode, "lj_content_ad");=0A=
      DOM.removeClassName(container.parentNode, "lj_inactive_ad");=0A=
    });=0A=
};=0A=
=0A=
// given a URL, parse out the GET args and return them in a hash=0A=
LiveJournal.parseGetArgs =3D function (url) {=0A=
    var getArgsHash =3D {};=0A=
=0A=
    var urlParts =3D url.split("?");=0A=
    if (!urlParts[1]) return getArgsHash;=0A=
    var getArgs =3D urlParts[1].split("&");=0A=
    for (var arg in getArgs) {=0A=
        if (!getArgs.hasOwnProperty(arg)) continue;=0A=
        var pair =3D getArgs[arg].split("=3D");=0A=
        getArgsHash[pair[0]] =3D pair[1];=0A=
    }=0A=
=0A=
    return getArgsHash;=0A=
};=0A=
/* =0A=
AdEngine=0A=
$Id: AdEngine.js 226 2007-09-18 18:20:57Z janine $=0A=
=0A=
Copyright (c) 2006, Six Apart, Ltd.=0A=
All rights reserved.=0A=
=0A=
Redistribution and use in source and binary forms, with or without=0A=
modification, are permitted provided that the following conditions are=0A=
met:=0A=
=0A=
    * Redistributions of source code must retain the above copyright=0A=
notice, this list of conditions and the following disclaimer.=0A=
=0A=
    * Redistributions in binary form must reproduce the above=0A=
copyright notice, this list of conditions and the following disclaimer=0A=
in the documentation and/or other materials provided with the=0A=
distribution.=0A=
=0A=
    * Neither the name of "Six Apart" nor the names of its=0A=
contributors may be used to endorse or promote products derived from=0A=
this software without specific prior written permission.=0A=
=0A=
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS=0A=
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT=0A=
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR=0A=
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT=0A=
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,=0A=
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT=0A=
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,=0A=
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY=0A=
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT=0A=
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=0A=
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.=0A=
*/=0A=
=0A=
AdEngine =3D {=0A=
=0A=
    /* called from window.onload ONLY on the logged out blog side (view) =
*/=0A=
    init: function() {=0A=
        var es =3D document.getElementsByTagName( "script" );=0A=
        for ( var i =3D 0; i < es.length; i++ ) {=0A=
            var ar =3D es[ i ].getAttribute( "defersrc" );=0A=
            if( !ar )=0A=
                continue;=0A=
        =0A=
            var cl =3D es[ i ].cloneNode( true );=0A=
            if ( !cl )=0A=
                continue;=0A=
=0A=
            cl.setAttribute( "src", ar );=0A=
            cl.removeAttribute( "defersrc" );=0A=
        =0A=
            /* replace new, old */=0A=
            try {=0A=
                es[ i ].parentNode.replaceChild( cl, es[ i ] );=0A=
            } catch (e) {}=0A=
        }=0A=
    },=0A=
    =0A=
    =0A=
    insertAdResponse: function( params ) {=0A=
        var e =3D document.getElementById( params.id );=0A=
        if( !e )=0A=
            return;=0A=
        if( params.html ) {=0A=
            var e2 =3D document.createElement( "div" );=0A=
            e2.innerHTML =3D params.html;=0A=
            e.innerHTML =3D ""; // clear old content=0A=
            e.appendChild( e2 );=0A=
        }=0A=
        if( params.js )=0A=
            return eval( "(" + params.js + ")" );=0A=
    },=0A=
=0A=
    insertAdsMulti: function( params ) {=0A=
        var i =3D 0;=0A=
        for (i =3D 0; i < params.length; i++) {=0A=
            AdEngine.insertAdResponse( params[i] );=0A=
        }=0A=
    }=0A=
=0A=
};=0A=
var ESN =3D new Object();=0A=
=0A=
LiveJournal.register_hook("page_load", function () {=0A=
  ESN.initCheckAllBtns();=0A=
  ESN.initEventCheckBtns();=0A=
  ESN.initTrackBtns();=0A=
});=0A=
=0A=
// When page loads, set up "check all" checkboxes=0A=
ESN.initCheckAllBtns =3D function () {=0A=
  var ntids  =3D $("ntypeids");=0A=
  var catids =3D $("catids");=0A=
=0A=
  if (!ntids || !catids)=0A=
    return;=0A=
=0A=
  ntidList  =3D ntids.value;=0A=
  catidList =3D catids.value;=0A=
=0A=
  if (!ntidList || !catidList)=0A=
    return;=0A=
=0A=
  ntids  =3D ntidList.split(",");=0A=
  catids =3D catidList.split(",");=0A=
=0A=
  catids.forEach( function (catid) {=0A=
    ntids.forEach( function (ntypeid) {=0A=
      var className =3D "SubscribeCheckbox-" + catid + "-" + ntypeid;=0A=
=0A=
      var cab =3D new CheckallButton();=0A=
      cab.init({=0A=
        "class": className,=0A=
          "button": $("CheckAll-" + catid + "-" + ntypeid),=0A=
          "parent": $("CategoryRow-" + catid)=0A=
          });=0A=
    });=0A=
  });=0A=
}=0A=
=0A=
// set up auto show/hiding of notification methods=0A=
ESN.initEventCheckBtns =3D function () {=0A=
  var viewObjects =3D document.getElementsByTagName("*");=0A=
  var boxes =3D DOM.filterElementsByClassName(viewObjects, =
"SubscriptionInboxCheck") || [];=0A=
=0A=
  boxes.forEach( function (box) {=0A=
    DOM.addEventListener(box, "click", =
ESN.eventChecked.bindEventListener());=0A=
  });=0A=
}=0A=
=0A=
ESN.eventChecked =3D function (evt) {=0A=
  var target =3D evt.target;=0A=
  if (!target)=0A=
    return;=0A=
=0A=
  var parentRow =3D DOM.getFirstAncestorByTagName(target, "tr", false);=0A=
=0A=
  var viewObjects =3D parentRow.getElementsByTagName("*");=0A=
  var boxes =3D DOM.filterElementsByClassName(viewObjects, =
"NotificationOptions") || [];=0A=
=0A=
  boxes.forEach( function (box) {=0A=
    box.style.visibility =3D target.checked ? "visible" : "hidden";=0A=
  });=0A=
}=0A=
=0A=
// attach event handlers to all track buttons=0A=
ESN.initTrackBtns =3D function () {=0A=
    // don't do anything if no remote=0A=
    if (!Site || !Site.has_remote) return;=0A=
=0A=
    // attach to all ljuser head icons=0A=
    var trackBtns =3D DOM.getElementsByTagAndClassName(document, "img", =
"TrackButton");=0A=
=0A=
    Array.prototype.forEach.call(trackBtns, function (trackBtn) {=0A=
        if (!trackBtn || !trackBtn.getAttribute) return;=0A=
=0A=
        if (!trackBtn.getAttribute("lj_subid") && =
!trackBtn.getAttribute("lj_journalid")) return;=0A=
=0A=
        DOM.addEventListener(trackBtn, "click",=0A=
                             =
ESN.trackBtnClickHandler.bindEventListener(trackBtn));=0A=
    });=0A=
};=0A=
=0A=
ESN.trackBtnClickHandler =3D function (evt) {=0A=
    var trackBtn =3D evt.target;=0A=
    if (! trackBtn || trackBtn.tagName.toLowerCase() !=3D "img") return =
true;=0A=
=0A=
    Event.stop(evt);=0A=
=0A=
    var btnInfo =3D {};=0A=
=0A=
    ['arg1', 'arg2', 'etypeid', 'newentry_etypeid', 'newentry_token', =
'newentry_subid',=0A=
     'journalid', 'subid', 'auth_token'].forEach(function (arg) {=0A=
        btnInfo[arg] =3D trackBtn.getAttribute("lj_" + arg);=0A=
    });=0A=
=0A=
    // pop up little dialog to either track by inbox/email or go to more =
options=0A=
    var dlg =3D document.createElement("div");=0A=
    var title =3D _textDiv("Email me when");=0A=
    DOM.addClassName(title, "track_title");=0A=
    dlg.appendChild(title);=0A=
=0A=
    var TrackCheckbox =3D function (title, checked) {=0A=
        var checkContainer =3D document.createElement("div");=0A=
=0A=
        var newCheckbox =3D document.createElement("input");=0A=
        newCheckbox.type =3D "checkbox";=0A=
        newCheckbox.id =3D "newentrytrack" + Unique.id();=0A=
        var newCheckboxLabel =3D document.createElement("label");=0A=
        newCheckboxLabel.setAttribute("for", newCheckbox.id);=0A=
        newCheckboxLabel.innerHTML =3D title;=0A=
=0A=
        checkContainer.appendChild(newCheckbox);=0A=
        checkContainer.appendChild(newCheckboxLabel);=0A=
        dlg.appendChild(checkContainer);=0A=
=0A=
        newCheckbox.checked =3D checked ? true : false;=0A=
=0A=
        return newCheckbox;=0A=
    };=0A=
=0A=
    // global trackPopup so we can only have one=0A=
    if (ESN.trackPopup) {=0A=
        ESN.trackPopup.hide();=0A=
        ESN.trackPopup =3D null;=0A=
    }=0A=
=0A=
    var saveChangesBtn =3D document.createElement("input");=0A=
    saveChangesBtn.type =3D "button";=0A=
    saveChangesBtn.value =3D "Save Changes";=0A=
    DOM.addClassName(saveChangesBtn, "track_savechanges");=0A=
=0A=
    var trackingNewEntries  =3D Number(btnInfo['newentry_subid']) ? 1 : =
0;=0A=
    var trackingNewComments =3D Number(btnInfo['subid']) ? 1 : 0;=0A=
=0A=
    var newEntryTrackBtn;=0A=
    var commentsTrackBtn;=0A=
=0A=
    if (Number(trackBtn.getAttribute("lj_dtalkid"))) {=0A=
        // this is a thread tracking button=0A=
        // always checked: either because they're subscribed, or because=0A=
        // they're going to subscribe.=0A=
        commentsTrackBtn =3D TrackCheckbox("someone replies in this =
comment thread", 1);=0A=
    } else {=0A=
        // entry tracking button=0A=
        newEntryTrackBtn =3D TrackCheckbox(LJ_cmtinfo["journal"] + " =
posts a new entry", trackingNewEntries);=0A=
        commentsTrackBtn =3D TrackCheckbox("someone comments on this =
post", trackingNewComments);=0A=
    }=0A=
=0A=
    DOM.addEventListener(saveChangesBtn, "click", function () {=0A=
        ESN.toggleSubscriptions(btnInfo, evt, trackBtn, {=0A=
            newEntry: newEntryTrackBtn ? newEntryTrackBtn.checked : =
false,=0A=
            newComments: commentsTrackBtn.checked=0A=
        });=0A=
        if (ESN.trackPopup) ESN.trackPopup.hide();=0A=
    });=0A=
=0A=
    var btnsContainer =3D document.createElement("div");=0A=
    DOM.addClassName(btnsContainer, "track_btncontainer");=0A=
    dlg.appendChild(btnsContainer);=0A=
=0A=
    btnsContainer.appendChild(saveChangesBtn);=0A=
=0A=
    var custTrackLink =3D document.createElement("a");=0A=
    custTrackLink.href =3D trackBtn.parentNode.href;=0A=
    btnsContainer.appendChild(custTrackLink);=0A=
    custTrackLink.innerHTML =3D "More Options";=0A=
    DOM.addClassName(custTrackLink, "track_moreopts");=0A=
=0A=
    ESN.trackPopup =3D new LJ_IPPU.showNoteElement(dlg, trackBtn, 0);=0A=
=0A=
    DOM.addEventListener(custTrackLink, "click", function (evt) {=0A=
        Event.stop(evt);=0A=
        document.location.href =3D trackBtn.parentNode.href;=0A=
        if (ESN.trackPopup) ESN.trackPopup.hide();=0A=
        return false;=0A=
    });=0A=
=0A=
    return false;=0A=
}=0A=
=0A=
// toggles subscriptions=0A=
ESN.toggleSubscriptions =3D function (subInfo, evt, btn, subs) {=0A=
    subInfo["subid"] =3D Number(subInfo["subid"]);=0A=
    if ((subInfo["subid"] && ! subs["newComments"])=0A=
        || (! subInfo["subid"] && subs["newComments"])) {=0A=
        ESN.toggleSubscription(subInfo, evt, btn, "newComments");=0A=
    }=0A=
=0A=
    subInfo["newentry_subid"] =3D Number(subInfo["newentry_subid"]);=0A=
    if ((subInfo["newentry_subid"] && ! subs["newEntry"])=0A=
        || (! subInfo["newentry_subid"] && subs["newEntry"])) {=0A=
            var newentrySubInfo =3D new Object(subInfo);=0A=
            newentrySubInfo["subid"] =3D =
Number(btn.getAttribute("lj_newentry_subid"));=0A=
            ESN.toggleSubscription(newentrySubInfo, evt, btn, =
"newEntry");=0A=
    }=0A=
};=0A=
=0A=
// (Un)subscribes to an event=0A=
ESN.toggleSubscription =3D function (subInfo, evt, btn, sub) {=0A=
    var action =3D "";=0A=
    var params =3D {=0A=
        auth_token: sub =3D=3D "newEntry" ? subInfo.newentry_token : =
subInfo.auth_token=0A=
    };=0A=
=0A=
    if (Number(subInfo.subid)) {=0A=
        // subscription exists=0A=
        action =3D "delsub";=0A=
        params.subid =3D subInfo.subid;=0A=
    } else {=0A=
        // create a new subscription=0A=
        action =3D "addsub";=0A=
=0A=
        var param_keys;=0A=
        if (sub =3D=3D "newEntry") {=0A=
            params.etypeid =3D subInfo.newentry_etypeid;=0A=
            param_keys =3D ["journalid"];=0A=
        } else {=0A=
            param_keys =3D ["journalid", "arg1", "arg2", "etypeid"];=0A=
        }=0A=
=0A=
        param_keys.forEach(function (param) {=0A=
            if (Number(subInfo[param]))=0A=
                params[param] =3D parseInt(subInfo[param]);=0A=
        });=0A=
    }=0A=
=0A=
    params.action =3D action;=0A=
=0A=
    var reqInfo =3D {=0A=
        "method": "POST",=0A=
        "url":    LiveJournal.getAjaxUrl('esn_subs'),=0A=
        "data":   HTTPReq.formEncoded(params)=0A=
    };=0A=
=0A=
    var gotInfoCallback =3D function (info) {=0A=
        if (! info) return LJ_IPPU.showNote("Error changing =
subscription", btn);=0A=
=0A=
        if (info.error) return LJ_IPPU.showNote(info.error, btn);=0A=
=0A=
        if (info.success) {=0A=
            if (info.msg)=0A=
                LJ_IPPU.showNote(info.msg, btn);=0A=
=0A=
            if (info.subscribed) {=0A=
                if (info.subid)=0A=
                    DOM.setElementAttribute(btn, "lj_subid", info.subid);=0A=
                if (info.newentry_subid)=0A=
                    DOM.setElementAttribute(btn, "lj_newentry_subid", =
info.newentry_subid);=0A=
=0A=
                ["journalid", "arg1", "arg2", =
"etypeid"].forEach(function (param) {=0A=
                    DOM.setElementAttribute(btn, "lj_" + param, 0);=0A=
                });=0A=
=0A=
                DOM.setElementAttribute(btn, "title", 'Untrack This');=0A=
=0A=
                // update subthread tracking icons=0A=
                var dtalkid =3D btn.getAttribute("lj_dtalkid");=0A=
                if (dtalkid)=0A=
                    ESN.updateThreadIcons(dtalkid, "on");=0A=
                else // not thread tracking button=0A=
                    btn.src =3D Site.imgprefix + "/btn_tracking.gif";=0A=
            } else {=0A=
                if (info["event_class"] =3D=3D =
"LJ::Event::JournalNewComment")=0A=
                    DOM.setElementAttribute(btn, "lj_subid", 0);=0A=
                else if (info["event_class"] =3D=3D =
"LJ::Event::JournalNewEntry")=0A=
                    DOM.setElementAttribute(btn, "lj_newentry_subid", 0);=0A=
=0A=
                ["journalid", "arg1", "arg2", =
"etypeid"].forEach(function (param) {=0A=
                    DOM.setElementAttribute(btn, "lj_" + param, =
info[param]);=0A=
                });=0A=
=0A=
                DOM.setElementAttribute(btn, "title", 'Track This');=0A=
=0A=
                // update subthread tracking icons=0A=
                var dtalkid =3D btn.getAttribute("lj_dtalkid");=0A=
                if (dtalkid) {=0A=
                    // set state to "off" if no parents tracking this,=0A=
                    // otherwise set state to "parent"=0A=
                    var state =3D "off";=0A=
                    var parentBtn;=0A=
                    var parent_dtalkid =3D dtalkid;=0A=
                    while (parentBtn =3D =
ESN.getThreadParentBtn(parent_dtalkid)) {=0A=
                        parent_dtalkid =3D =
parentBtn.getAttribute("lj_dtalkid");=0A=
                        if (! parent_dtalkid) {=0A=
                            log("could not find parent_dtalkid");=0A=
                            break;=0A=
                        }=0A=
=0A=
                        if (! Number(parentBtn.getAttribute("lj_subid")))=0A=
                            continue;=0A=
                        state =3D "parent";=0A=
                        break;=0A=
                    }=0A=
=0A=
                    ESN.updateThreadIcons(dtalkid, state);=0A=
                } else {=0A=
                    // not thread tracking button=0A=
                    btn.src =3D Site.imgprefix + "/btn_track.gif";=0A=
                }=0A=
            }=0A=
=0A=
            if (info.auth_token)=0A=
                DOM.setElementAttribute(btn, "lj_auth_token", =
info.auth_token);=0A=
            if (info.newentry_token)=0A=
                DOM.setElementAttribute(btn, "lj_newentry_token", =
info.newentry_token);=0A=
        }=0A=
    };=0A=
=0A=
    reqInfo.onData =3D gotInfoCallback;=0A=
    reqInfo.onError =3D function (err) { LJ_IPPU.showNote("Error: " + =
err) };=0A=
=0A=
    HTTPReq.getJSON(reqInfo);=0A=
};=0A=
=0A=
// given a dtalkid, find the track button for its parent comment (if any)=0A=
ESN.getThreadParentBtn =3D function (dtalkid) {=0A=
    var cmtInfo =3D LJ_cmtinfo[dtalkid + ""];=0A=
    if (! cmtInfo) {=0A=
        log("no comment info");=0A=
        return null;=0A=
    }=0A=
=0A=
    var parent_dtalkid =3D cmtInfo.parent;=0A=
    if (! parent_dtalkid)=0A=
        return null;=0A=
=0A=
    return $("lj_track_btn_" + parent_dtalkid);=0A=
};=0A=
=0A=
// update all the tracking icons under a parent comment=0A=
ESN.updateThreadIcons =3D function (dtalkid, tracking) {=0A=
    var btn =3D $("lj_track_btn_" + dtalkid);=0A=
    if (! btn) {=0A=
        log("no button");=0A=
        return;=0A=
    }=0A=
=0A=
    var cmtInfo =3D LJ_cmtinfo[dtalkid + ""];=0A=
    if (! cmtInfo) {=0A=
        log("no comment info");=0A=
        return;=0A=
    }=0A=
=0A=
    if (Number(btn.getAttribute("lj_subid")) && tracking !=3D "on") {=0A=
        // subscription already exists on this button, don't mess with it=0A=
        return;=0A=
    }=0A=
=0A=
    if (cmtInfo.rc && cmtInfo.rc.length) {=0A=
        // update children=0A=
        cmtInfo.rc.forEach(function (child_dtalkid) {=0A=
            window.setTimeout(function () {=0A=
                var state;=0A=
                switch (tracking) {=0A=
                case "on":=0A=
                    state =3D "parent";=0A=
                    break;=0A=
                case "off":=0A=
                    state =3D "off";=0A=
                    break;=0A=
                case "parent":=0A=
                    state =3D "parent";=0A=
                    break;=0A=
                default:=0A=
                    alert("Unknown tracking state " + tracking);=0A=
                    break;=0A=
                }=0A=
                ESN.updateThreadIcons(child_dtalkid, state);=0A=
            }, 300);=0A=
        });=0A=
    }=0A=
=0A=
    // update icon=0A=
    var uri;=0A=
    switch (tracking) {=0A=
        case "on":=0A=
            uri =3D "/btn_tracking.gif";=0A=
            break;=0A=
        case "off":=0A=
            uri =3D "/btn_track.gif";=0A=
            break;=0A=
        case "parent":=0A=
            uri =3D "/btn_tracking_thread.gif";=0A=
            break;=0A=
        default:=0A=
            alert("Unknown tracking state " + tracking);=0A=
            break;=0A=
    }=0A=
=0A=
    btn.src =3D Site.imgprefix + uri;=0A=
};=0A=
/*=0A=
  IPPU methods:=0A=
     init([innerHTML]) -- takes innerHTML as optional argument=0A=
     show() -- shows the popup=0A=
     hide() -- hides popup=0A=
     cancel() -- hides and calls cancel callback=0A=
=0A=
  Content setters:=0A=
     setContent(innerHTML) -- set innerHTML=0A=
     setContentElement(element) -- adds element as a child of the popup=0A=
=0A=
   Accessors:=0A=
     getElement() -- returns popup DIV element=0A=
     visible() -- returns whether the popup is visible or not=0A=
=0A=
   Titlebar:=0A=
     setTitlebar(show) -- true: show titlebar / false: no titlebar=0A=
     setTitle(title) -- sets the titlebar text=0A=
     getTitlebarElement() -- returns the titlebar element=0A=
     setTitlebarClass(className) -- set the class of the titlebar=0A=
=0A=
   Styling:=0A=
     setOverflow(overflow) -- sets ele.style.overflow to overflow=0A=
     addClass(className) -- adds class to popup=0A=
     removeClass(className) -- removes class to popup=0A=
=0A=
   Browser Hacks:=0A=
     setAutoHideSelects(autohide) -- when the popup is shown should it =
find all the selects=0A=
                                on the page and hide them (and show them =
again) (for IE)=0A=
=0A=
   Positioning/Sizing:=0A=
     setLocation(left, top) -- set popup location: will be pixels if =
units not specified=0A=
     setLeft(left) -- set left location=0A=
     setTop(top)   -- set top location=0A=
     setDimensions(width, height) -- set popup dimensions: will be =
pixels if units not specified=0A=
     setAutoCenter(x, y) -- what dimensions to auto-center=0A=
     center() -- centers popup on screen=0A=
     centerX() -- centers popup horizontally=0A=
     centerY() -- centers popup vertically=0A=
     setFixedPosition(fixed) -- should the popup stay fixed on the page =
when it scrolls?=0A=
     centerOnWidget(widget) -- center popup on this widget=0A=
     setAutoCenterCallback(callback) -- calls callback with this IPPU =
instance as a parameter=0A=
                                        for auto-centering. Some common =
built-in class methods=0A=
                                        you can use as callbacks are:=0A=
                                        IPPU.center=0A=
                                        IPPU.centerX=0A=
                                        IPPU.centerY=0A=
=0A=
     moveForward(amount) -- increases the zIndex by one or amount if =
specified=0A=
     moveBackward(amount) -- decreases the zIndex by one or amount if =
specified=0A=
=0A=
   Modality:=0A=
     setClickToClose(clickToClose) -- if clickToClose is true, clicking =
outside of the popup=0A=
                                      will close it=0A=
     setModal(modality) -- If modality is true, then popup will capture =
all mouse events=0A=
                     and optionally gray out the rest of the page. =
(overrides clickToClose)=0A=
     setOverlayVisible(visible) -- If visible is true, when this popup =
is on the page it=0A=
                                   will gray out the rest of the page if =
this is modal=0A=
=0A=
   Callbacks:=0A=
     setCancelledCallback(callback) -- call this when the dialog is =
closed through clicking=0A=
                                       outside, titlebar close button, =
etc...=0A=
     setHiddenCallback(callback) -- called when the dialog is closed in =
any fashion=0A=
=0A=
   Fading:=0A=
     setFadeIn(fadeIn) -- set whether or not to automatically fade the =
ippu in=0A=
     setFadeOut(fadeOut) -- set whether or not to automatically fade the =
ippu out=0A=
     setFadeSpeed(secs) -- sets fade speed=0A=
=0A=
  Class Methods:=0A=
   Handy callbacks:=0A=
     IPPU.center=0A=
     IPPU.centerX=0A=
     IPPU.centerY=0A=
   Browser testing:=0A=
     IPPU.isIE() -- is the browser internet exploder?=0A=
     IPPU.ieSafari() -- is this safari?=0A=
=0A=
////////////////////=0A=
=0A=
=0A=
ippu.setModalDenialCallback(IPPU.cssBorderFlash);=0A=
=0A=
=0A=
   private:=0A=
    Properties:=0A=
     ele -- DOM node of div=0A=
     shown -- boolean; if element is in DOM=0A=
     autoCenterX -- boolean; auto-center horiz=0A=
     autoCenterY -- boolean; auto-center vertical=0A=
     fixedPosition -- boolean; stay in fixed position when browser =
scrolls?=0A=
     titlebar -- titlebar element=0A=
     title -- string; text to go in titlebar=0A=
     showTitlebar -- boolean; whether or not to show titlebar=0A=
     content -- DIV containing user's specified content=0A=
     clickToClose -- boolean; clicking outside popup will close it=0A=
     clickHandlerSetup -- boolean; have we set up the click handlers?=0A=
     docOverlay -- DIV that overlays the document for capturing clicks=0A=
     modal -- boolean; capture all events and prevent user from doing =
anything=0A=
                       until dialog is dismissed=0A=
     visibleOverlay -- boolean; make overlay slightly opaque=0A=
     clickHandlerFunc -- function; function to handle document clicks=0A=
     resizeHandlerFunc -- function; function to handle document resizing=0A=
     autoCenterCallback -- function; what callback to call for =
auto-centering=0A=
     cancelledCallback -- function; called when dialog is cancelled=0A=
     setAutoHideSelects -- boolean; autohide all SELECT elements on the =
page when popup is visible=0A=
     hiddenSelects -- array; SELECT elements that have been hidden=0A=
     hiddenCallback -- funciton; called when dialog is hidden=0A=
     fadeIn, fadeOut, fadeSpeed -- fading settings=0A=
     fadeMode -- current fading mode (in, out) if there is fading going =
on=0A=
=0A=
    Methods:=0A=
     updateTitlebar() -- create titlebar if it doesn't exist,=0A=
                         hide it if titlebar =3D=3D false,=0A=
                         update titlebar text=0A=
     updateContent() -- makes sure all currently specified properties =
are applied=0A=
     setupClickCapture() -- if modal, create document-sized div overlay =
to capture click events=0A=
                            otherwise install document onclick handler=0A=
     removeClickHandlers() -- remove overlay, event handlers=0A=
     clickHandler() -- event handler for clicks=0A=
     updateOverlay() -- if we have an overlay, make sure it's where it =
should be and (in)visible=0A=
                        if it should be=0A=
     autoCenter() -- centers popup on screen according to autoCenterX =
and autoCenterY=0A=
     hideSelects() -- hide all select element on page=0A=
     showSelects() -- show all selects=0A=
     _hide () -- actually hides everything, called by hide(), which does =
fading if necessary=0A=
*/=0A=
=0A=
// this belongs somewhere else:=0A=
function changeOpac(id, opacity) {=0A=
    var e =3D  $(id);=0A=
    if (e && e.style) {=0A=
        var object =3D e.style;=0A=
        if (object) {=0A=
            //reduce flicker=0A=
            if (IPPU.isSafari() && opacity >=3D 100)=0A=
                opacity =3D 99.99;=0A=
=0A=
            // IE=0A=
            if (object.filters)=0A=
                object.filters.alpha.opacity =3D opacity * 100;=0A=
=0A=
            object.opacity =3D opacity;=0A=
        }=0A=
    }=0A=
}=0A=
=0A=
IPPU =3D new Class( Object, {=0A=
  setFixedPosition: function (fixed) {=0A=
    // no fixed position for IE=0A=
    if (IPPU.isIE())=0A=
      return;=0A=
=0A=
    this.fixedPosition =3D fixed;=0A=
    this.updateContent();=0A=
  },=0A=
=0A=
  clickHandler : function (evt) {=0A=
    if (!this.clickToClose) return;=0A=
    if (!this.visible()) return;=0A=
=0A=
    evt =3D Event.prep(evt);=0A=
    var target =3D evt.target;=0A=
    // don't do anything if inside the popup=0A=
    if (DOM.getAncestorsByClassName(target, "ippu", true).length > 0) =
return;=0A=
=0A=
    this.cancel();=0A=
  },=0A=
=0A=
  setCancelledCallback : function (callback) {=0A=
    this.cancelledCallback =3D callback;=0A=
  },=0A=
=0A=
  cancel : function () {=0A=
    if (this.cancelledCallback)=0A=
      this.cancelledCallback();=0A=
=0A=
    this.hide();=0A=
  },=0A=
=0A=
  setHiddenCallback: function (callback) {=0A=
    this.hiddenCallback =3D callback;=0A=
  },=0A=
=0A=
  setupClickCapture : function () {=0A=
    if (!this.visible() || this.clickHandlerSetup) return;=0A=
    if (!this.clickToClose && !this.modal) return;=0A=
=0A=
    this.clickHandlerFunc =3D this.clickHandler.bindEventListener(this);=0A=
=0A=
    if (this.modal) {=0A=
      // create document-sized div to capture events=0A=
      if (this.overlay) return; // wtf? shouldn't exist yet=0A=
=0A=
      this.overlay =3D document.createElement("div");=0A=
      this.overlay.style.position =3D "fixed";=0A=
      this.overlay.style.left =3D "0px";=0A=
      this.overlay.style.top =3D "0px";=0A=
      this.overlay.style.margin =3D "0px";=0A=
      this.overlay.style.padding =3D "0px";=0A=
      this.overlay.style.backgroundColor =3D "#000000";=0A=
=0A=
      this.ele.parentNode.insertBefore(this.overlay, this.ele);=0A=
      this.updateOverlay();=0A=
=0A=
      DOM.addEventListener(this.overlay, "click", this.clickHandlerFunc);=0A=
    } else {=0A=
      // simple document onclick handler=0A=
      DOM.addEventListener(document, "click", this.clickHandlerFunc);=0A=
    }=0A=
=0A=
    this.clickHandlerSetup =3D true;=0A=
  },=0A=
=0A=
  updateOverlay : function () {=0A=
    if (this.overlay) {=0A=
      var cd =3D DOM.getClientDimensions();=0A=
      this.overlay.style.width =3D (cd.x - 1) + "px";=0A=
      this.overlay.style.height =3D (cd.y - 1) + "px";=0A=
=0A=
      if (this.visibleOverlay) {=0A=
        this.overlay.backgroundColor =3D "#000000";=0A=
        changeOpac(this.overlay, 0.50);=0A=
      } else {=0A=
        this.overlay.backgroundColor =3D "#FFFFFF";=0A=
        changeOpac(this.overlay, 0.0);=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  resizeHandler : function (evt) {=0A=
    this.updateContent();=0A=
  },=0A=
=0A=
  removeClickHandlers : function () {=0A=
    if (!this.clickHandlerSetup) return;=0A=
=0A=
    var myself =3D this;=0A=
    var handlerFunc =3D function (evt) {=0A=
      myself.clickHandler(evt);=0A=
    };=0A=
=0A=
    DOM.removeEventListener(document, "click", this.clickHandlerFunc, =
false);=0A=
=0A=
    if (this.overlay) {=0A=
      DOM.removeEventListener(this.overlay, "click", =
this.clickHandlerFunc, true);=0A=
      this.overlay.parentNode.removeChild(this.overlay);=0A=
      this.overlay =3D undefined;=0A=
    }=0A=
=0A=
    this.clickHandlerFunc =3D undefined;=0A=
    this.clickHandlerSetup =3D false;=0A=
  },=0A=
=0A=
  setClickToClose : function (clickToClose) {=0A=
    this.clickToClose =3D clickToClose;=0A=
=0A=
    if (!this.clickHandlerSetup && clickToClose && this.visible()) {=0A=
      // popup is already visible, need to set up click handler=0A=
      var setupClickCaptureCallback =3D =
this.setupClickCapture.bind(this);=0A=
      window.setTimeout(setupClickCaptureCallback, 100);=0A=
    } else if (!clickToClose && this.clickHandlerSetup) {=0A=
      this.removeClickHandlers();=0A=
    }=0A=
=0A=
    this.updateContent();=0A=
  },=0A=
=0A=
  setModal : function (modal) {=0A=
    var changed =3D (this.modal =3D=3D modal);=0A=
=0A=
    // if it's modal, we don't want click-to-close=0A=
    if (modal)=0A=
      this.setClickToClose(false);=0A=
=0A=
    this.modal =3D modal;=0A=
    if (changed) {=0A=
      this.removeClickHandlers();=0A=
      this.updateContent();=0A=
    }=0A=
  },=0A=
=0A=
  setOverlayVisible : function (vis) {=0A=
    this.visibleOverlay =3D vis;=0A=
    this.updateContent();=0A=
  },=0A=
=0A=
  updateContent : function () {=0A=
    this.autoCenter();=0A=
    this.updateTitlebar();=0A=
    this.updateOverlay();=0A=
    if (this.titlebar)=0A=
      this.setTitlebarClass(this.titlebar.className);=0A=
=0A=
    var setupClickCaptureCallback =3D this.setupClickCapture.bind(this);=0A=
    window.setTimeout(setupClickCaptureCallback, 100);=0A=
=0A=
    if (this.fixedPosition && this.ele.style.position !=3D "fixed")=0A=
      this.ele.style.position =3D "fixed";=0A=
    else if (!this.fixedPosition && this.ele.style.position =3D=3D =
"fixed")=0A=
      this.ele.style.position =3D "absolute";=0A=
  },=0A=
=0A=
  getTitlebarElement : function () {=0A=
    return this.titlebar;=0A=
  },=0A=
=0A=
  setTitlebarClass : function (className) {=0A=
    if (this.titlebar)=0A=
      this.titlebar.className =3D className;=0A=
  },=0A=
=0A=
  setOverflow : function (overflow) {=0A=
    if (this.ele)=0A=
      this.ele.style.overflow =3D overflow;=0A=
  },=0A=
=0A=
  visible : function () {=0A=
    return this.shown;=0A=
  },=0A=
=0A=
  setTitlebar : function (show) {=0A=
    this.showTitlebar =3D show;=0A=
=0A=
    if (show) {=0A=
      if (!this.titlebar) {=0A=
        // titlebar hasn't been created. Create it.=0A=
        var tbar =3D document.createElement("div");=0A=
        if (!tbar) return;=0A=
        tbar.style.width =3D "100%";=0A=
=0A=
        if (this.title) tbar.innerHTML =3D this.title;=0A=
        this.ele.insertBefore(tbar, this.content);=0A=
        this.titlebar =3D tbar;=0A=
=0A=
      }=0A=
    } else if (this.titlebar) {=0A=
      this.ele.removeChild(this.titlebar);=0A=
      this.titlebar =3D false;=0A=
    }=0A=
  },=0A=
=0A=
  setTitle : function (title) {=0A=
    this.title =3D title;=0A=
    this.updateTitlebar();=0A=
  },=0A=
=0A=
  updateTitlebar : function() {=0A=
    if (this.showTitlebar && this.titlebar && this.title !=3D =
this.titlebar.innerHTML) {=0A=
      this.titlebar.innerHTML =3D this.title;=0A=
    }=0A=
  },=0A=
=0A=
  addClass : function (className) {=0A=
    DOM.addClassName(this.ele, className);=0A=
  },=0A=
=0A=
  removeClass : function (className) {=0A=
    DOM.removeClassName(this.ele, className);=0A=
  },=0A=
=0A=
  setAutoCenterCallback : function (callback) {=0A=
    this.autoCenterCallback =3D callback;=0A=
  },=0A=
=0A=
  autoCenter : function () {=0A=
    if (!this.visible || !this.visible()) return;=0A=
=0A=
    if (this.autoCenterCallback) {=0A=
      this.autoCenterCallback(this);=0A=
      return;=0A=
    }=0A=
=0A=
    if (this.autoCenterX)=0A=
      this.centerX();=0A=
=0A=
    if (this.autoCenterY)=0A=
      this.centerY();=0A=
  },=0A=
=0A=
  center : function () {=0A=
    this.centerX();=0A=
    this.centerY();=0A=
  },=0A=
=0A=
  centerOnWidget : function (widget, offsetTop, offsetLeft) {=0A=
        offsetTop =3D offsetTop || 0;=0A=
        offsetLeft =3D offsetLeft || 0;=0A=
        this.setAutoCenter(false, false);=0A=
        this.setAutoCenterCallback(null);=0A=
  var wd =3D DOM.getAbsoluteDimensions(widget);=0A=
    var ed =3D DOM.getAbsoluteDimensions(this.ele);=0A=
    var newleft =3D (wd.absoluteRight - wd.offsetWidth / 2 - =
ed.offsetWidth / 2) + offsetLeft;=0A=
    var newtop =3D (wd.absoluteBottom - wd.offsetHeight / 2 - =
ed.offsetHeight / 2) + offsetTop;=0A=
=0A=
        newleft =3D newleft < 0 ? 0 : newleft;=0A=
        newtop  =3D newtop  < 0 ? 0 : newtop;=0A=
    DOM.setLeft(this.ele, newleft);=0A=
    DOM.setTop(this.ele, newtop);=0A=
  },=0A=
=0A=
  centerX : function () {=0A=
    if (!this.visible || !this.visible()) return;=0A=
=0A=
    var cd =3D DOM.getClientDimensions();=0A=
    var newleft =3D cd.x / 2 - DOM.getDimensions(this.ele).offsetWidth / =
2;=0A=
=0A=
    // If not fixed position, center relative to the left of the page=0A=
    if (!this.fixedPosition) {=0A=
        var wd =3D DOM.getWindowScroll();=0A=
        newleft +=3D wd.left;=0A=
    }=0A=
=0A=
   DOM.setLeft(this.ele, newleft);=0A=
  },=0A=
=0A=
  centerY : function () {=0A=
    if (!this.visible || !this.visible()) return;=0A=
=0A=
    var cd =3D DOM.getClientDimensions();=0A=
    var newtop =3D cd.y / 2 - DOM.getDimensions(this.ele).offsetHeight / =
2;=0A=
=0A=
    // If not fixed position, center relative to the top of the page=0A=
    if (!this.fixedPosition) {=0A=
        var wd =3D DOM.getWindowScroll();=0A=
        newtop +=3D wd.top;=0A=
    }=0A=
=0A=
    DOM.setTop(this.ele, newtop);=0A=
  },=0A=
=0A=
  setAutoCenter : function (autoCenterX, autoCenterY) {=0A=
    this.autoCenterX =3D autoCenterX || false;=0A=
    this.autoCenterY =3D autoCenterY || false;=0A=
=0A=
    if (!autoCenterX && !autoCenterY) {=0A=
        this.setAutoCenterCallback(null);=0A=
        return;=0A=
    }=0A=
=0A=
    this.autoCenter();=0A=
  },=0A=
=0A=
  setDimensions : function (width, height) {=0A=
    width =3D width + "";=0A=
    height =3D height + "";=0A=
    if (width.match(/^\d+$/)) width +=3D "px";=0A=
    if (height.match(/^\d+$/)) height +=3D "px";=0A=
=0A=
    this.ele.style.width  =3D width;=0A=
    this.ele.style.height =3D height;=0A=
  },=0A=
=0A=
  moveForward : function (howMuch) {=0A=
      if (!howMuch) howMuch =3D 1;=0A=
      if (! this.ele) return;=0A=
=0A=
      this.ele.style.zIndex +=3D howMuch;=0A=
  },=0A=
=0A=
  moveBackward : function (howMuch) {=0A=
      if (!howMuch) howMuch =3D 1;=0A=
      if (! this.ele) return;=0A=
=0A=
      this.ele.style.zIndex -=3D howMuch;=0A=
  },=0A=
=0A=
  setLocation : function (left, top) {=0A=
      this.setLeft(left);=0A=
      this.setTop(top);=0A=
  },=0A=
=0A=
  setTop : function (top) {=0A=
    top =3D top + "";=0A=
    if (top.match(/^\d+$/)) top +=3D "px";=0A=
    this.ele.style.top =3D top;=0A=
  },=0A=
=0A=
  setLeft : function (left) {=0A=
    left =3D left + "";=0A=
    if (left.match(/^\d+$/)) left +=3D "px";=0A=
    this.ele.style.left =3D left;=0A=
  },=0A=
=0A=
  getElement : function () {=0A=
    return this.ele;=0A=
  },=0A=
=0A=
  setContent : function (html) {=0A=
    this.content.innerHTML =3D html;=0A=
  },=0A=
=0A=
  setContentElement : function (element) {=0A=
      // remove child nodes=0A=
      while (this.content.firstChild) {=0A=
          this.content.removeChild(this.content.firstChild);=0A=
      };=0A=
=0A=
    this.content.appendChild(element);=0A=
  },=0A=
=0A=
  setFadeIn : function (fadeIn) {=0A=
      this.fadeIn =3D fadeIn;=0A=
  },=0A=
=0A=
  setFadeOut : function (fadeOut) {=0A=
      this.fadeOut =3D fadeOut;=0A=
  },=0A=
=0A=
  setFadeSpeed : function (fadeSpeed) {=0A=
      this.fadeSpeed =3D fadeSpeed;=0A=
  },=0A=
=0A=
  show : function () {=0A=
    this.shown =3D true;=0A=
=0A=
    if (this.fadeIn) {=0A=
        var opp =3D 0.01;=0A=
=0A=
        changeOpac(this.ele, opp);=0A=
    }=0A=
=0A=
    document.body.appendChild(this.ele);=0A=
    this.ele.style.position =3D "absolute";=0A=
    if (this.autoCenterX || this.autoCenterY) this.center();=0A=
=0A=
    this.updateContent();=0A=
=0A=
    if (!this.resizeHandlerFunc) {=0A=
      this.resizeHandlerFunc =3D =
this.resizeHandler.bindEventListener(this);=0A=
      DOM.addEventListener(window, "resize", this.resizeHandlerFunc, =
false);=0A=
    }=0A=
=0A=
    if (this.fadeIn)=0A=
        this.fade("in");=0A=
=0A=
    this.hideSelects();=0A=
  },=0A=
=0A=
  fade : function (mode, callback) {=0A=
      var opp;=0A=
      var delta;=0A=
=0A=
      var steps =3D 10.0;=0A=
=0A=
      if (mode =3D=3D "in") {=0A=
          delta =3D 1 / steps;=0A=
          opp =3D 0.1;=0A=
      } else {=0A=
          if (this.ele.style.opacity)=0A=
          opp =3D finiteFloat(this.ele.style.opacity);=0A=
          else=0A=
          opp =3D 0.99;=0A=
=0A=
          delta =3D -1 / steps;=0A=
      }=0A=
=0A=
      var fadeSpeed =3D this.fadeSpeed;=0A=
      if (!fadeSpeed) fadeSpeed =3D 1;=0A=
=0A=
      var fadeInterval =3D steps / fadeSpeed * 5;=0A=
=0A=
      this.fadeMode =3D mode;=0A=
=0A=
      var self =3D this;=0A=
      var fade =3D function () {=0A=
          opp +=3D delta;=0A=
=0A=
          // did someone start a fade in the other direction? if so,=0A=
          // cancel this fade=0A=
          if (self.fadeMode && self.fadeMode !=3D mode) {=0A=
              if (callback)=0A=
                  callback.call(self, []);=0A=
=0A=
              return;=0A=
          }=0A=
=0A=
          if (opp <=3D 0.1) {=0A=
              if (callback)=0A=
                  callback.call(self, []);=0A=
=0A=
              self.fadeMode =3D null;=0A=
=0A=
              return;=0A=
          } else if (opp >=3D 1.0) {=0A=
              if (callback)=0A=
                  callback.call(self, []);=0A=
=0A=
              self.fadeMode =3D null;=0A=
=0A=
              return;=0A=
          } else {=0A=
              changeOpac(self.ele, opp);=0A=
              window.setTimeout(fade, fadeInterval);=0A=
          }=0A=
      };=0A=
=0A=
      fade();=0A=
  },=0A=
=0A=
  hide : function () {=0A=
    if (! this.visible()) return;=0A=
=0A=
    if (this.fadeOut && this.ele) {=0A=
        this.fade("out", this._hide.bind(this));=0A=
    } else {=0A=
        this._hide();=0A=
    }=0A=
  },=0A=
=0A=
  _hide : function () {=0A=
    if (this.hiddenCallback)=0A=
      this.hiddenCallback();=0A=
=0A=
    this.shown =3D false;=0A=
    this.removeClickHandlers();=0A=
=0A=
    if (this.ele)=0A=
    document.body.removeChild(this.ele);=0A=
=0A=
    if (this.resizeHandlerFunc)=0A=
      DOM.removeEventListener(window, "resize", this.resizeHandlerFunc);=0A=
=0A=
    this.showSelects();=0A=
  },=0A=
=0A=
  // you probably want this for IE being dumb=0A=
  // (IE thinks select elements are cool and puts them in front of every =
element on the page)=0A=
  setAutoHideSelects : function (autohide) {=0A=
    this.autoHideSelects =3D autohide;=0A=
    this.updateContent();=0A=
  },=0A=
=0A=
  hideSelects : function () {=0A=
    if (!this.autoHideSelects || !IPPU.isIE()) return;=0A=
    var sels =3D document.getElementsByTagName("select");=0A=
    var ele;=0A=
    for (var i =3D 0; i < sels.length; i++) {=0A=
      ele =3D sels[i];=0A=
      if (!ele) continue;=0A=
=0A=
      // if this element is inside the ippu, skip it=0A=
      if (DOM.getAncestorsByClassName(ele, "ippu", true).length > 0) =
continue;=0A=
=0A=
      if (ele.style.visibility !=3D 'hidden') {=0A=
        ele.style.visibility =3D 'hidden';=0A=
        this.hiddenSelects.push(ele);=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  showSelects : function () {=0A=
    if (! this.autoHideSelects) return;=0A=
    var ele;=0A=
    while (ele =3D this.hiddenSelects.pop())=0A=
      ele.style.visibility =3D '';=0A=
  },=0A=
=0A=
  init: function (html) {=0A=
    var ele =3D document.createElement("div");=0A=
    this.ele =3D ele;=0A=
    this.shown =3D false;=0A=
    this.autoCenterX =3D false;=0A=
    this.autoCenterY =3D false;=0A=
    this.titlebar =3D null;=0A=
    this.title =3D "";=0A=
    this.showTitlebar =3D false;=0A=
    this.clickToClose =3D false;=0A=
    this.modal =3D false;=0A=
    this.clickHandlerSetup =3D false;=0A=
    this.docOverlay =3D false;=0A=
    this.visibleOverlay =3D false;=0A=
    this.clickHandlerFunc =3D false;=0A=
    this.resizeHandlerFunc =3D false;=0A=
    this.fixedPosition =3D false;=0A=
    this.autoCenterCallback =3D null;=0A=
    this.cancelledCallback =3D null;=0A=
    this.autoHideSelects =3D false;=0A=
    this.hiddenCallback =3D null;=0A=
    this.fadeOut =3D false;=0A=
    this.fadeIn =3D false;=0A=
    this.hiddenSelects =3D [];=0A=
    this.fadeMode =3D null;=0A=
=0A=
    ele.style.position =3D "absolute";=0A=
    ele.style.zIndex   =3D "1000";=0A=
=0A=
    // plz don't remove thx=0A=
    DOM.addClassName(ele, "ippu");=0A=
=0A=
    // create DIV to hold user's content=0A=
    this.content =3D document.createElement("div");=0A=
=0A=
    this.content.innerHTML =3D html;=0A=
=0A=
    this.ele.appendChild(this.content);=0A=
  }=0A=
});=0A=
=0A=
// class methods=0A=
IPPU.center =3D function (obj) {=0A=
  obj.centerX();=0A=
  obj.centerY();=0A=
};=0A=
=0A=
IPPU.centerX =3D function (obj) {=0A=
  obj.centerX();=0A=
};=0A=
=0A=
IPPU.centerY =3D function (obj) {=0A=
  obj.centerY();=0A=
};=0A=
=0A=
IPPU.isIE =3D function () {=0A=
    var UA =3D navigator.userAgent.toLowerCase();=0A=
    if (UA.indexOf('msie') !=3D -1) return true;=0A=
    return false;=0A=
};=0A=
=0A=
IPPU.isSafari =3D function () {=0A=
    var UA =3D navigator.userAgent.toLowerCase();=0A=
    if (UA.indexOf('safari') !=3D -1) return true;=0A=
    return false;=0A=
};=0A=
LJ_IPPU =3D new Class ( IPPU, {=0A=
  init: function(title) {=0A=
    if (!title)=0A=
      title =3D "";=0A=
=0A=
    LJ_IPPU.superClass.init.apply(this, []);=0A=
=0A=
    this.uniqId =3D this.generateUniqId();=0A=
    this.cancelThisFunc =3D this.cancel.bind(this);=0A=
=0A=
    this.setTitle(title);=0A=
    this.setTitlebar(true);=0A=
    this.setTitlebarClass("lj_ippu_titlebar");=0A=
=0A=
    this.addClass("lj_ippu");=0A=
=0A=
    this.setAutoCenterCallback(IPPU.center);=0A=
    this.setDimensions(400, "auto");=0A=
    this.setOverflow("hidden");=0A=
=0A=
    this.setFixedPosition(true);=0A=
    this.setClickToClose(true);=0A=
    this.setAutoHideSelects(true);=0A=
  },=0A=
=0A=
  setTitle: function (title) {=0A=
    var titlebarContent =3D "\=0A=
      <div style=3D'float:right; padding-right: 8px'>" +=0A=
      "<img src=3D'" + Site.imgprefix + "/CloseButton.gif' width=3D'15' =
height=3D'15' id=3D'" + this.uniqId + "_cancel' /></div>" + title;=0A=
=0A=
    LJ_IPPU.superClass.setTitle.apply(this, [titlebarContent]);=0A=
  },=0A=
=0A=
  generateUniqId: function() {=0A=
    var theDate =3D new Date();=0A=
    return "lj_ippu_" + theDate.getHours() + theDate.getMinutes() + =
theDate.getMilliseconds();=0A=
  },=0A=
=0A=
  show: function() {=0A=
    LJ_IPPU.superClass.show.apply(this);=0A=
    var setupCallback =3D this.setup_lj_ippu.bind(this);=0A=
    window.setTimeout(setupCallback, 300);=0A=
  },=0A=
=0A=
  setup_lj_ippu: function (evt) {=0A=
    var cancelCallback =3D this.cancelThisFunc;=0A=
    DOM.addEventListener($(this.uniqId + "_cancel"), "click", =
cancelCallback, true);=0A=
  },=0A=
=0A=
  hide: function() {=0A=
    DOM.removeEventListener($(this.uniqId + "_cancel"), "click", =
this.cancelThisFunc, true);=0A=
    LJ_IPPU.superClass.hide.apply(this);=0A=
  }=0A=
} );=0A=
=0A=
// Class method to show a popup to show a note to the user=0A=
// note =3D message to show=0A=
// underele =3D element to display the note underneath=0A=
LJ_IPPU.showNote =3D function (note, underele, timeout, style) {=0A=
    var noteElement =3D document.createElement("div");=0A=
    noteElement.innerHTML =3D note;=0A=
=0A=
    return LJ_IPPU.showNoteElement(noteElement, underele, timeout, =
style);=0A=
};=0A=
=0A=
LJ_IPPU.showErrorNote =3D function (note, underele, timeout) {=0A=
    return LJ_IPPU.showNote(note, underele, timeout, "ErrorNote");=0A=
};=0A=
=0A=
LJ_IPPU.showNoteElement =3D function (noteEle, underele, timeout, style) =
{=0A=
    var notePopup =3D new IPPU();=0A=
    notePopup.init();=0A=
=0A=
    var inner =3D document.createElement("div");=0A=
    DOM.addClassName(inner, "Inner");=0A=
    inner.appendChild(noteEle);=0A=
    notePopup.setContentElement(inner);=0A=
=0A=
    notePopup.setTitlebar(false);=0A=
    notePopup.setFadeIn(true);=0A=
    notePopup.setFadeOut(true);=0A=
    notePopup.setFadeSpeed(4);=0A=
    notePopup.setDimensions("auto", "auto");=0A=
    if (!style) style =3D "Note";=0A=
    notePopup.addClass(style);=0A=
=0A=
    var dim;=0A=
    if (underele) {=0A=
        // pop up the box right under the element=0A=
        dim =3D DOM.getAbsoluteDimensions(underele);=0A=
        if (!dim) return;=0A=
    }=0A=
=0A=
    var bounds =3D DOM.getClientDimensions();=0A=
    if (!bounds) return;=0A=
=0A=
    if (!dim) {=0A=
        // no element specified to pop up on, show in the middle=0A=
        // notePopup.setModal(true);=0A=
        // notePopup.setOverlayVisible(true);=0A=
        notePopup.setAutoCenter(true, true);=0A=
        notePopup.show();=0A=
    } else {=0A=
        // default is to auto-center, don't want that=0A=
        notePopup.setAutoCenter(false, false);=0A=
        notePopup.setLocation(dim.absoluteLeft, dim.absoluteBottom + 4);=0A=
        notePopup.show();=0A=
=0A=
        var popupBounds =3D =
DOM.getAbsoluteDimensions(notePopup.getElement());=0A=
        if (popupBounds.absoluteRight > bounds.x) {=0A=
            notePopup.setLocation(bounds.x - popupBounds.offsetWidth - =
30, dim.absoluteBottom + 4);=0A=
        }=0A=
    }=0A=
=0A=
    notePopup.setClickToClose(true);=0A=
    notePopup.moveForward();=0A=
=0A=
    if (! defined(timeout)) {=0A=
        timeout =3D 5000;=0A=
    }=0A=
=0A=
    if (timeout) {=0A=
        window.setTimeout(function () {=0A=
            if (notePopup)=0A=
                notePopup.hide();=0A=
        }, timeout);=0A=
    }=0A=
=0A=
    return notePopup;=0A=
};=0A=
=0A=
LJ_IPPU.textPrompt =3D function (title, prompt, callback) {=0A=
    title +=3D '';=0A=
    var notePopup =3D new LJ_IPPU(title);=0A=
=0A=
    var inner =3D document.createElement("div");=0A=
    DOM.addClassName(inner, "ljippu_textprompt");=0A=
=0A=
    // label=0A=
    if (prompt)=0A=
        inner.appendChild(_textDiv(prompt));=0A=
=0A=
    // text field=0A=
    var field =3D document.createElement("textarea");=0A=
    DOM.addClassName(field, "htmlfield");=0A=
    field.cols =3D 40;=0A=
    field.rows =3D 5;=0A=
    inner.appendChild(field);=0A=
=0A=
    // submit btn=0A=
    var btncont =3D document.createElement("div");=0A=
    DOM.addClassName(btncont, "submitbtncontainer");=0A=
    var btn =3D document.createElement("input");=0A=
    DOM.addClassName(btn, "submitbtn");=0A=
    btn.type =3D "button";=0A=
    btn.value =3D "Insert";=0A=
    btncont.appendChild(btn);=0A=
    inner.appendChild(btncont);=0A=
=0A=
    notePopup.setContentElement(inner);=0A=
=0A=
    notePopup.setAutoCenter(true, true);=0A=
    notePopup.setDimensions("60%", "auto");=0A=
    notePopup.show();=0A=
    field.focus();=0A=
=0A=
    DOM.addEventListener(btn, "click", function (e) {=0A=
        notePopup.hide();=0A=
        if (callback)=0A=
            callback.apply(null, [field.value]);=0A=
    });=0A=
}=0A=
// LiveJournal javascript standard interface routines=0A=
=0A=
// create a little animated hourglass at (x,y) with a unique-ish ID=0A=
// returns the element created=0A=
Hourglass =3D new Class( Object, {=0A=
  init: function(widget, classname) {=0A=
    this.ele =3D document.createElement("img");=0A=
    if (!this.ele) return;=0A=
=0A=
    var imgprefix =3D Site ? Site.imgprefix : '';=0A=
=0A=
    this.ele.src =3D imgprefix ? imgprefix + "/hourglass.gif" : =
"/img/hourglass.gif";=0A=
    this.ele.style.position =3D "absolute";=0A=
=0A=
    DOM.addClassName(this.ele, classname);=0A=
=0A=
    if (widget)=0A=
      this.hourglass_at_widget(widget);=0A=
  },=0A=
=0A=
  hourglass_at: function (x, y) {=0A=
    this.ele.width =3D 17;=0A=
    this.ele.height =3D 17;=0A=
    this.ele.style.top =3D (y - 8) + "px";=0A=
    this.ele.style.left =3D (x - 8) + "px";=0A=
=0A=
    // unique ID=0A=
    this.ele.id =3D "lj_hourglass" + x + "." + y;=0A=
=0A=
    document.body.appendChild(this.ele);=0A=
  },=0A=
=0A=
  add_class_name: function (classname) {=0A=
      if (this.ele)=0A=
      DOM.addClassName(this.ele, classname);=0A=
  },=0A=
=0A=
  hourglass_at_widget: function (widget) {=0A=
    var dim =3D DOM.getAbsoluteDimensions(widget);=0A=
    var x =3D dim.absoluteLeft;=0A=
    var y =3D dim.absoluteTop;=0A=
    var w =3D dim.absoluteRight - x;=0A=
    var h =3D dim.absoluteBottom - y;=0A=
    if (w && h) {=0A=
      x +=3D w/2;=0A=
      y +=3D h/2;=0A=
    }=0A=
    this.hourglass_at(x, y);=0A=
  },=0A=
=0A=
  hide: function () {=0A=
    if (this.ele) {=0A=
      try {=0A=
        document.body.removeChild(this.ele);=0A=
      } catch (e) {}=0A=
    }=0A=
  }=0A=
=0A=
} );=0A=
var ContextualPopup =3D new Object;=0A=
=0A=
ContextualPopup.popupDelay  =3D 500;=0A=
ContextualPopup.hideDelay   =3D 250;=0A=
ContextualPopup.disableAJAX =3D false;=0A=
ContextualPopup.debug       =3D false;=0A=
=0A=
ContextualPopup.cachedResults   =3D {};=0A=
ContextualPopup.currentRequests =3D {};=0A=
ContextualPopup.mouseInTimer    =3D null;=0A=
ContextualPopup.mouseOutTimer   =3D null;=0A=
ContextualPopup.currentId       =3D null;=0A=
ContextualPopup.hourglass       =3D null;=0A=
ContextualPopup.elements        =3D {};=0A=
=0A=
ContextualPopup.setup =3D function () {=0A=
    // don't do anything if no remote=0A=
    if (!Site || !Site.ctx_popup) return;=0A=
=0A=
    // attach to all ljuser head icons=0A=
    var ljusers =3D DOM.getElementsByTagAndClassName(document, 'span', =
"ljuser");=0A=
=0A=
    var userElements =3D [];=0A=
    ljusers.forEach(function (ljuser) {=0A=
        var nodes =3D ljuser.getElementsByTagName("img");=0A=
        for (var i=3D0; i < nodes.length; i++) {=0A=
            var node =3D nodes.item(i);=0A=
=0A=
            // if the parent (a tag with link to userinfo) has userid in =
its URL, then=0A=
            // this is an openid user icon and we should use the userid=0A=
            var parent =3D node.parentNode;=0A=
            var userid;=0A=
            if (parent && parent.href && (userid =3D =
parent.href.match(/\?userid=3D(\d+)/i)))=0A=
                node.userid =3D userid[1];=0A=
            else=0A=
                node.username =3D ljuser.getAttribute("lj:user");=0A=
=0A=
            if (!node.username && !node.userid) continue;=0A=
=0A=
            userElements.push(node);=0A=
            DOM.addClassName(node, "ContextualPopup");=0A=
=0A=
            // remove alt tag so IE doesn't show the label over the popup=0A=
            node.alt =3D "";=0A=
        }=0A=
    });=0A=
=0A=
    // attach to all userpics=0A=
    var images =3D document.getElementsByTagName("img") || [];=0A=
    Array.prototype.forEach.call(images, function (image) {=0A=
        // if the image url matches a regex for userpic urls then attach =
to it=0A=
        if (image.src.match(/userpic\..+\/\d+\/\d+/) ||=0A=
            image.src.match(/\/userpic\/\d+\/\d+/)) {=0A=
            image.up_url =3D image.src;=0A=
            DOM.addClassName(image, "ContextualPopup");=0A=
            userElements.push(image);=0A=
=0A=
            // remove alt tag so IE doesn't show the label over the popup=0A=
            image.alt =3D "";=0A=
        }=0A=
    });=0A=
=0A=
    var ctxPopupId =3D 1;=0A=
    userElements.forEach(function (userElement) {=0A=
        ContextualPopup.elements[ctxPopupId + ""] =3D userElement;=0A=
        userElement.ctxPopupId =3D ctxPopupId++;=0A=
    });=0A=
=0A=
    DOM.addEventListener(document.body, "mousemove", =
ContextualPopup.mouseOver.bindEventListener());=0A=
}=0A=
=0A=
ContextualPopup.isCtxPopElement =3D function (ele) {=0A=
    return (ele && DOM.getAncestorsByClassName(ele, "ContextualPopup", =
true).length);=0A=
}=0A=
=0A=
ContextualPopup.mouseOver =3D function (e) {=0A=
    var target =3D e.target;=0A=
    var ctxPopupId =3D target.ctxPopupId;=0A=
=0A=
    // if the ctxpopup class isn't fully loaded and set up yet,=0A=
    // skip the event handling for now=0A=
    if (!eval("ContextualPopup") || !ContextualPopup.isCtxPopElement) =
return;=0A=
=0A=
    // did the mouse move out?=0A=
    if (!target || !ContextualPopup.isCtxPopElement(target)) {=0A=
        if (ContextualPopup.mouseInTimer) {=0A=
            window.clearTimeout(ContextualPopup.mouseInTimer);=0A=
            ContextualPopup.mouseInTimer =3D null;=0A=
        };=0A=
=0A=
        if (ContextualPopup.ippu) {=0A=
            if (ContextualPopup.mouseInTimer || =
ContextualPopup.mouseOutTimer) return;=0A=
=0A=
            ContextualPopup.mouseOutTimer =3D window.setTimeout(function =
() {=0A=
                ContextualPopup.mouseOut(e);=0A=
            }, ContextualPopup.hideDelay);=0A=
            return;=0A=
        }=0A=
    }=0A=
=0A=
    // we're inside a ctxPopElement, cancel the mouseout timer=0A=
    if (ContextualPopup.mouseOutTimer) {=0A=
        window.clearTimeout(ContextualPopup.mouseOutTimer);=0A=
        ContextualPopup.mouseOutTimer =3D null;=0A=
    }=0A=
=0A=
    if (!ctxPopupId)=0A=
    return;=0A=
=0A=
    var cached =3D ContextualPopup.cachedResults[ctxPopupId + ""];=0A=
=0A=
    // if we don't have cached data background request it=0A=
    if (!cached) {=0A=
        ContextualPopup.getInfo(target);=0A=
    }=0A=
=0A=
    // start timer if it's not running=0A=
    if (! ContextualPopup.mouseInTimer && (! ContextualPopup.ippu || (=0A=
                                                                      =
ContextualPopup.currentId &&=0A=
                                                                      =
ContextualPopup.currentId !=3D ctxPopupId))) {=0A=
        ContextualPopup.mouseInTimer =3D window.setTimeout(function () {=0A=
            ContextualPopup.showPopup(ctxPopupId);=0A=
        }, ContextualPopup.popupDelay);=0A=
    }=0A=
}=0A=
=0A=
// if the popup was not closed by us catch it and handle it=0A=
ContextualPopup.popupClosed =3D function () {=0A=
    ContextualPopup.mouseOut();=0A=
}=0A=
=0A=
ContextualPopup.mouseOut =3D function (e) {=0A=
    if (ContextualPopup.mouseInTimer)=0A=
        window.clearTimeout(ContextualPopup.mouseInTimer);=0A=
    if (ContextualPopup.mouseOutTimer)=0A=
        window.clearTimeout(ContextualPopup.mouseOutTimer);=0A=
=0A=
    ContextualPopup.mouseInTimer =3D null;=0A=
    ContextualPopup.mouseOutTimer =3D null;=0A=
    ContextualPopup.currentId =3D null;=0A=
=0A=
    ContextualPopup.hidePopup();=0A=
}=0A=
=0A=
ContextualPopup.showPopup =3D function (ctxPopupId) {=0A=
    if (ContextualPopup.mouseInTimer) {=0A=
        window.clearTimeout(ContextualPopup.mouseInTimer);=0A=
    }=0A=
    ContextualPopup.mouseInTimer =3D null;=0A=
=0A=
    if (ContextualPopup.ippu && (ContextualPopup.currentId && =
ContextualPopup.currentId =3D=3D ctxPopupId)) {=0A=
        return;=0A=
    }=0A=
=0A=
    ContextualPopup.currentId =3D ctxPopupId;=0A=
=0A=
    ContextualPopup.constructIPPU(ctxPopupId);=0A=
=0A=
    var ele =3D ContextualPopup.elements[ctxPopupId + ""];=0A=
    var data =3D ContextualPopup.cachedResults[ctxPopupId + ""];=0A=
=0A=
    if (! ele || (data && data.noshow)) {=0A=
        return;=0A=
    }=0A=
=0A=
    if (ContextualPopup.ippu) {=0A=
        var ippu =3D ContextualPopup.ippu;=0A=
        // default is to auto-center, don't want that=0A=
        ippu.setAutoCenter(false, false);=0A=
=0A=
        // pop up the box right under the element=0A=
        var dim =3D DOM.getAbsoluteDimensions(ele);=0A=
        if (!dim) return;=0A=
=0A=
        var bounds =3D DOM.getClientDimensions();=0A=
        if (!bounds) return;=0A=
=0A=
        // hide the ippu content element, put it on the page,=0A=
        // get its bounds and make sure it's not going beyond the client=0A=
        // viewport. if the element is beyond the right bounds scoot it =
to the left.=0A=
=0A=
        var popEle =3D ippu.getElement();=0A=
        popEle.style.visibility =3D "hidden";=0A=
        ContextualPopup.ippu.setLocation(dim.absoluteLeft, =
dim.absoluteBottom);=0A=
=0A=
        // put the content element on the page so its dimensions can be =
found=0A=
        ContextualPopup.ippu.show();=0A=
=0A=
        var ippuBounds =3D DOM.getAbsoluteDimensions(popEle);=0A=
        if (ippuBounds.absoluteRight > bounds.x) {=0A=
            ContextualPopup.ippu.setLocation(bounds.x - =
ippuBounds.offsetWidth - 30, dim.absoluteBottom);=0A=
        }=0A=
=0A=
        // finally make the content visible=0A=
        popEle.style.visibility =3D "visible";=0A=
    }=0A=
}=0A=
=0A=
ContextualPopup.constructIPPU =3D function (ctxPopupId) {=0A=
    if (ContextualPopup.ippu) {=0A=
        ContextualPopup.ippu.hide();=0A=
        ContextualPopup.ippu =3D null;=0A=
    }=0A=
=0A=
    var ippu =3D new IPPU();=0A=
    ippu.init();=0A=
    ippu.setTitlebar(false);=0A=
    ippu.setFadeOut(true);=0A=
    ippu.setFadeIn(true);=0A=
    ippu.setFadeSpeed(15);=0A=
    ippu.setDimensions("auto", "auto");=0A=
    ippu.addClass("ContextualPopup");=0A=
    ippu.setCancelledCallback(ContextualPopup.popupClosed);=0A=
    ContextualPopup.ippu =3D ippu;=0A=
=0A=
    ContextualPopup.renderPopup(ctxPopupId);=0A=
}=0A=
=0A=
ContextualPopup.renderPopup =3D function (ctxPopupId) {=0A=
    var ippu =3D ContextualPopup.ippu;=0A=
=0A=
    if (!ippu)=0A=
    return;=0A=
=0A=
    if (ctxPopupId) {=0A=
        var data =3D ContextualPopup.cachedResults[ctxPopupId];=0A=
=0A=
        if (!data) {=0A=
            ippu.setContent("<div class=3D'Inner'>Loading...</div>");=0A=
            return;=0A=
        } else if (!data.username || !data.success || data.noshow) {=0A=
            ippu.hide();=0A=
            return;=0A=
        }=0A=
=0A=
        var username =3D data.display_username;=0A=
=0A=
        var inner =3D document.createElement("div");=0A=
        DOM.addClassName(inner, "Inner");=0A=
=0A=
        var content =3D document.createElement("div");=0A=
        DOM.addClassName(content, "Content");=0A=
=0A=
        var bar =3D document.createElement("span");=0A=
        bar.innerHTML =3D " | ";=0A=
=0A=
        // userpic=0A=
        if (data.url_userpic && data.url_userpic !=3D =
ContextualPopup.elements[ctxPopupId].src) {=0A=
            var userpicContainer =3D document.createElement("div");=0A=
            var userpicLink =3D document.createElement("a");=0A=
            userpicLink.href =3D data.url_allpics;=0A=
            var userpic =3D document.createElement("img");=0A=
            userpic.src =3D data.url_userpic;=0A=
            userpic.width =3D data.userpic_w;=0A=
            userpic.height =3D data.userpic_h;=0A=
=0A=
            userpicContainer.appendChild(userpicLink);=0A=
            userpicLink.appendChild(userpic);=0A=
            DOM.addClassName(userpicContainer, "Userpic");=0A=
=0A=
            inner.appendChild(userpicContainer);=0A=
        }=0A=
=0A=
        inner.appendChild(content);=0A=
=0A=
        // relation=0A=
        var relation =3D document.createElement("div");=0A=
        if (data.is_comm) {=0A=
            if (data.is_member)=0A=
                relation.innerHTML =3D "You are a member of " + username;=0A=
            else if (data.is_friend)=0A=
                relation.innerHTML =3D "You are watching " + username;=0A=
            else=0A=
                relation.innerHTML =3D username;=0A=
        } else if (data.is_syndicated) {=0A=
            if (data.is_friend)=0A=
                relation.innerHTML =3D "You are subscribed to " + =
username;=0A=
            else=0A=
                relation.innerHTML =3D username;=0A=
        } else {=0A=
            if (data.is_requester) {=0A=
                relation.innerHTML =3D "This is you";=0A=
            } else {=0A=
                var label =3D username + " ";=0A=
=0A=
                if (data.is_friend_of) {=0A=
                    if (data.is_friend)=0A=
                        label +=3D "is your mutual friend";=0A=
                    else=0A=
                        label +=3D "lists you as a friend";=0A=
                } else {=0A=
                    if (data.is_friend)=0A=
                        label +=3D "is your friend";=0A=
                }=0A=
=0A=
                relation.innerHTML =3D label;=0A=
            }=0A=
        }=0A=
        DOM.addClassName(relation, "Relation");=0A=
        content.appendChild(relation);=0A=
=0A=
        // add site-specific content here=0A=
        var extraContent =3D LiveJournal.run_hook("ctxpopup_extrainfo", =
data);=0A=
        if (extraContent) {=0A=
            content.appendChild(extraContent);=0A=
        }=0A=
=0A=
        // member of community=0A=
        if (data.is_logged_in && data.is_comm) {=0A=
            var membership      =3D document.createElement("span");=0A=
            var membershipLink  =3D document.createElement("a");=0A=
=0A=
            var membership_action =3D data.is_member ? "leave" : "join";=0A=
=0A=
            if (data.is_member) {=0A=
                membershipLink.href =3D data.url_leavecomm;=0A=
                membershipLink.innerHTML =3D "Leave";=0A=
            } else {=0A=
                membershipLink.href =3D data.url_joincomm;=0A=
                membershipLink.innerHTML =3D "Join community";=0A=
            }=0A=
=0A=
            if (!ContextualPopup.disableAJAX) {=0A=
                DOM.addEventListener(membershipLink, "click", function =
(e) {=0A=
                    Event.prep(e);=0A=
                    Event.stop(e);=0A=
                    return ContextualPopup.changeRelation(data, =
ctxPopupId, membership_action, e); });=0A=
            }=0A=
=0A=
            membership.appendChild(membershipLink);=0A=
            content.appendChild(membership);=0A=
        }=0A=
=0A=
        // send message=0A=
        var message;=0A=
        if (data.is_logged_in && data.is_person && ! data.is_requester =
&& data.url_message) {=0A=
            message =3D document.createElement("span");=0A=
=0A=
            var sendmessage =3D document.createElement("a");=0A=
            sendmessage.href =3D data.url_message;=0A=
            sendmessage.innerHTML =3D "Send message";=0A=
=0A=
            message.appendChild(sendmessage);=0A=
        }=0A=
=0A=
        if (message)=0A=
            content.appendChild(message);=0A=
=0A=
        // friend=0A=
        var friend;=0A=
        if (data.is_logged_in && ! data.is_requester) {=0A=
            friend =3D document.createElement("span");=0A=
=0A=
            if (! data.is_friend) {=0A=
                // add friend link=0A=
                var addFriend =3D document.createElement("span");=0A=
                var addFriendLink =3D document.createElement("a");=0A=
                addFriendLink.href =3D data.url_addfriend;=0A=
=0A=
                if (data.is_comm)=0A=
                    addFriendLink.innerHTML =3D "Watch community";=0A=
                else if (data.is_syndicated)=0A=
                    addFriendLink.innerHTML =3D "Subscribe to feed";=0A=
                else=0A=
                    addFriendLink.innerHTML =3D "Add friend";=0A=
=0A=
                addFriend.appendChild(addFriendLink);=0A=
                DOM.addClassName(addFriend, "AddFriend");=0A=
=0A=
                if (!ContextualPopup.disableAJAX) {=0A=
                    DOM.addEventListener(addFriendLink, "click", =
function (e) {=0A=
                        Event.prep(e);=0A=
                        Event.stop(e);=0A=
                        return ContextualPopup.changeRelation(data, =
ctxPopupId, "addFriend", e); });=0A=
                }=0A=
=0A=
                friend.appendChild(addFriend);=0A=
            } else {=0A=
                // remove friend link (omg!)=0A=
                var removeFriend =3D document.createElement("span");=0A=
                var removeFriendLink =3D document.createElement("a");=0A=
                removeFriendLink.href =3D data.url_addfriend;=0A=
=0A=
                if (data.is_comm)=0A=
                    removeFriendLink.innerHTML =3D "Stop watching";=0A=
                else if (data.is_syndicated)=0A=
                    removeFriendLink.innerHTML =3D "Unsubscribe";=0A=
                else=0A=
                    removeFriendLink.innerHTML =3D "Remove friend";=0A=
=0A=
                removeFriend.appendChild(removeFriendLink);=0A=
                DOM.addClassName(removeFriend, "RemoveFriend");=0A=
=0A=
                if (!ContextualPopup.disableAJAX) {=0A=
                    DOM.addEventListener(removeFriendLink, "click", =
function (e) {=0A=
                        Event.stop(e);=0A=
                        return ContextualPopup.changeRelation(data, =
ctxPopupId, "removeFriend", e); });=0A=
                }=0A=
=0A=
                friend.appendChild(removeFriend);=0A=
            }=0A=
=0A=
            DOM.addClassName(relation, "FriendStatus");=0A=
        }=0A=
=0A=
        // add a bar between stuff if we have community actions=0A=
        if ((data.is_logged_in && data.is_comm) || (message && friend))=0A=
            content.appendChild(bar.cloneNode(true));=0A=
=0A=
        if (friend)=0A=
            content.appendChild(friend);=0A=
=0A=
        // break=0A=
        if (data.is_logged_in && !data.is_requester) =
content.appendChild(document.createElement("br"));=0A=
=0A=
        // view label=0A=
        var viewLabel =3D document.createElement("span");=0A=
        viewLabel.innerHTML =3D "View: ";=0A=
        content.appendChild(viewLabel);=0A=
=0A=
        // journal=0A=
        if (data.is_person || data.is_comm || data.is_syndicated) {=0A=
            var journalLink =3D document.createElement("a");=0A=
            journalLink.href =3D data.url_journal;=0A=
=0A=
            if (data.is_person)=0A=
                journalLink.innerHTML =3D "Journal";=0A=
            else if (data.is_comm)=0A=
                journalLink.innerHTML =3D "Community";=0A=
            else if (data.is_syndicated)=0A=
                journalLink.innerHTML =3D "Feed";=0A=
=0A=
            content.appendChild(journalLink);=0A=
            content.appendChild(bar.cloneNode(true));=0A=
        }=0A=
=0A=
        // profile=0A=
        var profileLink =3D document.createElement("a");=0A=
        profileLink.href =3D data.url_profile;=0A=
        profileLink.innerHTML =3D "Profile";=0A=
        content.appendChild(profileLink);=0A=
=0A=
        // clearing div=0A=
        var clearingDiv =3D document.createElement("div");=0A=
        DOM.addClassName(clearingDiv, "ljclear");=0A=
        clearingDiv.innerHTML =3D "&nbsp;";=0A=
        content.appendChild(clearingDiv);=0A=
=0A=
        ippu.setContentElement(inner);=0A=
    }=0A=
}=0A=
=0A=
// ajax request to change relation=0A=
ContextualPopup.changeRelation =3D function (info, ctxPopupId, action, =
evt) {=0A=
    if (!info) return true;=0A=
=0A=
    var postData =3D {=0A=
        "target": info.username,=0A=
        "action": action=0A=
    };=0A=
=0A=
    // get the authtoken=0A=
    var authtoken =3D info[action + "_authtoken"];=0A=
    if (!authtoken) log("no auth token for action" + action);=0A=
    postData.auth_token =3D authtoken;=0A=
=0A=
    // needed on journal subdomains=0A=
    var url =3D LiveJournal.getAjaxUrl("changerelation");=0A=
=0A=
    // callback from changing relation request=0A=
    var changedRelation =3D function (data) {=0A=
        if (ContextualPopup.hourglass) ContextualPopup.hideHourglass();=0A=
=0A=
        if (data.error) {=0A=
            ContextualPopup.showNote(data.error, ctxPopupId);=0A=
            return;=0A=
        }=0A=
=0A=
        if (data.note)=0A=
        ContextualPopup.showNote(data.note, ctxPopupId);=0A=
=0A=
        if (!data.success) return;=0A=
=0A=
        if (ContextualPopup.cachedResults[ctxPopupId + ""]) {=0A=
            var updatedProps =3D ["is_friend", "is_member"];=0A=
            updatedProps.forEach(function (prop) {=0A=
                ContextualPopup.cachedResults[ctxPopupId + ""][prop] =3D =
data[prop];=0A=
            });=0A=
        }=0A=
=0A=
        // if the popup is up, reload it=0A=
        ContextualPopup.renderPopup(ctxPopupId);=0A=
    };=0A=
=0A=
    var opts =3D {=0A=
        "data": HTTPReq.formEncoded(postData),=0A=
        "method": "POST",=0A=
        "url": url,=0A=
        "onError": ContextualPopup.gotError,=0A=
        "onData": changedRelation=0A=
    };=0A=
=0A=
    // do hourglass at mouse coords=0A=
    var mouseCoords =3D DOM.getAbsoluteCursorPosition(evt);=0A=
    if (!ContextualPopup.hourglass && mouseCoords) {=0A=
        ContextualPopup.hourglass =3D new Hourglass();=0A=
        ContextualPopup.hourglass.init(null, "lj_hourglass");=0A=
        ContextualPopup.hourglass.add_class_name("ContextualPopup"); // =
so mousing over hourglass doesn't make ctxpopup think mouse is outside=0A=
        ContextualPopup.hourglass.hourglass_at(mouseCoords.x, =
mouseCoords.y);=0A=
    }=0A=
=0A=
    HTTPReq.getJSON(opts);=0A=
=0A=
    return false;=0A=
}=0A=
=0A=
// create a little popup to notify the user of something=0A=
ContextualPopup.showNote =3D function (note, ctxPopupId) {=0A=
    var ele;=0A=
=0A=
    if (ContextualPopup.ippu) {=0A=
        // pop up the box right under the element=0A=
        ele =3D ContextualPopup.ippu.getElement();=0A=
    } else {=0A=
        if (ctxPopupId) {=0A=
            var ele =3D ContextualPopup.elements[ctxPopupId + ""];=0A=
        }=0A=
    }=0A=
=0A=
    LJ_IPPU.showNote(note, ele);=0A=
}=0A=
=0A=
ContextualPopup.hidePopup =3D function (ctxPopupId) {=0A=
    if (ContextualPopup.hourglass) ContextualPopup.hideHourglass();=0A=
=0A=
    // destroy popup for now=0A=
    if (ContextualPopup.ippu) {=0A=
        ContextualPopup.ippu.hide();=0A=
        ContextualPopup.ippu =3D null;=0A=
    }=0A=
}=0A=
=0A=
// do ajax request of user info=0A=
ContextualPopup.getInfo =3D function (target) {=0A=
    var ctxPopupId =3D target.ctxPopupId;=0A=
    var username =3D target.username;=0A=
    var userid =3D target.userid;=0A=
    var up_url =3D target.up_url;=0A=
=0A=
    if (!ctxPopupId)=0A=
    return;=0A=
=0A=
    if (ContextualPopup.currentRequests[ctxPopupId + ""]) {=0A=
        return;=0A=
    }=0A=
=0A=
    ContextualPopup.currentRequests[ctxPopupId] =3D 1;=0A=
=0A=
    if (!username) username =3D "";=0A=
    if (!userid) userid =3D 0;=0A=
    if (!up_url) up_url =3D "";=0A=
=0A=
    var params =3D HTTPReq.formEncoded ({=0A=
        "user": username,=0A=
            "userid": userid,=0A=
            "userpic_url": up_url,=0A=
            "mode": "getinfo"=0A=
    });=0A=
=0A=
    // needed on journal subdomains=0A=
    var url =3D LiveJournal.getAjaxUrl("ctxpopup");=0A=
    var url =3D Site.currentJournal ? "/" + Site.currentJournal + =
"/__rpc_ctxpopup" : "/__rpc_ctxpopup";=0A=
=0A=
    // got data callback=0A=
    var gotInfo =3D function (data) {=0A=
        if (ContextualPopup && ContextualPopup.hourglass) =
ContextualPopup.hideHourglass();=0A=
=0A=
        ContextualPopup.cachedResults[ctxPopupId] =3D data;=0A=
=0A=
        if (data.error) {=0A=
            if (data.noshow) return;=0A=
=0A=
            ContextualPopup.showNote(data.error, ctxPopupId);=0A=
            return;=0A=
        }=0A=
=0A=
        if (data.note)=0A=
        ContextualPopup.showNote(data.note, data.ctxPopupId);=0A=
=0A=
        ContextualPopup.currentRequests[ctxPopupId] =3D null;=0A=
=0A=
        ContextualPopup.renderPopup(ctxPopupId);=0A=
=0A=
        // expire cache after 5 minutes=0A=
        setTimeout(function () {=0A=
            ContextualPopup.cachedResults[ctxPopupId] =3D null;=0A=
        }, 60 * 1000);=0A=
    };=0A=
=0A=
    HTTPReq.getJSON({=0A=
        "url": url,=0A=
            "method" : "GET",=0A=
            "data": params,=0A=
            "onData": gotInfo,=0A=
            "onError": ContextualPopup.gotError=0A=
            });=0A=
}=0A=
=0A=
ContextualPopup.hideHourglass =3D function () {=0A=
    if (ContextualPopup.hourglass) {=0A=
        ContextualPopup.hourglass.hide();=0A=
        ContextualPopup.hourglass =3D null;=0A=
    }=0A=
}=0A=
=0A=
ContextualPopup.gotError =3D function (err) {=0A=
    if (ContextualPopup.hourglass) ContextualPopup.hideHourglass();=0A=
=0A=
    if (ContextualPopup.debug)=0A=
        ContextualPopup.showNote("Error: " + err);=0A=
}=0A=
=0A=
// when page loads, set up contextual popups=0A=
LiveJournal.register_hook("page_load", ContextualPopup.setup);=0A=
=0A=
// x_core.js, X v3.15.2, Cross-Browser.com DHTML Library=0A=
// Copyright (c) 2004 Michael Foster, Licensed LGPL (gnu.org)=0A=
=0A=
// global vars still duplicated in xlib.js - I still don't know what I'm =
going to do about this=0A=
var =
xVersion=3D'3.15.2',xNN4,xOp7,xOp5or6,xIE4Up,xIE4,xIE5,xMac,xUA=3Dnavigat=
or.userAgent.toLowerCase();=0A=
if (window.opera){=0A=
  xOp7=3D(xUA.indexOf('opera 7')!=3D-1 || xUA.indexOf('opera/7')!=3D-1);=0A=
  if (!xOp7) xOp5or6=3D(xUA.indexOf('opera 5')!=3D-1 || =
xUA.indexOf('opera/5')!=3D-1 || xUA.indexOf('opera 6')!=3D-1 || =
xUA.indexOf('opera/6')!=3D-1);=0A=
}=0A=
else if (document.all && xUA.indexOf('msie')!=3D-1) {=0A=
  xIE4Up=3DparseInt(navigator.appVersion)>=3D4;=0A=
  xIE4=3DxUA.indexOf('msie 4')!=3D-1;=0A=
  xIE5=3DxUA.indexOf('msie 5')!=3D-1;=0A=
}=0A=
else if (document.layers) {xNN4=3Dtrue;}=0A=
xMac=3DxUA.indexOf('mac')!=3D-1;=0A=
=0A=
function xGetElementById(e) {=0A=
  if(typeof(e)!=3D'string') return e;=0A=
  if(document.getElementById) e=3Ddocument.getElementById(e);=0A=
  else if(document.all) e=3Ddocument.all[e];=0A=
  else e=3Dnull;=0A=
  return e;=0A=
}=0A=
function xParent(e,bNode){=0A=
  if (!(e=3DxGetElementById(e))) return null;=0A=
  var p=3Dnull;=0A=
  if (!bNode && xDef(e.offsetParent)) p=3De.offsetParent;=0A=
  else if (xDef(e.parentNode)) p=3De.parentNode;=0A=
  else if (xDef(e.parentElement)) p=3De.parentElement;=0A=
  return p;=0A=
}=0A=
function xDef() {=0A=
  for(var i=3D0; i<arguments.length; =
++i){if(typeof(arguments[i])=3D=3D'undefined') return false;}=0A=
  return true;=0A=
}=0A=
function xStr(s) {=0A=
  for(var i=3D0; i<arguments.length; =
++i){if(typeof(arguments[i])!=3D'string') return false;}=0A=
  return true;=0A=
}=0A=
function xNum(n) {=0A=
  for(var i=3D0; i<arguments.length; =
++i){if(typeof(arguments[i])!=3D'number') return false;}=0A=
  return true;=0A=
}=0A=
function xShow(e) {=0A=
  if(!(e=3DxGetElementById(e))) return;=0A=
  if(e.style && xDef(e.style.visibility)) e.style.visibility=3D'visible';=0A=
}=0A=
function xHide(e) {=0A=
  if(!(e=3DxGetElementById(e))) return;=0A=
  if(e.style && xDef(e.style.visibility)) e.style.visibility=3D'hidden';=0A=
}=0A=
function xZIndex(e,uZ) {=0A=
  if(!(e=3DxGetElementById(e))) return 0;=0A=
  if(e.style && xDef(e.style.zIndex)) {=0A=
    if(xNum(uZ)) e.style.zIndex=3DuZ;=0A=
    uZ=3DparseInt(e.style.zIndex);=0A=
  }=0A=
  return uZ;=0A=
}=0A=
function xColor(e,sColor) {=0A=
  if(!(e=3DxGetElementById(e))) return '';=0A=
  var c=3D'';=0A=
  if(e.style && xDef(e.style.color)) {=0A=
    if(xStr(sColor)) e.style.color=3DsColor;=0A=
    c=3De.style.color;=0A=
  }=0A=
  return c;=0A=
}=0A=
function xBackground(e,sColor,sImage) {=0A=
  if(!(e=3DxGetElementById(e))) return '';=0A=
  var bg=3D'';=0A=
  if(e.style) {=0A=
    if(xStr(sColor)) {=0A=
      if(!xOp5or6) e.style.backgroundColor=3DsColor;=0A=
      else e.style.background=3DsColor;=0A=
    }=0A=
    if(xStr(sImage)) e.style.backgroundImage=3D(sImage!=3D'')? =
'url('+sImage+')' : null;=0A=
    if(!xOp5or6) bg=3De.style.backgroundColor;=0A=
    else bg=3De.style.background;=0A=
  }=0A=
  return bg;=0A=
}=0A=
function xMoveTo(e,iX,iY) {=0A=
  xLeft(e,iX);=0A=
  xTop(e,iY);=0A=
}=0A=
function xLeft(e,iX) {=0A=
  if(!(e=3DxGetElementById(e))) return 0;=0A=
  var css=3DxDef(e.style);=0A=
  if (css && xStr(e.style.left)) {=0A=
    if(xNum(iX)) e.style.left=3DiX+'px';=0A=
    else {=0A=
      iX=3DparseInt(e.style.left);=0A=
      if(isNaN(iX)) iX=3D0;=0A=
    }=0A=
  }=0A=
  else if(css && xDef(e.style.pixelLeft)) {=0A=
    if(xNum(iX)) e.style.pixelLeft=3DiX;=0A=
    else iX=3De.style.pixelLeft;=0A=
  }=0A=
  return iX;=0A=
}=0A=
function xTop(e,iY) {=0A=
  if(!(e=3DxGetElementById(e))) return 0;=0A=
  var css=3DxDef(e.style);=0A=
  if(css && xStr(e.style.top)) {=0A=
    if(xNum(iY)) e.style.top=3DiY+'px';=0A=
    else {=0A=
      iY=3DparseInt(e.style.top);=0A=
      if(isNaN(iY)) iY=3D0;=0A=
    }=0A=
  }=0A=
  else if(css && xDef(e.style.pixelTop)) {=0A=
    if(xNum(iY)) e.style.pixelTop=3DiY;=0A=
    else iY=3De.style.pixelTop;=0A=
  }=0A=
  return iY;=0A=
}=0A=
function xPageX(e) {=0A=
  if (!(e=3DxGetElementById(e))) return 0;=0A=
  var x =3D 0;=0A=
  while (e) {=0A=
    if (xDef(e.offsetLeft)) x +=3D e.offsetLeft;=0A=
    e =3D xDef(e.offsetParent) ? e.offsetParent : null;=0A=
  }=0A=
  return x;=0A=
}=0A=
function xPageY(e) {=0A=
  if (!(e=3DxGetElementById(e))) return 0;=0A=
  var y =3D 0;=0A=
  while (e) {=0A=
    if (xDef(e.offsetTop)) y +=3D e.offsetTop;=0A=
    e =3D xDef(e.offsetParent) ? e.offsetParent : null;=0A=
  }=0A=
//  if (xOp7) return y - document.body.offsetTop; // v3.14, temporary =
hack for opera bug 130324=0A=
  return y;=0A=
}=0A=
function xOffsetLeft(e) {=0A=
  if (!(e=3DxGetElementById(e))) return 0;=0A=
  if (xDef(e.offsetLeft)) return e.offsetLeft;=0A=
  else return 0;=0A=
}=0A=
function xOffsetTop(e) {=0A=
  if (!(e=3DxGetElementById(e))) return 0;=0A=
  if (xDef(e.offsetTop)) return e.offsetTop;=0A=
  else return 0;=0A=
}=0A=
function xScrollLeft(e) {=0A=
  var offset=3D0;=0A=
  if (!(e=3DxGetElementById(e))) {=0A=
    if(document.documentElement && document.documentElement.scrollLeft) =
offset=3Ddocument.documentElement.scrollLeft;=0A=
    else if(document.body && xDef(document.body.scrollLeft)) =
offset=3Ddocument.body.scrollLeft;=0A=
  }=0A=
  else { if (xNum(e.scrollLeft)) offset =3D e.scrollLeft; }=0A=
  return offset;=0A=
}=0A=
function xScrollTop(e) {=0A=
  var offset=3D0;=0A=
  if (!(e=3DxGetElementById(e))) {=0A=
    if(document.documentElement && document.documentElement.scrollTop) =
offset=3Ddocument.documentElement.scrollTop;=0A=
    else if(document.body && xDef(document.body.scrollTop)) =
offset=3Ddocument.body.scrollTop;=0A=
  }=0A=
  else { if (xNum(e.scrollTop)) offset =3D e.scrollTop; }=0A=
  return offset;=0A=
}=0A=
function xHasPoint(ele, iLeft, iTop, iClpT, iClpR, iClpB, iClpL) {=0A=
  if (!xNum(iClpT)){iClpT=3DiClpR=3DiClpB=3DiClpL=3D0;}=0A=
  else if (!xNum(iClpR)){iClpR=3DiClpB=3DiClpL=3DiClpT;}=0A=
  else if (!xNum(iClpB)){iClpL=3DiClpR; iClpB=3DiClpT;}=0A=
  var thisX =3D xPageX(ele), thisY =3D xPageY(ele);=0A=
  return (iLeft >=3D thisX + iClpL && iLeft <=3D thisX + xWidth(ele) - =
iClpR &&=0A=
          iTop >=3DthisY + iClpT && iTop <=3D thisY + xHeight(ele) - =
iClpB );=0A=
}=0A=
function xResizeTo(e,uW,uH) {=0A=
  xWidth(e,uW);=0A=
  xHeight(e,uH);=0A=
}=0A=
function xWidth(e,uW) {=0A=
  if(!(e=3DxGetElementById(e))) return 0;=0A=
  if (xNum(uW)) {=0A=
    if (uW<0) uW =3D 0;=0A=
    else uW=3DMath.round(uW);=0A=
  }=0A=
  else uW=3D-1;=0A=
  var css=3DxDef(e.style);=0A=
  if(css && xDef(e.offsetWidth) && xStr(e.style.width)) {=0A=
    if(uW>=3D0) xSetCW(e, uW);=0A=
    uW=3De.offsetWidth;=0A=
  }=0A=
  else if(css && xDef(e.style.pixelWidth)) {=0A=
    if(uW>=3D0) e.style.pixelWidth=3DuW;=0A=
    uW=3De.style.pixelWidth;=0A=
  }=0A=
  return uW;=0A=
}=0A=
function xHeight(e,uH) {=0A=
  if(!(e=3DxGetElementById(e))) return 0;=0A=
  if (xNum(uH)) {=0A=
    if (uH<0) uH =3D 0;=0A=
    else uH=3DMath.round(uH);=0A=
  }=0A=
  else uH=3D-1;=0A=
  var css=3DxDef(e.style);=0A=
  if(css && xDef(e.offsetHeight) && xStr(e.style.height)) {=0A=
    if(uH>=3D0) xSetCH(e, uH);=0A=
    uH=3De.offsetHeight;=0A=
  }=0A=
  else if(css && xDef(e.style.pixelHeight)) {=0A=
    if(uH>=3D0) e.style.pixelHeight=3DuH;=0A=
    uH=3De.style.pixelHeight;=0A=
  }=0A=
  return uH;=0A=
}=0A=
function xGetCS(ele,sP){return =
parseInt(document.defaultView.getComputedStyle(ele,'').getPropertyValue(s=
P));}=0A=
function xSetCW(ele,uW){=0A=
  var pl=3D0,pr=3D0,bl=3D0,br=3D0;=0A=
  if(xDef(document.defaultView) && =
xDef(document.defaultView.getComputedStyle)){=0A=
    pl=3DxGetCS(ele,'padding-left');=0A=
    pr=3DxGetCS(ele,'padding-right');=0A=
    bl=3DxGetCS(ele,'border-left-width');=0A=
    br=3DxGetCS(ele,'border-right-width');=0A=
  }=0A=
  else if(xDef(ele.currentStyle,document.compatMode)){=0A=
    if(document.compatMode=3D=3D'CSS1Compat'){=0A=
      pl=3DparseInt(ele.currentStyle.paddingLeft);=0A=
      pr=3DparseInt(ele.currentStyle.paddingRight);=0A=
      bl=3DparseInt(ele.currentStyle.borderLeftWidth);=0A=
      br=3DparseInt(ele.currentStyle.borderRightWidth);=0A=
    }=0A=
  }=0A=
  else if(xDef(ele.offsetWidth,ele.style.width)){ // ?=0A=
    ele.style.width=3DuW+'px';=0A=
    pl=3Dele.offsetWidth-uW;=0A=
  }=0A=
  if(isNaN(pl)) pl=3D0; if(isNaN(pr)) pr=3D0; if(isNaN(bl)) bl=3D0; =
if(isNaN(br)) br=3D0;=0A=
  var cssW=3DuW-(pl+pr+bl+br);=0A=
  if(isNaN(cssW)||cssW<0) return;=0A=
  else ele.style.width=3DcssW+'px';=0A=
}=0A=
function xSetCH(ele,uH){=0A=
  var pt=3D0,pb=3D0,bt=3D0,bb=3D0;=0A=
  if(xDef(document.defaultView) && =
xDef(document.defaultView.getComputedStyle)){=0A=
    pt=3DxGetCS(ele,'padding-top');=0A=
    pb=3DxGetCS(ele,'padding-bottom');=0A=
    bt=3DxGetCS(ele,'border-top-width');=0A=
    bb=3DxGetCS(ele,'border-bottom-width');=0A=
  }=0A=
  else if(xDef(ele.currentStyle,document.compatMode)){=0A=
    if(document.compatMode=3D=3D'CSS1Compat'){=0A=
      pt=3DparseInt(ele.currentStyle.paddingTop);=0A=
      pb=3DparseInt(ele.currentStyle.paddingBottom);=0A=
      bt=3DparseInt(ele.currentStyle.borderTopWidth);=0A=
      bb=3DparseInt(ele.currentStyle.borderBottomWidth);=0A=
    }=0A=
  }=0A=
  else if(xDef(ele.offsetHeight,ele.style.height)){ // ?=0A=
    ele.style.height=3DuH+'px';=0A=
    pt=3Dele.offsetHeight-uH;=0A=
  }=0A=
  if(isNaN(pt)) pt=3D0; if(isNaN(pb)) pb=3D0; if(isNaN(bt)) bt=3D0; =
if(isNaN(bb)) bb=3D0;=0A=
  var cssH=3DuH-(pt+pb+bt+bb);=0A=
  if(isNaN(cssH)||cssH<0) return;=0A=
  else ele.style.height=3DcssH+'px';=0A=
}=0A=
function xClip(e,iTop,iRight,iBottom,iLeft) {=0A=
  if(!(e=3DxGetElementById(e))) return;=0A=
  if(e.style) {=0A=
    if (xNum(iLeft)) e.style.clip=3D'rect('+iTop+'px '+iRight+'px =
'+iBottom+'px '+iLeft+'px)';=0A=
    else e.style.clip=3D'rect(0 '+parseInt(e.style.width)+'px =
'+parseInt(e.style.height)+'px 0)';=0A=
  }=0A=
}=0A=
function xClientWidth() {=0A=
  var w=3D0;=0A=
  if(xOp5or6) w=3Dwindow.innerWidth;=0A=
  else if(!window.opera && document.documentElement && =
document.documentElement.clientWidth)=0A=
    w=3Ddocument.documentElement.clientWidth;=0A=
  else if(document.body && document.body.clientWidth)=0A=
    w=3Ddocument.body.clientWidth;=0A=
  else if(xDef(window.innerWidth,window.innerHeight,document.height)) {=0A=
    w=3Dwindow.innerWidth;=0A=
    if(document.height>window.innerHeight) w-=3D16;=0A=
  }=0A=
  return w;=0A=
}=0A=
function xClientHeight() {=0A=
  var h=3D0;=0A=
  if(xOp5or6) h=3Dwindow.innerHeight;=0A=
  else if(!window.opera && document.documentElement && =
document.documentElement.clientHeight)=0A=
    h=3Ddocument.documentElement.clientHeight;=0A=
  else if(document.body && document.body.clientHeight)=0A=
    h=3Ddocument.body.clientHeight;=0A=
  else if(xDef(window.innerWidth,window.innerHeight,document.width)) {=0A=
    h=3Dwindow.innerHeight;=0A=
    if(document.width>window.innerWidth) h-=3D16;=0A=
  }=0A=
  return h;=0A=
}=0A=
function xInnerHtml(e, sHtml) {=0A=
  if(!(e=3DxGetElementById(e))) return '';=0A=
  if (xStr(e.innerHTML)) {=0A=
    if (xStr(sHtml)) e.innerHTML =3D sHtml;=0A=
    else return e.innerHTML;=0A=
  }=0A=
}=0A=
    var lastDiv;=0A=
    lastDiv =3D 'qrdiv';=0A=
=0A=
    var Site;=0A=
    if (! Site) Site =3D new Object()=0A=
=0A=
    function quickreply(dtid, pid, newsubject) {=0A=
        // Mac IE 5.x does not like dealing with=0A=
        // nextSibling since it does not support it=0A=
        if (xIE4Up && xMac) { return true; }=0A=
=0A=
        // on IE, cancel the bubble of the event up to the page. other=0A=
        // browsers don't seem to bubble events up registered this way.=0A=
        var ev =3D window.event;=0A=
        if (ev) {=0A=
            if (ev.stopPropagation)=0A=
               ev.stopPropagation();=0A=
            if (ev.cancelBubble !=3D "undefined")=0A=
                ev.cancelBubble =3D true;=0A=
        }=0A=
=0A=
        var targetname =3D "ljqrt" + dtid;=0A=
=0A=
        var ptalkid =3D xGetElementById('parenttalkid');=0A=
        var rto =3D xGetElementById('replyto');=0A=
        var dtid_field =3D xGetElementById('dtid');=0A=
        var qr_div =3D xGetElementById('qrdiv');=0A=
        var cur_div =3D xGetElementById(targetname);=0A=
        var qr_form_div  =3D xGetElementById('qrformdiv');=0A=
        var qr_form =3D xGetElementById('qrform');=0A=
        var subject =3D xGetElementById('subject');=0A=
=0A=
        // Is this a dumb browser?=0A=
        if( !ptalkid || !rto || !dtid_field || !qr_div || !cur_div || =
!qr_form || =0A=
            !qr_form_div || !subject) {=0A=
            return true;=0A=
        }=0A=
=0A=
        ptalkid.value =3D pid;=0A=
        dtid_field.value =3D dtid;=0A=
        rto.value =3D pid;=0A=
=0A=
        if (lastDiv =3D=3D 'qrdiv') {=0A=
            if (! showQRdiv(qr_div)) {=0A=
               return true;=0A=
            }=0A=
=0A=
            // Only one swap=0A=
            if (! swapnodes(qr_div, cur_div)) {=0A=
                return true;=0A=
            }=0A=
        } else if (lastDiv !=3D dtid) {=0A=
            var last_div =3D xGetElementById(lastDiv);=0A=
            // Two swaps=0A=
            if ((last_div !=3D cur_div) && ! (swapnodes(last_div, =
cur_div) && swapnodes(qr_div, last_div))) {=0A=
                return true;=0A=
            }=0A=
        }=0A=
=0A=
        lastDiv =3D targetname;=0A=
=0A=
        if(!subject.value) subject.value =3D newsubject;=0A=
=0A=
        if(cur_div.className) {=0A=
          qr_form_div.className =3D cur_div.className;=0A=
        } else {=0A=
          qr_form_div.className =3D "";=0A=
        }=0A=
=0A=
        var qr_body =3D qr_form.body;  // the textarea of the qr_form=0A=
        if (qr_body) {=0A=
            // have to set a timeout because most browsers won't let you =
focus=0A=
            // on an element that's still in the process of being =
created.=0A=
            // so lame.=0A=
            window.setTimeout(function () { qr_body.focus() }, 250);=0A=
        }=0A=
=0A=
        // So it does not follow the link=0A=
        return false;=0A=
    }=0A=
=0A=
    function regEvent (target, evt, func) {=0A=
      if (! target) { return; }=0A=
      if (target.attachEvent)=0A=
        target.attachEvent("on"+evt, func);=0A=
      if (target.addEventListener)=0A=
        target.addEventListener(evt, func, false);=0A=
    }=0A=
=0A=
    function moreopts()=0A=
    {=0A=
        var qr_form =3D xGetElementById('qrform');=0A=
        var basepath =3D xGetElementById('basepath');=0A=
        var dtid =3D xGetElementById('dtid');=0A=
        var pidform =3D xGetElementById('parenttalkid');=0A=
=0A=
        // do not do the default form action (post comment) if something =
is broke=0A=
        if (!qr_form || !basepath || !dtid || !pidform) return false;=0A=
=0A=
        var replyto =3D Number(dtid.value);=0A=
        var pid =3D Number(pidform.value);=0A=
=0A=
        if(replyto > 0 && pid > 0) {=0A=
          //a reply to a comment=0A=
          qr_form.action =3D basepath.value + "replyto=3D" + replyto;=0A=
        } else {=0A=
          qr_form.action =3D basepath.value + "mode=3Dreply";=0A=
        }=0A=
=0A=
        // we changed the form action so submit ourselves=0A=
        // and don't use the default form action=0A=
        qr_form.submit();=0A=
        return false;=0A=
    }=0A=
=0A=
   function submitform()=0A=
   {=0A=
        var submitmore =3D xGetElementById('submitmoreopts');=0A=
        var submit =3D xGetElementById('submitpost');=0A=
        if (!submitmore || !submit) return false;=0A=
=0A=
        submit.disabled =3D true;=0A=
        submitmore.disabled =3D true;=0A=
=0A=
        // New top-level comments=0A=
        var dtid =3D xGetElementById('dtid');=0A=
        if (!Number(dtid.value)) {=0A=
            dtid.value =3D+ 0;=0A=
        }=0A=
=0A=
        var qr_form =3D xGetElementById('qrform');=0A=
        qr_form.action =3D Site.siteroot + '/talkpost_do.bml';=0A=
        qr_form.submit();=0A=
=0A=
        // don't do default form action=0A=
        return false;=0A=
   }=0A=
=0A=
   function swapnodes (orig, to_swap) {=0A=
        var orig_pn =3D xParent(orig, true);=0A=
        var next_sibling =3D orig.nextSibling;=0A=
        var to_swap_pn =3D xParent(to_swap, true);=0A=
        if (! to_swap_pn) {=0A=
            return false;=0A=
        }=0A=
=0A=
        to_swap_pn.replaceChild(orig, to_swap);=0A=
        orig_pn.insertBefore(to_swap, next_sibling);=0A=
        return true;=0A=
   }=0A=
=0A=
   function checkLength() {=0A=
        var textbox =3D xGetElementById('body');=0A=
        if (!textbox) return true;=0A=
        if (textbox.value.length > 4300) {=0A=
             alert('Sorry, but your comment of ' + textbox.value.length =
+ ' characters exceeds the maximum character length of 4300.  Please try =
shortening it and then post again.');=0A=
             return false;=0A=
        }=0A=
        return true;=0A=
   }=0A=
=0A=
    // Maintain entry through browser navigations.=0A=
    function save_entry() {=0A=
        var qr_body =3D xGetElementById('body');=0A=
        if (!qr_body) return false;=0A=
        var qr_subject =3D xGetElementById('subject');=0A=
        var do_spellcheck =3D xGetElementById('do_spellcheck');=0A=
        var qr_dtid =3D xGetElementById('dtid');=0A=
        var qr_ptid =3D xGetElementById('parenttalkid');=0A=
        var qr_upic =3D xGetElementById('prop_picture_keyword');=0A=
=0A=
        var qr_saved_body =3D xGetElementById('saved_body');=0A=
        var qr_saved_subject =3D xGetElementById('saved_subject');=0A=
        var saved_do_spellcheck =3D xGetElementById('saved_spell');=0A=
        var qr_saved_dtid =3D xGetElementById('saved_dtid');=0A=
        var qr_saved_ptid =3D xGetElementById('saved_ptid');=0A=
        var qr_saved_upic =3D xGetElementById('saved_upic');=0A=
=0A=
        qr_saved_body.value =3D qr_body.value;=0A=
        qr_saved_subject.value =3D qr_subject.value;=0A=
        if(do_spellcheck) {=0A=
          saved_do_spellcheck.value =3D do_spellcheck.checked;=0A=
        }=0A=
=0A=
        qr_saved_dtid.value =3D qr_dtid.value;=0A=
        qr_saved_ptid.value =3D qr_ptid.value;=0A=
=0A=
        if (qr_upic) { // if it was in the form=0A=
            qr_saved_upic.value =3D qr_upic.selectedIndex;=0A=
        }=0A=
=0A=
        return false;=0A=
    }=0A=
=0A=
    // Restore saved_entry text across platforms.=0A=
    function restore_entry() {=0A=
        setTimeout(=0A=
            function () {=0A=
=0A=
                var saved_body =3D xGetElementById('saved_body');=0A=
                if (!saved_body || saved_body.value =3D=3D "") return =
false;=0A=
=0A=
                var dtid =3D xGetElementById('saved_dtid');=0A=
                if (! dtid) return false;=0A=
                var ptid =3D xGetElementById('saved_ptid');=0A=
                ptid.value =3D parseInt( ptid.value );=0A=
=0A=
                quickreply(dtid.value, ptid.value, saved_body.value);=0A=
=0A=
                var body =3D xGetElementById('body');=0A=
                if (! body) return false;=0A=
                body.value =3D saved_body.value;=0A=
=0A=
                // Some browsers require we explicitly set this after =
the div has moved=0A=
                // and is now no longer hidden=0A=
                var qr_saved_subject =3D =
xGetElementById('saved_subject');=0A=
                var qr_saved_spell =3D xGetElementById('saved_spell');=0A=
                var qr_saved_dtid =3D xGetElementById('saved_dtid');=0A=
                var qr_saved_ptid =3D xGetElementById('saved_ptid');=0A=
                var qr_saved_upic =3D xGetElementById('saved_upic');=0A=
=0A=
                var subject =3D xGetElementById('subject');=0A=
                if (! subject) return false;=0A=
                subject.value =3D qr_saved_subject.value=0A=
=0A=
                var prop_picture_keyword =3D =
xGetElementById('prop_picture_keyword');=0A=
                if (prop_picture_keyword) { // if it was in the form=0A=
                    prop_picture_keyword.selectedIndex =3D =
qr_saved_upic.value;=0A=
                }=0A=
=0A=
                var spell_check =3D xGetElementById('do_spellcheck');=0A=
                if (! spell_check) return false;=0A=
                if (qr_saved_spell.value =3D=3D 'true') {=0A=
                    spell_check.checked =3D true;=0A=
                } else {=0A=
                    spell_check.checked =3D false;=0A=
                }=0A=
=0A=
            }, 100);=0A=
        return false;=0A=
    }=0A=
=0A=
    function showQRdiv(qr_div) {=0A=
        if (! qr_div) {=0A=
            qr_div =3D xGetElementById('qrdiv');=0A=
            if (! qr_div) {=0A=
                return false;=0A=
            }=0A=
        } else if (qr_div.style && xDef(qr_div.style.display)) {=0A=
            qr_div.style.display=3D'inline';=0A=
            return true;=0A=
        } else {=0A=
            return false;=0A=
        }=0A=
    }=0A=
=0A=
    //after the functions have been defined, register them=0A=
    regEvent(window, 'load', restore_entry);=0A=
    regEvent(window, 'unload', save_entry);=0A=
// Browser Detect Lite  v2.1.4=0A=
// http://www.dithered.com/javascript/browser_detect/index.html=0A=
// modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)=0A=
// Modified further to detect rich text support=0A=
=0A=
function BrowserDetectLite() {=0A=
   var ua =3D navigator.userAgent.toLowerCase(); =0A=
=0A=
   // browser name=0A=
   this.isGecko     =3D (ua.indexOf('gecko') !=3D -1 && =
ua.indexOf('safari') =3D=3D -1);=0A=
   this.isMozilla   =3D (this.isGecko && ua.indexOf('gecko/') + 14 =
=3D=3D ua.length);=0A=
   this.isNS        =3D ( (this.isGecko) ? (ua.indexOf('netscape') !=3D =
-1) : ( (ua.indexOf('mozilla') !=3D -1) && (ua.indexOf('spoofer') =3D=3D =
-1) && (ua.indexOf('compatible') =3D=3D -1) && (ua.indexOf('opera') =
=3D=3D -1) && (ua.indexOf('webtv') =3D=3D -1) && (ua.indexOf('hotjava') =
=3D=3D -1) ) );=0A=
   this.isIE        =3D ( (ua.indexOf('msie') !=3D -1) && =
(ua.indexOf('opera') =3D=3D -1) && (ua.indexOf('webtv') =3D=3D -1) ); =0A=
   this.isSafari    =3D (ua.indexOf('safari') !=3D - 1);=0A=
   this.isOpera     =3D (ua.indexOf('opera') !=3D -1); =0A=
   this.isKonqueror =3D (ua.indexOf('konqueror') !=3D -1 && =
!this.isSafari); =0A=
   this.isIcab      =3D (ua.indexOf('icab') !=3D -1); =0A=
   this.isAol       =3D (ua.indexOf('aol') !=3D -1); =0A=
   this.isAppleWebKit =3D (ua.indexOf('applewebkit') !=3D -1);=0A=
   =0A=
   // spoofing and compatible browsers=0A=
   this.isIECompatible =3D ( (ua.indexOf('msie') !=3D -1) && !this.isIE);=0A=
   this.isNSCompatible =3D ( (ua.indexOf('mozilla') !=3D -1) && =
!this.isNS && !this.isMozilla);=0A=
   =0A=
   // browser version=0A=
   this.versionMinor =3D parseFloat(navigator.appVersion); =0A=
   =0A=
   // correct version number=0A=
   if (this.isNS && this.isGecko) {=0A=
      this.versionMinor =3D parseFloat( ua.substring( =
ua.lastIndexOf('/') + 1 ) );=0A=
   }=0A=
   else if (this.isIE && this.versionMinor >=3D 4) {=0A=
      this.versionMinor =3D parseFloat( ua.substring( ua.indexOf('msie =
') + 5 ) );=0A=
   }=0A=
   else if (this.isMozilla) {=0A=
      this.versionMinor =3D parseFloat( ua.substring( ua.indexOf('rv:') =
+ 3 ) );=0A=
   }=0A=
   else if (this.isSafari) {=0A=
      this.versionMinor =3D parseFloat( ua.substring( =
ua.lastIndexOf('/') + 1 ) );=0A=
   }=0A=
   else if (this.isOpera) {=0A=
      if (ua.indexOf('opera/') !=3D -1) {=0A=
         this.versionMinor =3D parseFloat( ua.substring( =
ua.indexOf('opera/') + 6 ) );=0A=
      }=0A=
      else {=0A=
         this.versionMinor =3D parseFloat( ua.substring( =
ua.indexOf('opera ') + 6 ) );=0A=
      }=0A=
   }=0A=
   else if (this.isKonqueror) {=0A=
      this.versionMinor =3D parseFloat( ua.substring( =
ua.indexOf('konqueror/') + 10 ) );=0A=
   }=0A=
   else if (this.isIcab) {=0A=
      if (ua.indexOf('icab/') !=3D -1) {=0A=
         this.versionMinor =3D parseFloat( ua.substring( =
ua.indexOf('icab/') + 6 ) );=0A=
      }=0A=
      else {=0A=
         this.versionMinor =3D parseFloat( ua.substring( =
ua.indexOf('icab ') + 6 ) );=0A=
      }=0A=
   }=0A=
   =0A=
   this.versionMajor =3D parseInt(this.versionMinor); =0A=
   this.geckoVersion =3D ( (this.isGecko) ? ua.substring( =
(ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );=0A=
	//  GECKO REVISION=0A=
	this.geckoRevision =3D -1;=0A=
	if (this.isGecko) {=0A=
		temp =3D ua.split("rv:");=0A=
		this.geckoRevision =3D parseFloat(temp[1]);=0A=
	}=0A=
   =0A=
   // dom support=0A=
   this.isDOM1 =3D (document.getElementById);=0A=
   this.isDOM2Event =3D (document.addEventListener && =
document.removeEventListener);=0A=
   =0A=
   // css compatibility mode=0A=
   this.mode =3D document.compatMode ? document.compatMode : =
'BackCompat';=0A=
=0A=
   // platform=0A=
   this.isWin   =3D (ua.indexOf('win') !=3D -1);=0A=
   this.isWin32 =3D (this.isWin && ( ua.indexOf('95') !=3D -1 || =
ua.indexOf('98') !=3D -1 || ua.indexOf('nt') !=3D -1 || =
ua.indexOf('win32') !=3D -1 || ua.indexOf('32bit') !=3D -1 || =
ua.indexOf('xp') !=3D -1) );=0A=
   this.isMac   =3D (ua.indexOf('mac') !=3D -1);=0A=
   this.isUnix  =3D (ua.indexOf('unix') !=3D -1 || ua.indexOf('sunos') =
!=3D -1 || ua.indexOf('bsd') !=3D -1 || ua.indexOf('x11') !=3D -1)=0A=
   this.isLinux =3D (ua.indexOf('linux') !=3D -1);=0A=
   =0A=
   // specific browser shortcuts=0A=
   this.isNS4x =3D (this.isNS && this.versionMajor =3D=3D 4);=0A=
   this.isNS40x =3D (this.isNS4x && this.versionMinor < 4.5);=0A=
   this.isNS47x =3D (this.isNS4x && this.versionMinor >=3D 4.7);=0A=
   this.isNS4up =3D (this.isNS && this.versionMinor >=3D 4);=0A=
   this.isNS6x =3D (this.isNS && this.versionMajor =3D=3D 6);=0A=
   this.isNS6up =3D (this.isNS && this.versionMajor >=3D 6);=0A=
   this.isNS7x =3D (this.isNS && this.versionMajor =3D=3D 7);=0A=
   this.isNS7up =3D (this.isNS && this.versionMajor >=3D 7);=0A=
   =0A=
   this.isIE4x =3D (this.isIE && this.versionMajor =3D=3D 4);=0A=
   this.isIE4up =3D (this.isIE && this.versionMajor >=3D 4);=0A=
   this.isIE5x =3D (this.isIE && this.versionMajor =3D=3D 5);=0A=
   this.isIE55 =3D (this.isIE && this.versionMinor =3D=3D 5.5);=0A=
   this.isIE55up =3D (this.isIE && this.versionMinor >=3D 5.5);=0A=
   this.isIE5up =3D (this.isIE && this.versionMajor >=3D 5);=0A=
   this.isIE6x =3D (this.isIE && this.versionMajor =3D=3D 6);=0A=
   this.isIE6up =3D (this.isIE && this.versionMajor >=3D 6);=0A=
   =0A=
   this.isIE4xMac =3D (this.isIE4x && this.isMac);=0A=
=0A=
   this.isRichText =3D this.isIE55up ? true : false;=0A=
   if (this.isGecko || this.isAppleWebKit || this.isOpera) {=0A=
        if (document.designMode && document.execCommand) { =
this.isRichText =3D true; }=0A=
   }=0A=
}=0A=
var browser =3D new BrowserDetectLite();=0A=
=0A=
    window.threadExpanders  =3D []=0A=
=0A=
    function threadExpander( url, id, srcObj )=0A=
    {=0A=
=0A=
        this.url            =3D url.replace( /#.*$/, '' )=0A=
        this.threadId       =3D id=0A=
        this.caller         =3D srcObj=0A=
        this.destination    =3D document.getElementById( 'expand' + id )=0A=
        this.id             =3D window.threadExpanders.length=0A=
=0A=
        window.threadExpanders.push( this )=0A=
        return this.get()=0A=
    }=0A=
=0A=
=0A=
    threadExpander.prototype.get    =3D function()=0A=
    {=0A=
        var thisTE      =3D this=0A=
=0A=
        this.inProgress( true )=0A=
        if (browser.isIE)=0A=
            this.iObj       =3D document.createElement('<iframe =
onload=3D"threadExpanders['+this.id+'].parse()" src=3D"'+this.url+'" =
style=3D"width:1px;height:1px;disaply:none;">')=0A=
        else=0A=
        {=0A=
            this.iObj       =3D document.createElement('iframe')=0A=
            with (this.iObj.style)=0A=
            {=0A=
                height  =3D '1px'=0A=
                widht   =3D '1px'=0A=
                display =3D 'none'=0A=
            }=0A=
            this.iObj.onload    =3D function() { return thisTE.parse() }=0A=
            this.iObj.src       =3D this.url=0A=
        }=0A=
=0A=
        document.body.appendChild( this.iObj )=0A=
        return true=0A=
    }=0A=
=0A=
    threadExpander.prototype.parse  =3D function()=0A=
    {=0A=
        var iDoc    =3D this.iObj.contentDocument || =
this.iObj.contentWindow=0A=
        if (iDoc.document)=0A=
            iDoc    =3D iDoc.document=0A=
=0A=
        var comment =3D iDoc.getElementById( 'expand' + this.threadId )=0A=
        if (comment)=0A=
        {=0A=
            this.destination.innerHTML  =3D comment.innerHTML=0A=
            for (var k in this.iObj.contentWindow.LJ_cmtinfo)=0A=
                LJ_cmtinfo[k] =3D this.iObj.contentWindow.LJ_cmtinfo[ k ]=0A=
            ContextualPopup.setup()=0A=
        }=0A=
        var iObjLocal =3D this.iObj;=0A=
        setTimeout(function() { =
iObjLocal.parentNode.removeChild(iObjLocal) }, 10000);=0A=
        //this.iObj.parentNode.removeChild( this.iObj )=0A=
        return true=0A=
    }=0A=
=0A=
    threadExpander.prototype.inProgress =3D function( inProgress )=0A=
    {=0A=
        if (inProgress)=0A=
            this.caller.appendChild=0A=
            (=0A=
                =
document.getElementById('thread_loader_img').firstChild.cloneNode( false =
)=0A=
            )=0A=
        return true=0A=
    }=0A=
=0A=
var Site;=0A=
if (! Site) Site =3D new Object();=0A=
=0A=
// called by S2:=0A=
function setStyle (did, attr, val) {=0A=
    if (! document.getElementById) return;=0A=
    var de =3D document.getElementById(did);=0A=
    if (! de) return;=0A=
    if (de.style)=0A=
        de.style[attr] =3D val=0A=
}=0A=
=0A=
// called by S2:=0A=
function setInner (did, val) {=0A=
    if (! document.getElementById) return;=0A=
    var de =3D document.getElementById(did);=0A=
    if (! de) return;=0A=
    de.innerHTML =3D val;=0A=
}=0A=
=0A=
// called by S2:=0A=
function hideElement (did) {=0A=
    if (! document.getElementById) return;=0A=
    var de =3D document.getElementById(did);=0A=
    if (! de) return;=0A=
    de.style.display =3D 'none';=0A=
}=0A=
=0A=
// called by S2:=0A=
function setAttr (did, attr, classname) {=0A=
    if (! document.getElementById) return;=0A=
    var de =3D document.getElementById(did);=0A=
    if (! de) return;=0A=
    de.setAttribute(attr, classname);=0A=
}=0A=
=0A=
function getXTR () {=0A=
    var xtr;=0A=
    var ex;=0A=
=0A=
    if (typeof(XMLHttpRequest) !=3D "undefined") {=0A=
        xtr =3D new XMLHttpRequest();=0A=
    } else {=0A=
        try {=0A=
            xtr =3D new ActiveXObject("Msxml2.XMLHTTP.4.0");=0A=
        } catch (ex) {=0A=
            try {=0A=
                xtr =3D new ActiveXObject("Msxml2.XMLHTTP");=0A=
            } catch (ex) {=0A=
            }=0A=
        }=0A=
    }=0A=
=0A=
    // let me explain this.  Opera 8 does XMLHttpRequest, but not =
setRequestHeader.=0A=
    // no problem, we thought:  we'll test for setRequestHeader and if =
it's not present=0A=
    // then fall back to the old behavior (treat it as not working).  =
BUT --- IE6 won't=0A=
    // let you even test for setRequestHeader without throwing an =
exception (you need=0A=
    // to call .open on the .xtr first or something)=0A=
    try {=0A=
        if (xtr && ! xtr.setRequestHeader)=0A=
            xtr =3D null;=0A=
    } catch (ex) { }=0A=
=0A=
    return xtr;=0A=
}=0A=
=0A=
// push new element 'ne' after sibling 'oe' old element=0A=
function addAfter (oe, ne) {=0A=
    if (oe.nextSibling) {=0A=
        oe.parentNode.insertBefore(ne, oe.nextSibling);=0A=
    } else {=0A=
        oe.parentNode.appendChild(ne);=0A=
    }=0A=
}=0A=
=0A=
// hsv to rgb=0A=
// h, s, v =3D [0, 1), [0, 1], [0, 1]=0A=
// r, g, b =3D [0, 255], [0, 255], [0, 255]=0A=
function hsv_to_rgb (h, s, v)=0A=
{=0A=
    if (s =3D=3D 0) {=0A=
	v *=3D 255;=0A=
	return [v,v,v];=0A=
    }=0A=
=0A=
    h *=3D 6;=0A=
    var i =3D Math.floor(h);=0A=
    var f =3D h - i;=0A=
    var p =3D v * (1 - s);=0A=
    var q =3D v * (1 - s * f);=0A=
    var t =3D v * (1 - s * (1 - f));=0A=
=0A=
    v =3D Math.floor(v * 255 + 0.5);=0A=
    t =3D Math.floor(t * 255 + 0.5);=0A=
    p =3D Math.floor(p * 255 + 0.5);=0A=
    q =3D Math.floor(q * 255 + 0.5);=0A=
=0A=
    if (i =3D=3D 0) return [v,t,p];=0A=
    if (i =3D=3D 1) return [q,v,p];=0A=
    if (i =3D=3D 2) return [p,v,t];=0A=
    if (i =3D=3D 3) return [p,q,v];=0A=
    if (i =3D=3D 4) return [t,p,v];=0A=
    return [v,p,q];=0A=
}=0A=
=0A=
// stops the bubble=0A=
function stopBubble (e) {=0A=
    if (e.stopPropagation)=0A=
        e.stopPropagation();=0A=
    if ("cancelBubble" in e)=0A=
        e.cancelBubble =3D true;=0A=
}=0A=
=0A=
// stops the bubble, as well as the default action=0A=
function stopEvent (e) {=0A=
    stopBubble(e);=0A=
    if (e.preventDefault)=0A=
        e.preventDefault();=0A=
    if ("returnValue" in e)=0A=
        e.returnValue =3D false;=0A=
    return false;=0A=
}=0A=
=0A=
function scrollTop () {=0A=
    if (window.innerHeight)=0A=
        return window.pageYOffset;=0A=
    if (document.documentElement && document.documentElement.scrollTop)=0A=
        return document.documentElement.scrollTop;=0A=
    if (document.body)=0A=
        return document.body.scrollTop;=0A=
}=0A=
=0A=
function scrollLeft () {=0A=
    if (window.innerWidth)=0A=
        return window.pageXOffset;=0A=
    if (document.documentElement && document.documentElement.scrollLeft)=0A=
        return document.documentElement.scrollLeft;=0A=
    if (document.body)=0A=
        return document.body.scrollLeft;=0A=
}=0A=
=0A=
function getElementPos (obj)=0A=
{=0A=
    var pos =3D new Object();=0A=
    if (!obj)=0A=
        return null;=0A=
=0A=
    var it;=0A=
=0A=
    it =3D obj;=0A=
    pos.x =3D 0;=0A=
    if (it.offsetParent) {=0A=
	while (it.offsetParent) {=0A=
	    pos.x +=3D it.offsetLeft;=0A=
	    it =3D it.offsetParent;=0A=
	}=0A=
    }=0A=
    else if (it.x)=0A=
	pos.x +=3D it.x;=0A=
=0A=
    it =3D obj;=0A=
    pos.y =3D 0;=0A=
    if (it.offsetParent) {=0A=
	while (it.offsetParent) {=0A=
	    pos.y +=3D it.offsetTop;=0A=
	    it =3D it.offsetParent;=0A=
	}=0A=
    }=0A=
    else if (it.y)=0A=
	pos.y +=3D it.y;=0A=
=0A=
    return pos;=0A=
}=0A=
=0A=
// returns the mouse position of the event, or failing that, the top-left=0A=
// of the event's target element.  (or the fallBack element, which takes=0A=
// precendence over the event's target element if specified)=0A=
function getEventPos (e, fallBack)=0A=
{=0A=
    var pos =3D { x:0, y:0 };=0A=
=0A=
    if (!e) var e =3D window.event;=0A=
    if (e.pageX && e.pageY) {=0A=
        // useful case (relative to document)=0A=
        pos.x =3D e.pageX;=0A=
        pos.y =3D e.pageY;=0A=
    }=0A=
    else if (e.clientX && e.clientY) {=0A=
        // IE case (relative to viewport, so need scroll info)=0A=
        pos.x =3D e.clientX + scrollLeft();=0A=
        pos.y =3D e.clientY + scrollTop();=0A=
    } else {=0A=
	var targ =3D fallBack || getTarget(e);=0A=
	var pos =3D getElementPos(targ);=0A=
	return pos;=0A=
    }=0A=
    return pos;=0A=
}=0A=
=0A=
var curPopup =3D null;=0A=
var curPopup_id =3D 0;=0A=
=0A=
function killPopup () {=0A=
    if (!curPopup)=0A=
        return true;=0A=
=0A=
    var popup =3D curPopup;=0A=
    curPopup =3D null;=0A=
=0A=
    var opp =3D 1.0;=0A=
=0A=
    var fade =3D function () {=0A=
        opp -=3D 0.15;=0A=
=0A=
        if (opp <=3D 0.1) {=0A=
            popup.parentNode.removeChild(popup);=0A=
        } else {=0A=
            popup.style.filter =3D "alpha(opacity=3D" + Math.floor(opp * =
100) + ")";=0A=
            popup.style.opacity =3D opp;=0A=
            window.setTimeout(fade, 20);=0A=
        }=0A=
    };=0A=
    fade();=0A=
=0A=
    return true;=0A=
}=0A=
=0A=
var pendingReqs =3D new Object ();=0A=
=0A=
function deleteComment (ditemid) {=0A=
=0A=
    var hasopt =3D function (opt) {=0A=
        var el =3D document.getElementById("ljpopdel" + ditemid + opt);=0A=
        if (!el) return false;=0A=
        if (el.checked) return true;=0A=
        return false;=0A=
    };=0A=
    var opt_delthread =3D hasopt("thread");=0A=
    var opt_ban =3D hasopt("ban");=0A=
    var opt_spam =3D hasopt("spam");=0A=
=0A=
    killPopup();=0A=
=0A=
    var todel =3D document.getElementById("ljcmt" + ditemid);=0A=
=0A=
    var col =3D 0;=0A=
    var pulse =3D 0;=0A=
    var is_deleted =3D 0;=0A=
    var is_error =3D 0;=0A=
=0A=
    var xtr =3D getXTR();=0A=
    if (! xtr) {=0A=
        alert("JS_ASSERT: no xtr now, but earlier?");=0A=
        return false;=0A=
    }=0A=
    pendingReqs[ditemid] =3D xtr;=0A=
=0A=
    var state_callback =3D function () {=0A=
        if (xtr.readyState !=3D 4)=0A=
             return;=0A=
=0A=
        if (xtr.status =3D=3D 200) {=0A=
            var val =3D eval(xtr.responseText);=0A=
            is_deleted =3D val;=0A=
            if (! is_deleted) is_error =3D 1;=0A=
        } else {=0A=
            alert("Error contacting server to delete comment.");=0A=
            is_error =3D 1;=0A=
        }=0A=
    };=0A=
=0A=
    var error_callback =3D function () {=0A=
        alert("Error deleting " + ditemid);=0A=
        is_error =3D 1;=0A=
    };=0A=
=0A=
    xtr.onreadystatechange =3D state_callback;=0A=
    xtr.open("POST", "/" + LJ_cmtinfo.journal + =
"/__rpc_delcomment?mode=3Djs&journal=3D" + LJ_cmtinfo.journal + "&id=3D" =
+ ditemid, true);=0A=
    var postdata =3D "confirm=3D1";=0A=
    if (opt_ban) postdata +=3D "&ban=3D1";=0A=
    if (opt_spam) postdata +=3D "&spam=3D1";=0A=
    if (opt_delthread) postdata +=3D "&delthread=3D1";=0A=
    if (LJ_cmtinfo.form_auth) postdata +=3D "&lj_form_auth=3D" + =
LJ_cmtinfo.form_auth;=0A=
=0A=
    xtr.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded");=0A=
    xtr.send(postdata);=0A=
=0A=
    var flash =3D function () {=0A=
        var rgb =3D hsv_to_rgb(0, Math.cos((pulse + 1) / 2), 1);=0A=
        pulse +=3D 3.14159 / 5;=0A=
        var color =3D "rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + =
")";=0A=
=0A=
        todel.style.border =3D "2px solid " + color;=0A=
        if (is_error) {=0A=
            todel.style.border =3D "";=0A=
            // and let timer expire=0A=
        } else if (is_deleted) {=0A=
            removeComment(ditemid, opt_delthread);=0A=
        } else {=0A=
            window.setTimeout(flash, 50);=0A=
        }=0A=
    };=0A=
=0A=
    window.setTimeout(flash, 5);=0A=
}=0A=
=0A=
function removeComment (ditemid, killChildren) {=0A=
    var todel =3D document.getElementById("ljcmt" + ditemid);=0A=
    if (todel) {=0A=
        todel.style.display =3D 'none';=0A=
=0A=
        var userhook =3D window["userhook_delete_comment_ARG"];=0A=
        if (userhook)=0A=
            userhook(ditemid);=0A=
    }=0A=
    if (killChildren) {=0A=
        var com =3D LJ_cmtinfo ? LJ_cmtinfo[ditemid] : null;=0A=
        for (var i =3D 0; i < com.rc.length; i++) {=0A=
            removeComment(com.rc[i], true);=0A=
        }=0A=
    }=0A=
}=0A=
=0A=
function docClicked (e) {=0A=
  if (curPopup)=0A=
    killPopup();=0A=
=0A=
  // we didn't handle anything, who are we kidding=0A=
}=0A=
=0A=
function createDeleteFunction (ae, dItemid) {=0A=
    return function (e) {=0A=
        if (!e) e =3D window.event;=0A=
        var FS =3D arguments.callee;=0A=
=0A=
        var finalHeight =3D 100;=0A=
=0A=
        if (e.shiftKey || (curPopup && curPopup_id !=3D dItemid)) {=0A=
            killPopup();=0A=
        }=0A=
=0A=
        var doIT =3D 0;=0A=
        // immediately delete on shift key=0A=
        if (e.shiftKey) {=0A=
            doIT =3D 1;=0A=
        } else {=0A=
            if (! LJ_cmtinfo)=0A=
                return true;=0A=
=0A=
            var com =3D LJ_cmtinfo[dItemid];=0A=
            var remoteUser =3D LJ_cmtinfo["remote"];=0A=
            if (!com || !remoteUser)=0A=
                return true;=0A=
            var canAdmin =3D LJ_cmtinfo["canAdmin"];=0A=
=0A=
            var clickTarget =3D getTarget(e);=0A=
            var used_keyboard =3D clickTarget.nodeName =3D=3D "A";=0A=
=0A=
            var pos =3D used_keyboard ? getElementPos(ae) : =
getEventPos(e);=0A=
            var lx =3D pos.x + 5 - 250;=0A=
            if (lx < 5) lx =3D 5;=0A=
            var de;=0A=
=0A=
            if (curPopup && curPopup_id =3D=3D dItemid) {=0A=
                de =3D curPopup;=0A=
                de.style.left =3D lx + "px";=0A=
                de.style.top =3D (pos.y + 5) + "px";=0A=
                return stopEvent(e);=0A=
            }=0A=
=0A=
            de =3D document.createElement("div");=0A=
            de.style.textAlign =3D "left";=0A=
	    de.className =3D 'ljcmtmanage';=0A=
	    de.style.height =3D "10px";=0A=
            de.style.overflow =3D "hidden";=0A=
            de.style.position =3D "absolute";=0A=
            de.style.left =3D lx + "px";=0A=
            de.style.top =3D (pos.y + 5) + "px";=0A=
            de.style.width =3D "250px";=0A=
            de.style.zIndex =3D 3;=0A=
  	    regEvent(de, "click", function (e) {=0A=
		e =3D e || window.event;=0A=
                stopBubble(e);=0A=
		return true;=0A=
	    });=0A=
=0A=
            var inHTML =3D "<form style=3D'display: inline' =
id=3D'ljdelopts" + dItemid + "'><span style=3D'font-face: Arial; =
font-size: 8pt'><b>Delete comment?</b><br />";=0A=
            var lbl;=0A=
            if (remoteUser !=3D "" && com.u !=3D "" && com.u !=3D =
remoteUser && canAdmin) {=0A=
                lbl =3D "ljpopdel" + dItemid + "ban";=0A=
                inHTML +=3D "<input type=3D'checkbox' value=3D'ban' =
id=3D'" + lbl + "'> <label for=3D'" + lbl + "'>Ban <b>" + com.u + "</b> =
from commenting</label><br />";=0A=
            } else {=0A=
                finalHeight -=3D 15;=0A=
            }=0A=
=0A=
            if (remoteUser !=3D com.u && canAdmin) {=0A=
                lbl =3D "ljpopdel" + dItemid + "spam";=0A=
                inHTML +=3D "<input type=3D'checkbox' value=3D'spam' =
id=3D'" + lbl + "'> <label for=3D'" + lbl + "'>Mark this comment as =
spam</label><br />";=0A=
            } else {=0A=
                finalHeight -=3D 15;=0A=
            }=0A=
=0A=
            if (com.rc && com.rc.length && canAdmin) {=0A=
                lbl =3D "ljpopdel" + dItemid + "thread";=0A=
                inHTML +=3D "<input type=3D'checkbox' value=3D'thread' =
id=3D'" + lbl + "'> <label for=3D'" + lbl + "'>Delete thread (all =
subcomments)</label><br />";=0A=
            } else {=0A=
                finalHeight -=3D 15;=0A=
            }=0A=
            inHTML +=3D "<input type=3D'button' value=3D'Delete' =
onclick=3D'deleteComment(" + dItemid + ");' /> <input type=3D'button' =
value=3D'Cancel' onclick=3D'killPopup()' /></span><br /><span =
style=3D'font-face: Arial; font-size: 8pt'><i>shift-click to delete =
without options</i></span></form>";=0A=
            de.innerHTML =3D inHTML;=0A=
=0A=
            // we do this so keyboard tab order is correct:=0A=
            addAfter(ae, de);=0A=
=0A=
            curPopup =3D de;=0A=
            curPopup_id =3D dItemid;=0A=
=0A=
            var height =3D 10;=0A=
            var grow =3D function () {=0A=
                height +=3D 7;=0A=
                if (height > finalHeight) {=0A=
                    de.style.height =3D null;=0A=
                    de.style.filter =3D "";=0A=
                    de.style.opacity =3D 1.0;=0A=
                } else {=0A=
                    de.style.height =3D height + "px";=0A=
                    window.setTimeout(grow, 20);=0A=
                }=0A=
            };=0A=
            grow();=0A=
=0A=
        }=0A=
=0A=
        if (doIT) {=0A=
            deleteComment(dItemid);=0A=
        }=0A=
=0A=
        return stopEvent(e);=0A=
    }=0A=
}=0A=
=0A=
function poofAt (pos) {=0A=
    var de =3D document.createElement("div");=0A=
    de.style.position =3D "absolute";=0A=
    de.style.background =3D "#FFF";=0A=
    de.style.overflow =3D "hidden";=0A=
    var opp =3D 1.0;=0A=
=0A=
    var top =3D pos.y;=0A=
    var left =3D pos.x;=0A=
    var width =3D 5;=0A=
    var height =3D 5;=0A=
    document.body.appendChild(de);=0A=
=0A=
    var fade =3D function () {=0A=
        opp -=3D 0.15;=0A=
        width +=3D 10;=0A=
        height +=3D 10;=0A=
        top -=3D 5;=0A=
        left -=3D 5;=0A=
=0A=
        if (opp <=3D 0.1) {=0A=
            de.parentNode.removeChild(de);=0A=
        } else {=0A=
            de.style.left =3D left + "px";=0A=
            de.style.top =3D top + "px";=0A=
            de.style.height =3D height + "px";=0A=
            de.style.width =3D width + "px";=0A=
            de.style.filter =3D "alpha(opacity=3D" + Math.floor(opp * =
100) + ")";=0A=
            de.style.opacity =3D opp;=0A=
            window.setTimeout(fade, 20);=0A=
        }=0A=
    };=0A=
    fade();=0A=
}=0A=
=0A=
function getTarget (ev) {=0A=
    var target;=0A=
    if (ev.target)=0A=
        target =3D ev.target;=0A=
    else if (ev.srcElement)=0A=
        target =3D ev.srcElement;=0A=
=0A=
    // Safari bug:=0A=
    if (target && target.nodeType =3D=3D 3)=0A=
        target =3D target.parentNode;=0A=
=0A=
    return target;=0A=
}=0A=
=0A=
function updateLink (ae, resObj, clickTarget) {=0A=
    ae.href =3D resObj.newurl;=0A=
    var userhook =3D window["userhook_" + resObj.mode + "_comment_ARG"];=0A=
    var did_something =3D 0;=0A=
=0A=
    if (clickTarget && clickTarget.src && clickTarget.src =3D=3D =
resObj.oldimage) {=0A=
        clickTarget.src =3D resObj.newimage;=0A=
        did_something =3D 1;=0A=
    }=0A=
=0A=
    if (userhook) {=0A=
        userhook(resObj.id);=0A=
        did_something =3D 1;=0A=
    }=0A=
=0A=
    // if all else fails, at least remove the link so they're not as =
confused=0A=
    if (! did_something) {=0A=
        if (ae && ae.style)=0A=
            ae.style.display =3D 'none';=0A=
        if (clickTarget && clickTarget.style)=0A=
            clickTarget.style.dispay =3D 'none';=0A=
    }=0A=
=0A=
}=0A=
=0A=
var tsInProg =3D new Object();  // dict of { ditemid =3D> 1 }=0A=
function createModerationFunction (ae, dItemid) {=0A=
    return function (e) {=0A=
        if (!e) e =3D window.event;=0A=
=0A=
        if (tsInProg[dItemid])=0A=
            return stopEvent(e);=0A=
        tsInProg[dItemid] =3D 1;=0A=
=0A=
        var clickTarget =3D getTarget(e);=0A=
=0A=
        var used_keyboard =3D clickTarget.nodeName =3D=3D "A";=0A=
=0A=
        var imgTarget;=0A=
        var imgs =3D ae.getElementsByTagName("img");=0A=
        if (imgs.length)=0A=
            imgTarget =3D imgs[0]=0A=
=0A=
        if (! clickTarget || typeof(clickTarget) !=3D "object")=0A=
            return true;=0A=
=0A=
        var clickPos =3D used_keyboard ? getElementPos(imgTarget || ae) =
: getEventPos(e);=0A=
=0A=
        var de =3D document.createElement("img");=0A=
        de.style.position =3D "absolute";=0A=
        de.width =3D 17;=0A=
        de.height =3D 17;=0A=
        de.src =3D Site.imgprefix + "/hourglass.gif";=0A=
        de.style.top =3D (clickPos.y - 8) + "px";=0A=
        de.style.left =3D (clickPos.x - 8) + "px";=0A=
        document.body.appendChild(de);=0A=
=0A=
        var xtr =3D getXTR();=0A=
        var state_callback =3D function () {=0A=
            if (xtr.readyState !=3D 4) return;=0A=
=0A=
            document.body.removeChild(de);=0A=
            var rpcRes;=0A=
=0A=
            if (xtr.status =3D=3D 200) {=0A=
                var resObj =3D eval(xtr.responseText);=0A=
                if (resObj) {=0A=
                    poofAt(clickPos);=0A=
                    updateLink(ae, resObj, imgTarget);=0A=
                    tsInProg[dItemid] =3D 0;=0A=
                } else {=0A=
                    tsInProg[dItemid] =3D 0;=0A=
                }=0A=
=0A=
            } else {=0A=
                alert("Error contacting server.");=0A=
                tsInProg[dItemid] =3D 0;=0A=
            }=0A=
        };=0A=
=0A=
        xtr.onreadystatechange =3D state_callback;=0A=
=0A=
        var postUrl =3D ae.href.replace(/.+talkscreen\.bml/, "/" + =
LJ_cmtinfo.journal + "/__rpc_talkscreen");=0A=
=0A=
        //var postUrl =3D ae.href;=0A=
        xtr.open("POST", postUrl + "&jsmode=3D1", true);=0A=
=0A=
        var postdata =3D "confirm=3DY&lj_form_auth=3D" + =
LJ_cmtinfo.form_auth;=0A=
=0A=
        xtr.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded");=0A=
        xtr.send(postdata);=0A=
=0A=
        return stopEvent(e);=0A=
    };=0A=
}=0A=
=0A=
function setupAjax () {=0A=
    var ct =3D document.links.length;=0A=
    for (var i=3D0; i<ct; i++) {=0A=
        var ae =3D document.links[i];=0A=
        if (ae.href.indexOf("talkscreen.bml") !=3D -1) {=0A=
            ae.onclick =3D createModerationFunction(ae, dItemid);=0A=
=0A=
        } else if (ae.href.indexOf("delcomment.bml") !=3D -1) {=0A=
=0A=
            var findIDre =3D /id=3D(\d+)/;=0A=
            var reMatch =3D findIDre.exec(ae.href);=0A=
            if (! reMatch) return true;=0A=
=0A=
            var dItemid =3D reMatch[1];=0A=
            var todel =3D document.getElementById("ljcmt" + dItemid);=0A=
            if (! todel) return true;=0A=
=0A=
            if (LJ_cmtinfo && LJ_cmtinfo.disableInlineDelete) continue;=0A=
=0A=
            ae.onclick =3D createDeleteFunction(ae, dItemid);=0A=
        }=0A=
=0A=
    }=0A=
}=0A=
=0A=
function regEvent (target, evt, func) {=0A=
    if (! target) return;=0A=
    if (target.attachEvent)=0A=
        target.attachEvent("on"+evt, func);=0A=
    if (target.addEventListener)=0A=
        target.addEventListener(evt, func, false);=0A=
}=0A=
=0A=
if (document.getElementById && getXTR()) {=0A=
       regEvent(window, "load", setupAjax);=0A=
	regEvent(document, "click", docClicked);=0A=
        document.write("<style> div.ljcmtmanage { color: #000; =
background: #e0e0e0; border: 2px solid #000; padding: 3px; }</style>");=0A=
}=0A=
var SnapShots =3D new Object();=0A=
=0A=
SnapShots.init =3D function () {=0A=
    // copy from array-like object (arguments) to a normal array=0A=
    var args =3D Array.prototype.slice.call(arguments);=0A=
    // and add host of the current page=0A=
    args.push(window.location.href.host); =0A=
=0A=
    var links =3D document.getElementsByTagName( "a" );=0A=
    for( var i =3D 0; i < links.length; i++ ) {=0A=
        var link =3D links[ i ];=0A=
        if( !link || !link.href.match( /^https?:/ )) {=0A=
            continue;=0A=
        }=0A=
        var found =3D false;=0A=
        for (var j =3D 0; j < args.length; j++) {=0A=
            if (link.href.indexOf( args[j] ) >=3D 0 ) {=0A=
                found =3D true;=0A=
                break;=0A=
            }=0A=
        }=0A=
        if (found) continue;        =0A=
=0A=
        DOM.addClassName( link, "snap_shots" );=0A=
    }=0A=
};=0A=
=0A=
// ljtalk for ctxpopup=0A=
LiveJournal.register_hook("ctxpopup_extrainfo", function (userdata) {=0A=
    var content =3D document.createElement("div");=0A=
=0A=
    if (userdata.is_person) {=0A=
        if (userdata.is_online !=3D=3D '') {=0A=
            // online status=0A=
            var onlineStatusLabel =3D document.createElement("span");=0A=
            var jabberTitle =3D userdata.jabber_title;=0A=
            onlineStatusLabel.innerHTML =3D jabberTitle + ": ";=0A=
            DOM.addClassName(onlineStatusLabel, "OnlineStatus");=0A=
            content.appendChild(onlineStatusLabel);=0A=
=0A=
            // build status=0A=
            var onlineStatus =3D document.createElement("span");=0A=
=0A=
=0A=
            var onlineStatusText =3D document.createElement("span");=0A=
            onlineStatus.appendChild(onlineStatusText);=0A=
=0A=
            content.appendChild(onlineStatus);=0A=
=0A=
            if (userdata.is_online) {=0A=
                onlineStatusText.innerHTML =3D "Online";=0A=
            } else if (userdata.is_online =3D=3D '0') {=0A=
                onlineStatusText.innerHTML =3D "Offline";=0A=
            }=0A=
        }=0A=
    }=0A=
=0A=
    return content;=0A=
});=0A=
=0A=
// for updating ljcom widgets from livejournal ones=0A=
LiveJournal.register_hook("update_other_widgets", function (from_widget) =
{=0A=
    if (from_widget =3D=3D "LayoutChooser" && Customize.AdLayout) {=0A=
        Customize.AdLayout.updateContent();=0A=
    }=0A=
});=0A=

------=_NextPart_000_0153_01C86C01.B496FBE0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://shots.snap.com/snap_shots.js?ap=0&key=eba7a5fe7e04a265eeaf0c05add86a7d&sb=1&th=silver&cl=1&si=0&po=0&df=0&oi=0&link_icon=on&shots_trigger=both&lang=en-us&domain=livejournal.com&pub=pub-5821628-www.livejournal.com

if (typeof SNAP_COM =3D=3D "undefined") { SNAP_COM =3D { =
shot_main_js_called: false }; }SNAP_COM.shot_config =3D =
{version:"3.13.1",prefix:{image:"http://shots.snap.com/images/v3.13.1/",c=
dn:"http://i.ixnp.com/",cdn_image:"http://i.ixnp.com/images/v3.13.1/",the=
me:"http://i.ixnp.com/images/v3.13.1/theme/silver/",link:"http://shots.sn=
ap.com/",options:"http://shots.snap.com/",preview:"http://shots.snap.com/=
",spasense:"http://shots.snap.com/",bg:"http://i.ixnp.com/images/v3.13.1/=
theme/silver/bg/",snap:"http://www.snap.com/",search:"http://www.snap.com=
/"},scheme:"http://",size:"small",orig_size:"small",theme:"silver",key:"e=
ba7a5fe7e04a265eeaf0c05add86a7d",source:"pub-5821628-www.livejournal.com"=
,campaign:"",flavor:null,lang:"en-us",rtl:0,force:null,trigger_position:"=
default",check_defer:false,observe_event:"body",search_box:true,auto_prev=
iew:false,show_internal:false,preview_only:false,no_rss:0,rich_only:false=
,plugin:false,rescan_after_load:false,thumbnail_precrawl:0,show_link_icon=
:true,preview_trigger:"both",image_trigger:false,shots_domain_match:null,=
shot_check:1,search_type:"spasense",redirect_param:null,client_ip:"165.12=
4.232.233",user_agent:"Mozilla%2F4.0+%28compatible%3B+MSIE+7.0%3B+Windows=
+NT+5.1%3B+.NET+CLR+1.1.4322%29",srate:{main:0.001,auto:0.01,page:0.001,i=
nspect:1,tmr:0.05},delay:{show:125,hide:500,move:200,prefetch:50},img:{co=
brand:"http://shots.snap.com/images/v3.13.1/custom_logo/eba7a5fe7e04a265e=
eaf0c05add86a7d/",link_icon:"http://i.ixnp.com/images/v3.13.1/t.gif",pale=
tte:"http://i.ixnp.com/images/v3.13.1/theme/silver/palette.gif"},pointer:=
{r_offset:4,top:{x:7,y:5},bottom:{x:7,y:14},steps:"6",w0:200,w:20,x0:5,x:=
5},css_pos:{main:{x:0,y:0,w:339,h:356},bubble:{x:5,y:6,w:322,h:297},bg_im=
g_tl:{x:0,y:0,w:100,h:100},bg_img_tr:{xr:1,y:0,w:100,h:100},bg_img_bl:{x:=
0,yb:1,w:100,h:100},bg_img_br:{xr:1,yb:1,w:100,h:100},bg_img_l:{x:0,y:50,=
w:100,h:100},bg_img_r:{xr:1,y:50,w:100,h:100},bg_img_t:{x:50,y:0,w:100,h:=
100},bg_img_b:{x:50,yb:1,w:100,h:100},bg_body:{x:50,y:50,w:100,h:100},poi=
nt_tr:{x:50,y:50,w:42,h:33},point_tl:{x:50,y:50,w:42,h:33},point_br:{x:50=
,y:50,w:43,h:41},point_bl:{x:50,y:50,w:43,h:41},bubble_img:{x:0,y:0,w:322=
,h:297},body:{x:0,y:0,w:322,h:297},top_left_menu:{x:1,y:1,w:null,h:null},=
top_right_menu:{xr:1,y:1,w:null,h:null},option_menu:{xr:20,y:18,w:null,h:=
null},url_wrapper:{x:6,y:5,w:null,h:null},preview_div:{x:0,y:20,w:320,h:2=
07},preview:{x:0,y:0,w:320,h:207},preview_img:{x:0,y:0,w:null,h:null},img=
_a:{x:23,yb:12,w:270,h:161},loading_img:{x:0,y:0,w:null,h:null},search:{x=
:1,yb:31,w:320,h:78},ribbon:{xr:98,yb:5,w:17,h:20},logo_a:{xr:7,yb:8,w:nu=
ll,h:null},box:{x:12,y:24,w:240,h:25},submit:{xr:7,y:23,w:null,h:null},fl=
ash_overlay:{x:0,y:50,w:322,h:180},drag_overlay:{x:0,y:0,w:322,h:20},cobr=
and_img:{x:9,yb:6,w:null,h:null},cobrand_a:{x:10,yb:8,w:null,h:15},promo:=
{x:10,yb:8,w:null,h:15},options:{x:0,y:0,w:322,h:null},option_menu_bar:{x=
r:1,y:1,w:null,h:null},option_iframe:{x:0,y:20,w:321,h:207},option_cancel=
:{xr:54,y:201,w:50,h:21},marea_ad:{x:1,yb:30,w:320,h:287},marea:{x:1,yb:3=
0,w:320,h:79},link_icon:{x:null,y:null,w:14,h:12},pointer0:{w:1,h:1},poin=
ter1:{w:1,h:1},pointer2:{w:1,h:1},pointer3:{w:1,h:1},pointer4:{w:1,h:1},p=
ointer5:{w:1,h:1}},rtl_css_pos:{0:"promo",1:"logo_a",2:"submit",3:"box",4=
:"option_cancel",5:"cobrand_img",6:"ribbon"},style:{link_icon:{padding:"1=
px 0 0 =
0",textDecoration:"none",position:"static"},favicon:{position:"static",di=
splay:"inline"},url:{position:"static",display:"inline",fontSize:"13px",f=
ontWeight:"bold",textAlign:"left"},arrow:{position:"static",display:"inli=
ne"},search:{backgroundColor:"#eeeeee"},preview:{backgroundColor:"#ffffff=
"},marea:{overflow:"hidden",backgroundColor:"#eeeeee"},body:{textAlign:"l=
eft"},bg_body:{backgroundColor:"#d8d8d9"},option_button:{display:"inline"=
},zoom_img:{display:"inline"},option_button_disabled:{display:"inline"},p=
in_close_img:{display:"inline"},promo_icon:{display:"inline"},preview_tog=
gle:{display:"inline"},rss_toggle:{display:"inline"},drag_overlay:{backgr=
oundColor:"transparent"},flash_overlay:{backgroundColor:"transparent"},op=
tion_close_a:{fontSize:"10px",fontWeight:"normal",color:"#857a7a",textDec=
oration:"none"},option_menu:{fontSize:"10px",fontFamily:"Trebuchet",color=
:"#333",backgroundColor:"white",border:"1px solid =
#8b8a8a"},option_a:{whiteSpace:"nowrap",height:"17px",paddingLeft:"5px",p=
addingRight:"5px"},option_cancel:{border:"1px solid =
#999",fontSize:"11px",color:"#333",background:"url(http://i.ixnp.com/imag=
es/btn-bkgd.gif)"},disable_a:{whiteSpace:"nowrap",height:"17px",paddingLe=
ft:"5px",paddingRight:"5px",borderTop:"1px solid =
#c0c0c0"},url_a:{fontSize:"13px",fontWeight:"bold",textDecoration:"underl=
ine",color:"#003399",backgroundColor:"white",textAlign:"left"},url_arrow:=
{backgroundColor:"white"},url_favicon:{backgroundColor:"white"},promo_a:{=
fontSize:"11px",color:"#333333",textDecoration:"none",borderBottom:"1px =
dotted #747274"},promo:{direction:"ltr"},preview_div:{border:"1px solid =
#c4c4c4",overflow:"hidden",backgroundColor:"#FFFFFF"},img_a:{border:"1px =
solid =
#999999",overflow:"hidden",backgroundColor:"#FFFFFF"},submit:{margin:"0",=
marginLeft:"5px",padding:"2px",paddingTop:"1px",paddingBottom:"2px",curso=
r:"pointer",fontSize:"11px",color:"#444",textAlign:"center"},box:{padding=
Top:"5px",fontSize:"12px",border:"1px solid =
#999999",color:"#333333",visibility:"inherit",backgroundColor:"",directio=
n:"ltr"}},offset:{search_box:79},hidden:["link_icon","option_menu","rss_c=
heck","top_left_menu","lg","promo","search"],collapsed:["pin_close_img","=
marea_ad"],t_img:["cobrand_img"],retry_interval:[8000,5000,5000,5000,5000=
,5000],partial_check:{delay:2000,attempts:5},rescan_delay:1000,href:{logo=
:"http://www.snap.com/about/shots1.php",cobrand:"http://www.snap.com/abou=
t/shots.php",shot_signup:"https://account.snap.com/signup.php",client_dow=
nload:"http://www.snap.com/about/shotsdownload.php",client_about:"http://=
www.snap.com/about/addon.php",ribbon:"http://www.snap.com/snapshots.php#s=
hares",whatsnew:"http://blog.snap.com/2007/11/04/what-is-new-with-snap-sh=
ots"},attribution_split_test_suffix:"_6",palette:{promo_icon:{loc:"-944px=
 0",w:14,h:12},link_icon:{loc:"-944px 0",w:14,h:12},logo_a:{loc:"-805px =
0",w:81,h:15},previewby:null,option_button:{loc:"-661px =
0",w:27,h:18},option_button_over:{loc:"-561px =
0",w:27,h:18},zoom_img_plus:{loc:"-515px =
0",w:23,h:18},zoom_img_plus_over:{loc:"-611px =
0",w:23,h:18},zoom_img_minus:{loc:"-588px =
0",w:23,h:18},zoom_img_minus_over:{loc:"-538px =
0",w:23,h:18},option_close_a:{loc:"-688px =
0",w:23,h:18},option_close_a_over:{loc:"-734px =
0",w:23,h:18},option_button_disabled:{loc:"-634px =
0",w:27,h:18},pin_close_img:{loc:"-688px =
0",w:23,h:18},pin_close_img_over:{loc:"-734px =
0",w:23,h:18},preview_toggle:{loc:"-419px =
0",w:25,h:18},preview_toggle_over:{loc:"-369px =
0",w:25,h:18},preview_toggle_selected:{loc:"-394px =
0",w:25,h:18},rss_toggle:{loc:"-344px =
0",w:25,h:18},rss_toggle_over:{loc:"-444px =
0",w:25,h:18},rss_toggle_selected:{loc:"-319px 0",w:25,h:18},favicon =
:{loc:"-773px 0",w:16,h:16},submit:{loc:"-164px 0",w:55,h:29},arrow =
:{loc:"-981px =
0",w:7,h:7}},rich_shot_re:["\\.wikipedia.org/wiki/","imdb\\.com.*\\/(titl=
e|name)\\/(tt|nm)[\\d]+(\\/\\w*)?$","finance\\.yahoo\\.com/q(/bc)?\\?s=3D=
","finance\\.google\\.com/finance\\?q=3D","moneycentral\\.msn\\.com/detai=
l/stock_quote\\?Symbol=3D","money\\.cnn\\.com/quote/quote\\.html","market=
watch\\.com/quotes/","quote\\.morningstar\\.com/Quote/Quote\\.aspx\\?tick=
er=3D","quotes\\.nasdaq\\.com/asp/SummaryQuote.asp\\?symbol=3D","www\\.ny=
se\\.com/about/listed/lcddata.html\\?ticker=3D","youtube\\.com/v/","youtu=
be\\.com/\\?v=3D","youtube\\.com/watch\\?v=3D","video\\.google\\.com/goog=
leplayer\\.swf\\?docId=3D","video\\.google\\.com/url\\?docid","video\\.go=
ogle\\.com/videoplay\\?","photobucket\\.com/albums","amazon\\.com/(gp/pro=
duct|dp)/[A-Z0-9]{10}/","amazon\\.com\\/.+\\/(ASIN|asin)\\/[A-Z0-9]{10}",=
"amazon\\.com/exec/obidos/(ASIN|asin)/[A-Z0-9]{10}/","amazon\\.com/[^/]+/=
dp/[A-Z0-9]{10}/","amazon\\.com/-/[A-Z0-9]{10}/","amazon\\.com/[^/]+/dp/"=
,"amazon\\.com%2F[^/]+%2Fdp%2F","flickr\\.com/photos/","picasaweb\\.googl=
e\\.com/.+/.+","\\.mp3$","seekingalpha.com/symbol/.+","stocks\\.us\\.reut=
ers\\.com/stocks/(overview|charts)\\.asp\\?(symbol|ticker)=3D","stocks\\.=
us\\.reuters\\.com/stocks/companyNews\\.asp\\?symbol=3D","metacafe\\.com/=
watch/","one\\.revver\\.com/watch/","video\\.xanga\\.com/.+/video.html","=
vids\\.myspace\\.com/","veoh\\.com/videos/","myspace\\.com/","maps\\.goog=
le\\.com/maps","wowhead\\.com.+item=3D","wowarmory\\.com/item-info.xml","=
thottbot\\.com/i","wow\\.allakhazam\\.com/db/item.html","goblinworkshop\\=
.com/beta-items/"],photo_shot_re:["photobucket\\.com/albums","flickr\\.co=
m/photos/","picasaweb\\.google\\.com/.+","maps\\.google\\.com/.+"],rich_s=
hot_exceptions:null,resize:{img_sized:{large:"size_462/",small:"size_305/=
"},w:150,h:95,w_list:["main","preview_div","preview","bubble","search","b=
ox","options","option_iframe","marea","marea_ad","flash_overlay","drag_ov=
erlay","img_a","body","bubble_img"],h_list:["main","preview_div","preview=
","bubble","flash_overlay","img_a","marea_ad","body","bubble_img"]},auto_=
shot:{on:false,treatment:"dashed",limit:"5",rescan:false,color_opt:"t",co=
lor:"",list:[],list_tid:{},timestamp:0,inspect:false},rnd:"13f672a6d18c07=
92f6c557bb03b947f3",url_max:37,text:{Options:"Options",Disable:"Disable",=
SearchTheWeb:"Search the Web on Snap.com",GetFreePreviews:"Get Free Snap =
Shots",SearchButton:"Search",GoToURL:"Go to %URL",SubmitSearch:"Submit =
your search",SignUpLink:"Sign Up and add Free Snap Shots to your site in =
less than 5 min!",SnapLogoTooltip:"Sign Up and add Free Snap Shots to =
your site in less than 5 min!",OptionsTooltip:"Snap Shots =
Options",OptionsClose:"Close Options",EnlargeShotSize:"Make this Shot =
larger",ReduceShotSize:"Make this Shot smaller",ClickToPlay:"Click to =
play"},fl:""};=0A=
SNAP_COM.hash =3D function(str) { var h =3D 5003; for (var i =3D 0; i < =
str.length; ++i) { h +=3D str.charCodeAt(i); h +=3D (h << 10); h ^=3D (h =
>> 6); } h +=3D (h << 3); h ^=3D (h >> 11); h +=3D (h << 15); return =
Math.abs(h); };=0A=
SNAP_COM.size =3D function() { var e, e2; if (e =3D =
document.getElementById('alpha')) { if (e2 =3D =
document.getElementById('beta')) { return e.innerHTML.length + =
e2.innerHTML.length; } return e.innerHTML.length; } if (e =3D =
document.getElementById('beta')) { return e.innerHTML.length; } if (e =
=3D document.getElementById('blogbody')) { return e.innerHTML.length; } =
if (e =3D document.getElementById('main')) { return e.innerHTML.length; =
} if (e =3D document.getElementById('content')) { return =
e.innerHTML.length; } if (e =3D =
document.getElementsByTagName('body')[0]) { return e.innerHTML.length; } =
return 0; };=0A=
SNAP_COM.shot_main_js =3D function() {=0A=
  if (SNAP_COM.shot_main_js_called =3D=3D=3D true) return;=0A=
 SNAP_COM.shot_main_js_called =3D true;=0A=
  var s =3D document.getElementsByTagName("script")[0];=0A=
  var js =3D document.createElement("script");=0A=
  js.type =3D "text/javascript";=0A=
  js.src =3D "http://i.ixnp.com/shot_main_js/v3.13.1/";=0A=
  s.parentNode.insertBefore(js, s);=0A=
  var js =3D document.createElement("script");=0A=
  js.type =3D "text/javascript";=0A=
  js.src =3D =
"http://shots.snap.com/asj/v1/eba7a5fe7e04a265eeaf0c05add86a7d/" + =
SNAP_COM.hash(document.location.href) + =0A=
           =
"/auto_shot.js?sz=3D"+SNAP_COM.size()+"&lm=3D"+escape(document.lastModifi=
ed)+"&size=3Dsmall&ad_only=3D1";=0A=
  s.parentNode.insertBefore(js, s);=0A=
}=0A=
SNAP_COM.window_onload =3D function() {=0A=
  SNAP_COM.window_loaded =3D true;=0A=
};=0A=
if (window.addEventListener) {=0A=
  window.addEventListener( "load", SNAP_COM.window_onload, false );=0A=
} else if (window.attachEvent) {=0A=
  window.attachEvent( "onload", SNAP_COM.window_onload );=0A=
}=0A=
SNAP_COM.shot_main_js();=0A=

------=_NextPart_000_0153_01C86C01.B496FBE0--

