From: <Salvato da Windows Internet Explorer 7>
Subject: Luca Carboni - LUCA CARBONI PREMIATO AL PREMIO VIDEOCLIP ITALIANO
Date: Tue, 16 Jan 2007 21:01:00 +0100
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_02F4_01C739B1.6D583380"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028

This is a multi-part message in MIME format.

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/news/luca-carboni-premiato-al-premio-videoclip-italiano.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Luca Carboni - =
LUCA CARBONI PREMIATO AL PREMIO VIDEOCLIP ITALIANO</TITLE>
<META content=3D"LUCA CARBONI PREMIATO AL PREMIO VIDEOCLIP ITALIANO" =
name=3Dtitle>
<META content=3Dmichele name=3Dauthor>
<META content=3D"Luca Carboni official site" name=3Ddescription>
<META=20
content=3D"Luca Carboni, LE BAND SI SCIOLGONO, INTANTO DUSTIN HOFFMAN =
NON SBAGLIA UN FILM , FOREVER , LUCA CARBONI , PERSONE SILENZIOSE , =
CARBONI , MONDO , CAROVANA , e LU.CA, luca carboni malinconia testo =
,discografia luca carboni ,luca carboni discografia ,malinconia luca =
carboni testo, alzando gli occhi al cielo, mando le donne, utoritratto, =
aila sad jack, atte il cuore, aldino, aro gesu&amp;#039;, hicchi di =
grano, hiudi gli occhi, ci sei perche?, ci si dimentica, ci stiamo =
sbagliando, ci vuole un fisico bestiale, colori, condomini del mondo, =
continuate cosi&amp;#039;, deserto, =E8 caduta una stella, estranei, ex. =
t. blu 1996, faccio i conti con te, farfallina, ferite, fragole buone =
buone, giovani disponibili, gli autobus di notte, i problemi della =
gente, i ragazzi che si amano, il cowboy, il mio cuore fa ciok !, il =
punto, il tempo dell&amp;#039; amore, inno nazionale, kalore, =
l&amp;#039; amore che cos&amp;#039;e&amp;#039;, la casa, la cravatta, la =
mamma, la mia citta&amp;#039;, la mia isola, la mia ragazza, la nostra =
storia, l&amp;#039;amore non lo sa, lampo di vita, l&amp;#039;avvenire =
carboni, le band, le case d&amp;#039;inverno, le nostre parole, le =
parole, le storie d=92amore, li vedi, lungomare, ma che amore =
incredibile, macedonia polare, malinconia, mare mare, =
mercoledi&amp;#039;, mi ami davvero, mix 1992, ni na na, ninna nanna, =
non e&amp;#039;, nuovo mondo, o e&amp;#039; natale tutti i giorni =85., =
occidente&amp;amp;oriente, onda, pensieri al tramonto, persone =
silenziose, pregare x il mondo, primavera, quante cose, quante =
verita&amp;#039;, questa sera, sar=E0 un uomo, segni del tempo, =
settembre, sexy, siamo le stelle del cielo, silvia lo sai, simmu gente =
ca nun sa, solarium, solo un disco che gira, spider, stellina (dei =
cantautori), sto pensando, sto perdendo tempo =85, sugo, te che non so =
chi sei, tempo che passi, una rosa per te, vedo risorgere il sole, vieni =
a vivere con me, virtuale, voglia di piangere, voglia di vivere"=20
name=3Dkeywords>
<META content=3D"MSHTML 6.00.5730.11" name=3DGENERATOR>
<META content=3D"index, follow" name=3Drobots><LINK=20
href=3D"http://www.carboni.it/images/favicon.ico" rel=3D"shortcut icon">
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1"><LINK=20
href=3D"/images/favicon.ico" rel=3D"SHORTCUT ICON"><LINK=20
href=3D"http://www.carboni.it/templates/carboni_news/css/lucacarboni.css"=
=20
type=3Dtext/css rel=3Dstylesheet><LINK=20
href=3D"http://www.carboni.it/templates/carboni_news/css/lightbox.css"=20
type=3Dtext/css rel=3Dstylesheet>
<SCRIPT=20
src=3D"http://www.carboni.it/templates/carboni_news/js/AC_RunActiveConten=
t.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://www.carboni.it/templates/carboni_news/js/prototype.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.carboni.it/templates/carboni_news/js/scriptaculous.js?l=
oad=3Deffects"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://www.carboni.it/templates/carboni_news/js/lightbox.js"=20
type=3Dtext/javascript></SCRIPT>
</HEAD>
<BODY><IMG height=3D150 alt=3D"luca carboni"=20
src=3D"http://www.carboni.it/templates/carboni_news/images/titolo.gif"=20
width=3D833><BR>
<TABLE cellSpacing=3D0 cellPadding=3D0 width=3D980 border=3D0>
  <TBODY>
  <TR>
    <TD class=3Dtabmenunews vAlign=3Dbottom height=3D50>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dmenu><!-- top menu -->
            <TABLE class=3Dmoduletable cellSpacing=3D0 cellPadding=3D0>
              <TBODY>
              <TR>
                <TD>
                  <TABLE cellSpacing=3D1 cellPadding=3D0 width=3D"100%" =
border=3D0>
                    <TBODY>
                    <TR>
                      <TD noWrap><A class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/home/index.php">Home</A><A=20
                        class=3Dmainlevel id=3Dactive_menu=20
                        =
href=3D"http://www.carboni.it/news/index.php">News</A><A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/discografia/index.php">DISCOGRAFIA</A><A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/testi/index.php">Testi</A><A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/tour/appuntamenti-2.html">Appuntamenti</A><=
A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/le-band-si-sciolgono/video.html">Video</A><=
A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/libro/index.php">Libro</A><A=20
                        class=3Dmainlevel=20
                        =
href=3D"http://www.carboni.it/contatti/contatti.html">contatti</A></TD></=
TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></=
TD></TR>
  <TR>
    <TD height=3D10><IMG height=3D10=20
      src=3D"http://www.carboni.it/images/templates/spacer.gif" =
width=3D10></TD></TR>
  <TR>
    <TD>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dtabcontienenews vAlign=3Dtop width=3D600>
            <TABLE class=3Dcontentpaneopen_header>
              <TBODY>
              <TR>
              <TR>
                <TD vAlign=3Dtop colSpan=3D2><SPAN =
class=3Dcreatedate>gioved=EC 16=20
                  novembre 2006 </SPAN></TD></TR>
              <TR>
                <TD class=3Dcontentheading width=3D"100%">LUCA CARBONI =
PREMIATO AL=20
                  PREMIO VIDEOCLIP ITALIANO </TD>
                <TD class=3Dbuttonheading align=3Dright =
width=3D"100%"><A=20
                  title=3DStampa=20
                  =
onclick=3D"window.open('http://www.carboni.it/index2.php?option=3Dcom_con=
tent&amp;task=3Dview&amp;id=3D158&amp;pop=3D1&amp;page=3D0&amp;Itemid=3D8=
','win2','status=3Dno,toolbar=3Dno,scrollbars=3Dyes,titlebar=3Dno,menubar=
=3Dno,resizable=3Dyes,width=3D640,height=3D480,directories=3Dno,location=3D=
no'); return false;"=20
                  =
href=3D"http://www.carboni.it/index2.php?option=3Dcom_content&amp;task=3D=
view&amp;id=3D158&amp;pop=3D1&amp;page=3D0&amp;Itemid=3D8"=20
                  target=3D_blank><IMG alt=3DStampa=20
                  =
src=3D"http://www.carboni.it/images/M_images/printButton.png"=20
                  align=3Dmiddle border=3D0 name=3DStampa></A> </TD>
              <TR>
                <TD vAlign=3Dtop align=3Dleft width=3D"70%" =
colSpan=3D2><SPAN=20
                  class=3Dsmall>Autore: Ufficio stampa =
</SPAN>&nbsp;&nbsp;=20
              </TD></TR></TR></TBODY></TABLE>
            <TABLE class=3Dcontentpaneopen>
              <TBODY>
              <TR>
                <TD vAlign=3Dtop colSpan=3D2>LUCA CARBONI<BR>Vincitore=20
                  del&nbsp;=93PREMIO SPECIALE PER IL VIDEOCLIP =
D=92ANIMAZIONE=94<BR>al=20
                  premio Videoclip Italiano 2006<BR>&nbsp;<BR>IN =
PROGRAMMA=20
                  VENERDI ore 15.30 ALLO IULM di Milano<BR>&nbsp;<BR>Il =
17=20
                  novembre sar=E0 consegnato a Luca Carboni il "Premio =
Speciale=20
                  per il Videoclip d'Animazione" in occasione =
dell=92ottava=20
                  edizione del Premio Videoclip Italiano, la pi=F9 =
importante=20
                  manifestazione italiana dedicata al videoclip.<BR>Il=20
                  riconoscimento sar=E0 assegnato al termine dei lavori =
della=20
                  seconda Giornata Professionale delle Videomusica, =
presso=20
                  l'aula Meucci dell'Universit=E0 IULM di Milano, =
nell'ambito di=20
                  un incontro che si terr=E0 a partire dalle ore 15.30, =
in cui=20
                  Luca Carboni presenter=E0 le tre opere insieme al =
regista Marco=20
                  Pavone.<BR>La targa =E8 stata attribuita per i pregi =
artistici=20
                  del trittico di video in animazione realizzati dal =
regista=20
                  Marco Pavone per altrettanti brani del nuovo album del =

                  cantautore bolognese "... Le band si sciolgono" (Sony =
Bmg=20
                  Music Entertainment).<BR>Definita trilogia del =
viaggio, i tre=20
                  clip animati sono stati realizzati per i brani =
"Malinconia",=20
                  "Sto pensando" e "La mia isola" e sono contenuti nella =

                  versione =93Limted edition=94 nel formato combo de =
"... Le band si=20
                  sciolgono" che contiene oltre al cd il dvd con i=20
                  video.<BR>&nbsp;<BR>L'incontro sar=E0 coordinato dal =
direttore=20
                  del Premio, Domenico Liggeri, docente di Videomusica =
nella=20
                  stessa =
Universit=E0.<BR></TD></TR></TBODY></TABLE><SPAN=20
            class=3Darticle_seperator>&nbsp;</SPAN>=20
            <TABLE style=3D"MARGIN-TOP: 25px" align=3Dcenter>
              <TBODY>
              <TR>
                <TH class=3Dpagenav_prev><A=20
                  =
href=3D"http://www.carboni.it/news/markette-rinviato-alla-prossima-settim=
ana.html">&lt;&lt;</A>=20
                </TH>
                <TD width=3D50>&nbsp; </TD>
                <TH class=3Dpagenav_next><A=20
                  =
href=3D"http://www.carboni.it/news/luca-carboni-a-markette.html">&gt;&gt;=
</A>=20
                </TH></TR></TBODY></TABLE></TD>
          <TD vAlign=3Dtop width=3D5><IMG height=3D5=20
            src=3D"http://www.carboni.it/images/templates/spacer.gif" =
width=3D5></TD>
          <TD class=3Dbandabannernews vAlign=3Dtop =
width=3D215>&nbsp;</TD>
          <TD vAlign=3Dtop width=3D5><IMG height=3D5=20
            src=3D"http://www.carboni.it/images/templates/spacer.gif" =
width=3D5></TD>
          <TD vAlign=3Dtop width=3D155>
            <SCRIPT type=3Dtext/javascript>
AC_FL_RunContent( =
'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swfla=
sh.cab#version=3D7,0,19,0','width','155','height','505','src','/images/ba=
nnerlungo','quality','high','pluginspage','http://www.macromedia.com/go/g=
etflashplayer','movie','/images/bannerlungo','wmode','opaque' ); //end =
AC code
        </SCRIPT>
            <NOSCRIPT>
            <OBJECT=20
            =
codeBase=3Dhttp://download.macromedia.com/pub/shockwave/cabs/flash/swflas=
h.cab#version=3D7,0,19,0=20
            height=3D505 width=3D155=20
            classid=3Dclsid:D27CDB6E-AE6D-11cf-96B8-444553540000><PARAM =
NAME=3D"movie" VALUE=3D"/images/bannerlungo.swf"><PARAM NAME=3D"quality" =
VALUE=3D"high"><PARAM NAME=3D"wmode" VALUE=3D"opaque">
                                    			            <embed=20
            src=3D"/images/bannerlungo.swf" quality=3D"high"=20
            pluginspage=3D"http://www.macromedia.com/go/getflashplayer"=20
            type=3D"application/x-shockwave-flash" width=3D"155" =
height=3D"505"=20
            wmode=3D"opaque" ></embed>       =20
      =
</OBJECT></NOSCRIPT></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><=
SPAN=20
class=3Ddiritti>Copyright =A9 2006-2007 Luca Carboni.<BR>Tutti i diritti =
riservati.=20
<DIV align=3Dcenter></DIV></SPAN><!-- 1168975336 --></BODY></HTML>

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.carboni.it/templates/carboni_news/images/titolo.gif

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

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.carboni.it/images/templates/spacer.gif

R0lGODlhAQABAJH/AP///wAAAP///wAAACH/C0FET0JFOklSMS4wAt7tACH5BAEAAAIALAAAAAAB
AAEAAAICVAEAOw==

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.carboni.it/images/M_images/printButton.png

iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAALHRFWHRDcmVhdGlvbiBUaW1lAEZy
aSAyMyBKdWwgMjAwNCAyMTowMjo1MSAtMDAwMNyxebkAAAAHdElNRQfUBxcUAwwDIVPrAAAACXBI
WXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGPC/xhBQAAAEJQTFRF////ra2thISEa2trY2Nj////
3t7e7+/v5+fnpaWlxsbGvb29nJyctbW1jIyM1tbWlJSUzs7O9/f3c3NzQkJCSkpKXayfZAAAAAF0
Uk5TAEDm2GYAAACmSURBVHjaJc5ZgsQgCARQ3AqEENSeuf9Vm6TLv2chEhFpAIHYbvSLYWQOtr2i
7iUSWOKoJuCcPU82OLteaD13M4eOwIr35wEW/dQ9GOTUiK4hWv/+l0mQ7kZ6sdbPZL4VoWjkG0XP
YGv2/KZT0TgHOld3gUoC9tbiFisBCfPiHB1DfIWYPFvuqDFi3Y5sJNDsU+0qYBF/geoYAHMC8wul
tkzP01r9Al9HB+OXAZCeAAAAAElFTkSuQmCC

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/css/lucacarboni.css

BODY {
	MARGIN-TOP: 0px; FONT: 12px/15px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 10px
}
SELECT {
	MARGIN-TOP: 0px; FONT: 12px/15px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 10px
}
inputbox {
	MARGIN-TOP: 0px; FONT: 12px/15px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 10px
}
.back_button A {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav_next {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav_next A {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav_prev {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav_prev A {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 9px/12px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.pagenav .pagescounter {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; MARGIN-BOTTOM: 3px; =
PADDING-BOTTOM: 2px; FONT: bold 10px/13px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.diritti {
	FONT-SIZE: 9px; BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #333; =
COLOR: #ffffff; BORDER-TOP-COLOR: #333; FONT-FAMILY: "Trebuchet MS", =
Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #333; =
BORDER-RIGHT-COLOR: #333
}
.tabmenu {
	BACKGROUND: url(/images/templates/sfondorosso.gif); FONT: bold =
12px/15px "Trebuchet MS", Arial, Helvetica, sans-serif; COLOR: #000000
}
.tabmenunews {
	BACKGROUND: url(/images/templates/azzurronews.jpg) #6ee7e3; FONT: bold =
12px/15px "Trebuchet MS", Arial, Helvetica, sans-serif; COLOR: #000000
}
.tabcontienenews {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND: =
url(/images/templates/bg_news.gif) #cccccc; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.contentpaneopen {
	BORDER-RIGHT: #6ee7e3 3px double; PADDING-RIGHT: 5px; BORDER-TOP: =
#6ee7e3 3px double; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: =
5px; BORDER-LEFT: #6ee7e3 3px double; WIDTH: 100%; COLOR: #333333; =
PADDING-TOP: 5px; BORDER-BOTTOM: #6ee7e3 3px double; FONT-FAMILY: =
"Trebuchet MS", Helvetica, sans-serif; BACKGROUND-COLOR: #ffffff
}
.itemstable {
	BORDER-RIGHT: #6ee7e3 3px double; PADDING-RIGHT: 5px; BORDER-TOP: =
#6ee7e3 3px double; PADDING-LEFT: 5px; FONT-SIZE: 12px; PADDING-BOTTOM: =
5px; BORDER-LEFT: #6ee7e3 3px double; WIDTH: 100%; COLOR: #333333; =
PADDING-TOP: 5px; BORDER-BOTTOM: #6ee7e3 3px double; FONT-FAMILY: =
"Trebuchet MS", Helvetica, sans-serif; BACKGROUND-COLOR: #ffffff
}
.contentpaneopen_header {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; WIDTH: =
100%; COLOR: #333333; PADDING-TOP: 0px; BACKGROUND-COLOR: #6ee7e3
}
.contentheading {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: =
18px; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; COLOR: #333333; =
LINE-HEIGHT: 20px; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet MS", =
Helvetica, sans-serif; BACKGROUND-COLOR: #6ee7e3
}
.small {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: =
10px; PADDING-BOTTOM: 0px; COLOR: #6ee7e3; PADDING-TOP: 0px; =
FONT-FAMILY: "Trebuchet MS", Helvetica, sans-serif; BACKGROUND-COLOR: =
#333333
}
.createdate {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: =
10px; PADDING-BOTTOM: 0px; COLOR: #6ee7e3; PADDING-TOP: 0px; =
FONT-FAMILY: "Trebuchet MS", Helvetica, sans-serif; BACKGROUND-COLOR: =
#333333
}
.bandabannernews {
	BACKGROUND-IMAGE: url(/images/templates/sfondo_colonna_news.gif)
}
.diritti {
	FONT-SIZE: 9px; BORDER-LEFT-COLOR: #333; BORDER-BOTTOM-COLOR: #333; =
COLOR: #ffffff; BORDER-TOP-COLOR: #333; FONT-FAMILY: "Trebuchet MS", =
Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #333; =
BORDER-RIGHT-COLOR: #333
}
A.mainlevel:link {
	BORDER-RIGHT: #fff 2px solid; PADDING-RIGHT: 7px; FLOAT: left; FONT: =
bold 12px/15px "Trebuchet MS", Arial, Helvetica, sans-serif; =
TEXT-TRANSFORM: uppercase; COLOR: #fff; MARGIN-RIGHT: 7px; =
TEXT-DECORATION: none
}
A.mainlevel:visited {
	BORDER-RIGHT: #fff 2px solid; PADDING-RIGHT: 7px; FLOAT: left; FONT: =
bold 12px/15px "Trebuchet MS", Arial, Helvetica, sans-serif; =
TEXT-TRANSFORM: uppercase; COLOR: #fff; MARGIN-RIGHT: 7px; =
TEXT-DECORATION: none
}
A.mainlevel:hover {
	COLOR: #333; TEXT-DECORATION: none
}
A.mainlevel#active_menu {
	FONT: bold 12px/15px "Trebuchet MS", Arial, Helvetica, sans-serif; =
COLOR: #333; TEXT-DECORATION: none
}
A.mainlevel#active_menu:hover {
	COLOR: #333; TEXT-DECORATION: none
}
.back_button A {
	PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FLOAT: right; MARGIN-BOTTOM: =
3px; PADDING-BOTTOM: 2px; FONT: bold 8px/11px "Trebuchet MS", Arial, =
Helvetica, sans-serif; MARGIN-LEFT: 7px; TEXT-TRANSFORM: uppercase; =
COLOR: #fff; MARGIN-RIGHT: 7px; BACKGROUND-COLOR: #333; TEXT-DECORATION: =
none
}
.sectiontableheader {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: =
18px; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; COLOR: #333333; =
LINE-HEIGHT: 20px; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet MS", =
Helvetica, sans-serif; BACKGROUND-COLOR: #6ee7e3
}
.componentheading {
	PADDING-RIGHT: 12px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: =
18px; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; COLOR: #333333; =
LINE-HEIGHT: 20px; PADDING-TOP: 0px; FONT-FAMILY: "Trebuchet MS", =
Helvetica, sans-serif; BACKGROUND-COLOR: #6ee7e3
}
.sectiontableentry1 {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry1 A:link {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry1 A:active {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry1 A:visited {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry2 {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry2 A:link {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry2 A:active {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry2 A:visited {
	FLOAT: left; FONT: bold 12px/20px "Trebuchet MS", Arial, Helvetica, =
sans-serif; MARGIN-LEFT: 5px; TEXT-TRANSFORM: uppercase; WIDTH: 99%; =
COLOR: #404040; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.sectiontableentry1 A:hover {
	COLOR: #e80e10
}
.sectiontableentry2 A:hover {
	COLOR: #e80e10
}

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/css/lightbox.css

#lightbox {
	Z-INDEX: 100; LEFT: 0px; WIDTH: 100%; LINE-HEIGHT: 0; POSITION: =
absolute; TOP: 40px; TEXT-ALIGN: center
}
#lightbox A IMG {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#outerImageContainer {
	MARGIN: 0px auto; WIDTH: 250px; POSITION: relative; HEIGHT: 250px; =
BACKGROUND-COLOR: #fff
}
#imageContainer {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#loading {
	LEFT: 0%; WIDTH: 100%; LINE-HEIGHT: 0; POSITION: absolute; TOP: 40%; =
HEIGHT: 25%; TEXT-ALIGN: center
}
#hoverNav {
	Z-INDEX: 10; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px; =
HEIGHT: 100%
}
#imageContainer > #hoverNav {
	LEFT: 0px
}
#hoverNav A {
	outline: none
}
#prevLink {
	DISPLAY: block; BACKGROUND: url(../images/blank.gif) no-repeat; WIDTH: =
49%; HEIGHT: 100%
}
#nextLink {
	DISPLAY: block; BACKGROUND: url(../images/blank.gif) no-repeat; WIDTH: =
49%; HEIGHT: 100%
}
#prevLink {
	LEFT: 0px; FLOAT: left
}
#nextLink {
	RIGHT: 0px; FLOAT: right
}
#prevLink:hover {
	BACKGROUND: url(../images/prevlabel.gif) no-repeat left 15%
}
#prevLink:hover:visited {
	BACKGROUND: url(../images/prevlabel.gif) no-repeat left 15%
}
#nextLink:hover {
	BACKGROUND: url(../images/nextlabel.gif) no-repeat right 15%
}
#nextLink:hover:visited {
	BACKGROUND: url(../images/nextlabel.gif) no-repeat right 15%
}
#imageDataContainer {
	MARGIN: 0px auto; FONT: 10px/1.4em Verdana, Helvetica, sans-serif; =
BACKGROUND-COLOR: #fff
}
#imageData {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#imageData #imageDetails {
	FLOAT: left; WIDTH: 70%; TEXT-ALIGN: left
}
#imageData #caption {
	FONT-WEIGHT: bold
}
#imageData #numberDisplay {
	CLEAR: left; DISPLAY: block; PADDING-BOTTOM: 1em
}
#imageData #bottomNavClose {
	FLOAT: right; PADDING-BOTTOM: 0.7em; WIDTH: 66px
}
#overlay {
	Z-INDEX: 90; FILTER: alpha(opacity=3D60); LEFT: 0px; WIDTH: 100%; =
POSITION: absolute; TOP: 0px; HEIGHT: 500px; BACKGROUND-COLOR: #000; =
-moz-opacity: 0.6; opacity: 0.6
}
.clearfix:unknown {
	CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: =
"."
}
* HTML > BODY .clearfix {
	DISPLAY: inline-block; WIDTH: 100%
}
* HTML .clearfix {
	HEIGHT: 1%
}

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/js/AC_RunActiveContent.js

//v1.0=0A=
//Copyright 2006 Adobe Systems, Inc. All rights reserved.=0A=
function AC_AddExtension(src, ext)=0A=
{=0A=
  if (src.indexOf('?') !=3D -1)=0A=
    return src.replace(/\?/, ext+'?'); =0A=
  else=0A=
    return src + ext;=0A=
}=0A=
=0A=
function AC_Generateobj(objAttrs, params, embedAttrs) =0A=
{ =0A=
  var str =3D '<object ';=0A=
  for (var i in objAttrs)=0A=
    str +=3D i + '=3D"' + objAttrs[i] + '" ';=0A=
  str +=3D '>';=0A=
  for (var i in params)=0A=
    str +=3D '<param name=3D"' + i + '" value=3D"' + params[i] + '" /> ';=0A=
  str +=3D '<embed ';=0A=
  for (var i in embedAttrs)=0A=
    str +=3D i + '=3D"' + embedAttrs[i] + '" ';=0A=
  str +=3D ' ></embed></object>';=0A=
=0A=
  document.write(str);=0A=
}=0A=
=0A=
function AC_FL_RunContent(){=0A=
  var ret =3D =0A=
    AC_GetArgs=0A=
    (  arguments, ".swf", "movie", =
"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"=0A=
     , "application/x-shockwave-flash"=0A=
    );=0A=
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);=0A=
}=0A=
=0A=
function AC_SW_RunContent(){=0A=
  var ret =3D =0A=
    AC_GetArgs=0A=
    (  arguments, ".dcr", "src", =
"clsid:166B1BCA-3F9C-11CF-8075-444553540000"=0A=
     , null=0A=
    );=0A=
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);=0A=
}=0A=
=0A=
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){=0A=
  var ret =3D new Object();=0A=
  ret.embedAttrs =3D new Object();=0A=
  ret.params =3D new Object();=0A=
  ret.objAttrs =3D new Object();=0A=
  for (var i=3D0; i < args.length; i=3Di+2){=0A=
    var currArg =3D args[i].toLowerCase();    =0A=
=0A=
    switch (currArg){	=0A=
      case "classid":=0A=
        break;=0A=
      case "pluginspage":=0A=
        ret.embedAttrs[args[i]] =3D args[i+1];=0A=
        break;=0A=
      case "src":=0A=
      case "movie":	=0A=
        args[i+1] =3D AC_AddExtension(args[i+1], ext);=0A=
        ret.embedAttrs["src"] =3D args[i+1];=0A=
        ret.params[srcParamName] =3D args[i+1];=0A=
        break;=0A=
      case "onafterupdate":=0A=
      case "onbeforeupdate":=0A=
      case "onblur":=0A=
      case "oncellchange":=0A=
      case "onclick":=0A=
      case "ondblClick":=0A=
      case "ondrag":=0A=
      case "ondragend":=0A=
      case "ondragenter":=0A=
      case "ondragleave":=0A=
      case "ondragover":=0A=
      case "ondrop":=0A=
      case "onfinish":=0A=
      case "onfocus":=0A=
      case "onhelp":=0A=
      case "onmousedown":=0A=
      case "onmouseup":=0A=
      case "onmouseover":=0A=
      case "onmousemove":=0A=
      case "onmouseout":=0A=
      case "onkeypress":=0A=
      case "onkeydown":=0A=
      case "onkeyup":=0A=
      case "onload":=0A=
      case "onlosecapture":=0A=
      case "onpropertychange":=0A=
      case "onreadystatechange":=0A=
      case "onrowsdelete":=0A=
      case "onrowenter":=0A=
      case "onrowexit":=0A=
      case "onrowsinserted":=0A=
      case "onstart":=0A=
      case "onscroll":=0A=
      case "onbeforeeditfocus":=0A=
      case "onactivate":=0A=
      case "onbeforedeactivate":=0A=
      case "ondeactivate":=0A=
      case "type":=0A=
      case "codebase":=0A=
        ret.objAttrs[args[i]] =3D args[i+1];=0A=
        break;=0A=
      case "width":=0A=
      case "height":=0A=
      case "align":=0A=
      case "vspace": =0A=
      case "hspace":=0A=
      case "class":=0A=
      case "title":=0A=
      case "accesskey":=0A=
      case "name":=0A=
      case "id":=0A=
      case "tabindex":=0A=
        ret.embedAttrs[args[i]] =3D ret.objAttrs[args[i]] =3D args[i+1];=0A=
        break;=0A=
      default:=0A=
        ret.embedAttrs[args[i]] =3D ret.params[args[i]] =3D args[i+1];=0A=
    }=0A=
  }=0A=
  ret.objAttrs["classid"] =3D classid;=0A=
  if (mimeType) ret.embedAttrs["type"] =3D mimeType;=0A=
  return ret;=0A=
}=0A=

------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/js/prototype.js

/*  Prototype JavaScript framework, version 1.4.0=0A=
 *  (c) 2005 Sam Stephenson <sam@conio.net>=0A=
 *=0A=
 *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please =
diff=0A=
 *  against the source tree, available from the Prototype darcs =
repository.=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *=0A=
 *  For details, see the Prototype web site: http://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.4.0',=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=0A=
=0A=
  emptyFunction: function() {},=0A=
  K: function(x) {return x}=0A=
}=0A=
=0A=
var Class =3D {=0A=
  create: function() {=0A=
    return function() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
var Abstract =3D new Object();=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.inspect =3D function(object) {=0A=
  try {=0A=
    if (object =3D=3D undefined) return 'undefined';=0A=
    if (object =3D=3D null) return 'null';=0A=
    return object.inspect ? object.inspect() : object.toString();=0A=
  } catch (e) {=0A=
    if (e instanceof RangeError) return '...';=0A=
    throw e;=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bind =3D function() {=0A=
  var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A=
  return function() {=0A=
    return __method.apply(object, args.concat($A(arguments)));=0A=
  }=0A=
}=0A=
=0A=
Function.prototype.bindAsEventListener =3D function(object) {=0A=
  var __method =3D this;=0A=
  return function(event) {=0A=
    return __method.call(object, event || window.event);=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    var digits =3D this.toString(16);=0A=
    if (this < 16) return '0' + digits;=0A=
    return digits;=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  }=0A=
});=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var lambda =3D arguments[i];=0A=
      try {=0A=
        returnValue =3D lambda();=0A=
        break;=0A=
      } catch (e) {}=0A=
    }=0A=
=0A=
    return returnValue;=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create();=0A=
PeriodicalExecuter.prototype =3D {=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback();=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
function $() {=0A=
  var elements =3D new Array();=0A=
=0A=
  for (var i =3D 0; i < arguments.length; i++) {=0A=
    var element =3D arguments[i];=0A=
    if (typeof element =3D=3D 'string')=0A=
      element =3D document.getElementById(element);=0A=
=0A=
    if (arguments.length =3D=3D 1)=0A=
      return element;=0A=
=0A=
    elements.push(element);=0A=
  }=0A=
=0A=
  return elements;=0A=
}=0A=
Object.extend(String.prototype, {=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(eval);=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    var text =3D document.createTextNode(this);=0A=
    div.appendChild(text);=0A=
    return div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';=0A=
  },=0A=
=0A=
  toQueryParams: function() {=0A=
    var pairs =3D this.match(/^\??(.*)$/)[1].split('&');=0A=
    return pairs.inject({}, function(params, pairString) {=0A=
      var pair =3D pairString.split('=3D');=0A=
      params[pair[0]] =3D pair[1];=0A=
      return params;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var oStringList =3D this.split('-');=0A=
    if (oStringList.length =3D=3D 1) return oStringList[0];=0A=
=0A=
    var camelizedString =3D this.indexOf('-') =3D=3D 0=0A=
      ? oStringList[0].charAt(0).toUpperCase() + =
oStringList[0].substring(1)=0A=
      : oStringList[0];=0A=
=0A=
    for (var i =3D 1, len =3D oStringList.length; i < len; i++) {=0A=
      var s =3D oStringList[i];=0A=
      camelizedString +=3D s.charAt(0).toUpperCase() + s.substring(1);=0A=
    }=0A=
=0A=
    return camelizedString;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return "'" + this.replace('\\', '\\\\').replace("'", '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var $break    =3D new Object();=0A=
var $continue =3D new Object();=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator) {=0A=
    var index =3D 0;=0A=
    try {=0A=
      this._each(function(value) {=0A=
        try {=0A=
          iterator(value, index++);=0A=
        } catch (e) {=0A=
          if (e !=3D $continue) throw e;=0A=
        }=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
  },=0A=
=0A=
  all: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!(iterator || Prototype.K)(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator) {=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!(iterator || Prototype.K)(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function (iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(pattern, iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      var stringValue =3D value.toString();=0A=
      if (stringValue.match(pattern))=0A=
        results.push((iterator || Prototype.K)(value, index));=0A=
    })=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inject: function(memo, iterator) {=0A=
    this.each(function(value, index) {=0A=
      memo =3D iterator(memo, value, index);=0A=
    });=0A=
    return memo;=0A=
  },=0A=
=0A=
  invoke: function(method) {=0A=
    var args =3D $A(arguments).slice(1);=0A=
    return this.collect(function(value) {=0A=
      return value[method].apply(value, args);=0A=
    });=0A=
  },=0A=
=0A=
  max: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (value >=3D (result || value))=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator) {=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D (iterator || Prototype.K)(value, index);=0A=
      if (value <=3D (result || value))=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator) {=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      ((iterator || Prototype.K)(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator) {=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator) {=0A=
    return this.collect(function(value, index) {=0A=
      return {value: value, criteria: iterator(value, index)};=0A=
    }).sort(function(left, right) {=0A=
      var a =3D left.criteria, b =3D right.criteria;=0A=
      return a < b ? -1 : a > b ? 1 : 0;=0A=
    }).pluck('value');=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.collect(Prototype.K);=0A=
  },=0A=
=0A=
  zip: function() {=0A=
    var iterator =3D Prototype.K, args =3D $A(arguments);=0A=
    if (typeof args.last() =3D=3D 'function')=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      iterator(value =3D collections.pluck(index));=0A=
      return value;=0A=
    });=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Enumerable, {=0A=
  map:     Enumerable.collect,=0A=
  find:    Enumerable.detect,=0A=
  select:  Enumerable.findAll,=0A=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray=0A=
});=0A=
var $A =3D Array.from =3D function(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) {=0A=
    return iterable.toArray();=0A=
  } else {=0A=
    var results =3D [];=0A=
    for (var i =3D 0; i < iterable.length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0; i < this.length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D undefined || value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value.constructor =3D=3D Array ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  indexOf: function(object) {=0A=
    for (var i =3D 0; i < this.length; i++)=0A=
      if (this[i] =3D=3D object) return i;=0A=
    return -1;=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  shift: function() {=0A=
    var result =3D this[0];=0A=
    for (var i =3D 0; i < this.length - 1; i++)=0A=
      this[i] =3D this[i + 1];=0A=
    this.length--;=0A=
    return result;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
var Hash =3D {=0A=
  _each: function(iterator) {=0A=
    for (key in this) {=0A=
      var value =3D this[key];=0A=
      if (typeof value =3D=3D 'function') continue;=0A=
=0A=
      var pair =3D [key, value];=0A=
      pair.key =3D key;=0A=
      pair.value =3D value;=0A=
      iterator(pair);=0A=
    }=0A=
  },=0A=
=0A=
  keys: function() {=0A=
    return this.pluck('key');=0A=
  },=0A=
=0A=
  values: function() {=0A=
    return this.pluck('value');=0A=
  },=0A=
=0A=
  merge: function(hash) {=0A=
    return $H(hash).inject($H(this), function(mergedHash, pair) {=0A=
      mergedHash[pair.key] =3D pair.value;=0A=
      return mergedHash;=0A=
    });=0A=
  },=0A=
=0A=
  toQueryString: function() {=0A=
    return this.map(function(pair) {=0A=
      return pair.map(encodeURIComponent).join('=3D');=0A=
    }).join('&');=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Hash:{' + this.map(function(pair) {=0A=
      return pair.map(Object.inspect).join(': ');=0A=
    }).join(', ') + '}>';=0A=
  }=0A=
}=0A=
=0A=
function $H(object) {=0A=
  var hash =3D Object.extend({}, object || {});=0A=
  Object.extend(hash, Enumerable);=0A=
  Object.extend(hash, Hash);=0A=
  return hash;=0A=
}=0A=
ObjectRange =3D Class.create();=0A=
Object.extend(ObjectRange.prototype, Enumerable);=0A=
Object.extend(ObjectRange.prototype, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    do {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    } while (this.include(value));=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
}=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')},=0A=
      function() {return new XMLHttpRequest()}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
}=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responderToAdd) {=0A=
    if (!this.include(responderToAdd))=0A=
      this.responders.push(responderToAdd);=0A=
  },=0A=
=0A=
  unregister: function(responderToRemove) {=0A=
    this.responders =3D this.responders.without(responderToRemove);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (responder[callback] && typeof responder[callback] =3D=3D =
'function') {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) {}=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate: function() {=0A=
    Ajax.activeRequestCount++;=0A=
  },=0A=
=0A=
  onComplete: function() {=0A=
    Ajax.activeRequestCount--;=0A=
  }=0A=
});=0A=
=0A=
Ajax.Base =3D function() {};=0A=
Ajax.Base.prototype =3D {=0A=
  setOptions: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
  },=0A=
=0A=
  responseIsSuccess: function() {=0A=
    return this.transport.status =3D=3D undefined=0A=
        || this.transport.status =3D=3D 0=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  responseIsFailure: function() {=0A=
    return !this.responseIsSuccess();=0A=
  }=0A=
}=0A=
=0A=
Ajax.Request =3D Class.create();=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(url, options) {=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    var parameters =3D this.options.parameters || '';=0A=
    if (parameters.length > 0) parameters +=3D '&_=3D';=0A=
=0A=
    try {=0A=
      this.url =3D url;=0A=
      if (this.options.method =3D=3D 'get' && parameters.length > 0)=0A=
        this.url +=3D (this.url.match(/\?/) ? '&' : '?') + parameters;=0A=
=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.options.method, this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous) {=0A=
        this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
        setTimeout((function() =
{this.respondToReadyState(1)}).bind(this), 10);=0A=
      }=0A=
=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.options.postBody ? this.options.postBody : =
parameters;=0A=
      this.transport.send(this.options.method =3D=3D 'post' ? body : =
null);=0A=
=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var requestHeaders =3D=0A=
      ['X-Requested-With', 'XMLHttpRequest',=0A=
       'X-Prototype-Version', Prototype.Version];=0A=
=0A=
    if (this.options.method =3D=3D 'post') {=0A=
      requestHeaders.push('Content-type',=0A=
        'application/x-www-form-urlencoded');=0A=
=0A=
      /* Force "Connection: close" for Mozilla browsers to work around=0A=
       * a bug where XMLHttpReqeuest sends an incorrect Content-length=0A=
       * header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType)=0A=
        requestHeaders.push('Connection', 'close');=0A=
    }=0A=
=0A=
    if (this.options.requestHeaders)=0A=
      requestHeaders.push.apply(requestHeaders, =
this.options.requestHeaders);=0A=
=0A=
    for (var i =3D 0; i < requestHeaders.length; i +=3D 2)=0A=
      this.transport.setRequestHeader(requestHeaders[i], =
requestHeaders[i+1]);=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState !=3D 1)=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  header: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) {}=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      return eval(this.header('X-JSON'));=0A=
    } catch (e) {}=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var event =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (event =3D=3D 'Complete') {=0A=
      try {=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.responseIsSuccess() ? 'Success' : =
'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      if ((this.header('Content-type') || =
'').match(/^text\/javascript/i))=0A=
        this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + event] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + event, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    /* Avoid memory leak in MSIE: clean up the oncomplete event handler =
*/=0A=
    if (event =3D=3D 'Complete')=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create();=0A=
=0A=
Object.extend(Object.extend(Ajax.Updater.prototype, =
Ajax.Request.prototype), {=0A=
  initialize: function(container, url, options) {=0A=
    this.containers =3D {=0A=
      success: container.success ? $(container.success) : $(container),=0A=
      failure: container.failure ? $(container.failure) :=0A=
        (container.success ? null : $(container))=0A=
    }=0A=
=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.setOptions(options);=0A=
=0A=
    var onComplete =3D this.options.onComplete || =
Prototype.emptyFunction;=0A=
    this.options.onComplete =3D (function(transport, object) {=0A=
      this.updateContent();=0A=
      onComplete(transport, object);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.responseIsSuccess() ?=0A=
      this.containers.success : this.containers.failure;=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts)=0A=
      response =3D response.stripScripts();=0A=
=0A=
    if (receiver) {=0A=
      if (this.options.insertion) {=0A=
        new this.options.insertion(receiver, response);=0A=
      } else {=0A=
        Element.update(receiver, response);=0A=
      }=0A=
    }=0A=
=0A=
    if (this.responseIsSuccess()) {=0A=
      if (this.onComplete)=0A=
        setTimeout(this.onComplete.bind(this), 10);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create();=0A=
Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A=
  initialize: function(container, url, options) {=0A=
    this.setOptions(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D {};=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(request) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (request.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D request.responseText;=0A=
    }=0A=
    this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A=
      this.decay * this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
  return $A(children).inject([], function(elements, child) {=0A=
    if (child.className.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      elements.push(child);=0A=
    return elements;=0A=
  });=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element) {=0A=
  var Element =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Element, {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    }=0A=
  },=0A=
=0A=
  hide: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      element.style.display =3D 'none';=0A=
    }=0A=
  },=0A=
=0A=
  show: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++) {=0A=
      var element =3D $(arguments[i]);=0A=
      element.style.display =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    element =3D $(element);=0A=
    return element.offsetHeight;=0A=
  },=0A=
=0A=
  classNames: function(element) {=0A=
    return new Element.ClassNames(element);=0A=
  },=0A=
=0A=
  hasClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).include(className);=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).add(className);=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return Element.classNames(element).remove(className);=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    for (var i =3D 0; i < element.childNodes.length; i++) {=0A=
      var node =3D element.childNodes[i];=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        Element.remove(node);=0A=
    }=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var x =3D element.x ? element.x : element.offsetLeft,=0A=
        y =3D element.y ? element.y : element.offsetTop;=0A=
    window.scrollTo(x, y);=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    var value =3D element.style[style.camelize()];=0A=
    if (!value) {=0A=
      if (document.defaultView && document.defaultView.getComputedStyle) =
{=0A=
        var css =3D document.defaultView.getComputedStyle(element, null);=0A=
        value =3D css ? css.getPropertyValue(style) : null;=0A=
      } else if (element.currentStyle) {=0A=
        value =3D element.currentStyle[style.camelize()];=0A=
      }=0A=
    }=0A=
=0A=
    if (window.opera && ['left', 'top', 'right', =
'bottom'].include(style))=0A=
      if (Element.getStyle(element, 'position') =3D=3D 'static') value =
=3D 'auto';=0A=
=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  setStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    for (name in style)=0A=
      element.style[name.camelize()] =3D style[name];=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    if (Element.getStyle(element, 'display') !=3D 'none')=0A=
      return {width: element.offsetWidth, height: element.offsetHeight};=0A=
=0A=
    // All *Width and *Height properties give 0 on elements with display =
none,=0A=
    // so enable the element temporarily=0A=
    var els =3D element.style;=0A=
    var originalVisibility =3D els.visibility;=0A=
    var originalPosition =3D els.position;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D '';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D 'none';=0A=
    els.position =3D originalPosition;=0A=
    els.visibility =3D originalVisibility;=0A=
    return {width: originalWidth, height: originalHeight};=0A=
  },=0A=
=0A=
  makePositioned: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Element.getStyle(element, 'position');=0A=
    if (pos =3D=3D 'static' || !pos) {=0A=
      element._madePositioned =3D true;=0A=
      element.style.position =3D 'relative';=0A=
      // Opera returns the offset relative to the positioning context, =
when an=0A=
      // element is position relative but top and left have not been =
defined=0A=
      if (window.opera) {=0A=
        element.style.top =3D 0;=0A=
        element.style.left =3D 0;=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return;=0A=
    element._overflow =3D element.style.overflow;=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return;=0A=
    element.style.overflow =3D element._overflow;=0A=
    element._overflow =3D undefined;=0A=
  }=0A=
});=0A=
=0A=
var Toggle =3D new Object();=0A=
Toggle.display =3D Element.toggle;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.Insertion =3D function(adjacency) {=0A=
  this.adjacency =3D adjacency;=0A=
}=0A=
=0A=
Abstract.Insertion.prototype =3D {=0A=
  initialize: function(element, content) {=0A=
    this.element =3D $(element);=0A=
    this.content =3D content.stripScripts();=0A=
=0A=
    if (this.adjacency && this.element.insertAdjacentHTML) {=0A=
      try {=0A=
        this.element.insertAdjacentHTML(this.adjacency, this.content);=0A=
      } catch (e) {=0A=
        if (this.element.tagName.toLowerCase() =3D=3D 'tbody') {=0A=
          this.insertContent(this.contentFromAnonymousTable());=0A=
        } else {=0A=
          throw e;=0A=
        }=0A=
      }=0A=
    } else {=0A=
      this.range =3D this.element.ownerDocument.createRange();=0A=
      if (this.initializeRange) this.initializeRange();=0A=
      =
this.insertContent([this.range.createContextualFragment(this.content)]);=0A=
    }=0A=
=0A=
    setTimeout(function() {content.evalScripts()}, 10);=0A=
  },=0A=
=0A=
  contentFromAnonymousTable: function() {=0A=
    var div =3D document.createElement('div');=0A=
    div.innerHTML =3D '<table><tbody>' + this.content + =
'</tbody></table>';=0A=
    return $A(div.childNodes[0].childNodes[0].childNodes);=0A=
  }=0A=
}=0A=
=0A=
var Insertion =3D new Object();=0A=
=0A=
Insertion.Before =3D Class.create();=0A=
Insertion.Before.prototype =3D Object.extend(new =
Abstract.Insertion('beforeBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartBefore(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment, this.element);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Top =3D Class.create();=0A=
Insertion.Top.prototype =3D Object.extend(new =
Abstract.Insertion('afterBegin'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(true);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.reverse(false).each((function(fragment) {=0A=
      this.element.insertBefore(fragment, this.element.firstChild);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.Bottom =3D Class.create();=0A=
Insertion.Bottom.prototype =3D Object.extend(new =
Abstract.Insertion('beforeEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.selectNodeContents(this.element);=0A=
    this.range.collapse(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.appendChild(fragment);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
Insertion.After =3D Class.create();=0A=
Insertion.After.prototype =3D Object.extend(new =
Abstract.Insertion('afterEnd'), {=0A=
  initializeRange: function() {=0A=
    this.range.setStartAfter(this.element);=0A=
  },=0A=
=0A=
  insertContent: function(fragments) {=0A=
    fragments.each((function(fragment) {=0A=
      this.element.parentNode.insertBefore(fragment,=0A=
        this.element.nextSibling);=0A=
    }).bind(this));=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set(this.toArray().concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set(this.select(function(className) {=0A=
      return className !=3D classNameToRemove;=0A=
    }).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.toArray().join(' ');=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Field =3D {=0A=
  clear: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++)=0A=
      $(arguments[i]).value =3D '';=0A=
  },=0A=
=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
  },=0A=
=0A=
  present: function() {=0A=
    for (var i =3D 0; i < arguments.length; i++)=0A=
      if ($(arguments[i]).value =3D=3D '') return false;=0A=
    return true;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select)=0A=
      element.select();=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Form =3D {=0A=
  serialize: function(form) {=0A=
    var elements =3D Form.getElements($(form));=0A=
    var queryComponents =3D new Array();=0A=
=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var queryComponent =3D Form.Element.serialize(elements[i]);=0A=
      if (queryComponent)=0A=
        queryComponents.push(queryComponent);=0A=
    }=0A=
=0A=
    return queryComponents.join('&');=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    form =3D $(form);=0A=
    var elements =3D new Array();=0A=
=0A=
    for (tagName in Form.Element.Serializers) {=0A=
      var tagElements =3D form.getElementsByTagName(tagName);=0A=
      for (var j =3D 0; j < tagElements.length; j++)=0A=
        elements.push(tagElements[j]);=0A=
    }=0A=
    return elements;=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name)=0A=
      return inputs;=0A=
=0A=
    var matchingInputs =3D new Array();=0A=
    for (var i =3D 0; i < inputs.length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) ||=0A=
          (name && input.name !=3D name))=0A=
        continue;=0A=
      matchingInputs.push(input);=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    var elements =3D Form.getElements(form);=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var element =3D elements[i];=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    }=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    var elements =3D Form.getElements(form);=0A=
    for (var i =3D 0; i < elements.length; i++) {=0A=
      var element =3D elements[i];=0A=
      element.disabled =3D '';=0A=
    }=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return Form.getElements(form).find(function(element) {=0A=
      return element.type !=3D 'hidden' && !element.disabled &&=0A=
        ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    Field.activate(Form.findFirstElement(form));=0A=
  },=0A=
=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
  }=0A=
}=0A=
=0A=
Form.Element =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    var parameter =3D Form.Element.Serializers[method](element);=0A=
=0A=
    if (parameter) {=0A=
      var key =3D encodeURIComponent(parameter[0]);=0A=
      if (key.length =3D=3D 0) return;=0A=
=0A=
      if (parameter[1].constructor !=3D Array)=0A=
        parameter[1] =3D [parameter[1]];=0A=
=0A=
      return parameter[1].map(function(value) {=0A=
        return key + '=3D' + encodeURIComponent(value);=0A=
      }).join('&');=0A=
    }=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    var parameter =3D Form.Element.Serializers[method](element);=0A=
=0A=
    if (parameter)=0A=
      return parameter[1];=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'submit':=0A=
      case 'hidden':=0A=
      case 'password':=0A=
      case 'text':=0A=
        return Form.Element.Serializers.textarea(element);=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
    }=0A=
    return false;=0A=
  },=0A=
=0A=
  inputSelector: function(element) {=0A=
    if (element.checked)=0A=
      return [element.name, element.value];=0A=
  },=0A=
=0A=
  textarea: function(element) {=0A=
    return [element.name, element.value];=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    return Form.Element.Serializers[element.type =3D=3D 'select-one' ?=0A=
      'selectOne' : 'selectMany'](element);=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var value =3D '', opt, index =3D element.selectedIndex;=0A=
    if (index >=3D 0) {=0A=
      opt =3D element.options[index];=0A=
      value =3D opt.value;=0A=
      if (!value && !('value' in opt))=0A=
        value =3D opt.text;=0A=
    }=0A=
    return [element.name, value];=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var value =3D new Array();=0A=
    for (var i =3D 0; i < element.length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) {=0A=
        var optValue =3D opt.value;=0A=
        if (!optValue && !('value' in opt))=0A=
          optValue =3D opt.text;=0A=
        value.push(optValue);=0A=
      }=0A=
    }=0A=
    return [element.name, value];=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var $F =3D Form.Element.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.TimedObserver =3D function() {}=0A=
Abstract.TimedObserver.prototype =3D {=0A=
  initialize: function(element, frequency, callback) {=0A=
    this.frequency =3D frequency;=0A=
    this.element   =3D $(element);=0A=
    this.callback  =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Observer =3D Class.create();=0A=
Form.Element.Observer.prototype =3D Object.extend(new =
Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create();=0A=
Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D function() {}=0A=
Abstract.EventObserver.prototype =3D {=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    var elements =3D Form.getElements(this.element);=0A=
    for (var i =3D 0; i < elements.length; i++)=0A=
      this.registerCallback(elements[i]);=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        case 'password':=0A=
        case 'text':=0A=
        case 'textarea':=0A=
        case 'select-one':=0A=
        case 'select-multiple':=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.EventObserver =3D Class.create();=0A=
Form.Element.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create();=0A=
Form.EventObserver.prototype =3D Object.extend(new =
Abstract.EventObserver(), {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) {=0A=
  var Event =3D new Object();=0A=
}=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
=0A=
  element: function(event) {=0A=
    return event.target || event.srcElement;=0A=
  },=0A=
=0A=
  isLeftClick: function(event) {=0A=
    return (((event.which) && (event.which =3D=3D 1)) ||=0A=
            ((event.button) && (event.button =3D=3D 1)));=0A=
  },=0A=
=0A=
  pointerX: function(event) {=0A=
    return event.pageX || (event.clientX +=0A=
      (document.documentElement.scrollLeft || document.body.scrollLeft));=0A=
  },=0A=
=0A=
  pointerY: function(event) {=0A=
    return event.pageY || (event.clientY +=0A=
      (document.documentElement.scrollTop || document.body.scrollTop));=0A=
  },=0A=
=0A=
  stop: function(event) {=0A=
    if (event.preventDefault) {=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
    } else {=0A=
      event.returnValue =3D false;=0A=
      event.cancelBubble =3D true;=0A=
    }=0A=
  },=0A=
=0A=
  // find the first node with the given tagName, starting from the=0A=
  // node the event was triggered on; traverses the DOM upwards=0A=
  findElement: function(event, tagName) {=0A=
    var element =3D Event.element(event);=0A=
    while (element.parentNode && (!element.tagName ||=0A=
        (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A=
      element =3D element.parentNode;=0A=
    return element;=0A=
  },=0A=
=0A=
  observers: false,=0A=
=0A=
  _observeAndCache: function(element, name, observer, useCapture) {=0A=
    if (!this.observers) this.observers =3D [];=0A=
    if (element.addEventListener) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.addEventListener(name, observer, useCapture);=0A=
    } else if (element.attachEvent) {=0A=
      this.observers.push([element, name, observer, useCapture]);=0A=
      element.attachEvent('on' + name, observer);=0A=
    }=0A=
  },=0A=
=0A=
  unloadCache: function() {=0A=
    if (!Event.observers) return;=0A=
    for (var i =3D 0; i < Event.observers.length; i++) {=0A=
      Event.stopObserving.apply(this, Event.observers[i]);=0A=
      Event.observers[i][0] =3D null;=0A=
    }=0A=
    Event.observers =3D false;=0A=
  },=0A=
=0A=
  observe: function(element, name, observer, useCapture) {=0A=
    var element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.attachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    this._observeAndCache(element, name, observer, useCapture);=0A=
  },=0A=
=0A=
  stopObserving: function(element, name, observer, useCapture) {=0A=
    var element =3D $(element);=0A=
    useCapture =3D useCapture || false;=0A=
=0A=
    if (name =3D=3D 'keypress' &&=0A=
        (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A=
        || element.detachEvent))=0A=
      name =3D 'keydown';=0A=
=0A=
    if (element.removeEventListener) {=0A=
      element.removeEventListener(name, observer, useCapture);=0A=
    } else if (element.detachEvent) {=0A=
      element.detachEvent('on' + name, observer);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
/* prevent memory leaks in IE */=0A=
Event.observe(window, 'unload', Event.unloadCache, false);=0A=
var Position =3D {=0A=
  // set to true if needed, warning: firefox performance problems=0A=
  // NOT neeeded for page scrolling, only if draggable contained in=0A=
  // scrollable elements=0A=
  includeScrollOffsets: false,=0A=
=0A=
  // must be called before calling withinIncludingScrolloffset, every =
time the=0A=
  // page is scrolled=0A=
  prepare: function() {=0A=
    this.deltaX =3D  window.pageXOffset=0A=
                || document.documentElement.scrollLeft=0A=
                || document.body.scrollLeft=0A=
                || 0;=0A=
    this.deltaY =3D  window.pageYOffset=0A=
                || document.documentElement.scrollTop=0A=
                || document.body.scrollTop=0A=
                || 0;=0A=
  },=0A=
=0A=
  realOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.scrollTop  || 0;=0A=
      valueL +=3D element.scrollLeft || 0;=0A=
      element =3D element.parentNode;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  cumulativeOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  positionedOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
      if (element) {=0A=
        p =3D Element.getStyle(element, 'position');=0A=
        if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A=
      }=0A=
    } while (element);=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  offsetParent: function(element) {=0A=
    if (element.offsetParent) return element.offsetParent;=0A=
    if (element =3D=3D document.body) return element;=0A=
=0A=
    while ((element =3D element.parentNode) && element !=3D =
document.body)=0A=
      if (Element.getStyle(element, 'position') !=3D 'static')=0A=
        return element;=0A=
=0A=
    return document.body;=0A=
  },=0A=
=0A=
  // caches x/y coordinate pair to use with overlap=0A=
  within: function(element, x, y) {=0A=
    if (this.includeScrollOffsets)=0A=
      return this.withinIncludingScrolloffsets(element, x, y);=0A=
    this.xcomp =3D x;=0A=
    this.ycomp =3D y;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (y >=3D this.offset[1] &&=0A=
            y <  this.offset[1] + element.offsetHeight &&=0A=
            x >=3D this.offset[0] &&=0A=
            x <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  withinIncludingScrolloffsets: function(element, x, y) {=0A=
    var offsetcache =3D this.realOffset(element);=0A=
=0A=
    this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A=
    this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A=
    this.offset =3D this.cumulativeOffset(element);=0A=
=0A=
    return (this.ycomp >=3D this.offset[1] &&=0A=
            this.ycomp <  this.offset[1] + element.offsetHeight &&=0A=
            this.xcomp >=3D this.offset[0] &&=0A=
            this.xcomp <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  // within must be called directly before=0A=
  overlap: function(mode, element) {=0A=
    if (!mode) return 0;=0A=
    if (mode =3D=3D 'vertical')=0A=
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A=
        element.offsetHeight;=0A=
    if (mode =3D=3D 'horizontal')=0A=
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A=
        element.offsetWidth;=0A=
  },=0A=
=0A=
  clone: function(source, target) {=0A=
    source =3D $(source);=0A=
    target =3D $(target);=0A=
    target.style.position =3D 'absolute';=0A=
    var offsets =3D this.cumulativeOffset(source);=0A=
    target.style.top    =3D offsets[1] + 'px';=0A=
    target.style.left   =3D offsets[0] + 'px';=0A=
    target.style.width  =3D source.offsetWidth + 'px';=0A=
    target.style.height =3D source.offsetHeight + 'px';=0A=
  },=0A=
=0A=
  page: function(forElement) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
=0A=
    var element =3D forElement;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
=0A=
      // Safari fix=0A=
      if (element.offsetParent=3D=3Ddocument.body)=0A=
        if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A=
=0A=
    } while (element =3D element.offsetParent);=0A=
=0A=
    element =3D forElement;=0A=
    do {=0A=
      valueT -=3D element.scrollTop  || 0;=0A=
      valueL -=3D element.scrollLeft || 0;=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return [valueL, valueT];=0A=
  },=0A=
=0A=
  clone: function(source, target) {=0A=
    var options =3D Object.extend({=0A=
      setLeft:    true,=0A=
      setTop:     true,=0A=
      setWidth:   true,=0A=
      setHeight:  true,=0A=
      offsetTop:  0,=0A=
      offsetLeft: 0=0A=
    }, arguments[2] || {})=0A=
=0A=
    // find page position of source=0A=
    source =3D $(source);=0A=
    var p =3D Position.page(source);=0A=
=0A=
    // find coordinate system to use=0A=
    target =3D $(target);=0A=
    var delta =3D [0, 0];=0A=
    var parent =3D null;=0A=
    // delta [0,0] will do fine with position: fixed elements,=0A=
    // position:absolute needs offsetParent deltas=0A=
    if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A=
      parent =3D Position.offsetParent(target);=0A=
      delta =3D Position.page(parent);=0A=
    }=0A=
=0A=
    // correct by body offsets (fixes Safari)=0A=
    if (parent =3D=3D document.body) {=0A=
      delta[0] -=3D document.body.offsetLeft;=0A=
      delta[1] -=3D document.body.offsetTop;=0A=
    }=0A=
=0A=
    // set position=0A=
    if(options.setLeft)   target.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';=0A=
    if(options.setTop)    target.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';=0A=
    if(options.setWidth)  target.style.width =3D source.offsetWidth + =
'px';=0A=
    if(options.setHeight) target.style.height =3D source.offsetHeight + =
'px';=0A=
  },=0A=
=0A=
  absolutize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'absolute') return;=0A=
    Position.prepare();=0A=
=0A=
    var offsets =3D Position.positionedOffset(element);=0A=
    var top     =3D offsets[1];=0A=
    var left    =3D offsets[0];=0A=
    var width   =3D element.clientWidth;=0A=
    var height  =3D element.clientHeight;=0A=
=0A=
    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);=0A=
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);=0A=
    element._originalWidth  =3D element.style.width;=0A=
    element._originalHeight =3D element.style.height;=0A=
=0A=
    element.style.position =3D 'absolute';=0A=
    element.style.top    =3D top + 'px';;=0A=
    element.style.left   =3D left + 'px';;=0A=
    element.style.width  =3D width + 'px';;=0A=
    element.style.height =3D height + 'px';;=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.style.position =3D=3D 'relative') return;=0A=
    Position.prepare();=0A=
=0A=
    element.style.position =3D 'relative';=0A=
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);=0A=
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);=0A=
=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.height =3D element._originalHeight;=0A=
    element.style.width  =3D element._originalWidth;=0A=
  }=0A=
}=0A=
=0A=
// Safari returns margins on body which is incorrect if the child is =
absolutely=0A=
// positioned.  For performance reasons, redefine =
Position.cumulativeOffset for=0A=
// KHTML/WebKit only.=0A=
if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A=
  Position.cumulativeOffset =3D function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      if (element.offsetParent =3D=3D document.body)=0A=
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;=0A=
=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
=0A=
    return [valueL, valueT];=0A=
  }=0A=
}
------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/js/scriptaculous.js?load=effects

// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// =0A=
// Permission is hereby granted, free of charge, to any person obtaining=0A=
// a copy of this software and associated documentation files (the=0A=
// "Software"), to deal in the Software without restriction, including=0A=
// without limitation the rights to use, copy, modify, merge, publish,=0A=
// distribute, sublicense, and/or sell copies of the Software, and to=0A=
// permit persons to whom the Software is furnished to do so, subject to=0A=
// the following conditions:=0A=
// =0A=
// The above copyright notice and this permission notice shall be=0A=
// included in all copies or substantial portions of the Software.=0A=
//=0A=
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,=0A=
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF=0A=
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND=0A=
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE=0A=
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION=0A=
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION=0A=
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.=0A=
=0A=
var Scriptaculous =3D {=0A=
  Version: '1.5.1',=0A=
  require: function(libraryName) {=0A=
    // inserting via DOM fails in Safari 2.0, so brute force approach=0A=
    document.write('<script type=3D"text/javascript" =
src=3D"'+libraryName+'"></script>');=0A=
  },=0A=
  load: function() {=0A=
    if((typeof Prototype=3D=3D'undefined') ||=0A=
      parseFloat(Prototype.Version.split(".")[0] + "." +=0A=
                 Prototype.Version.split(".")[1]) < 1.4)=0A=
      throw("script.aculo.us requires the Prototype JavaScript framework =
>=3D 1.4.0");=0A=
    =0A=
    $A(document.getElementsByTagName("script")).findAll( function(s) {=0A=
      return (s.src && s.src.match(/scriptaculous\.js(\?.*)?$/))=0A=
    }).each( function(s) {=0A=
      var path =3D s.src.replace(/scriptaculous\.js(\?.*)?$/,'');=0A=
      var includes =3D s.src.match(/\?.*load=3D([a-z,]*)/);=0A=
      (includes ? includes[1] : =
'builder,effects,dragdrop,controls,slider').split(',').each(=0A=
       function(include) { Scriptaculous.require(path+include+'.js') });=0A=
    });=0A=
  }=0A=
}=0A=
=0A=
Scriptaculous.load();
------=_NextPart_000_02F4_01C739B1.6D583380
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.carboni.it/templates/carboni_news/js/lightbox.js

// =
-------------------------------------------------------------------------=
----------=0A=
//=0A=
//	Lightbox v2.02=0A=
//	by Lokesh Dhakar - http://www.huddletogether.com=0A=
//	3/31/06=0A=
//=0A=
//	For more information on this script, visit:=0A=
//	http://huddletogether.com/projects/lightbox2/=0A=
//=0A=
//	Licensed under the Creative Commons Attribution 2.5 License - =
http://creativecommons.org/licenses/by/2.5/=0A=
//	=0A=
//	Credit also due to those who have helped, inspired, and made their =
code available to the public.=0A=
//	Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.org), =
Thomas Fuchs(mir.aculo.us), and others.=0A=
//=0A=
//=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
/*=0A=
=0A=
	Table of Contents=0A=
	-----------------=0A=
	Configuration=0A=
	Global Variables=0A=
=0A=
	Extending Built-in Objects	=0A=
	- Object.extend(Element)=0A=
	- Array.prototype.removeDuplicates()=0A=
	- Array.prototype.empty()=0A=
=0A=
	Lightbox Class Declaration=0A=
	- initialize()=0A=
	- start()=0A=
	- changeImage()=0A=
	- resizeImageContainer()=0A=
	- showImage()=0A=
	- updateDetails()=0A=
	- updateNav()=0A=
	- enableKeyboardNav()=0A=
	- disableKeyboardNav()=0A=
	- keyboardAction()=0A=
	- preloadNeighborImages()=0A=
	- end()=0A=
	=0A=
	Miscellaneous Functions=0A=
	- getPageScroll()=0A=
	- getPageSize()=0A=
	- getKey()=0A=
	- listenKey()=0A=
	- showSelectBoxes()=0A=
	- hideSelectBoxes()=0A=
	- pause()=0A=
	- initLightbox()=0A=
	=0A=
	Function Calls=0A=
	- addLoadEvent(initLightbox)=0A=
	=0A=
*/=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
//	Configuration=0A=
//=0A=
var fileLoadingImage =3D "images/loading.gif";		=0A=
var fileBottomNavCloseImage =3D "images/closelabel.gif";=0A=
=0A=
var resizeSpeed =3D 7;	// controls the speed of the image resizing =
(1=3Dslowest and 10=3Dfastest)=0A=
=0A=
var borderSize =3D 10;	//if you adjust the padding in the CSS, you will =
need to update this variable=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
//	Global Variables=0A=
//=0A=
var imageArray =3D new Array;=0A=
var activeImage;=0A=
=0A=
if(resizeSpeed > 10){ resizeSpeed =3D 10;}=0A=
if(resizeSpeed < 1){ resizeSpeed =3D 1;}=0A=
resizeDuration =3D (11 - resizeSpeed) * 0.15;=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
//	Additional methods for Element added by SU, Couloir=0A=
//	- further additions by Lokesh Dhakar (huddletogether.com)=0A=
//=0A=
Object.extend(Element, {=0A=
	getWidth: function(element) {=0A=
	   	element =3D $(element);=0A=
	   	return element.offsetWidth; =0A=
	},=0A=
	setWidth: function(element,w) {=0A=
	   	element =3D $(element);=0A=
    	element.style.width =3D w +"px";=0A=
	},=0A=
	setHeight: function(element,h) {=0A=
   		element =3D $(element);=0A=
    	element.style.height =3D h +"px";=0A=
	},=0A=
	setTop: function(element,t) {=0A=
	   	element =3D $(element);=0A=
    	element.style.top =3D t +"px";=0A=
	},=0A=
	setSrc: function(element,src) {=0A=
    	element =3D $(element);=0A=
    	element.src =3D src; =0A=
	},=0A=
	setHref: function(element,href) {=0A=
    	element =3D $(element);=0A=
    	element.href =3D href; =0A=
	},=0A=
	setInnerHTML: function(element,content) {=0A=
		element =3D $(element);=0A=
		element.innerHTML =3D content;=0A=
	}=0A=
});=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
//	Extending built-in Array object=0A=
//	- array.removeDuplicates()=0A=
//	- array.empty()=0A=
//=0A=
Array.prototype.removeDuplicates =3D function () {=0A=
	for(i =3D 1; i < this.length; i++){=0A=
		if(this[i][0] =3D=3D this[i-1][0]){=0A=
			this.splice(i,1);=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
Array.prototype.empty =3D function () {=0A=
	for(i =3D 0; i <=3D this.length; i++){=0A=
		this.shift();=0A=
	}=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
//	Lightbox Class Declaration=0A=
//	- initialize()=0A=
//	- start()=0A=
//	- changeImage()=0A=
//	- resizeImageContainer()=0A=
//	- showImage()=0A=
//	- updateDetails()=0A=
//	- updateNav()=0A=
//	- enableKeyboardNav()=0A=
//	- disableKeyboardNav()=0A=
//	- keyboardNavAction()=0A=
//	- preloadNeighborImages()=0A=
//	- end()=0A=
//=0A=
//	Structuring of code inspired by Scott Upton (http://www.uptonic.com/)=0A=
//=0A=
var Lightbox =3D Class.create();=0A=
=0A=
Lightbox.prototype =3D {=0A=
	=0A=
	// initialize()=0A=
	// Constructor runs on completion of the DOM loading. Loops through =
anchor tags looking for =0A=
	// 'lightbox' references and applies onclick events to appropriate =
links. The 2nd section of=0A=
	// the function inserts html at the bottom of the page which is used to =
display the shadow =0A=
	// overlay and the image container.=0A=
	//=0A=
	initialize: function() {	=0A=
		if (!document.getElementsByTagName){ return; }=0A=
		var anchors =3D document.getElementsByTagName('a');=0A=
=0A=
		// loop through all anchor tags=0A=
		for (var i=3D0; i<anchors.length; i++){=0A=
			var anchor =3D anchors[i];=0A=
			=0A=
			var relAttribute =3D String(anchor.getAttribute('rel'));=0A=
			=0A=
			// use the string.match() method to catch 'lightbox' references in =
the rel attribute=0A=
			if (anchor.getAttribute('href') && =
(relAttribute.toLowerCase().match('lightbox'))){=0A=
				anchor.onclick =3D function () {myLightbox.start(this); return =
false;}=0A=
			}=0A=
		}=0A=
=0A=
		// The rest of this code inserts html at the bottom of the page that =
looks similar to this:=0A=
		//=0A=
		//	<div id=3D"overlay"></div>=0A=
		//	<div id=3D"lightbox">=0A=
		//		<div id=3D"outerImageContainer">=0A=
		//			<div id=3D"imageContainer">=0A=
		//				<img id=3D"lightboxImage">=0A=
		//				<div style=3D"" id=3D"hoverNav">=0A=
		//					<a href=3D"#" id=3D"prevLink"></a>=0A=
		//					<a href=3D"#" id=3D"nextLink"></a>=0A=
		//				</div>=0A=
		//				<div id=3D"loading">=0A=
		//					<a href=3D"#" id=3D"loadingLink">=0A=
		//						<img src=3D"images/loading.gif">=0A=
		//					</a>=0A=
		//				</div>=0A=
		//			</div>=0A=
		//		</div>=0A=
		//		<div id=3D"imageDataContainer">=0A=
		//			<div id=3D"imageData">=0A=
		//				<div id=3D"imageDetails">=0A=
		//					<span id=3D"caption"></span>=0A=
		//					<span id=3D"numberDisplay"></span>=0A=
		//				</div>=0A=
		//				<div id=3D"bottomNav">=0A=
		//					<a href=3D"#" id=3D"bottomNavClose">=0A=
		//						<img src=3D"images/close.gif">=0A=
		//					</a>=0A=
		//				</div>=0A=
		//			</div>=0A=
		//		</div>=0A=
		//	</div>=0A=
=0A=
=0A=
		var objBody =3D document.getElementsByTagName("body").item(0);=0A=
		=0A=
		var objOverlay =3D document.createElement("div");=0A=
		objOverlay.setAttribute('id','overlay');=0A=
		objOverlay.style.display =3D 'none';=0A=
		objOverlay.onclick =3D function() { myLightbox.end(); return false; }=0A=
		objBody.appendChild(objOverlay);=0A=
		=0A=
		var objLightbox =3D document.createElement("div");=0A=
		objLightbox.setAttribute('id','lightbox');=0A=
		objLightbox.style.display =3D 'none';=0A=
		objBody.appendChild(objLightbox);=0A=
	=0A=
		var objOuterImageContainer =3D document.createElement("div");=0A=
		objOuterImageContainer.setAttribute('id','outerImageContainer');=0A=
		objLightbox.appendChild(objOuterImageContainer);=0A=
=0A=
		var objImageContainer =3D document.createElement("div");=0A=
		objImageContainer.setAttribute('id','imageContainer');=0A=
		objOuterImageContainer.appendChild(objImageContainer);=0A=
	=0A=
		var objLightboxImage =3D document.createElement("img");=0A=
		objLightboxImage.setAttribute('id','lightboxImage');=0A=
		objImageContainer.appendChild(objLightboxImage);=0A=
	=0A=
		var objHoverNav =3D document.createElement("div");=0A=
		objHoverNav.setAttribute('id','hoverNav');=0A=
		objImageContainer.appendChild(objHoverNav);=0A=
	=0A=
		var objPrevLink =3D document.createElement("a");=0A=
		objPrevLink.setAttribute('id','prevLink');=0A=
		objPrevLink.setAttribute('href','#');=0A=
		objHoverNav.appendChild(objPrevLink);=0A=
		=0A=
		var objNextLink =3D document.createElement("a");=0A=
		objNextLink.setAttribute('id','nextLink');=0A=
		objNextLink.setAttribute('href','#');=0A=
		objHoverNav.appendChild(objNextLink);=0A=
	=0A=
		var objLoading =3D document.createElement("div");=0A=
		objLoading.setAttribute('id','loading');=0A=
		objImageContainer.appendChild(objLoading);=0A=
	=0A=
		var objLoadingLink =3D document.createElement("a");=0A=
		objLoadingLink.setAttribute('id','loadingLink');=0A=
		objLoadingLink.setAttribute('href','#');=0A=
		objLoadingLink.onclick =3D function() { myLightbox.end(); return =
false; }=0A=
		objLoading.appendChild(objLoadingLink);=0A=
	=0A=
		var objLoadingImage =3D document.createElement("img");=0A=
		objLoadingImage.setAttribute('src', fileLoadingImage);=0A=
		objLoadingLink.appendChild(objLoadingImage);=0A=
=0A=
		var objImageDataContainer =3D document.createElement("div");=0A=
		objImageDataContainer.setAttribute('id','imageDataContainer');=0A=
		objImageDataContainer.className =3D 'clearfix';=0A=
		objLightbox.appendChild(objImageDataContainer);=0A=
=0A=
		var objImageData =3D document.createElement("div");=0A=
		objImageData.setAttribute('id','imageData');=0A=
		objImageDataContainer.appendChild(objImageData);=0A=
	=0A=
		var objImageDetails =3D document.createElement("div");=0A=
		objImageDetails.setAttribute('id','imageDetails');=0A=
		objImageData.appendChild(objImageDetails);=0A=
	=0A=
		var objCaption =3D document.createElement("span");=0A=
		objCaption.setAttribute('id','caption');=0A=
		objImageDetails.appendChild(objCaption);=0A=
	=0A=
		var objNumberDisplay =3D document.createElement("span");=0A=
		objNumberDisplay.setAttribute('id','numberDisplay');=0A=
		objImageDetails.appendChild(objNumberDisplay);=0A=
		=0A=
		var objBottomNav =3D document.createElement("div");=0A=
		objBottomNav.setAttribute('id','bottomNav');=0A=
		objImageData.appendChild(objBottomNav);=0A=
	=0A=
		var objBottomNavCloseLink =3D document.createElement("a");=0A=
		objBottomNavCloseLink.setAttribute('id','bottomNavClose');=0A=
		objBottomNavCloseLink.setAttribute('href','#');=0A=
		objBottomNavCloseLink.onclick =3D function() { myLightbox.end(); =
return false; }=0A=
		objBottomNav.appendChild(objBottomNavCloseLink);=0A=
	=0A=
		var objBottomNavCloseImage =3D document.createElement("img");=0A=
		objBottomNavCloseImage.setAttribute('src', fileBottomNavCloseImage);=0A=
		objBottomNavCloseLink.appendChild(objBottomNavCloseImage);=0A=
	},=0A=
	=0A=
	//=0A=
	//	start()=0A=
	//	Display overlay and lightbox. If image is part of a set, add =
siblings to imageArray.=0A=
	//=0A=
	start: function(imageLink) {	=0A=
=0A=
		hideSelectBoxes();=0A=
=0A=
		// stretch overlay to fill page and fade in=0A=
		var arrayPageSize =3D getPageSize();=0A=
		Element.setHeight('overlay', arrayPageSize[1]);=0A=
		new Effect.Appear('overlay', { duration: 0.2, from: 0.0, to: 0.8 });=0A=
=0A=
		imageArray =3D [];=0A=
		imageNum =3D 0;		=0A=
=0A=
		if (!document.getElementsByTagName){ return; }=0A=
		var anchors =3D document.getElementsByTagName('a');=0A=
=0A=
		// if image is NOT part of a set..=0A=
		if((imageLink.getAttribute('rel') =3D=3D 'lightbox')){=0A=
			// add single image to imageArray=0A=
			imageArray.push(new Array(imageLink.getAttribute('href'), =
imageLink.getAttribute('title')));			=0A=
		} else {=0A=
		// if image is part of a set..=0A=
=0A=
			// loop through anchors, find other images in set, and add them to =
imageArray=0A=
			for (var i=3D0; i<anchors.length; i++){=0A=
				var anchor =3D anchors[i];=0A=
				if (anchor.getAttribute('href') && (anchor.getAttribute('rel') =
=3D=3D imageLink.getAttribute('rel'))){=0A=
					imageArray.push(new Array(anchor.getAttribute('href'), =
anchor.getAttribute('title')));=0A=
				}=0A=
			}=0A=
			imageArray.removeDuplicates();=0A=
			while(imageArray[imageNum][0] !=3D imageLink.getAttribute('href')) { =
imageNum++;}=0A=
		}=0A=
=0A=
		// calculate top offset for the lightbox and display =0A=
		var arrayPageSize =3D getPageSize();=0A=
		var arrayPageScroll =3D getPageScroll();=0A=
		var lightboxTop =3D arrayPageScroll[1] + (arrayPageSize[3] / 15);=0A=
=0A=
		Element.setTop('lightbox', lightboxTop);=0A=
		Element.show('lightbox');=0A=
		=0A=
		this.changeImage(imageNum);=0A=
	},=0A=
=0A=
	//=0A=
	//	changeImage()=0A=
	//	Hide most elements and preload image in preparation for resizing =
image container.=0A=
	//=0A=
	changeImage: function(imageNum) {	=0A=
		=0A=
		activeImage =3D imageNum;	// update global var=0A=
=0A=
		// hide elements during transition=0A=
		Element.show('loading');=0A=
		Element.hide('lightboxImage');=0A=
		Element.hide('hoverNav');=0A=
		Element.hide('prevLink');=0A=
		Element.hide('nextLink');=0A=
		Element.hide('imageDataContainer');=0A=
		Element.hide('numberDisplay');		=0A=
		=0A=
		imgPreloader =3D new Image();=0A=
		=0A=
		// once image is preloaded, resize image container=0A=
		imgPreloader.onload=3Dfunction(){=0A=
			Element.setSrc('lightboxImage', imageArray[activeImage][0]);=0A=
			myLightbox.resizeImageContainer(imgPreloader.width, =
imgPreloader.height);=0A=
		}=0A=
		imgPreloader.src =3D imageArray[activeImage][0];=0A=
	},=0A=
=0A=
	//=0A=
	//	resizeImageContainer()=0A=
	//=0A=
	resizeImageContainer: function( imgWidth, imgHeight) {=0A=
=0A=
		// get current height and width=0A=
		this.wCur =3D Element.getWidth('outerImageContainer');=0A=
		this.hCur =3D Element.getHeight('outerImageContainer');=0A=
=0A=
		// scalars based on change from old to new=0A=
		this.xScale =3D ((imgWidth  + (borderSize * 2)) / this.wCur) * 100;=0A=
		this.yScale =3D ((imgHeight  + (borderSize * 2)) / this.hCur) * 100;=0A=
=0A=
		// calculate size difference between new and old image, and resize if =
necessary=0A=
		wDiff =3D (this.wCur - borderSize * 2) - imgWidth;=0A=
		hDiff =3D (this.hCur - borderSize * 2) - imgHeight;=0A=
=0A=
		if(!( hDiff =3D=3D 0)){ new Effect.Scale('outerImageContainer', =
this.yScale, {scaleX: false, duration: resizeDuration, queue: 'front'}); =
}=0A=
		if(!( wDiff =3D=3D 0)){ new Effect.Scale('outerImageContainer', =
this.xScale, {scaleY: false, delay: resizeDuration, duration: =
resizeDuration}); }=0A=
=0A=
		// if new and old image are same size and no scaling transition is =
necessary, =0A=
		// do a quick pause to prevent image flicker.=0A=
		if((hDiff =3D=3D 0) && (wDiff =3D=3D 0)){=0A=
			if (navigator.appVersion.indexOf("MSIE")!=3D-1){ pause(250); } else { =
pause(100);} =0A=
		}=0A=
=0A=
		Element.setHeight('prevLink', imgHeight);=0A=
		Element.setHeight('nextLink', imgHeight);=0A=
		Element.setWidth( 'imageDataContainer', imgWidth + (borderSize * 2));=0A=
=0A=
		this.showImage();=0A=
	},=0A=
	=0A=
	//=0A=
	//	showImage()=0A=
	//	Display image and begin preloading neighbors.=0A=
	//=0A=
	showImage: function(){=0A=
		Element.hide('loading');=0A=
		new Effect.Appear('lightboxImage', { duration: 0.5, queue: 'end', =
afterFinish: function(){	myLightbox.updateDetails(); } });=0A=
		this.preloadNeighborImages();=0A=
	},=0A=
=0A=
	//=0A=
	//	updateDetails()=0A=
	//	Display caption, image number, and bottom nav.=0A=
	//=0A=
	updateDetails: function() {=0A=
	=0A=
		Element.show('caption');=0A=
		Element.setInnerHTML( 'caption', imageArray[activeImage][1]);=0A=
		=0A=
		// if image is part of set display 'Image x of x' =0A=
		if(imageArray.length > 1){=0A=
			Element.show('numberDisplay');=0A=
			Element.setInnerHTML( 'numberDisplay', "Image " + eval(activeImage + =
1) + " of " + imageArray.length);=0A=
		}=0A=
=0A=
		new Effect.Parallel(=0A=
			[ new Effect.SlideDown( 'imageDataContainer', { sync: true, duration: =
resizeDuration + 0.25, from: 0.0, to: 1.0 }), =0A=
			  new Effect.Appear('imageDataContainer', { sync: true, duration: 1.0 =
}) ], =0A=
			{ duration: 0.65, afterFinish: function() { myLightbox.updateNav();} =
} =0A=
		);=0A=
	},=0A=
=0A=
	//=0A=
	//	updateNav()=0A=
	//	Display appropriate previous and next hover navigation.=0A=
	//=0A=
	updateNav: function() {=0A=
=0A=
		Element.show('hoverNav');				=0A=
=0A=
		// if not first image in set, display prev image button=0A=
		if(activeImage !=3D 0){=0A=
			Element.show('prevLink');=0A=
			document.getElementById('prevLink').onclick =3D function() {=0A=
				myLightbox.changeImage(activeImage - 1); return false;=0A=
			}=0A=
		}=0A=
=0A=
		// if not last image in set, display next image button=0A=
		if(activeImage !=3D (imageArray.length - 1)){=0A=
			Element.show('nextLink');=0A=
			document.getElementById('nextLink').onclick =3D function() {=0A=
				myLightbox.changeImage(activeImage + 1); return false;=0A=
			}=0A=
		}=0A=
		=0A=
		this.enableKeyboardNav();=0A=
	},=0A=
=0A=
	//=0A=
	//	enableKeyboardNav()=0A=
	//=0A=
	enableKeyboardNav: function() {=0A=
		document.onkeydown =3D this.keyboardAction; =0A=
	},=0A=
=0A=
	//=0A=
	//	disableKeyboardNav()=0A=
	//=0A=
	disableKeyboardNav: function() {=0A=
		document.onkeydown =3D '';=0A=
	},=0A=
=0A=
	//=0A=
	//	keyboardAction()=0A=
	//=0A=
	keyboardAction: function(e) {=0A=
		if (e =3D=3D null) { // ie=0A=
			keycode =3D event.keyCode;=0A=
		} else { // mozilla=0A=
			keycode =3D e.which;=0A=
		}=0A=
=0A=
		key =3D String.fromCharCode(keycode).toLowerCase();=0A=
		=0A=
		if((key =3D=3D 'x') || (key =3D=3D 'o') || (key =3D=3D 'c')){	// close =
lightbox=0A=
			myLightbox.end();=0A=
		} else if(key =3D=3D 'p'){	// display previous image=0A=
			if(activeImage !=3D 0){=0A=
				myLightbox.disableKeyboardNav();=0A=
				myLightbox.changeImage(activeImage - 1);=0A=
			}=0A=
		} else if(key =3D=3D 'n'){	// display next image=0A=
			if(activeImage !=3D (imageArray.length - 1)){=0A=
				myLightbox.disableKeyboardNav();=0A=
				myLightbox.changeImage(activeImage + 1);=0A=
			}=0A=
		}=0A=
=0A=
=0A=
	},=0A=
=0A=
	//=0A=
	//	preloadNeighborImages()=0A=
	//	Preload previous and next images.=0A=
	//=0A=
	preloadNeighborImages: function(){=0A=
=0A=
		if((imageArray.length - 1) > activeImage){=0A=
			preloadNextImage =3D new Image();=0A=
			preloadNextImage.src =3D imageArray[activeImage + 1][0];=0A=
		}=0A=
		if(activeImage > 0){=0A=
			preloadPrevImage =3D new Image();=0A=
			preloadPrevImage.src =3D imageArray[activeImage - 1][0];=0A=
		}=0A=
	=0A=
	},=0A=
=0A=
	//=0A=
	//	end()=0A=
	//=0A=
	end: function() {=0A=
		this.disableKeyboardNav();=0A=
		Element.hide('lightbox');=0A=
		new Effect.Fade('overlay', { duration: 0.2});=0A=
		showSelectBoxes();=0A=
	}=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
// getPageScroll()=0A=
// Returns array with x,y page scroll values.=0A=
// Core code from - quirksmode.org=0A=
//=0A=
function getPageScroll(){=0A=
=0A=
	var yScroll;=0A=
=0A=
	if (self.pageYOffset) {=0A=
		yScroll =3D self.pageYOffset;=0A=
	} else if (document.documentElement && =
document.documentElement.scrollTop){	 // Explorer 6 Strict=0A=
		yScroll =3D document.documentElement.scrollTop;=0A=
	} else if (document.body) {// all other Explorers=0A=
		yScroll =3D document.body.scrollTop;=0A=
	}=0A=
=0A=
	arrayPageScroll =3D new Array('',yScroll) =0A=
	return arrayPageScroll;=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
// getPageSize()=0A=
// Returns array with page width, height and window width, height=0A=
// Core code from - quirksmode.org=0A=
// Edit for Firefox by pHaez=0A=
//=0A=
function getPageSize(){=0A=
	=0A=
	var xScroll, yScroll;=0A=
	=0A=
	if (window.innerHeight && window.scrollMaxY) {	=0A=
		xScroll =3D document.body.scrollWidth;=0A=
		yScroll =3D window.innerHeight + window.scrollMaxY;=0A=
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // =
all but Explorer Mac=0A=
		xScroll =3D document.body.scrollWidth;=0A=
		yScroll =3D document.body.scrollHeight;=0A=
	} else { // Explorer Mac...would also work in Explorer 6 Strict, =
Mozilla and Safari=0A=
		xScroll =3D document.body.offsetWidth;=0A=
		yScroll =3D document.body.offsetHeight;=0A=
	}=0A=
	=0A=
	var windowWidth, windowHeight;=0A=
	if (self.innerHeight) {	// all except Explorer=0A=
		windowWidth =3D self.innerWidth;=0A=
		windowHeight =3D self.innerHeight;=0A=
	} else if (document.documentElement && =
document.documentElement.clientHeight) { // Explorer 6 Strict Mode=0A=
		windowWidth =3D document.documentElement.clientWidth;=0A=
		windowHeight =3D document.documentElement.clientHeight;=0A=
	} else if (document.body) { // other Explorers=0A=
		windowWidth =3D document.body.clientWidth;=0A=
		windowHeight =3D document.body.clientHeight;=0A=
	}	=0A=
	=0A=
	// for small pages with total height less then height of the viewport=0A=
	if(yScroll < windowHeight){=0A=
		pageHeight =3D windowHeight;=0A=
	} else { =0A=
		pageHeight =3D yScroll;=0A=
	}=0A=
=0A=
	// for small pages with total width less then width of the viewport=0A=
	if(xScroll < windowWidth){	=0A=
		pageWidth =3D windowWidth;=0A=
	} else {=0A=
		pageWidth =3D xScroll;=0A=
	}=0A=
=0A=
=0A=
	arrayPageSize =3D new =
Array(pageWidth,pageHeight,windowWidth,windowHeight) =0A=
	return arrayPageSize;=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
// getKey(key)=0A=
// Gets keycode. If 'x' is pressed then it hides the lightbox.=0A=
//=0A=
function getKey(e){=0A=
	if (e =3D=3D null) { // ie=0A=
		keycode =3D event.keyCode;=0A=
	} else { // mozilla=0A=
		keycode =3D e.which;=0A=
	}=0A=
	key =3D String.fromCharCode(keycode).toLowerCase();=0A=
	=0A=
	if(key =3D=3D 'x'){=0A=
	}=0A=
}=0A=
=0A=
// =
-------------------------------------------------------------------------=
----------=0A=
=0A=
//=0A=
// listenKey()=0A=
//=0A=
function listenKey () {	document.onkeypress =3D getKey; }=0A=
	=0A=
// ---------------------------------------------------=0A=
=0A=
function showSelectBoxes(){=0A=
	selects =3D document.getElementsByTagName("select");=0A=
	for (i =3D 0; i !=3D selects.length; i++) {=0A=
		selects[i].style.visibility =3D "visible";=0A=
	}=0A=
}=0A=
=0A=
// ---------------------------------------------------=0A=
=0A=
function hideSelectBoxes(){=0A=
	selects =3D document.getElementsByTagName("select");=0A=
	for (i =3D 0; i !=3D selects.length; i++) {=0A=
		selects[i].style.visibility =3D "hidden";=0A=
	}=0A=
}=0A=
=0A=
// ---------------------------------------------------=0A=
=0A=
//=0A=
// pause(numberMillis)=0A=
// Pauses code execution for specified time. Uses busy code, not good.=0A=
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602=0A=
//=0A=
function pause(numberMillis) {=0A=
	var now =3D new Date();=0A=
	var exitTime =3D now.getTime() + numberMillis;=0A=
	while (true) {=0A=
		now =3D new Date();=0A=
		if (now.getTime() > exitTime)=0A=
			return;=0A=
	}=0A=
}=0A=
=0A=
// ---------------------------------------------------=0A=
=0A=
=0A=
=0A=
function initLightbox() { myLightbox =3D new Lightbox(); }=0A=
Event.observe(window, 'load', initLightbox, false);
------=_NextPart_000_02F4_01C739B1.6D583380--

