From: <Saved by Windows Internet Explorer 8>
Subject: Lehigh Valley Connie Mack
Date: Wed, 30 Jun 2010 14:17:28 -0400
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0002_01CB185E.F8698B10"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5931

This is a multi-part message in MIME format.

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/lehighvalleyconniemack/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- cf 06/30/10 10:57 AM   --><HTML=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Lehigh Valley Connie =
Mack</TITLE>
<META content=3D"text/html; charset=3Dutf-8" http-equiv=3DContent-Type>
<META name=3Dkeywords=20
content=3D"eteamz,eteamz.com,youth sports,baseball,league,lehigh valley =
connie mack,,,18104,">
<META name=3Ddescription=20
content=3D"lehigh valley connie mack:league web site hosted at eteamz - =
,  18104 ">
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/sitez/main/lib.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/javascript/embedControls.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/javascript/prototype.1.6.0.3.js"></SCRIPT>=


<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/javascript/effects.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/javascript/logout_bar.js"></SCRIPT>

<SCRIPT>
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=3D0; (a =3D document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") !=3D -1 && =
a.getAttribute("title")) {
      a.disabled =3D true;
      if(a.getAttribute("title") =3D=3D title) a.disabled =3D false;
    }
  }
}
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
=09
=09
	function DownloadFile(file_id) {
		=
PopDownload=3Dwindow.open('/admin/sitez/download.cfm?id=3D'+file_id+'&amp=
;site=3D5343462','DownloadWindow','scrollbars,width=3D800,height=3D300');=

		PopDownload.focus();
	}

	var site =3D 5343462;
=09
</SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.eteamz.com/z/stylesheets/sites/enhanced/layout.css"><L=
INK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.eteamz.com/lehighvalleyconniemack/theme.css?ver=3D1005=
25072752">
<SCRIPT type=3Dtext/javascript>=0A=
			var z =3D ' ';=0A=
				var ausid;=0A=
				var loggedinstatus =3D 'not logged in';=0A=
		</SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18928"></HEAD>
<BODY>
<DIV id=3Dwrapper>
<DIV id=3Dads>
<DIV id=3Dleader>
<SCRIPT type=3Dtext/javascript>
						var html =3D '<scr' + 'ipt language=3D"JavaScript" =
src=3D"http://ad.doubleclick.net/adj/eteamz.tan/baseball/sites;tile=3D1;c=
hannel=3Dbaseball;subchannel=3Dnosubchannel;tanproduct=3Deteamz;b2borb2c=3D=
b2c;feature=3Dsites;subfeature1=3Dhome;subfeature2=3D;subfeature3=3D;sz=3D=
728x90;position=3Dleader_top;eventlisting=3Dnoeventlisting;country=3D;sta=
te=3D;typeid=3D;gender=3Dcoed;age=3D16u;skill=3Dcomp;dcopt=3Dist;stemp=3D=
basic;scat=3Dleague;stype=3Dplus' + ord() + '" width=3D"728" =
height=3D"90" frameborder=3D"no" border=3D"0" marginwidth=3D"0" =
marginheight=3D"0" scrolling=3D"no"></scr' + 'ipt>';
						document.write(html);
					</SCRIPT>
</DIV>
<DIV id=3Dhouse>
<SCRIPT type=3Dtext/javascript>
						var html =3D '<scr' + 'ipt language=3D"JavaScript" =
src=3D"http://ad.doubleclick.net/adj/eteamz.tan/baseball/sites;tile=3D2;c=
hannel=3Dbaseball;subchannel=3Dnosubchannel;tanproduct=3Deteamz;b2borb2c=3D=
b2c;feature=3Dsites;subfeature1=3Dhome;subfeature2=3D;subfeature3=3D;sz=3D=
250x90;position=3Dhouse_top;eventlisting=3Dnoeventlisting;country=3D;stat=
e=3D;typeid=3D;gender=3Dcoed;age=3D16u;skill=3Dcomp;stemp=3Dbasic;scat=3D=
league;stype=3Dplus' + ord() + '" width=3D"250" height=3D"90" =
frameborder=3D"no" border=3D"0" marginwidth=3D"0" marginheight=3D"0" =
scrolling=3D"no"></scr' + 'ipt>';
						document.write(html);
					</SCRIPT>
</DIV></DIV>
<DIV id=3Dheader>
<DIV id=3Dlogo><IMG=20
src=3D"http://www.eteamz.com/customtemplates/images/template_1/theme_1/lo=
go_inv.gif">=20
</DIV>
<DIV id=3Dbanner><IMG=20
src=3D"http://www.eteamz.com/customtemplates/images/template_1/theme_1/ba=
nner_inv.gif">=20
</DIV></DIV>
<DIV id=3Dcontent>
<DIV id=3Dmain_content>
<DIV id=3Dcontent_area>
<DIV id=3Dheadline>
<H1>Lehigh Valley Connie Mack: Welcome</H1></DIV><A =
name=3Dnews4828884></A>
<TABLE border=3D0 cellSpacing=3D0 cellPadding=3D0 align=3Dcenter>
  <TBODY>
  <TR align=3Dmiddle>
    <TD><IMG border=3D0 alt=3D"LVCM Banner"=20
      =
src=3D"http://photos-images.active.com/file/1/5343462/optimized/2e187895-=
1d0b-4868-9122-63739a48e067.gif">=20
    </TD></TR>
  <TR>
    <TD><IMG src=3D"http://www.eteamz.com/z/sitez/images/spacer.gif" =
width=3D1=20
      height=3D5></TD></TR></TBODY></TABLE>
<DIV id=3Dtitle><FONT style=3D"FONT-SIZE: 12pt" color=3D#000000 size=3D3 =
face=3DArial=20
??><B>.</B></FONT> </DIV><BR><FONT size=3D3 face=3DArial ??>
<P><FONT size=3D5>We are located in the Lehigh Valley, Pennsylvania, =
including=20
teams from Carbon, Lehigh, Monroe, and Northampton Counties.&nbsp; Teams =
of=20
players up to 16 years old (cannot turn 17 before&nbsp;May 1, 2010) are =
welcome=20
in our organization.&nbsp; Our season begins in late May and extends =
through=20
late July. For 2010, we have 21 registered teams from all regions of the =

Valley.</FONT>&nbsp; </P>
<P><A=20
href=3D"http://spreadsheets.google.com/viewform?formkey=3DdHNlV1prUTZJSXJ=
WWEJoVGVrdTc2RXc6MA"=20
target=3D_blank><FONT color=3D#ff0000 size=3D6>Score and =
pitcher&nbsp;reporting=20
form</FONT></A> </P>
<P><A href=3D"mailto:ed.shapiro@lehigh.edu">Email Message to&nbsp;League =

Webmaster/Scorekeeper</A> </P></FONT><BR><BR clear=3Dall>
<SCRIPT language=3DJavaScript>
function EventInfo(date,event_id,recur,type)
{
=09
	=
PopEvent=3Dwindow.open("/lehighvalleyconniemack/calendar/index.cfm?date=3D=
"+date+"&id=3D"+event_id+"&recurring=3D"+recur+"&type=3D"+type,"PersonWin=
dow","location=3Dno,menubar=3Dno,resizable=3Dyes,scrollbars,height=3D400,=
width=3D420");
=09
	PopEvent.focus();
}
</SCRIPT>

<TABLE border=3D0 cellSpacing=3D1 cellPadding=3D0 width=3D"100%">
  <TBODY>
  <TR>
    <TD colSpan=3D4><FONT color=3D#000000 size=3D3 =
face=3DArial><STRONG>Upcoming=20
      Games</STRONG></FONT></TD></TR>
  <TR>
    <TD width=3D"10%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Date</STRONG></FONT></TD>
    <TD width=3D"50%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Event</STRONG></FONT></TD>
    <TD width=3D"15%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Time</STRONG></FONT></TD>
    <TD width=3D"25%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Location</STRONG></FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16754996','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16754996"=20
      target=3D_self>Pen Argyl vs. Stroudsburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Pen =
Argyl=20
  </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832068','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832068"=20
      target=3D_self>Northampton vs. Freemansburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Harry =
Glaser=20
      Field-Fullerton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832070','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832070"=20
      target=3D_self>Catasaqua vs. South Parkland</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Opportunity=20
      Field-Catty </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832072','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832072"=20
      target=3D_self>Salisbury vs. Lehigh-Bethlehem</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Salisbury High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832075','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832075"=20
      target=3D_self>Lower Macungie vs. Palmerton</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Texas=20
      Field-Lower Mac </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832081','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832081"=20
      target=3D_self>Fountain Hill vs. Bangor</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832084','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832084"=20
      target=3D_self>Lehigh Township vs. North Parkland</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Bryfogle Field-Lehigh=20
      Township </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832088','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832088"=20
      target=3D_self>East Stroudsburg vs. Northern Valley</A> =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Stroudsburg=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832065','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832065"=20
      target=3D_self><STRIKE>Fullerton vs. Nazareth</STRIKE> - =
Rescheduled for=20
      June 29</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>8:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Harry =
Glaser=20
      Field-Fullerton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/30</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-06-30','16832078','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16832078"=20
      target=3D_self>Coplay vs. North Central Bethlehem</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>8:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sammy =
Balliet=20
      Stadium-Coplay </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/1</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-01','16784311','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16784311"=20
      target=3D_self>Northampton vs. Catasaqua</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Canal=20
      Park-Northampton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/1</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-01','16848905','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848905"=20
      target=3D_self>Moved from July 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>North =
Central=20
      Bethlehem </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/1</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-01','17364864','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17364864"=20
      target=3D_self>Lower Macungie vs. Moore Township</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Texas=20
      Field-Lower Mac </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/1</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-01','17369566','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17369566"=20
      target=3D_self>Stroudsburg vs. Lehigh-Bethlehem</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Stroudsburg Middle=20
      School,Rt 611 </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/1</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-01','17398061','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17398061"=20
      target=3D_self>Bangor vs. Northern Valley</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Bangor =
High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16796630','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16796630"=20
      target=3D_self>Catasaqua vs. Freemansburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Opportunity=20
      Field-Catty </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848878','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848878"=20
      target=3D_self>Bangor vs. Nazareth</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Bangor =
High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848886','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848886"=20
      target=3D_self>East Stroudsburg vs. Salisbury</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Stroudsburg=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848893','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848893"=20
      target=3D_self>Pen Argyl vs. Moore Township</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Pen =
Argyl=20
  </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848898','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848898"=20
      target=3D_self>Lehigh-Bethlehem vs. North Parkland</A> =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Lehigh-Bethlehem=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848913','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848913"=20
      target=3D_self>Northern Valley vs. Coplay</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Northern Lehigh High=20
      School </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848920','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848920"=20
      target=3D_self>Fountain Hill vs. Palmerton</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','16848955','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16848955"=20
      target=3D_self>South Parkland vs. Northampton</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Cedarbrook Field-S.=20
      Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
7/5</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-05','17398855','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17398855"=20
      target=3D_self>Bangor vs. Catasaqua</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>5:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Bangor =
High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
7/5</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-05','17369583','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17369583"=20
      target=3D_self>Fountain Hill vs. Stroudsburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
7/5</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-05','17379149','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17379149"=20
      target=3D_self>Fullerton vs. East Stroudsburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>8:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Harry =
Glaser=20
      Field-Fullerton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
7/6</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-06','16748725','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#16748725"=20
      target=3D_self>Bangor vs. Stroudsburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Bangor =
High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
7/6</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-06','17375915','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17375915"=20
      target=3D_self>Fountain Hill vs. Freemansburg</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
7/6</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-06','17399830','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17399830"=20
      target=3D_self>Moved from July 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Texas=20
      Field-Lower Mac </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
7/6</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-06','17401338','0','g');" =

      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#17401338"=20
      target=3D_self>Catasaqua vs. Nazareth</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Opportunity=20
      Field-Catty </FONT></TD></TR></TBODY></TABLE>
<TABLE border=3D0 cellSpacing=3D1 cellPadding=3D0 width=3D"100%">
  <TBODY>
  <TR>
    <TD colSpan=3D4><FONT color=3D#000000 size=3D3 =
face=3DArial><STRONG>Recent=20
      Games</STRONG></FONT></TD></TR>
  <TR>
    <TD width=3D"10%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Date</STRONG></FONT></TD>
    <TD width=3D"50%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Event</STRONG></FONT></TD>
    <TD width=3D"15%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Time</STRONG></FONT></TD>
    <TD width=3D"25%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Location</STRONG></FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16784230">Moore=20
      Township: 2 - Stroudsburg: 12</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>5:45 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Moore =
Township=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830301">Salisbury:=20
      7 - North Parkland: 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Salisbury High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830308">Fountain=20
      Hill: 8 - Fullerton: 11</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830312">Bangor:=20
      11 - North Central Bethlehem: 1</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Bangor =
High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830305">Lehigh=20
      Township: 11 - Catasaqua: 1</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>7:30 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Bryfogle Field-Lehigh=20
      Township </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830317">Nazareth:=20
      7 - Freemansburg: 4</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>7:30 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tuskes =
Field-Nazareth=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Wed =
6/23</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830315">Coplay:=20
      1 - Lower Macungie: 12</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>8:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sammy =
Balliet=20
      Stadium-Coplay </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
6/24</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16816404">South=20
      Parkland: 12 - Palmerton: 7</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Cedarbrook Field-S.=20
      Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
6/24</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16816462">Salisbury:=20
      2 - Bangor: 12</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Salisbury High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
6/24</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D17361545">Northampton:=20
      4 - Coplay: 10</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Canal=20
      Park-Northampton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831920">North=20
      Parkland: 4 - East Stroudsburg: 10</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Laury's =
Station=20
      Field-N. Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831923">South=20
      Parkland: 16 - Moore Township: 12</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Cedarbrook Field-S.=20
      Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831926">Catasaqua:=20
      9 - Lower Macungie: 8</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Opportunity=20
      Field-Catty </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831932">Freemansburg:=20
      0 - Northern Valley: 11</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Freemansburg - Miller=20
      Heights </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831939">Lehigh=20
      Township: 12 - Salisbury: 4</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Bryfogle Field-Lehigh=20
      Township </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831942">Pen=20
      Argyl: 4 - Palmerton: 0</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Pen =
Argyl=20
  </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
6/25</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831951">Lehigh-Bethlehem:=20
      7 - Fountain Hill: 11</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Lehigh-Bethlehem=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16748785">North=20
      Parkland: 9 - Bangor: 24</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>10:00 =
AM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Laury's =
Station=20
      Field-N. Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831981">Salisbury:=20
      0 - North Central Bethlehem: 16</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>11:00 =
AM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Salisbury High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831983">Palmerton:=20
      1 - Freemansburg: 3</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>11:00 =
AM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Palmerton High School=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831967">Lehigh=20
      Township: 4 - Fullerton: 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>12:00 =
PM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Bryfogle Field-Lehigh=20
      Township </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831977">Nazareth:=20
      5 - Northampton: 9</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>12:00 =
PM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tuskes =
Field-Nazareth=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831985">Lower=20
      Macungie: 12 - Pen Argyl: 9</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>12:00 =
PM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Texas=20
      Field-Lower Mac </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831987">Coplay:=20
      8 - Catasaqua: 7</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>12:00 =
PM </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Egypt =
Park=20
  </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831973">Moore=20
      Township: 4 - Lehigh-Bethlehem: 5</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>1:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Moore =
Township=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sat =
6/26</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831982">Northern=20
      Valley: 15 - Fountain Hill: 5</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>4:30 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Northwestern Lehigh=20
      High School </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sun =
6/27</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830320">Northern=20
      Valley: 6 - Pen Argyl: 5</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>4:30 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Northern Lehigh High=20
      School </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831990">Lehigh=20
      Township: 5 - Stroudsburg: 9</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Bryfogle Field-Lehigh=20
      Township </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16831993">Lower=20
      Macungie: 12 - North Central Bethlehem: 7</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Texas=20
      Field-Lower Mac </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832006">East=20
      Stroudsburg: 7 - Catasaqua: 5</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>East =
Stroudsburg=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832012">North=20
      Parkland: 7 - Fullerton: 12</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Laury's =
Station=20
      Field-N. Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832016">Moore=20
      Township: 2 - Coplay: 13</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Moore =
Township=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832018">Northern=20
      Valley: 12 - Lehigh-Bethlehem: 4</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Northern Lehigh High=20
      School </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832020">South=20
      Parkland: 5 - Bangor: 4</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Cedarbrook Field-S.=20
      Parkland </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832022">Fountain=20
      Hill: 3 - Pen Argyl: 8</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Fountain Hill=20
    </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
6/28</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16832025">Nazareth:=20
      12 - Salisbury: 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tuskes =
Field-Nazareth=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
6/29</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D16830314">Northampton:=20
      3 - East Stroudsburg: 2</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Canal=20
      Park-Northampton </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
6/29</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D17399782">Stroudsburg:=20
      12 - South Parkland: 8</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>6:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Stroudsburg Middle=20
      School,Rt 611 </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Tue =
6/29</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/sport1.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/index.cfm?=
season=3D600349&amp;division=3D5343766&amp;cat=3D1040658&amp;sport=3D1&am=
p;show=3Doverview&amp;game=3D17379153">Fullerton:=20
      4 - Nazareth: 5</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>8:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Harry =
Glaser=20
      Field-Fullerton </FONT></TD></TR></TBODY></TABLE>
<TABLE border=3D0 cellSpacing=3D1 cellPadding=3D0 width=3D"100%">
  <TBODY>
  <TR>
    <TD colSpan=3D4><FONT color=3D#000000 size=3D3 =
face=3DArial><STRONG>Upcoming=20
      Events</STRONG></FONT></TD></TR>
  <TR>
    <TD width=3D"10%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Date</STRONG></FONT></TD>
    <TD width=3D"50%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Event</STRONG></FONT></TD>
    <TD width=3D"15%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Time</STRONG></FONT></TD>
    <TD width=3D"25%"><FONT color=3D#000000 size=3D3=20
      face=3DArial><STRONG>Location</STRONG></FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Fri =
7/2</FONT></TD>
    <TD vAlign=3Dtop><IMG border=3D0 alt=3Dstar=20
      src=3D"http://www.eteamz.com/z/buttons/star.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-02','7402419','0','c');"=20
      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#7402419"=20
      target=3D_self>Names for LV All Star Game Due</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial><EM>All =
Day</EM>=20
      </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial></FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Sun =
7/11</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DDiamond/Ball=20
      src=3D"http://www.eteamz.com/z/buttons/cat14.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-11','7210454','0','c');"=20
      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#7210454"=20
      target=3D_self>LVCM All Star Game</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>7:00 PM =
</FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial>Limeport Stadium=20
      </FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Mon =
7/12</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DBaseball=20
      src=3D"http://www.eteamz.com/z/buttons/cat256.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-12','7210429','0','c');"=20
      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#7210429"=20
      target=3D_self>LVCM Playoffs</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>5:30 PM =
- Jul 19,=20
      2010 </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 =
face=3DArial></FONT></TD></TR>
  <TR>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Thu =
7/22</FONT></TD>
    <TD vAlign=3Dtop><IMG alt=3DGlove=20
      src=3D"http://www.eteamz.com/z/buttons/cat20.gif" width=3D15 =
height=3D15> <FONT=20
      color=3D#000000 size=3D3 face=3DArial><A=20
      onclick=3D"javascript:EventInfo('2010-07-22','7210441','0','c');"=20
      href=3D"http://www.eteamz.com/lehighvalleyconniemack/#7210441"=20
      target=3D_self>CM State Playoffs</A> </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>5:30 PM =
- Jul 31,=20
      2010 </FONT></TD>
    <TD vAlign=3Dtop><FONT color=3D#000000 size=3D3 face=3DArial>Lehigh =
Township=20
      Bryogle Field </FONT></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=3Dmin_height></DIV>
<DIV id=3Dleft_column>
<DIV id=3Deteamz_nation><A=20
href=3D"http://www.eteamz.com/lehighvalleyconniemack/eteamznation/"><SPAN=
=20
style=3D"PADDING-LEFT: 5px">eteamz Nation</SPAN></A> </DIV>
<DIV id=3Dnav_area>
<UL>
  <SCRIPT type=3Dtext/javascript>
function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}
function eslu(eslu_date, eslu_filename, eslu_days_till_expire)
{
	var now =3D new Date();
	var expireDate =3D addDays(eslu_date,eslu_days_till_expire);

	if (now < expireDate || (eslu_days_till_expire =3D=3D 0 &&  =
eslu_filename!=3D"none"))
		document.write ('<img src=3D"/z/images/plus/' + eslu_filename + '.gif" =
border=3D"0"/>');
}
</SCRIPT>

  <LI><A =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/"><SPAN>Home=20
  </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/calendar/"><SPAN>Cal=
endar=20
  </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/schedules/"><SPAN>Sc=
hedules=20
  </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/standings/"><SPAN>St=
andings=20
  </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/handouts/"><SPAN>Sch=
ed=20
  Download, Coach Info,Forms, Rules, Meetings </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/news/index.cfm?cat=3D=
629507"><SPAN>Scores=20
  and Pitching Reports </SPAN></A>
  <LI><A=20
  =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/news/index.cfm?cat=3D=
629508"><SPAN>Field=20
  Locations </SPAN></A>
  <LI><A =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/links/"><SPAN>Links =

  </SPAN></A>
  <LI><A =
href=3D"http://www.eteamz.com/lehighvalleyconniemack/board/"><SPAN>Board =

  </SPAN></A></LI></UL></DIV>
<DIV id=3Dsponsors></DIV></DIV>
<DIV class=3Dclear_content></DIV>
<DIV id=3Dtoolbar>
<DIV id=3Dtoolbar_area>
<UL><SPAN style=3D"DISPLAY: none" id=3Dlogout_bar>
  <LI id=3Dlogin><A =
href=3D"http://www.eteamz.com/login/logout.cfm">Logout</A>=20
  </SPAN><SPAN style=3D"DISPLAY: none" id=3Dlogout_bar_old>
  <LI id=3Dusername>Logged in as: <A=20
  href=3D"http://www.eteamz.com/login/index.cfm"><SPAN =
id=3Dlogin_name></SPAN></A>
  <LI id=3Dprofile><A =
href=3D"http://www.eteamz.com/login/update.cfm">Edit=20
  Profile</A>=20
  <LI id=3Dmessage_center><A=20
  href=3D"http://www.eteamz.com/lehighvalleyconniemack/#">Contact =
Support</A>=20
  </SPAN><SPAN style=3D"DISPLAY: none" id=3Dlogin_bar>
  <LI id=3Dloginc><A=20
  =
href=3D"http://www.eteamz.com/login/index.cfm?public_url=3D/lehighvalleyc=
onniemack/index.cfm?">Login</A>=20
  </SPAN>
  <LI id=3Dadmin><A =
href=3D"http://www.eteamz.com/admin2/index.cfm?site=3D5343462"=20
  target=3D_top>Admin</A> </LI></UL></DIV></DIV></DIV>
<DIV id=3Dfooter>
<DIV id=3Dcounter>
<DIV id=3Dcounter_number><SPAN id=3Dsite_counter_container><SPAN=20
id=3Dsite_counter>1</SPAN></SPAN></DIV>
<DIV id=3Dcounter_text>You just got hit number:</DIV></DIV>
<DIV id=3Dfooter_area>copyright =C2=A9 2010 eteamz <A=20
href=3D"http://www.eteamz.com/lehighvalleyconniemack/#">User =
Agreement</A></DIV>
<DIV class=3Dclear_footer></DIV>
<DIV id=3Deteamz_logo><A href=3D"http://www.eteamz.com/"><IMG=20
title=3D"Create a Sports Team or League Website Today!" border=3D0=20
alt=3D"Create a Sports Team or League Website Today!"=20
src=3D"http://www.eteamz.com/z/images/sitez/enhancedtemplates/master/logo=
_blue.png"=20
width=3D106 height=3D43></A></DIV></DIV>
<DIV class=3Dbottom_spacer></DIV></DIV>
<SCRIPT>
		// build the request object
		var request =3D $H({	method:'put',=20
							id:0,=20
							params:{	e_site_id:site	}});
	=09
		new Ajax.Request(	'/proxy.cfm?service=3Dcounter',
							{	method:'post',
								parameters:'request=3D'+request.toJSON(),
								onSuccess:function(response) {
									var result =3D response.responseText.evalJSON().result;
							=09
									if(result.counterdisplay =3D=3D 1) {
										if($('site_counter_container').show()) {
											$('site_counter').update(result.counter);
										}
									}
								}=09
							});
						=09
						=09
=09
	</SCRIPT>
<!-- SiteCatalyst code version: H.21.=0A=
Copyright 1996-2010 Adobe, Inc. All Rights Reserved=0A=
More info available at http://www.omniture.com -->
<SCRIPT language=3DJavaScript type=3Dtext/javascript=20
src=3D"http://www.eteamz.com/z/javascript/tan_code_tnt2sc_integration_pro=
d.js"></SCRIPT>

<SCRIPT language=3DJavaScript type=3Dtext/javascript><!--=0A=
/* You may give each page an identifying name, server, and channel on=0A=
the next lines. */=0A=
s_tan.channel=3D"eteamz"=0A=
s_tan.pageName=3D"eteamz:baseball:baseball - other:sites:home"=0A=
s_tan.prop1=3D"eteamz:baseball"=0A=
s_tan.prop2=3D"eteamz:baseball:baseball - other"=0A=
s_tan.prop3=3D"eteamz:baseball:baseball - other:sites:home"=0A=
s_tan.prop4=3D"home"=0A=
s_tan.prop5=3D""=0A=
s_tan.prop6=3D""=0A=
s_tan.prop7=3D"activesports"=0A=
s_tan.prop8=3D""=0A=
s_tan.prop9=3D""=0A=
s_tan.prop10=3Dloggedinstatus||""=0A=
s_tan.prop11=3D""=0A=
s_tan.prop12=3D""=0A=
s_tan.prop13=3D""=0A=
s_tan.prop14=3D""=0A=
s_tan.prop15=3D""=0A=
s_tan.prop16=3D""=0A=
s_tan.prop17=3D""=0A=
s_tan.prop18=3D""=0A=
s_tan.prop19=3D""=0A=
s_tan.prop20=3D""=0A=
s_tan.prop21=3D""=0A=
s_tan.prop22=3D"sites"=0A=
s_tan.prop23=3Dausid||""=0A=
s_tan.prop24=3D""=0A=
s_tan.prop25=3D""=0A=
s_tan.prop26=3D""=0A=
s_tan.prop27=3D""=0A=
s_tan.prop28=3D""=0A=
s_tan.prop29=3D""=0A=
s_tan.prop30=3D""=0A=
s_tan.prop31=3D"league"=0A=
s_tan.prop32=3D"plus"=0A=
s_tan.prop33=3D"customizable"=0A=
s_tan.prop34=3D"basic"=0A=
s_tan.prop35=3D"n/a"=0A=
s_tan.prop36=3D"5343462"=0A=
s_tan.prop37=3D"ad option no"=0A=
s_tan.prop38=3D"youth 16u"=0A=
s_tan.prop39=3D"n/a"=0A=
s_tan.prop40=3D"competitive"=0A=
/* Conversion Variables */=0A=
s_tan.campaign=3D""=0A=
s_tan.state=3D""=0A=
s_tan.zip=3D""=0A=
s_tan.events=3D""=0A=
s_tan.products=3D""=0A=
s_tan.purchaseID=3D""=0A=
s_tan.eVar1=3D""=0A=
s_tan.eVar2=3D""=0A=
s_tan.eVar3=3D""=0A=
s_tan.eVar4=3D""=0A=
s_tan.eVar5=3D""=0A=
s_tan.eVar6=3D""=0A=
s_tan.eVar7=3D""=0A=
s_tan.eVar8=3D""=0A=
s_tan.eVar9=3D""=0A=
s_tan.eVar10=3D""=0A=
s_tan.eVar11=3D""=0A=
s_tan.eVar12=3D""=0A=
s_tan.eVar13=3D""=0A=
s_tan.eVar14=3D""=0A=
s_tan.eVar15=3D""=0A=
s_tan.eVar16=3D""=0A=
s_tan.eVar17=3D""=0A=
s_tan.eVar18=3D""=0A=
s_tan.eVar19=3D""=0A=
s_tan.eVar20=3D""=0A=
s_tan.eVar21=3D""=0A=
s_tan.eVar22=3D""=0A=
s_tan.eVar23=3D""=0A=
/* Hierarchy Variables */=0A=
s_tan.hier1=3D"eteamz,baseball,baseball - other,sites home"=0A=
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/=0A=
var s_code=3Ds_tan.t();if(s_code)document.write(s_code)//--></SCRIPT>
<!-- End SiteCatalyst code version: H.21. --><!-- from ws20--><!-- ws20 =
--></BODY></HTML>

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/customtemplates/images/template_1/theme_1/logo_inv.gif

R0lGODlhyABaAIAAAP///wAAACH5BAEAAAAALAAAAADIAFoAAAKkhI+py+0Po5y02ouz3rz7D4bi
SJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmM
TqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+QkaKjpK
Wmp6ipqqusra6voKGys7S1tre4ubq7vL2+v7CxwcUwAAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/customtemplates/images/template_1/theme_1/banner_inv.gif

R0lGODlhIANaAIAAAP///wAAACH5BAEAAAAALAAAAAAgA1oAAAL/hI+py+0Po5y02ouz3rz7D4bi
SJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjUqn1Kr1is1qt9yu9wsOi8fksvmM
TqvX7Lb7DY/L5/S6/Y7P6/f8vv8PGCg4SFhoeIiYqLjI2Oj4CBkpOUlZaXmJmam5ydnp+QkaKjpK
Wmp6ipqqusra6voKGys7S1tre4ubq7vL2+v7CxwsPExcbHyMnKy8zNzs/AwdLT1NXW19jZ2tvc3d
7f0NHi4+Tl5ufo6err7O3u7+Dh8vP09fb3+Pn6+/z9/v/w8woMCBBAsaPIgwocKFDBs6fAgxosSJ
FCtavIgxo8aNchw7evwIMqTIkSRLmjyJMqXKlSxbunwJM6bMmTRr2ryJM6fOnTx7+vwJNKjQoUSL
Gj2KNKnSpUybOn0KNarUqVSrWr2KNavWrVy7ev0KNqzYsWTLmj2LNq3atWzbun0LN67cuXTr2r2L
N6/evXz7+q1bAAA7

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://photos-images.active.com/file/1/5343462/optimized/2e187895-1d0b-4868-9122-63739a48e067.gif

R0lGODlhkAFkAPcAAMQAJgAAACMABokAGnsAFzoACw4AAhgABG0AFZgAHUYADaYAIGAAErUAI1MA
EC4ACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAkAFkAAAI/wABCBxI
sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN
mzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1APLkBQwICBAFYNKBgQtavXrzYXZA1AtqxZswYe
MADLtq1bj2fjBniQ4IBVuWQNvN3Lty/Cq2gNFFjQEIGDu2a5+l3MuGvctRYZnHXQuLJlo2cVbwRM
VsDlz6BznmWYoKIDs5RDq169UoDZhlcZOiCM8HRZ1rhzh1RQFjLDBQEGDlBA4CBZhZxVvq643Pht
h80XRh84PeHy6rqdlk0NPTiA4wEQFP8E7v27XoNlPZ/E/pD99+cN3aOHL1B+wev0szdNvnDAgbwA
JBAAAQ3khdV9x71XXkG2LTiSfdLldxGE1OVHYX3PXahfUBCSxVWCAVAW4kGSfafgeQchICFIHU73
WnQw3oYfeCtWmKCNC8pF0IwOjobjjxvOlJ51cwUYAFcq1ieigwIZsBZZBwh4QIRMfiQfXuVhmSV8
WmKIl0LNxaijl96F+aWXQAYJU1kP1BYAb2WeN6B5hJHFHQC8YQhAkgIVoEBp8wVAW0hXnqngmTyO
qWWVZKa5aKOH4uhjpBqqKdKQzgWnomenNXDanQo92WSPxQX6YI2RQuojj6omCmmmW97/aCaIGdYq
q63BVWrpR7Zp5pye4fkaEWAAkCcWo6hm5N6jqabKaqu33ghrs7CWiSuZYypI7a4pqXigqQKuNcCR
mx13lW+msogqs7NaS2u07sbKaKPVYQltvNnKKC23KEn27X3aAujRVeMGx9+OI1q57sLw3gtku1Rq
i+C78TpMZK778mvSdgBMKZy1JorEW51lCjQAYYAB2tGyz0LsLJfXvopQtq+2jGvFks6rsboBePye
QCoWUJ9JUyW4QJsAXJWAgBkra2/OMDfcbJdTJ3uohVQ/e7WLuu58EWcGiNdjAFWhKxABOlsUG8JT
Cm31RFRj6/LL8MZV89uTIoxozFtj//221xuRJTQABQcokAMDHDYowCAZwB1ZCHwIgGsBqKxR3JJO
LK/ML/LdYo2dUyzz1TP/DThG9J3GwHkKoDhzSQDm2LRSXe9k+ukThkcQsR+6blABaV80wAMG2okw
7ZgXRTPuH8FZUIFkHUs4mFZ+zMB/Ai3+X/A9Ja983swrLN541S0u96J4qewrAglwxfRBBQv7PfiY
1R5+e7MbBCoADVDnLfpPQ09B1mYQYt3vgEKBXEN85R2V6aUsjvsfAB10nvHtjkgIzKBPDOgQ39Rp
IHq5StjwNEFZCcRs3bGgBldoE7JYTiILUExwChYYAOqlAf2rCAdZyMOYvO8iCRDAAP+40qDO9G15
FslfD5d4kh1CBC0BoBxeOIMlKtrtiW9iohZX4kKKxAVOUfTSA0uIxIV4a4toXA/3SgfB5PQsMUcE
INzWmMY6UqRwdzyLFLd2niKWcI52DOTA/iURGnaGYqiJYxXnuD/m0E+NSqTSvh6ZxNsFMCX2s5ho
KldJOx2IadEjHRnpOMCEoc5QKMkk+CjpyEjqrYwkySTdSMlFWgYKY7c5TN/Oh0qI+MtpvfzJKmU5
re5ccmO3KyYxY2nLgvgLawDwo/Em6Ehg4uuWY6ORtEInu0na54pb09yKhlm3Ym5rl+KsEjlxySSa
ae0m0APibdrElQVsLy8S7Iwh8dL/yO6ccpvqzFcA49YuVoITnHF85aRcZU6uufOhAkXlQPl2kx9W
8jx2saJepLkk72Hxn8Gb6NPYFTWETuxnwKrbQQ3FzXklj6Si46W8FJU1itrkl18DoNhWxSwvNlNz
kmTnNWeJM62xR1+4lFjVEHkvVioSqJqE6iwfVtKo2sSJPu2SNIPzzPRVEqSSpKrUXJYok9ooYNq8
WEyrZbWeVouXCr3i3MRp1ZqMq58RWZReQFmWKVnRrHn96SuPN1hNGjVmbtVbStEUV5s2VoliyuZK
J7s3qcm0rjQ5jc86WVm0EC6xEnElQyLrKM+ZNqYaqhVK6WOz/HmUc6y1KU1dW1WL/73zqqJlCPHs
9VdtHjO0gi3sQlt6t7W2dq0nJZ1SyXpcdqq1sEtF1s0Me9qiJlMlWJ0IX+OSz5YCNrDWNKlINxfd
4n53udGCWkGZC7qewhRnCZXpTOXqWJrgFKSj2apvYfnR8I4Toewl73oZdlbGyle95D2nfCVL2cgO
V6Ijre9M4pmR3gqVp8EEbuAM6lAB17bDaYtagX8EYqk+0qPcjOtbB1svpFo3ty2B8UK2G7uaxgWv
DjmjIHd8yg2PhsZ6PB9GBOQ7HhsZiy9spXe/JMXrOkcBR45yYOVHESt2FH3kgeApkyzlLh/kKlDO
SJaLZ8OuEtKnXk5zhHw8SnMtE/+lao4zgtjc5uDAqcgSOQ2e5ZzmLvp3lJQ515b5TGilWuQARVTk
FMfltEIXWsYG8cz4lkzNnAbX0Uw03kTEczQyARmAHqNyd7iMaSnbJiJc8RWUt4eAMZOxPqWCIaRL
XUeyxJohBlBZmEdFLjC+miADSIACcFzKPdM6ypQrzGjJTEYULY4BwiY2Ho8tZw8hBDIL6medsaMY
FV6M2nyu0eAENTiV9C8ADEDar8AtZx3nsDiUQdusA5fs0qmb3Wp+jth2xJVbp7JNIUrAVXJYrHnj
e4vQmxInK8QZUV8KY7QhQOLeQ+yD87gstCHiVQ5AGMSxxFqDEcgeLR5ugQ2N4nz/MslpzFOfBaSm
LN4meZ/3VZo5pfwj2otNgYqzazhtVuZqts3PBRTNEBGQI9KSXMeyCfRC79Z3eakTZfKUNPKQuiFE
B893PJ7cphO6V6X7GXngXMifDQhj6fL6ozUNbANxJU+MLqW1f3e4s+eK7CNW+9qL9CvgFYcsuwWh
wr2DAKuMq9V3P1BwEnBvL/lb7yU/830oMy6AqyxErumfAQpklziZ7EgxL7jBIS9I90ic5T3b0WGC
46fvPClXU//O4wEAvLmTntZtNVJ5iKckAwxxhklD+8WMfXtCa/mj5jLA9uqtkAbNvviYNsvPE0KA
GC4NaKFPiCGhT3KzNN4jRTQfT/fZLXCOeWTM3x+/xc9C/If4seLqB/dWJ7J6z8a/+BYuQLAJ7oD2
LfL+8TcAFoY+VweA47c0yuckVpFRjuNwBviAEBiBEjiBFFiBFliBAQEAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/sitez/images/spacer.gif

R0lGODlhAQABAPAAAMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/buttons/sport1.gif

R0lGODlhDwAPAOZlAL+pn41bU7KCcqZnZot1Zb6Wh9zDtZttY+XPvNvGsp9vbKCLdZp2adC4pIVp
WqKUhNK7pOPKurWbhah6b9fEuHdmWbiei6VvabSdit7ItqaMe+TQvujNvXtFRJqDarGZi6xwbJVy
Y7uEfINtYmwwLoNLRraikMiznqqShNi7qbaejaNwabiEe35rXKZoY9O/s9fBtt/Fss62rZBsW6Ju
ZXg6N4FfXurOvXhoWX5NQq2gk8qhlal7a8yjl+LIueDJtcatm4JsWtfEutGpnbWfkd/Es5BXVYp1
ZpJWVbieindmWq2BfdrDuLSFf6VxaoJXUMu2pti+rZ+JebeVibuhjda5qKyWg8m3r7F0bntiVKaR
gXxtZNK8rNvMv6CId6B8aKiUgs2wnMmtlpVaWIdzYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5
BAEAAGUALAAAAAAPAA8AAAd9gGWCg4SFhoeIiYqKFC8wQl2JSw0QUQY9A4cKSFUJGREiLkyFV1Nj
Qz4bHFgsXDKEJlROO0UINyBNUACEVioTBSk/MRcrQESEKB8HAmEnYjRGFmCEWhoBPEkYEl8lDA+E
OjM1IV5SCx45HYZPJA4ER2RBWTaHIy04FUpbhYEAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/buttons/star.gif

R0lGODlhDwAPAPQAAICAgF48H9fSzZKDQu/t642EePHlR1RINb+6rru0fqOjD/z7Jq6qa25OGs/I
VOfnIPn8E/LoKrGqpW1SRHdkIPr/CLmwGtzUwqGblKKaKcXDw723RWhfQ1IsEAAAAAAAACH5BAEA
AAAALAAAAAAPAA8AAAVFICCOZGmeaKquLBkIrDAQbGEcKQIkysLotFLD8YBAIgPJxCSgQCoQS0Fy
OWEykEVGQ6ieHBbGBoeaJEScKaoDAyACBVIIADs=

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/buttons/cat14.gif

R0lGODlhDwAPAPQeAP////Do3u3StOGxgNeqdOa8kvv48dyUUuSnb66bZdScXpKYalmTa3mXarSi
oJhvb398e8mkca6ztdPa4JZgVJlDNr63t556ep+QWeHJyrVpVHBsaIVyZW1hYcDAwAAAACH5BAAA
AAAALAAAAAAPAA8AAAVxICCOZGmeaEoGwkAMRWAaxXEgA2ITsmgMu4SQYFP0gAfCgsFcEBRJQ2C3
ZDSYjeehdRgksIqrY3GBDAIEQuTKZEgmk8flAjA8121KxWGRjwoKShgLEhkaFAYOJAIKCI4QFgZ7
GyWMTxkcGxsdJwFnJiEAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/buttons/cat256.gif

R0lGODlhDwAPAPcAAL+pn41bU7KCcqZnZot1Zb6Wh9zDtZttY+XPvNvGsp9vbKCLdZp2adC4pIVp
WqKUhNK7pOPKurWbhah6b9fEuHdmWbiei6VvabSdit7ItqaMe+TQvujNvXtFRJqDarGZi6xwbJVy
Y7uEfINtYmwwLoNLRraikMiznqqShNi7qbaejaNwabiEe35rXKZoY9O/s9fBtt/Fss62rZBsW6Ju
ZXg6N4FfXurOvXhoWX5NQq2gk8qhlal7a8yjl+LIueDJtcatm4JsWtfEutGpnbWfkd/Es5BXVYp1
ZpJWVbieindmWq2BfdrDuLSFf6VxaoJXUMu2pti+rZ+JebeVibuhjda5qKyWg8m3r7F0bntiVKaR
gXxtZNK8rNvMv6CId6B8aKiUgs2wnMmtlpVaWIdzYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgB
EwAAAAgCBwAAAFoAXAAArxUACjr4d5Dx/HfvOfh3IF0TAABdEwDkQRcAAAAAAAAAAAA4+hIAp537
d7A6+Hf/////SPoSAAAAEwAHAAAAAEEXANBBFwABAAAAAVwTABDw/Hew+RIAgPoSAID6EgCnnft3
kCb4d/////+Q+hIAK8XodwAAEwAAAAAAAQAAADBd4XcAAAAAAQAAAADg/X+4PxcAAAAAANBBFwAA
AAAAFAEAAFT6EgAAAAAAsP8SAFth6HdIxeh3/////5Am+HfcTUMA0EEXAAAAEwAAAAAAIQAAAJzF
/Wnz6cABAG3+pCQAAAAAmJmUyZ+/AQAAAAAgAgAABwAAAAAAAABzcG9yEHYTACABAAAZuUAADgYZ
AA4GGQA0+xIAp537d4Am+Hf/////RPsSANZl6HcAABMACAAUABgBAAAwXeF3AAAAAAAAAAAAAAAA
AAAAAMTARAA6dhMAtL0VAD52EwDWc0gA/////xB2EwAuwUQAOnYTACH5BAEAAGUALAAAAAAPAA8A
QAiOAMsIHEiwoEATVJzsKILgBogmUAAYLEPhBQwhXSbqmFEjhBcpCzzk6DCxpEEFSKokyBBBhAsm
BVF8OCAgzAkxNIxYAGNwRAscFZRsMUm0qMklDSBEMdBjgMErU8YM8bGBAxYWXGQQtKJiQoEUP2Jc
WAGECEEtGgLwSIJBwpcSDB4UfELCAYEjZIJksTEwIAA7

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/buttons/cat20.gif

R0lGODlhDwAPAPQXAP///+zr7H97e727vJuZmp1vb1pPTiwTDVQhDmQvErGmpEIcDJFAGZM8Ddjb
3kw1L3UyEcZZIbZTIQAAAKtLH8fIyJJMNsDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAA
AAAALAAAAAAPAA8AAAV6ICCOZGmeZiAMRBGggHEcSEIQAxkoxsIcjR/tBXA8ZgnIIaKUIB4EAME3
gSgjBwjlsDg4FD5fY8xoLJKLigN4YEQoEEac8RMZGtuGRB5XVkRTEQ00Ent0ByMBD3qDQEEHDyQD
C3pyDUqRJQRcEBYIMw4nFQYPpQShIyEAOw==

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.eteamz.com/z/images/sitez/enhancedtemplates/master/logo_blue.png

iVBORw0KGgoAAAANSUhEUgAAAGoAAAArCAYAAACQJR1eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ
bWFnZVJlYWR5ccllPAAADBlJREFUeNrsWwl0VNUZ/t+syUySmSSEbAQIEIFAJAiSQwsRBJeiAZcI
aqUqRVFRy6m4obQUqVYt9GDFipYWqXvdkIpSUEGBCFSNBswEJiEEsi+TZZLZ5/W/L/8cL483kxkQ
RJ0/5zsz79777nvvfvdf30QQRRGicvaLKroEUaKiEiUqSlRUzlLRnK03lpK/4Gy8LRZ5CRG0HyfN
pWujGhU1fd/v7g0gWB9/HM53MYx5wrkeRHhPEMb5P2iNEgiigpkRgixGqHalPqGPMXx7JPfKfw/L
NP4gfdRp0tDvYkw0mDgD2vldjIkSFWKHC7LFlLcLMvMS7DgUIcHGCBFqo9K9Cj92ooQI2oUIj8Md
E46mnXZNjIbn30/eFfmOVaye78qT0SlCt0MDOw8mwIh0Bzy3PR02f5UEVU0xoFGLoNeIMH2UrX/R
2Nb8TaXJU1UCjMlMcmaKfsEcq/XDwH5OGJ9tF7L7OzoNcZ5q8Kp2gE94C2euPO46Oj9cvCIfdh00
gUHvk9/VCEQiouTHzq5SYnzKpk8QYBJ+XF9iTZi5pSwx0+cXwC8K4PKoAlsBkDjQIZl5WXa4PL9t
1M2F9ZclJ7mXgEu1Hkf8EdESwqQUIOYjrkO88lMg6pR9FNM9pkFaBBJ0AR4uwpWc4fYJOqddi4RI
7aDGT7lGMMX9/HA8fGZNgNf3pMAT11aap4xpWwRu9RSc+EocUq1wyXsRyxF6Onb9VG1oRETFaPzQ
7VQP3FsVv/xoi+4GEL1qp8sPXq8PfH4/nGhGBVCjOmk0agl6vFqMFuDAMQPMeToX1txkheKfN+SD
S/0uDp6OaJJNkM2RxMQdJaoPiUX/0d6jKX74jezVe636DK3aC+n9TXDOkDQYOzobcgangjnBeNw5
LrcXDtc0wb6vq6DMUgO1DW2g02rAGAPQ41bDPS8Phdz0bsjNtueBW7UYT7mPTh2EuIXMHi+FiMcR
nyL+Q21qxCWIIkR/hAHRgbAg3kGUKjzOGMS1tBFMiB7SVmZWNyJquLGzEeMRHlqv9xCtzJrQ9Vj7
B4i/0/grCcmIbsRmxHrqm4mYROcE48OKeP7kiMKAoLrR8Ps/vJ21rLRKB5PPz4K5VxfCpRecC1kZ
yWFNcbSuFV7dVAJ/27AVWtq6IBZVq6FdC49sHAQv3vUNmkuYSySwRRiMeEhhmvMISUQUW6h1iMuD
XPYBxDLEn7i2uxGPIowK45kffJDGvMERdTU35iIi2My1sf6xRMBvZHNegxiNWEybaX4fS7VPiShV
OCTVN8U+Wbw6Z1lFQzw8et9MeH/D/XDLdVPDJokJG3vvgsvhlTV3QWqKWdI2A2rpdosZLEfi2HXS
2MNSEOKh3eiVTcOOnaQxQIEIT1InYj93zMzmY4hZnCat4kjykzZ8zJ2TjngakRHEL46l69TL2u8g
kg4h2mV9rH1UCE2SP2OEeRT2+jyqJ+7ekL34QL0ZNqy8ER5cOAuMhpgThrZ39sDK5zfDnIVPwYqn
3gZbR7filAX5w+DxJddhZChKgUlLlxa+YERhAILIumNaHbi8qlIMSs7H4W/JTv83maEnaVfP5vo6
iJBJtHv9XN/t9HkZmcqAsCjyF4gLZWSlkuYqyW7EBMQFMhPJ5HXERLqPHq6dXTOL7ruQwyQyjby0
Re6jtL756/874N43Skzwl98VQfGMAsVhnXYH/GrRM/DeR19KPuj1d3cjCWp4YOFMxfGXFJ4LecOz
4EDFMWncoYZYXFaBwTNjQjNM2ZHWg9FhOfrFZnmKgTjAmZQEro/5re30/R9EVhod5yPiaad/STtb
IB8WkDLEVO54UJBV2YFoJLC5BnJ9Af+1izR7Aqe5LNI6TAjIKCIWOO1dGZlGqcVhNpv+8VWbk2Hi
uCFw6/VTgw7dtO0LiaSEuFj0PTrQ6rRQ22gLOt5o0GPwkQZur1darW4MLKTH8ApH4hNdMGagnWmV
0kbij9NkfV3cd5vsOJUW9FnSlALyR0ztixFXIXLlKxBG2Ug+poc719mXU0GsoSQ+IM/JNDsMjdL4
l20tS0yy1Blg1bxxYIjVBx168eQ8sHy8ElQqlbRxWJhuijf0lShL4sO9lml2sS3TipujvNOmh4MN
BilB7kPkRDFfVcEdD1ZYeLazR5JvYzs5JQQh4knU9VTcmL5KR7eT+QwIyyNXRBqeM/9wzaYvk0Cv
j4GpE3NDXjElOUFCJGLvdiFZvc8yPMPBylRvglZstRwywftfJUFSnBf6+G2ovDeeEEzc5Nc+UiC5
hQKM2DOUFuVQNCpP7psiI0rtv7ajXa8rr4uB1H5GGDwgJegVHU43HKltAb/fH1b9UY1a19puh4rD
GDQJOsju54T8gXYneFXP4XXFuBifpE1h/IBXfjHmL17gSJQXC49RBJgm82srKOdiWnbDGSBJRekC
b/Je4tKBCIgSoNDhVkEPWqR+SUbQaoOb60/3WuDmxWulVWOmj5k9p8tDCy0qmDxBms/j8aEd0sDU
kS2Qmep4CTyqz5kR+qTCFO4Dy6Mj5rxXK5g7kfs+nutjO+sRxNaAkp9mggIb6ypCQJgW/e5kKxM5
0pOpVVDX2A4Oh1sKEoJdvw01RGB/SILH64Nfz5kCI4dlSGWlE8pQOM8r7+yGz/fXQKJBhDun11Xi
Ui6Vlg2X8rU9KaG0hp+wQW6Bue8ZFPYmciQUyXIiFkjUcsem00yUi8zrY7LnuR9RdXJEiYLASkZG
jB8O1tlh684ymFM0UXHo5AnDYd7sKbDpwy/AoNfBbBy3/LfFQa1gc1sX/PWfW4Bp7ENX1HaPGto1
H1yqetD7YHdZIljqDRCj9SsRA7Jw3EJ+J7CDxiGGQu+rkwspuQ1IJSWpfJSLyRsMQXxD844/zUT5
qeoxjGv7kHI5HbcxRaWapjJRPkEwYSSWk+aAfVY9PPHsJigsGAnp/c0n1gBRQ9asuBmW3HUFxGEi
bIoP7o+t1Q1w59L1UG61wZUFdu+iGUcXYki+naJMaGjTQYNNBykJnoC9OiSb4grEa1Q22obYS0lj
QKNeplzqBoVEuUWmQQL5pRFUEM4Job2nKuxxYigV4CWTci8td0/NspJVyDzqG6m6OK5FqslZKuvh
qltXwSd7yoPeSWZqYlCSGprbYe2L26Bo3p9hy04rTM51da6+0TrXEON7ATdF76p41PDV0TjQoyaL
xyeQnTKNmk15kJ8iJ74CMIEKuxlc2x4uiVwnu7VzqVpwCeerApLM5TvBNrcuRO6lk52jUlhvFk5P
4yoVkxGXRuKjNqJzLyhCoqaPtsEHXydCmeUoFN+2GgrGDoOLJuXBz8bngNlkBANqlJFyLFEKu50Y
TLih1WaHAwePIbkW2Pd1JVTVNIGg0sJ5Q7wVz9x0aEFWes8OcNBzCSJ4ezSwYWeqVKXnpIIW8RHa
8fHkW+o40zGNTMp5VCiNJZ/EnPTb5BMCtbdtVJNjofAAqqvVElklskpFYNFrZT6ED6FrZH0dnAZV
c37TS/dkDSORblSMBIK8ik+WdqLWP9RaZ4TZT+X2+g6NRyqmYvAsvWdKNMVJ1YjA6w3WbsPAogvJ
YkSxNKn3ZaMaAxONb+yg7n8VjuhYcuOkxvrsDFxv7i2wGzUq/+FxUNeuk15MKqVriH4U7dkU7Hg6
IZ7KONUhIrkkSnzZHOXcODNnglhlwUGvTfTw7e8fHFzVwUiaI3IBSqA8ZeQUQaS+2DCI8jeXru0M
V6PYg87Dhdw4bIDd/OLCcrht3TnwWWU8kqUBPTl7e49TqvPV1H37Jp2F6CokMTa2t3DL3vqyQqbH
JyxPN7m3sEKs23dSv/doJgSTeoWKdqjQfpdCe7tCW4/MvIIscuwO4pOUNknXqSRfweQTxAxwqf+X
O9AO792zH5bOqoHBKU6wO9Vgd6nB7dWAV9SCX9D3gm08QQMeH5Kp8XvMBs+HmMD+0i9KznqL1y9A
9D9RT076enFYIlWU3ao58UbP3KVzqvIWTKtLKjlogpJDCbC/1gA29C2kH97UBE8L8lB9fnbXm02d
2m27rKbSpg5tdJXPAFGBZHEdRmcI9Yj+ZvfwWRMbM2YVNCWggqMdFhok0yDAEfAI1sWvDjk6ekA3
kmgEl1eIrvB3VdaI/lf8D0Oiv5SNEhWVKFFRoqJytsr/BRgAy3IJgp0LMpcAAAAASUVORK5CYII=

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/stylesheets/sites/enhanced/layout.css

BODY {
	TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; FONT-FAMILY: Arial, Helvetica, sans-serif; =
FONT-SIZE: 80%; PADDING-TOP: 0px
}
#wrapper {
	TEXT-ALIGN: left; MARGIN: 0px auto; WIDTH: 1000px; DISPLAY: block
}
#ads {
	WIDTH: 1000px; DISPLAY: block; HEIGHT: 90px
}
#leader {
	TEXT-ALIGN: center; WIDTH: 728px; FLOAT: left; HEIGHT: 90px
}
#house {
	TEXT-ALIGN: center; WIDTH: 250px; FLOAT: right; HEIGHT: 90px; OVERFLOW: =
hidden
}
#header {
	WIDTH: 1000px; DISPLAY: block; HEIGHT: 90px; CLEAR: both
}
#logo {
	WIDTH: 200px; DISPLAY: block; FLOAT: left; HEIGHT: 90px
}
#banner {
	WIDTH: 800px; DISPLAY: block; FLOAT: right; HEIGHT: 90px
}
#toolbar {
	POSITION: absolute; TEXT-ALIGN: right; WIDTH: 1000px; DISPLAY: block; =
HEIGHT: 30px; CLEAR: both; TOP: -30px; LEFT: 0px
}
#toolbar A {
	FONT-WEIGHT: bold; TEXT-DECORATION: none
}
#toolbar A:hover {
	FONT-WEIGHT: bold; TEXT-DECORATION: underline
}
#toolbar_area {
	LINE-HEIGHT: 30px; PADDING-RIGHT: 5px; FONT-SIZE: 11px
}
#toolbar_area UL {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; PADDING-LEFT: 0px; =
MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px
}
#toolbar_area LI {
	PADDING-BOTTOM: 3px; LINE-HEIGHT: 17px; LIST-STYLE-TYPE: none; =
TEXT-INDENT: 0px; MARGIN: 0px 5px 0px 0px; PADDING-LEFT: 17px; =
PADDING-RIGHT: 5px; DISPLAY: inline; FONT-WEIGHT: bold; PADDING-TOP: 2px
}
#toolbar_area #loginc {
	PADDING-LEFT: 14px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px -248px
}
#toolbar_area #profile {
	PADDING-LEFT: 18px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px -198px
}
#toolbar_area #data_center {
	PADDING-LEFT: 18px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px -146px
}
#toolbar_area #message_center {
	PADDING-LEFT: 16px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px -96px
}
#toolbar_area #login {
	PADDING-LEFT: 14px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px -48px
}
#toolbar_area #admin {
	LINE-HEIGHT: 30px; PADDING-LEFT: 21px; PADDING-RIGHT: 0px; BACKGROUND: =
url(/z/images/sitez/enhancedtemplates/master/icon_sprites.gif) no-repeat =
0px 2px; BORDER-RIGHT: medium none
}
#content {
	POSITION: relative; MARGIN-TOP: 30px; WIDTH: 1000px; DISPLAY: block
}
#headline H1 {
	PADDING-BOTTOM: 3px; MARGIN: 0px 0px 10px; PADDING-LEFT: 3px; =
PADDING-RIGHT: 3px; DISPLAY: block; FONT-SIZE: 18px; FONT-WEIGHT: bold; =
PADDING-TOP: 3px
}
#content .clear_content {
	CLEAR: both
}
#left_column {
	WIDTH: 195px; DISPLAY: block; FLOAT: left
}
#eteamz_nation {
	MARGIN-TOP: 5px; FONT-SIZE: 14px
}
#eteamz_nation A {
	LINE-HEIGHT: 25px; DISPLAY: block; HEIGHT: 25px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
#eteamz_nation A:hover {
	LINE-HEIGHT: 25px; DISPLAY: block; HEIGHT: 25px; FONT-WEIGHT: bold; =
TEXT-DECORATION: underline
}
#eteamz_nation SPAN {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; DISPLAY: =
block; PADDING-TOP: 0px
}
#nav_area {
	DISPLAY: block
}
#nav_area UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: =
0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#nav_area UL LI {
=09
}
#nav_area UL LI SPAN {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; DISPLAY: =
block; PADDING-TOP: 0px
}
#nav_area UL LI A {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 4px; WIDTH: 193px; DISPLAY: block; BORDER-TOP: 0px; =
FONT-WEIGHT: bold; BORDER-RIGHT: black 1px solid; TEXT-DECORATION: none; =
PADDING-TOP: 4px
}
#nav_area UL LI A:hover {
	BORDER-BOTTOM: black 1px solid; BORDER-LEFT: black 1px solid; =
PADDING-BOTTOM: 4px; WIDTH: 193px; DISPLAY: block; BORDER-TOP: 0px; =
FONT-WEIGHT: bold; BORDER-RIGHT: black 1px solid; TEXT-DECORATION: =
underline; PADDING-TOP: 4px
}
#sponsors {
	MARGIN-TOP: 10px; WIDTH: 195px; DISPLAY: block; BACKGROUND-POSITION: =
center top; HEIGHT: 100px
}
#sponsors IMG {
=09
}
#content .min_height {
	WIDTH: 5px; DISPLAY: block; FLOAT: left; HEIGHT: 600px
}
#main_content {
	MARGIN-TOP: 5px; WIDTH: 790px; DISPLAY: block; FLOAT: right
}
#content_area {
	OVERFLOW-X: auto; OVERFLOW-Y: hidden; WIDTH: 785px; DISPLAY: block; =
MARGIN-RIGHT: 5px
}
#footer {
	TEXT-ALIGN: right; WIDTH: 1000px; DISPLAY: block
}
#counter {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; WIDTH: =
200px; PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: left; PADDING-TOP: =
15px
}
#counter_text {
	LINE-HEIGHT: 30px; FLOAT: right; FONT-SIZE: 12px
}
#counter_number {
	BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; =
LINE-HEIGHT: 30px; BACKGROUND-COLOR: #ffffff; WIDTH: 50px; DISPLAY: =
block; FLOAT: right; HEIGHT: 30px; COLOR: #000000; MARGIN-LEFT: 5px; =
FONT-SIZE: 20px; BORDER-TOP: #000000 1px solid; FONT-WEIGHT: bold; =
BORDER-RIGHT: #000000 1px solid
}
#footer_area {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; WIDTH: =
790px; PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: right; PADDING-TOP: =
15px
}
#footer_area A {
	TEXT-DECORATION: none
}
#footer_area A:hover {
	TEXT-DECORATION: underline
}
#footer_link {
	TEXT-ALIGN: center; PADDING-BOTTOM: 5px; PADDING-LEFT: 0px; WIDTH: =
790px; PADDING-RIGHT: 0px; DISPLAY: block; FLOAT: right; PADDING-TOP: =
15px
}
#footer_link A {
	TEXT-DECORATION: none
}
#footer_link A:hover {
	TEXT-DECORATION: underline
}
#eteamz_logo {
	DISPLAY: block; HEIGHT: 48px; MARGIN-LEFT: auto; MARGIN-RIGHT: 5px
}
#footer .clear_footer {
	CLEAR: both
}
.bottom_spacer {
	DISPLAY: block; HEIGHT: 10px
}

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/lehighvalleyconniemack/theme.css?ver=100525072752

BODY {
	BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #ffffff; BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: left top
}
#banner {
	BACKGROUND-COLOR: #ffffff; BACKGROUND-REPEAT: no-repeat; OVERFLOW: =
hidden
}
#banner IMG {
	MARGIN-TOP: 0px; MARGIN-LEFT: 0px
}
#logo {
	BACKGROUND-COLOR: #ffffff; BACKGROUND-REPEAT: no-repeat; OVERFLOW: =
hidden
}
#logo IMG {
	MARGIN-TOP: 0px; MARGIN-LEFT: 0px
}
#content {
	BACKGROUND-IMAGE: none; BACKGROUND-COLOR: #ffffff; BACKGROUND-REPEAT: =
no-repeat; BACKGROUND-POSITION: left top
}
#content_area {
	FONT-STYLE: normal; FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: =
10pt; FONT-WEIGHT: normal; TEXT-DECORATION: none
}
#toolbar {
	BACKGROUND-COLOR: #243f7a
}
#eteamz_nation A {
	BACKGROUND-COLOR: #243f7a
}
#eteamz_nation A:hover {
	BACKGROUND-COLOR: #243f7a
}
#footer {
	BACKGROUND-COLOR: #243f7a
}
#eteamz_nation {
	BACKGROUND-COLOR: #243f7a
}
#nav_area UL LI A {
	BORDER-BOTTOM: #243f7a 1px solid; BORDER-LEFT: #243f7a 1px solid; =
BACKGROUND-COLOR: #4b93c8; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #ffffff; FONT-SIZE: 10pt; BORDER-TOP: 0px; FONT-WEIGHT: bold; =
BORDER-RIGHT: #243f7a 1px solid; TEXT-DECORATION: none
}
#nav_area UL LI A:hover {
	BORDER-BOTTOM: #243f7a 1px solid; BORDER-LEFT: #243f7a 1px solid; =
BACKGROUND-COLOR: #4b93c8; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #ffffff; FONT-SIZE: 10pt; BORDER-TOP: 0px; FONT-WEIGHT: bold; =
BORDER-RIGHT: #243f7a 1px solid; TEXT-DECORATION: none
}
.menu_item {
	BACKGROUND-COLOR: #4b93c8; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #ffffff; FONT-SIZE: 10pt; BORDER-TOP: 0px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.menu_item A {
	BACKGROUND-COLOR: #4b93c8; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #ffffff; FONT-SIZE: 10pt; BORDER-TOP: 0px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
.menu_item A:hover {
	BACKGROUND-COLOR: #4b93c8; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #ffffff; FONT-SIZE: 10pt; BORDER-TOP: 0px; FONT-WEIGHT: bold; =
TEXT-DECORATION: none
}
#nav_table {
	BORDER-BOTTOM: medium none; BORDER-LEFT: #243f7a 1px solid; =
BACKGROUND-COLOR: #4b93c8; BORDER-TOP: #243f7a 1px solid; BORDER-RIGHT: =
medium none
}
#nav_table .menu_item {
	BORDER-BOTTOM: #243f7a 1px solid; BORDER-LEFT: medium none; BORDER-TOP: =
medium none; BORDER-RIGHT: #243f7a 1px solid
}
#headline H1 {
	BACKGROUND-COLOR: #ffffff; FONT-STYLE: normal; FONT-FAMILY: Arial; =
COLOR: #000000; FONT-SIZE: 14pt; FONT-WEIGHT: bold; TEXT-DECORATION: =
none
}
#title {
	FONT-STYLE: normal; FONT-FAMILY: Arial; COLOR: #000000; FONT-SIZE: =
12pt; FONT-WEIGHT: bold; TEXT-DECORATION: none
}
#toolbar {
	COLOR: #000000
}
#toolbar A {
	COLOR: #000000
}
#toolbar A:hover {
	COLOR: #000000
}
#footer {
	COLOR: #000000
}
#footer_area A {
	COLOR: #000000
}
#footer_area A:hover {
	COLOR: #000000
}
#footer_link A {
	COLOR: #000000
}
#footer_link A:hover {
	COLOR: #000000
}
#eteamz_nation A {
	COLOR: #000000
}
#eteamz_nation A:hover {
	COLOR: #000000
}
#toolbar_area LI {
	BORDER-RIGHT: #000000 1px solid
}
#sponsor {
=09
}
#sponsors IMG {
	MARGIN-TOP: 0px; MARGIN-LEFT: 0px
}
#content_area A:link {
	COLOR: #0000ff
}
#content_area A:visited {
	COLOR: #6741a3
}
#content_area A:hover {
=09
}
#content_area A:active {
	COLOR: #a063ec
}
#content_area A .title {
	TEXT-DECORATION: underline
}

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/sitez/main/lib.js

function gotosite(site){
	if(site !=3D "")=20
		self.location=3Dsite;
}

function ViewThumbnail(image_id,window_width,window_height) {
	var width=3Dwindow_width;
	var height=3Dwindow_height;
	if (window_height < 200) window_height=3D260; else =
window_height=3Dwindow_height+50;
	if (window_width < 300) window_width=3D330; else =
window_width=3Dwindow_width+50;
	=
PopThumb=3Dwindow.open("/admin/sitez/thumbnail.cfm?id=3D"+image_id+"&heig=
ht=3D"+height+"&width=3D"+width,"ThumbWindow","scrollbars,resizable,width=
=3D"+window_width+",height=3D"+window_height);PopThumb.focus();
}

function HearSound(sound_id,autoplay,loop) {
	PopMusic =3D =
window.open("/admin/sitez/music.cfm?id=3D"+sound_id+"&autoplay=3D"+autopl=
ay+"&loop=3D"+loop,"SoundWindow","scrollbars,resizable,width=3D260,height=
=3D80");
	PopMusic.focus();
}

function setCookie(name, value) {
	var expires =3D new Date();
	expires.setTime(expires.getTime()+2*60*60*1000); //2 hour
	document.cookie =3D name + "=3D" + escape (value) + "; path=3D/; =
expires=3D" + expires.toGMTString();
}

function readCookie(name) {
	var nameEQ =3D name + "=3D";
	var ca =3D document.cookie.split(';');
	for(var i=3D0;i < ca.length;i++) {
		var c =3D ca[i];
		while (c.charAt(0)=3D=3D' ')=20
			c =3D c.substring(1,c.length);
		if (c.indexOf(nameEQ) =3D=3D 0)=20
			return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function winBRopen(theURL, Name, popW, popH, scroll) {
	var winleft =3D (screen.width - popW) / 2;
	var winUp =3D (screen.height - popH) / 2;
	var winProp =3D =
'width=3D'+popW+',height=3D'+popH+',left=3D'+winleft+',top=3D'+winUp+',sc=
rollbars=3D'+scroll+',resizable';
	Win =3D window.open(theURL, Name, winProp);
	Win.window.focus();
}

var ordvar;
function ord() {
	if (typeof ordvar=3D=3D"undefined") {
		ordvar =3D '&ord=3D' + Math.round(Math.random() * 100000000) + '?';
	}
	return ordvar;
}
------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/javascript/embedControls.js

/* embedControls.js */
/* This file contains Javascript functions for embedding sound and video =
files into Web pages */

function embedSound(attachID, domain, soundFolder, soundLoc, autoplay, =
loop, soundID, soundName, soundExt) {
	document.write('<embed =
src=3D"/'+domain+soundFolder+'/sounds/'+soundLoc+'" =
autostart=3D"'+autoplay+'" loop=3D"'+loop+'" height=3D"20" />');
}

------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/javascript/prototype.1.6.0.3.js

/*  Prototype JavaScript framework, version 1.6.0.3
 *  (c) 2005-2008 Sam Stephenson
 *
 *  Prototype is freely distributable under the terms of an MIT-style =
license.
 *  For details, see the Prototype web site: http://www.prototypejs.org/
 *
 =
*------------------------------------------------------------------------=
--*/

var Prototype =3D {
  Version: '1.6.0.3',

  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') =3D=3D=3D -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&
      navigator.userAgent.indexOf('KHTML') =3D=3D=3D -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions:
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !=3D=3D
        document.createElement('form')['__proto__']
  },

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,

  emptyFunction: function() { },
  K: function(x) { return x }
};

if (Prototype.Browser.MobileSafari)
  Prototype.BrowserFeatures.SpecificElementExtensions =3D false;


/* Based on Alex Arnell's inheritance implementation. */
var Class =3D {
  create: function() {
    var parent =3D null, properties =3D $A(arguments);
    if (Object.isFunction(properties[0]))
      parent =3D properties.shift();

    function klass() {
      this.initialize.apply(this, arguments);
    }

    Object.extend(klass, Class.Methods);
    klass.superclass =3D parent;
    klass.subclasses =3D [];

    if (parent) {
      var subclass =3D function() { };
      subclass.prototype =3D parent.prototype;
      klass.prototype =3D new subclass;
      parent.subclasses.push(klass);
    }

    for (var i =3D 0; i < properties.length; i++)
      klass.addMethods(properties[i]);

    if (!klass.prototype.initialize)
      klass.prototype.initialize =3D Prototype.emptyFunction;

    klass.prototype.constructor =3D klass;

    return klass;
  }
};

Class.Methods =3D {
  addMethods: function(source) {
    var ancestor   =3D this.superclass && this.superclass.prototype;
    var properties =3D Object.keys(source);

    if (!Object.keys({ toString: true }).length)
      properties.push("toString", "valueOf");

    for (var i =3D 0, length =3D properties.length; i < length; i++) {
      var property =3D properties[i], value =3D source[property];
      if (ancestor && Object.isFunction(value) &&
          value.argumentNames().first() =3D=3D "$super") {
        var method =3D value;
        value =3D (function(m) {
          return function() { return ancestor[m].apply(this, arguments) =
};
        })(property).wrap(method);

        value.valueOf =3D method.valueOf.bind(method);
        value.toString =3D method.toString.bind(method);
      }
      this.prototype[property] =3D value;
    }

    return this;
  }
};

var Abstract =3D { };

Object.extend =3D function(destination, source) {
  for (var property in source)
    destination[property] =3D source[property];
  return destination;
};

Object.extend(Object, {
  inspect: function(object) {
    try {
      if (Object.isUndefined(object)) return 'undefined';
      if (object =3D=3D=3D null) return 'null';
      return object.inspect ? object.inspect() : String(object);
    } catch (e) {
      if (e instanceof RangeError) return '...';
      throw e;
    }
  },

  toJSON: function(object) {
    var type =3D typeof object;
    switch (type) {
      case 'undefined':
      case 'function':
      case 'unknown': return;
      case 'boolean': return object.toString();
    }

    if (object =3D=3D=3D null) return 'null';
    if (object.toJSON) return object.toJSON();
    if (Object.isElement(object)) return;

    var results =3D [];
    for (var property in object) {
      var value =3D Object.toJSON(object[property]);
      if (!Object.isUndefined(value))
        results.push(property.toJSON() + ': ' + value);
    }

    return '{' + results.join(', ') + '}';
  },

  toQueryString: function(object) {
    return $H(object).toQueryString();
  },

  toHTML: function(object) {
    return object && object.toHTML ? object.toHTML() : =
String.interpret(object);
  },

  keys: function(object) {
    var keys =3D [];
    for (var property in object)
      keys.push(property);
    return keys;
  },

  values: function(object) {
    var values =3D [];
    for (var property in object)
      values.push(object[property]);
    return values;
  },

  clone: function(object) {
    return Object.extend({ }, object);
  },

  isElement: function(object) {
    return !!(object && object.nodeType =3D=3D 1);
  },

  isArray: function(object) {
    return object !=3D null && typeof object =3D=3D "object" &&
      'splice' in object && 'join' in object;
  },

  isHash: function(object) {
    return object instanceof Hash;
  },

  isFunction: function(object) {
    return typeof object =3D=3D "function";
  },

  isString: function(object) {
    return typeof object =3D=3D "string";
  },

  isNumber: function(object) {
    return typeof object =3D=3D "number";
  },

  isUndefined: function(object) {
    return typeof object =3D=3D "undefined";
  }
});

Object.extend(Function.prototype, {
  argumentNames: function() {
    var names =3D =
this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
      .replace(/\s+/g, '').split(',');
    return names.length =3D=3D 1 && !names[0] ? [] : names;
  },

  bind: function() {
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return =
this;
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();
    return function() {
      return __method.apply(object, args.concat($A(arguments)));
    }
  },

  bindAsEventListener: function() {
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();
    return function(event) {
      return __method.apply(object, [event || =
window.event].concat(args));
    }
  },

  curry: function() {
    if (!arguments.length) return this;
    var __method =3D this, args =3D $A(arguments);
    return function() {
      return __method.apply(this, args.concat($A(arguments)));
    }
  },

  delay: function() {
    var __method =3D this, args =3D $A(arguments), timeout =3D =
args.shift() * 1000;
    return window.setTimeout(function() {
      return __method.apply(__method, args);
    }, timeout);
  },

  defer: function() {
    var args =3D [0.01].concat($A(arguments));
    return this.delay.apply(this, args);
  },

  wrap: function(wrapper) {
    var __method =3D this;
    return function() {
      return wrapper.apply(this, =
[__method.bind(this)].concat($A(arguments)));
    }
  },

  methodize: function() {
    if (this._methodized) return this._methodized;
    var __method =3D this;
    return this._methodized =3D function() {
      return __method.apply(null, [this].concat($A(arguments)));
    };
  }
});

Date.prototype.toJSON =3D function() {
  return '"' + this.getUTCFullYear() + '-' +
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
    this.getUTCDate().toPaddedString(2) + 'T' +
    this.getUTCHours().toPaddedString(2) + ':' +
    this.getUTCMinutes().toPaddedString(2) + ':' +
    this.getUTCSeconds().toPaddedString(2) + 'Z"';
};

var Try =3D {
  these: function() {
    var returnValue;

    for (var i =3D 0, length =3D arguments.length; i < length; i++) {
      var lambda =3D arguments[i];
      try {
        returnValue =3D lambda();
        break;
      } catch (e) { }
    }

    return returnValue;
  }
};

RegExp.prototype.match =3D RegExp.prototype.test;

RegExp.escape =3D function(str) {
  return String(str).replace(/([.*+?^=3D!:${}()|[\]\/\\])/g, '\\$1');
};

/*-----------------------------------------------------------------------=
---*/

var PeriodicalExecuter =3D Class.create({
  initialize: function(callback, frequency) {
    this.callback =3D callback;
    this.frequency =3D frequency;
    this.currentlyExecuting =3D false;

    this.registerCallback();
  },

  registerCallback: function() {
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);
  },

  execute: function() {
    this.callback(this);
  },

  stop: function() {
    if (!this.timer) return;
    clearInterval(this.timer);
    this.timer =3D null;
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try {
        this.currentlyExecuting =3D true;
        this.execute();
      } finally {
        this.currentlyExecuting =3D false;
      }
    }
  }
});
Object.extend(String, {
  interpret: function(value) {
    return value =3D=3D null ? '' : String(value);
  },
  specialChar: {
    '\b': '\\b',
    '\t': '\\t',
    '\n': '\\n',
    '\f': '\\f',
    '\r': '\\r',
    '\\': '\\\\'
  }
});

Object.extend(String.prototype, {
  gsub: function(pattern, replacement) {
    var result =3D '', source =3D this, match;
    replacement =3D arguments.callee.prepareReplacement(replacement);

    while (source.length > 0) {
      if (match =3D source.match(pattern)) {
        result +=3D source.slice(0, match.index);
        result +=3D String.interpret(replacement(match));
        source  =3D source.slice(match.index + match[0].length);
      } else {
        result +=3D source, source =3D '';
      }
    }
    return result;
  },

  sub: function(pattern, replacement, count) {
    replacement =3D this.gsub.prepareReplacement(replacement);
    count =3D Object.isUndefined(count) ? 1 : count;

    return this.gsub(pattern, function(match) {
      if (--count < 0) return match[0];
      return replacement(match);
    });
  },

  scan: function(pattern, iterator) {
    this.gsub(pattern, iterator);
    return String(this);
  },

  truncate: function(length, truncation) {
    length =3D length || 30;
    truncation =3D Object.isUndefined(truncation) ? '...' : truncation;
    return this.length > length ?
      this.slice(0, length - truncation.length) + truncation : =
String(this);
  },

  strip: function() {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  },

  stripTags: function() {
    return this.replace(/<\/?[^>]+>/gi, '');
  },

  stripScripts: function() {
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), =
'');
  },

  extractScripts: function() {
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  },

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return =
eval(script) });
  },

  escapeHTML: function() {
    var self =3D arguments.callee;
    self.text.data =3D this;
    return self.div.innerHTML;
  },

  unescapeHTML: function() {
    var div =3D new Element('div');
    div.innerHTML =3D this.stripTags();
    return div.childNodes[0] ? (div.childNodes.length > 1 ?
      $A(div.childNodes).inject('', function(memo, node) { return =
memo+node.nodeValue }) :
      div.childNodes[0].nodeValue) : '';
  },

  toQueryParams: function(separator) {
    var match =3D this.strip().match(/([^?#]*)(#.*)?$/);
    if (!match) return { };

    return match[1].split(separator || '&').inject({ }, function(hash, =
pair) {
      if ((pair =3D pair.split('=3D'))[0]) {
        var key =3D decodeURIComponent(pair.shift());
        var value =3D pair.length > 1 ? pair.join('=3D') : pair[0];
        if (value !=3D undefined) value =3D decodeURIComponent(value);

        if (key in hash) {
          if (!Object.isArray(hash[key])) hash[key] =3D [hash[key]];
          hash[key].push(value);
        }
        else hash[key] =3D value;
      }
      return hash;
    });
  },

  toArray: function() {
    return this.split('');
  },

  succ: function() {
    return this.slice(0, this.length - 1) +
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
  },

  times: function(count) {
    return count < 1 ? '' : new Array(count + 1).join(this);
  },

  camelize: function() {
    var parts =3D this.split('-'), len =3D parts.length;
    if (len =3D=3D 1) return parts[0];

    var camelized =3D this.charAt(0) =3D=3D '-'
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
      : parts[0];

    for (var i =3D 1; i < len; i++)
      camelized +=3D parts[i].charAt(0).toUpperCase() + =
parts[i].substring(1);

    return camelized;
  },

  capitalize: function() {
    return this.charAt(0).toUpperCase() + =
this.substring(1).toLowerCase();
  },

  underscore: function() {
    return this.gsub(/::/, =
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{=
1}_#{2}').gsub(/-/,'_').toLowerCase();
  },

  dasherize: function() {
    return this.gsub(/_/,'-');
  },

  inspect: function(useDoubleQuotes) {
    var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) {
      var character =3D String.specialChar[match[0]];
      return character ? character : '\\u00' + =
match[0].charCodeAt().toPaddedString(2, 16);
    });
    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') =
+ '"';
    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
  },

  toJSON: function() {
    return this.inspect(true);
  },

  unfilterJSON: function(filter) {
    return this.sub(filter || Prototype.JSONFilter, '#{1}');
  },

  isJSON: function() {
    var str =3D this;
    if (str.blank()) return false;
    str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
  },

  evalJSON: function(sanitize) {
    var json =3D this.unfilterJSON();
    try {
      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
    } catch (e) { }
    throw new SyntaxError('Badly formed JSON string: ' + =
this.inspect());
  },

  include: function(pattern) {
    return this.indexOf(pattern) > -1;
  },

  startsWith: function(pattern) {
    return this.indexOf(pattern) =3D=3D=3D 0;
  },

  endsWith: function(pattern) {
    var d =3D this.length - pattern.length;
    return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d;
  },

  empty: function() {
    return this =3D=3D '';
  },

  blank: function() {
    return /^\s*$/.test(this);
  },

  interpolate: function(object, pattern) {
    return new Template(this, pattern).evaluate(object);
  }
});

if (Prototype.Browser.WebKit || Prototype.Browser.IE) =
Object.extend(String.prototype, {
  escapeHTML: function() {
    return =
this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
  },
  unescapeHTML: function() {
    return =
this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;=
/g,'>');
  }
});

String.prototype.gsub.prepareReplacement =3D function(replacement) {
  if (Object.isFunction(replacement)) return replacement;
  var template =3D new Template(replacement);
  return function(match) { return template.evaluate(match) };
};

String.prototype.parseQuery =3D String.prototype.toQueryParams;

Object.extend(String.prototype.escapeHTML, {
  div:  document.createElement('div'),
  text: document.createTextNode('')
});

String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.t=
ext);

var Template =3D Class.create({
  initialize: function(template, pattern) {
    this.template =3D template.toString();
    this.pattern =3D pattern || Template.Pattern;
  },

  evaluate: function(object) {
    if (Object.isFunction(object.toTemplateReplacements))
      object =3D object.toTemplateReplacements();

    return this.template.gsub(this.pattern, function(match) {
      if (object =3D=3D null) return '';

      var before =3D match[1] || '';
      if (before =3D=3D '\\') return match[2];

      var ctx =3D object, expr =3D match[3];
      var pattern =3D /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
      match =3D pattern.exec(expr);
      if (match =3D=3D null) return before;

      while (match !=3D null) {
        var comp =3D match[1].startsWith('[') ? match[2].gsub('\\\\]', =
']') : match[1];
        ctx =3D ctx[comp];
        if (null =3D=3D ctx || '' =3D=3D match[3]) break;
        expr =3D expr.substring('[' =3D=3D match[3] ? match[1].length : =
match[0].length);
        match =3D pattern.exec(expr);
      }

      return before + String.interpret(ctx);
    });
  }
});
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;

var $break =3D { };

var Enumerable =3D {
  each: function(iterator, context) {
    var index =3D 0;
    try {
      this._each(function(value) {
        iterator.call(context, value, index++);
      });
    } catch (e) {
      if (e !=3D $break) throw e;
    }
    return this;
  },

  eachSlice: function(number, iterator, context) {
    var index =3D -number, slices =3D [], array =3D this.toArray();
    if (number < 1) return array;
    while ((index +=3D number) < array.length)
      slices.push(array.slice(index, index+number));
    return slices.collect(iterator, context);
  },

  all: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var result =3D true;
    this.each(function(value, index) {
      result =3D result && !!iterator.call(context, value, index);
      if (!result) throw $break;
    });
    return result;
  },

  any: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var result =3D false;
    this.each(function(value, index) {
      if (result =3D !!iterator.call(context, value, index))
        throw $break;
    });
    return result;
  },

  collect: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var results =3D [];
    this.each(function(value, index) {
      results.push(iterator.call(context, value, index));
    });
    return results;
  },

  detect: function(iterator, context) {
    var result;
    this.each(function(value, index) {
      if (iterator.call(context, value, index)) {
        result =3D value;
        throw $break;
      }
    });
    return result;
  },

  findAll: function(iterator, context) {
    var results =3D [];
    this.each(function(value, index) {
      if (iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  grep: function(filter, iterator, context) {
    iterator =3D iterator || Prototype.K;
    var results =3D [];

    if (Object.isString(filter))
      filter =3D new RegExp(filter);

    this.each(function(value, index) {
      if (filter.match(value))
        results.push(iterator.call(context, value, index));
    });
    return results;
  },

  include: function(object) {
    if (Object.isFunction(this.indexOf))
      if (this.indexOf(object) !=3D -1) return true;

    var found =3D false;
    this.each(function(value) {
      if (value =3D=3D object) {
        found =3D true;
        throw $break;
      }
    });
    return found;
  },

  inGroupsOf: function(number, fillWith) {
    fillWith =3D Object.isUndefined(fillWith) ? null : fillWith;
    return this.eachSlice(number, function(slice) {
      while(slice.length < number) slice.push(fillWith);
      return slice;
    });
  },

  inject: function(memo, iterator, context) {
    this.each(function(value, index) {
      memo =3D iterator.call(context, memo, value, index);
    });
    return memo;
  },

  invoke: function(method) {
    var args =3D $A(arguments).slice(1);
    return this.map(function(value) {
      return value[method].apply(value, args);
    });
  },

  max: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value =3D iterator.call(context, value, index);
      if (result =3D=3D null || value >=3D result)
        result =3D value;
    });
    return result;
  },

  min: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value =3D iterator.call(context, value, index);
      if (result =3D=3D null || value < result)
        result =3D value;
    });
    return result;
  },

  partition: function(iterator, context) {
    iterator =3D iterator || Prototype.K;
    var trues =3D [], falses =3D [];
    this.each(function(value, index) {
      (iterator.call(context, value, index) ?
        trues : falses).push(value);
    });
    return [trues, falses];
  },

  pluck: function(property) {
    var results =3D [];
    this.each(function(value) {
      results.push(value[property]);
    });
    return results;
  },

  reject: function(iterator, context) {
    var results =3D [];
    this.each(function(value, index) {
      if (!iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  sortBy: function(iterator, context) {
    return this.map(function(value, index) {
      return {
        value: value,
        criteria: iterator.call(context, value, index)
      };
    }).sort(function(left, right) {
      var a =3D left.criteria, b =3D right.criteria;
      return a < b ? -1 : a > b ? 1 : 0;
    }).pluck('value');
  },

  toArray: function() {
    return this.map();
  },

  zip: function() {
    var iterator =3D Prototype.K, args =3D $A(arguments);
    if (Object.isFunction(args.last()))
      iterator =3D args.pop();

    var collections =3D [this].concat(args).map($A);
    return this.map(function(value, index) {
      return iterator(collections.pluck(index));
    });
  },

  size: function() {
    return this.toArray().length;
  },

  inspect: function() {
    return '#<Enumerable:' + this.toArray().inspect() + '>';
  }
};

Object.extend(Enumerable, {
  map:     Enumerable.collect,
  find:    Enumerable.detect,
  select:  Enumerable.findAll,
  filter:  Enumerable.findAll,
  member:  Enumerable.include,
  entries: Enumerable.toArray,
  every:   Enumerable.all,
  some:    Enumerable.any
});
function $A(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) return iterable.toArray();
  var length =3D iterable.length || 0, results =3D new Array(length);
  while (length--) results[length] =3D iterable[length];
  return results;
}

if (Prototype.Browser.WebKit) {
  $A =3D function(iterable) {
    if (!iterable) return [];
    // In Safari, only use the `toArray` method if it's not a NodeList.
    // A NodeList is a function, has an function `item` property, and a =
numeric
    // `length` property. Adapted from Google Doctype.
    if (!(typeof iterable =3D=3D=3D 'function' && typeof iterable.length =
=3D=3D=3D
        'number' && typeof iterable.item =3D=3D=3D 'function') && =
iterable.toArray)
      return iterable.toArray();
    var length =3D iterable.length || 0, results =3D new Array(length);
    while (length--) results[length] =3D iterable[length];
    return results;
  };
}

Array.from =3D $A;

Object.extend(Array.prototype, Enumerable);

if (!Array.prototype._reverse) Array.prototype._reverse =3D =
Array.prototype.reverse;

Object.extend(Array.prototype, {
  _each: function(iterator) {
    for (var i =3D 0, length =3D this.length; i < length; i++)
      iterator(this[i]);
  },

  clear: function() {
    this.length =3D 0;
    return this;
  },

  first: function() {
    return this[0];
  },

  last: function() {
    return this[this.length - 1];
  },

  compact: function() {
    return this.select(function(value) {
      return value !=3D null;
    });
  },

  flatten: function() {
    return this.inject([], function(array, value) {
      return array.concat(Object.isArray(value) ?
        value.flatten() : [value]);
    });
  },

  without: function() {
    var values =3D $A(arguments);
    return this.select(function(value) {
      return !values.include(value);
    });
  },

  reverse: function(inline) {
    return (inline !=3D=3D false ? this : this.toArray())._reverse();
  },

  reduce: function() {
    return this.length > 1 ? this : this[0];
  },

  uniq: function(sorted) {
    return this.inject([], function(array, value, index) {
      if (0 =3D=3D index || (sorted ? array.last() !=3D value : =
!array.include(value)))
        array.push(value);
      return array;
    });
  },

  intersect: function(array) {
    return this.uniq().findAll(function(item) {
      return array.detect(function(value) { return item =3D=3D=3D value =
});
    });
  },

  clone: function() {
    return [].concat(this);
  },

  size: function() {
    return this.length;
  },

  inspect: function() {
    return '[' + this.map(Object.inspect).join(', ') + ']';
  },

  toJSON: function() {
    var results =3D [];
    this.each(function(object) {
      var value =3D Object.toJSON(object);
      if (!Object.isUndefined(value)) results.push(value);
    });
    return '[' + results.join(', ') + ']';
  }
});

// use native browser JS 1.6 implementation if available
if (Object.isFunction(Array.prototype.forEach))
  Array.prototype._each =3D Array.prototype.forEach;

if (!Array.prototype.indexOf) Array.prototype.indexOf =3D function(item, =
i) {
  i || (i =3D 0);
  var length =3D this.length;
  if (i < 0) i =3D length + i;
  for (; i < length; i++)
    if (this[i] =3D=3D=3D item) return i;
  return -1;
};

if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf =3D =
function(item, i) {
  i =3D isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
  var n =3D this.slice(0, i).reverse().indexOf(item);
  return (n < 0) ? n : i - n - 1;
};

Array.prototype.toArray =3D Array.prototype.clone;

function $w(string) {
  if (!Object.isString(string)) return [];
  string =3D string.strip();
  return string ? string.split(/\s+/) : [];
}

if (Prototype.Browser.Opera){
  Array.prototype.concat =3D function() {
    var array =3D [];
    for (var i =3D 0, length =3D this.length; i < length; i++) =
array.push(this[i]);
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {
      if (Object.isArray(arguments[i])) {
        for (var j =3D 0, arrayLength =3D arguments[i].length; j < =
arrayLength; j++)
          array.push(arguments[i][j]);
      } else {
        array.push(arguments[i]);
      }
    }
    return array;
  };
}
Object.extend(Number.prototype, {
  toColorPart: function() {
    return this.toPaddedString(2, 16);
  },

  succ: function() {
    return this + 1;
  },

  times: function(iterator, context) {
    $R(0, this, true).each(iterator, context);
    return this;
  },

  toPaddedString: function(length, radix) {
    var string =3D this.toString(radix || 10);
    return '0'.times(length - string.length) + string;
  },

  toJSON: function() {
    return isFinite(this) ? this.toString() : 'null';
  }
});

$w('abs round ceil floor').each(function(method){
  Number.prototype[method] =3D Math[method].methodize();
});
function $H(object) {
  return new Hash(object);
};

var Hash =3D Class.create(Enumerable, (function() {

  function toQueryPair(key, value) {
    if (Object.isUndefined(value)) return key;
    return key + '=3D' + encodeURIComponent(String.interpret(value));
  }

  return {
    initialize: function(object) {
      this._object =3D Object.isHash(object) ? object.toObject() : =
Object.clone(object);
    },

    _each: function(iterator) {
      for (var key in this._object) {
        var value =3D this._object[key], pair =3D [key, value];
        pair.key =3D key;
        pair.value =3D value;
        iterator(pair);
      }
    },

    set: function(key, value) {
      return this._object[key] =3D value;
    },

    get: function(key) {
      // simulating poorly supported hasOwnProperty
      if (this._object[key] !=3D=3D Object.prototype[key])
        return this._object[key];
    },

    unset: function(key) {
      var value =3D this._object[key];
      delete this._object[key];
      return value;
    },

    toObject: function() {
      return Object.clone(this._object);
    },

    keys: function() {
      return this.pluck('key');
    },

    values: function() {
      return this.pluck('value');
    },

    index: function(value) {
      var match =3D this.detect(function(pair) {
        return pair.value =3D=3D=3D value;
      });
      return match && match.key;
    },

    merge: function(object) {
      return this.clone().update(object);
    },

    update: function(object) {
      return new Hash(object).inject(this, function(result, pair) {
        result.set(pair.key, pair.value);
        return result;
      });
    },

    toQueryString: function() {
      return this.inject([], function(results, pair) {
        var key =3D encodeURIComponent(pair.key), values =3D pair.value;

        if (values && typeof values =3D=3D 'object') {
          if (Object.isArray(values))
            return results.concat(values.map(toQueryPair.curry(key)));
        } else results.push(toQueryPair(key, values));
        return results;
      }).join('&');
    },

    inspect: function() {
      return '#<Hash:{' + this.map(function(pair) {
        return pair.map(Object.inspect).join(': ');
      }).join(', ') + '}>';
    },

    toJSON: function() {
      return Object.toJSON(this.toObject());
    },

    clone: function() {
      return new Hash(this);
    }
  }
})());

Hash.prototype.toTemplateReplacements =3D Hash.prototype.toObject;
Hash.from =3D $H;
var ObjectRange =3D Class.create(Enumerable, {
  initialize: function(start, end, exclusive) {
    this.start =3D start;
    this.end =3D end;
    this.exclusive =3D exclusive;
  },

  _each: function(iterator) {
    var value =3D this.start;
    while (this.include(value)) {
      iterator(value);
      value =3D value.succ();
    }
  },

  include: function(value) {
    if (value < this.start)
      return false;
    if (this.exclusive)
      return value < this.end;
    return value <=3D this.end;
  }
});

var $R =3D function(start, end, exclusive) {
  return new ObjectRange(start, end, exclusive);
};

var Ajax =3D {
  getTransport: function() {
    return Try.these(
      function() {return new XMLHttpRequest()},
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
    ) || false;
  },

  activeRequestCount: 0
};

Ajax.Responders =3D {
  responders: [],

  _each: function(iterator) {
    this.responders._each(iterator);
  },

  register: function(responder) {
    if (!this.include(responder))
      this.responders.push(responder);
  },

  unregister: function(responder) {
    this.responders =3D this.responders.without(responder);
  },

  dispatch: function(callback, request, transport, json) {
    this.each(function(responder) {
      if (Object.isFunction(responder[callback])) {
        try {
          responder[callback].apply(responder, [request, transport, =
json]);
        } catch (e) { }
      }
    });
  }
};

Object.extend(Ajax.Responders, Enumerable);

Ajax.Responders.register({
  onCreate:   function() { Ajax.activeRequestCount++ },
  onComplete: function() { Ajax.activeRequestCount-- }
});

Ajax.Base =3D Class.create({
  initialize: function(options) {
    this.options =3D {
      method:       'post',
      asynchronous: true,
      contentType:  'application/x-www-form-urlencoded',
      encoding:     'UTF-8',
      parameters:   '',
      evalJSON:     true,
      evalJS:       true
    };
    Object.extend(this.options, options || { });

    this.options.method =3D this.options.method.toLowerCase();

    if (Object.isString(this.options.parameters))
      this.options.parameters =3D =
this.options.parameters.toQueryParams();
    else if (Object.isHash(this.options.parameters))
      this.options.parameters =3D this.options.parameters.toObject();
  }
});

Ajax.Request =3D Class.create(Ajax.Base, {
  _complete: false,

  initialize: function($super, url, options) {
    $super(options);
    this.transport =3D Ajax.getTransport();
    this.request(url);
  },

  request: function(url) {
    this.url =3D url;
    this.method =3D this.options.method;
    var params =3D Object.clone(this.options.parameters);

    if (!['get', 'post'].include(this.method)) {
      // simulate other verbs over post
      params['_method'] =3D this.method;
      this.method =3D 'post';
    }

    this.parameters =3D params;

    if (params =3D Object.toQueryString(params)) {
      // when GET, append parameters to URL
      if (this.method =3D=3D 'get')
        this.url +=3D (this.url.include('?') ? '&' : '?') + params;
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
        params +=3D '&_=3D';
    }

    try {
      var response =3D new Ajax.Response(this);
      if (this.options.onCreate) this.options.onCreate(response);
      Ajax.Responders.dispatch('onCreate', this, response);

      this.transport.open(this.method.toUpperCase(), this.url,
        this.options.asynchronous);

      if (this.options.asynchronous) =
this.respondToReadyState.bind(this).defer(1);

      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);
      this.setRequestHeaders();

      this.body =3D this.method =3D=3D 'post' ? (this.options.postBody =
|| params) : null;
      this.transport.send(this.body);

      /* Force Firefox to handle ready state 4 for synchronous requests =
*/
      if (!this.options.asynchronous && this.transport.overrideMimeType)
        this.onStateChange();

    }
    catch (e) {
      this.dispatchException(e);
    }
  },

  onStateChange: function() {
    var readyState =3D this.transport.readyState;
    if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))
      this.respondToReadyState(this.transport.readyState);
  },

  setRequestHeaders: function() {
    var headers =3D {
      'X-Requested-With': 'XMLHttpRequest',
      'X-Prototype-Version': Prototype.Version,
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'
    };

    if (this.method =3D=3D 'post') {
      headers['Content-type'] =3D this.options.contentType +
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');

      /* Force "Connection: close" for older Mozilla browsers to work
       * around a bug where XMLHttpRequest sends an incorrect
       * Content-length header. See Mozilla Bugzilla #246651.
       */
      if (this.transport.overrideMimeType &&
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)
            headers['Connection'] =3D 'close';
    }

    // user-defined headers
    if (typeof this.options.requestHeaders =3D=3D 'object') {
      var extras =3D this.options.requestHeaders;

      if (Object.isFunction(extras.push))
        for (var i =3D 0, length =3D extras.length; i < length; i +=3D =
2)
          headers[extras[i]] =3D extras[i+1];
      else
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });
    }

    for (var name in headers)
      this.transport.setRequestHeader(name, headers[name]);
  },

  success: function() {
    var status =3D this.getStatus();
    return !status || (status >=3D 200 && status < 300);
  },

  getStatus: function() {
    try {
      return this.transport.status || 0;
    } catch (e) { return 0 }
  },

  respondToReadyState: function(readyState) {
    var state =3D Ajax.Request.Events[readyState], response =3D new =
Ajax.Response(this);

    if (state =3D=3D 'Complete') {
      try {
        this._complete =3D true;
        (this.options['on' + response.status]
         || this.options['on' + (this.success() ? 'Success' : =
'Failure')]
         || Prototype.emptyFunction)(response, response.headerJSON);
      } catch (e) {
        this.dispatchException(e);
      }

      var contentType =3D response.getHeader('Content-type');
      if (this.options.evalJS =3D=3D 'force'
          || (this.options.evalJS && this.isSameOrigin() && contentType
          && =
contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s=
*$/i)))
        this.evalResponse();
    }

    try {
      (this.options['on' + state] || Prototype.emptyFunction)(response, =
response.headerJSON);
      Ajax.Responders.dispatch('on' + state, this, response, =
response.headerJSON);
    } catch (e) {
      this.dispatchException(e);
    }

    if (state =3D=3D 'Complete') {
      // avoid memory leak in MSIE: clean up
      this.transport.onreadystatechange =3D Prototype.emptyFunction;
    }
  },

  isSameOrigin: function() {
    var m =3D this.url.match(/^\s*https?:\/\/[^\/]*/);
    return !m || (m[0] =3D=3D =
'#{protocol}//#{domain}#{port}'.interpolate({
      protocol: location.protocol,
      domain: document.domain,
      port: location.port ? ':' + location.port : ''
    }));
  },

  getHeader: function(name) {
    try {
      return this.transport.getResponseHeader(name) || null;
    } catch (e) { return null }
  },

  evalResponse: function() {
    try {
      return eval((this.transport.responseText || '').unfilterJSON());
    } catch (e) {
      this.dispatchException(e);
    }
  },

  dispatchException: function(exception) {
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);
    Ajax.Responders.dispatch('onException', this, exception);
  }
});

Ajax.Request.Events =3D
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

Ajax.Response =3D Class.create({
  initialize: function(request){
    this.request =3D request;
    var transport  =3D this.transport  =3D request.transport,
        readyState =3D this.readyState =3D transport.readyState;

    if((readyState > 2 && !Prototype.Browser.IE) || readyState =3D=3D 4) =
{
      this.status       =3D this.getStatus();
      this.statusText   =3D this.getStatusText();
      this.responseText =3D String.interpret(transport.responseText);
      this.headerJSON   =3D this._getHeaderJSON();
    }

    if(readyState =3D=3D 4) {
      var xml =3D transport.responseXML;
      this.responseXML  =3D Object.isUndefined(xml) ? null : xml;
      this.responseJSON =3D this._getResponseJSON();
    }
  },

  status:      0,
  statusText: '',

  getStatus: Ajax.Request.prototype.getStatus,

  getStatusText: function() {
    try {
      return this.transport.statusText || '';
    } catch (e) { return '' }
  },

  getHeader: Ajax.Request.prototype.getHeader,

  getAllHeaders: function() {
    try {
      return this.getAllResponseHeaders();
    } catch (e) { return null }
  },

  getResponseHeader: function(name) {
    return this.transport.getResponseHeader(name);
  },

  getAllResponseHeaders: function() {
    return this.transport.getAllResponseHeaders();
  },

  _getHeaderJSON: function() {
    var json =3D this.getHeader('X-JSON');
    if (!json) return null;
    json =3D decodeURIComponent(escape(json));
    try {
      return json.evalJSON(this.request.options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  },

  _getResponseJSON: function() {
    var options =3D this.request.options;
    if (!options.evalJSON || (options.evalJSON !=3D 'force' &&
      !(this.getHeader('Content-type') || =
'').include('application/json')) ||
        this.responseText.blank())
          return null;
    try {
      return this.responseText.evalJSON(options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  }
});

Ajax.Updater =3D Class.create(Ajax.Request, {
  initialize: function($super, container, url, options) {
    this.container =3D {
      success: (container.success || container),
      failure: (container.failure || (container.success ? null : =
container))
    };

    options =3D Object.clone(options);
    var onComplete =3D options.onComplete;
    options.onComplete =3D (function(response, json) {
      this.updateContent(response.responseText);
      if (Object.isFunction(onComplete)) onComplete(response, json);
    }).bind(this);

    $super(url, options);
  },

  updateContent: function(responseText) {
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'],
        options =3D this.options;

    if (!options.evalScripts) responseText =3D =
responseText.stripScripts();

    if (receiver =3D $(receiver)) {
      if (options.insertion) {
        if (Object.isString(options.insertion)) {
          var insertion =3D { }; insertion[options.insertion] =3D =
responseText;
          receiver.insert(insertion);
        }
        else options.insertion(receiver, responseText);
      }
      else receiver.update(responseText);
    }
  }
});

Ajax.PeriodicalUpdater =3D Class.create(Ajax.Base, {
  initialize: function($super, container, url, options) {
    $super(options);
    this.onComplete =3D this.options.onComplete;

    this.frequency =3D (this.options.frequency || 2);
    this.decay =3D (this.options.decay || 1);

    this.updater =3D { };
    this.container =3D container;
    this.url =3D url;

    this.start();
  },

  start: function() {
    this.options.onComplete =3D this.updateComplete.bind(this);
    this.onTimerEvent();
  },

  stop: function() {
    this.updater.options.onComplete =3D undefined;
    clearTimeout(this.timer);
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
  },

  updateComplete: function(response) {
    if (this.options.decay) {
      this.decay =3D (response.responseText =3D=3D this.lastText ?
        this.decay * this.options.decay : 1);

      this.lastText =3D response.responseText;
    }
    this.timer =3D this.onTimerEvent.bind(this).delay(this.decay * =
this.frequency);
  },

  onTimerEvent: function() {
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);
  }
});
function $(element) {
  if (arguments.length > 1) {
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)
      elements.push($(arguments[i]));
    return elements;
  }
  if (Object.isString(element))
    element =3D document.getElementById(element);
  return Element.extend(element);
}

if (Prototype.BrowserFeatures.XPath) {
  document._getElementsByXPath =3D function(expression, parentElement) {
    var results =3D [];
    var query =3D document.evaluate(expression, $(parentElement) || =
document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)
      results.push(Element.extend(query.snapshotItem(i)));
    return results;
  };
}

/*-----------------------------------------------------------------------=
---*/

if (!window.Node) var Node =3D { };

if (!Node.ELEMENT_NODE) {
  // DOM level 2 ECMAScript Language Binding
  Object.extend(Node, {
    ELEMENT_NODE: 1,
    ATTRIBUTE_NODE: 2,
    TEXT_NODE: 3,
    CDATA_SECTION_NODE: 4,
    ENTITY_REFERENCE_NODE: 5,
    ENTITY_NODE: 6,
    PROCESSING_INSTRUCTION_NODE: 7,
    COMMENT_NODE: 8,
    DOCUMENT_NODE: 9,
    DOCUMENT_TYPE_NODE: 10,
    DOCUMENT_FRAGMENT_NODE: 11,
    NOTATION_NODE: 12
  });
}

(function() {
  var element =3D this.Element;
  this.Element =3D function(tagName, attributes) {
    attributes =3D attributes || { };
    tagName =3D tagName.toLowerCase();
    var cache =3D Element.cache;
    if (Prototype.Browser.IE && attributes.name) {
      tagName =3D '<' + tagName + ' name=3D"' + attributes.name + '">';
      delete attributes.name;
      return Element.writeAttribute(document.createElement(tagName), =
attributes);
    }
    if (!cache[tagName]) cache[tagName] =3D =
Element.extend(document.createElement(tagName));
    return Element.writeAttribute(cache[tagName].cloneNode(false), =
attributes);
  };
  Object.extend(this.Element, element || { });
  if (element) this.Element.prototype =3D element.prototype;
}).call(window);

Element.cache =3D { };

Element.Methods =3D {
  visible: function(element) {
    return $(element).style.display !=3D 'none';
  },

  toggle: function(element) {
    element =3D $(element);
    Element[Element.visible(element) ? 'hide' : 'show'](element);
    return element;
  },

  hide: function(element) {
    element =3D $(element);
    element.style.display =3D 'none';
    return element;
  },

  show: function(element) {
    element =3D $(element);
    element.style.display =3D '';
    return element;
  },

  remove: function(element) {
    element =3D $(element);
    element.parentNode.removeChild(element);
    return element;
  },

  update: function(element, content) {
    element =3D $(element);
    if (content && content.toElement) content =3D content.toElement();
    if (Object.isElement(content)) return =
element.update().insert(content);
    content =3D Object.toHTML(content);
    element.innerHTML =3D content.stripScripts();
    content.evalScripts.bind(content).defer();
    return element;
  },

  replace: function(element, content) {
    element =3D $(element);
    if (content && content.toElement) content =3D content.toElement();
    else if (!Object.isElement(content)) {
      content =3D Object.toHTML(content);
      var range =3D element.ownerDocument.createRange();
      range.selectNode(element);
      content.evalScripts.bind(content).defer();
      content =3D =
range.createContextualFragment(content.stripScripts());
    }
    element.parentNode.replaceChild(content, element);
    return element;
  },

  insert: function(element, insertions) {
    element =3D $(element);

    if (Object.isString(insertions) || Object.isNumber(insertions) ||
        Object.isElement(insertions) || (insertions && =
(insertions.toElement || insertions.toHTML)))
          insertions =3D {bottom:insertions};

    var content, insert, tagName, childNodes;

    for (var position in insertions) {
      content  =3D insertions[position];
      position =3D position.toLowerCase();
      insert =3D Element._insertionTranslations[position];

      if (content && content.toElement) content =3D content.toElement();
      if (Object.isElement(content)) {
        insert(element, content);
        continue;
      }

      content =3D Object.toHTML(content);

      tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')
        ? element.parentNode : element).tagName.toUpperCase();

      childNodes =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());

      if (position =3D=3D 'top' || position =3D=3D 'after') =
childNodes.reverse();
      childNodes.each(insert.curry(element));

      content.evalScripts.bind(content).defer();
    }

    return element;
  },

  wrap: function(element, wrapper, attributes) {
    element =3D $(element);
    if (Object.isElement(wrapper))
      $(wrapper).writeAttribute(attributes || { });
    else if (Object.isString(wrapper)) wrapper =3D new Element(wrapper, =
attributes);
    else wrapper =3D new Element('div', wrapper);
    if (element.parentNode)
      element.parentNode.replaceChild(wrapper, element);
    wrapper.appendChild(element);
    return wrapper;
  },

  inspect: function(element) {
    element =3D $(element);
    var result =3D '<' + element.tagName.toLowerCase();
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
      var property =3D pair.first(), attribute =3D pair.last();
      var value =3D (element[property] || '').toString();
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);
    });
    return result + '>';
  },

  recursivelyCollect: function(element, property) {
    element =3D $(element);
    var elements =3D [];
    while (element =3D element[property])
      if (element.nodeType =3D=3D 1)
        elements.push(Element.extend(element));
    return elements;
  },

  ancestors: function(element) {
    return $(element).recursivelyCollect('parentNode');
  },

  descendants: function(element) {
    return $(element).select("*");
  },

  firstDescendant: function(element) {
    element =3D $(element).firstChild;
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;
    return $(element);
  },

  immediateDescendants: function(element) {
    if (!(element =3D $(element).firstChild)) return [];
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;
    if (element) return [element].concat($(element).nextSiblings());
    return [];
  },

  previousSiblings: function(element) {
    return $(element).recursivelyCollect('previousSibling');
  },

  nextSiblings: function(element) {
    return $(element).recursivelyCollect('nextSibling');
  },

  siblings: function(element) {
    element =3D $(element);
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());
  },

  match: function(element, selector) {
    if (Object.isString(selector))
      selector =3D new Selector(selector);
    return selector.match($(element));
  },

  up: function(element, expression, index) {
    element =3D $(element);
    if (arguments.length =3D=3D 1) return $(element.parentNode);
    var ancestors =3D element.ancestors();
    return Object.isNumber(expression) ? ancestors[expression] :
      Selector.findElement(ancestors, expression, index);
  },

  down: function(element, expression, index) {
    element =3D $(element);
    if (arguments.length =3D=3D 1) return element.firstDescendant();
    return Object.isNumber(expression) ? =
element.descendants()[expression] :
      Element.select(element, expression)[index || 0];
  },

  previous: function(element, expression, index) {
    element =3D $(element);
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.previousElementSibling(element));
    var previousSiblings =3D element.previousSiblings();
    return Object.isNumber(expression) ? previousSiblings[expression] :
      Selector.findElement(previousSiblings, expression, index);
  },

  next: function(element, expression, index) {
    element =3D $(element);
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.nextElementSibling(element));
    var nextSiblings =3D element.nextSiblings();
    return Object.isNumber(expression) ? nextSiblings[expression] :
      Selector.findElement(nextSiblings, expression, index);
  },

  select: function() {
    var args =3D $A(arguments), element =3D $(args.shift());
    return Selector.findChildElements(element, args);
  },

  adjacent: function() {
    var args =3D $A(arguments), element =3D $(args.shift());
    return Selector.findChildElements(element.parentNode, =
args).without(element);
  },

  identify: function(element) {
    element =3D $(element);
    var id =3D element.readAttribute('id'), self =3D arguments.callee;
    if (id) return id;
    do { id =3D 'anonymous_element_' + self.counter++ } while ($(id));
    element.writeAttribute('id', id);
    return id;
  },

  readAttribute: function(element, name) {
    element =3D $(element);
    if (Prototype.Browser.IE) {
      var t =3D Element._attributeTranslations.read;
      if (t.values[name]) return t.values[name](element, name);
      if (t.names[name]) name =3D t.names[name];
      if (name.include(':')) {
        return (!element.attributes || !element.attributes[name]) ? null =
:
         element.attributes[name].value;
      }
    }
    return element.getAttribute(name);
  },

  writeAttribute: function(element, name, value) {
    element =3D $(element);
    var attributes =3D { }, t =3D Element._attributeTranslations.write;

    if (typeof name =3D=3D 'object') attributes =3D name;
    else attributes[name] =3D Object.isUndefined(value) ? true : value;

    for (var attr in attributes) {
      name =3D t.names[attr] || attr;
      value =3D attributes[attr];
      if (t.values[attr]) name =3D t.values[attr](element, value);
      if (value =3D=3D=3D false || value =3D=3D=3D null)
        element.removeAttribute(name);
      else if (value =3D=3D=3D true)
        element.setAttribute(name, name);
      else element.setAttribute(name, value);
    }
    return element;
  },

  getHeight: function(element) {
    return $(element).getDimensions().height;
  },

  getWidth: function(element) {
    return $(element).getDimensions().width;
  },

  classNames: function(element) {
    return new Element.ClassNames(element);
  },

  hasClassName: function(element, className) {
    if (!(element =3D $(element))) return;
    var elementClassName =3D element.className;
    return (elementClassName.length > 0 && (elementClassName =3D=3D =
className ||
      new RegExp("(^|\\s)" + className + =
"(\\s|$)").test(elementClassName)));
  },

  addClassName: function(element, className) {
    if (!(element =3D $(element))) return;
    if (!element.hasClassName(className))
      element.className +=3D (element.className ? ' ' : '') + className;
    return element;
  },

  removeClassName: function(element, className) {
    if (!(element =3D $(element))) return;
    element.className =3D element.className.replace(
      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
    return element;
  },

  toggleClassName: function(element, className) {
    if (!(element =3D $(element))) return;
    return element[element.hasClassName(className) ?
      'removeClassName' : 'addClassName'](className);
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element =3D $(element);
    var node =3D element.firstChild;
    while (node) {
      var nextNode =3D node.nextSibling;
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))
        element.removeChild(node);
      node =3D nextNode;
    }
    return element;
  },

  empty: function(element) {
    return $(element).innerHTML.blank();
  },

  descendantOf: function(element, ancestor) {
    element =3D $(element), ancestor =3D $(ancestor);

    if (element.compareDocumentPosition)
      return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D =
8;

    if (ancestor.contains)
      return ancestor.contains(element) && ancestor !=3D=3D element;

    while (element =3D element.parentNode)
      if (element =3D=3D ancestor) return true;

    return false;
  },

  scrollTo: function(element) {
    element =3D $(element);
    var pos =3D element.cumulativeOffset();
    window.scrollTo(pos[0], pos[1]);
    return element;
  },

  getStyle: function(element, style) {
    element =3D $(element);
    style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize();
    var value =3D element.style[style];
    if (!value || value =3D=3D 'auto') {
      var css =3D document.defaultView.getComputedStyle(element, null);
      value =3D css ? css[style] : null;
    }
    if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0;
    return value =3D=3D 'auto' ? null : value;
  },

  getOpacity: function(element) {
    return $(element).getStyle('opacity');
  },

  setStyle: function(element, styles) {
    element =3D $(element);
    var elementStyle =3D element.style, match;
    if (Object.isString(styles)) {
      element.style.cssText +=3D ';' + styles;
      return styles.include('opacity') ?
        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : =
element;
    }
    for (var property in styles)
      if (property =3D=3D 'opacity') =
element.setOpacity(styles[property]);
      else
        elementStyle[(property =3D=3D 'float' || property =3D=3D =
'cssFloat') ?
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : =
'styleFloat') :
            property] =3D styles[property];

    return element;
  },

  setOpacity: function(element, value) {
    element =3D $(element);
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :
      (value < 0.00001) ? 0 : value;
    return element;
  },

  getDimensions: function(element) {
    element =3D $(element);
    var display =3D element.getStyle('display');
    if (display !=3D 'none' && display !=3D null) // Safari bug
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display =
none,
    // so enable the element temporarily
    var els =3D element.style;
    var originalVisibility =3D els.visibility;
    var originalPosition =3D els.position;
    var originalDisplay =3D els.display;
    els.visibility =3D 'hidden';
    els.position =3D 'absolute';
    els.display =3D 'block';
    var originalWidth =3D element.clientWidth;
    var originalHeight =3D element.clientHeight;
    els.display =3D originalDisplay;
    els.position =3D originalPosition;
    els.visibility =3D originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  makePositioned: function(element) {
    element =3D $(element);
    var pos =3D Element.getStyle(element, 'position');
    if (pos =3D=3D 'static' || !pos) {
      element._madePositioned =3D true;
      element.style.position =3D 'relative';
      // Opera returns the offset relative to the positioning context, =
when an
      // element is position relative but top and left have not been =
defined
      if (Prototype.Browser.Opera) {
        element.style.top =3D 0;
        element.style.left =3D 0;
      }
    }
    return element;
  },

  undoPositioned: function(element) {
    element =3D $(element);
    if (element._madePositioned) {
      element._madePositioned =3D undefined;
      element.style.position =3D
        element.style.top =3D
        element.style.left =3D
        element.style.bottom =3D
        element.style.right =3D '';
    }
    return element;
  },

  makeClipping: function(element) {
    element =3D $(element);
    if (element._overflow) return element;
    element._overflow =3D Element.getStyle(element, 'overflow') || =
'auto';
    if (element._overflow !=3D=3D 'hidden')
      element.style.overflow =3D 'hidden';
    return element;
  },

  undoClipping: function(element) {
    element =3D $(element);
    if (!element._overflow) return element;
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;
    element._overflow =3D null;
    return element;
  },

  cumulativeOffset: function(element) {
    var valueT =3D 0, valueL =3D 0;
    do {
      valueT +=3D element.offsetTop  || 0;
      valueL +=3D element.offsetLeft || 0;
      element =3D element.offsetParent;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  positionedOffset: function(element) {
    var valueT =3D 0, valueL =3D 0;
    do {
      valueT +=3D element.offsetTop  || 0;
      valueL +=3D element.offsetLeft || 0;
      element =3D element.offsetParent;
      if (element) {
        if (element.tagName.toUpperCase() =3D=3D 'BODY') break;
        var p =3D Element.getStyle(element, 'position');
        if (p !=3D=3D 'static') break;
      }
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  absolutize: function(element) {
    element =3D $(element);
    if (element.getStyle('position') =3D=3D 'absolute') return element;
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.

    var offsets =3D element.positionedOffset();
    var top     =3D offsets[1];
    var left    =3D offsets[0];
    var width   =3D element.clientWidth;
    var height  =3D element.clientHeight;

    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);
    element._originalWidth  =3D element.style.width;
    element._originalHeight =3D element.style.height;

    element.style.position =3D 'absolute';
    element.style.top    =3D top + 'px';
    element.style.left   =3D left + 'px';
    element.style.width  =3D width + 'px';
    element.style.height =3D height + 'px';
    return element;
  },

  relativize: function(element) {
    element =3D $(element);
    if (element.getStyle('position') =3D=3D 'relative') return element;
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.

    element.style.position =3D 'relative';
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);

    element.style.top    =3D top + 'px';
    element.style.left   =3D left + 'px';
    element.style.height =3D element._originalHeight;
    element.style.width  =3D element._originalWidth;
    return element;
  },

  cumulativeScrollOffset: function(element) {
    var valueT =3D 0, valueL =3D 0;
    do {
      valueT +=3D element.scrollTop  || 0;
      valueL +=3D element.scrollLeft || 0;
      element =3D element.parentNode;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  getOffsetParent: function(element) {
    if (element.offsetParent) return $(element.offsetParent);
    if (element =3D=3D document.body) return $(element);

    while ((element =3D element.parentNode) && element !=3D =
document.body)
      if (Element.getStyle(element, 'position') !=3D 'static')
        return $(element);

    return $(document.body);
  },

  viewportOffset: function(forElement) {
    var valueT =3D 0, valueL =3D 0;

    var element =3D forElement;
    do {
      valueT +=3D element.offsetTop  || 0;
      valueL +=3D element.offsetLeft || 0;

      // Safari fix
      if (element.offsetParent =3D=3D document.body &&
        Element.getStyle(element, 'position') =3D=3D 'absolute') break;

    } while (element =3D element.offsetParent);

    element =3D forElement;
    do {
      if (!Prototype.Browser.Opera || (element.tagName && =
(element.tagName.toUpperCase() =3D=3D 'BODY'))) {
        valueT -=3D element.scrollTop  || 0;
        valueL -=3D element.scrollLeft || 0;
      }
    } while (element =3D element.parentNode);

    return Element._returnOffset(valueL, valueT);
  },

  clonePosition: function(element, source) {
    var options =3D Object.extend({
      setLeft:    true,
      setTop:     true,
      setWidth:   true,
      setHeight:  true,
      offsetTop:  0,
      offsetLeft: 0
    }, arguments[2] || { });

    // find page position of source
    source =3D $(source);
    var p =3D source.viewportOffset();

    // find coordinate system to use
    element =3D $(element);
    var delta =3D [0, 0];
    var parent =3D null;
    // delta [0,0] will do fine with position: fixed elements,
    // position:absolute needs offsetParent deltas
    if (Element.getStyle(element, 'position') =3D=3D 'absolute') {
      parent =3D element.getOffsetParent();
      delta =3D parent.viewportOffset();
    }

    // correct by body offsets (fixes Safari)
    if (parent =3D=3D document.body) {
      delta[0] -=3D document.body.offsetLeft;
      delta[1] -=3D document.body.offsetTop;
    }

    // set position
    if (options.setLeft)   element.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';
    if (options.setTop)    element.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';
    if (options.setWidth)  element.style.width =3D source.offsetWidth + =
'px';
    if (options.setHeight) element.style.height =3D source.offsetHeight =
+ 'px';
    return element;
  }
};

Element.Methods.identify.counter =3D 1;

Object.extend(Element.Methods, {
  getElementsBySelector: Element.Methods.select,
  childElements: Element.Methods.immediateDescendants
});

Element._attributeTranslations =3D {
  write: {
    names: {
      className: 'class',
      htmlFor:   'for'
    },
    values: { }
  }
};

if (Prototype.Browser.Opera) {
  Element.Methods.getStyle =3D Element.Methods.getStyle.wrap(
    function(proceed, element, style) {
      switch (style) {
        case 'left': case 'top': case 'right': case 'bottom':
          if (proceed(element, 'position') =3D=3D=3D 'static') return =
null;
        case 'height': case 'width':
          // returns '0px' for hidden elements; we want it to return =
null
          if (!Element.visible(element)) return null;

          // returns the border-box dimensions rather than the =
content-box
          // dimensions, so we subtract padding and borders from the =
value
          var dim =3D parseInt(proceed(element, style), 10);

          if (dim !=3D=3D element['offset' + style.capitalize()])
            return dim + 'px';

          var properties;
          if (style =3D=3D=3D 'height') {
            properties =3D ['border-top-width', 'padding-top',
             'padding-bottom', 'border-bottom-width'];
          }
          else {
            properties =3D ['border-left-width', 'padding-left',
             'padding-right', 'border-right-width'];
          }
          return properties.inject(dim, function(memo, property) {
            var val =3D proceed(element, property);
            return val =3D=3D=3D null ? memo : memo - parseInt(val, 10);
          }) + 'px';
        default: return proceed(element, style);
      }
    }
  );

  Element.Methods.readAttribute =3D Element.Methods.readAttribute.wrap(
    function(proceed, element, attribute) {
      if (attribute =3D=3D=3D 'title') return element.title;
      return proceed(element, attribute);
    }
  );
}

else if (Prototype.Browser.IE) {
  // IE doesn't report offsets correctly for static elements, so we =
change them
  // to "relative" to get the values, then change them back.
  Element.Methods.getOffsetParent =3D =
Element.Methods.getOffsetParent.wrap(
    function(proceed, element) {
      element =3D $(element);
      // IE throws an error if element is not in document
      try { element.offsetParent }
      catch(e) { return $(document.body) }
      var position =3D element.getStyle('position');
      if (position !=3D=3D 'static') return proceed(element);
      element.setStyle({ position: 'relative' });
      var value =3D proceed(element);
      element.setStyle({ position: position });
      return value;
    }
  );

  $w('positionedOffset viewportOffset').each(function(method) {
    Element.Methods[method] =3D Element.Methods[method].wrap(
      function(proceed, element) {
        element =3D $(element);
        try { element.offsetParent }
        catch(e) { return Element._returnOffset(0,0) }
        var position =3D element.getStyle('position');
        if (position !=3D=3D 'static') return proceed(element);
        // Trigger hasLayout on the offset parent so that IE6 reports
        // accurate offsetTop and offsetLeft values for position: fixed.
        var offsetParent =3D element.getOffsetParent();
        if (offsetParent && offsetParent.getStyle('position') =3D=3D=3D =
'fixed')
          offsetParent.setStyle({ zoom: 1 });
        element.setStyle({ position: 'relative' });
        var value =3D proceed(element);
        element.setStyle({ position: position });
        return value;
      }
    );
  });

  Element.Methods.cumulativeOffset =3D =
Element.Methods.cumulativeOffset.wrap(
    function(proceed, element) {
      try { element.offsetParent }
      catch(e) { return Element._returnOffset(0,0) }
      return proceed(element);
    }
  );

  Element.Methods.getStyle =3D function(element, style) {
    element =3D $(element);
    style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? =
'styleFloat' : style.camelize();
    var value =3D element.style[style];
    if (!value && element.currentStyle) value =3D =
element.currentStyle[style];

    if (style =3D=3D 'opacity') {
      if (value =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))
        if (value[1]) return parseFloat(value[1]) / 100;
      return 1.0;
    }

    if (value =3D=3D 'auto') {
      if ((style =3D=3D 'width' || style =3D=3D 'height') && =
(element.getStyle('display') !=3D 'none'))
        return element['offset' + style.capitalize()] + 'px';
      return null;
    }
    return value;
  };

  Element.Methods.setOpacity =3D function(element, value) {
    function stripAlpha(filter){
      return filter.replace(/alpha\([^\)]*\)/gi,'');
    }
    element =3D $(element);
    var currentStyle =3D element.currentStyle;
    if ((currentStyle && !currentStyle.hasLayout) ||
      (!currentStyle && element.style.zoom =3D=3D 'normal'))
        element.style.zoom =3D 1;

    var filter =3D element.getStyle('filter'), style =3D element.style;
    if (value =3D=3D 1 || value =3D=3D=3D '') {
      (filter =3D stripAlpha(filter)) ?
        style.filter =3D filter : style.removeAttribute('filter');
      return element;
    } else if (value < 0.00001) value =3D 0;
    style.filter =3D stripAlpha(filter) +
      'alpha(opacity=3D' + (value * 100) + ')';
    return element;
  };

  Element._attributeTranslations =3D {
    read: {
      names: {
        'class': 'className',
        'for':   'htmlFor'
      },
      values: {
        _getAttr: function(element, attribute) {
          return element.getAttribute(attribute, 2);
        },
        _getAttrNode: function(element, attribute) {
          var node =3D element.getAttributeNode(attribute);
          return node ? node.value : "";
        },
        _getEv: function(element, attribute) {
          attribute =3D element.getAttribute(attribute);
          return attribute ? attribute.toString().slice(23, -2) : null;
        },
        _flag: function(element, attribute) {
          return $(element).hasAttribute(attribute) ? attribute : null;
        },
        style: function(element) {
          return element.style.cssText.toLowerCase();
        },
        title: function(element) {
          return element.title;
        }
      }
    }
  };

  Element._attributeTranslations.write =3D {
    names: Object.extend({
      cellpadding: 'cellPadding',
      cellspacing: 'cellSpacing'
    }, Element._attributeTranslations.read.names),
    values: {
      checked: function(element, value) {
        element.checked =3D !!value;
      },

      style: function(element, value) {
        element.style.cssText =3D value ? value : '';
      }
    }
  };

  Element._attributeTranslations.has =3D {};

  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
      'encType maxLength readOnly longDesc =
frameBorder').each(function(attr) {
    Element._attributeTranslations.write.names[attr.toLowerCase()] =3D =
attr;
    Element._attributeTranslations.has[attr.toLowerCase()] =3D attr;
  });

  (function(v) {
    Object.extend(v, {
      href:        v._getAttr,
      src:         v._getAttr,
      type:        v._getAttr,
      action:      v._getAttrNode,
      disabled:    v._flag,
      checked:     v._flag,
      readonly:    v._flag,
      multiple:    v._flag,
      onload:      v._getEv,
      onunload:    v._getEv,
      onclick:     v._getEv,
      ondblclick:  v._getEv,
      onmousedown: v._getEv,
      onmouseup:   v._getEv,
      onmouseover: v._getEv,
      onmousemove: v._getEv,
      onmouseout:  v._getEv,
      onfocus:     v._getEv,
      onblur:      v._getEv,
      onkeypress:  v._getEv,
      onkeydown:   v._getEv,
      onkeyup:     v._getEv,
      onsubmit:    v._getEv,
      onreset:     v._getEv,
      onselect:    v._getEv,
      onchange:    v._getEv
    });
  })(Element._attributeTranslations.read.values);
}

else if (Prototype.Browser.Gecko && =
/rv:1\.8\.0/.test(navigator.userAgent)) {
  Element.Methods.setOpacity =3D function(element, value) {
    element =3D $(element);
    element.style.opacity =3D (value =3D=3D 1) ? 0.999999 :
      (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value;
    return element;
  };
}

else if (Prototype.Browser.WebKit) {
  Element.Methods.setOpacity =3D function(element, value) {
    element =3D $(element);
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :
      (value < 0.00001) ? 0 : value;

    if (value =3D=3D 1)
      if(element.tagName.toUpperCase() =3D=3D 'IMG' && element.width) {
        element.width++; element.width--;
      } else try {
        var n =3D document.createTextNode(' ');
        element.appendChild(n);
        element.removeChild(n);
      } catch (e) { }

    return element;
  };

  // Safari returns margins on body which is incorrect if the child is =
absolutely
  // positioned.  For performance reasons, redefine =
Element#cumulativeOffset for
  // KHTML/WebKit only.
  Element.Methods.cumulativeOffset =3D function(element) {
    var valueT =3D 0, valueL =3D 0;
    do {
      valueT +=3D element.offsetTop  || 0;
      valueL +=3D element.offsetLeft || 0;
      if (element.offsetParent =3D=3D document.body)
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;

      element =3D element.offsetParent;
    } while (element);

    return Element._returnOffset(valueL, valueT);
  };
}

if (Prototype.Browser.IE || Prototype.Browser.Opera) {
  // IE and Opera are missing .innerHTML support for TABLE-related and =
SELECT elements
  Element.Methods.update =3D function(element, content) {
    element =3D $(element);

    if (content && content.toElement) content =3D content.toElement();
    if (Object.isElement(content)) return =
element.update().insert(content);

    content =3D Object.toHTML(content);
    var tagName =3D element.tagName.toUpperCase();

    if (tagName in Element._insertionTranslations.tags) {
      $A(element.childNodes).each(function(node) { =
element.removeChild(node) });
      Element._getContentFromAnonymousElement(tagName, =
content.stripScripts())
        .each(function(node) { element.appendChild(node) });
    }
    else element.innerHTML =3D content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

if ('outerHTML' in document.createElement('div')) {
  Element.Methods.replace =3D function(element, content) {
    element =3D $(element);

    if (content && content.toElement) content =3D content.toElement();
    if (Object.isElement(content)) {
      element.parentNode.replaceChild(content, element);
      return element;
    }

    content =3D Object.toHTML(content);
    var parent =3D element.parentNode, tagName =3D =
parent.tagName.toUpperCase();

    if (Element._insertionTranslations.tags[tagName]) {
      var nextSibling =3D element.next();
      var fragments =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());
      parent.removeChild(element);
      if (nextSibling)
        fragments.each(function(node) { parent.insertBefore(node, =
nextSibling) });
      else
        fragments.each(function(node) { parent.appendChild(node) });
    }
    else element.outerHTML =3D content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

Element._returnOffset =3D function(l, t) {
  var result =3D [l, t];
  result.left =3D l;
  result.top =3D t;
  return result;
};

Element._getContentFromAnonymousElement =3D function(tagName, html) {
  var div =3D new Element('div'), t =3D =
Element._insertionTranslations.tags[tagName];
  if (t) {
    div.innerHTML =3D t[0] + html + t[1];
    t[2].times(function() { div =3D div.firstChild });
  } else div.innerHTML =3D html;
  return $A(div.childNodes);
};

Element._insertionTranslations =3D {
  before: function(element, node) {
    element.parentNode.insertBefore(node, element);
  },
  top: function(element, node) {
    element.insertBefore(node, element.firstChild);
  },
  bottom: function(element, node) {
    element.appendChild(node);
  },
  after: function(element, node) {
    element.parentNode.insertBefore(node, element.nextSibling);
  },
  tags: {
    TABLE:  ['<table>',                '</table>',                   1],
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
    SELECT: ['<select>',               '</select>',                  1]
  }
};

(function() {
  Object.extend(this.tags, {
    THEAD: this.tags.TBODY,
    TFOOT: this.tags.TBODY,
    TH:    this.tags.TD
  });
}).call(Element._insertionTranslations);

Element.Methods.Simulated =3D {
  hasAttribute: function(element, attribute) {
    attribute =3D Element._attributeTranslations.has[attribute] || =
attribute;
    var node =3D $(element).getAttributeNode(attribute);
    return !!(node && node.specified);
  }
};

Element.Methods.ByTag =3D { };

Object.extend(Element, Element.Methods);

if (!Prototype.BrowserFeatures.ElementExtensions &&
    document.createElement('div')['__proto__']) {
  window.HTMLElement =3D { };
  window.HTMLElement.prototype =3D =
document.createElement('div')['__proto__'];
  Prototype.BrowserFeatures.ElementExtensions =3D true;
}

Element.extend =3D (function() {
  if (Prototype.BrowserFeatures.SpecificElementExtensions)
    return Prototype.K;

  var Methods =3D { }, ByTag =3D Element.Methods.ByTag;

  var extend =3D Object.extend(function(element) {
    if (!element || element._extendedByPrototype ||
        element.nodeType !=3D 1 || element =3D=3D window) return =
element;

    var methods =3D Object.clone(Methods),
      tagName =3D element.tagName.toUpperCase(), property, value;

    // extend methods for specific tags
    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);

    for (property in methods) {
      value =3D methods[property];
      if (Object.isFunction(value) && !(property in element))
        element[property] =3D value.methodize();
    }

    element._extendedByPrototype =3D Prototype.emptyFunction;
    return element;

  }, {
    refresh: function() {
      // extend methods for all tags (Safari doesn't need this)
      if (!Prototype.BrowserFeatures.ElementExtensions) {
        Object.extend(Methods, Element.Methods);
        Object.extend(Methods, Element.Methods.Simulated);
      }
    }
  });

  extend.refresh();
  return extend;
})();

Element.hasAttribute =3D function(element, attribute) {
  if (element.hasAttribute) return element.hasAttribute(attribute);
  return Element.Methods.Simulated.hasAttribute(element, attribute);
};

Element.addMethods =3D function(methods) {
  var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag;

  if (!methods) {
    Object.extend(Form, Form.Methods);
    Object.extend(Form.Element, Form.Element.Methods);
    Object.extend(Element.Methods.ByTag, {
      "FORM":     Object.clone(Form.Methods),
      "INPUT":    Object.clone(Form.Element.Methods),
      "SELECT":   Object.clone(Form.Element.Methods),
      "TEXTAREA": Object.clone(Form.Element.Methods)
    });
  }

  if (arguments.length =3D=3D 2) {
    var tagName =3D methods;
    methods =3D arguments[1];
  }

  if (!tagName) Object.extend(Element.Methods, methods || { });
  else {
    if (Object.isArray(tagName)) tagName.each(extend);
    else extend(tagName);
  }

  function extend(tagName) {
    tagName =3D tagName.toUpperCase();
    if (!Element.Methods.ByTag[tagName])
      Element.Methods.ByTag[tagName] =3D { };
    Object.extend(Element.Methods.ByTag[tagName], methods);
  }

  function copy(methods, destination, onlyIfAbsent) {
    onlyIfAbsent =3D onlyIfAbsent || false;
    for (var property in methods) {
      var value =3D methods[property];
      if (!Object.isFunction(value)) continue;
      if (!onlyIfAbsent || !(property in destination))
        destination[property] =3D value.methodize();
    }
  }

  function findDOMClass(tagName) {
    var klass;
    var trans =3D {
      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": =
"DList",
      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": =
"Heading",
      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", =
"CAPTION":
      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", =
"THEAD":
      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", =
"TR":
      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
      "FrameSet", "IFRAME": "IFrame"
    };
    if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element';
    if (window[klass]) return window[klass];
    klass =3D 'HTML' + tagName + 'Element';
    if (window[klass]) return window[klass];
    klass =3D 'HTML' + tagName.capitalize() + 'Element';
    if (window[klass]) return window[klass];

    window[klass] =3D { };
    window[klass].prototype =3D =
document.createElement(tagName)['__proto__'];
    return window[klass];
  }

  if (F.ElementExtensions) {
    copy(Element.Methods, HTMLElement.prototype);
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
  }

  if (F.SpecificElementExtensions) {
    for (var tag in Element.Methods.ByTag) {
      var klass =3D findDOMClass(tag);
      if (Object.isUndefined(klass)) continue;
      copy(T[tag], klass.prototype);
    }
  }

  Object.extend(Element, Element.Methods);
  delete Element.ByTag;

  if (Element.extend.refresh) Element.extend.refresh();
  Element.cache =3D { };
};

document.viewport =3D {
  getDimensions: function() {
    var dimensions =3D { }, B =3D Prototype.Browser;
    $w('width height').each(function(d) {
      var D =3D d.capitalize();
      if (B.WebKit && !document.evaluate) {
        // Safari <3.0 needs self.innerWidth/Height
        dimensions[d] =3D self['inner' + D];
      } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
        // Opera <9.5 needs document.body.clientWidth/Height
        dimensions[d] =3D document.body['client' + D]
      } else {
        dimensions[d] =3D document.documentElement['client' + D];
      }
    });
    return dimensions;
  },

  getWidth: function() {
    return this.getDimensions().width;
  },

  getHeight: function() {
    return this.getDimensions().height;
  },

  getScrollOffsets: function() {
    return Element._returnOffset(
      window.pageXOffset || document.documentElement.scrollLeft || =
document.body.scrollLeft,
      window.pageYOffset || document.documentElement.scrollTop || =
document.body.scrollTop);
  }
};
/* Portions of the Selector class are derived from Jack Slocum's =
DomQuery,
 * part of YUI-Ext version 0.40, distributed under the terms of an =
MIT-style
 * license.  Please see http://www.yui-ext.com/ for more information. */

var Selector =3D Class.create({
  initialize: function(expression) {
    this.expression =3D expression.strip();

    if (this.shouldUseSelectorsAPI()) {
      this.mode =3D 'selectorsAPI';
    } else if (this.shouldUseXPath()) {
      this.mode =3D 'xpath';
      this.compileXPathMatcher();
    } else {
      this.mode =3D "normal";
      this.compileMatcher();
    }

  },

  shouldUseXPath: function() {
    if (!Prototype.BrowserFeatures.XPath) return false;

    var e =3D this.expression;

    // Safari 3 chokes on :*-of-type and :empty
    if (Prototype.Browser.WebKit &&
     (e.include("-of-type") || e.include(":empty")))
      return false;

    // XPath can't do namespaced attributes, nor can it read
    // the "checked" property from DOM nodes
    if ((/(\[[\w-]*?:|:checked)/).test(e))
      return false;

    return true;
  },

  shouldUseSelectorsAPI: function() {
    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;

    if (!Selector._div) Selector._div =3D new Element('div');

    // Make sure the browser treats the selector as valid. Test on an
    // isolated element to minimize cost of this check.
    try {
      Selector._div.querySelector(this.expression);
    } catch(e) {
      return false;
    }

    return true;
  },

  compileMatcher: function() {
    var e =3D this.expression, ps =3D Selector.patterns, h =3D =
Selector.handlers,
        c =3D Selector.criteria, le, p, m;

    if (Selector._cache[e]) {
      this.matcher =3D Selector._cache[e];
      return;
    }

    this.matcher =3D ["this.matcher =3D function(root) {",
                    "var r =3D root, h =3D Selector.handlers, c =3D =
false, n;"];

    while (e && le !=3D e && (/\S/).test(e)) {
      le =3D e;
      for (var i in ps) {
        p =3D ps[i];
        if (m =3D e.match(p)) {
          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
            new Template(c[i]).evaluate(m));
          e =3D e.replace(m[0], '');
          break;
        }
      }
    }

    this.matcher.push("return h.unique(n);\n}");
    eval(this.matcher.join('\n'));
    Selector._cache[this.expression] =3D this.matcher;
  },

  compileXPathMatcher: function() {
    var e =3D this.expression, ps =3D Selector.patterns,
        x =3D Selector.xpath, le, m;

    if (Selector._cache[e]) {
      this.xpath =3D Selector._cache[e]; return;
    }

    this.matcher =3D ['.//*'];
    while (e && le !=3D e && (/\S/).test(e)) {
      le =3D e;
      for (var i in ps) {
        if (m =3D e.match(ps[i])) {
          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
            new Template(x[i]).evaluate(m));
          e =3D e.replace(m[0], '');
          break;
        }
      }
    }

    this.xpath =3D this.matcher.join('');
    Selector._cache[this.expression] =3D this.xpath;
  },

  findElements: function(root) {
    root =3D root || document;
    var e =3D this.expression, results;

    switch (this.mode) {
      case 'selectorsAPI':
        // querySelectorAll queries document-wide, then filters to =
descendants
        // of the context element. That's not what we want.
        // Add an explicit context to the selector if necessary.
        if (root !=3D=3D document) {
          var oldId =3D root.id, id =3D $(root).identify();
          e =3D "#" + id + " " + e;
        }

        results =3D $A(root.querySelectorAll(e)).map(Element.extend);
        root.id =3D oldId;

        return results;
      case 'xpath':
        return document._getElementsByXPath(this.xpath, root);
      default:
       return this.matcher(root);
    }
  },

  match: function(element) {
    this.tokens =3D [];

    var e =3D this.expression, ps =3D Selector.patterns, as =3D =
Selector.assertions;
    var le, p, m;

    while (e && le !=3D=3D e && (/\S/).test(e)) {
      le =3D e;
      for (var i in ps) {
        p =3D ps[i];
        if (m =3D e.match(p)) {
          // use the Selector.assertions methods unless the selector
          // is too complex.
          if (as[i]) {
            this.tokens.push([i, Object.clone(m)]);
            e =3D e.replace(m[0], '');
          } else {
            // reluctantly do a document-wide search
            // and look for a match in the array
            return this.findElements(document).include(element);
          }
        }
      }
    }

    var match =3D true, name, matches;
    for (var i =3D 0, token; token =3D this.tokens[i]; i++) {
      name =3D token[0], matches =3D token[1];
      if (!Selector.assertions[name](element, matches)) {
        match =3D false; break;
      }
    }

    return match;
  },

  toString: function() {
    return this.expression;
  },

  inspect: function() {
    return "#<Selector:" + this.expression.inspect() + ">";
  }
});

Object.extend(Selector, {
  _cache: { },

  xpath: {
    descendant:   "//*",
    child:        "/*",
    adjacent:     "/following-sibling::*[1]",
    laterSibling: '/following-sibling::*',
    tagName:      function(m) {
      if (m[1] =3D=3D '*') return '';
      return "[local-name()=3D'" + m[1].toLowerCase() +
             "' or local-name()=3D'" + m[1].toUpperCase() + "']";
    },
    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
    id:           "[@id=3D'#{1}']",
    attrPresence: function(m) {
      m[1] =3D m[1].toLowerCase();
      return new Template("[@#{1}]").evaluate(m);
    },
    attr: function(m) {
      m[1] =3D m[1].toLowerCase();
      m[3] =3D m[5] || m[6];
      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
    },
    pseudo: function(m) {
      var h =3D Selector.xpath.pseudos[m[1]];
      if (!h) return '';
      if (Object.isFunction(h)) return h(m);
      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
    },
    operators: {
      '=3D':  "[@#{1}=3D'#{3}']",
      '!=3D': "[@#{1}!=3D'#{3}']",
      '^=3D': "[starts-with(@#{1}, '#{3}')]",
      '$=3D': "[substring(@#{1}, (string-length(@#{1}) - =
string-length('#{3}') + 1))=3D'#{3}']",
      '*=3D': "[contains(@#{1}, '#{3}')]",
      '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
      '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
    },
    pseudos: {
      'first-child': '[not(preceding-sibling::*)]',
      'last-child':  '[not(following-sibling::*)]',
      'only-child':  '[not(preceding-sibling::* or =
following-sibling::*)]',
      'empty':       "[count(*) =3D 0 and (count(text()) =3D 0)]",
      'checked':     "[@checked]",
      'disabled':    "[(@disabled) and (@type!=3D'hidden')]",
      'enabled':     "[not(@disabled) and (@type!=3D'hidden')]",
      'not': function(m) {
        var e =3D m[6], p =3D Selector.patterns,
            x =3D Selector.xpath, le, v;

        var exclusion =3D [];
        while (e && le !=3D e && (/\S/).test(e)) {
          le =3D e;
          for (var i in p) {
            if (m =3D e.match(p[i])) {
              v =3D Object.isFunction(x[i]) ? x[i](m) : new =
Template(x[i]).evaluate(m);
              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
              e =3D e.replace(m[0], '');
              break;
            }
          }
        }
        return "[not(" + exclusion.join(" and ") + ")]";
      },
      'nth-child':      function(m) {
        return =
Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
      },
      'nth-last-child': function(m) {
        return =
Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
      },
      'nth-of-type':    function(m) {
        return Selector.xpath.pseudos.nth("position() ", m);
      },
      'nth-last-of-type': function(m) {
        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", =
m);
      },
      'first-of-type':  function(m) {
        m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m);
      },
      'last-of-type':   function(m) {
        m[6] =3D "1"; return =
Selector.xpath.pseudos['nth-last-of-type'](m);
      },
      'only-of-type':   function(m) {
        var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + =
p['last-of-type'](m);
      },
      nth: function(fragment, m) {
        var mm, formula =3D m[6], predicate;
        if (formula =3D=3D 'even') formula =3D '2n+0';
        if (formula =3D=3D 'odd')  formula =3D '2n+1';
        if (mm =3D formula.match(/^(\d+)$/)) // digit only
          return '[' + fragment + "=3D " + mm[1] + ']';
        if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
          if (mm[1] =3D=3D "-") mm[1] =3D -1;
          var a =3D mm[1] ? Number(mm[1]) : 1;
          var b =3D mm[2] ? Number(mm[2]) : 0;
          predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " +
          "((#{fragment} - #{b}) div #{a} >=3D 0)]";
          return new Template(predicate).evaluate({
            fragment: fragment, a: a, b: b });
        }
      }
    }
  },

  criteria: {
    tagName:      'n =3D h.tagName(n, r, "#{1}", c);      c =3D false;',
    className:    'n =3D h.className(n, r, "#{1}", c);    c =3D false;',
    id:           'n =3D h.id(n, r, "#{1}", c);           c =3D false;',
    attrPresence: 'n =3D h.attrPresence(n, r, "#{1}", c); c =3D false;',
    attr: function(m) {
      m[3] =3D (m[5] || m[6]);
      return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}", =
c); c =3D false;').evaluate(m);
    },
    pseudo: function(m) {
      if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"');
      return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c =
=3D false;').evaluate(m);
    },
    descendant:   'c =3D "descendant";',
    child:        'c =3D "child";',
    adjacent:     'c =3D "adjacent";',
    laterSibling: 'c =3D "laterSibling";'
  },

  patterns: {
    // combinators must be listed first
    // (and descendant needs to be last combinator)
    laterSibling: /^\s*~\s*/,
    child:        /^\s*>\s*/,
    adjacent:     /^\s*\+\s*/,
    descendant:   /^\s/,

    // selectors follow
    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,
    id:           /^#([\w\-\*]+)(\b|$)/,
    className:    /^\.([\w\-\*]+)(\b|$)/,
    pseudo:
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis=
)abled|not)(\((.*?)\))?(\b|$|(?=3D\s|[:+~>]))/,
    attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
    attr:         =
/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\4]*?)\4|([^'"][^=
\]]*?)))?\]/
  },

  // for Selector.match and Element#match
  assertions: {
    tagName: function(element, matches) {
      return matches[1].toUpperCase() =3D=3D =
element.tagName.toUpperCase();
    },

    className: function(element, matches) {
      return Element.hasClassName(element, matches[1]);
    },

    id: function(element, matches) {
      return element.id =3D=3D=3D matches[1];
    },

    attrPresence: function(element, matches) {
      return Element.hasAttribute(element, matches[1]);
    },

    attr: function(element, matches) {
      var nodeValue =3D Element.readAttribute(element, matches[1]);
      return nodeValue && Selector.operators[matches[2]](nodeValue, =
matches[5] || matches[6]);
    }
  },

  handlers: {
    // UTILITY FUNCTIONS
    // joins two collections
    concat: function(a, b) {
      for (var i =3D 0, node; node =3D b[i]; i++)
        a.push(node);
      return a;
    },

    // marks an array of nodes for counting
    mark: function(nodes) {
      var _true =3D Prototype.emptyFunction;
      for (var i =3D 0, node; node =3D nodes[i]; i++)
        node._countedByPrototype =3D _true;
      return nodes;
    },

    unmark: function(nodes) {
      for (var i =3D 0, node; node =3D nodes[i]; i++)
        node._countedByPrototype =3D undefined;
      return nodes;
    },

    // mark each child node with its position (for nth calls)
    // "ofType" flag indicates whether we're indexing for nth-of-type
    // rather than nth-child
    index: function(parentNode, reverse, ofType) {
      parentNode._countedByPrototype =3D Prototype.emptyFunction;
      if (reverse) {
        for (var nodes =3D parentNode.childNodes, i =3D nodes.length - =
1, j =3D 1; i >=3D 0; i--) {
          var node =3D nodes[i];
          if (node.nodeType =3D=3D 1 && (!ofType || =
node._countedByPrototype)) node.nodeIndex =3D j++;
        }
      } else {
        for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node =
=3D nodes[i]; i++)
          if (node.nodeType =3D=3D 1 && (!ofType || =
node._countedByPrototype)) node.nodeIndex =3D j++;
      }
    },

    // filters out duplicates and extends all nodes
    unique: function(nodes) {
      if (nodes.length =3D=3D 0) return nodes;
      var results =3D [], n;
      for (var i =3D 0, l =3D nodes.length; i < l; i++)
        if (!(n =3D nodes[i])._countedByPrototype) {
          n._countedByPrototype =3D Prototype.emptyFunction;
          results.push(Element.extend(n));
        }
      return Selector.handlers.unmark(results);
    },

    // COMBINATOR FUNCTIONS
    descendant: function(nodes) {
      var h =3D Selector.handlers;
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        h.concat(results, node.getElementsByTagName('*'));
      return results;
    },

    child: function(nodes) {
      var h =3D Selector.handlers;
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {
        for (var j =3D 0, child; child =3D node.childNodes[j]; j++)
          if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') =
results.push(child);
      }
      return results;
    },

    adjacent: function(nodes) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {
        var next =3D this.nextElementSibling(node);
        if (next) results.push(next);
      }
      return results;
    },

    laterSibling: function(nodes) {
      var h =3D Selector.handlers;
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        h.concat(results, Element.nextSiblings(node));
      return results;
    },

    nextElementSibling: function(node) {
      while (node =3D node.nextSibling)
        if (node.nodeType =3D=3D 1) return node;
      return null;
    },

    previousElementSibling: function(node) {
      while (node =3D node.previousSibling)
        if (node.nodeType =3D=3D 1) return node;
      return null;
    },

    // TOKEN FUNCTIONS
    tagName: function(nodes, root, tagName, combinator) {
      var uTagName =3D tagName.toUpperCase();
      var results =3D [], h =3D Selector.handlers;
      if (nodes) {
        if (combinator) {
          // fastlane for ordinary descendant combinators
          if (combinator =3D=3D "descendant") {
            for (var i =3D 0, node; node =3D nodes[i]; i++)
              h.concat(results, node.getElementsByTagName(tagName));
            return results;
          } else nodes =3D this[combinator](nodes);
          if (tagName =3D=3D "*") return nodes;
        }
        for (var i =3D 0, node; node =3D nodes[i]; i++)
          if (node.tagName.toUpperCase() =3D=3D=3D uTagName) =
results.push(node);
        return results;
      } else return root.getElementsByTagName(tagName);
    },

    id: function(nodes, root, id, combinator) {
      var targetNode =3D $(id), h =3D Selector.handlers;
      if (!targetNode) return [];
      if (!nodes && root =3D=3D document) return [targetNode];
      if (nodes) {
        if (combinator) {
          if (combinator =3D=3D 'child') {
            for (var i =3D 0, node; node =3D nodes[i]; i++)
              if (targetNode.parentNode =3D=3D node) return =
[targetNode];
          } else if (combinator =3D=3D 'descendant') {
            for (var i =3D 0, node; node =3D nodes[i]; i++)
              if (Element.descendantOf(targetNode, node)) return =
[targetNode];
          } else if (combinator =3D=3D 'adjacent') {
            for (var i =3D 0, node; node =3D nodes[i]; i++)
              if (Selector.handlers.previousElementSibling(targetNode) =
=3D=3D node)
                return [targetNode];
          } else nodes =3D h[combinator](nodes);
        }
        for (var i =3D 0, node; node =3D nodes[i]; i++)
          if (node =3D=3D targetNode) return [targetNode];
        return [];
      }
      return (targetNode && Element.descendantOf(targetNode, root)) ? =
[targetNode] : [];
    },

    className: function(nodes, root, className, combinator) {
      if (nodes && combinator) nodes =3D this[combinator](nodes);
      return Selector.handlers.byClassName(nodes, root, className);
    },

    byClassName: function(nodes, root, className) {
      if (!nodes) nodes =3D Selector.handlers.descendant([root]);
      var needle =3D ' ' + className + ' ';
      for (var i =3D 0, results =3D [], node, nodeClassName; node =3D =
nodes[i]; i++) {
        nodeClassName =3D node.className;
        if (nodeClassName.length =3D=3D 0) continue;
        if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' =
').include(needle))
          results.push(node);
      }
      return results;
    },

    attrPresence: function(nodes, root, attr, combinator) {
      if (!nodes) nodes =3D root.getElementsByTagName("*");
      if (nodes && combinator) nodes =3D this[combinator](nodes);
      var results =3D [];
      for (var i =3D 0, node; node =3D nodes[i]; i++)
        if (Element.hasAttribute(node, attr)) results.push(node);
      return results;
    },

    attr: function(nodes, root, attr, value, operator, combinator) {
      if (!nodes) nodes =3D root.getElementsByTagName("*");
      if (nodes && combinator) nodes =3D this[combinator](nodes);
      var handler =3D Selector.operators[operator], results =3D [];
      for (var i =3D 0, node; node =3D nodes[i]; i++) {
        var nodeValue =3D Element.readAttribute(node, attr);
        if (nodeValue =3D=3D=3D null) continue;
        if (handler(nodeValue, value)) results.push(node);
      }
      return results;
    },

    pseudo: function(nodes, name, value, root, combinator) {
      if (nodes && combinator) nodes =3D this[combinator](nodes);
      if (!nodes) nodes =3D root.getElementsByTagName("*");
      return Selector.pseudos[name](nodes, value, root);
    }
  },

  pseudos: {
    'first-child': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {
        if (Selector.handlers.previousElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'last-child': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {
        if (Selector.handlers.nextElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'only-child': function(nodes, value, root) {
      var h =3D Selector.handlers;
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        if (!h.previousElementSibling(node) && =
!h.nextElementSibling(node))
          results.push(node);
      return results;
    },
    'nth-child':        function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root);
    },
    'nth-last-child':   function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true);
    },
    'nth-of-type':      function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, false, true);
    },
    'nth-last-of-type': function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true, true);
    },
    'first-of-type':    function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, false, true);
    },
    'last-of-type':     function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, true, true);
    },
    'only-of-type':     function(nodes, formula, root) {
      var p =3D Selector.pseudos;
      return p['last-of-type'](p['first-of-type'](nodes, formula, root), =
formula, root);
    },

    // handles the an+b logic
    getIndices: function(a, b, total) {
      if (a =3D=3D 0) return b > 0 ? [b] : [];
      return $R(1, total).inject([], function(memo, i) {
        if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i);
        return memo;
      });
    },

    // handles nth(-last)-child, nth(-last)-of-type, and =
(first|last)-of-type
    nth: function(nodes, formula, root, reverse, ofType) {
      if (nodes.length =3D=3D 0) return [];
      if (formula =3D=3D 'even') formula =3D '2n+0';
      if (formula =3D=3D 'odd')  formula =3D '2n+1';
      var h =3D Selector.handlers, results =3D [], indexed =3D [], m;
      h.mark(nodes);
      for (var i =3D 0, node; node =3D nodes[i]; i++) {
        if (!node.parentNode._countedByPrototype) {
          h.index(node.parentNode, reverse, ofType);
          indexed.push(node.parentNode);
        }
      }
      if (formula.match(/^\d+$/)) { // just a number
        formula =3D Number(formula);
        for (var i =3D 0, node; node =3D nodes[i]; i++)
          if (node.nodeIndex =3D=3D formula) results.push(node);
      } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // =
an+b
        if (m[1] =3D=3D "-") m[1] =3D -1;
        var a =3D m[1] ? Number(m[1]) : 1;
        var b =3D m[2] ? Number(m[2]) : 0;
        var indices =3D Selector.pseudos.getIndices(a, b, nodes.length);
        for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; =
i++) {
          for (var j =3D 0; j < l; j++)
            if (node.nodeIndex =3D=3D indices[j]) results.push(node);
        }
      }
      h.unmark(nodes);
      h.unmark(indexed);
      return results;
    },

    'empty': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {
        // IE treats comments as element nodes
        if (node.tagName =3D=3D '!' || node.firstChild) continue;
        results.push(node);
      }
      return results;
    },

    'not': function(nodes, selector, root) {
      var h =3D Selector.handlers, selectorType, m;
      var exclusions =3D new Selector(selector).findElements(root);
      h.mark(exclusions);
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        if (!node._countedByPrototype) results.push(node);
      h.unmark(exclusions);
      return results;
    },

    'enabled': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        if (!node.disabled && (!node.type || node.type !=3D=3D =
'hidden'))
          results.push(node);
      return results;
    },

    'disabled': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        if (node.disabled) results.push(node);
      return results;
    },

    'checked': function(nodes, value, root) {
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)
        if (node.checked) results.push(node);
      return results;
    }
  },

  operators: {
    '=3D':  function(nv, v) { return nv =3D=3D v; },
    '!=3D': function(nv, v) { return nv !=3D v; },
    '^=3D': function(nv, v) { return nv =3D=3D v || nv && =
nv.startsWith(v); },
    '$=3D': function(nv, v) { return nv =3D=3D v || nv && =
nv.endsWith(v); },
    '*=3D': function(nv, v) { return nv =3D=3D v || nv && nv.include(v); =
},
    '$=3D': function(nv, v) { return nv.endsWith(v); },
    '*=3D': function(nv, v) { return nv.include(v); },
    '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + =
' '); },
    '|=3D': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
     '-').include('-' + (v || "").toUpperCase() + '-'); }
  },

  split: function(expression) {
    var expressions =3D [];
    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, =
function(m) {
      expressions.push(m[1].strip());
    });
    return expressions;
  },

  matchElements: function(elements, expression) {
    var matches =3D $$(expression), h =3D Selector.handlers;
    h.mark(matches);
    for (var i =3D 0, results =3D [], element; element =3D elements[i]; =
i++)
      if (element._countedByPrototype) results.push(element);
    h.unmark(matches);
    return results;
  },

  findElement: function(elements, expression, index) {
    if (Object.isNumber(expression)) {
      index =3D expression; expression =3D false;
    }
    return Selector.matchElements(elements, expression || '*')[index || =
0];
  },

  findChildElements: function(element, expressions) {
    expressions =3D Selector.split(expressions.join(','));
    var results =3D [], h =3D Selector.handlers;
    for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) {
      selector =3D new Selector(expressions[i].strip());
      h.concat(results, selector.findElements(element));
    }
    return (l > 1) ? h.unique(results) : results;
  }
});

if (Prototype.Browser.IE) {
  Object.extend(Selector.handlers, {
    // IE returns comment nodes on getElementsByTagName("*").
    // Filter them out.
    concat: function(a, b) {
      for (var i =3D 0, node; node =3D b[i]; i++)
        if (node.tagName !=3D=3D "!") a.push(node);
      return a;
    },

    // IE improperly serializes _countedByPrototype in =
(inner|outer)HTML.
    unmark: function(nodes) {
      for (var i =3D 0, node; node =3D nodes[i]; i++)
        node.removeAttribute('_countedByPrototype');
      return nodes;
    }
  });
}

function $$() {
  return Selector.findChildElements(document, $A(arguments));
}
var Form =3D {
  reset: function(form) {
    $(form).reset();
    return form;
  },

  serializeElements: function(elements, options) {
    if (typeof options !=3D 'object') options =3D { hash: !!options };
    else if (Object.isUndefined(options.hash)) options.hash =3D true;
    var key, value, submitted =3D false, submit =3D options.submit;

    var data =3D elements.inject({ }, function(result, element) {
      if (!element.disabled && element.name) {
        key =3D element.name; value =3D $(element).getValue();
        if (value !=3D null && element.type !=3D 'file' && (element.type =
!=3D 'submit' || (!submitted &&
            submit !=3D=3D false && (!submit || key =3D=3D submit) && =
(submitted =3D true)))) {
          if (key in result) {
            // a key is already present; construct an array of values
            if (!Object.isArray(result[key])) result[key] =3D =
[result[key]];
            result[key].push(value);
          }
          else result[key] =3D value;
        }
      }
      return result;
    });

    return options.hash ? data : Object.toQueryString(data);
  }
};

Form.Methods =3D {
  serialize: function(form, options) {
    return Form.serializeElements(Form.getElements(form), options);
  },

  getElements: function(form) {
    return $A($(form).getElementsByTagName('*')).inject([],
      function(elements, child) {
        if (Form.Element.Serializers[child.tagName.toLowerCase()])
          elements.push(Element.extend(child));
        return elements;
      }
    );
  },

  getInputs: function(form, typeName, name) {
    form =3D $(form);
    var inputs =3D form.getElementsByTagName('input');

    if (!typeName && !name) return $A(inputs).map(Element.extend);

    for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i =
< length; i++) {
      var input =3D inputs[i];
      if ((typeName && input.type !=3D typeName) || (name && input.name =
!=3D name))
        continue;
      matchingInputs.push(Element.extend(input));
    }

    return matchingInputs;
  },

  disable: function(form) {
    form =3D $(form);
    Form.getElements(form).invoke('disable');
    return form;
  },

  enable: function(form) {
    form =3D $(form);
    Form.getElements(form).invoke('enable');
    return form;
  },

  findFirstElement: function(form) {
    var elements =3D $(form).getElements().findAll(function(element) {
      return 'hidden' !=3D element.type && !element.disabled;
    });
    var firstByIndex =3D elements.findAll(function(element) {
      return element.hasAttribute('tabIndex') && element.tabIndex >=3D =
0;
    }).sortBy(function(element) { return element.tabIndex }).first();

    return firstByIndex ? firstByIndex : elements.find(function(element) =
{
      return ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());
    });
  },

  focusFirstElement: function(form) {
    form =3D $(form);
    form.findFirstElement().activate();
    return form;
  },

  request: function(form, options) {
    form =3D $(form), options =3D Object.clone(options || { });

    var params =3D options.parameters, action =3D =
form.readAttribute('action') || '';
    if (action.blank()) action =3D window.location.href;
    options.parameters =3D form.serialize(true);

    if (params) {
      if (Object.isString(params)) params =3D params.toQueryParams();
      Object.extend(options.parameters, params);
    }

    if (form.hasAttribute('method') && !options.method)
      options.method =3D form.method;

    return new Ajax.Request(action, options);
  }
};

/*-----------------------------------------------------------------------=
---*/

Form.Element =3D {
  focus: function(element) {
    $(element).focus();
    return element;
  },

  select: function(element) {
    $(element).select();
    return element;
  }
};

Form.Element.Methods =3D {
  serialize: function(element) {
    element =3D $(element);
    if (!element.disabled && element.name) {
      var value =3D element.getValue();
      if (value !=3D undefined) {
        var pair =3D { };
        pair[element.name] =3D value;
        return Object.toQueryString(pair);
      }
    }
    return '';
  },

  getValue: function(element) {
    element =3D $(element);
    var method =3D element.tagName.toLowerCase();
    return Form.Element.Serializers[method](element);
  },

  setValue: function(element, value) {
    element =3D $(element);
    var method =3D element.tagName.toLowerCase();
    Form.Element.Serializers[method](element, value);
    return element;
  },

  clear: function(element) {
    $(element).value =3D '';
    return element;
  },

  present: function(element) {
    return $(element).value !=3D '';
  },

  activate: function(element) {
    element =3D $(element);
    try {
      element.focus();
      if (element.select && (element.tagName.toLowerCase() !=3D 'input' =
||
          !['button', 'reset', 'submit'].include(element.type)))
        element.select();
    } catch (e) { }
    return element;
  },

  disable: function(element) {
    element =3D $(element);
    element.disabled =3D true;
    return element;
  },

  enable: function(element) {
    element =3D $(element);
    element.disabled =3D false;
    return element;
  }
};

/*-----------------------------------------------------------------------=
---*/

var Field =3D Form.Element;
var $F =3D Form.Element.Methods.getValue;

/*-----------------------------------------------------------------------=
---*/

Form.Element.Serializers =3D {
  input: function(element, value) {
    switch (element.type.toLowerCase()) {
      case 'checkbox':
      case 'radio':
        return Form.Element.Serializers.inputSelector(element, value);
      default:
        return Form.Element.Serializers.textarea(element, value);
    }
  },

  inputSelector: function(element, value) {
    if (Object.isUndefined(value)) return element.checked ? =
element.value : null;
    else element.checked =3D !!value;
  },

  textarea: function(element, value) {
    if (Object.isUndefined(value)) return element.value;
    else element.value =3D value;
  },

  select: function(element, value) {
    if (Object.isUndefined(value))
      return this[element.type =3D=3D 'select-one' ?
        'selectOne' : 'selectMany'](element);
    else {
      var opt, currentValue, single =3D !Object.isArray(value);
      for (var i =3D 0, length =3D element.length; i < length; i++) {
        opt =3D element.options[i];
        currentValue =3D this.optionValue(opt);
        if (single) {
          if (currentValue =3D=3D value) {
            opt.selected =3D true;
            return;
          }
        }
        else opt.selected =3D value.include(currentValue);
      }
    }
  },

  selectOne: function(element) {
    var index =3D element.selectedIndex;
    return index >=3D 0 ? this.optionValue(element.options[index]) : =
null;
  },

  selectMany: function(element) {
    var values, length =3D element.length;
    if (!length) return null;

    for (var i =3D 0, values =3D []; i < length; i++) {
      var opt =3D element.options[i];
      if (opt.selected) values.push(this.optionValue(opt));
    }
    return values;
  },

  optionValue: function(opt) {
    // extend element because hasAttribute may not be native
    return Element.extend(opt).hasAttribute('value') ? opt.value : =
opt.text;
  }
};

/*-----------------------------------------------------------------------=
---*/

Abstract.TimedObserver =3D Class.create(PeriodicalExecuter, {
  initialize: function($super, element, frequency, callback) {
    $super(callback, frequency);
    this.element   =3D $(element);
    this.lastValue =3D this.getValue();
  },

  execute: function() {
    var value =3D this.getValue();
    if (Object.isString(this.lastValue) && Object.isString(value) ?
        this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value)) {
      this.callback(this.element, value);
      this.lastValue =3D value;
    }
  }
});

Form.Element.Observer =3D Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.Observer =3D Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});

/*-----------------------------------------------------------------------=
---*/

Abstract.EventObserver =3D Class.create({
  initialize: function(element, callback) {
    this.element  =3D $(element);
    this.callback =3D callback;

    this.lastValue =3D this.getValue();
    if (this.element.tagName.toLowerCase() =3D=3D 'form')
      this.registerFormCallbacks();
    else
      this.registerCallback(this.element);
  },

  onElementEvent: function() {
    var value =3D this.getValue();
    if (this.lastValue !=3D value) {
      this.callback(this.element, value);
      this.lastValue =3D value;
    }
  },

  registerFormCallbacks: function() {
    Form.getElements(this.element).each(this.registerCallback, this);
  },

  registerCallback: function(element) {
    if (element.type) {
      switch (element.type.toLowerCase()) {
        case 'checkbox':
        case 'radio':
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));
          break;
        default:
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));
          break;
      }
    }
  }
});

Form.Element.EventObserver =3D Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.EventObserver =3D Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});
if (!window.Event) var Event =3D { };

Object.extend(Event, {
  KEY_BACKSPACE: 8,
  KEY_TAB:       9,
  KEY_RETURN:   13,
  KEY_ESC:      27,
  KEY_LEFT:     37,
  KEY_UP:       38,
  KEY_RIGHT:    39,
  KEY_DOWN:     40,
  KEY_DELETE:   46,
  KEY_HOME:     36,
  KEY_END:      35,
  KEY_PAGEUP:   33,
  KEY_PAGEDOWN: 34,
  KEY_INSERT:   45,

  cache: { },

  relatedTarget: function(event) {
    var element;
    switch(event.type) {
      case 'mouseover': element =3D event.fromElement; break;
      case 'mouseout':  element =3D event.toElement;   break;
      default: return null;
    }
    return Element.extend(element);
  }
});

Event.Methods =3D (function() {
  var isButton;

  if (Prototype.Browser.IE) {
    var buttonMap =3D { 0: 1, 1: 4, 2: 2 };
    isButton =3D function(event, code) {
      return event.button =3D=3D buttonMap[code];
    };

  } else if (Prototype.Browser.WebKit) {
    isButton =3D function(event, code) {
      switch (code) {
        case 0: return event.which =3D=3D 1 && !event.metaKey;
        case 1: return event.which =3D=3D 1 && event.metaKey;
        default: return false;
      }
    };

  } else {
    isButton =3D function(event, code) {
      return event.which ? (event.which =3D=3D=3D code + 1) : =
(event.button =3D=3D=3D code);
    };
  }

  return {
    isLeftClick:   function(event) { return isButton(event, 0) },
    isMiddleClick: function(event) { return isButton(event, 1) },
    isRightClick:  function(event) { return isButton(event, 2) },

    element: function(event) {
      event =3D Event.extend(event);

      var node          =3D event.target,
          type          =3D event.type,
          currentTarget =3D event.currentTarget;

      if (currentTarget && currentTarget.tagName) {
        // Firefox screws up the "click" event when moving between radio =
buttons
        // via arrow keys. It also screws up the "load" and "error" =
events on images,
        // reporting the document as the target instead of the original =
image.
        if (type =3D=3D=3D 'load' || type =3D=3D=3D 'error' ||
          (type =3D=3D=3D 'click' && currentTarget.tagName.toLowerCase() =
=3D=3D=3D 'input'
            && currentTarget.type =3D=3D=3D 'radio'))
              node =3D currentTarget;
      }
      if (node.nodeType =3D=3D Node.TEXT_NODE) node =3D node.parentNode;
      return Element.extend(node);
    },

    findElement: function(event, expression) {
      var element =3D Event.element(event);
      if (!expression) return element;
      var elements =3D [element].concat(element.ancestors());
      return Selector.findElement(elements, expression, 0);
    },

    pointer: function(event) {
      var docElement =3D document.documentElement,
      body =3D document.body || { scrollLeft: 0, scrollTop: 0 };
      return {
        x: event.pageX || (event.clientX +
          (docElement.scrollLeft || body.scrollLeft) -
          (docElement.clientLeft || 0)),
        y: event.pageY || (event.clientY +
          (docElement.scrollTop || body.scrollTop) -
          (docElement.clientTop || 0))
      };
    },

    pointerX: function(event) { return Event.pointer(event).x },
    pointerY: function(event) { return Event.pointer(event).y },

    stop: function(event) {
      Event.extend(event);
      event.preventDefault();
      event.stopPropagation();
      event.stopped =3D true;
    }
  };
})();

Event.extend =3D (function() {
  var methods =3D Object.keys(Event.Methods).inject({ }, function(m, =
name) {
    m[name] =3D Event.Methods[name].methodize();
    return m;
  });

  if (Prototype.Browser.IE) {
    Object.extend(methods, {
      stopPropagation: function() { this.cancelBubble =3D true },
      preventDefault:  function() { this.returnValue =3D false },
      inspect: function() { return "[object Event]" }
    });

    return function(event) {
      if (!event) return false;
      if (event._extendedByPrototype) return event;

      event._extendedByPrototype =3D Prototype.emptyFunction;
      var pointer =3D Event.pointer(event);
      Object.extend(event, {
        target: event.srcElement,
        relatedTarget: Event.relatedTarget(event),
        pageX:  pointer.x,
        pageY:  pointer.y
      });
      return Object.extend(event, methods);
    };

  } else {
    Event.prototype =3D Event.prototype || =
document.createEvent("HTMLEvents")['__proto__'];
    Object.extend(Event.prototype, methods);
    return Prototype.K;
  }
})();

Object.extend(Event, (function() {
  var cache =3D Event.cache;

  function getEventID(element) {
    if (element._prototypeEventID) return element._prototypeEventID[0];
    arguments.callee.id =3D arguments.callee.id || 1;
    return element._prototypeEventID =3D [++arguments.callee.id];
  }

  function getDOMEventName(eventName) {
    if (eventName && eventName.include(':')) return "dataavailable";
    return eventName;
  }

  function getCacheForID(id) {
    return cache[id] =3D cache[id] || { };
  }

  function getWrappersForEventName(id, eventName) {
    var c =3D getCacheForID(id);
    return c[eventName] =3D c[eventName] || [];
  }

  function createWrapper(element, eventName, handler) {
    var id =3D getEventID(element);
    var c =3D getWrappersForEventName(id, eventName);
    if (c.pluck("handler").include(handler)) return false;

    var wrapper =3D function(event) {
      if (!Event || !Event.extend ||
        (event.eventName && event.eventName !=3D eventName))
          return false;

      Event.extend(event);
      handler.call(element, event);
    };

    wrapper.handler =3D handler;
    c.push(wrapper);
    return wrapper;
  }

  function findWrapper(id, eventName, handler) {
    var c =3D getWrappersForEventName(id, eventName);
    return c.find(function(wrapper) { return wrapper.handler =3D=3D =
handler });
  }

  function destroyWrapper(id, eventName, handler) {
    var c =3D getCacheForID(id);
    if (!c[eventName]) return false;
    c[eventName] =3D c[eventName].without(findWrapper(id, eventName, =
handler));
  }

  function destroyCache() {
    for (var id in cache)
      for (var eventName in cache[id])
        cache[id][eventName] =3D null;
  }


  // Internet Explorer needs to remove event handlers on page unload
  // in order to avoid memory leaks.
  if (window.attachEvent) {
    window.attachEvent("onunload", destroyCache);
  }

  // Safari has a dummy event handler on page unload so that it won't
  // use its bfcache. Safari <=3D 3.1 has an issue with restoring the =
"document"
  // object when page is returned to via the back button using its =
bfcache.
  if (Prototype.Browser.WebKit) {
    window.addEventListener('unload', Prototype.emptyFunction, false);
  }

  return {
    observe: function(element, eventName, handler) {
      element =3D $(element);
      var name =3D getDOMEventName(eventName);

      var wrapper =3D createWrapper(element, eventName, handler);
      if (!wrapper) return element;

      if (element.addEventListener) {
        element.addEventListener(name, wrapper, false);
      } else {
        element.attachEvent("on" + name, wrapper);
      }

      return element;
    },

    stopObserving: function(element, eventName, handler) {
      element =3D $(element);
      var id =3D getEventID(element), name =3D =
getDOMEventName(eventName);

      if (!handler && eventName) {
        getWrappersForEventName(id, eventName).each(function(wrapper) {
          element.stopObserving(eventName, wrapper.handler);
        });
        return element;

      } else if (!eventName) {
        Object.keys(getCacheForID(id)).each(function(eventName) {
          element.stopObserving(eventName);
        });
        return element;
      }

      var wrapper =3D findWrapper(id, eventName, handler);
      if (!wrapper) return element;

      if (element.removeEventListener) {
        element.removeEventListener(name, wrapper, false);
      } else {
        element.detachEvent("on" + name, wrapper);
      }

      destroyWrapper(id, eventName, handler);

      return element;
    },

    fire: function(element, eventName, memo) {
      element =3D $(element);
      if (element =3D=3D document && document.createEvent && =
!element.dispatchEvent)
        element =3D document.documentElement;

      var event;
      if (document.createEvent) {
        event =3D document.createEvent("HTMLEvents");
        event.initEvent("dataavailable", true, true);
      } else {
        event =3D document.createEventObject();
        event.eventType =3D "ondataavailable";
      }

      event.eventName =3D eventName;
      event.memo =3D memo || { };

      if (document.createEvent) {
        element.dispatchEvent(event);
      } else {
        element.fireEvent(event.eventType, event);
      }

      return Event.extend(event);
    }
  };
})());

Object.extend(Event, Event.Methods);

Element.addMethods({
  fire:          Event.fire,
  observe:       Event.observe,
  stopObserving: Event.stopObserving
});

Object.extend(document, {
  fire:          Element.Methods.fire.methodize(),
  observe:       Element.Methods.observe.methodize(),
  stopObserving: Element.Methods.stopObserving.methodize(),
  loaded:        false
});

(function() {
  /* Support for the DOMContentLoaded event is based on work by Dan =
Webb,
     Matthias Miller, Dean Edwards and John Resig. */

  var timer;

  function fireContentLoadedEvent() {
    if (document.loaded) return;
    if (timer) window.clearInterval(timer);
    document.fire("dom:loaded");
    document.loaded =3D true;
  }

  if (document.addEventListener) {
    if (Prototype.Browser.WebKit) {
      timer =3D window.setInterval(function() {
        if (/loaded|complete/.test(document.readyState))
          fireContentLoadedEvent();
      }, 0);

      Event.observe(window, "load", fireContentLoadedEvent);

    } else {
      document.addEventListener("DOMContentLoaded",
        fireContentLoadedEvent, false);
    }

  } else {
    document.write("<script id=3D__onDOMContentLoaded defer =
src=3D//:><\/script>");
    $("__onDOMContentLoaded").onreadystatechange =3D function() {
      if (this.readyState =3D=3D "complete") {
        this.onreadystatechange =3D null;
        fireContentLoadedEvent();
      }
    };
  }
})();
/*------------------------------- DEPRECATED =
-------------------------------*/

Hash.toQueryString =3D Object.toQueryString;

var Toggle =3D { display: Element.toggle };

Element.Methods.childOf =3D Element.Methods.descendantOf;

var Insertion =3D {
  Before: function(element, content) {
    return Element.insert(element, {before:content});
  },

  Top: function(element, content) {
    return Element.insert(element, {top:content});
  },

  Bottom: function(element, content) {
    return Element.insert(element, {bottom:content});
  },

  After: function(element, content) {
    return Element.insert(element, {after:content});
  }
};

var $continue =3D new Error('"throw $continue" is deprecated, use =
"return" instead');

// This should be moved to script.aculo.us; notice the deprecated =
methods
// further below, that map to the newer Element methods.
var Position =3D {
  // set to true if needed, warning: firefox performance problems
  // NOT neeeded for page scrolling, only if draggable contained in
  // scrollable elements
  includeScrollOffsets: false,

  // must be called before calling withinIncludingScrolloffset, every =
time the
  // page is scrolled
  prepare: function() {
    this.deltaX =3D  window.pageXOffset
                || document.documentElement.scrollLeft
                || document.body.scrollLeft
                || 0;
    this.deltaY =3D  window.pageYOffset
                || document.documentElement.scrollTop
                || document.body.scrollTop
                || 0;
  },

  // caches x/y coordinate pair to use with overlap
  within: function(element, x, y) {
    if (this.includeScrollOffsets)
      return this.withinIncludingScrolloffsets(element, x, y);
    this.xcomp =3D x;
    this.ycomp =3D y;
    this.offset =3D Element.cumulativeOffset(element);

    return (y >=3D this.offset[1] &&
            y <  this.offset[1] + element.offsetHeight &&
            x >=3D this.offset[0] &&
            x <  this.offset[0] + element.offsetWidth);
  },

  withinIncludingScrolloffsets: function(element, x, y) {
    var offsetcache =3D Element.cumulativeScrollOffset(element);

    this.xcomp =3D x + offsetcache[0] - this.deltaX;
    this.ycomp =3D y + offsetcache[1] - this.deltaY;
    this.offset =3D Element.cumulativeOffset(element);

    return (this.ycomp >=3D this.offset[1] &&
            this.ycomp <  this.offset[1] + element.offsetHeight &&
            this.xcomp >=3D this.offset[0] &&
            this.xcomp <  this.offset[0] + element.offsetWidth);
  },

  // within must be called directly before
  overlap: function(mode, element) {
    if (!mode) return 0;
    if (mode =3D=3D 'vertical')
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
        element.offsetHeight;
    if (mode =3D=3D 'horizontal')
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
        element.offsetWidth;
  },

  // Deprecation layer -- use newer Element methods now (1.5.2).

  cumulativeOffset: Element.Methods.cumulativeOffset,

  positionedOffset: Element.Methods.positionedOffset,

  absolutize: function(element) {
    Position.prepare();
    return Element.absolutize(element);
  },

  relativize: function(element) {
    Position.prepare();
    return Element.relativize(element);
  },

  realOffset: Element.Methods.cumulativeScrollOffset,

  offsetParent: Element.Methods.getOffsetParent,

  page: Element.Methods.viewportOffset,

  clone: function(source, target, options) {
    options =3D options || { };
    return Element.clonePosition(target, source, options);
  }
};

/*-----------------------------------------------------------------------=
---*/

if (!document.getElementsByClassName) document.getElementsByClassName =
=3D function(instanceMethods){
  function iter(name) {
    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' =
" + name + " ')]";
  }

  instanceMethods.getElementsByClassName =3D =
Prototype.BrowserFeatures.XPath ?
  function(element, className) {
    className =3D className.toString().strip();
    var cond =3D /\s/.test(className) ? $w(className).map(iter).join('') =
: iter(className);
    return cond ? document._getElementsByXPath('.//*' + cond, element) : =
[];
  } : function(element, className) {
    className =3D className.toString().strip();
    var elements =3D [], classNames =3D (/\s/.test(className) ? =
$w(className) : null);
    if (!classNames && !className) return elements;

    var nodes =3D $(element).getElementsByTagName('*');
    className =3D ' ' + className + ' ';

    for (var i =3D 0, child, cn; child =3D nodes[i]; i++) {
      if (child.className && (cn =3D ' ' + child.className + ' ') && =
(cn.include(className) ||
          (classNames && classNames.all(function(name) {
            return !name.toString().blank() && cn.include(' ' + name + ' =
');
          }))))
        elements.push(Element.extend(child));
    }
    return elements;
  };

  return function(className, parentElement) {
    return $(parentElement || =
document.body).getElementsByClassName(className);
  };
}(Element.Methods);

/*-----------------------------------------------------------------------=
---*/

Element.ClassNames =3D Class.create();
Element.ClassNames.prototype =3D {
  initialize: function(element) {
    this.element =3D $(element);
  },

  _each: function(iterator) {
    this.element.className.split(/\s+/).select(function(name) {
      return name.length > 0;
    })._each(iterator);
  },

  set: function(className) {
    this.element.className =3D className;
  },

  add: function(classNameToAdd) {
    if (this.include(classNameToAdd)) return;
    this.set($A(this).concat(classNameToAdd).join(' '));
  },

  remove: function(classNameToRemove) {
    if (!this.include(classNameToRemove)) return;
    this.set($A(this).without(classNameToRemove).join(' '));
  },

  toString: function() {
    return $A(this).join(' ');
  }
};

Object.extend(Element.ClassNames.prototype, Enumerable);

/*-----------------------------------------------------------------------=
---*/

Element.addMethods();
------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/javascript/effects.js

// script.aculo.us effects.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 =
2007=0A=
=0A=
// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, =
http://mir.aculo.us)=0A=
// Contributors:=0A=
//  Justin Palmer (http://encytemedia.com/)=0A=
//  Mark Pilgrim (http://diveintomark.org/)=0A=
//  Martin Bialasinki=0A=
// =0A=
// script.aculo.us is freely distributable under the terms of an =
MIT-style license.=0A=
// For details, see the script.aculo.us web site: =
http://script.aculo.us/ =0A=
=0A=
// converts rgb() and #xxx to #xxxxxx format,  =0A=
// returns self (or first argument) if not convertable  =0A=
String.prototype.parseColor =3D function() {  =0A=
  var color =3D '#';=0A=
  if(this.slice(0,4) =3D=3D 'rgb(') {  =0A=
    var cols =3D this.slice(4,this.length-1).split(',');  =0A=
    var i=3D0; do { color +=3D parseInt(cols[i]).toColorPart() } while =
(++i<3);  =0A=
  } else {  =0A=
    if(this.slice(0,1) =3D=3D '#') {  =0A=
      if(this.length=3D=3D4) for(var i=3D1;i<4;i++) color +=3D =
(this.charAt(i) + this.charAt(i)).toLowerCase();  =0A=
      if(this.length=3D=3D7) color =3D this.toLowerCase();  =0A=
    }  =0A=
  }  =0A=
  return(color.length=3D=3D7 ? color : (arguments[0] || this));  =0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.collectTextNodes =3D function(element) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.collectTextNodesIgnoreClass =3D function(element, className) {  =0A=
  return $A($(element).childNodes).collect( function(node) {=0A=
    return (node.nodeType=3D=3D3 ? node.nodeValue : =0A=
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? =0A=
        Element.collectTextNodesIgnoreClass(node, className) : ''));=0A=
  }).flatten().join('');=0A=
}=0A=
=0A=
Element.setContentZoom =3D function(element, percent) {=0A=
  element =3D $(element);  =0A=
  element.setStyle({fontSize: (percent/100) + 'em'});   =0A=
  if(Prototype.Browser.WebKit) window.scrollBy(0,0);=0A=
  return element;=0A=
}=0A=
=0A=
Element.getInlineOpacity =3D function(element){=0A=
  return $(element).style.opacity || '';=0A=
}=0A=
=0A=
Element.forceRerendering =3D function(element) {=0A=
  try {=0A=
    element =3D $(element);=0A=
    var n =3D document.createTextNode(' ');=0A=
    element.appendChild(n);=0A=
    element.removeChild(n);=0A=
  } catch(e) { }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
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(Prototype.Browser.IE) tagifyStyle +=3D ';zoom:1';=0A=
    =0A=
    element =3D $(element);=0A=
    $A(element.childNodes).each( function(child) {=0A=
      if(child.nodeType=3D=3D3) {=0A=
        child.nodeValue.toArray().each( function(character) {=0A=
          element.insertBefore(=0A=
            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=
    var pos =3D ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;=0A=
    return (pos > 1 ? 1 : pos);=0A=
  },=0A=
  wobble: function(pos) {=0A=
    return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;=0A=
  },=0A=
  pulse: function(pos, pulses) { =0A=
    pulses =3D pulses || 5; =0A=
    return (=0A=
      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), 15);=0A=
  },=0A=
  remove: function(effect) {=0A=
    this.effects =3D this.effects.reject(function(e) { return =
e=3D=3Deffect });=0A=
    if(this.effects.length =3D=3D 0) {=0A=
      clearInterval(this.interval);=0A=
      this.interval =3D null;=0A=
    }=0A=
  },=0A=
  loop: function() {=0A=
    var timePos =3D new Date().getTime();=0A=
    for(var i=3D0, len=3Dthis.effects.length;i<len;i++) =0A=
      this.effects[i] && this.effects[i].loop(timePos);=0A=
  }=0A=
});=0A=
=0A=
Effect.Queues =3D {=0A=
  instances: $H(),=0A=
  get: function(queueName) {=0A=
    if(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:        100,   // 100=3D assume 66fps max.=0A=
  sync:       false, // true for combining=0A=
  from:       0.0,=0A=
  to:         1.0,=0A=
  delay:      0.0,=0A=
  queue:      'parallel'=0A=
}=0A=
=0A=
Effect.Base =3D function() {};=0A=
Effect.Base.prototype =3D {=0A=
  position: null,=0A=
  start: function(options) {=0A=
    function codeForEvent(options,eventName){=0A=
      return (=0A=
        (options[eventName+'Internal'] ? =
'this.options.'+eventName+'Internal(this);' : '') +=0A=
        (options[eventName] ? 'this.options.'+eventName+'(this);' : '')=0A=
      );=0A=
    }=0A=
    if(options.transition =3D=3D=3D false) options.transition =3D =
Effect.Transitions.linear;=0A=
    this.options      =3D =
Object.extend(Object.extend({},Effect.DefaultOptions), options || {});=0A=
    this.currentFrame =3D 0;=0A=
    this.state        =3D 'idle';=0A=
    this.startOn      =3D this.options.delay*1000;=0A=
    this.finishOn     =3D this.startOn+(this.options.duration*1000);=0A=
    this.fromToDelta  =3D this.options.to-this.options.from;=0A=
    this.totalTime    =3D this.finishOn-this.startOn;=0A=
    this.totalFrames  =3D this.options.fps*this.options.duration;=0A=
    =0A=
    eval('this.render =3D function(pos){ '+=0A=
      'if(this.state=3D=3D"idle"){this.state=3D"running";'+=0A=
      codeForEvent(options,'beforeSetup')+=0A=
      (this.setup ? 'this.setup();':'')+ =0A=
      codeForEvent(options,'afterSetup')+=0A=
      '};if(this.state=3D=3D"running"){'+=0A=
      =
'pos=3Dthis.options.transition(pos)*'+this.fromToDelta+'+'+this.options.f=
rom+';'+=0A=
      'this.position=3Dpos;'+=0A=
      codeForEvent(options,'beforeUpdate')+=0A=
      (this.update ? 'this.update(pos);':'')+=0A=
      codeForEvent(options,'afterUpdate')+=0A=
      '}}');=0A=
    =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.totalTime,=0A=
          frame =3D Math.round(pos * this.totalFrames);=0A=
      if(frame > this.currentFrame) {=0A=
        this.render(pos);=0A=
        this.currentFrame =3D frame;=0A=
      }=0A=
    }=0A=
  },=0A=
  cancel: function() {=0A=
    if(!this.options.sync)=0A=
      Effect.Queues.get(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=
    var data =3D $H();=0A=
    for(property in this)=0A=
      if(typeof this[property] !=3D 'function') data[property] =3D =
this[property];=0A=
    return '#<Effect:' + data.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(Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))=0A=
      this.element.setStyle({zoom: 1});=0A=
    var options =3D Object.extend({=0A=
      from: this.element.getOpacity() || 0.0,=0A=
      to:   1.0=0A=
    }, arguments[1] || {});=0A=
    this.start(options);=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setOpacity(position);=0A=
  }=0A=
});=0A=
=0A=
Effect.Move =3D Class.create();=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=
    if (!this.options.keepBackgroundImage) {=0A=
      this.oldStyle.backgroundImage =3D =
this.element.getStyle('background-image');=0A=
      this.element.setStyle({backgroundImage: 'none'});=0A=
    }=0A=
    if(!this.options.endcolor)=0A=
      this.options.endcolor =3D =
this.element.getStyle('background-color').parseColor('#ffffff');=0A=
    if(!this.options.restorecolor)=0A=
      this.options.restorecolor =3D =
this.element.getStyle('background-color');=0A=
    // init color calculations=0A=
    this._base  =3D $R(0,2).map(function(i){ return =
parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));=0A=
    this._delta =3D $R(0,2).map(function(i){ return =
parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] =
}.bind(this));=0A=
  },=0A=
  update: function(position) {=0A=
    this.element.setStyle({backgroundColor: =
$R(0,2).inject('#',function(m,v,i){=0A=
      return =
m+(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=
Effect.Morph =3D Class.create();=0A=
Object.extend(Object.extend(Effect.Morph.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=
      style: {}=0A=
    }, arguments[1] || {});=0A=
    if (typeof options.style =3D=3D 'string') {=0A=
      if(options.style.indexOf(':') =3D=3D -1) {=0A=
        var cssText =3D '', selector =3D '.' + options.style;=0A=
        $A(document.styleSheets).reverse().each(function(styleSheet) {=0A=
          if (styleSheet.cssRules) cssRules =3D styleSheet.cssRules;=0A=
          else if (styleSheet.rules) cssRules =3D styleSheet.rules;=0A=
          $A(cssRules).reverse().each(function(rule) {=0A=
            if (selector =3D=3D rule.selectorText) {=0A=
              cssText =3D rule.style.cssText;=0A=
              throw $break;=0A=
            }=0A=
          });=0A=
          if (cssText) throw $break;=0A=
        });=0A=
        this.style =3D cssText.parseStyle();=0A=
        options.afterFinishInternal =3D function(effect){=0A=
          effect.element.addClassName(effect.options.style);=0A=
          effect.transforms.each(function(transform) {=0A=
            if(transform.style !=3D 'opacity')=0A=
              effect.element.style[transform.style] =3D '';=0A=
          });=0A=
        }=0A=
      } else this.style =3D options.style.parseStyle();=0A=
    } else this.style =3D $H(options.style)=0A=
    this.start(options);=0A=
  },=0A=
  setup: function(){=0A=
    function parseColor(color){=0A=
      if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) =
color =3D '#ffffff';=0A=
      color =3D color.parseColor();=0A=
      return $R(0,2).map(function(i){=0A=
        return parseInt( color.slice(i*2+1,i*2+3), 16 ) =0A=
      });=0A=
    }=0A=
    this.transforms =3D this.style.map(function(pair){=0A=
      var property =3D pair[0], value =3D pair[1], unit =3D null;=0A=
=0A=
      if(value.parseColor('#zzzzzz') !=3D '#zzzzzz') {=0A=
        value =3D value.parseColor();=0A=
        unit  =3D 'color';=0A=
      } else if(property =3D=3D 'opacity') {=0A=
        value =3D parseFloat(value);=0A=
        if(Prototype.Browser.IE && =
(!this.element.currentStyle.hasLayout))=0A=
          this.element.setStyle({zoom: 1});=0A=
      } else if(Element.CSS_LENGTH.test(value)) {=0A=
          var components =3D value.match(/^([\+\-]?[0-9\.]+)(.*)$/);=0A=
          value =3D parseFloat(components[1]);=0A=
          unit =3D (components.length =3D=3D 3) ? components[2] : null;=0A=
      }=0A=
=0A=
      var originalValue =3D this.element.getStyle(property);=0A=
      return { =0A=
        style: property.camelize(), =0A=
        originalValue: unit=3D=3D'color' ? parseColor(originalValue) : =
parseFloat(originalValue || 0), =0A=
        targetValue: unit=3D=3D'color' ? parseColor(value) : value,=0A=
        unit: unit=0A=
      };=0A=
    }.bind(this)).reject(function(transform){=0A=
      return (=0A=
        (transform.originalValue =3D=3D transform.targetValue) ||=0A=
        (=0A=
          transform.unit !=3D 'color' &&=0A=
          (isNaN(transform.originalValue) || =
isNaN(transform.targetValue))=0A=
        )=0A=
      )=0A=
    });=0A=
  },=0A=
  update: function(position) {=0A=
    var style =3D {}, transform, i =3D this.transforms.length;=0A=
    while(i--)=0A=
      style[(transform =3D this.transforms[i]).style] =3D =0A=
        transform.unit=3D=3D'color' ? '#'+=0A=
          (Math.round(transform.originalValue[0]+=0A=
            =
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorP=
art() +=0A=
          (Math.round(transform.originalValue[1]+=0A=
            =
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorP=
art() +=0A=
          (Math.round(transform.originalValue[2]+=0A=
            =
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorP=
art() :=0A=
        transform.originalValue + Math.round(=0A=
          ((transform.targetValue - transform.originalValue) * position) =
* 1000)/1000 + transform.unit;=0A=
    this.element.setStyle(style, true);=0A=
  }=0A=
});=0A=
=0A=
Effect.Transform =3D Class.create();=0A=
Object.extend(Effect.Transform.prototype, {=0A=
  initialize: function(tracks){=0A=
    this.tracks  =3D [];=0A=
    this.options =3D arguments[1] || {};=0A=
    this.addTracks(tracks);=0A=
  },=0A=
  addTracks: function(tracks){=0A=
    tracks.each(function(track){=0A=
      var data =3D $H(track).values().first();=0A=
      this.tracks.push($H({=0A=
        ids:     $H(track).keys().first(),=0A=
        effect:  Effect.Morph,=0A=
        options: { style: data }=0A=
      }));=0A=
    }.bind(this));=0A=
    return this;=0A=
  },=0A=
  play: function(){=0A=
    return new Effect.Parallel(=0A=
      this.tracks.map(function(track){=0A=
        var elements =3D [$(track.ids) || $$(track.ids)].flatten();=0A=
        return elements.map(function(e){ return new track.effect(e, =
Object.extend({ sync:true }, track.options)) });=0A=
      }).flatten(),=0A=
      this.options=0A=
    );=0A=
  }=0A=
});=0A=
=0A=
Element.CSS_PROPERTIES =3D $w(=0A=
  'backgroundColor backgroundPosition borderBottomColor =
borderBottomStyle ' + =0A=
  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +=0A=
  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +=0A=
  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +=0A=
  'fontSize fontWeight height left letterSpacing lineHeight ' +=0A=
  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight =
'+=0A=
  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +=0A=
  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +=0A=
  'right textIndent top width wordSpacing zIndex');=0A=
  =0A=
Element.CSS_LENGTH =3D =
/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;=0A=
=0A=
String.prototype.parseStyle =3D function(){=0A=
  var element =3D document.createElement('div');=0A=
  element.innerHTML =3D '<div style=3D"' + this + '"></div>';=0A=
  var style =3D element.childNodes[0].style, styleRules =3D $H();=0A=
  =0A=
  Element.CSS_PROPERTIES.each(function(property){=0A=
    if(style[property]) styleRules[property] =3D style[property]; =0A=
  });=0A=
  if(Prototype.Browser.IE && this.indexOf('opacity') > -1) {=0A=
    styleRules.opacity =3D =
this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];=0A=
  }=0A=
  return styleRules;=0A=
};=0A=
=0A=
Element.morph =3D function(element, style) {=0A=
  new Effect.Morph(element, Object.extend({ style: style }, arguments[2] =
|| {}));=0A=
  return element;=0A=
};=0A=
=0A=
['getInlineOpacity','forceRerendering','setContentZoom',=0A=
 'collectTextNodes','collectTextNodesIgnoreClass','morph'].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.dasherize().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_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: 7bit
Content-Location: http://www.eteamz.com/z/javascript/logout_bar.js

// build the request object
var request = $H( {
	method :'put',
	id :0,
	params : {
		e_site_id :0
	}
});

// make the request
new Ajax.Request('/proxy.cfm?service=logout_bar', {
	method :'post',
	parameters :'request=' + request.toJSON(),
	onSuccess : function(response) {
		var result = response.responseText.evalJSON().result;
		
		if (result.logged_in == 'true') {
			if ($('logout_bar').show()) {
				$('login_name').update(result.name);
			}
		}
		else{
			$('login_bar').show();
		}
	}
});
------=_NextPart_000_0002_01CB185E.F8698B10
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.eteamz.com/z/javascript/tan_code_tnt2sc_integration_prod.js

/* SiteCatalyst code version: H.21.
Copyright 1996-2010 Adobe, Inc. All Rights Reserved
More info available at http://www.omniture.com */
/************************ ADDITIONAL FEATURES ************************
     Plugins
*/

var s_account=3D"aneteamzprod,anglobalprod"
var s_tan=3Ds_gi(s_account)
/************************** CONFIG SECTION **************************/
/* You may add or alter any code config here. */
/* Conversion Config */
s_tan.currencyCode=3D"USD"
/* Link Tracking Config */
s_tan.trackDownloadLinks=3Dtrue
s_tan.trackExternalLinks=3Dtrue
s_tan.trackInlineStats=3Dtrue
s_tan.linkDownloadFileTypes=3D"exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,do=
cx,xls,xlsx,ppt,pptx"
s_tan.linkInternalFilters=3D"javascript:,eteamz.com"
s_tan.linkLeaveQueryString=3Dfalse
s_tan.linkTrackVars=3D"prop26,prop27,prop28,prop29"
s_tan.linkTrackEvents=3D"None"
/* Plugin Config */
s_tan.usePlugins=3Dtrue

/* Time Parting */
s_tan.dstStart=3D"03/14/2010";
s_tan.dstEnd=3D"11/07/2010";
s_tan.currentYear=3D"2010";


function s_tan_doPlugins(s_tan) {
	/* Add calls to plugins here */
/* External Campaign Tracking */
if(!s_tan.campaign)
	s_tan.campaign=3Ds_tan.getQueryParam('cmp')
	s_tan.campaign=3Ds_tan.getValOnce(s_tan.campaign,'s_tan_campaign',0)
=09
/* Site Search */
if(s_tan.prop11){
        s_tan.prop11=3Ds_tan.prop11.toLowerCase();
        s_tan.prop12=3Ds_tan.prop12.toLowerCase();
        s_tan.prop13=3Ds_tan.prop13.toLowerCase();
        s_tan.prop14=3Ds_tan.prop14.toLowerCase();
        s_tan.prop15=3Ds_tan.prop15.toLowerCase();
	s_tan.eVar11=3D"D=3Dc11"
  	s_tan.eVar12=3D"D=3Dc12"
  	s_tan.eVar13=3D"D=3Dc13"
  	s_tan.eVar14=3D"D=3Dc14"
  	s_tan.eVar15=3D"D=3Dc15"

        var t_search=3Ds_tan.getValOnce(s_tan.eVar11,'ev11',0);
        if(t_search){
               s_tan.events=3Ds_tan.apl(s_tan.events,"event1",",",2);
        }
}

/* Set Page View Event */
s_tan.events=3Ds_tan.apl(s_tan.events,'event2',',',2)

/* Set Time Parting Variables - SAMPLE EST */
if(!s_tan.prop16&&!s_tan.eVar16) =
s_tan.prop16=3Ds_tan.eVar16=3Ds_tan.getTimeParting('h','-8'); // Set =
hour=20
if(!s_tan.prop17&&!s_tan.eVar17) =
s_tan.prop17=3Ds_tan.eVar17=3Ds_tan.getTimeParting('d','-8'); // Set day =

if(!s_tan.prop18&&!s_tan.eVar18) =
s_tan.prop18=3Ds_tan.eVar18=3Ds_tan.getTimeParting('w','-8'); // Set =
weekday=20

/* Link Tracking */
	s_tan.hbx_lt =3D "auto" // manual, auto
	s_tan.setupLinkTrack("prop26,prop27,prop28,prop29","SC_LINKS");

	/* Enhanced download tracking */
	s_tan.url=3Ds_tan.downloadLinkHandler();
	if(s_tan.url){
		 //Track FileName
                 	=
s_tan.eVar27=3Ds_tan.url.substring(s_tan.url.lastIndexOf("/")+1,s_tan.url=
.length);
			s_tan.prop9=3D"D=3Dv27";
			s_tan.prop8=3D"D=3DpageName";
	                s_tan.events=3Ds_tan.apl(s_tan.events,"event13",",",2); =
                                        =20
                 //Track eVar & Event
                        =
s_tan.linkTrackVars=3Ds_tan.linkTrackVars+",prop8,prop9,eVar27,events";
                        s_tan.linkTrackEvents=3D"event13";
	}


/* Copy props to eVars */
if(s_tan.pageName&&!s_tan.eVar9) s_tan.eVar9=3D"D=3DpageName";
if(s_tan.channel&&!s_tan.eVar1) s_tan.eVar1=3D"D=3Dch";
if(s_tan.prop1&&!s_tan.eVar2) s_tan.eVar2=3D"D=3Dc1";
if(s_tan.prop2&&!s_tan.eVar3) s_tan.eVar3=3D"D=3Dc2";
if(s_tan.prop3&&!s_tan.eVar4) s_tan.eVar4=3D"D=3Dc3";
if(s_tan.prop4&&!s_tan.eVar5) s_tan.eVar5=3D"D=3Dc4";
if(s_tan.prop5&&!s_tan.eVar6) s_tan.eVar6=3D"D=3Dc5";
if(s_tan.prop6&&!s_tan.eVar7) s_tan.eVar7=3D"D=3Dc6";
if(s_tan.prop7&&!s_tan.eVar8) s_tan.eVar8=3D"D=3Dc7";
if(s_tan.prop10&&!s_tan.eVar10) s_tan.eVar10=3D"D=3Dc10";
if(s_tan.prop16&&!s_tan.eVar16) s_tan.eVar16=3D"D=3Dc16";
if(s_tan.prop17&&!s_tan.eVar17) s_tan.eVar17=3D"D=3Dc17";
if(s_tan.prop18&&!s_tan.eVar18) s_tan.eVar18=3D"D=3Dc18";
if(s_tan.prop19&&!s_tan.eVar19) s_tan.eVar19=3D"D=3Dc19";
if(s_tan.prop21&&!s_tan.eVar21) s_tan.eVar21=3D"D=3Dc21";
if(s_tan.prop23&&!s_tan.eVar23) s_tan.eVar23=3D"D=3Dc23";
if(s_tan.prop25&&!s_tan.eVar25) s_tan.eVar25=3D"D=3Dc25";
if(s_tan.purchaseID&&!s_tan.eVar28) s_tan.eVar28=3D"D=3DpurchaseID";
if(s_tan.prop30&&!s_tan.eVar30) s_tan.eVar30=3D"D=3Dc30";
if(s_tan.prop31&&!s_tan.eVar31) s_tan.eVar31=3D"D=3Dc31";
if(s_tan.prop32&&!s_tan.eVar32) s_tan.eVar32=3D"D=3Dc32";
if(s_tan.prop33&&!s_tan.eVar33) s_tan.eVar33=3D"D=3Dc33";
if(s_tan.prop34&&!s_tan.eVar34) s_tan.eVar34=3D"D=3Dc34";
if(s_tan.prop35&&!s_tan.eVar35) s_tan.eVar35=3D"D=3Dc35";
if(s_tan.prop36&&!s_tan.eVar36) s_tan.eVar36=3D"D=3Dc36";
if(s_tan.prop37&&!s_tan.eVar37) s_tan.eVar37=3D"D=3Dc37";
if(s_tan.prop38&&!s_tan.eVar38) s_tan.eVar38=3D"D=3Dc38";
if(s_tan.prop39&&!s_tan.eVar39) s_tan.eVar39=3D"D=3Dc39";
if(s_tan.prop40&&!s_tan.eVar40) s_tan.eVar40=3D"D=3Dc40";

	/* Plugin Example: trackTNT 1.0 */
	s_tan.tnt =3D s_tan.trackTNT();

}
s_tan.doPlugins=3Ds_tan_doPlugins
/************************** PLUGINS SECTION *************************/
/* You may insert any plugins you wish to use here.                 */

/*
 * Plugin: getAndPersistValue 0.3 - get a value on every page
 */
s_tan.getAndPersistValue=3Dnew Function("v","c","e",""
+"var s=3Dthis,a=3Dnew =
Date;e=3De?e:0;a.setTime(a.getTime()+e*86400000);if("
+"v)s.c_w(c,v,e?a:0);return s.c_r(c);");

/*
 * Plugin: downloadLinkHandler 0.5 - identify and report download links
 */
s_tan.downloadLinkHandler=3Dnew Function("p",""
+"var =
s=3Dthis,h=3Ds.p_gh(),n=3D'linkDownloadFileTypes',i,t;if(!h||(s.linkT"
+"ype&&(h||s.linkName)))return =
'';i=3Dh.indexOf('?');t=3Ds[n];s[n]=3Dp?p:t;"
+"if(s.lt(h)=3D=3D'd')s.linkType=3D'd';else h=3D'';s[n]=3Dt;return h;");

/*
 * Utility Function: p_gh
 */
s_tan.p_gh=3Dnew Function(""
+"var s=3Dthis;if(!s.eo&&!s.lnk)return '';var =
o=3Ds.eo?s.eo:s.lnk,y=3Ds.ot("
+"o),n=3Ds.oid(o),x=3Do.s_oidt;if(s.eo&&o=3D=3Ds.eo){while(o&&!n&&y!=3D'B=
ODY'){"
+"o=3Do.parentElement?o.parentElement:o.parentNode;if(!o)return =
'';y=3Ds."
+"ot(o);n=3Ds.oid(o);x=3Do.s_oidt}}return o.href?o.href:'';");

/*
 * Plugin: setupLinkTrack 2.0 - return links for HBX-based link=20
 *         tracking in SiteCatalyst (requires s.split and s.apl)
 */
s_tan.setupLinkTrack=3Dnew Function("vl","c",""
+"var s=3Dthis;var =
l=3Ds.d.links,cv,cva,vla,h,i,l,t,b,o,y,n,oc,d=3D'';cv=3Ds."
+"c_r(c);if(vl&&cv!=3D''){cva=3Ds.split(cv,'^^');vla=3Ds.split(vl,',');fo=
r("
+"x in vla)s._hbxm(vla[x])?s[vla[x]]=3Dcva[x]:'';}s.c_w(c,'',0);if(!s.e"
+"o&&!s.lnk)return =
'';o=3Ds.eo?s.eo:s.lnk;y=3Ds.ot(o);n=3Ds.oid(o);if(s.eo&"
+"&o=3D=3Ds.eo){while(o&&!n&&y!=3D'BODY'){o=3Do.parentElement?o.parentEle=
ment"
+":o.parentNode;if(!o)return =
'';y=3Ds.ot(o);n=3Ds.oid(o);}for(i=3D0;i<4;i++"
+")if(o.tagName)if(o.tagName.toLowerCase()!=3D'a')if(o.tagName.toLowerC"
+"ase()!=3D'area')o=3Do.parentElement;}b=3Ds._LN(o);o.lid=3Db[0];o.lpos=3D=
b[1];"
+"if(s.hbx_lt&&s.hbx_lt!=3D'manual'){if((o.tagName&&s._TL(o.tagName)=3D=3D=
'"
+"area')){if(!s._IL(o.lid)){if(o.parentNode){if(o.parentNode.name)o.l"
+"id=3Do.parentNode.name;else =
o.lid=3Do.parentNode.id}}if(!s._IL(o.lpos))"
+"o.lpos=3Do.coords}else{if(s._IL(o.lid)<1)o.lid=3Ds._LS(o.lid=3Do.text?o=
.t"
+"ext:o.innerText?o.innerText:'');if(!s._IL(o.lid)||s._II(s._TL(o.lid"
+"),'<img')>-1){h=3D''+o.innerHTML;bu=3Ds._TL(h);i=3Ds._II(bu,'<img');if(=
bu"
+"&&i>-1){eval(\"__f=3D/ src\s*=3D\s*[\'\\\"]?([^\'\\\" =
]+)[\'\\\"]?/i\")"
+";__f.exec(h);if(RegExp.$1)h=3DRegExp.$1}o.lid=3Dh}}}h=3Do.href?o.href:'=
';"
+"i=3Dh.indexOf('?');h=3Ds.linkLeaveQueryString||i<0?h:h.substring(0,i);l=
"
+"=3Ds.linkName?s.linkName:s._hbxln(h);t=3Ds.linkType?s.linkType.toLowerC=
"
+"ase():s.lt(h);oc=3Do.onclick?''+o.onclick:'';cv=3Ds.pageName+'^^'+o.lid=
"
+"+'^^'+s.pageName+' | '+(o.lid=3Do.lid?o.lid:'no &lid')+'^^'+o.lpos;if"
+"(t&&(h||l)){cva=3Ds.split(cv,'^^');vla=3Ds.split(vl,',');for(x in =
vla)s"
+"._hbxm(vla[x])?s[vla[x]]=3Dcva[x]:'';}else if(!t&&oc.indexOf('.tl(')<"
+"0){s.c_w(c,cv,0);}else return ''");
s_tan._IL=3Dnew Function("a","var s=3Dthis;return =
a!=3D'undefined'?a.length:0");
s_tan._II=3Dnew Function("a","b","c","var s=3Dthis;return =
a.indexOf(b,c?c:0)"
);
s_tan._IS=3Dnew Function("a","b","c",""
+"var s=3Dthis;return =
b>s._IL(a)?'':a.substring(b,c!=3Dnull?c:s._IL(a))");
s_tan._LN=3Dnew Function("a","b","c","d",""
+"var =
s=3Dthis;b=3Da.href;b+=3Da.name?a.name:'';c=3Ds._LVP(b,'lid');d=3Ds._LVP(=
"
+"b,'lpos');r"
+"eturn[c,d]");
s_tan._LVP=3Dnew Function("a","b","c","d","e",""
+"var =
s=3Dthis;c=3Ds._II(a,'&'+b+'=3D');c=3Dc<0?s._II(a,'?'+b+'=3D'):c;if(c>-1)=
"
+"{d=3Ds._II(a,'&',c+s._IL(b)+2);e=3Ds._IS(a,c+s._IL(b)+2,d>-1?d:s._IL(a)=
"
+");return e}return ''");
s_tan._LS=3Dnew Function("a",""
+"var =
s=3Dthis,b,c=3D100,d,e,f,g;b=3D(s._IL(a)>c)?escape(s._IS(a,0,c)):esca"
+"pe(a);b=3Ds._LSP(b,'%0A','%20');b=3Ds._LSP(b,'%0D','%20');b=3Ds._LSP(b,=
'%"
+"09','%20');c=3Ds._IP(b,'%20');d=3Ds._NA();e=3D0;for(f=3D0;f<s._IL(c);f+=
+){g"
+"=3Ds._RP(c[f],'%20','');if(s._IL(g)>0){d[e++]=3Dg}}b=3Dd.join('%20');re=
tu"
+"rn unescape(b)");
s_tan._LSP=3Dnew Function("a","b","c","d","var =
s=3Dthis;d=3Ds._IP(a,b);return d"
+".join(c)");
s_tan._IP=3Dnew Function("a","b","var s=3Dthis;return a.split(b)");
s_tan._RP=3Dnew Function("a","b","c","d",""
+"var =
s=3Dthis;d=3Ds._II(a,b);if(d>-1){a=3Ds._RP(s._IS(a,0,d)+','+s._IS(a,d"
+"+s._IL(b),s._IL(a)),b,c)}return a");
s_tan._TL=3Dnew Function("a","var s=3Dthis;return a.toLowerCase()");
s_tan._NA=3Dnew Function("a","var s=3Dthis;return new Array(a?a:0)");
s_tan._hbxm=3Dnew Function("m","var s=3Dthis;return =
(''+m).indexOf('{')<0");
s_tan._hbxln=3Dnew Function("h","var =
s=3Dthis,n=3Ds.linkNames;if(n)return s.pt("
+"n,',','lnf',h);return ''");


/*
 * Plugin: getQueryParam 2.3
 */
s_tan.getQueryParam=3Dnew Function("p","d","u",""
+"var =
s=3Dthis,v=3D'',i,t;d=3Dd?d:'';u=3Du?u:(s.pageURL?s.pageURL:s.wd.locati"
+"on);if(u=3D=3D'f')u=3Ds.gtfs().location;while(p){i=3Dp.indexOf(',');i=3D=
i<0?p"
+".length:i;t=3Ds.p_gpv(p.substring(0,i),u+'');if(t){t=3Dt.indexOf('#')>-=
"
+"1?t.substring(0,t.indexOf('#')):t;}if(t)v+=3Dv?d+t:t;p=3Dp.substring(i=3D=
"
+"=3Dp.length?i:i+1)}return v");
s_tan.p_gpv=3Dnew Function("k","u",""
+"var =
s=3Dthis,v=3D'',i=3Du.indexOf('?'),q;if(k&&i>-1){q=3Du.substring(i+1);v"
+"=3Ds.pt(q,'&','p_gvf',k)}return v");
s_tan.p_gvf=3Dnew Function("t","k",""
+"if(t){var =
s=3Dthis,i=3Dt.indexOf('=3D'),p=3Di<0?t:t.substring(0,i),v=3Di<0?'T"
+"rue':t.substring(i+1);if(p.toLowerCase()=3D=3Dk.toLowerCase())return =
s."
+"epa(v)}return ''");

/*
 * Plugin: getValOnce_v1.0
 */
s_tan.getValOnce=3Dnew Function("v","c","e",""
+"var s=3Dthis,a=3Dnew =
Date,v=3Dv?v:v=3D'',c=3Dc?c:c=3D's_gvo',e=3De?e:0,k=3Ds.c_r(c"
+");if(v){a.setTime(a.getTime()+e*86400000);s.c_w(c,v,e?a:0);}return"
+" v=3D=3Dk?'':v");

/*
 * Plugin: getTimeParting 2.0 - Set timeparting values based on time =
zone
 */
s_tan.getTimeParting=3Dnew Function("t","z",""
+"var s=3Dthis,cy;dc=3Dnew Date('1/1/2000');"
+"if(dc.getDay()!=3D6||dc.getMonth()!=3D0){return'Data Not Available'}"
+"else{;z=3DparseFloat(z);var dsts=3Dnew Date(s.dstStart);"
+"var dste=3Dnew Date(s.dstEnd);fl=3Ddste;cd=3Dnew =
Date();if(cd>dsts&&cd<fl)"
+"{z=3Dz+1}else{z=3Dz};utc=3Dcd.getTime()+(cd.getTimezoneOffset()*60000);=
"
+"tz=3Dnew Date(utc + (3600000*z));thisy=3Dtz.getFullYear();"
+"var =
days=3D['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',"
+"'Saturday'];if(thisy!=3Ds.currentYear){return'Data Not =
Available'}else{;"
+"thish=3Dtz.getHours();thismin=3Dtz.getMinutes();thisd=3Dtz.getDay();"
+"var dow=3Ddays[thisd];var ap=3D'AM';var dt=3D'Weekday';var =
mint=3D'00';"
+"if(thismin>30){mint=3D'30'}if(thish>=3D12){ap=3D'PM';thish=3Dthish-12};=
"
+"if =
(thish=3D=3D0){thish=3D12};if(thisd=3D=3D6||thisd=3D=3D0){dt=3D'Weekend'}=
;"
+"var timestring=3Dthish+':'+mint+ap;if(t=3D=3D'h'){return timestring}"
+"if(t=3D=3D'd'){return dow};if(t=3D=3D'w'){return dt}}};"
);

/*
 * Plugin Utility: apl v1.1
 */
s_tan.apl=3Dnew Function("l","v","d","u",""
+"var s=3Dthis,m=3D0;if(!l)l=3D'';if(u){var =
i,n,a=3Ds.split(l,d);for(i=3D0;i<a."
+"length;i++){n=3Da[i];m=3Dm||(u=3D=3D1?(n=3D=3Dv):(n.toLowerCase()=3D=3D=
v.toLowerCas"
+"e()));}}if(!m)l=3Dl?l+d+v:v;return l");

/*
 * Utility Function: split v1.5 (JS 1.0 compatible)
 */
s_tan.split=3Dnew Function("l","d",""
+"var i,x=3D0,a=3Dnew =
Array;while(l){i=3Dl.indexOf(d);i=3Di>-1?i:l.length;a[x"
+"++]=3Dl.substring(0,i);l=3Dl.substring(i+d.length);}return a");

/*
 * Function - read combined cookies v 0.3
 */
if(!s_tan.__ccucr){s_tan.c_rr=3Ds_tan.c_r;s_tan.__ccucr =3D true;
s_tan.c_r=3Dnew Function("k",""
+"var s=3Dthis,d=3Dnew =
Date,v=3Ds.c_rr(k),c=3Ds.c_rr('s_pers'),i,m,e;if(v)ret"
+"urn v;k=3Ds.ape(k);i=3Dc.indexOf(' =
'+k+'=3D');c=3Di<0?s.c_rr('s_sess'):c;i=3D"
+"c.indexOf(' =
'+k+'=3D');m=3Di<0?i:c.indexOf('|',i);e=3Di<0?i:c.indexOf(';'"
+",i);m=3Dm>0?m:e;v=3Di<0?'':s.epa(c.substring(i+2+k.length,m<0?c.length:=
"
+"m));if(m>0&&m!=3De)if(parseInt(c.substring(m+1,e<0?c.length:e))<d.get"
+"Time()){d.setTime(d.getTime()-60000);s.c_w(s.epa(k),'',d);v=3D'';}ret"
+"urn v;");}
/*
 * Function - write combined cookies v 0.3
 */
if(!s_tan.__ccucw){s_tan.c_wr=3Ds_tan.c_w;s_tan.__ccucw =3D true;
s_tan.c_w=3Dnew Function("k","v","e",""
+"this.new2 =3D true;"
+"var s=3Dthis,d=3Dnew =
Date,ht=3D0,pn=3D's_pers',sn=3D's_sess',pc=3D0,sc=3D0,pv,sv,"
+"c,i,t;d.setTime(d.getTime()-60000);if(s.c_rr(k)) s.c_wr(k,'',d);k=3Ds"
+".ape(k);pv=3Ds.c_rr(pn);i=3Dpv.indexOf(' =
'+k+'=3D');if(i>-1){pv=3Dpv.substr"
+"ing(0,i)+pv.substring(pv.indexOf(';',i)+1);pc=3D1;}sv=3Ds.c_rr(sn);i=3D=
sv"
+".indexOf(' =
'+k+'=3D');if(i>-1){sv=3Dsv.substring(0,i)+sv.substring(sv.i"
+"ndexOf(';',i)+1);sc=3D1;}d=3Dnew =
Date;if(e){if(e.getTime()>d.getTime())"
+"{pv+=3D' '+k+'=3D'+s.ape(v)+'|'+e.getTime()+';';pc=3D1;}}else{sv+=3D' =
'+k+'"
+"=3D'+s.ape(v)+';';sc=3D1;}if(sc) =
s.c_wr(sn,sv,0);if(pc){t=3Dpv;while(t&&t"
+".indexOf(';')!=3D-1){var =
t1=3DparseInt(t.substring(t.indexOf('|')+1,t.i"
+"ndexOf(';')));t=3Dt.substring(t.indexOf(';')+1);ht=3Dht<t1?t1:ht;}d.set=
"
+"Time(ht);s.c_wr(pn,pv,d);}return v=3D=3Ds.c_r(s.epa(k));");}

/*
* TNT Integration Plugin v1.0
*/
s_tan.trackTNT =3Dnew Function("v","p","b",""
+"var =
s=3Dthis,n=3D's_tnt',p=3Dp?p:n,v=3Dv?v:n,r=3D'',pm=3Dfalse,b=3Db?b:true;i=
f(s."
+"getQueryParam){pm=3Ds.getQueryParam(p);}if(pm){r+=3D(pm+',');}if(s.wd[v=
"
+"]!=3Dundefined){r+=3Ds.wd[v];}if(b){s.wd[v]=3D'';}return r;");

/* Configure Modules and Plugins */

s_tan.loadModule("Media")
s_tan.Media.autoTrack=3Dfalse
s_tan.Media.trackWhilePlaying=3Dtrue
s_tan.Media.trackVars=3D"None"
s_tan.Media.trackEvents=3D"None"

/* WARNING: Changing any of the below variables will cause drastic
changes to how your visitor data is collected.  Changes should only be
made when instructed to do so by your account manager.*/
s_tan.visitorNamespace=3D"activenetwork"
s_tan.trackingServer=3D"metrics.active.com"
s_tan.trackingServerSecure=3D"smetrics.active.com"
s_tan.dc=3D"122"
s_tan.visitorMigrationKey=3D"4C1A8A8C"

/****************************** MODULES *****************************/
/* Module: Media */
s_tan.m_Media_c=3D"var m=3Ds.m_i('Media');m.cn=3Dfunction(n){var =
m=3Dthis;return =
m.s.rep(m.s.rep(m.s.rep(n,\"\\n\",''),\"\\r\",''),'--**--','')};m.open=3D=
function(n,l,p,b){var m=3Dthis,i=3Dnew Object,tm=3Dnew Date,a"
+"=3D'',x;n=3Dm.cn(n);l=3DparseInt(l);if(!l)l=3D1;if(n&&p){if(!m.l)m.l=3D=
new Object;if(m.l[n])m.close(n);if(b&&b.id)a=3Db.id;for (x in =
m.l)if(m.l[x]&&m.l[x].a=3D=3Da)m.close(m.l[x].n);i.n=3Dn;i.l=3Dl;i.p=3Dm.=
cn(p);i.a=3Da;i"
+".t=3D0;i.ts=3D0;i.s=3DMath.floor(tm.getTime()/1000);i.lx=3D0;i.lt=3Di.s=
;i.lo=3D0;i.e=3D'';i.to=3D-1;m.l[n]=3Di}};m.close=3Dfunction(n){this.e(n,=
0,-1)};m.play=3Dfunction(n,o){var m=3Dthis,i;i=3Dm.e(n,1,o);i.m=3Dnew =
Function('v"
+"ar =
m=3Ds_c_il['+m._in+'],i;if(m.l){i=3Dm.l[\"'+m.s.rep(i.n,'\"','\\\\\"')+'\=
"];if(i){if(i.lx=3D=3D1)m.e(i.n,3,-1);i.mt=3DsetTimeout(i.m,5000)}}');i.m=
()};m.stop=3Dfunction(n,o){this.e(n,2,o)};m.track=3Dfunction(n"
+"){var m=3Dthis;if (m.trackWhilePlaying) =
{m.e(n,4,-1)}};m.e=3Dfunction(n,x,o){var m=3Dthis,i,tm=3Dnew =
Date,ts=3DMath.floor(tm.getTime()/1000),ti=3Dm.trackSeconds,tp=3Dm.trackM=
ilestones,z=3Dnew Array,j,d=3D'--**--',t=3D"
+"1,b,v=3Dm.trackVars,e=3Dm.trackEvents,pe=3D'media',pev3,w=3Dnew =
Object,vo=3Dnew =
Object;n=3Dm.cn(n);i=3Dn&&m.l&&m.l[n]?m.l[n]:0;if(i){w.name=3Dn;w.length=3D=
i.l;w.playerName=3Di.p;if(i.to<0)w.event=3D\"OPEN\";else w.event"
+"=3D(x=3D=3D1?\"PLAY\":(x=3D=3D2?\"STOP\":(x=3D=3D3?\"MONITOR\":\"CLOSE\=
")));w.openTime=3Dnew =
Date();w.openTime.setTime(i.s*1000);if(x>2||(x!=3Di.lx&&(x!=3D2||i.lx=3D=3D=
1))) {b=3D\"Media.\"+name;pev3 =3D m.s.ape(i.n)+d+i.l+d+m"
+".s.ape(i.p)+d;if(x){if(o<0&&i.lt>0){o=3D(ts-i.lt)+i.lo;o=3Do<i.l?o:i.l-=
1}o=3DMath.floor(o);if(x>=3D2&&i.lo<o){i.t+=3Do-i.lo;i.ts+=3Do-i.lo;}if(x=
<=3D2){i.e+=3D(x=3D=3D1?'S':'E')+o;i.lx=3Dx;}else =
if(i.lx!=3D1)m.e(n,1,o);i.l"
+"t=3Dts;i.lo=3Do;pev3+=3Di.t+d+i.s+d+(m.trackWhilePlaying&&i.to>=3D0?'L'=
+i.to:'')+i.e+(x!=3D2?(m.trackWhilePlaying?'L':'E')+o:'');if(m.trackWhile=
Playing){b=3D0;pe=3D'm_o';if(x!=3D4){w.offset=3Do;w.percent=3D((w.offset+=
"
+"1)/w.length)*100;w.percent=3Dw.percent>100?100:Math.floor(w.percent);w.=
timePlayed=3Di.t;if(m.monitor)m.monitor(m.s,w)}if(i.to<0)pe=3D'm_s';else =
if(x=3D=3D4)pe=3D'm_i';else{t=3D0;v=3De=3D'None';ti=3Dti?parseInt(ti):0;z=
"
+"=3Dtp?m.s.sp(tp,','):0;if(ti&&i.ts>=3Dti)t=3D1;else =
if(z){if(o<i.to)i.to=3Do;else{for(j=3D0;j<z.length;j++){ti=3Dz[j]?parseIn=
t(z[j]):0;if(ti&&((i.to+1)/i.l<ti/100)&&((o+1)/i.l>=3Dti/100)){t=3D1;j=3D=
z.length}}}}}}}el"
+"se{m.e(n,2,-1);if(m.trackWhilePlaying){w.offset=3Di.lo;w.percent=3D((w.=
offset+1)/w.length)*100;w.percent=3Dw.percent>100?100:Math.floor(w.percen=
t);w.timePlayed=3Di.t;if(m.monitor)m.monitor(m.s,w)}m.l[n]=3D0;"
+"if(i.e){pev3+=3Di.t+d+i.s+d+(m.trackWhilePlaying&&i.to>=3D0?'L'+i.to:''=
)+i.e;if(m.trackWhilePlaying){v=3De=3D'None';pe=3D'm_o'}else{t=3D0;m.s.fb=
r(b)}}else =
t=3D0;b=3D0}if(t){vo.linkTrackVars=3Dv;vo.linkTrackEvents=3De;"
+"vo.pe=3Dpe;vo.pev3=3Dpev3;m.s.t(vo,b);if(m.trackWhilePlaying){i.ts=3D0;=
i.to=3Do;i.e=3D''}}}}return i};m.ae=3Dfunction(n,l,p,x,o,b){if(n&&p){var =
m=3Dthis;if(!m.l||!m.l[n])m.open(n,l,p,b);m.e(n,x,o)}};m.a=3Dfunction"
+"(o,t){var =
m=3Dthis,i=3Do.id?o.id:o.name,n=3Do.name,p=3D0,v,c,c1,c2,xc=3Dm.s.h,x,e,f=
1,f2=3D's_media_'+m._in+'_oc',f3=3D's_media_'+m._in+'_t',f4=3D's_media_'+=
m._in+'_s',f5=3D's_media_'+m._in+'_l',f6=3D's_media_'+m._in+'"
+"_m',f7=3D's_media_'+m._in+'_c',tcf,w;if(!i){if(!m.c)m.c=3D0;i=3D's_medi=
a_'+m._in+'_'+m.c;m.c++}if(!o.id)o.id=3Di;if(!o.name)o.name=3Dn=3Di;if(!m=
.ol)m.ol=3Dnew Object;if(m.ol[i])return;m.ol[i]=3Do;if(!xc)xc=3Dm.s.b;t"
+"cf=3Dnew Function('o','var =
e,p=3D0;try{if(o.versionInfo&&o.currentMedia&&o.controls)p=3D1}catch(e){p=
=3D0}return p');p=3Dtcf(o);if(!p){tcf=3Dnew Function('o','var =
e,p=3D0,t;try{t=3Do.GetQuickTimeVersion();if(t)p=3D2}"
+"catch(e){p=3D0}return p');p=3Dtcf(o);if(!p){tcf=3Dnew =
Function('o','var =
e,p=3D0,t;try{t=3Do.GetVersionInfo();if(t)p=3D3}catch(e){p=3D0}return =
p');p=3Dtcf(o)}}v=3D\"var =
m=3Ds_c_il[\"+m._in+\"],o=3Dm.ol['\"+i+\"']\";if(p=3D"
+"=3D1){p=3D'Windows Media Player =
'+o.versionInfo;c1=3Dv+',n,p,l,x=3D-1,cm,c,mn;if(o){cm=3Do.currentMedia;c=
=3Do.controls;if(cm&&c){mn=3Dcm.name?cm.name:c.URL;l=3Dcm.duration;p=3Dc.=
currentPosition;n=3Do.playState;if(n){i"
+"f(n=3D=3D8)x=3D0;if(n=3D=3D3)x=3D1;if(n=3D=3D1||n=3D=3D2||n=3D=3D4||n=3D=
=3D5||n=3D=3D6)x=3D2;}';c2=3D'if(x>=3D0)m.ae(mn,l,\"'+p+'\",x,x!=3D2?p:-1=
,o)}}';c=3Dc1+c2;if(m.s.isie&&xc){x=3Dm.s.d.createElement('script');x.lan=
guage=3D'jscript';x.type=3D"
+"'text/javascript';x.htmlFor=3Di;x.event=3D'PlayStateChange(NewState)';x=
.defer=3Dtrue;x.text=3Dc;xc.appendChild(x);o[f6]=3Dnew =
Function(c1+'if(n=3D=3D3){x=3D3;'+c2+'}setTimeout(o.'+f6+',5000)');o[f6](=
)}}if(p=3D=3D2){p=3D"
+"'QuickTime Player '+(o.GetIsQuickTimeRegistered()?'Pro =
':'')+o.GetQuickTimeVersion();f1=3Df2;c=3Dv+',n,x,t,l,p,p2,mn;if(o){mn=3D=
o.GetMovieName()?o.GetMovieName():o.GetURL();n=3Do.GetRate();t=3Do.GetTim=
eScale"
+"();l=3Do.GetDuration()/t;p=3Do.GetTime()/t;p2=3Do.'+f5+';if(n!=3Do.'+f4=
+'||p<p2||p-p2>5){x=3D2;if(n!=3D0)x=3D1;else =
if(p>=3Dl)x=3D0;if(p<p2||p-p2>5)m.ae(mn,l,\"'+p+'\",2,p2,o);m.ae(mn,l,\"'=
+p+'\",x,x!=3D2?p:-1,o)}if(n"
+">0&&o.'+f7+'>=3D10){m.ae(mn,l,\"'+p+'\",3,p,o);o.'+f7+'=3D0}o.'+f7+'++;=
o.'+f4+'=3Dn;o.'+f5+'=3Dp;setTimeout(\"'+v+';o.'+f2+'(0,0)\",500)}';o[f1]=
=3Dnew Function('a','b',c);o[f4]=3D-1;o[f7]=3D0;o[f1](0,0)}if(p=3D=3D3)"
+"{p=3D'RealPlayer =
'+o.GetVersionInfo();f1=3Dn+'_OnPlayStateChange';c1=3Dv+',n,x=3D-1,l,p,mn=
;if(o){mn=3Do.GetTitle()?o.GetTitle():o.GetSource();n=3Do.GetPlayState();=
l=3Do.GetLength()/1000;p=3Do.GetPosition()/1000;if"
+"(n!=3Do.'+f4+'){if(n=3D=3D3)x=3D1;if(n=3D=3D0||n=3D=3D2||n=3D=3D4||n=3D=
=3D5)x=3D2;if(n=3D=3D0&&(p>=3Dl||p=3D=3D0))x=3D0;if(x>=3D0)m.ae(mn,l,\"'+=
p+'\",x,x!=3D2?p:-1,o)}if(n=3D=3D3&&(o.'+f7+'>=3D10||!o.'+f3+')){m.ae(mn,=
l,\"'+p+'\",3,p,o);o.'+f7+'=3D"
+"0}o.'+f7+'++;o.'+f4+'=3Dn;';c2=3D'if(o.'+f2+')o.'+f2+'(o,n)}';if(m.s.wd=
[f1])o[f2]=3Dm.s.wd[f1];m.s.wd[f1]=3Dnew =
Function('a','b',c1+c2);o[f1]=3Dnew =
Function('a','b',c1+'setTimeout(\"'+v+';o.'+f1+'(0,0)\",o.'"
+"+f3+'?500:5000);'+c2);o[f4]=3D-1;if(m.s.isie)o[f3]=3D1;o[f7]=3D0;o[f1](=
0,0)}};m.as=3Dnew Function('e','var =
m=3Ds_c_il['+m._in+'],l,n;if(m.autoTrack&&m.s.d.getElementsByTagName){l=3D=
m.s.d.getElementsByTagName(m"
+".s.isie?\"OBJECT\":\"EMBED\");if(l)for(n=3D0;n<l.length;n++)m.a(l[n]);}=
');if(s.wd.attachEvent)s.wd.attachEvent('onload',m.as);else =
if(s.wd.addEventListener)s.wd.addEventListener('load',m.as,false)";
s_tan.m_i("Media");

/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=3D'',s_objectID;function s_gi(un,pg,ss){var =
c=3D"s._c=3D's_c';s.wd=3Dwindow;if(!s.wd.s_c_in){s.wd.s_c_il=3Dnew =
Array;s.wd.s_c_in=3D0;}s._il=3Ds.wd.s_c_il;s._in=3Ds.wd.s_c_in;s._il[s._i=
n]=3Ds;s.wd.s_c_in++;s"
+".an=3Ds_an;s.cls=3Dfunction(x,c){var =
i,y=3D'';if(!c)c=3Dthis.an;for(i=3D0;i<x.length;i++){n=3Dx.substring(i,i+=
1);if(c.indexOf(n)>=3D0)y+=3Dn}return y};s.fl=3Dfunction(x,l){return =
x?(''+x).substring(0,l):x};s.co=3Dfunc"
+"tion(o){if(!o)return o;var n=3Dnew Object,x;for(x in =
o)if(x.indexOf('select')<0&&x.indexOf('filter')<0)n[x]=3Do[x];return =
n};s.num=3Dfunction(x){x=3D''+x;for(var =
p=3D0;p<x.length;p++)if(('0123456789').indexO"
+"f(x.substring(p,p+1))<0)return 0;return =
1};s.rep=3Ds_rep;s.sp=3Ds_sp;s.jn=3Ds_jn;s.ape=3Dfunction(x){var =
s=3Dthis,h=3D'0123456789ABCDEF',i,c=3Ds.charSet,n,l,e,y=3D'';c=3Dc?c.toUp=
perCase():'';if(x){x=3D''+x;if(c=3D=3D'AUTO"
+"'&&('').charCodeAt){for(i=3D0;i<x.length;i++){c=3Dx.substring(i,i+1);n=3D=
x.charCodeAt(i);if(n>127){l=3D0;e=3D'';while(n||l<4){e=3Dh.substring(n%16=
,n%16+1)+e;n=3D(n-n%16)/16;l++}y+=3D'%u'+e}else =
if(c=3D=3D'+')y+=3D'%2B';"
+"else =
y+=3Descape(c)}x=3Dy}else{x=3Dx?s.rep(escape(''+x),'+','%2B'):x;if(x&&c&&=
s.em=3D=3D1&&x.indexOf('%u')<0&&x.indexOf('%U')<0){i=3Dx.indexOf('%');whi=
le(i>=3D0){i++;if(h.substring(8).indexOf(x.substring(i,i+1)."
+"toUpperCase())>=3D0)return =
x.substring(0,i)+'u00'+x.substring(i);i=3Dx.indexOf('%',i)}}}}return =
x};s.epa=3Dfunction(x){var s=3Dthis;return x?unescape(s.rep(''+x,'+',' =
')):x};s.pt=3Dfunction(x,d,f,a){var s=3Dth"
+"is,t=3Dx,z=3D0,y,r;while(t){y=3Dt.indexOf(d);y=3Dy<0?t.length:y;t=3Dt.s=
ubstring(0,y);r=3Ds[f](t,a);if(r)return =
r;z+=3Dy+d.length;t=3Dx.substring(z,x.length);t=3Dz<x.length?t:''}return =
''};s.isf=3Dfunction(t,a){var c=3Da"
+".indexOf(':');if(c>=3D0)a=3Da.substring(0,c);if(t.substring(0,2)=3D=3D'=
s_')t=3Dt.substring(2);return =
(t!=3D''&&t=3D=3Da)};s.fsf=3Dfunction(t,a){var =
s=3Dthis;if(s.pt(a,',','isf',t))s.fsg+=3D(s.fsg!=3D''?',':'')+t;return =
0}"
+";s.fs=3Dfunction(x,f){var =
s=3Dthis;s.fsg=3D'';s.pt(x,',','fsf',f);return =
s.fsg};s.si=3Dfunction(){var s=3Dthis,i,k,v,c=3Ds_gi+'var =
s=3Ds_gi(\"'+s.oun+'\");s.sa(\"'+s.un+'\");';for(i=3D0;i<s.va_g.length;i+=
+){k=3Ds.va"
+"_g[i];v=3Ds[k];if(v!=3Dundefined){if(typeof(v)=3D=3D'string')c+=3D's.'+=
k+'=3D\"'+s_fe(v)+'\";';else =
c+=3D's.'+k+'=3D'+v+';'}}c+=3D\"s.lnk=3Ds.eo=3Ds.linkName=3Ds.linkType=3D=
s.wd.s_objectID=3Ds.ppu=3Ds.pe=3Ds.pev1=3Ds.pev2=3Ds.pev3=3D''"
+";\";return c};s.c_d=3D'';s.c_gdf=3Dfunction(t,a){var =
s=3Dthis;if(!s.num(t))return 1;return 0};s.c_gd=3Dfunction(){var =
s=3Dthis,d=3Ds.wd.location.hostname,n=3Ds.fpCookieDomainPeriods,p;if(!n)n=
=3Ds.cookieDomainPerio"
+"ds;if(d&&!s.c_d){n=3Dn?parseInt(n):2;n=3Dn>2?n:2;p=3Dd.lastIndexOf('.')=
;if(p>=3D0){while(p>=3D0&&n>1){p=3Dd.lastIndexOf('.',p-1);n--}s.c_d=3Dp>0=
&&s.pt(d,'.','c_gdf',0)?d.substring(p):d}}return s.c_d};s.c_r=3Dfunct"
+"ion(k){var s=3Dthis;k=3Ds.ape(k);var c=3D' =
'+s.d.cookie,i=3Dc.indexOf(' =
'+k+'=3D'),e=3Di<0?i:c.indexOf(';',i),v=3Di<0?'':s.epa(c.substring(i+2+k.=
length,e<0?c.length:e));return v!=3D'[[B]]'?v:''};s.c_w=3Dfunction(k,v"
+",e){var =
s=3Dthis,d=3Ds.c_gd(),l=3Ds.cookieLifetime,t;v=3D''+v;l=3Dl?(''+l).toUppe=
rCase():'';if(e&&l!=3D'SESSION'&&l!=3D'NONE'){t=3D(v!=3D''?parseInt(l?l:0=
):-60);if(t){e=3Dnew Date;e.setTime(e.getTime()+(t*1000))}}if(k"
+"&&l!=3D'NONE'){s.d.cookie=3Dk+'=3D'+s.ape(v!=3D''?v:'[[B]]')+'; =
path=3D/;'+(e&&l!=3D'SESSION'?' expires=3D'+e.toGMTString()+';':'')+(d?' =
domain=3D'+d+';':'');return s.c_r(k)=3D=3Dv}return =
0};s.eh=3Dfunction(o,e,r,f){var"
+" s=3Dthis,b=3D's_'+e+'_'+s._in,n=3D-1,l,i,x;if(!s.ehl)s.ehl=3Dnew =
Array;l=3Ds.ehl;for(i=3D0;i<l.length&&n<0;i++){if(l[i].o=3D=3Do&&l[i].e=3D=
=3De)n=3Di}if(n<0){n=3Di;l[n]=3Dnew =
Object}x=3Dl[n];x.o=3Do;x.e=3De;f=3Dr?x.b:f;if(r||f){x."
+"b=3Dr?0:o[e];x.o[e]=3Df}if(x.b){x.o[b]=3Dx.b;return b}return =
0};s.cet=3Dfunction(f,a,t,o,b){var =
s=3Dthis,r,tcf;if(s.apv>=3D5&&(!s.isopera||s.apv>=3D7)){tcf=3Dnew =
Function('s','f','a','t','var e,r;try{r=3Ds[f](a)}cat"
+"ch(e){r=3Ds[t](e)}return =
r');r=3Dtcf(s,f,a,t)}else{if(s.ismac&&s.u.indexOf('MSIE =
4')>=3D0)r=3Ds[b](a);else{s.eh(s.wd,'onerror',0,o);r=3Ds[f](a);s.eh(s.wd,=
'onerror',1)}}return r};s.gtfset=3Dfunction(e){var s=3Dth"
+"is;return s.tfs};s.gtfsoe=3Dnew Function('e','var =
s=3Ds_c_il['+s._in+'],c;s.eh(window,\"onerror\",1);s.etfs=3D1;c=3Ds.t();i=
f(c)s.d.write(c);s.etfs=3D0;return true');s.gtfsfb=3Dfunction(a){return =
window};s.gtfs"
+"f=3Dfunction(w){var =
s=3Dthis,p=3Dw.parent,l=3Dw.location;s.tfs=3Dw;if(p&&p.location!=3Dl&&p.l=
ocation.host=3D=3Dl.host){s.tfs=3Dp;return s.gtfsf(s.tfs)}return =
s.tfs};s.gtfs=3Dfunction(){var s=3Dthis;if(!s.tfs){s.tfs=3Ds.wd"
+";if(!s.etfs)s.tfs=3Ds.cet('gtfsf',s.tfs,'gtfset',s.gtfsoe,'gtfsfb')}ret=
urn s.tfs};s.mrq=3Dfunction(u){var =
s=3Dthis,l=3Ds.rl[u],n,r;s.rl[u]=3D0;if(l)for(n=3D0;n<l.length;n++){r=3Dl=
[n];s.mr(0,0,r.r,0,r.t,r.u)}};s."
+"br=3Dfunction(id,rs){var =
s=3Dthis;if(s.disableBufferedRequests||!s.c_w('s_br',rs))s.brl=3Drs};s.fl=
ushBufferedRequests=3Dfunction(){this.fbr(0)};s.fbr=3Dfunction(id){var =
s=3Dthis,br=3Ds.c_r('s_br');if(!br)br=3Ds.br"
+"l;if(br){if(!s.disableBufferedRequests)s.c_w('s_br','');s.mr(0,0,br)}s.=
brl=3D0};s.mr=3Dfunction(sess,q,rs,id,ta,u){var =
s=3Dthis,dc=3Ds.dc,t1=3Ds.trackingServer,t2=3Ds.trackingServerSecure,tb=3D=
s.trackingServerBa"
+"se,p=3D'.sc',ns=3Ds.visitorNamespace,un=3Ds.cls(u?u:(ns?ns:s.fun)),r=3D=
new =
Object,l,imn=3D's_i_'+(un),im,b,e;if(!rs){if(t1){if(t2&&s.ssl)t1=3Dt2}els=
e{if(!tb)tb=3D'2o7.net';if(dc)dc=3D(''+dc).toLowerCase();else dc=3D"
+"'d1';if(tb=3D=3D'2o7.net'){if(dc=3D=3D'd1')dc=3D'112';else =
if(dc=3D=3D'd2')dc=3D'122';p=3D''}t1=3Dun+'.'+dc+'.'+p+tb}rs=3D'http'+(s.=
ssl?'s':'')+'://'+t1+'/b/ss/'+s.un+'/'+(s.mobile?'5.1':'1')+'/H.21/'+sess=
+'?AQB=3D1&ndh=3D1"
+"'+(q?q:'')+'&AQE=3D1';if(s.isie&&!s.ismac){if(s.apv>5.5)rs=3Ds.fl(rs,40=
95);else =
rs=3Ds.fl(rs,2047)}if(id){s.br(id,rs);return}}if(s.d.images&&s.apv>=3D3&&=
(!s.isopera||s.apv>=3D7)&&(s.ns6<0||s.apv>=3D6.1)){if(!s"
+".rc)s.rc=3Dnew Object;if(!s.rc[un]){s.rc[un]=3D1;if(!s.rl)s.rl=3Dnew =
Object;s.rl[un]=3Dnew =
Array;setTimeout('if(window.s_c_il)window.s_c_il['+s._in+'].mrq(\"'+un+'\=
")',750)}else{l=3Ds.rl[un];if(l){r.t=3Dta;r.u"
+"=3Dun;r.r=3Drs;l[l.length]=3Dr;return =
''}imn+=3D'_'+s.rc[un];s.rc[un]++}im=3Ds.wd[imn];if(!im)im=3Ds.wd[imn]=3D=
new Image;im.s_l=3D0;im.onload=3Dnew Function('e','this.s_l=3D1;var =
wd=3Dwindow,s;if(wd.s_c_il){s=3Dwd.s_c_il["
+"'+s._in+'];s.mrq(\"'+un+'\");s.nrs--;if(!s.nrs)s.m_m(\"rr\")}');if(!s.n=
rs){s.nrs=3D1;s.m_m('rs')}else =
s.nrs++;im.src=3Drs;if(rs.indexOf('&pe=3D')>=3D0&&(!ta||ta=3D=3D'_self'||=
ta=3D=3D'_top'||(s.wd.name&&ta=3D=3Ds.wd.n"
+"ame))){b=3De=3Dnew =
Date;while(!im.s_l&&e.getTime()-b.getTime()<500)e=3Dnew Date}return =
''}return '<im'+'g sr'+'c=3D\"'+rs+'\" width=3D1 height=3D1 border=3D0 =
alt=3D\"\">'};s.gg=3Dfunction(v){var s=3Dthis;if(!s.wd['s_'"
+"+v])s.wd['s_'+v]=3D'';return =
s.wd['s_'+v]};s.glf=3Dfunction(t,a){if(t.substring(0,2)=3D=3D's_')t=3Dt.s=
ubstring(2);var =
s=3Dthis,v=3Ds.gg(t);if(v)s[t]=3Dv};s.gl=3Dfunction(v){var =
s=3Dthis;if(s.pg)s.pt(v,',','glf',0)};s."
+"rf=3Dfunction(x){var =
s=3Dthis,y,i,j,h,l,a,b=3D'',c=3D'',t;if(x){y=3D''+x;i=3Dy.indexOf('?');if=
(i>0){a=3Dy.substring(i+1);y=3Dy.substring(0,i);h=3Dy.toLowerCase();i=3D0=
;if(h.substring(0,7)=3D=3D'http://')i+=3D7;else if(h.sub"
+"string(0,8)=3D=3D'https://')i+=3D8;h=3Dh.substring(i);i=3Dh.indexOf(\"/=
\");if(i>0){h=3Dh.substring(0,i);if(h.indexOf('google')>=3D0){a=3Ds.sp(a,=
'&');if(a.length>1){l=3D',q,ie,start,search_key,word,kw,cd,';for(j=3D0;j<=
"
+"a.length;j++){t=3Da[j];i=3Dt.indexOf('=3D');if(i>0&&l.indexOf(','+t.sub=
string(0,i)+',')>=3D0)b+=3D(b?'&':'')+t;else =
c+=3D(c?'&':'')+t}if(b&&c){y+=3D'?'+b+'&'+c;if(''+x!=3Dy)x=3Dy}}}}}}retur=
n x};s.hav=3Dfunction(){var "
+"s=3Dthis,qs=3D'',fv=3Ds.linkTrackVars,fe=3Ds.linkTrackEvents,mn,i;if(s.=
pe){mn=3Ds.pe.substring(0,1).toUpperCase()+s.pe.substring(1);if(s[mn]){fv=
=3Ds[mn].trackVars;fe=3Ds[mn].trackEvents}}fv=3Dfv?fv+','+s.vl_l+','+"
+"s.vl_l2:'';for(i=3D0;i<s.va_t.length;i++){var =
k=3Ds.va_t[i],v=3Ds[k],b=3Dk.substring(0,4),x=3Dk.substring(4),n=3DparseI=
nt(x),q=3Dk;if(v&&k!=3D'linkName'&&k!=3D'linkType'){if(s.pe||s.lnk||s.eo)=
{if(fv&&(','+fv+',').in"
+"dexOf(','+k+',')<0)v=3D'';if(k=3D=3D'events'&&fe)v=3Ds.fs(v,fe)}if(v){i=
f(k=3D=3D'dynamicVariablePrefix')q=3D'D';else =
if(k=3D=3D'visitorID')q=3D'vid';else =
if(k=3D=3D'pageURL'){q=3D'g';v=3Ds.fl(v,255)}else =
if(k=3D=3D'referrer'){q=3D'"
+"r';v=3Ds.fl(s.rf(v),255)}else =
if(k=3D=3D'vmk'||k=3D=3D'visitorMigrationKey')q=3D'vmt';else =
if(k=3D=3D'visitorMigrationServer'){q=3D'vmf';if(s.ssl&&s.visitorMigratio=
nServerSecure)v=3D''}else if(k=3D=3D'visitorMigrationServ"
+"erSecure'){q=3D'vmf';if(!s.ssl&&s.visitorMigrationServer)v=3D''}else =
if(k=3D=3D'charSet'){q=3D'ce';if(v.toUpperCase()=3D=3D'AUTO')v=3D'ISO8859=
-1';else if(s.em=3D=3D2)v=3D'UTF-8'}else =
if(k=3D=3D'visitorNamespace')q=3D'ns';else"
+" if(k=3D=3D'cookieDomainPeriods')q=3D'cdp';else =
if(k=3D=3D'cookieLifetime')q=3D'cl';else =
if(k=3D=3D'variableProvider')q=3D'vvp';else =
if(k=3D=3D'currencyCode')q=3D'cc';else if(k=3D=3D'channel')q=3D'ch';else =
if(k=3D=3D'transactionID'"
+")q=3D'xact';else if(k=3D=3D'campaign')q=3D'v0';else =
if(k=3D=3D'resolution')q=3D's';else if(k=3D=3D'colorDepth')q=3D'c';else =
if(k=3D=3D'javascriptVersion')q=3D'j';else =
if(k=3D=3D'javaEnabled')q=3D'v';else if(k=3D=3D'cookiesEnabled')q=3D"
+"'k';else if(k=3D=3D'browserWidth')q=3D'bw';else =
if(k=3D=3D'browserHeight')q=3D'bh';else =
if(k=3D=3D'connectionType')q=3D'ct';else =
if(k=3D=3D'homepage')q=3D'hp';else if(k=3D=3D'plugins')q=3D'p';else =
if(s.num(x)){if(b=3D=3D'prop')q=3D'c"
+"'+n;else if(b=3D=3D'eVar')q=3D'v'+n;else =
if(b=3D=3D'list')q=3D'l'+n;else =
if(b=3D=3D'hier'){q=3D'h'+n;v=3Ds.fl(v,255)}}if(v)qs+=3D'&'+q+'=3D'+(k.su=
bstring(0,3)!=3D'pev'?s.ape(v):v)}}}return =
qs};s.ltdf=3Dfunction(t,h){t=3Dt?t.toL"
+"owerCase():'';h=3Dh?h.toLowerCase():'';var =
qi=3Dh.indexOf('?');h=3Dqi>=3D0?h.substring(0,qi):h;if(t&&h.substring(h.l=
ength-(t.length+1))=3D=3D'.'+t)return 1;return =
0};s.ltef=3Dfunction(t,h){t=3Dt?t.toLowerCase():''"
+";h=3Dh?h.toLowerCase():'';if(t&&h.indexOf(t)>=3D0)return 1;return =
0};s.lt=3Dfunction(h){var =
s=3Dthis,lft=3Ds.linkDownloadFileTypes,lef=3Ds.linkExternalFilters,lif=3D=
s.linkInternalFilters;lif=3Dlif?lif:s.wd.locatio"
+"n.hostname;h=3Dh.toLowerCase();if(s.trackDownloadLinks&&lft&&s.pt(lft,'=
,','ltdf',h))return =
'd';if(s.trackExternalLinks&&h.substring(0,1)!=3D'#'&&(lef||lif)&&(!lef||=
s.pt(lef,',','ltef',h))&&(!lif||!s.pt"
+"(lif,',','ltef',h)))return 'e';return ''};s.lc=3Dnew Function('e','var =
s=3Ds_c_il['+s._in+'],b=3Ds.eh(this,\"onclick\");s.lnk=3Ds.co(this);s.t()=
;s.lnk=3D0;if(b)return this[b](e);return true');s.bc=3Dnew Functi"
+"on('e','var =
s=3Ds_c_il['+s._in+'],f,tcf;if(s.d&&s.d.all&&s.d.all.cppXYctnr)return;s.e=
o=3De.srcElement?e.srcElement:e.target;tcf=3Dnew Function(\"s\",\"var =
e;try{if(s.eo&&(s.eo.tagName||s.eo.parentElement"
+"||s.eo.parentNode))s.t()}catch(e){}\");tcf(s);s.eo=3D0');s.oh=3Dfunctio=
n(o){var =
s=3Dthis,l=3Ds.wd.location,h=3Do.href?o.href:'',i,j,k,p;i=3Dh.indexOf(':'=
);j=3Dh.indexOf('?');k=3Dh.indexOf('/');if(h&&(i<0||(j>=3D0&&i"
+">j)||(k>=3D0&&i>k))){p=3Do.protocol&&o.protocol.length>1?o.protocol:(l.=
protocol?l.protocol:'');i=3Dl.pathname.lastIndexOf('/');h=3D(p?p+'//':'')=
+(o.host?o.host:(l.host?l.host:''))+(h.substring(0,1)!=3D'/'?l."
+"pathname.substring(0,i<0?0:i)+'/':'')+h}return =
h};s.ot=3Dfunction(o){var =
t=3Do.tagName;t=3Dt&&t.toUpperCase?t.toUpperCase():'';if(t=3D=3D'SHAPE')t=
=3D'';if(t){if((t=3D=3D'INPUT'||t=3D=3D'BUTTON')&&o.type&&o.type.toUppe"
+"rCase)t=3Do.type.toUpperCase();else if(!t&&o.href)t=3D'A';}return =
t};s.oid=3Dfunction(o){var =
s=3Dthis,t=3Ds.ot(o),p,c,n=3D'',x=3D0;if(t&&!o.s_oid){p=3Do.protocol;c=3D=
o.onclick;if(o.href&&(t=3D=3D'A'||t=3D=3D'AREA')&&(!c||!p"
+"||p.toLowerCase().indexOf('javascript')<0))n=3Ds.oh(o);else =
if(c){n=3Ds.rep(s.rep(s.rep(s.rep(''+c,\"\\r\",''),\"\\n\",''),\"\\t\",''=
),' ','');x=3D2}else =
if(t=3D=3D'INPUT'||t=3D=3D'SUBMIT'){if(o.value)n=3Do.value;"
+"else if(o.innerText)n=3Do.innerText;else =
if(o.textContent)n=3Do.textContent;x=3D3}else =
if(o.src&&t=3D=3D'IMAGE')n=3Do.src;if(n){o.s_oid=3Ds.fl(n,100);o.s_oidt=3D=
x}}return o.s_oid};s.rqf=3Dfunction(t,un){var s=3Dthis,e"
+"=3Dt.indexOf('=3D'),u=3De>=3D0?','+t.substring(0,e)+',':'';return =
u&&u.indexOf(','+un+',')>=3D0?s.epa(t.substring(e+1)):''};s.rq=3Dfunction=
(un){var =
s=3Dthis,c=3Dun.indexOf(','),v=3Ds.c_r('s_sq'),q=3D'';if(c<0)return s"
+".pt(v,'&','rqf',un);return =
s.pt(un,',','rq',0)};s.sqp=3Dfunction(t,a){var =
s=3Dthis,e=3Dt.indexOf('=3D'),q=3De<0?'':s.epa(t.substring(e+1));s.sqq[q]=
=3D'';if(e>=3D0)s.pt(t.substring(0,e),',','sqs',q);return 0};s.s"
+"qs=3Dfunction(un,q){var s=3Dthis;s.squ[un]=3Dq;return =
0};s.sq=3Dfunction(q){var =
s=3Dthis,k=3D's_sq',v=3Ds.c_r(k),x,c=3D0;s.sqq=3Dnew Object;s.squ=3Dnew =
Object;s.sqq[q]=3D'';s.pt(v,'&','sqp',0);s.pt(s.un,',','sqs',q);v=3D'"
+"';for(x in =
s.squ)if(x&&(!Object||!Object.prototype||!Object.prototype[x]))s.sqq[s.sq=
u[x]]+=3D(s.sqq[s.squ[x]]?',':'')+x;for(x in =
s.sqq)if(x&&(!Object||!Object.prototype||!Object.prototype[x])&&s.sqq["
+"x]&&(x=3D=3Dq||c<2)){v+=3D(v?'&':'')+s.sqq[x]+'=3D'+s.ape(x);c++}return=
 s.c_w(k,v,0)};s.wdl=3Dnew Function('e','var =
s=3Ds_c_il['+s._in+'],r=3Dtrue,b=3Ds.eh(s.wd,\"onload\"),i,o,oc;if(b)r=3D=
this[b](e);for(i=3D0;i<s.d.l"
+"inks.length;i++){o=3Ds.d.links[i];oc=3Do.onclick?\"\"+o.onclick:\"\";if=
((oc.indexOf(\"s_gs(\")<0||oc.indexOf(\".s_oc(\")>=3D0)&&oc.indexOf(\".tl=
(\")<0)s.eh(o,\"onclick\",0,s.lc);}return r');s.wds=3Dfunctio"
+"n(){var =
s=3Dthis;if(s.apv>3&&(!s.isie||!s.ismac||s.apv>=3D5)){if(s.b&&s.b.attachE=
vent)s.b.attachEvent('onclick',s.bc);else =
if(s.b&&s.b.addEventListener)s.b.addEventListener('click',s.bc,false);els=
e s.e"
+"h(s.wd,'onload',0,s.wdl)}};s.vs=3Dfunction(x){var =
s=3Dthis,v=3Ds.visitorSampling,g=3Ds.visitorSamplingGroup,k=3D's_vsn_'+s.=
un+(g?'_'+g:''),n=3Ds.c_r(k),e=3Dnew =
Date,y=3De.getYear();e.setYear(y+10+(y<1900?1900:0));"
+"if(v){v*=3D100;if(!n){if(!s.c_w(k,x,e))return =
0;n=3Dx}if(n%10000>v)return 0}return =
1};s.dyasmf=3Dfunction(t,m){if(t&&m&&m.indexOf(t)>=3D0)return 1;return =
0};s.dyasf=3Dfunction(t,m){var s=3Dthis,i=3Dt?t.indexOf('"
+"=3D'):-1,n,x;if(i>=3D0&&m){var =
n=3Dt.substring(0,i),x=3Dt.substring(i+1);if(s.pt(x,',','dyasmf',m))retur=
n n}return 0};s.uns=3Dfunction(){var =
s=3Dthis,x=3Ds.dynamicAccountSelection,l=3Ds.dynamicAccountList,m=3Ds.dyn=
a"
+"micAccountMatch,n,i;s.un=3Ds.un.toLowerCase();if(x&&l){if(!m)m=3Ds.wd.l=
ocation.host;if(!m.toLowerCase)m=3D''+m;l=3Dl.toLowerCase();m=3Dm.toLower=
Case();n=3Ds.pt(l,';','dyasf',m);if(n)s.un=3Dn}i=3Ds.un.indexOf(',');"
+"s.fun=3Di<0?s.un:s.un.substring(0,i)};s.sa=3Dfunction(un){var =
s=3Dthis;s.un=3Dun;if(!s.oun)s.oun=3Dun;else =
if((','+s.oun+',').indexOf(','+un+',')<0)s.oun+=3D','+un;s.uns()};s.m_i=3D=
function(n,a){var s=3Dthis,m,f=3Dn"
+".substring(0,1),r,l,i;if(!s.m_l)s.m_l=3Dnew =
Object;if(!s.m_nl)s.m_nl=3Dnew =
Array;m=3Ds.m_l[n];if(!a&&m&&m._e&&!m._i)s.m_a(n);if(!m){m=3Dnew =
Object,m._c=3D's_m';m._in=3Ds.wd.s_c_in;m._il=3Ds._il;m._il[m._in]=3Dm;s.=
"
+"wd.s_c_in++;m.s=3Ds;m._n=3Dn;m._l=3Dnew =
Array('_c','_in','_il','_i','_e','_d','_dl','s','n','_r','_g','_g1','_t',=
'_t1','_x','_x1','_rs','_rr','_l');s.m_l[n]=3Dm;s.m_nl[s.m_nl.length]=3Dn=
}else if(m._r&&!m._m)"
+"{r=3Dm._r;r._m=3Dm;l=3Dm._l;for(i=3D0;i<l.length;i++)if(m[l[i]])r[l[i]]=
=3Dm[l[i]];r._il[r._in]=3Dr;m=3Ds.m_l[n]=3Dr}if(f=3D=3Df.toUpperCase())s[=
n]=3Dm;return m};s.m_a=3Dnew =
Function('n','g','e','if(!g)g=3D\"m_\"+n;var s=3Ds_c"
+"_il['+s._in+'],c=3Ds[g+\"_c\"],m,x,f=3D0;if(!c)c=3Ds.wd[\"s_\"+g+\"_c\"=
];if(c&&s_d)s[g]=3Dnew =
Function(\"s\",s_ft(s_d(c)));x=3Ds[g];if(!x)x=3Ds.wd[\\'s_\\'+g];if(!x)x=3D=
s.wd[g];m=3Ds.m_i(n,1);if(x&&(!m._i||g!=3D\"m_"
+"\"+n)){m._i=3Df=3D1;if((\"\"+x).indexOf(\"function\")>=3D0)x(s);else =
s.m_m(\"x\",n,x,e)}m=3Ds.m_i(n,1);if(m._dl)m._dl=3Dm._d=3D0;s.dlt();retur=
n f');s.m_m=3Dfunction(t,n,d,e){t=3D'_'+t;var =
s=3Dthis,i,x,m,f=3D'_'+t,r=3D0,"
+"u;if(s.m_l&&s.m_nl)for(i=3D0;i<s.m_nl.length;i++){x=3Ds.m_nl[i];if(!n||=
x=3D=3Dn){m=3Ds.m_i(x);u=3Dm[t];if(u){if((''+u).indexOf('function')>=3D0)=
{if(d&&e)u=3Dm[t](d,e);else if(d)u=3Dm[t](d);else =
u=3Dm[t]()}}if(u)r=3D1;u=3D"
+"m[t+1];if(u&&!m[f]){if((''+u).indexOf('function')>=3D0){if(d&&e)u=3Dm[t=
+1](d,e);else if(d)u=3Dm[t+1](d);else =
u=3Dm[t+1]()}}m[f]=3D1;if(u)r=3D1}}return r};s.m_ll=3Dfunction(){var =
s=3Dthis,g=3Ds.m_dl,i,o;if(g)for(i=3D0;"
+"i<g.length;i++){o=3Dg[i];if(o)s.loadModule(o.n,o.u,o.d,o.l,o.e,1);g[i]=3D=
0}};s.loadModule=3Dfunction(n,u,d,l,e,ln){var =
s=3Dthis,m=3D0,i,g,o=3D0,f1,f2,c=3Ds.h?s.h:s.b,b,tcf;if(n){i=3Dn.indexOf(=
':');if(i>=3D0){g=3Dn.sub"
+"string(i+1);n=3Dn.substring(0,i)}else =
g=3D\"m_\"+n;m=3Ds.m_i(n)}if((l||(n&&!s.m_a(n,g)))&&u&&s.d&&c&&s.d.create=
Element){if(d){m._d=3D1;m._dl=3D1}if(ln){if(s.ssl)u=3Ds.rep(u,'http:','ht=
tps:');i=3D's_s:'+s._in+':'"
+"+n+':'+g;b=3D'var =
s=3Ds_c_il['+s._in+'],o=3Ds.d.getElementById(\"'+i+'\");if(s&&o){if(!o.l&=
&s.wd.'+g+'){o.l=3D1;if(o.i)clearTimeout(o.i);o.i=3D0;s.m_a(\"'+n+'\",\"'=
+g+'\"'+(e?',\"'+e+'\"':'')+')}';f2=3Db+'o.c+"
+"+;if(!s.maxDelay)s.maxDelay=3D250;if(!o.l&&o.c<(s.maxDelay*2)/100)o.i=3D=
setTimeout(o.f2,100)}';f1=3Dnew Function('e',b+'}');tcf=3Dnew =
Function('s','c','i','u','f1','f2','var =
e,o=3D0;try{o=3Ds.d.createElement("
+"\"script\");if(o){o.type=3D\"text/javascript\";'+(n?'o.id=3Di;o.defer=3D=
true;o.onload=3Do.onreadystatechange=3Df1;o.f2=3Df2;o.l=3D0;':'')+'o.src=3D=
u;c.appendChild(o);'+(n?'o.c=3D0;o.i=3DsetTimeout(f2,100)':'')+'}}catc"
+"h(e){o=3D0}return o');o=3Dtcf(s,c,i,u,f1,f2)}else{o=3Dnew =
Object;o.n=3Dn+':'+g;o.u=3Du;o.d=3Dd;o.l=3Dl;o.e=3De;g=3Ds.m_dl;if(!g)g=3D=
s.m_dl=3Dnew Array;i=3D0;while(i<g.length&&g[i])i++;g[i]=3Do}}else =
if(n){m=3Ds.m_i(n);m._e=3D1}"
+"return =
m};s.vo1=3Dfunction(t,a){if(a[t]||a['!'+t])this[t]=3Da[t]};s.vo2=3Dfuncti=
on(t,a){if(!a[t]){a[t]=3Dthis[t];if(!a[t])a['!'+t]=3D1}};s.dlt=3Dnew =
Function('var s=3Ds_c_il['+s._in+'],d=3Dnew Date,i,vo,f=3D0;if(s.d"
+"ll)for(i=3D0;i<s.dll.length;i++){vo=3Ds.dll[i];if(vo){if(!s.m_m(\"d\")|=
|d.getTime()-vo._t>=3Ds.maxDelay){s.dll[i]=3D0;s.t(vo)}else =
f=3D1}}if(s.dli)clearTimeout(s.dli);s.dli=3D0;if(f){if(!s.dli)s.dli=3Dset=
Timeout"
+"(s.dlt,s.maxDelay)}else s.dll=3D0');s.dl=3Dfunction(vo){var =
s=3Dthis,d=3Dnew Date;if(!vo)vo=3Dnew =
Object;s.pt(s.vl_g,',','vo2',vo);vo._t=3Dd.getTime();if(!s.dll)s.dll=3Dne=
w Array;s.dll[s.dll.length]=3Dvo;if(!s.max"
+"Delay)s.maxDelay=3D250;s.dlt()};s.t=3Dfunction(vo,id){var =
s=3Dthis,trk=3D1,tm=3Dnew =
Date,sed=3DMath&&Math.random?Math.floor(Math.random()*10000000000000):tm.=
getTime(),sess=3D's'+Math.floor(tm.getTime()/10800000)"
+"%10+sed,y=3Dtm.getYear(),vt=3Dtm.getDate()+'/'+tm.getMonth()+'/'+(y<190=
0?y+1900:y)+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' =
'+tm.getDay()+' '+tm.getTimezoneOffset(),tcf,tfs=3Ds.gtfs(),"
+"ta=3D'',q=3D'',qs=3D'',code=3D'',vb=3Dnew =
Object;s.gl(s.vl_g);s.uns();s.m_ll();if(!s.td){var =
tl=3Dtfs.location,a,o,i,x=3D'',c=3D'',v=3D'',p=3D'',bw=3D'',bh=3D'',j=3D'=
1.0',k=3Ds.c_w('s_cc','true',0)?'Y':'N',hp=3D'',ct=3D'',pn=3D0,ps"
+";if(String&&String.prototype){j=3D'1.1';if(j.match){j=3D'1.2';if(tm.set=
UTCDate){j=3D'1.3';if(s.isie&&s.ismac&&s.apv>=3D5)j=3D'1.4';if(pn.toPreci=
sion){j=3D'1.5';a=3Dnew Array;if(a.forEach){j=3D'1.6';i=3D0;o=3Dnew =
Objec"
+"t;tcf=3Dnew Function('o','var e,i=3D0;try{i=3Dnew =
Iterator(o)}catch(e){}return =
i');i=3Dtcf(o);if(i&&i.next)j=3D'1.7'}}}}}if(s.apv>=3D4)x=3Dscreen.width+=
'x'+screen.height;if(s.isns||s.isopera){if(s.apv>=3D3){v=3Ds.n."
+"javaEnabled()?'Y':'N';if(s.apv>=3D4){c=3Dscreen.pixelDepth;bw=3Ds.wd.in=
nerWidth;bh=3Ds.wd.innerHeight}}s.pl=3Ds.n.plugins}else =
if(s.isie){if(s.apv>=3D4){v=3Ds.n.javaEnabled()?'Y':'N';c=3Dscreen.colorD=
epth;if(s.apv"
+">=3D5){bw=3Ds.d.documentElement.offsetWidth;bh=3Ds.d.documentElement.of=
fsetHeight;if(!s.ismac&&s.b){tcf=3Dnew Function('s','tl','var =
e,hp=3D0;try{s.b.addBehavior(\"#default#homePage\");hp=3Ds.b.isHomePage(t=
l)?"
+"\"Y\":\"N\"}catch(e){}return hp');hp=3Dtcf(s,tl);tcf=3Dnew =
Function('s','var =
e,ct=3D0;try{s.b.addBehavior(\"#default#clientCaps\");ct=3Ds.b.connection=
Type}catch(e){}return ct');ct=3Dtcf(s)}}}else r=3D''}if(s.p"
+"l)while(pn<s.pl.length&&pn<30){ps=3Ds.fl(s.pl[pn].name,100)+';';if(p.in=
dexOf(ps)<0)p+=3Dps;pn++}s.resolution=3Dx;s.colorDepth=3Dc;s.javascriptVe=
rsion=3Dj;s.javaEnabled=3Dv;s.cookiesEnabled=3Dk;s.browserWidth=3Dbw;"
+"s.browserHeight=3Dbh;s.connectionType=3Dct;s.homepage=3Dhp;s.plugins=3D=
p;s.td=3D1}if(vo){s.pt(s.vl_g,',','vo2',vb);s.pt(s.vl_g,',','vo1',vo)}if(=
s.usePlugins)s.doPlugins(s);var l=3Ds.wd.location,r=3Dtfs.document."
+"referrer;if(!s.pageURL)s.pageURL=3Dl.href?l.href:l;if(!s.referrer&&!s._=
1_referrer){s.referrer=3Dr;s._1_referrer=3D1}if((vo&&vo._t)||!s.m_m('d'))=
{s.m_m('g');if(s.lnk||s.eo){var o=3Ds.eo?s.eo:s.lnk;if(!o)ret"
+"urn '';var =
p=3Ds.pageName,w=3D1,t=3Ds.ot(o),n=3Ds.oid(o),x=3Do.s_oidt,h,l,i,oc;if(s.=
eo&&o=3D=3Ds.eo){while(o&&!n&&t!=3D'BODY'){o=3Do.parentElement?o.parentEl=
ement:o.parentNode;if(!o)return '';t=3Ds.ot(o);n=3Ds.oid(o);x=3D"
+"o.s_oidt}oc=3Do.onclick?''+o.onclick:'';if((oc.indexOf(\"s_gs(\")>=3D0&=
&oc.indexOf(\".s_oc(\")<0)||oc.indexOf(\".tl(\")>=3D0)return =
''}ta=3Dn?o.target:1;h=3Ds.oh(o);i=3Dh.indexOf('?');h=3Ds.linkLeaveQueryS=
tring|"
+"|i<0?h:h.substring(0,i);l=3Ds.linkName;t=3Ds.linkType?s.linkType.toLowe=
rCase():s.lt(h);if(t&&(h||l))q+=3D'&pe=3Dlnk_'+(t=3D=3D'd'||t=3D=3D'e'?s.=
ape(t):'o')+(h?'&pev1=3D'+s.ape(h):'')+(l?'&pev2=3D'+s.ape(l):'');else =
tr"
+"k=3D0;if(s.trackInlineStats){if(!p){p=3Ds.pageURL;w=3D0}t=3Ds.ot(o);i=3D=
o.sourceIndex;if(s.gg('objectID')){n=3Ds.gg('objectID');x=3D1;i=3D1}if(p&=
&n&&t)qs=3D'&pid=3D'+s.ape(s.fl(p,255))+(w?'&pidt=3D'+w:'')+'&oid=3D'+s.a=
pe("
+"s.fl(n,100))+(x?'&oidt=3D'+x:'')+'&ot=3D'+s.ape(t)+(i?'&oi=3D'+i:'')}}i=
f(!trk&&!qs)return =
'';s.sampled=3Ds.vs(sed);if(trk){if(s.sampled)code=3Ds.mr(sess,(vt?'&t=3D=
'+s.ape(vt):'')+s.hav()+q+(qs?qs:s.rq(s.un)),0"
+",id,ta);qs=3D'';s.m_m('t');if(s.p_r)s.p_r();s.referrer=3D''}s.sq(qs);}e=
lse{s.dl(vo);}if(vo)s.pt(s.vl_g,',','vo1',vb);s.lnk=3Ds.eo=3Ds.linkName=3D=
s.linkType=3Ds.wd.s_objectID=3Ds.ppu=3Ds.pe=3Ds.pev1=3Ds.pev2=3Ds.pev3=3D=
'';"
+"if(s.pg)s.wd.s_lnk=3Ds.wd.s_eo=3Ds.wd.s_linkName=3Ds.wd.s_linkType=3D''=
;if(!id&&!s.tc){s.tc=3D1;s.flushBufferedRequests()}return =
code};s.tl=3Dfunction(o,t,n,vo){var =
s=3Dthis;s.lnk=3Ds.co(o);s.linkType=3Dt;s.linkName"
+"=3Dn;s.t(vo)};if(pg){s.wd.s_co=3Dfunction(o){var =
s=3Ds_gi(\"_\",1,1);return s.co(o)};s.wd.s_gs=3Dfunction(un){var =
s=3Ds_gi(un,1,1);return s.t()};s.wd.s_dc=3Dfunction(un){var =
s=3Ds_gi(un,1);return s.t()}}s.ssl=3D(s"
+".wd.location.protocol.toLowerCase().indexOf('https')>=3D0);s.d=3Ddocume=
nt;s.b=3Ds.d.body;if(s.d.getElementsByTagName){s.h=3Ds.d.getElementsByTag=
Name('HEAD');if(s.h)s.h=3Ds.h[0]}s.n=3Dnavigator;s.u=3Ds.n.userAgen"
+"t;s.ns6=3Ds.u.indexOf('Netscape6/');var =
apn=3Ds.n.appName,v=3Ds.n.appVersion,ie=3Dv.indexOf('MSIE =
'),o=3Ds.u.indexOf('Opera =
'),i;if(v.indexOf('Opera')>=3D0||o>0)apn=3D'Opera';s.isie=3D(apn=3D=3D'Mi=
crosoft Internet Exp"
+"lorer');s.isns=3D(apn=3D=3D'Netscape');s.isopera=3D(apn=3D=3D'Opera');s=
.ismac=3D(s.u.indexOf('Mac')>=3D0);if(o>0)s.apv=3DparseFloat(s.u.substrin=
g(o+6));else =
if(ie>0){s.apv=3DparseInt(i=3Dv.substring(ie+5));if(s.apv>3)s."
+"apv=3DparseFloat(i)}else =
if(s.ns6>0)s.apv=3DparseFloat(s.u.substring(s.ns6+10));else =
s.apv=3DparseFloat(v);s.em=3D0;if(String.fromCharCode){i=3Descape(String.=
fromCharCode(256)).toUpperCase();s.em=3D(i=3D=3D'%C4%80"
+"'?2:(i=3D=3D'%U0100'?1:0))}s.sa(un);s.vl_l=3D'dynamicVariablePrefix,vis=
itorID,vmk,visitorMigrationKey,visitorMigrationServer,visitorMigrationSer=
verSecure,ppu,charSet,visitorNamespace,cookieDomainPeriods,"
+"cookieLifetime,pageName,pageURL,referrer,currencyCode';s.va_l=3Ds.sp(s.=
vl_l,',');s.vl_t=3Ds.vl_l+',variableProvider,channel,server,pageType,tran=
sactionID,purchaseID,campaign,state,zip,events,products,l"
+"inkName,linkType';for(var =
n=3D1;n<51;n++)s.vl_t+=3D',prop'+n+',eVar'+n+',hier'+n+',list'+n;s.vl_l2=3D=
',tnt,pe,pev1,pev2,pev3,resolution,colorDepth,javascriptVersion,javaEnabl=
ed,cookiesEnabled,browserWidt"
+"h,browserHeight,connectionType,homepage,plugins';s.vl_t+=3Ds.vl_l2;s.va=
_t=3Ds.sp(s.vl_t,',');s.vl_g=3Ds.vl_t+',trackingServer,trackingServerSecu=
re,trackingServerBase,fpCookieDomainPeriods,disableBuffered"
+"Requests,mobile,visitorSampling,visitorSamplingGroup,dynamicAccountSele=
ction,dynamicAccountList,dynamicAccountMatch,trackDownloadLinks,trackExte=
rnalLinks,trackInlineStats,linkLeaveQueryString,linkD"
+"ownloadFileTypes,linkExternalFilters,linkInternalFilters,linkTrackVars,=
linkTrackEvents,linkNames,lnk,eo,_1_referrer';s.va_g=3Ds.sp(s.vl_g,',');s=
.pg=3Dpg;s.gl(s.vl_g);if(!ss)s.wds()",
w=3Dwindow,l=3Dw.s_c_il,n=3Dnavigator,u=3Dn.userAgent,v=3Dn.appVersion,e=3D=
v.indexOf('MSIE =
'),m=3Du.indexOf('Netscape6/'),a,i,s;if(un){un=3Dun.toLowerCase();if(l)fo=
r(i=3D0;i<l.length;i++){s=3Dl[i];if(!s._c||s._c=3D=3D's_c'){if(s.oun=3D=3D=
un)return s;else if(s.fs&&s.sa&&s.fs(s.oun,un)){s.sa(un);return =
s}}}}w.s_an=3D'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv=
wxyz';
w.s_sp=3Dnew Function("x","d","var a=3Dnew =
Array,i=3D0,j;if(x){if(x.split)a=3Dx.split(d);else =
if(!d)for(i=3D0;i<x.length;i++)a[a.length]=3Dx.substring(i,i+1);else =
while(i>=3D0){j=3Dx.indexOf(d,i);a[a.length]=3Dx.subst"
+"ring(i,j<0?x.length:j);i=3Dj;if(i>=3D0)i+=3Dd.length}}return a");
w.s_jn=3Dnew Function("a","d","var =
x=3D'',i,j=3Da.length;if(a&&j>0){x=3Da[0];if(j>1){if(a.join)x=3Da.join(d)=
;else for(i=3D1;i<j;i++)x+=3Dd+a[i]}}return x");
w.s_rep=3Dnew Function("x","o","n","return s_jn(s_sp(x,o),n)");
w.s_d=3Dnew Function("x","var t=3D'`^@$#',l=3Ds_an,l2=3Dnew =
Object,x2,d,b=3D0,k,i=3Dx.lastIndexOf('~~'),j,v,w;if(i>0){d=3Dx.substring=
(0,i);x=3Dx.substring(i+2);l=3Ds_sp(l,'');for(i=3D0;i<62;i++)l2[l[i]]=3Di=
;t=3Ds_sp(t,'');d"
+"=3Ds_sp(d,'~');i=3D0;while(i<5){v=3D0;if(x.indexOf(t[i])>=3D0) =
{x2=3Ds_sp(x,t[i]);for(j=3D1;j<x2.length;j++){k=3Dx2[j].substring(0,1);w=3D=
t[i]+k;if(k!=3D' =
'){v=3D1;w=3Dd[b+l2[k]]}x2[j]=3Dw+x2[j].substring(1)}}if(v)x=3Ds_jn("
+"x2,'');else{w=3Dt[i]+' =
';if(x.indexOf(w)>=3D0)x=3Ds_rep(x,w,t[i]);i++;b+=3D62}}}return x");
w.s_fe=3Dnew Function("c","return =
s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")"=
);
w.s_fa=3Dnew Function("f","var =
s=3Df.indexOf('(')+1,e=3Df.indexOf(')'),a=3D'',c;while(s>=3D0&&s<e){c=3Df=
.substring(s,s+1);if(c=3D=3D',')a+=3D'\",\"';else if((\"\\n\\r\\t =
\").indexOf(c)<0)a+=3Dc;s++}return a?'\"'+a+'\"':"
+"a");
w.s_ft=3Dnew Function("c","c+=3D'';var =
s,e,o,a,d,q,f,h,x;s=3Dc.indexOf('=3Dfunction(');while(s>=3D0){s++;d=3D1;q=
=3D'';x=3D0;f=3Dc.substring(s);a=3Ds_fa(f);e=3Do=3Dc.indexOf('{',s);e++;w=
hile(d>0){h=3Dc.substring(e,e+1);if(q){i"
+"f(h=3D=3Dq&&!x)q=3D'';if(h=3D=3D'\\\\')x=3Dx?0:1;else =
x=3D0}else{if(h=3D=3D'\"'||h=3D=3D\"'\")q=3Dh;if(h=3D=3D'{')d++;if(h=3D=3D=
'}')d--}if(d>0)e++}c=3Dc.substring(0,s)+'new =
Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")"
+"'+c.substring(e+1);s=3Dc.indexOf('=3Dfunction(')}return c;");
c=3Ds_d(c);if(e>0){a=3DparseInt(i=3Dv.substring(e+5));if(a>3)a=3DparseFlo=
at(i)}else if(m>0)a=3DparseFloat(u.substring(m+10));else =
a=3DparseFloat(v);if(a>=3D5&&v.indexOf('Opera')<0&&u.indexOf('Opera')<0){=
w.s_c=3Dnew Function("un","pg","ss","var s=3Dthis;"+c);return new =
s_c(un,pg,ss)}else s=3Dnew Function("un","pg","ss","var s=3Dnew =
Object;"+s_ft(c)+";return s");return s(un,pg,ss)}


------=_NextPart_000_0002_01CB185E.F8698B10--
