From: <Saved by Microsoft Internet Explorer 5>
Subject: Teramonews - Il regista Sergio Rubini a Valle San Giovanni di Teramo
Date: Wed, 11 Jul 2007 13:24:00 -0700
MIME-Version: 1.0
Content-Type: multipart/related;
	boundary="----=_NextPart_000_0000_01C7C3BE.BE0DDA90";
	type="text/html"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1896

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: file://C:\temp\rubini.htm

<!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>Teramonews - =
Il regista Sergio Rubini a Valle San Giovanni di Teramo</TITLE>
<META http-equiv=3Dcontent-type content=3D"text/html; =
charset=3DISO-8859-1"><LINK=20
href=3D"file:///C:/temp/rubini_files/site_style.css" type=3Dtext/css=20
rel=3Dstylesheet><LINK media=3Dscreen=20
href=3D"file:///C:/temp/rubini_files/lightbox.css" type=3Dtext/css =
rel=3Dstylesheet>
<SCRIPT src=3D"file:///C:/temp/rubini_files/prototype.js"></SCRIPT>

<SCRIPT src=3D"file:///C:/temp/rubini_files/scriptaculous.js"></SCRIPT>

<SCRIPT src=3D"file:///C:/temp/rubini_files/effects.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/JavaScript>
<!--
function manageCat(cat)
{
	tmp =3D document.getElementById('SubCat_' + cat)
	image =3D document.getElementById('button_' + cat)
	if(tmp.style.display =3D=3D 'none')
	{

	=09
		new Effect.BlindDown('SubCat_' + cat)
		/*image.src=3D 'http://www.teramonews.com/img/teramonews/minus.gif'*/

	}
	else
	{

	=09
		new Effect.BlindUp('SubCat_' + cat);
		/*image.src=3D 'http://www.teramonews.com/img/teramonews/plus.gif'*/

	}

}
//-->
</SCRIPT>

<SCRIPT language=3Djavascript>
function show_this(inp)
{
	tmp =3D document.getElementById(inp)
	if(tmp.style.display =3D=3D 'none')
	{
     	 Effect.Appear(inp)
	}
	else
	{
		Effect.Fade(inp)
	}
}

function change_font_size(id_div,size)
{
	document.getElementById(id_div).style.fontSize=3D size + "px";
	document.getElementById("post_categories").style.fontSize=3D ( =
parseInt(size) + 4 ) + "px";
}
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=3Ddocument.MM_sr; =
for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array();
    var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; =
i<a.length; i++)
    if (a[i].indexOf("#")!=3D0){ d.MM_p[j]=3Dnew Image; =
d.MM_p[j++].src=3Da[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=3Ddocument; =
if((p=3Dn.indexOf("?"))>0&&parent.frames.length) {
    d=3Dparent.frames[n.substring(p+1)].document; n=3Dn.substring(0,p);}
  if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for =
(i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n];
  for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) =
x=3DMM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=3Dd.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; =
for(i=3D0;i<(a.length-2);i+=3D3)
   if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; =
if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];}
}
//-->
=20

</SCRIPT>

<SCRIPT src=3D"file:///C:/temp/rubini_files/lightbox.js"></SCRIPT>

<META content=3D"MSHTML 6.00.2800.1595" name=3DGENERATOR></HEAD>
<BODY>
<TABLE class=3Dmain cellSpacing=3D0 cellPadding=3D0 width=3D760 =
align=3Dcenter border=3D0>
  <TBODY>
  <TR>
    <TD colSpan=3D5>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD vAlign=3Dtop width=3D260><A =
href=3D"http://www.teramonews.com/"><IMG=20
            height=3D158 =
src=3D"file:///C:/temp/rubini_files/new_logo_tp.png"=20
            width=3D260 border=3D0><BR><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/new_logo_btm.png" =
width=3D260=20
            border=3D0></A><BR>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D260 =
border=3D0>
              <TBODY>
              <TR>
                <TD class=3Daccessibile><BR>
                  <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
                    <TBODY>
                    <TR>
                      <TD>
                        <P>Dimensione del testo: &nbsp;<A=20
                        onclick=3D"return =
change_font_size('contenuto_pagina','10')"=20
                        href=3D"file:///C:/temp/rubini.htm#a"=20
                        fixed_bound=3D"true"><SPAN=20
                        style=3D"FONT-SIZE: 10px">A</SPAN></A> <A =
class=3Dstyle1=20
                        onclick=3D"return =
change_font_size('contenuto_pagina','14')"=20
                        href=3D"file:///C:/temp/rubini.htm#aa"=20
                        fixed_bound=3D"true"><SPAN=20
                        style=3D"FONT-SIZE: 14px">A</SPAN></A> <A =
class=3Dstyle2=20
                        onclick=3D"return =
change_font_size('contenuto_pagina','16')"=20
                        href=3D"file:///C:/temp/rubini.htm#aaa"=20
                        fixed_bound=3D"true"><SPAN=20
                        style=3D"FONT-SIZE: 16px">A</SPAN></A>=20
                        &nbsp;&nbsp;&nbsp;<A=20
                        href=3D"http://www.teramonews.com/feed"><IMG =
height=3D14=20
                        alt=3D"Feed RSS"=20
                        src=3D"file:///C:/temp/rubini_files/rss.jpg" =
width=3D36=20
                        align=3Dbaseline border=3D0></A></P>
                        <P>Versione: <A=20
                        =
href=3D"http://www.teramonews.com/?t=3Dnormal">normale</A> -=20
                        <A =
href=3D"http://www.teramonews.com/?t=3Dhv">alta=20
                        visibilit=E0</A> - <A=20
                        =
href=3D"http://www.teramonews.com/?t=3Dtext">testo</A></P></TD></TR>
                    <TR>
                      <TD>&nbsp;</TD></TR></TBODY></TABLE>
                  <DIV class=3Dpartners_div id=3DBanner_20>&nbsp;</DIV>
                  <TABLE class=3Dmost_viewed_news_table width=3D"100%">
                    <TBODY>
                    <TR>
                      <TD vAlign=3Dcenter>Le news pi=F9 viste</TD></TR>
                    <TR>
                      <TD class=3Dmost_viewed_news vAlign=3Dcenter>
                        <MARQUEE onmouseover=3Dthis.stop() =
onmouseout=3Dthis.start()=20
                        scrollAmount=3D1 direction=3Dup height=3D45>
                        <P><BR>01-07-2007 18:58:13 <BR><A=20
                        =
href=3D"http://www.teramonews.com/news/eventi/teb2wkf2p2">Atri,=20
                        Finley in concerto sabato 14 luglio</A> </P><BR>
                        <P><BR>04-07-2007 10:58:00 <BR><A=20
                        =
href=3D"http://www.teramonews.com/news/citta/te6x643n3i">Piazza=20
                        Martiri: uno scandalo</A> </P><BR>
                        <P><BR>02-07-2007 15:50:11 <BR><A=20
                        =
href=3D"http://www.teramonews.com/news/eventi/te3opfbkqz">Gran=20
                        finale dei festeggiamenti alla Madonna delle =
Grazie</A>=20
                        =
</P><BR></MARQUEE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></T=
D>
          <TD width=3D5>&nbsp;</TD>
          <TD class=3Dbg_logo vAlign=3Dtop colSpan=3D3>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D495 =
border=3D0>
              <TBODY>
              <TR>
                <TD vAlign=3Dbottom colSpan=3D2 height=3D158>
                  <DIV align=3Dcenter>Benvenuto [<A title=3DRegistrati=20
                  =
href=3D"http://www.teramonews.com/register">Registrati</A>, <A=20
                  title=3D"Effettua login"=20
                  href=3D"http://www.teramonews.com/login">Accedi</A>] | =

                  Mercoled=EC, 11 Luglio 2007 - ci sono 31 utenti=20
                  online<BR><BR></DIV></TD></TR>
              <TR>
                <TD height=3D41>
                  <DIV align=3Dright><IMG height=3D41=20
                  src=3D"file:///C:/temp/rubini_files/top_news.png"=20
                  width=3D165></DIV></TD>
                <TD height=3D41>&nbsp;</TD></TR>
              <TR>
                <TD width=3D367 height=3D167>
                  <DIV id=3Dtop_image><A=20
                  =
href=3D"http://www.teramonews.com/news/news/teus7ihwpv"><IMG=20
                  height=3D167 =
src=3D"file:///C:/temp/rubini_files/215.jpg"=20
                  width=3D367 border=3D0></A></DIV></TD>
                <TD>
                  <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D127 =
border=3D0>
                    <TBODY>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image40','','http://www.teramonews.com/img/t=
eramonews/hbt_home.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/"><IMG =
id=3DImage40=20
                        height=3D21 =
src=3D"file:///C:/temp/rubini_files/bt_home.png"=20
                        width=3D128 border=3D0 name=3DImage40></A><A=20
                        =
onmouseover=3D"MM_swapImage('Image40','','http://www.teramonews.com/img/t=
eramonews/hbt_accedi.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        =
href=3D"file:///C:/temp/rubini.htm#"></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image41','','http://www.teramonews.com/img/t=
eramonews/hbt_accedi.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/login"><IMG =
id=3DImage41=20
                        height=3D21=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_accedi.png"=20
                        width=3D128 border=3D0 =
name=3DImage41></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image42','','http://www.teramonews.com/img/t=
eramonews/hbt_registrati.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/register"><IMG =

                        id=3DImage42 height=3D21=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_registrati.png"=20
                        width=3D128 border=3D0 =
name=3DImage42></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image43','','http://www.teramonews.com/img/t=
eramonews/hbt_cerca.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/search"><IMG =
id=3DImage43=20
                        height=3D21=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_cerca.png"=20
                        width=3D128 border=3D0 =
name=3DImage43></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image44','','http://www.teramonews.com/img/t=
eramonews/hbt_photogallery.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        =
href=3D"http://www.teramonews.com/photogallery"><IMG=20
                        id=3DImage44 height=3D21=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_photogallery.png"=20
                        width=3D128 border=3D0 =
name=3DImage44></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image45','','http://www.teramonews.com/img/t=
eramonews/hbt_downloads.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        =
href=3D"http://www.teramonews.com/downloads"><IMG=20
                        id=3DImage45 height=3D21=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_downloads.png"=20
                        width=3D128 border=3D0 =
name=3DImage45></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image46','','http://www.teramonews.com/img/t=
eramonews/hbt_feed.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/feed"><IMG =
id=3DImage46=20
                        height=3D21 =
src=3D"file:///C:/temp/rubini_files/bt_feed.png"=20
                        width=3D128 border=3D0 =
name=3DImage46></A></TD></TR>
                    <TR>
                      <TD><A=20
                        =
onmouseover=3D"MM_swapImage('Image47','','http://www.teramonews.com/img/t=
eramonews/hbt_contatti.png',1)"=20
                        onmouseout=3DMM_swapImgRestore()=20
                        href=3D"http://www.teramonews.com/contatti"><IMG =

                        id=3DImage47 height=3D20=20
                        =
src=3D"file:///C:/temp/rubini_files/bt_contatti.png"=20
                        width=3D128 border=3D0=20
                name=3DImage47></A></TD></TR></TBODY></TABLE></TD></TR>
              <TR>
                <TD colSpan=3D2 height=3D60>
                  <DIV class=3Dtopnews_title id=3Dtop_news_title =
align=3Dcenter><A=20
                  =
href=3D"http://www.teramonews.com/news/news/teus7ihwpv">L=92ADSL=20
                  su tutto il territorio=20
          =
comunale</A></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
      <SCRIPT>im0=3Dnew Image;

					  im0.src=3D"http://www.teramonews.com/top_posts/image/215";

	=09
			function top_news()
			{
				if(isNaN(this.i))
				{
					this.i =3D 0;
				}
				title =3D new Array;
				link =3D new Array;
				permalink =3D new Array;
				image =3D new Array;=20
		=09
title[0] =3D 'L&#8217;ADSL su tutto il territorio comunale'
permalink[0] =3D 'teus7ihwpv'
image[0] =3D '<img src=3D"http://www.teramonews.com/top_posts/image/215" =
width=3D"367" height=3D"167"  border=3D"0" >'

link[0] =3D"<a =
href=3D'http://www.teramonews.com/news/news/teus7ihwpv'>";

				document.getElementById('top_news_title').innerHTML =3D  =
link[this.i] + title[this.i] + "</a>";

				document.getElementById('top_image').innerHTML =3D link[this.i] + =
image[this.i]+ "</a>";

				if(this.i =3D=3D title.length -1)
				{
					this.i =3D 0;
				}
				else
				{
					this.i++;
				}
			}
	var pe =3D new PeriodicalExecuter(top_news,5);
		</SCRIPT>
    </TD></TR>
  <TR>
    <TD vAlign=3Dtop>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dtop width=3D20><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/left_td_news-cat.jpg" =
width=3D6></TD>
          <TD class=3Dtop>
            <H1>Categorie</H1></TD>
          <TD class=3Dtop width=3D17>
            <DIV align=3Dright><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/right_td_news-cat.jpg"=20
            width=3D6></DIV></TD></TR></TBODY></TABLE></TD>
    <TD>&nbsp;</TD>
    <TD vAlign=3Dtop>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dtop width=3D20><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/left_td_news-cat.jpg" =
width=3D6></TD>
          <TD class=3Dtop vAlign=3Dcenter>
            <H1>Leggi la notizia </H1></TD>
          <TD class=3Dtop width=3D17>
            <DIV align=3Dright><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/right_td_news-cat.jpg"=20
            width=3D6></DIV></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=3Dtop width=3D5>&nbsp;</TD>
    <TD width=3D20>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D120 border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dtop width=3D20><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/left_td_news-cat.jpg" =
width=3D6></TD>
          <TD class=3Dtop vAlign=3Dcenter>
            <H1>Partners</H1></TD>
          <TD class=3Dtop width=3D17>
            <DIV align=3Dright><IMG height=3D42=20
            src=3D"file:///C:/temp/rubini_files/right_td_news-cat.jpg"=20
            width=3D6></DIV></TD></TR></TBODY></TABLE></TD></TR>
  <TR>
    <TD vAlign=3Dtop><BR><A name=3Da></A><A name=3Daa></A><A =
name=3Daaa></A>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D260 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/category_top.gif" =
width=3D260></TD></TR>
        <TR>
          <TD class=3Dcontent>
            <DIV>
            <UL class=3Dmenu1 id=3Dpost_categories>
              <LI id=3DCat_citta><A=20
              href=3D"http://www.teramonews.com/news/citta"><IMG =
id=3Dbutton_citta=20
              height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Citt=E0</A>
              <LI id=3DCat_news><A =
href=3D"http://www.teramonews.com/news/news"><IMG=20
              id=3Dbutton_news height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;News</A>
              <LI id=3DCat_sport><A onclick=3D"manageCat('sport');"=20
              href=3D"file:///C:/temp/rubini.htm#exp_sport"><IMG =
id=3Dbutton_sport=20
              height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/plus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Sport</A>=20
              <DIV id=3DSubCat_sport style=3D"DISPLAY: none">
              <UL class=3Dsub>
                <LI><A =
href=3D"http://www.teramonews.com/news/calcio">Calcio</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/basket">Basket</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/pallamano-maschile">Pallamano=20
                Maschile</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/pallamano-femminile">Pallamano=20
                Femminile</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/calcio-a-5">Calcio a=20
                5</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/baseball">Baseball</A>=20
              </LI></UL></DIV>
              <LI id=3DCat_eventi><A=20
              href=3D"http://www.teramonews.com/news/eventi"><IMG =
id=3Dbutton_eventi=20
              height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Eventi</A>
              <LI id=3DCat_teramo-lavoro><A=20
              href=3D"http://www.teramonews.com/news/teramo-lavoro"><IMG =

              id=3Dbutton_teramo-lavoro height=3D24 alt=3D"Contrai =
categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Teramo-Lavoro</A>
              <LI id=3DCat_arte-e-cultura><A=20
              =
href=3D"http://www.teramonews.com/news/arte-e-cultura"><IMG=20
              id=3Dbutton_arte-e-cultura height=3D24 alt=3D"Contrai =
categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Arte e cultura</A>
              <LI id=3DCat_teramolife><A =
onclick=3D"manageCat('teramolife');"=20
              href=3D"file:///C:/temp/rubini.htm#exp_teramolife"><IMG=20
              id=3Dbutton_teramolife height=3D24 alt=3D"Contrai =
categoria"=20
              src=3D"file:///C:/temp/rubini_files/plus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;TeramoLife</A>=20
              <DIV id=3DSubCat_teramolife style=3D"DISPLAY: none">
              <UL class=3Dsub>
                <LI><A =
href=3D"http://www.teramonews.com/news/autobus">Autobus</A>=20

                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/farmacie">Farmacie</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/servizio-urbano">Servizio=20
                Urbano</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/treni">Treni</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/link">Link</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/numeri-utili">Numeri=20
                Utili</A>=20
                <LI><A =
href=3D"http://www.teramonews.com/news/enti-pubblici">Enti=20
                Pubblici</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/la-storia-della-citta">La=20
                storia della citt=E0</A>=20
                <LI><A=20
                =
href=3D"http://www.teramonews.com/news/ristoranti-e-pizzerie">Ristoranti =

                e Pizzerie</A> </LI></UL></DIV>
              <LI id=3DCat_le-interviste-di-teramonews><A=20
              =
href=3D"http://www.teramonews.com/news/le-interviste-di-teramonews"><IMG =

              id=3Dbutton_le-interviste-di-teramonews height=3D24=20
              alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Le Interviste di Teramonews</A>
              <LI id=3DCat_polls><A =
href=3D"http://www.teramonews.com/polls/"><IMG=20
              id=3Dbutton_polls height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;Archivio sondaggi</A>=20
              <LI id=3DCat_polls><A=20
              href=3D"http://www.teramonews.com/photogallery/"><IMG=20
              id=3Dbutton_photos height=3D24 alt=3D"Contrai categoria"=20
              src=3D"file:///C:/temp/rubini_files/minus.gif" width=3D18 =
align=3Dmiddle=20
              border=3D0>&nbsp;PhotoGallery</A> =
</LI></UL></DIV></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/category_bottom.gif"=20
        width=3D260></TD></TR></TBODY></TABLE><BR>
      <DIV class=3Dpartners_div id=3DBanner_30>&nbsp;</DIV><BR>
      <DIV class=3Dpartners_div id=3DBanner_35>&nbsp;</DIV></TD>
    <TD>&nbsp;</TD>
    <TD vAlign=3Dtop><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent id=3Dcontenuto_pagina>
            <P align=3Djustify></P>
            <DIV id=3Dbreadcrumbs><A =
href=3D"http://www.teramonews.com/">Home</A> /=20
            <A=20
            =
href=3D"http://www.teramonews.com/news/news">News</A><BR></DIV><STRONG>Il=
=20
            regista Sergio Rubini a Valle San Giovanni di=20
            Teramo</STRONG><BR><I></I>
            <DIV class=3Ddate>10-07-2007 20:37:12</DIV>
            <P style=3D"TEXT-ALIGN: justify"><IMG style=3D"FLOAT: left; =
MARGIN: 5px"=20
            src=3D"file:///C:/temp/rubini_files/tezw5ynt5m.jpg">Ci =
voleva la=20
            felice intuizione del noto regista Sergio Rubini per far =
assurgere=20
            agli onori della cronaca un luogo dove molti cinquantenni, =
come chi=20
            vi scrive, hanno legato ricordi indelebili. Mi riferisco al =
mitico=20
            "borghetto" di Valle San Giovanni, la meta estiva preferita =
di noi=20
            ragazzi degli anni '60 e che, in sella alle nostre bici,=20
            raggiungevamo questo ameno laghetto circondato da canneti =
per fare=20
            bagni e rinfrescarci durante i giorni di canicola estiva. Il =
20=20
            luglio prossimo, in questo luogo dimenticato dalle nuove =
generazioni=20
            aprutine, oggi piccolo specchio d'acqua dedicato alla pesca=20
            sportiva, pare che Sergio Rubini girer=E0 alcune scene del =
suo nuovo=20
            film, prima di battere ciack, nei giorni successivi, nel =
centrale=20
            Corso San Giorgio di Teramo e poi nelle splendide piazzette=20
            medioevali di Civitella del Tronto, insieme al suo cast =
d'eccezione=20
            con la Puccini, eterna Elisa di Rivombrosa, Preziosi, =
capitano nella=20
            serie dedicata alla Guardia di Finanza e la biondissima ex =
partner=20
            di Costanzo in Buona Domenica, Paola Barale. E chiss=E0 che =
i teramani=20
            non rivalutino un luogo, Valle San Giovanni, ricco di =
palazzi=20
            antichi come quello che ospita il Comune o la Casa Giannone =
e il=20
            Catasto Onciario, che ha una pregevole Fonte Vecchia, =
ricoperta di=20
            rovi, che attende da anni un restauro. Probabilmente non =E8 =
solo il=20
            regista Rubini a non conoscere questo antico paese che ha =
una=20
            importante Parrocchiale dedicata alla Madonna delle Nevi la =
cui=20
            storia, per molti versi, =E8 vicina alla grande basilica =
romana di=20
            Santa Maria Maggiore. La tradizione l=EC infatti narra che =
la Madonna=20
            apparve al Papa Liberio ordinando di erigere una chiesa a =
lei=20
            dedicata, sul luogo dove l'indomani avrebbero visto cadere =
la neve.=20
            Miracolosamente i fiocchi bianchi caddero il giorno dopo =
solo in=20
            quel punto. La chiesa =E8 dotata di una poderosa ed elegante =
torre=20
            campanaria con una facciata a capanna, tanto cara alla =
architettura=20
            sacra dei nostri monti. Basti pensare a S.Angelo a Riano di =
Rocca=20
            Santa Maria o San Nicola di Pietralta a Valle Castellana o =
l'Assunta=20
            di Alvelli. I materiali con cui hanno costruito la chiesa =
=E8=20
            l'espressione pi=F9 calzante del rurale che anima questi =
luoghi, con=20
            l'impasto di pietre e cotto, legate insieme con malta e gli =
angoli=20
            costruiti intorno alle pietre arenarie dei vicini monti =
della Laga.=20
            E poi chiss=E0 quanti sanno dell'esistenza, non distante dal =
piccolo=20
            lago, del cenobio benedettino di San Giovanni in Pergulis, =
che=20
            sorgeva sulla vecchia strada per Faieto, la cui fondazione =
=E8 da=20
            collocare intorno al mille, quando nell'Abruzzo, inizi=F2 un =
periodo=20
            di massima diffusione della cultura benedettina dell "ora et =

            labora", tanto cara al santo. =C8 da credere che la nascita =
dei=20
            monasteri ispirati da San Benedetto, sia avvenuta qui da =
noi, grazie=20
            a monaci provenienti da Subiaco, Montecassino e da altre =
primitive=20
            installazioni monastiche, magari attraverso la direttrice =
delle=20
            antiche strade romane fra le quali la Salaria e la Valeria. =
Accanto=20
            a grandi insediamenti come San Clemente al Vomano e =
Propezzano, ci=20
            fu posto anche per piccole realt=E0 come San Giovanni in =
Pergulis,=20
            tutti comunque rigorosamente accordati ai canoni benedettini =
delle=20
            tre navate con pilastri rettangolari che danno senso di =
grandiosit=E0.=20
            Con le immagini del film di Rubini forse rivaluteremo questi =
luoghi=20
            cos=EC vicini! Sergio Scacchia=20
            www.pensieriteramani.splinder.com<BR><BR></P>
            <DIV style=3D"CLEAR: both; MARGIN-TOP: 5px; WIDTH: 100%"=20
            align=3Dcenter>| <A=20
            onclick=3D"javascript:show_this('send_post_comment');"=20
            href=3D"file:///C:/temp/rubini.htm#addcomment">Aggiungi un=20
            commento</A> | <A=20
            onclick=3D"javascript:show_this('send_post_to_friend');"=20
            href=3D"file:///C:/temp/rubini.htm#sendpost">Segnala ad un =
amico</A>=20
            |<BR fixed_bound=3D"true"></DIV></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE><!--  Form Add Comment -->
      <DIV id=3Dsend_post_comment style=3D"DISPLAY: none"><BR>
      <SCRIPT language=3Djavascript>
	function check_form()
	{
		user =3D document.getElementById('PostCommentUser').value;
		if ((user =3D=3D "") || (user =3D=3D "undefined"))=20
		{
			alert("Il campo Nome =E8 obbligatorio.");
			document.getElementById('PostCommentUser').focus();
  		    return false;
		}
		=09
	    email_reg_exp =3D =
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
		email =3D document.getElementById('PostCommentEmail').value;
		if ( !(email_reg_exp.test(email)) || (email=3D=3D"") ||  (email =3D=3D =
"undefined") )
	    {
   			alert("Inserire un indirizzo email corretto.");
   			document.getElementById('PostCommentEmail').focus();
   			return false;
		}
	=09
		comment =3D document.getElementById('PostCommentComment').value;
		if ((comment =3D=3D "") || (comment =3D=3D "undefined"))=20
		{
			alert("Il campo Commento =E8 obbligatorio.");
			document.getElementById('PostCommentComment').focus();
  		    return false;
		}
	=09
	}
</SCRIPT>
      <A id=3Daddcomment name=3Daddcomment></A>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop>
            <H3>&nbsp;</H3></TD></TR>
        <TR>
          <TD></TD></TR></TBODY></TABLE></DIV><!-- End Form -->
      <DIV id=3Dsend_post_to_friend style=3D"DISPLAY: none"><BR>
      <STYLE type=3Dtext/css>.required {
	FONT-WEIGHT: bold; COLOR: #ff0000
}
</STYLE>

      <SCRIPT language=3Djavascript>
	function check_send_form()
	{
		user =3D document.getElementById('PostSendUser').value;
		if ((user =3D=3D "") || (user =3D=3D "undefined"))=20
		{
			alert("Il campo Nome =E8 obbligatorio.");
			document.getElementById('PostSendUser').focus();
  		    return false;
		}
		=09
	    email_reg_exp =3D =
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
	=09
		email =3D document.getElementById('PostSendEmail').value;
		if ( !(email_reg_exp.test(email)) || (email=3D=3D"") ||  (email =3D=3D =
"undefined") )
	    {
   			alert("Inserire un indirizzo email corretto.");
   			document.getElementById('PostSendEmail').focus();
   			return false;
		}
	=09
		emailDestination =3D =
document.getElementById('PostSendDestination').value;
		if ( !(email_reg_exp.test(emailDestination)) || =
(emailDestination=3D=3D"") ||  (emailDestination =3D=3D "undefined") )
	    {
   			alert("Inserire un indirizzo email di destinazione corretto.");
   			document.getElementById('PostSendDestination').focus();
   			return false;
		}
	=09
	=09
		security =3D document.getElementById('Security').value;
		if ((security =3D=3D "") || (security =3D=3D "undefined"))=20
		{
			alert("Inserire il controllo di sicurezza");
			document.getElementById('Security').focus();
  		    return false;
		}
	=09
	=09
	}
</SCRIPT>
      <A id=3Dsendpost name=3Dsendpost></A>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE></DIV><BR>
      <DIV>
      <H3><A href=3D"file:///C:/temp/rubini.htm#comments">I vostri=20
      commenti:</A></H3></DIV><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD><A id=3Dcomment_780 name=3Dcomment_780></A><A=20
                  href=3D"file:///C:/temp/rubini.htm#comment_780">
                  <H3>#1</H3><B>roby</B> ha scritto il 10-07-2007 =
23:12:32:</A>=20
                  <P align=3Djustify>Scusa ma non =E8 Scamarcio l'attore =

                  protagonista? C'=E8 anche Preziosi in questo film? Se =
puoi=20
                  rispondermi te ne sarei grato Ciao=20
          Roby</P></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD><A id=3Dcomment_781 name=3Dcomment_781></A><A=20
                  href=3D"file:///C:/temp/rubini.htm#comment_781">
                  <H3>#2</H3><B>Gianluca</B> ha scritto il 10-07-2007=20
                  23:36:15:</A>=20
                  <P align=3Djustify>"ricco di palazzi antichi come =
quello che=20
                  ospita il Comune" Scusa ma da quando Valle SanGiovanni =
=E8=20
                  comune?</P></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD><A id=3Dcomment_782 name=3Dcomment_782></A><A=20
                  href=3D"file:///C:/temp/rubini.htm#comment_782">
                  <H3>#3</H3><B>sergio scacchia</B> ha scritto il =
11-07-2007=20
                  06:59:07:</A>=20
                  <P align=3Djustify>chiedo scusa per gli errori dovuti =
alla=20
                  fretta di battere la notizia. l'attore protagonista =
nel film=20
                  di Rubini non =E8 Preziosi ma Scamarcio per palazzo =
comunale a=20
                  Valle San Giovanni =E8 da cambiare la parola in =
palazzo=20
                  marchesale essendo Valle una frazione di Teramo. =
Chiedo scusa=20
                  per gli errori e ringrazio per l'attenzione prestata =
ai miei=20
                  articoli. A presto Sergio=20
        Scacchia</P></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D370 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_top.gif" =
width=3D370></TD></TR>
        <TR>
          <TD class=3Dcontent vAlign=3Dtop>
            <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D"100%" =
border=3D0>
              <TBODY>
              <TR>
                <TD><A id=3Dcomment_789 name=3Dcomment_789></A><A=20
                  href=3D"file:///C:/temp/rubini.htm#comment_789">
                  <H3>#4</H3><B>Stefano Ulissi</B> ha scritto il =
11-07-2007=20
                  19:11:18:</A>=20
                  <P align=3Djustify>Forse furbo Sergio sa bene la =
storia del "La=20
                  Valle". Nel 1809, il governo francese, che govern=F2 =
per soli 10=20
                  anni il Regno di Napoli, scelse Valle San Giovanni =
come=20
                  capoluogo di un vasto territorio comunale comprendente =
anche=20
                  gli ex feudi di Frunti, Valle Piola, Abetemozzo, =
Borgonovo e=20
                  Poggio Rattieri. Propongo che non sia necessario =
rivalutare i=20
                  tesori che sono gia molto vicino ai nostri cuori...=20
                  www.vallesangiovanni.com=20
              =
www.vallesangiovanni.it</P></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/content_bottom.gif"=20
        width=3D370></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=3Dtop>&nbsp;</TD>
    <TD vAlign=3Dtop><BR>
      <TABLE cellSpacing=3D0 cellPadding=3D0 width=3D120 border=3D0>
        <TBODY>
        <TR>
          <TD><IMG height=3D10=20
            src=3D"file:///C:/temp/rubini_files/partners_top.gif" =
width=3D120></TD></TR>
        <TR>
          <TD class=3Dpartners align=3Dmiddle>
            <DIV class=3Dpartners_div id=3DBanner_32>&nbsp;</DIV>
            <DIV class=3Dpartners_div id=3DBanner_37><A=20
            href=3D"http://www.teramonews.com/addBannerClick/37"=20
            target=3D_blank></A></DIV></TD></TR>
        <TR>
          <TD></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE cellSpacing=3D0 cellPadding=3D0 align=3Dcenter>
  <TBODY>
  <TR fixed_bound=3D"true">
    <TD fixed_bound=3D"true">
      <DIV align=3Dcenter fixed_bound=3D"true"><A=20
      href=3D"http://www.teramonews.com/contatti" =
fixed_bound=3D"true">Contatti</A>=20
      - <A href=3D"http://www.teramonews.com/disclamer"=20
      fixed_bound=3D"true">Disclamer</A> - <A=20
      =
onclick=3D"open('http://www.teramonews.com/credits.html','credits','heigh=
t=3D310,width=3D400,scrollbars=3Dno,toolbar=3Dno,resizable=3Dno,menubar=3D=
no')"=20
      href=3D"http://www.teramonews.com/credits.html" =
target=3Dcredits>Crediti</A> -=20
      <A href=3D"mailto:info@teramonews.com" fixed_bound=3D"true">Invia =
il tuo=20
      commento</A> </DIV></TD></TR>
  <TR fixed_bound=3D"true">
    <TD fixed_bound=3D"true">
      <DIV align=3Dcenter fixed_bound=3D"true">Copyright =A9 2003-2007=20
      Teramonewsgroup.com - Tutti i diritti riservati.=20
</DIV></TD></TR></TBODY></TABLE>
<DIV id=3Doverlay style=3D"DISPLAY: none; WIDTH: 100%; HEIGHT: =
1px"></DIV>
<DIV id=3Dlightbox style=3D"DISPLAY: none"></DIV></BODY></HTML>

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/new_logo_tp.png

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

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/new_logo_btm.png

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

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/rss.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2JlAGTAAAAAAf/b
AIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxsc
Hx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f
Hx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgADgAkAwERAAIRAQMRAf/EAIYAAAMBAQAAAAAAAAAAAAAA
AAADBgEFAQACAgMAAAAAAAAAAAAAAAAEBQIDAAEGEAABAwMDAQYHAQAAAAAAAAACAQMEERIFABMG
MSFxMjNTFVGBIlIUNBYkEQACAQIEBAQGAwEAAAAAAAABAhESAwAhEwQxUZEFYSIyYvBxscFCckGh
IxT/2gAMAwEAAhEDEQA/ALvj4zstlcw0/LnvfiRZEpiPFfIXHHGjFBbFVQ/FdTprh+2q1++6szwA
Tkx5jHfd0Zdvt0ZFSSVGajkcMOGaZXjkWRlchiTy+8U6BNkIb7AN+WdyC1buklg3j17l0dd2ayku
9us5gt8ccAWt60XIS3coGRC5fA+2MykXKRchj4k8cngQlTBYSc9PGXFNlbqreAggOEiIooq9K/DW
bna0kKdRAWAqrkR9sa2u7rBYabkKTTRBnw54Ty9rNYdlxSj5SEKPI3CyJTxlRnwvohOoABtKYJUU
r11DuG3NlDAuZcGrmfnyxZ23crecSbefFaIj5c8RHvWZ/rf35H6Hqn63fpJrPo1VGqqJnOIw90Le
vTSKaJiMpnjjsYzNcjakchTHYCU+rkCY3KJXIgq3HJU3HR/0CqkPZRE7dMO2o4uubZVmKtI82Qke
3C7ujo1lBcDqoZYPlMmD7v5wZDkOaaYwAZzi7kl9mK4UNyS9EB16CrapY8gykJEStWlKhXJ9NVqi
mXNQIgvabcqicx45dMA2tNnc2NReEhQuRniM+vhgXkmVcwEYovE3Y/GGpwm63IkMOC7I21QQInpQ
kIW/anip211Kpja8gQWqs5LEf2OGIlVF7/Q3DepygICOh44RK5DlZPDpwYvi8rH8c32DyLu+08Sn
upsAO9Jqg7tK2iq9KrqtizWGFoKtv8s3PSV+mLFCruFN0u1z8RCDrDfXEl7jM/qb/apV34NNu6Ld
Te8Xn20+elGiuh619fu5frh1rN/0TQ3o9vP9sf/Z

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/top_news.png

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
k0466eS/Iu8Bre8/p4h1MLsAAAAASUVORK5CYII=

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/215.jpg

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
/9k=

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_home.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngA
AAAWdEVYdENyZWF0aW9uIFRpbWUAMDMvMDgvMDd05UCxAAAC40lEQVRoge1a23baMBCcMaRJKJD8
/6/0ref0e1LCrZDg7YMulmRZtrEDAXteVpLXuqDxancFRUTQAgIAIoVUBQgAEQFE17S0zx3pPjd9
6B7VANRF06QL9bLoJ6Vjtew64nP264k+rW7w20TGKP0eiXlYGZt/VLd6/KptnkZbz0EbGkkgARCE
iOjFuAxg5TuN+4+9K5F6F9lHH5fq00F/BKhFOAPxWl0LIGZ3BAANCcTTi68vrMXeKbf6splOtUZZ
q8k8Uv3VzaeZzldbgL5Q7DWsCWt3So1oge9HgAqUScCrzOPecDMEIJVLUBBBGbWRBt1wWQL05cBB
EcH1+skKZ7GJM9S3o1XlxLVtbzNGm3YHSQKQLJnejESe56nXLg7fMmA0Cy1wM0dAPSSIlQEVXKKZ
5RkoOhNgOp3Y8vHjw5YfH394erv9HrPZs61vtlvv+ctiYctvq/czZ6NDiDBBBVUnXb0RQAMCkPEf
iwCyyQSfnydA/8APD1McjwUJ/h0OdiOen56w2+3Vhohg/nOG9UaRYLmYY7Ve670TvL4s8fZ31WFZ
BOhaBAmOiWJNFcsbDGoJEPoAJUI4cXsXuBagLxC0sQJhnEYAyO0xQWaDJkF3H6Cn89W1ACYB1DtI
UASiWavInYPM+h/rRnA2AQTA6XTCZBL4AGfs2/t6g+Vi7rV1OwLqYT560ZnGoVqBJAFiKdhcHaa2
7voAbr75cDh69d1+75Fjs916H/lFLMCIEnoIA8ONqq5L9Hn7UdzLllDGrlDiFyQCEMiYqXyH/6Ti
nXKvsaubqpHDuaUubdK66dml+g1xR3mACthsmFgp0M4saTIFg8XXEqAmDXm2TlK3CP1cPYIqOgSd
2K/4s0fCqHwvacphvU27g5u3AGVXQW1uRlU0QaBSdozq6GIAuEUCBBunPmbqMq21N5tMOI5l0nQM
E9Nfv/+oMEibyKtAfaY26jCXUCRt4qkoK5nRNelXmvcd4D/mcbysdD9A2QAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_accedi.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMy8wOC8wN3TlQLEAAAAfdEVYdFNv
ZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAACjklEQVRoge1a23KjMAw9grK5kUz/
/0v6uDP7QbvbNiSUEO0DtrGNbS6lNNn4TCYCWZYEloVvxMyMEWAAYG6pugYYbJVJXkNZCBp1hHld
TvyURemhkg1QWY/ZZVc9Qcc3m9p1XNTwVX9ujfb7HPZD6m+bSdj2vTf1DixfPc385OSOBEFvMLuA
AGqcIwKYCRAs8edXzAz2a4+YAcnYCmRRECkGiXsCKX5DCEQkKECCtpUivguzZIBPwe7cc3R27tHD
I6iux3U/lfr0zKU/pFfD6AwQ8X8hBsCD46YC4LDPv9uFh8OgACBafqT2fNgvbvMR0RsARARmXjwI
/ry+LWrvUfGpWUCapuq6ulwAAD+yTPHOZQkA2KxXilecTgDaQek+33X0MpoM8Pvvq7MsRF2yIX5o
wDy2zJZZwsbQMt+7CAaA7P0AVBaQ90mSoK5rY9UryzJ8VJW2msZYr1Y4nUvIFantZo1j0QRBvtvi
7f0onGQc8jgGWBq9GcBO/cOm6aaUngHGaDFlQ319aJ2vmtTPpWMpnS16A0BfQyaiSQs3egaAyAwR
twFvAOjpXkJ+Bq7XK+r6ijRtx5DV5YKPquqMAc5lifXKzADHogAAvB8L5LvtLA8SMQ00eTdQfOc7
u2DAgB0vczdQSDUZwrebZdQXCTy0Kyjr6r5ZO5e6f1572q5byL+OfYddw09W3pnyht/mcw/bmfTI
a+2jY/pCkGtWGBpuRtwkvmAlMEbAPeGmloIjlsf4haDQrEIeAHFNFeRHzdDDVnnATodymKKn3BBj
kw7W4bBp1IccAIky3fYQ/hAq7fXwPUO9WTKAPAjS3kTcC55efv5qI4bQRIpsTG54pE73NCd7EkrU
dTzUc9/4BwNVppbpxZ/uAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_registrati.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMy8wOC8wN3TlQLEAAAAfdEVYdFNv
ZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADA0lEQVRoge1a25aaMBTdFkZQwbtY
Xf3/v+hbH/oh07FexhuOjnY0fYDEBBII4szqFPZarAPJyT4nGk6SEyqEEIIMIABAiFRSKpkMbjl9
+kzCUpKd+1ZfQjXObkRSrtA/bc5Y+7Au5OZtM+6wPLxV+wQiaXe1Edenfol9iOKLpKxEgVAOgILD
zM0QjStZnxXVUSnoqJTYNCKWE4Xk9Xl5Dd9xTp5D1jbGleAD06NlEpu8L7ye0E7HNsfFo4wABUc5
AAqOxAFQqVSE615o1OupOp1W82b+0XAgPH8bDW/m+t+RGgGCLVxw3WsQvOz3d+HRxeNk+qH2PhNy
TwGmacA0TTyY8fWkbVmwbQs120a9ZrNyGgHooqTpOGi6DlquAwBoN10AQRTotlsgAHqdNgiAfrfD
eLx+F16/h+GgxxZvIy94+8dDD+OvHoAgAsjWjUkLTh19lV4SP5HU6V5JXLdeqbsA/q0nkWSCYRh4
ezsjTD/gwTRxOv0BAFjVKl6PR5a0qNk2ZHCdBra7nZC8WG99tJsuVputYLPfaWOxXLHV7WyxZImP
4aCHyWyByWyOkTfA03TGbJdQI3UA0OyVKvybppHLAX/3AtdpAAA2/i5Rd7Fac3u4IAKUyAftPABd
A1wimWM+AhC2Ic0GGgGaroP11tdqM+h1YxGgRHZkSgSxQXC5AADO5zMMQ4wAdAo4nk6wqtVUTvr2
A8DG91nYXm22bCfwvF5TD5icPy8x6EUjQFD/NJ1jHO4Efv2exuqjXJ9L0ntVX3TKr6jkPgwK/zA+
AsgOMGq2jf3hID+E4Q5ThIMLnUOmqB7hfYz7IR6gxG3RPrHjIKLiiB5kqfsu6Ov0IVFSLlVfrr+B
0FZxGJQ/FZwA27LY/f7winJB9u/hXQcAvwvIFmdKfBTKVHDBUQ6AguNdpwA9ROeGe8wV6lWvaENH
6q6+8/Lemz+J94r7DYAs/xvnl+AqiVXHm5KrpG2IRJmvu+l7gJS2id8D8P0imm2T+NLsK3h1vgcw
v//4KSkuURT8BWvzQ9ko7H50AAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_cerca.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngA
AAAWdEVYdENyZWF0aW9uIFRpbWUAMDMvMDgvMDd05UCxAAACH0lEQVRoge2Zy3aCMBCG/wgtpWr7
/s/SXRd9nlZFQNHpQhMmMQlBjvScJt8mQOaSyDCZREFEhBEQABD17eUCRACBAKPl/Uru6pKImKy0
K2V1OSU/4K/329u12en9G/OR/dzOpevqt793+pf2LPN1zlvpy7EE/I7Mn20+ml81Jp1F0FtP/FtS
AEROCoDISQEQOSkAIicPERJCqOvzuE2Dxv2auq7PjkuOHO3QM5euy57ZN1VnyjPfnCWDASCEAN8p
CiFwPp+H1CyY7kPv722n2LnXhk1/6NXP1do/G28AmC8fuGYA9izPM3V9OB7VdVE8o2lblC8F6qYB
ACzLUvXvqgoA8LZaqWc/m61vOIkHELQEuMiyDF13gjyYeHrKcTj0QfBSFKibFgDhtSxR1TU7uLgE
0Wa3U4cd7+s1vjebKUNKjGRSAAB6BjBp2hZDJQPPAIn58QYAEd0sAwujBuAZQB5NhrJeLW8yQGJe
BjOADAIJrwFOpxOyTM8AfAng7Osar6wG2FYVtrsK69XScCj96q01sNRZ+rXMYTo3amTXsfm7sWOx
r1qzD3ZdMFmvH9scbH58Y7TJOr7NoCWAZwDTSNd1bAD9DNr2ADKqz2pfQ8sWuNQA2h8dQdvMR1fN
3M/cFbrNZ6hcqI+edBAUOSkAIicFQORM3gZ68RVwU2TGyvqWeJfdMcvqnDIhOuElQMoAsZMCIHLy
j8+vvx5D4g/5BdchVfj7SsxrAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_photogallery.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMy8wOC8wN3TlQLEAAAAfdEVYdFNv
ZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADV0lEQVRoge1Z2VLbMBQ9BmePQxYb
AkmIoZT29/vYh/4HtCyhpUxZQlhCwlKqPsQWkizbUtiSic9MRrLuciTrRtaVDEIIgQYIABDyVNI6
QEAYGTwZoTLiCQjVBWPPl363CCGMb9/PkyxgI+EK+Ga44/3IdUZjl4xHHG/EuOLe4ZOub8+/Wxk3
y8m/Q89WgKkz+TogIXUdO7GNRNRV7VXaVOoyfpV+6uiO41PFF4s5SVuCGUISADOOJABmHGMHwPzc
5MZOo75E662V+jv2ZPIROYuGYXA/EVEbrjB5IZ+PlMf519FV3fSNu6mS+dXx9do/Fa7YLIDNEg3D
wD/lrDFGj4Q+eHkPU7LDidomh+lK2wUOtqR1SX+I4ENWiv3mOAQdKb8qRwy/bEwCnrWOm/PzME0T
KTMYR9lMBrlsBrlslrYV8jkAQLGQh1Us0PYFy8JCyUK5ZAX81Cpl2NUK7GoFTq3KyeqOjfqijeVF
R7nPbrMBt9XAWqvJtW+4qwCAj2ttAMDmuktlnzfWlf1PG551DvD38RH+AUPKNHH/8AAAyKTTuL27
owcluWwWg+EQN4MhCvkc+jcDevhRsoq4vL6mwVsuWehdXAIYTX63d0FXIbta4fj/nJ55dgTLiw6O
jk8i+9turqBz+JvarLWa2Dv4ReUb7ip+7B9A82xsqhEbAOy3n4ScJr0X6o6tbeM2G6Gync7PmZp8
QHMPMElYcmqBFUAF7ApA2O+lgO97HfoZ2NrZm6jAf0m8ylHw3f09Muk0fR4Mb+FviPqDAYpeJnDV
v8HVdR8lq0h1e5dXdFK6vQvUKmUpx/FpF0tOTatfB4dHaDdXuDb2EyBie7eDTx9cLY5pg/GcyyDu
koH+q0buiHBZ4pfySyDCbGAJ758p7WoFJ2fnQV8ch5w/7rKGtxvVN9ddbO3uC+MN42W4fF9SDkEn
4iIqikvlMkg6TwL0VwAhw+EEoTLRTkyT/MegIbsCnHbPmU9SWJrk+VNOpSSlrE01PfPJuTHF8HGp
Z5ROGK/K+Jg+MXi128CXAs0C/Eh/Q2zv7k/sHuil8GYBQGLqYXJVe9FXWF3XlypHHG+U3TjjGLcf
Iib3QD/BmyAJgBlHEgAzDvPL129KigSAAQOpdApzkpvBBNOJ/0lDeeapixxhAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_downloads.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngA
AAAWdEVYdENyZWF0aW9uIFRpbWUAMDMvMDgvMDd05UCxAAAC3ElEQVRoge1Zy3baMBC9LqaB0jSh
PGoIJCf9/9NlN/2WnDSBpoRAkjblYZeiLrDGemHsYidQ+y6wLM3MlaxBGmksxhhDDHBxxgAGBjAG
5lcEdavnStSvJz2my4g2IMuSDtmKw6fLSM8QXrm/m/lkLl7mtuVxmsdn4Fv7DdR+6OPT+bi+DDvO
5L8EWMJl8ZlGeR/siXhlqMuRIWzhALF2jhw7inwFyDi2c4AUFoHq0bvEbZ6dtBO3+b8gNAi0LEt6
j3lgyLEH2LgC8CMKY0xziEAo6W7leC7EOgZyJ1gul4EBOzDheb+pXDo4wGzu0nvlTRmT6RQAcFip
SHZ//HwykQEA6tVjqhqO7/221cNp1qnt5nYI/xAMgKHbdlSD1Hbe7VDtxddric+/RNDrFBv+AVuv
o/6JMqpsCI9Wx22pPKa+KDzruAVsdQ9g2wUsFgu6vHhdLML1PEmmXCphOptruk+/JnRhcXT4Fo8G
J6hVjzG6f/DHwNCovcdwNKb2wfCOLjraH5r4NrgFAHRaDno3A7oYOT1pkc55t4PL6750WZJlJHQR
ZOEl9gGn2Yitc9nr0wpwcdVLukt7h1gOoC7/YZi7rr8NzFEulTCZzpCkkziNurYCRAVfAT6edoMt
IKPY6ABi4CfeWQPAYvEHtl2gd9fzEl0Ixg+PqKkxgM8/uBvBadSNev3vA3RaagywgrT/X/UyvwVY
/54M0pMTUlICkNvXJGe0ZFBYMoRkuI2ICRMlAWXijpyY0XTVpJDCJ9lQZIxjkzkDPoXbOEaF5/mS
Qet8SIhUTeJ8IAieTBEBgsmhjyL+KoEuhA8UOKM6+aAomZGywGPiNE2ANvnhjhfJ4Ux2IMrwdkVW
cqboDpDaVXDGV9a9Qbq5AP5vy7GzSNUBxOU6x24izwZmHFsHgVH+30HQFFMvxbIacEYtr2vbRjeK
zbhcYboi7E+fvxiqk8Qq+rTtAuxiMWWuHHHxF0Z4gG2VmcYgAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_feed.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAVCAYAAACOleY7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMy8wOC8wN3TlQLEAAAAfdEVYdFNv
ZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADX0lEQVRoge1ZSVfbMBD+7KSFFtIW
EkISoPz/93rsof+mPEIwWXsAsjTLcIilzEiynb0pT98hHkmjmVEszWIFRERYAYqdiEAEEAggAqmx
uI9I8ZLm5TJoTmheiDkGj+C3bYClT9mlbJF2LeY6dOl1uHUlyZXy3fbMmy657vXIuYpH9af9b7E9
Qpd8Bwr55V/9JggQL2M/6jyWRrh3jX4PHBR26AHIprl7Cww2wU7yiYSxWJ5+WurjMVOHjEcOuSk6
UscYD9eZpcOSlzZm6jCesbu39TKbGPbrAQL94z3BgWD/ISAGEeFL4fRfqfeIkRoCgiCw+maz2c6M
4SiefRPtVrdn8VQvLzTdeGqKse9XVU3f1Rtbtu79IDMHMKvEFavGZKhIkCKv0/ujeS6K52h1unqs
Ur5A1GzrkqdWKeMhmm+Cm1oF940IKt+4va75TZCAtZPAXC6n6fF4rGkCcHx0pNv9wUDMK5yeiDbp
38DoWx6EuQcgI89R9F294ezPosmgnflqCr9Jr6Mji38Z2iVLIXMD8DCgTmsYhphOp/ojxYd8Hn/j
TXB89BHD0Uh/qPj86Riv/T4AoHBygueXV/2x4muhoC0jEMyIUzo/03Sr2xPZe9Rqo1p2h4D64xNu
ahXd9qc/GSuHAAXuAUxwD+CQKB5Sl2yrEFA6PzNKt/kjarb0l66ryiUeoiddEt03HvWXstvrK/y+
f5BKiJ0NV9lJ7NysVALCoDNKP9dYVnmXVuYto49h7SpgOp1iMplgPJmIEAAAw9EIg+EQ/cEA/f4g
QYIN/lmUo93toVwqij5++k3c1KqJYx4Sa+UAs9kMYSj3jgoBw9HI8gAqBDy/vFo5gAki4umARqvT
RblURLPdAeAOAWrz1B8jsQnu6o3tJa/vDMFml0H2JYo1HrssdWEhL0XsCxKr6lA6xUUNIC9I+MUR
G9O01LGYE/M41iFtUmuw9QgdbJ2STv6/+BiYPi57YaPUl7mWBH0ce7oMWhFq4QCszNBjqzjMDTC/
PPRuew84zA3AEbsv7wd2g91sAOfBpQzaVYIt2gS4wwGfnkSnzVlFjjkva2xdPZv0LWMvw+F7AKjS
14eDXeC/2ABxSqCzc58Ybg/5Hz9/7Uw4P7PbeGVKXi4MkcvnEQQBAp8dbIQ31lekyOaisJEAAAAA
SUVORK5CYII=

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/bt_contatti.png

iVBORw0KGgoAAAANSUhEUgAAAIAAAAAUCAYAAABFyTWeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwMy8wOC8wN3TlQLEAAAAfdEVYdFNv
ZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIDi1aNJ4AAADrklEQVRoge1Za1MaMRQ9d8VWxSoo
PuqM//9/tVNURFAErBZz+iGPTbJhWVrWEfHMAGFzX2zunnsThCSxBKw4Sf3SX0DvGggQBGnljay7
7ssk5D17sS/nw0AgTrcQhx1HMQa+nTxMnH7MkX7KVkof5je4ce6v6Ccdrx/n3Htl58hoXB6vj8Yy
i18ZAggFEPujavBhb4DUYHuDkNViVSejgUBEABGdGCtYMd+CUoRSdWTYZqAeBgDgpwBgF01AIYT6
04owEvc1WbAUf7fUahIsacdQoXsvzoQydO++BkvkUrYYWWA0l/aTkltsKz2XtuWjxgQogYhbKAKm
iv8nbM1dEctsCmpNgIW1X/RSOTFPYbmE0FYIAgqaZT6ToBIq9QAi4l6rwMF+M7Qf+RDJl++scxxk
w8XZaaB7efHdGdE6uiQoqpq6z4+FhQwgIuG2SwRKqYrml18AnWNRolmaSCzoz+5VdFm8LRB1/EtH
sTmQsnOAePGB4t610chz6Pnlxe1Vd3a+BnqT6RQksN/cC67fjx4BEq3DA3ftbngPkugctUuD/9m9
xuXFOX78ukLhrEHFbY9AdG5Ee+75++ey8wHnz96Twp49sm/1Ap2UHz+O8nMApPy85TlAo9HAn9nM
OfiyvY3fz89ufvr05MZ7u7sYT6Z4nEzwrdnE6HEcBDV8GLkbfNRqoT8Yoj8YonPURu9u4H7Q2UkH
3ZtedCBkb4gHge4InRxBEayoin0Y1L4LqFqG2x4DzIVZPd0jCBR0KRLXBALuEML6FbinBiSUArJM
PtsDg9IEIFkoA1mWpXuAf7qhWql1eOAYgCSO263QpEdlPmyrKJkY+rNKOcUHpwGGVl9fGfQabr9s
qRJIsEtM/yhQdEz/Nhmdrai85DGFYz+WdJkIy9GyR9c+FjKATQILf/Fns1m6ByhaCb6NxmMc7O8D
0D3A/cMo6AF83N4NcHJ8BAC4ue3jutfH+WkHANC97hkpTe0ZAGaidwBK+yUdBSD/5wDm9FDHtard
zTqitAlMYW62JhuVMGvNqNjMBFnuN2goZrL/tJnmJ2igoqdEUUEpglS5r9QT4Z1JFJ/K+fYXMUCh
6Vw3BlhrCCDIkGWaCUjmDBYnmlLmDKKev0feKz52AniwNX9rK9OMAIKKUCSEhCtswdHkx8cbJgDx
Xv67FdFNIzJgyzCDADntbhBWmwAldy/YolWQrzS/SDbla55/f77KeJ7dqvpVfaxCPxW3wdsWvE17
vNYAm9XxfKKAv0GRfSBhFJTvAAAAAElFTkSuQmCC

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/left_td_news-cat.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAcEBAQFBAcFBQcKBwUHCgwJBwcJDA0LCwwLCw0RDQ0N
DQ0NEQ0PEBEQDw0UFBYWFBQeHR0dHiIiIiIiIiIiIiL/2wBDAQgHBw0MDRgQEBgaFREVGiAgICAg
ICAgICAgICAhICAgICAgISEhICAgISEhISEhISEiIiIiIiIiIiIiIiIiIiL/wAARCAAqAAYDAREA
AhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAgUGBP/EACQQAAEDAgUFAQAAAAAAAAAAAAECAwQA
EgUREyFBBgcUI1Fh/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//EABYRAQEBAAAAAAAAAAAAAAAA
AAABAv/aAAwDAQACEQMRAD8AvsV6glYjLW864bCTpoz2SOABVs7SDyKaS/W/aCZrqYFLivRJTsZ9
NrzKihafhScjQFx3mjx28TiuobSl1xHsWAApWWwuPO1The3/2Q==

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/right_td_news-cat.jpg

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAcEBAQFBAcFBQcKBwUHCgwJBwcJDA0LCwwLCw0RDQ0N
DQ0NEQ0PEBEQDw0UFBYWFBQeHR0dHiIiIiIiIiIiIiL/2wBDAQgHBw0MDRgQEBgaFREVGiAgICAg
ICAgICAgICAhICAgICAgISEhICAgISEhISEhISEiIiIiIiIiIiIiIiIiIiL/wAARCAAqAAYDAREA
AhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAABAUHBv/EACQQAAIBAwMDBQAAAAAAAAAAAAECAwAF
EQQSUQYHExQhQWHB/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//EABcRAQEBAQAAAAAAAAAAAAAA
AAABAhH/2gAMAwEAAhEDEQA/AKTZestdbmYOxmhYeyMc4PIq7GcrK+oppL/N90EG3UwItdnuF0ma
HRRGWRV3MBxnH7SHFU7UafTp055UjVZXY73AAY45PzU6a4f/2Q==

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/category_top.gif

R0lGODlhBAEKAKIAAOzq7fv6+/Lx8+/u8Pf29/////fv9wAAACH5BAAHAP8ALAAAAAAEAQoAAAN3
WKo08DDKSau9OOvNu/9gKHJDsJyKM65s675wLJPmGaglqu987//AoHBILBqPyKSy0HjkFirCckqt
Wq/YrBZFgCwEj9p2TC6bz+hFFyAoBB7StHxOr9sZYdV9z+/7jw5gAGJ/hYaHd2sPiIyNjmQQbY+T
lJVFDgkAOw==

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/minus.gif

R0lGODlhEgAYANUAAGJiY9bW1rW1tebm5qampcXFyJWVm/X194aGlby8v97e36urqoGBh8zMzPHx
8X19if///8/P276+zba2xNbW35mZmaWlrJOTlsbG1a2tvOfn7d7e7/Dw9czM2NbW5aams7S0vN7e
5p2dpcTE0Pj4/4yMkr6+xISEjq2ttL291gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHABAALAAAAAASABgAAAbTQIhw
KHQMFIFG4TIgOpWFDkVzkAgCgSEJ2bA4IaNS4jIMgCITE+nAPkAaJojAAUpYUCAQlcPnHDooEAQB
ISR9fBqJiRwdXiINGxohipSKGCIkIhUhIRQDn5yhESMgBhwVDB4eEaGcFBQjExMZFxoVIhERHR6v
rxiysxklIRUFGMevuhLAGc0nERUNExISuhjUss0fHwwFIhoWKSkdGCPLwdsfDygEEAaqGxurHebZ
GQgiCxABFiL+FRUMCDRw4QIqAAK+KFzIsKHDhxAjSpxIseKXIAA7

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/plus.gif

R0lGODlhEgAYAPcAAMMAALuko7dpaahKT93OzulubqIjJf9AQf6godre5rWMjf8iI+UAAPWOjvkk
JMZcXb60uf/MzKkbHcVoaP+9verz/OsZGcaNjcqgpf5YWeh3d+A4Od+zs9YAAKRfYMWGhph7fdoS
Ev61tumFhv/l5dHS2e4AAP7e3tulpfExMf8zM+phYveUlKNZXb95edGRkfhQUKY9Qci+vv///+Xe
3sJxcrSSktEPD/ekpbV7e/5+fv8AAPtqa+J/gP6urt3Gxv9zdOPq8scHB8ebnf+Zmd0AAPv4+OFs
bfM8PqMwNNXAwrxycvD7/7ZlZc9lZf8SE9uUlP/FxcKmsK5ERPV5evViY/VJSusnJ97T091lZ/AM
DP8oKP+HicwAAPl1dbNXWfTt7eEJCf/Z2b6Eif9OT9iLjP+PkbidnOTBwsx2ev83OP8LDL+sq9+s
rO7t7f2TlObQ0MSRkeK/v7Bma+IWFtPT38bCyPuCg/9mZv+np+9paf5SUrRtcvcAAKxZXvX///6N
jcClrsS0tPYWF8yhof8xOuxhYNVgYsKsrP9MTfUtLf/t7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHADMALAAAAAASABgA
AAj/AGcIHCjQDQ04ctpAmUKDoEMUR3qMYJGHwgpEWH4MNALnh5IHJzbO0NBiiIeBBALVkZKFxImX
JxYVwDBjCJgXZSbUSHNIhJgIQCOI0TNmhgI0Zij4oEAhShSmUKPoyfFHQRsiInAwFSHCh488eXyI
MMSnag0uRBp8RUDkDaA3b/SkCDOHiYIvQO5QecNFBxAgXqpcYcCgiJ8KNj7g4VEFCJ4Me2CkIFyk
8oAgNjiQIWNlzwEVDrRQrtwlRoIzBJCoUbTlyY4+JgoX6UI7SYkAbjYsGLTmdWzSXQAAMGCHzQwn
iQ6o2bJlwQILdELcuCFEAgRBM2gQinPhwwcXLpYsGxEgoEkTPyBkOFzPvr379/Djy59Pv779+zMC
AgA7

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/category_bottom.gif

R0lGODlhBAEKAKIAAOzq7f////Lx8+/u8Pf29/Ty9AAAAAAAACH5BAAHAP8ALAAAAAAEAQoAAAN2
CBPc/jDKSau9OOvNu/9gMwBkaJ5oqq5se5Ek4c50bd/4RJBCmf/AoHDo4AVIBaJyyWxuCj4oQOas
Wq/CHSDJGE2x4LAYpV04vN+xes1+ELzmRw9Gr9vv+Lx+z+/7/4CBgoOEhYUCFHOGi4yNjo+QkZJ6
AlQNCQA7

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/content_top.gif

R0lGODlhcgEKAKIAAOzq7f////Lx8+/u8Pf29/fv9wAAAAAAACH5BAAHAP8ALAAAAAByAQoAAAOL
GLoqAzDKSau9OOvNu/9gKI5kaZ7nQDAs+6BwLM90bd94zgktQ0iCVW9ILBqPyKRyyWw6n9CodEqt
MgkCiZCVhWyt4LB4TC6bz2g04cVjdNvpuHxOr9vv5PfiB/ji/4CBgoOET11CEHCFi4yNjo95EAEv
kJWWl5iZAYlemp6foKFmfJKipqeoqUUQCQA7

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/tezw5ynt5m.jpg

/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDAA0JCQkKCQ0KCg0TDQsNExYQDQ0QFhoUFBQUFBoaFBYW
FhYUGhkdHyAfHRkmJikpJiYzMzMzMzU1NTU1NTU1NTX/2wBDAQ4NDRAREBcRERcXExQTFx0aGhoa
HSUdHR4dHSUrIyAgICAjKygqJSUlKiguLisrLi41NTQ1NTU1NTU1NTU1NTX/wAARCACWAMgDAREA
AhEBAxEB/8QAGwAAAQUBAQAAAAAAAAAAAAAABQECAwQGAAf/xABEEAACAQMCBAIHBAYHCAMAAAAB
AgMABBESIQUTMUEiUQYUMmFxgZEjocHRFUJikrHhJDNDUmOy8BY0U3JzgqLxByXS/8QAGQEAAwEB
AQAAAAAAAAAAAAAAAAECAwQF/8QAMBEAAgIBAwMDAwIGAwEAAAAAAAECESEDEjEyQVFhcYETIsGR
0QQzQoKhsSNScuH/2gAMAwEAAhEDEQA/ANvXScZ1AxKYhKAOoASmAlAHUCOxQMSgQlMBKAExQA3F
MBMUAJTA4KWOB1pN1yNKyhxjiEFgOSjcy8PYezGD5+ZrB6z7YOiOiu+Sa1uFubdJl/WG/uPcV0Rd
qzCSp0S0xCUxCUAJigDqYCUAFa5yjqAOoASgQ2mAlAHUxCUAKDvSAcQpGaBkdMQlAHUwG0AJimBV
u+IWtrtI2ZO0a7t/Ks5asV6s0jpSl6Lyync+klulrpscm5k6swxy/wA/dWM57vY6Iae33Mvf3RtU
EzDmM7eNiep6neoNEgp6PcQUSCLcQT4MZPZvKttKdOvJjrQtbvBpK6TlOoATFAHYpgJigBMUAZCH
j/HrcDF25AOdNwiyA9NtWxx864fqPudj0osP8L9L1u7hYLmAR6zpSSMlhnyKlQfpmtIzTM5aLRpK
sxGt0OBk+VAEcfcb9/aoBjqZJ1ACUAdTATegDqAEoASmAlAHUARrw+1HOmjhTmyA63brkj9UVx6v
Wzt0n9iMa2rmtlAUIBBGxz3+VJloocWi125VFLOGUadvPtmhclPg6xJihRGBVveO4NF5Dbg2vDbs
XlsJP7RfBIP2h+ddkJWjgnHbKi1irIExQB2KAOxTATFAGcbhroD4c+RH+hXBZ3lazs7+O/F5akRy
w+PRImA3bSfLNCnWR0nh8egeh9I7uIKOJcPkTbxzW/2qZ/5RuBWi1UZP+G/6yT98F614/wAGuto7
pFfpy5fs3/dfFWpozloakexatlbl6m6kscdceI1RkyXFAhMUAJimI7FACUAdTASgBKAOxQB1AEsW
dOB3/DOa5NXrOzS6EYRollOiSTlg6hzOwPbPupVeH3NLpXyDhlo/tDuxKOp93lWcVRq8kwnjizEe
kY2758qe7NC2hPgpY8RAUyRo257B9s1vpPJz66+01NdRxiUAdigBMUwOxQAOOSRg/GuE7iSCIF5C
d+gFKgsk5W9TtKsr3NlFPtNAky+bgE0slJ+HRVHCI4CWsp57Njt9k50/utkU9zQ276kpe5Ot16Q2
/SWC9XGNMqmJv3kyKtazM3o6T8x9skg9IWSVGvbGWAAFZZVHOQdxgx5PX3Va1UQ/4d09sk/8BCHj
PCLhS0V5EQvtAtpI+IbBrTfHyYvR1FzFluN45V1RMHXzU5/hTszaa5FpiExQAmKYHYoEJigBG2BO
M47DvQMThlwbqESGJ4WywKPtjG1cmo7mdkFUTCcWYCCcZ/Vcf6xS7o07MDcKkM0wOrMe4HyGaqaw
TpssX8wSRARpZRs/uY9/hS22vYe6nXkO8EY+tW2evT6ir0uojW6WavFdRwnYpgdigDsUAdigYIXD
gMu47EVxHaXrRfAx99VHgGSladANYoilmwFHUmlQFV7r+lQW8a8xZg7GQHZQmPzqaQywYhS2Dsja
LHSp2jsznHrmzF3FbNbrcSqdb9sDGwLDffOaXBpC+wyzseHhVaO6kt7ncl43ZN85wA2RtVKa8ilG
T5VhWO49IYB9jdxXidhOmD+/HWimzF6cPFFhPSS4iz6/w6RP27c85fpsatahm9Dwy/acb4TdeCG5
TXnTy38DZ+D4NUpIzlpT8F7K6dWRpPQ9qqyKGc1c4Xc0rHtGnW35f+qQ6KYsZ7h2X1vlWmdo7UAD
tnU3n7q59TqOnTf2/uZW7t1juHiTfDEeLvg96ng05KQgVXaUIYnY62I3BPTptinu8hXgr3lnfTSx
Oqh4xjWvc9TkVUJKqImu4Y4O2Lq3HdXUH45xThiXyGpmD9jaYrqOETFAHYoA7FACYoAB266UVF6A
YrkO4JWv9UD55/jVoRNmqEDeNyaeFXR/YIqHwBhobm4hi1RSMh14yD7qzNO5vODPLJw23klbXIy5
Zj1NaIhl4inQGH40wHGJ/mP8o/Cspr/ZvpfgWXi/CYp5Ibi2kQIwUTQjI3HQjPWns8Ilaj8/qTRX
fB5Mta8QCugzy5Mxt8N8VOzxaK33ykyaPiE+NSyax79/vqdzL2RJXuI51Hrdqsin9bH/AOh+NVuf
gjZ4Y2IWMfitLiayPs+Bjp/dOoU/qIThLxZeivuMRDMc1veL+2OW3l1jyPuq1P5Mnpx9UMjsuIcU
j5vFuKra27E/0O2KocA6fE+T5Vpa7szarpjfqwxwj9EWpHC+HFjpDSD2nGcjUdbdSax1K3YLju2/
dyZu9jf1+5GBtK+4+NSzSJHoKq2tdu9SURvBEcEZoAfBFiVDqIKsPH3Hl1q4siawbjHz99dh54mK
AOxQB2KYCYoAzsU2PaUj7/4VxqR3NBe2wLdMeVaolkdzdQ20TTTMEjXqxpiAXG+Ic7hM2iGQB8aW
IHTPcZyPpUSKoyDP9go76mP3KKgo9E4Sw/R9sqkHEa9N+1aoll7NMRg+Lyp+l59Rx9pj/wAz+VYT
5Xuzohx8IHyyI8srZ2a5TB9wro0+n+5HLPq/tYNuyPXZyOm1RrdTNP4fpDlk+nhqdvATkVzS6jrX
BWtuPcVgHLhuPAv6jqHH371vCO74OfUpU/JOfSeR1kS5s4S4G0qZU5O2cb0ThWGEJN8F+zuGYQ3I
8Jb8dqxWJG0sxHWcQjhEY8XtD78DrWjOdB7gMum/g1ZOpXQHvnFQNlW/C/pK5UHcSMfvoY0RYz13
7VJQ3bmY/jTAaUGvUPu91VFkyNoh1IreYB+tdhwDsUAJigR2KAExTAy6WozuxxjeuRI7rDajEajy
ArUgFcckKWMmnrsPv3qWNcmb4neqOHrAkv2q6dQHXzqW8UVtd3QLjvJWMKFtWW3DAN1P7VKx7aya
pVia3RuWquFBzjB6Z3Iwa07EFngkk0kjF53caf6vJ5a9PZ1Fm+poQSMlxs6726z3lH+dqyfUvk2X
Q/goRk6Rg9ZvL8a6YdK/9HNLq/tKk7nnyE+dRPqZen0hSJ29RGDgaOlYtKzoXAPVhrat9PuYT7DW
9p/l/GlqZYabo0PDJUeCGMbsunI+dc8lTOi7iXog2Dk4w7Y796t/gwRdtrgw3kFwDnDDA+YzUDG8
TlMXHLtGYaXfUB0I/lRyhkclwDkD289OmfgakoUSprAxuaAHc1WXPtBPaqlyKRd4R6SNGxtr7Lwg
/ZzgeJB2DgdR7+tdEZ+TnlpXmP6GpQpIoeNg6HoynIPzFaWY0LigQmKBHYpgZgl9uwO2fedulcx2
F7Q49lj8M0ZDBVvLUzqA++DkahkA+eKh2NURLw+ALpkjWbPeTBNTuLIW4Nw0sG9WCkd0JH3dKN4q
J/VLfTp1uvbfer+oTtJeG26W7tiVWUjC9j881UWJmY9Vsrma5a6chuYCo30nvuR8azlJJrybU6rt
/wDC4tpwRoo0WOJmU5z7Jz9Qan6zXDYvpeUV7jgPCnGyyKW7o2r/ADA0fVyVWKwL/s3bxjl+sORj
oR+I/Kq+ou5OawCz6MXoduTLDLnouohsfMVrDVijOUWVZeBcXUk+rM480If+BpynF9wimghwyGaA
LzY3QjGoMMd/fWUzaPASthkEjJDMw7DSM+fvpv8ABl+5NzEIUuCEBz8/h8qQC8WZLi9NwP7RVbbH
UoO1Kx0V7HEZkzH133HT+VA2WmNu8eQmD2I2++jArZSEkkeUABKnPXff3GiI5C2yJIVbrqIDAbfX
5VoZnovD4LeKzRLUhoR7OltQ399WmjNolKiqslobp3pk0dppioyf60Xlrz9N6wR0mYHELsTkLKwX
Uds1kWTWfF+JePVcM2NOA2470Tbi6Q4pNWap/DCZTuVTUfkM1dEAqPjMj7CAMcZOG0/xFZRe7hFv
HLHvxu3iCNcQSIrtpBGlhk/A1e3u0K81YRs7i0vAeQ2dHXI6U40+BO0ZqwjE07Rt0eQA46+yKiSu
SXobJ1FsllTgazNC15y5IzpZXXuPfgVP00Nak/AvqVvynntrhJgntcvrv8Kl6eLspTzTXJGHnXZZ
GHuz+dRTKx4JI14qFE0K61cdcA5H8a0UWRcBDNfD+tg047gMtFMKj5Jmu45YVV4fEuyEP0PmQetW
vYlpruVbeUqsinYB2Pw3Oat/gyWf1HW11b3qqYWDrvkYpegPyMnCruvUbFT0x0xmnQWIjSKymTO2
MavL8qnuV2LDZONLDPSgWCjPgPr31Z2xtqxRFjkizBIuAhGkgjr8em21WQwpb8N9WYS2krwP/hsQ
P3d1qW5+jDATtuJ8attuas4z/ajf94Yo3y7oVIN2/FYXGm45SXRyqxLIG1nyU1pZNDrO9WZGaZfV
3XqjkZGwP41W4W0yjewHz7IY/wDial9JXcyKg8zODnxHHyNQuUU+GSWYyxHQs6j7h+dRqZmXDpNp
fMEsJz5Rt/CtnwYmY4XIWeQnstZ6Cyy9Z4H8YwLWzHnKD9MmtJ/y0RD+Ywj6NMDbXT9cfgpNZ6PD
NNQH8H/3pB/iZz/2Ck+v4NH0P3APEyDxW6/6j0/3GvwF+AZHC79h/fQfSlPhiXMfk66Yi2kI66Tv
WaNQGnEbqHwJPKv/AA9DkAdztmuhVWcmMuV2J149xgSTwtdM8fTS2D9+M05xp0Tpu8sNW78yGJpO
p0tn+VYrk1nwIiqYbhlO/wBp+NXL9jGII4DPyrd2PcjYfD3VUg5QalMbxc7WNYO6r7R+Xel2ENRi
ZRFHjUhz4t+tT3K7E7rgMpQEt7J6ZpsRVWNJG0jqO3kfdUrkp8Ekiqjgk9cdh2NWQaRDlFPuFMgr
WbMzTBmJwcAHtTaCyKOWeJhrQS8tiQykxsD07ZX5bVNlheyu4Lw4IdZz/ZHYtjuG3H0oSXcLBVlz
ZJ0WUALufjTWRMKG3gPVB9KqkSV24bY8wy8ldQ36d/P40tise5g70juJI7ZY45NHNbQ4xnIOB36U
T4CPJmuHyTDncp8Y/vY7Z91RDh9i59u47ic9wY4OYwIRthpx1U5705dKV4FGtzwWOD8TuraxnEcK
yK5bUxbRp8I9zZojhDlyS8Pm9Wm5hGrRI40jvjw1m3UzVK4FK44WJp5bgS4MhLYK/wB49OtLcVRe
4ZGtnYT22rU8jq42I2HxocrQqyvQbdRmWB1j9og4qSwEeFXpbUYwx7YdfvGa0Ul5I+CL9H8RDyu8
DeLfOx/gTVOS8kQXKqjSWQItoAdjhdjWa5LnwxxVeTcY6HmfEda0f4MI/kC8Aj5sLo3mDv8ACqkH
Yuy2cyumnxYPtIaE/wBBYJZICpHicg9Mtk1D+C8epH6rcSxNLzH0RbksfZPanYqXqdH6zGGOQQep
wQd/eKO4fI5jLJo1j2O4ySduuT99DCsGmDstkHB3CVZmDhOYHYxTZ1kZJxtnarlwCHWl4Jln/vq7
ZP4ispclI0/oxOmmXw5bShyOvenETA0U8NoqzXUixoBp1N0yf/VPgCwvFuGv7NzH+8KNyCmSieKV
NUbh18wcinYqAnHYLm7mgigTUEYM75AxuO3fpUydoceQTZ8D4pbiVDHrDHZttx06Zqc08clYxkS/
4VxKVFC277E9s/q47UPNY4BYv1KlvZcVhRYmgkVSX1+E9wAO3uoGq8hSzt55UMqRlkaSQg/97dKi
UXZpGSSLDWt13hbHupbX4K3R8iG2uAN42+lLax74+ROTMOsbfQ0tr8BuXlDOXJn2CPkaKY9y8icv
G5WimFoU5GMdyKqPJE39p0MbNzEC6SrN32O/StH+DFEHq/q1yukYBHj2wP8AQoAIxr9kQqgHrnOK
YihdLnb2TsflWbNIlT1htWh8rEeu538sjpU2UXoYSMDPgJ2NUmS6JL3XGPCgJUHHbqO9aEBa1cPB
HGR+pnPbyxnzoJK8aWXrLW6j7Rd2XH41n998uisUO9Rjg5syneQ+wP1c/CtWSW+E3jWEj/aAOY8Z
PQ6T2prlgCuOSRfo5ebEsw5ijQ+cd99iOlAgLbmxdDKbKMNCF04Z+7Y86VsqjT2dxBa2EJk8If2f
ix6UXSCrZFxadLFJL901j7OIIDudWo5HwxSaEmB29JrUpnkSA+QIpbSrI7b0lgiQiVZm32x2Hlu1
G1haLI43HexXBtjMhiiJ8RxuenQmimMg4VJePmKORhlmaNQ2BjJJpPmkWkttvgJ8njA/tH/eFTU/
I92n4GytxSAapJSoJx+qaT3oa+m+xF6/f9pj8wPypb5eStkfBZSXjLIGUkg7jZelX95n/wAYrz8Y
RSzbKOpKii5hWmB4PSDidxxF7OQx8kOUJCYbA9+au8GbSsuyR3MTNow8Ry5XyNAkVvWmaTl+IOvT
V33GaGgstcrGotnJ9lep+HlSGVbsGO2llC7jxFdWTt8amslJgkXMlzGzYK6Dg5wae0NwbsJC2lSc
sBil3HX2k1y+pCem+NjvVEBSwb+hxH3VRJSjkjHGZW1DSUXfP/PTrAFi4vIEE2lwWymwOT0orAAb
iPEoVt44dWh1OteoON1NDdMFn1JePOWsolUZ+0J29yNQIFwK6203hO7IOn7Tmp7os0Uil7O1RTuu
Cw91NwbSrwTuSeQf6Uyf0Yj/ABYx9EY/jVCMvToBetFBYS4TtacQb9gD6kVLHEJcB2uYz+wxqF1M
2l/LRnZL68y+JpBuf12/Op+S+3BpLd3/AEDA0jFmL5LMcnp76cuCIdfwQ80b4P4VmbURekN7dQPY
rBM8SmEZCMRnf3Vt+xgvyLwK+u504gJ5nlCReAMc48VLt8D/AKl7g+xb/wC4k/6rU/6SJdT9zSPI
2AhOT13H40mSUJ9posnYhumxzkVXYXcm1IwZZnGBgYboT543pFEc7I1tMvjACsMMMfPftUsqPIGs
sNz8dABQhyDEA8BIB238OKnuC4EE9xLnUqpGGHxx2G9aEBjh7n1FPhtTJKDyOyiIRHUARq99G6Nc
odDP0bNJJLO7GNSU2x57MevbrRYhk8KJFhbj7NOrgE58R91JNSdcsdNZ4KE19L+jrOSNmRpDI3Xc
dhv86ppBeRsV5c8h35ja2kXLZ3ICk/lUUv8AA7D80sq2sRh5aaSqyTSglVXTnou+c9AK24SojF5E
veFjitlAw4hba5JC3R49WPs9g6j76LJ7lO59A+J2x0y3NojncI8wRseeGosCpJ6JcaQZRYpv+lPE
33a80WBVtWa2sL6OUFJC4jKtsQylcgipk6KiEOCNice6E5+6oXNmsulIy5bOo1BrZrrfR+hYg/YZ
UftYqp8Izh1FFte+FPvOKijXcvJHx6Ga5ltTAhkCQqGK74PlWv7GF/7O4LDPbre81Cpljwg8znoK
Xb4HeV7g2PWOJOuCPtfEM4NUlgiT+5mjjnVRjGwHTNG0VkFxNG9zGNXTV+FFCLkX+7sN0GOgpNDR
GcG2ly2fs2UN3xjoc1LRa5M7wwnXIOwXJoGw/FIhTAfUx2EmMD6Uu/kO3ghm+yQvvgY1NkY+QFWQ
NN/xCMWKWmRC/wDXeEHv5422p0TYUndhcKU2BcA7dqz+krsvdgW6nkS4VdRKumCn6vXGcVe2xWD7
ifnWtxGVC9FXHXr/ACpx08icihFatd2sKpkRw6lTv1INU0ItWXC7QypaXVzyWc6okJCs59nAzQop
vINusGwtvQyPiNgObdPGeYzDSoIOwUE5wdgMU5YdEqx116CTyeqC3vAI7dVXEiEE4OonY9SSaVip
3ZN6U8PHEr1XtZozJAnKnTVupJ1LnHTrRF0OUWBH4Df4OI45D73AH1xVbkKmBfTOxe0t7SaUqs85
0zqhzlo1AD/MfwrORRLw2YeooSoU8o7+e1C4KMbq2qKNbNvw+UJZQj3fhWqRiyG54/w+BmXma5FB
8K+Y7Z6UACk4rcXk6oquzsw0xRnSvnjY5b50Cya70duJZ7poeJW5jgx4WZVG+cDGB5UhAe9jiHEb
tHigSWGVl5mkxu2CdwUrRJEtsbYLxSe4kPDx64UT7OA6JPFqGT4+oC5NDAO2sl7eQPZcS4ZHacRY
4tZpbVVR2/4ZOOp7EVDGUxZcTRnW44a+euFRgmr4DP3VLRSkC7qW/tfsZrVonkz4WBGc7Z3G9FFp
gS3zbNPHjx4Az2FKhtl5JLnl5Rhj3D+VPaLcVZ5bhsqXz/PenRNk3DbvlX8PMOFEDZ64+lKsjvHy
XpuIzvIDBbPJvlCQ2+PlVJEb0WZLjVLbPMpV2XxLjUFJ6DHU9K02qPuTvb9imtrz7xUkJi5ilkKH
K9epD9qeFQ1bTfrRRt7ifxiPSuei74H0IqR9iC8nnjuIrh9JeBgV0533DdyfKkxo9L9C/S6PikBs
+S0csWTnYrj47GofJW3Fk956UcTh4ve2sUUJtrUog1auYWZFcnIOMeLyooVmI/2pmtL69kWBZWnu
GlZpCRhvZwNPaltLc9yXoqLzemPEkRpGtocAdA7/AJUibA19czcfkhQosPIU6fEz5BOTufjVKAb6
XoXIYXhiS2GMaCM/6+NXtJ3AY2PD0Oh+Y3b/AFvS2IrcwpztMYRfZAwNt/41e2iWZ2W2WOKFwSWk
1avkahoBlrIsNwsh1YH91tJ+uDSGaXht5fyRXF3bztHDBgHJzJvvtjAoEQTz3lzcuzSmV5T7chwc
9ydNFvyVJxbvakS8Gnu7Di0JD4KnB0HrqXFOycZwevWdwLi0hnYblA3zxvUDM3b+nTFYpbi0xBcE
iDlvlxjfxhgB9DTSAG8R/wDkCz8dtxDh4uE8tse7qTQotdXPoOW3lXXqZyKO0vpZJoYdMcrEpHI2
dK9hkDJ+tWSxtzbQ223sH9jJ/wAxoY6BdxLiTHlTJL/o/dpw/i0IniSRpwOVIUEhQAknZ8Dek8BW
/wDUP8T9O3WKa3S2HNUlFlHhwemcDNFtPkPpx8AeHiLNA0l3lpgzKzJtnSaTkxbEUJb6656XqSYR
lkZI2AJxEQpBPvo5wUsH/9k=

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/content_bottom.gif

R0lGODlhcgEKAKIAAOzq7f////Lx8/Du8Pj3+PTy9AAAAAAAACH5BAAHAP8ALAAAAAByAQoAAAOP
CBDc/jDKSau9OOvNu/9gKI5kpihFqa5s675wLM8WoQgKre987/9A1y2gGASPyKRyyezgFgEbQNCs
Wq/YbOlJaBSK2rB4TG4+U46voltuu9/wkBSAfswBgwI7zu/7yQQDJwB7EU+DiImKi4yNjo+QkZKT
lJWWl5iZmpucnYxUF4Geo6SlpqeoqaqrqgOFDgkAOw==

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/temp/rubini_files/partners_top.gif

R0lGODlheAAKAKIAAOzq7fz7/PLx8+/u8Pf29////wAAAAAAACH5BAAHAP8ALAAAAAB4AAoAAANY
WKox8DDKSau9OOsNyPqMwI1kaZ5SACoOMBDqKs90bd94bgfi432tn25ILBqPjUes0BMen9AoEsLw
Sa/YLC1g7Wm/YKzXGi6bh9yO8sxu0xyigXtOLxAeCQA7

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/site_style.css

BODY {
	FONT-SIZE: 8pt; MARGIN: 0px; COLOR: #000000; FONT-FAMILY: =
Verdana,Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #ffffff
}
A:link {
	COLOR: #993300; TEXT-DECORATION: none
}
A:visited {
	COLOR: #993300; TEXT-DECORATION: none
}
A:hover {
	COLOR: #993300; TEXT-DECORATION: underline
}
UL.menu1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: =
14px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; PADDING-TOP: 0px; =
FONT-FAMILY: Arial, Helvetica, sans-serif; LIST-STYLE-TYPE: none
}
UL.menu1 LI A {
	DISPLAY: block; WIDTH: 100%; LINE-HEIGHT: 2em; BORDER-BOTTOM: #666666 =
1px dotted; HEIGHT: 2em
}
UL.menu1 LI {
	DISPLAY: inline
}
UL.menu1 LI A:link {
	BACKGROUND: #ffffff; COLOR: #666666
}
UL.menu1 LI {
	BACKGROUND: #ffffff; COLOR: #666666
}
UL.menu1 LI A:visited {
	BACKGROUND: #ffffff; COLOR: #666666
}
UL.menu1 LI A:hover {
	BACKGROUND: #eeeeee; COLOR: #444444; TEXT-DECORATION: none
}
UL.menu1 LI A:active {
	BACKGROUND: #eeeeee; COLOR: #444444; TEXT-DECORATION: none
}
UL.sub {
	FONT-WEIGHT: bold; FONT-SIZE: 10px; FONT-FAMILY: Arial, Helvetica, =
sans-serif; LIST-STYLE-TYPE: none
}
UL.sub LI A {
	DISPLAY: block; LINE-HEIGHT: 2em; HEIGHT: 2em
}
UL.sub LI {
	DISPLAY: inline
}
UL.sub LI A:link {
	BACKGROUND: #ffffff; COLOR: #993300
}
UL.menu1 LI A:visited {
	BACKGROUND: #ffffff; COLOR: #993300
}
UL.sub LI A:hover {
	BACKGROUND: #eeeeee; COLOR: #444444; TEXT-DECORATION: none
}
UL.menu1 LI A:active {
	BACKGROUND: #eeeeee; COLOR: #444444; TEXT-DECORATION: none
}
A:link {
	COLOR: #993300; TEXT-DECORATION: none
}
A:visited {
	COLOR: #993300; TEXT-DECORATION: none
}
A:hover {
	COLOR: #993300; TEXT-DECORATION: underline
}
H1 {
	FONT-SIZE: 20px; MARGIN-BOTTOM: 2px; COLOR: #ffffff; FONT-FAMILY: =
Arial, Helvetica, sans-serif
}
.header {
	COLOR: #000000; HEIGHT: 25px; BACKGROUND-COLOR: #ffffff
}
.search {
	PADDING-LEFT: 70px; BACKGROUND-IMAGE: =
url(../../img/teramonews/cerca.jpg); BACKGROUND-REPEAT: no-repeat
}
.submit {
	BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; =
FONT-SIZE: 11px; BORDER-LEFT: #ffffff 1px solid; COLOR: #ffffff; =
BORDER-BOTTOM: #ffffff 1px solid; FONT-FAMILY: Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: #444d50
}
.input {
	BORDER-RIGHT: #444d50 1px solid; BORDER-TOP: #444d50 1px solid; =
FONT-SIZE: 11px; BORDER-LEFT: #444d50 1px solid; COLOR: #666666; =
BORDER-BOTTOM: #444d50 1px solid; FONT-FAMILY: Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: #ffffff; TEXT-DECORATION: none
}
.top {
	BACKGROUND-IMAGE: url(../../img/teramonews/bg_td_top.jpg); =
BACKGROUND-REPEAT: repeat-x
}
.bottom {
	BACKGROUND-IMAGE: url(../../img/teramonews/bg_td_bott.jpg); =
BACKGROUND-REPEAT: repeat-x
}
.menu {
	BORDER-RIGHT: #ffffff 1px solid
}
.menu A:link {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.menu A:hover {
	COLOR: #ffffff; TEXT-DECORATION: underline
}
.menu A:visited {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.menu_int {
	WIDTH: 710px; COLOR: #000000; PADDING-TOP: 5px
}
.accessibile {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND-IMAGE: =
url(../../img/teramonews/bg_acc.jpg); BACKGROUND-REPEAT: repeat-x
}
.content {
	BORDER-RIGHT: #ebe9ec 2px solid; PADDING-RIGHT: 10px; PADDING-LEFT: =
10px; BORDER-LEFT: #ebe9ec 2px solid
}
.content2_margin {
	BORDER-TOP: #ebe9ec 2px dotted
}
.img_primopiano {
	MARGIN-BOTTOM: 5px; MARGIN-RIGHT: 5px
}
.topnews_title {
	FONT-WEIGHT: bold; FONT-SIZE: 17px; COLOR: #ffffff; FONT-FAMILY: Arial, =
Helvetica, sans-serif
}
.topnews_title A:link {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.topnews_title A:hover {
	COLOR: #ffffff; TEXT-DECORATION: underline
}
.topnews_title A:visited {
	COLOR: #ffffff; TEXT-DECORATION: none
}
.bottom-div {
	MARGIN-BOTTOM: 15px; WIDTH: 712px; HEIGHT: 100px; BACKGROUND-COLOR: =
#993300
}
TABLE {
	FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif
}
.dot {
	FONT-WEIGHT: bold; FONT-SIZE: 18px; COLOR: #666666; FONT-FAMILY: Arial, =
Helvetica, sans-serif
}
.td-bottom-div {
	BACKGROUND-COLOR: #ffff99
}
.footer {
	BORDER-BOTTOM: #993300 2px double; HEIGHT: 70px; BACKGROUND-COLOR: =
#fdefdd
}
.banners_right {
	BORDER-BOTTOM: #999999 5px solid
}
.keywords {
	WIDTH: 710px; COLOR: #000000
}
.most_viewed_news_table {
	PADDING-RIGHT: 5px; BORDER-TOP: #c00b01 1px solid; PADDING-LEFT: 5px; =
FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 5px; COLOR: #333333; =
PADDING-TOP: 5px; FONT-STYLE: italic; FONT-FAMILY: Arial, Helvetica, =
sans-serif
}
.most_viewed_news {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: normal; FONT-SIZE: =
10px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px; FONT-STYLE: italic; =
TEXT-DECORATION: none
}
.most_viewed_news A:link {
	COLOR: #993300; TEXT-DECORATION: none
}
.most_viewed_news A:visited {
	COLOR: #993300; TEXT-DECORATION: none
}
.most_viewed_news A:hover {
	COLOR: #333333; TEXT-DECORATION: underline
}
.bg_logo {
	BACKGROUND-POSITION: 50% top; FONT-SIZE: 8pt; BACKGROUND-IMAGE: =
url(../../img/teramonews/bg_logo.png); COLOR: #000000; =
BACKGROUND-REPEAT: no-repeat; FONT-FAMILY: Verdana,Arial, Helvetica, =
sans-serif
}
.banner468 {
	MARGIN-TOP: 10px; MIN-HEIGHT: 10px; MARGIN-BOTTOM: 10px; WIDTH: 469px; =
max-height: 61px
}
.required {
	FONT-WEIGHT: bold; COLOR: #ff0000
}
.partners {
	BORDER-RIGHT: #ebe9ec 2px solid; BORDER-LEFT: #ebe9ec 2px solid
}
.partners_div {
	MARGIN-TOP: 5px; MARGIN-BOTTOM: 5px; PADDING-BOTTOM: 5px; =
BORDER-BOTTOM: #999999 1px dotted
}

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/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%
}
UNKNOWN {
	LEFT: 0px
}
#hoverNav A {
	outline: none
}
#prevLink {
	DISPLAY: block; BACKGROUND: url(../../img/lightbox/blank.gif) =
no-repeat; WIDTH: 49%; HEIGHT: 100%
}
#nextLink {
	DISPLAY: block; BACKGROUND: url(../../img/lightbox/blank.gif) =
no-repeat; WIDTH: 49%; HEIGHT: 100%
}
#prevLink {
	LEFT: 0px; FLOAT: left
}
#nextLink {
	RIGHT: 0px; FLOAT: right
}
#prevLink:hover {
	BACKGROUND: url(../../img/lightbox/prevlabel.gif) no-repeat left 15%
}
#prevLink:hover {
	BACKGROUND: url(../../img/lightbox/prevlabel.gif) no-repeat left 15%
}
#nextLink:hover {
	BACKGROUND: url(../../img/lightbox/nextlabel.gif) no-repeat right 15%
}
#nextLink:hover {
	BACKGROUND: url(../../img/lightbox/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: =
"."
}
UNKNOWN {
	DISPLAY: inline-block; WIDTH: 100%
}
 HTML .clearfix {
	HEIGHT: 1%
}

------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/prototype.js

/*  Prototype JavaScript framework, version 1.5.0_rc1=0A=
 *  (c) 2005 Sam Stephenson <sam@conio.net>=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *  For details, see the Prototype web site: http://prototype.conio.net/=0A=
 *=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.5.0_rc1',=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate=0A=
  },=0A=
=0A=
  ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',=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 (var property in source) {=0A=
    destination[property] =3D source[property];=0A=
  }=0A=
  return destination;=0A=
}=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (object =3D=3D=3D undefined) return 'undefined';=0A=
      if (object =3D=3D=3D null) return 'null';=0A=
      return object.inspect ? object.inspect() : object.toString();=0A=
    } catch (e) {=0A=
      if (e instanceof RangeError) return '...';=0A=
      throw e;=0A=
    }=0A=
  },=0A=
=0A=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({}, object);=0A=
  }=0A=
});=0A=
=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, args =3D $A(arguments), object =3D args.shift();=0A=
  return function(event) {=0A=
    return __method.apply(object, [( event || =
window.event)].concat(args).concat($A(arguments)));=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=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.callback(this);=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
Object.extend(String.prototype, {=0A=
  gsub: function(pattern, replacement) {=0A=
    var result =3D '', source =3D this, match;=0A=
    replacement =3D arguments.callee.prepareReplacement(replacement);=0A=
=0A=
    while (source.length > 0) {=0A=
      if (match =3D source.match(pattern)) {=0A=
        result +=3D source.slice(0, match.index);=0A=
        result +=3D (replacement(match) || '').toString();=0A=
        source  =3D source.slice(match.index + match[0].length);=0A=
      } else {=0A=
        result +=3D source, source =3D '';=0A=
      }=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  sub: function(pattern, replacement, count) {=0A=
    replacement =3D this.gsub.prepareReplacement(replacement);=0A=
    count =3D count =3D=3D=3D undefined ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : this;=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(function(script) { return =
eval(script) });=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var 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 match =3D this.strip().match(/[^?]*$/)[0];=0A=
    if (!match) return {};=0A=
    var pairs =3D match.split('&');=0A=
    return pairs.inject({}, function(params, pairString) {=0A=
      var pair  =3D pairString.split('=3D');=0A=
      var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A=
      params[decodeURIComponent(pair[0])] =3D value;=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, length =3D oStringList.length; i < length; 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(useDoubleQuotes) {=0A=
    var escapedString =3D this.replace(/\\/g, '\\\\');=0A=
    if (useDoubleQuotes)=0A=
      return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A=
    else=0A=
      return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (typeof replacement =3D=3D 'function') return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
}=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
var Template =3D Class.create();=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
Template.prototype =3D {=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern  =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      var before =3D match[1];=0A=
      if (before =3D=3D '\\') return match[2];=0A=
      return before + (object[match[3]] || '').toString();=0A=
    });=0A=
  }=0A=
}=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=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator) {=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.collect(iterator || Prototype.K);=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 false;=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=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D fillWith || null;=0A=
    var results =3D this.eachSlice(number);=0A=
    if (results.length > 0) (number - =
results.last().length).times(function() {=0A=
      results.last().push(fillWith)=0A=
    });=0A=
    return results;=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 (result =3D=3D undefined || value >=3D result)=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 (result =3D=3D undefined || value < result)=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=
      return iterator(collections.pluck(index));=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, length =3D iterable.length; i < length; i++)=0A=
      results.push(iterable[i]);=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse)=0A=
  Array.prototype._reverse =3D Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D undefined || value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(value && 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, length =3D this.length; i < 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=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.include(value) ? array : array.concat([value]);=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
var Hash =3D {=0A=
  _each: function(iterator) {=0A=
    for (var 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(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=
      if (!pair.value && pair.value !=3D=3D 0) pair[1] =3D '';=0A=
      if (!pair.key) return;=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=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
}=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
}=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (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=
  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=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   ''=0A=
    }=0A=
    Object.extend(this.options, options || {});=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
    this.options.parameters =3D $H(typeof this.options.parameters =3D=3D =
'string' ?=0A=
      this.options.parameters.toQueryParams() : this.options.parameters);=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 params =3D this.options.parameters;=0A=
    if (params.any()) params['_'] =3D '';=0A=
=0A=
    if (!['get', 'post'].include(this.options.method)) {=0A=
      // simulate other verbs over post=0A=
      params['_method'] =3D this.options.method;=0A=
      this.options.method =3D 'post';=0A=
    }=0A=
=0A=
    this.url =3D url;=0A=
=0A=
    // when GET, append parameters to URL=0A=
    if (this.options.method =3D=3D 'get' && params.any())=0A=
      this.url +=3D (this.url.indexOf('?') >=3D 0 ? '&' : '?') +=0A=
        params.toQueryString();=0A=
=0A=
    try {=0A=
      Ajax.Responders.dispatch('onCreate', this, this.transport);=0A=
=0A=
      this.transport.open(this.options.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous, this.options.username,=0A=
        this.options.password);=0A=
=0A=
      if (this.options.asynchronous)=0A=
        setTimeout(function() { this.respondToReadyState(1) =
}.bind(this), 10);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      var body =3D this.options.method =3D=3D 'post' ?=0A=
        (this.options.postBody || params.toQueryString()) : null;=0A=
=0A=
      this.transport.send(body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
    }=0A=
    catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState > 1)=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var headers =3D {=0A=
      'X-Requested-With': 'XMLHttpRequest',=0A=
      'X-Prototype-Version': Prototype.Version,=0A=
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'=0A=
    };=0A=
=0A=
    if (this.options.method =3D=3D 'post') {=0A=
      headers['Content-type'] =3D this.options.contentType +=0A=
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');=0A=
=0A=
      /* Force "Connection: close" for older Mozilla browsers to work=0A=
       * around a bug where XMLHttpRequest sends an incorrect=0A=
       * Content-length header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType &&=0A=
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)=0A=
            headers['Connection'] =3D 'close';=0A=
    }=0A=
=0A=
    // user-defined headers=0A=
    if (typeof this.options.requestHeaders =3D=3D 'object') {=0A=
      var extras =3D this.options.requestHeaders;=0A=
=0A=
      if (typeof extras.push =3D=3D 'function')=0A=
        for (var i =3D 0; i < extras.length; i +=3D 2)=0A=
          headers[extras[i]] =3D extras[i+1];=0A=
      else=0A=
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });=0A=
    }=0A=
=0A=
    for (var name in headers)=0A=
      this.transport.setRequestHeader(name, headers[name]);=0A=
  },=0A=
=0A=
  success: function() {=0A=
    return !this.transport.status=0A=
        || (this.transport.status >=3D 200 && this.transport.status < =
300);=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState];=0A=
    var transport =3D this.transport, json =3D this.evalJSON();=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        (this.options['on' + this.transport.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(transport, json);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(transport, =
json);=0A=
      Ajax.Responders.dispatch('on' + state, this, transport, json);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      if ((this.getHeader('Content-type') || '').strip().=0A=
        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A=
          this.evalResponse();=0A=
=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name);=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalJSON: function() {=0A=
    try {=0A=
      var json =3D this.getHeader('X-JSON');=0A=
      return json ? eval('(' + json + ')') : null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval(this.transport.responseText);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create();=0A=
=0A=
Object.extend(Object.extend(Ajax.Updater.prototype, =
Ajax.Request.prototype), {=0A=
  initialize: function(container, url, options) {=0A=
    this.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (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, param) {=0A=
      this.updateContent();=0A=
      onComplete(transport, param);=0A=
    }).bind(this);=0A=
=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  updateContent: function() {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'];=0A=
    var response =3D this.transport.responseText;=0A=
=0A=
    if (!this.options.evalScripts) response =3D response.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (this.options.insertion)=0A=
        new this.options.insertion(receiver, response);=0A=
      else=0A=
        receiver.update(response);=0A=
    }=0A=
=0A=
    if (this.success()) {=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.options.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=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (typeof element =3D=3D 'string')=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, len =3D query.snapshotLength; i < len; i++)=0A=
      results.push(query.snapshotItem(i));=0A=
    return results;=0A=
  }=0A=
}=0A=
=0A=
document.getElementsByClassName =3D function(className, parentElement) {=0A=
  if (Prototype.BrowserFeatures.XPath) {=0A=
    var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + =
" ')]";=0A=
    return document._getElementsByXPath(q, parentElement);=0A=
  } else {=0A=
    var children =3D ($(parentElement) || =
document.body).getElementsByTagName('*');=0A=
    var elements =3D [], child;=0A=
    for (var i =3D 0, length =3D children.length; i < length; i++) {=0A=
      child =3D children[i];=0A=
      if (Element.hasClassName(child, className))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  }=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Element)=0A=
  var Element =3D new Object();=0A=
=0A=
Element.extend =3D function(element) {=0A=
  if (!element) return;=0A=
  if (_nativeExtensions || element.nodeType =3D=3D 3) return element;=0A=
=0A=
  if (!element._extended && element.tagName && element !=3D window) {=0A=
    var methods =3D Object.clone(Element.Methods), cache =3D =
Element.extend.cache;=0A=
=0A=
    if (element.tagName =3D=3D 'FORM')=0A=
      Object.extend(methods, Form.Methods);=0A=
    if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A=
      Object.extend(methods, Form.Element.Methods);=0A=
=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (typeof value =3D=3D 'function')=0A=
        element[property] =3D cache.findOrStore(value);=0A=
    }=0A=
=0A=
    var methods =3D Object.clone(Element.Methods.Simulated), cache =3D =
Element.extend.cache;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if ('function' =3D=3D typeof value && !(property in element))=0A=
        element[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  element._extended =3D true;=0A=
  return element;=0A=
}=0A=
=0A=
Element.extend.cache =3D {=0A=
  findOrStore: function(value) {=0A=
    return this[value] =3D this[value] || function() {=0A=
      return value.apply(null, [this].concat($A(arguments)));=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, html) {=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    $(element).innerHTML =3D html.stripScripts();=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, html) {=0A=
    element =3D $(element);=0A=
    if (element.outerHTML) {=0A=
      element.outerHTML =3D html.stripScripts();=0A=
    } else {=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNodeContents(element);=0A=
      element.parentNode.replaceChild(=0A=
        range.createContextualFragment(html.stripScripts()), element);=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    element =3D $(element);=0A=
    return $A(element.getElementsByTagName('*'));=0A=
  },=0A=
=0A=
  previousSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('previousSibling');=0A=
  },=0A=
=0A=
  nextSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('nextSibling');=0A=
  },=0A=
=0A=
  siblings: function(element) {=0A=
    element =3D $(element);=0A=
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());=0A=
  },=0A=
=0A=
  match: function(element, selector) {=0A=
    element =3D $(element);=0A=
    if (typeof selector =3D=3D 'string')=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match(element);=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    return Selector.findElement($(element).ancestors(), expression, =
index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    return Selector.findElement($(element).descendants(), expression, =
index);=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    return Selector.findElement($(element).previousSiblings(), =
expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    return Selector.findElement($(element).nextSiblings(), expression, =
index);=0A=
  },=0A=
=0A=
  getElementsBySelector: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  getElementsByClassName: function(element, className) {=0A=
    element =3D $(element);=0A=
    return document.getElementsByClassName(className, element);=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=
    var elementClassName =3D element.className;=0A=
    if (elementClassName.length =3D=3D 0) return false;=0A=
    if (elementClassName =3D=3D className ||=0A=
        elementClassName.match(new RegExp("(^|\\s)" + className + =
"(\\s|$)")))=0A=
      return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).add(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    Element.classNames(element).remove(className);=0A=
    return element;=0A=
  },=0A=
=0A=
  observe: function() {=0A=
    Event.observe.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  stopObserving: function() {=0A=
    Event.stopObserving.apply(Event, arguments);=0A=
    return $A(arguments).first();=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.match(/^\s*$/);=0A=
  },=0A=
=0A=
  childOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D ancestor) return true;=0A=
    return false;=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=
    return element;=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 (var name in style)=0A=
      element.style[name.camelize()] =3D style[name];=0A=
    return element;=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=
    return element;=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return element;=0A=
    element._overflow =3D element.style.overflow || 'auto';=0A=
    if ((Element.getStyle(element, 'overflow') || 'visible') !=3D =
'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    return $(element).getAttributeNode(attribute).specified;=0A=
  }=0A=
}=0A=
=0A=
// IE is missing .innerHTML support for TABLE-related elements=0A=
if(document.all){=0A=
  Element.Methods.update =3D function(element, html) {=0A=
    element =3D $(element);=0A=
    html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
    if (['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1) {=0A=
      var div =3D document.createElement('div');=0A=
      switch (tagName) {=0A=
        case 'THEAD':=0A=
        case 'TBODY':=0A=
          div.innerHTML =3D '<table><tbody>' +  html.stripScripts() + =
'</tbody></table>';=0A=
          depth =3D 2;=0A=
          break;=0A=
        case 'TR':=0A=
          div.innerHTML =3D '<table><tbody><tr>' +  html.stripScripts() =
+ '</tr></tbody></table>';=0A=
          depth =3D 3;=0A=
          break;=0A=
        case 'TD':=0A=
          div.innerHTML =3D '<table><tbody><tr><td>' +  =
html.stripScripts() + '</td></tr></tbody></table>';=0A=
          depth =3D 4;=0A=
      }=0A=
      $A(element.childNodes).each(function(node){=0A=
        element.removeChild(node)=0A=
      });=0A=
      depth.times(function(){ div =3D div.firstChild });=0A=
=0A=
      $A(div.childNodes).each(=0A=
        function(node){ element.appendChild(node) });=0A=
    } else {=0A=
      element.innerHTML =3D html.stripScripts();=0A=
    }=0A=
    setTimeout(function() {html.evalScripts()}, 10);=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
var _nativeExtensions =3D false;=0A=
=0A=
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
  ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A=
    var className =3D 'HTML' + tag + 'Element';=0A=
    if(window[className]) return;=0A=
    var klass =3D window[className] =3D {};=0A=
    klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : =
'div').__proto__;=0A=
  });=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  Object.extend(Element.Methods, methods || {});=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    var cache =3D Element.extend.cache;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D cache.findOrStore(value);=0A=
    }=0A=
  }=0A=
=0A=
  if (typeof HTMLElement !=3D 'undefined') {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
    copy(Form.Methods, HTMLFormElement.prototype);=0A=
    [HTMLInputElement, HTMLTextAreaElement, =
HTMLSelectElement].each(function(klass) {=0A=
      copy(Form.Element.Methods, klass.prototype);=0A=
    });=0A=
    _nativeExtensions =3D true;=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=
        var tagName =3D this.element.tagName.toLowerCase();=0A=
        if (tagName =3D=3D 'tbody' || tagName =3D=3D 'tr') {=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($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
var Selector =3D Class.create();=0A=
Selector.prototype =3D {=0A=
  initialize: function(expression) {=0A=
    this.params =3D {classNames: []};=0A=
    this.expression =3D expression.toString().strip();=0A=
    this.parseExpression();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  parseExpression: function() {=0A=
    function abort(message) { throw 'Parse error in selector: ' + =
message; }=0A=
=0A=
    if (this.expression =3D=3D '')  abort('empty expression');=0A=
=0A=
    var params =3D this.params, expr =3D this.expression, match, =
modifier, clause, rest;=0A=
    while (match =3D =
expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))=
)?\]$/i)) {=0A=
      params.attributes =3D params.attributes || [];=0A=
      params.attributes.push({name: match[2], operator: match[3], value: =
match[4] || match[5] || ''});=0A=
      expr =3D match[1];=0A=
    }=0A=
=0A=
    if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A=
=0A=
    while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A=
      modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A=
      switch (modifier) {=0A=
        case '#':       params.id =3D clause; break;=0A=
        case '.':       params.classNames.push(clause); break;=0A=
        case '':=0A=
        case undefined: params.tagName =3D clause.toUpperCase(); break;=0A=
        default:        abort(expr.inspect());=0A=
      }=0A=
      expr =3D rest;=0A=
    }=0A=
=0A=
    if (expr.length > 0) abort(expr.inspect());=0A=
  },=0A=
=0A=
  buildMatchExpression: function() {=0A=
    var params =3D this.params, conditions =3D [], clause;=0A=
=0A=
    if (params.wildcard)=0A=
      conditions.push('true');=0A=
    if (clause =3D params.id)=0A=
      conditions.push('element.id =3D=3D ' + clause.inspect());=0A=
    if (clause =3D params.tagName)=0A=
      conditions.push('element.tagName.toUpperCase() =3D=3D ' + =
clause.inspect());=0A=
    if ((clause =3D params.classNames).length > 0)=0A=
      for (var i =3D 0; i < clause.length; i++)=0A=
        conditions.push('Element.hasClassName(element, ' + =
clause[i].inspect() + ')');=0A=
    if (clause =3D params.attributes) {=0A=
      clause.each(function(attribute) {=0A=
        var value =3D 'element.getAttribute(' + attribute.name.inspect() =
+ ')';=0A=
        var splitValueBy =3D function(delimiter) {=0A=
          return value + ' && ' + value + '.split(' + =
delimiter.inspect() + ')';=0A=
        }=0A=
=0A=
        switch (attribute.operator) {=0A=
          case '=3D':       conditions.push(value + ' =3D=3D ' + =
attribute.value.inspect()); break;=0A=
          case '~=3D':      conditions.push(splitValueBy(' ') + =
'.include(' + attribute.value.inspect() + ')'); break;=0A=
          case '|=3D':      conditions.push(=0A=
                            splitValueBy('-') + '.first().toUpperCase() =
=3D=3D ' + attribute.value.toUpperCase().inspect()=0A=
                          ); break;=0A=
          case '!=3D':      conditions.push(value + ' !=3D ' + =
attribute.value.inspect()); break;=0A=
          case '':=0A=
          case undefined: conditions.push(value + ' !=3D null'); break;=0A=
          default:        throw 'Unknown operator ' + attribute.operator =
+ ' in selector';=0A=
        }=0A=
      });=0A=
    }=0A=
=0A=
    return conditions.join(' && ');=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    this.match =3D new Function('element', 'if (!element.tagName) return =
false; \=0A=
      return ' + this.buildMatchExpression());=0A=
  },=0A=
=0A=
  findElements: function(scope) {=0A=
    var element;=0A=
=0A=
    if (element =3D $(this.params.id))=0A=
      if (this.match(element))=0A=
        if (!scope || Element.childOf(element, scope))=0A=
          return [element];=0A=
=0A=
    scope =3D (scope || =
document).getElementsByTagName(this.params.tagName || '*');=0A=
=0A=
    var results =3D [];=0A=
    for (var i =3D 0, length =3D scope.length; i < length; i++)=0A=
      if (this.match(element =3D scope[i]))=0A=
        results.push(Element.extend(element));=0A=
=0A=
    return results;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Selector, {=0A=
  matchElements: function(elements, expression) {=0A=
    var selector =3D new Selector(expression);=0A=
    return =
elements.select(selector.match.bind(selector)).collect(Element.extend);=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (typeof expression =3D=3D 'number') index =3D expression, =
expression =3D false;=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    return expressions.map(function(expression) {=0A=
      return expression.strip().split(/\s+/).inject([null], =
function(results, expr) {=0A=
        var selector =3D new Selector(expr);=0A=
        return results.inject([], function(elements, result) {=0A=
          return elements.concat(selector.findElements(result || =
element));=0A=
        });=0A=
      });=0A=
    }).flatten();=0A=
  }=0A=
});=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements) {=0A=
    return elements.inject([], function(queryComponents, element) {=0A=
      var queryComponent =3D Form.Element.serialize(element);=0A=
      if (queryComponent) queryComponents.push(queryComponent);=0A=
      return queryComponents;=0A=
    }).join('&');=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form) {=0A=
    return Form.serializeElements($(form).getElements());=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    return $A($(form).getElementsByTagName('*')).inject([],=0A=
      function(elements, child) {=0A=
        if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A=
          elements.push(Element.extend(child));=0A=
        return elements;=0A=
      }=0A=
    );=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name)=0A=
      return inputs;=0A=
=0A=
    var matchingInputs =3D new Array();=0A=
    for (var i =3D 0, length =3D inputs.length; i < 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(Element.extend(input));=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.blur();=0A=
      element.disabled =3D 'true';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    form.getElements().each(function(element) {=0A=
      element.disabled =3D '';=0A=
    });=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    return $(form).getElements().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=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form, Form.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.disabled) return '';=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=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    element.focus();=0A=
    if (element.select)=0A=
      element.select();=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
}=0A=
=0A=
Object.extend(Form.Element, Form.Element.Methods);=0A=
var Field =3D Form.Element;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(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.extend(element.options[index]);=0A=
      // Uses the new potential extension if hasAttribute isn't native.=0A=
      value =3D opt.hasAttribute('value') ? opt.value : opt.text;=0A=
    }=0A=
    return [element.name, value];=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var value =3D [];=0A=
    for (var i =3D 0; i < element.length; i++) {=0A=
      var opt =3D Element.extend(element.options[i]);=0A=
      if (opt.selected)=0A=
        // Uses the new potential extension if hasAttribute isn't native.=0A=
        value.push(opt.hasAttribute('value') ? opt.value : opt.text);=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=
    =
Form.getElements(this.element).each(this.registerCallback.bind(this));=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        default:=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
}=0A=
=0A=
Form.Element.EventObserver =3D Class.create();=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=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=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, length =3D Event.observers.length; i < 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=
    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=
    Event._observeAndCache(element, name, observer, useCapture);=0A=
  },=0A=
=0A=
  stopObserving: function(element, name, observer, useCapture) {=0A=
    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=
      try {=0A=
        element.detachEvent('on' + name, observer);=0A=
      } catch (e) {}=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
/* prevent memory leaks in IE */=0A=
if (navigator.appVersion.match(/\bMSIE\b/))=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=
        if(element.tagName=3D=3D'BODY') break;=0A=
        var p =3D Element.getStyle(element, 'position');=0A=
        if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A=
      }=0A=
    } while (element);=0A=
    return [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=
  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=
      if (!window.opera || element.tagName=3D=3D'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return [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=
}=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/scriptaculous.js

// script.aculo.us scriptaculous.js v1.6.5, Wed Nov 08 14:17:49 CET 2006=0A=
=0A=
// Copyright (c) 2005, 2006 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=
// For details, see the script.aculo.us web site: http://script.aculo.us/=0A=
=0A=
var Scriptaculous =3D {=0A=
  Version: '1.6.5',=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=
       (typeof Element =3D=3D 'undefined') || =0A=
       (typeof Element.Methods=3D=3D'undefined') ||=0A=
       parseFloat(Prototype.Version.split(".")[0] + "." +=0A=
                  Prototype.Version.split(".")[1]) < 1.5)=0A=
       throw("script.aculo.us requires the Prototype JavaScript =
framework >=3D 1.5.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_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/effects.js

// script.aculo.us effects.js v1.6.5, Wed Nov 08 14:17:49 CET 2006=0A=
=0A=
// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// Contributors:=0A=
//  Justin Palmer (http://encytemedia.com/)=0A=
//  Mark Pilgrim (http://diveintomark.org/)=0A=
//  Martin Bialasinki=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: =
http://script.aculo.us/ =0A=
=0A=
// converts rgb() and #xxx to #xxxxxx format,  =0A=
// returns self (or first argument) if not convertable  =0A=
String.prototype.parseColor =3D function() {  =0A=
  var color =3D '#';  =0A=
  if(this.slice(0,4) =3D=3D 'rgb(') {  =0A=
    var cols =3D this.slice(4,this.length-1).split(',');  =0A=
    var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while =
(++i<3);  =0A=
  } else {  =0A=
    if(this.slice(0,1) =3D=3D '#') {  =0A=
      if(this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D =
(this.charAt(i) + this.charAt(i)).toLowerCase();  =0A=
      if(this.length=3D=3D7) color =3D this.toLowerCase();  =0A=
    }  =0A=
  }  =0A=
  return(color.length=3D=3D7 ? color : (arguments[0] || this));  =0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.collectTextNodes =3D function(element) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.collectTextNodesIgnoreClass =3D function(element, className) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A=
        Element.collectTextNodesIgnoreClass(node, className) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.setContentZoom =3D function(element, percent) {=0A=
  element =3D $(element);  =0A=
  element.setStyle({fontSize: (percent/100) + 'em'});   =0A=
  if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);=0A=
  return element;=0A=
}=0A=
=0A=
Element.getOpacity =3D function(element){=0A=
  element =3D $(element);=0A=
  var opacity;=0A=
  if (opacity =3D element.getStyle('opacity'))  =0A=
    return parseFloat(opacity);  =0A=
  if (opacity =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))  =0A=
    if(opacity[1]) return parseFloat(opacity[1]) / 100;  =0A=
  return 1.0;  =0A=
}=0A=
=0A=
Element.setOpacity =3D function(element, value){  =0A=
  element=3D $(element);  =0A=
  if (value =3D=3D 1){=0A=
    element.setStyle({ opacity: =0A=
      (/Gecko/.test(navigator.userAgent) && =
!/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? =0A=
      0.999999 : 1.0 });=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera)  =0A=
      element.setStyle({filter: =
Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  =0A=
  } else {  =0A=
    if(value < 0.00001) value =3D 0;  =0A=
    element.setStyle({opacity: value});=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera)  =0A=
      element.setStyle(=0A=
        { filter: =
element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A=
            'alpha(opacity=3D'+value*100+')' });  =0A=
  }=0A=
  return element;=0A=
}  =0A=
 =0A=
Element.getInlineOpacity =3D function(element){  =0A=
  return $(element).style.opacity || '';=0A=
}  =0A=
=0A=
Element.forceRerendering =3D function(element) {=0A=
  try {=0A=
    element =3D $(element);=0A=
    var n =3D document.createTextNode(' ');=0A=
    element.appendChild(n);=0A=
    element.removeChild(n);=0A=
  } catch(e) { }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Array.prototype.call =3D function() {=0A=
  var args =3D arguments;=0A=
  this.each(function(f){ f.apply(this, args) });=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Effect =3D {=0A=
  _elementDoesNotExistError: {=0A=
    name: 'ElementDoesNotExistError',=0A=
    message: 'The specified DOM element does not exist, but is required =
for this effect to operate'=0A=
  },=0A=
  tagifyText: function(element) {=0A=
    if(typeof Builder =3D=3D 'undefined')=0A=
      throw("Effect.tagifyText requires including script.aculo.us' =
builder.js library");=0A=
      =0A=
    var tagifyStyle =3D 'position:relative';=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle =
+=3D ';zoom:1';=0A=
    =0A=
    element =3D $(element);=0A=
    $A(element.childNodes).each( function(child) {=0A=
      if(child.nodeType=3D=3D3) {=0A=
        child.nodeValue.toArray().each( function(character) {=0A=
          element.insertBefore(=0A=
            Builder.node('span',{style: tagifyStyle},=0A=
              character =3D=3D ' ' ? String.fromCharCode(160) : =
character), =0A=
              child);=0A=
        });=0A=
        Element.remove(child);=0A=
      }=0A=
    });=0A=
  },=0A=
  multiple: function(element, effect) {=0A=
    var elements;=0A=
    if(((typeof element =3D=3D 'object') || =0A=
        (typeof element =3D=3D 'function')) && =0A=
       (element.length))=0A=
      elements =3D element;=0A=
    else=0A=
      elements =3D $(element).childNodes;=0A=
      =0A=
    var options =3D Object.extend({=0A=
      speed: 0.1,=0A=
      delay: 0.0=0A=
    }, arguments[2] || {});=0A=
    var masterDelay =3D options.delay;=0A=
=0A=
    $A(elements).each( function(element, index) {=0A=
      new effect(element, Object.extend(options, { delay: index * =
options.speed + masterDelay }));=0A=
    });=0A=
  },=0A=
  PAIRS: {=0A=
    'slide':  ['SlideDown','SlideUp'],=0A=
    'blind':  ['BlindDown','BlindUp'],=0A=
    'appear': ['Appear','Fade']=0A=
  },=0A=
  toggle: function(element, effect) {=0A=
    element =3D $(element);=0A=
    effect =3D (effect || 'appear').toLowerCase();=0A=
    var options =3D Object.extend({=0A=
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }=0A=
    }, arguments[2] || {});=0A=
    Effect[element.visible() ? =0A=
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, =
options);=0A=
  }=0A=
};=0A=
=0A=
var Effect2 =3D Effect; // deprecated=0A=
=0A=
/* ------------- transitions ------------- */=0A=
=0A=
Effect.Transitions =3D {=0A=
  linear: Prototype.K,=0A=
  sinoidal: function(pos) {=0A=
    return (-Math.cos(pos*Math.PI)/2) + 0.5;=0A=
  },=0A=
  reverse: function(pos) {=0A=
    return 1-pos;=0A=
  },=0A=
  flicker: function(pos) {=0A=
    return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A=
  },=0A=
  wobble: function(pos) {=0A=
    return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A=
  },=0A=
  pulse: function(pos, pulses) { =0A=
    pulses =3D pulses || 5; =0A=
    return (=0A=
      Math.round((pos % (1/pulses)) * pulses) =3D=3D 0 ? =0A=
            ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : =0A=
        1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2))=0A=
      );=0A=
  },=0A=
  none: function(pos) {=0A=
    return 0;=0A=
  },=0A=
  full: function(pos) {=0A=
    return 1;=0A=
  }=0A=
};=0A=
=0A=
/* ------------- core effects ------------- */=0A=
=0A=
Effect.ScopedQueue =3D Class.create();=0A=
Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), {=0A=
  initialize: function() {=0A=
    this.effects  =3D [];=0A=
    this.interval =3D null;=0A=
  },=0A=
  _each: function(iterator) {=0A=
    this.effects._each(iterator);=0A=
  },=0A=
  add: function(effect) {=0A=
    var timestamp =3D new Date().getTime();=0A=
    =0A=
    var position =3D (typeof effect.options.queue =3D=3D 'string') ? =0A=
      effect.options.queue : effect.options.queue.position;=0A=
    =0A=
    switch(position) {=0A=
      case 'front':=0A=
        // move unstarted effects after this effect  =0A=
        this.effects.findAll(function(e){ return e.state=3D=3D'idle' =
}).each( function(e) {=0A=
            e.startOn  +=3D effect.finishOn;=0A=
            e.finishOn +=3D effect.finishOn;=0A=
          });=0A=
        break;=0A=
      case 'with-last':=0A=
        timestamp =3D this.effects.pluck('startOn').max() || timestamp;=0A=
        break;=0A=
      case 'end':=0A=
        // start effect after last queued effect has finished=0A=
        timestamp =3D this.effects.pluck('finishOn').max() || timestamp;=0A=
        break;=0A=
    }=0A=
    =0A=
    effect.startOn  +=3D timestamp;=0A=
    effect.finishOn +=3D timestamp;=0A=
=0A=
    if(!effect.options.queue.limit || (this.effects.length < =
effect.options.queue.limit))=0A=
      this.effects.push(effect);=0A=
    =0A=
    if(!this.interval) =0A=
      this.interval =3D setInterval(this.loop.bind(this), 40);=0A=
  },=0A=
  remove: function(effect) {=0A=
    this.effects =3D this.effects.reject(function(e) { return =
e=3D=3Deffect });=0A=
    if(this.effects.length =3D=3D 0) {=0A=
      clearInterval(this.interval);=0A=
      this.interval =3D null;=0A=
    }=0A=
  },=0A=
  loop: function() {=0A=
    var timePos =3D new Date().getTime();=0A=
    this.effects.invoke('loop', timePos);=0A=
  }=0A=
});=0A=
=0A=
Effect.Queues =3D {=0A=
  instances: $H(),=0A=
  get: function(queueName) {=0A=
    if(typeof queueName !=3D 'string') return queueName;=0A=
    =0A=
    if(!this.instances[queueName])=0A=
      this.instances[queueName] =3D new Effect.ScopedQueue();=0A=
      =0A=
    return this.instances[queueName];=0A=
  }=0A=
}=0A=
Effect.Queue =3D Effect.Queues.get('global');=0A=
=0A=
Effect.DefaultOptions =3D {=0A=
  transition: Effect.Transitions.sinoidal,=0A=
  duration:   1.0,   // seconds=0A=
  fps:        25.0,  // max. 25fps due to Effect.Queue implementation=0A=
  sync:       false, // true for combining=0A=
  from:       0.0,=0A=
  to:         1.0,=0A=
  delay:      0.0,=0A=
  queue:      'parallel'=0A=
}=0A=
=0A=
Effect.Base =3D function() {};=0A=
Effect.Base.prototype =3D {=0A=
  position: null,=0A=
  start: function(options) {=0A=
    this.options      =3D =
Object.extend(Object.extend({},Effect.DefaultOptions), options || {});=0A=
    this.currentFrame =3D 0;=0A=
    this.state        =3D 'idle';=0A=
    this.startOn      =3D this.options.delay*1000;=0A=
    this.finishOn     =3D this.startOn + (this.options.duration*1000);=0A=
    this.event('beforeStart');=0A=
    if(!this.options.sync)=0A=
      Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A=
        'global' : this.options.queue.scope).add(this);=0A=
  },=0A=
  loop: function(timePos) {=0A=
    if(timePos >=3D this.startOn) {=0A=
      if(timePos >=3D this.finishOn) {=0A=
        this.render(1.0);=0A=
        this.cancel();=0A=
        this.event('beforeFinish');=0A=
        if(this.finish) this.finish(); =0A=
        this.event('afterFinish');=0A=
        return;  =0A=
      }=0A=
      var pos   =3D (timePos - this.startOn) / (this.finishOn - =
this.startOn);=0A=
      var frame =3D Math.round(pos * this.options.fps * =
this.options.duration);=0A=
      if(frame > this.currentFrame) {=0A=
        this.render(pos);=0A=
        this.currentFrame =3D frame;=0A=
      }=0A=
    }=0A=
  },=0A=
  render: function(pos) {=0A=
    if(this.state =3D=3D 'idle') {=0A=
      this.state =3D 'running';=0A=
      this.event('beforeSetup');=0A=
      if(this.setup) this.setup();=0A=
      this.event('afterSetup');=0A=
    }=0A=
    if(this.state =3D=3D 'running') {=0A=
      if(this.options.transition) pos =3D this.options.transition(pos);=0A=
      pos *=3D (this.options.to-this.options.from);=0A=
      pos +=3D this.options.from;=0A=
      this.position =3D pos;=0A=
      this.event('beforeUpdate');=0A=
      if(this.update) this.update(pos);=0A=
      this.event('afterUpdate');=0A=
    }=0A=
  },=0A=
  cancel: function() {=0A=
    if(!this.options.sync)=0A=
      Effect.Queues.get(typeof this.options.queue =3D=3D 'string' ? =0A=
        'global' : this.options.queue.scope).remove(this);=0A=
    this.state =3D 'finished';=0A=
  },=0A=
  event: function(eventName) {=0A=
    if(this.options[eventName + 'Internal']) this.options[eventName + =
'Internal'](this);=0A=
    if(this.options[eventName]) this.options[eventName](this);=0A=
  },=0A=
  inspect: function() {=0A=
    return '#<Effect:' + $H(this).inspect() + ',options:' + =
$H(this.options).inspect() + '>';=0A=
  }=0A=
}=0A=
=0A=
Effect.Parallel =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Parallel.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(effects) {=0A=
    this.effects =3D effects || [];=0A=
    this.start(arguments[1]);=0A=
  },=0A=
  update: function(position) {=0A=
    this.effects.invoke('render', position);=0A=
  },=0A=
  finish: function(position) {=0A=
    this.effects.each( function(effect) {=0A=
      effect.render(1.0);=0A=
      effect.cancel();=0A=
      effect.event('beforeFinish');=0A=
      if(effect.finish) effect.finish(position);=0A=
      effect.event('afterFinish');=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
Effect.Event =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Event.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function() {=0A=
    var options =3D Object.extend({=0A=
      duration: 0=0A=
    }, arguments[0] || {});=0A=
    this.start(options);=0A=
  },=0A=
  update: Prototype.emptyFunction=0A=
});=0A=
=0A=
Effect.Opacity =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Opacity.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    // make this work on IE on elements without 'layout'=0A=
    if(/MSIE/.test(navigator.userAgent) && !window.opera && =
(!this.element.currentStyle.hasLayout))=0A=
      this.element.setStyle({zoom: 1});=0A=
    var options =3D Object.extend({=0A=
      from: this.element.getOpacity() || 0.0,=0A=
      to:   1.0=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setOpacity(position);=0A=
  }=0A=
});=0A=
=0A=
Effect.Move =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Move.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      x:    0,=0A=
      y:    0,=0A=
      mode: 'relative'=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    // Bug in Opera: Opera returns the "real" position of a static =
element or=0A=
    // relative element that does not have top/left explicitly set.=0A=
    // =3D=3D> Always set top and left for position relative elements in =
your stylesheets =0A=
    // (to 0 if you do not need them) =0A=
    this.element.makePositioned();=0A=
    this.originalLeft =3D parseFloat(this.element.getStyle('left') || =
'0');=0A=
    this.originalTop  =3D parseFloat(this.element.getStyle('top')  || =
'0');=0A=
    if(this.options.mode =3D=3D 'absolute') {=0A=
      // absolute movement, so we need to calc deltaX and deltaY=0A=
      this.options.x =3D this.options.x - this.originalLeft;=0A=
      this.options.y =3D this.options.y - this.originalTop;=0A=
    }=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({=0A=
      left: Math.round(this.options.x  * position + this.originalLeft) + =
'px',=0A=
      top:  Math.round(this.options.y  * position + this.originalTop)  + =
'px'=0A=
    });=0A=
  }=0A=
});=0A=
=0A=
// for backwards compatibility=0A=
Effect.MoveBy =3D function(element, toTop, toLeft) {=0A=
  return new Effect.Move(element, =0A=
    Object.extend({ x: toLeft, y: toTop }, arguments[3] || {}));=0A=
};=0A=
=0A=
Effect.Scale =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Scale.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element, percent) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({=0A=
      scaleX: true,=0A=
      scaleY: true,=0A=
      scaleContent: true,=0A=
      scaleFromCenter: false,=0A=
      scaleMode: 'box',        // 'box' or 'contents' or {} with =
provided values=0A=
      scaleFrom: 100.0,=0A=
      scaleTo:   percent=0A=
    }, arguments[2] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    this.restoreAfterFinish =3D this.options.restoreAfterFinish || false;=0A=
    this.elementPositioning =3D this.element.getStyle('position');=0A=
    =0A=
    this.originalStyle =3D {};=0A=
    ['top','left','width','height','fontSize'].each( function(k) {=0A=
      this.originalStyle[k] =3D this.element.style[k];=0A=
    }.bind(this));=0A=
      =0A=
    this.originalTop  =3D this.element.offsetTop;=0A=
    this.originalLeft =3D this.element.offsetLeft;=0A=
    =0A=
    var fontSize =3D this.element.getStyle('font-size') || '100%';=0A=
    ['em','px','%','pt'].each( function(fontSizeType) {=0A=
      if(fontSize.indexOf(fontSizeType)>0) {=0A=
        this.fontSize     =3D parseFloat(fontSize);=0A=
        this.fontSizeType =3D fontSizeType;=0A=
      }=0A=
    }.bind(this));=0A=
    =0A=
    this.factor =3D (this.options.scaleTo - this.options.scaleFrom)/100;=0A=
    =0A=
    this.dims =3D null;=0A=
    if(this.options.scaleMode=3D=3D'box')=0A=
      this.dims =3D [this.element.offsetHeight, =
this.element.offsetWidth];=0A=
    if(/^content/.test(this.options.scaleMode))=0A=
      this.dims =3D [this.element.scrollHeight, =
this.element.scrollWidth];=0A=
    if(!this.dims)=0A=
      this.dims =3D [this.options.scaleMode.originalHeight,=0A=
                   this.options.scaleMode.originalWidth];=0A=
  },=0A=
  update: function(position) {=0A=
    var currentScale =3D (this.options.scaleFrom/100.0) + (this.factor * =
position);=0A=
    if(this.options.scaleContent && this.fontSize)=0A=
      this.element.setStyle({fontSize: this.fontSize * currentScale + =
this.fontSizeType });=0A=
    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * =
currentScale);=0A=
  },=0A=
  finish: function(position) {=0A=
    if(this.restoreAfterFinish) =
this.element.setStyle(this.originalStyle);=0A=
  },=0A=
  setDimensions: function(height, width) {=0A=
    var d =3D {};=0A=
    if(this.options.scaleX) d.width =3D Math.round(width) + 'px';=0A=
    if(this.options.scaleY) d.height =3D Math.round(height) + 'px';=0A=
    if(this.options.scaleFromCenter) {=0A=
      var topd  =3D (height - this.dims[0])/2;=0A=
      var leftd =3D (width  - this.dims[1])/2;=0A=
      if(this.elementPositioning =3D=3D 'absolute') {=0A=
        if(this.options.scaleY) d.top =3D this.originalTop-topd + 'px';=0A=
        if(this.options.scaleX) d.left =3D this.originalLeft-leftd + =
'px';=0A=
      } else {=0A=
        if(this.options.scaleY) d.top =3D -topd + 'px';=0A=
        if(this.options.scaleX) d.left =3D -leftd + 'px';=0A=
      }=0A=
    }=0A=
    this.element.setStyle(d);=0A=
  }=0A=
});=0A=
=0A=
Effect.Highlight =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Highlight.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    if(!this.element) throw(Effect._elementDoesNotExistError);=0A=
    var options =3D Object.extend({ startcolor: '#ffff99' }, =
arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  setup: function() {=0A=
    // Prevent executing on elements not in the layout flow=0A=
    if(this.element.getStyle('display')=3D=3D'none') { this.cancel(); =
return; }=0A=
    // Disable background image during the effect=0A=
    this.oldStyle =3D {=0A=
      backgroundImage: this.element.getStyle('background-image') };=0A=
    this.element.setStyle({backgroundImage: 'none'});=0A=
    if(!this.options.endcolor)=0A=
      this.options.endcolor =3D =
this.element.getStyle('background-color').parseColor('#ffffff');=0A=
    if(!this.options.restorecolor)=0A=
      this.options.restorecolor =3D =
this.element.getStyle('background-color');=0A=
    // init color calculations=0A=
    this._base  =3D $R(0,2).map(function(i){ return =
parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A=
    this._delta =3D $R(0,2).map(function(i){ return =
parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] =
}.bind(this));=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({backgroundColor: =
$R(0,2).inject('#',function(m,v,i){=0A=
      return =
m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); =
}.bind(this)) });=0A=
  },=0A=
  finish: function() {=0A=
    this.element.setStyle(Object.extend(this.oldStyle, {=0A=
      backgroundColor: this.options.restorecolor=0A=
    }));=0A=
  }=0A=
});=0A=
=0A=
Effect.ScrollTo =3D Class.create();=0A=
Object.extend(Object.extend(Effect.ScrollTo.prototype, =
Effect.Base.prototype), {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
    this.start(arguments[1] || {});=0A=
  },=0A=
  setup: function() {=0A=
    Position.prepare();=0A=
    var offsets =3D Position.cumulativeOffset(this.element);=0A=
    if(this.options.offset) offsets[1] +=3D this.options.offset;=0A=
    var max =3D window.innerHeight ? =0A=
      window.height - window.innerHeight :=0A=
      document.body.scrollHeight - =0A=
        (document.documentElement.clientHeight ? =0A=
          document.documentElement.clientHeight : =
document.body.clientHeight);=0A=
    this.scrollStart =3D Position.deltaY;=0A=
    this.delta =3D (offsets[1] > max ? max : offsets[1]) - =
this.scrollStart;=0A=
  },=0A=
  update: function(position) {=0A=
    Position.prepare();=0A=
    window.scrollTo(Position.deltaX, =0A=
      this.scrollStart + (position*this.delta));=0A=
  }=0A=
});=0A=
=0A=
/* ------------- combination effects ------------- */=0A=
=0A=
Effect.Fade =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var options =3D Object.extend({=0A=
  from: element.getOpacity() || 1.0,=0A=
  to:   0.0,=0A=
  afterFinishInternal: function(effect) { =0A=
    if(effect.options.to!=3D0) return;=0A=
    effect.element.hide().setStyle({opacity: oldOpacity}); =0A=
  }}, arguments[1] || {});=0A=
  return new Effect.Opacity(element,options);=0A=
}=0A=
=0A=
Effect.Appear =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
  from: (element.getStyle('display') =3D=3D 'none' ? 0.0 : =
element.getOpacity() || 0.0),=0A=
  to:   1.0,=0A=
  // force Safari to render floated elements properly=0A=
  afterFinishInternal: function(effect) {=0A=
    effect.element.forceRerendering();=0A=
  },=0A=
  beforeSetup: function(effect) {=0A=
    effect.element.setOpacity(effect.options.from).show(); =0A=
  }}, arguments[1] || {});=0A=
  return new Effect.Opacity(element,options);=0A=
}=0A=
=0A=
Effect.Puff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D { =0A=
    opacity: element.getInlineOpacity(), =0A=
    position: element.getStyle('position'),=0A=
    top:  element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height=0A=
  };=0A=
  return new Effect.Parallel(=0A=
   [ new Effect.Scale(element, 200, =0A=
      { sync: true, scaleFromCenter: true, scaleContent: true, =
restoreAfterFinish: true }), =0A=
     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], =0A=
     Object.extend({ duration: 1.0, =0A=
      beforeSetupInternal: function(effect) {=0A=
        Position.absolutize(effect.effects[0].element)=0A=
      },=0A=
      afterFinishInternal: function(effect) {=0A=
         effect.effects[0].element.hide().setStyle(oldStyle); }=0A=
     }, arguments[1] || {})=0A=
   );=0A=
}=0A=
=0A=
Effect.BlindUp =3D function(element) {=0A=
  element =3D $(element);=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 0,=0A=
    Object.extend({ scaleContent: false, =0A=
      scaleX: false, =0A=
      restoreAfterFinish: true,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping();=0A=
      } =0A=
    }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
Effect.BlindDown =3D function(element) {=0A=
  element =3D $(element);=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false,=0A=
    scaleFrom: 0,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping();=0A=
    }=0A=
  }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.SwitchOff =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  return new Effect.Appear(element, Object.extend({=0A=
    duration: 0.4,=0A=
    from: 0,=0A=
    transition: Effect.Transitions.flicker,=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Scale(effect.element, 1, { =0A=
        duration: 0.3, scaleFromCenter: true,=0A=
        scaleX: false, scaleContent: false, restoreAfterFinish: true,=0A=
        beforeSetup: function(effect) { =0A=
          effect.element.makePositioned().makeClipping();=0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: =
oldOpacity});=0A=
        }=0A=
      })=0A=
    }=0A=
  }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.DropOut =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left'),=0A=
    opacity: element.getInlineOpacity() };=0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Move(element, {x: 0, y: 100, sync: true }), =0A=
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],=0A=
    Object.extend(=0A=
      { duration: 0.5,=0A=
        beforeSetup: function(effect) {=0A=
          effect.effects[0].element.makePositioned(); =0A=
        },=0A=
        afterFinishInternal: function(effect) {=0A=
          =
effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);=0A=
        } =0A=
      }, arguments[1] || {}));=0A=
}=0A=
=0A=
Effect.Shake =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.getStyle('top'),=0A=
    left: element.getStyle('left') };=0A=
    return new Effect.Move(element, =0A=
      { x:  20, y: 0, duration: 0.05, afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x:  40, y: 0, duration: 0.1,  afterFinishInternal: =
function(effect) {=0A=
    new Effect.Move(effect.element,=0A=
      { x: -20, y: 0, duration: 0.05, afterFinishInternal: =
function(effect) {=0A=
        effect.element.undoPositioned().setStyle(oldStyle);=0A=
  }}) }}) }}) }}) }}) }});=0A=
}=0A=
=0A=
Effect.SlideDown =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  // SlideDown need to have the content of the element wrapped in a =
container element with fixed height!=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  var elementDimensions =3D element.getDimensions();=0A=
  return new Effect.Scale(element, 100, Object.extend({ =0A=
    scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleFrom: window.opera ? 0 : 1,=0A=
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: =
elementDimensions.width},=0A=
    restoreAfterFinish: true,=0A=
    afterSetup: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if(window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().setStyle({height: '0px'}).show(); =0A=
    },=0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' }); =0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.undoClipping().undoPositioned();=0A=
      effect.element.down().undoPositioned().setStyle({bottom: =
oldInnerBottom}); }=0A=
    }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
Effect.SlideUp =3D function(element) {=0A=
  element =3D $(element).cleanWhitespace();=0A=
  var oldInnerBottom =3D element.down().getStyle('bottom');=0A=
  return new Effect.Scale(element, window.opera ? 0 : 1,=0A=
   Object.extend({ scaleContent: false, =0A=
    scaleX: false, =0A=
    scaleMode: 'box',=0A=
    scaleFrom: 100,=0A=
    restoreAfterFinish: true,=0A=
    beforeStartInternal: function(effect) {=0A=
      effect.element.makePositioned();=0A=
      effect.element.down().makePositioned();=0A=
      if(window.opera) effect.element.setStyle({top: ''});=0A=
      effect.element.makeClipping().show();=0A=
    },  =0A=
    afterUpdateInternal: function(effect) {=0A=
      effect.element.down().setStyle({bottom:=0A=
        (effect.dims[0] - effect.element.clientHeight) + 'px' });=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      =
effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: =
oldInnerBottom});=0A=
      effect.element.down().undoPositioned();=0A=
    }=0A=
   }, arguments[1] || {})=0A=
  );=0A=
}=0A=
=0A=
// Bug in opera makes the TD containing this element expand for a =
instance after finish =0A=
Effect.Squish =3D function(element) {=0A=
  return new Effect.Scale(element, window.opera ? 1 : 0, { =0A=
    restoreAfterFinish: true,=0A=
    beforeSetup: function(effect) {=0A=
      effect.element.makeClipping(); =0A=
    },  =0A=
    afterFinishInternal: function(effect) {=0A=
      effect.element.hide().undoClipping(); =0A=
    }=0A=
  });=0A=
}=0A=
=0A=
Effect.Grow =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.full=0A=
  }, arguments[1] || {});=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();    =0A=
  var initialMoveX, initialMoveY;=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      initialMoveX =3D initialMoveY =3D moveX =3D moveY =3D 0; =0A=
      break;=0A=
    case 'top-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D moveY =3D 0;=0A=
      moveX =3D -dims.width;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      initialMoveX =3D moveX =3D 0;=0A=
      initialMoveY =3D dims.height;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      initialMoveX =3D dims.width;=0A=
      initialMoveY =3D dims.height;=0A=
      moveX =3D -dims.width;=0A=
      moveY =3D -dims.height;=0A=
      break;=0A=
    case 'center':=0A=
      initialMoveX =3D dims.width / 2;=0A=
      initialMoveY =3D dims.height / 2;=0A=
      moveX =3D -dims.width / 2;=0A=
      moveY =3D -dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Move(element, {=0A=
    x: initialMoveX,=0A=
    y: initialMoveY,=0A=
    duration: 0.01, =0A=
    beforeSetup: function(effect) {=0A=
      effect.element.hide().makeClipping().makePositioned();=0A=
    },=0A=
    afterFinishInternal: function(effect) {=0A=
      new Effect.Parallel(=0A=
        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, =
from: 0.0, transition: options.opacityTransition }),=0A=
          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: =
true, transition: options.moveTransition }),=0A=
          new Effect.Scale(effect.element, 100, {=0A=
            scaleMode: { originalHeight: dims.height, originalWidth: =
dims.width }, =0A=
            sync: true, scaleFrom: window.opera ? 1 : 0, transition: =
options.scaleTransition, restoreAfterFinish: true})=0A=
        ], Object.extend({=0A=
             beforeSetup: function(effect) {=0A=
               effect.effects[0].element.setStyle({height: =
'0px'}).show(); =0A=
             },=0A=
             afterFinishInternal: function(effect) {=0A=
               =
effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldSty=
le); =0A=
             }=0A=
           }, options)=0A=
      )=0A=
    }=0A=
  });=0A=
}=0A=
=0A=
Effect.Shrink =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options =3D Object.extend({=0A=
    direction: 'center',=0A=
    moveTransition: Effect.Transitions.sinoidal,=0A=
    scaleTransition: Effect.Transitions.sinoidal,=0A=
    opacityTransition: Effect.Transitions.none=0A=
  }, arguments[1] || {});=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    height: element.style.height,=0A=
    width: element.style.width,=0A=
    opacity: element.getInlineOpacity() };=0A=
=0A=
  var dims =3D element.getDimensions();=0A=
  var moveX, moveY;=0A=
  =0A=
  switch (options.direction) {=0A=
    case 'top-left':=0A=
      moveX =3D moveY =3D 0;=0A=
      break;=0A=
    case 'top-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D 0;=0A=
      break;=0A=
    case 'bottom-left':=0A=
      moveX =3D 0;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'bottom-right':=0A=
      moveX =3D dims.width;=0A=
      moveY =3D dims.height;=0A=
      break;=0A=
    case 'center':  =0A=
      moveX =3D dims.width / 2;=0A=
      moveY =3D dims.height / 2;=0A=
      break;=0A=
  }=0A=
  =0A=
  return new Effect.Parallel(=0A=
    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, =
transition: options.opacityTransition }),=0A=
      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, =
transition: options.scaleTransition, restoreAfterFinish: true}),=0A=
      new Effect.Move(element, { x: moveX, y: moveY, sync: true, =
transition: options.moveTransition })=0A=
    ], Object.extend({            =0A=
         beforeStartInternal: function(effect) {=0A=
           effect.effects[0].element.makePositioned().makeClipping(); =0A=
         },=0A=
         afterFinishInternal: function(effect) {=0A=
           =
effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle=
(oldStyle); }=0A=
       }, options)=0A=
  );=0A=
}=0A=
=0A=
Effect.Pulsate =3D function(element) {=0A=
  element =3D $(element);=0A=
  var options    =3D arguments[1] || {};=0A=
  var oldOpacity =3D element.getInlineOpacity();=0A=
  var transition =3D options.transition || Effect.Transitions.sinoidal;=0A=
  var reverser   =3D function(pos){ return =
transition(1-Effect.Transitions.pulse(pos, options.pulses)) };=0A=
  reverser.bind(transition);=0A=
  return new Effect.Opacity(element, =0A=
    Object.extend(Object.extend({  duration: 2.0, from: 0,=0A=
      afterFinishInternal: function(effect) { =
effect.element.setStyle({opacity: oldOpacity}); }=0A=
    }, options), {transition: reverser}));=0A=
}=0A=
=0A=
Effect.Fold =3D function(element) {=0A=
  element =3D $(element);=0A=
  var oldStyle =3D {=0A=
    top: element.style.top,=0A=
    left: element.style.left,=0A=
    width: element.style.width,=0A=
    height: element.style.height };=0A=
  element.makeClipping();=0A=
  return new Effect.Scale(element, 5, Object.extend({   =0A=
    scaleContent: false,=0A=
    scaleX: false,=0A=
    afterFinishInternal: function(effect) {=0A=
    new Effect.Scale(element, 1, { =0A=
      scaleContent: false, =0A=
      scaleY: false,=0A=
      afterFinishInternal: function(effect) {=0A=
        effect.element.hide().undoClipping().setStyle(oldStyle);=0A=
      } });=0A=
  }}, arguments[1] || {}));=0A=
};=0A=
=0A=
['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setCont=
entZoom',=0A=
 'collectTextNodes','collectTextNodesIgnoreClass'].each( =0A=
  function(f) { Element.Methods[f] =3D Element[f]; }=0A=
);=0A=
=0A=
Element.Methods.visualEffect =3D function(element, effect, options) {=0A=
  s =3D effect.gsub(/_/, '-').camelize();=0A=
  effect_class =3D s.charAt(0).toUpperCase() + s.substring(1);=0A=
  new Effect[effect_class](element, options);=0A=
  return $(element);=0A=
};=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01C7C3BE.BE0DDA90
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/temp/rubini_files/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=
var fileLoadingImage =3D =
"http://www.teramonews.com/img/lightbox/loading.gif";		=0A=
var fileBottomNavCloseImage =3D =
"http://www.teramonews.com/img/lightbox/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=
//	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_0000_01C7C3BE.BE0DDA90--
