From: <Saved by Windows Internet Explorer 7>
Subject: Distributer & Manufacturer of Commercial Grade Pool Equipment
Date: Tue, 22 Jan 2008 09:29:02 -0500
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01C85CD9.39633240"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Dfr_FR =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Distributer & =
Manufacturer of Commercial Grade Pool Equipment</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META=20
content=3D"Distributing &amp; Manufacturing of Commercial Grade Pool =
Equipment with Aquam Aquatic Specialist Inc. the leader in the =
distribution and manufacture of commercial grade pool equipment. Our =
institutional clientele consists of aquatic and facility directors of"=20
name=3DDescription>
<META=20
content=3D"Distributer,Manufacturer,Commercial Grade Pool =
Equipment,Aquam,Aquam inc,Aquam aquatic specialist,Aquam aquatic =
specialist inc,Aquam sp=E9cialiste aquatique,Aquam sp=E9cialiste =
aquatique inc&#13;&#10;,Aquam Canada,Aquam.com,www.aquam,Aquam =
pool,Aquam aquatic,Aquam aq"=20
name=3Dkeywords><LINK media=3Dscreen =
href=3D"http://www.aquam.com/ui/css/general.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK href=3D"1/Accueil"=20
rel=3D"Version Canada Francais"><LINK href=3D"2/Home"=20
rel=3D"Canada English Version"><LINK href=3D"3/Home"=20
rel=3D"USA (English) Version"><LINK href=3D"2/Home"=20
rel=3D"International (English) Version">
<STYLE type=3Dtext/css>BODY {
	FONT-SIZE: 10px; COLOR: #000; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
TD {
	FONT-SIZE: 10px; COLOR: #000; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
TH {
	FONT-SIZE: 10px; COLOR: #000; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
BODY {
	MARGIN: 0px
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
H2 {
	FONT-SIZE: 11px
}
#containerSplash {
	BACKGROUND: url(ui/img/bg_splash.jpg) #fff no-repeat left top; LEFT: =
50%; MARGIN-LEFT: -392px; WIDTH: 783px; POSITION: absolute; TOP: 81px; =
HEIGHT: 280px
}
#containerSplash #rightPict {
	DISPLAY: none; Z-INDEX: 555555; BACKGROUND: =
url(ui/img/bg_rightPict.jpg) no-repeat left top; FILTER: =
alpha(opacity=3D0); LEFT: 1px; WIDTH: 783px; POSITION: absolute; TOP: =
1px; HEIGHT: 280px; -moz-opacity: 0
}
#containerSplash #logoSplash {
	LEFT: 88px; WIDTH: 206px; POSITION: absolute; TOP: 166px; HEIGHT: 45px
}
#containerSplash #logoSplash H1 {
	DISPLAY: block; FONT-SIZE: 0px; OVERFLOW: hidden; HEIGHT: 0px
}
#containerSplash #containerMenu {
	Z-INDEX: 100; LEFT: 91px; WIDTH: 100%; POSITION: absolute; TOP: 227px
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
#containerSplash #containerMenu DL {
	FLOAT: left
}
#containerSplash #containerMenu DT {
	MARGIN: 0px 20px 0px 0px; CURSOR: pointer; TEXT-ALIGN: center
}
#containerSplash #containerMenu DT .usa {
	DISPLAY: block; FONT-SIZE: 0px; OVERFLOW: hidden; TEXT-INDENT: 1000px; =
HEIGHT: 9px
}
#containerSplash #containerMenu DT .canada {
	DISPLAY: block; FONT-SIZE: 0px; OVERFLOW: hidden; TEXT-INDENT: 1000px; =
HEIGHT: 9px
}
#containerSplash #containerMenu DT .international {
	DISPLAY: block; FONT-SIZE: 0px; OVERFLOW: hidden; TEXT-INDENT: 1000px; =
HEIGHT: 9px
}
#containerSplash #containerMenu DT .usa {
	BACKGROUND: url(ui/img/usa.gif) no-repeat left top; WIDTH: 20px
}
#containerSplash #containerMenu DT .canada {
	BACKGROUND: url(ui/img/canada.gif) no-repeat left top; WIDTH: 45px
}
#containerSplash #containerMenu DT .international {
	BACKGROUND: url(ui/img/international.gif) no-repeat left top; WIDTH: =
84px
}
#containerSplash #containerMenu DT .usa:hover {
	BACKGROUND-POSITION: left bottom
}
#containerSplash #containerMenu DT .canada:hover {
	BACKGROUND-POSITION: left bottom
}
#containerSplash #containerMenu DT .international:hover {
	BACKGROUND-POSITION: left bottom
}
#containerSplash #containerMenu DD {
=09
}
#containerSplash #containerMenu UL {
	PADDING-RIGHT: 0px; MARGIN-TOP: 2px; PADDING-LEFT: 2px; BACKGROUND: =
url(ui/img/dashedHome.gif) repeat-y left top; PADDING-BOTTOM: 2px; =
WIDTH: 50px; PADDING-TOP: 2px
}
#containerSplash #containerMenu LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; =
TEXT-ALIGN: left
}
#containerSplash #containerMenu LI A {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-WEIGHT: bold; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-LEFT: 0px; WIDTH: 60px; COLOR: #006699; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; HEIGHT: 13px; TEXT-DECORATION: none
}
#containerSplash #containerMenu LI A:hover {
	BACKGROUND: #fff; FILTER: alpha(opacity=3D50); -moz-opacity: 0.5
}
#containerSplash #containerMenu LI A:focus {
	BACKGROUND: #fff; FILTER: alpha(opacity=3D50); -moz-opacity: 0.5
}
#containerSplash #containerTexte {
	PADDING-RIGHT: 8px; PADDING-LEFT: 8px; LEFT: 390px; PADDING-BOTTOM: =
8px; WIDTH: 373px; PADDING-TOP: 8px; POSITION: absolute; TOP: 4px; =
HEIGHT: 269px
}
#containerSplash #containerTexte .tableTexte {
	VERTICAL-ALIGN: middle; WIDTH: 357px; HEIGHT: 253px
}
#containerSplash #containerTexte .tableTexte .dashed {
	FONT-SIZE: 0px; BACKGROUND: url(ui/img/dash_splash.gif) repeat-x left =
top; MARGIN: 15px 0px 15px 35px; WIDTH: 80%; HEIGHT: 1px
}
</STYLE>

<SCRIPT src=3D"http://www.aquam.com/core/js/global.functions.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.aquam.com/core/js/yui/build/yahoo/yahoo.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.aquam.com/core/js/yui/build/event/event.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT src=3D"http://www.aquam.com/core/js/yui/build/dom/dom.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://www.aquam.com/core/js/yui/build/animation/animation.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
=0A=
=0A=
=0A=
=0A=
=0A=
function animate(e)=0A=
{=0A=
	getE("rightPict").style.display =3D 'block';=0A=
	=0A=
	var attributes =3D {=0A=
		opacity: { =0A=
			from: 0,=0A=
			to: 1 =0A=
		}=0A=
	};=0A=
	=0A=
	var anim =3D new YAHOO.util.Anim('rightPict', attributes, 1.2, =
YAHOO.util.Easing.easeOut);=0A=
	=0A=
	anim.onComplete.subscribe(function() { window.location=3De;});=0A=
	anim.animate();=0A=
	=0A=
	return false;=0A=
};=0A=
=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
<!--=0A=
window.onload =3D function() {=0A=
	montre;=0A=
	getE('smenu1').style.display =3D 'none';=0A=
}=0A=
=0A=
function montre(id) {=0A=
var d =3D document.getElementById(id);=0A=
	for (var i =3D 1; i<=3D10; i++) {=0A=
		if (document.getElementById('smenu'+i)) =
{document.getElementById('smenu'+i).style.display=3D'none';}=0A=
	}=0A=
if (d) {d.style.display=3D'block';}=0A=
}=0A=
//-->=0A=
</SCRIPT>

<META content=3D"MSHTML 6.00.6000.16587" name=3DGENERATOR></HEAD>
<BODY>
<DIV id=3DcontainerSplash>
<DIV id=3DlogoSplash><IMG title=3DAquam alt=3DAquam=20
src=3D"http://www.aquam.com/ui/img/logo_splash.gif"></DIV>
<DIV id=3DcontainerMenu>
<DL>
  <DT onmouseover=3Djavascript:montre();><A class=3Dusa title=3D"Aquam =
USA"=20
  onclick=3D"animate('3/Home');return false;"=20
  href=3D"http://www.aquam.com/3/Home">USA</A> </DT></DL>
<DL>
  <DT onmouseover=3D"javascript:montre('smenu1');"><A class=3Dcanada=20
  title=3D"Aquam CANADA" href=3D"http://www.aquam.com/">CANADA</A>=20
  <DD id=3Dsmenu1>
  <UL>
    <LI><A title=3DEnglish onclick=3D"animate('2/Home');return false;"=20
    href=3D"http://www.aquam.com/2/Home">ENGLISH</A>=20
    <LI><A title=3DFran=E7ais onclick=3D"animate('1/Accueil');return =
false;"=20
    href=3D"http://www.aquam.com/1/Accueil">FRAN=C7AIS</A> =
</LI></UL></DD></DL>
<DL>
  <DT onmouseover=3Djavascript:montre();><A class=3Dinternational=20
  title=3D"Aquam INTERNATIONAL" onclick=3D"animate('2/Home');return =
false;"=20
  href=3D"http://www.aquam.com/2/Home">INTERNATIONAL</A> =
</DT></DL></DIV>
<DIV id=3DcontainerTexte>
<TABLE cellSpacing=3D0 cellPadding=3D0>
  <TBODY>
  <TR>
    <TD class=3DtableTexte>
      <DIV><FONT face=3DArial color=3D#003366 size=3D1><FONT =
face=3DVerdana><FONT=20
      size=3D2><EM><STRONG>YOUR AQUATIC SPECIALIST=20
      !</STRONG></EM></FONT><BR><BR></FONT></FONT>
      <DIV align=3Djustify><FONT face=3DArial color=3D#003366 =
size=3D1><FONT=20
      face=3DVerdana>For fun, safe and convivial aquatic facilities, =
pools and=20
      waterfronts, aquatic professionals choose Aquam Inc. A leader in =
the=20
      distribution of aquatic equipment, Aquam Inc. offers quality =
products,=20
      competitive prices and personalized service. =
</FONT></FONT><BR></DIV><FONT=20
      color=3D#003366><STRONG><FONT face=3DArial size=3D1><FONT=20
      color=3D#003366></FONT><FONT face=3DVerdana><FONT =
color=3D#003366>TAKE A LOOK=20
      AND DISCOVER =
AQUAM...<BR></FONT></FONT></FONT></STRONG></FONT></DIV>
      <DIV class=3Ddashed></DIV>
      <DIV><FONT color=3D#006699><FONT size=3D2><EM><STRONG>VOTRE =
SP=C9CIALISTE=20
      AQUATIQUE !</STRONG></EM></FONT><BR><BR></FONT>
      <DIV align=3Djustify><FONT color=3D#006699>Pour des installations =
aquatiques,=20
      piscines et plans d=92eau amusants, s=E9curitaires et conviviaux, =
les=20
      professionnels choisissent Aquam inc. Chef de file dans la =
distribution=20
      d=92=E9quipements aquatiques, Aquam inc. vous offre des produits =
de qualit=E9=20
      sup=E9rieure jumel=E9s =E0 un service personnalis=E9. =
</FONT><BR></DIV><FONT=20
      color=3D#006699><STRONG>ENTREZ ET D=C9COUVREZ LE MONDE=20
      D=92AQUAM...</STRONG></FONT></DIV></TD></TR></TBODY></TABLE></DIV>
<DIV id=3DrightPict></DIV></DIV>
<SCRIPT language=3DJavaScript type=3Dtext/javascript>=0A=
	//<![CDATA[=0A=
	document.write('<img alt=3D"" width=3D"0" height=3D"0" =
src=3D"http://www.aquam.com/log.php?php_referer=3D&amp;ip=3D206.167.20.22=
7&amp;user_agent=3DMozilla%2F4.0+%28compatible%3B+MSIE+7.0%3B+Windows+NT+=
5.1%3B+FunWebProducts%3B+.NET+CLR+1.1.4322%29&amp;apache_cookie=3D206.167=
.20.227.1169746781768059&amp;request_uri=3D%2F&amp;j_referer=3D' + =
escape(document.referrer) + '" border=3D"0">\n');=0A=
	//]]>=0A=
	</SCRIPT>

<SCRIPT src=3D"http://www.google-analytics.com/urchin.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
type=3Dtext/javascript>=0A=
	_uacct =3D "UA-290223-5";=0A=
	urchinTracker();=0A=
	</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.aquam.com/ui/img/logo_splash.gif

R0lGODlhzgAtAMQQAEukyXHD4Y7a8yaFsQlunxx9q3vL54TS7TmVvV6z1RN2pUKcwy+Nt1Wsz2i7
2wBmmZfi+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA
ABAALAAAAADOAC0AAAX/ICSOZGmeaKqaQgAgQ/HMMzEwgCOsfO//wKBwSCyqHAsZbclcFho7o3RK
rVqvJAOC0Ox6Z4gDdkwum4mChOLL/obP8LgcKwBw2/guoTHv+/8rDXd5hE0MUYCJimcBa4WPTQWI
i5SVRQILkJqRk5aenymNm6NOnaCnnwCkqzQDqK+eAgysozZKALC5iQJKtIV7YiMGULrFcgaOvoSH
xs1/B4PKeAzO1XO80oQEptbdVtjZebje5Fi94Q8FyUzcPQYB8AHtoQE9LfXuAcE8B/pA8NzgyUGA
jsYhL66COJgVacG+FA7uEEigIlMNByoAJBswD4KBXgowqhBAkAYCRAYG/wBYwPFMyYIIIATwMs6H
qDYL5s1cQiBFAiYJT1h0ksJAtBl8UIBbEpRBAAROY5ZpUBCMCKpdRPYYiqeAARQMl6Tg+kCqiZ1N
KJ4Iyw6sl68QBgQYoMDAgjI/q0oSQZYGPh4vtcEtsW5GigFMahL2cvfEl78kHDwWUcCFggPUxuQt
uG0E4i6Qx27aS+JApBRNQotQhfAE2iaKRQgovCRKAqdztVrZXHBwXC+qz+ppEOyAHdglJDPJbMJA
E1PQvvQ0wbqL2RHVm0wX4QJAcCm80cU+t+Q7CdrMShwg/+Bh9hmxRyinoWBtG1OfuwSVfZSpnPDh
FGDCF/GVACBzLBylWP9+fqHwHoLc4RGaAG2U8F5icQAYjm8iuLECeZ2l8J6AI/T3EAkMPhBfYQqk
mNQIr3WBiAD9LaGWGX2Fc90IX9RXVForUNgWBKYxsZ0JR4V2YQJkxXYhE389uQSHWARWlSYnkvDe
kYdBKcJ8raBQZG2lHVXfe/v9xkZSNFZYhgApXgnJiyak2NgKbD2g1oUFQhCejyPk+UA94ZFYIk6r
tWEoHezJ+QigSHrJw3vjCKobCWRdF+MDCW2aRROFudLmEoXtWIVRjrLyXRM+pDgObe2QRydt+Gy6
D4Bk9YQmeX0akUCNqT6SJo88+VAYPqAqldoIWC1x3bKJQtlEdEuAOYP/eUTkGKwmwTGxaApj0vDV
phDCyCp/05IApAhxCskUUJt2FASc2/oyLATnmrAAASFBsKUIAPZJVlB92TDAwXHWdFRPjZb376nA
1qsJnSIcRWV2gjAh1YWXjsCrCOEW0pi7YcbpX4r3DiGlXgC07PLLMNPG04l5xmdyeexCWwLJM4h0
cxudIvfzoBAoOMUBQ6MTYg9WNpFmszXQzEZQcQYH4A6bEpLQkhA0HaZzTNxIREQSP0DlEXjcCcGo
NBTwEKpveYZcnd5SVosITX+1MqFNnO0DZmXrKUTENIh94URRYOIFnYISABlJTdylIcwuN50zE9E6
zVe+QmRctto/eN335QizeaGAzIWToOEDLR4MHAS0mRoh5kUDddXrEJCX8goBNOyo7D2E7AUBg8Gt
iWK+f+GKtTNkObtYPD/QWNZBNQE8uKKn+m0QK/NUPOHKZwG+tzvwGUpqmyYFtqTp/3BA9trLGyTq
Rv4lCx4x+JdF8s5GAfUDS2NB36K3j8IwJ3p+Uw/8UnWSKawPD2J7So2csrZedMxPPyPAG0gXjQui
iCgQ4IraUtKKSXDleiToDuVWyMIWuhBmFDOCA174siwFIAEtS8CEGuCdkagwh347AA+JwwMB8BAA
CUBEd4LTgoC0DFskCAEAOw==

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/ui/css/general.css

BODY {
	FONT-SIZE: 10px; COLOR: #369; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
TD {
	FONT-SIZE: 10px; COLOR: #369; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
TH {
	FONT-SIZE: 10px; COLOR: #369; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; BACKGROUND-COLOR: transparent
}
BODY {
	MARGIN: 0px
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
A:link {
	FONT-WEIGHT: bold; COLOR: #036
}
A:visited {
	FONT-WEIGHT: bold; COLOR: #036
}
A:active {
	FONT-WEIGHT: bold; COLOR: #036
}
A:hover {
	COLOR: #369
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
LI {
	LIST-STYLE-IMAGE: url(../img/bullet.gif)
}
#containerMain {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LEFT: 50%; PADDING-BOTTOM: 0px; =
MARGIN-LEFT: -392px; WIDTH: 783px; PADDING-TOP: 0px; POSITION: absolute; =
TOP: 20px
}
#containerMain #header {
	Z-INDEX: 55555555; WIDTH: 783px; POSITION: relative; HEIGHT: 63px
}
#containerMain #header .logoAquam {
	DISPLAY: block; FLOAT: left; MARGIN: 0px; WIDTH: 212px; HEIGHT: 63px
}
#containerMain #header #mainMenu {
	LEFT: 220px; OVERFLOW: visible; WIDTH: 475px; POSITION: absolute; TOP: =
48px; HEIGHT: auto
}
#containerMain #header #mainMenu UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: none; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
#containerMain #header #mainMenu DL {
	FLOAT: left
}
#containerMain #header #mainMenu DT {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; MARGIN: =
0px; CURSOR: pointer; PADDING-TOP: 0px; TEXT-ALIGN: center
}
#containerMain #header #mainMenu .dashed {
	BACKGROUND: url(../img/dashed.gif) no-repeat right top
}
#containerMain #header #mainMenu DT A:link {
	DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 11px; Z-INDEX: 555555; =
COLOR: #006699; FONT-FAMILY: Arial, Helvetica, sans-serif; =
TEXT-DECORATION: none
}
#containerMain #header #mainMenu DT A:visited {
	DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 11px; Z-INDEX: 555555; =
COLOR: #006699; FONT-FAMILY: Arial, Helvetica, sans-serif; =
TEXT-DECORATION: none
}
#containerMain #header #mainMenu DT A:active {
	DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 11px; Z-INDEX: 555555; =
COLOR: #006699; FONT-FAMILY: Arial, Helvetica, sans-serif; =
TEXT-DECORATION: none
}
#containerMain #header #mainMenu DT A:hover {
	BORDER-BOTTOM: #006699 1px solid
}
#containerMain #header #mainMenu DT .done {
	BORDER-BOTTOM: #006699 1px solid
}
#containerMain #header #mainMenu DT .menuActive {
	BORDER-BOTTOM: #006699 1px solid
}
#containerMain #header #mainMenu DT .menuNonActive {
=09
}
#containerMain #header #mainMenu DD {
	BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px; DISPLAY: none; =
BORDER-LEFT: #fff 1px solid; BORDER-BOTTOM: #fff 1px solid; POSITION: =
absolute; TOP: 17px
}
#containerMain #header #mainMenu LI {
	DISPLAY: block; LIST-STYLE-IMAGE: none; LIST-STYLE-TYPE: none; =
TEXT-ALIGN: left
}
#containerMain #header #mainMenu LI A {
	PADDING-RIGHT: 2px; DISPLAY: block; PADDING-LEFT: 5px; FONT-WEIGHT: =
bold; FONT-SIZE: 11px; FILTER: alpha(opacity=3D50); PADDING-BOTTOM: 2px; =
WIDTH: 130px; CURSOR: pointer; COLOR: #000; PADDING-TOP: 2px; =
FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #fff; =
TEXT-DECORATION: none; -moz-opacity: 0.5
}
#containerMain #header #mainMenu LI A:hover {
	FILTER: alpha(opacity=3D75); BACKGROUND-COLOR: #999; -moz-opacity: .75
}
#containerMain #header #menuDroite {
	BACKGROUND: url(../img/bg_menu_droite.gif) no-repeat left top; LEFT: =
695px; WIDTH: 82px; POSITION: absolute; TOP: 11px; HEIGHT: 52px
}
#containerMain #header #menuDroite UL {
	PADDING-LEFT: 5px; BACKGROUND: url(../img/loupe.gif) no-repeat right =
bottom; MARGIN: 0px; WIDTH: 82px; LIST-STYLE-TYPE: none
}
#containerMain #header #menuDroite LI {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px
}
#containerMain #header #menuDroite UL .accueil {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .moncompte {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .recherche {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .english1 {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .english2 {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .english3 {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left bottom; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .english2 {
	HEIGHT: 9px
}
#containerMain #header #menuDroite UL .english3 {
	HEIGHT: 9px
}
#containerMain #header #menuDroite UL .accueil:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .moncompte:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .recherche:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .english1:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .english2:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .english3:hover {
	BACKGROUND-POSITION: left top
}
#containerMain #header #menuDroite UL .accueil_hover {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .moncompte_hover {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #header #menuDroite UL .recherche_hover {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; MARGIN-TOP: 5px; =
DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; =
OVERFLOW: hidden; WIDTH: 60px; COLOR: #fff; TEXT-INDENT: -1000px; =
PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 7px; =
BACKGROUND-COLOR: transparent
}
#containerMain #containerCentre {
	Z-INDEX: 1; WIDTH: 783px; POSITION: relative; HEIGHT: 278px
}
#containerMain #containerCentre #menuCatalogue {
	Z-INDEX: 4; LEFT: 5px; WIDTH: 211px; COLOR: #fff; FONT-FAMILY: Arial, =
Helvetica, sans-serif; POSITION: absolute; TOP: 2px; HEIGHT: 269px
}
#containerMain #containerCentre #menuCatalogue H2 {
	DISPLAY: block; FONT-SIZE: 16px; MARGIN: 4px 0px 5px 21px
}
#containerMain #containerCentre #menuCatalogue DL {
	MARGIN: 0px 0px 0px 21px; POSITION: absolute
}
#containerMain #containerCentre #menuCatalogue DT {
	BORDER-TOP: #fff 1px solid; BORDER-LEFT-WIDTH: 1px; BORDER-LEFT-COLOR: =
#fff; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #fff; =
BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #fff
}
#containerMain #containerCentre #menuCatalogue DD {
	BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; MARGIN-TOP: =
-22px; DISPLAY: none; BORDER-LEFT-WIDTH: 1px; Z-INDEX: 100; =
BORDER-LEFT-COLOR: #fff; LEFT: 190px; BORDER-BOTTOM-WIDTH: 1px; =
BORDER-BOTTOM-COLOR: #fff; POSITION: absolute
}
#containerMain #containerCentre #menuCatalogue DL UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#containerMain #containerCentre #menuCatalogue DD A {
	PADDING-RIGHT: 15px; DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: =
bold; FONT-SIZE: 12px; FILTER: alpha(opacity=3D75); PADDING-BOTTOM: 3px; =
WIDTH: 200px; COLOR: #000; PADDING-TOP: 3px; BACKGROUND-COLOR: #fff; =
TEXT-DECORATION: none; -moz-opacity: 0.75
}
#containerMain #containerCentre #menuCatalogue DD A:hover {
	BACKGROUND: url(../img/arrow.gif) #fff no-repeat 10px 6px; FILTER: =
alpha(opacity=3D50); COLOR: #333366; -moz-opacity: 0.5
}
#containerMain #containerCentre #menuCatalogue DL DD LI {
	LIST-STYLE-IMAGE: none; LIST-STYLE-TYPE: none
}
#containerMain #containerCentre #menuCatalogue DT A {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 20px; FONT-WEIGHT: =
bold; FONT-SIZE: 12px; PADDING-BOTTOM: 3px; WIDTH: 170px; COLOR: #fff; =
PADDING-TOP: 3px; BACKGROUND-COLOR: transparent; TEXT-DECORATION: none
}
#containerMain #containerCentre #menuCatalogue DT A:hover {
	BACKGROUND: url(../img/arrow.gif) #fff no-repeat 10px 6px; FILTER: =
alpha(opacity=3D50); COLOR: #333366; -moz-opacity: 0.5
}
#containerMain #containerCentre #menuCatalogue DT .menuActiveCat {
	BACKGROUND: url(../img/arrow.gif) #fff no-repeat 10px 6px; FILTER: =
alpha(opacity=3D50); COLOR: #333366; -moz-opacity: 0.5
}
#containerMain #containerCentre #menuCatalogue DT .menuNonActiveCat {
	BACKGROUND: none transparent scroll repeat 0% 0%; FILTER: =
alpha(opacity=3D100); COLOR: #fff; -moz-opacity: 1
}
#containerMain .accueil {
=09
}
#containerMain #containerCentre #menuVert {
	Z-INDEX: 2; RIGHT: -2px; WIDTH: 90px; BOTTOM: 70px; POSITION: absolute; =
HEIGHT: 141px; BACKGROUND-COLOR: transparent
}
#containerMain #containerCentre #menuVert .catalogue {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OVERFLOW: hidden; WIDTH: 90px; TEXT-INDENT: -1000px; PADDING-TOP: 0px; =
BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px; BACKGROUND-COLOR: =
transparent
}
#containerMain #containerCentre #menuVert .formulaire {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OVERFLOW: hidden; WIDTH: 90px; TEXT-INDENT: -1000px; PADDING-TOP: 0px; =
BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px; BACKGROUND-COLOR: =
transparent
}
#containerMain #containerCentre #menuVert .newsletter {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-SIZE: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
OVERFLOW: hidden; WIDTH: 90px; TEXT-INDENT: -1000px; PADDING-TOP: 0px; =
BACKGROUND-REPEAT: no-repeat; HEIGHT: 47px; BACKGROUND-COLOR: =
transparent
}
#containerMain #containerCentre #menuVert .catalogue:hover {
	BACKGROUND-POSITION: left bottom
}
#containerMain #containerCentre #menuVert .formulaire:hover {
	BACKGROUND-POSITION: left bottom
}
#containerMain #containerCentre #menuVert .newsletter:hover {
	BACKGROUND-POSITION: left bottom
}
#containerMain #containerContentTop {
	WIDTH: 770px; POSITION: relative
}
#containerMain #containerContentBottom {
	WIDTH: 770px; POSITION: relative
}
#containerMain #containerContentCenter {
	WIDTH: 770px; POSITION: relative
}
#containerMain #containerContentTop {
	FONT-SIZE: 0px; BACKGROUND: url(../img/containerContentTop.gif) =
no-repeat left top; HEIGHT: 8px
}
#containerMain #containerContentCenter {
	PADDING-RIGHT: 10px; PADDING-LEFT: 15px; MIN-HEIGHT: 200px; BACKGROUND: =
url(../img/containerContentCenter.gif) repeat-y left top; =
PADDING-BOTTOM: 3px; PADDING-TOP: 3px
}
#containerMain #containerContentCenter H1 {
	FONT-WEIGHT: bold; FONT-SIZE: 16px; TEXT-TRANSFORM: uppercase; WIDTH: =
731px; COLOR: #369; BORDER-BOTTOM: #ccd9e5 2px solid
}
.headerHighlight {
	FONT-WEIGHT: bold; FONT-SIZE: 16px; TEXT-TRANSFORM: uppercase; WIDTH: =
731px; COLOR: #369; BORDER-BOTTOM: #ccd9e5 2px solid
}
.catSep {
	FONT-WEIGHT: bold; FONT-SIZE: 16px; TEXT-TRANSFORM: uppercase; WIDTH: =
731px; COLOR: #369; BORDER-BOTTOM: #b0e92f 2px solid; FONT-VARIANT: =
small-caps
}
#containerMain #containerContentCenter .contenu {
	WIDTH: 700px
}
#containerMain #containerContentBottom {
	FONT-SIZE: 0px; BACKGROUND: url(../img/containerContentBottom.gif) =
no-repeat left top; HEIGHT: 14px
}
#containerMain #containerTitleTop {
	FONT-WEIGHT: bold; FONT-SIZE: 12px; BACKGROUND: =
url(../img/bg_title.gif) #ccd9e5 no-repeat left top; MARGIN: 0px 0px 0px =
5px; WIDTH: 759px; FONT-FAMILY: Arial, Helvetica, sans-serif; HEIGHT: =
28px
}
#containerMain #containerTitleTop UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 0px 10px; PADDING-TOP: 0px
}
#containerMain #containerTitleTop LI {
	DISPLAY: block; BACKGROUND: url(../img/arrow_title.gif) no-repeat left =
center; FLOAT: left; LIST-STYLE-IMAGE: none; MARGIN: 6px 0px 0px 5px
}
#containerMain #containerTitleTop UL A {
	MARGIN: 0px 0px 0px 15px; COLOR: #036; TEXT-DECORATION: none
}
#containerMain #containerTitleTop UL A:hover {
	TEXT-DECORATION: underline
}
#containerMain #containerTitleTop #rechercheTitle {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(../img/fr_FR/bg_recherche_title.gif) no-repeat left top; FLOAT: =
right; PADDING-BOTTOM: 0px; WIDTH: 181px; PADDING-TOP: 0px; HEIGHT: 28px
}
#containerMain #containerTitleTop #panierTitle {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
right; MARGIN: 5px 25px 0px 0px; WIDTH: 73px; TEXT-INDENT: -1000px; =
BACKGROUND-REPEAT: no-repeat; HEIGHT: 16px; BACKGROUND-COLOR: =
transparent
}
#containerMain #containerTitleTop #panierTitle:hover {
	BACKGROUND-POSITION: left bottom
}
#containerMain #containerTitleTop #rechercheTitle #inputRechercheTitle {
	FLOAT: right; MARGIN: 4px 15px 0px 0px; WIDTH: 90px; HEIGHT: 13px
}
#containerMain #containerContentCenterList {
	PADDING-RIGHT: 0px; PADDING-LEFT: 21px; BACKGROUND: =
url(../img/containerContentCenter.gif) repeat-y left top; =
PADDING-BOTTOM: 5px; PADDING-TOP: 12px
}
#containerMain .containerCatalogList {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; WIDTH: 760px; PADDING-TOP: 0px
}
#containerMain .containerCatalogList LI {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; =
PADDING-BOTTOM: 0px; MARGIN: 0px 21px 21px 0px; WIDTH: 166px; =
PADDING-TOP: 0px; POSITION: relative; HEIGHT: 200px
}
#containerMain .containerCatalogList LI HR {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 166px; COLOR: #999; =
PADDING-TOP: 0px; HEIGHT: 2px; BACKGROUND-COLOR: #999; =
BORDER-RIGHT-WIDTH: 0px
}
#containerMain .containerContentCenterList H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: =
16px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; HEIGHT: 30px; =
TEXT-DECORATION: none
}
#containerMain .containerContentCenterList H1 A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: =
16px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; HEIGHT: 30px; =
TEXT-DECORATION: none
}
#containerMain .containerCatalogList LI H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: =
9px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; HEIGHT: 30px
}
#containerMain .containerCatalogList LI H2 A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; COLOR: #808080; PADDING-TOP: 0px; TEXT-DECORATION: none
}
#containerMain .containerCatalogList LI IMG {
	BORDER-RIGHT: #cbcbcb 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: =
#cbcbcb 1px solid; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; BORDER-LEFT: #cbcbcb 1px solid; PADDING-TOP: 0px; =
BORDER-BOTTOM: #cbcbcb 1px solid
}
#containerMain .containerCatalogList LI A.savoirplus {
	PADDING-RIGHT: 0px; BACKGROUND-POSITION: left top; DISPLAY: block; =
PADDING-LEFT: 0px; FONT-SIZE: 0px; RIGHT: 0px; PADDING-BOTTOM: 0px; =
MARGIN: 0px 0px 1px 72px; OVERFLOW: hidden; WIDTH: 94px; TEXT-INDENT: =
-1000px; PADDING-TOP: 0px; BACKGROUND-REPEAT: no-repeat; POSITION: =
relative; HEIGHT: 22px; BACKGROUND-COLOR: transparent
}
#containerMain .containerCatalogList LI A:hover {
	BACKGROUND-POSITION: left bottom
}
#recherche {
	DISPLAY: none; RIGHT: 18px; POSITION: absolute; TOP: 65px
}
#recherche2 {
	DISPLAY: none; RIGHT: 18px; POSITION: absolute; TOP: 65px
}
#recherche {
	Z-INDEX: 99990; FILTER: alpha(opacity=3D50); WIDTH: 242px; HEIGHT: =
61px; BACKGROUND-COLOR: #ffffff; -moz-opacity: 0.5; opacity: 0.5
}
#recherche2 {
	BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; Z-INDEX: =
99991; BORDER-LEFT: white 1px solid; WIDTH: 240px; BORDER-BOTTOM: white =
1px solid; HEIGHT: 59px; BACKGROUND-COLOR: transparent
}
#recherche2 #rechercheClose {
	DISPLAY: block; FONT-SIZE: 0px; BACKGROUND: =
url(../img/search_close.gif) no-repeat left top; FLOAT: right; MARGIN: =
3px 3px 0px 0px; OVERFLOW: hidden; WIDTH: 18px; TEXT-INDENT: -1000px; =
HEIGHT: 14px
}
#recherche2 #search {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 9px; PADDING-BOTTOM: =
0px; MARGIN: 5px 0px 0px 7px; WIDTH: 150px; PADDING-TOP: 0px; HEIGHT: =
16px
}
#recherche2 #searchForm {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
#recherche2 #rechercheGo {
	MARGIN-TOP: 6px; DISPLAY: block; FONT-SIZE: 0px; BACKGROUND: =
url(../img/search_go.gif) no-repeat left top; OVERFLOW: hidden; WIDTH: =
21px; TEXT-INDENT: -1000px; HEIGHT: 19px
}
#recherche2 #rechercheAdvanced {
	BACKGROUND-POSITION: left top; MARGIN-TOP: 0px; DISPLAY: block; =
FONT-SIZE: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 10px; OVERFLOW: hidden; =
WIDTH: 120px; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: no-repeat; =
HEIGHT: 14px; BACKGROUND-COLOR: transparent
}
#recherche2 #searchTab {
	MARGIN: 3px 0px 0px
}
#recherche2 #rechercheGo:hover {
	BACKGROUND-POSITION: left bottom
}
#recherche2 #rechercheAdvanced:hover {
	BACKGROUND-POSITION: left bottom
}
#recherche2 #rechercheClose:hover {
	BACKGROUND-POSITION: left bottom
}
.btnRecherche {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; WIDTH: =
86px; CURSOR: hand; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: no-repeat; =
HEIGHT: 17px; BACKGROUND-COLOR: transparent
}
.btnRecherche:hover {
	BACKGROUND-POSITION: left bottom
}
.liSearchResult {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: =
url(../img/arrow.gif); PADDING-BOTTOM: 5px; PADDING-TOP: 0px
}
#containerMain #containerContentCenter TABLE {
=09
}
#containerMain #containerContentCenter .left {
	VERTICAL-ALIGN: top; WIDTH: 360px
}
#containerMain #containerContentCenter .right {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: top; WIDTH: 365px; PADDING-TOP: 0px; TEXT-ALIGN: =
left
}
#mainItem #mainImage {
	BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: =
#cccccc 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-LEFT: #cccccc 1px solid; WIDTH: 328px; PADDING-TOP: 0px; =
BORDER-BOTTOM: #cccccc 1px solid; HEIGHT: 282px
}
#mainItem #mainImage IMG {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
}
#prodDesc {
=09
}
#prodDesc H1 {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-SIZE: 14px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #4e4d4d; PADDING-TOP: 6px
}
#prodDesc #mainDesc {
	MARGIN: 0px
}
#instances {
	MARGIN-TOP: 20px
}
#instances UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#instances LI {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #ccc 1px =
solid; DISPLAY: block; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 30px 20px 0px; BORDER-LEFT: #ccc 1px solid; WIDTH: =
328px; PADDING-TOP: 0px; BORDER-BOTTOM: #ccc 1px solid; POSITION: =
relative; HEIGHT: 98px
}
#instances LI IMG {
	BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 0px; DISPLAY: block; =
PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: 0px; WIDTH: 114px; =
MARGIN-RIGHT: 15px; PADDING-TOP: 0px; HEIGHT: 98px
}
#instances LI H2 {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; FONT-WEIGHT: =
bold; FONT-SIZE: 120%; PADDING-BOTTOM: 0px; MARGIN: 10px 0px 0px; COLOR: =
#666666; PADDING-TOP: 0px; HEIGHT: 16px; FONT-VARIANT: small-caps
}
#instances LI .ident {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; LEFT: 130px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #999999; PADDING-TOP: 0px; =
POSITION: absolute; TOP: 39px
}
#instances LI .ajouterPanier {
	RIGHT: 65px; WIDTH: 135px; BOTTOM: 4px; POSITION: absolute; HEIGHT: =
40px
}
#instances LI .ajouterPanier .top {
	BACKGROUND: url(../img/bg_top_ajoutPanier.gif) no-repeat left top; =
WIDTH: 135px; HEIGHT: 18px
}
#instances LI .ajouterPanier .top .price {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 15px; PADDING-BOTTOM: =
0px; COLOR: #808080; PADDING-TOP: 3px
}
#instances LI .ajouterPanier .bottom {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; =
OVERFLOW: hidden; WIDTH: 135px; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 22px; BACKGROUND-COLOR: transparent
}
#instances LI .ajouterPanier .bottomDisabled {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; =
OVERFLOW: hidden; WIDTH: 135px; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 22px; BACKGROUND-COLOR: transparent
}
#instances LI .ajouterPanier .bottom:hover {
	BACKGROUND-POSITION: 50% bottom
}
#instances LI .ajouterPanier .bottomDisabled:hover {
	BACKGROUND-POSITION: 50% bottom
}
#demande #demandeTable {
	BORDER-COLLAPSE: collapse
}
#demande #demandeTable TH {
	FONT-SIZE: 120%; PADDING-BOTTOM: 8px; HEIGHT: 20px; TEXT-ALIGN: left
}
#demande #demandeTable TR {
=09
}
#demande #demandeTable TD {
	PADDING-RIGHT: 8px; PADDING-BOTTOM: 4px; MARGIN: 1px; PADDING-TOP: 4px
}
#demande #demandeTable .bottomBorder {
	BACKGROUND: url(../img/dash_table.gif) repeat-x left bottom
}
.noBorder {
	BACKGROUND-IMAGE: none; WIDTH: 50px
}
.accountTable {
	BORDER-RIGHT: #ccd9e5 1px solid; BORDER-TOP: #ccd9e5 1px solid; =
PADDING-LEFT: 5px; BORDER-LEFT: #ccd9e5 1px solid; WIDTH: 95%; =
BORDER-BOTTOM: #ccd9e5 1px solid; BORDER-COLLAPSE: collapse
}
.accountTable TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 120%; PADDING-BOTTOM: =
5px; PADDING-TOP: 5px; HEIGHT: 20px; BACKGROUND-COLOR: #f2f5f8; =
TEXT-ALIGN: left
}
.accountTable .tableFooter {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; =
PADDING-TOP: 5px; HEIGHT: 20px; BACKGROUND-COLOR: #f2f5f8
}
.accountTable TR {
=09
}
.accountTable TD {
	PADDING-RIGHT: 8px; PADDING-BOTTOM: 4px; MARGIN: 1px; PADDING-TOP: 4px; =
HEIGHT: 30px
}
.accountTable .bottomBorder {
	BACKGROUND: url(../img/dash_table.gif) repeat-x left bottom
}
.accountTable .noBorder {
	BACKGROUND-IMAGE: none; WIDTH: 50px
}
.accountTable .deleteProduct {
	DISPLAY: block; BACKGROUND: url(../img/delete_product.gif) no-repeat =
left top; OVERFLOW: hidden; WIDTH: 18px; TEXT-INDENT: -1000px; HEIGHT: =
14px
}
.accountTable .deleteProduct:hover {
	BACKGROUND-POSITION: left bottom
}
#bottomMenu A {
	FONT-WEIGHT: normal; COLOR: #006699
}
#bottomMenu A:hover {
	FONT-WEIGHT: normal; COLOR: #006699
}
#bottomMenu A:visited {
	FONT-WEIGHT: normal; COLOR: #006699
}
#bottomMenu A:hover {
	TEXT-DECORATION: underline
}
.required {
	FONT-SIZE: 10px; COLOR: #ff6666
}
#imageTable {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 50px; MARGIN-LEFT: 10px; PADDING-TOP: =
0px
}
#bigImage {
	BORDER-RIGHT: #9bc539 2px solid; PADDING-RIGHT: 20px; BORDER-TOP: =
#9bc539 2px solid; MARGIN-TOP: 20px; DISPLAY: none; PADDING-LEFT: 20px; =
Z-INDEX: 999999; PADDING-BOTTOM: 20px; MARGIN-LEFT: 10px; BORDER-LEFT: =
#9bc539 2px solid; WIDTH: 680px; PADDING-TOP: 20px; BORDER-BOTTOM: =
#9bc539 2px solid; POSITION: absolute; HEIGHT: 540px; BACKGROUND-COLOR: =
white; TEXT-ALIGN: center
}
#fading {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
.gallery {
	WIDTH: 120px; HEIGHT: 90px
}
.galPic {
	BORDER-RIGHT: #006699 1px solid; BORDER-TOP: #006699 1px solid; =
MARGIN-TOP: 0px; DISPLAY: block; BORDER-LEFT: #006699 1px solid; =
PADDING-TOP: 0px; BORDER-BOTTOM: #006699 1px solid; POSITION: absolute
}
.catSep {
	CLEAR: both
}
.catSep A {
	MARGIN-TOP: 8px; COLOR: #369; TEXT-DECORATION: none
}
.catSep A:visited {
	MARGIN-TOP: 8px; COLOR: #369; TEXT-DECORATION: none
}
.catSep A:hover {
=09
}
.envoyerPan {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; =
OVERFLOW: hidden; WIDTH: 70px; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 14px; BACKGROUND-COLOR: transparent
}
.envoyerPan:hover {
	BACKGROUND-POSITION: left bottom
}
.envoyer {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; =
OVERFLOW: hidden; WIDTH: 75px; TEXT-INDENT: -1000px; BACKGROUND-REPEAT: =
no-repeat; HEIGHT: 17px; BACKGROUND-COLOR: transparent
}
.envoyer:hover {
	BACKGROUND-POSITION: left bottom
}
.contentDiv {
	MARGIN-BOTTOM: 40px
}
.textNews {
	MARGIN-BOTTOM: 25px
}
.publishDate {
	DISPLAY: block; COLOR: #99b2cc
}
.retourCat {
	WIDTH: 128px
}
.miseJourQtees {
	WIDTH: 138px
}
.envoiCommande {
	WIDTH: 147px
}
.confirmerCommande {
	WIDTH: 162px
}
.retourArriere {
	WIDTH: 126px
}
.retourCat {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; CURSOR: pointer; TEXT-INDENT: -1000px; =
MARGIN-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; =
BACKGROUND-COLOR: transparent
}
.miseJourQtees {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; CURSOR: pointer; TEXT-INDENT: -1000px; =
MARGIN-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; =
BACKGROUND-COLOR: transparent
}
.envoiCommande {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; CURSOR: pointer; TEXT-INDENT: -1000px; =
MARGIN-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; =
BACKGROUND-COLOR: transparent
}
.confirmerCommande {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; CURSOR: pointer; TEXT-INDENT: -1000px; =
MARGIN-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; =
BACKGROUND-COLOR: transparent
}
.retourArriere {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; CURSOR: pointer; TEXT-INDENT: -1000px; =
MARGIN-RIGHT: 10px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; =
BACKGROUND-COLOR: transparent
}
.retourCat:hover {
	BACKGROUND-POSITION: left bottom
}
.miseJourQtees:hover {
	BACKGROUND-POSITION: left bottom
}
.envoiCommande:hover {
	BACKGROUND-POSITION: left bottom
}
.confirmerCommande:hover {
	BACKGROUND-POSITION: left bottom
}
.retourArriere:hover {
	BACKGROUND-POSITION: left bottom
}
.entrerCompte {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; WIDTH: 70px; TEXT-INDENT: -1000px; MARGIN-RIGHT: =
15px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; BACKGROUND-COLOR: =
transparent
}
.entrerCompte:hover {
	BACKGROUND-POSITION: left bottom
}
.boutInscription {
	BACKGROUND-POSITION: left top; DISPLAY: block; FONT-SIZE: 0px; FLOAT: =
left; OVERFLOW: hidden; WIDTH: 126px; TEXT-INDENT: -1000px; =
BACKGROUND-REPEAT: no-repeat; HEIGHT: 14px; BACKGROUND-COLOR: =
transparent
}
.boutInscription:hover {
	BACKGROUND-POSITION: left bottom
}
.orderInput {
	BORDER-RIGHT: #ccd9e5 1px solid; BORDER-TOP: #ccd9e5 1px solid; =
BORDER-LEFT: #ccd9e5 1px solid; WIDTH: 280px; BORDER-BOTTOM: #ccd9e5 1px =
solid
}
.error {
	BORDER-RIGHT: red 1px dotted; PADDING-RIGHT: 10px; BORDER-TOP: red 1px =
dotted; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 10px; =
BORDER-LEFT: red 1px dotted; WIDTH: 70%; COLOR: red; PADDING-TOP: 10px; =
BORDER-BOTTOM: red 1px dotted
}
.success {
	BORDER-RIGHT: green 1px dotted; PADDING-RIGHT: 10px; BORDER-TOP: green =
1px dotted; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: 10px; =
BORDER-LEFT: green 1px dotted; WIDTH: 70%; COLOR: green; PADDING-TOP: =
10px; BORDER-BOTTOM: green 1px dotted
}

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/core/js/global.functions.js

/**=0A=
* global.functions.js=0A=
*=0A=
* Cross-browser function=0A=
*=0A=
* @author Mathieu Ducharme <mducharme@k3media.com>=0A=
*/=0A=
=0A=
=0A=
/**=0A=
* Return an element object=0A=
*=0A=
* @param string	The ID of the element=0A=
*=0A=
* @return HTMLElement	The object=0A=
*/=0A=
function getE(id)=0A=
{=0A=
	if(document.getElementById) {=0A=
		return(document.getElementById(id));=0A=
	}=0A=
        else if (document.all)=0A=
        {=0A=
               return(document.all[id]);=0A=
        }=0A=
        else if (document.layers)=0A=
        {=0A=
                return(document.layers[id]);=0A=
        }=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function removeAllChildren(obj)=0A=
{=0A=
	if(!obj.hasChildNodes) {=0A=
		// TODO: Find alternative method=0A=
		return(obj);=0A=
	}=0A=
	=0A=
	while(obj.hasChildNodes()) {=0A=
		obj.removeChild(obj.firstChild);=0A=
	}=0A=
	=0A=
	return(obj);=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function isFunction(a)=0A=
{=0A=
	return typeof a =3D=3D 'function';=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function isObject(a)=0A=
{=0A=
	return(a && typeof a =3D=3D 'object') || isFunction(a);=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function newStyle(obj)=0A=
{=0A=
	var s =3D new CSSStyleDeclaration();=0A=
	obj.style =3D s;=0A=
}=0A=
=0A=
/**=0A=
* Add an event listener to an object=0A=
*=0A=
* @param HTMLElement=0A=
* @param string=0A=
* @param string=0A=
* @param bool=0A=
*=0A=
* @return bool		Success/Failure=0A=
*/=0A=
function addEvent(obj, event, fn)=0A=
{	=0A=
	var ret;=0A=
	=0A=
	if(!isObject(obj)) {=0A=
		return false;=0A=
	}=0A=
	=0A=
	if(obj.addEventListener) {=0A=
		// Mozilla=0A=
		try {=0A=
			obj.addEventListener(event, fn, false);=0A=
			ret =3D true;=0A=
		}=0A=
		catch(e) {=0A=
			ret =3D false;=0A=
		}=0A=
	}=0A=
	else if (obj.attachEvent) {=0A=
		// Explorer=0A=
		ret =3D obj.attachEvent("on"+event, fn);=0A=
	}=0A=
=0A=
	return ret;=0A=
	=0A=
}=0A=
=0A=
/**=0A=
* Add a function to the window load handler without removing the old =
one(s)=0A=
*=0A=
* @param function=0A=
*/=0A=
function addLoadEvent(f)=0A=
{	=0A=
	if (isFunction(window.onload)) {=0A=
		window.onload =3D f;=0A=
	} =0A=
	else {=0A=
		var prevF =3D window.onload;=0A=
		window.onload =3D function() {=0A=
			prevF();=0A=
			f();=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
/**=0A=
* Remove an event listener from an object=0A=
*=0A=
* @param HTMLElement=0A=
* @param string=0A=
* @param string=0A=
* @param bool=0A=
*=0A=
* @return bool		Success/Failure=0A=
*/=0A=
function removeEvent(obj, event, fn, capture)=0A=
{=0A=
	if (obj.removeEventListener){=0A=
		// Mozilla=0A=
		obj.removeEventListener(event, fn, capture);=0A=
		return true;=0A=
	} =0A=
	else if (obj.detachEvent){=0A=
		// Explorer=0A=
		var ret =3D obj.detachEvent("on"+event, fn);=0A=
		return ret;=0A=
	} =0A=
}=0A=
=0A=
/**=0A=
* Returns a XMLHttpRequest Object=0A=
*=0A=
* @return XMLHttpRequest / ActiveXObject=0A=
*/=0A=
function getXMLHttpRequest()=0A=
{=0A=
	req =3D false;=0A=
	if(window.XMLHttpRequest) {=0A=
	// Mozilla=0A=
		try {=0A=
			req =3D new XMLHttpRequest();=0A=
		} catch(e) {=0A=
			req =3D false;=0A=
		}=0A=
	} =0A=
	else if(window.ActiveXObject) {=0A=
	// Explorer=0A=
		try {=0A=
			req =3D new ActiveXObject("Msxml2.XMLHTTP");=0A=
		} catch(e) {=0A=
			try {=0A=
				req =3D new ActiveXObject("Microsoft.XMLHTTP");=0A=
			} catch(e) {=0A=
				req =3D false;=0A=
			}=0A=
		}=0A=
	}=0A=
	return(req);=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function toggleView(obj)=0A=
{=0A=
	if(obj.style.display =3D=3D '' || obj.style.display =3D=3D 'none') {=0A=
		obj.style.display =3D 'block';=0A=
	}=0A=
	else {=0A=
		obj.style.display =3D 'none';=0A=
	}=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function listToggle(li, imgPlus, imgMinus)=0A=
{=0A=
	=0A=
	if(!isObject(li)) {=0A=
		=0A=
		return(false);=0A=
	}=0A=
	=0A=
	var ul =3D li.getElementsByTagName('ul')[0];=0A=
		=0A=
	if(!isObject(ul)) {=0A=
		return(false);=0A=
	}=0A=
=0A=
	var lis =3D ul.getElementsByTagName('li');=0A=
	for(var i =3D 0; i < lis.length; i++) {=0A=
		var obj =3Dlis[i];=0A=
		if(obj.style.display =3D=3D '' || obj.style.display =3D=3D 'none') {=0A=
			obj.style.display =3D 'list-item';=0A=
			if(li.firstChild.nodeName =3D=3D 'IMG') {=0A=
				li.firstChild.src =3D imgMinus;=0A=
			}=0A=
		}=0A=
		else {=0A=
			obj.style.display =3D 'none';=0A=
			if(li.firstChild.nodeName =3D=3D 'IMG') {=0A=
				li.firstChild.src =3D imgPlus;=0A=
			}=0A=
		}=0A=
	}=0A=
=0A=
}=0A=
=0A=
/**=0A=
* Get the object that an event is attached to=0A=
*=0A=
* This function fixes the bug with the Explorer Event model where the =
property=0A=
* "this" seems to have been forgotten.=0A=
*=0A=
* Call like this:=0A=
* function(e) { getEventObj((e ? e : window.event), this); }=0A=
* to ensure the correct event is passed with all browsers (explorer win =
5+)=0A=
*=0A=
* @param Event=0A=
* @param Object		The source object, in firefox, empty object in Explorer=0A=
*=0A=
* @return Object	The source object, in all browsers (wishful)=0A=
*=0A=
* @author Mathieu Ducharme <mducharme@k3media.com>=0A=
*/=0A=
function getEventObj(e, obj)=0A=
{=0A=
	if(e.srcElement) {=0A=
		// Explorer (and konqueror, which supports both models)=0A=
		return(e.srcElement);=0A=
	}=0A=
	else {=0A=
		// Firefox=0A=
		return(obj);=0A=
	}=0A=
}=0A=
=0A=
/**=0A=
* Prepare an UL so it hide/show=0A=
*/=0A=
function prepareUL(ul, c, imgPlus, imgMinus, imgBlank)=0A=
{=0A=
	=0A=
	if(!isObject(ul)) {=0A=
		return(false);=0A=
	}=0A=
=0A=
	var item;=0A=
	=0A=
	var lis =3D ul.getElementsByTagName('li');=0A=
	for(var i =3D 0; i < lis.length; i++) {=0A=
	=0A=
		var iconImg =3D document.createElement('img');=0A=
	=0A=
		item =3D lis[i];=0A=
=0A=
		// Initialize item=0A=
		listToggle(item, imgPlus, imgMinus);=0A=
		=0A=
		// Add the image only if it has child=0A=
		if(item.className =3D=3D c) {=0A=
=0A=
			// Add the icon image=0A=
			iconImg.src =3D imgPlus;=0A=
			item.insertBefore(iconImg, item.firstChild);=0A=
			=0A=
			// Add the click event to the icon=0A=
			addEvent(iconImg, 'click', =0A=
				function(e) {=0A=
					var obj =3D getEventObj((e ? e : window.event), this);=0A=
					listToggle(obj.parentNode, imgPlus, imgMinus); =0A=
				}=0A=
			);=0A=
			=0A=
			// Hide=0A=
			listToggle(item, imgPlus, imgMinus);=0A=
			=0A=
			// Recursive=0A=
			// TODO: Why 2??? Found by trial & error=0A=
			if(isObject(item.getElementsByTagName('ul')[2])) {=0A=
				prepareUL(item.getElementsByTagName('ul')[2], c, imgPlus, imgMinus, =
imgBlank);=0A=
			}=0A=
		}=0A=
		else {=0A=
			iconImg.src =3D imgBlank;=0A=
			item.insertBefore(iconImg, item.firstChild);=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
/**=0A=
*=0A=
*/=0A=
function scrollDiv(div, speed)=0A=
{=0A=
	clearTimeout(window.scrollTimer);=0A=
	div.scrollTop +=3D speed;=0A=
	window.scrollTimer =3D setTimeout(function() { scrollDiv(div, speed); =
}, 15);=0A=
}=0A=
=0A=
function moveDiv(div, pixels)=0A=
{=0A=
	div.scrollTop +=3D pixels;=0A=
}=0A=
/**=0A=
* Stop the scroll=0A=
*/=0A=
function stopScroll()=0A=
{=0A=
	clearTimeout(window.scrollTimer);=0A=
}=0A=
=0A=
function objOpacity(obj, val)=0A=
{=0A=
	if(obj.style.filter) {=0A=
		obj.style.filter =3D 'alpha(opacity=3D'+val+')';=0A=
	}=0A=
	else {=0A=
		obj.style.opacity =3D val/100;=0A=
	}=0A=
}=0A=
=0A=
function selMulti(selId, id, name)=0A=
{=0A=
	// Do not add non-object values (like the default "0")=0A=
	if(id > 0) {=0A=
		var v =3D getE(selId+'_hid').value;=0A=
		v =3D v.split('|'); // v is now an array=0A=
		=0A=
		var add =3D true;=0A=
		=0A=
		// Check if the id was already selected=0A=
		for(var i=3D0; i<v.length; i++) {=0A=
			if(v[i] =3D=3D id) {=0A=
				add=3Dfalse;=0A=
				continue;=0A=
			}=0A=
		}=0A=
		=0A=
		// Only add if necessary=0A=
		if(add) {=0A=
=0A=
			var span =3D document.createElement('span');=0A=
			span.id =3D selId+'_span_'+id;=0A=
			span.innerHTML =3D name;=0A=
			=0A=
			if(v !=3D '') {=0A=
				var br =3D document.createElement('br');=0A=
				br.id =3D selId+'_br_'+id;=0A=
				getE(selId+'_div').appendChild(br);=0A=
			}=0A=
			=0A=
			getE(selId+'_div').appendChild(span);=0A=
			=0A=
			var sep2 =3D (v =3D=3D '') ? ('') : ('|');=0A=
			getE(selId+'_hid').value +=3D sep2 + id;=0A=
			=0A=
			// Add the "delete" button to remove an object from the list=0A=
			var img =3D document.createElement('img');=0A=
			img.id =3D selId+'_img_'+id;=0A=
			img.src =3D =
'http://demo.k3-media.com/common/core/ui/img/fileclose.png';=0A=
			=0A=
			getE(selId+'_span_'+id).insertBefore(img, =
getE(selId+'_span_'+id).firstChild);=0A=
			=0A=
			// Add the "delete" event on the image click=0A=
			addEvent(getE(selId+'_img_'+id), 'click',=0A=
			function()=0A=
			{=0A=
				var hidVal =3D getE(selId+'_hid').value;=0A=
				var hidArr =3D hidVal.split('|'); // v is now an array=0A=
				var newHid =3D new Array();=0A=
				for(var i=3D0; i<hidArr.length; i++) {=0A=
					if(hidArr[i] !=3D id) {=0A=
						newHid.push(hidArr[i]);=0A=
					}=0A=
				}=0A=
				=0A=
				// Remove the span=0A=
				if(getE(selId+'_br_'+id)) {=0A=
					getE(selId+'_div').removeChild(getE(selId+'_br_'+id));=0A=
				}=0A=
				getE(selId+'_div').removeChild(getE(selId+'_span_'+id));=0A=
				=0A=
				//getE(selId+'_div').innerHTML =3D newDiv.join('<br>');=0A=
				getE(selId+'_hid').value =3D newHid.join('|');=0A=
				=0A=
			});=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
/**=0A=
* Prepare a select object to use a better select widget=0A=
*=0A=
* @param string	The select ID to prepare, AS STRING=0A=
*=0A=
* @return The hidden input=0A=
*/=0A=
function prepSelMulti(selId)=0A=
{=0A=
	// Create the div element=0A=
	var div =3D document.createElement('div');=0A=
	div.id =3D selId+'_div';=0A=
=0A=
	// Create the hidden input=0A=
	var hid =3D document.createElement('input');=0A=
	hid.type =3D 'hidden';=0A=
	hid.name =3D getE(selId).name.substr(0, getE(selId).name.length-2);=0A=
	hid.id =3D selId+'_hid';=0A=
	=0A=
	// Remove the "multiple" option to show a standard select=0A=
	getE(selId).multiple =3D false;=0A=
	=0A=
	// Add the hidden input and the div=0A=
	getE(selId).parentNode.insertBefore(hid, getE(selId));=0A=
	getE(selId).parentNode.insertBefore(div, getE(selId));=0A=
	=0A=
	// Change the name of the original select ("orig[]") to "orig_old[]"=0A=
	getE(selId).name =3D hid.name.substr(0, hid.name.length-2)+'_old[]';=0A=
	=0A=
	// Add the main event on the select change to fill the correct stuff=0A=
	addEvent(getE(selId), 'change', =0A=
	function() =0A=
	{=0A=
		=0A=
		var id =3D getE(selId).options[getE(selId).selectedIndex].value;=0A=
		var name =3D getE(selId).options[getE(selId).selectedIndex].innerHTML;=0A=
		selMulti(selId, id, name);=0A=
		=0A=
	});=0A=
		=0A=
	// Select the "selected" optiosn automatically=0A=
	var opts =3D getE(selId).options;=0A=
	for(var j=3D0; j< opts.length; j++) {=0A=
		if(opts[j].selected) {=0A=
			selMulti(selId, opts[j].value, opts[j].innerHTML);=0A=
		}=0A=
	}=0A=
	=0A=
	return hid;=0A=
}=0A=
=0A=
/**=0A=
* @param Object	The link (<a>) object that calls this function=0A=
* @param integer	Width of the window to open=0A=
* @param integer	Height of the window to open=0A=
*/=0A=
function linkPopWin(a, w, h)=0A=
{=0A=
	var r =3D parseInt(Math.random()*999999);=0A=
	var newWin =3D window.open(a.href, "CMSPopup"+r , =
"width=3D"+w+",height=3D"+h+",scrollbars=3Dyes");=0A=
	return false;=0A=
}	
------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/core/js/yui/build/yahoo/yahoo.js

/*                                                                       =
                                                                         =
     =20
Copyright (c) 2006, Yahoo! Inc. All rights reserved.                     =
                                                                         =
     =20
Code licensed under the BSD License:                                     =
                                                                         =
     =20
http://developer.yahoo.net/yui/license.txt                               =
                                                                         =
     =20
version: 0.10.0                                                          =
                                                                         =
     =20
*/=20

/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */

/**
 * The Yahoo global namespace
 * @constructor
 */
var YAHOO =3D window.YAHOO || {};

/**
 * Returns the namespace specified and creates it if it doesn't exist
 *
 * YAHOO.namespace("property.package");
 * YAHOO.namespace("YAHOO.property.package");
 *
 * Either of the above would create YAHOO.property, then
 * YAHOO.property.package
 *
 * @param  {String} sNameSpace String representation of the desired=20
 *                             namespace
 * @return {Object}            A reference to the namespace object
 */
YAHOO.namespace =3D function( sNameSpace ) {

    if (!sNameSpace || !sNameSpace.length) {
        return null;
    }

    var levels =3D sNameSpace.split(".");

    var currentNS =3D YAHOO;

    // YAHOO is implied, so it is ignored if it is included
    for (var i=3D(levels[0] =3D=3D "YAHOO") ? 1 : 0; i<levels.length; =
++i) {
        currentNS[levels[i]] =3D currentNS[levels[i]] || {};
        currentNS =3D currentNS[levels[i]];
    }

    return currentNS;
};

/**
 * Global log method.
 */
YAHOO.log =3D function(sMsg,sCategory) {
    if(YAHOO.widget.Logger) {
        YAHOO.widget.Logger.log(null, sMsg, sCategory);
    } else {
        return false;
    }
};

YAHOO.namespace("util");
YAHOO.namespace("widget");
YAHOO.namespace("example");

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/core/js/yui/build/event/event.js

/*                                                                       =
                                                                         =
     =20
Copyright (c) 2006, Yahoo! Inc. All rights reserved.                     =
                                                                         =
     =20
Code licensed under the BSD License:                                     =
                                                                         =
     =20
http://developer.yahoo.net/yui/license.txt                               =
                                                                         =
     =20
version: 0.10.0                                                          =
                                                                         =
     =20
*/=20

/**
 * The CustomEvent class lets you define events for your application
 * that can be subscribed to by one or more independent component.
 *
 * @param {String} type The type of event, which is passed to the =
callback
 *                 when the event fires
 * @param {Object} oScope The context the event will fire from.  "this" =
will
 *                 refer to this object in the callback.  Default value: =

 *                 the window object.  The listener can override this.
 * @constructor
 */
YAHOO.util.CustomEvent =3D function(type, oScope) {
    /**
     * The type of event, returned to subscribers when the event fires
     * @type string
     */
    this.type =3D type;

    /**
     * The scope the the event will fire from by default.  Defaults to =
the window=20
     * obj
     * @type object
     */
    this.scope =3D oScope || window;

    /**
     * The subscribers to this event
     * @type Subscriber[]
     */
    this.subscribers =3D [];

    // Register with the event utility for automatic cleanup.  Made =
optional
    // so that CustomEvent can be used independently of pe.event
    if (YAHOO.util.Event) {=20
        YAHOO.util.Event.regCE(this);
    }
};

YAHOO.util.CustomEvent.prototype =3D {
    /**
     * Subscribes the caller to this event
     * @param {Function} fn       The function to execute
     * @param {Object}   obj      An object to be passed along when the =
event fires
     * @param {boolean}  bOverride If true, the obj passed in becomes =
the execution
     *                            scope of the listener
     */
    subscribe: function(fn, obj, bOverride) {
        this.subscribers.push( new YAHOO.util.Subscriber(fn, obj, =
bOverride) );
    },

    /**
     * Unsubscribes the caller from this event
     * @param {Function} fn  The function to execute
     * @param {Object}   obj An object to be passed along when the event =
fires
     * @return {boolean} True if the subscriber was found and detached.
     */
    unsubscribe: function(fn, obj) {
        var found =3D false;
        for (var i=3D0, len=3Dthis.subscribers.length; i<len; ++i) {
            var s =3D this.subscribers[i];
            if (s && s.contains(fn, obj)) {
                this._delete(i);
                found =3D true;
            }
        }

        return found;
    },

    /**
     * Notifies the subscribers.  The callback functions will be =
executed
     * from the scope specified when the event was created, and with the =
following
     * parameters:
     *   <pre>
     *   - The type of event
     *   - All of the arguments fire() was executed with as an array
     *   - The custom object (if any) that was passed into the =
subscribe() method
     *   </pre>
     *  =20
     * @param {Array} an arbitrary set of parameters to pass to the =
handler
     */
    fire: function() {
        for (var i=3D0, len=3Dthis.subscribers.length; i<len; ++i) {
            var s =3D this.subscribers[i];
            if (s) {
                var scope =3D (s.override) ? s.obj : this.scope;
                s.fn.call(scope, this.type, arguments, s.obj);
            }
        }
    },

    /**
     * Removes all listeners
     */
    unsubscribeAll: function() {
        for (var i=3D0, len=3Dthis.subscribers.length; i<len; ++i) {
            this._delete(i);
        }
    },

    /**
     * @private
     */
    _delete: function(index) {
        var s =3D this.subscribers[index];
        if (s) {
            delete s.fn;
            delete s.obj;
        }

        delete this.subscribers[index];
    }
};

/////////////////////////////////////////////////////////////////////

/**
 * @class Stores the subscriber information to be used when the event =
fires.
 * @param {Function} fn       The function to execute
 * @param {Object}   obj      An object to be passed along when the =
event fires
 * @param {boolean}  bOverride If true, the obj passed in becomes the =
execution
 *                            scope of the listener
 * @constructor
 */
YAHOO.util.Subscriber =3D function(fn, obj, bOverride) {
    /**
     * The callback that will be execute when the event fires
     * @type function
     */
    this.fn =3D fn;

    /**
     * An optional custom object that will passed to the callback when
     * the event fires
     * @type object
     */
    this.obj =3D obj || null;

    /**
     * The default execution scope for the event listener is defined =
when the
     * event is created (usually the object which contains the event).
     * By setting override to true, the execution scope becomes the =
custom
     * object passed in by the subscriber
     * @type boolean
     */
    this.override =3D (bOverride);
};

/**
 * Returns true if the fn and obj match this objects properties.
 * Used by the unsubscribe method to match the right subscriber.
 *
 * @param {Function} fn the function to execute
 * @param {Object} obj an object to be passed along when the event fires
 * @return {boolean} true if the supplied arguments match this=20
 *                   subscriber's signature.
 */
YAHOO.util.Subscriber.prototype.contains =3D function(fn, obj) {
    return (this.fn =3D=3D fn && this.obj =3D=3D obj);
};

/* Copyright (c) 2006 Yahoo! Inc. All rights reserved. */

// Only load this library once.  If it is loaded a second time, existing
// events cannot be detached.
if (!YAHOO.util.Event) {

/**
 * @class
 * The event utility provides functions to add and remove event =
listeners,
 * event cleansing.  It also tries to automatically remove listeners it
 * registers during the unload event.
 * @constructor
 */
    YAHOO.util.Event =3D function() {

        /**
         * True after the onload event has fired
         * @type boolean
         * @private
         */
        var loadComplete =3D  false;

        /**
         * Cache of wrapped listeners
         * @type array
         * @private
         */
        var listeners =3D [];

        /**
         * Listeners that will be attached during the onload event
         * @type array
         * @private
         */
        var delayedListeners =3D [];

        /**
         * User-defined unload function that will be fired before all =
events
         * are detached
         * @type array
         * @private
         */
        var unloadListeners =3D [];

        /**
         * Cache of the custom events that have been defined.  Used for
         * automatic cleanup
         * @type array
         * @private
         */
        var customEvents =3D [];

        /**
         * Cache of DOM0 event handlers to work around issues with DOM2 =
events
         * in Safari
         * @private
         */
        var legacyEvents =3D [];

        /**
         * Listener stack for DOM0 events
         * @private
         */
        var legacyHandlers =3D [];

        /**
         * The number of times to poll after window.onload.  This number =
is
         * increased if additional late-bound handlers are requested =
after
         * the page load.
         * @private
         */
        var retryCount =3D 0;

        /**
         * onAvailable listeners
         * @private
         */
        var onAvailStack =3D [];

        /**
         * Lookup table for legacy events
         * @private
         */
        var legacyMap =3D [];

        /**
         * Counter for auto id generation
         * @private
         */
        var counter =3D 0;

        return { // PREPROCESS

            /**
             * The number of times we should look for elements that are =
not
             * in the DOM at the time the event is requested after the =
document
             * has been loaded.  The default is 200@50 ms, so it will =
poll
             * for 10 seconds or until all outstanding handlers are =
bound
             * (whichever comes first).
             * @type int
             */
            POLL_RETRYS: 200,

            /**
             * The poll interval in milliseconds
             * @type int
             */
            POLL_INTERVAL: 50,

            /**
             * Element to bind, int constant
             * @type int
             */
            EL: 0,

            /**
             * Type of event, int constant
             * @type int
             */
            TYPE: 1,

            /**
             * Function to execute, int constant
             * @type int
             */
            FN: 2,

            /**
             * Function wrapped for scope correction and cleanup, int =
constant
             * @type int
             */
            WFN: 3,

            /**
             * Object passed in by the user that will be returned as a=20
             * parameter to the callback, int constant
             * @type int
             */
            SCOPE: 3,

            /**
             * Adjusted scope, either the element we are registering the =
event
             * on or the custom object passed in by the listener, int =
constant
             * @type int
             */
            ADJ_SCOPE: 4,

            /**
             * Safari detection is necessary to work around the =
preventDefault
             * bug that makes it so you can't cancel a href click from =
the=20
             * handler.  There is not a capabilities check we can use =
here.
             * @private
             */
            isSafari: =
(/Safari|Konqueror|KHTML/gi).test(navigator.userAgent),

            /**
             * IE detection needed to properly calculate pageX and =
pageY. =20
             * capabilities checking didn't seem to work because another =

             * browser that does not provide the properties have the =
values=20
             * calculated in a different manner than IE.
             * @private
             */
            isIE: (!this.isSafari && =
!navigator.userAgent.match(/opera/gi) &&=20
                    navigator.userAgent.match(/msie/gi)),

            /**
             * @private
             */
            addDelayedListener: function(el, sType, fn, oScope, =
bOverride) {
                delayedListeners[delayedListeners.length] =3D
                    [el, sType, fn, oScope, bOverride];

                // If this happens after the inital page load, we need =
to
                // reset the poll counter so that we continue to search =
for
                // the element for a fixed period of time.
                if (loadComplete) {
                    retryCount =3D this.POLL_RETRYS;
                    this.startTimeout(0);
                    // this._tryPreloadAttach();
                }
            },

            /**
             * @private
             */
            startTimeout: function(interval) {
                var i =3D (interval || interval =3D=3D=3D 0) ? interval =
: this.POLL_INTERVAL;
                var self =3D this;
                var callback =3D function() { self._tryPreloadAttach(); =
};
                this.timeout =3D setTimeout(callback, i);
            },

            /**
             * Executes the supplied callback when the item with the =
supplied
             * id is found.  This is meant to be used to execute =
behavior as
             * soon as possible as the page loads.  If you use this =
after the
             * initial page load it will poll for a fixed time for the =
element.
             * The number of times it will poll and the frequency are
             * configurable.  By default it will poll for 10 seconds.
             * @param {string} p_id the id of the element to look for.
             * @param {function} p_fn what to execute when the element =
is found.
             * @param {object} p_obj an optional object to be passed =
back as
             * a parameter to p_fn.
             * @param {boolean} p_override If set to true, p_fn will =
execute
             * in the scope of p_obj
             *
             */
            onAvailable: function(p_id, p_fn, p_obj, p_override) {
                onAvailStack.push( { id:       p_id,=20
                                     fn:       p_fn,=20
                                     obj:      p_obj,=20
                                     override: p_override } );

                retryCount =3D this.POLL_RETRYS;
                this.startTimeout(0);
                // this._tryPreloadAttach();
            },

            /**
             * Appends an event handler
             *
             * @param {Object}   el        The html element to assign =
the=20
             *                             event to
             * @param {String}   sType     The type of event to append
             * @param {Function} fn        The method the event invokes
             * @param {Object}   oScope    An arbitrary object that will =
be=20
             *                             passed as a parameter to the =
handler
             * @param {boolean}  bOverride If true, the obj passed in =
becomes
             *                             the execution scope of the =
listener
             * @return {boolean} True if the action was successful or =
defered,
             *                        false if one or more of the =
elements=20
             *                        could not have the event bound to =
it.
             */
            addListener: function(el, sType, fn, oScope, bOverride) {

                if (!fn || !fn.call) {
                    return false;
                }

                // The el argument can be an array of elements or =
element ids.
                if ( this._isValidCollection(el)) {
                    var ok =3D true;
                    for (var i=3D0,len=3Del.length; i<len; ++i) {
                        ok =3D ( this.on(el[i],=20
                                       sType,=20
                                       fn,=20
                                       oScope,=20
                                       bOverride) && ok );
                    }
                    return ok;

                } else if (typeof el =3D=3D "string") {
                    var oEl =3D this.getEl(el);
                    // If the el argument is a string, we assume it is=20
                    // actually the id of the element.  If the page is =
loaded
                    // we convert el to the actual element, otherwise we =

                    // defer attaching the event until onload event =
fires

                    // check to see if we need to delay hooking up the =
event=20
                    // until after the page loads.
                    if (loadComplete && oEl) {
                        el =3D oEl;
                    } else {
                        // defer adding the event until onload fires
                        this.addDelayedListener(el,=20
                                                sType,=20
                                                fn,=20
                                                oScope,=20
                                                bOverride);

                        return true;
                    }
                }

                // Element should be an html element or an array if we =
get=20
                // here.
                if (!el) {
                    return false;
                }

                // we need to make sure we fire registered unload events =

                // prior to automatically unhooking them.  So we hang on =
to=20
                // these instead of attaching them to the window and =
fire the
                // handles explicitly during our one unload event.
                if ("unload" =3D=3D sType && oScope !=3D=3D this) {
                    unloadListeners[unloadListeners.length] =3D
                            [el, sType, fn, oScope, bOverride];
                    return true;
                }


                // if the user chooses to override the scope, we use the =
custom
                // object passed in, otherwise the executing scope will =
be the
                // HTML element that the event is registered on
                var scope =3D (bOverride) ? oScope : el;

                // wrap the function so we can return the oScope object =
when
                // the event fires;
                var wrappedFn =3D function(e) {
                        return fn.call(scope, =
YAHOO.util.Event.getEvent(e),=20
                                oScope);
                    };

                var li =3D [el, sType, fn, wrappedFn, scope];
                var index =3D listeners.length;
                // cache the listener so we can try to automatically =
unload
                listeners[index] =3D li;

                if (this.useLegacyEvent(el, sType)) {
                    var legacyIndex =3D this.getLegacyIndex(el, sType);
                    if (legacyIndex =3D=3D -1) {

                        legacyIndex =3D legacyEvents.length;
                        legacyMap[el.id + sType] =3D legacyIndex;

                        // cache the signature for the DOM0 event, and=20
                        // include the existing handler for the event, =
if any
                        legacyEvents[legacyIndex] =3D=20
                            [el, sType, el["on" + sType]];
                        legacyHandlers[legacyIndex] =3D [];

                        el["on" + sType] =3D=20
                            function(e) {
                                YAHOO.util.Event.fireLegacyEvent(
                                    YAHOO.util.Event.getEvent(e), =
legacyIndex);
                            };
                    }

                    // add a reference to the wrapped listener to our =
custom
                    // stack of events
                    legacyHandlers[legacyIndex].push(index);

                // DOM2 Event model
                } else if (el.addEventListener) {
                    el.addEventListener(sType, wrappedFn, false);
                // Internet Explorer abstraction
                } else if (el.attachEvent) {
                    el.attachEvent("on" + sType, wrappedFn);
                }

                return true;
               =20
            },

            /**
             * Shorthand for YAHOO.util.Event.addListener
             * @type function
             */
            // on: this.addListener,

            /**
             * When using legacy events, the handler is routed to this =
object
             * so we can fire our custom listener stack.
             * @private
             */
            fireLegacyEvent: function(e, legacyIndex) {
                var ok =3D true;

                var le =3D legacyHandlers[legacyIndex];
                for (var i=3D0,len=3Dle.length; i<len; ++i) {
                    var index =3D le[i];
                    if (index) {
                        var li =3D listeners[index];
                        if ( li && li[this.WFN] ) {
                            var scope =3D li[this.ADJ_SCOPE];
                            var ret =3D li[this.WFN].call(scope, e);
                            ok =3D (ok && ret);
                        } else {
                            // This listener was removed, so delete it =
from
                            // the array
                            delete le[i];
                        }
                    }
                }

                return ok;
            },

            /**
             * Returns the legacy event index that matches the supplied=20
             * signature
             * @private
             */
            getLegacyIndex: function(el, sType) {
                /*
                for (var i=3D0,len=3DlegacyEvents.length; i<len; ++i) {
                    var le =3D legacyEvents[i];
                    if (le && le[0] =3D=3D=3D el && le[1] =3D=3D=3D =
sType) {
                        return i;
                    }
                }
                return -1;
                */

                var key =3D this.generateId(el) + sType;
                if (typeof legacyMap[key] =3D=3D "undefined") {=20
                    return -1;
                } else {
                    return legacyMap[key];
                }

            },

            /**
             * Logic that determines when we should automatically use =
legacy
             * events instead of DOM2 events.
             * @private
             */
            useLegacyEvent: function(el, sType) {

                if (!el.addEventListener && !el.attachEvent) {
                    return true;
                } else if (this.isSafari) {
                    if ("click" =3D=3D sType || "dblclick" =3D=3D sType) =
{
                        return true;
                    }
                }

                return false;
            },
                   =20
            /**
             * Removes an event handler
             *
             * @param {Object} el the html element or the id of the =
element to=20
             * assign the event to.
             * @param {String} sType the type of event to remove
             * @param {Function} fn the method the event invokes
             * @return {boolean} true if the unbind was successful, =
false=20
             * otherwise
             */
            removeListener: function(el, sType, fn, index) {

                if (!fn || !fn.call) {
                    return false;
                }

                // The el argument can be a string
                if (typeof el =3D=3D "string") {
                    el =3D this.getEl(el);
                // The el argument can be an array of elements or =
element ids.
                } else if ( this._isValidCollection(el)) {
                    var ok =3D true;
                    for (var i=3D0,len=3Del.length; i<len; ++i) {
                        ok =3D ( this.removeListener(el[i], sType, fn) =
&& ok );
                    }
                    return ok;
                }

                if ("unload" =3D=3D sType) {

                    for (i=3D0, len=3DunloadListeners.length; i<len; =
i++) {
                        var li =3D unloadListeners[i];
                        if (li &&=20
                            li[0] =3D=3D el &&=20
                            li[1] =3D=3D sType &&=20
                            li[2] =3D=3D fn) {
                                delete unloadListeners[i];
                                return true;
                        }
                    }

                    return false;
                }

                var cacheItem =3D null;
 =20
                if ("undefined" =3D=3D typeof index) {
                    index =3D this._getCacheIndex(el, sType, fn);
                }

                if (index >=3D 0) {
                    cacheItem =3D listeners[index];
                }

                if (!el || !cacheItem) {
                    return false;
                }


                if (el.removeEventListener) {
                    el.removeEventListener(sType, cacheItem[this.WFN], =
false);
                } else if (el.detachEvent) {
                    el.detachEvent("on" + sType, cacheItem[this.WFN]);
                }

                // removed the wrapped handler
                delete listeners[index][this.WFN];
                delete listeners[index][this.FN];
                delete listeners[index];

                return true;

            },

            /**
             * Returns the event's target element
             * @param {Event} ev the event
             * @param {boolean} resolveTextNode when set to true the =
target's
             *                  parent will be returned if the target is =
a=20
             *                  text node
             * @return {HTMLElement} the event's target
             */
            getTarget: function(ev, resolveTextNode) {
                var t =3D ev.target || ev.srcElement;

                if (resolveTextNode && t && "#text" =3D=3D t.nodeName) {
                    return t.parentNode;
                } else {
                    return t;
                }
            },

            /**
             * Returns the event's pageX
             * @param {Event} ev the event
             * @return {int} the event's pageX
             */
            getPageX: function(ev) {
                var x =3D ev.pageX;
                if (!x && 0 !=3D=3D x) {
                    x =3D ev.clientX || 0;

                    if ( this.isIE ) {
                        x +=3D this._getScrollLeft();
                    }
                }

                return x;
            },

            /**
             * Returns the event's pageY
             * @param {Event} ev the event
             * @return {int} the event's pageY
             */
            getPageY: function(ev) {
                var y =3D ev.pageY;
                if (!y && 0 !=3D=3D y) {
                    y =3D ev.clientY || 0;

                    if ( this.isIE ) {
                        y +=3D this._getScrollTop();
                    }
                }

                return y;
            },

            /**
             * Returns the pageX and pageY properties as an indexed =
array.
             * @type int[]
             */
            getXY: function(ev) {
                return [this.getPageX(ev), this.getPageY(ev)];
            },

            /**
             * Returns the event's related target=20
             * @param {Event} ev the event
             * @return {HTMLElement} the event's relatedTarget
             */
            getRelatedTarget: function(ev) {
                var t =3D ev.relatedTarget;
                if (!t) {
                    if (ev.type =3D=3D "mouseout") {
                        t =3D ev.toElement;
                    } else if (ev.type =3D=3D "mouseover") {
                        t =3D ev.fromElement;
                    }
                }

                return t;
            },

            /**
             * Returns the time of the event.  If the time is not =
included, the
             * event is modified using the current time.
             * @param {Event} ev the event
             * @return {Date} the time of the event
             */
            getTime: function(ev) {
                if (!ev.time) {
                    var t =3D new Date().getTime();
                    try {
                        ev.time =3D t;
                    } catch(e) {=20
                        // can't set the time property =20
                        return t;
                    }
                }

                return ev.time;
            },

            /**
             * Convenience method for stopPropagation + preventDefault
             * @param {Event} ev the event
             */
            stopEvent: function(ev) {
                this.stopPropagation(ev);
                this.preventDefault(ev);
            },

            /**
             * Stops event propagation
             * @param {Event} ev the event
             */
            stopPropagation: function(ev) {
                if (ev.stopPropagation) {
                    ev.stopPropagation();
                } else {
                    ev.cancelBubble =3D true;
                }
            },

            /**
             * Prevents the default behavior of the event
             * @param {Event} ev the event
             */
            preventDefault: function(ev) {
                if (ev.preventDefault) {
                    ev.preventDefault();
                } else {
                    ev.returnValue =3D false;
                }
            },
            =20
            /**
             * Finds the event in the window object, the caller's =
arguments, or
             * in the arguments of another method in the callstack.  =
This is
             * executed automatically for events registered through the =
event
             * manager, so the implementer should not normally need to =
execute
             * this function at all.
             * @param {Event} the event parameter from the handler
             * @return {Event} the event=20
             */
            getEvent: function(e) {
                var ev =3D e || window.event;

                if (!ev) {
                    var c =3D this.getEvent.caller;
                    while (c) {
                        ev =3D c.arguments[0];
                        if (ev && Event =3D=3D ev.constructor) {
                            break;
                        }
                        c =3D c.caller;
                    }
                }

                return ev;
            },

            /**
             * Returns the charcode for an event
             * @param {Event} ev the event
             * @return {int} the event's charCode
             */
            getCharCode: function(ev) {
                return ev.charCode || ((ev.type =3D=3D "keypress") ? =
ev.keyCode : 0);
            },

            /**
             * @private
             * Locating the saved event handler data by function ref
             */
            _getCacheIndex: function(el, sType, fn) {
                for (var i=3D0,len=3Dlisteners.length; i<len; ++i) {
                    var li =3D listeners[i];
                    if ( li                 &&=20
                         li[this.FN] =3D=3D fn  &&=20
                         li[this.EL] =3D=3D el  &&=20
                         li[this.TYPE] =3D=3D sType ) {
                        return i;
                    }
                }

                return -1;
            },

            /**
             * Generates an unique ID for the element if it does not =
already=20
             * have one.
             * @param el the element
             * @return {string} the id of the element
             */
            generateId: function(el) {
                var id =3D el.id;

                if (!id) {
                    id =3D "yuievtautoid-" + (counter++);
                    el.id =3D id;
                }

                return id;
            },

            /**
             * We want to be able to use getElementsByTagName as a =
collection
             * to attach a group of events to.  Unfortunately, different =

             * browsers return different types of collections.  This =
function
             * tests to determine if the object is array-like.  It will =
also=20
             * fail if the object is an array, but is empty.
             * @param o the object to test
             * @return {boolean} true if the object is array-like and =
populated
             * @private
             */
            _isValidCollection: function(o) {

                return ( o                    && // o is something
                         o.length             && // o is indexed
                         typeof o !=3D "string" && // o is not a string
                         !o.tagName           && // o is not an HTML =
element
                         !o.alert             && // o is not a window
                         typeof o[0] !=3D "undefined" );

            },

            /**
             * @private
             * DOM element cache
             */
            elCache: {},

            /**
             * We cache elements bound by id because when the unload =
event=20
             * fires, we can no longer use document.getElementById
             * @private
             */
            getEl: function(id) {
                return document.getElementById(id);
            },

            /**
             * Clears the element cache
             * @deprecated
             * @private
             */
            clearCache: function() { },

            /**
             * Called by CustomEvent instances to provide a handle to =
the=20
             * event * that can be removed later on.  Should be package=20
             * protected.
             * @private
             */
            regCE: function(ce) {
                customEvents.push(ce);
            },

            /**
             * @private
             * hook up any deferred listeners
             */
            _load: function(e) {
                loadComplete =3D true;
            },

            /**
             * Polling function that runs before the onload event fires, =

             * attempting * to attach to DOM Nodes as soon as they are=20
             * available
             * @private
             */
            _tryPreloadAttach: function() {

                if (this.locked) {
                    return false;
                }

                this.locked =3D true;


                // keep trying until after the page is loaded.  We need =
to=20
                // check the page load state prior to trying to bind the =

                // elements so that we can be certain all elements have =
been=20
                // tested appropriately
                var tryAgain =3D !loadComplete;
                if (!tryAgain) {
                    tryAgain =3D (retryCount > 0);
                }

                // Delayed listeners
                var stillDelayed =3D [];

                for (var i=3D0,len=3DdelayedListeners.length; i<len; =
++i) {
                    var d =3D delayedListeners[i];
                    // There may be a race condition here, so we need to =

                    // verify the array element is usable.
                    if (d) {

                        // el will be null if document.getElementById =
did not
                        // work
                        var el =3D this.getEl(d[this.EL]);

                        if (el) {
                            this.on(el, d[this.TYPE], d[this.FN],=20
                                    d[this.SCOPE], d[this.ADJ_SCOPE]);
                            delete delayedListeners[i];
                        } else {
                            stillDelayed.push(d);
                        }
                    }
                }

                delayedListeners =3D stillDelayed;

                // onAvailable
                notAvail =3D [];
                for (i=3D0,len=3DonAvailStack.length; i<len ; ++i) {
                    var item =3D onAvailStack[i];
                    if (item) {
                        el =3D this.getEl(item.id);

                        if (el) {
                            var scope =3D (item.override) ? item.obj : =
el;
                            item.fn.call(scope, item.obj);
                            delete onAvailStack[i];
                        } else {
                            notAvail.push(item);
                        }
                    }
                }

                retryCount =3D (stillDelayed.length =3D=3D=3D 0 &&=20
                                    notAvail.length =3D=3D=3D 0) ? 0 : =
retryCount - 1;

                if (tryAgain) {
                    this.startTimeout();
                }

                this.locked =3D false;

            },

            /**
             * Removes all listeners registered by pe.event.  Called=20
             * automatically during the unload event.
             * @private
             */
            _unload: function(e, me) {
                for (var i=3D0,len=3DunloadListeners.length; i<len; ++i) =
{
                    var l =3D unloadListeners[i];
                    if (l) {
                        var scope =3D (l[this.ADJ_SCOPE]) ? =
l[this.SCOPE]: window;
                        l[this.FN].call(scope, this.getEvent(e), =
l[this.SCOPE] );
                    }
                }

                if (listeners && listeners.length > 0) {
                    for (i=3D0,len=3Dlisteners.length; i<len ; ++i) {
                        l =3D listeners[i];
                        if (l) {
                            this.removeListener(l[this.EL], =
l[this.TYPE],=20
                                    l[this.FN], i);
                        }
                    }

                    this.clearCache();
                }

                for (i=3D0,len=3DcustomEvents.length; i<len; ++i) {
                    customEvents[i].unsubscribeAll();
                    delete customEvents[i];
                }

                for (i=3D0,len=3DlegacyEvents.length; i<len; ++i) {
                    // dereference the element
                    delete legacyEvents[i][0];
                    // delete the array item
                    delete legacyEvents[i];
                }
            },

            /**
             * Returns scrollLeft
             * @private
             */
            _getScrollLeft: function() {
                return this._getScroll()[1];
            },

            /**
             * Returns scrollTop
             * @private
             */
            _getScrollTop: function() {
                return this._getScroll()[0];
            },

            /**
             * Returns the scrollTop and scrollLeft.  Used to calculate =
the=20
             * pageX and pageY in Internet Explorer
             * @private
             */
            _getScroll: function() {
                var dd =3D document.documentElement; db =3D =
document.body;
                if (dd && dd.scrollTop) {
                    return [dd.scrollTop, dd.scrollLeft];
                } else if (db) {
                    return [db.scrollTop, db.scrollLeft];
                } else {
                    return [0, 0];
                }
            }
        };
    } ();

    /**
     * @private
     */
    YAHOO.util.Event.on =3D YAHOO.util.Event.addListener;

    if (document && document.body) {
        YAHOO.util.Event._load();
    } else {
        YAHOO.util.Event.on(window, "load", YAHOO.util.Event._load,=20
                YAHOO.util.Event, true);
    }

    YAHOO.util.Event.on(window, "unload", YAHOO.util.Event._unload,=20
                YAHOO.util.Event, true);

    YAHOO.util.Event._tryPreloadAttach();

}


------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/core/js/yui/build/dom/dom.js

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
*/

/**
 * @class Provides helper methods for DOM elements.
 */
YAHOO.util.Dom =3D function() {
   var ua =3D navigator.userAgent.toLowerCase();
   var isOpera =3D (ua.indexOf('opera') !=3D -1);
   var isIE =3D (ua.indexOf('msie') !=3D -1 && !isOpera); // not opera =
spoof
   var id_counter =3D 0;
  =20
   return {
      /**
       * Returns an HTMLElement reference
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID for getting a DOM reference, an actual DOM reference, or an Array =
of IDs and/or HTMLElements.
       * @return {HTMLElement/Array} A DOM reference to an HTML element =
or an array of HTMLElements.
       */
      get: function(el) {
         if (typeof el !=3D 'string' && !(el instanceof Array) )
         { // assuming HTMLElement or HTMLCollection, so pass back as is
            return el;
         }
        =20
         if (typeof el =3D=3D 'string')=20
         { // ID
            return document.getElementById(el);
         }
         else
         { // array of ID's and/or elements
            var collection =3D [];
            for (var i =3D 0, len =3D el.length; i < len; ++i)
            {
               collection[collection.length] =3D this.get(el[i]);
            }
           =20
            return collection;
         }

         return null; // safety, should never happen
      },
  =20
      /**
       * Normalizes currentStyle and ComputedStyle.
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
       * @param {String} property The style property whose value is =
returned.
       * @return {String/Array} The current value of the style property =
for the element(s).
       */
      getStyle: function(el, property) {
         var f =3D function(el) {
            var value =3D null;
            var dv =3D document.defaultView;
           =20
            if (property =3D=3D 'opacity' && el.filters)=20
            {// IE opacity
               value =3D 1;
               try {
                  value =3D =
el.filters.item('DXImageTransform.Microsoft.Alpha').opacity / 100;
               } catch(e) {
                  try {
                     value =3D el.filters.item('alpha').opacity / 100;
                  } catch(e) {}
               }
            }
            else if (el.style[property])=20
            {
               value =3D el.style[property];
            }
            else if (el.currentStyle && el.currentStyle[property]) {
               value =3D el.currentStyle[property];
            }
            else if ( dv && dv.getComputedStyle )
            {  // convert camelCase to hyphen-case
              =20
               var converted =3D '';
               for(var i =3D 0, len =3D property.length;i < len; ++i) {
                  if (property.charAt(i) =3D=3D =
property.charAt(i).toUpperCase())=20
                  {
                     converted =3D converted + '-' + =
property.charAt(i).toLowerCase();
                  } else {
                     converted =3D converted + property.charAt(i);
                  }
               }
              =20
               if (dv.getComputedStyle(el, '') && =
dv.getComputedStyle(el, '').getPropertyValue(converted)) {
                  value =3D dv.getComputedStyle(el, =
'').getPropertyValue(converted);
               }
            }
     =20
            return value;
         };
        =20
         return this.batch(el, f, this, true);
      },
  =20
      /**
       * Wrapper for setting style properties of HTMLElements.  =
Normalizes "opacity" across modern browsers.
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
       * @param {String} property The style property to be set.
       * @param {String} val The value to apply to the given property.
       */
      setStyle: function(el, property, val) {
         var f =3D function(el) {
            switch(property) {
               case 'opacity' :
                  if (isIE && typeof el.style.filter =3D=3D 'string') { =
// in case not appended
                     el.style.filter =3D 'alpha(opacity=3D' + val * 100 =
+ ')';
                    =20
                     if (!el.currentStyle || !el.currentStyle.hasLayout) =
{
                        el.style.zoom =3D 1; // when no layout or cant =
tell
                     }
                  } else {
                     el.style.opacity =3D val;
                     el.style['-moz-opacity'] =3D val;
                     el.style['-khtml-opacity'] =3D val;
                  }

                  break;
               default :
                  el.style[property] =3D val;
            }
           =20
         };
        =20
         this.batch(el, f, this, true);
      },
     =20
      /**
       * Gets the current position of an element based on page =
coordinates.  Element must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
       @ return {Array} The XY position of the element(s)
       */
      getXY: function(el) {
         var f =3D function(el) {
  =20
         // has to be part of document to have pageXY
            if (el.parentNode =3D=3D=3D null || this.getStyle(el, =
'display') =3D=3D 'none') {
               return false;
            }
           =20
            var parent =3D null;
            var pos =3D [];
            var box;
           =20
            if (el.getBoundingClientRect) { // IE
               box =3D el.getBoundingClientRect();
               var scrollTop =3D =
Math.max(document.documentElement.scrollTop, document.body.scrollTop);
               var scrollLeft =3D =
Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
              =20
               return [box.left + scrollLeft, box.top + scrollTop];
            }
            else if (document.getBoxObjectFor) { // gecko
               box =3D document.getBoxObjectFor(el);
              =20
               var borderLeft =3D parseInt(this.getStyle(el, =
'borderLeftWidth'));
               var borderTop =3D parseInt(this.getStyle(el, =
'borderTopWidth'));
              =20
               pos =3D [box.x - borderLeft, box.y - borderTop];
            }
            else { // safari & opera
               pos =3D [el.offsetLeft, el.offsetTop];
               parent =3D el.offsetParent;
               if (parent !=3D el) {
                  while (parent) {
                     pos[0] +=3D parent.offsetLeft;
                     pos[1] +=3D parent.offsetTop;
                     parent =3D parent.offsetParent;
                  }
               }
               if (
                  ua.indexOf('opera') !=3D -1=20
                  || ( ua.indexOf('safari') !=3D -1 && this.getStyle(el, =
'position') =3D=3D 'absolute' )=20
               ) {
                  pos[0] -=3D document.body.offsetLeft;
                  pos[1] -=3D document.body.offsetTop;
               }=20
            }
           =20
            if (el.parentNode) { parent =3D el.parentNode; }
            else { parent =3D null; }
     =20
            while (parent && parent.tagName !=3D 'BODY' && =
parent.tagName !=3D 'HTML')=20
            { // account for any scrolled ancestors
               pos[0] -=3D parent.scrollLeft;
               pos[1] -=3D parent.scrollTop;
     =20
               if (parent.parentNode) { parent =3D parent.parentNode; }=20
               else { parent =3D null; }
            }
     =20
            return pos;
         };
        =20
         return this.batch(el, f, this, true);
      },
     =20
      /**
       * Gets the current X position of an element based on page =
coordinates.  The element must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
       * @return {String/Array} The X position of the element(s)
       */
      getX: function(el) {
         return this.getXY(el)[0];
      },
     =20
      /**
       * Gets the current Y position of an element based on page =
coordinates.  Element must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
       * @return {String/Array} The Y position of the element(s)
       */
      getY: function(el) {
         return this.getXY(el)[1];
      },
     =20
      /**
       * Set the position of an html element in page coordinates, =
regardless of how the element is positioned.
       * The element(s) must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements
       * @param {Array} pos Contains X & Y values for new position =
(coordinates are page-based)
       * @param {Boolean} noRetry By default we try and set the position =
a second time if the first fails
       */
      setXY: function(el, pos, noRetry) {
         var f =3D function(el) {
  =20
            var style_pos =3D this.getStyle(el, 'position');
            if (style_pos =3D=3D 'static') { // default to relative
               this.setStyle(el, 'position', 'relative');
               style_pos =3D 'relative';
            }
           =20
            var pageXY =3D YAHOO.util.Dom.getXY(el);
            if (pageXY =3D=3D=3D false) { return false; } // has to be =
part of doc to have pageXY
           =20
            var delta =3D [
               parseInt( YAHOO.util.Dom.getStyle(el, 'left'), 10 ),
               parseInt( YAHOO.util.Dom.getStyle(el, 'top'), 10 )
            ];
        =20
            if ( isNaN(delta[0]) ) // defaults to 'auto'
            {=20
               delta[0] =3D (style_pos =3D=3D 'relative') ? 0 : =
el.offsetLeft;
            }=20
            if ( isNaN(delta[1]) ) // defaults to 'auto'
            {=20
               delta[1] =3D (style_pos =3D=3D 'relative') ? 0 : =
el.offsetTop;
            }=20
     =20
            if (pos[0] !=3D=3D null) { el.style.left =3D pos[0] - =
pageXY[0] + delta[0] + 'px'; }
            if (pos[1] !=3D=3D null) { el.style.top =3D pos[1] - =
pageXY[1] + delta[1] + 'px'; }
     =20
            var newXY =3D this.getXY(el);
     =20
            // if retry is true, try one more time if we miss
            if (!noRetry && (newXY[0] !=3D pos[0] || newXY[1] !=3D =
pos[1]) ) {
               var retry =3D function() { YAHOO.util.Dom.setXY(el, pos, =
true); };
               setTimeout(retry, 0); // "delay" for IE resize timing =
issue
            }
         };
        =20
         this.batch(el, f, this, true);
      },
     =20
      /**
       * Set the X position of an html element in page coordinates, =
regardless of how the element is positioned.
       * The element must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
       * @param {Int} x to use as the X coordinate for the element(s).
       */
      setX: function(el, x) {
         this.setXY(el, [x, null]);
      },
     =20
      /**
       * Set the Y position of an html element in page coordinates, =
regardless of how the element is positioned.
       * The element must be part of the DOM tree to have page =
coordinates (display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
       * @param {Int} x to use as the Y coordinate for the element(s).
       */
      setY: function(el, y) {
         this.setXY(el, [null, y]);
      },
     =20
      /**
       * Returns the region position of the given element.
       * The element must be part of the DOM tree to have a region =
(display:none or elements not appended return false).
       * @param {String/HTMLElement/Array} el Accepts a string to use as =
an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements.
       * @return {Region/Array} A Region or array of Region instances =
containing "top, left, bottom, right" member data.
       */
      getRegion: function(el) {
         var f =3D function(el) {
            return new YAHOO.util.Region.getRegion(el);
         };
        =20
         return this.batch(el, f, this, true);
      },
     =20
      /**
       * Returns the width of the client (viewport).
       * Now using getViewportWidth.  This interface left intact for =
back compat.
       * @return {Int} The width of the viewable area of the page.
       */
      getClientWidth: function() {
         return this.getViewportWidth();
      },
     =20
      /**
       * Returns the height of the client (viewport).
       * Now using getViewportHeight.  This interface left intact for =
back compat.
       * @return {Int} The height of the viewable area of the page.
       */
      getClientHeight: function() {
         return this.getViewportHeight();
      },

      /**
       * Returns a array of HTMLElements with the given class
       * For optimized performance, include a tag and/or root node if =
possible
       * @param {String} className The class name to match against
       * @param {String} tag (optional) The tag name of the elements =
being collected
       * @param {String/HTMLElement} root (optional) The HTMLElement or =
an ID to use as the starting point=20
       * @return {Array} An array of elements that have the given class =
name
       */
      getElementsByClassName: function(className, tag, root) {
         var re =3D new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');
        =20
         var method =3D function(el) { return re.test(el['className']); =
};
        =20
         return this.getElementsBy(method, tag, root);
      },

      /**
       * Determines whether an HTMLElement has the given className
       * @param {String/HTMLElement/Array} el The element or collection =
to test
       * @param {String} className the class name to search for
       * @return {Boolean/Array} A boolean value or array of boolean =
values
       */
      hasClass: function(el, className) {
         var f =3D function(el) {
            var re =3D new RegExp('(?:^|\\s+)' + className + =
'(?:\\s+|$)');
            return re.test(el['className']);
         };
        =20
         return this.batch(el, f, this, true);
      },
  =20
      /**
       * Adds a class name to a given element or collection of elements
       * @param {String/HTMLElement/Array} el The element or collection =
to add the class to
       * @param {String} className the class name to add to the class =
attribute
       */
      addClass: function(el, className) {
         var f =3D function(el) {
            if (this.hasClass(el, className)) { return; } // already =
present
           =20
            el['className'] =3D [el['className'], className].join(' ');
         };
        =20
         this.batch(el, f, this, true);
      },
  =20
      /**
       * Removes a class name from a given element or collection of =
elements
       * @param {String/HTMLElement/Array} el The element or collection =
to remove the class from
       * @param {String} className the class name to remove from the =
class attribute
       */
      removeClass: function(el, className) {
         var f =3D function(el) {
            if (!this.hasClass(el, className)) { return; } // not =
present
           =20
            var re =3D new RegExp('(?:^|\\s+)' + className + =
'(?:\\s+|$)', 'g');
            var c =3D el['className'];
           =20
            el['className'] =3D c.replace( re, ' ');
         };
        =20
         this.batch(el, f, this, true);
      },
     =20
      /**
       * Replace a class with another class for a given element or =
collection of elements.
       * If no oldClassName is present, the newClassName is simply =
added.
       * @param {String/HTMLElement/Array} el The element or collection =
to remove the class from
       * @param {String} oldClassName the class name to be replaced
       * @param {String} newClassName the class name that will be =
replacing the old class name
       */
      replaceClass: function(el, oldClassName, newClassName) {
         var f =3D function(el) {
            this.removeClass(el, oldClassName);
            this.addClass(el, newClassName);
         };
        =20
         this.batch(el, f, this, true);
      },
     =20
      /**
       * Generates a unique ID
       * @param {String/HTMLElement/Array} el (optional) An optional =
element array of elements to add an ID to (no ID is added if one is =
already present)
       * @param {String} prefix (optional) an optional prefix to use =
(defaults to "yui-gen")
       * @return {String/Array} The generated ID, or array of generated =
IDs (or original ID if already present on an element)
       */
      generateId: function(el, prefix) {
         prefix =3D prefix || 'yui-gen';
        =20
         var f =3D function(el) {
            el =3D el || {}; // just generating ID in this case
           =20
            if (!el.id) { el.id =3D prefix + id_counter++; } // dont =
override existing
           =20
            return el.id;
         };
        =20
         return this.batch(el, f, this, true);
      },
     =20
      /**
       * Determines whether an HTMLElement is an ancestor of another =
HTML element in the DOM hierarchy
       * @param {String/HTMLElement} haystack The possible ancestor
       * @param {String/HTMLElement} needle The possible descendent
       * @return {Boolean} Whether or not the haystack is an ancestor of =
needle
       */
      isAncestor: function(haystack, needle) {
         haystack =3D this.get(haystack);
         if (!haystack || !needle) { return false; }
        =20
         var f =3D function(needle) {
            if (haystack.contains && ua.indexOf('safari') < 0)=20
            { // safari "contains" is broken
               return haystack.contains(needle);
            }
            else if ( haystack.compareDocumentPosition )=20
            {
               return !!(haystack.compareDocumentPosition(needle) & 16);
            }
            else=20
            { // loop up and test each parent
               var parent =3D needle.parentNode;
              =20
               while (parent) {
                  if (parent =3D=3D haystack) {
                     return true;
                  }
                  else if (parent.tagName =3D=3D 'HTML') {
                     return false;
                  }
                 =20
                  parent =3D parent.parentNode;
               }
              =20
               return false;
            }   =20
         };
        =20
         return this.batch(needle, f, this, true);    =20
      },
     =20
      /**
       * Determines whether an HTMLElement is present in the current =
document
       * @param {String/HTMLElement} el The element to search for
       * @return {Boolean} Whether or not the element is present in the =
current document
       */
      inDocument: function(el) {
         var f =3D function(el) {
            return this.isAncestor(document.documentElement, el);
         };
        =20
         return this.batch(el, f, this, true);
      },
     =20
      /**
       * Returns a array of HTMLElements that pass the test applied by =
supplied boolean method
       * For optimized performance, include a tag and/or root node if =
possible
       * @param {Function} method A boolean method to test elements with
       * @param {String} tag (optional) The tag name of the elements =
being collected
       * @param {String/HTMLElement} root (optional) The HTMLElement or =
an ID to use as the starting point=20
       */
      getElementsBy: function(method, tag, root) {
         tag =3D tag || '*';
         root =3D this.get(root) || document;
        =20
         var nodes =3D [];
         var elements =3D root.getElementsByTagName(tag);
        =20
         if ( !elements.length && (tag =3D=3D '*' && root.all) ) {
            elements =3D root.all; // IE < 6
         }
        =20
         for (var i =3D 0, len =3D elements.length; i < len; ++i)=20
         {
            if ( method(elements[i]) ) { nodes[nodes.length] =3D =
elements[i]; }
         }

         return nodes;
      },
     =20
      /**
       * Returns an array of elements that have had the supplied method =
applied.
       * The method is called with the element(s) as the first arg, and =
the optional param as the second ( method(el, o) )
       * @param {String/HTMLElement/Array} el (optional) An element or =
array of elements to apply the method to
       * @param {Function} method The method to apply to the element(s)
       * @param {Generic} (optional) o An optional arg that is passed to =
the supplied method
       * @param {Boolean} (optional) override Whether or not to override =
the scope of "method" with "o"
       * @return {HTMLElement/Array} The element(s) with the method =
applied
       */
      batch: function(el, method, o, override) {
         el =3D this.get(el);
         var scope =3D (override) ? o : window;
        =20
         if (!el || el.tagName || !el.length)=20
         { // is null or not a collection (tagName for SELECT and others =
that can be both an element and a collection)
            return method.call(scope, el, o);
         }=20
        =20
         var collection =3D [];
        =20
         for (var i =3D 0, len =3D el.length; i < len; ++i)
         {
            collection[collection.length] =3D method.call(scope, el[i], =
o);
         }
        =20
         return collection;
      },
     =20
      /**
       * Returns the height of the document.
       * @return {Int} The height of the actual document (which includes =
the body and its margin).
       */
      getDocumentHeight: function() {
         var scrollHeight=3D-1,windowHeight=3D-1,bodyHeight=3D-1;
         var marginTop =3D parseInt(this.getStyle(document.body, =
'marginTop'), 10);
         var marginBottom =3D parseInt(this.getStyle(document.body, =
'marginBottom'), 10);
        =20
         var mode =3D document.compatMode;
        =20
         if ( (mode || isIE) && !isOpera ) { // (IE, Gecko)
            switch (mode) {
               case 'CSS1Compat': // Standards mode
                  scrollHeight =3D ((window.innerHeight && =
window.scrollMaxY) ?  window.innerHeight+window.scrollMaxY : -1);
                  windowHeight =3D =
[document.documentElement.clientHeight,self.innerHeight||-1].sort(functio=
n(a, b){return(a-b);})[1];
                  bodyHeight =3D document.body.offsetHeight + marginTop =
+ marginBottom;
                  break;
              =20
               default: // Quirks
                  scrollHeight =3D document.body.scrollHeight;
                  bodyHeight =3D document.body.clientHeight;
            }
         } else { // Safari & Opera
            scrollHeight =3D document.documentElement.scrollHeight;
            windowHeight =3D self.innerHeight;
            bodyHeight =3D document.documentElement.clientHeight;
         }
     =20
         var h =3D =
[scrollHeight,windowHeight,bodyHeight].sort(function(a, =
b){return(a-b);});
         return h[2];
      },
     =20
      /**
       * Returns the width of the document.
       * @return {Int} The width of the actual document (which includes =
the body and its margin).
       */
      getDocumentWidth: function() {
         var docWidth=3D-1,bodyWidth=3D-1,winWidth=3D-1;
         var marginRight =3D parseInt(this.getStyle(document.body, =
'marginRight'), 10);
         var marginLeft =3D parseInt(this.getStyle(document.body, =
'marginLeft'), 10);
        =20
         var mode =3D document.compatMode;
        =20
         if (mode || isIE) { // (IE, Gecko, Opera)
            switch (mode) {
               case 'CSS1Compat': // Standards mode
                  docWidth =3D document.documentElement.clientWidth;
                  bodyWidth =3D document.body.offsetWidth + marginLeft + =
marginRight;
                  winWidth =3D self.innerWidth || -1;
                  break;
                 =20
               default: // Quirks
                  bodyWidth =3D document.body.clientWidth;
                  winWidth =3D document.body.scrollWidth;
                  break;
            }
         } else { // Safari
            docWidth =3D document.documentElement.clientWidth;
            bodyWidth =3D document.body.offsetWidth + marginLeft + =
marginRight;
            winWidth =3D self.innerWidth;
         }
     =20
         var w =3D [docWidth,bodyWidth,winWidth].sort(function(a, =
b){return(a-b);});
         return w[2];
      },

      /**
       * Returns the current height of the viewport.
       * @return {Int} The height of the viewable area of the page =
(excludes scrollbars).
       */
      getViewportHeight: function() {
         var height =3D -1;
         var mode =3D document.compatMode;
     =20
         if ( (mode || isIE) && !isOpera ) {
            switch (mode) { // (IE, Gecko)
               case 'CSS1Compat': // Standards mode
                  height =3D document.documentElement.clientHeight;
                  break;
     =20
               default: // Quirks
                  height =3D document.body.clientHeight;
            }
         } else { // Safari, Opera
            height =3D self.innerHeight;
         }
     =20
         return height;
      },
     =20
      /**
       * Returns the current width of the viewport.
       * @return {Int} The width of the viewable area of the page =
(excludes scrollbars).
       */
     =20
      getViewportWidth: function() {
         var width =3D -1;
         var mode =3D document.compatMode;
        =20
         if (mode || isIE) { // (IE, Gecko, Opera)
            switch (mode) {
            case 'CSS1Compat': // Standards mode=20
               width =3D document.documentElement.clientWidth;
               break;
              =20
            default: // Quirks
               width =3D document.body.clientWidth;
            }
         } else { // Safari
            width =3D self.innerWidth;
         }
        =20
         return width;
      }
   };
}();

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
*/

/**
 * @class A region is a representation of an object on a grid.  It is =
defined
 * by the top, right, bottom, left extents, so is rectangular by =
default.  If=20
 * other shapes are required, this class could be extended to support =
it.
 *
 * @param {int} t the top extent
 * @param {int} r the right extent
 * @param {int} b the bottom extent
 * @param {int} l the left extent
 * @constructor
 */
YAHOO.util.Region =3D function(t, r, b, l) {

    /**
     * The region's top extent
     * @type int
     */
    this.top =3D t;
   =20
    /**
     * The region's top extent as index, for symmetry with set/getXY
     * @type int
     */
    this[1] =3D t;

    /**
     * The region's right extent
     * @type int
     */
    this.right =3D r;

    /**
     * The region's bottom extent
     * @type int
     */
    this.bottom =3D b;

    /**
     * The region's left extent
     * @type int
     */
    this.left =3D l;
   =20
    /**
     * The region's left extent as index, for symmetry with set/getXY
     * @type int
     */
    this[0] =3D l;
};

/**
 * Returns true if this region contains the region passed in
 *
 * @param  {Region}  region The region to evaluate
 * @return {boolean}        True if the region is contained with this =
region,=20
 *                          else false
 */
YAHOO.util.Region.prototype.contains =3D function(region) {
    return ( region.left   >=3D this.left   &&=20
             region.right  <=3D this.right  &&=20
             region.top    >=3D this.top    &&=20
             region.bottom <=3D this.bottom    );

    // this.logger.debug("does " + this + " contain " + region + " ... " =
+ ret);
};

/**
 * Returns the area of the region
 *
 * @return {int} the region's area
 */
YAHOO.util.Region.prototype.getArea =3D function() {
    return ( (this.bottom - this.top) * (this.right - this.left) );
};

/**
 * Returns the region where the passed in region overlaps with this one
 *
 * @param  {Region} region The region that intersects
 * @return {Region}        The overlap region, or null if there is no =
overlap
 */
YAHOO.util.Region.prototype.intersect =3D function(region) {
    var t =3D Math.max( this.top,    region.top    );
    var r =3D Math.min( this.right,  region.right  );
    var b =3D Math.min( this.bottom, region.bottom );
    var l =3D Math.max( this.left,   region.left   );
   =20
    if (b >=3D t && r >=3D l) {
        return new YAHOO.util.Region(t, r, b, l);
    } else {
        return null;
    }
};

/**
 * Returns the region representing the smallest region that can contain =
both
 * the passed in region and this region.
 *
 * @param  {Region} region The region that to create the union with
 * @return {Region}        The union region
 */
YAHOO.util.Region.prototype.union =3D function(region) {
    var t =3D Math.min( this.top,    region.top    );
    var r =3D Math.max( this.right,  region.right  );
    var b =3D Math.max( this.bottom, region.bottom );
    var l =3D Math.min( this.left,   region.left   );

    return new YAHOO.util.Region(t, r, b, l);
};

/**
 * toString
 * @return string the region properties
 */
YAHOO.util.Region.prototype.toString =3D function() {
    return ( "Region {" +
             "t: "    + this.top    +=20
             ", r: "    + this.right  +=20
             ", b: "    + this.bottom +=20
             ", l: "    + this.left   +=20
             "}" );
};

/**
 * Returns a region that is occupied by the DOM element
 *
 * @param  {HTMLElement} el The element
 * @return {Region}         The region that the element occupies
 * @static
 */
YAHOO.util.Region.getRegion =3D function(el) {
    var p =3D YAHOO.util.Dom.getXY(el);

    var t =3D p[1];
    var r =3D p[0] + el.offsetWidth;
    var b =3D p[1] + el.offsetHeight;
    var l =3D p[0];

    return new YAHOO.util.Region(t, r, b, l);
};

/////////////////////////////////////////////////////////////////////////=
////


/**
 * @class
 *
 * A point is a region that is special in that it represents a single =
point on=20
 * the grid.
 *
 * @param {int} x The X position of the point
 * @param {int} y The Y position of the point
 * @constructor
 * @extends Region
 */
YAHOO.util.Point =3D function(x, y) {
    /**
     * The X position of the point
     * @type int
     */
    this.x      =3D x;

    /**
     * The Y position of the point
     * @type int
     */
    this.y      =3D y;
    this.top    =3D y;
    this[1] =3D y;
   =20
    this.right  =3D x;
    this.bottom =3D y;
    this.left   =3D x;
    this[0] =3D x;
};

YAHOO.util.Point.prototype =3D new YAHOO.util.Region();


------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.aquam.com/core/js/yui/build/animation/animation.js

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 *
 * Base class for animated DOM objects.
 * @class Base animation class that provides the interface for building =
animated effects.
 * <p>Usage: var myAnim =3D new YAHOO.util.Anim(el, { width: { from: 10, =
to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>
 * @requires YAHOO.util.AnimMgr
 * @requires YAHOO.util.Easing
 * @requires YAHOO.util.Dom
 * @requires YAHOO.util.Event
 * @requires YAHOO.util.CustomEvent
 * @constructor
 * @param {String or HTMLElement} el Reference to the element that will =
be animated
 * @param {Object} attributes The attribute(s) to be animated. =20
 * Each attribute is an object with at minimum a "to" or "by" member =
defined. =20
 * Additional optional members are "from" (defaults to current value), =
"units" (defaults to "px"). =20
 * All attribute names use camelCase.
 * @param {Number} duration (optional, defaults to 1 second) Length of =
animation (frames or seconds), defaults to time-based
 * @param {Function} method (optional, defaults to =
YAHOO.util.Easing.easeNone) Computes the values that are applied to the =
attributes per frame (generally a YAHOO.util.Easing method)
 */

YAHOO.util.Anim =3D function(el, attributes, duration, method)=20
{
   if (el) {
      this.init(el, attributes, duration, method);=20
   }
};

YAHOO.util.Anim.prototype =3D {
   /**
    * Returns the value computed by the animation's "method".
    * @param {String} attribute The name of the attribute.
    * @param {Number} start The value this attribute should start from =
for this animation.
    * @param {Number} end  The value this attribute should end at for =
this animation.
    * @return {Number} The Value to be applied to the attribute.
    */
   doMethod: function(attribute, start, end) {
      return this.method(this.currentFrame, start, end - start, =
this.totalFrames);
   },
  =20
   /**
    * Applies a value to an attribute
    * @param {String} attribute The name of the attribute.
    * @param {Number} val The value to be applied to the attribute.
    * @param {String} unit The unit ('px', '%', etc.) of the value.
    */
   setAttribute: function(attribute, val, unit) {
      YAHOO.util.Dom.setStyle(this.getEl(), attribute, val + unit);=20
   },                 =20
  =20
   /**
    * Returns current value of the attribute.
    * @param {String} attribute The name of the attribute.
    * @return {Number} val The current value of the attribute.
    */
   getAttribute: function(attribute) {
      return parseFloat( YAHOO.util.Dom.getStyle(this.getEl(), =
attribute));
   },
  =20
   /**
    * The default unit to use for all attributes if not defined per =
attribute.
    * @type String
    */
   defaultUnit: 'px',
  =20
   /**
    * Per attribute units that should be used by default.
    * @type Object
    */
   defaultUnits: { opacity: ' ' },

   /**
    * @param {String or HTMLElement} el Reference to the element that =
will be animated
    * @param {Object} attributes The attribute(s) to be animated. =20
    * Each attribute is an object with at minimum a "to" or "by" member =
defined. =20
    * Additional optional members are "from" (defaults to current =
value), "units" (defaults to "px"). =20
    * All attribute names use camelCase.
    * @param {Number} duration (optional, defaults to 1 second) Length =
of animation (frames or seconds), defaults to time-based
    * @param {Function} method (optional, defaults to =
YAHOO.util.Easing.easeNone) Computes the values that are applied to the =
attributes per frame (generally a YAHOO.util.Easing method)
    */=20
   init: function(el, attributes, duration, method) {
  =20
      /**
       * Whether or not the animation is running.
       * @private
       * @type Boolean
       */
      var isAnimated =3D false;
     =20
      /**
       * A Date object that is created when the animation begins.
       * @private
       * @type Date
       */
      var startTime =3D null;
     =20
      /**
       * A Date object that is created when the animation ends.
       * @private
       * @type Date
       */
      var endTime =3D null;
     =20
      /**
       * The number of frames this animation was able to execute.
       * @private
       * @type Int
       */
      var actualFrames =3D 0;
     =20
      /**
       * The attribute values that will be used if no "from" is =
supplied.
       * @private
       * @type Object
       */
      var defaultValues =3D {};     =20

      /**
       * The element to be animated.
       * @private
       * @type HTMLElement
       */
      el =3D YAHOO.util.Dom.get(el);
     =20
      /**
       * The collection of attributes to be animated. =20
       * Each attribute must have at least a "to" or "by" defined in =
order to animate. =20
       * If "to" is supplied, the animation will end with the attribute =
at that value. =20
       * If "by" is supplied, the animation will end at that value plus =
its starting value.=20
       * If both are supplied, "to" is used, and "by" is ignored.=20
       * @member YAHOO#util#Anim
       * Optional additional member include "from" (the value the =
attribute should start animating from, defaults to current value), and =
"unit" (the units to apply to the values).
       * @type Object
       */
      this.attributes =3D attributes || {};
     =20
      /**
       * The length of the animation.  Defaults to "1" (second).
       * @type Number
       */
      this.duration =3D duration || 1;
     =20
      /**
       * The method that will provide values to the attribute(s) during =
the animation.=20
       * Defaults to "YAHOO.util.Easing.easeNone".
       * @type Function
       */
      this.method =3D method || YAHOO.util.Easing.easeNone;

      /**
       * Whether or not the duration should be treated as seconds.
       * Defaults to true.
       * @type Boolean
       */
      this.useSeconds =3D true; // default to seconds
     =20
      /**
       * The location of the current animation on the timeline.
       * In time-based animations, this is used by AnimMgr to ensure the =
animation finishes on time.
       * @type Int
       */
      this.currentFrame =3D 0;
     =20
      /**
       * The total number of frames to be executed.
       * In time-based animations, this is used by AnimMgr to ensure the =
animation finishes on time.
       * @type Int
       */
      this.totalFrames =3D YAHOO.util.AnimMgr.fps;
     =20
     =20
      /**
       * Returns a reference to the animated element.
       * @return {HTMLElement}
       */
      this.getEl =3D function() { return el; };
     =20
     =20
      /**
       * Sets the default value to be used when "from" is not supplied.
       * @param {String} attribute The attribute being set.
       * @param {Number} val The default value to be applied to the =
attribute.
       */
      this.setDefault =3D function(attribute, val) {
         if ( val.constructor !=3D Array && (val =3D=3D 'auto' || =
isNaN(val)) ) { // if 'auto' or NaN, set defaults for well known =
attributes, zero for others
            switch(attribute) {
               case'width':
                  val =3D el.clientWidth || el.offsetWidth; // computed =
width
                  break;
               case 'height':
                  val =3D el.clientHeight || el.offsetHeight; // =
computed height
                  break;
               case 'left':
                  if (YAHOO.util.Dom.getStyle(el, 'position') =3D=3D =
'absolute') {
                     val =3D el.offsetLeft; // computed left
                  } else {
                     val =3D 0;
                  }
                  break;
               case 'top':
                  if (YAHOO.util.Dom.getStyle(el, 'position') =3D=3D =
'absolute') {
                     val =3D el.offsetTop; // computed top
                  } else {
                     val =3D 0;
                  }
                  break;                    =20
               default:
                  val =3D 0;
            }
         }

         defaultValues[attribute] =3D val;
      };
     =20
      /**
       * Returns the default value for the given attribute.
       * @param {String} attribute The attribute whose value will be =
returned.
       */     =20
      this.getDefault =3D function(attribute) {
         return defaultValues[attribute];
      };
     =20
      /**
       * Checks whether the element is currently animated.
       * @return {Boolean} current value of isAnimated.   =20
       */
      this.isAnimated =3D function() {
         return isAnimated;
      };
     =20
      /**
       * Returns the animation start time.
       * @return {Date} current value of startTime.    =20
       */
      this.getStartTime =3D function() {
         return startTime;
      };     =20
     =20
      /**
       * Starts the animation by registering it with the animation =
manager.  =20
       */
      this.animate =3D function() {
         if ( this.isAnimated() ) { return false; }
        =20
         this.onStart.fire();
         this._onStart.fire();
        =20
         this.totalFrames =3D ( this.useSeconds ) ? =
Math.ceil(YAHOO.util.AnimMgr.fps * this.duration) : this.duration;
         YAHOO.util.AnimMgr.registerElement(this);
        =20
         // get starting values or use defaults
         var attributes =3D this.attributes;
         var el =3D this.getEl();
         var val;
        =20
         for (var attribute in attributes) {
            val =3D this.getAttribute(attribute);
            this.setDefault(attribute, val);
         }
        =20
         isAnimated =3D true;
         actualFrames =3D 0;
         startTime =3D new Date();  =20
      };
       =20
      /**
       * Stops the animation.  Normally called by AnimMgr when animation =
completes.
       */=20
      this.stop =3D function() {
         if ( !this.isAnimated() ) { return false; }=20
        =20
         this.currentFrame =3D 0;
        =20
         endTime =3D new Date();
        =20
         var data =3D {
            time: endTime,
            duration: endTime - startTime,
            frames: actualFrames,
            fps: actualFrames / this.duration
         };

         isAnimated =3D false; =20
         actualFrames =3D 0;
        =20
         this.onComplete.fire(data);
      };
     =20
      /**
       * Feeds the starting and ending values for each animated =
attribute to doMethod once per frame, then applies the resulting value =
to the attribute(s).
       * @private
       */
      var onTween =3D function() {
         var start;
         var end =3D null;
         var val;
         var unit;
         var attributes =3D this['attributes'];
        =20
         for (var attribute in attributes) {
            unit =3D attributes[attribute]['unit'] || =
this.defaultUnits[attribute] || this.defaultUnit;
  =20
            if (typeof attributes[attribute]['from'] !=3D 'undefined') {
               start =3D attributes[attribute]['from'];
            } else {
               start =3D this.getDefault(attribute);
            }
  =20

            // To beats by, per SMIL 2.1 spec
            if (typeof attributes[attribute]['to'] !=3D 'undefined') {
               end =3D attributes[attribute]['to'];
            }=20
            else if (typeof attributes[attribute]['by'] !=3D =
'undefined')=20
            {
               if (start.constructor =3D=3D Array) {
                  end =3D [];
                  for (var i =3D 0, len =3D start.length; i < len; ++i)
                  {
                     end[i] =3D start[i] + =
attributes[attribute]['by'][i];
                  }
               }
               else
               {
                  end =3D start + attributes[attribute]['by'];
               }
            }
  =20
            // if end is null, dont change value
            if (end !=3D=3D null && typeof end !=3D 'undefined') {
  =20
               val =3D this.doMethod(attribute, start, end);

               // negative not allowed for these (others too, but these =
are most common)
               if ( (attribute =3D=3D 'width' || attribute =3D=3D =
'height' || attribute =3D=3D 'opacity') && val < 0 ) {
                  val =3D 0;
               }

               this.setAttribute(attribute, val, unit);=20
            }
         }
        =20
         actualFrames +=3D 1;
      };
     =20
      /**
       * Custom event that fires after onStart, useful in subclassing
       * @private
       */  =20
      this._onStart =3D new YAHOO.util.CustomEvent('_onStart', this);
     =20
      /**
       * Custom event that fires when animation begins
       * Listen via subscribe method (e.g. =
myAnim.onStart.subscribe(someFunction)
       */  =20
      this.onStart =3D new YAHOO.util.CustomEvent('start', this);
     =20
      /**
       * Custom event that fires between each frame
       * Listen via subscribe method (e.g. =
myAnim.onTween.subscribe(someFunction)
       */
      this.onTween =3D new YAHOO.util.CustomEvent('tween', this);
     =20
      /**
       * Custom event that fires after onTween
       * @private
       */
      this._onTween =3D new YAHOO.util.CustomEvent('_tween', this);
     =20
      /**
       * Custom event that fires when animation ends
       * Listen via subscribe method (e.g. =
myAnim.onComplete.subscribe(someFunction)
       */
      this.onComplete =3D new YAHOO.util.CustomEvent('complete', this);

      this._onTween.subscribe(onTween);
   }
};

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 * @class Handles animation queueing and threading.
 * Used by Anim and subclasses.
 */
YAHOO.util.AnimMgr =3D new function() {
   /**=20
    * Reference to the animation Interval
    * @private
    * @type Int
    */
   var thread =3D null;
  =20
   /**=20
    * The current queue of registered animation objects.
    * @private
    * @type Array
    */  =20
   var queue =3D [];

   /**=20
    * The number of active animations.
    * @private
    * @type Int
    */     =20
   var tweenCount =3D 0;

   /**=20
    * Base frame rate (frames per second).=20
    * Arbitrarily high for better x-browser calibration (slower browsers =
drop more frames).
    * @type Int
    *=20
    */
   this.fps =3D 200;

   /**=20
    * Interval delay in milliseconds, defaults to fastest possible.
    * @type Int
    *=20
    */
   this.delay =3D 1;

   /**
    * Adds an animation instance to the animation queue.
    * All animation instances must be registered in order to animate.
    * @param {object} tween The Anim instance to be be registered
    */
   this.registerElement =3D function(tween) {
      if ( tween.isAnimated() ) { return false; }// but not if already =
animating
     =20
      queue[queue.length] =3D tween;
      tweenCount +=3D 1;

      this.start();
   };
  =20
   /**
    * Starts the animation thread.
	 * Only one thread can run at a time.
    */  =20
   this.start =3D function() {
      if (thread =3D=3D=3D null) { thread =3D setInterval(this.run, =
this.delay); }
   };

   /**
    * Stops the animation thread or a specific animation instance.
    * @param {object} tween A specific Anim instance to stop (optional)
    * If no instance given, Manager stops thread and all animations.
    */  =20
   this.stop =3D function(tween) {
      if (!tween)
      {
         clearInterval(thread);
         for (var i =3D 0, len =3D queue.length; i < len; ++i) {
            if (queue[i].isAnimated()) {
               queue[i].stop(); =20
            }
         }
         queue =3D [];
         thread =3D null;
         tweenCount =3D 0;
      }
      else {
         tween.stop();    =20
         tweenCount -=3D 1;
        =20
         if (tweenCount <=3D 0) { this.stop(); }
      }
   };
  =20
   /**
    * Called per Interval to handle each animation frame.
    */  =20
   this.run =3D function() {
      for (var i =3D 0, len =3D queue.length; i < len; ++i) {
         var tween =3D queue[i];
         if ( !tween || !tween.isAnimated() ) { continue; }

         if (tween.currentFrame < tween.totalFrames || tween.totalFrames =
=3D=3D=3D null)
         {
            tween.currentFrame +=3D 1;
           =20
            if (tween.useSeconds) {
               correctFrame(tween);
            }
           =20
            tween.onTween.fire();    =20
            tween._onTween.fire();       =20
         }
         else { YAHOO.util.AnimMgr.stop(tween); }
      }
   };
  =20
   /**
    * On the fly frame correction to keep animation on time.
    * @private
    * @param {Object} tween The Anim instance being corrected.
    */
   var correctFrame =3D function(tween) {
      var frames =3D tween.totalFrames;
      var frame =3D tween.currentFrame;
      var expected =3D (tween.currentFrame * tween.duration * 1000 / =
tween.totalFrames);
      var elapsed =3D (new Date() - tween.getStartTime());
      var tweak =3D 0;
     =20
      if (elapsed < tween.duration * 1000) { // check if falling behind
         tweak =3D Math.round((elapsed / expected - 1) * =
tween.currentFrame);
      } else { // went over duration, so jump to end
         tweak =3D frames - (frame + 1);=20
      }
      if (tweak > 0 && isFinite(tweak)) { // adjust if needed
         if (tween.currentFrame + tweak >=3D frames) {// dont go past =
last frame
            tweak =3D frames - (frame + 1);
         }
        =20
         tween.currentFrame +=3D tweak;    =20
      }
   };
};

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 *
 * @class Used to calculate Bezier splines for any number of control =
points.
 *
 */
YAHOO.util.Bezier =3D new function()=20
{
   /**
    * Get the current position of the animated element based on t.
    * Each point is an array of "x" and "y" values (0 =3D x, 1 =3D y)
    * At least 2 points are required (start and end).
    * First point is start. Last point is end.
    * Additional control points are optional.   =20
    * @param {Array} points An array containing Bezier points
    * @param {Number} t A number between 0 and 1 which is the basis for =
determining current position
    * @return {Array} An array containing int x and y member data
    */
   this.getPosition =3D function(points, t)
   { =20
      var n =3D points.length;
      var tmp =3D [];

      for (var i =3D 0; i < n; ++i){
         tmp[i] =3D [points[i][0], points[i][1]]; // save input
      }
     =20
      for (var j =3D 1; j < n; ++j) {
         for (i =3D 0; i < n - j; ++i) {
            tmp[i][0] =3D (1 - t) * tmp[i][0] + t * tmp[parseInt(i + 1, =
10)][0];
            tmp[i][1] =3D (1 - t) * tmp[i][1] + t * tmp[parseInt(i + 1, =
10)][1];=20
         }
      }
  =20
      return [ tmp[0][0], tmp[0][1] ];=20
  =20
   };
};

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 * @class Class for defining the acceleration rate and path of =
animations.
 */
YAHOO.util.Easing =3D new function() {

   /**
    * Uniform speed between points.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.easeNone =3D function(t, b, c, d) {
	return b+c*(t/=3Dd);=20
   };
  =20
   /**
    * Begins slowly and accelerates towards end.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.easeIn =3D function(t, b, c, d) {
   	return b+c*((t/=3Dd)*t*t);
   };
  =20
   /**
    * Begins quickly and decelerates towards end.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.easeOut =3D function(t, b, c, d) {
   	var ts=3D(t/=3Dd)*t;
   	var tc=3Dts*t;
   	return b+c*(tc + -3*ts + 3*t);
   };
  =20
   /**
    * Begins slowly and decelerates towards end.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.easeBoth =3D function(t, b, c, d) {
   	var ts=3D(t/=3Dd)*t;
   	var tc=3Dts*t;
   	return b+c*(-2*tc + 3*ts);
   };
  =20
   /**
    * Begins by going below staring value.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.backIn =3D function(t, b, c, d) {
   	var ts=3D(t/=3Dd)*t;
   	var tc=3Dts*t;
   	return b+c*(-3.4005*tc*ts + 10.2*ts*ts + -6.2*tc + 0.4*ts);
   };
  =20
   /**
    * End by going beyond ending value.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.backOut =3D function(t, b, c, d) {
   	var ts=3D(t/=3Dd)*t;
   	var tc=3Dts*t;
   	return b+c*(8.292*tc*ts + -21.88*ts*ts + 22.08*tc + -12.69*ts + =
5.1975*t);
   };
  =20
   /**
    * Starts by going below staring value, and ends by going beyond =
ending value.
    * @param {Number} t Time value used to compute current value.
    * @param {Number} b Starting value.
    * @param {Number} c Delta between start and end values.
    * @param {Number} d Total length of animation.
    * @return {Number} The computed value for the current animation =
frame.
    */
   this.backBoth =3D function(t, b, c, d) {
   	var ts=3D(t/=3Dd)*t;
   	var tc=3Dts*t;
   	return b+c*(0.402*tc*ts + -2.1525*ts*ts + -3.2*tc + 8*ts + -2.05*t);
   };
};

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 * @class Anim subclass for moving elements along a path defined by the =
"points" member of "attributes".  All "points" are arrays with x, y =
coordinates.
 * <p>Usage: <code>var myAnim =3D new YAHOO.util.Motion(el, { points: { =
to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>
 * @requires YAHOO.util.Anim
 * @requires YAHOO.util.AnimMgr
 * @requires YAHOO.util.Easing
 * @requires YAHOO.util.Bezier
 * @requires YAHOO.util.Dom
 * @requires YAHOO.util.Event
 * @requires YAHOO.util.CustomEvent=20
 * @constructor
 * @param {String or HTMLElement} el Reference to the element that will =
be animated
 * @param {Object} attributes The attribute(s) to be animated. =20
 * Each attribute is an object with at minimum a "to" or "by" member =
defined. =20
 * Additional optional members are "from" (defaults to current value), =
"units" (defaults to "px"). =20
 * All attribute names use camelCase.
 * @param {Number} duration (optional, defaults to 1 second) Length of =
animation (frames or seconds), defaults to time-based
 * @param {Function} method (optional, defaults to =
YAHOO.util.Easing.easeNone) Computes the values that are applied to the =
attributes per frame (generally a YAHOO.util.Easing method)
 */
YAHOO.util.Motion =3D function(el, attributes, duration, method) {
   if (el) {
      this.initMotion(el, attributes, duration, method);
   }
};

YAHOO.util.Motion.prototype =3D new YAHOO.util.Anim();

/**
 * Per attribute units that should be used by default.
 * Motion points default to 'px' units.
 * @type Object
 */
YAHOO.util.Motion.prototype.defaultUnits.points =3D 'px';

/**
 * Returns the value computed by the animation's "method".
 * @param {String} attribute The name of the attribute.
 * @param {Number} start The value this attribute should start from for =
this animation.
 * @param {Number} end  The value this attribute should end at for this =
animation.
 * @return {Number} The Value to be applied to the attribute.
 */
YAHOO.util.Motion.prototype.doMethod =3D function(attribute, start, end) =
{
   var val =3D null;
  =20
   if (attribute =3D=3D 'points') {
      var translatedPoints =3D this.getTranslatedPoints();
      var t =3D this.method(this.currentFrame, 0, 100, this.totalFrames) =
/ 100;			=09
  =20
      if (translatedPoints) {
         val =3D YAHOO.util.Bezier.getPosition(translatedPoints, t);
      }
     =20
   } else {
      val =3D this.method(this.currentFrame, start, end - start, =
this.totalFrames);
   }
  =20
   return val;
};

/**
 * Returns current value of the attribute.
 * @param {String} attribute The name of the attribute.
 * @return {Number} val The current value of the attribute.
 */
YAHOO.util.Motion.prototype.getAttribute =3D function(attribute) {
   var val =3D null;
  =20
   if (attribute =3D=3D 'points') {
      val =3D [ this.getAttribute('left'), this.getAttribute('top') ];
      if ( isNaN(val[0]) ) { val[0] =3D 0; }
      if ( isNaN(val[1]) ) { val[1] =3D 0; }
   } else {
      val =3D parseFloat( YAHOO.util.Dom.getStyle(this.getEl(), =
attribute) );
   }
  =20
   return val;
};

/**
 * Applies a value to an attribute
 * @param {String} attribute The name of the attribute.
 * @param {Number} val The value to be applied to the attribute.
 * @param {String} unit The unit ('px', '%', etc.) of the value.
 */
YAHOO.util.Motion.prototype.setAttribute =3D function(attribute, val, =
unit) {
   if (attribute =3D=3D 'points') {
      YAHOO.util.Dom.setStyle(this.getEl(), 'left', val[0] + unit);
      YAHOO.util.Dom.setStyle(this.getEl(), 'top', val[1] + unit);
   } else {
      YAHOO.util.Dom.setStyle(this.getEl(), attribute, val + unit);=20
   }
};

/**
 * @param {String or HTMLElement} el Reference to the element that will =
be animated
 * @param {Object} attributes The attribute(s) to be animated. =20
 * Each attribute is an object with at minimum a "to" or "by" member =
defined. =20
 * Additional optional members are "from" (defaults to current value), =
"units" (defaults to "px"). =20
 * All attribute names use camelCase.
 * @param {Number} duration (optional, defaults to 1 second) Length of =
animation (frames or seconds), defaults to time-based
 * @param {Function} method (optional, defaults to =
YAHOO.util.Easing.easeNone) Computes the values that are applied to the =
attributes per frame (generally a YAHOO.util.Easing method)
 */=20
YAHOO.util.Motion.prototype.initMotion =3D function(el, attributes, =
duration, method) {
   YAHOO.util.Anim.call(this, el, attributes, duration, method);
  =20
   attributes =3D attributes || {};
   attributes.points =3D attributes.points || {};
   attributes.points.control =3D attributes.points.control || [];
  =20
   this.attributes =3D attributes;
  =20
   var start;
   var end =3D null;
   var translatedPoints =3D null;
  =20
   this.getTranslatedPoints =3D function() { return translatedPoints; };
  =20
   var translateValues =3D function(val, self) {
      var pageXY =3D YAHOO.util.Dom.getXY(self.getEl());
      val =3D [ val[0] - pageXY[0] + start[0], val[1] - pageXY[1] + =
start[1] ];
  =20
      return val;=20
   };
  =20
   var onStart =3D function() {
      start =3D this.getAttribute('points');
      var attributes =3D this.attributes;
      var control =3D  attributes['points']['control'] || [];

      if (control.length > 0 && control[0].constructor !=3D Array) { // =
could be single point or array of points
         control =3D [control];
      }
     =20
      if (YAHOO.util.Dom.getStyle(this.getEl(), 'position') =3D=3D =
'static') { // default to relative
         YAHOO.util.Dom.setStyle(this.getEl(), 'position', 'relative');
      }

      if (typeof attributes['points']['from'] !=3D 'undefined') {
         YAHOO.util.Dom.setXY(this.getEl(), =
attributes['points']['from']); // set to from point
         start =3D this.getAttribute('points'); // get actual offset =
values
      }=20
      else if ((start[0] =3D=3D=3D 0 || start[1] =3D=3D=3D 0)) { // =
these sometimes up when auto
         YAHOO.util.Dom.setXY(this.getEl(), =
YAHOO.util.Dom.getXY(this.getEl())); // set it to current position, =
giving offsets
         start =3D this.getAttribute('points'); // get actual offset =
values
      }

      var i, len;
      // TO beats BY, per SMIL 2.1 spec
      if (typeof attributes['points']['to'] !=3D 'undefined') {
         end =3D translateValues(attributes['points']['to'], this);
        =20
         for (i =3D 0, len =3D control.length; i < len; ++i) {
            control[i] =3D translateValues(control[i], this);
         }
        =20
      } else if (typeof attributes['points']['by'] !=3D 'undefined') {
         end =3D [ start[0] + attributes['points']['by'][0], start[1] + =
attributes['points']['by'][1]];
        =20
         for (i =3D 0, len =3D control.length; i < len; ++i) {
            control[i] =3D [ start[0] + control[i][0], start[1] + =
control[i][1] ];
         }
      }

      if (end) {
         translatedPoints =3D [start];
        =20
         if (control.length > 0) { translatedPoints =3D =
translatedPoints.concat(control); }
        =20
         translatedPoints[translatedPoints.length] =3D end;
      }
   };
  =20
   this._onStart.subscribe(onStart);
};

/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
Version: 0.10.0
*/

/**
 * @class Anim subclass for scrolling elements to a position defined by =
the "scroll" member of "attributes".  All "scroll" members are arrays =
with x, y scroll positions.
 * <p>Usage: <code>var myAnim =3D new YAHOO.util.Scroll(el, { scroll: { =
to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>
 * @requires YAHOO.util.Anim
 * @requires YAHOO.util.AnimMgr
 * @requires YAHOO.util.Easing
 * @requires YAHOO.util.Bezier
 * @requires YAHOO.util.Dom
 * @requires YAHOO.util.Event
 * @requires YAHOO.util.CustomEvent=20
 * @constructor
 * @param {String or HTMLElement} el Reference to the element that will =
be animated
 * @param {Object} attributes The attribute(s) to be animated. =20
 * Each attribute is an object with at minimum a "to" or "by" member =
defined. =20
 * Additional optional members are "from" (defaults to current value), =
"units" (defaults to "px"). =20
 * All attribute names use camelCase.
 * @param {Number} duration (optional, defaults to 1 second) Length of =
animation (frames or seconds), defaults to time-based
 * @param {Function} method (optional, defaults to =
YAHOO.util.Easing.easeNone) Computes the values that are applied to the =
attributes per frame (generally a YAHOO.util.Easing method)
 */
YAHOO.util.Scroll =3D function(el, attributes, duration,  method) {
   if (el) {
      YAHOO.util.Anim.call(this, el, attributes, duration, method);
   }
};

YAHOO.util.Scroll.prototype =3D new YAHOO.util.Anim();

/**
 * Per attribute units that should be used by default.
 * Scroll positions default to no units.
 * @type Object
 */
YAHOO.util.Scroll.prototype.defaultUnits.scroll =3D ' ';

/**
 * Returns the value computed by the animation's "method".
 * @param {String} attribute The name of the attribute.
 * @param {Number} start The value this attribute should start from for =
this animation.
 * @param {Number} end  The value this attribute should end at for this =
animation.
 * @return {Number} The Value to be applied to the attribute.
 */
YAHOO.util.Scroll.prototype.doMethod =3D function(attribute, start, end) =
{
   var val =3D null;

   if (attribute =3D=3D 'scroll') {
      val =3D [
         this.method(this.currentFrame, start[0], end[0] - start[0], =
this.totalFrames),
         this.method(this.currentFrame, start[1], end[1] - start[1], =
this.totalFrames)
      ];
     =20
   } else {
      val =3D this.method(this.currentFrame, start, end - start, =
this.totalFrames);
   }
   return val;
};

/**
 * Returns current value of the attribute.
 * @param {String} attribute The name of the attribute.
 * @return {Number} val The current value of the attribute.
 */
YAHOO.util.Scroll.prototype.getAttribute =3D function(attribute) {
   var val =3D null;
   var el =3D this.getEl();
  =20
   if (attribute =3D=3D 'scroll') {
      val =3D [ el.scrollLeft, el.scrollTop ];
   } else {
      val =3D parseFloat( YAHOO.util.Dom.getStyle(el, attribute) );
   }
  =20
   return val;
};

/**
 * Applies a value to an attribute
 * @param {String} attribute The name of the attribute.
 * @param {Number} val The value to be applied to the attribute.
 * @param {String} unit The unit ('px', '%', etc.) of the value.
 */
YAHOO.util.Scroll.prototype.setAttribute =3D function(attribute, val, =
unit) {
   var el =3D this.getEl();
  =20
   if (attribute =3D=3D 'scroll') {
      el.scrollLeft =3D val[0];
      el.scrollTop =3D val[1];
   } else {
      YAHOO.util.Dom.setStyle(el, attribute, val + unit);=20
   }
};

------=_NextPart_000_0000_01C85CD9.39633240
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.google-analytics.com/urchin.js

//-- Google Analytics Urchin Module=0A=
//-- Copyright 2007 Google, All Rights Reserved.=0A=
=0A=
//-- Urchin On Demand Settings ONLY=0A=
var _uacct=3D"";			// set up the Urchin Account=0A=
var _userv=3D1;			// service mode (0=3Dlocal,1=3Dremote,2=3Dboth)=0A=
=0A=
//-- UTM User Settings=0A=
var _ufsc=3D1;			// set client info flag (1=3Don|0=3Doff)=0A=
var _udn=3D"auto";		// (auto|none|domain) set the domain name for cookies=0A=
var _uhash=3D"on";		// (on|off) unique domain hash for cookies=0A=
var _utimeout=3D"1800";   	// set the inactive session timeout in seconds=0A=
var _ugifpath=3D"/__utm.gif";	// set the web path to the __utm.gif file=0A=
var _utsp=3D"|";			// transaction field separator=0A=
var _uflash=3D1;			// set flash version detect option (1=3Don|0=3Doff)=0A=
var _utitle=3D1;			// set the document title detect option =
(1=3Don|0=3Doff)=0A=
var _ulink=3D0;			// enable linker functionality (1=3Don|0=3Doff)=0A=
var _uanchor=3D0;			// enable use of anchors for campaign =
(1=3Don|0=3Doff)=0A=
var _utcp=3D"/";			// the cookie path for tracking=0A=
var _usample=3D100;		// The sampling % of visitors to track (1-100).=0A=
=0A=
//-- UTM Campaign Tracking Settings=0A=
var _uctm=3D1;			// set campaign tracking module (1=3Don|0=3Doff)=0A=
var _ucto=3D"15768000";		// set timeout in seconds (6 month default)=0A=
var _uccn=3D"utm_campaign";	// name=0A=
var _ucmd=3D"utm_medium";		// medium (cpc|cpm|link|email|organic)=0A=
var _ucsr=3D"utm_source";		// source=0A=
var _uctr=3D"utm_term";		// term/keyword=0A=
var _ucct=3D"utm_content";	// content=0A=
var _ucid=3D"utm_id";		// id number=0A=
var _ucno=3D"utm_nooverride";	// don't override=0A=
=0A=
//-- Auto/Organic Sources and Keywords=0A=
var _uOsr=3Dnew Array();=0A=
var _uOkw=3Dnew Array();=0A=
_uOsr[0]=3D"google";	_uOkw[0]=3D"q";=0A=
_uOsr[1]=3D"yahoo";	_uOkw[1]=3D"p";=0A=
_uOsr[2]=3D"msn";		_uOkw[2]=3D"q";=0A=
_uOsr[3]=3D"aol";		_uOkw[3]=3D"query";=0A=
_uOsr[4]=3D"aol";		_uOkw[4]=3D"encquery";=0A=
_uOsr[5]=3D"lycos";	_uOkw[5]=3D"query";=0A=
_uOsr[6]=3D"ask";		_uOkw[6]=3D"q";=0A=
_uOsr[7]=3D"altavista";	_uOkw[7]=3D"q";=0A=
_uOsr[8]=3D"netscape";	_uOkw[8]=3D"query";=0A=
_uOsr[9]=3D"cnn";	_uOkw[9]=3D"query";=0A=
_uOsr[10]=3D"looksmart";	_uOkw[10]=3D"qt";=0A=
_uOsr[11]=3D"about";	_uOkw[11]=3D"terms";=0A=
_uOsr[12]=3D"mamma";	_uOkw[12]=3D"query";=0A=
_uOsr[13]=3D"alltheweb";	_uOkw[13]=3D"q";=0A=
_uOsr[14]=3D"gigablast";	_uOkw[14]=3D"q";=0A=
_uOsr[15]=3D"voila";	_uOkw[15]=3D"rdata";=0A=
_uOsr[16]=3D"virgilio";	_uOkw[16]=3D"qs";=0A=
_uOsr[17]=3D"live";	_uOkw[17]=3D"q";=0A=
_uOsr[18]=3D"baidu";	_uOkw[18]=3D"wd";=0A=
_uOsr[19]=3D"alice";	_uOkw[19]=3D"qs";=0A=
_uOsr[20]=3D"yandex";	_uOkw[20]=3D"text";=0A=
_uOsr[21]=3D"najdi";	_uOkw[21]=3D"q";=0A=
_uOsr[22]=3D"aol";	_uOkw[22]=3D"q";=0A=
_uOsr[23]=3D"club-internet"; _uOkw[23]=3D"q";=0A=
_uOsr[24]=3D"mama";	_uOkw[24]=3D"query";=0A=
_uOsr[25]=3D"seznam";	_uOkw[25]=3D"q";=0A=
_uOsr[26]=3D"search";	_uOkw[26]=3D"q";=0A=
_uOsr[27]=3D"szukaj";	_uOkw[27]=3D"szukaj";=0A=
_uOsr[28]=3D"szukaj";	_uOkw[28]=3D"qt";=0A=
_uOsr[29]=3D"netsprint";	_uOkw[29]=3D"q";=0A=
_uOsr[30]=3D"google.interia";	_uOkw[30]=3D"q";=0A=
_uOsr[31]=3D"szukacz";	_uOkw[31]=3D"q";=0A=
_uOsr[32]=3D"yam";	_uOkw[32]=3D"k";=0A=
_uOsr[33]=3D"pchome";	_uOkw[33]=3D"q";=0A=
=0A=
=0A=
//-- Auto/Organic Keywords to Ignore=0A=
var _uOno=3Dnew Array();=0A=
//_uOno[0]=3D"urchin";=0A=
//_uOno[1]=3D"urchin.com";=0A=
//_uOno[2]=3D"www.urchin.com";=0A=
=0A=
//-- Referral domains to Ignore=0A=
var _uRno=3Dnew Array();=0A=
//_uRno[0]=3D".urchin.com";=0A=
=0A=
//-- **** Don't modify below this point ***=0A=
var =
_uff,_udh,_udt,_ubl=3D0,_udo=3D"",_uu,_ufns=3D0,_uns=3D0,_ur=3D"-",_ufno=3D=
0,_ust=3D0,_ubd=3Ddocument,_udl=3D_ubd.location,_udlh=3D"",_uwv=3D"1";=0A=
var _ugifpath2=3D"http://www.google-analytics.com/__utm.gif";=0A=
if (_udl.hash) _udlh=3D_udl.href.substring(_udl.href.indexOf('#'));=0A=
if (_udl.protocol=3D=3D"https:") =
_ugifpath2=3D"https://ssl.google-analytics.com/__utm.gif";=0A=
if (!_utcp || _utcp=3D=3D"") _utcp=3D"/";=0A=
function urchinTracker(page) {=0A=
 if (_udl.protocol=3D=3D"file:") return;=0A=
 if (_uff && (!page || page=3D=3D"")) return;=0A=
 var a,b,c,xx,v,z,k,x=3D"",s=3D"",f=3D0;=0A=
 var nx=3D" expires=3D"+_uNx()+";";=0A=
 var dc=3D_ubd.cookie;=0A=
 _udh=3D_uDomain();=0A=
 if (!_uVG()) return;=0A=
 _uu=3DMath.round(Math.random()*2147483647);=0A=
 _udt=3Dnew Date();=0A=
 _ust=3DMath.round(_udt.getTime()/1000);=0A=
 a=3Ddc.indexOf("__utma=3D"+_udh);=0A=
 b=3Ddc.indexOf("__utmb=3D"+_udh);=0A=
 c=3Ddc.indexOf("__utmc=3D"+_udh);=0A=
 if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 if (_utimeout && _utimeout!=3D"") {=0A=
  x=3Dnew Date(_udt.getTime()+(_utimeout*1000));=0A=
  x=3D" expires=3D"+x.toGMTString()+";";=0A=
 }=0A=
 if (_ulink) {=0A=
  if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
  s+=3D_udl.search;=0A=
  if(s && s!=3D"" && s.indexOf("__utma=3D")>=3D0) {=0A=
   if (!(_uIN(a=3D_uGC(s,"__utma=3D","&")))) a=3D"-";=0A=
   if (!(_uIN(b=3D_uGC(s,"__utmb=3D","&")))) b=3D"-";=0A=
   if (!(_uIN(c=3D_uGC(s,"__utmc=3D","&")))) c=3D"-";=0A=
   v=3D_uGC(s,"__utmv=3D","&");=0A=
   z=3D_uGC(s,"__utmz=3D","&");=0A=
   k=3D_uGC(s,"__utmk=3D","&");=0A=
   xx=3D_uGC(s,"__utmx=3D","&");=0A=
   if ((k*1) !=3D ((_uHash(a+b+c+xx+z+v)*1)+(_udh*1))) =
{_ubl=3D1;a=3D"-";b=3D"-";c=3D"-";xx=3D"-";z=3D"-";v=3D"-";}=0A=
   if (a!=3D"-" && b!=3D"-" && c!=3D"-") f=3D1;=0A=
   else if(a!=3D"-") f=3D2;=0A=
  }=0A=
 }=0A=
 if(f=3D=3D1) {=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+b+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+c+"; path=3D"+_utcp+";"+_udo;=0A=
 } else if (f=3D=3D2) {=0A=
  a=3D_uFixA(s,"&",_ust);=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 } else if (a>=3D0 && b>=3D0 && c>=3D0) {=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
 } else {=0A=
  if (a>=3D0) a=3D_uFixA(_ubd.cookie,";",_ust);=0A=
  else a=3D_udh+"."+_uu+"."+_ust+"."+_ust+"."+_ust+".1";=0A=
  _ubd.cookie=3D"__utma=3D"+a+"; path=3D"+_utcp+";"+nx+_udo;=0A=
  _ubd.cookie=3D"__utmb=3D"+_udh+"; path=3D"+_utcp+";"+x+_udo;=0A=
  _ubd.cookie=3D"__utmc=3D"+_udh+"; path=3D"+_utcp+";"+_udo;=0A=
  _ufns=3D1;=0A=
 }=0A=
 if (_ulink && xx && xx!=3D"" && xx!=3D"-") {=0A=
   xx=3D_uUES(xx);=0A=
   if (xx.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmx=3D"+xx+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 if (_ulink && v && v!=3D"" && v!=3D"-") {=0A=
  v=3D_uUES(v);=0A=
  if (v.indexOf(";")=3D=3D-1) _ubd.cookie=3D"__utmv=3D"+v+"; =
path=3D"+_utcp+";"+nx+_udo;=0A=
 }=0A=
 _uInfo(page);=0A=
 _ufns=3D0;=0A=
 _ufno=3D0;=0A=
 if (!page || page=3D=3D"") _uff=3D1;=0A=
}=0A=
function _uInfo(page) {=0A=
 var p,s=3D"",dm=3D"",pg=3D_udl.pathname+_udl.search;=0A=
 if (page && page!=3D"") pg=3D_uES(page,1);=0A=
 _ur=3D_ubd.referrer;=0A=
 if (!_ur || _ur=3D=3D"") { _ur=3D"-"; }=0A=
 else {=0A=
  dm=3D_ubd.domain;=0A=
  if(_utcp && _utcp!=3D"/") dm+=3D_utcp;=0A=
  p=3D_ur.indexOf(dm);=0A=
  if ((p>=3D0) && (p<=3D8)) { _ur=3D"0"; }=0A=
  if (_ur.indexOf("[")=3D=3D0 && =
_ur.lastIndexOf("]")=3D=3D(_ur.length-1)) { _ur=3D"-"; }=0A=
 }=0A=
 s+=3D"&utmn=3D"+_uu;=0A=
 if (_ufsc) s+=3D_uBInfo();=0A=
 if (_uctm) s+=3D_uCInfo();=0A=
 if (_utitle && _ubd.title && _ubd.title!=3D"") =
s+=3D"&utmdt=3D"+_uES(_ubd.title);=0A=
 if (_udl.hostname && _udl.hostname!=3D"") =
s+=3D"&utmhn=3D"+_uES(_udl.hostname);=0A=
 s+=3D"&utmr=3D"+_ur;=0A=
 s+=3D"&utmp=3D"+pg;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() {_uVoid();}=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uVoid() { return; }=0A=
function _uCInfo() {=0A=
 if (!_ucto || _ucto=3D=3D"") { _ucto=3D"15768000"; }=0A=
 if (!_uVG()) return;=0A=
 var =
c=3D"",t=3D"-",t2=3D"-",t3=3D"-",o=3D0,cs=3D0,cn=3D0,i=3D0,z=3D"-",s=3D""=
;=0A=
 if (_uanchor && _udlh && _udlh!=3D"") s=3D_udlh+"&";=0A=
 s+=3D_udl.search;=0A=
 var x=3Dnew Date(_udt.getTime()+(_ucto*1000));=0A=
 var dc=3D_ubd.cookie;=0A=
 x=3D" expires=3D"+x.toGMTString()+";";=0A=
 if (_ulink && !_ubl) {=0A=
  z=3D_uUES(_uGC(s,"__utmz=3D","&"));=0A=
  if (z!=3D"-" && z.indexOf(";")=3D=3D-1) { =
_ubd.cookie=3D"__utmz=3D"+z+"; path=3D"+_utcp+";"+x+_udo; return ""; }=0A=
 }=0A=
 z=3Ddc.indexOf("__utmz=3D"+_udh);=0A=
 if (z>-1) { z=3D_uGC(dc,"__utmz=3D"+_udh,";"); }=0A=
 else { z=3D"-"; }=0A=
 t=3D_uGC(s,_ucid+"=3D","&");=0A=
 t2=3D_uGC(s,_ucsr+"=3D","&");=0A=
 t3=3D_uGC(s,"gclid=3D","&");=0A=
 if ((t!=3D"-" && t!=3D"") || (t2!=3D"-" && t2!=3D"") || (t3!=3D"-" && =
t3!=3D"")) {=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"utmcid=3D"+_uEC(t);=0A=
  if (t2!=3D"-" && t2!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmcsr=3D"+_uEC(t2); }=0A=
  if (t3!=3D"-" && t3!=3D"") { if (c !=3D "") c+=3D"|"; =
c+=3D"utmgclid=3D"+_uEC(t3); }=0A=
  t=3D_uGC(s,_uccn+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmccn=3D"+_uEC(t);=0A=
  else c+=3D"|utmccn=3D(not+set)";=0A=
  t=3D_uGC(s,_ucmd+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcmd=3D"+_uEC(t);=0A=
  else  c+=3D"|utmcmd=3D(not+set)";=0A=
  t=3D_uGC(s,_uctr+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmctr=3D"+_uEC(t);=0A=
  else { t=3D_uOrg(1); if (t!=3D"-" && t!=3D"") =
c+=3D"|utmctr=3D"+_uEC(t); }=0A=
  t=3D_uGC(s,_ucct+"=3D","&");=0A=
  if (t!=3D"-" && t!=3D"") c+=3D"|utmcct=3D"+_uEC(t);=0A=
  t=3D_uGC(s,_ucno+"=3D","&");=0A=
  if (t=3D=3D"1") o=3D1;=0A=
  if (z!=3D"-" && o=3D=3D1) return "";=0A=
 }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { c=3D_uOrg(); if (z!=3D"-" && =
_ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") { if (_ufns=3D=3D1)  c=3D_uRef(); if =
(z!=3D"-" && _ufno=3D=3D1)  return ""; }=0A=
 if (c=3D=3D"-" || c=3D=3D"") {=0A=
  if (z=3D=3D"-" && _ufns=3D=3D1) { =
c=3D"utmccn=3D(direct)|utmcsr=3D(direct)|utmcmd=3D(none)"; }=0A=
  if (c=3D=3D"-" || c=3D=3D"") return "";=0A=
 }=0A=
 if (z!=3D"-") {=0A=
  i=3Dz.indexOf(".");=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  if (i>-1) i=3Dz.indexOf(".",i+1);=0A=
  t=3Dz.substring(i+1,z.length);=0A=
  if (t.toLowerCase()=3D=3Dc.toLowerCase()) cs=3D1;=0A=
  t=3Dz.substring(0,i);=0A=
  if ((i=3Dt.lastIndexOf(".")) > -1) {=0A=
   t=3Dt.substring(i+1,t.length);=0A=
   cn=3D(t*1);=0A=
  }=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) {=0A=
  t=3D_uGC(dc,"__utma=3D"+_udh,";");=0A=
  if ((i=3Dt.lastIndexOf(".")) > 9) {=0A=
   _uns=3Dt.substring(i+1,t.length);=0A=
   _uns=3D(_uns*1);=0A=
  }=0A=
  cn++;=0A=
  if (_uns=3D=3D0) _uns=3D1;=0A=
  _ubd.cookie=3D"__utmz=3D"+_udh+"."+_ust+"."+_uns+"."+cn+"."+c+"; =
path=3D"+_utcp+"; "+x+_udo;=0A=
 }=0A=
 if (cs=3D=3D0 || _ufns=3D=3D1) return "&utmcn=3D1";=0A=
 else return "&utmcr=3D1";=0A=
}=0A=
function _uRef() {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k,n;=0A=
 if ((i=3D_ur.indexOf("://"))<0) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  k=3Dh.substring(h.indexOf("/"),h.length);=0A=
  if (k.indexOf("?") > -1) k=3Dk.substring(0,k.indexOf("?"));=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 h=3Dh.toLowerCase();=0A=
 n=3Dh;=0A=
 if ((i=3Dn.indexOf(":")) > -1) n=3Dn.substring(0,i);=0A=
 for (var ii=3D0;ii<_uRno.length;ii++) {=0A=
  if ((i=3Dn.indexOf(_uRno[ii].toLowerCase())) > -1 && =
n.length=3D=3D(i+_uRno[ii].length)) { _ufno=3D1; break; }=0A=
 }=0A=
 if (h.indexOf("www.")=3D=3D0) h=3Dh.substring(4,h.length);=0A=
 return =
"utmccn=3D(referral)|utmcsr=3D"+_uEC(h)+"|"+"utmcct=3D"+_uEC(k)+"|utmcmd=3D=
referral";=0A=
}=0A=
function _uOrg(t) {=0A=
 if (_ur=3D=3D"0" || _ur=3D=3D"" || _ur=3D=3D"-") return "";=0A=
 var i=3D0,h,k;=0A=
 if ((i=3D_ur.indexOf("://")) < 0) return "";=0A=
 h=3D_ur.substring(i+3,_ur.length);=0A=
 if (h.indexOf("/") > -1) {=0A=
  h=3Dh.substring(0,h.indexOf("/"));=0A=
 }=0A=
 for (var ii=3D0;ii<_uOsr.length;ii++) {=0A=
  if (h.toLowerCase().indexOf(_uOsr[ii].toLowerCase()) > -1) {=0A=
   if ((i=3D_ur.indexOf("?"+_uOkw[ii]+"=3D")) > -1 || =
(i=3D_ur.indexOf("&"+_uOkw[ii]+"=3D")) > -1) {=0A=
    k=3D_ur.substring(i+_uOkw[ii].length+2,_ur.length);=0A=
    if ((i=3Dk.indexOf("&")) > -1) k=3Dk.substring(0,i);=0A=
    for (var yy=3D0;yy<_uOno.length;yy++) {=0A=
     if (_uOno[yy].toLowerCase()=3D=3Dk.toLowerCase()) { _ufno=3D1; =
break; }=0A=
    }=0A=
    if (t) return _uEC(k);=0A=
    else return =
"utmccn=3D(organic)|utmcsr=3D"+_uEC(_uOsr[ii])+"|"+"utmctr=3D"+_uEC(k)+"|=
utmcmd=3Dorganic";=0A=
   }=0A=
  }=0A=
 }=0A=
 return "";=0A=
}=0A=
function _uBInfo() {=0A=
 var sr=3D"-",sc=3D"-",ul=3D"-",fl=3D"-",cs=3D"-",je=3D1;=0A=
 var n=3Dnavigator;=0A=
 if (self.screen) {=0A=
  sr=3Dscreen.width+"x"+screen.height;=0A=
  sc=3Dscreen.colorDepth+"-bit";=0A=
 } else if (self.java) {=0A=
  var j=3Djava.awt.Toolkit.getDefaultToolkit();=0A=
  var s=3Dj.getScreenSize();=0A=
  sr=3Ds.width+"x"+s.height;=0A=
 }=0A=
 if (n.language) { ul=3Dn.language.toLowerCase(); }=0A=
 else if (n.browserLanguage) { ul=3Dn.browserLanguage.toLowerCase(); }=0A=
 je=3Dn.javaEnabled()?1:0;=0A=
 if (_uflash) fl=3D_uFlash();=0A=
 if (_ubd.characterSet) cs=3D_uES(_ubd.characterSet);=0A=
 else if (_ubd.charset) cs=3D_uES(_ubd.charset);=0A=
 return =
"&utmcs=3D"+cs+"&utmsr=3D"+sr+"&utmsc=3D"+sc+"&utmul=3D"+ul+"&utmje=3D"+j=
e+"&utmfl=3D"+fl;=0A=
}=0A=
function __utmSetTrans() {=0A=
 var e;=0A=
 if (_ubd.getElementById) e=3D_ubd.getElementById("utmtrans");=0A=
 else if (_ubd.utmform && _ubd.utmform.utmtrans) =
e=3D_ubd.utmform.utmtrans;=0A=
 if (!e) return;=0A=
 var l=3De.value.split("UTM:");=0A=
 var i,i2,c;=0A=
 if (_userv=3D=3D0 || _userv=3D=3D2) i=3Dnew Array();=0A=
 if (_userv=3D=3D1 || _userv=3D=3D2) { i2=3Dnew Array(); c=3D_uGCS(); }=0A=
=0A=
 for (var ii=3D0;ii<l.length;ii++) {=0A=
  l[ii]=3D_uTrim(l[ii]);=0A=
  if (l[ii].charAt(0)!=3D'T' && l[ii].charAt(0)!=3D'I') continue;=0A=
  var r=3DMath.round(Math.random()*2147483647);=0A=
  if (!_utsp || _utsp=3D=3D"") _utsp=3D"|";=0A=
  var f=3Dl[ii].split(_utsp),s=3D"";=0A=
  if (f[0].charAt(0)=3D=3D'T') {=0A=
   s=3D"&utmt=3Dtran"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmtst=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmtto=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmttx=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmtsp=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmtci=3D"+_uES(f[6]);=0A=
   f[7]=3D_uTrim(f[7]); if(f[7]&&f[7]!=3D"") =
s+=3D"&utmtrg=3D"+_uES(f[7]);=0A=
   f[8]=3D_uTrim(f[8]); if(f[8]&&f[8]!=3D"") =
s+=3D"&utmtco=3D"+_uES(f[8]);=0A=
  } else {=0A=
   s=3D"&utmt=3Ditem"+"&utmn=3D"+r;=0A=
   f[1]=3D_uTrim(f[1]); if(f[1]&&f[1]!=3D"") =
s+=3D"&utmtid=3D"+_uES(f[1]);=0A=
   f[2]=3D_uTrim(f[2]); if(f[2]&&f[2]!=3D"") =
s+=3D"&utmipc=3D"+_uES(f[2]);=0A=
   f[3]=3D_uTrim(f[3]); if(f[3]&&f[3]!=3D"") =
s+=3D"&utmipn=3D"+_uES(f[3]);=0A=
   f[4]=3D_uTrim(f[4]); if(f[4]&&f[4]!=3D"") =
s+=3D"&utmiva=3D"+_uES(f[4]);=0A=
   f[5]=3D_uTrim(f[5]); if(f[5]&&f[5]!=3D"") =
s+=3D"&utmipr=3D"+_uES(f[5]);=0A=
   f[6]=3D_uTrim(f[6]); if(f[6]&&f[6]!=3D"") =
s+=3D"&utmiqt=3D"+_uES(f[6]);=0A=
  }=0A=
  if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
   i[ii]=3Dnew Image(1,1);=0A=
   i[ii].src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
   i[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
  if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
   i2[ii]=3Dnew Image(1,1);=0A=
   =
i2[ii].src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D=
"+c;=0A=
   i2[ii].onload=3Dfunction() { _uVoid(); }=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function _uFlash() {=0A=
 var f=3D"-",n=3Dnavigator;=0A=
 if (n.plugins && n.plugins.length) {=0A=
  for (var ii=3D0;ii<n.plugins.length;ii++) {=0A=
   if (n.plugins[ii].name.indexOf('Shockwave Flash')!=3D-1) {=0A=
    f=3Dn.plugins[ii].description.split('Shockwave Flash ')[1];=0A=
    break;=0A=
   }=0A=
  }=0A=
 } else if (window.ActiveXObject) {=0A=
  for (var ii=3D10;ii>=3D2;ii--) {=0A=
   try {=0A=
    var fl=3Deval("new =
ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");=0A=
    if (fl) { f=3Dii + '.0'; break; }=0A=
   }=0A=
   catch(e) {}=0A=
  }=0A=
 }=0A=
 return f;=0A=
}=0A=
function __utmLinker(l,h) {=0A=
 if (!_ulink) return;=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 if (!l || l=3D=3D"") return;=0A=
 var iq =3D l.indexOf("?"); =0A=
 var ih =3D l.indexOf("#"); =0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh,";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh,";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh,";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { _udl.href=3Dl+"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) _udl.href=3Dl+"?"+p;=0A=
   else if (ih=3D=3D-1) _udl.href=3Dl+"&"+p;=0A=
   else if (iq=3D=3D-1) =
_udl.href=3Dl.substring(0,ih-1)+"?"+p+l.substring(ih);=0A=
   else _udl.href=3Dl.substring(0,ih-1)+"&"+p+l.substring(ih);=0A=
  }=0A=
 } else { _udl.href=3Dl; }=0A=
}=0A=
function __utmLinkPost(f,h) {=0A=
 if (!_ulink) return;=0A=
 var p,k,a=3D"-",b=3D"-",c=3D"-",x=3D"-",z=3D"-",v=3D"-";=0A=
 var dc=3D_ubd.cookie;=0A=
 if (!f || !f.action) return;=0A=
 var iq =3D f.action.indexOf("?"); =0A=
 var ih =3D f.action.indexOf("#"); =0A=
 if (dc) {=0A=
  a=3D_uES(_uGC(dc,"__utma=3D"+_udh,";"));=0A=
  b=3D_uES(_uGC(dc,"__utmb=3D"+_udh,";"));=0A=
  c=3D_uES(_uGC(dc,"__utmc=3D"+_udh,";"));=0A=
  x=3D_uES(_uGC(dc,"__utmx=3D"+_udh,";"));=0A=
  z=3D_uES(_uGC(dc,"__utmz=3D"+_udh,";"));=0A=
  v=3D_uES(_uGC(dc,"__utmv=3D"+_udh,";"));=0A=
  k=3D(_uHash(a+b+c+x+z+v)*1)+(_udh*1);=0A=
  =
p=3D"__utma=3D"+a+"&__utmb=3D"+b+"&__utmc=3D"+c+"&__utmx=3D"+x+"&__utmz=3D=
"+z+"&__utmv=3D"+v+"&__utmk=3D"+k;=0A=
 }=0A=
 if (p) {=0A=
  if (h && ih>-1) return;=0A=
  if (h) { f.action+=3D"#"+p; }=0A=
  else {=0A=
   if (iq=3D=3D-1 && ih=3D=3D-1) f.action+=3D"?"+p;=0A=
   else if (ih=3D=3D-1) f.action+=3D"&"+p;=0A=
   else if (iq=3D=3D-1) =
f.action=3Df.action.substring(0,ih-1)+"?"+p+f.action.substring(ih);=0A=
   else =
f.action=3Df.action.substring(0,ih-1)+"&"+p+f.action.substring(ih);=0A=
  }=0A=
 }=0A=
 return;=0A=
}=0A=
function __utmSetVar(v) {=0A=
 if (!v || v=3D=3D"") return;=0A=
 if (!_udo || _udo =3D=3D "") {=0A=
  _udh=3D_uDomain();=0A=
  if (_udn && _udn!=3D"") { _udo=3D" domain=3D"+_udn+";"; }=0A=
 }=0A=
 if (!_uVG()) return;=0A=
 var r=3DMath.round(Math.random() * 2147483647);=0A=
 _ubd.cookie=3D"__utmv=3D"+_udh+"."+_uES(v)+"; path=3D"+_utcp+"; =
expires=3D"+_uNx()+";"+_udo;=0A=
 var s=3D"&utmt=3Dvar&utmn=3D"+r;=0A=
 if ((_userv=3D=3D0 || _userv=3D=3D2) && _uSP()) {=0A=
  var i=3Dnew Image(1,1);=0A=
  i.src=3D_ugifpath+"?"+"utmwv=3D"+_uwv+s;=0A=
  i.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
 if ((_userv=3D=3D1 || _userv=3D=3D2) && _uSP()) {=0A=
  var i2=3Dnew Image(1,1);=0A=
  =
i2.src=3D_ugifpath2+"?"+"utmwv=3D"+_uwv+s+"&utmac=3D"+_uacct+"&utmcc=3D"+=
_uGCS();=0A=
  i2.onload=3Dfunction() { _uVoid(); }=0A=
 }=0A=
}=0A=
function _uGCS() {=0A=
 var t,c=3D"",dc=3D_ubd.cookie;=0A=
 if ((t=3D_uGC(dc,"__utma=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utma=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmb=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmb=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmc=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmc=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmx=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmx=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmz=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmz=3D"+t+";+");=0A=
 if ((t=3D_uGC(dc,"__utmv=3D"+_udh,";"))!=3D"-") =
c+=3D_uES("__utmv=3D"+t+";");=0A=
 if (c.charAt(c.length-1)=3D=3D"+") c=3Dc.substring(0,c.length-1);=0A=
 return c;=0A=
}=0A=
function _uGC(l,n,s) {=0A=
 if (!l || l=3D=3D"" || !n || n=3D=3D"" || !s || s=3D=3D"") return "-";=0A=
 var i,i2,i3,c=3D"-";=0A=
 i=3Dl.indexOf(n);=0A=
 i3=3Dn.indexOf("=3D")+1;=0A=
 if (i > -1) {=0A=
  i2=3Dl.indexOf(s,i); if (i2 < 0) { i2=3Dl.length; }=0A=
  c=3Dl.substring((i+i3),i2);=0A=
 }=0A=
 return c;=0A=
}=0A=
function _uDomain() {=0A=
 if (!_udn || _udn=3D=3D"" || _udn=3D=3D"none") { _udn=3D""; return 1; }=0A=
 if (_udn=3D=3D"auto") {=0A=
  var d=3D_ubd.domain;=0A=
  if (d.substring(0,4)=3D=3D"www.") {=0A=
   d=3Dd.substring(4,d.length);=0A=
  }=0A=
  _udn=3Dd;=0A=
 }=0A=
 _udn =3D _udn.toLowerCase(); =0A=
 if (_uhash=3D=3D"off") return 1;=0A=
 return _uHash(_udn);=0A=
}=0A=
function _uHash(d) {=0A=
 if (!d || d=3D=3D"") return 1;=0A=
 var h=3D0,g=3D0;=0A=
 for (var i=3Dd.length-1;i>=3D0;i--) {=0A=
  var c=3DparseInt(d.charCodeAt(i));=0A=
  h=3D((h << 6) & 0xfffffff) + c + (c << 14);=0A=
  if ((g=3Dh & 0xfe00000)!=3D0) h=3D(h ^ (g >> 21));=0A=
 }=0A=
 return h;=0A=
}=0A=
function _uFixA(c,s,t) {=0A=
 if (!c || c=3D=3D"" || !s || s=3D=3D"" || !t || t=3D=3D"") return "-";=0A=
 var a=3D_uGC(c,"__utma=3D"+_udh,s);=0A=
 var lt=3D0,i=3D0;=0A=
 if ((i=3Da.lastIndexOf(".")) > 9) {=0A=
  _uns=3Da.substring(i+1,a.length);=0A=
  _uns=3D(_uns*1)+1;=0A=
  a=3Da.substring(0,i);=0A=
  if ((i=3Da.lastIndexOf(".")) > 7) {=0A=
   lt=3Da.substring(i+1,a.length);=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  if ((i=3Da.lastIndexOf(".")) > 5) {=0A=
   a=3Da.substring(0,i);=0A=
  }=0A=
  a+=3D"."+lt+"."+t+"."+_uns;=0A=
 }=0A=
 return a;=0A=
}=0A=
function _uTrim(s) {=0A=
  if (!s || s=3D=3D"") return "";=0A=
  while ((s.charAt(0)=3D=3D' ') || (s.charAt(0)=3D=3D'\n') || =
(s.charAt(0,1)=3D=3D'\r')) s=3Ds.substring(1,s.length);=0A=
  while ((s.charAt(s.length-1)=3D=3D' ') || =
(s.charAt(s.length-1)=3D=3D'\n') || (s.charAt(s.length-1)=3D=3D'\r')) =
s=3Ds.substring(0,s.length-1);=0A=
  return s;=0A=
}=0A=
function _uEC(s) {=0A=
  var n=3D"";=0A=
  if (!s || s=3D=3D"") return "";=0A=
  for (var i=3D0;i<s.length;i++) {if (s.charAt(i)=3D=3D" ") n+=3D"+"; =
else n+=3Ds.charAt(i);}=0A=
  return n;=0A=
}=0A=
function __utmVisitorCode(f) {=0A=
 var r=3D0,t=3D0,i=3D0,i2=3D0,m=3D31;=0A=
 var a=3D_uGC(_ubd.cookie,"__utma=3D"+_udh,";");=0A=
 if ((i=3Da.indexOf(".",0))<0) return;=0A=
 if ((i2=3Da.indexOf(".",i+1))>0) r=3Da.substring(i+1,i2); else return =
"";  =0A=
 if ((i=3Da.indexOf(".",i2+1))>0) t=3Da.substring(i2+1,i); else return =
"";  =0A=
 if (f) {=0A=
  return r;=0A=
 } else {=0A=
  var c=3Dnew =
Array('A','B','C','D','E','F','G','H','J','K','L','M','N','P','R','S','T'=
,'U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');=0A=
  return =
c[r>>28&m]+c[r>>23&m]+c[r>>18&m]+c[r>>13&m]+"-"+c[r>>8&m]+c[r>>3&m]+c[((r=
&7)<<2)+(t>>30&3)]+c[t>>25&m]+c[t>>20&m]+"-"+c[t>>15&m]+c[t>>10&m]+c[t>>5=
&m]+c[t&m];=0A=
 }=0A=
}=0A=
function _uIN(n) {=0A=
 if (!n) return false;=0A=
 for (var i=3D0;i<n.length;i++) {=0A=
  var c=3Dn.charAt(i);=0A=
  if ((c<"0" || c>"9") && (c!=3D".")) return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uES(s,u) {=0A=
 if (typeof(encodeURIComponent) =3D=3D 'function') {=0A=
  if (u) return encodeURI(s);=0A=
  else return encodeURIComponent(s);=0A=
 } else {=0A=
  return escape(s);=0A=
 }=0A=
}=0A=
function _uUES(s) {=0A=
 if (typeof(decodeURIComponent) =3D=3D 'function') {=0A=
  return decodeURIComponent(s);=0A=
 } else {=0A=
  return unescape(s);=0A=
 }=0A=
}=0A=
function _uVG() {=0A=
 if((_udn.indexOf("www.google.") =3D=3D 0 || _udn.indexOf(".google.") =
=3D=3D 0 || _udn.indexOf("google.") =3D=3D 0) && _utcp=3D=3D'/' && =
_udn.indexOf("google.org")=3D=3D-1) {=0A=
  return false;=0A=
 }=0A=
 return true;=0A=
}=0A=
function _uSP() {=0A=
 var s=3D100;=0A=
 if (_usample) s=3D_usample;=0A=
 if(s>=3D100 || s<=3D0) return true;=0A=
 return ((__utmVisitorCode(1)%10000)<(s*100));=0A=
}=0A=
function urchinPathCopy(p){=0A=
 var d=3Ddocument,nx,tx,sx,i,c,cs,t,h,o;=0A=
 cs=3Dnew Array("a","b","c","v","x","z");=0A=
 h=3D_uDomain(); if (_udn && _udn!=3D"") o=3D" domain=3D"+_udn+";";=0A=
 nx=3D_uNx()+";";=0A=
 tx=3Dnew Date(); tx.setTime(tx.getTime()+(_utimeout*1000));=0A=
 tx=3Dtx.toGMTString()+";";=0A=
 sx=3Dnew Date(); sx.setTime(sx.getTime()+(_ucto*1000));=0A=
 sx=3Dsx.toGMTString()+";";=0A=
 for (i=3D0;i<6;i++){=0A=
  t=3D" expires=3D";=0A=
  if (i=3D=3D1) t+=3Dtx; else if (i=3D=3D2) t=3D""; else if (i=3D=3D5) =
t+=3Dsx; else t+=3Dnx;=0A=
  c=3D_uGC(d.cookie,"__utm"+cs[i]+"=3D"+h,";");=0A=
  if (c!=3D"-") d.cookie=3D"__utm"+cs[i]+"=3D"+c+"; path=3D"+p+";"+t+o;=0A=
 }=0A=
}=0A=
function _uCO() {=0A=
 if (!_utk || _utk=3D=3D"" || _utk.length<10) return;=0A=
 var d=3D'www.google.com';=0A=
 if (_utk.charAt(0)=3D=3D'!') d=3D'analytics.corp.google.com';=0A=
 _ubd.cookie=3D"GASO=3D"+_utk+"; path=3D"+_utcp+";"+_udo;=0A=
 var sc=3Ddocument.createElement('script');=0A=
 sc.type=3D'text/javascript';=0A=
 sc.id=3D"_gasojs";=0A=
 =
sc.src=3D'https://'+d+'/analytics/reporting/overlay_js?gaso=3D'+_utk+'&'+=
Math.random();=0A=
 document.getElementsByTagName('head')[0].appendChild(sc);  =0A=
}=0A=
function _uGT() {=0A=
 var h=3Dlocation.hash, a;=0A=
 if (h && h!=3D"" && h.indexOf("#gaso=3D")=3D=3D0) {=0A=
  a=3D_uGC(h,"gaso=3D","&");=0A=
 } else {=0A=
  a=3D_uGC(_ubd.cookie,"GASO=3D",";");=0A=
 }=0A=
 return a;=0A=
}=0A=
var _utk=3D_uGT();=0A=
if (_utk && _utk!=3D"" && _utk.length>10) {=0A=
 if (window.addEventListener) {=0A=
  window.addEventListener('load', _uCO, false); =0A=
 } else if (window.attachEvent) { =0A=
  window.attachEvent('onload', _uCO);=0A=
 }=0A=
}=0A=
=0A=
function _uNx() {=0A=
  return (new Date((new Date()).getTime()+63072000000)).toGMTString();=0A=
}=0A=

------=_NextPart_000_0000_01C85CD9.39633240--

