From: <Saved by Windows Internet Explorer 7>
Subject: Chronic Pain Forums of the Pain Relief Network (PRN) / Chronic Pain Can Damage Brain
Date: Mon, 11 Feb 2008 16:02:26 -0600
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_001B_01C86CC7.7F2C4AC0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198

This is a multi-part message in MIME format.

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/viewtopic.php?pid=1640

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML dir=3Dltr =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Chronic Pain Forums =
of the Pain Relief Network (PRN) / Chronic Pain Can Damage Brain</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1"><LINK=20
href=3D"http://doctordeluca.com/forum/syn/phpMSH/syn.css" =
type=3Dtext/css=20
rel=3Dstylesheet>
<SCRIPT src=3D"http://doctordeluca.com/forum/js/mootools.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
window.onload =3D function() {=0A=
var accordion =3D new Accordion('h2.atStart', 'div.atStart', {=0A=
	opacity: false,=0A=
	onActive: function(toggler, element){=0A=
		toggler.addClass('mySuperbColor');=0A=
	},=0A=
 =0A=
	onBackground: function(toggler, element){=0A=
		toggler.removeClass('mySuperbColor');=0A=
	}=0A=
}, $('accordion'));=0A=
=0A=
}=0A=
</SCRIPT>
<LINK href=3D"http://doctordeluca.com/forum/style/Oxygen.css" =
type=3Dtext/css=20
rel=3Dstylesheet>
<SCRIPT src=3D"http://doctordeluca.com/forum/js/show_hide.js"=20
type=3Dtext/javascript></SCRIPT>
<LINK =
href=3D"http://doctordeluca.com/forum/style/imports/image_upload.css"=20
type=3Dtext/css rel=3Dstylesheet>
<SCRIPT src=3D"http://doctordeluca.com/forum/style/imports/minmax.js"=20
type=3Dtext/javascript></SCRIPT>

<STYLE type=3Dtext/css>#center {
	MARGIN: auto; WIDTH: 68.5%
}
#left {
	FLOAT: left; WIDTH: 15%
}
#right {
	FLOAT: right; WIDTH: 15%
}
</STYLE>

<META content=3D"MSHTML 6.00.6000.16587" name=3DGENERATOR></HEAD>
<BODY class=3Douter>
<DIV id=3Dpunwrap>
<DIV class=3Dpun id=3Dpunviewtopic>
<DIV class=3Dblock id=3Dbrdheader>
<DIV class=3Dbox>
<DIV class=3Dinbox id=3Dbrdtitle>
<H1><SPAN>Chronic Pain Forums of the Pain Relief Network =
(PRN)</SPAN></H1>
<P><SPAN>Torwards an educated, empowered and powerful pain patients=20
community...</SPAN></P></DIV>
<DIV class=3Dinbox id=3Dbrdmenu>
<UL>
  <LI><A href=3D"http://doctordeluca.com/forum/index.php">Index</A>=20
  <LI><A href=3D"http://doctordeluca.com/forum/forum.php">Forums</A>=20
  <LI><A href=3D"http://doctordeluca.com/forum/userlist.php">User =
list</A>=20
  <LI><A =
href=3D"http://doctordeluca.com/forum/misc.php?action=3Drules">Rules</A> =

  <LI><A href=3D"http://doctordeluca.com/forum/search.php">Search</A>=20
  <LI><A =
href=3D"http://doctordeluca.com/forum/register.php">Register</A>=20
  <LI><A href=3D"http://www.doctordeluca.com/fbform.htm">Contact Us</A>=20
  <LI><A href=3D"http://doctordeluca.com/forum/login.php">Login</A>=20
  <LI><A =
href=3D"http://doctordeluca.com/forum/downloads.php">Downloads</A>=20
</LI></UL></DIV></DIV></DIV>
<DIV class=3Dblock id=3Dbrdheader2>
<DIV class=3Dbox>
<DIV class=3Dinbox id=3Dbrdwelcome>
<P>You are not logged in.</P></DIV></DIV></DIV>
<DIV class=3Dlinkst>
<DIV class=3Dinbox>
<P class=3D"pagelink conl">Pages: <STRONG>1</STRONG></P>
<P class=3D"postlink conr"><A title=3D"Post reply"=20
href=3D"http://doctordeluca.com/forum/login.php"><IMG alt=3D"Post reply" =

src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/new_reply.png"></=
A></P>
<UL>
  <LI><A href=3D"http://doctordeluca.com/forum/index.php">Index</A>
  <LI>&nbsp;=BB&nbsp;<A=20
  =
href=3D"http://doctordeluca.com/forum/viewforum.php?id=3D18">Casualities =
of=20
  Prohibition</A>
  <LI>&nbsp;=BB&nbsp;Chronic Pain Can Damage Brain</LI></UL><SPAN>Topic =
rating:=20
<STRONG>0</STRONG></SPAN>=20
<DIV class=3Dclearer></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd firstpost" id=3Dp1627>
<H2><SPAN><SPAN class=3Dconr>#1&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1627#p1627">200=
8-02-08=20
08:17:45</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D5"><SPAN=20
  style=3D"COLOR: #e70000">docalex</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Admin</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D5"><IMG=20
  title=3D"docalex's Avatar" height=3D42 alt=3D"docalex's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/5.png" =
width=3D59></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: New York City=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 213=20
  <DD>Karma: 10=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://doctordeluca.com/wordpress/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<DIV class=3Dtopiclabels>Tags: [<A=20
href=3D"http://doctordeluca.com/forum/search.php?action=3Dshow_label&amp;=
text=3Dbrain">brain</A>,=20
<A=20
href=3D"http://doctordeluca.com/forum/search.php?action=3Dshow_label&amp;=
text=3Dchronic+pain">chronic=20
pain</A>, <A=20
href=3D"http://doctordeluca.com/forum/search.php?action=3Dshow_label&amp;=
text=3Ddamage">damage</A>,=20
<A=20
href=3D"http://doctordeluca.com/forum/search.php?action=3Dshow_label&amp;=
text=3Dsymptoms">symptoms</A>]</DIV>
<P style=3D"TEXT-ALIGN: center"><STRONG><EM>Chronic Pain Can Damage=20
Brain</EM></STRONG> - redOrbit Staff; 2008-02-06. <A=20
href=3D"http://www.redorbit.com/news/health/1244387/chronic_pain_can_dama=
ge_brain/"><EM><INS>Source</INS></EM></A>.<BR><BR>See=20
also:<BR><A=20
href=3D"http://doctordeluca.com/wordpress/index.php/archive/chronic-pain-=
vets/169/#section3"><STRONG><INS>A=20
Modern Understanding of the Etiology of Chronic Pain</INS></STRONG></A> =
-=20
DeLuca; 2007-07-15</P>
<P><BR></P>
<HR>

<P><BR>People who suffer chronic pain have constant brain activity in =
areas of=20
the brain that would normally be at rest, according to a new study at=20
Northwestern University's Feinberg School of Medicine. <BR><BR>The study =

suggests chronic pain changes the way information is processed in the =
brain, and=20
the findings could explain why those who experience long-term pain =
frequently=20
suffer other symptoms such as anxiety, depression, sleep disorders, and=20
difficulty making decisions.<BR><BR>During the study, researchers used=20
functional magnetic resonance imaging (fMRI) to scan the brains of 15 =
people=20
with chronic low back pain and 15 pain-free volunteers while both groups =
were=20
tracking a moving bar on a computer screen.&nbsp; Although the pain =
sufferers=20
performed the task well, when researchers measured areas of the brain =
activated,=20
differences emerged.<BR><BR>In the healthy brains all regions existed in =
a state=20
of equilibrium -- when one region was active, the others quieted =
down.&nbsp; But=20
in those with chronic pain, a front region of the cortex mostly =
associated with=20
emotion "never shuts up," said Dante Chialvo, the study=92s lead author =
and=20
associate research professor of physiology at the Feinberg School. The =
region=20
was stuck on full throttle, wearing out neurons and altering their =
connections=20
to each other. [See: <A=20
href=3D"http://www.chialvo.net/PainVideo.mov"><EM><INS>Video of brain =
disturbance=20
in chronic pain patient vs healthy volunteer</INS></EM></A>]<BR><BR>"The =
areas=20
that are affected fail to deactivate when they should," Chialvo=20
said.<BR><BR>"Where we were surprised is the difference in how much =
brain they=20
used to do the task compared with the healthy group. It was 50 times =
larger,"=20
Chialvo told Reuters.<BR><BR>This is the first demonstration of brain=20
disturbances in chronic pain patients not directly related to the =
sensation of=20
pain.&nbsp; &nbsp;<BR><BR>When certain parts of the cortex were =
activated in the=20
pain-free group, some others were deactivated, maintaining a cooperative =

equilibrium between the regions. This equilibrium is known as the =
resting state=20
network of the brain. In the chronic pain group, however, one of the =
nodes of=20
this network did not quiet down as it did in the pain-free =
subjects.&nbsp;=20
Instead, a front region of the cortex mostly associated with emotion is=20
constantly active, disrupting the normal equilibrium.<BR><BR>The =
researchers=20
said disruptions in this default network could explain why pain patients =
have=20
problems with attention, sleep disturbances and even =
depression.<BR><BR>This=20
constant firing of neurons in these regions of the brain could cause =
permanent=20
damage, Chialvo said. "We know when neurons fire too much they may =
change their=20
connections with other neurons or even die because they can't sustain =
high=20
activity for so long," he explained.&nbsp; <BR><BR>'If you are a chronic =
pain=20
patient, you have pain 24 hours a day, seven days a week, every minute =
of your=20
life," Chialvo said. "That permanent perception of pain in your brain =
makes=20
these areas in your brain continuously active. This continuous =
dysfunction in=20
the equilibrium of the brain can change the wiring forever and could =
hurt the=20
brain."<BR><BR>Chialvo hypothesized the subsequent changes in =
wiring&nbsp; "may=20
make it harder for you to make a decision or be in a good mood to get up =
in the=20
morning. It could be that pain produces depression and the other =
reported=20
abnormalities because it disturbs the balance of the brain as a =
whole."&nbsp;=20
<BR><BR>"These findings suggest that the brain of a chronic pain patient =
is not=20
simply a healthy brain processing pain information but rather it is =
altered by=20
the persistent pain in a manner reminiscent of other neurological =
conditions=20
associated with cognitive impairments," the researchers wrote in their=20
report.<BR><BR>Chialvo said the study=92s findings show it is essential =
to=20
research new approaches to treat patients not just to control their pain =
but=20
also to evaluate and prevent the dysfunction that may be generated in =
the brain=20
by the chronic pain.<BR><BR>The study was supported by the National =
Institute of=20
Neurological Disorders and Stroke, and is published in the Feb. 6, 2008, =
issue=20
of The Journal of Neuroscience.<BR><BR>[END]</P></DIV>
<DIV class=3Dpostsignature>
<HR>
..alex...<BR><SPAN style=3D"COLOR: blue">Alex DeLuca, M.D., =
MPH<BR>Senior=20
Consultant, PRN</SPAN><BR><A=20
href=3D"mailto:doctordeluca@painreliefnetwork.org">doctordeluca@painrelie=
fnetwork.org</A></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1632>
<H2><SPAN><SPAN class=3Dconr>#2&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1632#p1632">200=
8-02-08=20
10:54:09</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D61"><SPAN=20
  style=3D"COLOR: #0086cc">MissDiva</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D61"><IMG=20
  title=3D"MissDiva's Avatar" height=3D44 alt=3D"MissDiva's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/61.jpg" =
width=3D60></A>=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: Somewhere between here + there=20
  <DD>Registered: 2008-02-05=20
  <DD>Posts: 18=20
  <DD>Karma: 1 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Excellent study and information.&nbsp; *Methinks* that this could =
explain the=20
'Fibro Fog' symptom assciated with Fibromyalgia.&nbsp; It also explains =
why I=20
feel like I'm running on full throttle all the time, when physically I'm =

not.</P></DIV>
<DIV class=3Dpostsignature>
<HR>
MissDiva ~ Pat</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1640>
<H2><SPAN><SPAN class=3Dconr>#3&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1640#p1640">200=
8-02-08=20
14:47:59</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><SPAN=20
  style=3D"COLOR: #e70000">Tami</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Administrative-Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><IMG=20
  title=3D"Tami's Avatar" height=3D101 alt=3D"Tami's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/4.jpg" =
width=3D115></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: ND=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 607=20
  <DD>Karma: 15=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://painreliefnetwork.org/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Thanks Alex, great article. I thought I would add this as well. A bit =

outdated, but relevant.<BR><BR>Chronic Back Pain May Shrink the =
Brain<BR>Brain=20
Cell Loss Is 10 to 20 Times That of Normal Aging <BR><BR>WebMD Medical =
News=20
<BR>&nbsp; <BR>Nov. 19, 2004 =97 If you=92re one of the millions of =
people with=20
chronic back pain, scientists say your brain may age up to 20 times =
faster than=20
normal. <BR>In the first study of its kind, researchers from =
Northwestern=20
University have found that chronic back pain actually shrinks the brain =
by as=20
much as 11%. Specifically, it shrinks the gray matter, which makes up =
the part=20
of the brain responsible for memory and information processing. <BR>It =
is well=20
documented that chronic back pain negatively impacts quality of life and =

increases anxiety and depression, but it has been assumed that any brain =
changes=20
revert to a normal state after the pain stops, researcher A. Vania =
Apkarian=20
writes in the Nov. 23, 2004 issue of The Journal of Neuroscience. =
<BR>Apkarian=20
and colleagues compared 26 healthy volunteers with 26 patients who had =
chronic=20
back pain in the lower region for more than a year. Some patients=92 =
pain radiated=20
through the buttock, thigh, and leg =97 a sign of sciatic nerve damage, =
or=20
sciatica. The source of the pain was not considered. <BR>MRI brain =
images and=20
other sophisticated imaging tests, which measured gray matter size, were =

performed on all patients. After adjusting for age and gender factors,=20
scientists found that, overall, chronic back pain patients lost about =
5%-11% of=20
gray matter a year =97 about the same as 10 to 20 years or normal aging, =
the=20
researchers say. Typically, normal aging results in only about 0.5% of =
gray=20
matter loss each year, they add. <BR>Those with chronic back pain with =
sciatica=20
had the largest decrease in gray matter. In addition, the more years =
someone has=20
chronic back pain, the more brain loss they suffered. <BR>It=92s =
possible that=20
some of the brain shrinkage occurs without substantial nerve cell loss,=20
suggesting that certain medications could potentially help reverse =
tissue=20
shrinkage, says Apkarian, in a news release. <BR>What=92s Behind the =
Brain=20
Shrinkage?<BR>By definition, chronic back pain is a state of persistent =
pain=20
sensation with associated negative mood and stress, says Apkarian. =
Therefore,=20
one possible explanation for the decreased gray matter is that nerve =
cells are=20
working overtime, he says. <BR>The researchers hypothesize that as =
chronic back=20
pain persists it may become more irreversible and less responsive to =
treatment=20
due to these brain changes. <BR><BR><A=20
href=3D"http://www.webmd.com/back-pain/news/20041122/chronic-back-pain-ma=
y-shrink-brain">http://www.webmd.com/back-pain/news/20041122/chronic-back=
-pain-may-shrink-brain</A></P></DIV>
<DIV class=3Dpostsignature>
<HR>
<STRONG><SPAN style=3D"COLOR: blue">Tami ~ CPP ~ Advocate the Pain =
Relief=20
Network</SPAN></STRONG><BR><BR>"The opposite of love is not hate, it's=20
indifference. The opposite of art is not ugliness, it's indifference. =
The=20
opposite of faith is not heresy, it's indifference. And the opposite of =
life is=20
not death, it's indifference." Elie Wiesel</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P><STRONG></STRONG></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1649>
<H2><SPAN><SPAN class=3Dconr>#4&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1649#p1649">200=
8-02-08=20
23:29:56</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D5"><SPAN=20
  style=3D"COLOR: #e70000">docalex</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Admin</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D5"><IMG=20
  title=3D"docalex's Avatar" height=3D42 alt=3D"docalex's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/5.png" =
width=3D59></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: New York City=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 213=20
  <DD>Karma: 10=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://doctordeluca.com/wordpress/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<BLOCKQUOTE>
  <DIV class=3Dincqbox>
  <H4>Tami wrote:</H4>
  <P>Thanks Alex, great article. I thought I would add this as well. A =
bit=20
  outdated, but relevant.<BR><BR>Chronic Back Pain May Shrink the Brain =
- Brain=20
  Cell Loss Is 10 to 20 Times That of Normal Aging <BR>WebMD Medical =
News - Nov.=20
  19, 2004<BR><A=20
  =
href=3D"http://www.webmd.com/back-pain/news/20041122/chronic-back-pain-ma=
y-shrink-brain">http://www.webmd.com/back-pain/news/20041122/chronic-back=
-pain-may-shrink-brain</A></P></DIV></BLOCKQUOTE>
<P>This was an important study, Tami, and one that has made it into the=20
footnotes of several legal documents authored by Dr. Fisher and myself =
over the=20
years. The current study adds credence to this older work. <BR><BR>This =
is a=20
crucially important point - because if chronic pain causes brain damage, =
and if=20
opioids (and not NSAIDS etc) could prevent that damage, then all that =
nonsense=20
about using opioids only as a last resort, the "analgesic ladder", all =
of that=20
non-medical, confused thinking, goes right out the window.<BR><BR>Always =

remember, the standard of care is what the science says it is. Not what =
cops,=20
regulators or even scientists say it is - it is not a matter of opinion =
- it is=20
what it is. This is a growing body of powerful research which WILL force =
us to=20
think again.</P></DIV>
<DIV class=3Dpostsignature>
<HR>
..alex...<BR><SPAN style=3D"COLOR: blue">Alex DeLuca, M.D., =
MPH<BR>Senior=20
Consultant, PRN</SPAN><BR><A=20
href=3D"mailto:doctordeluca@painreliefnetwork.org">doctordeluca@painrelie=
fnetwork.org</A></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1653>
<H2><SPAN><SPAN class=3Dconr>#5&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1653#p1653">200=
8-02-09=20
01:30:17</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D28"><SPAN=20
  style=3D"COLOR: #0086cc">wfmiii</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D28"><IMG=20
  title=3D"wfmiii's Avatar" height=3D41 alt=3D"wfmiii's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/28.jpg" =
width=3D60></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: GA=20
  <DD>Registered: 2008-01-19=20
  <DD>Posts: 23=20
  <DD>Karma: 2 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>This is an awesome development.&nbsp; The fact that it will be =
ignored and=20
poo poo'd by prosecutors and investigators should shed some much needed =
light on=20
their true goals.&nbsp; They IN NO WAY have pain patients' best =
interests at=20
heart.<BR><BR>Is is just puritanical opiophobia on law enforcement's =
part?&nbsp;=20
I understand that it is cruel and evil, but there must be a more =
specific way to=20
define what their goals really are...absolute prohibition???&nbsp; And =
for what=20
purpose?&nbsp; To see to it that the &lt;=3D3.9% of people don't become=20
accidentally "addicted" while the other 48 million sufferers stay in =
pain?&nbsp;=20
I think it is more about job security for DEA diversion investigators =
and the=20
significant surplus of Assistant US Attorneys this country currently =
suffers=20
from.</P></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1679>
<H2><SPAN><SPAN class=3Dconr>#6&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1679#p1679">200=
8-02-09=20
17:08:36</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D35"><SPAN=20
  style=3D"COLOR: #0086cc">David</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D35"><IMG=20
  title=3D"David's Avatar" height=3D80 alt=3D"David's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/35.png" =
width=3D80></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: OHIO=20
  <DD>Registered: 2008-01-20=20
  <DD>Posts: 27=20
  <DD>Karma: 1 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Docalex,&nbsp; Fascinating study.&nbsp; It would have been even more=20
intersting when they tested subjects with the MRI they would have also =
included=20
a subject with chronic pain AND on their pain medicine.&nbsp; Also I can =
not=20
help but wonder;&nbsp; Over time does the continuous 24 hour a day =
suffering=20
bring on more and more brain damage?&nbsp; &nbsp;And what other kinds of =
damage=20
pain does to the brain?&nbsp; I have read before of this phenomenom of =
the=20
re-wiring of the built-in hardwiring in a person.&nbsp; I wonder what =
else this=20
damage could be responsible for besides the depression, insomnia, and =
difficulty=20
making decisions?&nbsp; I also can not help wonder if thid damage to the =
brain=20
is responsible for any criminal types of behavior?&nbsp; David</P></DIV>
<DIV class=3Dpostsignature>
<HR>
LIVE FREE OR DIE</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1697>
<H2><SPAN><SPAN class=3Dconr>#7&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1697#p1697">Yes=
terday=20
11:05:54</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><SPAN=20
  style=3D"COLOR: #0086cc">pauly</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><IMG=20
  title=3D"pauly's Avatar" height=3D80 alt=3D"pauly's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/51.jpg" =
width=3D80></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: Chicago=20
  <DD>Registered: 2008-01-30=20
  <DD>Posts: 28=20
  <DD>Karma: 1 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>And here I was worried that Tami's brain was going to waste away from =

inactivity!<IMG alt=3Dsmile=20
src=3D"http://doctordeluca.com/forum/img/smilies/smile.png"> I pray that =
the=20
powers that be start using these &amp; similar studies that show =
negative=20
effects of CP on other organs of the body &amp; start relieving CP. Many =
dr's=20
say learn to live w/ it but these studies show that by doing so, it may =
be=20
hurting us if not killing us. The high suicide rate in the CP community =
shows=20
it's doing both! Everyone should make copies &amp; give it to all their =
dr's,=20
not just their pain dr's. Maybe our pcp's will take a more active role =
in our CP=20
if they are made aware of studies like this that are sometimes lost in =
the world=20
of neurology. After all, they are the quarterbacks of our health care =
team or=20
are supposed to be.<BR>Take care,<BR>Pauly</P></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1709>
<H2><SPAN><SPAN class=3Dconr>#8&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1709#p1709">Yes=
terday=20
15:06:21</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><SPAN=20
  style=3D"COLOR: #0086cc">pauly</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><IMG=20
  title=3D"pauly's Avatar" height=3D80 alt=3D"pauly's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/51.jpg" =
width=3D80></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: Chicago=20
  <DD>Registered: 2008-01-30=20
  <DD>Posts: 28=20
  <DD>Karma: 1 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Chronic pain is one of the biggest medical health issues in the =
Western=20
world; it costs the United States about $150 billion a year. Unlike with =
acute=20
pain, the causes of chronic pain are often unclear--for example, doctors =
can=20
identify a physical source in only about 10 percent of those with =
chronic back=20
pain. A growing number of studies suggest that chronic pain should be =
viewed as=20
a progressive disease, likely triggered by aberrant but potentially =
permanent=20
changes in the brain. <BR><BR>The painkillers that help headaches and =
broken=20
bones do little for chronic pain, leaving a huge need for new =
treatments. But=20
developing them has been difficult. Perception of pain depends strongly =
on our=20
level of attention and our emotional state--two factors that are =
difficult to=20
study in animal models. "We don't have one drug developed from =
preclinical=20
models of pain that works for chronic pain," says Irene Tracey, a =
scientist at=20
the University of Oxford, in England, who studies pain. <BR><BR>Now =
scientists=20
are aiming to develop and test new drugs using human brain imaging. A. =
Vania=20
Apkarian and his colleagues at Northwestern University have found a =
series of=20
abnormalities in the brains of chronic pain sufferers: the part of the=20
prefrontal cortex linked to decision making appears to have shrunk in =
chronic=20
pain patients. And another part of the prefrontal cortex linked to =
emotion is=20
hyperactive. In fact, a unique study assessing background pain in =
chronic=20
back-pain patients suggests that the constant pain these people =
experience is=20
linked to activity almost entirely in emotion-regulating parts of the=20
brain.<BR><BR>Researchers used functional magnetic resonance imaging =
(fMRI),=20
which measures brain activity, to study background pain. They asked =
back-pain=20
patients to continually rate their pain while lying in the scanner, and =
then the=20
researchers compared brain activity patterns during periods of constant =
pain=20
with those during periods of worsening pain. <BR><BR>While activity =
patterns=20
during flare-ups resembled those previously linked to acute pain, the =
pattern=20
associated with constant background pain was distinct: it centered on =
the medial=20
prefrontal cortex, a brain area involved in emotion and sense of self. =
"It=20
almost seems like they've turned off the sensory part and are suffering =
entirely=20
from the emotional aspect," Apkarian says. <BR><BR>Given these findings, =
the=20
scientists are beginning human tests of a compound called d-cycloserine, =
an=20
FDA-approved antibiotic that also blocks certain receptors in the brain. =
(It is=20
currently being tested for treating post-traumatic stress disorder and =
other=20
conditions.) "We think it increases transmission within the prefrontal =
cortex to=20
better control the emotional component of pain," says Apkarian. "This =
will be=20
the first hypothesis-driven test for a pain drug driven by human-imaging =

studies." <BR>I found this in Technology Review. It seems I may not be =
so crazy=20
after all about antibiotics! I love studies that help the CP community. =
I have=20
to research to see if I can become a guinea pig again! First I have to =
make sure=20
there's no venom in the compound!<BR>Pauly<BR><BR>Northwestern was =
starting a=20
study in May &amp; I'm very close to them but I'm not eligible! There's =
no way I=20
can hide the scars on my back &amp; surgery is just one of the things =
that=20
vetoed me.</P>
<P class=3Dpostedit><EM>Last edited by pauly (Yesterday=20
15:35:03)</EM></P></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1713>
<H2><SPAN><SPAN class=3Dconr>#9&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1713#p1713">Yes=
terday=20
16:12:07</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><SPAN=20
  style=3D"COLOR: #e70000">Tami</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Administrative-Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><IMG=20
  title=3D"Tami's Avatar" height=3D101 alt=3D"Tami's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/4.jpg" =
width=3D115></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: ND=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 607=20
  <DD>Karma: 15=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://painreliefnetwork.org/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P><IMG class=3Dpostimg=20
alt=3Dhttp://d.yimg.com/us.yimg.com/p/rids/20080206/i/r1391950705.jpg?=20
src=3D"http://d.yimg.com/us.yimg.com/p/rids/20080206/i/r1391950705.jpg?">=
</P></DIV>
<DIV class=3Dpostsignature>
<HR>
<STRONG><SPAN style=3D"COLOR: blue">Tami ~ CPP ~ Advocate the Pain =
Relief=20
Network</SPAN></STRONG><BR><BR>"The opposite of love is not hate, it's=20
indifference. The opposite of art is not ugliness, it's indifference. =
The=20
opposite of faith is not heresy, it's indifference. And the opposite of =
life is=20
not death, it's indifference." Elie Wiesel</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P><STRONG></STRONG></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1714>
<H2><SPAN><SPAN class=3Dconr>#10&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1714#p1714">Yes=
terday=20
16:25:34</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><SPAN=20
  style=3D"COLOR: #e70000">Tami</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Administrative-Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><IMG=20
  title=3D"Tami's Avatar" height=3D101 alt=3D"Tami's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/4.jpg" =
width=3D115></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: ND=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 607=20
  <DD>Karma: 15=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://painreliefnetwork.org/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Pauly, such a sweetie worrying about my brain wasting away!!=20
<BR><BR>Appreciate the discussion, like Alex said, this is a growing and =

powerful body of research that will force us to think again. I am just =
amazed=20
daily, by the stories people tell, and the Docs lack of understanding of =
chronic=20
pain as a malignancy, a disease.<BR><BR>"Learn to live with it." I am =
sure each=20
of us at some point have been told that, it is this lack of =
understanding,=20
prejudice, cowardice, fear, that is costing thousands of lives each year =
and=20
immeasurable suffering.<BR><BR>Tami</P></DIV>
<DIV class=3Dpostsignature>
<HR>
<STRONG><SPAN style=3D"COLOR: blue">Tami ~ CPP ~ Advocate the Pain =
Relief=20
Network</SPAN></STRONG><BR><BR>"The opposite of love is not hate, it's=20
indifference. The opposite of art is not ugliness, it's indifference. =
The=20
opposite of faith is not heresy, it's indifference. And the opposite of =
life is=20
not death, it's indifference." Elie Wiesel</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P><STRONG></STRONG></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1715>
<H2><SPAN><SPAN class=3Dconr>#11&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1715#p1715">Yes=
terday=20
16:52:57</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><SPAN=20
  style=3D"COLOR: #e70000">Tami</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Administrative-Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D4"><IMG=20
  title=3D"Tami's Avatar" height=3D101 alt=3D"Tami's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/4.jpg" =
width=3D115></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: ND=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 607=20
  <DD>Karma: 15=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://painreliefnetwork.org/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<BLOCKQUOTE>
  <DIV class=3Dincqbox>
  <H4>wfmiii wrote:</H4>
  <P>This is an awesome development.&nbsp; The fact that it will be =
ignored and=20
  poo poo'd by prosecutors and investigators should shed some much =
needed light=20
  on their true goals.&nbsp; They IN NO WAY have pain patients' best =
interests=20
  at heart.<BR><BR>Is is just puritanical opiophobia on law =
enforcement's=20
  part?&nbsp; I understand that it is cruel and evil, but there must be =
a more=20
  specific way to define what their goals really are...absolute=20
  prohibition???&nbsp; And for what purpose?&nbsp; To see to it that the =

  &lt;=3D3.9% of people don't become accidentally "addicted" while the =
other 48=20
  million sufferers stay in pain?&nbsp; I think it is more about job =
security=20
  for DEA diversion investigators and the significant surplus of =
Assistant US=20
  Attorneys this country currently suffers from.</P></DIV></BLOCKQUOTE>
<P>Hi wfmiii,<BR>I think it to some degree it is a combination of all =
the above=20
mentioned. Opiophobia, opioignorance, fear, prejudice, morality. And of =
course=20
our Gov't with the need, to justify the billions and billions spent, and =
the=20
decades, now past, of failed policy. The corruption it takes to maintain =
this=20
state of prohibition is astounding. This is now such a monolithic, =
perverse,=20
white elephant, moneymaking scheme, that I cannot ever see it going =
down,=20
without the stand PRN is taking.<BR><BR>Oh yes, lets not forget, we now =
build=20
more prisons than schools, more job security. <BR><BR>Tami</P></DIV>
<DIV class=3Dpostsignature>
<HR>
<STRONG><SPAN style=3D"COLOR: blue">Tami ~ CPP ~ Advocate the Pain =
Relief=20
Network</SPAN></STRONG><BR><BR>"The opposite of love is not hate, it's=20
indifference. The opposite of art is not ugliness, it's indifference. =
The=20
opposite of faith is not heresy, it's indifference. And the opposite of =
life is=20
not death, it's indifference." Elie Wiesel</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P><STRONG></STRONG></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1716>
<H2><SPAN><SPAN class=3Dconr>#12&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1716#p1716">Yes=
terday=20
17:10:06</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D19"><SPAN=20
  style=3D"COLOR: #79a600">FrankA</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DModerator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DModerator =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_2.png">=20

  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D19"><IMG=20
  title=3D"FrankA's Avatar" height=3D80 alt=3D"FrankA's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/19.png" =
width=3D80></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: All Be Quirkey, NM=20
  <DD>Registered: 2008-01-14=20
  <DD>Posts: 90=20
  <DD>Karma: 11=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://vs2480.googlepages.com/frankinabox"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>Here's three more links related to this subject..<BR><BR>Pain, Proof =
in brain=20
using magnetic resonance imaging...<BR><A=20
href=3D"http://www.boston.com/news/nation/articles/2006/12/19/imaging_cou=
ld_furnish_proof_of_chronic_pain/">http://www.boston.com/news/nation/arti=
cles/2006/12/19/imaging_could_furnish_proof_of_chronic_pain/</A><BR><BR>M=
orphine=20
for chronic pain maintains cognitive function lost due to CP... <A=20
href=3D"http://www.imwr.com/issues/articles/2006-11_42.asp">http://www.im=
wr.com/issues/articles/2006-11_42.asp</A><BR><BR>Chronic=20
Pain can drive a person to distraction...<BR><A=20
href=3D"http://www.medicalnewstoday.com/printerfriendlynews.php?newsid=3D=
71418">http://www.medicalnewstoday.com/printerfriendlynews.php?newsid=3D7=
1418</A><BR><BR>I'll=20
tell you this much, I have been very forgetful lately with the increase =
in my=20
pain. Things I do usually without thinking about it wind up creating a =
mess ie=20
sitting my glass of milk on a side table but not quite getting it on the =
table=20
and spilling milk all over the carpet. The wife made me switch to a =
sippy cup;=20
leaving keys in the door, forgetting how to spell the simplest of words, =

forgetting what day it is, where I laid down my reading glasses, =
forgetting to=20
pay bills on time etc... All of those things I did perfectly on morphine =
I now=20
mess up! It takes me forever to compose a post or reply to one, I double =
check=20
the spelling and meaning of every sentence and still find mistakes. Some =
times I=20
get cut off because i do take so long.<BR><BR>It's embarrassing and =
aggravating=20
and some days I feel like I'm turning into a idiot!<BR>When the VA =
tested me in=20
the late 80s to see if I needed more of a college education to get =
different=20
work after losing the last career they educated me for, they said I =
tested near=20
genius and that I was smart enough to figure out how to make money =
without going=20
back to college. If I had to go to college now, I doubt I could pass an =
art=20
class muchless anything harder. <BR>IP and CP definantly does something =
to the=20
brain, IMO.<BR>Later, FrankA.</P></DIV>
<DIV class=3Dpostsignature>
<HR>
X-News Journalist Disabled Vet Musician Artist CP &amp; IP patient in=20
pain!</DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1721>
<H2><SPAN><SPAN class=3Dconr>#13&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1721#p1721">Yes=
terday=20
18:10:06</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D28"><SPAN=20
  style=3D"COLOR: #0086cc">wfmiii</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D28"><IMG=20
  title=3D"wfmiii's Avatar" height=3D41 alt=3D"wfmiii's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/28.jpg" =
width=3D60></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: GA=20
  <DD>Registered: 2008-01-19=20
  <DD>Posts: 23=20
  <DD>Karma: 2 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<BLOCKQUOTE>
  <DIV class=3Dincqbox>
  <H4>FrankA wrote:</H4>
  <P>I'll tell you this much, I have been very forgetful lately with the =

  increase in my pain. Things I do usually without thinking about it =
wind up=20
  creating a mess ie sitting my glass of milk on a side table but not =
quite=20
  getting it on the table and spilling milk all over the carpet. The =
wife made=20
  me switch to a sippy cup; leaving keys in the door, forgetting how to =
spell=20
  the simplest of words, forgetting what day it is, where I laid down my =
reading=20
  glasses, forgetting to pay bills on time etc... All of those things I =
did=20
  perfectly on morphine I now mess up! It takes me forever to compose a =
post or=20
  reply to one, I double check the spelling and meaning of every =
sentence and=20
  still find mistakes. Some times I get cut off because i do take so=20
  long.</P></DIV></BLOCKQUOTE>
<P>I'm so glad to see this post.&nbsp; The drug warriors would swear =
that=20
forgetfulness, clumsiness, etc is DUE to the morphine use.&nbsp; This is =
the=20
kind of information that needs to be digested by the public to turn back =
the=20
decades of demonization of opioids.&nbsp; The drug warriors have had =
their way=20
with causing lay people (and sadly many health practitioners) to believe =
that=20
opioids are evil because of their misuse by a minority of people.&nbsp; =
These=20
studies and testimonials should go a long way to refuting the lies of =
the drug=20
warriors.</P></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost roweven" id=3Dp1765>
<H2><SPAN><SPAN class=3Dconr>#14&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1765#p1765">Tod=
ay=20
11:58:39</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D3"><SPAN=20
  style=3D"COLOR: #e70000">Kim</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Administrative-Moderator</STRONG>=20
  <DD class=3Dusertitle><IMG title=3DAdministrator=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3DAdministrator=20
  src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D3"><IMG=20
  title=3D"Kim's Avatar" height=3D108 alt=3D"Kim's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/3.jpg" =
width=3D120></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dfemale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dfemale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/female.png">=20
  <DD>From: Alaska=20
  <DD>Registered: 2008-01-09=20
  <DD>Posts: 327=20
  <DD>Karma: 12=20
  <DD class=3Dusercontacts><A title=3DWebsite=20
  onclick=3D"window.open(this.href); return false;"=20
  href=3D"http://painreliefnetwork.org/"><IMG alt=3DWebsite=20
  =
src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png"=
></A>=20
  </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>I definitely had memory problems and confusion when I was in pain and =
not=20
treated for it. I have noticed a difference since I have been on meds =
the last 8=20
months. My memory is not what it use to be before pain but it has slowly =

improved with meds. I swear I would go into work and a specific job I =
have done=20
hundreds of time I would all of the sudden forget what I was suppose to =
do.=20
People will bring things up that happened in the last several years and =
I have=20
no memory of it.</P></DIV>
<DIV class=3Dpostsignature>
<HR>
<STRONG><SPAN style=3D"COLOR: blue">Kim</SPAN>~~<SPAN=20
style=3D"COLOR: blue">CPP</SPAN>~~<SPAN style=3D"COLOR: blue">PRN=20
Advocate</SPAN></STRONG></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3D"blockpost rowodd" id=3Dp1770>
<H2><SPAN><SPAN class=3Dconr>#15&nbsp;</SPAN><A=20
href=3D"http://doctordeluca.com/forum/viewtopic.php?pid=3D1770#p1770">Tod=
ay=20
13:14:09</A></SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dpostleft>
<DL>
  <DT><STRONG><A =
href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><SPAN=20
  style=3D"COLOR: #0086cc">pauly</SPAN></A></STRONG>=20
  <DD class=3Dusertitle><STRONG>Contributing-Member</STRONG>=20
  <DD class=3Dusertitle><IMG title=3D""=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3D"" =
src=3D"http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png">=20
  <DD class=3Dpostavatar><A=20
  href=3D"http://doctordeluca.com/forum/profile.php?id=3D51"><IMG=20
  title=3D"pauly's Avatar" height=3D80 alt=3D"pauly's Avatar"=20
  src=3D"http://doctordeluca.com/forum/img/avatars/51.jpg" =
width=3D80></A>=20
  <DD class=3Dpostavatar><IMG title=3DUnited_States alt=3DUnited_States=20
  src=3D"http://doctordeluca.com/forum/img/flags/United_States.png">=20
  <DD class=3Dinfo>Gender: <IMG title=3Dmale=20
  style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"=20
  alt=3Dmale =
src=3D"http://doctordeluca.com/forum/img/Oxygen/misc/male.png">=20
  <DD>From: Chicago=20
  <DD>Registered: 2008-01-30=20
  <DD>Posts: 28=20
  <DD>Karma: 1 </DD></DL></DIV>
<DIV class=3Dpostright>
<H3>Re: Chronic Pain Can Damage Brain</H3>
<DIV class=3Dpostmsg>
<P>You don't remember that night we shared in Nome last year?<IMG =
alt=3Dsmile=20
src=3D"http://doctordeluca.com/forum/img/smilies/smile.png"> That's ok, =
I don't=20
either!<IMG alt=3Dsad =
src=3D"http://doctordeluca.com/forum/img/smilies/sad.png"> On=20
the serious side I noticed concentration &amp; memory issues long ago =
but dr's=20
always blamed the meds. My fiance would ask me something &amp; I would =
say I=20
don't remember. She would say you used to remember everything! I would =
have to=20
say some of it could have something to do w/ all the meds I've been on =
over the=20
years but most of it is due to the pain. The brain is so focused on the =
pain=20
that it can't absorb everything else. At least that's how it is now. =
When I was=20
at a level 6, things were much better. I pray these studies lead to =
better pain=20
relief for all!<BR>Take care,<BR>Pauly</P></DIV></DIV>
<DIV class=3Dclearer></DIV>
<DIV class=3Dpostfootleft><BR>
<P></P></DIV>
<DIV class=3Dpostfootright>&nbsp;
<DIV>&nbsp;</DIV>&nbsp;</DIV></DIV></DIV></DIV>
<DIV class=3Dpostlinksb>
<DIV class=3Dinbox>
<P class=3D"postlink conr"><A title=3D"Post reply"=20
href=3D"http://doctordeluca.com/forum/login.php"><IMG alt=3D"Post reply" =

src=3D"http://doctordeluca.com/forum/img/Oxygen/buttons/new_reply.png"></=
A></P>
<P class=3D"pagelink conl">Pages: <STRONG>1</STRONG></P>
<UL>
  <LI><A href=3D"http://doctordeluca.com/forum/index.php">Index</A>
  <LI>&nbsp;=BB&nbsp;<A=20
  =
href=3D"http://doctordeluca.com/forum/viewforum.php?id=3D18">Casualities =
of=20
  Prohibition</A>
  <LI>&nbsp;=BB&nbsp;Chronic Pain Can Damage Brain</LI></UL>
<DIV class=3Dclearer></DIV></DIV></DIV><!--<div id=3D"brdwelcome" =
class=3D"inbox">=0A=
			<p>You are not logged in.</p>=0A=
		</div>-->
<DIV class=3Dclearer></DIV>
<DIV class=3Dblock id=3Dbrdfooter style=3D"MARGIN-TOP: 40px">
<H2><SPAN>Board footer</SPAN></H2>
<DIV class=3Dbox>
<DIV class=3Dinbox>
<DIV class=3Dconl>
<FORM id=3Dqjump action=3Dviewforum.php method=3Dget>
<DIV><LABEL>Jump to <BR><SELECT=20
onchange=3D"window.location=3D('viewforum.php?id=3D'+this.options[this.se=
lectedIndex].value)"=20
name=3Did> <OPTGROUP label=3D"Welcome to PRN.  Stop here first."> =
<OPTION=20
    value=3D24>Welcome</OPTION> </OPTGROUP> <OPTGROUP=20
  label=3D"Chronic Pain Support group"> <OPTION value=3D25>Chronic Pain=20
    Support</OPTION> <OPTION value=3D4>Introduce Yourself!</OPTION> =
<OPTION=20
    value=3D6>The Disease of Chronic Pain</OPTION> <OPTION =
value=3D8>Analgesic=20
    medication and other medications</OPTION> <OPTION value=3D31>Support =
for=20
    Family, Loved Ones and Friends of Someone Who Suffers from =
CP</OPTION>=20
    <OPTION value=3D9>Pain Relief Forum Testimonials</OPTION> =
</OPTGROUP> <OPTGROUP=20
  label=3D"Veterans In Pain (VIP) Support Group"> <OPTION =
value=3D12>Veterans In=20
    Pain Library Forum</OPTION> <OPTION value=3D10>We are Veterans In=20
    Pain</OPTION> <OPTION value=3D11>The Opiophobic VA</OPTION> =
</OPTGROUP>=20
  <OPTGROUP label=3D"Pain Relief Network (PRN)"> <OPTION value=3D5>PRN: =
Hot Off=20
    the Presses!</OPTION> <OPTION value=3D16>Pain Relief Network (PRN)=20
    Forum</OPTION> <OPTION value=3D17>PRN's Addiction, Pain, and Public =
Health=20
    Library</OPTION> </OPTGROUP> <OPTGROUP=20
    label=3D"Dark Companions of Chronic Pain"> <OPTION =
value=3D14>Anxiety,=20
    Depression, PTSD, and Traumatic Brain Injury</OPTION> <OPTION =
value=3D15>Other=20
    Medical Consequences</OPTION> </OPTGROUP> <OPTGROUP=20
  label=3D"Pain Politics, History, Law, and Ethics"> <OPTION value=3D18=20
    selected>Casualities of Prohibition</OPTION> <OPTION =
value=3D19>Docs,=20
    Regulators, and Cops Discussion Forum</OPTION> </OPTGROUP> <OPTGROUP =

  label=3D"Getting To Know Each Other"> <OPTION value=3D21>Poems, =
Stories, Images,=20
    and Video</OPTION> <OPTION value=3D22>The Watercooler - vets, docs, =
patients=20
    and advocates!</OPTION> </OPTGROUP> <OPTGROUP=20
  label=3D"America in Peril - Political Discussion"> <OPTION =
value=3D23>USA is Off=20
    the Rails</OPTION> </OPTGROUP> <OPTGROUP=20
  label=3D"Mega Pun Developers Conference"> <OPTION value=3D26>Welcome=20
    developers!</OPTION> <OPTION value=3D29>Features I need help=20
    installing</OPTION> <OPTION value=3D30>Upgrading Mega Pun 4.01 to =
5.00=20
    Issues</OPTION> <OPTION value=3D27>Styles</OPTION> <OPTION =
value=3D28>Mega Pun=20
    Modifications</OPTION> </OPTGROUP></SELECT> <INPUT accessKey=3Dg =
type=3Dsubmit value=3D" Go "> </LABEL></DIV></FORM></DIV>
<P class=3Dconr><A href=3D"http://shedrockonline.com/">Mega Pun</A> is =
Powered by <A=20
href=3D"http://www.punbb.org/">PunBB</A> 1.2.16<BR>=A9 Copyright =
2002=962007 Rickard=20
Andersson<BR><A=20
href=3D"http://jigsaw.w3.org/css-validator/validator?uri=3Dhttp://doctord=
eluca.com/forum"><IMG=20
title=3D"Valid CSS" alt=3D"Valid CSS"=20
src=3D"http://doctordeluca.com/forum/img/valid_css_80x15.png"></A> <A=20
href=3D"http://validator.w3.org/check?uri=3Dreferer"><IMG title=3D"Valid =
XHTML"=20
alt=3D"Valid XHTML"=20
src=3D"http://doctordeluca.com/forum/img/valid_xhtml_80x15.png"></A></P>
<DIV class=3Dclearer></DIV></DIV></DIV></DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/buttons/new_reply.png

iVBORw0KGgoAAAANSUhEUgAAADwAAAAPCAYAAAC4EqxxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG
AAAAqElEQVR42mJkca/7zzCCAAsDAwPDH3nrkeHZh0cZmBhGGBh0Hv4/0432SZqaDmRM3zX48zCl
ANmT/2e6DWpPs9AziaIHDL6UgR5w1ApIFlp7Ch+fkIdokVqomqSxFTjkFkKM6bvgeqnpcaomaZgj
ccXisMzDyJ5GjiVC+RhbwGALwAH3MC6HEhPDhPSOiIYHrQutAfMwMR6hRWyzwBrVIwUAAAAA//8D
AHTEVjxHDd42AAAAAElFTkSuQmCC

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/ranks/rank_1.png

iVBORw0KGgoAAAANSUhEUgAAAGQAAAAUCAMAAAE7GVgxAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE1UExURcXU3cfM0NbslW+RBcfmYn6kB77i
UY6zGczpbZG2IMrZ4oGoCLneRtTqjsPkWt/n6c3pdOPzrnqfBdvund/yo+//zrTcOnabBcDjVLzg
S7DZMHOWBeH1m9Tsipy9Mr7Fyr/UeO/x8svle9vxkZm8KJi9JJG4GOLzrqzJU2yNBc7ngc/V2KW0
vb7P2a+/x7fJ1abGRrTQWtHteev4v528PvL28u76x6/NT8nXq9Da4KCvt9XkrKu5wOb1tMPhaYyt
EIyzFMrR1Pb+2bjeQrrEyej2u7vcV9Tc4arWJOTysuXu1fH8yen5sMTaf/D7zJi8J7S/xoWsDaDC
NuX4pdbvhcHWh6PFNeTq39bf5Mzc5cXX4uft7+3y9vD19uLr8PX3+N3n7unv9Pr8/b3W3v///2Zm
ZgAAANYoLkUAAABndFJOU///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
/////wAUFrp4AAACU0lEQVR42mJIQwYMycpM0XDAEMWonQgDMQABxICikFMAqigVqC6GEa4sESCA
GKLiDYJi47EAhmQuFjGbyMjIVDAEAwgFEEAoRqM6KN6UMzQeq2nRweoSjCD7U6NRQCxDZCCbLAPI
cDRrohni+RmRnIoA0QABxBAXm0Ia4GJgiJHzFFVVEAyLiIGB1Bh8ABgCyezsRhxsTMw6yUCQCkKp
IDI1GQbgPIhQHENyQgK3MBOvkksCkSCGIS0qmTSQABBAuCMAd8xEJpEWYLFxDEnx8dYGnCrh8cQC
Bob4GENRX1VBJdboGOIAA0NstKiMsgiLpHgENH2iAgyB6GSGuGR2Vw4+HiFp/WRE2KcmQ+InFURC
ReAxxRAdyaDOxyPFrM8FT18QOhWc7mBpHMwEg2SGmIQEESZeLU1LYqMymSExJkabEQj4E4kD8VEM
CSRGflQaQIAxpMWRmmJItSMujSEqNonGICYKmF5iY70U5PwN1dzs2M3VHEwsEmOpC4BpkiE+MVHF
ydtHRlBDQ5hDQFZYyBERP6mpMAZCCINBMBqTGZKBqYXTz8w4xEiAhYWNiYlJWt4dli5SwSgBmDRT
EyAYIpYKYSCEwIIwDBOBFxRAS+KionT17G05WPjYeMR4ma109HSjoABkGpAEsaIgDBiNJADBILUo
cggQB7QkMQIIuEUkJJ3FpDy0NAMYImAgFUqA7ALTIAShwQyQMIyP4KTCRGAgEWhJbHRcXBw3Kyur
kLg4MzOzfEQclUFsMkMCVyIwmcUrwgoOxXgqp+DEqAQyimLSAQDTvr/JA9Zn+AAAAABJRU5ErkJg
gg==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/5.png

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

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/flags/United_States.png

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

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/misc/male.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACCUlEQVR42qWTwUtUYRTFz/veo3nT
e+WAOqNGJApSLYqgiAlaBi20VYS7/gMXtQxc1LJlUAsXLXNZWW1aFLV4BelKUMakTIPBxJnB0XG+
c993WzRDFppRBy53c/lx7+FcT1XxPwr2G3jwstIQEbSLbHfizvWT2X0BpGD4fGeoCqgqHABV4OHT
2W0AMPsChCgtVZmqIlXAtcqS+CvAzSt92Q+lyqP1ymbqFEgdYJtUWrv8iwcTr+teKjIqko6ISLF1
c0Jh36n++MLhjsiv1eouOhSbdMcGAQBMvNrwRNJbA3l/vJALTTbjGwdFfbN5NPB970CYMSsr3+RF
svTs0tkjwz2FTp87ASIyOtAdjPf3hoHnGU8VgAJRfNBXBRpbDfc8WXpPcuzJm4+XKXMiIj8BpIwU
cqEBjFde3ZCZhUpKEZwZ7PDzPZ3BVqOptPbL/RsXlwFkd3pkWk4XM6FvnALTC+vpWnVraK2yOZTM
llPngCiKjCWLewaJJFwrkELCkiAJ+gZOgRSK9s2/y7QAyUZ92zkFTg/k/DjjleLQlM6dyPtOgdp6
zZFM9t7AcurT19rV44MZ093TFQwXugLFj8AIrc4tlh0pU3sCLDk5Pb862LR2/Fhvh4njyDgFatWq
m18su7czn2+LyORuAK/9jWP33nlCjlJkRChFCiEiiYhMicjk47vX9I+Af9V3PyZOkSRkCyEAAAAA
SUVORK5CYII=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/buttons/btn_icon_www.png

iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
BGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VG
AAAAdklEQVR42mJkca/7z0BFwMLAwMDwR96aOoY9PMrAxEBlQDsD/890Q5HAx/8/0w0FY4QhqYAx
fReGZTAxJmRFMNtgCtD5RMcyuQBmIbJlFEUKY/ouFJ9gGAiTJNZ7JHsZlwXoMYssz8jiXvd/ZOUU
FphTqQUAAwAYDDnZ6zuCnQAAAABJRU5ErkJggg==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/ranks/stars_1.png

iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAMAAAEyMiTYAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACWUExURdKhC//nhebLdevdr/fcc9GhE+O+
RP/YOf/dUv/hP960KevWkd61M+/myfTmrt68SN6+Xfny0/jfhv761//zk+/n0vTZd+XIY//ZMv36
5/ntp/DUdPfoofznmP7umv7leNOiDv/VIOjNbO/n0P3sl+XCTeO/StGgCu/jvv/UHNOlGf/4xf/S
Df/wfP/0nf/gNsyZAO3s54SFo40AAAAydFJOU///////////////////////////////////////
//////////////////////////8ADVCY7wAAALJJREFUeNpiMDRkMNQECCAGIKloCBBADIZ6ekAe
EAAEEIhgUNITZ2DTZAOxAQKIwZCZSZKJGSgpp6+vrwKkuVVl1bgNAQIIrBhkgpagoJYhA7+2np42
P4MBp74+pwEDl7ymJiMXg6GCkBCDIVQlQICBKGUBVgNWAVEwj1eLT1hbW1uYT4sXyFOXEtEFAREZ
dSDPgEVCBwTYWQyAPA0GMUYOdg5GaQYNsGEaPOoG6jwaQBYA5NIXQn9Y5A8AAAAASUVORK5CYII=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/61.jpg

/9j/4AAQSkZJRgABAAEAlgCWAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wCE
AAgFBgcGBQgHBgcJCAgJDBQNDAsLDBgREg4UHRkeHhwZHBsgJC4nICIrIhscKDYoKy8xMzQzHyY4
PDgyPC4yMzEBCAkJDAoMFw0NFzEhHCExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx
MTExMTExMTExMTExMTExMf/EAaIAAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEB
AQEBAQAAAAAAAAECAwQFBgcICQoLEAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU
MoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl
ZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYS
QVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU
VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5
usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/AABEIACwAPAMBIgACEQEDEQH/
2gAMAwEAAhEDEQA/AO68P6WJtOsymjWCjyI/nmVOflHOADXQw6DCVHmw6cntFYp/Nv8ACszQ9UiG
l2SQxzysLeMfu4yf4B36VtwXN4+PLsWX3lkC/oM1rIxjoUNfsNF0XRbnULmzhmMK/IjRoodzwo4A
6mvPPg9pVjNHqd1c21tLcLeRsyvEp2qcg4yOmTS/HfxHeWdzpujXMcQhkjNyfLc/M2SoBJ9Oa820
XxRf6PqSXGl3TQEptlIAZJATkgg9eRWaTurGrtyPufUn9jaTnH9mWQ/7d0/wp40TScf8guy/8B0/
wryrT/jK/wBojN9psbKT/wAu8hDfk3H616zpGo22rabBf2MgkgnQMp9PY+4puLiJSuR/2HpP/QLs
v/AdP8KP7E0n/oF2X/gOn+FX6Kko5HRHCaVY54/0aLr/ALgqt4t8a6b4W0prm4kWa4YEQWyN80jf
0Hqa4PXfGGi6L4dt5LDy9VvvIjRV80vHE20ff54+lePajqlxqN1JdXkpkmkOScYH0A7D2rosjBJo
XxXr9/4i1mXUtVnMlxIcDHCovZVHYCs+2lCSj0zVa5ky/wBKLX5rhB71D0NYq53EOkR3EaTmdbaE
AEZ5/Ou18J6xPoKk6NqzsrY3xNgoT67T3rzMyF7dI2zIidVJODV6xGjy38eZrjTom/1ixrvKn/Zz
2rGDk1ubzjFPY9mtfidqMU2J4re4QfeAUqfzFek6HqH9q6Tb3whaETruCMc4FeYfD3wZ4Y1F/PTW
pdWEWGMJXygPZh1P8q9bjRIo1jjUIijCqBgAelayata2pglrfofENtcPakOq70ZdskZ6Ov8AjUd7
CYissTmS3l5jk9fY+hFNbiAEegqTTXLXS2rcwXB+dD0z6j0NU9NSoe/7j+RRdTgk11Pgbwpc65O0
xzFaRHDzY7+i+p/lXPeWPP8ALycB8e/WvoKK1g0bR7e0sIlSGKMYB7kjJJ9zTjFS3MZzcNtzhtT0
ewsLv7Pb24CAKcsck/U1D/Y1nMnzwlD2ZGIrR1eRp7ws+AduOPrSeHQby61WCViEs40ePbxyTyD7
VyTVpOx0Qk+VXN34f31n4XlnmiM7XEyBN8jZCjOcAD6da9IHie3vI45hqcNqSvMYycGvHwiq7Mow
y8A09Seecc9qlNp3uS6fY//Z

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/misc/female.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACHElEQVR42nWSTUsbURSG3zszmblx
NNWFWFGoiP2glBa6Kuh/cNNdfkFrV13VTUNw2U1X6cqd+QGuuw4ttZBCo2JUMCJubDNOMhnvfNxz
ulBLxjAH7uZy3ofnHI5gZgxXu9YSckqW7Ql71ZTWMhMjDdNG7Klt5an6k/cvMgExDGjXWsKdcSvu
Yqkip4swbBNgIA1iqPMr+Pte9ervoPp0/eX/kDVMk1Oy7C6WKmNz4xAFARAABgr3HJhFC2k/qSRe
dARg6zZjDAPsCXtVThchTIGkG8NvduF9v4A6DyEsATk7BkOL1eFMxsCwzeVb7cFxH4NOb4ETQnqZ
nDgz91GYtEGKlnMBFBNwMx0rDYoIHBPISm8+AY4os/TMCGmQNhI/AhNBzrtwxuWJ4zonY49LYGKo
8xA6oUauQeyp7bATvJ6Qk5BzRci5IpiulXSo0W9dQut0OxcQ+apOv/WSDnRl/FEJhSkbYCD5E8H7
doHenlcli+q5dwAA+xtNYbFVNrTYmC0/WDAcE51PB0Eq0jfa1PXnn19xrgEAiFRsQvMKxZSwZrBm
MBEZhvjILJ4B+JAJMHPmHaz/ivutSw72fFanIV91Bhwe97nX7HLr3Y/23f4RA630NZg4s0AIQGC0
RgGkt06/HK4YJDD/dukhAJzVjg7JYJDJpyOEu0q3b3dtp+03u9xrdnl3baed12chp7Spv55tHl1f
qMk/8/r+AVMaWVIh76h5AAAAAElFTkSuQmCC

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/4.jpg

/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCABlAHMDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD/AD/6
KKKACiilAJIABJPAAGST6ADrQG+wlLjjOOD0P+foa+ovhT8D/wC1dLHjDxPDuskVZ9P0mZZUS8G4
eXLebCj+QxAKwq6mVTlzsyjfTuhab4U1K3n0TUtE0CSLz4pLaKbSNPEZaKMq8cbLArRqSAQisOgA
BHy18FnHiDlWV161CjRrZjLCz5MZLDSjGNCSceaMXJNVZx5veScYq1ue6dv6y8Ofog+IPHeV5bmu
Y4/LODcPn+G+tcOwzunXnWzKlJSdKrVp0LSwOHruNqM6qqVp80ZLD8kouXwB4O+GviXxnibToYra
w8x4m1C9dobbeihnRNqPJM6KyllijcgMM4r1jWf2WPH9jbXFxpF3oviRrS1S6uLXTJ7uK6VGhE7J
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
FFAH/9k=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/28.jpg

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
36UdWzL+HN/qDQ/I/E0OV9iZp//Z

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/35.png

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
H5b/oPJ/DQBPC+RjzBSazwAAAABJRU5ErkJggg==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/51.jpg

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

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/smilies/smile.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAABHNCSVQICAgIfAhkiAAAABl0RVh0
U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPPSURBVDiNnZTNS1xnFIef9713xnEcnRk1
USfq+BExxUQb0yI0NsQmDbaUUgNdtNB2l/4BIVkEukrJotJV6SZdFAottItIg9AQaiLBkKLBr9bQ
1NjEqJOZzEyuOs6Xc+/7diFOqoQuejYHDr/zcA7nQ2it2W2Tl46HhCFOm255Aq07hRBerXUGIWbt
TTWiHX2l+8JoZHee2A2bGew7Y7hdF2u6O6vKamuNUr8fITXa3iBrrZN+ajmxqT+STkF91nXu5uUX
wiYvHa8yS+RQ5YGDXaGj71RI915QWdC5La82wFkFlUbZiuXRkbXVJ7lZO68Gui+MJgHMbapZIoda
3hro9bX0i0zsAZGxb7CzKWoOdxNsDZOOrhC5O42T36Suq4nGk6f8/rnbvYuTySHgGIDcbq360Ksv
+1r6hZ22eHTte/a9eZb9H36F9TBGfOYuS7enaHj7c1o/+Jr4fJr15Rj+jqMiUOfpnBnsOwNgvOse
Dbk8xo8t752vFFJg3b+DZ+8hAu3HEGYJ3r37if72M3uOvE958ysYbi/uYAPWvVv4G6spb2zyJP98
0LN849sfpDDE6dBrfVXCKAGVJ7W0QEVLD0tLSzQ3N0N5LYVMBl/4CP39/QwPD+Or7yD91AJAmgY1
beVVwhCnpemWJ8rqOwx0HnQO755q0itzpFIpIpEIqfgyhttFNvoX0WiUeDxONv4IT7CiOMWyoMsw
3fKEROtOd5kPVA5UnkBzE8npq7S3hnkSWWHz/jX89QES00OMXP+FTz7+iPjETwQaAkVYabACtO40
hRBeoXNsVZbH7fOw56Uw8999ijBMymt91Ha18mwhQuLqORLSwF8fwB8OP98vbIQQXlNrndFOBiG9
W9XpPJVtDQTCAZzNDVylHgCqDzRS2RpCFWxMr2fHomungNY6IxFiNptYAJ3dqk7lcbLrSMMugrZN
ukxMrwftODvi2fUCCDEr7U01kn4w7mA/Y3sI0alZrIXl3acHwOrDCMt3ft8RS1sFx95UI1I7+kps
PpVU+QSoNKgcdd3txO/9vQXUCgBlO8TnFng6t0Cop6MIUrFxYvOppHb0FaG1Zmaw70xwX+kXjSdP
+Yuigs3KxD02ogmEkIAm0BSipqsNIeWWKDHB42lrzVrJnu86d/Ny8dBnv3zjVvhwsNd/8HWxuzXt
OAjD2BlMTLAWzenFKWus8+yN57cJYOfVwOKUNfb41+trKja+I28HSBVQsXEeT1tri1PWmJ1XA0Xd
C/+ZS16saSuvKgu6jNIKF0IKtNJk1wukrYITm0/99z/7t/3fT/sPnS/h4LudAkAAAAAASUVORK5C
YII=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://d.yimg.com/us.yimg.com/p/rids/20080206/i/r1391950705.jpg?

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
KpogtzVgdN4pijMnbnLNn+69vUD0UkQEREBERAREQEREBERAREQEREBERAREQRUlFSQEREBERARE
QEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREEV
JRUkBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARU5k2gqiptNoKoqbVQ
gIiICIiAiIgIiICIiAiIgipKKkgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAij
169vsmz7IJKhXjLZigj55pWRt93nX+61+7xvjK7i2DxLTh0PhDog2QqD5o42lz3ta0dyXAALRbfx
MhjjJgxllzm/UZNBoXNs1xpmuKrb4rJFShGfLFGe/wCT6qdI2+gorENhhdBNHKB6scCP8KfNrvof
uvnbA5a5iL4kx9h0LmdXRuPlc31WX4n+I+Xy8UENCA067Dud7XdZPsPZNG3ZTmsY2yK7r9YSn9Hi
Davg8EAggg9jvuuJ0GY7LUGWGQtc5x0/3DvcrNYvL38HJ/LnfYrHvC87/wApo26qEWIwufqZqtz1
3ASs6SRE+Zp/HssttQnaqKO1JAREQEREBERAREQRUlFSQEREBERAREQEREBERAREQEREBERAREQE
REBERARFQoKqhOu6KDiPX/KI2lvqdHqFYZPM0MRXM961HAwf1HqfwFpvG3HjsZ/9LwQFrKSjzPb1
ZA3+o/f7LV8bhLNh/wDEM/cdbsjzc0p8rfwFMQbb2/jyk9jXU6lqcEbDi3lCxeT4ozl+IxUoG0h+
qRx5nf2WMmzVCNpEJ8XQ6NhbsBeTOJKLw1rnvjdrWns0p1oW1jHXbTR8/elsnv53dP2C8fAFJ3I0
7A9CspJdZsAOBDhsH0WGzL3soSPjOydN3+6dI7WdiGfJyOdFttOM66/rKspBFJuvyhjuoHRbbDGK
+MbEIw0loPOStX4krSwGGaAl8nMOnuoi0TOoZTSYjcsDQisWb74Yugb5XE9gFk8zRNKmx0T+ZrO4
9wtjx2BZUx5eXN+Yk87zv39Fic5t9EDpoHlcClp6KxudMfw7edTyE7Pqie0EDfZZd/ErZHvr1Kr5
pWn6T0H91rOPDns8Vrw18QIdzeoWb4co+EX2JgQZiSB6qazuEWjVtJ0bWQjybMnBdjrXYSeasB1e
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
iAiIgIiICIiAiIgIiICIiD//2Q==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/Oxygen/ranks/rank_2.png

iVBORw0KGgoAAAANSUhEUgAAAGQAAAAUCAMAAAE7GVgxAAAABGdBTUEAAK/INwWK6QAAABl0RVh0
U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGhUExURf/YM//gXPTt1PrrsP7550BTX0tg
bb3d9fjagIONie/kss7l+PG5D/jYdefZmkVZZe73/fG6EvXmo9zOk6C91JOswmByfPnxz3F9ffnt
ulptef/uo+fViJKmuaS1xNvr+vzuwv/2zrHS7fzopuXx+8va6YWes8HZ7v3xyvvnnerfrtnLkdbF
fq3A0vnwxkVbZ/Lt1kxeaZSVe/f3//nlkvK/IZWTctbRsjtPWtrZyM/KquLDP5eekvLBKMW6c6al
gpCpvoSUjJ6hf/HjqunguMLAne7bjN/cxJSSYq2ukPvlljhKVafC2zhMV9XBbZidjX2UqPTdfXmG
hby+q2JwcsXHuvfVRaCml+vdptvAT+3JL7aubv/toNfPpaurjtzHcfnkjD9SXfXQMVVoc/borlFl
cPfruO/mvOLZr3l6W6OnmLm4loeOhvG8F1lsdvbiimh6hOjaldnBXsi9gfPVWMjFo2V3gvPYamt5
fomNbLe1j//cR/3ojv/wtP/rlv/vrf/jb//ng//zvv/0xv/31f/++f/77P/43vC1AWZmZgAAAEDe
aHAAAACLdFJOU///////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////wCFwxXvAAACNUlEQVR42mLoQgYMHSml
tZ2dtRDAwKOtXQ8DtQABxICiECiNUFevDFdWDxBADB3tlu1YAUNHqjGrcQkjY2dnJyMKAAggFKNR
HQTUF4rNMBaG2lhmZmewI4C4E+6Y2hYGRnlWeV9GkB1Ai5Asq2dQ5AOCekzgBRBADBwaraQBU4aO
5mZOq3Q9l6xmIOgEIyiBA7AwdDA4iYhG24mIVjIwMHQCUSeIhpBghA7qGDoaq+RkzeyBOLCRKNDE
0MXTQRrgBQgg3BGAO2ZsSQwwBQ6GtvZ2g3YIJg50MLA0N5uH6EnkKEACF1/wQkAHQ0tteAQzEPgz
Q1MEKInUQtIIhK5FBR3AYGZTYkuSUtKPYoBEBThmQBHT2QmLJhTQwVDPqK4iyqqu4hMJTV2dINQJ
TnFgFiMa6GBoatRXZfXjV02MJy4mGzsYNGuFhIWFQLieKKDIw8BLYuTzdAEEGEMXh2AHTYEgRxeD
oEZrG22BpCBDB0sLELhXcAaLt7RwckqIi7fgAJ0t5AGWDmAJ19TUZG6jpcXFJdmUxsUlkSHZBAGd
nTACym9CAWhc3ACY8Duaa2oKHcWSxbITampcC6TEgorza8CgEw5RiU6YJDIfDwBmlQ7p6uoyEXZu
djU2jzwQ7WBoHVYNAp1QhEKgCcME8QFpoCW1DQ1SugIC3AH8mWwgWo2/qLyBmqAWFFwxdSaebBb8
RjoybnGG3qxA2qSOikAaGFy8psrAQokJBJBoKgLNXF4yimLSAQC1c3esN/f/gQAAAABJRU5ErkJg
gg==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/19.png

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

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/avatars/3.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/4QzgRXhpZgAASUkqAAgAAAAGAA8BAgAWAAAAVgAAABABAgAf
AAAAbAAAAB0BAgCSAAAAjAAAABMCAwABAAAAAgAAABQCBQAGAAAAHgEAAGmHBAABAAAATgEAAAAA
AABFQVNUTUFOIEtPREFLIENPTVBBTlkAS09EQUsgWjc0MCBaT09NIERJR0lUQUwgQ0FNRVJBAMU1
PzYzMjkxNzQzMjU2ODI3NDg4MD8xMjgzODYxPzA/MT8wOjE5MzI6MjU3Nj9DOlxEb2N1bWVudHMg
YW5kIFNldHRpbmdzXHBlZGVyc2Vua1xEZXNrdG9wXE15IFBpY3R1cmVzXDIwMDYtMDggKEF1Zykt
MjFcd2hpdHRpZXIgc2FyYWggdHJpcF8wMzkuSlBHAAAAAAABAAAA/wAAAAEAAACAAAAAAQAAAP8A
AAABAAAAgAAAAAEAAAD/AAAAAQAAACQAmoIFAAEAAAAEAwAAnYIFAAEAAAAMAwAAIogDAAEAAAAG
ACwFJ4gDAAEAAABQAAAAAJAHAAQAAAAwMjIwA5ACABQAAAAUAwAABJACABQAAAAoAwAAAZEHAAQA
AAABAgMAAZIKAAEAAAA8AwAAApIFAAEAAABEAwAABJIKAAEAAABMAwAABZIFAAEAAABUAwAAB5ID
AAEAAAAFABQACJIDAAEAAAAAALsACZIDAAEAAAAQACwFCpIFAAEAAABcAwAAfJIHAGwJAABkAwAA
AKAHAAQAAAAwMTAwAaADAAEAAAABACwFAqAEAAEAAAAQCgAAA6AEAAEAAACMBwAAFaIFAAEAAADQ
DAAAF6IDAAEAAAACACwFAKMHAAEAAAADAAAAAaMHAAEAAAABACYAAaQDAAEAAAAAALsAAqQDAAEA
AAABACwFA6QDAAEAAAAAAAAABKQFAAAAAADYDAAABaQDAAEAAAAmALsABqQDAAEAAAAAACwFB6QD
AAEAAAAAAAAACKQDAAEAAAAAADIACaQDAAEAAAAAALsACqQDAAEAAAAAACwFDKQDAAEAAAAAAAAA
AAAAAAEAAABeAQAAHAAAAAoAAAAyMDA2OjA4OjA5IDE0OjU1OjUwADIwMDY6MDg6MDkgMTQ6NTU6
NTAAVQAAAAoAAAADAAAAAQAAAAAAAAAKAAAAAwAAAAEAAAA/AAAACgAAAEtESzAxMDJJWjc0MCAg
ICADAQABEAqMB9YHCAkONzIQAAAAEAAAGAHzAAAAAAABOcguAADILgAAaC4AAGguAAAAAAABdQAA
AAACAAAAAAAAAAAAAAAAAACAbwEAAAABAIBBAQAgAAAATwBkAAAAAAFkAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgK4UAAAAAAKArhQAAAAAAZnuOqcrNnHvJ
zszKHR8jKS5JMhFmlXaXj5WcoKanayMun6OihomPlJudcywcbJiXfoNug4mLZCUcWIaMam5bOWl4
OyggUH2XcIB6UXCIZT4iXcGsiDBIfoqSkTUcMbafg5Ght9jZpJHa3+DkKiwuNE1iNxGCpY61lJid
oaKkXiFDra2tnJydoaSnbS4jh62vk5ODlJSYaycjcp2khodlUnmCRSonZI2qd4aMUIGNZUIrcM/F
qFdohJOglTshUMm7AAEAAAABS0NLRFQ1MzAwODY2NQAAANwAAAAAAAEAAAAVAwAAAgAAAAQAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAIBvAQAAAAEAgEEBANdvAQAAAAEAnTkBAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIBvAQAAAAEAgEEBAMULAQDYAgEAAAABAAAACgAAAAAAAAAAAACgSwDmSwAAqCYC
AGZmCQAf7f//8NH+/wDQdAAAAAAAAAAAAACQXgAwEAEAAKoDAAAAAADADAAAAAAAAAAEAADgBgAA
AAAAAAAAAQA9HgAAM3MAAAAAAQDwJ1UAJIIAAItyAgAAAAAAAAAAAAAAAADILgAABgAAAAIAAAAb
AAAAwAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAwgAAAIIAACAgICAgICAgICA
gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA
gICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0WZGqegIUWf8BCgkFAkr/////JDR9IpURBQEE
AQCgEFL/CgIKGg0FGQIICQkZFAQNAhkFCQgICBFICiIKAhD/Oh0KLQQaEAgNArkCOgoQOhQEAQJI
ChkBCQICsv8KBAVSAGUAeQCSALMAtgCGAGYAsgC3ALQAsgAVABcAGgAeACMANgAmAA4AUgB+AGAA
gQB4AH4AhACKAI8AkQBWABoAIgCIAIsAiQBuAHIAeAB9AIMAhgBbACAAFABWAIEAfwBmAGsAWABs
AHIAdABMABoAFQBDAG8AdQBTAFcARwAqAFQAXwAqABwAFwA7AGYAgABYAGoAYwA8AFwAcgBPACwA
GQBIAKsAlQBxACQANQBpAHUAfQB7ACYAFAAlAJ8AiAAEAAQABgAGAAYABgACAP//BgAGAAcABwAE
AAUABQAFAAUAAgAAAAAA/f8DAAIAAwAIAAcACAAHAAYABwAAAAAA//8FAAcABgAHAAcACAAHAAYA
BwAEAAEA//8BAAcABgAIAAcAAwAHAAcACAADAAAAAQABAAcABwAHAAYAAgAFAAIABgABAAAAAQAC
AAcACAAHAAYABQD+//7/BAAAAAIAAQD//wcABwAFAAMAAQAFAAUABgAFAAEA//8AAAUABgAKAA0A
DgAPABMAEwALAAcAEwAVABUAFwACAAIAAwADAAMABAD5//z/BAAOAAwADgAWABQAFAATABMAEwAC
AAIAAwASABYAFwAWABQAEgATABQAFAAXAA8ABwALABQAFgAUABQADwATABQAFAAZAAwACgAOABUA
FAATABIACAAHAAIAGwAUAA0ACwANABUAEwAUABEAEAAGAAIAEAARABYADAAKAA8AEAANAAYACAAM
AAwACwAOABAABgAGAA8AEQB1/e8A9v6g/7cABQA//64AAABRcm5jhX90l5KJsKyr0s6v1M99npxu
iYes086v1dGt08+r0s4aKiAcLSMfMCUkNiwyTkdHYVoxNiwUFRBhfHd9nJZkg3+Ep6NniX9xj4N7
mIiCnpCIopKKpZVQXlMcJSEyQDyGp52DpJuAoZhpkIxtlI9ymJN5n5mApZ+EqaNNb2wbMjUYJiZi
gX1/pJ58o6BeiIVnjIVcfnprko1wlpBzmpVFbW4YLC8WJihLbWpwlZB0mJJQe3tWf31LX1M5Ukdf
eW9chIIqSU0ZLjEYKixBX1xihH58npVLa2NafHhlhn04S0VqfHFwi4FIY2AjQ0gZLC5NaGWkxLqU
t7Byl5EyS0pDYFtifnNvjoV8nJJwkIkiOzsXIyEzR0WavLSHqqMAAAAAAABkAGguAQAAAAEDAAAW
BQAA2wAAAPYAAAAAAAAALAAAAGguAAAAAAAAAAAAAGQAyC4BAAAAAQMAAIEJAADKAAAA0wAAAAAG
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
l2/H/gH/2Q==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/smilies/sad.png

iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAABHNCSVQICAgIfAhkiAAAABl0RVh0
U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPRSURBVDiNnZRfbFNVHMc/597b266lt+vK
1g26f4w5RSwwRY1MAs4YJNG4JeorT7yY6IPxZcmeSHghJia++eKb/xKZD0QNYawxIyRANhgImpHJ
6NKurN1dW9quvb3n+NDA3EAf/Cbn5ZycT77n/H6/r1BKsVUzp4/sELoYNUxtGKXiQgi/UqqMEHP1
mpxUrjo7OJZIbb0ntsJunDl6Ujc9p6L7n4sEolG9KdyM0ATKrVCxC5Qe2G5m9lbOdeT4vs+mvnoq
bOb0kYjh1Saad/XGY4ePhzRfJ6BAlkFWQBbBzYMsI+suS4nJ/Fp6fa5elSODY4kcgPGIani1iZ7h
I0PWwIio5rOkEj/glPJ0DL5EMNbGem6F1LU5pOPQvq+TrjffCoV+vzS0OJObAA4DaI+eFt7dv88a
eE/Iusu9X75lx9FP6PvwC1bvZbHv3iF5+Saxt0/R+/6XZBckDzM5Qs8fEs0dvviNM0dPAujvmokd
Hp/+fd/oxy3CsCgszGJG9mD1vYrQPfg7BshcniAy+AGB2AtoHi++7X3Yt6ewdoYJdvX4cn/cfWXp
4tffaEIXo9EXD0Q0sxVklULyLtaul0kmk/T29iLNELWyQ7DnIMeOHePcuXP4tndTscsAaIZOtD8Y
EboY1QxTGw527tFRDqh1Aq0Ryqk7FItFUqkUpbUVdA+U03+yvLzMysoKTnEFc5v3cRUDYY9umNqw
hlJxb6gF5DrIKlZXJ6s3f+bZZ3aTTqdxFhKEe5rJXf+RixfOc+LECbKzPxGKWY9hTWELlIobQgi/
oAqqsQyvRmSgnYXvPgJhsK3Ny/a9nejmA3K/jmHrJlZ7E1YsttFf1BFC+A2lVFnVywi92nCnqjR3
txPauQ1ZK6F7TQBa+joI90SRrotuejY1unIdlFJlDSHmKtkkyFLDnWxAhXDQTA+lB6uszidZXy0g
dPEECKBScECIOaNek5OlhZl3/K0xHc0LquHu4XKO5KUb+FvD+EIB0vfT1EoVuob209QS2gQr2Y5b
r8lJQ7nqbGa+OB45YLdpniCoKpXVNVJXb9N//BBG00bVaoUSf01do/O1OP7WMAAyc4XMfDGnXHVW
GxxLpFxHji8lJvOoMuBSSC7TfXj/JhCAaQXoHT5IMZ1tbGSvsnRzLe86cnxwLJF6POhzn7/xW/eB
8FBo7+viiU95mrJXyS+vq8VZezr+6cWN2QSoV+XI4qw9ff/C+bzMXPl3iHSQmSvcv27nF2ft6XpV
jjw6enqeebRT0f5gJBD26E2Wp5FnUlEpOJRsx83MF/87z/6p/5u0fwN/9tpgGC0QxAAAAABJRU5E
rkJggg==

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/valid_css_80x15.png

iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
BGdBTUEAALGeYUxB9wAAACBjSFJNAAB6LQAAgJUAAPQkAACEzwAAbV8AAOhsAAA8iwAAG1dH53b2
AAACmUlEQVR42mJMS0tjGEmAhYGBYebMmSPEt+np6SzUNfFdEfOg9a1Q318GBgYmZKGbj98ZZyz8
+PUnAwODV+WaKevPQQNmwi5e1x6JkKkC7r2p/bsYGBhaWlr8/PyOHj166tSpoRXJKB5WkRZkYWVe
c+gmAwODhpzwxhN3GRgYnr/7uu7wrellXnNKPb/++x9sp3X86KG1a9eam5uXlJTcv39/CHuYmYnR
UlNq1cGbDAwM/xgYjl558vff/5M3nnNzssa4au079zDSRdPDWObIsROTJk2qrq5eunSpl5cX/lQE
SUhoIsiCmCK0SMkohRYycDVSWHv41qdvPy/fe83CyHD21ovjV5+ZqUkev/asf8GRyZU+DAwMsrJy
urq6DAwMSkpK+G2CZGlMBqYa2vkWzXx0D5trSrIyM83ceomHgyXRU3/NoVtnbj1P9dIX4mVvzHCo
mnuIl5vD0cyYhYWFjJLsXREzJLzxiNDUt+hJmoGBQYSf08tCqWn6fm0FkXg3raX7rj1589XLXEld
Vrgu0TbcUWPe9otySqrc3NzkJap3RcxwT+ISoUrqxZV2sESUo77c1CXH9ZTEjFQlPv/4bagizsnO
8vvPP1YWJgVx/iOXHn748EFAQACi+OXLl+Li4rgiFi324A7CI0JhpQjxJ56cgsXDZhqSUgoipuoS
DAwMjnqyNjrSm47eWX/0dle6w9J916z1FK5ePCcpqyAjIzNjxgxWVtbMzEwiq2VMR1A9JeP3LXYP
C3Czl4SYyovzMTAwBFqrqEkLqcsJTdpwTjtmtrqySG2sNTfDl+aWtsuXLwsJCc2YMWOwVTz4AxGL
h3m52ApDTCDsBHddCONQfySSEu6JEycO4bY07Sq9Qerh9PT0kdNbAgwAXiIRgpDfQCEAAAAASUVO
RK5CYII=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://doctordeluca.com/forum/img/valid_xhtml_80x15.png

iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
BGdBTUEAALGeYUxB9wAAACBjSFJNAAB6LQAAgJUAAPQkAACEzwAAbV8AAOhsAAA8iwAAG1dH53b2
AAACo0lEQVR42mJMS0tjGEmAhYGBYebMmSPEt+np6SzUNfFdEfOg9a1Q318GBgYmZKGbj98ZZyz8
+PUnAwODV+WaKevPQQNmwi5e1x6JkKkC7r2p/bsYGBhaWlr8/PyOHj166tSpoRXJKB5WkRZkYWVe
c+gmAwODhpzwxhN3GRgYnr/7uu7wrellXnNKPb/++x9sp3X86KG1a9eam5uXlJTcv39/CHuYmYnR
UlNq1cGbDAwM/xgYjl558vff/5M3nnNzssa4au079zDSRdPDWObIsROTJk2qrq5eunSpl5cX/iSE
xsbKgCBidJGdkrF7mIGBwdVI4drDt5++/bx87zULI8PZWy+OX31mpiZ5/Nqz/gVHzNSlGBgYZGXl
dHV1GRgYlJSUeHl58eRniGVCfX/x5G2IFLICuC6q5Fs0q9ELLXNNSVZmpplbL/FwsCR66q85dOvM
reepXvpCvOyNGQ5Vcw/xcnM4mhmzsLAQWYZhWknQJ3BdFPoZa0Cjx7AIP6eXhVLT9P3aCiLxblpL
91178uarl7mSuqxwXaJtuKPGvO0X5ZRUubm5ibcSzd3vipgJFubklfZo2QGrIUyYQo76cl++/dRT
EjNSlfj847eajCAnO8vvP/8YGBgUxPlfvfv04cMHRkZGiOKXL18SDGDK4wqe1YlJGvgzEZaUaaYh
KaUgYqouwcDA4Kgna6MjvenonfVHb3elOyzdd81aT+HqxXOSsgoyMjIzZsxgZWXNzMwkGEtwNiaD
GDbxEY41ExHwsAA3e0mIqbw4HwMDQ6C1ipq0kLqc0KQN57RjZqsri9TGWnMzfGluabt8+bKQkNCM
GTMGW8WDP3SweJiXi60wxATCTnDXhTAO9UciKeGeOHHiEG5LU735Ntg9nJ6ePnJ6S4ABAPJ2GZXD
1NxiAAAAAElFTkSuQmCC

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/syn/phpMSH/syn.css

.syn_code {
	DIRECTION: ltr
}
#syn_code {
	FONT-SIZE: 10pt; DIRECTION: ltr; FONT-FAMILY: "Courier New", courier, =
monaco, "Bitstream Vera Sans Mono", monospace
}
.syn_keyword {
	FONT-WEIGHT: bold; COLOR: #0000bb
}
.syn_identifier {
	FONT-WEIGHT: normal; COLOR: #0000bb
}
.syn_number {
	FONT-WEIGHT: bold; COLOR: #000000
}
.syn_string {
	FONT-WEIGHT: bold; COLOR: #008000
}
.syn_string2 {
	FONT-WEIGHT: bold; COLOR: #008000
}
.syn_symbol {
	FONT-WEIGHT: bold; COLOR: #008000
}
.syn_number {
	FONT-WEIGHT: bold; COLOR: #008000
}
.syn_object {
	FONT-WEIGHT: bold; COLOR: #008000
}
.syn_comment1 {
	FONT-WEIGHT: bold; COLOR: #c24545
}
.syn_comment2 {
	FONT-WEIGHT: bold; COLOR: #c24545
}
.syn_comment3 {
	FONT-WEIGHT: bold; COLOR: #c24545
}
.syn_directive {
	FONT-WEIGHT: bold; COLOR: #800000
}
.syn_variable {
	FONT-WEIGHT: normal; COLOR: #000090
}
.syn_value {
	FONT-WEIGHT: normal; COLOR: #000090
}

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/imports/base.css

.pun TABLE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun DIV {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun PRE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun BLOCKQUOTE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun OL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun FIELDSET {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun IMG {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.pun IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
.pun INPUT {
	MARGIN: 0px
}
.pun SELECT {
	MARGIN: 0px
}
.pun TEXTAREA {
	MARGIN: 0px
}
.pun OPTGROUP {
	MARGIN: 0px
}
.pun .clearer {
	FONT-SIZE: 0px; OVERFLOW: hidden; WIDTH: 0px; LINE-HEIGHT: 0; HEIGHT: =
0px
}
.pun .nosize {
	FONT-SIZE: 0px; OVERFLOW: hidden; WIDTH: 0px; LINE-HEIGHT: 0; HEIGHT: =
0px
}
.pun .clearer {
	CLEAR: both
}
.pun .clearb {
	CLEAR: both
}
.pun .nosize {
	LEFT: -10000px; POSITION: absolute
}
DIV.blockpost DIV.box {
	OVERFLOW: hidden
}
DIV.postleft {
	OVERFLOW: hidden
}
DIV.postsignature {
	OVERFLOW: hidden
}
DIV.postmsg {
	OVERFLOW: hidden
}
DIV > DIV > DIV.postfootleft {
	MARGIN-TOP: -1px; PADDING-TOP: 1px
}
DIV > DIV > DIV.postfootright {
	MARGIN-TOP: -1px; PADDING-TOP: 1px
}
* HTML .inbox {
	HEIGHT: 1px
}
* HTML .inform {
	HEIGHT: 1px
}
* HTML .pun {
	HEIGHT: 1px
}
* HTML .intd {
	HEIGHT: 1px
}
* HTML .tclcon {
	HEIGHT: 1px
}
* HTML .inbox DIV.postmsg {
	WIDTH: 98%
}
.pun {
	MIN-HEIGHT: 1px
}
.pun .inbox {
	MIN-HEIGHT: 1px
}
.pun .inform {
	MIN-HEIGHT: 1px
}
.pun .intd {
	MIN-HEIGHT: 1px
}
.pun .tclcon {
	MIN-HEIGHT: 1px
}
#brdfooter H2 {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
#brdstats H2 {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
#brdstats .conl DT {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
#brdstats .conr DT {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
#modcontrols DT {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
#searchlinks DT {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
DIV.postright H3 {
	DISPLAY: block; LEFT: -999em; OVERFLOW: hidden; WIDTH: 1em; POSITION: =
absolute
}
.conr {
	CLEAR: right; FLOAT: right; WIDTH: 40%; TEXT-ALIGN: right
}
.conl {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 55%; WHITE-SPACE: nowrap
}
LABEL.conl {
	OVERFLOW: visible; WIDTH: auto; MARGIN-RIGHT: 10px
}
DIV.linkst .conl {
	WIDTH: 18em
}
DIV.linksb .conl {
	WIDTH: 18em
}
DIV.postlinksb .conl {
	WIDTH: 18em
}
DIV.linkst .conr {
	WIDTH: 16em
}
DIV.linksb .conr {
	WIDTH: 16em
}
DIV.postlinksb .conr {
	WIDTH: 16em
}
FORM DIV.linksb .conr {
	WIDTH: 32em
}
.linkst UL {
	MARGIN-LEFT: 18em
}
linksb UL {
	MARGIN-LEFT: 18em
}
.postlinksb UL {
	MARGIN-LEFT: 18em
}
DIV.block2col {
	PADDING-BOTTOM: 1px
}
DIV.block2col DIV.blockform {
	MARGIN-LEFT: 14em
}
DIV.block2col DIV.block {
	MARGIN-LEFT: 14em
}
#viewprofile DD {
	MARGIN-LEFT: 14em
}
DIV.blockmenu {
	FLOAT: left; WIDTH: 13em
}
#viewprofile DT {
	FLOAT: left; WIDTH: 13em
}
#profileavatar IMG {
	FLOAT: right; MARGIN-LEFT: 1em
}
#viewprofile DL {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 100%
}
.pun TABLE {
	WIDTH: 100%
}
#punindex TABLE {
	TABLE-LAYOUT: fixed
}
#vf TABLE {
	TABLE-LAYOUT: fixed
}
.tcl {
	WIDTH: 50%; TEXT-ALIGN: left
}
.tc2 {
	WIDTH: 9%; TEXT-ALIGN: center
}
.tc3 {
	WIDTH: 9%; TEXT-ALIGN: center
}
.tcmod {
	WIDTH: 9%; TEXT-ALIGN: center
}
.tcr {
	WIDTH: 32%; TEXT-ALIGN: left
}
#punsearch #vf .tcl {
	WIDTH: 41%
}
#punmoderate #vf .tcl {
	WIDTH: 41%
}
#punsearch #vf .tc2 {
	WIDTH: 18%; TEXT-ALIGN: left
}
.tcl {
	OVERFLOW: hidden
}
.tcr {
	OVERFLOW: hidden
}
#users1 .tcl {
	WIDTH: 35%; TEXT-ALIGN: center
}
#users1 .tcr {
	WIDTH: 20%; TEXT-ALIGN: center
}
#users1 .tc2 {
	WIDTH: 20%; TEXT-ALIGN: center
}
#users1 .tc3 {
	WIDTH: 10%; TEXT-ALIGN: center
}
#users1 .tc4 {
	WIDTH: 15%; TEXT-ALIGN: center
}
#debug .tcr {
	WIDTH: 85%; WHITE-SPACE: normal
}
#punindex TD.tcr SPAN.byuser {
	DISPLAY: block
}
DIV.postleft {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 18em; POSITION: relative
}
DIV.postfootleft {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 18em; POSITION: relative
}
DIV.postright {
	BORDER-LEFT: 18em solid
}
DIV.postfootright {
	BORDER-LEFT: 18em solid
}
DIV.postfootright {
	TEXT-ALIGN: right
}
P.multidelete {
	TEXT-ALIGN: right
}
DIV.blockpost > DIV > DIV.inbox {
	PADDING-BOTTOM: 1px
}
DIV.postmsg {
	WIDTH: 100%
}
DIV.incqbox {
	OVERFLOW: hidden; WIDTH: 100%
}
DIV.scrollbox {
	OVERFLOW: auto; WIDTH: 100%
}
IMG.postimg {
	MAX-WIDTH: 100%
}
A .postimg {
	MAX-WIDTH: 100%
}
#postpreview DIV.postright {
	BORDER-LEFT-STYLE: none
}
DIV.postsignature HR {
	MARGIN-LEFT: 0px; WIDTH: 200px; BORDER-TOP-STYLE: none; =
BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; HEIGHT: 1px; =
TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none
}
DIV.searchposts DIV.postmsg {
	HEIGHT: 8em
}
DIV.searchposts DD P {
	PADDING-TOP: 3em
}
SPAN.bbu {
	TEXT-DECORATION: underline
}
#onlinelist DD {
	DISPLAY: inline; HEIGHT: 0px
}
#onlinelist DT {
	DISPLAY: inline; HEIGHT: 0px
}
#brdmenu LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.linkst LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.linksb LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.postlinksb LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.postfootright LI {
	DISPLAY: inline; HEIGHT: 0px
}
UL.bblinks LI {
	DISPLAY: inline; HEIGHT: 0px
}
#posterror UL LI {
	LIST-STYLE-POSITION: inside; LIST-STYLE-TYPE: square
}
#viewprofile DT {
	TEXT-ALIGN: right
}
DIV.txtarea {
	WIDTH: 75%
}
DIV.txtarea TEXTAREA {
	WIDTH: 100%
}
INPUT.longinput {
	WIDTH: 100%
}
.pun LABEL {
	DISPLAY: block
}
#qjump SELECT {
	WIDTH: 50%
}
#helpfile H2 {
	MARGIN-TOP: 12px
}
#helpfile DIV.box {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#punredirect DIV.block {
	MARGIN: 50px 20% 12px
}
#punmaint DIV.block {
	MARGIN: 50px 20% 12px
}
#blogmain {
	MARGIN-LEFT: 0px; PADDING-TOP: 12px
}
#blogwrap {
	FLOAT: right; MARGIN-LEFT: -180px! important; WIDTH: 100%
}
.blogmenu FIELDSET {
	PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
DIV.blogform {
	PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 12px; =
PADDING-TOP: 30px
}
.blogcat {
	CLEAR: right; FONT-SIZE: 1em; FLOAT: left; MARGIN-LEFT: 0em; =
TEXT-ALIGN: left
}
.blog_menu {
	FONT-SIZE: 1em; MARGIN-RIGHT: 2em; TEXT-ALIGN: left
}
DIV.blog_menu {
	MARGIN-LEFT: 1em; MARGIN-RIGHT: 1em
}
DIV.linkbl .conl {
	WIDTH: 18em
}
DIV.linkbl .conl {
	WIDTH: 18em
}
DIV.postlinkbl .conl {
	WIDTH: 18em
}
DIV.linkbl .conr {
	WIDTH: 16em
}
DIV.linkbl .conr {
	WIDTH: 16em
}
DIV.postlinkbl .conr {
	WIDTH: 16em
}
FORM DIV.linkbl .conr {
	WIDTH: 32em
}
.linkbl UL {
	MARGIN-LEFT: 2em
}
linkbl UL {
	MARGIN-LEFT: 2em
}
.postlinkbl UL {
	MARGIN-LEFT: 2em
}
DIV.blogleft DT A:link {
	TEXT-DECORATION: none
}
DIV.blogleft DD A:link {
	TEXT-DECORATION: none
}
DIV.blogleft DT A:visited {
	TEXT-DECORATION: none
}
DIV.blogleft DD A:visited {
	TEXT-DECORATION: none
}
.blog_menu DT A:link {
	TEXT-DECORATION: none
}
.blog_menu DD A:link {
	TEXT-DECORATION: none
}
.blog_menu DT A:visited {
	TEXT-DECORATION: none
}
.blog_menu DD A:visited {
	TEXT-DECORATION: none
}
#blogmenu A:link {
	TEXT-DECORATION: none
}
#blogmenu A:visited {
	TEXT-DECORATION: none
}
#blogmenu LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.linkbt LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.linkbb LI {
	DISPLAY: inline; HEIGHT: 0px
}
DIV.postlinkbb LI {
	DISPLAY: inline; HEIGHT: 0px
}
.blogr {
	CLEAR: right; FONT-SIZE: 2em; FLOAT: left; MARGIN-LEFT: 10em; =
TEXT-ALIGN: left
}
DIV.blogleft {
	FLOAT: left; OVERFLOW: hidden; WIDTH: 18em; POSITION: relative
}
DIV.blogright {
	BORDER-LEFT: 18em
}
DIV.blog_menu DD {
	FONT-SIZE: 1em; LINE-HEIGHT: 1.3em
}
#google_adsense_1 {
	TEXT-ALIGN: center
}
#google_adsense_2 {
	TEXT-ALIGN: center
}
#accordion {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; MARGIN: =
0px; PADDING-TOP: 0px; TEXT-ALIGN: left
}
.toggler {
	CURSOR: pointer
}
.mysuperbcolor SPAN {
	COLOR: #fff
}
#h0 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h1 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h2 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h3 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h4 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h5 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h6 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h7 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h8 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h9 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#h10 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/imports/Oxygen_cs.css

BODY {
	BACKGROUND-COLOR: #fff
}
.pun {
	COLOR: #333
}
DIV.box {
	BACKGROUND-COLOR: #f1f1f1
}
.pun BLOCKQUOTE {
	BACKGROUND-COLOR: #f1f1f1
}
DIV.codebox {
	BACKGROUND-COLOR: #f1f1f1
}
#adminconsole FIELDSET TH {
	BACKGROUND-COLOR: #f1f1f1
}
.rowodd {
	BACKGROUND-COLOR: #f1f1f1
}
.roweven {
	BACKGROUND-COLOR: #f1f1f1
}
#adminconsole TD {
	BORDER-LEFT-COLOR: #f1f1f1; BORDER-BOTTOM-COLOR: #f1f1f1; =
BORDER-TOP-COLOR: #f1f1f1; BORDER-RIGHT-COLOR: #f1f1f1
}
#adminconsole TH {
	BORDER-LEFT-COLOR: #f1f1f1; BORDER-BOTTOM-COLOR: #f1f1f1; =
BORDER-TOP-COLOR: #f1f1f1; BORDER-RIGHT-COLOR: #f1f1f1
}
TD.tc2 {
	BACKGROUND-COLOR: #dedfdf
}
TD.tc3 {
	BACKGROUND-COLOR: #dedfdf
}
TD.tcmod {
	BACKGROUND-COLOR: #dedfdf
}
#postpreview {
	BACKGROUND-COLOR: #dedfdf
}
#viewprofile DD {
	BACKGROUND-COLOR: #dedfdf
}
DIV.forminfo {
	BACKGROUND-COLOR: #dedfdf
}
#adminconsole FIELDSET TD {
	BACKGROUND-COLOR: #dedfdf
}
DIV.blockmenu DIV.box {
	BACKGROUND-COLOR: #dedfdf
}
#adstats DD {
	BACKGROUND-COLOR: #dedfdf
}
.pun H2 {
	COLOR: #fff; BACKGROUND-COLOR: #0066b9
}
#brdmenu {
	COLOR: #fff; BACKGROUND-COLOR: #0066b9
}
.pun TH {
	BACKGROUND-COLOR: #d1d1d1
}
.pun LEGEND {
	COLOR: #005cb1
}
.pun DIV.blockmenu LI.isactive A {
	COLOR: #333
}
#posterror LI STRONG {
	COLOR: #333
}
DIV.blockpost DIV.box {
	BACKGROUND-COLOR: #dedfdf
}
DIV.postright {
	BACKGROUND-COLOR: #dedfdf
}
DIV.postfootright {
	BACKGROUND-COLOR: #dedfdf
}
DIV.postright {
	BORDER-LEFT-COLOR: #f1f1f1
}
DIV.postfootright {
	BORDER-LEFT-COLOR: #f1f1f1
}
DIV.postleft {
	BACKGROUND-COLOR: #f1f1f1
}
DIV.postfootleft {
	BACKGROUND-COLOR: #f1f1f1
}
DIV.blockpost LABEL {
	BACKGROUND-COLOR: #f1f1f1
}
DIV.blockpost H2 {
	BACKGROUND-COLOR: #006fc9
}
DIV.blockpost H2 SPAN.conr {
	COLOR: #aabdcd
}
.pun HR {
	BORDER-TOP: #d0d0d0 1px solid; MARGIN: 3px; COLOR: #333; BORDER-BOTTOM: =
#f9f9f9 1px solid; BACKGROUND-COLOR: #333
}
DIV.box {
	BORDER-LEFT-COLOR: #0066b9; BORDER-BOTTOM-COLOR: #0066b9; =
BORDER-TOP-COLOR: #0066b9; BORDER-RIGHT-COLOR: #0066b9
}
DIV.blockpost DIV.box {
	BORDER-LEFT-COLOR: #0066b9; BORDER-BOTTOM-COLOR: #0066b9; =
BORDER-TOP-COLOR: #006fc9; BORDER-RIGHT-COLOR: #0066b9
}
.pun TD {
	BORDER-LEFT-COLOR: #bbcede; BORDER-BOTTOM-COLOR: #bbcede; =
BORDER-TOP-COLOR: #bbcede; BORDER-RIGHT-COLOR: #bbcede
}
.pun TH {
	BORDER-LEFT-COLOR: #d1d1d1; BORDER-BOTTOM-COLOR: #d1d1d1; =
BORDER-TOP-COLOR: #d1d1d1; BORDER-RIGHT-COLOR: #d1d1d1
}
.pun BLOCKQUOTE {
	BORDER-LEFT-COLOR: #aca899; BORDER-BOTTOM-COLOR: #fff; =
BORDER-TOP-COLOR: #aca899; BORDER-RIGHT-COLOR: #fff
}
DIV.codebox {
	BORDER-LEFT-COLOR: #aca899; BORDER-BOTTOM-COLOR: #fff; =
BORDER-TOP-COLOR: #aca899; BORDER-RIGHT-COLOR: #fff
}
DIV.forminfo {
	BORDER-LEFT-COLOR: #aca899; BORDER-BOTTOM-COLOR: #fff; =
BORDER-TOP-COLOR: #aca899; BORDER-RIGHT-COLOR: #fff
}
DIV.blockpost LABEL {
	BORDER-LEFT-COLOR: #aca899; BORDER-BOTTOM-COLOR: #fff; =
BORDER-TOP-COLOR: #aca899; BORDER-RIGHT-COLOR: #fff
}
.pun DIV > FIELDSET {
	BORDER-LEFT-COLOR: #aca899; BORDER-BOTTOM-COLOR: #aca899; =
BORDER-TOP-COLOR: #aca899; BORDER-RIGHT-COLOR: #aca899
}
.pun A:link {
	COLOR: #005cb1
}
.pun A:visited {
	COLOR: #005cb1
}
.pun A:hover {
	COLOR: #b42000
}
.pun H2 A:link {
	COLOR: #fff
}
.pun H2 A:visited {
	COLOR: #fff
}
#brdmenu A:link {
	COLOR: #fff
}
#brdmenu A:visited {
	COLOR: #fff
}
.pun H2 A:hover {
	COLOR: #fff
}
#brdmenu A:hover {
	COLOR: #fff
}
LI.postreport A:link {
	COLOR: #888
}
LI.postreport A:visited {
	COLOR: #888
}
TR.iclosed TD.tcl A:link {
	COLOR: #888
}
TR.iclosed TD.tcl A:visited {
	COLOR: #888
}
LI.postreport A:hover {
	COLOR: #aaa
}
TR.iclosed TD.tcl A:hover {
	COLOR: #aaa
}
LI.maintenancelink A:link {
	COLOR: #b42000
}
LI.maintenancelink A:visited {
	COLOR: #b42000
}
LI.maintenancelink A:hover {
	COLOR: #b42000
}
HTML > BODY .button {
	MARGIN-TOP: 2px; PADDING-BOTTOM: 1px
}
.button {
	BORDER-RIGHT: #000066 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: =
#000066 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; BORDER-LEFT: =
#000066 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #000066 1px solid
}
.news-links {
	FONT-WEIGHT: bold; FONT-SIZE: 14px; COLOR: #1164ed; FONT-FAMILY: =
Tahoma,Verdana,Arial,Sans-Serif; LETTER-SPACING: 1px
}
A.news-links {
	FONT-WEIGHT: bold; COLOR: #1164ed; TEXT-DECORATION: none
}
A.news-links:visited {
	COLOR: #1164ed; TEXT-DECORATION: none
}
A.news-links:hover {
	COLOR: #da1212; TEXT-DECORATION: underline
}
DIV.icon {
	BORDER-LEFT-COLOR: #f1f1f1; BORDER-BOTTOM-COLOR: #f1f1f1; =
BORDER-TOP-COLOR: #f1f1f1; BORDER-RIGHT-COLOR: #f1f1f1
}
DIV.inew {
	BORDER-LEFT-COLOR: #f1f1f1; BORDER-BOTTOM-COLOR: #f1f1f1; =
BORDER-TOP-COLOR: #f1f1f1; BORDER-RIGHT-COLOR: #f1f1f1
}
DIV.icon {
	DISPLAY: block; FLOAT: left; WIDTH: 13px; HEIGHT: 13px
}
TR.iclosed DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/closed.png); BACKGROUND-REPEAT: =
no-repeat
}
DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/normal.png); BACKGROUND-REPEAT: =
no-repeat
}
TR.iredirect DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/redirect.png); =
BACKGROUND-REPEAT: no-repeat
}
TR.inew DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/new.png); BACKGROUND-REPEAT: =
no-repeat
}
TR.isticky DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/sticky.png); BACKGROUND-REPEAT: =
no-repeat
}
TR.iclosed.isticky .icon {
	BACKGROUND: url(../../img/Oxygen/sticky_closed.png) no-repeat
}
.isticky .tc1 {
	COLOR: #676767; BACKGROUND-COLOR: #ececea
}
.stickytext {
	COLOR: #403501; BACKGROUND-COLOR: #ececea
}
TR.isticky DIV.inew {
	BACKGROUND: url(../../img/Oxygen/sticky_new.png) no-repeat
}
TR.imoved DIV.icon {
	BACKGROUND-IMAGE: url(../../img/Oxygen/moved.png); BACKGROUND-REPEAT: =
no-repeat
}
DIV.ihot {
	BACKGROUND: url(../../img/Oxygen/hot.png) no-repeat
}
.pun P.postlink {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; LEFT: 6px; WIDTH: auto; =
POSITION: relative; TOP: 0px; TEXT-ALIGN: center
}
#conr {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; LEFT: 6px; WIDTH: auto; =
POSITION: relative; TOP: 0px; TEXT-ALIGN: center
}
#onlinelist {
	MARGIN-LEFT: 0px
}
.clearb {
	MARGIN-LEFT: 0px
}
.pun DIV.postfootleft P {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: 2px 50%; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-WEIGHT: normal; BACKGROUND-IMAGE: =
url(../../img/Oxygen/misc/offline.png); PADDING-BOTTOM: 0px; COLOR: =
#fafafa; TEXT-INDENT: 32px; PADDING-TOP: 0px; BACKGROUND-REPEAT: =
no-repeat; FONT-STYLE: normal; POSITION: relative; HEIGHT: 32px
}
.pun DIV.postfootleft P STRONG {
	BACKGROUND-POSITION: 2px 50%; DISPLAY: block; FONT-WEIGHT: bold; =
BACKGROUND-IMAGE: url(../../img/Oxygen/misc/online.png); COLOR: #fafafa; =
TEXT-INDENT: 32px; BACKGROUND-REPEAT: no-repeat; FONT-STYLE: normal; =
POSITION: relative; HEIGHT: 32px
}
#stats1 {
	BORDER-RIGHT: #0066b9 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#0066b9 0px solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; =
PADDING-BOTTOM: 4px; BORDER-LEFT: #0066b9 1px solid; COLOR: #ffffff; =
PADDING-TOP: 4px; BACKGROUND-COLOR: #0066b9
}
#stats2 {
	BORDER-RIGHT: #0066b9 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#0066b9 0px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; BORDER-LEFT: =
#0066b9 1px solid; COLOR: #ffffff; PADDING-TOP: 4px; BACKGROUND-COLOR: =
#0066b9
}
#stats3 {
	BORDER-RIGHT: #0066b9 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#0066b9 0px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; BORDER-LEFT: =
#0066b9 1px solid; COLOR: #ffffff; PADDING-TOP: 4px; BACKGROUND-COLOR: =
#0066b9
}
.subject-alignment .tclcon {
	PADDING-RIGHT: 4px; PADDING-LEFT: 0px; PADDING-BOTTOM: 4px; =
PADDING-TOP: 5px
}
.mod_title {
	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #c91800; FONT-FAMILY: =
Verdana, "Lucida Sans Unicode", Arial, sans-serif
}
A.mod_title {
	FONT-WEIGHT: normal; COLOR: #1164ed; TEXT-DECORATION: none
}
A.mod_title:visited {
	COLOR: #1164ed; TEXT-DECORATION: none
}
A.mod_title:hover {
	COLOR: #da1212; TEXT-DECORATION: underline
}
.sub_title {
	PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: =
#ff0000; FONT-FAMILY: Verdana, "Lucida Sans Unicode", Arial, sans-serif
}
.sub_name {
	FONT-WEIGHT: normal; FONT-SIZE: 11px; COLOR: #439500; FONT-STYLE: =
italic; FONT-FAMILY: Verdana, "Lucida Sans Unicode", Arial, sans-serif
}
.bookmarks_readmore {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 1px solid; =
OVERFLOW: hidden; BORDER-LEFT: #0066b9 1px solid; WIDTH: 98.6%; =
BORDER-BOTTOM: #0066b9 1px solid; HEIGHT: 20px
}
.bookmarks {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 1px solid; =
BORDER-LEFT: #0066b9 1px solid; WIDTH: 97.9%; BORDER-BOTTOM: #0066b9 1px =
solid; HEIGHT: 20px
}
#links {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
auto; PADDING-TOP: 0px
}
H2.links {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM: #0066b9 =
1px solid; BORDER-RIGHT-WIDTH: 0px
}
.links_category {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 0px solid; =
BORDER-LEFT: #0066b9 1px solid; BORDER-BOTTOM: #0066b9 0px solid
}
P.links {
	PADDING-LEFT: 5px; BORDER-BOTTOM: #0066b9 1px solid
}
DIV.links_column_1 {
	PADDING-RIGHT: 2.21%; PADDING-LEFT: 0%; FLOAT: left; PADDING-BOTTOM: =
0%; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0%
}
DIV.links_column_2 {
	PADDING-RIGHT: 1.77%; PADDING-LEFT: 1.33%; FLOAT: left; PADDING-BOTTOM: =
0%; MARGIN: 0px; WIDTH: 22.33%; PADDING-TOP: 0%
}
DIV.links_column_3 {
	PADDING-RIGHT: 1.33%; PADDING-LEFT: 1.77%; FLOAT: left; PADDING-BOTTOM: =
0%; MARGIN: 0px; WIDTH: 22.33%; PADDING-TOP: 0%
}
DIV.links_column_4 {
	PADDING-RIGHT: 0%; PADDING-LEFT: 2.21%; FLOAT: left; PADDING-BOTTOM: =
0%; MARGIN: 0px; WIDTH: 22.33%; PADDING-TOP: 0%
}
.announce {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 0px solid; =
BORDER-LEFT: #0066b9 1px solid; COLOR: #ffffff; BACKGROUND-COLOR: =
#0066b9
}
DIV.announce_box {
	BORDER-RIGHT: #0066b9 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; =
BORDER-LEFT: #0066b9 1px solid; COLOR: #333; BORDER-BOTTOM: #0066b9 1px =
solid; BACKGROUND-COLOR: #f1f1f1
}
.note {
	BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; =
BORDER-LEFT: #6699cc 1px solid; COLOR: #ffffff; BACKGROUND-COLOR: =
#6699cc
}
DIV.note_box {
	BORDER-RIGHT: #6699cc 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; =
BORDER-LEFT: #6699cc 1px solid; COLOR: #333; BORDER-BOTTOM: #6699cc 1px =
solid; BACKGROUND-COLOR: #f1f1f1
}
.news {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 0px solid; =
BORDER-LEFT: #0066b9 1px solid; COLOR: #ffffff; BACKGROUND-COLOR: =
#0066b9
}
DIV.news_box {
	BORDER-RIGHT: #0066b9 1px solid; PADDING-RIGHT: 4px; PADDING-LEFT: 0px; =
BORDER-LEFT: #0066b9 1px solid; COLOR: #333; BORDER-BOTTOM: #0066b9 1px =
solid; BACKGROUND-COLOR: #f1f1f1
}
.icon_topics {
	BORDER-RIGHT: #d1d2d2 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#d1d2d2 1px solid; DISPLAY: inline; PADDING-LEFT: 6px; PADDING-BOTTOM: =
6px; BORDER-LEFT: #d1d2d2 1px solid; WIDTH: 100%! important; =
PADDING-TOP: 6px; BORDER-BOTTOM: #d1d2d2 1px solid
}
#post_icons {
	BORDER-RIGHT: #d1d2d2 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: =
#d1d2d2 1px solid; DISPLAY: inline; PADDING-LEFT: 6px; PADDING-BOTTOM: =
6px; BORDER-LEFT: #d1d2d2 1px solid; WIDTH: 100%! important; =
PADDING-TOP: 6px; BORDER-BOTTOM: #d1d2d2 1px solid
}
.icon_topics {
	BORDER-RIGHT: #bc2a4d 1px solid; BORDER-TOP: #bc2a4d 1px solid; =
BORDER-LEFT: #bc2a4d 1px solid; BORDER-BOTTOM: #bc2a4d 1px solid
}
#post_icons:hover {
	BORDER-RIGHT: #bc2a4d 1px solid; BORDER-TOP: #bc2a4d 1px solid; =
BORDER-LEFT: #bc2a4d 1px solid; BORDER-BOTTOM: #bc2a4d 1px solid
}
INPUT.icon_topics {
	BORDER-RIGHT: #bc2a4d 1px solid; BORDER-TOP: #bc2a4d 1px solid; =
BORDER-LEFT: #bc2a4d 1px solid; BORDER-BOTTOM: #bc2a4d 1px solid
}
#post_icons:focus {
	BORDER-RIGHT: #bc2a4d 1px solid; BORDER-TOP: #bc2a4d 1px solid; =
BORDER-LEFT: #bc2a4d 1px solid; BORDER-BOTTOM: #bc2a4d 1px solid
}
.blogcats {
	FONT-WEIGHT: bold; COLOR: #ff0000
}
.bloglatest {
	FONT-WEIGHT: bold; COLOR: #0044cf
}
.bloglatest_bloggers {
	FONT-WEIGHT: bold; COLOR: #009515
}
.blog_heading {
	FONT-WEIGHT: bold; FONT-SIZE: 2em; COLOR: #f38f00; FONT-FAMILY: Tahoma, =
Verdana, Arial, Sans-Serif; LETTER-SPACING: 1px
}
.blog_heading_latest {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #dd0909; FONT-FAMILY: =
Tahoma, Verdana, Arial, Sans-Serif; LETTER-SPACING: 1px
}
.blog_heading_viewed {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #0a7ccb; FONT-FAMILY: =
Tahoma, Verdana, Arial, Sans-Serif; LETTER-SPACING: 1px
}
.blog_heading_comment {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; COLOR: #0b9900; FONT-FAMILY: =
Tahoma, Verdana, Arial, Sans-Serif; LETTER-SPACING: 1px
}
.blog_postinfo {
	FONT-WEIGHT: bold; COLOR: #5e6f71
}
.blog_userprofile {
	FONT-WEIGHT: bold; FONT-SIZE: 21px; COLOR: #29a699; FONT-FAMILY: =
Tahoma, Verdana, Arial, Sans-Serif; FONT-VARIANT: small-caps
}
DIV.topiclabels {
	PADDING-LEFT: 0px; FONT-WEIGHT: normal; COLOR: #777777; TEXT-ALIGN: =
left
}
DIV.topiclabels A:hover {
	FONT-WEIGHT: normal; COLOR: #da0000; TEXT-ALIGN: left
}
#uploads1 {
	COLOR: #333
}
#uploads2 {
	COLOR: #333
}
#uploads3 {
	COLOR: #333
}
#uploads4 {
	COLOR: #333
}
#uploads5 {
	COLOR: #333
}
#uploads6 {
	COLOR: #333
}
#uploads7 {
	COLOR: #333
}
.pm_message_align {
=09
}
.news_subject {
	FONT: 1.6em/1.7em Georgia, "Times New Roman", serif; COLOR: #095dab; =
TEXT-DECORATION: none
}
A.news_subject:hover {
	COLOR: #ee0011; TEXT-DECORATION: underline
}
.news_footer {
	BORDER-RIGHT: #0066b9 1px solid; BORDER-TOP: #0066b9 1px solid; =
BORDER-LEFT: #0066b9 1px solid; BORDER-BOTTOM: #0066b9 1px solid; =
BACKGROUND-COLOR: #f8f8f8
}
.byuser {
	FONT-WEIGHT: normal; COLOR: #333
}
.user {
	FONT-WEIGHT: normal; COLOR: #6c695d
}
.poster {
	COLOR: #185573
}
A.poster {
	COLOR: #185573; TEXT-DECORATION: none
}
A.poster:visited {
	COLOR: #185573; TEXT-DECORATION: none
}
A.poster:hover {
	COLOR: #ff6600; TEXT-DECORATION: underline
}
P.poll_info {
	CLEAR: left; MARGIN: 7px; TEXT-ALIGN: center
}
DIV.poll_question {
	CLEAR: both; FLOAT: left; MARGIN: 0.3em; WIDTH: 35%; HEIGHT: 1.2em; =
TEXT-ALIGN: right
}
DIV.poll_result {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0.3em; WIDTH: 45%; LINE-HEIGHT: 1.2em; PADDING-TOP: 0px; =
HEIGHT: 1.2em; TEXT-ALIGN: left
}
DIV.poll_result_yesno {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0.3em; WIDTH: 45%; LINE-HEIGHT: 1.2em; PADDING-TOP: 0px; =
HEIGHT: 1.2em; TEXT-ALIGN: left
}
DIV.poll_result_yesno {
	WIDTH: 22%; MARGIN-RIGHT: 0.1em
}
IMG.poll_bar {
	BORDER-RIGHT: #04477e 1px solid; BORDER-TOP: #04477e 1px solid; MARGIN: =
0px; BORDER-LEFT: #04477e 1px solid; BORDER-BOTTOM: #04477e 1px solid; =
HEIGHT: 1.2em; BACKGROUND-COLOR: #0066b9
}
DIV#toolbar {
	BORDER-RIGHT: #d1d2d2 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: =
#d1d2d2 1px solid; PADDING-LEFT: 1px; BACKGROUND: =
url(../../img/Oxygen/misc/bg.png) repeat-x center center; =
PADDING-BOTTOM: 0.3em; MARGIN: 0px; BORDER-LEFT: #d1d2d2 1px solid; =
WIDTH: 100%; PADDING-TOP: 0.3em; BORDER-BOTTOM: #d1d2d2 0px solid
}
DIV#toolbar IMG {
	VERTICAL-ALIGN: middle
}
DIV#smilies {
=09
}
DIV#smilies IMG {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.1em; =
MARGIN-RIGHT: 0.1em; PADDING-TOP: 0.1em
}
.bookmark_icons {
	BACKGROUND-POSITION: 0em 100%; MARGIN-TOP: 4px; BACKGROUND-IMAGE: =
url(../../img/Oxygen/misc/bookmarkslinks.gif); BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 26px
}
#book_links1 {
	MARGIN-TOP: 4px; PADDING-LEFT: 6px
}
#book_links2 {
	PADDING-RIGHT: 5px; MARGIN-TOP: 4px
}
.tc0 {
	VERTICAL-ALIGN: middle; WIDTH: 13px; TEXT-ALIGN: center
}
.tc1 {
	FONT-WEIGHT: bold
}

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/style/Oxygen.css

@import url( imports/base.css );
@import url( imports/Oxygen_cs.css );
.pun {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.pun INPUT {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.pun SELECT {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.pun TEXTAREA {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.pun OPTGROUP {
	FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.pun {
	FONT-SIZE: 11px; LINE-HEIGHT: normal
}
* HTML .pun {
	FONT-SIZE: 68.75%
}
.pun TABLE {
	FONT-SIZE: 1em
}
.pun INPUT {
	FONT-SIZE: 1em
}
.pun SELECT {
	FONT-SIZE: 1em
}
.pun OPTGROUP {
	FONT-SIZE: 1em
}
.pun TEXTAREA {
	FONT-SIZE: 1em
}
DIV.postmsg P.postedit {
	FONT-SIZE: 1em
}
.pun PRE {
	FONT-FAMILY: monaco, "Bitstream Vera Sans Mono", "Courier New", =
courier, monospace
}
.pun H2 {
	FONT-SIZE: 1em
}
.pun H4 {
	FONT-SIZE: 1em
}
.pun H3 {
	FONT-SIZE: 1.1em
}
#brdtitle H1 {
	FONT-SIZE: 1.4em
}
DIV.postmsg P {
	LINE-HEIGHT: 1.4
}
DIV.postleft DT {
	FONT-SIZE: 1.1em
}
.pun PRE {
	FONT-SIZE: 1.2em
}
DIV.postleft DT {
	FONT-WEIGHT: bold
}
DIV.postmsg H4 {
	FONT-WEIGHT: bold
}
TD.tcl H3 {
	FONT-WEIGHT: bold
}
DIV.forminfo H3 {
	FONT-WEIGHT: bold
}
P.postlink {
	FONT-WEIGHT: bold
}
DIV.linkst LI {
	FONT-WEIGHT: bold
}
DIV.linksb LI {
	FONT-WEIGHT: bold
}
DIV.postlinksb LI {
	FONT-WEIGHT: bold
}
.blockmenu LI {
	FONT-WEIGHT: bold
}
#brdtitle H1 {
	FONT-WEIGHT: bold
}
.pun SPAN.warntext {
	FONT-WEIGHT: bold
}
.pun P.warntext {
	FONT-WEIGHT: bold
}
#brdmenu A:link {
	TEXT-DECORATION: none
}
#brdmenu A:visited {
	TEXT-DECORATION: none
}
.blockpost DT A:link {
	TEXT-DECORATION: none
}
.blockpost DT A:visited {
	TEXT-DECORATION: none
}
.blockpost H2 A:link {
	TEXT-DECORATION: none
}
.blockpost H2 A:visited {
	TEXT-DECORATION: none
}
.postlink A:link {
	TEXT-DECORATION: none
}
.postlink A:visited {
	TEXT-DECORATION: none
}
.postfootright A:link {
	TEXT-DECORATION: none
}
.postfootright A:visited {
	TEXT-DECORATION: none
}
.blockmenu A:link {
	TEXT-DECORATION: none
}
.blockmenu A:visited {
	TEXT-DECORATION: none
}
#brdmenu A:hover {
	TEXT-DECORATION: underline
}
.blockpost H2 A:hover {
	TEXT-DECORATION: underline
}
DIV.box {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
.pun TD {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
.pun TH {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
.pun BLOCKQUOTE {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
DIV.codebox {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
DIV.forminfo {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
DIV.blockpost LABEL {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
#brdheader DIV.box {
	BORDER-TOP-WIDTH: 4px
}
.pun TD {
	BORDER-RIGHT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.pun TH {
	BORDER-RIGHT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
.pun .tcl {
	BORDER-LEFT-STYLE: none
}
DIV > FIELDSET {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; =
BORDER-BOTTOM: 1px solid
}
HTML {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#punwrap {
	MARGIN: 12px 20px
}
DIV.blocktable {
	MARGIN-BOTTOM: 12px
}
DIV.block {
	MARGIN-BOTTOM: 12px
}
DIV.blockform {
	MARGIN-BOTTOM: 12px
}
DIV.block2col {
	MARGIN-BOTTOM: 12px
}
#postreview {
	MARGIN-BOTTOM: 12px
}
#punindex DIV.blocktable {
	MARGIN-BOTTOM: 6px
}
DIV.blockpost {
	MARGIN-BOTTOM: 6px
}
DIV.block2col DIV.blockform {
	MARGIN-BOTTOM: 0px
}
DIV.block2col DIV.block {
	MARGIN-BOTTOM: 0px
}
DIV.linkst {
	MARGIN-TOP: -12px
}
DIV.linksb {
	MARGIN-TOP: -12px
}
DIV.postlinksb {
	MARGIN-TOP: -6px
}
#brdstats {
	MARGIN-TOP: 12px
}
DIV.block DIV.inbox {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
DIV.blockmenu DIV.inbox {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
.pun P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
.pun UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
.pun DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
DIV.blockmenu LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
.pun LABEL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
#announce DIV.inbox DIV {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
.pun H2 {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; =
PADDING-TOP: 4px
}
.pun H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 3px
}
#brdtitle P {
	PADDING-TOP: 0px
}
DIV.linkst {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 8px
}
DIV.linksb {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 8px; =
PADDING-TOP: 3px
}
DIV.postlinksb {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 8px; =
PADDING-TOP: 3px
}
#brdwelcome {
	LINE-HEIGHT: 1.4em
}
#brdfooter DL A {
	LINE-HEIGHT: 1.4em
}
DIV.blockmenu LI {
	LINE-HEIGHT: 1.4em
}
DIV.rbox INPUT {
	LINE-HEIGHT: 1.4em
}
#viewprofile DT {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 2em; PADDING-TOP: 0px
}
#viewprofile DD {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 2em; PADDING-TOP: 0px
}
#brdmenu LI {
	MARGIN-RIGHT: 12px
}
DIV.rbox INPUT {
	MARGIN-RIGHT: 12px
}
DIV.blockform P INPUT {
	MARGIN-RIGHT: 12px
}
.pun TH {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; =
PADDING-TOP: 4px
}
.pun TD {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; =
PADDING-TOP: 4px
}
.pun TD P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 5px
}
DIV.postleft DL {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; =
PADDING-TOP: 6px
}
DIV.postright {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; =
PADDING-TOP: 6px
}
DD.usercontacts {
	MARGIN-TOP: 5px
}
DD.postavatar {
	MARGIN-TOP: 5px
}
DD.postavatar {
	MARGIN-BOTTOM: 5px
}
DIV.postsignature {
	PADDING-TOP: 15px
}
DIV.postmsg P.postedit {
	PADDING-TOP: 15px
}
DIV.postmsg H4 {
	MARGIN-BOTTOM: 10px
}
.pun BLOCKQUOTE {
	PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; MARGIN: 5px =
15px 15px; PADDING-TOP: 8px
}
DIV.codebox {
	PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; MARGIN: 5px =
15px 15px; PADDING-TOP: 8px
}
DIV.postfootleft P {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 10px
}
DIV.postfootright UL {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 10px
}
DIV.postfootright DIV {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 10px
}
DIV.blockpost INPUT {
	PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; PADDING-BOTTOM: =
3px; PADDING-TOP: 3px
}
DIV.blockpost LABEL {
	PADDING-RIGHT: 3px; DISPLAY: inline; PADDING-LEFT: 3px; PADDING-BOTTOM: =
3px; PADDING-TOP: 3px
}
P.multidelete {
	PADDING-BOTTOM: 5px; PADDING-TOP: 15px
}
DIV.postmsg P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
DIV.blockform FORM {
	PADDING-RIGHT: 20px; PADDING-LEFT: 20px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 20px
}
DIV.fakeform {
	PADDING-RIGHT: 20px; PADDING-LEFT: 20px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 20px
}
DIV.inform {
	PADDING-BOTTOM: 12px
}
.pun FIELDSET {
	PADDING-RIGHT: 12px; PADDING-LEFT: 12px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
DIV.infldset {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; =
PADDING-TOP: 9px
}
.pun LEGEND {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
DIV.forminfo {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; MARGIN-BOTTOM: 12px; =
PADDING-BOTTOM: 9px; PADDING-TOP: 9px
}
UL.bblinks LI {
	PADDING-RIGHT: 20px
}
UL.bblinks {
	PADDING-LEFT: 4px; PADDING-BOTTOM: 10px
}
DIV.blockform P INPUT {
	MARGIN-LEFT: 12px
}
DIV.icon {
	FLOAT: left
}
DIV.searchposts DIV.icon {
	MARGIN-LEFT: 0px
}
TD DIV.tclcon {
	MARGIN-LEFT: 2.3em
}

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/style/imports/image_upload.css

SPAN.image_row {
	OVERFLOW: hidden
}
SPAN.image_item {
	FLOAT: left; TEXT-ALIGN: center
}
SPAN.image_thumbnail {
	BACKGROUND-POSITION: center center; FLOAT: left; MARGIN-BOTTOM: 5px; =
WIDTH: 100%; BACKGROUND-REPEAT: no-repeat; HEIGHT: 100%
}

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/js/mootools.js

/*
Script: Core.js
	Mootools - My Object Oriented javascript.

License:
	MIT-style license.

MooTools Copyright:
	copyright (c) 2007 Valerio Proietti, <http://mad4milk.net>

MooTools Credits:
	- Class is slightly based on Base.js =
<http://dean.edwards.name/weblog/2006/03/base/> (c) 2006 Dean Edwards, =
License <http://creativecommons.org/licenses/LGPL/2.1/>
	- Some functions are inspired by those found in prototype.js =
<http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio =
[dot] net, MIT-style license
	- Documentation by Aaron Newton (aaron.newton [at] cnet [dot] com) and =
Valerio Proietti.
*/

var MooTools =3D {
	version: '1.11'
};

/* Section: Core Functions */

/*
Function: $defined
	Returns true if the passed in value/object is defined, that means is =
not null or undefined.

Arguments:
	obj - object to inspect
*/

function $defined(obj){
	return (obj !=3D undefined);
};

/*
Function: $type
	Returns the type of object that matches the element passed in.

Arguments:
	obj - the object to inspect.

Example:
	>var myString =3D 'hello';
	>$type(myString); //returns "string"

Returns:
	'element' - if obj is a DOM element node
	'textnode' - if obj is a DOM text node
	'whitespace' - if obj is a DOM whitespace node
	'arguments' - if obj is an arguments object
	'object' - if obj is an object
	'string' - if obj is a string
	'number' - if obj is a number
	'boolean' - if obj is a boolean
	'function' - if obj is a function
	'regexp' - if obj is a regular expression
	'class' - if obj is a Class. (created with new Class, or the extend of =
another class).
	'collection' - if obj is a native htmlelements collection, such as =
childNodes, getElementsByTagName .. etc.
	false - (boolean) if the object is not defined or none of the above.
*/

function $type(obj){
	if (!$defined(obj)) return false;
	if (obj.htmlElement) return 'element';
	var type =3D typeof obj;
	if (type =3D=3D 'object' && obj.nodeName){
		switch(obj.nodeType){
			case 1: return 'element';
			case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : =
'whitespace';
		}
	}
	if (type =3D=3D 'object' || type =3D=3D 'function'){
		switch(obj.constructor){
			case Array: return 'array';
			case RegExp: return 'regexp';
			case Class: return 'class';
		}
		if (typeof obj.length =3D=3D 'number'){
			if (obj.item) return 'collection';
			if (obj.callee) return 'arguments';
		}
	}
	return type;
};

/*
Function: $merge
	merges a number of objects recursively without referencing them or =
their sub-objects.

Arguments:
	any number of objects.

Example:
	>var mergedObj =3D $merge(obj1, obj2, obj3);
	>//obj1, obj2, and obj3 are unaltered
*/

function $merge(){
	var mix =3D {};
	for (var i =3D 0; i < arguments.length; i++){
		for (var property in arguments[i]){
			var ap =3D arguments[i][property];
			var mp =3D mix[property];
			if (mp && $type(ap) =3D=3D 'object' && $type(mp) =3D=3D 'object') =
mix[property] =3D $merge(mp, ap);
			else mix[property] =3D ap;
		}
	}
	return mix;
};

/*
Function: $extend
	Copies all the properties from the second passed object to the first =
passed Object.
	If you do myWhatever.extend =3D $extend the first parameter will become =
myWhatever, and your extend function will only need one parameter.

Example:
	(start code)
	var firstOb =3D {
		'name': 'John',
		'lastName': 'Doe'
	};
	var secondOb =3D {
		'age': '20',
		'sex': 'male',
		'lastName': 'Dorian'
	};
	$extend(firstOb, secondOb);
	//firstOb will become:
	{
		'name': 'John',
		'lastName': 'Dorian',
		'age': '20',
		'sex': 'male'
	};
	(end)

Returns:
	The first object, extended.
*/

var $extend =3D function(){
	var args =3D arguments;
	if (!args[1]) args =3D [this, args[0]];
	for (var property in args[1]) args[0][property] =3D args[1][property];
	return args[0];
};

/*
Function: $native
	Will add a .extend method to the objects passed as a parameter, but the =
property passed in will be copied to the object's prototype only if non =
previously existent.
	Its handy if you dont want the .extend method of an object to overwrite =
existing methods.
	Used automatically in MooTools to implement =
Array/String/Function/Number methods to browser that dont support them =
whitout manual checking.

Arguments:
	a number of classes/native javascript objects

*/

var $native =3D function(){
	for (var i =3D 0, l =3D arguments.length; i < l; i++){
		arguments[i].extend =3D function(props){
			for (var prop in props){
				if (!this.prototype[prop]) this.prototype[prop] =3D props[prop];
				if (!this[prop]) this[prop] =3D $native.generic(prop);
			}
		};
	}
};

$native.generic =3D function(prop){
	return function(bind){
		return this.prototype[prop].apply(bind, =
Array.prototype.slice.call(arguments, 1));
	};
};

$native(Function, Array, String, Number);

/*
Function: $chk
	Returns true if the passed in value/object exists or is 0, otherwise =
returns false.
	Useful to accept zeroes.

Arguments:
	obj - object to inspect
*/

function $chk(obj){
	return !!(obj || obj =3D=3D=3D 0);
};

/*
Function: $pick
	Returns the first object if defined, otherwise returns the second.

Arguments:
	obj - object to test
	picked - the default to return

Example:
	(start code)
		function say(msg){
			alert($pick(msg, 'no meessage supplied'));
		}
	(end)
*/

function $pick(obj, picked){
	return $defined(obj) ? obj : picked;
};

/*
Function: $random
	Returns a random integer number between the two passed in values.

Arguments:
	min - integer, the minimum value (inclusive).
	max - integer, the maximum value (inclusive).

Returns:
	a random integer between min and max.
*/

function $random(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min);
};

/*
Function: $time
	Returns the current timestamp

Returns:
	a timestamp integer.
*/

function $time(){
	return new Date().getTime();
};

/*
Function: $clear
	clears a timeout or an Interval.

Returns:
	null

Arguments:
	timer - the setInterval or setTimeout to clear.

Example:
	>var myTimer =3D myFunction.delay(5000); //wait 5 seconds and execute =
my function.
	>myTimer =3D $clear(myTimer); //nevermind

See also:
	<Function.delay>, <Function.periodical>
*/

function $clear(timer){
	clearTimeout(timer);
	clearInterval(timer);
	return null;
};

/*
Class: Abstract
	Abstract class, to be used as singleton. Will add .extend to any object

Arguments:
	an object

Returns:
	the object with an .extend property, equivalent to <$extend>.
*/

var Abstract =3D function(obj){
	obj =3D obj || {};
	obj.extend =3D $extend;
	return obj;
};

//window, document

var Window =3D new Abstract(window);
var Document =3D new Abstract(document);
document.head =3D document.getElementsByTagName('head')[0];

/*
Class: window
	Some properties are attached to the window object by the browser =
detection.
=09
Note:
	browser detection is entirely object-based. We dont sniff.

Properties:
	window.ie - will be set to true if the current browser is internet =
explorer (any).
	window.ie6 - will be set to true if the current browser is internet =
explorer 6.
	window.ie7 - will be set to true if the current browser is internet =
explorer 7.
	window.gecko - will be set to true if the current browser is =
Mozilla/Gecko.
	window.webkit - will be set to true if the current browser is =
Safari/Konqueror.
	window.webkit419 - will be set to true if the current browser is =
Safari2 / webkit till version 419.
	window.webkit420 - will be set to true if the current browser is =
Safari3 (Webkit SVN Build) / webkit over version 419.
	window.opera - is set to true by opera itself.
*/

window.xpath =3D !!(document.evaluate);
if (window.ActiveXObject) window.ie =3D window[window.XMLHttpRequest ? =
'ie7' : 'ie6'] =3D true;
else if (document.childNodes && !document.all && =
!navigator.taintEnabled) window.webkit =3D window[window.xpath ? =
'webkit420' : 'webkit419'] =3D true;
else if (document.getBoxObjectFor !=3D null) window.gecko =3D true;

/*compatibility*/

window.khtml =3D window.webkit;

Object.extend =3D $extend;

/*end compatibility*/

//htmlelement

if (typeof HTMLElement =3D=3D 'undefined'){
	var HTMLElement =3D function(){};
	if (window.webkit) document.createElement("iframe"); //fixes safari
	HTMLElement.prototype =3D (window.webkit) ? =
window["[[DOMElement.prototype]]"] : {};
}
HTMLElement.prototype.htmlElement =3D function(){};

//enables background image cache for internet explorer 6

if (window.ie6) try {document.execCommand("BackgroundImageCache", false, =
true);} catch(e){};

/*
Script: Class.js
	Contains the Class Function, aims to ease the creation of reusable =
Classes.

License:
	MIT-style license.
*/

/*
Class: Class
	The base class object of the <http://mootools.net> framework.
	Creates a new class, its initialize method will fire upon class =
instantiation.
	Initialize wont fire on instantiation when you pass *null*.

Arguments:
	properties - the collection of properties that apply to the class.

Example:
	(start code)
	var Cat =3D new Class({
		initialize: function(name){
			this.name =3D name;
		}
	});
	var myCat =3D new Cat('Micia');
	alert(myCat.name); //alerts 'Micia'
	(end)
*/

var Class =3D function(properties){
	var klass =3D function(){
		return (arguments[0] !=3D=3D null && this.initialize && =
$type(this.initialize) =3D=3D 'function') ? this.initialize.apply(this, =
arguments) : this;
	};
	$extend(klass, this);
	klass.prototype =3D properties;
	klass.constructor =3D Class;
	return klass;
};

/*
Property: empty
	Returns an empty function
*/

Class.empty =3D function(){};

Class.prototype =3D {

	/*
	Property: extend
		Returns the copy of the Class extended with the passed in properties.

	Arguments:
		properties - the properties to add to the base class in this new =
Class.

	Example:
		(start code)
		var Animal =3D new Class({
			initialize: function(age){
				this.age =3D age;
			}
		});
		var Cat =3D Animal.extend({
			initialize: function(name, age){
				this.parent(age); //will call the previous initialize;
				this.name =3D name;
			}
		});
		var myCat =3D new Cat('Micia', 20);
		alert(myCat.name); //alerts 'Micia'
		alert(myCat.age); //alerts 20
		(end)
	*/

	extend: function(properties){
		var proto =3D new this(null);
		for (var property in properties){
			var pp =3D proto[property];
			proto[property] =3D Class.Merge(pp, properties[property]);
		}
		return new Class(proto);
	},

	/*
	Property: implement
		Implements the passed in properties to the base Class prototypes, =
altering the base class, unlike <Class.extend>.

	Arguments:
		properties - the properties to add to the base class.

	Example:
		(start code)
		var Animal =3D new Class({
			initialize: function(age){
				this.age =3D age;
			}
		});
		Animal.implement({
			setName: function(name){
				this.name =3D name
			}
		});
		var myAnimal =3D new Animal(20);
		myAnimal.setName('Micia');
		alert(myAnimal.name); //alerts 'Micia'
		(end)
	*/

	implement: function(){
		for (var i =3D 0, l =3D arguments.length; i < l; i++) =
$extend(this.prototype, arguments[i]);
	}

};

//internal

Class.Merge =3D function(previous, current){
	if (previous && previous !=3D current){
		var type =3D $type(current);
		if (type !=3D $type(previous)) return current;
		switch(type){
			case 'function':
				var merged =3D function(){
					this.parent =3D arguments.callee.parent;
					return current.apply(this, arguments);
				};
				merged.parent =3D previous;
				return merged;
			case 'object': return $merge(previous, current);
		}
	}
	return current;
};

/*
Script: Class.Extras.js
	Contains common implementations for custom classes. In Mootools is =
implemented in <Ajax>, <XHR> and <Fx.Base> and many more.

License:
	MIT-style license.
*/

/*
Class: Chain
	An "Utility" Class. Its methods can be implemented with =
<Class.implement> into any <Class>.
	Currently implemented in <Fx.Base>, <XHR> and <Ajax>. In <Fx.Base> for =
example, is used to execute a list of function, one after another, once =
the effect is completed.
	The functions will not be fired all togheter, but one every completion, =
to create custom complex animations.

Example:
	(start code)
	var myFx =3D new Fx.Style('element', 'opacity');

	myFx.start(1,0).chain(function(){
		myFx.start(0,1);
	}).chain(function(){
		myFx.start(1,0);
	}).chain(function(){
		myFx.start(0,1);
	});
	//the element will appear and disappear three times
	(end)
*/

var Chain =3D new Class({

	/*
	Property: chain
		adds a function to the Chain instance stack.

	Arguments:
		fn - the function to append.
	*/

	chain: function(fn){
		this.chains =3D this.chains || [];
		this.chains.push(fn);
		return this;
	},

	/*
	Property: callChain
		Executes the first function of the Chain instance stack, then removes =
it. The first function will then become the second.
	*/

	callChain: function(){
		if (this.chains && this.chains.length) this.chains.shift().delay(10, =
this);
	},

	/*
	Property: clearChain
		Clears the stack of a Chain instance.
	*/

	clearChain: function(){
		this.chains =3D [];
	}

});

/*
Class: Events
	An "Utility" Class. Its methods can be implemented with =
<Class.implement> into any <Class>.
	In <Fx.Base> Class, for example, is used to give the possibility add =
any number of functions to the Effects events, like onComplete, onStart, =
onCancel.
	Events in a Class that implements <Events> can be either added as an =
option, or with addEvent. Never with .options.onEventName.

Example:
	(start code)
	var myFx =3D new Fx.Style('element', 'opacity').addEvent('onComplete', =
function(){
		alert('the effect is completed');
	}).addEvent('onComplete', function(){
		alert('I told you the effect is completed');
	});

	myFx.start(0,1);
	//upon completion it will display the 2 alerts, in order.
	(end)

Implementing:
	This class can be implemented into other classes to add the =
functionality to them.
	Goes well with the <Options> class.

Example:
	(start code)
	var Widget =3D new Class({
		initialize: function(){},
		finish: function(){
			this.fireEvent('onComplete');
		}
	});
	Widget.implement(new Events);
	//later...
	var myWidget =3D new Widget();
	myWidget.addEvent('onComplete', myfunction);
	(end)
*/

var Events =3D new Class({

	/*
	Property: addEvent
		adds an event to the stack of events of the Class instance.

	Arguments:
		type - string; the event name (e.g. 'onComplete')
		fn - function to execute
	*/

	addEvent: function(type, fn){
		if (fn !=3D Class.empty){
			this.$events =3D this.$events || {};
			this.$events[type] =3D this.$events[type] || [];
			this.$events[type].include(fn);
		}
		return this;
	},

	/*
	Property: fireEvent
		fires all events of the specified type in the Class instance.

	Arguments:
		type - string; the event name (e.g. 'onComplete')
		args - array or single object; arguments to pass to the function; if =
more than one argument, must be an array
		delay - (integer) delay (in ms) to wait to execute the event

	Example:
	(start code)
	var Widget =3D new Class({
		initialize: function(arg1, arg2){
			...
			this.fireEvent("onInitialize", [arg1, arg2], 50);
		}
	});
	Widget.implement(new Events);
	(end)
	*/

	fireEvent: function(type, args, delay){
		if (this.$events && this.$events[type]){
			this.$events[type].each(function(fn){
				fn.create({'bind': this, 'delay': delay, 'arguments': args})();
			}, this);
		}
		return this;
	},

	/*
	Property: removeEvent
		removes an event from the stack of events of the Class instance.

	Arguments:
		type - string; the event name (e.g. 'onComplete')
		fn - function that was added
	*/

	removeEvent: function(type, fn){
		if (this.$events && this.$events[type]) this.$events[type].remove(fn);
		return this;
	}

});

/*
Class: Options
	An "Utility" Class. Its methods can be implemented with =
<Class.implement> into any <Class>.
	Used to automate the options settings, also adding Class <Events> when =
the option begins with on.

	Example:
		(start code)
		var Widget =3D new Class({
			options: {
				color: '#fff',
				size: {
					width: 100
					height: 100
				}
			},
			initialize: function(options){
				this.setOptions(options);
			}
		});
		Widget.implement(new Options);
		//later...
		var myWidget =3D new Widget({
			color: '#f00',
			size: {
				width: 200
			}
		});
		//myWidget.options =3D {color: #f00, size: {width: 200, height: 100}}
		(end)
*/

var Options =3D new Class({

	/*
	Property: setOptions
		sets this.options

	Arguments:
		defaults - object; the default set of options
		options - object; the user entered options. can be empty too.

	Note:
		if your Class has <Events> implemented, every option beginning with =
on, followed by a capital letter (onComplete) becomes an Class instance =
event.
	*/

	setOptions: function(){
		this.options =3D $merge.apply(null, [this.options].extend(arguments));
		if (this.addEvent){
			for (var option in this.options){
				if ($type(this.options[option] =3D=3D 'function') && =
(/^on[A-Z]/).test(option)) this.addEvent(option, this.options[option]);
			}
		}
		return this;
	}

});

/*
Script: Array.js
	Contains Array prototypes, <$A>, <$each>

License:
	MIT-style license.
*/

/*
Class: Array
	A collection of The Array Object prototype methods.
*/

//custom methods

Array.extend({

	/*
	Property: forEach
		Iterates through an array; This method is only available for browsers =
without native *forEach* support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Globa=
l_Objects:Array:forEach>

		*forEach* executes the provided function (callback) once for each =
element present in the array. callback is invoked only for indexes of =
the array which have assigned values; it is not invoked for indexes =
which have been deleted or which have never been assigned values.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - the object to bind "this" to (see <Function.bind>)

	Example:
		>['apple','banana','lemon'].each(function(item, index){
		>	alert(index + " =3D " + item); //alerts "0 =3D apple" etc.
		>}, bindObj); //optional second arg for binding, not used here
	*/

	forEach: function(fn, bind){
		for (var i =3D 0, j =3D this.length; i < j; i++) fn.call(bind, =
this[i], i, this);
	},

	/*
	Property: filter
		This method is provided only for browsers without native *filter* =
support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objec=
ts:Array:filter>

		*filter* calls a provided callback function once for each element in =
an array, and constructs a new array of all the values for which =
callback returns a true value. callback is invoked only for indexes of =
the array which have assigned values; it is not invoked for indexes =
which have been deleted or which have never been assigned values. Array =
elements which do not pass the callback test are simply skipped, and are =
not included in the new array.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - the object to bind "this" to (see <Function.bind>)

	Example:
		>var biggerThanTwenty =3D [10,3,25,100].filter(function(item, index){
		> return item > 20;
		>});
		>//biggerThanTwenty =3D [25,100]
	*/

	filter: function(fn, bind){
		var results =3D [];
		for (var i =3D 0, j =3D this.length; i < j; i++){
			if (fn.call(bind, this[i], i, this)) results.push(this[i]);
		}
		return results;
	},

	/*
	Property: map
		This method is provided only for browsers without native *map* =
support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Globa=
l_Objects:Array:map>

		*map* calls a provided callback function once for each element in an =
array, in order, and constructs a new array from the results. callback =
is invoked only for indexes of the array which have assigned values; it =
is not invoked for indexes which have been deleted or which have never =
been assigned values.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - the object to bind "this" to (see <Function.bind>)

	Example:
		>var timesTwo =3D [1,2,3].map(function(item, index){
		> return item*2;
		>});
		>//timesTwo =3D [2,4,6];
	*/

	map: function(fn, bind){
		var results =3D [];
		for (var i =3D 0, j =3D this.length; i < j; i++) results[i] =3D =
fn.call(bind, this[i], i, this);
		return results;
	},

	/*
	Property: every
		This method is provided only for browsers without native *every* =
support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Globa=
l_Objects:Array:every>

		*every* executes the provided callback function once for each element =
present in the array until it finds one where callback returns a false =
value. If such an element is found, the every method immediately returns =
false. Otherwise, if callback returned a true value for all elements, =
every will return true. callback is invoked only for indexes of the =
array which have assigned values; it is not invoked for indexes which =
have been deleted or which have never been assigned values.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - the object to bind "this" to (see <Function.bind>)

	Example:
		>var areAllBigEnough =3D [10,4,25,100].every(function(item, index){
		> return item > 20;
		>});
		>//areAllBigEnough =3D false
	*/

	every: function(fn, bind){
		for (var i =3D 0, j =3D this.length; i < j; i++){
			if (!fn.call(bind, this[i], i, this)) return false;
		}
		return true;
	},

	/*
	Property: some
		This method is provided only for browsers without native *some* =
support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Globa=
l_Objects:Array:some>

		*some* executes the callback function once for each element present in =
the array until it finds one where callback returns a true value. If =
such an element is found, some immediately returns true. Otherwise, some =
returns false. callback is invoked only for indexes of the array which =
have assigned values; it is not invoked for indexes which have been =
deleted or which have never been assigned values.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - the object to bind "this" to (see <Function.bind>)

	Example:
		>var isAnyBigEnough =3D [10,4,25,100].some(function(item, index){
		> return item > 20;
		>});
		>//isAnyBigEnough =3D true
	*/

	some: function(fn, bind){
		for (var i =3D 0, j =3D this.length; i < j; i++){
			if (fn.call(bind, this[i], i, this)) return true;
		}
		return false;
	},

	/*
	Property: indexOf
		This method is provided only for browsers without native *indexOf* =
support.
		For more info see =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Globa=
l_Objects:Array:indexOf>

		*indexOf* compares a search element to elements of the Array using =
strict equality (the same method used by the =3D=3D=3D, or =
triple-equals, operator).

	Arguments:
		item - any type of object; element to locate in the array
		from - integer; optional; the index of the array at which to begin the =
search (defaults to 0)

	Example:
		>['apple','lemon','banana'].indexOf('lemon'); //returns 1
		>['apple','lemon'].indexOf('banana'); //returns -1
	*/

	indexOf: function(item, from){
		var len =3D this.length;
		for (var i =3D (from < 0) ? Math.max(0, len + from) : from || 0; i < =
len; i++){
			if (this[i] =3D=3D=3D item) return i;
		}
		return -1;
	},

	/*
	Property: each
		Same as <Array.forEach>.

	Arguments:
		fn - function to execute with each item in the array; passed the item =
and the index of that item in the array
		bind - optional, the object that the "this" of the function will refer =
to.

	Example:
		>var Animals =3D ['Cat', 'Dog', 'Coala'];
		>Animals.each(function(animal){
		>	document.write(animal)
		>});
	*/

	/*
	Property: copy
		returns a copy of the array.

	Returns:
		a new array which is a copy of the current one.

	Arguments:
		start - integer; optional; the index where to start the copy, default =
is 0. If negative, it is taken as the offset from the end of the array.
		length - integer; optional; the number of elements to copy. By =
default, copies all elements from start to the end of the array.

	Example:
		>var letters =3D ["a","b","c"];
		>var copy =3D letters.copy();		// ["a","b","c"] (new instance)
	*/

	copy: function(start, length){
		start =3D start || 0;
		if (start < 0) start =3D this.length + start;
		length =3D length || (this.length - start);
		var newArray =3D [];
		for (var i =3D 0; i < length; i++) newArray[i] =3D this[start++];
		return newArray;
	},

	/*
	Property: remove
		Removes all occurrences of an item from the array.

	Arguments:
		item - the item to remove

	Returns:
		the Array with all occurrences of the item removed.

	Example:
		>["1","2","3","2"].remove("2") // ["1","3"];
	*/

	remove: function(item){
		var i =3D 0;
		var len =3D this.length;
		while (i < len){
			if (this[i] =3D=3D=3D item){
				this.splice(i, 1);
				len--;
			} else {
				i++;
			}
		}
		return this;
	},

	/*
	Property: contains
		Tests an array for the presence of an item.

	Arguments:
		item - the item to search for in the array.
		from - integer; optional; the index at which to begin the search, =
default is 0. If negative, it is taken as the offset from the end of the =
array.

	Returns:
		true - the item was found
		false - it wasn't

	Example:
		>["a","b","c"].contains("a"); // true
		>["a","b","c"].contains("d"); // false
	*/

	contains: function(item, from){
		return this.indexOf(item, from) !=3D -1;
	},

	/*
	Property: associate
		Creates an object with key-value pairs based on the array of keywords =
passed in
		and the current content of the array.

	Arguments:
		keys - the array of keywords.

	Example:
		(start code)
		var Animals =3D ['Cat', 'Dog', 'Coala', 'Lizard'];
		var Speech =3D ['Miao', 'Bau', 'Fruuu', 'Mute'];
		var Speeches =3D Animals.associate(Speech);
		//Speeches['Miao'] is now Cat.
		//Speeches['Bau'] is now Dog.
		//...
		(end)
	*/

	associate: function(keys){
		var obj =3D {}, length =3D Math.min(this.length, keys.length);
		for (var i =3D 0; i < length; i++) obj[keys[i]] =3D this[i];
		return obj;
	},

	/*
	Property: extend
		Extends an array with another one.

	Arguments:
		array - the array to extend ours with

	Example:
		>var Animals =3D ['Cat', 'Dog', 'Coala'];
		>Animals.extend(['Lizard']);
		>//Animals is now: ['Cat', 'Dog', 'Coala', 'Lizard'];
	*/

	extend: function(array){
		for (var i =3D 0, j =3D array.length; i < j; i++) this.push(array[i]);
		return this;
	},

	/*
	Property: merge
		merges an array in another array, without duplicates. (case- and =
type-sensitive)

	Arguments:
		array - the array to merge from.

	Example:
		>['Cat','Dog'].merge(['Dog','Coala']); //returns ['Cat','Dog','Coala']
	*/

	merge: function(array){
		for (var i =3D 0, l =3D array.length; i < l; i++) =
this.include(array[i]);
		return this;
	},

	/*
	Property: include
		includes the passed in element in the array, only if its not already =
present. (case- and type-sensitive)

	Arguments:
		item - item to add to the array (if not present)

	Example:
		>['Cat','Dog'].include('Dog'); //returns ['Cat','Dog']
		>['Cat','Dog'].include('Coala'); //returns ['Cat','Dog','Coala']
	*/

	include: function(item){
		if (!this.contains(item)) this.push(item);
		return this;
	},

	/*
	Property: getRandom
		returns a random item in the Array
	*/

	getRandom: function(){
		return this[$random(0, this.length - 1)] || null;
	},

	/*
	Property: getLast
		returns the last item in the Array
	*/

	getLast: function(){
		return this[this.length - 1] || null;
	}

});

//copies

Array.prototype.each =3D Array.prototype.forEach;
Array.each =3D Array.forEach;

/* Section: Utility Functions */

/*
Function: $A()
	Same as <Array.copy>, but as function.
	Useful to apply Array prototypes to iterable objects, as a collection =
of DOM elements or the arguments object.

Example:
	(start code)
	function myFunction(){
		$A(arguments).each(argument, function(){
			alert(argument);
		});
	};
	//the above will alert all the arguments passed to the function =
myFunction.
	(end)
*/

function $A(array){
	return Array.copy(array);
};

/*
Function: $each
	Use to iterate through iterables that are not regular arrays, such as =
builtin getElementsByTagName calls, arguments of a function, or an =
object.

Arguments:
	iterable - an iterable element or an objct.
	function - function to apply to the iterable.
	bind - optional, the 'this' of the function will refer to this object.

Function argument:
	The function argument will be passed the following arguments.

	item - the current item in the iterator being procesed
	index - integer; the index of the item, or key in case of an object.

Examples:
	(start code)
	$each(['Sun','Mon','Tue'], function(day, index){
		alert('name:' + day + ', index: ' + index);
	});
	//alerts "name: Sun, index: 0", "name: Mon, index: 1", etc.
	//over an object
	$each({first: "Sunday", second: "Monday", third: "Tuesday"}, =
function(value, key){
		alert("the " + key + " day of the week is " + value);
	});
	//alerts "the first day of the week is Sunday",
	//"the second day of the week is Monday", etc.
	(end)
*/

function $each(iterable, fn, bind){
	if (iterable && typeof iterable.length =3D=3D 'number' && =
$type(iterable) !=3D 'object'){
		Array.forEach(iterable, fn, bind);
	} else {
		 for (var name in iterable) fn.call(bind || iterable, iterable[name], =
name);
	}
};

/*compatibility*/

Array.prototype.test =3D Array.prototype.contains;

/*end compatibility*/

/*
Script: String.js
	Contains String prototypes.

License:
	MIT-style license.
*/

/*
Class: String
	A collection of The String Object prototype methods.
*/

String.extend({

	/*
	Property: test
		Tests a string with a regular expression.

	Arguments:
		regex - a string or regular expression object, the regular expression =
you want to match the string with
		params - optional, if first parameter is a string, any parameters you =
want to pass to the regex ('g' has no effect)

	Returns:
		true if a match for the regular expression is found in the string, =
false if not.
		See =
<http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objec=
ts:RegExp:test>

	Example:
		>"I like cookies".test("cookie"); // returns true
		>"I like cookies".test("COOKIE", "i") // ignore case, returns true
		>"I like cookies".test("cake"); // returns false
	*/

	test: function(regex, params){
		return (($type(regex) =3D=3D 'string') ? new RegExp(regex, params) : =
regex).test(this);
	},

	/*
	Property: toInt
		parses a string to an integer.

	Returns:
		either an int or "NaN" if the string is not a number.

	Example:
		>var value =3D "10px".toInt(); // value is 10
	*/

	toInt: function(){
		return parseInt(this, 10);
	},

	/*
	Property: toFloat
		parses a string to an float.

	Returns:
		either a float or "NaN" if the string is not a number.

	Example:
		>var value =3D "10.848".toFloat(); // value is 10.848
	*/

	toFloat: function(){
		return parseFloat(this);
	},

	/*
	Property: camelCase
		Converts a hiphenated string to a camelcase string.

	Example:
		>"I-like-cookies".camelCase(); //"ILikeCookies"

	Returns:
		the camel cased string
	*/

	camelCase: function(){
		return this.replace(/-\D/g, function(match){
			return match.charAt(1).toUpperCase();
		});
	},

	/*
	Property: hyphenate
		Converts a camelCased string to a hyphen-ated string.

	Example:
		>"ILikeCookies".hyphenate(); //"I-like-cookies"
	*/

	hyphenate: function(){
		return this.replace(/\w[A-Z]/g, function(match){
			return (match.charAt(0) + '-' + match.charAt(1).toLowerCase());
		});
	},

	/*
	Property: capitalize
		Converts the first letter in each word of a string to Uppercase.

	Example:
		>"i like cookies".capitalize(); //"I Like Cookies"

	Returns:
		the capitalized string
	*/

	capitalize: function(){
		return this.replace(/\b[a-z]/g, function(match){
			return match.toUpperCase();
		});
	},

	/*
	Property: trim
		Trims the leading and trailing spaces off a string.

	Example:
		>"    i like cookies     ".trim() //"i like cookies"

	Returns:
		the trimmed string
	*/

	trim: function(){
		return this.replace(/^\s+|\s+$/g, '');
	},

	/*
	Property: clean
		trims (<String.trim>) a string AND removes all the double spaces in a =
string.

	Returns:
		the cleaned string

	Example:
		>" i      like     cookies      \n\n".clean() //"i like cookies"
	*/

	clean: function(){
		return this.replace(/\s{2,}/g, ' ').trim();
	},

	/*
	Property: rgbToHex
		Converts an RGB value to hexidecimal. The string must be in the format =
of "rgb(255,255,255)" or "rgba(255,255,255,1)";

	Arguments:
		array - boolean value, defaults to false. Use true if you want the =
array ['FF','33','00'] as output instead of "#FF3300"

	Returns:
		hex string or array. returns "transparent" if the output is set as =
string and the fourth value of rgba in input string is 0.

	Example:
		>"rgb(17,34,51)".rgbToHex(); //"#112233"
		>"rgba(17,34,51,0)".rgbToHex(); //"transparent"
		>"rgb(17,34,51)".rgbToHex(true); //['11','22','33']
	*/

	rgbToHex: function(array){
		var rgb =3D this.match(/\d{1,3}/g);
		return (rgb) ? rgb.rgbToHex(array) : false;
	},

	/*
	Property: hexToRgb
		Converts a hexidecimal color value to RGB. Input string must be the =
hex color value (with or without the hash). Also accepts triplets =
('333');

	Arguments:
		array - boolean value, defaults to false. Use true if you want the =
array [255,255,255] as output instead of "rgb(255,255,255)";

	Returns:
		rgb string or array.

	Example:
		>"#112233".hexToRgb(); //"rgb(17,34,51)"
		>"#112233".hexToRgb(true); //[17,34,51]
	*/

	hexToRgb: function(array){
		var hex =3D this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);
		return (hex) ? hex.slice(1).hexToRgb(array) : false;
	},

	/*
	Property: contains
		checks if the passed in string is contained in the String. also =
accepts an optional second parameter, to check if the string is =
contained in a list of separated values.

	Example:
		>'a b c'.contains('c', ' '); //true
		>'a bc'.contains('bc'); //true
		>'a bc'.contains('b', ' '); //false
	*/

	contains: function(string, s){
		return (s) ? (s + this + s).indexOf(s + string + s) > -1 : =
this.indexOf(string) > -1;
	},

	/*
	Property: escapeRegExp
		Returns string with escaped regular expression characters

	Example:
		>var search =3D 'animals.sheeps[1]'.escapeRegExp(); // search is now =
'animals\.sheeps\[1\]'

	Returns:
		Escaped string
	*/

	escapeRegExp: function(){
		return this.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
	}

});

Array.extend({

	/*
	Property: rgbToHex
		see <String.rgbToHex>, but as an array method.
	*/

	rgbToHex: function(array){
		if (this.length < 3) return false;
		if (this.length =3D=3D 4 && this[3] =3D=3D 0 && !array) return =
'transparent';
		var hex =3D [];
		for (var i =3D 0; i < 3; i++){
			var bit =3D (this[i] - 0).toString(16);
			hex.push((bit.length =3D=3D 1) ? '0' + bit : bit);
		}
		return array ? hex : '#' + hex.join('');
	},

	/*
	Property: hexToRgb
		same as <String.hexToRgb>, but as an array method.
	*/

	hexToRgb: function(array){
		if (this.length !=3D 3) return false;
		var rgb =3D [];
		for (var i =3D 0; i < 3; i++){
			rgb.push(parseInt((this[i].length =3D=3D 1) ? this[i] + this[i] : =
this[i], 16));
		}
		return array ? rgb : 'rgb(' + rgb.join(',') + ')';
	}

});

/*=20
Script: Function.js
	Contains Function prototypes and utility functions .

License:
	MIT-style license.

Credits:
	- Some functions are inspired by those found in prototype.js =
<http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio =
[dot] net, MIT-style license
*/

/*
Class: Function
	A collection of The Function Object prototype methods.
*/

Function.extend({

	/*
	Property: create
		Main function to create closures.

	Returns:
		a function.

	Arguments:
		options - An Options object.

	Options:
		bind - The object that the "this" of the function will refer to. =
Default is the current function.
		event - If set to true, the function will act as an event listener and =
receive an event as first argument.
				If set to a class name, the function will receive a new instance of =
this class (with the event passed as argument's constructor) as first =
argument.
				Default is false.
		arguments - A single argument or array of arguments that will be =
passed to the function when called.
	=09
					If both the event and arguments options are set, the event is =
passed as first argument and the arguments array will follow.
				=09
					Default is no custom arguments, the function will receive the =
standard arguments when called.
				=09
		delay - Numeric value: if set, the returned function will delay the =
actual execution by this amount of milliseconds and return a timer =
handle when called.
				Default is no delay.
		periodical - Numeric value: if set, the returned function will =
periodically perform the actual execution with this specified interval =
and return a timer handle when called.
				Default is no periodical execution.
		attempt - If set to true, the returned function will try to execute =
and return either the results or false on error. Default is false.
	*/

	create: function(options){
		var fn =3D this;
		options =3D $merge({
			'bind': fn,
			'event': false,
			'arguments': null,
			'delay': false,
			'periodical': false,
			'attempt': false
		}, options);
		if ($chk(options.arguments) && $type(options.arguments) !=3D 'array') =
options.arguments =3D [options.arguments];
		return function(event){
			var args;
			if (options.event){
				event =3D event || window.event;
				args =3D [(options.event =3D=3D=3D true) ? event : new =
options.event(event)];
				if (options.arguments) args.extend(options.arguments);
			}
			else args =3D options.arguments || arguments;
			var returns =3D function(){
				return fn.apply($pick(options.bind, fn), args);
			};
			if (options.delay) return setTimeout(returns, options.delay);
			if (options.periodical) return setInterval(returns, =
options.periodical);
			if (options.attempt) try {return returns();} catch(err){return =
false;};
			return returns();
		};
	},

	/*
	Property: pass
		Shortcut to create closures with arguments and bind.

	Returns:
		a function.

	Arguments:
		args - the arguments passed. must be an array if arguments > 1
		bind - optional, the object that the "this" of the function will refer =
to.

	Example:
		>myFunction.pass([arg1, arg2], myElement);
	*/

	pass: function(args, bind){
		return this.create({'arguments': args, 'bind': bind});
	},

	/*
	Property: attempt
		Tries to execute the function, returns either the result of the =
function or false on error.

	Arguments:
		args - the arguments passed. must be an array if arguments > 1
		bind - optional, the object that the "this" of the function will refer =
to.

	Example:
		>myFunction.attempt([arg1, arg2], myElement);
	*/

	attempt: function(args, bind){
		return this.create({'arguments': args, 'bind': bind, 'attempt': =
true})();
	},

	/*
	Property: bind
		method to easily create closures with "this" altered.

	Arguments:
		bind - optional, the object that the "this" of the function will refer =
to.
		args - optional, the arguments passed. must be an array if arguments > =
1

	Returns:
		a function.

	Example:
		>function myFunction(){
		>	this.setStyle('color', 'red');
		>	// note that 'this' here refers to myFunction, not an element
		>	// we'll need to bind this function to the element we want to alter
		>};
		>var myBoundFunction =3D myFunction.bind(myElement);
		>myBoundFunction(); // this will make the element myElement red.
	*/

	bind: function(bind, args){
		return this.create({'bind': bind, 'arguments': args});
	},

	/*
	Property: bindAsEventListener
		cross browser method to pass event firer

	Arguments:
		bind - optional, the object that the "this" of the function will refer =
to.
		args - optional, the arguments passed. must be an array if arguments > =
1

	Returns:
		a function with the parameter bind as its "this" and as a pre-passed =
argument event or window.event, depending on the browser.

	Example:
		>function myFunction(event){
		>	alert(event.clientx) //returns the coordinates of the mouse..
		>};
		>myElement.onclick =3D myFunction.bindAsEventListener(myElement);
	*/

	bindAsEventListener: function(bind, args){
		return this.create({'bind': bind, 'event': true, 'arguments': args});
	},

	/*
	Property: delay
		Delays the execution of a function by a specified duration.

	Arguments:
		delay - the duration to wait in milliseconds.
		bind - optional, the object that the "this" of the function will refer =
to.
		args - optional, the arguments passed. must be an array if arguments > =
1

	Example:
		>myFunction.delay(50, myElement) //wait 50 milliseconds, then call =
myFunction and bind myElement to it
		>(function(){alert('one second later...')}).delay(1000); //wait a =
second and alert
	*/

	delay: function(delay, bind, args){
		return this.create({'delay': delay, 'bind': bind, 'arguments': =
args})();
	},

	/*
	Property: periodical
		Executes a function in the specified intervals of time

	Arguments:
		interval - the duration of the intervals between executions.
		bind - optional, the object that the "this" of the function will refer =
to.
		args - optional, the arguments passed. must be an array if arguments > =
1
	*/

	periodical: function(interval, bind, args){
		return this.create({'periodical': interval, 'bind': bind, 'arguments': =
args})();
	}

});

/*
Script: Number.js
	Contains the Number prototypes.

License:
	MIT-style license.
*/

/*
Class: Number
	A collection of The Number Object prototype methods.
*/

Number.extend({

	/*
	Property: toInt
		Returns this number; useful because toInt must work on both Strings =
and Numbers.
	*/

	toInt: function(){
		return parseInt(this);
	},

	/*
	Property: toFloat
		Returns this number as a float; useful because toFloat must work on =
both Strings and Numbers.
	*/

	toFloat: function(){
		return parseFloat(this);
	},

	/*
	Property: limit
		Limits the number.

	Arguments:
		min - number, minimum value
		max - number, maximum value

	Returns:
		the number in the given limits.

	Example:
		>(12).limit(2, 6.5)  // returns 6.5
		>(-4).limit(2, 6.5)  // returns 2
		>(4.3).limit(2, 6.5) // returns 4.3
	*/

	limit: function(min, max){
		return Math.min(max, Math.max(min, this));
	},

	/*
	Property: round
		Returns the number rounded to specified precision.

	Arguments:
		precision - integer, number of digits after the decimal point. Can =
also be negative or zero (default).

	Example:
		>12.45.round() // returns 12
		>12.45.round(1) // returns 12.5
		>12.45.round(-1) // returns 10

	Returns:
		The rounded number.
	*/

	round: function(precision){
		precision =3D Math.pow(10, precision || 0);
		return Math.round(this * precision) / precision;
	},

	/*
	Property: times
		Executes a passed in function the specified number of times

	Arguments:
		function - the function to be executed on each iteration of the loop

	Example:
		>(4).times(alert);
	*/

	times: function(fn){
		for (var i =3D 0; i < this; i++) fn(i);
	}

});

/*
Script: Element.js
	Contains useful Element prototypes, to be used with the dollar function =
<$>.

License:
	MIT-style license.

Credits:
	- Some functions are inspired by those found in prototype.js =
<http://prototype.conio.net/> (c) 2005 Sam Stephenson sam [at] conio =
[dot] net, MIT-style license
*/

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

var Element =3D new Class({

	/*
	Property: initialize
		Creates a new element of the type passed in.

	Arguments:
		el - string; the tag name for the element you wish to create. you can =
also pass in an element reference, in which case it will be extended.
		props - object; the properties you want to add to your element.
		Accepts the same keys as <Element.setProperties>, but also allows =
events and styles

	Props:
		the key styles will be used as setStyles, the key events will be used =
as addEvents. any other key is used as setProperty.

	Example:
		(start code)
		new Element('a', {
			'styles': {
				'display': 'block',
				'border': '1px solid black'
			},
			'events': {
				'click': function(){
					//aaa
				},
				'mousedown': function(){
					//aaa
				}
			},
			'class': 'myClassSuperClass',
			'href': 'http://mad4milk.net'
		});

		(end)
	*/

	initialize: function(el, props){
		if ($type(el) =3D=3D 'string'){
			if (window.ie && props && (props.name || props.type)){
				var name =3D (props.name) ? ' name=3D"' + props.name + '"' : '';
				var type =3D (props.type) ? ' type=3D"' + props.type + '"' : '';
				delete props.name;
				delete props.type;
				el =3D '<' + el + name + type + '>';
			}
			el =3D document.createElement(el);
		}
		el =3D $(el);
		return (!props || !el) ? el : el.set(props);
	}

});

/*
Class: Elements
	- Every dom function such as <$$>, or in general every function that =
returns a collection of nodes in mootools, returns them as an Elements =
class.
	- The purpose of the Elements class is to allow <Element> methods to =
work also on <Elements> array.
	- Elements is also an Array, so it accepts all the <Array> methods.
	- Every node of the Elements instance is already extended with <$>.

Example:
	>$$('myselector').each(function(el){
	> //...
	>});

	some iterations here, $$('myselector') is also an array.

	>$$('myselector').setStyle('color', 'red');
	every element returned by $$('myselector') also accepts <Element> =
methods, in this example every element will be made red.
*/

var Elements =3D new Class({

	initialize: function(elements){
		return (elements) ? $extend(elements, this) : this;
	}

});

Elements.extend =3D function(props){
	for (var prop in props){
		this.prototype[prop] =3D props[prop];
		this[prop] =3D $native.generic(prop);
	}
};

/*
Section: Utility Functions

Function: $
	returns the element passed in with all the Element prototypes applied.

Arguments:
	el - a reference to an actual element or a string representing the id =
of an element

Example:
	>$('myElement') // gets a DOM element by id with all the Element =
prototypes applied.
	>var div =3D document.getElementById('myElement');
	>$(div) //returns an Element also with all the mootools extentions =
applied.

	You'll use this when you aren't sure if a variable is an actual element =
or an id, as
	well as just shorthand for document.getElementById().

Returns:
	a DOM element or false (if no id was found).

Note:
	you need to call $ on an element only once to get all the prototypes.
	But its no harm to call it multiple times, as it will detect if it has =
been already extended.
*/

function $(el){
	if (!el) return null;
	if (el.htmlElement) return Garbage.collect(el);
	if ([window, document].contains(el)) return el;
	var type =3D $type(el);
	if (type =3D=3D 'string'){
		el =3D document.getElementById(el);
		type =3D (el) ? 'element' : false;
	}
	if (type !=3D 'element') return null;
	if (el.htmlElement) return Garbage.collect(el);
	if (['object', 'embed'].contains(el.tagName.toLowerCase())) return el;
	$extend(el, Element.prototype);
	el.htmlElement =3D function(){};
	return Garbage.collect(el);
};

/*
Function: $$
	Selects, and extends DOM elements. Elements arrays returned with $$ =
will also accept all the <Element> methods.
	The return type of element methods run through $$ is always an array. =
If the return array is only made by elements,
	$$ will be applied automatically.

Arguments:
	HTML Collections, arrays of elements, arrays of strings as element ids, =
elements, strings as selectors.
	Any number of the above as arguments are accepted.

Note:
	if you load <Element.Selectors.js>, $$ will also accept CSS Selectors, =
otherwise the only selectors supported are tag names.

Example:
	>$$('a') //an array of all anchor tags on the page
	>$$('a', 'b') //an array of all anchor and bold tags on the page
	>$$('#myElement') //array containing only the element with id =3D =
myElement. (only with <Element.Selectors.js>)
	>$$('#myElement a.myClass') //an array of all anchor tags with the =
class "myClass"
	>//within the DOM element with id "myElement" (only with =
<Element.Selectors.js>)
	>$$(myelement, myelement2, 'a', ['myid', myid2, 'myid3'], =
document.getElementsByTagName('div')) //an array containing:
	>// the element referenced as myelement if existing,
	>// the element referenced as myelement2 if existing,
	>// all the elements with a as tag in the page,
	>// the element with id =3D myid if existing
	>// the element with id =3D myid2 if existing
	>// the element with id =3D myid3 if existing
	>// all the elements with div as tag in the page

Returns:
	array - array of all the dom elements matched, extended with <$>.  =
Returns as <Elements>.
*/

document.getElementsBySelector =3D document.getElementsByTagName;

function $$(){
	var elements =3D [];
	for (var i =3D 0, j =3D arguments.length; i < j; i++){
		var selector =3D arguments[i];
		switch($type(selector)){
			case 'element': elements.push(selector);
			case 'boolean': break;
			case false: break;
			case 'string': selector =3D document.getElementsBySelector(selector, =
true);
			default: elements.extend(selector);
		}
	}
	return $$.unique(elements);
};

$$.unique =3D function(array){
	var elements =3D [];
	for (var i =3D 0, l =3D array.length; i < l; i++){
		if (array[i].$included) continue;
		var element =3D $(array[i]);
		if (element && !element.$included){
			element.$included =3D true;
			elements.push(element);
		}
	}
	for (var n =3D 0, d =3D elements.length; n < d; n++) =
elements[n].$included =3D null;
	return new Elements(elements);
};

Elements.Multi =3D function(property){
	return function(){
		var args =3D arguments;
		var items =3D [];
		var elements =3D true;
		for (var i =3D 0, j =3D this.length, returns; i < j; i++){
			returns =3D this[i][property].apply(this[i], args);
			if ($type(returns) !=3D 'element') elements =3D false;
			items.push(returns);
		};
		return (elements) ? $$.unique(items) : items;
	};
};

Element.extend =3D function(properties){
	for (var property in properties){
		HTMLElement.prototype[property] =3D properties[property];
		Element.prototype[property] =3D properties[property];
		Element[property] =3D $native.generic(property);
		var elementsProperty =3D (Array.prototype[property]) ? property + =
'Elements' : property;
		Elements.prototype[elementsProperty] =3D Elements.Multi(property);
	}
};

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: set
		you can set events, styles and properties with this shortcut. same as =
calling new Element.
	*/

	set: function(props){
		for (var prop in props){
			var val =3D props[prop];
			switch(prop){
				case 'styles': this.setStyles(val); break;
				case 'events': if (this.addEvents) this.addEvents(val); break;
				case 'properties': this.setProperties(val); break;
				default: this.setProperty(prop, val);
			}
		}
		return this;
	},

	inject: function(el, where){
		el =3D $(el);
		switch(where){
			case 'before': el.parentNode.insertBefore(this, el); break;
			case 'after':
				var next =3D el.getNext();
				if (!next) el.parentNode.appendChild(this);
				else el.parentNode.insertBefore(this, next);
				break;
			case 'top':
				var first =3D el.firstChild;
				if (first){
					el.insertBefore(this, first);
					break;
				}
			default: el.appendChild(this);
		}
		return this;
	},

	/*
	Property: injectBefore
		Inserts the Element before the passed element.

	Arguments:
		el - an element reference or the id of the element to be injected in.

	Example:
		>html:
		><div id=3D"myElement"></div>
		><div id=3D"mySecondElement"></div>
		>js:
		>$('mySecondElement').injectBefore('myElement');
		>resulting html:
		><div id=3D"mySecondElement"></div>
		><div id=3D"myElement"></div>
	*/

	injectBefore: function(el){
		return this.inject(el, 'before');
	},

	/*
	Property: injectAfter
		Same as <Element.injectBefore>, but inserts the element after.
	*/

	injectAfter: function(el){
		return this.inject(el, 'after');
	},

	/*
	Property: injectInside
		Same as <Element.injectBefore>, but inserts the element inside.
	*/

	injectInside: function(el){
		return this.inject(el, 'bottom');
	},

	/*
	Property: injectTop
		Same as <Element.injectInside>, but inserts the element inside, at the =
top.
	*/

	injectTop: function(el){
		return this.inject(el, 'top');
	},

	/*
	Property: adopt
		Inserts the passed elements inside the Element.

	Arguments:
		accepts elements references, element ids as string, selectors =
($$('stuff')) / array of elements, array of ids as strings and =
collections.
	*/

	adopt: function(){
		var elements =3D [];
		$each(arguments, function(argument){
			elements =3D elements.concat(argument);
		});
		$$(elements).inject(this);
		return this;
	},

	/*
	Property: remove
		Removes the Element from the DOM.

	Example:
		>$('myElement').remove() //bye bye
	*/

	remove: function(){
		return this.parentNode.removeChild(this);
	},

	/*
	Property: clone
		Clones the Element and returns the cloned one.

	Arguments:
		contents - boolean, when true the Element is cloned with childNodes, =
default true

	Returns:
		the cloned element

	Example:
		>var clone =3D $('myElement').clone().injectAfter('myElement');
		>//clones the Element and append the clone after the Element.
	*/

	clone: function(contents){
		var el =3D $(this.cloneNode(contents !=3D=3D false));
		if (!el.$events) return el;
		el.$events =3D {};
		for (var type in this.$events) el.$events[type] =3D {
			'keys': $A(this.$events[type].keys),
			'values': $A(this.$events[type].values)
		};
		return el.removeEvents();
	},

	/*
	Property: replaceWith
		Replaces the Element with an element passed.

	Arguments:
		el - a string representing the element to be injected in (myElementId, =
or div), or an element reference.
		If you pass div or another tag, the element will be created.

	Returns:
		the passed in element

	Example:
		>$('myOldElement').replaceWith($('myNewElement')); //$('myOldElement') =
is gone, and $('myNewElement') is in its place.
	*/

	replaceWith: function(el){
		el =3D $(el);
		this.parentNode.replaceChild(el, this);
		return el;
	},

	/*
	Property: appendText
		Appends text node to a DOM element.

	Arguments:
		text - the text to append.

	Example:
		><div id=3D"myElement">hey</div>
		>$('myElement').appendText(' howdy'); //myElement innerHTML is now =
"hey howdy"
	*/

	appendText: function(text){
		this.appendChild(document.createTextNode(text));
		return this;
	},

	/*
	Property: hasClass
		Tests the Element to see if it has the passed in className.

	Returns:
		true - the Element has the class
		false - it doesn't

	Arguments:
		className - string; the class name to test.

	Example:
		><div id=3D"myElement" class=3D"testClass"></div>
		>$('myElement').hasClass('testClass'); //returns true
	*/

	hasClass: function(className){
		return this.className.contains(className, ' ');
	},

	/*
	Property: addClass
		Adds the passed in class to the Element, if the element doesnt already =
have it.

	Arguments:
		className - string; the class name to add

	Example:
		><div id=3D"myElement" class=3D"testClass"></div>
		>$('myElement').addClass('newClass'); //<div id=3D"myElement" =
class=3D"testClass newClass"></div>
	*/

	addClass: function(className){
		if (!this.hasClass(className)) this.className =3D (this.className + ' =
' + className).clean();
		return this;
	},

	/*
	Property: removeClass
		Works like <Element.addClass>, but removes the class from the element.
	*/

	removeClass: function(className){
		this.className =3D this.className.replace(new RegExp('(^|\\s)' + =
className + '(?:\\s|$)'), '$1').clean();
		return this;
	},

	/*
	Property: toggleClass
		Adds or removes the passed in class name to the element, depending on =
if it's present or not.

	Arguments:
		className - the class to add or remove

	Example:
		><div id=3D"myElement" class=3D"myClass"></div>
		>$('myElement').toggleClass('myClass');
		><div id=3D"myElement" class=3D""></div>
		>$('myElement').toggleClass('myClass');
		><div id=3D"myElement" class=3D"myClass"></div>
	*/

	toggleClass: function(className){
		return this.hasClass(className) ? this.removeClass(className) : =
this.addClass(className);
	},

	/*
	Property: setStyle
		Sets a css property to the Element.

		Arguments:
			property - the property to set
			value - the value to which to set it; for numeric values that require =
"px" you can pass an integer

		Example:
			>$('myElement').setStyle('width', '300px'); //the width is now 300px
			>$('myElement').setStyle('width', 300); //the width is now 300px
	*/

	setStyle: function(property, value){
		switch(property){
			case 'opacity': return this.setOpacity(parseFloat(value));
			case 'float': property =3D (window.ie) ? 'styleFloat' : 'cssFloat';
		}
		property =3D property.camelCase();
		switch($type(value)){
			case 'number': if (!['zIndex', 'zoom'].contains(property)) value +=3D =
'px'; break;
			case 'array': value =3D 'rgb(' + value.join(',') + ')';
		}
		this.style[property] =3D value;
		return this;
	},

	/*
	Property: setStyles
		Applies a collection of styles to the Element.

	Arguments:
		source - an object or string containing all the styles to apply. When =
its a string it overrides old style.

	Examples:
		>$('myElement').setStyles({
		>	border: '1px solid #000',
		>	width: 300,
		>	height: 400
		>});

		OR

		>$('myElement').setStyles('border: 1px solid #000; width: 300px; =
height: 400px;');
	*/

	setStyles: function(source){
		switch($type(source)){
			case 'object': Element.setMany(this, 'setStyle', source); break;
			case 'string': this.style.cssText =3D source;
		}
		return this;
	},

	/*
	Property: setOpacity
		Sets the opacity of the Element, and sets also visibility =3D=3D =
"hidden" if opacity =3D=3D 0, and visibility =3D "visible" if opacity > =
0.

	Arguments:
		opacity - float; Accepts values from 0 to 1.

	Example:
		>$('myElement').setOpacity(0.5) //make it 50% transparent
	*/

	setOpacity: function(opacity){
		if (opacity =3D=3D 0){
			if (this.style.visibility !=3D "hidden") this.style.visibility =3D =
"hidden";
		} else {
			if (this.style.visibility !=3D "visible") this.style.visibility =3D =
"visible";
		}
		if (!this.currentStyle || !this.currentStyle.hasLayout) =
this.style.zoom =3D 1;
		if (window.ie) this.style.filter =3D (opacity =3D=3D 1) ? '' : =
"alpha(opacity=3D" + opacity * 100 + ")";
		this.style.opacity =3D this.$tmp.opacity =3D opacity;
		return this;
	},

	/*
	Property: getStyle
		Returns the style of the Element given the property passed in.

	Arguments:
		property - the css style property you want to retrieve

	Example:
		>$('myElement').getStyle('width'); //returns "400px"
		>//but you can also use
		>$('myElement').getStyle('width').toInt(); //returns 400

	Returns:
		the style as a string
	*/

	getStyle: function(property){
		property =3D property.camelCase();
		var result =3D this.style[property];
		if (!$chk(result)){
			if (property =3D=3D 'opacity') return this.$tmp.opacity;
			result =3D [];
			for (var style in Element.Styles){
				if (property =3D=3D style){
					Element.Styles[style].each(function(s){
						var style =3D this.getStyle(s);
						result.push(parseInt(style) ? style : '0px');
					}, this);
					if (property =3D=3D 'border'){
						var every =3D result.every(function(bit){
							return (bit =3D=3D result[0]);
						});
						return (every) ? result[0] : false;
					}
					return result.join(' ');
				}
			}
			if (property.contains('border')){
				if (Element.Styles.border.contains(property)){
					return ['Width', 'Style', 'Color'].map(function(p){
						return this.getStyle(property + p);
					}, this).join(' ');
				} else if (Element.borderShort.contains(property)){
					return ['Top', 'Right', 'Bottom', 'Left'].map(function(p){
						return this.getStyle('border' + p + property.replace('border', =
''));
					}, this).join(' ');
				}
			}
			if (document.defaultView) result =3D =
document.defaultView.getComputedStyle(this, =
null).getPropertyValue(property.hyphenate());
			else if (this.currentStyle) result =3D this.currentStyle[property];
		}
		if (window.ie) result =3D Element.fixStyle(property, result, this);
		if (result && property.test(/color/i) && result.contains('rgb')){
			return result.split('rgb').splice(1,4).map(function(color){
				return color.rgbToHex();
			}).join(' ');
		}
		return result;
	},

	/*
	Property: getStyles
		Returns an object of styles of the Element for each argument passed =
in.
		Arguments:
		properties - strings; any number of style properties
	Example:
		>$('myElement').getStyles('width','height','padding');
		>//returns an object like:
		>{width: "10px", height: "10px", padding: "10px 0px 10px 0px"}
	*/

	getStyles: function(){
		return Element.getMany(this, 'getStyle', arguments);
	},

	walk: function(brother, start){
		brother +=3D 'Sibling';
		var el =3D (start) ? this[start] : this[brother];
		while (el && $type(el) !=3D 'element') el =3D el[brother];
		return $(el);
	},

	/*
	Property: getPrevious
		Returns the previousSibling of the Element, excluding text nodes.

	Example:
		>$('myElement').getPrevious(); //get the previous DOM element from =
myElement

	Returns:
		the sibling element or undefined if none found.
	*/

	getPrevious: function(){
		return this.walk('previous');
	},

	/*
	Property: getNext
		Works as Element.getPrevious, but tries to find the nextSibling.
	*/

	getNext: function(){
		return this.walk('next');
	},

	/*
	Property: getFirst
		Works as <Element.getPrevious>, but tries to find the firstChild.
	*/

	getFirst: function(){
		return this.walk('next', 'firstChild');
	},

	/*
	Property: getLast
		Works as <Element.getPrevious>, but tries to find the lastChild.
	*/

	getLast: function(){
		return this.walk('previous', 'lastChild');
	},

	/*
	Property: getParent
		returns the $(element.parentNode)
	*/

	getParent: function(){
		return $(this.parentNode);
	},

	/*
	Property: getChildren
		returns all the $(element.childNodes), excluding text nodes. Returns =
as <Elements>.
	*/

	getChildren: function(){
		return $$(this.childNodes);
	},

	/*
	Property: hasChild
		returns true if the passed in element is a child of the $(element).
	*/

	hasChild: function(el){
		return !!$A(this.getElementsByTagName('*')).contains(el);
	},

	/*
	Property: getProperty
		Gets the an attribute of the Element.

	Arguments:
		property - string; the attribute to retrieve

	Example:
		>$('myImage').getProperty('src') // returns whatever.gif

	Returns:
		the value, or an empty string
	*/

	getProperty: function(property){
		var index =3D Element.Properties[property];
		if (index) return this[index];
		var flag =3D Element.PropertiesIFlag[property] || 0;
		if (!window.ie || flag) return this.getAttribute(property, flag);
		var node =3D this.attributes[property];
		return (node) ? node.nodeValue : null;
	},

	/*
	Property: removeProperty
		Removes an attribute from the Element

	Arguments:
		property - string; the attribute to remove
	*/

	removeProperty: function(property){
		var index =3D Element.Properties[property];
		if (index) this[index] =3D '';
		else this.removeAttribute(property);
		return this;
	},

	/*
	Property: getProperties
		same as <Element.getStyles>, but for properties
	*/

	getProperties: function(){
		return Element.getMany(this, 'getProperty', arguments);
	},

	/*
	Property: setProperty
		Sets an attribute for the Element.

	Arguments:
		property - string; the property to assign the value passed in
		value - the value to assign to the property passed in

	Example:
		>$('myImage').setProperty('src', 'whatever.gif'); //myImage now points =
to whatever.gif for its source
	*/

	setProperty: function(property, value){
		var index =3D Element.Properties[property];
		if (index) this[index] =3D value;
		else this.setAttribute(property, value);
		return this;
	},

	/*
	Property: setProperties
		Sets numerous attributes for the Element.

	Arguments:
		source - an object with key/value pairs.

	Example:
		(start code)
		$('myElement').setProperties({
			src: 'whatever.gif',
			alt: 'whatever dude'
		});
		<img src=3D"whatever.gif" alt=3D"whatever dude">
		(end)
	*/

	setProperties: function(source){
		return Element.setMany(this, 'setProperty', source);
	},

	/*
	Property: setHTML
		Sets the innerHTML of the Element.

	Arguments:
		html - string; the new innerHTML for the element.

	Example:
		>$('myElement').setHTML(newHTML) //the innerHTML of myElement is now =
=3D newHTML
	*/

	setHTML: function(){
		this.innerHTML =3D $A(arguments).join('');
		return this;
	},

	/*
	Property: setText
		Sets the inner text of the Element.

	Arguments:
		text - string; the new text content for the element.

	Example:
		>$('myElement').setText('some text') //the text of myElement is now =
=3D 'some text'
	*/

	setText: function(text){
		var tag =3D this.getTag();
		if (['style', 'script'].contains(tag)){
			if (window.ie){
				if (tag =3D=3D 'style') this.styleSheet.cssText =3D text;
				else if (tag =3D=3D  'script') this.setProperty('text', text);
				return this;
			} else {
				this.removeChild(this.firstChild);
				return this.appendText(text);
			}
		}
		this[$defined(this.innerText) ? 'innerText' : 'textContent'] =3D text;
		return this;
	},

	/*
	Property: getText
		Gets the inner text of the Element.
	*/

	getText: function(){
		var tag =3D this.getTag();
		if (['style', 'script'].contains(tag)){
			if (window.ie){
				if (tag =3D=3D 'style') return this.styleSheet.cssText;
				else if (tag =3D=3D  'script') return this.getProperty('text');
			} else {
				return this.innerHTML;
			}
		}
		return ($pick(this.innerText, this.textContent));
	},

	/*
	Property: getTag
		Returns the tagName of the element in lower case.

	Example:
		>$('myImage').getTag() // returns 'img'

	Returns:
		The tag name in lower case
	*/

	getTag: function(){
		return this.tagName.toLowerCase();
	},

	/*
	Property: empty
		Empties an element of all its children.

	Example:
		>$('myDiv').empty() // empties the Div and returns it

	Returns:
		The element.
	*/

	empty: function(){
		Garbage.trash(this.getElementsByTagName('*'));
		return this.setHTML('');
	}

});

Element.fixStyle =3D function(property, result, element){
	if ($chk(parseInt(result))) return result;
	if (['height', 'width'].contains(property)){
		var values =3D (property =3D=3D 'width') ? ['left', 'right'] : ['top', =
'bottom'];
		var size =3D 0;
		values.each(function(value){
			size +=3D element.getStyle('border-' + value + '-width').toInt() + =
element.getStyle('padding-' + value).toInt();
		});
		return element['offset' + property.capitalize()] - size + 'px';
	} else if (property.test(/border(.+)Width|margin|padding/)){
		return '0px';
	}
	return result;
};

Element.Styles =3D {'border': [], 'padding': [], 'margin': []};
['Top', 'Right', 'Bottom', 'Left'].each(function(direction){
	for (var style in Element.Styles) Element.Styles[style].push(style + =
direction);
});

Element.borderShort =3D ['borderWidth', 'borderStyle', 'borderColor'];

Element.getMany =3D function(el, method, keys){
	var result =3D {};
	$each(keys, function(key){
		result[key] =3D el[method](key);
	});
	return result;
};

Element.setMany =3D function(el, method, pairs){
	for (var key in pairs) el[method](key, pairs[key]);
	return el;
};

Element.Properties =3D new Abstract({
	'class': 'className', 'for': 'htmlFor', 'colspan': 'colSpan', =
'rowspan': 'rowSpan',
	'accesskey': 'accessKey', 'tabindex': 'tabIndex', 'maxlength': =
'maxLength',
	'readonly': 'readOnly', 'frameborder': 'frameBorder', 'value': 'value',
	'disabled': 'disabled', 'checked': 'checked', 'multiple': 'multiple', =
'selected': 'selected'
});
Element.PropertiesIFlag =3D {
	'href': 2, 'src': 2
};

Element.Methods =3D {
	Listeners: {
		addListener: function(type, fn){
			if (this.addEventListener) this.addEventListener(type, fn, false);
			else this.attachEvent('on' + type, fn);
			return this;
		},

		removeListener: function(type, fn){
			if (this.removeEventListener) this.removeEventListener(type, fn, =
false);
			else this.detachEvent('on' + type, fn);
			return this;
		}
	}
};

window.extend(Element.Methods.Listeners);
document.extend(Element.Methods.Listeners);
Element.extend(Element.Methods.Listeners);

var Garbage =3D {

	elements: [],

	collect: function(el){
		if (!el.$tmp){
			Garbage.elements.push(el);
			el.$tmp =3D {'opacity': 1};
		}
		return el;
	},

	trash: function(elements){
		for (var i =3D 0, j =3D elements.length, el; i < j; i++){
			if (!(el =3D elements[i]) || !el.$tmp) continue;
			if (el.$events) el.fireEvent('trash').removeEvents();
			for (var p in el.$tmp) el.$tmp[p] =3D null;
			for (var d in Element.prototype) el[d] =3D null;
			Garbage.elements[Garbage.elements.indexOf(el)] =3D null;
			el.htmlElement =3D el.$tmp =3D el =3D null;
		}
		Garbage.elements.remove(null);
	},

	empty: function(){
		Garbage.collect(window);
		Garbage.collect(document);
		Garbage.trash(Garbage.elements);
	}

};

window.addListener('beforeunload', function(){
	window.addListener('unload', Garbage.empty);
	if (window.ie) window.addListener('unload', CollectGarbage);
});

/*
Script: Element.Event.js
	Contains the Event Class, Element methods to deal with Element events, =
custom Events, and the Function prototype bindWithEvent.

License:
	MIT-style license.
*/

/*
Class: Event
	Cross browser methods to manage events.

Arguments:
	event - the event

Properties:
	shift - true if the user pressed the shift
	control - true if the user pressed the control
	alt - true if the user pressed the alt
	meta - true if the user pressed the meta key
	wheel - the amount of third button scrolling
	code - the keycode of the key pressed
	page.x - the x position of the mouse, relative to the full window
	page.y - the y position of the mouse, relative to the full window
	client.x - the x position of the mouse, relative to the viewport
	client.y - the y position of the mouse, relative to the viewport
	key - the key pressed as a lowercase string. key also returns 'enter', =
'up', 'down', 'left', 'right', 'space', 'backspace', 'delete', 'esc'. =
Handy for these special keys.
	target - the event target
	relatedTarget - the event related target

Example:
	(start code)
	$('myLink').onkeydown =3D function(event){
		var event =3D new Event(event);
		//event is now the Event class.
		alert(event.key); //returns the lowercase letter pressed
		alert(event.shift); //returns true if the key pressed is shift
		if (event.key =3D=3D 's' && event.control) alert('document saved');
	};
	(end)
*/

var Event =3D new Class({

	initialize: function(event){
		if (event && event.$extended) return event;
		this.$extended =3D true;
		event =3D event || window.event;
		this.event =3D event;
		this.type =3D event.type;
		this.target =3D event.target || event.srcElement;
		if (this.target.nodeType =3D=3D 3) this.target =3D =
this.target.parentNode;
		this.shift =3D event.shiftKey;
		this.control =3D event.ctrlKey;
		this.alt =3D event.altKey;
		this.meta =3D event.metaKey;
		if (['DOMMouseScroll', 'mousewheel'].contains(this.type)){
			this.wheel =3D (event.wheelDelta) ? event.wheelDelta / 120 : =
-(event.detail || 0) / 3;
		} else if (this.type.contains('key')){
			this.code =3D event.which || event.keyCode;
			for (var name in Event.keys){
				if (Event.keys[name] =3D=3D this.code){
					this.key =3D name;
					break;
				}
			}
			if (this.type =3D=3D 'keydown'){
				var fKey =3D this.code - 111;
				if (fKey > 0 && fKey < 13) this.key =3D 'f' + fKey;
			}
			this.key =3D this.key || =
String.fromCharCode(this.code).toLowerCase();
		} else if (this.type.test(/(click|mouse|menu)/)){
			this.page =3D {
				'x': event.pageX || event.clientX + =
document.documentElement.scrollLeft,
				'y': event.pageY || event.clientY + =
document.documentElement.scrollTop
			};
			this.client =3D {
				'x': event.pageX ? event.pageX - window.pageXOffset : event.clientX,
				'y': event.pageY ? event.pageY - window.pageYOffset : event.clientY
			};
			this.rightClick =3D (event.which =3D=3D 3) || (event.button =3D=3D =
2);
			switch(this.type){
				case 'mouseover': this.relatedTarget =3D event.relatedTarget || =
event.fromElement; break;
				case 'mouseout': this.relatedTarget =3D event.relatedTarget || =
event.toElement;
			}
			this.fixRelatedTarget();
		}
		return this;
	},

	/*
	Property: stop
		cross browser method to stop an event
	*/

	stop: function(){
		return this.stopPropagation().preventDefault();
	},

	/*
	Property: stopPropagation
		cross browser method to stop the propagation of an event
	*/

	stopPropagation: function(){
		if (this.event.stopPropagation) this.event.stopPropagation();
		else this.event.cancelBubble =3D true;
		return this;
	},

	/*
	Property: preventDefault
		cross browser method to prevent the default action of the event
	*/

	preventDefault: function(){
		if (this.event.preventDefault) this.event.preventDefault();
		else this.event.returnValue =3D false;
		return this;
	}

});

Event.fix =3D {

	relatedTarget: function(){
		if (this.relatedTarget && this.relatedTarget.nodeType =3D=3D 3) =
this.relatedTarget =3D this.relatedTarget.parentNode;
	},

	relatedTargetGecko: function(){
		try {Event.fix.relatedTarget.call(this);} catch(e){this.relatedTarget =
=3D this.target;}
	}

};

Event.prototype.fixRelatedTarget =3D (window.gecko) ? =
Event.fix.relatedTargetGecko : Event.fix.relatedTarget;

/*
Property: keys
	you can add additional Event keys codes this way:

Example:
	(start code)
	Event.keys.whatever =3D 80;
	$(myelement).addEvent(keydown, function(event){
		event =3D new Event(event);
		if (event.key =3D=3D 'whatever') console.log(whatever key clicked).
	});
	(end)
*/

Event.keys =3D new Abstract({
	'enter': 13,
	'up': 38,
	'down': 40,
	'left': 37,
	'right': 39,
	'esc': 27,
	'space': 32,
	'backspace': 8,
	'tab': 9,
	'delete': 46
});

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.Methods.Events =3D {

	/*
	Property: addEvent
		Attaches an event listener to a DOM element.

	Arguments:
		type - the event to monitor ('click', 'load', etc) without the prefix =
'on'.
		fn - the function to execute

	Example:
		>$('myElement').addEvent('click', function(){alert('clicked!')});
	*/

	addEvent: function(type, fn){
		this.$events =3D this.$events || {};
		this.$events[type] =3D this.$events[type] || {'keys': [], 'values': =
[]};
		if (this.$events[type].keys.contains(fn)) return this;
		this.$events[type].keys.push(fn);
		var realType =3D type;
		var custom =3D Element.Events[type];
		if (custom){
			if (custom.add) custom.add.call(this, fn);
			if (custom.map) fn =3D custom.map;
			if (custom.type) realType =3D custom.type;
		}
		if (!this.addEventListener) fn =3D fn.create({'bind': this, 'event': =
true});
		this.$events[type].values.push(fn);
		return (Element.NativeEvents.contains(realType)) ? =
this.addListener(realType, fn) : this;
	},

	/*
	Property: removeEvent
		Works as Element.addEvent, but instead removes the previously added =
event listener.
	*/

	removeEvent: function(type, fn){
		if (!this.$events || !this.$events[type]) return this;
		var pos =3D this.$events[type].keys.indexOf(fn);
		if (pos =3D=3D -1) return this;
		var key =3D this.$events[type].keys.splice(pos,1)[0];
		var value =3D this.$events[type].values.splice(pos,1)[0];
		var custom =3D Element.Events[type];
		if (custom){
			if (custom.remove) custom.remove.call(this, fn);
			if (custom.type) type =3D custom.type;
		}
		return (Element.NativeEvents.contains(type)) ? =
this.removeListener(type, value) : this;
	},

	/*
	Property: addEvents
		As <addEvent>, but accepts an object and add multiple events at once.
	*/

	addEvents: function(source){
		return Element.setMany(this, 'addEvent', source);
	},

	/*
	Property: removeEvents
		removes all events of a certain type from an element. if no argument =
is passed in, removes all events.

	Arguments:
		type - string; the event name (e.g. 'click')
	*/

	removeEvents: function(type){
		if (!this.$events) return this;
		if (!type){
			for (var evType in this.$events) this.removeEvents(evType);
			this.$events =3D null;
		} else if (this.$events[type]){
			this.$events[type].keys.each(function(fn){
				this.removeEvent(type, fn);
			}, this);
			this.$events[type] =3D null;
		}
		return this;
	},

	/*
	Property: fireEvent
		executes all events of the specified type present in the element.

	Arguments:
		type - string; the event name (e.g. 'click')
		args - array or single object; arguments to pass to the function; if =
more than one argument, must be an array
		delay - (integer) delay (in ms) to wait to execute the event
	*/

	fireEvent: function(type, args, delay){
		if (this.$events && this.$events[type]){
			this.$events[type].keys.each(function(fn){
				fn.create({'bind': this, 'delay': delay, 'arguments': args})();
			}, this);
		}
		return this;
	},

	/*
	Property: cloneEvents
		Clones all events from an element to this element.

	Arguments:
		from - element, copy all events from this element
		type - optional, copies only events of this type
	*/

	cloneEvents: function(from, type){
		if (!from.$events) return this;
		if (!type){
			for (var evType in from.$events) this.cloneEvents(from, evType);
		} else if (from.$events[type]){
			from.$events[type].keys.each(function(fn){
				this.addEvent(type, fn);
			}, this);
		}
		return this;
	}

};

window.extend(Element.Methods.Events);
document.extend(Element.Methods.Events);
Element.extend(Element.Methods.Events);

/* Section: Custom Events */

Element.Events =3D new Abstract({

	/*
	Event: mouseenter
		In addition to the standard javascript events (load, mouseover, =
mouseout, click, etc.) <Event.js> contains two custom events
		this event fires when the mouse enters the area of the dom element; =
will not be fired again if the mouse crosses over children of the =
element (unlike mouseover)


	Example:
		>$(myElement).addEvent('mouseenter', myFunction);
	*/

	'mouseenter': {
		type: 'mouseover',
		map: function(event){
			event =3D new Event(event);
			if (event.relatedTarget !=3D this && =
!this.hasChild(event.relatedTarget)) this.fireEvent('mouseenter', =
event);
		}
	},

	/*
	Event: mouseleave
		this event fires when the mouse exits the area of the dom element; =
will not be fired again if the mouse crosses over children of the =
element (unlike mouseout)


	Example:
		>$(myElement).addEvent('mouseleave', myFunction);
	*/

	'mouseleave': {
		type: 'mouseout',
		map: function(event){
			event =3D new Event(event);
			if (event.relatedTarget !=3D this && =
!this.hasChild(event.relatedTarget)) this.fireEvent('mouseleave', =
event);
		}
	},

	'mousewheel': {
		type: (window.gecko) ? 'DOMMouseScroll' : 'mousewheel'
	}

});

Element.NativeEvents =3D [
	'click', 'dblclick', 'mouseup', 'mousedown', //mouse buttons
	'mousewheel', 'DOMMouseScroll', //mouse wheel
	'mouseover', 'mouseout', 'mousemove', //mouse movement
	'keydown', 'keypress', 'keyup', //keys
	'load', 'unload', 'beforeunload', 'resize', 'move', //window
	'focus', 'blur', 'change', 'submit', 'reset', 'select', //forms =
elements
	'error', 'abort', 'contextmenu', 'scroll' //misc
];

/*
Class: Function
	A collection of The Function Object prototype methods.
*/

Function.extend({

	/*
	Property: bindWithEvent
		automatically passes MooTools Event Class.

	Arguments:
		bind - optional, the object that the "this" of the function will refer =
to.
		args - optional, an argument to pass to the function; if more than one =
argument, it must be an array of arguments.

	Returns:
		a function with the parameter bind as its "this" and as a pre-passed =
argument event or window.event, depending on the browser.

	Example:
		>function myFunction(event){
		>	alert(event.client.x) //returns the coordinates of the mouse..
		>};
		>myElement.addEvent('click', myFunction.bindWithEvent(myElement));
	*/

	bindWithEvent: function(bind, args){
		return this.create({'bind': bind, 'arguments': args, 'event': Event});
	}

});


/*
Script: Element.Filters.js
	add Filters capability to <Elements>.

License:
	MIT-style license.
*/

/*
Class: Elements
	A collection of methods to be used with <$$> elements collections.
*/

Elements.extend({
=09
	/*
	Property: filterByTag
		Filters the collection by a specified tag name.
		Returns a new Elements collection, while the original remains =
untouched.
	*/
=09
	filterByTag: function(tag){
		return new Elements(this.filter(function(el){
			return (Element.getTag(el) =3D=3D tag);
		}));
	},
=09
	/*
	Property: filterByClass
		Filters the collection by a specified class name.
		Returns a new Elements collection, while the original remains =
untouched.
	*/
=09
	filterByClass: function(className, nocash){
		var elements =3D this.filter(function(el){
			return (el.className && el.className.contains(className, ' '));
		});
		return (nocash) ? elements : new Elements(elements);
	},
=09
	/*
	Property: filterById
		Filters the collection by a specified ID.
		Returns a new Elements collection, while the original remains =
untouched.
	*/
=09
	filterById: function(id, nocash){
		var elements =3D this.filter(function(el){
			return (el.id =3D=3D id);
		});
		return (nocash) ? elements : new Elements(elements);
	},
=09
	/*
	Property: filterByAttribute
		Filters the collection by a specified attribute.
		Returns a new Elements collection, while the original remains =
untouched.
	=09
	Arguments:
		name - the attribute name.
		operator - optional, the attribute operator.
		value - optional, the attribute value, only valid if the operator is =
specified.
	*/
=09
	filterByAttribute: function(name, operator, value, nocash){
		var elements =3D this.filter(function(el){
			var current =3D Element.getProperty(el, name);
			if (!current) return false;
			if (!operator) return true;
			switch(operator){
				case '=3D': return (current =3D=3D value);
				case '*=3D': return (current.contains(value));
				case '^=3D': return (current.substr(0, value.length) =3D=3D value);
				case '$=3D': return (current.substr(current.length - value.length) =
=3D=3D value);
				case '!=3D': return (current !=3D value);
				case '~=3D': return current.contains(value, ' ');
			}
			return false;
		});
		return (nocash) ? elements : new Elements(elements);
	}

});

/*
Script: Element.Selectors.js
	Css Query related functions and <Element> extensions

License:
	MIT-style license.
*/

/* Section: Utility Functions */

/*
Function: $E
	Selects a single (i.e. the first found) Element based on the selector =
passed in and an optional filter element.
	Returns as <Element>.

Arguments:
	selector - string; the css selector to match
	filter - optional; a DOM element to limit the scope of the selector =
match; defaults to document.

Example:
	>$E('a', 'myElement') //find the first anchor tag inside the DOM =
element with id 'myElement'

Returns:
	a DOM element - the first element that matches the selector
*/

function $E(selector, filter){
	return ($(filter) || document).getElement(selector);
};

/*
Function: $ES
	Returns a collection of Elements that match the selector passed in =
limited to the scope of the optional filter.
	See Also: <Element.getElements> for an alternate syntax.
	Returns as <Elements>.

Returns:
	an array of dom elements that match the selector within the filter

Arguments:
	selector - string; css selector to match
	filter - optional; a DOM element to limit the scope of the selector =
match; defaults to document.

Examples:
	>$ES("a") //gets all the anchor tags; synonymous with $$("a")
	>$ES('a','myElement') //get all the anchor tags within $('myElement')
*/

function $ES(selector, filter){
	return ($(filter) || document).getElementsBySelector(selector);
};

$$.shared =3D {

	'regexp': =
/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=3D)["']?([^"'\]]=
*)["']?)?])?$/,
=09
	'xpath': {

		getParam: function(items, context, param, i){
			var temp =3D [context.namespaceURI ? 'xhtml:' : '', param[1]];
			if (param[2]) temp.push('[@id=3D"', param[2], '"]');
			if (param[3]) temp.push('[contains(concat(" ", @class, " "), " ', =
param[3], ' ")]');
			if (param[4]){
				if (param[5] && param[6]){
					switch(param[5]){
						case '*=3D': temp.push('[contains(@', param[4], ', "', param[6], =
'")]'); break;
						case '^=3D': temp.push('[starts-with(@', param[4], ', "', =
param[6], '")]'); break;
						case '$=3D': temp.push('[substring(@', param[4], ', =
string-length(@', param[4], ') - ', param[6].length, ' + 1) =3D "', =
param[6], '"]'); break;
						case '=3D': temp.push('[@', param[4], '=3D"', param[6], '"]'); =
break;
						case '!=3D': temp.push('[@', param[4], '!=3D"', param[6], '"]');
					}
				} else {
					temp.push('[@', param[4], ']');
				}
			}
			items.push(temp.join(''));
			return items;
		},
	=09
		getItems: function(items, context, nocash){
			var elements =3D [];
			var xpath =3D document.evaluate('.//' + items.join('//'), context, =
$$.shared.resolver, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
			for (var i =3D 0, j =3D xpath.snapshotLength; i < j; i++) =
elements.push(xpath.snapshotItem(i));
			return (nocash) ? elements : new Elements(elements.map($));
		}

	},
=09
	'normal': {
	=09
		getParam: function(items, context, param, i){
			if (i =3D=3D 0){
				if (param[2]){
					var el =3D context.getElementById(param[2]);
					if (!el || ((param[1] !=3D '*') && (Element.getTag(el) !=3D =
param[1]))) return false;
					items =3D [el];
				} else {
					items =3D $A(context.getElementsByTagName(param[1]));
				}
			} else {
				items =3D $$.shared.getElementsByTagName(items, param[1]);
				if (param[2]) items =3D Elements.filterById(items, param[2], true);
			}
			if (param[3]) items =3D Elements.filterByClass(items, param[3], =
true);
			if (param[4]) items =3D Elements.filterByAttribute(items, param[4], =
param[5], param[6], true);
			return items;
		},

		getItems: function(items, context, nocash){
			return (nocash) ? items : $$.unique(items);
		}

	},

	resolver: function(prefix){
		return (prefix =3D=3D 'xhtml') ? 'http://www.w3.org/1999/xhtml' : =
false;
	},

	getElementsByTagName: function(context, tagName){
		var found =3D [];
		for (var i =3D 0, j =3D context.length; i < j; i++) =
found.extend(context[i].getElementsByTagName(tagName));
		return found;
	}

};

$$.shared.method =3D (window.xpath) ? 'xpath' : 'normal';

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.Methods.Dom =3D {

	/*
	Property: getElements
		Gets all the elements within an element that match the given (single) =
selector.
		Returns as <Elements>.

	Arguments:
		selector - string; the css selector to match

	Examples:
		>$('myElement').getElements('a'); // get all anchors within myElement
		>$('myElement').getElements('input[name=3Ddialog]') //get all input =
tags with name 'dialog'
		>$('myElement').getElements('input[name$=3Dlog]') //get all input tags =
with names ending with 'log'

	Notes:
		Supports these operators in attribute selectors:

		- =3D : is equal to
		- ^=3D : starts-with
		- $=3D : ends-with
		- !=3D : is not equal to

		Xpath is used automatically for compliant browsers.
	*/

	getElements: function(selector, nocash){
		var items =3D [];
		selector =3D selector.trim().split(' ');
		for (var i =3D 0, j =3D selector.length; i < j; i++){
			var sel =3D selector[i];
			var param =3D sel.match($$.shared.regexp);
			if (!param) break;
			param[1] =3D param[1] || '*';
			var temp =3D $$.shared[$$.shared.method].getParam(items, this, param, =
i);
			if (!temp) break;
			items =3D temp;
		}
		return $$.shared[$$.shared.method].getItems(items, this, nocash);
	},

	/*
	Property: getElement
		Same as <Element.getElements>, but returns only the first. Alternate =
syntax for <$E>, where filter is the Element.
		Returns as <Element>.

	Arguments:
		selector - string; css selector
	*/

	getElement: function(selector){
		return $(this.getElements(selector, true)[0] || false);
	},

	/*
	Property: getElementsBySelector
		Same as <Element.getElements>, but allows for comma separated =
selectors, as in css. Alternate syntax for <$$>, where filter is the =
Element.
		Returns as <Elements>.

	Arguments:
		selector - string; css selector
	*/

	getElementsBySelector: function(selector, nocash){
		var elements =3D [];
		selector =3D selector.split(',');
		for (var i =3D 0, j =3D selector.length; i < j; i++) elements =3D =
elements.concat(this.getElements(selector[i], true));
		return (nocash) ? elements : $$.unique(elements);
	}

};

Element.extend({

	/*
	Property: getElementById
		Targets an element with the specified id found inside the Element. =
Does not overwrite document.getElementById.

	Arguments:
		id - string; the id of the element to find.
	*/

	getElementById: function(id){
		var el =3D document.getElementById(id);
		if (!el) return false;
		for (var parent =3D el.parentNode; parent !=3D this; parent =3D =
parent.parentNode){
			if (!parent) return false;
		}
		return el;
	}/*compatibility*/,
=09
	getElementsByClassName: function(className){=20
		return this.getElements('.' + className);=20
	}
=09
	/*end compatibility*/

});

document.extend(Element.Methods.Dom);
Element.extend(Element.Methods.Dom);

/*
Script: Element.Form.js
	Contains Element prototypes to deal with Forms and their elements.

License:
	MIT-style license.
*/

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: getValue
		Returns the value of the Element, if its tag is textarea, select or =
input. getValue called on a multiple select will return an array.
	*/

	getValue: function(){
		switch(this.getTag()){
			case 'select':
				var values =3D [];
				$each(this.options, function(option){
					if (option.selected) values.push($pick(option.value, option.text));
				});
				return (this.multiple) ? values : values[0];
			case 'input': if (!(this.checked && ['checkbox', =
'radio'].contains(this.type)) && !['hidden', 'text', =
'password'].contains(this.type)) break;
			case 'textarea': return this.value;
		}
		return false;
	},

	getFormElements: function(){
		return $$(this.getElementsByTagName('input'), =
this.getElementsByTagName('select'), =
this.getElementsByTagName('textarea'));
	},

	/*
	Property: toQueryString
		Reads the children inputs of the Element and generates a query string, =
based on their values. Used internally in <Ajax>

	Example:
		(start code)
		<form id=3D"myForm" action=3D"submit.php">
		<input name=3D"email" value=3D"bob@bob.com">
		<input name=3D"zipCode" value=3D"90210">
		</form>

		<script>
		 $('myForm').toQueryString()
		</script>
		(end)

		Returns:
			email=3Dbob@bob.com&zipCode=3D90210
	*/

	toQueryString: function(){
		var queryString =3D [];
		this.getFormElements().each(function(el){
			var name =3D el.name;
			var value =3D el.getValue();
			if (value =3D=3D=3D false || !name || el.disabled) return;
			var qs =3D function(val){
				queryString.push(name + '=3D' + encodeURIComponent(val));
			};
			if ($type(value) =3D=3D 'array') value.each(qs);
			else qs(value);
		});
		return queryString.join('&');
	}

});

/*
Script: Element.Dimensions.js
	Contains Element prototypes to deal with Element size and position in =
space.

Note:
	The functions in this script require n XHTML doctype.

License:
	MIT-style license.
*/

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: scrollTo
		Scrolls the element to the specified coordinated (if the element has =
an overflow)

	Arguments:
		x - the x coordinate
		y - the y coordinate

	Example:
		>$('myElement').scrollTo(0, 100)
	*/

	scrollTo: function(x, y){
		this.scrollLeft =3D x;
		this.scrollTop =3D y;
	},

	/*
	Property: getSize
		Return an Object representing the size/scroll values of the element.

	Example:
		(start code)
		$('myElement').getSize();
		(end)

	Returns:
		(start code)
		{
			'scroll': {'x': 100, 'y': 100},
			'size': {'x': 200, 'y': 400},
			'scrollSize': {'x': 300, 'y': 500}
		}
		(end)
	*/

	getSize: function(){
		return {
			'scroll': {'x': this.scrollLeft, 'y': this.scrollTop},
			'size': {'x': this.offsetWidth, 'y': this.offsetHeight},
			'scrollSize': {'x': this.scrollWidth, 'y': this.scrollHeight}
		};
	},

	/*
	Property: getPosition
		Returns the real offsets of the element.

	Arguments:
		overflown - optional, an array of nested scrolling containers for =
scroll offset calculation, use this if your element is inside any =
element containing scrollbars

	Example:
		>$('element').getPosition();

	Returns:
		>{x: 100, y:500};
	*/

	getPosition: function(overflown){
		overflown =3D overflown || [];
		var el =3D this, left =3D 0, top =3D 0;
		do {
			left +=3D el.offsetLeft || 0;
			top +=3D el.offsetTop || 0;
			el =3D el.offsetParent;
		} while (el);
		overflown.each(function(element){
			left -=3D element.scrollLeft || 0;
			top -=3D element.scrollTop || 0;
		});
		return {'x': left, 'y': top};
	},

	/*
	Property: getTop
		Returns the distance from the top of the window to the Element.

	Arguments:
		overflown - optional, an array of nested scrolling containers, see =
Element::getPosition
	*/

	getTop: function(overflown){
		return this.getPosition(overflown).y;
	},

	/*
	Property: getLeft
		Returns the distance from the left of the window to the Element.

	Arguments:
		overflown - optional, an array of nested scrolling containers, see =
Element::getPosition
	*/

	getLeft: function(overflown){
		return this.getPosition(overflown).x;
	},

	/*
	Property: getCoordinates
		Returns an object with width, height, left, right, top, and bottom, =
representing the values of the Element

	Arguments:
		overflown - optional, an array of nested scrolling containers, see =
Element::getPosition

	Example:
		(start code)
		var myValues =3D $('myElement').getCoordinates();
		(end)

	Returns:
		(start code)
		{
			width: 200,
			height: 300,
			left: 100,
			top: 50,
			right: 300,
			bottom: 350
		}
		(end)
	*/

	getCoordinates: function(overflown){
		var position =3D this.getPosition(overflown);
		var obj =3D {
			'width': this.offsetWidth,
			'height': this.offsetHeight,
			'left': position.x,
			'top': position.y
		};
		obj.right =3D obj.left + obj.width;
		obj.bottom =3D obj.top + obj.height;
		return obj;
	}

});

/*
Script: Window.DomReady.js
	Contains the custom event domready, for window.

License:
	MIT-style license.
*/

/* Section: Custom Events */

/*
Event: domready
	executes a function when the dom tree is loaded, without waiting for =
images. Only works when called from window.

Credits:
	(c) Dean Edwards/Matthias Miller/John Resig, remastered for MooTools.

Arguments:
	fn - the function to execute when the DOM is ready

Example:
	> window.addEvent('domready', function(){
	>	alert('the dom is ready');
	> });
*/

Element.Events.domready =3D {

	add: function(fn){
		if (window.loaded){
			fn.call(this);
			return;
		}
		var domReady =3D function(){
			if (window.loaded) return;
			window.loaded =3D true;
			window.timer =3D $clear(window.timer);
			this.fireEvent('domready');
		}.bind(this);
		if (document.readyState && window.webkit){
			window.timer =3D function(){
				if (['loaded','complete'].contains(document.readyState)) domReady();
			}.periodical(50);
		} else if (document.readyState && window.ie){
			if (!$('ie_ready')){
				var src =3D (window.location.protocol =3D=3D 'https:') ? '://0' : =
'javascript:void(0)';
				document.write('<script id=3D"ie_ready" defer src=3D"' + src + =
'"><\/script>');
				$('ie_ready').onreadystatechange =3D function(){
					if (this.readyState =3D=3D 'complete') domReady();
				};
			}
		} else {
			window.addListener("load", domReady);
			document.addListener("DOMContentLoaded", domReady);
		}
	}

};

/*compatibility*/

window.onDomReady =3D function(fn){=20
	return this.addEvent('domready', fn);=20
};

/*end compatibility*/

/*
Script: Window.Size.js
	Window cross-browser dimensions methods.
=09
Note:
	The Functions in this script require an XHTML doctype.

License:
	MIT-style license.
*/

/*
Class: window
	Cross browser methods to get various window dimensions.
	Warning: All these methods require that the browser operates in strict =
mode, not quirks mode.
*/

window.extend({

	/*
	Property: getWidth
		Returns an integer representing the width of the browser window =
(without the scrollbar).
	*/

	getWidth: function(){
		if (this.webkit419) return this.innerWidth;
		if (this.opera) return document.body.clientWidth;
		return document.documentElement.clientWidth;
	},

	/*
	Property: getHeight
		Returns an integer representing the height of the browser window =
(without the scrollbar).
	*/

	getHeight: function(){
		if (this.webkit419) return this.innerHeight;
		if (this.opera) return document.body.clientHeight;
		return document.documentElement.clientHeight;
	},

	/*
	Property: getScrollWidth
		Returns an integer representing the scrollWidth of the window.
		This value is equal to or bigger than <getWidth>.

	See Also:
		<http://developer.mozilla.org/en/docs/DOM:element.scrollWidth>
	*/

	getScrollWidth: function(){
		if (this.ie) return Math.max(document.documentElement.offsetWidth, =
document.documentElement.scrollWidth);
		if (this.webkit) return document.body.scrollWidth;
		return document.documentElement.scrollWidth;
	},

	/*
	Property: getScrollHeight
		Returns an integer representing the scrollHeight of the window.
		This value is equal to or bigger than <getHeight>.

	See Also:
		<http://developer.mozilla.org/en/docs/DOM:element.scrollHeight>
	*/

	getScrollHeight: function(){
		if (this.ie) return Math.max(document.documentElement.offsetHeight, =
document.documentElement.scrollHeight);
		if (this.webkit) return document.body.scrollHeight;
		return document.documentElement.scrollHeight;
	},

	/*
	Property: getScrollLeft
		Returns an integer representing the scrollLeft of the window (the =
number of pixels the window has scrolled from the left).

	See Also:
		<http://developer.mozilla.org/en/docs/DOM:element.scrollLeft>
	*/

	getScrollLeft: function(){
		return this.pageXOffset || document.documentElement.scrollLeft;
	},

	/*
	Property: getScrollTop
		Returns an integer representing the scrollTop of the window (the =
number of pixels the window has scrolled from the top).

	See Also:
		<http://developer.mozilla.org/en/docs/DOM:element.scrollTop>
	*/

	getScrollTop: function(){
		return this.pageYOffset || document.documentElement.scrollTop;
	},

	/*
	Property: getSize
		Same as <Element.getSize>
	*/

	getSize: function(){
		return {
			'size': {'x': this.getWidth(), 'y': this.getHeight()},
			'scrollSize': {'x': this.getScrollWidth(), 'y': =
this.getScrollHeight()},
			'scroll': {'x': this.getScrollLeft(), 'y': this.getScrollTop()}
		};
	},

	//ignore
	getPosition: function(){return {'x': 0, 'y': 0};}

});

/*
Script: Fx.Base.js
	Contains <Fx.Base>, the foundamentals of the MooTools Effects.

License:
	MIT-style license.
*/

var Fx =3D {};

/*
Class: Fx.Base
	Base class for the Effects.

Options:
	transition - the equation to use for the effect see <Fx.Transitions>; =
default is <Fx.Transitions.Sine.easeInOut>
	duration - the duration of the effect in ms; 500 is the default.
	unit - the unit is 'px' by default (other values include things like =
'em' for fonts or '%').
	wait - boolean: to wait or not to wait for a current transition to end =
before running another of the same instance. defaults to true.
	fps - the frames per second for the transition; default is 50
=09
Events:
	onStart - the function to execute as the effect begins; nothing =
(<Class.empty>) by default.
	onComplete - the function to execute after the effect has processed; =
nothing (<Class.empty>) by default.
	onCancel - the function to execute when you manually stop the effect.
*/

Fx.Base =3D new Class({

	options: {
		onStart: Class.empty,
		onComplete: Class.empty,
		onCancel: Class.empty,
		transition: function(p){
			return -(Math.cos(Math.PI * p) - 1) / 2;
		},
		duration: 500,
		unit: 'px',
		wait: true,
		fps: 50
	},

	initialize: function(options){
		this.element =3D this.element || null;
		this.setOptions(options);
		if (this.options.initialize) this.options.initialize.call(this);
	},

	step: function(){
		var time =3D $time();
		if (time < this.time + this.options.duration){
			this.delta =3D this.options.transition((time - this.time) / =
this.options.duration);
			this.setNow();
			this.increase();
		} else {
			this.stop(true);
			this.set(this.to);
			this.fireEvent('onComplete', this.element, 10);
			this.callChain();
		}
	},

	/*
	Property: set
		Immediately sets the value with no transition.

	Arguments:
		to - the point to jump to

	Example:
		>var myFx =3D new Fx.Style('myElement', 'opacity').set(0); //will make =
it immediately transparent
	*/

	set: function(to){
		this.now =3D to;
		this.increase();
		return this;
	},

	setNow: function(){
		this.now =3D this.compute(this.from, this.to);
	},

	compute: function(from, to){
		return (to - from) * this.delta + from;
	},

	/*
	Property: start
		Executes an effect from one position to the other.

	Arguments:
		from - integer: staring value
		to - integer: the ending value

	Examples:
		>var myFx =3D new Fx.Style('myElement', 'opacity').start(0,1); =
//display a transition from transparent to opaque.
	*/

	start: function(from, to){
		if (!this.options.wait) this.stop();
		else if (this.timer) return this;
		this.from =3D from;
		this.to =3D to;
		this.change =3D this.to - this.from;
		this.time =3D $time();
		this.timer =3D this.step.periodical(Math.round(1000 / =
this.options.fps), this);
		this.fireEvent('onStart', this.element);
		return this;
	},

	/*
	Property: stop
		Stops the transition.
	*/

	stop: function(end){
		if (!this.timer) return this;
		this.timer =3D $clear(this.timer);
		if (!end) this.fireEvent('onCancel', this.element);
		return this;
	}/*compatibility*/,
=09
	custom: function(from, to){
		return this.start(from, to);
	},

	clearTimer: function(end){
		return this.stop(end);
	}

	/*end compatibility*/

});

Fx.Base.implement(new Chain, new Events, new Options);

/*
Script: Fx.CSS.js
	Css parsing class for effects. Required by <Fx.Style>, <Fx.Styles>, =
<Fx.Elements>. No documentation needed, as its used internally.

License:
	MIT-style license.
*/

Fx.CSS =3D {

	select: function(property, to){
		if (property.test(/color/i)) return this.Color;
		var type =3D $type(to);
		if ((type =3D=3D 'array') || (type =3D=3D 'string' && to.contains(' =
'))) return this.Multi;
		return this.Single;
	},

	parse: function(el, property, fromTo){
		if (!fromTo.push) fromTo =3D [fromTo];
		var from =3D fromTo[0], to =3D fromTo[1];
		if (!$chk(to)){
			to =3D from;
			from =3D el.getStyle(property);
		}
		var css =3D this.select(property, to);
		return {'from': css.parse(from), 'to': css.parse(to), 'css': css};
	}

};

Fx.CSS.Single =3D {

	parse: function(value){
		return parseFloat(value);
	},

	getNow: function(from, to, fx){
		return fx.compute(from, to);
	},

	getValue: function(value, unit, property){
		if (unit =3D=3D 'px' && property !=3D 'opacity') value =3D =
Math.round(value);
		return value + unit;
	}

};

Fx.CSS.Multi =3D {

	parse: function(value){
		return value.push ? value : value.split(' ').map(function(v){
			return parseFloat(v);
		});
	},

	getNow: function(from, to, fx){
		var now =3D [];
		for (var i =3D 0; i < from.length; i++) now[i] =3D fx.compute(from[i], =
to[i]);
		return now;
	},

	getValue: function(value, unit, property){
		if (unit =3D=3D 'px' && property !=3D 'opacity') value =3D =
value.map(Math.round);
		return value.join(unit + ' ') + unit;
	}

};

Fx.CSS.Color =3D {

	parse: function(value){
		return value.push ? value : value.hexToRgb(true);
	},

	getNow: function(from, to, fx){
		var now =3D [];
		for (var i =3D 0; i < from.length; i++) now[i] =3D =
Math.round(fx.compute(from[i], to[i]));
		return now;
	},

	getValue: function(value){
		return 'rgb(' + value.join(',') + ')';
	}

};

/*
Script: Fx.Style.js
	Contains <Fx.Style>

License:
	MIT-style license.
*/

/*
Class: Fx.Style
	The Style effect, used to transition any css property from one value to =
another. Includes colors.
	Colors must be in hex format.
	Inherits methods, properties, options and events from <Fx.Base>.

Arguments:
	el - the $(element) to apply the style transition to
	property - the property to transition
	options - the Fx.Base options (see: <Fx.Base>)

Example:
	>var marginChange =3D new Fx.Style('myElement', 'margin-top', =
{duration:500});
	>marginChange.start(10, 100);
*/

Fx.Style =3D Fx.Base.extend({

	initialize: function(el, property, options){
		this.element =3D $(el);
		this.property =3D property;
		this.parent(options);
	},

	/*
	Property: hide
		Same as <Fx.Base.set> (0); hides the element immediately without =
transition.
	*/

	hide: function(){
		return this.set(0);
	},

	setNow: function(){
		this.now =3D this.css.getNow(this.from, this.to, this);
	},

	/*
	Property: set
		Sets the element's css property (specified at instantiation) to the =
specified value immediately.

	Example:
		(start code)
		var marginChange =3D new Fx.Style('myElement', 'margin-top', =
{duration:500});
		marginChange.set(10); //margin-top is set to 10px immediately
		(end)
	*/

	set: function(to){
		this.css =3D Fx.CSS.select(this.property, to);
		return this.parent(this.css.parse(to));
	},

	/*
	Property: start
		Displays the transition to the value/values passed in

	Arguments:
		from - (integer; optional) the starting position for the transition
		to - (integer) the ending position for the transition

	Note:
		If you provide only one argument, the transition will use the current =
css value for its starting value.

	Example:
		(start code)
		var marginChange =3D new Fx.Style('myElement', 'margin-top', =
{duration:500});
		marginChange.start(10); //tries to read current margin top value and =
goes from current to 10
		(end)
	*/

	start: function(from, to){
		if (this.timer && this.options.wait) return this;
		var parsed =3D Fx.CSS.parse(this.element, this.property, [from, to]);
		this.css =3D parsed.css;
		return this.parent(parsed.from, parsed.to);
	},

	increase: function(){
		this.element.setStyle(this.property, this.css.getValue(this.now, =
this.options.unit, this.property));
	}

});

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: effect
		Applies an <Fx.Style> to the Element; This a shortcut for <Fx.Style>.

	Arguments:
		property - (string) the css property to alter
		options - (object; optional) key/value set of options (see <Fx.Style>)

	Example:
		>var myEffect =3D $('myElement').effect('height', {duration: 1000, =
transition: Fx.Transitions.linear});
		>myEffect.start(10, 100);
		>//OR
		>$('myElement').effect('height', {duration: 1000, transition: =
Fx.Transitions.linear}).start(10,100);
	*/

	effect: function(property, options){
		return new Fx.Style(this, property, options);
	}

});

/*
Script: Fx.Styles.js
	Contains <Fx.Styles>

License:
	MIT-style license.
*/

/*
Class: Fx.Styles
	Allows you to animate multiple css properties at once;
	Colors must be in hex format.
	Inherits methods, properties, options and events from <Fx.Base>.

Arguments:
	el - the $(element) to apply the styles transition to
	options - the fx options (see: <Fx.Base>)

Example:
	(start code)
	var myEffects =3D new Fx.Styles('myElement', {duration: 1000, =
transition: Fx.Transitions.linear});

	//height from 10 to 100 and width from 900 to 300
	myEffects.start({
		'height': [10, 100],
		'width': [900, 300]
	});

	//or height from current height to 100 and width from current width to =
300
	myEffects.start({
		'height': 100,
		'width': 300
	});
	(end)
*/

Fx.Styles =3D Fx.Base.extend({

	initialize: function(el, options){
		this.element =3D $(el);
		this.parent(options);
	},

	setNow: function(){
		for (var p in this.from) this.now[p] =3D =
this.css[p].getNow(this.from[p], this.to[p], this);
	},

	set: function(to){
		var parsed =3D {};
		this.css =3D {};
		for (var p in to){
			this.css[p] =3D Fx.CSS.select(p, to[p]);
			parsed[p] =3D this.css[p].parse(to[p]);
		}
		return this.parent(parsed);
	},

	/*
	Property: start
		Executes a transition for any number of css properties in tandem.

	Arguments:
		obj - an object containing keys that specify css properties to alter =
and values that specify either the from/to values (as an array) or just =
the end value (an integer).

	Example:
		see <Fx.Styles>
	*/

	start: function(obj){
		if (this.timer && this.options.wait) return this;
		this.now =3D {};
		this.css =3D {};
		var from =3D {}, to =3D {};
		for (var p in obj){
			var parsed =3D Fx.CSS.parse(this.element, p, obj[p]);
			from[p] =3D parsed.from;
			to[p] =3D parsed.to;
			this.css[p] =3D parsed.css;
		}
		return this.parent(from, to);
	},

	increase: function(){
		for (var p in this.now) this.element.setStyle(p, =
this.css[p].getValue(this.now[p], this.options.unit, p));
	}

});

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: effects
		Applies an <Fx.Styles> to the Element; This a shortcut for =
<Fx.Styles>.

	Example:
		>var myEffects =3D $(myElement).effects({duration: 1000, transition: =
Fx.Transitions.Sine.easeInOut});
 		>myEffects.start({'height': [10, 100], 'width': [900, 300]});
	*/

	effects: function(options){
		return new Fx.Styles(this, options);
	}

});

/*
Script: Fx.Elements.js
	Contains <Fx.Elements>

License:
	MIT-style license.
*/

/*
Class: Fx.Elements
	Fx.Elements allows you to apply any number of styles transitions to a =
selection of elements. Includes colors (must be in hex format).
	Inherits methods, properties, options and events from <Fx.Base>.

Arguments:
	elements - a collection of elements the effects will be applied to.
	options - same as <Fx.Base> options.
*/

Fx.Elements =3D Fx.Base.extend({

	initialize: function(elements, options){
		this.elements =3D $$(elements);
		this.parent(options);
	},

	setNow: function(){
		for (var i in this.from){
			var iFrom =3D this.from[i], iTo =3D this.to[i], iCss =3D this.css[i], =
iNow =3D this.now[i] =3D {};
			for (var p in iFrom) iNow[p] =3D iCss[p].getNow(iFrom[p], iTo[p], =
this);
		}
	},

	set: function(to){
		var parsed =3D {};
		this.css =3D {};
		for (var i in to){
			var iTo =3D to[i], iCss =3D this.css[i] =3D {}, iParsed =3D parsed[i] =
=3D {};
			for (var p in iTo){
				iCss[p] =3D Fx.CSS.select(p, iTo[p]);
				iParsed[p] =3D iCss[p].parse(iTo[p]);
			}
		}
		return this.parent(parsed);
	},

	/*
	Property: start
		Applies the passed in style transitions to each object named (see =
example). Each item in the collection is refered to as a numerical =
string ("1" for instance). The first item is "0", the second "1", etc.

	Example:
		(start code)
		var myElementsEffects =3D new Fx.Elements($$('a'));
		myElementsEffects.start({
			'0': { //let's change the first element's opacity and width
				'opacity': [0,1],
				'width': [100,200]
			},
			'4': { //and the fifth one's opacity
				'opacity': [0.2, 0.5]
			}
		});
		(end)
	*/

	start: function(obj){
		if (this.timer && this.options.wait) return this;
		this.now =3D {};
		this.css =3D {};
		var from =3D {}, to =3D {};
		for (var i in obj){
			var iProps =3D obj[i], iFrom =3D from[i] =3D {}, iTo =3D to[i] =3D =
{}, iCss =3D this.css[i] =3D {};
			for (var p in iProps){
				var parsed =3D Fx.CSS.parse(this.elements[i], p, iProps[p]);
				iFrom[p] =3D parsed.from;
				iTo[p] =3D parsed.to;
				iCss[p] =3D parsed.css;
			}
		}
		return this.parent(from, to);
	},

	increase: function(){
		for (var i in this.now){
			var iNow =3D this.now[i], iCss =3D this.css[i];
			for (var p in iNow) this.elements[i].setStyle(p, =
iCss[p].getValue(iNow[p], this.options.unit, p));
		}
	}

});

/*
Script: Fx.Scroll.js
	Contains <Fx.Scroll>

License:
	MIT-style license.
*/

/*
Class: Fx.Scroll
	Scroll any element with an overflow, including the window element.
	Inherits methods, properties, options and events from <Fx.Base>.

Note:
	Fx.Scroll requires an XHTML doctype.

Arguments:
	element - the element to scroll
	options - optional, see Options below.

Options:
	all the Fx.Base options and events, plus:
	offset - the distance for the scrollTo point/element. an Object with =
x/y properties.
	overflown - an array of nested scrolling containers, see =
<Element.getPosition>
*/

Fx.Scroll =3D Fx.Base.extend({

	options: {
		overflown: [],
		offset: {'x': 0, 'y': 0},
		wheelStops: true
	},

	initialize: function(element, options){
		this.now =3D [];
		this.element =3D $(element);
		this.bound =3D {'stop': this.stop.bind(this, false)};
		this.parent(options);
		if (this.options.wheelStops){
			this.addEvent('onStart', function(){
				document.addEvent('mousewheel', this.bound.stop);
			}.bind(this));
			this.addEvent('onComplete', function(){
				document.removeEvent('mousewheel', this.bound.stop);
			}.bind(this));
		}
	},

	setNow: function(){
		for (var i =3D 0; i < 2; i++) this.now[i] =3D =
this.compute(this.from[i], this.to[i]);
	},

	/*
	Property: scrollTo
		Scrolls the chosen element to the x/y coordinates.

	Arguments:
		x - the x coordinate to scroll the element to
		y - the y coordinate to scroll the element to
	*/

	scrollTo: function(x, y){
		if (this.timer && this.options.wait) return this;
		var el =3D this.element.getSize();
		var values =3D {'x': x, 'y': y};
		for (var z in el.size){
			var max =3D el.scrollSize[z] - el.size[z];
			if ($chk(values[z])) values[z] =3D ($type(values[z]) =3D=3D 'number') =
? values[z].limit(0, max) : max;
			else values[z] =3D el.scroll[z];
			values[z] +=3D this.options.offset[z];
		}
		return this.start([el.scroll.x, el.scroll.y], [values.x, values.y]);
	},

	/*
	Property: toTop
		Scrolls the chosen element to its maximum top.
	*/

	toTop: function(){
		return this.scrollTo(false, 0);
	},

	/*
	Property: toBottom
		Scrolls the chosen element to its maximum bottom.
	*/

	toBottom: function(){
		return this.scrollTo(false, 'full');
	},

	/*
	Property: toLeft
		Scrolls the chosen element to its maximum left.
	*/

	toLeft: function(){
		return this.scrollTo(0, false);
	},

	/*
	Property: toRight
		Scrolls the chosen element to its maximum right.
	*/

	toRight: function(){
		return this.scrollTo('full', false);
	},

	/*
	Property: toElement
		Scrolls the specified element to the position the passed in element is =
found.

	Arguments:
		el - the $(element) to scroll the window to
	*/

	toElement: function(el){
		var parent =3D this.element.getPosition(this.options.overflown);
		var target =3D $(el).getPosition(this.options.overflown);
		return this.scrollTo(target.x - parent.x, target.y - parent.y);
	},

	increase: function(){
		this.element.scrollTo(this.now[0], this.now[1]);
	}

});

/*
Script: Fx.Slide.js
	Contains <Fx.Slide>

License:
	MIT-style license.
*/

/*
Class: Fx.Slide
	The slide effect; slides an element in horizontally or vertically, the =
contents will fold inside.
	Inherits methods, properties, options and events from <Fx.Base>.
=09
Note:
	Fx.Slide requires an XHTML doctype.

Options:
	mode - set it to vertical or horizontal. Defaults to vertical.
	options - all the <Fx.Base> options

Example:
	(start code)
	var mySlider =3D new Fx.Slide('myElement', {duration: 500});
	mySlider.toggle() //toggle the slider up and down.
	(end)
*/

Fx.Slide =3D Fx.Base.extend({

	options: {
		mode: 'vertical'
	},

	initialize: function(el, options){
		this.element =3D $(el);
		this.wrapper =3D new Element('div', {'styles': =
$extend(this.element.getStyles('margin'), {'overflow': =
'hidden'})}).injectAfter(this.element).adopt(this.element);
		this.element.setStyle('margin', 0);
		this.setOptions(options);
		this.now =3D [];
		this.parent(this.options);
		this.open =3D true;
		this.addEvent('onComplete', function(){
			this.open =3D (this.now[0] =3D=3D=3D 0);
		});
		if (window.webkit419) this.addEvent('onComplete', function(){
			if (this.open) this.element.remove().inject(this.wrapper);
		});
	},

	setNow: function(){
		for (var i =3D 0; i < 2; i++) this.now[i] =3D =
this.compute(this.from[i], this.to[i]);
	},

	vertical: function(){
		this.margin =3D 'margin-top';
		this.layout =3D 'height';
		this.offset =3D this.element.offsetHeight;
	},

	horizontal: function(){
		this.margin =3D 'margin-left';
		this.layout =3D 'width';
		this.offset =3D this.element.offsetWidth;
	},

	/*
	Property: slideIn
		Slides the elements in view horizontally or vertically.

	Arguments:
		mode - (optional, string) 'horizontal' or 'vertical'; defaults to =
options.mode.
	*/

	slideIn: function(mode){
		this[mode || this.options.mode]();
		return this.start([this.element.getStyle(this.margin).toInt(), =
this.wrapper.getStyle(this.layout).toInt()], [0, this.offset]);
	},

	/*
	Property: slideOut
		Sides the elements out of view horizontally or vertically.

	Arguments:
		mode - (optional, string) 'horizontal' or 'vertical'; defaults to =
options.mode.
	*/

	slideOut: function(mode){
		this[mode || this.options.mode]();
		return this.start([this.element.getStyle(this.margin).toInt(), =
this.wrapper.getStyle(this.layout).toInt()], [-this.offset, 0]);
	},

	/*
	Property: hide
		Hides the element without a transition.

	Arguments:
		mode - (optional, string) 'horizontal' or 'vertical'; defaults to =
options.mode.
	*/

	hide: function(mode){
		this[mode || this.options.mode]();
		this.open =3D false;
		return this.set([-this.offset, 0]);
	},

	/*
	Property: show
		Shows the element without a transition.

	Arguments:
		mode - (optional, string) 'horizontal' or 'vertical'; defaults to =
options.mode.
	*/

	show: function(mode){
		this[mode || this.options.mode]();
		this.open =3D true;
		return this.set([0, this.offset]);
	},

	/*
	Property: toggle
		Slides in or Out the element, depending on its state

	Arguments:
		mode - (optional, string) 'horizontal' or 'vertical'; defaults to =
options.mode.

	*/

	toggle: function(mode){
		if (this.wrapper.offsetHeight =3D=3D 0 || this.wrapper.offsetWidth =
=3D=3D 0) return this.slideIn(mode);
		return this.slideOut(mode);
	},

	increase: function(){
		this.element.setStyle(this.margin, this.now[0] + this.options.unit);
		this.wrapper.setStyle(this.layout, this.now[1] + this.options.unit);
	}

});

/*
Script: Fx.Transitions.js
	Effects transitions, to be used with all the effects.

License:
	MIT-style license.

Credits:
	Easing Equations by Robert Penner, =
<http://www.robertpenner.com/easing/>, modified & optimized to be used =
with mootools.
*/

/*
Class: Fx.Transitions
	A collection of tweening transitions for use with the <Fx.Base> =
classes.

Example:
	>//Elastic.easeOut with default values:
	>new Fx.Style('margin', {transition: Fx.Transitions.Elastic.easeOut});
	>//Elastic.easeOut with user-defined value for elasticity.
	> var myTransition =3D new Fx.Transition(Fx.Transitions.Elastic, 3);
	>new Fx.Style('margin', {transition: myTransition.easeOut});

See also:
	http://www.robertpenner.com/easing/
*/

Fx.Transition =3D function(transition, params){
	params =3D params || [];
	if ($type(params) !=3D 'array') params =3D [params];
	return $extend(transition, {
		easeIn: function(pos){
			return transition(pos, params);
		},
		easeOut: function(pos){
			return 1 - transition(1 - pos, params);
		},
		easeInOut: function(pos){
			return (pos <=3D 0.5) ? transition(2 * pos, params) / 2 : (2 - =
transition(2 * (1 - pos), params)) / 2;
		}
	});
};

Fx.Transitions =3D new Abstract({

	/*
	Property: linear
		displays a linear transition.

	Graph:
		(see Linear.png)
	*/

	linear: function(p){
		return p;
	}

});

Fx.Transitions.extend =3D function(transitions){
	for (var transition in transitions){
		Fx.Transitions[transition] =3D new =
Fx.Transition(transitions[transition]);
		/*compatibility*/
		Fx.Transitions.compat(transition);
		/*end compatibility*/
	}
};

/*compatibility*/

Fx.Transitions.compat =3D function(transition){
	['In', 'Out', 'InOut'].each(function(easeType){
		Fx.Transitions[transition.toLowerCase() + easeType] =3D =
Fx.Transitions[transition]['ease' + easeType];
	});
};

/*end compatibility*/

Fx.Transitions.extend({

	/*
	Property: Quad
		displays a quadratic transition. Must be used as Quad.easeIn or =
Quad.easeOut or Quad.easeInOut

	Graph:
		(see Quad.png)
	*/

	//auto generated

	/*
	Property: Cubic
		displays a cubicular transition. Must be used as Cubic.easeIn or =
Cubic.easeOut or Cubic.easeInOut

	Graph:
		(see Cubic.png)
	*/

	//auto generated

	/*
	Property: Quart
		displays a quartetic transition. Must be used as Quart.easeIn or =
Quart.easeOut or Quart.easeInOut

	Graph:
		(see Quart.png)
	*/

	//auto generated

	/*
	Property: Quint
		displays a quintic transition. Must be used as Quint.easeIn or =
Quint.easeOut or Quint.easeInOut

	Graph:
		(see Quint.png)
	*/

	//auto generated

	/*
	Property: Pow
		Used to generate Quad, Cubic, Quart and Quint.
		By default is p^6.

	Graph:
		(see Pow.png)
	*/

	Pow: function(p, x){
		return Math.pow(p, x[0] || 6);
	},

	/*
	Property: Expo
		displays a exponential transition. Must be used as Expo.easeIn or =
Expo.easeOut or Expo.easeInOut

	Graph:
		(see Expo.png)
	*/

	Expo: function(p){
		return Math.pow(2, 8 * (p - 1));
	},

	/*
	Property: Circ
		displays a circular transition. Must be used as Circ.easeIn or =
Circ.easeOut or Circ.easeInOut

	Graph:
		(see Circ.png)
	*/

	Circ: function(p){
		return 1 - Math.sin(Math.acos(p));
	},


	/*
	Property: Sine
		displays a sineousidal transition. Must be used as Sine.easeIn or =
Sine.easeOut or Sine.easeInOut

	Graph:
		(see Sine.png)
	*/

	Sine: function(p){
		return 1 - Math.sin((1 - p) * Math.PI / 2);
	},

	/*
	Property: Back
		makes the transition go back, then all forth. Must be used as =
Back.easeIn or Back.easeOut or Back.easeInOut

	Graph:
		(see Back.png)
	*/

	Back: function(p, x){
		x =3D x[0] || 1.618;
		return Math.pow(p, 2) * ((x + 1) * p - x);
	},

	/*
	Property: Bounce
		makes the transition bouncy. Must be used as Bounce.easeIn or =
Bounce.easeOut or Bounce.easeInOut

	Graph:
		(see Bounce.png)
	*/

	Bounce: function(p){
		var value;
		for (var a =3D 0, b =3D 1; 1; a +=3D b, b /=3D 2){
			if (p >=3D (7 - 4 * a) / 11){
				value =3D - Math.pow((11 - 6 * a - 11 * p) / 4, 2) + b * b;
				break;
			}
		}
		return value;
	},

	/*
	Property: Elastic
		Elastic curve. Must be used as Elastic.easeIn or Elastic.easeOut or =
Elastic.easeInOut

	Graph:
		(see Elastic.png)
	*/

	Elastic: function(p, x){
		return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) =
/ 3);
	}

});

['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){
	Fx.Transitions[transition] =3D new Fx.Transition(function(p){
		return Math.pow(p, [i + 2]);
	});
=09
	/*compatibility*/
	Fx.Transitions.compat(transition);
	/*end compatibility*/
});

/*
Script: Drag.Base.js
	Contains <Drag.Base>, <Element.makeResizable>

License:
	MIT-style license.
*/

var Drag =3D {};

/*
Class: Drag.Base
	Modify two css properties of an element based on the position of the =
mouse.
=09
Note:
	Drag.Base requires an XHTML doctype.

Arguments:
	el - the $(element) to apply the transformations to.
	options - optional. The options object.

Options:
	handle - the $(element) to act as the handle for the draggable element. =
defaults to the $(element) itself.
	modifiers - an object. see Modifiers Below.
	limit - an object, see Limit below.
	grid - optional, distance in px for snap-to-grid dragging
	snap - optional, the distance you have to drag before the element =
starts to respond to the drag. defaults to false

	modifiers:
		x - string, the style you want to modify when the mouse moves in an =
horizontal direction. defaults to 'left'
		y - string, the style you want to modify when the mouse moves in a =
vertical direction. defaults to 'top'

	limit:
		x - array with start and end limit relative to modifiers.x
		y - array with start and end limit relative to modifiers.y
	=09
Events:
	onStart - optional, function to execute when the user starts to drag =
(on mousedown);
	onComplete - optional, function to execute when the user completes the =
drag.
	onDrag - optional, function to execute at every step of the drag
*/

Drag.Base =3D new Class({

	options: {
		handle: false,
		unit: 'px',
		onStart: Class.empty,
		onBeforeStart: Class.empty,
		onComplete: Class.empty,
		onSnap: Class.empty,
		onDrag: Class.empty,
		limit: false,
		modifiers: {x: 'left', y: 'top'},
		grid: false,
		snap: 6
	},

	initialize: function(el, options){
		this.setOptions(options);
		this.element =3D $(el);
		this.handle =3D $(this.options.handle) || this.element;
		this.mouse =3D {'now': {}, 'pos': {}};
		this.value =3D {'start': {}, 'now': {}};
		this.bound =3D {
			'start': this.start.bindWithEvent(this),
			'check': this.check.bindWithEvent(this),
			'drag': this.drag.bindWithEvent(this),
			'stop': this.stop.bind(this)
		};
		this.attach();
		if (this.options.initialize) this.options.initialize.call(this);
	},

	attach: function(){
		this.handle.addEvent('mousedown', this.bound.start);
		return this;
	},

	detach: function(){
		this.handle.removeEvent('mousedown', this.bound.start);
		return this;
	},

	start: function(event){
		this.fireEvent('onBeforeStart', this.element);
		this.mouse.start =3D event.page;
		var limit =3D this.options.limit;
		this.limit =3D {'x': [], 'y': []};
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] =3D =
this.element.getStyle(this.options.modifiers[z]).toInt();
			this.mouse.pos[z] =3D event.page[z] - this.value.now[z];
			if (limit && limit[z]){
				for (var i =3D 0; i < 2; i++){
					if ($chk(limit[z][i])) this.limit[z][i] =3D ($type(limit[z][i]) =
=3D=3D 'function') ? limit[z][i]() : limit[z][i];
				}
			}
		}
		if ($type(this.options.grid) =3D=3D 'number') this.options.grid =3D =
{'x': this.options.grid, 'y': this.options.grid};
		document.addListener('mousemove', this.bound.check);
		document.addListener('mouseup', this.bound.stop);
		this.fireEvent('onStart', this.element);
		event.stop();
	},

	check: function(event){
		var distance =3D Math.round(Math.sqrt(Math.pow(event.page.x - =
this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, =
2)));
		if (distance > this.options.snap){
			document.removeListener('mousemove', this.bound.check);
			document.addListener('mousemove', this.bound.drag);
			this.drag(event);
			this.fireEvent('onSnap', this.element);
		}
		event.stop();
	},

	drag: function(event){
		this.out =3D false;
		this.mouse.now =3D event.page;
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] =3D this.mouse.now[z] - this.mouse.pos[z];
			if (this.limit[z]){
				if ($chk(this.limit[z][1]) && (this.value.now[z] > =
this.limit[z][1])){
					this.value.now[z] =3D this.limit[z][1];
					this.out =3D true;
				} else if ($chk(this.limit[z][0]) && (this.value.now[z] < =
this.limit[z][0])){
					this.value.now[z] =3D this.limit[z][0];
					this.out =3D true;
				}
			}
			if (this.options.grid[z]) this.value.now[z] -=3D (this.value.now[z] % =
this.options.grid[z]);
			this.element.setStyle(this.options.modifiers[z], this.value.now[z] + =
this.options.unit);
		}
		this.fireEvent('onDrag', this.element);
		event.stop();
	},

	stop: function(){
		document.removeListener('mousemove', this.bound.check);
		document.removeListener('mousemove', this.bound.drag);
		document.removeListener('mouseup', this.bound.stop);
		this.fireEvent('onComplete', this.element);
	}

});

Drag.Base.implement(new Events, new Options);

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: makeResizable
		Makes an element resizable (by dragging) with the supplied options.

	Arguments:
		options - see <Drag.Base> for acceptable options.
	*/

	makeResizable: function(options){
		return new Drag.Base(this, $merge({modifiers: {x: 'width', y: =
'height'}}, options));
	}

});

/*
Script: Drag.Move.js
	Contains <Drag.Move>, <Element.makeDraggable>

License:
	MIT-style license.
*/

/*
Class: Drag.Move
	Extends <Drag.Base>, has additional functionality for dragging an =
element, support snapping and droppables.
	Drag.move supports either position absolute or relative. If no position =
is found, absolute will be set.
	Inherits methods, properties, options and events from <Drag.Base>.

Note:
	Drag.Move requires an XHTML doctype.

Arguments:
	el - the $(element) to apply the drag to.
	options - optional. see Options below.

Options:
	all the drag.Base options, plus:
	container - an element, will fill automatically limiting options based =
on the $(element) size and position. defaults to false (no limiting)
	droppables - an array of elements you can drop your draggable to.
	overflown - an array of nested scrolling containers, see =
Element::getPosition
*/

Drag.Move =3D Drag.Base.extend({

	options: {
		droppables: [],
		container: false,
		overflown: []
	},

	initialize: function(el, options){
		this.setOptions(options);
		this.element =3D $(el);
		this.droppables =3D $$(this.options.droppables);
		this.container =3D $(this.options.container);
		this.position =3D {'element': this.element.getStyle('position'), =
'container': false};
		if (this.container) this.position.container =3D =
this.container.getStyle('position');
		if (!['relative', 'absolute', =
'fixed'].contains(this.position.element)) this.position.element =3D =
'absolute';
		var top =3D this.element.getStyle('top').toInt();
		var left =3D this.element.getStyle('left').toInt();
		if (this.position.element =3D=3D 'absolute' && !['relative', =
'absolute', 'fixed'].contains(this.position.container)){
			top =3D $chk(top) ? top : =
this.element.getTop(this.options.overflown);
			left =3D $chk(left) ? left : =
this.element.getLeft(this.options.overflown);
		} else {
			top =3D $chk(top) ? top : 0;
			left =3D $chk(left) ? left : 0;
		}
		this.element.setStyles({'top': top, 'left': left, 'position': =
this.position.element});
		this.parent(this.element);
	},

	start: function(event){
		this.overed =3D null;
		if (this.container){
			var cont =3D this.container.getCoordinates();
			var el =3D this.element.getCoordinates();
			if (this.position.element =3D=3D 'absolute' && !['relative', =
'absolute', 'fixed'].contains(this.position.container)){
				this.options.limit =3D {
					'x': [cont.left, cont.right - el.width],
					'y': [cont.top, cont.bottom - el.height]
				};
			} else {
				this.options.limit =3D {
					'y': [0, cont.height - el.height],
					'x': [0, cont.width - el.width]
				};
			}
		}
		this.parent(event);
	},

	drag: function(event){
		this.parent(event);
		var overed =3D this.out ? false : =
this.droppables.filter(this.checkAgainst, this).getLast();
		if (this.overed !=3D overed){
			if (this.overed) this.overed.fireEvent('leave', [this.element, =
this]);
			this.overed =3D overed ? overed.fireEvent('over', [this.element, =
this]) : null;
		}
		return this;
	},

	checkAgainst: function(el){
		el =3D el.getCoordinates(this.options.overflown);
		var now =3D this.mouse.now;
		return (now.x > el.left && now.x < el.right && now.y < el.bottom && =
now.y > el.top);
	},

	stop: function(){
		if (this.overed && !this.out) this.overed.fireEvent('drop', =
[this.element, this]);
		else this.element.fireEvent('emptydrop', this);
		this.parent();
		return this;
	}

});

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: makeDraggable
		Makes an element draggable with the supplied options.

	Arguments:
		options - see <Drag.Move> and <Drag.Base> for acceptable options.
	*/

	makeDraggable: function(options){
		return new Drag.Move(this, options);
	}

});

/*
Script: XHR.js
	Contains the basic XMLHttpRequest Class Wrapper.

License:
	MIT-style license.
*/

/*
Class: XHR
	Basic XMLHttpRequest Wrapper.

Arguments:
	options - an object with options names as keys. See options below.

Options:
	method - 'post' or 'get' - the protocol for the request; optional, =
defaults to 'post'.
	async - boolean: asynchronous option; true uses asynchronous requests. =
Defaults to true.
	encoding - the encoding, defaults to utf-8.
	autoCancel - cancels the already running request if another one is =
sent. defaults to false.
	headers - accepts an object, that will be set to request headers.
=09
Events:
	onRequest - function to execute when the XHR request is fired.
	onSuccess - function to execute when the XHR request completes.
	onStateChange - function to execute when the state of the =
XMLHttpRequest changes.
	onFailure - function to execute when the state of the XMLHttpRequest =
changes.

Properties:
	running - true if the request is running.
	response - object, text and xml as keys. You can access this property =
in the onSuccess event.

Example:
	>var myXHR =3D new XHR({method: =
'get'}).send('http://site.com/requestHandler.php', =
'name=3Djohn&lastname=3Ddorian');
*/

var XHR =3D new Class({

	options: {
		method: 'post',
		async: true,
		onRequest: Class.empty,
		onSuccess: Class.empty,
		onFailure: Class.empty,
		urlEncoded: true,
		encoding: 'utf-8',
		autoCancel: false,
		headers: {}
	},

	setTransport: function(){
		this.transport =3D (window.XMLHttpRequest) ? new XMLHttpRequest() : =
(window.ie ? new ActiveXObject('Microsoft.XMLHTTP') : false);
		return this;
	},

	initialize: function(options){
		this.setTransport().setOptions(options);
		this.options.isSuccess =3D this.options.isSuccess || this.isSuccess;
		this.headers =3D {};
		if (this.options.urlEncoded && this.options.method =3D=3D 'post'){
			var encoding =3D (this.options.encoding) ? '; charset=3D' + =
this.options.encoding : '';
			this.setHeader('Content-type', 'application/x-www-form-urlencoded' + =
encoding);
		}
		if (this.options.initialize) this.options.initialize.call(this);
	},

	onStateChange: function(){
		if (this.transport.readyState !=3D 4 || !this.running) return;
		this.running =3D false;
		var status =3D 0;
		try {status =3D this.transport.status;} catch(e){};
		if (this.options.isSuccess.call(this, status)) this.onSuccess();
		else this.onFailure();
		this.transport.onreadystatechange =3D Class.empty;
	},

	isSuccess: function(status){
		return ((status >=3D 200) && (status < 300));
	},

	onSuccess: function(){
		this.response =3D {
			'text': this.transport.responseText,
			'xml': this.transport.responseXML
		};
		this.fireEvent('onSuccess', [this.response.text, this.response.xml]);
		this.callChain();
	},

	onFailure: function(){
		this.fireEvent('onFailure', this.transport);
	},

	/*
	Property: setHeader
		Add/modify an header for the request. It will not override headers =
from the options.

	Example:
		>var myXhr =3D new XHR(url, {method: 'get', headers: {'X-Request': =
'JSON'}});
		>myXhr.setHeader('Last-Modified','Sat, 1 Jan 2005 05:00:00 GMT');
	*/

	setHeader: function(name, value){
		this.headers[name] =3D value;
		return this;
	},

	/*
	Property: send
		Opens the XHR connection and sends the data. Data has to be null or a =
string.

	Example:
		>var myXhr =3D new XHR({method: 'post'});
		>myXhr.send(url, querystring);
		>
		>var syncXhr =3D new XHR({async: false, method: 'post'});
		>syncXhr.send(url, null);
		>
	*/

	send: function(url, data){
		if (this.options.autoCancel) this.cancel();
		else if (this.running) return this;
		this.running =3D true;
		if (data && this.options.method =3D=3D 'get'){
			url =3D url + (url.contains('?') ? '&' : '?') + data;
			data =3D null;
		}
		this.transport.open(this.options.method.toUpperCase(), url, =
this.options.async);
		this.transport.onreadystatechange =3D this.onStateChange.bind(this);
		if ((this.options.method =3D=3D 'post') && =
this.transport.overrideMimeType) this.setHeader('Connection', 'close');
		$extend(this.headers, this.options.headers);
		for (var type in this.headers) try =
{this.transport.setRequestHeader(type, this.headers[type]);} catch(e){};
		this.fireEvent('onRequest');
		this.transport.send($pick(data, null));
		return this;
	},

	/*
	Property: cancel
		Cancels the running request. No effect if the request is not running.

	Example:
		>var myXhr =3D new XHR({method: 'get'}).send(url);
		>myXhr.cancel();
	*/

	cancel: function(){
		if (!this.running) return this;
		this.running =3D false;
		this.transport.abort();
		this.transport.onreadystatechange =3D Class.empty;
		this.setTransport();
		this.fireEvent('onCancel');
		return this;
	}

});

XHR.implement(new Chain, new Events, new Options);

/*
Script: Ajax.js
	Contains the <Ajax> class. Also contains methods to generate =
querystings from forms and Objects.

Credits:
	Loosely based on the version from prototype.js =
<http://prototype.conio.net>

License:
	MIT-style license.
*/

/*
Class: Ajax
	An Ajax class, For all your asynchronous needs.
	Inherits methods, properties, options and events from <XHR>.

Arguments:
	url - the url pointing to the server-side script.
	options - optional, an object containing options.

Options:
	data - you can write parameters here. Can be a querystring, an object =
or a Form element.
	update - $(element) to insert the response text of the XHR into, upon =
completion of the request.
	evalScripts - boolean; default is false. Execute scripts in the =
response text onComplete. When the response is javascript the whole =
response is evaluated.
	evalResponse - boolean; default is false. Force global evalulation of =
the whole response, no matter what content-type it is.
=09
Events:
	onComplete - function to execute when the ajax request completes.

Example:
	>var myAjax =3D new Ajax(url, {method: 'get'}).request();
*/

var Ajax =3D XHR.extend({

	options: {
		data: null,
		update: null,
		onComplete: Class.empty,
		evalScripts: false,
		evalResponse: false
	},

	initialize: function(url, options){
		this.addEvent('onSuccess', this.onComplete);
		this.setOptions(options);
		/*compatibility*/
		this.options.data =3D this.options.data || this.options.postBody;
		/*end compatibility*/
		if (!['post', 'get'].contains(this.options.method)){
			this._method =3D '_method=3D' + this.options.method;
			this.options.method =3D 'post';
		}
		this.parent();
		this.setHeader('X-Requested-With', 'XMLHttpRequest');
		this.setHeader('Accept', 'text/javascript, text/html, application/xml, =
text/xml, */*');
		this.url =3D url;
	},

	onComplete: function(){
		if (this.options.update) =
$(this.options.update).empty().setHTML(this.response.text);
		if (this.options.evalScripts || this.options.evalResponse) =
this.evalScripts();
		this.fireEvent('onComplete', [this.response.text, this.response.xml], =
20);
	},

	/*
	Property: request
		Executes the ajax request.

	Example:
		>var myAjax =3D new Ajax(url, {method: 'get'});
		>myAjax.request();

		OR

		>new Ajax(url, {method: 'get'}).request();
	*/

	request: function(data){
		data =3D data || this.options.data;
		switch($type(data)){
			case 'element': data =3D $(data).toQueryString(); break;
			case 'object': data =3D Object.toQueryString(data);
		}
		if (this._method) data =3D (data) ? [this._method, data].join('&') : =
this._method;
		return this.send(this.url, data);
	},

	/*
	Property: evalScripts
		Executes scripts in the response text
	*/

	evalScripts: function(){
		var script, scripts;
		if (this.options.evalResponse || =
(/(ecma|java)script/).test(this.getHeader('Content-type'))) scripts =3D =
this.response.text;
		else {
			scripts =3D [];
			var regexp =3D /<script[^>]*>([\s\S]*?)<\/script>/gi;
			while ((script =3D regexp.exec(this.response.text))) =
scripts.push(script[1]);
			scripts =3D scripts.join('\n');
		}
		if (scripts) (window.execScript) ? window.execScript(scripts) : =
window.setTimeout(scripts, 0);
	},

	/*
	Property: getHeader
		Returns the given response header or null
	*/

	getHeader: function(name){
		try {return this.transport.getResponseHeader(name);} catch(e){};
		return null;
	}

});

/* Section: Object related Functions */

/*
Function: Object.toQueryString
	Generates a querystring from key/pair values in an object

Arguments:
	source - the object to generate the querystring from.

Returns:
	the query string.

Example:
	>Object.toQueryString({apple: "red", lemon: "yellow"}); //returns =
"apple=3Dred&lemon=3Dyellow"
*/

Object.toQueryString =3D function(source){
	var queryString =3D [];
	for (var property in source) =
queryString.push(encodeURIComponent(property) + '=3D' + =
encodeURIComponent(source[property]));
	return queryString.join('&');
};

/*
Class: Element
	Custom class to allow all of its methods to be used with any DOM =
element via the dollar function <$>.
*/

Element.extend({

	/*
	Property: send
		Sends a form with an ajax post request

	Arguments:
		options - option collection for ajax request. See <Ajax> for the =
options list.

	Returns:
		The Ajax Class Instance

	Example:
		(start code)
		<form id=3D"myForm" action=3D"submit.php">
		<input name=3D"email" value=3D"bob@bob.com">
		<input name=3D"zipCode" value=3D"90210">
		</form>
		<script>
		$('myForm').send()
		</script>
		(end)
	*/

	send: function(options){
		return new Ajax(this.getProperty('action'), $merge({data: =
this.toQueryString()}, options, {method: 'post'})).request();
	}

});

/*
Script: Cookie.js
	A cookie reader/creator

Credits:
	based on the functions by Peter-Paul Koch (http://quirksmode.org)
*/

/*
Class: Cookie
	Class for creating, getting, and removing cookies.
*/

var Cookie =3D new Abstract({

	options: {
		domain: false,
		path: false,
		duration: false,
		secure: false
	},

	/*
	Property: set
		Sets a cookie in the browser.

	Arguments:
		key - the key (name) for the cookie
		value - the value to set, cannot contain semicolons
		options - an object representing the Cookie options. See Options =
below. Default values are stored in Cookie.options.

	Options:
		domain - the domain the Cookie belongs to. If you want to share the =
cookie with pages located on a different domain, you have to set this =
value. Defaults to the current domain.
		path - the path the Cookie belongs to. If you want to share the cookie =
with pages located in a different path, you have to set this value, for =
example to "/" to share the cookie with all pages on the domain. =
Defaults to the current path.
		duration - the duration of the Cookie before it expires, in days.
					If set to false or 0, the cookie will be a session cookie that =
expires when the browser is closed. This is default.
		secure - Stored cookie information can be accessed only from a secure =
environment.

	Returns:
		An object with the options, the key and the value. You can give it as =
first parameter to Cookie.remove.

	Example:
		>Cookie.set('username', 'Harald'); // session cookie (duration is =
false), or ...
		>Cookie.set('username', 'JackBauer', {duration: 1}); // save this for =
1 day

	*/

	set: function(key, value, options){
		options =3D $merge(this.options, options);
		value =3D encodeURIComponent(value);
		if (options.domain) value +=3D '; domain=3D' + options.domain;
		if (options.path) value +=3D '; path=3D' + options.path;
		if (options.duration){
			var date =3D new Date();
			date.setTime(date.getTime() + options.duration * 24 * 60 * 60 * =
1000);
			value +=3D '; expires=3D' + date.toGMTString();
		}
		if (options.secure) value +=3D '; secure';
		document.cookie =3D key + '=3D' + value;
		return $extend(options, {'key': key, 'value': value});
	},

	/*
	Property: get
		Gets the value of a cookie.

	Arguments:
		key - the name of the cookie you wish to retrieve.

	Returns:
		The cookie string value, or false if not found.

	Example:
		>Cookie.get("username") //returns JackBauer
	*/

	get: function(key){
		var value =3D document.cookie.match('(?:^|;)\\s*' + key.escapeRegExp() =
+ '=3D([^;]*)');
		return value ? decodeURIComponent(value[1]) : false;
	},

	/*
	Property: remove
		Removes a cookie from the browser.

	Arguments:
		cookie - the name of the cookie to remove or a previous cookie (for =
domains)
		options - optional. you can also pass the domain and path here. Same =
as options in <Cookie.set>

	Examples:
		>Cookie.remove('username') //bye-bye JackBauer, cya in 24 hours
		>
		>var myCookie =3D Cookie.set('username', 'Aaron', {domain: =
'mootools.net'}); // Cookie.set returns an object with all values need =
to remove the cookie
		>Cookie.remove(myCookie);
	*/

	remove: function(cookie, options){
		if ($type(cookie) =3D=3D 'object') this.set(cookie.key, '', =
$merge(cookie, {duration: -1}));
		else this.set(cookie, '', $merge(options, {duration: -1}));
	}

});

/*
Script: Json.js
	Simple Json parser and Stringyfier, See: <http://www.json.org/>

License:
	MIT-style license.
*/

/*
Class: Json
	Simple Json parser and Stringyfier, See: <http://www.json.org/>
*/

var Json =3D {

	/*
	Property: toString
		Converts an object to a string, to be passed in server-side scripts as =
a parameter. Although its not normal usage for this class, this method =
can also be used to convert functions and arrays to strings.

	Arguments:
		obj - the object to convert to string

	Returns:
		A json string

	Example:
		(start code)
		Json.toString({apple: 'red', lemon: 'yellow'}); =
'{"apple":"red","lemon":"yellow"}'
		(end)
	*/

	toString: function(obj){
		switch($type(obj)){
			case 'string':
				return '"' + obj.replace(/(["\\])/g, '\\$1') + '"';
			case 'array':
				return '[' + obj.map(Json.toString).join(',') + ']';
			case 'object':
				var string =3D [];
				for (var property in obj) string.push(Json.toString(property) + ':' =
+ Json.toString(obj[property]));
				return '{' + string.join(',') + '}';
			case 'number':
				if (isFinite(obj)) break;
			case false:
				return 'null';
		}
		return String(obj);
	},

	/*
	Property: evaluate
		converts a json string to an javascript Object.

	Arguments:
		str - the string to evaluate. if its not a string, it returns false.
		secure - optionally, performs syntax check on json string. Defaults to =
false.

	Credits:
		Json test regexp is by Douglas Crockford <http://crockford.org>.

	Example:
		>var myObject =3D Json.evaluate('{"apple":"red","lemon":"yellow"}');
		>//myObject will become {apple: 'red', lemon: 'yellow'}
	*/

	evaluate: function(str, secure){
		return (($type(str) !=3D 'string') || (secure && =
!str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u =
\n\r\t])+?$/))) ? null : eval('(' + str + ')');
	}

};

/*
Script: Json.Remote.js
	Contains <Json.Remote>.

License:
	MIT-style license.
*/

/*
Class: Json.Remote
	Wrapped XHR with automated sending and receiving of Javascript Objects =
in Json Format.
	Inherits methods, properties, options and events from <XHR>.

Arguments:
	url - the url you want to send your object to.
	options - see <XHR> options

Example:
	this code will send user information based on name/last name
	(start code)
	var jSonRequest =3D new Json.Remote("http://site.com/tellMeAge.php", =
{onComplete: function(person){
		alert(person.age); //is 25 years
		alert(person.height); //is 170 cm
		alert(person.weight); //is 120 kg
	}}).send({'name': 'John', 'lastName': 'Doe'});
	(end)
*/

Json.Remote =3D XHR.extend({

	initialize: function(url, options){
		this.url =3D url;
		this.addEvent('onSuccess', this.onComplete);
		this.parent(options);
		this.setHeader('X-Request', 'JSON');
	},

	send: function(obj){
		return this.parent(this.url, 'json=3D' + Json.toString(obj));
	},

	onComplete: function(){
		this.fireEvent('onComplete', [Json.evaluate(this.response.text, =
this.options.secure)]);
	}

});

/*
Script: Assets.js
	provides dynamic loading for images, css and javascript files.

License:
	MIT-style license.
*/

var Asset =3D new Abstract({

	/*
	Property: javascript
		Injects a javascript file in the page.

	Arguments:
		source - the path of the javascript file
		properties - some additional attributes you might want to add to the =
script element

	Example:
		> new Asset.javascript('/scripts/myScript.js', {id: 'myScript'});
	*/

	javascript: function(source, properties){
		properties =3D $merge({
			'onload': Class.empty
		}, properties);
		var script =3D new Element('script', {'src': source}).addEvents({
			'load': properties.onload,
			'readystatechange': function(){
				if (this.readyState =3D=3D 'complete') this.fireEvent('load');
			}
		});
		delete properties.onload;
		return script.setProperties(properties).inject(document.head);
	},

	/*
	Property: css
		Injects a css file in the page.

	Arguments:
		source - the path of the css file
		properties - some additional attributes you might want to add to the =
link element

	Example:
		> new Asset.css('/css/myStyle.css', {id: 'myStyle', title: =
'myStyle'});
	*/

	css: function(source, properties){
		return new Element('link', $merge({
			'rel': 'stylesheet', 'media': 'screen', 'type': 'text/css', 'href': =
source
		}, properties)).inject(document.head);
	},

	/*
	Property: image
		Preloads an image and returns the img element. does not inject it to =
the page.

	Arguments:
		source - the path of the image file
		properties - some additional attributes you might want to add to the =
img element

	Example:
		> new Asset.image('/images/myImage.png', {id: 'myImage', title: =
'myImage', onload: myFunction});

	Returns:
		the img element. you can inject it anywhere you want with =
<Element.injectInside>/<Element.injectAfter>/<Element.injectBefore>
	*/

	image: function(source, properties){
		properties =3D $merge({
			'onload': Class.empty,
			'onabort': Class.empty,
			'onerror': Class.empty
		}, properties);
		var image =3D new Image();
		image.src =3D source;
		var element =3D new Element('img', {'src': source});
		['load', 'abort', 'error'].each(function(type){
			var event =3D properties['on' + type];
			delete properties['on' + type];
			element.addEvent(type, function(){
				this.removeEvent(type, arguments.callee);
				event.call(this);
			});
		});
		if (image.width && image.height) element.fireEvent('load', element, =
1);
		return element.setProperties(properties);
	},

	/*
	Property: images
		Preloads an array of images (as strings) and returns an array of img =
elements. does not inject them to the page.

	Arguments:
		sources - array, the paths of the image files
		options - object, see below

	Options:
		onComplete - a function to execute when all image files are loaded in =
the browser's cache
		onProgress - a function to execute when one image file is loaded in =
the browser's cache

	Example:
		(start code)
		new Asset.images(['/images/myImage.png', '/images/myImage2.gif'], {
			onComplete: function(){
				alert('all images loaded!');
			}
		});
		(end)

	Returns:
		the img elements as $$. you can inject them anywhere you want with =
<Element.injectInside>/<Element.injectAfter>/<Element.injectBefore>
	*/

	images: function(sources, options){
		options =3D $merge({
			onComplete: Class.empty,
			onProgress: Class.empty
		}, options);
		if (!sources.push) sources =3D [sources];
		var images =3D [];
		var counter =3D 0;
		sources.each(function(source){
			var img =3D new Asset.image(source, {
				'onload': function(){
					options.onProgress.call(this, counter);
					counter++;
					if (counter =3D=3D sources.length) options.onComplete();
				}
			});
			images.push(img);
		});
		return new Elements(images);
	}

});

/*
Script: Hash.js
	Contains the class Hash.

License:
	MIT-style license.
*/

/*
Class: Hash
	It wraps an object that it uses internally as a map. The user must use =
set(), get(), and remove() to add/change, retrieve and remove values, it =
must not access the internal object directly. null/undefined values are =
allowed.

Note:
	Each hash instance has the length property.

Arguments:
	obj - an object to convert into a Hash instance.

Example:
	(start code)
	var hash =3D new Hash({a: 'hi', b: 'world', c: 'howdy'});
	hash.remove('b'); // b is removed.
	hash.set('c', 'hello');
	hash.get('c'); // returns 'hello'
	hash.length // returns 2 (a and c)
	(end)
*/

var Hash =3D new Class({

	length: 0,

	initialize: function(object){
		this.obj =3D object || {};
		this.setLength();
	},

	/*
	Property: get
		Retrieves a value from the hash.

	Arguments:
		key - The key

	Returns:
		The value
	*/

	get: function(key){
		return (this.hasKey(key)) ? this.obj[key] : null;
	},

	/*
	Property: hasKey
		Check the presence of a specified key-value pair in the hash.

	Arguments:
		key - The key

	Returns:
		True if the Hash contains a value for the specified key, otherwise =
false
	*/

	hasKey: function(key){
		return (key in this.obj);
	},

	/*
	Property: set
		Adds a key-value pair to the hash or replaces a previous value =
associated with the key.

	Arguments:
		key - The key
		value - The value
	*/

	set: function(key, value){
		if (!this.hasKey(key)) this.length++;
		this.obj[key] =3D value;
		return this;
	},

	setLength: function(){
		this.length =3D 0;
		for (var p in this.obj) this.length++;
		return this;
	},

	/*
	Property: remove
		Removes a key-value pair from the hash.

	Arguments:
		key - The key
	*/

	remove: function(key){
		if (this.hasKey(key)){
			delete this.obj[key];
			this.length--;
		}
		return this;
	},

	/*
	Property: each
		Calls a function for each key-value pair. The first argument passed to =
the function will be the value, the second one will be the key, like =
$each.

	Arguments:
		fn - The function to call for each key-value pair
		bind - Optional, the object that will be referred to as "this" in the =
function
	*/

	each: function(fn, bind){
		$each(this.obj, fn, bind);
	},

	/*
	Property: extend
		Extends the current hash with an object containing key-value pairs. =
Values for duplicate keys will be replaced by the new ones.

	Arguments:
		obj - An object containing key-value pairs
	*/

	extend: function(obj){
		$extend(this.obj, obj);
		return this.setLength();
	},

	/*
	Property: merge
		Merges the current hash with multiple objects.
	*/

	merge: function(){
		this.obj =3D $merge.apply(null, [this.obj].extend(arguments));
		return this.setLength();
	},

	/*
	Property: empty
		Empties all hash values properties and values.
	*/

	empty: function(){
		this.obj =3D {};
		this.length =3D 0;
		return this;
	},

	/*
	Property: keys
		Returns an array containing all the keys, in the same order as the =
values returned by <Hash.values>.

	Returns:
		An array containing all the keys of the hash
	*/

	keys: function(){
		var keys =3D [];
		for (var property in this.obj) keys.push(property);
		return keys;
	},

	/*
	Property: values
		Returns an array containing all the values, in the same order as the =
keys returned by <Hash.keys>.

	Returns:
		An array containing all the values of the hash
	*/

	values: function(){
		var values =3D [];
		for (var property in this.obj) values.push(this.obj[property]);
		return values;
	}

});

/* Section: Utility Functions */

/*
Function: $H
	Shortcut to create a Hash from an Object.
*/

function $H(obj){
	return new Hash(obj);
};

/*
Script: Hash.Cookie.js
	Stores and loads an Hash as a cookie using Json format.
*/

/*
Class: Hash.Cookie
	Inherits all the methods from <Hash>, additional methods are save and =
load.
	Hash json string has a limit of 4kb (4096byte), so be careful with your =
Hash size.
	Creating a new instance automatically loads the data from the Cookie =
into the Hash.
	If the Hash is emptied, the cookie is also removed.

Arguments:
	name - the key (name) for the cookie
	options - options are identical to <Cookie> and are simply passed along =
to it.
		In addition, it has the autoSave option, to save the cookie at every =
operation. defaults to true.

Example:
	(start code)
	var fruits =3D new Hash.Cookie('myCookieName', {duration: 3600});
	fruits.extend({
		'lemon': 'yellow',
		'apple': 'red'
	});
	fruits.set('melon', 'green');
	fruits.get('lemon'); // yellow

	// ... on another page ... values load automatically

	var fruits =3D new Hash.Cookie('myCookieName', {duration: 365});
	fruits.get('melon'); // green

	fruits.erase(); // delete cookie
	(end)
*/

Hash.Cookie =3D Hash.extend({

	initialize: function(name, options){
		this.name =3D name;
		this.options =3D $extend({'autoSave': true}, options || {});
		this.load();
	},

	/*
	Property: save
		Saves the Hash to the cookie. If the hash is empty, removes the =
cookie.

	Returns:
		Returns false when the JSON string cookie is too long (4kb), otherwise =
true.

	Example:
		(start code)
		var login =3D new Hash.Cookie('userstatus', {autoSave: false});

		login.extend({
			'username': 'John',
			'credentials': [4, 7, 9]
		});
		login.set('last_message', 'User logged in!');

		login.save(); // finally save the Hash
		(end)
	*/

	save: function(){
		if (this.length =3D=3D 0){
			Cookie.remove(this.name, this.options);
			return true;
		}
		var str =3D Json.toString(this.obj);
		if (str.length > 4096) return false; //cookie would be truncated!
		Cookie.set(this.name, str, this.options);
		return true;
	},
=09
	/*
	Property: load
		Loads the cookie and assigns it to the Hash.
	*/

	load: function(){
		this.obj =3D Json.evaluate(Cookie.get(this.name), true) || {};
		this.setLength();
	}

});

Hash.Cookie.Methods =3D {};
['extend', 'set', 'merge', 'empty', 'remove'].each(function(method){
	Hash.Cookie.Methods[method] =3D function(){
		Hash.prototype[method].apply(this, arguments);
		if (this.options.autoSave) this.save();
		return this;
	};
});
Hash.Cookie.implement(Hash.Cookie.Methods);

/*
Script: Color.js
	Contains the Color class.

License:
	MIT-style license.
*/

/*
Class: Color
	Creates a new Color Object, which is an array with some color specific =
methods.
Arguments:
	color - the hex, the RGB array or the HSB array of the color to create. =
For HSB colors, you need to specify the second argument.
	type - a string representing the type of the color to create. needs to =
be specified if you intend to create the color with HSB values, or an =
array of HEX values. Can be 'rgb', 'hsb' or 'hex'.

Example:
	(start code)
	var black =3D new Color('#000');
	var purple =3D new Color([255,0,255]);
	// mix black with white and purple, each time at 10% of the new color
	var darkpurple =3D black.mix('#fff', purple, 10);
	$('myDiv').setStyle('background-color', darkpurple);
	(end)
*/

var Color =3D new Class({

	initialize: function(color, type){
		type =3D type || (color.push ? 'rgb' : 'hex');
		var rgb, hsb;
		switch(type){
			case 'rgb':
				rgb =3D color;
				hsb =3D rgb.rgbToHsb();
				break;
			case 'hsb':
				rgb =3D color.hsbToRgb();
				hsb =3D color;
				break;
			default:
				rgb =3D color.hexToRgb(true);
				hsb =3D rgb.rgbToHsb();
		}
		rgb.hsb =3D hsb;
		rgb.hex =3D rgb.rgbToHex();
		return $extend(rgb, Color.prototype);
	},

	/*
	Property: mix
		Mixes two or more colors with the Color.
	=09
	Arguments:
		color - a color to mix. you can use as arguments how many colors as =
you want to mix with the original one.
		alpha - if you use a number as the last argument, it will be threated =
as the amount of the color to mix.
	*/

	mix: function(){
		var colors =3D $A(arguments);
		var alpha =3D ($type(colors[colors.length - 1]) =3D=3D 'number') ? =
colors.pop() : 50;
		var rgb =3D this.copy();
		colors.each(function(color){
			color =3D new Color(color);
			for (var i =3D 0; i < 3; i++) rgb[i] =3D Math.round((rgb[i] / 100 * =
(100 - alpha)) + (color[i] / 100 * alpha));
		});
		return new Color(rgb, 'rgb');
	},

	/*
	Property: invert
		Inverts the Color.
	*/

	invert: function(){
		return new Color(this.map(function(value){
			return 255 - value;
		}));
	},

	/*
	Property: setHue
		Modifies the hue of the Color, and returns a new one.
=09
	Arguments:
		value - the hue to set
	*/

	setHue: function(value){
		return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');
	},

	/*
	Property: setSaturation
		Changes the saturation of the Color, and returns a new one.
=09
	Arguments:
		percent - the percentage of the saturation to set
	*/

	setSaturation: function(percent){
		return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');
	},

	/*
	Property: setBrightness
		Changes the brightness of the Color, and returns a new one.
=09
	Arguments:
		percent - the percentage of the brightness to set
	*/

	setBrightness: function(percent){
		return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');
	}

});

/* Section: Utility Functions */

/*
Function: $RGB
	Shortcut to create a new color, based on red, green, blue values.

Arguments:
	r - (integer) red value (0-255)
	g - (integer) green value (0-255)
	b - (integer) blue value (0-255)

*/

function $RGB(r, g, b){
	return new Color([r, g, b], 'rgb');
};

/*
Function: $HSB
	Shortcut to create a new color, based on hue, saturation, brightness =
values.

Arguments:
	h - (integer) hue value (0-100)
	s - (integer) saturation value (0-100)
	b - (integer) brightness value (0-100)
*/

function $HSB(h, s, b){
	return new Color([h, s, b], 'hsb');
};

/*
Class: Array
	A collection of The Array Object prototype methods.
*/

Array.extend({
=09
	/*
	Property: rgbToHsb
		Converts a RGB array to an HSB array.

	Returns:
		the HSB array.
	*/

	rgbToHsb: function(){
		var red =3D this[0], green =3D this[1], blue =3D this[2];
		var hue, saturation, brightness;
		var max =3D Math.max(red, green, blue), min =3D Math.min(red, green, =
blue);
		var delta =3D max - min;
		brightness =3D max / 255;
		saturation =3D (max !=3D 0) ? delta / max : 0;
		if (saturation =3D=3D 0){
			hue =3D 0;
		} else {
			var rr =3D (max - red) / delta;
			var gr =3D (max - green) / delta;
			var br =3D (max - blue) / delta;
			if (red =3D=3D max) hue =3D br - gr;
			else if (green =3D=3D max) hue =3D 2 + rr - br;
			else hue =3D 4 + gr - rr;
			hue /=3D 6;
			if (hue < 0) hue++;
		}
		return [Math.round(hue * 360), Math.round(saturation * 100), =
Math.round(brightness * 100)];
	},

	/*
	Property: hsbToRgb
		Converts an HSB array to an RGB array.

	Returns:
		the RGB array.
	*/

	hsbToRgb: function(){
		var br =3D Math.round(this[2] / 100 * 255);
		if (this[1] =3D=3D 0){
			return [br, br, br];
		} else {
			var hue =3D this[0] % 360;
			var f =3D hue % 60;
			var p =3D Math.round((this[2] * (100 - this[1])) / 10000 * 255);
			var q =3D Math.round((this[2] * (6000 - this[1] * f)) / 600000 * =
255);
			var t =3D Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 =
* 255);
			switch(Math.floor(hue / 60)){
				case 0: return [br, t, p];
				case 1: return [q, br, p];
				case 2: return [p, br, t];
				case 3: return [p, q, br];
				case 4: return [t, p, br];
				case 5: return [br, p, q];
			}
		}
		return false;
	}

});

/*
Script: Scroller.js
	Contains the <Scroller>.

License:
	MIT-style license.
*/

/*
Class: Scroller
	The Scroller is a class to scroll any element with an overflow =
(including the window) when the mouse cursor reaches certain buondaries =
of that element.
	You must call its start method to start listening to mouse movements.

Note:
	The Scroller requires an XHTML doctype.

Arguments:
	element - required, the element to scroll.
	options - optional, see options below, and <Fx.Base> options.

Options:
	area - integer, the necessary boundaries to make the element scroll.
	velocity - integer, velocity ratio, the modifier for the window =
scrolling speed.

Events:
	onChange - optionally, when the mouse reaches some boundaries, you can =
choose to alter some other values, instead of the scrolling offsets.
		Automatically passes as parameters x and y values.
*/

var Scroller =3D new Class({

	options: {
		area: 20,
		velocity: 1,
		onChange: function(x, y){
			this.element.scrollTo(x, y);
		}
	},

	initialize: function(element, options){
		this.setOptions(options);
		this.element =3D $(element);
		this.mousemover =3D ([window, document].contains(element)) ? =
$(document.body) : this.element;
	},

	/*
	Property: start
		The scroller starts listening to mouse movements.
	*/

	start: function(){
		this.coord =3D this.getCoords.bindWithEvent(this);
		this.mousemover.addListener('mousemove', this.coord);
	},

	/*
	Property: stop
		The scroller stops listening to mouse movements.
	*/

	stop: function(){
		this.mousemover.removeListener('mousemove', this.coord);
		this.timer =3D $clear(this.timer);
	},

	getCoords: function(event){
		this.page =3D (this.element =3D=3D window) ? event.client : =
event.page;
		if (!this.timer) this.timer =3D this.scroll.periodical(50, this);
	},

	scroll: function(){
		var el =3D this.element.getSize();
		var pos =3D this.element.getPosition();

		var change =3D {'x': 0, 'y': 0};
		for (var z in this.page){
			if (this.page[z] < (this.options.area + pos[z]) && el.scroll[z] !=3D =
0)
				change[z] =3D (this.page[z] - this.options.area - pos[z]) * =
this.options.velocity;
			else if (this.page[z] + this.options.area > (el.size[z] + pos[z]) && =
el.scroll[z] + el.size[z] !=3D el.scrollSize[z])
				change[z] =3D (this.page[z] - el.size[z] + this.options.area - =
pos[z]) * this.options.velocity;
		}
		if (change.y || change.x) this.fireEvent('onChange', [el.scroll.x + =
change.x, el.scroll.y + change.y]);
	}

});

Scroller.implement(new Events, new Options);

/*
Script: Slider.js
	Contains <Slider>

License:
	MIT-style license.
*/

/*
Class: Slider
	Creates a slider with two elements: a knob and a container. Returns the =
values.
=09
Note:
	The Slider requires an XHTML doctype.

Arguments:
	element - the knob container
	knob - the handle
	options - see Options below

Options:
	steps - the number of steps for your slider.
	mode - either 'horizontal' or 'vertical'. defaults to horizontal.
	offset - relative offset for knob position. default to 0.
=09
Events:
	onChange - a function to fire when the value changes.
	onComplete - a function to fire when you're done dragging.
	onTick - optionally, you can alter the onTick behavior, for example =
displaying an effect of the knob moving to the desired position.
		Passes as parameter the new position.
*/

var Slider =3D new Class({

	options: {
		onChange: Class.empty,
		onComplete: Class.empty,
		onTick: function(pos){
			this.knob.setStyle(this.p, pos);
		},
		mode: 'horizontal',
		steps: 100,
		offset: 0
	},

	initialize: function(el, knob, options){
		this.element =3D $(el);
		this.knob =3D $(knob);
		this.setOptions(options);
		this.previousChange =3D -1;
		this.previousEnd =3D -1;
		this.step =3D -1;
		this.element.addEvent('mousedown', =
this.clickedElement.bindWithEvent(this));
		var mod, offset;
		switch(this.options.mode){
			case 'horizontal':
				this.z =3D 'x';
				this.p =3D 'left';
				mod =3D {'x': 'left', 'y': false};
				offset =3D 'offsetWidth';
				break;
			case 'vertical':
				this.z =3D 'y';
				this.p =3D 'top';
				mod =3D {'x': false, 'y': 'top'};
				offset =3D 'offsetHeight';
		}
		this.max =3D this.element[offset] - this.knob[offset] + =
(this.options.offset * 2);
		this.half =3D this.knob[offset]/2;
		this.getPos =3D this.element['get' + =
this.p.capitalize()].bind(this.element);
		this.knob.setStyle('position', 'relative').setStyle(this.p, - =
this.options.offset);
		var lim =3D {};
		lim[this.z] =3D [- this.options.offset, this.max - =
this.options.offset];
		this.drag =3D new Drag.Base(this.knob, {
			limit: lim,
			modifiers: mod,
			snap: 0,
			onStart: function(){
				this.draggedKnob();
			}.bind(this),
			onDrag: function(){
				this.draggedKnob();
			}.bind(this),
			onComplete: function(){
				this.draggedKnob();
				this.end();
			}.bind(this)
		});
		if (this.options.initialize) this.options.initialize.call(this);
	},

	/*
	Property: set
		The slider will get the step you pass.

	Arguments:
		step - one integer
	*/

	set: function(step){
		this.step =3D step.limit(0, this.options.steps);
		this.checkStep();
		this.end();
		this.fireEvent('onTick', this.toPosition(this.step));
		return this;
	},

	clickedElement: function(event){
		var position =3D event.page[this.z] - this.getPos() - this.half;
		position =3D position.limit(-this.options.offset, this.max =
-this.options.offset);
		this.step =3D this.toStep(position);
		this.checkStep();
		this.end();
		this.fireEvent('onTick', position);
	},

	draggedKnob: function(){
		this.step =3D this.toStep(this.drag.value.now[this.z]);
		this.checkStep();
	},

	checkStep: function(){
		if (this.previousChange !=3D this.step){
			this.previousChange =3D this.step;
			this.fireEvent('onChange', this.step);
		}
	},

	end: function(){
		if (this.previousEnd !=3D=3D this.step){
			this.previousEnd =3D this.step;
			this.fireEvent('onComplete', this.step + '');
		}
	},

	toStep: function(position){
		return Math.round((position + this.options.offset) / this.max * =
this.options.steps);
	},

	toPosition: function(step){
		return this.max * step / this.options.steps;
	}

});

Slider.implement(new Events);
Slider.implement(new Options);

/*
Script: SmoothScroll.js
	Contains <SmoothScroll>

License:
	MIT-style license.
*/

/*
Class: SmoothScroll
	Auto targets all the anchors in a page and display a smooth scrolling =
effect upon clicking them.
	Inherits methods, properties, options and events from <Fx.Scroll>.

Note:
	SmoothScroll requires an XHTML doctype.

Arguments:
	options - the Fx.Scroll options (see: <Fx.Scroll>) plus links, a =
collection of elements you want your smoothscroll on. Defaults to =
document.links.

Example:
	>new SmoothScroll();
*/

var SmoothScroll =3D Fx.Scroll.extend({

	initialize: function(options){
		this.parent(window, options);
		this.links =3D (this.options.links) ? $$(this.options.links) : =
$$(document.links);
		var location =3D window.location.href.match(/^[^#]*/)[0] + '#';
		this.links.each(function(link){
			if (link.href.indexOf(location) !=3D 0) return;
			var anchor =3D link.href.substr(location.length);
			if (anchor && $(anchor)) this.useLink(link, anchor);
		}, this);
		if (!window.webkit419) this.addEvent('onComplete', function(){
			window.location.hash =3D this.anchor;
		});
	},

	useLink: function(link, anchor){
		link.addEvent('click', function(event){
			this.anchor =3D anchor;
			this.toElement(anchor);
			event.stop();
		}.bindWithEvent(this));
	}

});

/*
Script: Sortables.js
	Contains <Sortables> Class.

License:
	MIT-style license.
*/

/*
Class: Sortables
	Creates an interface for <Drag.Base> and drop, resorting of a list.

Note:
	The Sortables require an XHTML doctype.

Arguments:
	list - required, the list that will become sortable.
	options - an Object, see options below.

Options:
	handles - a collection of elements to be used for drag handles. =
defaults to the elements.
=09
Events:
	onStart - function executed when the item starts dragging
	onComplete - function executed when the item ends dragging
*/

var Sortables =3D new Class({

	options: {
		handles: false,
		onStart: Class.empty,
		onComplete: Class.empty,
		ghost: true,
		snap: 3,
		onDragStart: function(element, ghost){
			ghost.setStyle('opacity', 0.7);
			element.setStyle('opacity', 0.7);
		},
		onDragComplete: function(element, ghost){
			element.setStyle('opacity', 1);
			ghost.remove();
			this.trash.remove();
		}
	},

	initialize: function(list, options){
		this.setOptions(options);
		this.list =3D $(list);
		this.elements =3D this.list.getChildren();
		this.handles =3D (this.options.handles) ? $$(this.options.handles) : =
this.elements;
		this.bound =3D {
			'start': [],
			'moveGhost': this.moveGhost.bindWithEvent(this)
		};
		for (var i =3D 0, l =3D this.handles.length; i < l; i++){
			this.bound.start[i] =3D this.start.bindWithEvent(this, =
this.elements[i]);
		}
		this.attach();
		if (this.options.initialize) this.options.initialize.call(this);
		this.bound.move =3D this.move.bindWithEvent(this);
		this.bound.end =3D this.end.bind(this);
	},

	attach: function(){
		this.handles.each(function(handle, i){
			handle.addEvent('mousedown', this.bound.start[i]);
		}, this);
	},

	detach: function(){
		this.handles.each(function(handle, i){
			handle.removeEvent('mousedown', this.bound.start[i]);
		}, this);
	},

	start: function(event, el){
		this.active =3D el;
		this.coordinates =3D this.list.getCoordinates();
		if (this.options.ghost){
			var position =3D el.getPosition();
			this.offset =3D event.page.y - position.y;
			this.trash =3D new Element('div').inject(document.body);
			this.ghost =3D el.clone().inject(this.trash).setStyles({
				'position': 'absolute',
				'left': position.x,
				'top': event.page.y - this.offset
			});
			document.addListener('mousemove', this.bound.moveGhost);
			this.fireEvent('onDragStart', [el, this.ghost]);
		}
		document.addListener('mousemove', this.bound.move);
		document.addListener('mouseup', this.bound.end);
		this.fireEvent('onStart', el);
		event.stop();
	},

	moveGhost: function(event){
		var value =3D event.page.y - this.offset;
		value =3D value.limit(this.coordinates.top, this.coordinates.bottom - =
this.ghost.offsetHeight);
		this.ghost.setStyle('top', value);
		event.stop();
	},

	move: function(event){
		var now =3D event.page.y;
		this.previous =3D this.previous || now;
		var up =3D ((this.previous - now) > 0);
		var prev =3D this.active.getPrevious();
		var next =3D this.active.getNext();
		if (prev && up && now < prev.getCoordinates().bottom) =
this.active.injectBefore(prev);
		if (next && !up && now > next.getCoordinates().top) =
this.active.injectAfter(next);
		this.previous =3D now;
	},

	serialize: function(converter){
		return this.list.getChildren().map(converter || function(el){
			return this.elements.indexOf(el);
		}, this);
	},

	end: function(){
		this.previous =3D null;
		document.removeListener('mousemove', this.bound.move);
		document.removeListener('mouseup', this.bound.end);
		if (this.options.ghost){
			document.removeListener('mousemove', this.bound.moveGhost);
			this.fireEvent('onDragComplete', [this.active, this.ghost]);
		}
		this.fireEvent('onComplete', this.active);
	}

});

Sortables.implement(new Events, new Options);

/*
Script: Tips.js
	Tooltips, BubbleTips, whatever they are, they will appear on mouseover

License:
	MIT-style license.

Credits:
	The idea behind Tips.js is based on Bubble Tooltips =
(<http://web-graphics.com/mtarchive/001717.php>) by Alessandro =
Fulcitiniti <http://web-graphics.com>
*/

/*
Class: Tips
	Display a tip on any element with a title and/or href.

Note:
	Tips requires an XHTML doctype.

Arguments:
	elements - a collection of elements to apply the tooltips to on =
mouseover.
	options - an object. See options Below.

Options:
	maxTitleChars - the maximum number of characters to display in the =
title of the tip. defaults to 30.
	showDelay - the delay the onShow method is called. (defaults to 100 ms)
	hideDelay - the delay the onHide method is called. (defaults to 100 ms)

	className - the prefix for your tooltip classNames. defaults to 'tool'.

		the whole tooltip will have as classname: tool-tip

		the title will have as classname: tool-title

		the text will have as classname: tool-text

	offsets - the distance of your tooltip from the mouse. an Object with =
x/y properties.
	fixed - if set to true, the toolTip will not follow the mouse.
=09
Events:
	onShow - optionally you can alter the default onShow behaviour with =
this option (like displaying a fade in effect);
	onHide - optionally you can alter the default onHide behaviour with =
this option (like displaying a fade out effect);

Example:
	(start code)
	<img src=3D"/images/i.png" title=3D"The body of the tooltip is stored =
in the title" class=3D"toolTipImg"/>
	<script>
		var myTips =3D new Tips($$('.toolTipImg'), {
			maxTitleChars: 50	//I like my captions a little long
		});
	</script>
	(end)

Note:
	The title of the element will always be used as the tooltip body. If =
you put :: on your title, the text before :: will become the tooltip =
title.
*/

var Tips =3D new Class({

	options: {
		onShow: function(tip){
			tip.setStyle('visibility', 'visible');
		},
		onHide: function(tip){
			tip.setStyle('visibility', 'hidden');
		},
		maxTitleChars: 30,
		showDelay: 100,
		hideDelay: 100,
		className: 'tool',
		offsets: {'x': 16, 'y': 16},
		fixed: false
	},

	initialize: function(elements, options){
		this.setOptions(options);
		this.toolTip =3D new Element('div', {
			'class': this.options.className + '-tip',
			'styles': {
				'position': 'absolute',
				'top': '0',
				'left': '0',
				'visibility': 'hidden'
			}
		}).inject(document.body);
		this.wrapper =3D new Element('div').inject(this.toolTip);
		$$(elements).each(this.build, this);
		if (this.options.initialize) this.options.initialize.call(this);
	},

	build: function(el){
		el.$tmp.myTitle =3D (el.href && el.getTag() =3D=3D 'a') ? =
el.href.replace('http://', '') : (el.rel || false);
		if (el.title){
			var dual =3D el.title.split('::');
			if (dual.length > 1){
				el.$tmp.myTitle =3D dual[0].trim();
				el.$tmp.myText =3D dual[1].trim();
			} else {
				el.$tmp.myText =3D el.title;
			}
			el.removeAttribute('title');
		} else {
			el.$tmp.myText =3D false;
		}
		if (el.$tmp.myTitle && el.$tmp.myTitle.length > =
this.options.maxTitleChars) el.$tmp.myTitle =3D =
el.$tmp.myTitle.substr(0, this.options.maxTitleChars - 1) + "&hellip;";
		el.addEvent('mouseenter', function(event){
			this.start(el);
			if (!this.options.fixed) this.locate(event);
			else this.position(el);
		}.bind(this));
		if (!this.options.fixed) el.addEvent('mousemove', =
this.locate.bindWithEvent(this));
		var end =3D this.end.bind(this);
		el.addEvent('mouseleave', end);
		el.addEvent('trash', end);
	},

	start: function(el){
		this.wrapper.empty();
		if (el.$tmp.myTitle){
			this.title =3D new Element('span').inject(new Element('div', =
{'class': this.options.className + =
'-title'}).inject(this.wrapper)).setHTML(el.$tmp.myTitle);
		}
		if (el.$tmp.myText){
			this.text =3D new Element('span').inject(new Element('div', {'class': =
this.options.className + =
'-text'}).inject(this.wrapper)).setHTML(el.$tmp.myText);
		}
		$clear(this.timer);
		this.timer =3D this.show.delay(this.options.showDelay, this);
	},

	end: function(event){
		$clear(this.timer);
		this.timer =3D this.hide.delay(this.options.hideDelay, this);
	},

	position: function(element){
		var pos =3D element.getPosition();
		this.toolTip.setStyles({
			'left': pos.x + this.options.offsets.x,
			'top': pos.y + this.options.offsets.y
		});
	},

	locate: function(event){
		var win =3D {'x': window.getWidth(), 'y': window.getHeight()};
		var scroll =3D {'x': window.getScrollLeft(), 'y': =
window.getScrollTop()};
		var tip =3D {'x': this.toolTip.offsetWidth, 'y': =
this.toolTip.offsetHeight};
		var prop =3D {'x': 'left', 'y': 'top'};
		for (var z in prop){
			var pos =3D event.page[z] + this.options.offsets[z];
			if ((pos + tip[z] - scroll[z]) > win[z]) pos =3D event.page[z] - =
this.options.offsets[z] - tip[z];
			this.toolTip.setStyle(prop[z], pos);
		};
	},

	show: function(){
		if (this.options.timeout) this.timer =3D =
this.hide.delay(this.options.timeout, this);
		this.fireEvent('onShow', [this.toolTip]);
	},

	hide: function(){
		this.fireEvent('onHide', [this.toolTip]);
	}

});

Tips.implement(new Events, new Options);

/*
Script: Group.js
	For Grouping Classes or Elements Events. The Event added to the Group =
will fire when all of the events of the items of the group are fired.

License:
	MIT-style license.
*/

/*
Class: Group
	An "Utility" Class.

Arguments:
	List of Class instances

Example:
	(start code)
	xhr1 =3D new Ajax('data.js', {evalScript: true});
	xhr2 =3D new Ajax('abstraction.js', {evalScript: true});
	xhr3 =3D new Ajax('template.js', {evalScript: true});

	var group =3D new Group(xhr1, xhr2, xhr3);
	group.addEvent('onComplete', function(){
		alert('All Scripts loaded');
	});

	xhr1.request();
	xhr2.request();
	xhr3.request();
	(end)

*/

var Group =3D new Class({

	initialize: function(){
		this.instances =3D $A(arguments);
		this.events =3D {};
		this.checker =3D {};
	},

	/*
	Property: addEvent
		adds an event to the stack of events of the Class instances.

	Arguments:
		type - string; the event name (e.g. 'onComplete')
		fn - function to execute when all instances fired this event
	*/

	addEvent: function(type, fn){
		this.checker[type] =3D this.checker[type] || {};
		this.events[type] =3D this.events[type] || [];
		if (this.events[type].contains(fn)) return false;
		else this.events[type].push(fn);
		this.instances.each(function(instance, i){
			instance.addEvent(type, this.check.bind(this, [type, instance, i]));
		}, this);
		return this;
	},

	check: function(type, instance, i){
		this.checker[type][i] =3D true;
		var every =3D this.instances.every(function(current, j){
			return this.checker[type][j] || false;
		}, this);
		if (!every) return;
		this.checker[type] =3D {};
		this.events[type].each(function(event){
			event.call(this, this.instances, instance);
		}, this);
	}

});

/*
Script: Accordion.js
	Contains <Accordion>

License:
	MIT-style license.
*/

/*
Class: Accordion
	The Accordion class creates a group of elements that are toggled when =
their handles are clicked. When one elements toggles in, the others =
toggles back.
	Inherits methods, properties, options and events from <Fx.Elements>.
=09
Note:
	The Accordion requires an XHTML doctype.

Arguments:
	togglers - required, a collection of elements, the elements handlers =
that will be clickable.
	elements - required, a collection of elements the transitions will be =
applied to.
	options - optional, see options below, and <Fx.Base> options and =
events.

Options:
	show - integer, the Index of the element to show at start.
	display - integer, the Index of the element to show at start (with a =
transition). defaults to 0.
	fixedHeight - integer, if you want the elements to have a fixed height. =
defaults to false.
	fixedWidth - integer, if you want the elements to have a fixed width. =
defaults to false.
	height - boolean, will add a height transition to the accordion if =
true. defaults to true.
	opacity - boolean, will add an opacity transition to the accordion if =
true. defaults to true.
	width - boolean, will add a width transition to the accordion if true. =
defaults to false, css mastery is required to make this work!
	alwaysHide - boolean, will allow to hide all elements if true, instead =
of always keeping one element shown. defaults to false.
=09
Events:
	onActive - function to execute when an element starts to show
	onBackground - function to execute when an element starts to hide
*/

var Accordion =3D Fx.Elements.extend({

	options: {
		onActive: Class.empty,
		onBackground: Class.empty,
		display: 0,
		show: false,
		height: true,
		width: false,
		opacity: true,
		fixedHeight: false,
		fixedWidth: false,
		wait: false,
		alwaysHide: false
	},

	initialize: function(){
		var options, togglers, elements, container;
		$each(arguments, function(argument, i){
			switch($type(argument)){
				case 'object': options =3D argument; break;
				case 'element': container =3D $(argument); break;
				default:
					var temp =3D $$(argument);
					if (!togglers) togglers =3D temp;
					else elements =3D temp;
			}
		});
		this.togglers =3D togglers || [];
		this.elements =3D elements || [];
		this.container =3D $(container);
		this.setOptions(options);
		this.previous =3D -1;
		if (this.options.alwaysHide) this.options.wait =3D true;
		if ($chk(this.options.show)){
			this.options.display =3D false;
			this.previous =3D this.options.show;
		}
		if (this.options.start){
			this.options.display =3D false;
			this.options.show =3D false;
		}
		this.effects =3D {};
		if (this.options.opacity) this.effects.opacity =3D 'fullOpacity';
		if (this.options.width) this.effects.width =3D this.options.fixedWidth =
? 'fullWidth' : 'offsetWidth';
		if (this.options.height) this.effects.height =3D =
this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';
		for (var i =3D 0, l =3D this.togglers.length; i < l; i++) =
this.addSection(this.togglers[i], this.elements[i]);
		this.elements.each(function(el, i){
			if (this.options.show =3D=3D=3D i){
				this.fireEvent('onActive', [this.togglers[i], el]);
			} else {
				for (var fx in this.effects) el.setStyle(fx, 0);
			}
		}, this);
		this.parent(this.elements);
		if ($chk(this.options.display)) this.display(this.options.display);
	},

	/*
	Property: addSection
		Dynamically adds a new section into the accordion at the specified =
position.

	Arguments:
		toggler - (dom element) the element that toggles the accordion section =
open.
		element - (dom element) the element that stretches open when the =
toggler is clicked.
		pos - (integer) the index where these objects are to be inserted =
within the accordion.
	*/

	addSection: function(toggler, element, pos){
		toggler =3D $(toggler);
		element =3D $(element);
		var test =3D this.togglers.contains(toggler);
		var len =3D this.togglers.length;
		this.togglers.include(toggler);
		this.elements.include(element);
		if (len && (!test || pos)){
			pos =3D $pick(pos, len - 1);
			toggler.injectBefore(this.togglers[pos]);
			element.injectAfter(toggler);
		} else if (this.container && !test){
			toggler.inject(this.container);
			element.inject(this.container);
		}
		var idx =3D this.togglers.indexOf(toggler);
		toggler.addEvent('click', this.display.bind(this, idx));
		if (this.options.height) element.setStyles({'padding-top': 0, =
'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});
		if (this.options.width) element.setStyles({'padding-left': 0, =
'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});
		element.fullOpacity =3D 1;
		if (this.options.fixedWidth) element.fullWidth =3D =
this.options.fixedWidth;
		if (this.options.fixedHeight) element.fullHeight =3D =
this.options.fixedHeight;
		element.setStyle('overflow', 'hidden');
		if (!test){
			for (var fx in this.effects) element.setStyle(fx, 0);
		}
		return this;
	},

	/*
	Property: display
		Shows a specific section and hides all others. Useful when triggering =
an accordion from outside.

	Arguments:
		index - integer, the index of the item to show, or the actual element =
to show.
	*/

	display: function(index){
		index =3D ($type(index) =3D=3D 'element') ? =
this.elements.indexOf(index) : index;
		if ((this.timer && this.options.wait) || (index =3D=3D=3D =
this.previous && !this.options.alwaysHide)) return this;
		this.previous =3D index;
		var obj =3D {};
		this.elements.each(function(el, i){
			obj[i] =3D {};
			var hide =3D (i !=3D index) || (this.options.alwaysHide && =
(el.offsetHeight > 0));
			this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[i], =
el]);
			for (var fx in this.effects) obj[i][fx] =3D hide ? 0 : =
el[this.effects[fx]];
		}, this);
		return this.start(obj);
	},

	showThisHideOpen: function(index){return this.display(index);}

});

Fx.Accordion =3D Accordion;

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/js/show_hide.js

/***********************************************
* Switch Content script- =C2=A9 Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use. Last updated April 2nd, =
2005.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var enablepersist=3D"on" //Enable saving state of content structure =
using session cookies? (on/off)
var collapseprevious=3D"yes" //Collapse previously open content when =
opening present? (yes/no)

var contractsymbol=3D'[Hide Active Topics]' //HTML for contract symbol. =
For image, use: <img src=3D"whatever.gif">
var expandsymbol=3D'[Show the last 10 topics]' //HTML for expand symbol.


if (document.getElementById){
document.write('<style type=3D"text/css">')
document.write('.switchcontent{display:none;}')
document.write('</style>')
}

function getElementbyClass(rootobj, classname){
var temparray=3Dnew Array()
var inc=3D0
for (i=3D0; i<rootobj.length; i++){
if (rootobj[i].className=3D=3Dclassname)
temparray[inc++]=3Drootobj[i]
}
return temparray
}


function contractcontent(omit){
var inc=3D0
while (ccollect[inc]){
if (ccollect[inc].id!=3Domit)
ccollect[inc].style.display=3D"none"
inc++
}
}

function expandcontent(curobj, cid){
var spantags=3Dcurobj.getElementsByTagName("SPAN")
var showstateobj=3DgetElementbyClass(spantags, "showstate")
if (ccollect.length>0){
if (collapseprevious=3D=3D"yes")
contractcontent(cid)
document.getElementById(cid).style.display=3D(document.getElementById(cid=
).style.display!=3D"block")? "block" : "none"
if (showstateobj.length>0){ //if "showstate" span exists in header
if (collapseprevious=3D=3D"no")
showstateobj[0].innerHTML=3D(document.getElementById(cid).style.display=3D=
=3D"block")? contractsymbol : expandsymbol
else
revivestatus()
}
}
}

function revivecontent(){
contractcontent("omitnothing")
selectedItem=3DgetselectedItem()
selectedComponents=3DselectedItem.split("|")
for (i=3D0; i<selectedComponents.length-1; i++)
document.getElementById(selectedComponents[i]).style.display=3D"block"
}

function revivestatus(){
var inc=3D0
while (statecollect[inc]){
if (ccollect[inc].style.display=3D=3D"block")
statecollect[inc].innerHTML=3Dcontractsymbol
else
statecollect[inc].innerHTML=3Dexpandsymbol
inc++
}
}

function get_cookie(Name) {=20
var search =3D Name + "=3D"
var returnvalue =3D "";
if (document.cookie.length > 0) {
offset =3D document.cookie.indexOf(search)
if (offset !=3D -1) {=20
offset +=3D search.length
end =3D document.cookie.indexOf(";", offset);
if (end =3D=3D -1) end =3D document.cookie.length;
returnvalue=3Dunescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function getselectedItem(){
if (get_cookie(window.location.pathname) !=3D ""){
selectedItem=3Dget_cookie(window.location.pathname)
return selectedItem
}
else
return ""
}

function saveswitchstate(){
var inc=3D0, selectedItem=3D""
while (ccollect[inc]){
if (ccollect[inc].style.display=3D=3D"block")
selectedItem+=3Dccollect[inc].id+"|"
inc++
}

document.cookie=3Dwindow.location.pathname+"=3D"+selectedItem
}

function do_onload(){
uniqueidn=3Dwindow.location.pathname+"firsttimeload"
var alltags=3Ddocument.all? document.all : =
document.getElementsByTagName("*")
ccollect=3DgetElementbyClass(alltags, "switchcontent")
statecollect=3DgetElementbyClass(alltags, "showstate")
if (enablepersist=3D=3D"on" && ccollect.length>0){
document.cookie=3D(get_cookie(uniqueidn)=3D=3D"")? uniqueidn+"=3D1" : =
uniqueidn+"=3D0"=20
firsttimeload=3D(get_cookie(uniqueidn)=3D=3D1)? 1 : 0 //check if this is =
1st page load
if (!firsttimeload)
revivecontent()
}
if (ccollect.length>0 && statecollect.length>0)
revivestatus()
}

if (window.addEventListener)
window.addEventListener("load", do_onload, false)
else if (window.attachEvent)
window.attachEvent("onload", do_onload)
else if (document.getElementById)
window.onload=3Ddo_onload

if (enablepersist=3D=3D"on" && document.getElementById)
window.onunload=3Dsaveswitchstate

------=_NextPart_000_001B_01C86CC7.7F2C4AC0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://doctordeluca.com/forum/style/imports/minmax.js

// minmax.js - written by Andrew Clover <and@doxdesk.com>=0A=
// Adapted for PunBB by Rickard Andersson and Paul Sullivan=0A=
=0A=
/*@cc_on=0A=
@if (@_win32 && @_jscript_version>4)=0A=
=0A=
var minmax_elements;=0A=
=0A=
function minmax_bind(el) {=0A=
	var em, ms;=0A=
	var st=3D el.style, cs=3D el.currentStyle;=0A=
=0A=
	if (minmax_elements=3D=3Dwindow.undefined) {=0A=
		if (!document.body || !document.body.currentStyle) return;=0A=
		minmax_elements=3D new Array();=0A=
		window.attachEvent('onresize', minmax_delayout);=0A=
	}=0A=
=0A=
	if (cs['max-width'])=0A=
		st['maxWidth']=3D cs['max-width'];=0A=
=0A=
	ms=3D cs['maxWidth'];=0A=
	if (ms && ms!=3D'auto' && ms!=3D'none' && ms!=3D'0' && ms!=3D'') {=0A=
		st.minmaxWidth=3D cs.width;=0A=
		minmax_elements[minmax_elements.length]=3D el;=0A=
		minmax_delayout();=0A=
	}=0A=
}=0A=
=0A=
var minmax_delaying=3D false;=0A=
function minmax_delayout() {=0A=
	if (minmax_delaying) return;=0A=
	minmax_delaying=3D true;=0A=
	window.setTimeout(minmax_layout, 0);=0A=
}=0A=
=0A=
function minmax_stopdelaying() {=0A=
	minmax_delaying=3D false;=0A=
}=0A=
=0A=
function minmax_layout() {=0A=
	window.setTimeout(minmax_stopdelaying, 100);=0A=
	var i, el, st, cs, optimal, inrange;=0A=
	for (i=3D minmax_elements.length; i-->0;) {=0A=
		el=3D minmax_elements[i]; st=3D el.style; cs=3D el.currentStyle;=0A=
=0A=
		st.width=3D st.minmaxWidth; optimal=3D el.offsetWidth;=0A=
		inrange=3D true;=0A=
		if (inrange && cs.minWidth && cs.minWidth!=3D'0' && =
cs.minWidth!=3D'auto' && cs.minWidth!=3D'') {=0A=
			st.width=3D cs.minWidth;=0A=
			inrange=3D (el.offsetWidth<optimal);=0A=
		}=0A=
		if (inrange && cs.maxWidth && cs.maxWidth!=3D'none' && =
cs.maxWidth!=3D'auto' && cs.maxWidth!=3D'') {=0A=
			st.width=3D cs.maxWidth;=0A=
			inrange=3D (el.offsetWidth>optimal);=0A=
		}=0A=
		if (inrange) st.width=3D st.minmaxWidth;=0A=
	}=0A=
}=0A=
=0A=
var minmax_SCANDELAY=3D 500;=0A=
=0A=
function minmax_scan() {=0A=
	var el;=0A=
	for (var i=3D 0; i<document.all.length; i++) {=0A=
		el=3D document.all[i];=0A=
		if (!el.minmax_bound) {=0A=
			el.minmax_bound=3D true;=0A=
			minmax_bind(el);=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
var minmax_scanner;=0A=
function minmax_stop() {=0A=
	window.clearInterval(minmax_scanner);=0A=
	minmax_scan();=0A=
}=0A=
=0A=
minmax_scan();=0A=
minmax_scanner=3D window.setInterval(minmax_scan, minmax_SCANDELAY);=0A=
window.attachEvent('onload', minmax_stop);=0A=
=0A=
@end @*/=0A=

------=_NextPart_000_001B_01C86CC7.7F2C4AC0--

