From: <Saved by Windows Internet Explorer 7>
Subject: Alexander Proudfoot::
Date: Wed, 4 Nov 2009 10:48:22 -0800
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CA5D3C.542C49D0"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Alexander =
Proudfoot::</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
media=3Dscreen,print=20
href=3D"http://www.alexanderproudfoot.com/assets/styles/reset.css" =
type=3Dtext/css=20
rel=3Dstylesheet><LINK media=3Dscreen=20
href=3D"http://www.alexanderproudfoot.com/assets/styles/superfish.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK media=3Dscreen,print=20
href=3D"http://www.alexanderproudfoot.com/assets/styles/global.css" =
type=3Dtext/css=20
rel=3Dstylesheet><!--[if lt IE 7]>
   		<link rel=3D"stylesheet" type=3D"text/css" =
href=3D"assets/styles/global-ie6.css" media=3D"screen,print" />
   		<script src=3D"assets/scripts/DD_belatedPNG_0.0.6a-min.js" =
type=3D"text/javascript"></script>
   		<script>DD_belatedPNG.fix('.trans');</script>
		<![endif]-->
<META content=3DU1YWOTgX59/cjSUGjuCTpyBNHxyFeE5aVSVex3khbic=3D =
name=3Dverify-v1>
<META content=3DX7m9JKapMjVtGIcM08XsspR80Hf0CpJLprkUE+KM8yI=3D =
name=3Dverify-v1>
<META content=3D-zPYikUxn06kSN7shbi0Up1YDeYJkT6hNO-EyUPSUsI=20
name=3Dgoogle-site-verification>
<META content=3D6c2469b857ed850c name=3Dy_key>
<META content=3D94A8057645BAB34B15E48E5474966B3E name=3Dmsvalidate.01>
<SCRIPT id=3DEktronJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/java/ektron.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT id=3DEktronWebToolBarJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/java/webtoolbar.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT id=3DEktronAutoheightJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/java/plugins/autoheight=
/ektron.autoheight.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT id=3DEktronModalJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/java/plugins/modal/ektr=
on.modal.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT id=3DEktronContentDesignerJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/ContentDesigner/ektron.=
contentDesigner.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT id=3DEktronFlexMenuJS=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/java/ek_flexmenu.js"=20
type=3Dtext/javascript></SCRIPT>
<LINK id=3DEktronEditorsMenuCss=20
href=3D"http://www.alexanderproudfoot.com/WorkArea/csslib/EktronEditorsMe=
nu.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK id=3DEktronModalCss=20
href=3D"http://www.alexanderproudfoot.com/WorkArea/java/plugins/modal/ekt=
ron.modal.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK id=3DEktronPageHostCss=20
href=3D"http://www.alexanderproudfoot.com/WorkArea/PageBuilder/PageContro=
ls/Themes/TrueBlue/CSS/PageHost.css"=20
type=3Dtext/css rel=3Dstylesheet><LINK id=3DEktronPageHostIECss=20
href=3D"http://www.alexanderproudfoot.com/WorkArea/PageBuilder/PageContro=
ls/Themes/TrueBlue/CSS/PageHostIE.css"=20
type=3Dtext/css rel=3Dstylesheet>
<META content=3D"MSHTML 6.00.6000.16915" name=3DGENERATOR></HEAD>
<BODY>
<FORM id=3DaspnetForm name=3DaspnetForm action=3Dsplash.aspx?pageid=3D75 =
method=3Dpost>
<DIV><INPUT id=3D__EVENTTARGET type=3Dhidden name=3D__EVENTTARGET> =
<INPUT=20
id=3D__EVENTARGUMENT type=3Dhidden name=3D__EVENTARGUMENT> <INPUT =
id=3D__VIEWSTATE=20
type=3Dhidden=20
value=3D/wEPDwULLTE0ODgxODE1NjIPZBYCZg9kFgJmD2QWAgIDD2QWBAIBDw8WAh4HVmlza=
WJsZWhkFiYCAg8WAh8AZ2QCBA8WAh4EVGV4dAWABQ0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC=
9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+DQogICAgICAgIGZ1bmN0aW9uIHN=
lc3Npb25LZWVwQWxpdmUoKSB7DQogICAgICAgICAgICB2YXIgd1JlcXVlc3QgPSBuZXcgU3lz=
Lk5ldC5XZWJSZXF1ZXN0KCk7DQogICAgICAgICAgICB3UmVxdWVzdC5zZXRfdXJsKCIvV29ya=
0FyZWEvUGFnZUJ1aWxkZXIvU2Vzc2lvbktlZXBBbGl2ZS5hc3B4Iik7DQogICAgICAgICAgIC=
B3UmVxdWVzdC5zZXRfaHR0cFZlcmIoIlBPU1QiKTsNCiAgICAgICAgICAgIHdSZXF1ZXN0LmF=
kZF9jb21wbGV0ZWQoc2Vzc2lvbktlZXBBbGl2ZV9DYWxsYmFjayk7DQogICAgICAgICAgICB3=
UmVxdWVzdC5zZXRfYm9keSgiTWVzc2FnZT1rZWVwYWxpdmUiKTsNCiAgICAgICAgICAgIHdSZ=
XF1ZXN0LmdldF9oZWFkZXJzKClbIkNvbnRlbnQtTGVuZ3RoIl0gPSAwOw0KICAgICAgICAgIC=
Agd1JlcXVlc3QuaW52b2tlKCk7DQogICAgICAgIH0NCg0KICAgICAgICBmdW5jdGlvbiBzZXN=
zaW9uS2VlcEFsaXZlX0NhbGxiYWNrKGV4ZWN1dG9yLCBldmVudEFyZ3Mpe30NCiAgICAgICAg=
d2luZG93LnNldEludGVydmFsKCAic2Vzc2lvbktlZXBBbGl2ZSgpOyIsIDkwMDAwMCk7DQogI=
CAgPC9zY3JpcHQ+DQpkAgYPFgIfAQUERmlsZWQCCA8PFgweDU9uQ2xpZW50Q2xpY2sFDXJldH=
VybiBmYWxzZTsfAQUITmV3IFBhZ2UeB1Rvb2xUaXAFCE5ldyBQYWdlHghDc3NDbGFzcwUHaW5=
2YWxpZB4HRW5hYmxlZGgeBF8hU0ICAmRkAgoPDxYMHwIFDXJldHVybiBmYWxzZTsfAQURQ29w=
eSAvIFNhdmUgQXMuLi4fAwURQ29weSAvIFNhdmUgQXMuLi4fBAUHaW52YWxpZB8FaB8GAgJkZ=
AIMDw8WBB8BBQRFZGl0HwMFBEVkaXRkZAIODw8WCh8BBQRTYXZlHwMFBFNhdmUfBAUHaW52YW=
xpZB8FaB8GAgJkZAIQDw8WBB8BBQdDaGVja2luHwMFB0NoZWNraW5kZAISDw8WBB8BBQdQdWJ=
saXNoHwMFB1B1Ymxpc2hkZAIUDw8WCh8BBQZDYW5jZWwfAwUGQ2FuY2VsHwQFB2ludmFsaWQf=
BWgfBgICZGQCFg8PFgofAwUQUHVibGlzaGVkIExheW91dB8BBRBQdWJsaXNoZWQgTGF5b3V0H=
wQFB2ludmFsaWQfBWgfBgICZGQCGA8PFgQfAQUKUHJvcGVydGllcx8DBQpQcm9wZXJ0aWVzZG=
QCGg8PFgofAwUOUHJldmlldyBMYXlvdXQfAQUOUHJldmlldyBMYXlvdXQfBAUHaW52YWxpZB8=
FaB8GAgJkZAIcDw8WCh8DBQhXb3JrYXJlYR8BBQhXb3JrYXJlYR8EBQdpbnZhbGlkHwVoHwYC=
AhYCHgdvbmNsaWNrBX93aW5kb3cub3BlbignL1dvcmtBcmVhL3dvcmthcmVhLmFzcHg/TGFuZ=
1R5cGU9MTAzMycsICdBZG1pbjQwMCcsICd3aWR0aD05MDAsaGVpZ2h0PTU4MCxzY3JvbGxhYm=
xlPTEscmVzaXphYmxlPTEnKTtyZXR1cm4gZmFsc2U7ZAIgDxYCHgNzcmMFVy9Xb3JrQXJlYS9=
QYWdlQnVpbGRlci9QYWdlQ29udHJvbHMvVGhlbWVzL1RydWVCbHVlL2ltYWdlcy9tZW51aGFu=
ZGxlZF9wdXRiYWNrX2hvdmVyLnBuZ2QCIg8PFgYfAQUGTG9nb3V0HwIFggF3aW5kb3cub3Blb=
ignL1dvcmtBcmVhL2xvZ2luLmFzcHg/YWN0aW9uPWxvZ291dCcsICdMb2dpbicsICd0b29sYm=
FyPTAsbG9jYXRpb249MCxzY3JvbGxiYXJzPTAsd2lkdGg9MjUwLGhlaWdodD0xOTAnKTtyZXR=
1cm4gZmFsc2U7HwMFBkxvZ291dGRkAiYPDxYCHwEFE0ZpbHRlciBDb250cm9sIExpc3RkZAIq=
DxYCHwgFTS9Xb3JrQXJlYS9QYWdlQnVpbGRlci9QYWdlQ29udHJvbHMvVGhlbWVzL1RydWVCb=
HVlL2ltYWdlcy9kYXNoYm9hcmRib3R0b20ucG5nZAIsDxYCHwgFRy9Xb3JrQXJlYS9QYWdlQn=
VpbGRlci9QYWdlQ29udHJvbHMvVGhlbWVzL1RydWVCbHVlL2ltYWdlcy9wdWxsY2hhaW4ucG5=
nZAIND2QWAgIBD2QWAgIBD2QWBAICDxYCHwBoFgJmD2QWBAIBDw8WBh8BBQpBZGQgQ29sdW1u=
HwMFCkFkZCBDb2x1bW4fAGhkZAIDDxYCHgtfIUl0ZW1Db3VudAIBFgJmD2QWAgIBDxYIHgVjb=
GFzcwUJUEJWaWV3aW5nHgVzdHlsZQULd2lkdGg6MTAwJTseCmRyb3B6b25laWQFBEJvZHkeCX=
Jlc2l6YWJsZQUEdHJ1ZRYCAgEPFgIeCGNvbHVtbmlkBQEwFgQCAQ8WAh8AaBYEAgEPFgIeBXR=
pdGxlBQZSZXNpemUWAgIBDxYEHwgFRy9Xb3JrQXJlYS8vUGFnZUJ1aWxkZXIvUGFnZUNvbnRy=
b2xzL1RoZW1lcy9UcnVlQmx1ZS9pbWFnZXMvZWRpdF9vZmYucG5nHgNhbHQFBlJlc2l6ZWQCA=
w8WAh8PBQZEZWxldGUWAgIBDxYEHwgFSS9Xb3JrQXJlYS8vUGFnZUJ1aWxkZXIvUGFnZUNvbn=
Ryb2xzL1RoZW1lcy9UcnVlQmx1ZS9pbWFnZXMvaWNvbl9jbG9zZS5wbmcfEAUGRGVsZXRlZAI=
DDxYCHwkCARYCZg9kFgICAQ9kFgJmD2QWAgIDD2QWAmYPZBYEAgEPZBYGAgEPFgIfAQULU3Bs=
YXNoIFBhZ2VkAgMPDxYCHwMFBEVkaXRkFgJmDxYEHxAFBEVkaXQfCAVHL1dvcmtBcmVhLy9QY=
WdlQnVpbGRlci9QYWdlQ29udHJvbHMvVGhlbWVzL1RydWVCbHVlL2ltYWdlcy9lZGl0X29mZi=
5wbmdkAgUPDxYCHwMFBkRlbGV0ZWQWAmYPFgQfEAUGRGVsZXRlHwgFSS9Xb3JrQXJlYS8vUGF=
nZUJ1aWxkZXIvUGFnZUNvbnRyb2xzL1RoZW1lcy9UcnVlQmx1ZS9pbWFnZXMvaWNvbl9jbG9z=
ZS5wbmdkAgMPZBYCZg9kFgJmD2QWAmYPZBYCAgEPDxYIHgVUaXRsZQULU3BsYXNoIFBhZ2UeE=
0NhdGFsb2dJY29uSW1hZ2VVcmwFLi9Xb3JrQXJlYS9pbWFnZXMvYXBwbGljYXRpb24vaWNvbl=
9kb2N1bWVudC5naWYeEVRpdGxlSWNvbkltYWdlVXJsZR8AZ2RkAgYPFgIfCQIBFgJmD2QWAgI=
BDxYCHwkCARYCZg9kFgICAQ9kFgJmD2QWAgIDD2QWAmYPZBYEAgEPFgIfAGgWBgIBDxYCHwEF=
C1NwbGFzaCBQYWdlZAIDDw8WAh8DBQRFZGl0ZBYCZg8WBB8QBQRFZGl0HwgFRy9Xb3JrQXJlY=
S8vUGFnZUJ1aWxkZXIvUGFnZUNvbnRyb2xzL1RoZW1lcy9UcnVlQmx1ZS9pbWFnZXMvZWRpdF=
9vZmYucG5nZAIFDw8WAh8DBQZEZWxldGVkFgJmDxYEHxAFBkRlbGV0ZR8IBUkvV29ya0FyZWE=
vL1BhZ2VCdWlsZGVyL1BhZ2VDb250cm9scy9UaGVtZXMvVHJ1ZUJsdWUvaW1hZ2VzL2ljb25f=
Y2xvc2UucG5nZAIDD2QWAmYPZBYCZg9kFgJmD2QWAgIBDw8WCB8RBQtTcGxhc2ggUGFnZR8SB=
S4vV29ya0FyZWEvaW1hZ2VzL2FwcGxpY2F0aW9uL2ljb25fZG9jdW1lbnQuZ2lmHxNlHwBnZG=
QYAgV5Y3RsMDAkY3RsMDAkcm9vdEJvZHlDb250ZW50JG1haW5Db250ZW50JEJvZHkkUHVibGl=
jQ29sdW1ucyRjdGwwMCRQdWJsaWNXaWRnZXRzJGN0bDAwJFdpZGdldEhvc3QkV2lkZ2V0SG9z=
dF93aWRnZXQkVmlld1NldA8PZGZkBXljdGwwMCRjdGwwMCRyb290Qm9keUNvbnRlbnQkbWFpb=
kNvbnRlbnQkQm9keSRjb2x1bW5EaXNwbGF5JGN0bDAwJGNvbnRyb2xjb2x1bW4kY3RsMDAkV2=
lkZ2V0SG9zdCRXaWRnZXRIb3N0X3dpZGdldCRWaWV3U2V0Dw9kZmT+msECzUNo8v4gGcKeB2s=
fz6g6JA=3D=3D=20
name=3D__VIEWSTATE> </DIV>
<SCRIPT type=3Dtext/javascript>
//<![CDATA[
var theForm =3D document.forms['aspnetForm'];
if (!theForm) {
    theForm =3D document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() !=3D false)) {
        theForm.__EVENTTARGET.value =3D eventTarget;
        theForm.__EVENTARGUMENT.value =3D eventArgument;
        theForm.submit();
    }
}
//]]>
</SCRIPT>

<SCRIPT=20
src=3D"http://www.alexanderproudfoot.com/WebResource.axd?d=3D7Ghv8yHnSwVe=
r1X-7ix6Vg2&amp;t=3D633921229697949079"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.alexanderproudfoot.com/ScriptResource.axd?d=3D3vT_mI6V8=
cfPztxasln5Lop9xAxjZ6D0KnUeJHBhf2eX3F7NkFoXAdRYZVW2K0THlYR8C6ZhETcXRrYKcS=
25tpHMsrBxWBpv9yfDfQ8CnY41&amp;t=3D634123f4"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT type=3Dtext/javascript>
//<![CDATA[
if (typeof(Sys) =3D=3D=3D 'undefined') throw new Error('ASP.NET Ajax =
client-side framework failed to load.');
//]]>
</SCRIPT>

<SCRIPT=20
src=3D"http://www.alexanderproudfoot.com/ScriptResource.axd?d=3D3vT_mI6V8=
cfPztxasln5Lop9xAxjZ6D0KnUeJHBhf2eX3F7NkFoXAdRYZVW2K0THQmWHhL-8TX_KQtssOT=
Z7FyJ-U8JrdDW48qsLjVJ7s9eq3c-6z0bvEHoOe_6NhJC20&amp;t=3D634123f4"=20
type=3Dtext/javascript></SCRIPT>

<DIV id=3Dpg>
<DIV class=3Dinner id=3Dhd><A=20
href=3D"http://www.alexanderproudfoot.com/home.aspx"><IMG height=3D113=20
alt=3D"Alexander Proudfoot"=20
src=3D"http://www.alexanderproudfoot.com/assets/images/hd_logo.gif" =
width=3D380></A>=20

<DIV id=3DhdNav><A =
href=3D"http://www.alexanderproudfoot.com/home.aspx">Home</A> |=20
<A href=3D"http://www.proudfootalumni.com/home.asp">Alumni</A> | <A=20
href=3D"http://www.proudfootcrp.com/default.asp">CRP</A> | <A=20
href=3D"http://www.mcgplc.com/">MCG</A> | <A=20
href=3D"http://www.alexanderproudfoot.com/About-Us/Contact-Us.aspx">Conta=
ct=20
Us</A><INPUT =
id=3Dctl00_ctl00_headerNav_ctl00_ctl00_headerNavEktronClientManager=20
type=3Dhidden=20
value=3DEktronJS,EktronWebToolBarJS,EktronAutoheightJS,EktronModalJS,Ektr=
onContentDesignerJS=20
name=3Dctl00$ctl00$headerNav$ctl00$ctl00$headerNavEktronClientManager> =
</DIV>
<DIV id=3DhdTools>
<DIV id=3DhdCountry>
<DIV class=3DEktronAjaxLoading align=3Dleft><IMG alt=3DLoading...=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/images/application/load=
ing_big.gif"></DIV><A=20
class=3Dchange title=3D"Change Your Language"=20
href=3D"http://www.alexanderproudfoot.com/splash.aspx"=20
target=3D_self>Change</A><SPAN class=3Dne>Language</SPAN>=20
<DIV class=3Dne>US English<BR></DIV><INPUT=20
id=3Dctl00_ctl00_CountrySelector_ctl00_ctl00_CountrySelectorEktronClientM=
anager=20
type=3Dhidden=20
value=3DEktronJS,EktronWebToolBarJS,EktronAutoheightJS,EktronModalJS,Ektr=
onContentDesignerJS=20
name=3Dctl00$ctl00$CountrySelector$ctl00$ctl00$CountrySelectorEktronClien=
tManager>=20
</DIV>
<DIV id=3DhdSearch>
<FIELDSET><INPUT id=3Dctl00_ctl00_hdSearchField value=3Dsearch=20
name=3Dctl00$ctl00$hdSearchField> <INPUT id=3Dctl00_ctl00_hdSearchBtn =
type=3Dsubmit value=3DGO name=3Dctl00$ctl00$hdSearchBtn>=20
</FIELDSET> </DIV></DIV></DIV><!-- end #hd -->
<DIV id=3DouterSplash><IMG height=3D82 alt=3D"Please select your =
country"=20
src=3D"http://www.alexanderproudfoot.com/assets/images/splash_header.gif"=
=20
width=3D993>=20
<DIV class=3Dwidget=20
id=3Dctl00_ctl00_rootBodyContent_mainContent_Body_PublicColumns_ctl00_Pub=
licWidgets_ctl00_WidgetHost_dropcontainer><SPAN=20
id=3Dctl00_ctl00_rootBodyContent_mainContent_Body_PublicColumns_ctl00_Pub=
licWidgets_ctl00_WidgetHost_lblErrorMessage></SPAN>
<DIV=20
id=3Dctl00_ctl00_rootBodyContent_mainContent_Body_PublicColumns_ctl00_Pub=
licWidgets_ctl00_WidgetHost_updatepanel>
<DIV class=3Dcontent>
<DIV class=3DEktronAjaxLoading align=3Dleft><IMG alt=3DLoading...=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/images/application/load=
ing_big.gif"></DIV>
<DL class=3Damericas>
  <DT class=3Dtitle>Americas
  <DT><A title=3D"United States - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx"><IMG=20
  title=3D"United States - English" alt=3D"United States"=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_unit=
edstates.gif?n=3D4540"=20
  border=3D0></A><A title=3D"United States - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx">United =
States</A>
  <DT><IMG title=3DCanada alt=3DCanada=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_cana=
da.gif?n=3D8453">Canada
  <DD><A title=3D"Canada - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx">English</A> | =
<A=20
  title=3D"Canada - French"=20
  =
href=3D"http://fr-ca.alexanderproudfoot.com/Under-Construction.aspx">Fren=
ch</A>
  <DT><IMG title=3DBrazil alt=3DBrazil=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_braz=
il.gif?n=3D5824">Brazil
  <DD><A title=3D"Brazil - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx">English</A> | =
<A=20
  title=3D"Brazil - Portuguese"=20
  =
href=3D"http://pt-br.alexanderproudfoot.com/Under-Construction.aspx">Port=
uguese</A></DD></DL>
<DL class=3Deurope>
  <DT class=3Dtitle>Europe
  <DT><A title=3D"United Kingdom - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx"><IMG=20
  title=3D"United Kingdom" alt=3D"United Kingdom"=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_unit=
edkingdom.gif?n=3D822"></A><A=20
  title=3D"United Kingdom"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx">United =
Kingdom</A>
  <DT><A title=3D"France - French"=20
  =
href=3D"http://fr-fr.alexanderproudfoot.com/Under-Construction.aspx"><IMG=
=20
  title=3DFrance alt=3DFrance=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_fran=
ce.gif?n=3D906"></A><A=20
  title=3DFrance=20
  =
href=3D"http://fr-fr.alexanderproudfoot.com/Under-Construction.aspx">Fran=
ce</A>
  <DT><A title=3D"Germany - German"=20
  =
href=3D"http://de-de.alexanderproudfoot.com/Under-Construction.aspx"><IMG=
=20
  title=3DGermany alt=3DGermany=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_germ=
any.gif?n=3D2950"></A><A=20
  title=3DGermany=20
  =
href=3D"http://de-de.alexanderproudfoot.com/Under-Construction.aspx">Germ=
any</A></DT></DL>
<DL class=3Dafrica>
  <DT class=3Dtitle>Africa
  <DT><A title=3D"South Africa - English"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx"><IMG =
title=3D"South Africa"=20
  alt=3D"South Africa"=20
  =
src=3D"http://www.alexanderproudfoot.com/uploadedImages/Content/flag_sout=
hafrica.gif?n=3D7853"></A><A=20
  title=3D"South Africa"=20
  href=3D"http://en-us.alexanderproudfoot.com/home.aspx">South=20
Africa</A></DT></DL><INPUT=20
id=3Dctl00_ctl00_rootBodyContent_mainContent_Body_PublicColumns_ctl00_Pub=
licWidgets_ctl00_WidgetHost_WidgetHost_widget_CB_ctl00_ctl00_rootBodyCont=
ent_mainContent_Body_PublicColumns_ctl00_PublicWidgets_ctl00_WidgetHost_W=
idgetHost_widget_CBEktronClientManager=20
type=3Dhidden=20
value=3DEktronJS,EktronWebToolBarJS,EktronAutoheightJS,EktronModalJS,Ektr=
onContentDesignerJS=20
name=3Dctl00$ctl00$rootBodyContent$mainContent$Body$PublicColumns$ctl00$P=
ublicWidgets$ctl00$WidgetHost$WidgetHost_widget$CB$ctl00$ctl00$rootBodyCo=
ntent$mainContent$Body$PublicColumns$ctl00$PublicWidgets$ctl00$WidgetHost=
$WidgetHost_widget$CBEktronClientManager>=20
</DIV></DIV></DIV><!--  --><IMG height=3D23 alt=3D""=20
src=3D"http://www.alexanderproudfoot.com/assets/images/bkg_splash_bottom.=
gif"=20
width=3D993> </DIV>
<DIV id=3Dft><A =
href=3D"http://www.alexanderproudfoot.com/Site-Map.aspx">Site=20
Map</A> | <A=20
href=3D"http://www.alexanderproudfoot.com/Privacy-Statement.aspx">Privacy=
=20
statement</A> | <A=20
href=3D"http://www.alexanderproudfoot.com/Disclaimer.aspx">Disclaimer</A>=
 | <A=20
href=3D"http://www.alexanderproudfoot.com/Safe-Harbor.aspx">Safe =
Harbor</A> | <A=20
class=3D"&#13;&#10;&#9;&#9;  ON&#13;&#10;&#9;&#9;"=20
href=3D"http://www.alexanderproudfoot.com/splash.aspx">Language =
selector</A><INPUT=20
id=3Dctl00_ctl00_footerNavigation_ctl00_ctl00_footerNavigationEktronClien=
tManager=20
type=3Dhidden=20
value=3DEktronJS,EktronWebToolBarJS,EktronAutoheightJS,EktronModalJS,Ektr=
onContentDesignerJS=20
name=3Dctl00$ctl00$footerNavigation$ctl00$ctl00$footerNavigationEktronCli=
entManager>=20
<BR>
<DIV class=3DEktronAjaxLoading align=3Dleft><IMG alt=3DLoading...=20
src=3D"http://www.alexanderproudfoot.com/WorkArea/images/application/load=
ing_big.gif"></DIV>
<P>Copyright =C2=A9 2009 Management Consulting Group PLC. All rights =
reserved.=20
<BR></P><INPUT=20
id=3Dctl00_ctl00_CopyrightFooter_ctl00_ctl00_CopyrightFooterEktronClientM=
anager=20
type=3Dhidden=20
value=3DEktronJS,EktronWebToolBarJS,EktronAutoheightJS,EktronModalJS,Ektr=
onContentDesignerJS=20
name=3Dctl00$ctl00$CopyrightFooter$ctl00$ctl00$CopyrightFooterEktronClien=
tManager>=20

<DIV></DIV></DIV><!-- end #ft --></DIV><!-- end #pg -->
<SCRIPT src=3D"http://jqueryjs.googlecode.com/files/jquery-1.3.min.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://www.alexanderproudfoot.com/assets/scripts/superfish.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.alexanderproudfoot.com/assets/scripts/jcarousellite_1.0=
.1.pack.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT =
src=3D"http://www.alexanderproudfoot.com/assets/scripts/global.js"=20
type=3Dtext/javascript></SCRIPT>

<SCRIPT=20
src=3D"http://www.alexanderproudfoot.com/assets/scripts/jquery.cycle.all.=
js"=20
type=3Dtext/javascript></SCRIPT>

<DIV><INPUT id=3D__EVENTVALIDATION type=3Dhidden=20
value=3D/wEWCAK5kI7bBAKo1KmYCQKz6tXSCALimonGDwKouLBDAqTMku4EArX5m40MAr2Z4=
qcF2pu/IY+Av0gwrhOXRiBem1c6uIA=3D=20
name=3D__EVENTVALIDATION> </DIV></FORM>
<SCRIPT type=3Dtext/javascript>
var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' =
type=3D'text/javascript'%3E%3C/script%3E"));
</SCRIPT>

<SCRIPT type=3Dtext/javascript>
try {
var pageTracker =3D _gat._getTracker("UA-9879230-1");
pageTracker._trackPageview();
} catch(err) {}</SCRIPT>
</BODY></HTML>

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/assets/images/hd_logo.gif

R0lGODlhfAFxAOYAAM3NzT09PXV1daWlpYWFhUhISH19fdjY2HFxceHh4WlpaWRkZGFhYW1tbbKy
sllZWfr6+urq6qCgoJaWlo+Pj5ycnO7u7jk5OTQ0NC4uLpKSkri4uFBQUDExMZ6enl1dXUZGRpqa
moqKitLS0ra2tvb29ujo6LCwsP39/ezs7MrKyrS0tPPz85SUlPDw8JiYmMjIyIyMjObm5lNTU6Ki
okRERPj4+Ly8vPLy8sLCwkJCQr6+vtDQ0FVVVa6urlZWVqioqIiIiKurq4KCgsXFxaysrMbGxkBA
QICAgLq6unh4eHt7e8DAwCQkJCUlJSMjIyIiIiAgICEhISwsLB8fHwsLCx4eHg8PDxAQEC0tLQ0N
DQwMDA4ODh0dHRwcHBsbGxERERoaGhQUFBISEhcXFxkZGRYWFhgYGBUVFRMTE0tLS01NTUxMTE5O
Tk9PT0pKSiYmJgICAgoKCisrKyoqKicnJygoKCkpKQkJCQgICAcHBwYGBgUFBQQEBAMDA////yH5
BAAAAAAALAAAAAB8AXEAAAf/gHeCg4SFhoJ0iYqLjI2Oj5CKc5OUlZaXmJmZU5ydnp+goaKjpKNZ
p6ipqqusra6vsLGypxm1tre4ubq7vL2+v8DBtofExcaIkcnKkZrNzs/Qc6XT1NXUs9jZ2tuwwt7f
4OG4duTl5uflx+rrh8vuzNHx8pvW9fb3odz6+/z9quIAbaEbSLAgOXYIjb1b+G6ew4fS8EmcWMqf
xYsYtX0zyLFjuoQgQ95hSJIOxJMoJ1FcydJTxpcwYdaZSbOmTZoec+YUybOkz4Upg85rSbTotZhI
W91cynSmzqcGeUpF9rMqPKFYTxrdytVlUm5wwooV27Ss2aVQ0xKcynak1beN/7LKldu1rt1pY/Pq
3Xu2r1+nanW2HdwOrmGTcxOnvMt44t7HkCH/ndw0sOWDhKUe3gxJsWe6oTA1JuWktOnIqFPnpcy6
zuXXmWO75Uw70efbWUXFw2e6t+/fvlULj9y69evja2W3rc08Ge7ncptIb1JaOvDr2LEP3w6nuHfA
yMNjVr68ufll0HFPX8/eevb38E9znx/2u33X4sWT33++P22s7QUo4IDsxWfgb/QleN+CN+WX334Q
FubfhMs8YeETBGao4XoHdlhagiB2x+CIZjkIVYQoTkWhVRe26OKLMGK44YwFemijfCGGSCKJJvY4
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
yLHsGLRx5AJNgKl3KwFFkMLga75mGXuNq3ixR78qMHsXQKM3UGzftgHEBgc0GgD+O7XFBgcN/AcI
cIJocLM/54cfUGxNfAHE9ojK5ltkhwA+ZsHHxsGO/MiQjIUHIK1r0LSod14JgAVSsH1/kAJpWZgy
0K4FwMl4lcIfwKEhkMIFIKgwiWUIAAb1xGBrQKhRQEpJ8AZN0MTnxgG86W4TkJUIIHF/YAEDMAEh
IAQGVgJEnJVrsHermWKDqAai9wcDEAJzQIhiQKL62r1cnAbtdf8HXnkH30ZcL8ABsefMN8AAsDfN
QOBRa9Bqf0AAHHh/fwAEhBRrAjB7L0BKB2DMIbADBsYDhLxjE0C/f/ACWeBzlJcACHBVAqCWCVAH
PfcEKUwAH8UAN8gAPpcFunzQCf1zXBDSIg3JJL3BPpAACcCoKH0BG3wBKX0Aw6nSQIAFGPDSKo3S
KD0B7YoANq3Sn8zSWCADOM3QTFvTNw0EwzvUAkCoLp2WaYkALo3TMqAE8loCBNChQmDTQy0DL0AA
F+ChWvnQWj3UbICVPJ3SKC0DAdCbdZXWDrCV7yjUjrqoaRkAXhkAKP3JMiAAhhgFBrABab3Wg1gA
9JyoBHCIs1f/ANMcRzdwARso1zed1iGAAHAwe3KN00fggUOQwnG0A2wQez1XAHkcY0EAdEdw2Sit
A0An0qzd2q792hwc0iXtyLJN21zwyO/armDgwU+LwbzdtFfgoVE73MQ93Fjg22CdlRwKsMwtooNY
xIbYld083dTdzSdovrA3iNi93dztgdoduK8d3uI93rNd3ubtyL+d3uq93k5b3O793vHa3PI93/Qt
3dV93/id39/d3fy9gVrw3wAe4AKuBePN2gHABm8gqgXwBmrQ4A2e4Aoe4RAe4Qr+BhY+4RS+4Bde
4WrQUWqA4RleAGoQVFcVVB8uqhcO4QzuzlfV4mvg4R3l4SAe/6oW3uAdFVQvzgYnXuErHuMfXuMe
5eIy3uFscFVtdeRIXlEvDuIrbuRJXuJr4OAj/lEunuM3juMvLuU2juNO3lYlruM/vuVUXlFtEFQ6
fuE2fuVtgORlDuZB3lS25eVZLuU3vuZw7lhKDuZ0TuJtFedKLuUfdVE9UAPsOOCGfuiIbtA2tuiM
3uiO/uiQHumSPumUXumWfumYnumZ7gLsuAWe/umIHuqiPuoBXuCmfurkfd6qvuoczN6u/uoeDN+y
PuuyXt+2fuu4DrCfvuu83uu+TurAHuyljurEXuzhzerIvuqwvuzMrtu0/uzQHt+5Pu307evWfu3Y
fu3Cvu2jbv/s3v7tt/3ItZ3s5E7SzX7u6O7shTrD0d7u7i7tW1kF8j7v9F7vVZDt+J7v2s7t/L7t
4P7vp17uAo/s6V7wBu/C757whWrvDN/wDk/v+h7xEr8F/V7xpA7wGH/qZNDaA6/qZNDxrH7wv10H
YsDeZMDbJ6/eC//wLN/yLl/vEx/zMu/pFl/ziJ7xIi0ANeYGOA/bkHwHObBg5H4AEgDJZ3AASgDy
kJzerSYDe/3bPrBgTusAJ4AFAmBeAtCuRCABry4HXv/1YB/2X//yZF/2Dz/zaJ/tNr/2wk6jPW/s
VyBmPEDsbDACIRDSfnYA4c7BXDYCGHxmSr/qAKACG3BWE4D/wa1G0qnGwXGEwTQKBe3qkTsNAW3Q
204r9pif+ZoP9mbf+Z6f9qCP9mwf6pJm8+N96CFtXRRA7FT3ACJdAFIw3gUg0n/AAv9O0uKdwXQW
ABicARm8+I/MUCTAwRgABRjc+BiMAVFw/H9w3pv//NAf/WLv+dRP9tY+76E/84SkBQoAAA/g6VQw
ATLwAf8NBUMgA0AA4BPQAlrQAAnQAVpgXTQA4AgwAhUw4GZg6GDwAhMACFoNCR1aHQBdEw1aUhMy
Qldakg0qFn8BWjUAVFoIIVygCI8YP39/EhRcNSpcIC0TQBhCCKANG1wZFH8WFDUgN09cFx4zoMZc
c8fGCBNc/w8ADVxWSR0TzVxDMjdUXD2mIiISErgSfy4aBaAECS0DVwt/SgEb7lcdG11XYX8wV1er
V74sMUUBBIYRTa6kIeav4RU8ECNKnCinosWLGC/iycixo8ePGauIHEmypMmTKFOi3MKypcuXMF3C
sfHnwApLB7Qo+LMzwZZSBgz8UTHHkoMDLv5Q2KLkz4wtU/5sAPBHjCRJaVAwuCrpQok/JG7+idH0
jwOlO4NKlZQARgAUf7Sc/XNEy58EhkrwAPKnhq4/IpTM1eIiQQIXpeImMKVlwQGzMWCYqsGFrx1l
FXIeQyPj7twDM0ydpZHhD41SLsjE+IMiyAVTXBQ8dkDBC/8XFhTKOeAi4o+PHKaO/NXBJXQMLitM
nVFw9kDkyVwm/FmgjMvE69iza8cOsrv3799Vih9P3uQWUqYYvM4B5k+FLX9WwD/A0hQcBulfi9hC
5E8aLY9tQdVLO/wxgktaYLDTH+oBxsBjEYgQgFn10XfWGFtAAMEWTgTYRjx2xaXFAFqY8ccJWtwB
T1wLiEGXFkIFwEFNkpyFRmO9YcIYVx+YAgZXTnRgigB2HdBGBaxJuIsWXAQ4oQ9awGFWjSJqYYEF
WuDHwBaPFaFFbwsskMIfoJQTABkrgpIjFwusFgAXKpBZ3XZ01mnnnRuBp+ee4JXnp0k61CSHGn8Q
gMAfOaT/4EEV8MSwRRV/RFDFoUVUIQCDkKJQRXs1AYDBS6b8AdNOPmyh5RYR/HEBU9NVCF8EW7zx
BxP1jaDFCH84IaUELoW2AEt3/OEBSwFuQQMJW8zo6BaWtNSfFhOSyFVnf6jBVSY06qcFcFu5AZgk
jGmpxaUcgCtisEHcmqsWcEnyGLg5AXjulFo8K0lvF7gIwLWS5OHvvwAHnAeeBBeMJ58IJ9wnSro0
UcUJf2AB3AUjuVnFhBVU4cMfV1TRXxUuElEFfhmfZMoIJpHwBxge/yHSLiKdFUAVMwogpQ9VQPBH
EFu8RkCPol66LEs0/EEHSwM9NV99YWxRztHwwdDSY1U8//bDS0KY0sRLQrWxBZJ3wCfqFqv9GqwD
X1e1hRGigmuEJKtdcKmIiMKrxYwigIulFk3NoPdVZ237xyL8Cmz44f8arPjiBivsOJ9UQypB1UZX
oYEOusxQhWRiVIGCpnbwVMUR/DjQWwxVNFDySD5AgIVJSVURrAJVBKqBSEVrvtjFZh2AZAUL9HYC
xH8Q0RSyDdywxWI9sLBFnBQoAB8OW2zQAkuLUaBDoPQYwKVvpsD0GgNVvBRnfRtsUYZULGkguspH
F2vKBhkESgINSyR3wgEoRODAhGjTRRa2oAsJLIF0CVCBFqCngH3gQAMkekwITGEFfmkBcRjMoAYR
t52BMf/ug4t7HEhM4QIWKKAi7jPFA+QgpD+wIAEZqIgpLLFCOSDhLmXIQqhCkAY5kMQOMzMJCf/w
AJHwpQAiAYEpXtiFKpTmD1PQBQ0sBxZI4WAK6zPFDrggh87woApd/MMERPIVMY7EFEOoghIHB8bF
4AcAMeFATELFAiQ86lAvYEkUTFECGKKvPkTcwhofUL27iK0HYuvjp7Zwgz8kQZB/KEEHlifGLbRw
CCyJU2aoFxM9ePKTGwylKEdJShCa8pQZUSIJdIARKWAAIwWIgkVCIwFWWgQLr6zIFgqgpweYxpYV
cQJGrpCOi3xKDluQgki4oMwqYGAkWihAx0TSBIdR83X/I3kDNkVygW2+gSRlQIOJQFAeKgxFBySB
g0liOZLSFLEKF/ChSNQwEi4805kkSUf5WOKErbFkVSxpAhhacoEruOQM8GlATLbwyYY69KEQ9SQp
J0rRihrulBgdwh9+UDA58CWGIrSIdGoQ0pJ+pwDkHEAC/HSoBvyJCgiAwJ9mOh4ogGALO0lJRHfK
05761KEWDWoGr4NBjGbnXQbTGUYtAheTOnWEIxgCBK4AHuDk0juvURVNt4qSCKCgR/FEyR7GStaf
mvWsaDWrUNdKUTyBQ3EeEIBRIeKBINjpqSJkQAWCAAY9KUEEeuKABOqgJ66qJAAVqMAYVELWxjr2
sZDd/0NaJ0vZtLL1spgN2Fw3y9k74fWzoM1IZEdL2sdW9rSorWxmV8tazXb2tbC9a2idWtra2va2
uDVtanfL25229reZja1wh9tZPhj3uLlNrnKXe9veOve5wI1udIlLXdge97rYvS5zt8vd5T73u+BV
q3THS96iVveD2U2veter3e66972jDa985yve8tr3vhMtGHv3y9/++pcP8A2wgJlL3wIbGKj4TfBa
/8vgBjv4wf0dsIQnXNoDW/jC9VWw4frA4Q57+MN9gLCIR0xi/1L4xCiuMIZXzOLUbhjEMI5xh0tM
4xrbWL0pzrGOVdziHh9YxkAOspCBfOMiG5nEO06ykv/H6uMmR3TIUI6ylId85CpbucpLzrKWCUzf
KXv5y2AO84yvTOYyj3jLaE7zcv3A5jb7QcxwjrOco2zmOtu5xGrO84TdzOc++7nNMX7znAdN6ELH
+M6IrrNy96tnCf/50ZCOtKQFHehHG/rSmI5zojfNaSOfeNKgDrWoRw3oTJv61KiWcadXzWoGk/rV
sI61pYEc6VTb+taXbrWuiyzrXvv617LGtbCHLez9TnnXIwa2spfN7GZPmtjQjra0Md1gZ1v72th2
9pdrPe1uexvacQi3uMdN7nKbu9zZTre61/3qb7v73YQ+t7znTe9605vd+M63vmMN734X2t4AD7jA
xb1Q74Ib/ODX9nK7/R3lgTv84RCPOMGzfW6EW/ziGJ+1lEct8Y57/OMg93jGR07ykgM75ChPucpX
znJ7m/zlMJd1y2dO85rb/OY4z7nOd07uQAAAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/WorkArea/images/application/loading_big.gif

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
SrWq1atYs2rdyrWr169gwxZJAAA7

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/assets/images/splash_header.gif

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
0cARCAA7

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_unitedstates.gif?n=4540

R0lGODlhKwAZANUAAGV3q/ijpfzUzczW8HODuIqYwvc0LvczPPv7+6Sy1fpqcpum0+3t7bfG6/el
n/A4H/T09PzV0vZlY/U3Sat4m6254/js24COv//S3/yer/FzZvjMvf/Mytjm+ft0df3o6dKUjvrM
0fVpV52u5O84Nf/88/SWlefIw+s3JPv1/PVDMk9cndVHT//47PFpa/ksM/3X2+1CVPb//ukrH9hq
gPy3vPBWa+n5+OM4PH5JkeYvNZCc0/L78+hwb+jo6P///yH5BAAAAAAALAAAAAArABkAAAb/QAQC
AmEwfMikcslsJo1E4RDxq1qv2Kx2+5tCqNyweDuEVAedgVqdXqsFmwgGFqnb7/iIwFItVgEEKwUr
OysXAISEOSQGD44GkJGSkwYHGVVGfxcLmzsFBZudBCABGaYOAamqq6wOEZg+fxUJFSMJCxUFO7cV
Kw6/JqisrasmAlVIVYQjFw07IwUjzCMLOTEvLxMqBwck3N7d39zdMQHIsT8AzAkFFRe5BewJABsc
MCEwAnn7dRt8P8l+EKpAYACABBc2EXCXQ4MICQo0KJhIsaJFBR5qnKtCYMHCZgDcXWBWIQcLEt5Q
UFoZiYU5gOgMNVjRAYCzAg0uDCAAoEQK/hkywIyp0qLExh8jd+wccOFWMwI+ctDwIEGEiItYK2qE
WSUhgB0AChC4IHYBgAUUpnpw4UGD27dw42oAceLohxRdEKSgsheCjBs8ShQtYXRoFwstjrLAQULF
AxQoVMxQoZLyDBI6JkxwxLmzZ0cxLnH90UOBBAlsFYigqsAFWw+ts8puvTXghj34QtTRHQIfh99x
NsDAQLy48eN7juJ4ccAAiRmQSKhEyZjEBG+fs3M+8NIHgyqlMvwK8Ku8+fPoUaUPcOxHph+3Bcif
T7++/fv1OXzAZOaHDR3MjSPggAQWSKBLfXxh2IJheCEUgxB28YUQRBjhxIUYKgHFhEEAADs=

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_canada.gif?n=8453

R0lGODlhKwAZANUAAPprcvQ2QvH++/y2s+3t7f706vvKx+j++/78/f7QzfT09PVIWPA2Kek4Jv3+
8eU6O+CTlfNBNP71+/VdafM4NP3o5f7X3P718/g1Lf7/+fouFei4wO80Nfvk0PkrJ/r//v/6/vr6
+vNxgvI6LO/Qz/idoP/5+eJxcPU6OfQzO/X68/0zO/f++//r9fP0+vorOv4xMd88KekqPt5OWPo9
Rvw6Mtv/+Pf7/vI2JP0vIfEuJdZYY/M1L+jo6PM1Lv///yH5BAAAAAAALAAAAAArABkAAAb/QERI
oSAQesikcslsJo3EkFCB+Fmv2Kx2y/0Nv92wuIsgWgMYBgXDQTVSiRsiYxJIPioEaA9C2H4OIjyD
PD4+hFZFZ2kUPhRuAQkCCBIHNzcODhssBywSCHYOAIaGhaRWRotqDBw8DJECH5UtPwUDCwUOF3oS
ICoAhISnP0eqFBEoMAwrkh8ILggbtyklJRYIsh8OJ4ek3T5WSMYNFMpwk3UsJQsUMSsBFQ4CsRfc
poWm4T2qPA0MMCM4JPjQwkEFCx1eNIjhYYEDEip+XCggSFgpcD/E/UCjJkINgBwMXCAxoMSEDjQi
6EAxwcCOAQN6OJjg7SIPfcZG6MgRgUIC/wkbHiyQAaDBCAwwACx4MVSFKFL3DOHcyAiHDwwBE2Sw
0CBHjAccYLSpoSHCgwkFDozCZ+rQVI7HKOgY4bPHBhoeknmAEUNHgwYoZNCIs3ZQqUJvq/rwMAJF
AhYXIATwgKFrhBgjNOiYMMCFgBNtuw1KrKYx1pACLji4FSOGhhoNIngQYaCOAmD32JKmYHrE4Emq
S6SIoHJFChQGOrmQMKrmoZsZ91FV4yhFA9Q/QG04AWHAjBIiRFSwkeEGC27Pa+4OyGPEORAsBJhQ
TdFBhgIIDmAzgfu5YegawRUQCgy8YAALenACwiUiOPBBBix8cMENGdgT2mgZEWDFAyvAgIRBDkfB
8IABELJwww8SmEACBATMgY159eAg44wzoqLhDzsEwMEDFDzwQAAz1IaACiciYMINPYCQQQbZhSBA
C5IFIOWUUqKigBUGGJDAliQkkOUFJn7wwQ94kKnCg3r8IIADW7bpZgKJKBDCGHTWWcYQVdSp5xZf
TFHEEU4EKugTBESBQBAAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_brazil.gif?n=5824

R0lGODlhKwAZANUAABlipvf391e5WACzWP74AwGrZgC0dcnqEQCyYQhevl6RhQCrV3XKNJPXt5Sq
X+3t7fHxLkZtmQCyaZWn2Ta2Sx+vOJDaMYuppVCYxxWRjPj1FjN/tsDAWujrBPvuAQCrddHnVMja
D8rmKczYM6rTE2jCVVW/MLThOwGqSKLWNQC0QAC4YUp4ygKvjOz1AfD1FurbOwC6aTamm9/mFxSq
XRCrThivbxufYp/fHy2CZwC/PV7Em/7vE0Gsb+jo6P///yH5BAAAAAAALAAAAAArABkAAAb/wF9g
+Hj4jsikcslEFocB4fBHrVqv2KxWOt16v1sotWGjIRaFT6EgYQ/WLVTBECugBmqV7tNet+s2VAEP
YxILA2gGBggrAwMIKggILSYHByYGKx+SOo4IEm0DKwsSVEWFMTErjJKONKsFAiQeBAQdJD0qMRIf
j6ASkqmlP0ZjBQgGhoe/ki0MMx4QDg4wHgclaoqKZ2jHBVRHxghqdyuKBQM9JB0zChsRERsKIRA4
FGsfdANym98/4T8aHJPQaEAyFBUYhCDQLkECAAAcztMQgkEFFAhUrZCwyB9AgStgGfhAw4SFFx5e
gMghYwMLFg4TKOBhywKFBfkWMFrh0Uch/wQFeC6g8EyDCw8aLmTIIEMG0w0AIozQkPKARVKrPoHz
GRCYCkUUUrwg4MEDDxcsIG7IAGDH0gQhytJ6YU+Rr62FJKjgKEBErbIQNADYkGCDy7UtMoigSkvD
CQqf7v7j2gCYBEQ1KOBASYAHjwgYXLKY8BDDBRCdGVoQUOPOpmEfgX26PIBoXLIXNmCIx8LwhAlU
CVQ084iN1sk/B/D6sEIFClkdCIiI0Hvw7wscGNpLtGjc8ditgMpuY8IvhwgRAbC44IBdCVCfkjka
iLerpDWP8hmUoBnCDAcKKODACB2kQMEHzCHTSCjfUWZZH43gdJkdDBxQC1kdCHCGI4cgombTJ98R
EtACjSDwyImzfVJAWBBAYOAxksj2SHijmCKiQLP9wowjqyxQgQkmVKBTSL7oyIw/D0QRUA83KMJR
Mk4eYo6TU2biizZPcnRDD4J0AcaXYEChJJhkZiEGFEU0oeaaSTwxRRAAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_unitedkingdom.gif?n=822

R0lGODlhKwAZANUAAKGt1E9gpvqrqXOHt+W7yeiOmPVwcPv7+zROrM3U8ubY5vk2K/NNUPc2NtXl
9fCinPI5RfozF+zs7ImZwPnX1f316fTq2Pu7uvT09PzO1vyepP7Jx+47NOv0/ulEHf/i4ffYx7nB
1zRpqTdNmOPm/Pno+9vK2BNhmv72/O01KOh5gf7+9RtQqfVXXjllkPgtO/D+/v0wJ/GGh9hFUfj+
9OstIuzWxu/x/u8vOOA4HOFCO298sP3w8xVFkOjo6P///yH5BAAAAAAALAAAAAArABkAAAb/wMMB
g5FIfMikcslsJo1E4fDwq1qv2Kx2+5tiqNyweDvEVAmY1e8WGuzeA/duElIYDKqNKe6Ow0MwAjIq
BVVFVToQAhU0KyUTIyMILAgIIwAZEDkeGgqTlZUiEyQXDBwtFyhVRmcGDRAaPDAYNwMiPZMsABQQ
HDEaDiM9IpQTChctEKgWBw6rPlUumAYxDA8YNCgkkJEACikLLxoJliMTDhsMEQwXNAcdAC5VSFWU
IgAmrtYVZtvSGQtycBh3YhSyF6ho0IAXINI8aD8oVQoAYIOBBToEfDgAg4QCChE8DMRwjAHCCxUO
8AAQwMWkAA+rAJhJM4QPG3cKUPgBAwXA/wULNFR4cAdlIx8haNKM+YOC0w02KGTI8GEDBRsgQGTY
ICBGjQUyQGzYAEIqWRtTFUydylRHhAgcGsRowKEGBwgvGkRIoaMBDh1AIeCImwKH4F4p3i6oMYPp
4BQN5C7gkMNrhBgxXqTwgCNFjAXg5oL2i3hBBLopmM5YbLcujsgMdOhIAQFv3Ml3G7x4AUHv2xih
vzIV8ECAhuPGNTw4rry4DL8pDDQXQLz4dOrGmZpwkCABdwdpKqz4QFyA1cg6HvA4QMPCg/cbeJDo
3t2BCaYuejR0cQ4GzwfqGEDAB99MpoE2B4xXQC8yEDCBJZbA9AM9P/TAgjkKdEDDBxr0ZrTABQDc
A1AMA5lA0Q0orGDBcy+o4GAAuOA3iiruzQCBgCFSAoANeqVA0An3kPDDChTI4IuLE0jogwRVkIDC
Ae6ZZMAGLIGCACY6UDZOJZJQ1AEMCkZQg4urMPkDCiUI0FuDIVqJAEUKvDWQArhYSREJMGxYwAyN
/SCBGRPKgMcFJkwghxw7DBACBXeocIECfCQqhzFd8JCBBoZ8McamnHoBBqegZjGFEEQY4cSpqCoB
xRcHBAEAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_france.gif?n=906

R0lGODlhKwAZANUAAPzZ2S1RqDJKl3aEtvMzK/T09PRMVf347MnT5/z8/Ow4K7jG3zNKovM2MO3t
7TRRo/JnavpqdfiNmO0xHCpMpTVTtB48mv7+8e04MyhUsnR9tvozNO7d2/Vwd+dtcjVMsCpPtfQ6
NPksLvo1POM8I9Ta9PVyb//++fExKPg0LvwvN8fW8P7w5vs0IvE8K/338+5wecbP+vI0Of04L/c3
M/r6+v/t8CNOmvBrbvz////2+//5/v7+/unp6ejo6P///yH5BAAAAAAALAAAAAArABkAAAb/wESt
UHA4er6kcslsOn09I7EmLCR+2Kx2y+16f8NEofYtm7/iArY0aA807rYG8eN5AZKIPgLr6DswEjpY
RVgxHwwMAhQMFYoMFgt1dwYTChsNIS4iBCgYHixYRlgrAh8VDwEUp42RFy92WzkclS4pGxMTLi0u
BDihP0d2CKYBNwEBFQEPIK4nsVqzlSQyIy4kLhMkIhAHdT09dqWnyBkgNw8ZkSc60FoABi0K1QoK
IyIYKhCDPODDDMg+PLiRgQKzSJO6wENBowGBBgpSNCTQ7Vu4HwgABhBIIcOyAAjdvTOAAtPDiA0c
Vux3MWPABx2XNZP0ZeFEiClSUvTG8t/L7wAeU4WkxNAhzokr/WHUKJCgzKEKSd5EqZKnUpcbUwUF
KUlkFptGqe606DNrzINdiU6VWJXs0p9boXKBR2AtUqstH3xYJiAZswcId3j9AU9bSRc0ZNBQMANC
qJ4/VjAAUaGyuVQVEMKKigLxBhSeMCig+FhpKVUUVHn0iPBCFx60ON2SGIIGDX0vvjnAQuxjKmPm
WnuVJiIEBgy9JmSSgcNbsN0/YsBk8OFD6lSKJJ2gJGKDDIczaHhnDsyBmh9s5MBxo2HOFx54IHTo
4MGECRx8Ajmfcqa/fzFh+CegF2FUUcQRTySoYBJRmDdGAkEAADs=

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_germany.gif?n=2950

R0lGODlhKwAZANUAANB0hfU1MpmOk9ctKu4vJf/+APv95wgJCPr6+lcQCPzxAP/AE//xAPY7N/Bq
ZlBISPn0W/ozJfJUK/Y7OPv89fv08/28Dv/0+fb88/70APf0A/E2G+taGv7uA/z8/O7u7vM4L/00
Lf7zBZqbnv7yAfb29vLy8uvr67U5Q2oNEfo1Qvzs7vz0CFphX+uWT/w7O/FnC/ryAoZWXfjEWf7t
EIOLivX2HBAiHdoqNQMAAv/vAP3zAOnp6ejo6AAAAP///yH5BAAAAAAALAAAAAArABkAAAb/QA+i
ZPqceL2kcslsOnu808dUQgirv6x2y+16v7+hGEwug4emrGckaLvf8Lg8XssW7a2Dfs/v+/9+N1lG
dg8+h4iJiouMiTk+B1lHWQiGOZeYmZqbnJiQkT88PFklD52nqJ1ZolkVho2wsYiZq6M/FTIJuru8
vb6/vSkptYMAA8fIycrLzMo4KMQ/FwANDRPV1tXX19rYE9vZ1twgGwET0RcOAevs7e7v8OzkICHo
DhH4+fr7/P35Ki8C1Atlq4QDAggTKlzIsGFCHAEIbIhGwYWEixgzatzIMSMHDjAozlhAsqTJkyhT
mrTAkiKEAjBjypxJs6bMHRk6RMMAQYfPYZ8+GTAASvSn0KFGGWjQkEHDqhNZDEDYQbUq1QxWs2bF
qlUEjQ4xJH2ICkGB2bNo06pde9YnCac/ppCNcbSu3bt47WYQwcKGHSxmAgcWA1iw4S5irhQ58qSx
4yRRplTxEAQAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/uploadedImages/Content/flag_southafrica.gif?n=7853

R0lGODlhKwAZANUAAA9vRPZRTWOQLgFpOi9Rq/f396CsGsbN5PLHyFJqsvU0M1yggvV0gvQzJwMD
BO3t7bTXxvmgpFmekDRMmytzR5SvmrLLp77IGkV7InGeiPfvDNnlEbuoYGhkan6Trw9fP1SMdNHh
8/UuGwNrWvI5RO33iec6H+w6Nd7SBuf2+vkvN/fr5c/g3PwsJe4aHzQtB7a63+fx7v/v+/716XmA
tOBHJvjZ13ionxxqVYF2ACJJjChKpkFZq9cdIejo6P///yH5BAAAAAAALAAAAAArABkAAAb/wF9h
+Hj4jsikcslEFocF4fBHrVqv2KxWOt16v1sotfKh4HAQGYOkUrVOCoUqTq/bFST2icSgFh5UNB8A
hBQVBRFsCiYnLQ0Kj5GQkJKPcScnfT9FVBYYAwMAZyAsKwE9eSeWd6yqIiYqmkZUJRsCHyMjOBQg
EA8RKi6YrMQ1DSY1CppHVBwGGgY4hAADODcrCAEiIg3d3A3f4OIibq8tyz5UHS85GhefACNlpDYM
Aff4+fr76OoODjlQ2Ip3ZgAICzYQKFzIsKFDG1SY/ejwz8GLZwbMEBpAYYGEjyBDigS5oGSFiOkm
VrQY8B2FaSNAyZxJE9SHDzZBoPS38gUK6w0CCJ6RNq2oUUK7CH3IsFNlxYsoMk7DebOq1as3Z37Q
+UMiRZYCg46YRkFCybNo06KVkCHDya4pKV50hyFXTAC9WBzYy7ev378hmq4zsCHaWAqIF4QIQSOB
48eQI0v20JTDz7q6qFGwUAAGjx0TdogeTbr0BAKiJ9BoWsIAhnjyeC2mMeE0AdS3d+Tejfu0bgKr
uwL6QQZXoQopDnwWfbu58+fQUQfn9CODNBwfBEBI4UHHbwI6oot/vmN6lOofdmWIcSDBhPA8etee
T79+bQKnVfvpAqY/GCjn+SdgFmJAUUQTCCaYxBNTBAEAOw==

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.alexanderproudfoot.com/assets/images/bkg_splash_bottom.gif

R0lGODlh4QMXANUAAOnPieLi4vjBK7KKH/vDK93d3fn5+ei0KO65Kenp6auFHvK8KsueI+viyuXl
5dGiJPHx8fC6KeazKPf399TU1Ovr6+OwJ/Ly8u7t6c7Oztra2t6sJu7dsvW+KtjY2NHR0eCuJ9qp
Juq2KMaZItWlJaB8HPa/Kr6TIfLitcKWIaSAHP/GLP7FLPz8/P3ELO/v7/zEK/X19f39/ffAK/S9
Kuy3Ke7u7ufn59fX1/v7++Dg4PT09Pj4+P7+/szMzP///yH5BAAAAAAALAAAAADhAxcAAAb/QFrk
YNkAfsikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/otHrNbrvf8DiaE7IcIjRBJyIqHuWAgYKD
hIWGh4iJiouMjY6PkHMbFiJ4egs1EhZ/kZ2en6ChoqOkpaanqKlZHBsSNQsdAiYLCEQcqri5uru8
vb6/wMHCSCh2CAsmAgJCNSKcw9DR0tPU1dbX2IcoEpU0MwSXfM/Z5OXm5+jp6uuNACLHsQQEMzSY
Iijs+fr7/P3+/9UwWKiBZ4YAebKYbWoAsKHDhxAjSpwIpgEABndoxIOBsIMQCw9OlCigwQMOCh8+
ZFjpo6XLlzBjypxJs6bNmzhz6tzJs6fP/59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1ZgrM6Sk
QMGDhgI6SpwgcQCWMgIuOCrzKCJEChUOAugoQLIkjrt48+rdy7ev37+AAwseTLiw4cOIEytezLix
48eQI0ueTLmy5cuYM2vezLmz58+g/3r9CjaAgxsqUoQQ0cEgARguXCDUg2DDCBUVEtxwEDeAXB3A
gwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo0x/3bfp0ggQ2VIzY
gOAsWhYsZIMTEMG2Aggv2FBBbu+9d8OBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26P/hhyCG
KOKIJJZo4okopqjiiiy26OKLMC5Y4HsD2mDDCxAowAAICxz0Gn74pSXPAhYwoMAOFyQJAYAvNGnj
k1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedUzbZ5JIQ
JLlDDDpaQMNrsQEZJAwwdFCkAjxM4GgMkMaww6SUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq
6qqsturqq7DGKuustNZq66245qrrrrxuGmkMjk7AAw8DMGBBB7AZqqwLJkjAwAA55GDAtNMOa+21
2Gar7bbcduvtt+CGK+645JZr7rnopqv/7rrstuvuu/DGK++89NZr77345qvvvvz26y+41E4bbQ4D
PCCBCcquoLChM0jwwAAyRNzCxBS3MPDFGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs
88w012zzzTjnrPPOPPfsM8cVUxxxxAVLMIOhCieddMMP9+D001BHLfXUVFdt9dVYZ6311lx37fXX
YIct9thkl2322WinrfbabLft9ttwxy333HTXbffdZxctgNJ8Jy3AAQ9TJPjghBdu+OHSFHzA3n3z
/XfgiEcu+eSUV275G4oz3rjfgA9w+eeghy766JZnvrnSj3tO+uqst+766+SYfrrCqcNuGPvtuOeu
uyeyz1777sAHL/zwxIfRe9JBAAA7

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/styles/reset.css

HTML {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
BODY {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DIV {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
SPAN {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
APPLET {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
OBJECT {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
IFRAME {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H1 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H2 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H3 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H4 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H5 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
H6 {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
P {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
BLOCKQUOTE {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
PRE {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
A {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
ABBR {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
ACRONYM {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
ADDRESS {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
BIG {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
CITE {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
CODE {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DEL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DFN {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
EM {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
FONT {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
IMG {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
INS {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
KBD {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
Q {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
S {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
SAMP {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
SMALL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
STRIKE {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
STRONG {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
SUB {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
SUP {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
TT {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
VAR {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
B {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
U {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
I {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
CENTER {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DT {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
DD {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
OL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
UL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
LI {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
FIELDSET {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
FORM {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
LABEL {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
LEGEND {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
CAPTION {
	BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: =
0px; FONT-SIZE: 100%; BACKGROUND: 0px 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; VERTICAL-ALIGN: baseline; BORDER-LEFT: 0px; PADDING-TOP: 0px; =
BORDER-BOTTOM: 0px; outline-color: -moz-use-text-color; outline-style: =
none; outline-width: 0
}
BODY {
	LINE-HEIGHT: 1
}
OL {
	LIST-STYLE: none none outside
}
UL {
	LIST-STYLE: none none outside
}
BLOCKQUOTE {
	quotes: none
}
Q {
	quotes: none
}
BLOCKQUOTE:unknown {
	content: none
}
BLOCKQUOTE:unknown {
	content: none
}
Q:unknown {
	content: none
}
Q:unknown {
	content: none
}
:focus {
	outline-color: -moz-use-text-color; outline-style: none; outline-width: =
0
}
INS {
	TEXT-DECORATION: none
}
DEL {
	TEXT-DECORATION: line-through
}
TABLE {
	BORDER-COLLAPSE: collapse; border-spacing: 0
}
TBODY {
=09
}
TFOOT {
=09
}
THEAD {
=09
}
TR {
=09
}
TH {
=09
}
TD {
=09
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/styles/superfish.css

.sf-menu {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.sf-menu * {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.sf-menu {
	LINE-HEIGHT: 1
}
.sf-menu UL {
	WIDTH: 10em; POSITION: absolute; TOP: -999em
}
.sf-menu UL LI {
	WIDTH: 100%
}
.sf-menu LI:hover {
	VISIBILITY: inherit
}
.sf-menu LI {
	FLOAT: left; POSITION: relative
}
.sf-menu A {
	DISPLAY: block; POSITION: relative
}
.sf-menu LI:hover UL {
	Z-INDEX: 9999; LEFT: 0px; TOP: 2.5em
}
.sf-menu LI.sfHover UL {
	Z-INDEX: 9999; LEFT: 0px; TOP: 2.5em
}
UL.sf-menu LI:hover LI UL {
	TOP: -999em
}
UL.sf-menu LI.sfHover LI UL {
	TOP: -999em
}
UL.sf-menu LI LI:hover UL {
	LEFT: 10em; TOP: 0px
}
UL.sf-menu LI LI.sfHover UL {
	LEFT: 10em; TOP: 0px
}
UL.sf-menu LI LI:hover LI UL {
	TOP: -999em
}
UL.sf-menu LI LI.sfHover LI UL {
	TOP: -999em
}
UL.sf-menu LI LI LI:hover UL {
	LEFT: 10em; TOP: 0px
}
UL.sf-menu LI LI LI.sfHover UL {
	LEFT: 10em; TOP: 0px
}
.sf-menu {
	FLOAT: left
}
.sf-menu A {
	TEXT-DECORATION: none
}
.sf-menu A {
=09
}
.sf-menu A:visited {
=09
}
.sf-menu LI {
	BACKGROUND: #ffffff
}
.sf-menu LI LI {
	BACKGROUND: #ffffff
}
.sf-menu LI LI LI {
	BACKGROUND: #ffffff
}
.sf-menu LI:hover {
	BACKGROUND: #ffffff; outline: 0
}
.sf-menu LI.sfHover {
	BACKGROUND: #ffffff; outline: 0
}
.sf-menu A:focus {
	BACKGROUND: #ffffff; outline: 0
}
.sf-menu A:hover {
	BACKGROUND: #ffffff; outline: 0
}
.sf-menu A:active {
	BACKGROUND: #ffffff; outline: 0
}
.sf-menu A.sf-with-ul {
	MIN-WIDTH: 1px
}
.sf-sub-indicator {
	DISPLAY: block; RIGHT: 0.75em; BACKGROUND: =
url(../images/arrows-ffffff.png) no-repeat -10px -100px; OVERFLOW: =
hidden; WIDTH: 10px; TEXT-INDENT: -999em; POSITION: absolute; TOP: =
1.05em; HEIGHT: 10px
}
A > .sf-sub-indicator {
	BACKGROUND-POSITION: 0px -100px; TOP: 0.8em
}
A:focus > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px -100px
}
A:hover > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px -100px
}
A:active > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px -100px
}
LI:hover > A > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px -100px
}
LI.sfHover > A > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px -100px
}
.sf-menu UL .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-menu UL A > .sf-sub-indicator {
	BACKGROUND-POSITION: 0px 0px
}
.sf-menu UL A:focus > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-menu UL A:hover > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-menu UL A:active > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-menu UL LI:hover > A > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-menu UL LI.sfHover > A > .sf-sub-indicator {
	BACKGROUND-POSITION: -10px 0px
}
.sf-shadow UL {
	BACKGROUND: url(../images/shadow.png) no-repeat right bottom
}
.sf-shadow UL.sf-shadow-off {
	BACKGROUND: none transparent scroll repeat 0% 0%
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/styles/global.css

BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 75%; BACKGROUND: =
#ffc62c; PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: #333333; LINE-HEIGHT: =
18px; PADDING-TOP: 0px; FONT-FAMILY: Arial,Helvetica,sans-serif
}
.floatRight {
	FLOAT: right; MARGIN: 0px 0px 15px 15px
}
.floatLeft {
	FLOAT: left; MARGIN: 0px 15px 15px 0px
}
A {
	COLOR: #ff4e00; TEXT-DECORATION: none
}
A:hover {
	TEXT-DECORATION: underline
}
P {
	PADDING-BOTTOM: 18px
}
#pg {
	BACKGROUND: url(../images/bkg_body.gif) #ffffff repeat-y center top; =
MARGIN: 0px auto; WIDTH: 993px; POSITION: relative
}
.inner {
	MARGIN-LEFT: 10px
}
#hd {
	BACKGROUND: url(../images/bkg_header.gif) #000000 repeat-x left top; =
WIDTH: 973px; HEIGHT: 113px
}
#hdNav {
	FONT-SIZE: 0.93em; RIGHT: 32px; COLOR: #ffffff; POSITION: absolute; =
TOP: 24px
}
#hdNav A {
	FONT-WEIGHT: bold; COLOR: #ffffff; TEXT-DECORATION: none
}
#hdNav A.ON {
	COLOR: #ffc62c
}
#hdNav A:hover {
	COLOR: #ffc62c
}
#hdTools {
	RIGHT: 31px; POSITION: absolute; TOP: 41px
}
#hdCountry {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND: =
url(../images/bkg_globe.gif) no-repeat left 15px; FLOAT: left; =
PADDING-BOTTOM: 15px; COLOR: #ffc62c; PADDING-TOP: 18px; POSITION: =
relative; HEIGHT: 22px
}
#hdCountry SPAN.ne {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
3px; PADDING-TOP: 3px
}
#hdCountry DIV.ne {
	PADDING-RIGHT: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: normal; BACKGROUND: =
#3f3f3f 0px 0px; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN-LEFT: 5px; =
COLOR: #ffffff; PADDING-TOP: 3px; HEIGHT: 15px
}
#hdCountry A.change {
	PADDING-RIGHT: 10px; DISPLAY: block; FONT-WEIGHT: normal; FONT-SIZE: =
0.95em; RIGHT: 0px; BACKGROUND: url(../images/bullet_hd_change.gif) =
no-repeat right 5px; COLOR: #ff4e00; POSITION: absolute; TOP: -1px; =
TEXT-DECORATION: none
}
#hdSearch {
	FLOAT: left; MARGIN: 18px 0px 0px 32px
}
#hdSearch FIELDSET {
	DISPLAY: inline
}
#hdSearchField {
	BORDER-RIGHT: #dcdcdc 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: =
#dcdcdc 1px solid; PADDING-LEFT: 3px; BACKGROUND: #ffffff; FLOAT: left; =
PADDING-BOTTOM: 3px; BORDER-LEFT: #dcdcdc 1px solid; WIDTH: 184px; =
PADDING-TOP: 3px; BORDER-BOTTOM: #dcdcdc 1px solid; HEIGHT: 15px
}
#hdSearchBtn {
	PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; BACKGROUND: =
#ffc62c; FLOAT: left; PADDING-BOTTOM: 2px; MARGIN-LEFT: 6px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 2px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; HEIGHT: 23px; BORDER-BOTTOM-STYLE: none
}
#outerSplash {
	MIN-HEIGHT: 334px; BACKGROUND: url(../images/bkg_splash_outer.gif) =
no-repeat left 82px; MARGIN-BOTTOM: 175px; WIDTH: 993px
}
#outerSplash DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; MIN-HEIGHT: 200px; BACKGROUND: =
none transparent scroll repeat 0% 0%; FLOAT: left; PADDING-BOTTOM: 0px; =
MARGIN: 13px 0px 0px 109px; WIDTH: 196px; PADDING-TOP: 0px
}
.col4#outerSplash DL {
	MARGIN-LEFT: 45px
}
.col2#outerSplash DL {
	MARGIN-LEFT: 197px
}
.col1#outerSplash DL {
	MARGIN-LEFT: 400px
}
#outerSplash DL.americas {
	BACKGROUND: url(../images/bkg_location_americas.gif) no-repeat center =
34px
}
#outerSplash DL.europe {
	BACKGROUND: url(../images/bkg_location_europe.gif) no-repeat center =
34px
}
#outerSplash DL.africa {
	BACKGROUND: url(../images/bkg_location_africa.gif) no-repeat center =
34px
}
#outerSplash DT {
	CLEAR: both; PADDING-LEFT: 4px; FONT-WEIGHT: normal; FONT-SIZE: 1.25em; =
BACKGROUND: none transparent scroll repeat 0% 0%; VERTICAL-ALIGN: middle
}
#outerSplash DT.title {
	FONT-SIZE: 1.5em; MARGIN-BOTTOM: 40px; COLOR: #ffffff; TEXT-ALIGN: =
center
}
#outerSplash DT A {
	COLOR: #000000; TEXT-DECORATION: none
}
#outerSplash DD {
	PADDING-LEFT: 49px; COLOR: #ff5408
}
#outerSplash DD A {
	COLOR: #ff5408; TEXT-DECORATION: none
}
#outerSplash DT IMG {
	PADDING-RIGHT: 14px; FLOAT: left; MARGIN-BOTTOM: 21px
}
#heroWrap {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 1; PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0px; POSITION: relative
}
#hpHero DIV.ne {
	PADDING-RIGHT: 95px; PADDING-LEFT: 550px; FONT-SIZE: 1.05em; =
PADDING-BOTTOM: 0px; WIDTH: 348px; COLOR: #ffffff; LINE-HEIGHT: 20px; =
PADDING-TOP: 90px; HEIGHT: 223px
}
#hpHero DIV.ne H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: =
2.5em; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: =
0px; PADDING-BOTTOM: 0px; COLOR: #fff; BORDER-TOP-STYLE: none; =
LINE-HEIGHT: 31px; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; POSITION: static; BORDER-BOTTOM-STYLE: none
}
#hpHero DIV.ne H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: =
2.5em; BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: =
0px; PADDING-BOTTOM: 0px; COLOR: #fff; BORDER-TOP-STYLE: none; =
LINE-HEIGHT: 31px; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; POSITION: static; BORDER-BOTTOM-STYLE: none
}
#hpHero DIV.ne H2 {
	FONT-SIZE: 1.7em; PADDING-BOTTOM: 5px
}
#hpHero DIV.ne A {
	PADDING-LEFT: 15px; FONT-WEIGHT: bold; BACKGROUND: =
url(../images/bullet_hero.png) no-repeat left top
}
#hpHero IMG {
	DISPLAY: none
}
#hpHero DIV.ne {
	DISPLAY: none
}
#hpHero DIV.first {
	DISPLAY: block
}
#heroNav {
	Z-INDEX: 10; RIGHT: 9px; WIDTH: 28px; POSITION: absolute; TOP: 93px
}
#heroNav A {
	CLEAR: both; PADDING-RIGHT: 8px; DISPLAY: block; PADDING-LEFT: 8px; =
FONT-WEIGHT: bold; FONT-SIZE: 1.4em; BACKGROUND: #ffffff; MARGIN-BOTTOM: =
10px; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px; TEXT-ALIGN: =
center
}
#heroNav A:hover {
	BACKGROUND: #ffc62c; TEXT-DECORATION: none
}
#heroNav A.activeSlide {
	BACKGROUND: #ffc62c; TEXT-DECORATION: none
}
#hpLeft {
	FONT-SIZE: 0.96em; FLOAT: left; MARGIN: 16px 32px 0px 22px; WIDTH: =
350px; LINE-HEIGHT: 14px
}
#hpRight {
	FLOAT: left; MARGIN: 6px 0px 10px; WIDTH: 570px
}
#hpLeft A {
	COLOR: #ff4e00
}
#hpLeft DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 15px; BACKGROUND: =
url(../images/bullet.gif) no-repeat left 4px; PADDING-BOTTOM: 12px; =
MARGIN: 3px 0px 8px 20px; WIDTH: 280px; PADDING-TOP: 0px; BORDER-BOTTOM: =
#cccccc 1px solid; HEIGHT: 1%
}
#hpLeft DL.last {
	MARGIN-BOTTOM: 7px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
#hpLeft DT {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: =
none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: =
0px
}
#hpLeft DD {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; BACKGROUND: =
none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: =
0px
}
#hpLeft DT {
	PADDING-RIGHT: 10px
}
#hpLeft DT {
	FONT-WEIGHT: bold
}
#hpLeft P {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 0px
}
#hpWhat {
	PADDING-RIGHT: 18px; PADDING-LEFT: 27px; MIN-HEIGHT: 151px; BACKGROUND: =
url(../images/bkg_hpWhat_top.gif) no-repeat left top; MARGIN-BOTTOM: =
13px; PADDING-BOTTOM: 18px; WIDTH: 525px; COLOR: #ffffff; PADDING-TOP: =
40px
}
#hpWhatWrap {
	BACKGROUND: url(../images/bkg_hpWhat_bottom.gif) no-repeat left bottom
}
#hpWhat H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2.79em; BACKGROUND: =
none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: 0px; =
PADDING-BOTTOM: 8px; COLOR: #ffc62c; BORDER-TOP-STYLE: none; =
PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; =
POSITION: static; BORDER-BOTTOM-STYLE: none
}
#hpWhat DIV.ne {
	WIDTH: 230px
}
#hpWhat P {
	PADDING-BOTTOM: 33px
}
#hpWhat STRONG {
	COLOR: #ffc62c
}
.hpBox {
	FONT-SIZE: 0.95em; MIN-HEIGHT: 255px; BACKGROUND: =
url(../images/bkg_hpbox.jpg) no-repeat left bottom; FLOAT: left; WIDTH: =
285px; COLOR: #050505; LINE-HEIGHT: 13px
}
.hpBox DIV.ne {
	PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 15px; =
PADDING-TOP: 25px
}
H1 {
	BORDER-RIGHT: #e2e2e2 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: =
#e2e2e2 1px solid; PADDING-LEFT: 22px; FONT-WEIGHT: normal; FONT-SIZE: =
1.5em; BACKGROUND: url(../images/bkg_boxtitle.gif) repeat-x left top; =
MARGIN-BOTTOM: 15px; PADDING-BOTTOM: 16px; BORDER-LEFT: #e2e2e2 1px =
solid; COLOR: #000000; PADDING-TOP: 16px; BORDER-BOTTOM: #e2e2e2 1px =
solid; POSITION: relative
}
.rightCol H1 {
	FONT-SIZE: 1.4em
}
.leftCol H1 {
	FONT-SIZE: 1.4em
}
H1 A {
	FONT-SIZE: 0.6em; RIGHT: 10px; POSITION: absolute; TOP: 24px
}
H1 P {
	PADDING-BOTTOM: 0px
}
#nav {
	BACKGROUND: url(../images/bkg_nav.gif) repeat-x left top; =
MARGIN-BOTTOM: 1px; WIDTH: 973px; HEIGHT: 37px
}
#nav UL.sf-menu {
	Z-INDEX: 999; RIGHT: 0px; POSITION: absolute
}
.sf-menu LI:hover {
	BACKGROUND-COLOR: transparent
}
.sf-menu LI.sfHover {
	BACKGROUND-COLOR: transparent
}
.sf-menu A:focus {
	BACKGROUND-COLOR: transparent
}
.sf-menu A:hover {
	BACKGROUND-COLOR: transparent
}
.sf-menu A:active {
	BACKGROUND-COLOR: transparent
}
.sf-menu LI {
	BACKGROUND-COLOR: transparent
}
#nav LI.top {
	BORDER-RIGHT: #999999 1px solid; PADDING-RIGHT: 20px; PADDING-LEFT: =
20px; FONT-SIZE: 1.25em; FLOAT: left; PADDING-BOTTOM: 7px; MARGIN: 8px =
0px 0px; PADDING-TOP: 7px
}
#nav A {
	FONT-WEIGHT: bold; COLOR: #000000; FONT-FAMILY: Tahoma, Arial
}
#nav A:hover {
	COLOR: #ff4e00; TEXT-DECORATION: none
}
#nav A.ON {
	COLOR: #999999
}
#nav LI.last.top {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#nav UL LI UL {
	PADDING-RIGHT: 20px; MARGIN-TOP: -10px; PADDING-LEFT: 20px; BACKGROUND: =
#ffffff; PADDING-BOTTOM: 0px; WIDTH: 165px; PADDING-TOP: 8px
}
#nav UL LI UL.one {
	WIDTH: 178px
}
#nav UL LI UL LI {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 10px; FONT-WEIGHT: =
bold; FONT-SIZE: 0.8em; BACKGROUND: url(../images/bullet_nav.gif) =
no-repeat left 3px; PADDING-BOTTOM: 10px; PADDING-TOP: 0px
}
#subnav {
	MARGIN: 0px 25px 20px 30px
}
#subnav A {
	FONT-WEIGHT: bold; COLOR: #000000
}
#subnav A:hover {
	COLOR: #ff4e00; TEXT-DECORATION: none
}
#subnav UL LI.ON A {
	COLOR: #ff4e00; TEXT-DECORATION: none
}
#subnav UL LI.ON A {
	COLOR: #999999
}
#subnav UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 12px; BACKGROUND: =
url(../images/bullet_nav.gif) #fff no-repeat left 5px; PADDING-BOTTOM: =
4px; MARGIN: 0px 0px 7px; PADDING-TOP: 0px; BORDER-BOTTOM: #cccccc 1px =
solid
}
#subnav UL LI.ON {
	BACKGROUND: url(../images/bullet_nav_ON.gif) #fff no-repeat left 5px
}
#subnav STRONG {
	DISPLAY: block; FONT-SIZE: 1.65em; PADDING-BOTTOM: 16px; COLOR: #000000
}
#subnav .last {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#subnav UL LI UL LI {
	BORDER-RIGHT: medium none; PADDING-RIGHT: 0px; BORDER-TOP: medium none; =
PADDING-LEFT: 12px; BACKGROUND: url(../images/bullet_doublearrow.gif) =
no-repeat left 6px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: =
medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none
}
#subnav UL LI UL LI A {
	FONT-WEIGHT: normal
}
#subnav UL LI UL LI A.ON {
	FONT-WEIGHT: bold; COLOR: #999999
}
#hpHelpBar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 103px; FONT-WEIGHT: bold; FONT-SIZE: =
1.4em; BACKGROUND: url(../images/bkg_hphelpbar.gif) repeat-x left top; =
PADDING-BOTTOM: 0px; WIDTH: 870px; COLOR: #000000; PADDING-TOP: 14px; =
HEIGHT: 30px
}
#helpBar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 103px; FONT-WEIGHT: bold; FONT-SIZE: =
1.4em; BACKGROUND: url(../images/bkg_hphelpbar.gif) repeat-x left top; =
PADDING-BOTTOM: 0px; WIDTH: 870px; COLOR: #000000; PADDING-TOP: 14px; =
HEIGHT: 30px
}
#hpHelpBar H2 {
	FLOAT: left
}
#helpBar H2 {
	FLOAT: left
}
#helpBar P {
	FLOAT: left
}
#hpHelpBar SPAN.ne {
	FLOAT: left
}
#hpHelpBar SPAN.ne {
	MARGIN-RIGHT: 30px
}
#hpHelpBar H2 {
	MARGIN-RIGHT: 30px
}
#hpHelpBar LABEL {
	MARGIN-RIGHT: 6px
}
#hpHelpBar FIELDSET {
	MARGIN-TOP: -4px; FONT-SIZE: 0.87em; FLOAT: left; COLOR: #ffffff
}
#hpHelpBar SELECT {
	PADDING-RIGHT: 3px; PADDING-LEFT: 3px; BACKGROUND: #ffffff; =
PADDING-BOTTOM: 3px; WIDTH: 180px; BORDER-TOP-STYLE: none; MARGIN-RIGHT: =
20px; PADDING-TOP: 3px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#helpBar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 23px; BACKGROUND: =
url(../images/bkg_helpbar.gif) repeat-x left top; PADDING-BOTTOM: 0px; =
WIDTH: 712px; PADDING-TOP: 29px; HEIGHT: 45px
}
#helpBar H2 {
	FONT-SIZE: 1em; PADDING-TOP: 1px
}
#helpBar P {
	FONT-SIZE: 0.7em; MARGIN: 0px 16px 0px 33px; WIDTH: 325px; COLOR: =
#ffffff; LINE-HEIGHT: 15px
}
#helpBar P.link {
	MARGIN-TOP: 16px; FONT-SIZE: 1em; WIDTH: auto
}
#helpBar A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-SIZE: 1.2em; BACKGROUND: =
url(../images/bullet_helpbar.gif) no-repeat left 3px; PADDING-BOTTOM: =
0px; COLOR: #ffffff; PADDING-TOP: 2px
}
#helpBar A:hover {
	TEXT-DECORATION: none
}
#leftRail {
	MIN-HEIGHT: 150px; BACKGROUND: url(../images/bkg_leftrail.jpg) =
no-repeat left -1px; FLOAT: right; MARGIN: 0px; WIDTH: 238px; =
PADDING-TOP: 55px
}
#rightRail {
	FLOAT: right; MARGIN: 0px; WIDTH: 745px
}
#hero {
	WIDTH: 745px; HEIGHT: 170px
}
#bd {
	FONT-SIZE: 1.02em; MIN-HEIGHT: 250px; MARGIN: 17px 28px 20px 0px
}
H2 {
	FONT-SIZE: 1.45em
}
A.learnLink {
	PADDING-RIGHT: 24px; PADDING-LEFT: 20px; BACKGROUND: =
url(../images/bullet_learnlink.gif) #000000 no-repeat left 2px; FLOAT: =
left; PADDING-BOTTOM: 0px; COLOR: #ffffff; PADDING-TOP: 0px
}
DL.download {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
.box DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
DL.download A {
	PADDING-RIGHT: 22px; BACKGROUND: url(../images/bullet_download.gif) =
no-repeat right top
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 7px; PADDING-TOP: 0px; HEIGHT: 1%
}
DL P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
.rightCol DL P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent =
scroll repeat 0% 0%; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
DT {
	PADDING-LEFT: 22px; FONT-WEIGHT: bold; BACKGROUND: =
url(../images/bullet.gif) no-repeat left 7px
}
.styledList LI {
	PADDING-LEFT: 22px; FONT-WEIGHT: bold; BACKGROUND: =
url(../images/bullet.gif) no-repeat left 7px
}
.styledList {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 0px
}
DT A {
	COLOR: #333
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 22px; PADDING-BOTTOM: 20px; =
PADDING-TOP: 0px
}
.callout {
	PADDING-RIGHT: 25px; PADDING-LEFT: 25px; FONT-SIZE: 1.1em; BACKGROUND: =
url(../images/bkg_cta.jpg) no-repeat left top; MARGIN-BOTTOM: 15px; =
PADDING-BOTTOM: 25px; PADDING-TOP: 25px; HEIGHT: 64px
}
.callout P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: =
545px; PADDING-TOP: 0px
}
.callout IMG {
	FLOAT: right
}
.callout H2 {
	FONT-WEIGHT: normal; FONT-SIZE: 1.3em; PADDING-BOTTOM: 7px
}
#bd DIV.content UL {
	MARGIN-LEFT: 35px; LIST-STYLE-TYPE: square
}
#bd DIV.content FIELDSET SELECT {
	MARGIN-BOTTOM: 20px
}
.bg.box {
	BACKGROUND: url(../images/bkg_box.jpg) repeat-x left top
}
.box H3 {
	FONT-WEIGHT: normal; FONT-SIZE: 1.5em; PADDING-BOTTOM: 10px; COLOR: =
#000000
}
.right {
	FLOAT: right; MARGIN-LEFT: 15px
}
.left {
	FLOAT: left; MARGIN-RIGHT: 20px
}
.leftCol {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 0px 15px 20px; WIDTH: 335px; PADDING-TOP: 0px
}
.rightCol {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 0px 15px 20px; WIDTH: 335px; PADDING-TOP: 0px
}
.box {
	BORDER-RIGHT: #e2e2e2 1px solid; PADDING-RIGHT: 25px; BORDER-TOP: =
#e2e2e2 1px solid; PADDING-LEFT: 25px; MARGIN-BOTTOM: 15px; =
PADDING-BOTTOM: 10px; BORDER-LEFT: #e2e2e2 1px solid; WIDTH: 285px; =
PADDING-TOP: 25px; BORDER-BOTTOM: #e2e2e2 1px solid
}
.omega {
	MARGIN-RIGHT: 0px
}
.alpha {
	MARGIN-LEFT: 0px
}
.poll {
	MARGIN-LEFT: 50px
}
.poll LABEL {
	CLEAR: right; FLOAT: left; PADDING-TOP: 3px
}
.poll INPUT.radio {
	CLEAR: both; FLOAT: left
}
.poll .button {
	CLEAR: both; BORDER-RIGHT: medium none; PADDING-RIGHT: 19px; =
BORDER-TOP: medium none; PADDING-LEFT: 19px; FONT-SIZE: 1.2em; =
BACKGROUND: #ffc62c 0px 0px; PADDING-BOTTOM: 3px; MARGIN: 15px 0px 0px; =
BORDER-LEFT: medium none; PADDING-TOP: 3px; BORDER-BOTTOM: medium none
}
#scroller {
	BORDER-RIGHT: #e2e2e2 1px solid; BORDER-TOP: #e2e2e2 1px solid; FLOAT: =
right; MARGIN-LEFT: 15px; OVERFLOW: hidden; BORDER-LEFT: #e2e2e2 1px =
solid; WIDTH: 263px; BORDER-BOTTOM: #e2e2e2 1px solid; POSITION: =
relative; HEIGHT: 300px
}
#scroller .btnLeft {
	Z-INDEX: 10; LEFT: 0px; POSITION: absolute; TOP: 0px
}
#scroller .btnRight {
	Z-INDEX: 10; RIGHT: 0px; POSITION: absolute; TOP: 0px
}
#scroller DIV.carouselPanel {
	PADDING-RIGHT: 18px; PADDING-LEFT: 18px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#scroller UL {
	VISIBILITY: hidden; MARGIN: 0px; LIST-STYLE-TYPE: none
}
#scroller LI {
	FLOAT: left; WIDTH: 225px; HEIGHT: 300px
}
#articles {
	OVERFLOW: hidden; WIDTH: 400px; POSITION: relative
}
#articleScroll UL {
	VISIBILITY: hidden; MARGIN: 0px; PADDING-TOP: 26px; LIST-STYLE-TYPE: =
none
}
#articleScroll LI {
	FLOAT: left; WIDTH: 400px
}
#articles H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 1.5em; BACKGROUND: =
none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 22px; MARGIN: 0px; =
BORDER-TOP-STYLE: none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; =
BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none
}
#articles H2 {
	FONT-SIZE: 1.15em; PADDING-BOTTOM: 15px
}
#pager {
	BACKGROUND: url(../images/bkg_pagination.jpg) no-repeat left bottom; =
WIDTH: 400px; HEIGHT: 26px
}
#pager A {
	FLOAT: left; WIDTH: 190px
}
#pager A.scrollLeft {
	PADDING-LEFT: 10px; BACKGROUND: url(../images/bullet_scrollLeft.gif) =
no-repeat left 6px
}
#pager A.scrollRight {
	PADDING-RIGHT: 10px; BACKGROUND: url(../images/bullet_scrollRight.gif) =
no-repeat right 6px; TEXT-ALIGN: right
}
#pager P {
	DISPLAY: inline
}
#ft {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0.92em; =
BACKGROUND: url(../images/bkg_footer.jpg) no-repeat 10px top; =
PADDING-BOTTOM: 0px; COLOR: #000000; LINE-HEIGHT: 25px; PADDING-TOP: =
10px; TEXT-ALIGN: center
}
#splash #ft {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
#ft DIV {
	BACKGROUND: url(../images/bkg_pg_bottom.gif) no-repeat left bottom; =
PADDING-BOTTOM: 10px; HEIGHT: 17px
}
#ft A {
	COLOR: #000000; TEXT-DECORATION: none
}
#ft A:hover {
	TEXT-DECORATION: underline
}
IMG {
	VERTICAL-ALIGN: top; -moz-box-orient: vertical
}
A IMG {
=09
}
.clear {
	CLEAR: both; DISPLAY: block; VISIBILITY: hidden; OVERFLOW: hidden; =
WIDTH: 0px; HEIGHT: 0px
}
.clearfix:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0px; VISIBILITY: hidden; WIDTH: =
0px; LINE-HEIGHT: 0; HEIGHT: 0px; content: ' '
}
.clearfix {
	DISPLAY: inline-block
}
* HTML .clearfix {
	HEIGHT: 1%
}
.clearfix {
	DISPLAY: block
}
A.EktronEditorsMenuMarker {
	Z-INDEX: 5; POSITION: absolute
}
BODY DIV.EktronPersonalizationWrapper {
	POSITION: fixed
}
#bd DIV.content UL.CBTabWrapper {
	LIST-STYLE: none none outside; MARGIN-LEFT: 0px
}
#pg DIV.PBViewing {
	FLOAT: none
}
.searchResults DIV {
	DISPLAY: none
}
.searchResults DIV.resultPreview {
	DISPLAY: block
}
#languageUnderConstruction {
	PADDING-RIGHT: 100px; PADDING-LEFT: 100px; FONT-SIZE: 1.3em; =
PADDING-BOTTOM: 100px; PADDING-TOP: 100px; TEXT-ALIGN: center
}
.languageUnderConstruction#outerSplash {
	MIN-HEIGHT: 0px
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/csslib/EktronEditorsMenu.css

A.EktronEditorsMenuMarker {
	PADDING-RIGHT: 0px! important; DISPLAY: block! important; PADDING-LEFT: =
0px! important; PADDING-BOTTOM: 0px! important; MARGIN: 0px; WIDTH: 1em! =
important; PADDING-TOP: 0px! important; HEIGHT: 1em! important; =
TEXT-DECORATION: none! important
}
A.EktronEditorsMenuMarker:hover {
	TEXT-DECORATION: none! important
}
A.EktronEditorsMenuMarker IMG {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; =
PADDING-BOTTOM: 0px! important; MARGIN: 0px; CURSOR: hand! important; =
BORDER-TOP-STYLE: none! important; PADDING-TOP: 0px! important; =
BORDER-RIGHT-STYLE: none! important; BORDER-LEFT-STYLE: none! important; =
BORDER-BOTTOM-STYLE: none! important
}
UL.EktronEditorsMenu {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; =
PADDING-BOTTOM: 0px! important; MARGIN: 0px; BORDER-TOP-STYLE: none! =
important; PADDING-TOP: 0px! important; BORDER-BOTTOM: silver 1px solid; =
FONT-FAMILY: Arial, Sans-Serif! important; BORDER-RIGHT-STYLE: none! =
important; BORDER-LEFT-STYLE: none! important; LIST-STYLE-TYPE: none! =
important; POSITION: absolute! important; BACKGROUND-COLOR: white! =
important; TEXT-ALIGN: left! important
}
UL.EktronEditorsMenuNotLayered {
	MARGIN-BOTTOM: 1em! important; MARGIN-LEFT: 16px! important; WIDTH: =
150px! important; POSITION: static! important
}
UL.EktronEditorsMenu LI {
	BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 0px! important; =
BORDER-TOP: silver 1px solid; PADDING-LEFT: 0px! important; =
PADDING-BOTTOM: 0px! important; MARGIN: 0px 0px -1px; BORDER-LEFT: =
silver 1px solid; PADDING-TOP: 0px! important; BORDER-BOTTOM: silver 1px =
solid; BACKGROUND-COLOR: white! important
}
UL.EktronEditorsMenu LI A {
	PADDING-RIGHT: 0.25em! important; DISPLAY: block! important; =
PADDING-LEFT: 0.25em! important; PADDING-BOTTOM: 0.25em! important; =
MARGIN: 0px; PADDING-TOP: 0.25em! important; TEXT-DECORATION: none! =
important
}
UL.EktronEditorsMenu LI A:hover {
	COLOR: white! important; BACKGROUND-COLOR: silver! important; =
TEXT-DECORATION: none! important
}
UL.EktronEditorsMenu LI A IMG {
	PADDING-RIGHT: 0px! important; PADDING-LEFT: 0px! important; =
PADDING-BOTTOM: 0px! important; MARGIN: 0em 0.25em 0em 0em; WIDTH: 16px! =
important; BORDER-TOP-STYLE: none! important; PADDING-TOP: 0px! =
important; BORDER-RIGHT-STYLE: none! important; BORDER-LEFT-STYLE: none! =
important; HEIGHT: 16px! important; BORDER-BOTTOM-STYLE: none! important
}
UL.EktronEditorsMenu LI A SPAN {
	VISIBILITY: visible! important
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/plugins/modal/ektron.modal.css

.ektronWindow {
	BORDER-RIGHT: #525252 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: =
#525252 1px solid; DISPLAY: none; PADDING-LEFT: 1em; LEFT: 50%; =
PADDING-BOTTOM: 1em; MARGIN-LEFT: -20em; BORDER-LEFT: #525252 1px solid; =
WIDTH: 40em; COLOR: #333; PADDING-TOP: 1em; BORDER-BOTTOM: #525252 1px =
solid; POSITION: fixed; TOP: 25%; BACKGROUND-COLOR: #fff
}
.ektronModalOverlay {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #3f3f3f
}
.ektronModalStandard {
=09
}
DIV.ektronModalStandard {
	BORDER-RIGHT: #525252 1px solid; PADDING-RIGHT: 0em; BORDER-TOP: =
#525252 1px solid; PADDING-LEFT: 0em; BACKGROUND: #e1e7f2; =
PADDING-BOTTOM: 0em; BORDER-LEFT: #525252 1px solid; PADDING-TOP: 0em; =
BORDER-BOTTOM: #525252 1px solid; TOP: 50%
}
DIV.ektronModalStandard {
	FONT-FAMILY: Arial, Verdana, sans-serif
}
INPUT {
	FONT-FAMILY: Arial, Verdana, sans-serif
}
DIV.ektronModalBody TABLE TH {
	FONT-FAMILY: Arial, Verdana, sans-serif
}
DIV.ektronModalBody TABLE TD {
	FONT-FAMILY: Arial, Verdana, sans-serif
}
.ektronModalStandard .ektronModalHeader H3 {
	PADDING-RIGHT: 0.25em; BACKGROUND-POSITION: 0px -2px; PADDING-LEFT: =
0.25em; FONT-SIZE: 1em; BACKGROUND-IMAGE: =
url(../../../images/application/darkblue_gradiant-nm.gif); =
PADDING-BOTTOM: 0.6em; MARGIN: 0px; COLOR: #fff; PADDING-TOP: 0.6em; =
BACKGROUND-REPEAT: repeat-x; POSITION: relative; BACKGROUND-COLOR: =
#3163bd
}
.ektronModalStandard .ektronModalHeader H3 A.ektronModalClose {
	BACKGROUND-POSITION: 0px -23px; DISPLAY: block; RIGHT: 0.25em; =
BACKGROUND-IMAGE: url(../../../images/application/closeButton.gif); =
OVERFLOW: hidden; WIDTH: 21px; TEXT-INDENT: -10000px; BACKGROUND-REPEAT: =
no-repeat; POSITION: absolute; TOP: 0.25em; HEIGHT: 21px; =
BACKGROUND-COLOR: transparent; TEXT-DECORATION: none
}
.ektronModalStandard .ektronModalHeader H3 A.ektronModalClose:hover {
	BACKGROUND-POSITION: -23px 0px
}
.ektronModalStandard DIV.ektronModalBody {
	BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: =
silver 1px solid; PADDING-LEFT: 0.5em; BACKGROUND: #ffffff 0% 50%; =
PADDING-BOTTOM: 0.5em; MARGIN: 1em 0.75em; BORDER-LEFT: silver 1px =
solid; COLOR: #333333; PADDING-TOP: 0.5em; BORDER-BOTTOM: silver 1px =
solid
}
.ektronModalStandard DIV.ektronModalBody TABLE {
	MARGIN: 0px 1.5em
}
.ektronModalStandard DIV.ektronModalBody TABLE TH {
	PADDING-RIGHT: 1em; FONT-SIZE: 12px; PADDING-TOP: 0.25em
}
.ektronModalStandard DIV.ektronModalBody TABLE TH {
	VERTICAL-ALIGN: top
}
DIV.ektronModalBody TABLE TD {
	VERTICAL-ALIGN: top
}
.ektronModalStandard DIV.ektronModalBody FIELDSET {
	CLEAR: both
}
.ektronModalStandard .ektronModalButtonWrapper {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em =
0px 0.25em; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.ektronModalStandard .buttonWrapper {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: =
0px; MARGIN: 1em 0px 0px; WIDTH: 50%; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
none
}
.ektronModalStandard .ektronModalButtonWrapper LI {
	DISPLAY: inline; BACKGROUND-IMAGE: none; BACKGROUND-COLOR: transparent
}
UL.buttonWrapper LI {
	DISPLAY: inline; BACKGROUND-IMAGE: none; BACKGROUND-COLOR: transparent
}
.ektronModalStandard UL.buttonWrapper LI {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; FLOAT: right; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: =
0px
}
.ektronModalStandard A.button {
	BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: silver =
1px solid; DISPLAY: block; PADDING-LEFT: 2.25em; FONT-SIZE: 1em; =
BACKGROUND: #eee no-repeat 0.5em 0.4em; PADDING-BOTTOM: 0.5em; MARGIN: =
0px 0px 0px 0.75em; BORDER-LEFT: silver 1px solid; CURSOR: pointer; =
COLOR: #8f8f8f; LINE-HEIGHT: 100%; PADDING-TOP: 0.5em; BORDER-BOTTOM: =
silver 1px solid; TEXT-DECORATION: none
}
.ektronModalStandard A.button:active {
	COLOR: #8f8f8f
}
.ektronModalStandard A.button:visited {
	COLOR: #8f8f8f
}
.ektronModalStandard A.button:hover {
	TEXT-DECORATION: none
}
.ektronModalStandard A.buttonLeft {
	FLOAT: left
}
.ektronModalStandard A.buttonRight {
	FLOAT: right
}
.ektronModalStandard A.text {
	FONT-SIZE: 0.75em
}
.ektronModalStandard A.cancelButton {
	BACKGROUND-IMAGE: url(../../../images/application/delete.gif)
}
.ektronModalStandard A.okButton {
	BACKGROUND-IMAGE: url(../../../images/application/check.gif)
}
.ektronModalStandard A.nextButton {
	BACKGROUND-POSITION: 0.5em 0.25em; BACKGROUND-IMAGE: =
url(../../../images/application/but_next.gif)
}
.ektronModalStandard A.backButton {
	BACKGROUND-POSITION: -0.1em 0.25em; BACKGROUND-IMAGE: =
url(../../../images/application/but_prev.gif)
}
.ektronModalStandard A.deleteButton {
	BACKGROUND-POSITION: 0.25em 0.1em; BACKGROUND-IMAGE: =
url(../../../images/application/btn_delete-nm.gif); MARGIN-RIGHT: 0.5em
}
.ektronModalStandard A.redHover:hover {
	BORDER-RIGHT: #fbc2c4 1px solid; BORDER-TOP: #fbc2c4 1px solid; =
BORDER-LEFT: #fbc2c4 1px solid; COLOR: #d12f19; BORDER-BOTTOM: #fbc2c4 =
1px solid; BACKGROUND-COLOR: #fbe3e4
}
.ektronModalStandard A.blueHover:hover {
	BORDER-RIGHT: #c2e1ef 1px solid; BORDER-TOP: #c2e1ef 1px solid; =
BORDER-LEFT: #c2e1ef 1px solid; COLOR: #336699; BORDER-BOTTOM: #c2e1ef =
1px solid; BACKGROUND-COLOR: #dff4ff
}
.ektronModalStandard A.greenHover:hover {
	BORDER-RIGHT: #c6d880 1px solid; BORDER-TOP: #c6d880 1px solid; =
BORDER-LEFT: #c6d880 1px solid; COLOR: #529214; BORDER-BOTTOM: #c6d880 =
1px solid; BACKGROUND-COLOR: #e6efc2
}
.ektronModalStandard .messages {
	DISPLAY: block; FONT-SIZE: 1em; MARGIN-BOTTOM: 0.1em; WIDTH: auto
}
.ektronModalStandard .messages SPAN {
	PADDING-RIGHT: 0.5em; BACKGROUND-POSITION: 0.25em 0.5em; DISPLAY: =
block; PADDING-LEFT: 2em; PADDING-BOTTOM: 0.5em; MARGIN: 0.25em; =
PADDING-TOP: 0.5em; BACKGROUND-REPEAT: no-repeat
}
.ektronModalStandard .messages SPAN.wordbreak {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FONT-SIZE: 1px; =
PADDING-BOTTOM: 0px; MARGIN: 0px; OVERFLOW: hidden; WIDTH: 0px; =
TEXT-INDENT: -10000px; PADDING-TOP: 0px
}
.ektronModalStandard .clearfix:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0px; VISIBILITY: hidden; =
HEIGHT: 0px; content: " "
}
.ektronModalStandard .clearfix {
	DISPLAY: inline-block
}
* HTML .ektronModalStandard .clearfix {
	HEIGHT: 1%
}
.ektronModalStandard .clearfix {
	DISPLAY: block
}
* IFRAME.ektronModalIframe {
	Z-INDEX: -1; LEFT: 0px; ; WIDTH: =
expression(this.parentNode.offsetWidth+'px'); POSITION: absolute; TOP: =
0px; ; HEIGHT: expression(this.parentNode.offsetHeight+'px')
}
* HTML .ektronWindow {
	POSITION: absolute; ; TOP: =
expression((document.documentElement.scrollTop || =
document.body.scrollTop) + Math.round(17 * =
(document.documentElement.offsetHeight || document.body.clientHeight) / =
100) + 'px')
}
.EktronAjaxLoading {
	DISPLAY: none
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/PageBuilder/PageControls/Themes/TrueBlue/CSS/PageHost.css

DIV.EktronPersonalizationWrapper {
	Z-INDEX: 9999; LEFT: 0px; WIDTH: 100%; POSITION: absolute; TOP: 0px
}
DIV.EktronPersonalizationWrapper A {
	outline: none
}
DIV.EktronPersonalizationWrapper A:focus {
	-moz-outline-style: none
}
DIV.EktronPersonalizationWrapper .topmenu {
	PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-WEIGHT: bold; FONT-SIZE: =
12px; BACKGROUND-IMAGE: url(../images/ScorpiusTopMenu.gif); =
PADDING-BOTTOM: 4px; MARGIN: 0px; COLOR: #005695; PADDING-TOP: 10px; =
FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #71a9d4; =
align: absmiddle
}
DIV.EktronPersonalizationWrapper .topmenuitem {
	BORDER-RIGHT: transparent 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: =
transparent 1px solid; PADDING-LEFT: 1em; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 1em 0px 0px; BORDER-LEFT: transparent 1px solid; =
PADDING-TOP: 0px; BORDER-BOTTOM: transparent 1px solid
}
DIV.EktronPersonalizationWrapper .topmenu .menuHover {
	BORDER-RIGHT: #87b6d9 1px solid; BORDER-TOP: #87b6d9 1px solid; =
BORDER-LEFT: #87b6d9 1px solid; COLOR: #fff; BACKGROUND-COLOR: #5c8eb3
}
DIV.EktronPersonalizationWrapper .topmenuitem UL {
	Z-INDEX: 99999; POSITION: absolute
}
DIV.EktronPersonalizationWrapper .topmenutext_right {
	FONT-WEIGHT: normal; FLOAT: right; MARGIN: 0px 10px
}
DIV.EktronPersonalizationWrapper .topmenuitem_right {
	FLOAT: right; MARGIN: 0px 25px 0px 7px
}
DIV.EktronPersonalizationWrapper .MenuToggle {
	LEFT: 100%; WIDTH: 12px; POSITION: absolute; TOP: 0px; HEIGHT: 30px
}
DIV.EktronPersonalizationWrapper .MenuOpened {
	RIGHT: 0px; LEFT: auto; POSITION: absolute
}
DIV.EktronPersonalizationWrapper .MenuToggle IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
DIV.EktronPersonalizationWrapper .topmenuitem_right:hover {
	COLOR: #fff
}
UL.dropdown LI A.valid {
	DISPLAY: inline-block; PADDING-LEFT: 24px; BACKGROUND-REPEAT: no-repeat
}
UL.dropdown LI A.invalid {
	DISPLAY: inline-block; PADDING-LEFT: 24px; BACKGROUND-REPEAT: no-repeat
}
#PBNew A {
	BACKGROUND-IMAGE: url(../images/icon_add.png)
}
#PBNew A.invalid {
	BACKGROUND-IMAGE: url(../images/icon_add_off.png)
}
#PBCopy A {
	BACKGROUND-IMAGE: url(../images/icon_saveas.png)
}
#PBCopy A.invalid {
	BACKGROUND-IMAGE: url(../images/icon_saveas_off.png)
}
#PBEdit A {
	BACKGROUND-IMAGE: url(../images/document_published.png)
}
#PBEdit A.invalid {
	BACKGROUND-IMAGE: url(../images/document_published_off.png)
}
#PBSave A {
	BACKGROUND-IMAGE: url(../images/icon_save.png)
}
#PBSave A.invalid {
	BACKGROUND-IMAGE: url(../images/icon_save.png)
}
#PBCheckin A {
	BACKGROUND-IMAGE: url(../images/document_checkin.png)
}
#PBCheckin A.invalid {
	BACKGROUND-IMAGE: url(../images/document_checkin_off.png)
}
#PBPublish A {
	BACKGROUND-IMAGE: url(../images/document_published.png)
}
#PBPublish A.invalid {
	BACKGROUND-IMAGE: url(../images/document_published_off.png)
}
#PBCancel A {
	BACKGROUND-IMAGE: url(../images/icon_remove.png)
}
#PBCancel A.invalid {
	BACKGROUND-IMAGE: url(../images/icon_remove_off.png)
}
#PBProperties A {
	BACKGROUND-IMAGE: url(../images/document_published.png)
}
#PBPreview A {
	BACKGROUND-IMAGE: url(../images/document_published.png)
}
#PBProperties A.invalid {
	BACKGROUND-IMAGE: url(../images/document_published_off.png)
}
#PBPreview A.invalid {
	BACKGROUND-IMAGE: url(../images/document_published_off.png)
}
#PBWorkarea A {
	BACKGROUND-IMAGE: url(../images/toolbox.png)
}
DIV.EktronPersonalizationWrapper .searchbox_alignright {
	BACKGROUND-POSITION: 0px 0px; FLOAT: right; BACKGROUND-IMAGE: =
url(../images/Searchboxbackground.png); MARGIN: -5px 10px 0px; WIDTH: =
210px; BACKGROUND-REPEAT: no-repeat
}
DIV.EktronPersonalizationWrapper .searchbutton {
	FONT-SIZE: 2px; BACKGROUND: url(../images/SearchboxButton.png) =
no-repeat 0px 2px; MARGIN: 0px 12px 0px 0px; WIDTH: 23px; =
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; HEIGHT: 18px; BORDER-BOTTOM-STYLE: none
}
DIV.EktronPersonalizationWrapper .topmenuinputbox {
	FONT-SIZE: 10px; BACKGROUND: none transparent scroll repeat 0% 0%; =
LEFT: 0.25em; WIDTH: 168px; BORDER-TOP-STYLE: none; FONT-FAMILY: Arial, =
Helvetica, sans-serif; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; POSITION: relative; TOP: 0.25em; HEIGHT: 20px; =
BORDER-BOTTOM-STYLE: none
}
DIV.EktronPersonalizationWrapper .clear {
	CLEAR: both; HEIGHT: 0px
}
DIV.EktronPersonalizationWrapper DIV#widgetlistWrapper {
	BORDER-RIGHT: #87b6d9 1px solid; BORDER-TOP: #5c8eb3 1px solid; =
OVERFLOW: hidden; BORDER-LEFT: #87b6d9 1px solid; BORDER-BOTTOM: #5c8eb3 =
1px solid
}
DIV.EktronPersonalizationWrapper A.scrollRight {
	BACKGROUND-POSITION: 4px 43px; MARGIN-TOP: 0px; DISPLAY: block; =
FONT-SIZE: xx-small; Z-INDEX: 10; FLOAT: left; MARGIN-LEFT: -24px; =
WIDTH: 24px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 102px; =
BACKGROUND-COLOR: #5c8eb3; TEXT-DECORATION: none
}
DIV.EktronPersonalizationWrapper A.scrollLeft {
	BACKGROUND-POSITION: 4px 43px; MARGIN-TOP: 0px; DISPLAY: block; =
FONT-SIZE: xx-small; Z-INDEX: 10; FLOAT: left; MARGIN-LEFT: -24px; =
WIDTH: 24px; BACKGROUND-REPEAT: no-repeat; HEIGHT: 102px; =
BACKGROUND-COLOR: #5c8eb3; TEXT-DECORATION: none
}
DIV.EktronPersonalizationWrapper A.scrollRight {
	BACKGROUND-IMAGE: url(../images/icon_arrow_back_off.png)
}
DIV.EktronPersonalizationWrapper A.scrollRight:hover {
	BACKGROUND-IMAGE: url(../images/icon_arrow_back_on.png)
}
DIV.EktronPersonalizationWrapper A.scrollLeft {
	RIGHT: 1px; BACKGROUND-IMAGE: =
url(../images/icon_arrow_forward_off.png); MARGIN-LEFT: 0px; POSITION: =
absolute; TOP: 31px
}
DIV.EktronPersonalizationWrapper A.scrollLeft:hover {
	BACKGROUND-IMAGE: url(../images/icon_arrow_forward_on.png)
}
DIV.EktronPersonalizationWrapper .controldashboard {
	BORDER-RIGHT: #5c8eb3 1px solid; PADDING-RIGHT: 24px; BORDER-TOP: =
#5c8eb3 1px solid; DISPLAY: none; PADDING-LEFT: 24px; PADDING-BOTTOM: =
0px; MARGIN: 0px auto; OVERFLOW: hidden; BORDER-LEFT: #5c8eb3 1px solid; =
PADDING-TOP: 0px; BORDER-BOTTOM: #5c8eb3 1px solid; HEIGHT: 100px; =
BACKGROUND-COLOR: #d3e2f4
}
DIV.EktronPersonalizationWrapper .controldashboardbottom {
	Z-INDEX: 10000; HEIGHT: 5px; BACKGROUND-COLOR: #bed5eb
}
DIV.EktronPersonalizationWrapper .pullchain {
	BACKGROUND-POSITION: 0px 0px; MARGIN-TOP: -5px; BACKGROUND-IMAGE: =
url(../images/pullchainbackground.png); BACKGROUND-REPEAT: repeat-x; =
TEXT-ALIGN: center
}
DIV.EktronPersonalizationWrapper .pullchain IMG {
	BORDER-RIGHT: #fff 0px solid; BORDER-TOP: #fff 0px solid; BORDER-LEFT: =
#fff 0px solid; BORDER-BOTTOM: #fff 0px solid
}
DIV.EktronPersonalizationWrapper UL.dropdown {
	BORDER-RIGHT: #87b6d9 1px solid; PADDING-RIGHT: 0px; DISPLAY: none; =
PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 11px; BACKGROUND: =
#5c8eb3; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #87b6d9 1px =
solid; WIDTH: 150px; COLOR: #fff; PADDING-TOP: 0.25em; BORDER-BOTTOM: =
#87b6d9 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; =
LIST-STYLE-TYPE: none
}
DIV.EktronPersonalizationWrapper UL.dropdownProps {
	BORDER-RIGHT: #87b6d9 1px solid; PADDING-RIGHT: 0px; DISPLAY: none; =
PADDING-LEFT: 0px; FONT-WEIGHT: normal; FONT-SIZE: 11px; BACKGROUND: =
#5d8fb4; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: #87b6d9 1px =
solid; WIDTH: 300px; COLOR: #fff; PADDING-TOP: 0.25em; BORDER-BOTTOM: =
#87b6d9 1px solid; FONT-FAMILY: Arial, Helvetica, sans-serif; =
LIST-STYLE-TYPE: none
}
DIV.EktronPersonalizationWrapper LI.dropdown {
	PADDING-RIGHT: 4px; PADDING-LEFT: 8px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
DIV.EktronPersonalizationWrapper UL.dropdown LI.dropdown:hover {
	BACKGROUND-IMAGE: url(../images/menuitem_hover_background.png)
}
DIV.EktronPersonalizationWrapper LI.dropdown2 {
	PADDING-RIGHT: 4px; PADDING-LEFT: 30px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
DIV.EktronPersonalizationWrapper UL.dropdown LI.dropdown2:hover {
	BACKGROUND-IMAGE: url(../images/menuitem_hover_background.png)
}
DIV.EktronPersonalizationWrapper UL.dropdown A {
	DISPLAY: block; FONT-SIZE: 12px; COLOR: #fff; FONT-FAMILY: Arial, =
Helvetica, Sans-Serif; TEXT-DECORATION: none
}
DIV.EktronPersonalizationWrapper UL.dropdown A.invalid {
	FONT-SIZE: 12px; COLOR: #87aecd; FONT-FAMILY: Arial, Helvetica, =
Sans-Serif; TEXT-DECORATION: none
}
DIV.EktronPersonalizationWrapper LI.dropdown:hover A.invalid {
	COLOR: #878787
}
DIV.EktronPersonalizationWrapper LI.dropdown2:hover A.invalid {
	COLOR: #878787
}
DIV.EktronPersonalizationWrapper UL.dropdown IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
DIV.EktronPersonalizationWrapper TABLE#PBPropsTable SPAN.label {
	MARGIN-RIGHT: 2em
}
DIV.EktronPersonalizationWrapper UL.ektronPersonalizationWidgetList {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; HEIGHT: 100px
}
DIV.EktronPersonalizationWrapper UL.ektronPersonalizationWidgetList LI {
	PADDING-RIGHT: 0px; LIST-STYLE: none none outside; PADDING-LEFT: 0px; =
FLOAT: left; BACKGROUND-IMAGE: url(../images/widget_background.png); =
PADDING-BOTTOM: 0px; MARGIN: 10px 5px; OVERFLOW: hidden; WIDTH: 80px; =
CURSOR: move; PADDING-TOP: 0px; HEIGHT: 80px; TEXT-ALIGN: center
}
.ektronPBWidgetTokenDrag {
	PADDING-RIGHT: 0px; LIST-STYLE: none none outside; PADDING-LEFT: 0px; =
FLOAT: left; BACKGROUND-IMAGE: url(../images/widget_background.png); =
PADDING-BOTTOM: 0px; MARGIN: 10px 5px; OVERFLOW: hidden; WIDTH: 80px; =
CURSOR: move; PADDING-TOP: 0px; HEIGHT: 80px; TEXT-ALIGN: center
}
DIV.EktronPersonalizationWrapper UL.ektronPersonalizationWidgetList LI =
IMG {
	MARGIN: 5px auto; WIDTH: 48px; HEIGHT: 48px
}
.ektronPBWidgetTokenDrag IMG {
	MARGIN: 5px auto; WIDTH: 48px; HEIGHT: 48px
}
DIV.EktronPersonalizationWrapper UL.ektronPersonalizationWidgetList LI =
SPAN {
	DISPLAY: block; FONT-SIZE: 0.7em; OVERFLOW: hidden; WIDTH: 80px; COLOR: =
#5c8eb3; FONT-FAMILY: Arial,Helvetica,sans-serif; LETTER-SPACING: 1px; =
TEXT-ALIGN: center
}
.ektronPBWidgetTokenDrag SPAN {
	DISPLAY: block; FONT-SIZE: 0.7em; OVERFLOW: hidden; WIDTH: 80px; COLOR: =
#5c8eb3; FONT-FAMILY: Arial,Helvetica,sans-serif; LETTER-SPACING: 1px; =
TEXT-ALIGN: center
}
DIV.EktronPersonalizationWrapper UL.ektronPersonalizationWidgetList =
LI.hover SPAN {
	COLOR: #ff7900
}
.ektronPBWidgetTokenDrag SPAN {
	COLOR: #ff7900
}
A.PBAddColumn {
	BORDER-RIGHT: silver 1px solid; PADDING-RIGHT: 1em; =
BACKGROUND-POSITION: 0.5em 0.25em; BORDER-TOP: silver 1px solid; =
DISPLAY: inline-block; PADDING-LEFT: 2.25em; FONT-SIZE: 1em; =
BACKGROUND-IMAGE: url(../images/add-column.png); PADDING-BOTTOM: 0.5em; =
MARGIN: 0px 0px 0.75em 0.75em; BORDER-LEFT: silver 1px solid; CURSOR: =
pointer; COLOR: #8f8f8f; LINE-HEIGHT: 100%; PADDING-TOP: 0.5em; =
BORDER-BOTTOM: silver 1px solid; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-COLOR: #eee; TEXT-DECORATION: none
}
A.PBAddColumn:hover {
	BORDER-RIGHT: #c6d880 1px solid; BORDER-TOP: #c6d880 1px solid; =
BORDER-LEFT: #c6d880 1px solid; COLOR: #529214; BORDER-BOTTOM: #c6d880 =
1px solid; BACKGROUND-COLOR: #e6efc2
}
BODY > DIV.setSize {
	BORDER-RIGHT: #c9d3db 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: =
#c9d3db 1px solid; DISPLAY: none; PADDING-LEFT: 0.5em; FONT-SIZE: 12px; =
Z-INDEX: 9999; PADDING-BOTTOM: 0.2em; BORDER-LEFT: #c9d3db 1px solid; =
WIDTH: 24.5em; PADDING-TOP: 0.2em; BORDER-BOTTOM: #c9d3db 1px solid; =
FONT-FAMILY: Arial, Verdana, Sans-Serif; POSITION: absolute; =
BACKGROUND-COLOR: #fff
}
BODY > DIV.setSize A {
	FONT-SIZE: 0.9em
}
BODY > DIV.setSize .newwidth {
	WIDTH: 5em; MARGIN-RIGHT: 0.25em
}
DIV.dropzone DIV.PBColumn UL.column {
	BORDER-RIGHT: #c9d3db 1px solid; PADDING-RIGHT: 0px; MIN-WIDTH: 50px; =
PADDING-LEFT: 0px; MIN-HEIGHT: 50px; PADDING-BOTTOM: 0px; MARGIN: 0px; =
BORDER-LEFT: #c9d3db 1px solid; WIDTH: auto! important; PADDING-TOP: =
0px; BORDER-BOTTOM: #c9d3db 1px solid; LIST-STYLE-TYPE: none; HEIGHT: =
auto! important
}
DIV.PBColumn {
	FLOAT: left; MARGIN: 0px 0px 0.75em
}
DIV.PBColumn {
	MARGIN-RIGHT: -3px
}
HTML > BODY DIV.PBColumn {
	MARGIN-RIGHT: -1px
}
DIV.dropzone UL.column DIV.widget {
	WIDTH: 99%
}
DIV.dropzone DIV.PBColumn UL.highlight {
	BORDER-RIGHT: orange 3px dashed; BORDER-TOP: orange 3px dashed; =
BORDER-LEFT: orange 3px dashed; BORDER-BOTTOM: orange 3px dashed
}
DIV.PBColumn UL.column LI.header {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; OVERFLOW: hidden; PADDING-TOP: 0px; HEIGHT: 19px
}
DIV.PBColumn UL.column LI.header A {
	TEXT-DECORATION: none
}
DIV.PBColumn UL.column LI.header > SPAN {
	DISPLAY: block; BACKGROUND: #5c8eb3; HEIGHT: 19px; TEXT-ALIGN: right
}
DIV.PBColumn LI.header IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
DIV.PBColumn UL.column > LI {
	MARGIN: 0px 0.75em 0.75em; PADDING-TOP: 0.75em
}
DIV.PBColumn UL.column > LI.DropArea {
	BORDER-RIGHT: #f7a11a 2px solid; BORDER-TOP: #f7a11a 2px solid; =
FONT-SIZE: 20px; BACKGROUND-IMAGE: url(../images/dropzonepattern.png); =
BORDER-LEFT: #f7a11a 2px solid; BORDER-BOTTOM: #f7a11a 2px solid; =
FONT-FAMILY: Arial, Helvetica, sans-serif; TEXT-ALIGN: center
}
DIV.PBColumn UL.column > LI.DropArea > SPAN {
	PADDING-RIGHT: 1em; DISPLAY: block; PADDING-LEFT: 1em; PADDING-BOTTOM: =
0px; MARGIN: 5px auto; COLOR: #ff7900; PADDING-TOP: 0px
}
DIV.PBColumn DIV.widget > DIV {
	BORDER-RIGHT: #6f6f6f 3px solid; BORDER-LEFT: #6f6f6f 3px solid; =
BORDER-BOTTOM: #6f6f6f 3px solid
}
DIV.PBColumn DIV.widget DIV.header {
	CURSOR: move; HEIGHT: 20px; BACKGROUND-COLOR: #6f6f6f; TEXT-ALIGN: =
right
}
DIV.PBColumn DIV.widget DIV.header SPAN {
	MARGIN-TOP: 0.25em; FONT-SIZE: 12px; RIGHT: 28px; LEFT: 0px; FLOAT: =
left; OVERFLOW: hidden; COLOR: #ccc; LINE-HEIGHT: 20px; FONT-FAMILY: =
Arial,Helvetica,sans-serif; POSITION: absolute; TEXT-ALIGN: left
}
DIV.PBColumn DIV.widget DIV.header IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; CURSOR: default; BORDER-RIGHT-WIDTH: 0px
}
DIV.PBColumn DIV.widget DIV.content {
	MARGIN: 10px
}
DIV.PBColumn DIV.widget DIV.header DIV.buttons {
	OVERFLOW: hidden; POSITION: relative
}
DIV.PBColumn DIV.widget DIV.header DIV.buttons A {
	LINE-HEIGHT: 20px; PADDING-TOP: 0.25em; TEXT-DECORATION: none
}
LI.ui-sortable-helper {
	LIST-STYLE-TYPE: none
}
DIV.PBColumn DIV.ui-resizable-handle {
	TOP: 23px! important; HEIGHT: auto! important
}
DIV.PBColumn IMG.PB-UI-icon {
	VERTICAL-ALIGN: middle; WIDTH: 12px; HEIGHT: 12px
}
DIV.dropzone DIV.PBViewing UL.column {
	BORDER-RIGHT: 0px solid; PADDING-RIGHT: 0px; BORDER-TOP: 0px solid; =
PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: 0px =
solid; PADDING-TOP: 0px; BORDER-BOTTOM: 0px solid; LIST-STYLE-TYPE: none
}
DIV.PBViewing {
	FLOAT: left; MARGIN: 0px
}
DIV.PBViewing {
	MARGIN-RIGHT: -3px
}
HTML > BODY DIV.PBViewing {
	MARGIN-RIGHT: -1px
}
DIV.PBViewing UL.column > LI {
	MARGIN: 0px; PADDING-TOP: 0px
}
DIV.PBViewing DIV.widget DIV.header {
	DISPLAY: none
}
DIV.PBViewing DIV.widget DIV.content {
	MARGIN: 0px
}
DIV.PBDropzoneError {
	BORDER-RIGHT: #7c7c7c 1px solid; BORDER-TOP: #7c7c7c 1px solid; =
DISPLAY: block; BORDER-LEFT: #7c7c7c 1px solid; WIDTH: 100%; COLOR: =
#fff; LINE-HEIGHT: 2em; BORDER-BOTTOM: #7c7c7c 1px solid; HEIGHT: 2em; =
BACKGROUND-COLOR: #ef8424; TEXT-ALIGN: center
}
DIV.PBBlockUI {
	DISPLAY: none; BACKGROUND: url(../images/loading.gif); MARGIN: -33px =
0px 0px -33px; WIDTH: 66px; HEIGHT: 66px
}
.PBClear:unknown {
	CLEAR: both; DISPLAY: block; FONT-SIZE: 0px; VISIBILITY: hidden; =
HEIGHT: 0px; content: " "
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/PageBuilder/PageControls/Themes/TrueBlue/CSS/PageHostIE.css

DIV.EktronPersonalizationWrapper .topmenuinputbox {
	TOP: 0.15em
}
DIV.EktronPersonalizationWrapper DIV#widgetlistWrapper {
	POSITION: absolute
}
* HTML .PBClear {
	DISPLAY: inline-block
}
* HTML .PBClear {
	HEIGHT: 1%
}
DIV.dropzone DIV.PBColumnUnsized DIV.widget > DIV > DIV.content {
	MIN-WIDTH: 30px; MIN-HEIGHT: 30px; MAX-WIDTH: 100%! important; WIDTH: =
auto! important; PADDING-TOP: 23px; HEIGHT: auto! important
}
DIV.dropzone DIV.PBColumnUnsized DIV.widget > DIV {
	POSITION: relative
}
DIV.dropzone DIV.PBColumnUnsized DIV.widget > DIV > DIV.header {
	RIGHT: 0px; LEFT: 0px; POSITION: absolute
}
DIV.PBColumn UL.column LI.header > SPAN.position {
	RIGHT: 0px; LEFT: 0px; POSITION: absolute
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/ektron.js

/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/
*/

if("undefined"=3D=3Dtypeof $ektron)
{(function(){var _jQuery=3Dwindow.jQuery,_$=3Dwindow.$;var =
jQuery=3Dwindow.jQuery=3Dwindow.$=3Dfunction(selector,context){return =
new jQuery.fn.init(selector,context);};var =
quickExpr=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=3D/^.[^:#\[\.]*$/=
,undefined;jQuery.fn=3DjQuery.prototype=3D{init:function(selector,context=
){selector=3Dselector||document;if(selector.nodeType){this[0]=3Dselector;=
this.length=3D1;return this;}
if(typeof selector=3D=3D"string"){var =
match=3DquickExpr.exec(selector);if(match&&(match[1]||!context)){if(match=
[1])
selector=3DjQuery.clean([match[1]],context);else{var =
elem=3Ddocument.getElementById(match[3]);if(elem){if(elem.id!=3Dmatch[3])=

return jQuery().find(selector);return jQuery(elem);}
selector=3D[];}}else
return jQuery(context).find(selector);}else =
if(jQuery.isFunction(selector))
return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return =
this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(=
){return this.length;},length:0,get:function(num){return =
num=3D=3Dundefined?jQuery.makeArray(this):this[num];},pushStack:function(=
elems){var ret=3DjQuery(elems);ret.prevObject=3Dthis;return =
ret;},setArray:function(elems){this.length=3D0;Array.prototype.push.apply=
(this,elems);return this;},each:function(callback,args){return =
jQuery.each(this,callback,args);},index:function(elem){var =
ret=3D-1;return =
jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,=
value,type){var options=3Dname;if(name.constructor=3D=3DString)
if(value=3D=3D=3Dundefined)
return =
this[0]&&jQuery[type||"attr"](this[0],name)||undefined;else{options=3D{};=
options[name]=3Dvalue;}
return this.each(function(i){for(name in options)
jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type=
,i,name));});},css:function(key,value){if((key=3D=3D'width'||key=3D=3D'he=
ight')&&parseFloat(value)<0)
value=3Dundefined;return =
this.attr(key,value,"curCSS");},text:function(text){if(typeof =
text!=3D"object"&&text!=3Dnull)
return =
this.empty().append((this[0]&&this[0].ownerDocument||document).createText=
Node(text));var =
ret=3D"";jQuery.each(text||this,function(){jQuery.each(this.childNodes,fu=
nction(){if(this.nodeType!=3D8)
ret+=3Dthis.nodeType!=3D1?this.nodeValue:jQuery.fn.text([this]);});});ret=
urn ret;},wrapAll:function(html){if(this[0])
jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(func=
tion(){var elem=3Dthis;while(elem.firstChild)
elem=3Delem.firstChild;return elem;}).append(this);return =
this;},wrapInner:function(html){return =
this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:func=
tion(html){return =
this.each(function(){jQuery(this).wrapAll(html);});},append:function(){re=
turn =
this.domManip(arguments,true,false,function(elem){if(this.nodeType=3D=3D1=
)
this.appendChild(elem);});},prepend:function(){return =
this.domManip(arguments,true,true,function(elem){if(this.nodeType=3D=3D1)=

this.insertBefore(elem,this.firstChild);});},before:function(){return =
this.domManip(arguments,false,false,function(elem){this.parentNode.insert=
Before(elem,this);});},after:function(){return =
this.domManip(arguments,false,true,function(elem){this.parentNode.insertB=
efore(elem,this.nextSibling);});},end:function(){return =
this.prevObject||jQuery([]);},find:function(selector){var =
elems=3DjQuery.map(this,function(elem){return =
jQuery.find(selector,elem);});return this.pushStack(/[^+>] =
[^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):ele=
ms);},clone:function(events){var =
ret=3Dthis.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this))=
{var =
clone=3Dthis.cloneNode(true),container=3Dthis.ownerDocument.createElement=
("div");container.appendChild(clone);return =
jQuery.clean([container.innerHTML],this.ownerDocument)[0];}else
return this.cloneNode(true);});var =
clone=3Dret.find("*").andSelf().each(function(){if(this[expando]!=3Dundef=
ined)
this[expando]=3Dnull;});if(events=3D=3D=3Dtrue)
this.find("*").andSelf().each(function(i){if(this.nodeType=3D=3D3)
return;var events=3DjQuery.data(this,"events");for(var type in events)
for(var handler in events[type])
jQuery.event.add(clone[i],type,events[type][handler],events[type][handler=
].data);});return ret;},filter:function(selector){return =
this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(ele=
m,i){return =
selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:functi=
on(selector){if(selector.constructor=3D=3DString)
if(isSimple.test(selector))
return this.pushStack(jQuery.multiFilter(selector,this,true));else
selector=3DjQuery.multiFilter(selector,this);var =
isArrayLike=3Dselector.length&&selector[selector.length-1]!=3D=3Dundefine=
d&&!selector.nodeType;return this.filter(function(){return =
isArrayLike?jQuery.inArray(this,selector)<0:this!=3Dselector;});},add:fun=
ction(selector){return =
this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof =
selector=3D=3D'string'?jQuery(selector):jQuery.makeArray(selector))));},i=
s:function(selector){return!!selector&&jQuery.multiFilter(selector,this).=
length>0;},hasClass:function(selector){return =
this.is("."+selector);},val:function(value){if(value=3D=3Dundefined){if(t=
his.length){var elem=3Dthis[0];if(jQuery.nodeName(elem,"select")){var =
index=3Delem.selectedIndex,values=3D[],options=3Delem.options,one=3Delem.=
type=3D=3D"select-one";if(index<0)
return null;for(var =
i=3Done?index:0,max=3Done?index+1:options.length;i<max;i++){var =
option=3Doptions[i];if(option.selected){value=3DjQuery.browser.msie&&!opt=
ion.attributes.value.specified?option.text:option.value;if(one)
return value;values.push(value);}}
return values;}else
return(this[0].value||"").replace(/\r/g,"");}
return undefined;}
if(value.constructor=3D=3DNumber)
value+=3D'';return this.each(function(){if(this.nodeType!=3D1)
return;if(value.constructor=3D=3DArray&&/radio|checkbox/.test(this.type))=

this.checked=3D(jQuery.inArray(this.value,value)>=3D0||jQuery.inArray(thi=
s.name,value)>=3D0);else if(jQuery.nodeName(this,"select")){var =
values=3DjQuery.makeArray(value);jQuery("option",this).each(function(){th=
is.selected=3D(jQuery.inArray(this.value,values)>=3D0||jQuery.inArray(thi=
s.text,values)>=3D0);});if(!values.length)
this.selectedIndex=3D-1;}else
this.value=3Dvalue;});},html:function(value){return =
value=3D=3Dundefined?(this[0]?this[0].innerHTML:null):this.empty().append=
(value);},replaceWith:function(value){return =
this.after(value).remove();},eq:function(i){return =
this.slice(i,i+1);},slice:function(){return =
this.pushStack(Array.prototype.slice.apply(this,arguments));},map:functio=
n(callback){return =
this.pushStack(jQuery.map(this,function(elem,i){return =
callback.call(elem,i,elem);}));},andSelf:function(){return =
this.add(this.prevObject);},data:function(key,value){var =
parts=3Dkey.split(".");parts[1]=3Dparts[1]?"."+parts[1]:"";if(value=3D=3D=
=3Dundefined){var =
data=3Dthis.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data=3D=3D=
=3Dundefined&&this.length)
data=3DjQuery.data(this[0],key);return =
data=3D=3D=3Dundefined&&parts[1]?this.data(parts[0]):data;}else
return =
this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQu=
ery.data(this,key,value);});},removeData:function(key){return =
this.each(function(){jQuery.removeData(this,key);});},domManip:function(a=
rgs,table,reverse,callback){var clone=3Dthis.length>1,elems;return =
this.each(function(){if(!elems){elems=3DjQuery.clean(args,this.ownerDocum=
ent);if(reverse)
elems.reverse();}
var =
obj=3Dthis;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems=
[0],"tr"))
obj=3Dthis.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerD=
ocument.createElement("tbody"));if(1=3D=3Dthis.nodeType&&($ektron.isEdita=
bleElement(this)||"true"=3D=3Dthis.getAttribute("contenteditable")))
{jQuery.each(elems,function(){var =
elem=3Dclone?jQuery(this).clone(true)[0]:this;callback.call(obj,elem);});=
}
else
{var scripts=3DjQuery([]);jQuery.each(elems,function(){var =
elem=3Dclone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"sc=
ript"))
scripts=3Dscripts.add(elem);else{if(elem.nodeType=3D=3D1)
scripts=3Dscripts.add(jQuery("script",elem).remove());callback.call(obj,e=
lem);}});scripts.each(evalScript);}});}};jQuery.fn.init.prototype=3DjQuer=
y.fn;function evalScript(i,elem){try
{if(elem.src)
jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(ele=
m.parentNode)
elem.parentNode.removeChild(elem);}
catch(ex)
{}}
function now(){return+new Date;}
jQuery.extend=3DjQuery.fn.extend=3Dfunction(){var =
target=3Darguments[0]||{},i=3D1,length=3Darguments.length,deep=3Dfalse,op=
tions;if(target.constructor=3D=3DBoolean){deep=3Dtarget;target=3Dargument=
s[1]||{};i=3D2;}
if(typeof target!=3D"object"&&typeof target!=3D"function")
target=3D{};if(length=3D=3Di){target=3Dthis;--i;}
for(;i<length;i++)
if((options=3Darguments[i])!=3Dnull)
for(var name in options){var =
src=3Dtarget[name],copy=3Doptions[name];if(target=3D=3D=3Dcopy)
continue;if(deep&&copy&&typeof copy=3D=3D"object"&&!copy.nodeType)
target[name]=3DjQuery.extend(deep,src||(copy.length!=3Dnull?[]:{}),copy);=
else if(copy!=3D=3Dundefined)
target[name]=3Dcopy;}
return target;};var =
expando=3D"jQuery"+now(),uuid=3D0,windowData=3D{},exclude=3D/z-?index|fon=
t-?weight|opacity|zoom|line-?height/i,defaultView=3Ddocument.defaultView|=
|{};jQuery.extend({noConflict:function(deep){window.$=3D_$;if(deep)
window.jQuery=3D_jQuery;return =
jQuery;},isFunction:function(fn){return!!fn&&typeof =
fn!=3D"string"&&!fn.nodeName&&fn.constructor!=3DArray&&/^[\s[]?function/.=
test(fn+"");},isXMLDoc:function(elem){return =
elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem=
.ownerDocument.body;},globalEval:function(data){data=3DjQuery.trim(data);=
if(data){var =
head=3Ddocument.getElementsByTagName("head")[0]||document.documentElement=
,script=3Ddocument.createElement("script");script.type=3D"text/javascript=
";if(jQuery.browser.msie)
script.text=3Ddata;else
script.appendChild(document.createTextNode(data));head.insertBefore(scrip=
t,head.firstChild);head.removeChild(script);}},nodeName:function(elem,nam=
e){return =
elem.nodeName&&elem.nodeName.toUpperCase()=3D=3Dname.toUpperCase();},cach=
e:{},data:function(elem,name,data){elem=3Delem=3D=3Dwindow?windowData:ele=
m;var id=3Delem[expando];if(!id)
id=3Delem[expando]=3D++uuid;if(name&&!jQuery.cache[id])
jQuery.cache[id]=3D{};if(data!=3D=3Dundefined)
jQuery.cache[id][name]=3Ddata;return =
name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=3Del=
em=3D=3Dwindow?windowData:elem;var =
id=3Delem[expando];if(name){if(jQuery.cache[id]){delete =
jQuery.cache[id][name];name=3D"";for(name in jQuery.cache[id])
break;if(!name)
jQuery.removeData(elem);}}else{try{delete =
elem[expando];}catch(e){if(elem.removeAttribute)
elem.removeAttribute(expando);}
delete jQuery.cache[id];}},each:function(object,callback,args){var =
name,i=3D0,length=3Dobject.length;if(args){if(length=3D=3Dundefined){for(=
name in object)
if(callback.apply(object[name],args)=3D=3D=3Dfalse)
break;}else
for(;i<length;)
if(callback.apply(object[i++],args)=3D=3D=3Dfalse)
break;}else{if(length=3D=3Dundefined){for(name in object)
if(callback.call(object[name],name,object[name])=3D=3D=3Dfalse)
break;}else
for(var =
value=3Dobject[0];i<length&&callback.call(value,i,value)!=3D=3Dfalse;valu=
e=3Dobject[++i]){}}
return =
object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value=
))
value=3Dvalue.call(elem,i);return =
value&&value.constructor=3D=3DNumber&&type=3D=3D"curCSS"&&!exclude.test(n=
ame)?value+"px":value;},className:{add:function(elem,classNames){jQuery.e=
ach((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType=3D=
=3D1&&!jQuery.className.has(elem.className,className))
elem.className+=3D(elem.className?" =
":"")+className;});},remove:function(elem,classNames){if(elem.nodeType=3D=
=3D1)
elem.className=3DclassNames!=3Dundefined?jQuery.grep(elem.className.split=
(/\s+/),function(className){return!jQuery.className.has(classNames,classN=
ame);}).join(" "):"";},has:function(elem,className){return =
jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>=
-1;}},swap:function(elem,options,callback){var old=3D{};for(var name in =
options){old[name]=3Delem.style[name];elem.style[name]=3Doptions[name];}
callback.call(elem);for(var name in options)
elem.style[name]=3Dold[name];},css:function(elem,name,force){if(name=3D=3D=
"width"||name=3D=3D"height"){var =
val,props=3D{position:"absolute",visibility:"hidden",display:"block"},whi=
ch=3Dname=3D=3D"width"?["Left","Right"]:["Top","Bottom"];function =
getWH(){val=3Dname=3D=3D"width"?elem.offsetWidth:elem.offsetHeight;var =
padding=3D0,border=3D0;jQuery.each(which,function(){padding+=3DparseFloat=
(jQuery.curCSS(elem,"padding"+this,true))||0;border+=3DparseFloat(jQuery.=
curCSS(elem,"border"+this+"Width",true))||0;});val-=3DMath.round(padding+=
border);}
if(jQuery(elem).is(":visible"))
getWH();else
jQuery.swap(elem,props,getWH);return Math.max(0,val);}
return =
jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var =
ret,style=3Delem.style;function color(elem){if(!jQuery.browser.safari)
return false;var =
ret=3DdefaultView.getComputedStyle(elem,null);return!ret||ret.getProperty=
Value("color")=3D=3D"";}
if(name=3D=3D"opacity"&&jQuery.browser.msie){ret=3DjQuery.attr(style,"opa=
city");return ret=3D=3D""?"1":ret;}
if(jQuery.browser.opera&&name=3D=3D"display"){var =
save=3Dstyle.outline;style.outline=3D"0 solid =
black";style.outline=3Dsave;}
if(name.match(/float/i))
name=3DstyleFloat;if(!force&&style&&style[name])
ret=3Dstyle[name];else =
if(defaultView.getComputedStyle){if(name.match(/float/i))
name=3D"float";name=3Dname.replace(/([A-Z])/g,"-$1").toLowerCase();var =
computedStyle=3DdefaultView.getComputedStyle(elem,null);if(computedStyle&=
&!color(elem))
ret=3DcomputedStyle.getPropertyValue(name);else{var =
swap=3D[],stack=3D[],a=3Delem,i=3D0;for(;a&&color(a);a=3Da.parentNode)
stack.unshift(a);for(;i<stack.length;i++)
if(color(stack[i])){swap[i]=3Dstack[i].style.display;stack[i].style.displ=
ay=3D"block";}
ret=3Dname=3D=3D"display"&&swap[stack.length-1]!=3Dnull?"none":(computedS=
tyle&&computedStyle.getPropertyValue(name))||"";for(i=3D0;i<swap.length;i=
++)
if(swap[i]!=3Dnull)
stack[i].style.display=3Dswap[i];}
if(name=3D=3D"opacity"&&ret=3D=3D"")
ret=3D"1";}else if(elem.currentStyle){var =
camelCase=3Dname.replace(/\-(\w)/g,function(all,letter){return =
letter.toUpperCase();});ret=3Delem.currentStyle[name]||elem.currentStyle[=
camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var =
left=3Dstyle.left,rsLeft=3Delem.runtimeStyle.left;elem.runtimeStyle.left=3D=
elem.currentStyle.left;style.left=3Dret||0;ret=3Dstyle.pixelLeft+"px";sty=
le.left=3Dleft;elem.runtimeStyle.left=3DrsLeft;}}
return ret;},clean:function(elems,context){var =
ret=3D[];context=3Dcontext||document;if(typeof =
context.createElement=3D=3D'undefined')
context=3Dcontext.ownerDocument||context[0]&&context[0].ownerDocument||do=
cument;jQuery.each(elems,function(i,elem){if(!elem)
return;if(elem.constructor=3D=3DNumber)
elem+=3D'';if(typeof =
elem=3D=3D"string"){elem=3Delem.replace(/(<(\w+)[^>]*?)\/>/g,function(all=
,front,tag){return =
tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all=
:front+"></"+tag+">";});var =
tags=3DjQuery.trim(elem).toLowerCase(),div=3Dcontext.createElement("div")=
;var wrap=3D!tags.indexOf("<opt")&&[1,"<select =
multiple=3D'multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldse=
t>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<ta=
ble>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></t=
able>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody>=
<tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody>=
</tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<=
div>","</div>"]||[0,"",""];div.innerHTML=3Dwrap[1]+elem+wrap[2];while(wra=
p[0]--)
div=3Ddiv.lastChild;if(jQuery.browser.msie){var =
tbody=3D!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&=
&div.firstChild.childNodes:wrap[1]=3D=3D"<table>"&&tags.indexOf("<tbody")=
<0?div.childNodes:[];for(var j=3Dtbody.length-1;j>=3D0;--j)
if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)
tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))
div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstC=
hild);}
elem=3DjQuery.makeArray(div.childNodes);}
if(elem.length=3D=3D=3D0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeNam=
e(elem,"select")))
return;if(elem[0]=3D=3Dundefined||jQuery.nodeName(elem,"form")||elem.opti=
ons)
ret.push(elem);else
ret=3DjQuery.merge(ret,elem);});return =
ret;},attr:function(elem,name,value){if(!elem||elem.nodeType=3D=3D3||elem=
.nodeType=3D=3D8)
return undefined;var =
notxml=3D!jQuery.isXMLDoc(elem),set=3Dvalue!=3D=3Dundefined,msie=3DjQuery=
.browser.msie;name=3Dnotxml&&jQuery.props[name]||name;if(elem.tagName){va=
r =
special=3D/href|src|style/.test(name);if(name=3D=3D"selected"&&jQuery.bro=
wser.safari)
elem.parentNode.selectedIndex;if(name in =
elem&&notxml&&!special){if(set){if(name=3D=3D"type"&&jQuery.nodeName(elem=
,"input")&&elem.parentNode)
throw"type property can't be changed";elem[name]=3Dvalue;}
if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))
return elem.getAttributeNode(name).nodeValue;return elem[name];}
if(msie&&notxml&&name=3D=3D"style")
return jQuery.attr(elem.style,"cssText",value);if(set)
elem.setAttribute(name,""+value);var =
attr=3Dmsie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(=
name);return attr=3D=3D=3Dnull?undefined:attr;}
if(msie&&name=3D=3D"opacity"){if(set){elem.zoom=3D1;elem.filter=3D(elem.f=
ilter||"").replace(/alpha\([^)]*\)/,"")+
(parseInt(value)+''=3D=3D"NaN"?"":"alpha(opacity=3D"+value*100+")");}
return =
elem.filter&&elem.filter.indexOf("opacity=3D")>=3D0?(parseFloat(elem.filt=
er.match(/opacity=3D([^)]*)/)[1])/100)+'':"";}
name=3Dname.replace(/-([a-z])/ig,function(all,letter){return =
letter.toUpperCase();});if(set)
elem[name]=3Dvalue;return =
elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,""=
);},makeArray:function(array){var ret=3D[];if(array!=3Dnull){var =
i=3Darray.length;if(i=3D=3Dnull||array.split||array.setInterval||array.ca=
ll)
ret[0]=3Darray;else
while(i)
ret[--i]=3Darray[i];}
return ret;},inArray:function(elem,array){for(var =
i=3D0,length=3Darray.length;i<length;i++)
if(array[i]=3D=3D=3Delem)
return i;return-1;},merge:function(first,second){var =
i=3D0,elem,pos=3Dfirst.length;if(jQuery.browser.msie){while(elem=3Dsecond=
[i++])
if(elem.nodeType!=3D8)
first[pos++]=3Delem;}else
while(elem=3Dsecond[i++])
first[pos++]=3Delem;return first;},unique:function(array){var =
ret=3D[],done=3D{};try{for(var =
i=3D0,length=3Darray.length;i<length;i++){var =
id=3DjQuery.data(array[i]);if(!done[id]){done[id]=3Dtrue;ret.push(array[i=
]);}}}catch(e){ret=3Darray;}
return ret;},grep:function(elems,callback,inv){var ret=3D[];for(var =
i=3D0,length=3Delems.length;i<length;i++)
if(!inv!=3D!callback(elems[i],i))
ret.push(elems[i]);return ret;},map:function(elems,callback){var =
ret=3D[];for(var i=3D0,length=3Delems.length;i<length;i++){var =
value=3Dcallback(elems[i],i);if(value!=3Dnull)
ret[ret.length]=3Dvalue;}
return ret.concat.apply([],ret);}});var =
userAgent=3Dnavigator.userAgent.toLowerCase();jQuery.browser=3D{version:(=
userAgent.match(/.+(?:rv|it|ra|ie)[\/: =
]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(us=
erAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/m=
ozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var =
styleFloat=3DjQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({b=
oxModel:!jQuery.browser.msie||document.compatMode=3D=3D"CSS1Compat",props=
:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFl=
oat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cells=
pacing:"cellSpacing"}});jQuery.each({parent:function(elem){return =
elem.parentNode;},parents:function(elem){return =
jQuery.dir(elem,"parentNode");},next:function(elem){return =
jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return =
jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return =
jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return =
jQuery.dir(elem,"previousSibling");},siblings:function(elem){return =
jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem)=
{return jQuery.sibling(elem.firstChild);},contents:function(elem){return =
jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.d=
ocument:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[=
name]=3Dfunction(selector){var =
ret=3DjQuery.map(this,fn);if(selector&&typeof selector=3D=3D"string")
ret=3DjQuery.multiFilter(selector,ret);return =
this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",pr=
ependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"r=
eplaceWith"},function(name,original){jQuery.fn[name]=3Dfunction(){var =
args=3Darguments;return this.each(function(){for(var =
i=3D0,length=3Dargs.length;i<length;i++)
jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(=
name){jQuery.attr(this,name,"");if(this.nodeType=3D=3D1)
this.removeAttribute(name);},addClass:function(classNames){jQuery.classNa=
me.add(this,classNames);},removeClass:function(classNames){jQuery.classNa=
me.remove(this,classNames);},toggleClass:function(classNames){jQuery.clas=
sName[jQuery.className.has(this,classNames)?"remove":"add"](this,classNam=
es);},remove:function(selector){if(!selector||jQuery.filter(selector,[thi=
s]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.rem=
ove(this);jQuery.removeData(this);});if(this.parentNode)
this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).r=
emove();while(this.firstChild)
this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=3D=
function(){return =
this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,na=
me){var =
type=3Dname.toLowerCase();jQuery.fn[type]=3Dfunction(size){return =
this[0]=3D=3Dwindow?jQuery.browser.opera&&document.body["client"+name]||j=
Query.browser.safari&&window["inner"+name]||document.compatMode=3D=3D"CSS=
1Compat"&&document.documentElement["client"+name]||document.body["client"=
+name]:this[0]=3D=3Ddocument?Math.max(Math.max(document.body["scroll"+nam=
e],document.documentElement["scroll"+name]),Math.max(document.body["offse=
t"+name],document.documentElement["offset"+name])):size=3D=3Dundefined?(t=
his.length?jQuery.css(this[0],type):null):this.css(type,size.constructor=3D=
=3DString?size:size+"px");};});function num(elem,prop){return =
elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var =
chars=3DjQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[=
\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=3Dnew =
RegExp("^>\\s*("+chars+"+)"),quickID=3Dnew =
RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=3Dnew =
RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){re=
turn m[2]=3D=3D"*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return =
a.getAttribute("id")=3D=3Dm[2];},":":{lt:function(a,i,m){return =
i<m[3]-0;},gt:function(a,i,m){return =
i>m[3]-0;},nth:function(a,i,m){return =
m[3]-0=3D=3Di;},eq:function(a,i,m){return =
m[3]-0=3D=3Di;},first:function(a,i){return =
i=3D=3D0;},last:function(a,i,m,r){return =
i=3D=3Dr.length-1;},even:function(a,i){return =
i%2=3D=3D0;},odd:function(a,i){return =
i%2;},"first-child":function(a){return =
a.parentNode.getElementsByTagName("*")[0]=3D=3Da;},"last-child":function(=
a){return =
jQuery.nth(a.parentNode.lastChild,1,"previousSibling")=3D=3Da;},"only-chi=
ld":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibli=
ng");},parent:function(a){return =
a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(=
a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m=
[3])>=3D0;},visible:function(a){return"hidden"!=3Da.type&&jQuery.css(a,"d=
isplay")!=3D"none"&&jQuery.css(a,"visibility")!=3D"hidden";},hidden:funct=
ion(a){return"hidden"=3D=3Da.type||jQuery.css(a,"display")=3D=3D"none"||j=
Query.css(a,"visibility")=3D=3D"hidden";},enabled:function(a){return!a.di=
sabled;},disabled:function(a){return =
a.disabled;},checked:function(a){return =
a.checked;},selected:function(a){return =
a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"=3D=3D=
a.type;},radio:function(a){return"radio"=3D=3Da.type;},checkbox:function(=
a){return"checkbox"=3D=3Da.type;},file:function(a){return"file"=3D=3Da.ty=
pe;},password:function(a){return"password"=3D=3Da.type;},submit:function(=
a){return"submit"=3D=3Da.type;},image:function(a){return"image"=3D=3Da.ty=
pe;},reset:function(a){return"reset"=3D=3Da.type;},button:function(a){ret=
urn"button"=3D=3Da.type||jQuery.nodeName(a,"button");},input:function(a){=
return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i=
,m){return =
jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeN=
ame);},animated:function(a){return =
jQuery.grep(jQuery.timers,function(fn){return =
a=3D=3Dfn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=3D]*) =
*('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new =
RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var=
 old,cur=3D[];while(expr&&expr!=3Dold){old=3Dexpr;var =
f=3DjQuery.filter(expr,elems,not);expr=3Df.t.replace(/^\s*,\s*/,"");cur=3D=
not?elems=3Df.r:jQuery.merge(cur,f.r);}
return cur;},find:function(t,context){if(typeof t!=3D"string")
return[t];if(context&&context.nodeType!=3D1&&context.nodeType!=3D9)
return[];context=3Dcontext||document;var =
ret=3D[context],done=3D[],last,nodeName;while(t&&last!=3Dt){var =
r=3D[];last=3Dt;t=3DjQuery.trim(t);var =
foundToken=3Dfalse,re=3DquickChild,m=3Dre.exec(t);if(m){nodeName=3Dm[1].t=
oUpperCase();for(var i=3D0;ret[i];i++)
for(var c=3Dret[i].firstChild;c;c=3Dc.nextSibling)
if(c.nodeType=3D=3D1&&(nodeName=3D=3D"*"||c.nodeName.toUpperCase()=3D=3Dn=
odeName))
r.push(c);ret=3Dr;t=3Dt.replace(re,"");if(t.indexOf(" =
")=3D=3D0)continue;foundToken=3Dtrue;}else{re=3D/^([>+~])\s*(\w*)/i;if((m=
=3Dre.exec(t))!=3Dnull){r=3D[];var =
merge=3D{};nodeName=3Dm[2].toUpperCase();m=3Dm[1];for(var =
j=3D0,rl=3Dret.length;j<rl;j++){var =
n=3Dm=3D=3D"~"||m=3D=3D"+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=3D=
n.nextSibling)
if(n.nodeType=3D=3D1){var =
id=3DjQuery.data(n);if(m=3D=3D"~"&&merge[id])break;if(!nodeName||n.nodeNa=
me.toUpperCase()=3D=3DnodeName){if(m=3D=3D"~")merge[id]=3Dtrue;r.push(n);=
}
if(m=3D=3D"+")break;}}
ret=3Dr;t=3DjQuery.trim(t.replace(re,""));foundToken=3Dtrue;}}
if(t&&!foundToken){if(!t.indexOf(",")){if(context=3D=3Dret[0])ret.shift()=
;done=3DjQuery.merge(done,ret);r=3Dret=3D[context];t=3D" =
"+t.substr(1,t.length);}else{var re2=3DquickID;var =
m=3Dre2.exec(t);if(m){m=3D[0,m[2],m[3],m[1]];}else{re2=3DquickClass;m=3Dr=
e2.exec(t);}
m[2]=3Dm[2].replace(/\\/g,"");var =
elem=3Dret[ret.length-1];if(m[1]=3D=3D"#"&&elem&&elem.getElementById&&!jQ=
uery.isXMLDoc(elem)){var =
oid=3Delem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.o=
pera)&&oid&&typeof oid.id=3D=3D"string"&&oid.id!=3Dm[2])
oid=3DjQuery('[@id=3D"'+m[2]+'"]',elem)[0];ret=3Dr=3Doid&&(!m[3]||jQuery.=
nodeName(oid,m[3]))?[oid]:[];}else{for(var i=3D0;ret[i];i++){var =
tag=3Dm[1]=3D=3D"#"&&m[3]?m[3]:m[1]!=3D""||m[0]=3D=3D""?"*":m[2];if(tag=3D=
=3D"*"&&ret[i].nodeName.toLowerCase()=3D=3D"object")
tag=3D"param";r=3DjQuery.merge(r,ret[i].getElementsByTagName(tag));}
if(m[1]=3D=3D".")
r=3DjQuery.classFilter(r,m[2]);if(m[1]=3D=3D"#"){var tmp=3D[];for(var =
i=3D0;r[i];i++)
if(r[i].getAttribute("id")=3D=3Dm[2]){tmp=3D[r[i]];break;}
r=3Dtmp;}
ret=3Dr;}
t=3Dt.replace(re2,"");}}
if(t){var =
val=3DjQuery.filter(t,r);ret=3Dr=3Dval.r;t=3DjQuery.trim(val.t);}}
if(t)
ret=3D[];if(ret&&context=3D=3Dret[0])
ret.shift();done=3DjQuery.merge(done,ret);return =
done;},classFilter:function(r,m,not){m=3D" "+m+" ";var tmp=3D[];for(var =
i=3D0;r[i];i++){var pass=3D(" "+r[i].className+" =
").indexOf(m)>=3D0;if(!not&&pass||not&&!pass)
tmp.push(r[i]);}
return tmp;},filter:function(t,r,not){var =
last;while(t&&t!=3Dlast){last=3Dt;var p=3DjQuery.parse,m;for(var =
i=3D0;p[i];i++){m=3Dp[i].exec(t);if(m){t=3Dt.substring(m[0].length);m[2]=3D=
m[2].replace(/\\/g,"");break;}}
if(!m)
break;if(m[1]=3D=3D":"&&m[2]=3D=3D"not")
r=3DisSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);=
else if(m[1]=3D=3D".")
r=3DjQuery.classFilter(r,m[2],not);else if(m[1]=3D=3D"["){var =
tmp=3D[],type=3Dm[3];for(var i=3D0,rl=3Dr.length;i<rl;i++){var =
a=3Dr[i],z=3Da[jQuery.props[m[2]]||m[2]];if(z=3D=3Dnull||/href|src|select=
ed/.test(m[2]))
z=3DjQuery.attr(a,m[2])||'';if((type=3D=3D""&&!!z||type=3D=3D"=3D"&&z=3D=3D=
m[5]||type=3D=3D"!=3D"&&z!=3Dm[5]||type=3D=3D"^=3D"&&z&&!z.indexOf(m[5])|=
|type=3D=3D"$=3D"&&z.substr(z.length-m[5].length)=3D=3Dm[5]||(type=3D=3D"=
*=3D"||type=3D=3D"~=3D")&&z.indexOf(m[5])>=3D0)^not)
tmp.push(a);}
r=3Dtmp;}else if(m[1]=3D=3D":"&&m[2]=3D=3D"nth-child"){var =
merge=3D{},tmp=3D[],test=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=3D=3D"eve=
n"&&"2n"||m[3]=3D=3D"odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),fi=
rst=3D(test[1]+(test[2]||1))-0,last=3Dtest[3]-0;for(var =
i=3D0,rl=3Dr.length;i<rl;i++){var =
node=3Dr[i],parentNode=3Dnode.parentNode,id=3DjQuery.data(parentNode);if(=
!merge[id]){var c=3D1;for(var =
n=3DparentNode.firstChild;n;n=3Dn.nextSibling)
if(n.nodeType=3D=3D1)
n.nodeIndex=3Dc++;merge[id]=3Dtrue;}
var add=3Dfalse;if(first=3D=3D0){if(node.nodeIndex=3D=3Dlast)
add=3Dtrue;}else =
if((node.nodeIndex-last)%first=3D=3D0&&(node.nodeIndex-last)/first>=3D0)
add=3Dtrue;if(add^not)
tmp.push(node);}
r=3Dtmp;}else{var fn=3DjQuery.expr[m[1]];if(typeof fn=3D=3D"object")
fn=3Dfn[m[2]];if(typeof fn=3D=3D"string")
fn=3Deval("false||function(a,i){return =
"+fn+";}");r=3DjQuery.grep(r,function(elem,i){return =
fn(elem,i,m,r);},not);}}
return{r:r,t:t};},dir:function(elem,dir){var =
matched=3D[],cur=3Delem[dir];while(cur&&cur!=3Ddocument){if(cur.nodeType=3D=
=3D1)
matched.push(cur);cur=3Dcur[dir];}
return =
matched;},nth:function(cur,result,dir,elem){result=3Dresult||1;var =
num=3D0;for(;cur;cur=3Dcur[dir])
if(cur.nodeType=3D=3D1&&++num=3D=3Dresult)
break;return cur;},sibling:function(n,elem){var =
r=3D[];for(;n;n=3Dn.nextSibling){if(n.nodeType=3D=3D1&&n!=3Delem)
r.push(n);}
return =
r;}});jQuery.event=3D{add:function(elem,types,handler,data){if(elem.nodeT=
ype=3D=3D3||elem.nodeType=3D=3D8)
return;if(jQuery.browser.msie&&elem.setInterval)
elem=3Dwindow;if(!handler.guid)
handler.guid=3Dthis.guid++;if(data!=3Dundefined){var =
fn=3Dhandler;handler=3Dthis.proxy(fn,function(){return =
fn.apply(this,arguments);});handler.data=3Ddata;}
var =
events=3DjQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=
=3DjQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(ty=
peof jQuery!=3D"undefined"&&!jQuery.event.triggered)
return =
jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=
=3Delem;jQuery.each(types.split(/\s+/),function(index,type){var =
parts=3Dtype.split(".");type=3Dparts[0];handler.type=3Dparts[1];var =
handlers=3Devents[type];if(!handlers){handlers=3Devents[type]=3D{};if(!jQ=
uery.event.special[type]||jQuery.event.special[type].setup.call(elem)=3D=3D=
=3Dfalse){if(elem.addEventListener)
elem.addEventListener(type,handle,false);else if(elem.attachEvent)
elem.attachEvent("on"+type,handle);}}
handlers[handler.guid]=3Dhandler;jQuery.event.global[type]=3Dtrue;});elem=
=3Dnull;},guid:1,global:{},remove:function(elem,types,handler){if(elem.no=
deType=3D=3D3||elem.nodeType=3D=3D8)
return;var =
events=3DjQuery.data(elem,"events"),ret,index;if(events){if(types=3D=3Dun=
defined||(typeof types=3D=3D"string"&&types.charAt(0)=3D=3D"."))
for(var type in events)
this.remove(elem,type+(types||""));else{if(types.type){handler=3Dtypes.ha=
ndler;types=3Dtypes.type;}
jQuery.each(types.split(/\s+/),function(index,type){var =
parts=3Dtype.split(".");type=3Dparts[0];if(events[type]){if(handler)
delete events[type][handler.guid];else
for(handler in events[type])
if(!parts[1]||events[type][handler].type=3D=3Dparts[1])
delete events[type][handler];for(ret in =
events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.=
special[type].teardown.call(elem)=3D=3D=3Dfalse){if(elem.removeEventListe=
ner)
elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else =
if(elem.detachEvent)
elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}
ret=3Dnull;delete events[type];}}});}
for(ret in events)break;if(!ret){var =
handle=3DjQuery.data(elem,"handle");if(handle)handle.elem=3Dnull;jQuery.r=
emoveData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:fun=
ction(type,data,elem,donative,extra){data=3DjQuery.makeArray(data);if(typ=
e.indexOf("!")>=3D0){type=3Dtype.slice(0,-1);var exclusive=3Dtrue;}
if(!elem){if(this.global[type])
jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeT=
ype=3D=3D3||elem.nodeType=3D=3D8)
return undefined;var =
val,ret,fn=3DjQuery.isFunction(elem[type]||null),event=3D!data[0]||!data[=
0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDe=
fault:function(){},stopPropagation:function(){},timeStamp:now()});data[0]=
[expando]=3Dtrue;}
data[0].type=3Dtype;if(exclusive)
data[0].exclusive=3Dtrue;var =
handle=3DjQuery.data(elem,"handle");if(handle)
val=3Dhandle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=3D=
=3D"click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)=3D=3D=3Df=
alse)
val=3Dfalse;if(event)
data.shift();if(extra&&jQuery.isFunction(extra)){ret=3Dextra.apply(elem,v=
al=3D=3Dnull?data:data.concat(val));if(ret!=3D=3Dundefined)
val=3Dret;}
if(fn&&donative!=3D=3Dfalse&&val!=3D=3Dfalse&&!(jQuery.nodeName(elem,'a')=
&&type=3D=3D"click")){this.triggered=3Dtrue;try{elem[type]();}catch(e){}}=

this.triggered=3Dfalse;}
return val;},handle:function(event){var =
val,ret,namespace,all,handlers;event=3Darguments[0]=3DjQuery.event.fix(ev=
ent||window.event);namespace=3Devent.type.split(".");event.type=3Dnamespa=
ce[0];namespace=3Dnamespace[1];all=3D!namespace&&!event.exclusive;handler=
s=3D(jQuery.data(this,"events")||{})[event.type];for(var j in =
handlers){var =
handler=3Dhandlers[j];if(all||handler.type=3D=3Dnamespace){event.handler=3D=
handler;event.data=3Dhandler.data;try
{ret=3Dhandler.apply(this,arguments);}
catch(ex)
{Ektron.OnException.diagException(ex,arguments,handler);}
if(val!=3D=3Dfalse)
val=3Dret;if(ret=3D=3D=3Dfalse){event.preventDefault();event.stopPropagat=
ion();}}}
return val;},fix:function(event){if(event[expando]=3D=3Dtrue)
return event;var =
originalEvent=3Devent;event=3D{originalEvent:originalEvent};var =
props=3D"altKey attrChange attrName bubbles button cancelable charCode =
clientX clientY ctrlKey currentTarget data detail eventPhase fromElement =
handler keyCode metaKey newValue originalTarget pageX pageY prevValue =
relatedNode relatedTarget screenX screenY shiftKey srcElement target =
timeStamp toElement type view wheelDelta which".split(" ");for(var =
i=3Dprops.length;i;i--)
event[props[i]]=3DoriginalEvent[props[i]];event[expando]=3Dtrue;event.pre=
ventDefault=3Dfunction(){if(originalEvent.preventDefault)
originalEvent.preventDefault();originalEvent.returnValue=3Dfalse;};event.=
stopPropagation=3Dfunction(){if(originalEvent.stopPropagation)
originalEvent.stopPropagation();originalEvent.cancelBubble=3Dtrue;};event=
.timeStamp=3Devent.timeStamp||now();if(!event.target)
event.target=3Devent.srcElement||document;if(event.target.nodeType=3D=3D3=
)
event.target=3Devent.target.parentNode;if(!event.relatedTarget&&event.fro=
mElement)
event.relatedTarget=3Devent.fromElement=3D=3Devent.target?event.toElement=
:event.fromElement;if(event.pageX=3D=3Dnull&&event.clientX!=3Dnull){var =
doc=3Ddocument.documentElement,body=3Ddocument.body;event.pageX=3Devent.c=
lientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0=
);event.pageY=3Devent.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||=
0)-(doc.clientTop||0);}
if(!event.which&&((event.charCode||event.charCode=3D=3D=3D0)?event.charCo=
de:event.keyCode))
event.which=3Devent.charCode||event.keyCode;if(!event.metaKey&&event.ctrl=
Key)
event.metaKey=3Devent.ctrlKey;if(!event.which&&event.button)
event.which=3D(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));=
return =
event;},proxy:function(fn,proxy){proxy.guid=3Dfn.guid=3Dfn.guid||proxy.gu=
id||this.guid++;return =
proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:fu=
nction(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)re=
turn =
false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handl=
er);return true;},teardown:function(){if(jQuery.browser.msie)return =
false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.han=
dler);return =
true;},handler:function(event){if(withinElement(event,this))return =
true;event.type=3D"mouseenter";return =
jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function()=
{if(jQuery.browser.msie)return =
false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handle=
r);return true;},teardown:function(){if(jQuery.browser.msie)return =
false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.hand=
ler);return =
true;},handler:function(event){if(withinElement(event,this))return =
true;event.type=3D"mouseleave";return =
jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:fun=
ction(type,data,fn){return =
type=3D=3D"unload"?this.one(type,data,fn):this.each(function(){jQuery.eve=
nt.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var =
one=3DjQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(eve=
nt,one);return(fn||data).apply(this,arguments);});return =
this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind=
:function(type,fn){return =
this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:funct=
ion(type,data,fn){return =
this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},tr=
iggerHandler:function(type,data,fn){return =
this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:functi=
on(fn){var args=3Darguments,i=3D1;while(i<args.length)
jQuery.event.proxy(fn,args[i++]);return =
this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=3D(this.=
lastToggle||0)%i;event.preventDefault();return =
args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function=
(fnOver,fnOut){return =
this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(=
fn){bindReady();if(jQuery.isReady)
fn.call(document,jQuery);else
jQuery.readyList.push(function(){return fn.call(this,jQuery);});return =
this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!j=
Query.isReady){jQuery.isReady=3Dtrue;if(jQuery.readyList){jQuery.each(jQu=
ery.readyList,function(){this.call(document);});jQuery.readyList=3Dnull;}=

jQuery(document).triggerHandler("ready");}}});var =
readyBound=3Dfalse;function =
bindReady(){if(readyBound)return;readyBound=3Dtrue;if(document.addEventLi=
stener&&!jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuer=
y.browser.msie&&window=3D=3Dtop)(function(){if(jQuery.isReady)return;try{=
document.documentElement.doScroll("left");}catch(error){setTimeout(argume=
nts.callee,0);return;}
jQuery.ready();})();if(jQuery.browser.opera)
document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady=
)return;for(var i=3D0;i<document.styleSheets.length;i++)
if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);retur=
n;}
jQuery.ready();},false);if(jQuery.browser.safari){var =
numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!=3D=
"loaded"&&document.readyState!=3D"complete"){setTimeout(arguments.callee,=
0);return;}
if(numStyles=3D=3D=3Dundefined)
numStyles=3DjQuery("style, =
link[rel=3Dstylesheet]").length;if(document.styleSheets.length!=3DnumStyl=
es){setTimeout(arguments.callee,0);return;}
jQuery.ready();})();}
jQuery.event.add(window,"load",jQuery.ready);}
jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mous=
edown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydow=
n,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=3Dfu=
nction(fn){return fn?this.bind(name,fn):this.trigger(name);};});var =
withinElement=3Dfunction(event,elem){var =
parent=3Devent.relatedTarget;while(parent&&parent!=3Delem)try{parent=3Dpa=
rent.parentNode;}catch(error){parent=3Delem;}
return =
parent=3D=3Delem;};jQuery(window).bind("unload",function(){jQuery("*").ad=
d(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:funct=
ion(url,params,callback){if(typeof url!=3D'string')
return this._load(url);var off=3Durl.indexOf(" ");if(off>=3D0){var =
selector=3Durl.slice(off,url.length);url=3Durl.slice(0,off);}
callback=3Dcallback||function(){};var type=3D"GET";if(params)
if(jQuery.isFunction(params)){callback=3Dparams;params=3Dnull;}else{param=
s=3DjQuery.param(params);type=3D"POST";}
var =
self=3Dthis;jQuery.ajax({url:url,type:type,dataType:"html",data:params,co=
mplete:function(res,status){if(status=3D=3D"success"||status=3D=3D"notmod=
ified")
self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<scr=
ipt(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(ca=
llback,[res.responseText,status,res]);}});return =
this;},serialize:function(){return =
jQuery.param(this.serializeArray());},serializeArray:function(){return =
this.map(function(){return =
jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filt=
er(function(){return =
this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.no=
deName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem)=
{var val=3DjQuery(this).val();return =
val=3D=3Dnull?null:val.constructor=3D=3DArray?jQuery.map(val,function(val=
,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get=
();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess=
,ajaxSend".split(","),function(i,o){jQuery.fn[o]=3Dfunction(f){return =
this.bind(o,f);};});var =
jsc=3Dnow();jQuery.extend({get:function(url,data,callback,type){if(jQuery=
.isFunction(data)){callback=3Ddata;data=3Dnull;}
return =
jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type}=
);},getScript:function(url,callback){return =
jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callba=
ck){return =
jQuery.get(url,data,callback,"json");},post:function(url,data,callback,ty=
pe){if(jQuery.isFunction(data)){callback=3Ddata;data=3D{};}
return =
jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type=
});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,setti=
ngs);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,c=
ontentType:"application/x-www-form-urlencoded",processData:true,async:tru=
e,data:null,username:null,password:null,accepts:{xml:"application/xml, =
text/xml",html:"text/html",script:"text/javascript, =
application/javascript",json:"application/json, =
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:=
function(s){s=3DjQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSet=
tings,s));var =
jsonp,jsre=3D/=3D\?(&|$)/g,status,data,type=3Ds.type.toUpperCase();if(s.d=
ata&&s.processData&&typeof s.data!=3D"string")
s.data=3DjQuery.param(s.data);if(s.dataType=3D=3D"jsonp"){if(type=3D=3D"G=
ET"){if(!s.url.match(jsre))
s.url+=3D(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=3D?";}else =
if(!s.data||!s.data.match(jsre))
s.data=3D(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=3D?";s.dataType=3D=
"json";}
if(s.dataType=3D=3D"json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre)=
)){jsonp=3D"jsonp"+jsc++;if(s.data)
s.data=3D(s.data+"").replace(jsre,"=3D"+jsonp+"$1");s.url=3Ds.url.replace=
(jsre,"=3D"+jsonp+"$1");s.dataType=3D"script";window[jsonp]=3Dfunction(tm=
p){data=3Dtmp;success();complete();window[jsonp]=3Dundefined;try{delete =
window[jsonp];}catch(e){}
if(head)
head.removeChild(script);};}
if(s.dataType=3D=3D"script"&&s.cache=3D=3Dnull)
s.cache=3Dfalse;if(s.cache=3D=3D=3Dfalse&&type=3D=3D"GET"){var =
ts=3Dnow();var =
ret=3Ds.url.replace(/(\?|&)_=3D.*?(&|$)/,"$1_=3D"+ts+"$2");s.url=3Dret+((=
ret=3D=3Ds.url)?(s.url.match(/\?/)?"&":"?")+"_=3D"+ts:"");}
if(s.data&&type=3D=3D"GET"){s.url+=3D(s.url.match(/\?/)?"&":"?")+s.data;s=
.data=3Dnull;}
if(s.global&&!jQuery.active++)
jQuery.event.trigger("ajaxStart");var =
remote=3D/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=3D=3D"script"&&type=3D=3D=
"GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=3Dlocation.host){var =
head=3Ddocument.getElementsByTagName("head")[0];var =
script=3Ddocument.createElement("script");script.src=3Ds.url;if(s.scriptC=
harset)
script.charset=3Ds.scriptCharset;if(!jsonp){var =
done=3Dfalse;script.onload=3Dscript.onreadystatechange=3Dfunction(){if(!d=
one&&(!this.readyState||this.readyState=3D=3D"loaded"||this.readyState=3D=
=3D"complete")){done=3Dtrue;success();complete();head.removeChild(script)=
;}};}
head.appendChild(script);return undefined;}
var requestDone=3Dfalse;var xhr=3Dwindow.ActiveXObject?new =
ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)
xhr.open(type,s.url,s.async,s.username,s.password);else
xhr.open(type,s.url,s.async);try{if(s.data)
xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)
xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu=
, 01 Jan 1970 00:00:00 =
GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRe=
questHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataTy=
pe]+", */*":s.accepts._default);}catch(e){}
if(s.beforeSend&&s.beforeSend(xhr,s)=3D=3D=3Dfalse){s.global&&jQuery.acti=
ve--;xhr.abort();return false;}
if(s.global)
jQuery.event.trigger("ajaxSend",[xhr,s]);var =
onreadystatechange=3Dfunction(isTimeout){if(!requestDone&&xhr&&(xhr.ready=
State=3D=3D4||isTimeout=3D=3D"timeout")){requestDone=3Dtrue;if(ival){clea=
rInterval(ival);ival=3Dnull;}
status=3DisTimeout=3D=3D"timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"=
error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"=
success";if(status=3D=3D"success"){try{data=3DjQuery.httpData(xhr,s.dataT=
ype,s.dataFilter);}catch(e){status=3D"parsererror";}}
if(status=3D=3D"success"){var =
modRes;try{modRes=3Dxhr.getResponseHeader("Last-Modified");}catch(e){}
if(s.ifModified&&modRes)
jQuery.lastModified[s.url]=3DmodRes;if(!jsonp)
success();}else
jQuery.handleError(s,xhr,status);complete();if(s.async)
xhr=3Dnull;}};if(s.async){var =
ival=3DsetInterval(onreadystatechange,13);if(s.timeout>0)
setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)
onreadystatechange("timeout");}},s.timeout);}
try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}
if(!s.async)
onreadystatechange();function success(){if(s.success)
s.success(data,status);if(s.global)
jQuery.event.trigger("ajaxSuccess",[xhr,s]);}
function complete(){if(s.complete)
s.complete(xhr,status);if(s.global)
jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.activ=
e)
jQuery.event.trigger("ajaxStop");}
return =
xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,=
e);if(s.global)
jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:functi=
on(xhr){try{return!xhr.status&&location.protocol=3D=3D"file:"||(xhr.statu=
s>=3D200&&xhr.status<300)||xhr.status=3D=3D304||xhr.status=3D=3D1223||jQu=
ery.browser.safari&&xhr.status=3D=3Dundefined;}catch(e){}
return false;},httpNotModified:function(xhr,url){try{var =
xhrRes=3Dxhr.getResponseHeader("Last-Modified");return =
xhr.status=3D=3D304||xhrRes=3D=3DjQuery.lastModified[url]||jQuery.browser=
.safari&&xhr.status=3D=3Dundefined;}catch(e){}
return false;},httpData:function(xhr,type,filter){var =
ct=3Dxhr.getResponseHeader("content-type"),xml=3Dtype=3D=3D"xml"||!type&&=
ct&&ct.indexOf("xml")>=3D0,data=3Dxml?xhr.responseXML:xhr.responseText;if=
(xml&&data.documentElement.tagName=3D=3D"parsererror")
throw"parsererror";if(filter)
data=3Dfilter(data,type);if(type=3D=3D"script")
jQuery.globalEval(data);if(type=3D=3D"json")
data=3Deval("("+data+")");return data;},param:function(a){var =
s=3D[];if(a.constructor=3D=3DArray||a.jquery)
jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"=3D"+encod=
eURIComponent(this.value));});else
for(var j in a)
if(a[j]&&a[j].constructor=3D=3DArray)
jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"=3D"+encodeURIC=
omponent(this));});else
s.push(encodeURIComponent(j)+"=3D"+encodeURIComponent(jQuery.isFunction(a=
[j])?a[j]():a[j]));return =
s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed=
,callback){return =
speed?this.animate({height:"show",width:"show",opacity:"show"},speed,call=
back):this.filter(":hidden").each(function(){this.style.display=3Dthis.ol=
dblock||"";if(jQuery.css(this,"display")=3D=3D"none"){var =
elem=3DjQuery("<"+this.tagName+" =
/>").appendTo("body");this.style.display=3Delem.css("display");if(this.st=
yle.display=3D=3D"none")
this.style.display=3D"block";elem.remove();}}).end();},hide:function(spee=
d,callback){return =
speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,call=
back):this.filter(":visible").each(function(){this.oldblock=3Dthis.oldblo=
ck||jQuery.css(this,"display");this.style.display=3D"none";}).end();},_to=
ggle:jQuery.fn.toggle,toggle:function(fn,fn2){return =
jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arg=
uments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"}=
,fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"sh=
ow":"hide"]();});},slideDown:function(speed,callback){return =
this.animate({height:"show"},speed,callback);},slideUp:function(speed,cal=
lback){return =
this.animate({height:"hide"},speed,callback);},slideToggle:function(speed=
,callback){return =
this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,ca=
llback){return =
this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,ca=
llback){return =
this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,=
callback){return =
this.animate({opacity:to},speed,callback);},animate:function(prop,speed,e=
asing,callback){var optall=3DjQuery.speed(speed,easing,callback);return =
this[optall.queue=3D=3D=3Dfalse?"each":"queue"](function(){if(this.nodeTy=
pe!=3D1)
return false;var =
opt=3DjQuery.extend({},optall),p,hidden=3DjQuery(this).is(":hidden"),self=
=3Dthis;for(p in =
prop){if(prop[p]=3D=3D"hide"&&hidden||prop[p]=3D=3D"show"&&!hidden)
return =
opt.complete.call(this);if(p=3D=3D"height"||p=3D=3D"width"){opt.display=3D=
jQuery.css(this,"display");opt.overflow=3Dthis.style.overflow;}}
if(opt.overflow!=3Dnull)
this.style.overflow=3D"hidden";opt.curAnim=3DjQuery.extend({},prop);jQuer=
y.each(prop,function(name,val){var e=3Dnew =
jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))
e[val=3D=3D"toggle"?hidden?"show":"hide":val](prop);else{var =
parts=3Dval.toString().match(/^([+-]=3D)?([\d+-.]+)(.*)$/),start=3De.cur(=
true)||0;if(parts){var =
end=3DparseFloat(parts[2]),unit=3Dparts[3]||"px";if(unit!=3D"px"){self.st=
yle[name]=3D(end||1)+unit;start=3D((end||1)/e.cur(true))*start;self.style=
[name]=3Dstart+unit;}
if(parts[1])
end=3D((parts[1]=3D=3D"-=3D"?-1:1)*end)+start;e.custom(start,end,unit);}e=
lse
e.custom(start,val,"");}});return =
true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type=
.constructor=3D=3DArray)){fn=3Dtype;type=3D"fx";}
if(!type||(typeof type=3D=3D"string"&&!fn))
return queue(this[0],type);return =
this.each(function(){if(fn.constructor=3D=3DArray)
queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).le=
ngth=3D=3D1)
fn.call(this);}});},stop:function(clearQueue,gotoEnd){var =
timers=3DjQuery.timers;if(clearQueue)
this.queue([]);this.each(function(){for(var =
i=3Dtimers.length-1;i>=3D0;i--)
if(timers[i].elem=3D=3Dthis){if(gotoEnd)
timers[i](true);timers.splice(i,1);}});if(!gotoEnd)
this.dequeue();return this;}});var =
queue=3Dfunction(elem,type,array){if(elem){type=3Dtype||"fx";var =
q=3DjQuery.data(elem,type+"queue");if(!q||array)
q=3DjQuery.data(elem,type+"queue",jQuery.makeArray(array));}
return q;};jQuery.fn.dequeue=3Dfunction(type){type=3Dtype||"fx";return =
this.each(function(){var q=3Dqueue(this,type);q.shift();if(q.length)
q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var =
opt=3Dspeed&&speed.constructor=3D=3DObject?speed:{complete:fn||!fn&&easin=
g||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easi=
ng&&easing.constructor!=3DFunction&&easing};opt.duration=3D(opt.duration&=
&opt.duration.constructor=3D=3DNumber?opt.duration:jQuery.fx.speeds[opt.d=
uration])||jQuery.fx.speeds.def;opt.old=3Dopt.complete;opt.complete=3Dfun=
ction(){if(opt.queue!=3D=3Dfalse)
jQuery(this).dequeue();if(jQuery.isFunction(opt.old))
opt.old.call(this);};return =
opt;},easing:{linear:function(p,n,firstNum,diff){return =
firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*M=
ath.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,=
options,prop){this.options=3Doptions;this.elem=3Delem;this.prop=3Dprop;if=
(!options.orig)
options.orig=3D{};}});jQuery.fx.prototype=3D{update:function(){if(this.op=
tions.step)
this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop=
]||jQuery.fx.step._default)(this);if(this.prop=3D=3D"height"||this.prop=3D=
=3D"width")
this.elem.style.display=3D"block";},cur:function(force){if(this.elem[this=
.prop]!=3Dnull&&this.elem.style[this.prop]=3D=3Dnull)
return this.elem[this.prop];var =
r=3DparseFloat(jQuery.css(this.elem,this.prop,force));return =
r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:=
function(from,to,unit){this.startTime=3Dnow();this.start=3Dfrom;this.end=3D=
to;this.unit=3Dunit||this.unit||"px";this.now=3Dthis.start;this.pos=3Dthi=
s.state=3D0;this.update();var self=3Dthis;function t(gotoEnd){return =
self.step(gotoEnd);}
t.elem=3Dthis.elem;jQuery.timers.push(t);if(jQuery.timerId=3D=3Dnull){jQu=
ery.timerId=3DsetInterval(function(){var timers=3DjQuery.timers;for(var =
i=3D0;i<timers.length;i++)
if(!timers[i]())
timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQu=
ery.timerId=3Dnull;}},13);}},show:function(){this.options.orig[this.prop]=
=3DjQuery.attr(this.elem.style,this.prop);this.options.show=3Dtrue;this.c=
ustom(0,this.cur());if(this.prop=3D=3D"width"||this.prop=3D=3D"height")
this.elem.style[this.prop]=3D"1px";jQuery(this.elem).show();},hide:functi=
on(){this.options.orig[this.prop]=3DjQuery.attr(this.elem.style,this.prop=
);this.options.hide=3Dtrue;this.custom(this.cur(),0);},step:function(goto=
End){var =
t=3Dnow();if(gotoEnd||t>this.options.duration+this.startTime){this.now=3D=
this.end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[thi=
s.prop]=3Dtrue;var done=3Dtrue;for(var i in this.options.curAnim)
if(this.options.curAnim[i]!=3D=3Dtrue)
done=3Dfalse;if(done){if(this.options.display!=3Dnull){this.elem.style.ov=
erflow=3Dthis.options.overflow;this.elem.style.display=3Dthis.options.dis=
play;if(jQuery.css(this.elem,"display")=3D=3D"none")
this.elem.style.display=3D"block";}
if(this.options.hide)
this.elem.style.display=3D"none";if(this.options.hide||this.options.show)=

for(var p in this.options.curAnim)
jQuery.attr(this.elem.style,p,this.options.orig[p]);}
if(done)
this.options.complete.call(this.elem);return false;}else{var =
n=3Dt-this.startTime;this.state=3Dn/this.options.duration;this.pos=3DjQue=
ry.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](th=
is.state,n,0,1,this.options.duration);this.now=3Dthis.start+((this.end-th=
is.start)*this.pos);this.update();}
return =
true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:=
{scrollLeft:function(fx){fx.elem.scrollLeft=3Dfx.now;},scrollTop:function=
(fx){fx.elem.scrollTop=3Dfx.now;},opacity:function(fx){jQuery.attr(fx.ele=
m.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=3D=
fx.now+fx.unit;}}});jQuery.fn.offset=3Dfunction(){var =
left=3D0,top=3D0,elem=3Dthis[0],results;if(elem)with(jQuery.browser){var =
parent=3Delem.parentNode,offsetChild=3Delem,offsetParent=3Delem.offsetPar=
ent,doc=3Delem.ownerDocument,safari2=3Dsafari&&parseInt(version)<522&&!/a=
dobeair/i.test(userAgent),css=3DjQuery.curCSS,fixed=3Dcss(elem,"position"=
)=3D=3D"fixed";if(elem.getBoundingClientRect){var =
box=3Delem.getBoundingClientRect();add(box.left+Math.max(doc.documentElem=
ent.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.=
scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.d=
ocumentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while=
(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(moz=
illa&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)
border(offsetParent);if(!fixed&&css(offsetParent,"position")=3D=3D"fixed"=
)
fixed=3Dtrue;offsetChild=3D/^body$/i.test(offsetParent.tagName)?offsetChi=
ld:offsetParent;offsetParent=3DoffsetParent.offsetParent;}
while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/=
^inline|table.*$/i.test(css(parent,"display")))
add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflo=
w")!=3D"visible")
border(parent);parent=3Dparent.parentNode;}
if((safari2&&(fixed||css(offsetChild,"position")=3D=3D"absolute"))||(mozi=
lla&&css(offsetChild,"position")!=3D"absolute"))
add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)
add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max=
(doc.documentElement.scrollTop,doc.body.scrollTop));}
results=3D{top:top,left:left};}
function =
border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS=
(elem,"borderTopWidth",true));}
function add(l,t){left+=3DparseInt(l,10)||0;top+=3DparseInt(t,10)||0;}
return results;};jQuery.fn.extend({position:function(){var =
left=3D0,top=3D0,results;if(this[0]){var =
offsetParent=3Dthis.offsetParent(),offset=3Dthis.offset(),parentOffset=3D=
/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.=
offset();offset.top-=3Dnum(this,'marginTop');offset.left-=3Dnum(this,'mar=
ginLeft');parentOffset.top+=3Dnum(offsetParent,'borderTopWidth');parentOf=
fset.left+=3Dnum(offsetParent,'borderLeftWidth');results=3D{top:offset.to=
p-parentOffset.top,left:offset.left-parentOffset.left};}
return results;},offsetParent:function(){var =
offsetParent=3Dthis[0].offsetParent;while(offsetParent&&(!/^body|html$/i.=
test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=3D=3D'sta=
tic'))
offsetParent=3DoffsetParent.offsetParent;return =
jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var =
method=3D'scroll'+name;jQuery.fn[method]=3Dfunction(val){if(!this[0])retu=
rn;return =
val!=3Dundefined?this.each(function(){this=3D=3Dwindow||this=3D=3Ddocumen=
t?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window)=
.scrollTop()):this[method]=3Dval;}):this[0]=3D=3Dwindow||this[0]=3D=3Ddoc=
ument?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.docu=
mentElement[method]||document.body[method]:this[0][method];};});jQuery.ea=
ch(["Height","Width"],function(i,name){var =
tl=3Di?"Left":"Top",br=3Di?"Right":"Bottom";jQuery.fn["inner"+name]=3Dfun=
ction(){return this[name.toLowerCase()]()+
num(this,"padding"+tl)+
num(this,"padding"+br);};jQuery.fn["outer"+name]=3Dfunction(margin){retur=
n this["inner"+name]()+
num(this,"border"+tl+"Width")+
num(this,"border"+br+"Width")+
(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();var =
$ektron=3Dwindow.$ektron=3Dwindow.jQuery;window.jQuery.noConflict(true);i=
f("undefined"=3D=3Dtypeof(window.$))
{window.$=3Dwindow.$ektron;}
if("undefined"=3D=3Dtypeof(window.jQuery))
{window.jQuery=3Dwindow.$ektron;}
var =
Ektron=3Dwindow.Ektron=3D{};Ektron.RegExp=3D{};Ektron.RegExp.escape=3Dfun=
ction(s)
{return(s+"").replace(Ektron.RegExp.escape.re,"\\$&");};Ektron.RegExp.esc=
ape.re=3D/[^\w\s]/g;Ektron.RegExp.Char=3D{};Ektron.RegExp.Char.amp=3D/\&/=
g;Ektron.RegExp.Char.lt=3D/</g;Ektron.RegExp.Char.gt=3D/>/g;Ektron.RegExp=
.Char.apos=3D/\'/g;Ektron.RegExp.Char.quot=3D/\"/g;Ektron.RegExp.Char.lf=3D=
/\n/g;Ektron.RegExp.Char.cr=3D/\r/g;Ektron.RegExp.Char.backslash=3D/\\/g;=
Ektron.RegExp.Entity=3D{};Ektron.RegExp.Entity.amp=3D/\&amp;/g;Ektron.Reg=
Exp.Entity.lt=3D/\&lt;/g;Ektron.RegExp.Entity.gt=3D/\&gt;/g;Ektron.RegExp=
.Entity.apos=3D/\&apos;/g;Ektron.RegExp.Entity.quot=3D/\&quot;/g;Ektron.R=
egExp.CharacterClass=3D{};Ektron.RegExp.CharacterClass.s=3D"[\t\x0b\f =
\xa0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\n\r\u2028\u2029]";Ektron.=
OnException=3Dfunction(me,onexception,ex,args,callee)
{var returnValue;var method=3Dfunction(){};if(callee)
{method=3Dcallee;}
else if(args&&args.callee)
{method=3Dargs.callee;}
var =
onexceptionList=3D[Ektron.onexception,me.constructor.onexception,me.onexc=
eption,method.onexception,onexception];for(var =
i=3D0;i<onexceptionList.length;i++)
{var onexception=3DonexceptionList[i];if("function"=3D=3Dtypeof =
onexception&&(0=3D=3Di||onexception!=3DonexceptionList[i-1]))
{var result=3Donexception.call(me,ex,args,callee);if(typeof =
result!=3D"undefined")returnValue=3Dresult;}}
if("undefined"=3D=3Dtypeof returnValue)
{throw ex;}
return =
returnValue;};Ektron.OnException.exceptionMessage=3Dfunction(ex,args,call=
ee)
{var msg=3D"";try
{msg=3Dex.message||ex||"";}
catch(exIgnore){};var file=3D"";try
{file=3Dex.filename||ex.fileName||ex.sourceURL||"";if(file)file=3D"\nFile=
: "+file;}
catch(exIgnore){};var line=3D"";try
{line=3Dex.lineNumber||ex.line||"";if(line)line=3D"\nLine: "+line;}
catch(exIgnore){};var func=3D"";try
{if(callee||(args&&args.callee))
{var funcCode=3DString(callee||args.callee);var =
funcCodeLines=3DfuncCode.split("\n");var =
max=3DEktron.OnException.exceptionMessage.maxLinesOfCode;if(funcCodeLines=
&&funcCodeLines.length>max)
{funcCodeLines.splice(max,funcCodeLines.length-max);funcCode=3DfuncCodeLi=
nes.join("\n")+"...";}
func+=3D"\n\nFunction:\n"+funcCode+"\n";if(args&&args.length>0)
{func+=3D"Arguments:\n";}}
if(args&&args.length)
{for(var i=3D0;i<args.length;i++)
{var arg=3Dargs[i];if(arg&&"object"=3D=3Dtypeof arg)
{if(1=3D=3Darg.nodeType)
{var show=3D"[HTMLElement "+arg.tagName;if(arg.id)show+=3D" =
id=3D\""+arg.id+"\"";if(arg.className)show+=3D" =
class=3D\""+arg.className+"\"";show+=3D"]";arg=3Dshow;}
else if(3=3D=3Darg.nodeType)
{arg=3D"[Node \""+arg.nodeValue+"\"]";}}
func+=3D"\n"+arg+"\n";}}}
catch(exIgnore){};return =
msg+file+line+func;};Ektron.OnException.exceptionMessage.maxLinesOfCode=3D=
24;Ektron.OnException.ignoreException=3Dfunction(ex,args,callee){return =
null;};Ektron.OnException.throwException=3Dfunction(ex,args,callee){throw=
 =
ex;};Ektron.OnException.returnException=3Dfunction(ex,args,callee){return=
 =
Ektron.OnException.exceptionMessage(ex);};Ektron.OnException.returnValue=3D=
function(v)
{return function(ex,args,callee){return =
v;};};Ektron.OnException.returnArgument=3Dfunction(n)
{return function(ex,args,callee){if(args&&args.length>n)return =
args[n];};};Ektron.OnException.alertException=3Dfunction(ex,args,callee){=
alert(Ektron.OnException.exceptionMessage(ex,args,callee));};Ektron.OnExc=
eption.consoleException=3Dfunction(ex,args,callee){if(typeof =
console!=3D"undefined")console.error(Ektron.OnException.exceptionMessage(=
ex,args,callee));};Ektron.OnException.diagException=3Dfunction(ex,args,ca=
llee)
{if(document!=3Dnull&&document.cookie&&document.cookie.indexOf("Ektron.di=
agException=3D")>-1)
{if(confirm("Click OK to debug or Cancel to =
continue.\n\n"+Ektron.OnException.exceptionMessage(ex,args,callee)))
{debugger;}}
return null;}
Ektron.Class=3D{functionName:function(fn)
{if(typeof fn!=3D"function")throw new TypeError("fn must be of type =
Function");var a=3Dfn.toString().match(/function =
(\w+)\(/);return(a!=3Dnull?a[1]:"anonymous");},nonEnumerables:["toLocaleS=
tring","toString","valueOf"],inherits:function(thisObject,objBase,baseCla=
ssName)
{if(typeof thisObject!=3D"object")throw new TypeError("thisObject must =
be of type Object");if(null=3D=3D=3DthisObject)throw new =
RangeError("thisObject is null");if(typeof objBase!=3D"object")throw new =
TypeError("objBase must be of type =
Object");if(null=3D=3D=3DobjBase)throw new RangeError("objBase is =
null");if(typeof objBase.constructor!=3D"function")throw new =
TypeError("objBase.constructor must be of type Function");if(typeof =
baseClassName!=3D"string"&&typeof baseClassName!=3D"undefined")throw new =
TypeError("baseClassName must be of type String or =
undefined");if("undefined"=3D=3Dtypeof baseClassName)
{for(var p in objBase.constructor.prototype)
{throw new TypeError("baseClassName must be specified when objBase is =
derived using prototype");}}
if(typeof baseClassName!=3D"string")
{baseClassName=3DEktron.Class.functionName(objBase.constructor);}
if("anonymous"=3D=3DbaseClassName)throw new TypeError("baseClassName =
must be specified when objBase constructor is anonymous");for(var p in =
objBase)
{if(p!=3D"constructor")
{thisObject[p]=3DobjBase[p];if("function"=3D=3Dtypeof objBase[p])
{thisObject[baseClassName+"_"+p]=3DobjBase[p];}}}
for(var i in Ektron.Class.nonEnumerables)
{thisObject[baseClassName+"_"+Ektron.Class.nonEnumerables[i]]=3DobjBase[E=
ktron.Class.nonEnumerables[i]];}
return thisObject;},overrides:function(baseClassName,methods)
{if(typeof baseClassName!=3D"string"&&typeof =
baseClassName!=3D"undefined")throw new TypeError("baseClassName must be =
of type String or undefined");if(typeof =
baseClassName!=3D"string")baseClassName=3DEktron.Class.functionName(objBa=
se.constructor);if(typeof =
methods!=3D"undefined"&&methods!=3Dnull&&methods.constructor!=3DArray)thr=
ow new TypeError("methods must be of type Array or undefined");return =
function(objBase,args)
{if(typeof objBase!=3D"object")throw new TypeError("objBase must be of =
type Object");if(null=3D=3D=3DobjBase)throw new RangeError("objBase is =
null");if(typeof objBase.constructor!=3D"function")throw new =
TypeError("objBase.constructor must be of type Function");if(typeof =
args!=3D"object"&&typeof args!=3D"undefined")throw new TypeError("args =
must be of type Array or undefined");if("undefined"=3D=3Dtypeof =
args)args=3D[];objBase.constructor=3Dthis;var =
name=3D"";if("object"=3D=3Dtypeof =
methods&&methods.constructor=3D=3DArray)
{for(var i=3D0;i<methods.length;i++)
{name=3DbaseClassName+"_"+methods[i];if("undefined"=3D=3Dtypeof =
objBase[name])
{objBase[name]=3DobjBase[methods[i]];}}}
else
{var aryBaseMethods=3D[];for(var p in objBase)
{if(("function"=3D=3Dtypeof objBase[p])&&(p!=3D"constructor"))
{aryBaseMethods[p]=3DobjBase[p];}}
for(var p in aryBaseMethods)
{name=3DbaseClassName+"_"+p;if("undefined"=3D=3Dtypeof objBase[name])
{objBase[name]=3DaryBaseMethods[p];}}
for(var i in Ektron.Class.nonEnumerables)
{name=3DbaseClassName+"_"+Ektron.Class.nonEnumerables[i];if("undefined"=3D=
=3Dtypeof objBase[name])
{objBase[name]=3DobjBase[Ektron.Class.nonEnumerables[i]];}}}
this.apply(objBase,args);return objBase;};}};Ektron.ready=3Dfunction(fn)
{$ektron().one('EktronReady',function()
{try
{fn.apply(this,arguments);}
catch(ex)
{Ektron.OnException.diagException(ex,[fn]);}});};Ektron.ready.endRequestH=
andler=3Dfunction(sender,args)
{var objError=3Dargs.get_error();if(objError)
{args.set_errorHandled(true);Ektron.OnException.diagException(new =
Error("Error during Ajax request:\n"+objError.message),arguments);}
else
{$ektron().trigger("EktronReady",["endRequest",sender,args]);}};if(typeof=
 =
Sys!=3D"undefined"&&Sys.WebForms&&Sys.WebForms.PageRequestManager&&Sys.We=
bForms.PageRequestManager.getInstance()!=3Dnull)
{Sys.WebForms.PageRequestManager.getInstance().add_endRequest(Ektron.read=
y.endRequestHandler);$ektron().ready(function()
{$ektron().trigger("EktronReady",["ready"]);});}
else
{$ektron().ready(function()
{if(typeof =
Sys!=3D"undefined"&&Sys.WebForms&&Sys.WebForms.PageRequestManager&&Sys.We=
bForms.PageRequestManager.getInstance()!=3Dnull)
{Sys.WebForms.PageRequestManager.getInstance().add_endRequest(Ektron.read=
y.endRequestHandler);}
$ektron().trigger("EktronReady",["ready"]);});}
Ektron.RegExp.ltrim=3Dnew =
RegExp("^"+Ektron.RegExp.CharacterClass.s+"+");Ektron.RegExp.rtrim=3Dnew =
RegExp(Ektron.RegExp.CharacterClass.s+"+$");$ektron.trim=3Dfunction(text)=

{return(text+"").replace(Ektron.RegExp.ltrim,"").replace(Ektron.RegExp.rt=
rim,"");};if(typeof $ektron.fn.closest!=3D"function")
{$ektron.fn.extend({closest:function(selector){return =
this.map(function(){var =
cur=3Dthis;while(cur&&cur.ownerDocument){if(jQuery(cur).is(selector))
return =
cur;cur=3Dcur.parentNode;}});}});};$ektron.extend({ltrim:function(text){r=
eturn(text+"").replace(Ektron.RegExp.ltrim,"");},rtrim:function(text){ret=
urn(text+"").replace(Ektron.RegExp.rtrim,"");},addLoadEvent:function(fn)
{var oldOnLoad=3Dwindow.onload;if(typeof window.onload!=3D'function')
{window.onload=3Dfn;}
else
{window.onload=3Dfunction()
{oldOnLoad();fn();}}},ajaxCallback:function(uniqueId,data,callback,onexce=
ption)
{var options=3D("object"=3D=3Dtypeof =
uniqueId?uniqueId:{uniqueId:uniqueId,data:data,success:callback,onexcepti=
on:onexception});var =
ajaxSettings=3D$ektron.extend({uniqueId:"__Page",type:"POST",dataType:"ht=
ml",data:"",success:function(){},onexception:null},options);var =
uniqueId=3DajaxSettings.uniqueId;var =
data=3DajaxSettings.data;if("object"=3D=3Dtypeof data&&data!=3Dnull)
{data=3D$ektron.param(data);}
var successCallback=3DajaxSettings.success;var =
onexception=3DajaxSettings.onexception;var =
aryClientManager=3D[];$ektron(":hidden[id*=3D'EktronClientManager']").eac=
h(function()
{if(this.value)
{var values=3Dthis.value.split(",");for(var i in values)
{var name=3Dvalues[i];if(!aryClientManager[name])
{aryClientManager.push(name);aryClientManager[name]=3Dtrue;}}}});return =
$ektron.ajax($ektron.extend(ajaxSettings,{data:{__CALLBACKID:uniqueId,__C=
ALLBACKPARAM:data,__VIEWSTATE:"",EktronClientManager:aryClientManager.joi=
n(",")},success:function(data)
{if("string"=3D=3Dtypeof data)
{aryMatch=3Ddata.match(/^([0-9]+)\|/);if(aryMatch&&2=3D=3DaryMatch.length=
)
{var =
nCount=3DparseInt(aryMatch[1],10);data=3Ddata.substring(aryMatch[0].lengt=
h+nCount);}
else
{data=3Ddata.replace(/^[se]/,"").replace(/0\|$/,"");}}
try
{successCallback.apply(this,arguments);}
catch(ex)
{Ektron.OnException(this,onexception,ex,arguments,successCallback);}
$ektron().trigger("EktronReady",["callback"]);}}));},isEditableElement:fu=
nction(elem)
{if(!elem)return false;var =
bEditable=3D(true=3D=3Delem.isContentEditable);if(elem.ownerDocument)
{if("on"=3D=3Delem.ownerDocument.designMode)
{bEditable=3Dtrue;}
else =
if((("INPUT"=3D=3Delem.tagName&&("text"=3D=3Delem.type||""=3D=3Delem.type=
))||"TEXTAREA"=3D=3Delem.tagName)&&!elem.disabled&&!elem.readOnly)
{bEditable=3Dtrue;}}
return bEditable;}});$ektron.fn.extend({unwrap:function()
{var ret=3D[];this.each(function()
{var eThis=3D$ektron(this);var =
content=3DeThis.contents();eThis.after(content).remove();ret=3Dret.concat=
(content.get());});return =
this.pushStack(ret);},ajaxCallback:function(uniqueId,data,callback,onexce=
ption)
{var me=3Dthis;var options=3D("object"=3D=3Dtypeof =
uniqueId?uniqueId:{uniqueId:uniqueId,data:data,complete:callback,onexcept=
ion:onexception});var =
ajaxSettings=3D$ektron.extend({success:function(){},complete:function(){}=
,onexception:null},options);var =
successCallback=3DajaxSettings.success;var =
completeCallback=3DajaxSettings.complete;var =
onexception=3DajaxSettings.onexception;$ektron.ajaxCallback($ektron.exten=
d(ajaxSettings,{success:function(data)
{$ektron.each(me,function()
{$ektron(this).html(data);});try
{successCallback.apply(me,arguments);}
catch(ex)
{Ektron.OnException(me,onexception,ex,arguments,successCallback);}},compl=
ete:function()
{try
{completeCallback.apply(me,arguments);}
catch(ex)
{Ektron.OnException(me,onexception,ex,arguments,completeCallback);}},onex=
ception:onexception}));return =
this;},makeIdentifiersUnique:function(makeUnique)
{var descendantOrSelf=3Dthis.find("*").andSelf();var =
strUniqueSuffix=3DMath.floor(Math.random()*1679616).toString(36);makeUniq=
ue=3D("function"=3D=3Dtypeof makeUnique?makeUnique:function(id)
{return =
id.replace(/_[0-9a-z]{4}$/,"")+"_"+strUniqueSuffix;});descendantOrSelf.fi=
lter("[id]").each(function()
{this.id=3DmakeUnique(this.id);});descendantOrSelf.filter("label").each(f=
unction()
{this.htmlFor=3DmakeUnique(this.htmlFor);});descendantOrSelf.filter("[nam=
e]").each(function()
{try
{if($ektron.browser.msie)
{var strHTML=3Dthis.outerHTML+"";strHTML=3DstrHTML.replace(new =
RegExp("name=3D"+this.name,"g"),"name=3D"+makeUnique(this.name));$ektron(=
this).replaceWith(strHTML);}
else
{this.name=3DmakeUnique(this.name);}}
catch(ex)
{};});return =
this;}});Ektron.Class.overrides("jquery",["clone"]).call(function()
{this.clone=3Dfunction(events)
{var ret=3Dthis.jquery_clone.apply(this,arguments);var =
dstFormElements=3Dret.find("*").andSelf().filter(":input");if(dstFormElem=
ents.length>0)
{var =
srcFormElements=3Dthis.find("*").andSelf().filter(":input");dstFormElemen=
ts.each(function(i)
{$ektron(this).val(srcFormElements.eq(i).val());if("checkbox"=3D=3Dthis.t=
ype||"radio"=3D=3Dthis.type)
{this.checked=3DsrcFormElements.get(i).checked;}});}
return =
ret;};},$ektron.fn);Ektron.Class.overrides("jquery",["handle"]).call(func=
tion()
{this.handle=3Dfunction(event)
{try
{return $ektron.event.jquery_handle.apply(this,arguments);}
catch(ex)
{Ektron.OnException.diagException(ex,arguments,$ektron.event.jquery_handl=
e);return false;}};},$ektron.event);}
Ektron.ready(function(event,eventName)
{if("localhost"=3D=3Dlocation.hostname&&typeof =
SymRealOnLoad!=3D"undefined")
{if(document!=3Dnull&&document.cookie&&-1=3D=3Ddocument.cookie.indexOf("E=
ktron.SymantecWarning=3D"))
{var msg=3D"The Symantec ad blocking in your system may prevent some web =
pages from functioning properly. Please consult your IT administrator if =
you need to turn it off. ";msg+=3D"\nFor more information, please =
read:\n\nhttp://dev.ektron.com/kb_article.aspx?id=3D24520";alert(msg);var=
 date=3Dnew Date();var =
periodInDays=3D1;date.setTime(date.getTime()+(periodInDays*24*60*60*1000)=
);var =
expires=3D'expires=3D'+date.toUTCString();document.cookie=3D"Ektron.Syman=
tecWarning=3Dtrue; "+expires+"; path=3D/";}}});

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/webtoolbar.js

var m_EkTbTimeout_AjaxToolBar =3D null;
var m_EkTbAutomaticOutsideBorder_AjaxToolBar =3D true;
var m_EkTbOutsideBorder_AjaxToolBar =3D true;
var m_EkTbMenuOffDelay_AjaxToolBar =3D 500;
var m_EkTbMenuBorderWidth_AjaxToolBar =3D 3;

var m_EkTbStopAtRoot =3D 0;
var m_EkTbStopAtCss =3D 1;
var m_EkTbStopAtOffset =3D 2;
var m_EkTbLastObj;
var m_bEkTbReady;

if (m_bEkTbReady !=3D=3D true)
{
    m_bEkTbReady =3D false;
}

function GetPreviewURL() {

    var url =3D self.location.href;
    var arString =3D url.split('?');
    if (arString.length > 1) { url =3D url + "&cmsMode=3DPreview"}
    else { url =3D url + "?cmsMode=3DPreview"}
    return url;
}
function addEkTbLoadEvent()
{
    var oldonload =3D window.onload;
    window.onload =3D function()
        {
            if (typeof oldonload =3D=3D 'function')
            {
                oldonload();
            }
            setTimeout("m_bEkTbReady =3D true;", 500);
        }
}

if (typeof $ektron !=3D=3D 'undefined')
{
    $ektron().ready( function() {
	    m_bEkTbReady =3D true;
    });
}

addEkTbLoadEvent();

function EkTbWebMenuPopUpWindow (url, hWind, nWidth, nHeight, nScroll, =
nResize) {
    url =3D url.replace(/&amp;amp;/g,"&").replace(/&amp;/g,"&");
	if (!m_bEkTbReady) return false;
	if (nWidth > screen.width) {
		nWidth =3D screen.width;
	}
	if (nHeight > screen.height) {
		nHeight =3D screen.height;
	}
	var cToolBar =3D 'toolbar=3D0,location=3D0,directories=3D0,status=3D' + =
nResize + ',menubar=3D0,scrollbars=3D' + nScroll + ',resizable=3D' + =
nResize + ',width=3D' + nWidth + ',height=3D' + nHeight;
	var popupwin =3D window.open(url, hWind, cToolBar);
	return popupwin;
}

function EkTbFade(opacity, speed, change, holdTime, startDelay, =
fadeType, name) {
	if (!m_bEkTbReady) return false;
	var MyObj =3D document.getElementById(name);
	if (startDelay =3D=3D 0) {
		if (!document.all) {
			MyObj.style.MozOpacity =3D (opacity / 100);
		}
		else {
			MyObj.filters.alpha.opacity =3D (opacity);
		}
		if (((opacity >=3D 0) && (change < 0)) || ((opacity < 99) && (change > =
0))) {
			opacity +=3D change;
			if (opacity > 99) {
				opacity =3D 99;
			}
			setTimeout("EkTbFade(" + opacity + "," + speed + "," + change + "," + =
holdTime + "," + startDelay + ",'" + fadeType + "','" + name + "')", =
speed);
		}
		else {
			change =3D (0 - change);
			opacity +=3D change;
			if (fadeType.toLowerCase() =3D=3D "cycle") {
				setTimeout("EkTbFade(" + opacity + "," + speed + "," + change + "," =
+ holdTime + "," + startDelay + ",'" + fadeType + "','" + name + "')", =
holdTime);
			}
		}
	}
	else {
		var tmp =3D startDelay;
		startDelay =3D 0;
		setTimeout("EkTbFade(" + opacity + "," + speed + "," + change + "," + =
holdTime + "," + startDelay + ",'" + fadeType + "','" + name + "')", =
tmp);
	}
}

var m_isMac =3D false;
var m_isMacInit =3D false;
function IsPlatformMac() {
	if (m_isMacInit) {
		return (m_isMac);
	} else {
		var posn;
		var sUsrAgent =3D new String(navigator.userAgent);
		sUsrAgent =3D sUsrAgent.toLowerCase();
		posn =3D parseInt(sUsrAgent.indexOf('mac'));
		m_isMac =3D (0 <=3D posn);
		m_isMacInit =3D true;
		return (m_isMac);
	}
}

var m_isSafari =3D false;
var m_isSafariInit =3D false;
function IsBrowserSafari() {
	if (m_isSafariInit) {
		return (m_isSafari);
	} else {
		var posn;
		var sUsrAgent =3D new String(navigator.userAgent);
		sUsrAgent =3D sUsrAgent.toLowerCase();
		posn =3D parseInt(sUsrAgent.indexOf('safari'));
		m_isSafari =3D (0 <=3D posn);
		m_isSafariInit =3D true;
		return (m_isSafari);
	}
}

function EkTbRollOver(e, MyObj) {
	if (!m_bEkTbReady) return false;
	var top =3D 0;
	var tmpTop =3D 0;
	var left =3D 0;
	var tmpLeft =3D 0;
	var width =3D 0;
	var height =3D 0;
	var toolbarNumArray =3D (MyObj.id).split("_");
	var automaticBorder =3D true;
	var outsideBorder =3D true;
	var menuBorderWidth =3D 3;
	var localTimeout =3D null;
	var ekTbOuterElement =3D null;
	// ensure previous object is deactivated (fixes Safari ghosting =
problem):
	if (m_EkTbLastObj && (m_EkTbLastObj !=3D MyObj)) {
		EkTbOffNow(m_EkTbLastObj.id)
	}
	m_EkTbLastObj =3D MyObj;
	eval("localTimeout =3D m_EkTbTimeout_" + toolbarNumArray[1] + ";");
	if (localTimeout !=3D null) {
		localTimeout =3D clearTimeout(localTimeout);
		eval("m_EkTbTimeout_" + toolbarNumArray[1] + " =3D localTimeout;");
	}

	// Mac-Safari returns invalid offsetHeight values for DIV elements,
	// which are used for the new EkWebToolbar (to bracket the content),
	// workaround - when needed, use the outer table cell instead of the =
DIV:
	if (IsPlatformMac()){
	    ekTbOuterElement =3D xBrowserReturnObjById("EkTbOuterElmt_" + =
toolbarNumArray[1]);
		if (ekTbOuterElement !=3D null) {
			height =3D ekTbOuterElement.offsetHeight;
		} else {
			height =3D MyObj.offsetHeight;
		}
	} else {
		height =3D MyObj.offsetHeight;
	}

	tmpLeft =3D EkTbFindParentPositionLeft(MyObj, (m_EkTbStopAtRoot), =
true);
	width =3D MyObj.offsetWidth;
	tmpTop =3D EkTbFindParentPositionTop(MyObj, (m_EkTbStopAtRoot), true);
	eval("automaticBorder =3D m_EkTbAutomaticOutsideBorder_" + =
toolbarNumArray[1] + ";");
	eval("outsideBorder =3D m_EkTbOutsideBorder_" + toolbarNumArray[1] + =
";");
	eval("menuBorderWidth =3D m_EkTbMenuBorderWidth_" + toolbarNumArray[1] =
+ ";");
	if (outsideBorder =3D=3D true) {
		if (((tmpLeft - menuBorderWidth) < 0) && (automaticBorder)) {
			left =3D 0;
		}
		else {
			left =3D tmpLeft - menuBorderWidth;
		}
		if (((tmpTop - menuBorderWidth) < 0) && (automaticBorder)) {
			top =3D 0;
		}
		else {
			top =3D tmpTop - menuBorderWidth;
		}
		if ( ((((left + width) =3D=3D document.body.clientWidth) && ((tmpLeft =
- menuBorderWidth) < 0))
			|| (((left + width + menuBorderWidth) =3D=3D =
document.body.clientWidth) && ((tmpLeft - menuBorderWidth) >=3D 0)))
			&& (automaticBorder)
			) {
			width =3D (document.body.clientWidth - left);
		}
		else {
			width +=3D (menuBorderWidth * 2);
		}
		if ( ((((top + height) =3D=3D document.body.clientHeight) && ((tmpTop =
- menuBorderWidth) < 0))
			|| (((top + height + menuBorderWidth) =3D=3D =
document.body.clientHeight) && ((tmpTop - menuBorderWidth) >=3D 0)))
			&& (automaticBorder)
			) {
			height =3D (document.body.clientHeight - top);
		}
		else {
			height +=3D (menuBorderWidth * 2);
		}
	}
	else {
		left =3D tmpLeft;
		top =3D tmpTop;
	}

	// Mac needs positioning to be adjusted:
	if (IsPlatformMac()){
		if (IsBrowserSafari) {
			left +=3D4;
			top +=3D6;
		} else {
			left +=3D4;
			top +=3D14;
		}
	}

	if (toolbarNumArray[1]!=3D"AjaxToolBar" && =
document.getElementById("EkTbLeftBar_" + toolbarNumArray[1]).parentNode =
!=3D document.body) {
		var BodyObj =3D document.body;
		var toolObj1 =3D document.getElementById("EkTbLeftBar_" + =
toolbarNumArray[1]);
		toolObj1.parentNode.removeChild(toolObj1);
		var tmpObj1 =3D BodyObj.appendChild(toolObj1);
		var toolObj2 =3D document.getElementById("EkTbRightBar_" + =
toolbarNumArray[1]);
		toolObj2.parentNode.removeChild(toolObj2);
		var tmpObj2 =3D BodyObj.appendChild(toolObj2);
		var toolObj3 =3D document.getElementById("EkTbTopBar_" + =
toolbarNumArray[1]);
		toolObj3.parentNode.removeChild(toolObj3);
		var tmpObj3 =3D BodyObj.appendChild(toolObj3);
		var toolObj4 =3D document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]);
		toolObj4.parentNode.removeChild(toolObj4);
		var tmpObj4 =3D BodyObj.appendChild(toolObj4);
		var toolObj5 =3D document.getElementById("EkTbToolbar_" + =
toolbarNumArray[1]);
		toolObj5.parentNode.removeChild(toolObj5);
		var tmpObj5 =3D BodyObj.appendChild(toolObj5);
	}
	document.getElementById("EkTbLeftBar_" + toolbarNumArray[1]).style.top =
=3D top + "px";
	document.getElementById("EkTbLeftBar_" + toolbarNumArray[1]).style.left =
=3D left + "px";
	document.getElementById("EkTbLeftBar_" + =
toolbarNumArray[1]).style.width =3D menuBorderWidth + "px";
	document.getElementById("EkTbLeftBar_" + =
toolbarNumArray[1]).style.height =3D height + "px";

	document.getElementById("EkTbRightBar_" + toolbarNumArray[1]).style.top =
=3D top + "px";
	document.getElementById("EkTbRightBar_" + =
toolbarNumArray[1]).style.left =3D ((left + width) - menuBorderWidth) + =
"px";
	document.getElementById("EkTbRightBar_" + =
toolbarNumArray[1]).style.width =3D menuBorderWidth + "px";
	document.getElementById("EkTbRightBar_" + =
toolbarNumArray[1]).style.height =3D height + "px";;

	document.getElementById("EkTbTopBar_" + toolbarNumArray[1]).style.top =
=3D top + "px";
	document.getElementById("EkTbTopBar_" + toolbarNumArray[1]).style.left =
=3D left + "px";
	document.getElementById("EkTbTopBar_" + toolbarNumArray[1]).style.width =
=3D width + "px";;
	document.getElementById("EkTbTopBar_" + =
toolbarNumArray[1]).style.height =3D menuBorderWidth + "px";

	document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]).style.top =3D ((top + height) - menuBorderWidth) + =
"px";
	document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]).style.left =3D left + "px";
	document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]).style.width =3D width + "px";;
	document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]).style.height =3D menuBorderWidth + "px";

	document.getElementById("EkTbLeftBar_" + =
toolbarNumArray[1]).style.display =3D "";
	document.getElementById("EkTbRightBar_" + =
toolbarNumArray[1]).style.display =3D "";
	document.getElementById("EkTbTopBar_" + =
toolbarNumArray[1]).style.display =3D "";
	document.getElementById("EkTbBottomBar_" + =
toolbarNumArray[1]).style.display =3D "";
}

function EkTbRollOut(e, MyObj) {
	if (!m_bEkTbReady) return false;
	var toElement =3D "";
	var srcElement =3D "";

	if (document.all) {
		toElement =3D e.toElement;
		srcElement =3D e.srcElement;
	}
	else {
		toElement =3D e.relatedTarget;
		srcElement =3D e.target;
	}
	if ((srcElement.id !=3D MyObj.id)
		&& (!EkTbIsChild(srcElement, MyObj))) {
		//alert("No: " + srcElement.id);
		return;
	}
	if ((toElement =3D=3D null) || (!((EkTbIsChild(toElement, MyObj)) || =
(MyObj.id =3D=3D toElement.id)))) {
		var tmpArray =3D MyObj.id.split("_");
		eval("m_EkTbTimeout_" + tmpArray[1] + " =3D setTimeout(\"EkTbOff('" + =
MyObj.id + "')\", m_EkTbMenuOffDelay_" + tmpArray[1] + ")");
	}
}

function EkTbOff(MyObjId) {
	if (!m_bEkTbReady) return false;
	try
	{
	    var tmpArray =3D MyObjId.split("_");
	    if (eval("m_EkTbTimeout_" + tmpArray[1] + " !=3D null")) {
		    eval("m_EkTbTimeout_" + tmpArray[1] + " =3D null");
		    document.getElementById("EkTbLeftBar_" + =
tmpArray[1]).style.display =3D "none";
		    document.getElementById("EkTbRightBar_" + =
tmpArray[1]).style.display =3D "none";
		    document.getElementById("EkTbTopBar_" + tmpArray[1]).style.display =
=3D "none";
		    document.getElementById("EkTbBottomBar_" + =
tmpArray[1]).style.display =3D "none";
		    document.getElementById("EkTbToolbar_" + =
tmpArray[1]).style.display =3D "none";
	    }
	}
	catch(e) {}
}

function EkTbOffNow(MyObjId) {
	if (!m_bEkTbReady) return false;
	try
	{
	    var tmpArray =3D MyObjId.split("_");
	    if (eval("m_EkTbTimeout_" + tmpArray[1] + " !=3D null")) {
		    eval("m_EkTbTimeout_" + tmpArray[1] + " =3D null");
	    }
	    document.getElementById("EkTbLeftBar_" + tmpArray[1]).style.display =
=3D "none";
	    document.getElementById("EkTbRightBar_" + =
tmpArray[1]).style.display =3D "none";
	    document.getElementById("EkTbTopBar_" + tmpArray[1]).style.display =
=3D "none";
	    document.getElementById("EkTbBottomBar_" + =
tmpArray[1]).style.display =3D "none";
	    document.getElementById("EkTbToolbar_" + tmpArray[1]).style.display =
=3D "none";
	} catch (e) {}
}

function EkTbCancelOff(MyObj) {
	if (!m_bEkTbReady) return false;
	var tmpArray =3D MyObj.id.split("_");
	var tmpTimeout =3D eval("m_EkTbTimeout_" + tmpArray[1]);
	if (tmpTimeout !=3D null) {
		clearTimeout(tmpTimeout);
		eval("m_EkTbTimeout_" + tmpArray[1] + " =3D null;");
	}
}

function EkTbFindParentPositionLeft(Obj, StopAt, =
includePositioningContainers) {
	if (!m_bEkTbReady) return false;
	var curLeft =3D 0;

	if (Obj.offsetParent) {
		while (Obj && (null !=3D Obj.offsetLeft)) {
			if ((StopAt !=3D m_EkTbStopAtRoot)
				&& (EkTbIsStopTag(Obj, StopAt)) )
			{
				break;
			}

			if (includePositioningContainers
				|| (Obj.style
				&& Obj.style.position
				&& Obj.style.position
				&& ('relative' !=3D Obj.style.position.toLowerCase())
				&& ('absolute' !=3D Obj.style.position.toLowerCase())))
			{
				curLeft +=3D Obj.offsetLeft;
			}
			Obj =3D Obj.offsetParent;
		}
	}
	else if (Obj.x)	{
		curLeft +=3D Obj.x;
	}
	return (curLeft);
}

function EkTbFindParentPositionTop(Obj, StopAt, =
includePositioningContainers) {
	if (!m_bEkTbReady) return false;
	var curTop =3D 0;

	if (Obj.offsetParent) {
		while (Obj && (null !=3D Obj.offsetTop)) {
			if ((StopAt !=3D m_EkTbStopAtRoot)
				&& (EkTbIsStopTag(Obj, StopAt)) )
			{
				break;
			}

			if (includePositioningContainers
				|| (Obj.style
				&& Obj.style.position
				&& Obj.style.position
				&& ('relative' !=3D Obj.style.position.toLowerCase())
				&& ('absolute' !=3D Obj.style.position.toLowerCase())))
			{
				curTop +=3D Obj.offsetTop;
			}
			Obj =3D Obj.offsetParent;
		}
	}
	else if (Obj.x) {
		curleft +=3D Obj.x;
	}
	return (curTop);
}

function EkTbGetScrollTop()
{
	if (EkTbIsInQuirksMode())
	{
		return (document.body.scrollTop);
	}
	else
	{
		return (document.documentElement.scrollTop);
	}
}

function EkTbGetScrollLeft()
{
	if (EkTbIsInQuirksMode())
	{
		return (document.body.scrollLeft);
	}
	else
	{
		return (document.documentElement.scrollLeft);
	}
}

function EkTbIsInQuirksMode()
{
	// document.compatMode "BackCompat" : No DocType
	// document.compatMode "CSS1Compat" : DocType specified
	// Also
	// document.documentElement.clientHeight =3D=3D 0 : No DocType
	// document.documentElement.clientHeight !=3D 0 : DocType specified
	return (0 =3D=3D document.documentElement.clientHeight);
}

// Not currently used
function EkTbFindTopDifference(ChildObj, ParentObj) {
	if (!m_bEkTbReady) return false;
	var curTop =3D 0;

	if (ChildObj !=3D ParentObj) {
		curTop +=3D ChildObj.offsetTop;
		if (ChildObj.offsetParent) {
			while ((ChildObj.offsetParent) && (ChildObj !=3D ParentObj)) {
				curTop +=3D ChildObj.offsetTop;
				ChildObj =3D ChildObj.offsetParent;
			}
		}
	}
	return (curTop);
}

// Not currently used
function EkTbFindLeftDifference(ChildObj, ParentObj) {
	if (!m_bEkTbReady) return false;
	var curLeft =3D 0;

	if (ChildObj !=3D ParentObj) {
		curLeft +=3D ChildObj.offsetLeft;
		if (ChildObj.offsetParent) {
			while ((ChildObj.offsetParent) && (ChildObj !=3D ParentObj)) {
				curLeft +=3D ChildObj.offsetLeft;
				ChildObj =3D ChildObj.offsetParent;
			}
		}
	}
	return (curLeft);
}

function EkTbIsChild(obj, ParentObj) {
	if (!m_bEkTbReady) return false;
	var retVal =3D false;
	var tmpArray =3D "";
	if (obj) {
		if ((typeof obj.id =3D=3D 'string') && =
(((obj.id).indexOf("EkTbToolbar_") > -1)
			|| ((obj.id).indexOf("EkTbLeftBar_") > -1)
			|| ((obj.id).indexOf("EkTbRightBar_") > -1)
			|| ((obj.id).indexOf("EkTbTopBar_") > -1)
			|| ((obj.id).indexOf("EkTbBottomBar_") > -1))) {
			retVal =3D true;
		}
		else {
			if (obj.parentNode) {
				while (obj.parentNode) {
					obj =3D obj.parentNode;
					if ((ParentObj.id).indexOf("EkTb") > -1) {
						tmpArray =3D (ParentObj.id).split("_");
					}
					else {
						tmpArray =3D new Array;
						tmpArray[0] =3D "";
						tmpArray[1] =3D "";
					}
					if ((obj =3D=3D ParentObj)
						|| (obj =3D=3D document.getElementById("EkTbToolbar_"+ =
tmpArray[1]))
						|| (obj =3D=3D document.getElementById("EkTbLeftBar_"+ =
tmpArray[1]))
						|| (obj =3D=3D document.getElementById("EkTbRightBar_"+ =
tmpArray[1]))
						|| (obj =3D=3D document.getElementById("EkTbTopBar_"+ =
tmpArray[1]))
						|| (obj =3D=3D document.getElementById("EkTbBottomBar_"+ =
tmpArray[1])) ) {
						retVal =3D true;
						break;
					}
				}
			}
		}
	}
	return (retVal);
}

function EkTbIsStopTag(Obj, StopAt) {
	if (!m_bEkTbReady) return false;
	var retVal =3D false;

	if ( (((Obj.style.position).toLowerCase() =3D=3D "relative") && (StopAt =
& m_EkTbStopAtCss))
		 || (((Obj.style.position).toLowerCase() =3D=3D "absolute") && (StopAt =
& m_EkTbStopAtOffset)) ) {
		if (!document.all) {
			if ((Obj.tagName).toLowerCase() !=3D "table") {
				retVal =3D true;
			}
		}
		else {
			retVal =3D true;
		}
	}
	return (retVal);
}

function EkTbMacShowToolbar(e, MyObj) {
	if (!m_bEkTbReady) return false;
	var retVal =3D true;

	if (navigator.userAgent.indexOf("Mac") > -1) {
		if (e.shiftKey) {
			retVal =3D EkTbShowToolbar(e, MyObj);
		}
	}
	return(retVal);
}

function EkTbShowToolbar(e, MyObj) {
	if (!m_bEkTbReady) return false;
	var retVal =3D true;
	var toElement =3D "";
	var srcElement =3D "";
	var locationX =3D 0;
	var locationY =3D 0;
	if (document.all) {
		toElement =3D e.toElement;
		srcElement =3D e.srcElement;
		if (e.y =3D=3D event.clientY)
		{
		    // operate normally
		    locationY =3D (e.y + (EkTbFindParentPositionTop(srcElement, =
m_EkTbStopAtRoot, false) - EkTbFindParentPositionTop(srcElement, =
m_EkTbStopAtCss, false) + EkTbGetScrollTop()) );
		    locationX =3D (e.x + (EkTbFindParentPositionLeft(srcElement, =
m_EkTbStopAtRoot, false)  - EkTbFindParentPositionLeft(srcElement, =
m_EkTbStopAtCss, false) + EkTbGetScrollLeft()) );
		}
		else
		{
		    //special case for a div in a div (blogs)
		    //alert('Y=3D ' + e.y + " - " + event.clientY + " - " + =
event.screenY + " - " + ((EkTbFindParentPositionTop(srcElement, =
m_EkTbStopAtRoot) - EkTbFindParentPositionTop(srcElement, =
m_EkTbStopAtCss) + EkTbGetScrollTop()) ));
		    locationY =3D (event.clientY + =
EkTbFindParentPositionTop(srcElement, m_EkTbStopAtRoot) - =
EkTbFindParentPositionTop(srcElement, m_EkTbStopAtCss) + =
EkTbGetScrollTop() );
		    if (event.screenX !=3D e.clientX)
		    {
		        locationX =3D (event.clientX + (e.x + =
(EkTbFindParentPositionLeft(srcElement, m_EkTbStopAtRoot, false)  - =
EkTbFindParentPositionLeft(srcElement, m_EkTbStopAtCss, false) + =
EkTbGetScrollLeft()) )) - e.x;
		    }
		    else
		    {
		        locationX =3D (event.screenX); // e.x + =
(EkTbFindParentPositionLeft(srcElement, m_EkTbStopAtRoot, false)  - =
EkTbFindParentPositionLeft(srcElement, m_EkTbStopAtCss, false) + =
EkTbGetScrollLeft()) );
		    }
		}
	}
	else {
		toElement =3D e.relatedTarget;
		srcElement =3D e.target;
		locationY =3D e.pageY;
		locationX =3D e.pageX;
	}
	if (!e.ctrlKey) {
		var tmpArray =3D MyObj.id.split("_");
		var rightEdge =3D =
(EkTbFindParentPositionLeft(document.getElementById("EkTbBase_" + =
tmpArray[1]), (m_EkTbStopAtRoot), true) + =
document.getElementById("EkTbBase_" + tmpArray[1]).offsetWidth);
		if (locationX > rightEdge) {
			locationX =3D rightEdge;
		}
		document.getElementById("EkTbToolbar_" + tmpArray[1]).style.top =3D =
((locationY)) + "px";
		document.getElementById("EkTbToolbar_" + tmpArray[1]).style.left =3D =
((locationX)) + "px";
		document.getElementById("EkTbToolbar_" + tmpArray[1]).style.display =
=3D "";
		retVal =3D false;
	}
	return (retVal);
}

function EkTbStopBubble(e, MyObj) {
	e.cancelBubble =3D true;
}


function xBrowserReturnObjById(id)
{
    if (document.getElementById)
    {
        var returnVar =3D document.getElementById(id);
    }
    else if (document.all)
    {
        var returnVar =3D document.all[id];
    }
    else if (document.layers)
    {
        var returnVar =3D document.layers[id];
    }
    return returnVar;
}

/*********************************************************/
/************** Begin Ektron Editor's Menu ***************/
/*********************************************************/
if (typeof $ektron !=3D=3D 'undefined')
{
    Ektron.EditorsMenu =3D {
        bindEvents: function(){

            //show menu when mouseover marker
            $ektron().listen("mouseover", "a.EktronEditorsMenuMarker", =
function(e) {
                Ektron.EditorsMenu.show(this, e, true);
            });
            $ektron().listen("keypress", "a.EktronEditorsMenuMarker", =
function(e) {
                if (e.keyCode =3D=3D=3D 13)  //show only if pressed key =
is 'enter'
                    Ektron.EditorsMenu.show(this, e, false);
            });

            //hide menu on timeout when mouseleave menu
            $ektron().listen("mouseout", "a", function(e) {
                var menu =3D $ektron(this).parent().parent();
                if (menu.hasClass("EktronEditorsMenu")) {
                    var timeoutId =3D setTimeout(function() {
                        Ektron.EditorsMenu.hide(menu);
                    }, Ektron.EditorsMenu.timeoutDuration);
                    menu.attr("timeoutId", timeoutId);
                }
            });

            //clear timeout when mouseenter menu item
            $ektron().listen("mouseover", "a", function(e) {
                var menu =3D $ektron(this).parent().parent();
                if (menu.hasClass("EktronEditorsMenu")) {
                    clearTimeout(menu.attr("timeoutId"));
                    menu.removeAttr("timeoutId");
                }
            });

            //hide menu on timeout when menu item link loses focus
            $ektron().listen("blur", "a", function(e) {
                var menu =3D $ektron(this).parent().parent();
                if (menu.hasClass("EktronEditorsMenu")) {
                    var timeoutId =3D setTimeout(function() {
                            Ektron.EditorsMenu.hide(menu);
                        }, Ektron.EditorsMenu.timeoutDuration);
                    menu.attr("timeoutId", timeoutId);
                }
            });

            //clear timeout when menu item link gains focus
            $ektron().listen("focus", "a", function(e) {
                var menu =3D $ektron(this).parent().parent();
                if (menu.hasClass("EktronEditorsMenu")) {
                    clearTimeout(menu.attr("timeoutId"));
                    menu.removeAttr("timeoutId");
                }
            });
        },

        show: function(marker, e, autoHide) {
            //get menu ul (sibling of img marker
            var menu =3D $ektron(marker).next();

            //skip if menu is visibile
            if (menu.css("display") =3D=3D=3D "none" && =
menu.hasClass("cloned") =3D=3D=3D false) {



                //don't layer if menu preceeds an iframe, object, or =
embed
                var layerMenu =3D true;
                if (menu.parent().find('iframe').length > 0)
                    layerMenu =3D false;
                if (menu.parent().find('object').length > 0)
                    layerMenu =3D false;
                if (menu.parent().find('embed').length > 0)
                    layerMenu =3D false;

                if (layerMenu =3D=3D=3D false) {
                    //push following content down
                    menu.attr("class", "EktronEditorsMenu =
EktronEditorsMenuNotLayered");
                    menu.css("display", "block");
                } else {

                    //clone menu & position at marker position
                    menu.addClass("cloned");
                    menu =3D menu.clone(true);
                    menu.attr("cloneid", menu.attr("id"));
                    menu.removeAttr("id");
                    menu.prependTo("body");

                    var zIndex =3D 99998;

                    =
menu.siblings("ul.EktronEditorsMenu").each(function() {
                        menu.siblings("ul.EktronEditorsMenu").length;
                        if (zIndex <=3D =
parseInt($ektron(this).css("z-index"))) {
                            zIndex =3D =
parseInt($ektron(this).css("z-index")) + 1;
                        }
                    });
                    menu.css("z-index", String(zIndex));

                    Ektron.EditorsMenu.setPosition(menu);
                    menu.slideDown(function(){
                        if (autoHide =3D=3D=3D false) {
                            //trigger: keyboard - don't autohide & set =
focus on first menu item link
                            menu.find("li:first a:first").focus();
                        }
                    });
                }

                //set an attribute that contains the timeout id
                menu.attr("timeoutId", timeoutId);

                if (autoHide =3D=3D=3D true) {
                    //trigger: mouseover - hide menu if no menu item =
mouseover
                    var timeoutId =3D setTimeout(function() {
                        Ektron.EditorsMenu.hide(menu);
                    }, Ektron.EditorsMenu.timeoutDuration);
                    menu.attr("timeoutId", timeoutId);
                }
            }
        },

        hide: function(menu) {
            menu.slideUp("fast", function() {
                if (menu.hasClass("cloned") =3D=3D=3D true) {
                    //menu is cloned and layered on top of content
                    var clonedMenu =3D $ektron("#" + =
menu.attr("cloneid"));
                    clonedMenu.removeClass("cloned");
                    clonedMenu.removeAttr("timeoutId");
                    menu.remove();
                } else {
                    //menu is not cloned and layered; simply hide and =
remove not layered class
                    menu.removeClass("EktronEditorsMenuNotLayered");
                }
            });
        },

        setPosition: function(menu) {

            //get marker
            var marker =3D $ektron("#" + menu.attr("cloneid")).prev();
            var markerOffset =3D marker.offset();

            //get marker dimensions
            var markerTop =3D markerOffset.top;
            var markerRight =3D markerOffset.left + marker.width();
            var markerBottom =3D markerOffset.top + marker.height();
            var markerLeft =3D markerOffset.left;

    	    //set menu position defaults
            var menuTop =3D markerTop;
            var menuLeft =3D markerLeft;

    	    //determine menu height
    	    var tempMenu =3D menu.clone().prependTo("body");
    	    tempMenu.css("left", "-1000px");
    	    tempMenu.css("display", "block");

    	    //get menu height & width
    	    var menuHeight =3D  tempMenu.height();
	        var menuWidth =3D  tempMenu.width();

	        //remove temp menu
    	    tempMenu.remove();

	        //get height & widths for body
	        var body =3D $ektron("body");
	        var bodyHeight =3D  body.height();
	        var bodyWidth =3D  body.width();

	        //determine menu location - above or below
	        if ((menuHeight > bodyHeight) || (menuHeight < (bodyHeight - =
markerBottom))) {
	            //place the menu below the marker

	            //menuHeight > bodyHeight =3D the height of the menu is =
greater than the height of the body
	            //menuHeight < (bodyHeight - markerBottom) =3D the height =
of the menu is less than the distance between
	            //the bottom of the menu marker, and the bottom of the =
body.  This means the menu can fit below the marker
	            //without causing scroll bars

	            menuTop =3D markerBottom;
	        } else {
	            if ((menuHeight > markerTop) && (menuHeight > (bodyHeight - =
markerBottom))) {
	                //place the menu below the marker

	                //the height of the menu cannot be placed neither =
above, nor below the marker without causing scroll bars

	                menuTop =3D markerBottom;
	            } else {
	                //place the menu above the marker

	                //the height of the menu is less than the height of the =
body AND the height of the menu is less than
	                //the top of the marker - this means the menu can fit =
above the marker

	                menuTop =3D markerTop - menuHeight;
	            }
	        }

	        //determine menu location - right or left
	        if ((menuWidth > bodyWidth) || (menuWidth < (bodyWidth - =
markerRight))) {
	            //place the menu to the right of the marker

	            //menuWidth > bodyWidth =3D the width of the menu is =
greater than the width of the body
	            //menuWidth > markerLeft =3D the width of the menu is =
greater than the distance between
	            //the right of the menu marker, and the right of the body.  =
This means the menu can fit to the right of the marker

		        menuLeft =3D markerRight; //right
	        } else {
	            if ((menuWidth < bodyWidth) && (menuWidth > markerLeft)) {
	                //place the menu to the right of the marker

	                //the width of the menu cannot be placed neither to the =
right, nor the left of the marker without causing scroll bars

	                menuLeft =3D markerRight;
	            } else {
	                //place the menu to the left of the marker

	                //the width of the menu is less than the width of the =
body AND the width of the menu is less than
	                //the distance between the left of the body and the =
left of the marker - this means the menu can fit
	                //to the left of the marker

		            menuLeft =3D markerLeft;
		        }
	        }

    	    //set menu location
	        menu.css("top", menuTop);
	        menu.css("left", menuLeft);

	        if ($ektron.browser.msie) {
	            if ($ektron.browser.version < 7) {
	                menu.find("li").css("position", "relative");
	            }
	            menu.find("a").css("word-wrap", "normal");  //ensures menu =
item text does not wrapdefault.ap
	        }
        },

        timeoutDuration: 1500
    }

    /**
     * jQuery.Listen
     * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com =
| http://flesler.blogspot.com
     * Dual licensed under MIT and GPL.
     * Date: 3/7/2008
     *
     * @projectDescription Light and fast event handling, using event =
delegation.
     * Homepage: http://flesler.blogspot.com/2007/10/jquerylisten.html
     * Requires jQuery 1.2.3 or higher. Tested on FF 2|IE 6/7|Safari =
3|Opera 9, Windows XP.
     *
     * @author Ariel Flesler
     * @version 1.0.3
     *
     * @id jQuery.listen
     * @param {String} name Name of the event to listen (f.e: click, =
mouseover, etc).
     * @param {DOM Element} listener optional: The DOM element to listen =
from, the document element by default.
     * @param {String|Boolean} selector A simple selector in one of this =
formats: "#id", "tagname", ".class", or "tagname.class".
     * @param {Function} handler The event handler to register.
     *
     * Notes:
     *	-The selectors support is low in order to mantain scalability. =
You can use comma-separated selectors.
     *	  I consider these 4 options, the most useful and I believe they =
are enough for many cases.
     *	-This plugin can't handle non-bubbling events. It handles focus & =
blur thanks to the focusin/focusout approach.
     */
    ;(function( $ ){

	    $.fn.indexer =3D function( name ){//allow public access to the =
indexers
		    return this[0] && indexer( this[0], name ) || null;
	    };
	    $.indexer =3D function( name ){
		    return indexer( document, name );
	    };

	    var $event =3D $.event,
		    $special =3D $event.special,
		    $listen =3D $.listen =3D function( name, listener, selector, =
handler ){
			    if( typeof listener !=3D 'object' ){ //document is the default =
listener
				    handler =3D selector;
				    selector =3D listener;
				    listener =3D document;
			    }
			    each( name.split(/\s+/), function( ev ){
				    ev =3D $listen.fixes[ev] || ev;//try to use a fixed event.
				    var idxer =3D indexer( listener, ev ) || indexer( listener, ev, =
new Indexer(ev,listener) );

				    idxer.append( selector, handler );// register the handler.
				    idxer.start();
			    });
		    },
		    indexer =3D function( elem, name, val ){
			    return $.data( elem, name+'.indexer', val );
		    };

	    $.extend( $listen, {
		    regex: /^((?:\w*?|\*))(?:([#.])([\w-]+))?$/, //matches "#id", =
"tag", ".class" or "tag.class", also "tag#id" but the tag is ignored.
		    fixes: { //registry of replacement for non-bubbling events, you =
can add more ( please fix change for IE :) )
			    focus:'focusin',
			    blur:'focusout'
		    },
		    cache:function( on ){
			    this.caching =3D on;
		    }
	    });

	    //taken and adapted from =
http://dev.jquery.com/browser/trunk/plugins/validate/lib/jquery.delegate.=
js?rev=3D4374
	    $.each( $listen.fixes, function( original, fix ){
		    $special[fix] =3D {
			    setup:function() {
                    if ( $.browser.msie ) return false;
                    this.addEventListener( original, =
$special[fix].handler, true );
                },
                teardown:function() {
                    if ( $.browser.msie ) return false;
                    this.removeEventListener( original, =
$special[fix].handler, true );
                },
                handler: function(e) {
                    arguments[0] =3D e =3D $event.fix(e);
                    e.type =3D fix;
                    return $event.handle.apply(this, arguments);
                }
		    };
	    });

	    $.fn.listen =3D function( name, selector, handler ){//listen using =
the prototype
		    return this.each(function(){
			    $listen( name, this, selector, handler );
		    });
	    };

	    function Indexer( name, listener ){
		    $.extend( this, {
			    ids: {},
			    tags: {},
			    listener: listener,
			    event: name
		    });
		    this.id =3D Indexer.instances.push( this );//for cleaning up later
	    };
	    Indexer.instances =3D [ ];

	    Indexer.prototype =3D {
		    constructor: Indexer,
		    handle:function( e ){
			    var sp =3D e.stopPropagation;//intercept any call to =
stopPropagation
			    e.stopPropagation =3D function(){
				    e.stopped =3D true;
				    sp.apply(this,arguments);
			    };
			    indexer(this,e.type).parse( e );
			    e.stopPropagation =3D sp;//revert
			    sp =3D e.data =3D null;//cleanup
		    },
		    on:false,
		    bubbles:false,
		    start:function(){//start listening (bind)
			    if( !this.on ){ //avoid duplicates
				    $event.add( this.listener, this.event, this.handle );
				    this.on =3D true;
			    }
		    },
		    stop:function(){//stop listening (unbind)
			    if( this.on ){
				    $event.remove( this.listener, this.event, this.handle );
				    this.on =3D false;
			    }
		    },
		    cache:function( node, handlers ){
			    return $.data( node, 'listenCache_' + this.id, handlers );
		    },
		    parse:function( e ){
			    var node =3D e.data || e.target,
				    args =3D arguments, handlers;

			    if( !$listen.caching || !( handlers =3D this.cache(node) ) =
){//try to retrieve cached handlers
				    handlers =3D [ ];

				    if( node.id && this.ids[node.id] )//if this node has an id and =
there are handlers registered to it..
					    push( handlers, this.ids[node.id] );

				    each([ node.nodeName, '*' ], function( tag ){//look for handlers =
registered by name.class.
					    var klasses =3D this.tags[tag];
					    if( klasses )
						    each( (node.className + ' *').split(' '), function( klass ){
							    if( klass && klasses[klass] )
								    push( handlers, klasses[klass] );//append the handlers to =
the list.
						    });
				    }, this);

				    if( $listen.caching )
					    this.cache( node, handlers );
			    }

			    if( handlers[0] ){
				    each( handlers, function( handler ){
					    if( handler.apply(node, args) =3D=3D=3D false ){
						    e.preventDefault();
						    e.stopPropagation();
					    }
				    });
			    }

			    if( !e.stopped && (node =3D node.parentNode) && (node.nodeName =
=3D=3D 'A' || this.bubbles && node !=3D this.listener) ){//go up ?
				    e.data =3D node;//I rather not alter e.target, it might be used.
				    this.parse( e );
			    }
			    handlers =3D args =3D node =3D null;//cleanup
		    },
		    append:function( selector, handler ){
			    each( selector.split(/\s*,\s*/), function(selector){//support =
comma separated selectors
				    var match =3D $listen.regex.exec( selector );
				    if( !match )
					    throw '$.listen > "' + selector + '" is not a supported =
selector.';
				    var
					    id =3D match[2] =3D=3D '#' && match[3],
					    tag =3D match[1].toUpperCase() || '*',
					    klass =3D	match[3] || '*';
				    if( id )//we have an id, register the handler to it.
					    (this.ids[id] || (this.ids[id] =3D [ ])).push( handler );
				    else if( tag ){//we have an name and/or class
					    tag =3D this.tags[tag] =3D this.tags[tag] || { };
					    (tag[klass] || (tag[klass] =3D [ ])).push( handler );
				    }
			    }, this );
		    }
	    };

	    function each( arr, fn, scope ){
		    for(var i=3D0, l=3Darr.length; i < l; i++ )
			    fn.call( scope, arr[i], i );
	    };
	    function push( arr, elems ){
		    arr.push.apply( arr, elems );
		    return arr;
	    };

	    $(window).unload(function(){// cleanup
		    if( typeof Indexer =3D=3D 'function' )
			    each( Indexer.instances, function(idxer){
				    idxer.stop();
				    $.removeData( idxer.listener, idxer.event + '.indexer' );
				    idxer.ids =3D idxer.names =3D idxer.listener =3D null;
			    });
	    });

    })($ektron);

    //Initialize Ektron Editors Menu Object
    $ektron().ready(function() {
        Ektron.EditorsMenu.bindEvents();
    });
}
/*********************************************************/
/**************** End Ektron Editor's Menu ***************/
/*********************************************************/
------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/plugins/autoheight/ektron.autoheight.js

/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/
*/

$ektron.fn.autoheight=3Dfunction(settings)
{var =
settings=3D$ektron.extend({bindEvents:true,onexception:null},settings);fu=
nction autoheightIFrame()
{var m_iframe=3Dthis;function m_autoheightIFrame()
{try
{if(this.body)
{var objIFrame=3D$ektron(m_iframe);var =
ht=3D0;if($ektron.browser.mozilla)
{ht=3Dthis.documentElement.offsetHeight;}
else
{ht=3Dthis.documentElement.scrollHeight;}
if(0=3D=3Dht)return;var =
maxht=3DobjIFrame.css("max-height");if("none"=3D=3Dmaxht)maxht=3D"";if(ma=
xht&&-1=3D=3Dmaxht.indexOf("px"))
{if(objIFrame.height()!=3Dht)
{objIFrame.height(ht);$ektron(m_iframe.ownerDocument).trigger($ektron.fn.=
autoheight.triggerName,[objIFrame,ht]);}}
else if(objIFrame.height()!=3Dht)
{if($ektron.browser.mozilla||$ektron.browser.safari)
{m_iframe.style.overflowY=3D"hidden";}
else
{m_iframe.style.overflowY=3D"visible";if($ektron.browser.msie)
{if($ektron.browser.version<7)
{m_iframe.style.overflowX=3D"hidden";}}}
objIFrame.height(ht);if(maxht)
{if(parseInt("0"+maxht,10)<ht)
{m_iframe.style.overflowY=3D"auto";}}
$ektron(m_iframe.ownerDocument).trigger($ektron.fn.autoheight.triggerName=
,[objIFrame,ht]);}
if($ektron.browser.msie&&$ektron.browser.version>=3D7)
{if((objIFrame.width()-$ektron(oDoc.body).width())<8)
{oDoc.documentElement.style.overflowX=3D"hidden";}}}}
catch(ex)
{Ektron.OnException($ektron.fn.autoheight,settings.onexception,ex,argumen=
ts);}};try
{if(m_iframe.contentWindow&&m_iframe.contentWindow.document)
{var oDoc=3Dm_iframe.contentWindow.document;if(oDoc.documentElement)
{oDoc.documentElement.style.height=3D"";var =
maxht=3D$ektron(m_iframe).css("max-height");if("none"=3D=3Dmaxht)maxht=3D=
"";if(!maxht)
{if($ektron.browser.mozilla||$ektron.browser.safari)
{oDoc.documentElement.style.overflowY=3D"hidden";}
else
{oDoc.documentElement.style.overflowY=3D"visible";if($ektron.browser.msie=
)
{if($ektron.browser.version<7)
{oDoc.documentElement.style.overflowX=3D"hidden";}
else
{m_iframe.style.overflowX=3D"hidden";}}}}}
if(oDoc.body)oDoc.body.style.height=3D"";if(settings.bindEvents)
{$ektron(oDoc).keyup(m_autoheightIFrame).click(m_autoheightIFrame).each(m=
_autoheightIFrame);}
else
{$ektron(oDoc).each(m_autoheightIFrame);}}}
catch(ex)
{Ektron.OnException($ektron.fn.autoheight,settings.onexception,ex,argumen=
ts);}};if(settings.bindEvents)
{this.filter("iframe").load(autoheightIFrame).each(autoheightIFrame);}
else
{this.filter("iframe").each(autoheightIFrame);}
return =
this;};$ektron.fn.autoheight.triggerName=3D"EktronAutoheight";$ektron.fn.=
autoheight.onexception=3DEktron.OnException.diagException;

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/plugins/modal/ektron.modal.js

/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/
*/

(function($){$.fn.modal=3Dfunction(o){var =
p=3D{overlay:50,overlayClass:'ektronModalOverlay',closeClass:'ektronModal=
Close',trigger:'.ektronModal',ajax:F,ajaxText:'',target:F,modal:F,toTop:F=
,onShow:F,onHide:F,onLoad:F};return =
this.each(function(){if(this._modal)return =
H[this._modal].c=3D$.extend({},H[this._modal].c,o);s++;this._modal=3Ds;H[=
s]=3D{c:$.extend(p,$.modal.params,o),a:F,w:$(this).addClass('modalID'+s),=
s:s};if(p.trigger)$(this).modalAddTrigger(p.trigger);});};$.fn.modalAddCl=
ose=3Dfunction(e){return =
hs(this,e,'modalHide');};$.fn.modalAddTrigger=3Dfunction(e){return =
hs(this,e,'modalShow');};$.fn.modalShow=3Dfunction(t){return =
this.each(function(){$.modal.open(this._modal,t);});};$.fn.modalHide=3Dfu=
nction(t){return =
this.each(function(){$.modal.close(this._modal,t)});};$.modal=3D{hash:{},=
open:function(s,t){var =
h=3DH[s],c=3Dh.c,cc=3D'.'+c.closeClass,z=3D(parseInt(h.w.css('z-index')))=
,z=3D(z>0)?z:3000,o=3D$('<div></div>').css({height:'100%',width:'100%',po=
sition:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)=
return =
F;h.t=3Dt;h.a=3Dtrue;h.w.css('z-index',z);if(c.modal){if(!A[0])L('bind');=
A.push(s);}
else if(c.overlay>0)h.w.modalAddClose(o);else =
o=3DF;h.o=3D(o)?o.addClass(c.overlayClass).prependTo('body'):F;if(ie6){$(=
'html,body').css({height:'100%',width:'100%'});if(o){o=3Do.css({position:=
'absolute'})[0];for(var y =
in{Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=3D(document.do=
cumentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
if(c.ajax){var r=3Dc.target||h.w,u=3Dc.ajax,r=3D(typeof =
r=3D=3D'string')?$(r,h.w):$(r),u=3D(u.substr(0,1)=3D=3D'@')?$(t).attr(u.s=
ubstring(1)):u;r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.=
call(this,h);if(cc)h.w.modalAddClose($(cc,h.w));e(h);});}
else =
if(cc)h.w.modalAddClose($(cc,h.w));if(c.toTop&&h.o)h.w.before('<span =
id=3D"ektronModalP'+h.w[0]._modal+'"></span>').insertAfter(h.o);(c.onShow=
)?c.onShow(h):h.w.show();e(h);return F;},close:function(s){var =
h=3DH[s];if(!h.a)return =
F;h.a=3DF;if(A[0]){A.pop();if(!A[0])L('unbind');}
if(h.c.toTop&&h.o)$('#ektronModalP'+h.w[0]._modal).after(h.w).remove();if=
(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();}return =
F;},params:{}};var =
s=3D0,H=3D$.modal.hash,A=3D[],ie6=3D$.browser.msie&&($.browser.version=3D=
=3D"6.0"),F=3Dfalse,i=3D$('<iframe =
src=3D"javascript:false;document.write(\'\');" =
class=3D"ektronModalIframe"></iframe>').css({opacity:0}),e=3Dfunction(h){=
if(ie6)if(h.o)h.o.html('<p =
style=3D"width:100%;height:100%"/>').prepend(i);else =
if(!$('iframe.ektronModalIframe',h.w)[0])h.w.prepend(i);f(h);},f=3Dfuncti=
on(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},L=3Dfunction(t)=
{$()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},m=3Dfunction(e)=
{var =
h=3DH[A[A.length-1]],r=3D(!$(e.target).parents('.modalID'+h.s)[0]);if(r)f=
(h);return!r;},hs=3Dfunction(w,t,c){return w.each(function(){var =
s=3Dthis._modal;$(t).each(function(){if(!this[c]){this[c]=3D[];$(this).cl=
ick(function(){for(var i in{modalShow:1,modalHide:1})for(var s in =
this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return =
F;});}this[c].push(s);});});};})($ektron);

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/ContentDesigner/ektron.contentDesigner.js

/*
 * JSMin
 * Javascript Compressor
 * http://www.crockford.com/
 * http://www.smallsharptools.com/
*/

$ektron.fn.contentDesigner=3Dfunction(uniqueCallbackId,data)
{try
{if(this.length>1)throw new RangeError("Only one element may be selected =
to edit in context.");var me=3Dthis;var =
newId=3D"EktronAjaxLoading_cloned";this.ajaxStart(function()
{var menuZIndex=3D0;$ektron(".EktronEditorsMenu").each(function()
{var =
thisZIndex=3DparseInt($ektron(this).css("z-index"),10);if(thisZIndex>menu=
ZIndex)
{menuZIndex=3DthisZIndex;}});$ektron("#"+newId).remove();var =
oImg=3Dme.children(".EktronAjaxLoading img");var =
sTop=3D($ektron(window).height()/2)-(oImg.height()/2)+$ektron(window).scr=
ollTop()+"px";var =
sLeft=3D($ektron(window).width()/2)-(oImg.width()/2)+$ektron(window).scro=
llLeft()+"px";me.children(".EktronAjaxLoading").clone().attr("id",newId).=
css({position:"absolute",top:sTop,left:sLeft,"z-index":menuZIndex+10}).pr=
ependTo("body");$ektron("div.ektronModalOverlay").css("opacity",0);$ektro=
n("#"+newId).modal().modalHide().modalShow();});this.ajaxStop(function()
{$ektron("#"+newId).modal().modalHide();$ektron("#"+newId).remove();});va=
r editorId;var callbackData=3D"object"=3D=3Dtypeof data?data:typeof =
data!=3D"undefined"?{data:data}:null;var =
bInit=3Dtrue;this.ajaxCallback({uniqueId:uniqueCallbackId,data:$ektron.ex=
tend({command:"edit",width:this.width(),height:this.height()},callbackDat=
a),success:function(data)
{var =
aryMatch=3Ddata.match(/id=3D\"(\w+)_wrapper\"/);if(aryMatch&&aryMatch.len=
gth>1)
{editorId=3DaryMatch[1];}},complete:function()
{if(typeof GetRadEditor!=3D"function")throw new Error("GetRadEditor =
function not found. Editor ID=3D"+editorId);var =
editor=3DGetRadEditor(editorId);if(!editor)throw new Error("Editor not =
found. =
ID=3D"+editorId);editor.uniqueCallbackId=3DuniqueCallbackId;editor.callba=
ckData=3DcallbackData;},onexception:Ektron.ContentDesignerInContext.onexc=
eption});}
catch(ex)
{Ektron.OnException(Ektron.ContentDesignerInContext,null,ex,arguments);}
return =
this;};Ektron.ContentDesignerInContext=3D{OnClientLoad:function(editor)
{try
{editor.activateToolbar();editor.SetFocus();}
catch(ex)
{Ektron.OnException(Ektron.ContentDesignerInContext,null,ex,arguments);}
editor.autoheight();},onexception:Ektron.OnException.diagException};

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WorkArea/java/ek_flexmenu.js

=EF=BB=BF///////////////////////////////////////////////////////////
// ekFlexMenu Javascript file (ek_flexmenu.js):
// Client side support for the Ektron SmartMenu server control.


///////////////////////////////////////////////////////////
// CSS Style Class Name Enumertion:
function ekFlexMenu_classNames() {}
ekFlexMenu_classNames.button =3D "ekflexmenu_button";
ekFlexMenu_classNames.buttonHover =3D "ekflexmenu_button_hover";
ekFlexMenu_classNames.buttonSelected =3D "ekflexmenu_button_selected";
ekFlexMenu_classNames.buttonSelectedHover =3D =
"ekflexmenu_button_selected_hover";
ekFlexMenu_classNames.submenuItems =3D "ekflexmenu_submenu_items";
ekFlexMenu_classNames.submenuItemsHidden =3D =
"ekflexmenu_submenu_items_hidden";
ekFlexMenu_classNames.submenu =3D "ekflexmenu_submenu";
ekFlexMenu_classNames.submenuHover =3D "ekflexmenu_submenu_hover";
ekFlexMenu_classNames.submenuParent =3D "ekflexmenu_submenu_parent";
ekFlexMenu_classNames.submenuParentHover =3D =
"ekflexmenu_submenu_parent_hover";
ekFlexMenu_classNames.btnLink =3D =
"ekflexmenu_accessible_submenu_btnlink";
ekFlexMenu_classNames.link =3D "ekflexmenu_link";
ekFlexMenu_classNames.linkSelected =3D "ekflexmenu_link_selected";
ekFlexMenu_classNames.slaveBranchSelected =3D =
"ekflexmenu_slave_branch_sel";
ekFlexMenu_classNames.slaveContainer =3D "ekflexmenu_slavecontainer";

/////////////////////////////////////////////////////////////////////////=
//////
/////////////////////////////////////////////////////////////////////////=
//////
// Class ekFlexMenu:
var ekFlexMenu =3D function (menuObjectIdString) {

	/////////////////////////
	// public members:

		this.menuId =3D __ekFlexMenu_returnMenuId;
			// Returns the root menu id for this object.
			// Parameters:=20
			//	None.
		=09
		this.hashCode =3D __ekFlexMenu_returnHashCode;
			// Returns the hash-code of the server control.
			// Parameters:=20
			//	None.

		this.isSubmenuSelected =3D __ekFlexMenu_isSubmenuSelected;
			// Returns selected-status (and thereby the visibility of the=20
			// associated submenu contents) of the identified submenu.
			// Parameters:=20
			//	1 - The standard menu-submenu-id string (extra characters =
discarded).
		=09
		this.selectSubmenu =3D __ekFlexMenu_selectSubmenu;
			// Selects the designated submenu, setting the menu-button to a =
'selected'=20
			// state, and making any associated submenu content items visible.
			// Parameters:=20
			//	1 - The standard menu-submenu-id string (extra characters =
discarded).

		this.unSelectSubmenu =3D __ekFlexMenu_unSelectSubmenu;
			// De-Selects the designated submenu, setting the menu-button to a =
non-selected
			// state, and making any associated submenu content items invisible.
			// Parameters:=20
			//	1 - The standard menu-submenu-id string (extra characters =
discarded).
	=09
		this.hoverButton =3D __ekFlexMenu_hoverButton;
			// Sets the designated submenu-button to a hovered or non-hovered =
state.
			// Parameters:=20
			//	1 - The standard menu-submenu-id string (extra characters =
discarded).
			//	2 - Hover flag (boolean; true to set state to hovered).

		this.selectMenuItem =3D __ekFlexMenu_ekFlexMenu_selectMenuItem;
			// Called when a menu-item (such as a link) is clicked, before
			// the page is submitted to the server.
			// Parameters:=20
			//	1 - The element-object that is being selected.
	=09
		this.initializeWithServerVariables =3D =
__ekFlexMenu_initializeWithServerVariables;
			// Called by page-load initialization code, to initialize this object
			// with values passed from the server.
			// Parameters:=20
			//	None.
	=09
		this.showRootMenu =3D __ekFlexMenu_showRootMenu;
			// Makes the contents of the root-menu visible, selects it's button =
if it exists.
			// Parameters:=20
			//	None.


	/////////////////////////
	// private member functions:
=09
		this.buildMenuSubmenuId =3D __ekFlexMenu_buildMenuSubmenuId;
			// Returns the standard menu-submenu-id string.
			// Parameters:=20
			//	1 - The targetted submenu-id number (or string containing only =
numbers).
		=09
		this.getFolderButtonObject =3D __ekFlexMenu_getFolderButtonObject;
			// Returns the folder-button-object for the specified submenu.
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
		=09
		this.getSubmenuItemsObject =3D __ekFlexMenu_getSubmenuItemsObject;
			// Returns the folder-item-object for the specified submenu.
			// This may contain menu items such as links and nested submenus.
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).

		this.getSubmenuObject =3D __ekFlexMenu_getSubmenuObject;
			// Returns the corresponding submenu object,=20
			// for a given Submenu-Id (or Menu-Submenu-Id):
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
		=09
		this.getParentLevelSubmenuId =3D __ekFlexMenu_getParentLevelSubmenuId;
			// Returns the parent-levels menu-submenu-id for the given Submenu,
			// returns zero if the parent (or thismenu) is the root menu.
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
		=09
		this.getMenuLevel =3D __ekFlexMenu_getMenuLevel;
			// Returns the integer value of the menu level for
			// the menu identified by the given submenu-id string.
			// Parameters:=20
			//	1 - The submenu-id (standard menu-submenu-id string).
		=09
		this.getEkFlexMenuContainerElement =3D =
__ekFlexMenu_getEkFlexMenuContainerElement;
			// Returns the outermost container element (DIV) that=20
			// holds this entire ekFlexMenu object.
			// Parameters:=20
			//	None.
	=09
		this.selectSubmenuHelper =3D __ekFlexMenu_selectSubmenuHelper;
			// Helper funtion for __ekFlexMenu_selectSubmenu, uses=20
			// recursionSelects to ensure selected submenus are visible
			// even if they are buried with muliple nesting levels.
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
	=09
		this.collapseSiblingSubmenus =3D __ekFlexMenu_collapseSiblingSubmenus;
			// Hide sibling submenus of the designated submenu.
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
	=09
		this.collapseAllOpenSubmenus =3D __ekFlexMenu_collapseAllOpenSubmenus;
			// Closes all currently open submenus, to prevent overlap & visual =
clutter.
			// Parameters:=20
			//	1 - Show root flag (boolean; true to make the root menu contents =
visible).
		=09
	    this.collapseUnselectedStartLevelSubmenus =3D =
__ekFlexMenu_collapseUnselectedStartLevelSubmenus;
	        // Used for slave menu; Closes all unselected submenus:
			// Parameters:=20
			//	None.

		this.markParentSubmenu =3D __ekFlexMenu_markParentSubmenu;
			// Sets the parent folders' style to be a parent (optionally=20
			// used in CSS to style parents & children differently):
			// Parameters:=20
			//	1 - The submenu-id whose parent to mark (standard menu-submenu-id =
string).

		this.unMarkParentSubmenu =3D __ekFlexMenu_unMarkParentSubmenu;
			// Sets the parent folders' style to be a normal non-parent =
(optionally=20
			// used in CSS to style parents & children differently):
			// Parameters:=20
			//	1 - The submenu-id whose parent to unmark (standard =
menu-submenu-id string).
		=09
		this.hoverSubmenu =3D __ekFlexMenu_hoverSubmenu;
			// Sets the menus' container style to be hovered,
			// (optionally used in CSS to style contents & children differently):
			// Parameters:=20
			//	1 - The submenu-id whose parent to hover (standard menu-submenu-id =
string).
		=09
		this.unHoverSubmenu =3D __ekFlexMenu_unHoverSubmenu;
			// Sets the menus' container style to be unhovered,
			// (optionally used in CSS to style contents & children differently):
			// Parameters:=20
			//	1 - The submenu-id whose parent to unhover (standard =
menu-submenu-id string).
		=09
		=09
		this.getEkFlexMenuElementsByTagName =3D =
__ekFlexMenu_getEkFlexMenuElementsByTagName;
			// Returns an array of the ekflexmenu-elements with the specified =
tag-name.
			// Parameters:=20
			//	1 - the element tag-name to search for.
		=09
		this.getElementsByClassName =3D __ekFlexMenu_getElementsByClassName;
			// Returns an array of the menu-elements, whose className=20
			// attributes match the supplied name.
			// Parameters:=20
			//	1 - the className to search for.
		=09
		this.getElementsByClassNameAndTagName =3D =
__ekFlexMenu_getElementsByClassNameAndTagName;
			// Returns an array of the menu-elements, whose className=20
			// attributes match the supplied name.
			// Parameters:=20
			//	1 - the className to search for.
			//  2 - the tag-name of the elements to include in the search.
		=09
		this.getEkFlexMenuElementsByName =3D  =
__ekFlexMenu_getEkFlexMenuElementsByName;
			// Returns an array of the menu-elements, whose name attribute
			// match the supplied name.
			// Parameters:=20
			//	1 - the name to search for.

		this.getDirectChildIds =3D __ekFlexMenu_getDirectChildIds;
			// Returns an array of all direct child-submenu-ids (length =3D 0 if =
none).
			// Parameters:=20
			//	1 - The targetted submenu-id (standard menu-submenu-id string).
		=09
		this.mouseIn =3D __ekFlexMenu_mouseIn;
			// Called by external (non-object-instance) code, to prepare for=20
			// delayed opening of identified submenu.
			// Parameters:=20
			//	1 - the event object.
			//	2 - the element-object that triggered the event.
	=09
		this.mouseInHelper =3D __ekFlexMenu_mouseInHelper;
			// Shows/selects the appropriate submenu.
			// Parameters:=20
			//	None.

		this.mouseOut =3D __ekFlexMenu_mouseOut;
			// Called by external (non-object-instance) code, to prepare for=20
			// delayed opening of identified submenu.
			// Parameters:=20
			//	1 - the event object.
			//	2 - the element-object that triggered the event.

		this.mouseOutHelper =3D __ekFlexMenu_mouseOutHelper;
			// Hides/unselects the appropriate submenu (possibly all but root).
			// Parameters:=20
			//	None.

		this.disableAllEventHandlers =3D  =
__ekFlexMenu_disableAllEventHandlers;
			// Disables all event handlers for elements of this menu object:
			// Parameters:=20
			//	None.

		this.disableElementEventHandlers =3D =
__ekFlexMenu_disableElementEventHandlers;
			// Disables all event handlers for the given element:
			// Parameters:=20
			//	1 - the element to disable events on.

		this.updateNoScriptLinks =3D __ekFlexMenu_updateNoScriptLinks;
			// When server (XSLT) builds HTML to create the menu,
			// it sets the hrefs of the menu-buttons to signal
			// the server that Javascript is disabled, and the page
			// needs to display a submenu. This way the menu will=20
			// still funtion if Javascript is disabled/not supported
			// (required for 508 compliance), this also simplifies Ajax
			// related issues. This function modifies all these to eliminate=20
			// page refreshes (not needed if Javascript is enabled).
			// Parameters:=20
			//	None.
		=09
		this.initializeMouseOverPopUp =3D =
__ekFlexMenu_initializeMouseOverPopUp;
		    // Determine if MouseOverPopUp is enabled, and=20
            // perform related initialization if it is.
			// Parameters:=20
			//	None.

	=09
		///////////////////////////////////////////////////////
		// Master/Slave related functions:
		this.getSlaveControlObject =3D __ekFlexMenu_getSlaveControlObject;
		this.convertIdToSlaveControlId =3D =
__ekFlexMenu_convertIdToSlaveControlId;
		this.callSlave__showSubmenuBranch =3D =
__ekFlexMenu_callSlave__showSubmenuBranch;
		this.showSubmenuBranch =3D __ekFlexMenu_showSubmenuBranch;
		this.unSelectSubmenuList =3D __ekFlexMenu_unSelectSubmenuList;
		this.initializeSlaveMenu =3D __ekFlexMenu_initializeSlaveMenu;
		this.initializeMasterMenu =3D __ekFlexMenu_initializeMasterMenu;
		this.isTopLevelUI =3D __ekFlexMenu_isTopLevelUI;
		this.recordLastSlaveStartLevelMenu =3D =
__ekFlexMenu_recordLastSlaveStartLevelMenu;
		this.getLastSlaveStartLevelMenu =3D =
__ekFlexMenu_getLastSlaveStartLevelMenu;
		this.unHideSlaveMenu =3D __ekFlexMenu_unHideSlaveMenu;
		// Master/Slave related variables:
		this.topLevelUI =3D null;
		this.lastSelectedStartLevelSlaveMenuId =3D null;
		this.ekFlexMenu_defaultMenuIdString =3D false; // Slave menu default =
submenu-id.
		this.ekFlexMenu_slaveStartLevelIds =3D null; // slave menu start level =
ids.
		this.ekFlexMenu_slaveStartLevel =3D null; // slave menu start level.


		///////////////////////////////////////////////////////
		// Member Ajax releated members:
		this.loadXMLDoc =3D __ekFlexMenu_ajax_loadXMLDoc;
		this.DecodeHTML =3D __ekFlexMenu_ajax_DecodeHTML;
		this.getPayload =3D __ekFlexMenu_ajax_getPayload;
		this.appendText =3D __ekFlexMenu_ajax_appendText;
		this.appendXml =3D __ekFlexMenu_ajax_appendXml;
		this.removeMenuFragmentContainer =3D =
__ekFlexMenu_ajax_removeMenuFragmentContainer;
		this.callService =3D __ekFlexMenu_ajax_callService;
		this.callAjaxForUserClick =3D __ekFlexMenu_ajax_callAjaxForUserClick;
		// Ajax related variables:
		//this.userAjaxXmlHttp1 =3D null;
		this.userAjaxParentId1 =3D ""


	/////////////////////////
	// private variables:
=09
		this.private_menuIdString =3D =
__ekFlexMenu_parseMenuId(menuObjectIdString);
			// holds the root menu id.

		this.private_serverControlHash =3D =
__ekFlexMenu_static_parseServerControlHash(menuObjectIdString);
			// holds the server controls' hash-code.

		this.private_autoCollapseSubmenus =3D true;
			// Controls action on select-submenu; will=20
			// collapse all other submenus - if this is true.

		this.private_startWithRootFolderCollapsed =3D false;
			// If set, will hide the root menu contents when all submenus=20
			// are collapsed, otherwise will always leave root contents visible.

		this.private_startCollapsed =3D true;
			// If set, menu is initially rendered with all submenus closed.
		=09
		this.private_ajaxEnabled =3D true;
			// If set, will attempt to make Ajax calls to load submenus.
	=09
		this.ekFlexMenu_ajaxWSPath =3D "";
			// The Ajax-WebService base path.
		=09
		this.ekFlexMenu_displayXslt =3D "";
			// value to call web-service with for Ajax, to select server-side =
XSLT to process XML.
		=09
		this.ekFlexMenu_cacheInterval =3D "";
			// value to call web-service with for Ajax, to select period to hold =
server-side to cache data.
		=09
		this.private_masterControlIdHash =3D "";
			// If this is a slave control, then this variable holds the=20
			// hash-code of the master source controls id.
		=09
		this.private_subscriberList =3D "";
			// If this a master control, then this comma delited list (string)
			// holds the hash-codes of each subscribing control.
		=09
		this.private_slaveControl =3D "";
			// If this a master control, then this variable
			// holds the hash-code of the slave control.
	=09
		this.private_isMasterControl =3D false;
			// True if this control is synchronized to another (slave) control.

		this.private_isSlaveControl =3D false;
			// True if this control is synchronized to another (master) control.
		=09
		this.private_lastSelectedMenuItemObj =3D null;
			// Holds previously selected menu-item-link, used to set old=20
			// selection to a non-selected state when a new one is selected.
		=09
		this.private_selectionChanged =3D false;
			// Flag to indicate that user activity has changed state from
			// that which was rendered from the server.
		=09
		this.private_selectedMenuList =3D "";
			// Holds previously selected menu, used to set the old button
			// selection to a non-selected state when a new one is selected.
	=09
		this.private_swRevision =3D "0";
			// The software revision of the server control.
		=09
		this.enableMouseOverPopUp =3D false;
		    // True to indicate that a submenu should open when moused over,
		    // False inidcates that a click is required to oen submenus.
		=09
		// Mouse related variables; only used for pop-up menus (via mouse =
over):
			this.private_enableMouseOverSubmenuActivation =3D false;
				// If true, then mouseIn and mouseOut events will be used to=20
				// open and close submenus (must be wired by server code).
			=09
			this.private_mouseEventTimer =3D null;
				// Used to hold the count-down timer object, to delay show/hide =
action.
			=09
			this.private_mouseEventEnteringElementId =3D null;
				// Holds the ID of the element-id that triggered the mouseIn event.
			=09
			this.private_mouseEventExitingElementId =3D null;
				// Holds the ID of the element-id that triggered the mouseOut event.

}
/////////////////////////////////////////////////////////////////////////=
//////

/////////////////////////////////////////////////////////////////////////=
//////
// Initialize Public Static Members:

	ekFlexMenu.getMenuObj =3D __ekFlexMenu_static_getMenuObj;
		// Returns the Menu-Object for a given ekflexmenu element ID,
		// creates a new ekFlexMenu object if needed (stores these in
		// an array as a property to the indow object - making it=20
		// available/shared with all SmartMenus (this was multple menus=20
		// can exist on a page, and have different objects that=20
		// are avaiable anywhere - given given an ekflexmenu element ID).
		// Parameters:=20
		//	1 - The standard menu-submenu-id string (extra characters =
discarded).


	ekFlexMenu.parseMenuSubmenuIdString =3D =
__ekFlexMenu_static_parseMenuSubmenuIdString;
		// Returns the MenuSubmenuID string, for a given ekflexmenu element-ID
		// (ex. given "e1234567_1_submenu_2_button" returns
		// "e1234567_1_submenu_2" for root-menu 1, submenu 2):
		// Parameters:=20
		//	1 - The standard menu-submenu-id string (extra characters =
discarded).

	ekFlexMenu.parseServerControlHash =3D =
__ekFlexMenu_static_parseServerControlHash;
		// Returns the server controls' hash-code of the supplied string (or
		// whatever was supplied if not a valid menu-submenu id string):
		// Parameters:=20
		//	1 - The standard menu-submenu-id string (extra characters =
discarded).

	// Menu Folder-Button event handlers:
		ekFlexMenu.menuBtnClickHdlr =3D =
__ekFlexMenu_static_menuButtonClickEventHandler;
			// Handler for Menu-Button-Click events
			// Parameters:=20
			//	1 - the event-object.
		=09
		ekFlexMenu.menuBtnKeyHdlr =3D =
__ekFlexMenu_static_menuButtonKeyDownEventHandler;
			// Handler for Menu-Button-Keydown events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnMouseOverHdlr =3D =
__ekFlexMenu_static_menuButtonMouseOverEventHandler;
			// Handler for Menu-Button-MouseOver events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnMouseOutHdlr =3D =
__ekFlexMenu_static_menuButtonMouseOutEventHandler;
			// Handler for Menu-Button-MouseOut events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnFocusHdlr =3D =
__ekFlexMenu_static_menuButtonFocusEventHandler;
			// Handler for Menu-Button-Focus events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnBlurHdlr =3D =
__ekFlexMenu_static_menuButtonBlurEventHandler;
			// Handler for Menu-Button-Blur events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnLinkFocusHdlr =3D =
__ekFlexMenu_static_menuButtonLinkFocusEventHandler;
			// Handler for Menu-Button-Link-onFocus events.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.menuBtnLinkBlurHdlr =3D =
__ekFlexMenu_static_menuButtonLinkBlurEventHandler;
			// Handler for Menu-Button-Link-onBlur events.
			// Parameters:=20
			//	1 - the event-object.


	// Menu Item-Link event handlers:
		ekFlexMenu.itemLinkClickHdlr =3D =
__ekFlexMenu_static_menuItemLinkClickEventHandler;
			// Handler for Menu-Item-Link-Click events.
			// Parameters:=20
			//	1 - the event-object.
	=09
		// Not Needed (key translated by browser, others handled by link =
pseudo classes):
			//ekFlexMenu.itemLinkKeyHdlr =3D =
__ekFlexMenu_static_menuItemLinkKeyDownEventHandler;
			//ekFlexMenu.itemLinkMouseOverHdlr =3D =
__ekFlexMenu_static_menuItemLinkMouseOverEventHandler;
			//ekFlexMenu.itemLinkMouseOutHdlr =3D =
__ekFlexMenu_static_menuItemLinkMouseOutEventHandler;
			//ekFlexMenu.itemLinkFocusHdlr =3D =
__ekFlexMenu_static_menuItemLinkFocusEventHandler;
			//ekFlexMenu.itemLinkBlurHdlr =3D =
__ekFlexMenu_static_menuItemLinkBlurEventHandler;


	// mouseIn and mouseOut event handlers:
		ekFlexMenu.mouseIn =3D __ekFlexMenu_static_mouseIn;
			// Prepare for delayed opening of the submenu related to the =
event-triggering element.
			// Parameters:=20
			//	1 - the event-object.
	=09
		ekFlexMenu.mouseOut =3D __ekFlexMenu_static_mouseOut;
			// Prepare for delayed closing of the submenu related to the =
event-triggering element.
			// Parameters:=20
			//	1 - the event-object.

		ekFlexMenu.mouseIn_empty =3D function (event) {return (true);} // =
bubble event...

/////////////////////////////////////////////////////////////////////////=
//////
// Initialize Private Static Members:
	ekFlexMenu.private_isValidMenuSubmenuIdString =3D =
__ekFlexMenu_static_isValidMenuSubmenuIdString
		// Verifies that the supplied element-ID string is a valid=20
		// MenuSubmenuID string (ex. "e1234567_1_submenu_2_button...")
		// Note: it may be more than this, but as long as the submitted string
		// begins with a valid and usable standard menu-submenu-id string, =
then
		// the results are positive (any extra appended characters are =
ignored).
		// Parameters:=20
		//	1 - the id-string to test (may be an element-objects' Id).

	ekFlexMenu.private_serverHelper_initialize =3D =
__ekFlexMenu_static_serverHelper_initialize;
		// Calls initialization code, to configure and pre-open select menus.
		// Attempts to obtain a ekFlexMenu object, and then calls its'=20
		// initializeWithServerVariables() method...
		// Parameters:=20
		//	1 - The standard menu-submenu-id string (submenu-id and extra =
characters discarded).
=09
	ekFlexMenu.private_startupAllSmartMenus =3D =
__ekFlexMenu_static_serverHelper_startupAllSmartMenus;
		// Ensures that all ekFlexMenu objects have been initialized.
		// Parameters:=20
		//	None.
	=09
	ekFlexMenu.private_shutdownAllSmartMenus =3D =
__ekFlexMenu_static_serverHelper_shutdownAllSmartMenus;
		// Ensures that all ekFlexMenu objects have been un-initialized =
(allows clean-up, if needed).
		// Parameters:=20
		//	None.
	=09
	ekFlexMenu.private_getMenuId =3D __ekFlexMenu_static_getMenuId;
		// Returns the base (root) Menu-ID number, for a given ekflexmenu =
element ID.
		// Parameters:=20
		//	1 - the elements' full Id (shuold contain the standard =
menu-submenu-id string).
=09
	ekFlexMenu.private_getMenuIdString =3D =
__ekFlexMenu_static_getMenuIdString;
		// Returns the base (root) Menu-ID String, for a given ekflexmenu =
element ID.
		// Parameters:=20
		//	1 - the elements' full Id (shuold contain the standard =
menu-submenu-id string).
	=09
	ekFlexMenu.private_getSubmenuId =3D __ekFlexMenu_static_getSubmenuId;
		// Returns the Submenu-ID number, for a given ekflexmenu element ID.
		// Parameters:=20
		//	1 - the elements' full Id (shuold contain the standard =
menu-submenu-id string).
	=09
	ekFlexMenu.private_getSubmenuIdString =3D =
__ekFlexMenu_static_getSubmenuIdString;
		// Returns the Submenu-ID String, for a given ekflexmenu element ID.
		// Parameters:=20
		//	1 - the elements' full Id (shuold contain the standard =
menu-submenu-id string).
	=09
	ekFlexMenu.private_getEvent =3D __ekFlexMenu_static_getEvent;
		// Returns the event object.
		// Parameters:=20
	=09
	ekFlexMenu.private_getEventElement =3D =
__ekFlexMenu_static_getEventElement;
		// Returns the element object that triggered the event.
		// Parameters:=20
		//	1 - the event (may be null if browser is IE).
	=09
	ekFlexMenu.private_getIntNumber =3D __ekFlexMenu_static_getIntNumber;
		// Returns the decimal equivelent of the given string value,=20
		// or zero (0) if supplied string value is not a number.
		// Parameters:=20
		//	1 - the string to convert to a number.

	ekFlexMenu.private_isValidSubmenuObj =3D =
__ekFlexMenu_static_isValidSubmenuObj;
		// Verifies that element is a valid submenu object.
		// Parameters:=20
		//	1 - the submenu object to test.
		//	2 - the class-name to compare (may be a fragment, which=20
		//	    is useful if the class name can vary - such as=20
		//	    "ekflexmenu_button" and "ekflexmenu_button_selected").
	=09
	ekFlexMenu.private_isValidSubmenuButton =3D =
__ekFlexMenu_static_isValidSubmenuButton;
		// Verifies that element object is a valid submenu button.
		// Parameters:=20
		//	1 - the button object to test.
	=09
	ekFlexMenu.private_isValidSubmenuItems =3D =
__ekFlexMenu_static_isValidSubmenuItems;
		// Verifies that element object is a valid submenu submenu_items.
		// Parameters:=20
		//	1 - the submenu-items object to test.
	=09
	ekFlexMenu.private_isValidSubmenu =3D =
__ekFlexMenu_static_isValidSubmenu;
		// Verifies that element object is a valid submenu submenu.
		// Parameters:=20
		//	1 - the submenu object to test.
	=09
	ekFlexMenu.private_isValidSubmenuLink =3D =
__ekFlexMenu_static_isValidSubmenuLink;
		// Verifies that element object is a valid submenu link.
		// Parameters:=20
		//	1 - the submenu-link object to test.
	=09
	ekFlexMenu.private_isValidEKMenu =3D __ekFlexMenu_static_isValidEKMenu;
		// Verifies that element object is a valid main ekflexmenu object.
		// Parameters:=20
		//	1 - the main-ekflexmenu-object to test.

	ekFlexMenu.private_isDefined =3D __ekFlexMenu_static_isDefined;
		// Verifies that the passed in object is not undefined.
		// Parameters:=20
		//	1 - the object to test.

	ekFlexMenu.isDefinedNotNull =3D __ekFlexMenu_static_isDefinedNotNull;
		// Verifies that the passed in object is not undefined, and is not =
null.
		// Parameters:=20
		//	1 - the main-ekflexmenu-object to test.

	ekFlexMenu.hasClassName =3D __ekFlexMenu_static_hasClassName;
		// Tests for the presence of a specified classname in the supplied =
object.
		// Parameters:=20
		//	1 - the object to test.
		//  2 - the classname to search for.
	=09
	ekFlexMenu.addClassName =3D __ekFlexMenu_static_addClassName;
		// Ensures that the given object has the specified classname.
		// Parameters:=20
		//	1 - the object to update.
		//  2 - the classname to add.
	=09
	ekFlexMenu.removeClassName =3D __ekFlexMenu_static_removeClassName;
		// Ensures that the given object does not have the specified =
classname.
		// Parameters:=20
		//	1 - the object to update.
		//  2 - the classname to remove.

	ekFlexMenu.submenuIsTopLevel =3D __ekFlexMenu_static_submenuIsTopLevel;
		// Returns true if the string points to the top level.
		// Parameters:=20
		//	1 - A standard menu-submenu-id string (extra characters are =
discarded).
	=09
	ekFlexMenu.clearSiblingButtons =3D __ekFlexMenu_clearSiblingButtons;
        // Called when mouseover menu-links to unselect =
sibling-submenus.
        // ...Only wired-up when enableMouseOverPopUp is true:
		// Parameters:=20
		//	1 - the calling element.

	// Ajax static functions:
	ekFlexMenu.ajaxCallBack_stateChange =3D =
__ekFlexMenu_ajaxCallBack_stateChange;
	ekFlexMenu.ajaxGetMenuObj =3D __ekFlexMenu_ajaxGetMenuObj
	ekFlexMenu.ajaxCancelServerCall  =3D =
__ekFlexMenu_static_ajaxCancelServerCall;


	// Static variables:
	ekFlexMenu.static_userAjaxXmlHttp1 =3D null;
	=09
	// Constants:
		ekFlexMenu.private_menuPrefix =3D "e"; // =
ekFlexMenu.private_menuPrefix =3D "ekfxmensel_";
		ekFlexMenu.private_hashLength =3D 9; /* Eight character hexadecimal =
hash code, prefixed with "e" */
		ekFlexMenu.private_namePrefix =3D "ekmengrp_";
		//Update: no longer used: ekFlexMenu.private_submenuDelimiter =3D =
"_submenu_";
		ekFlexMenu.private_buttonElementIdPostFix =3D "_button";
		ekFlexMenu.private_submenuItemsElementIdPostFix =3D "_submenu_items";
		ekFlexMenu.private_parentIdElementIdPostFix =3D "_parentid";
		ekFlexMenu.private_ekflexmenuContainerElementIdPostFix =3D =
"_ekflexmenu"


//*********************************************************
// ekFlexMenu Static Member Definitions Begin:
//*********************************************************

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function
// Returns the Menu-Object for a given ekflexmenu element ID,
// creates a new ekFlexMenu object if needed (stores these in
// an array as a property to the window object - making it=20
// available/shared with all SmartMenus (this way multiple menus=20
// can exist on a page, and have different objects that=20
// are available anywhere - given an ekflexmenu element ID).
function __ekFlexMenu_static_getMenuObj(elementId) {
	var menuObj =3D null;
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(elementId);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		//var menuIdString =3D =
ekFlexMenu.private_getMenuIdString(menuSubmenuId);
		var menuHashCode =3D ekFlexMenu.parseServerControlHash(menuSubmenuId);
	=09
		if (("undefined" =3D=3D typeof window.ekFlexMenu_MenuObjArray)
			|| (null =3D=3D window.ekFlexMenu_MenuObjArray)) {
			var MenuObjArray =3D new Array;
			menuObj =3D new ekFlexMenu(menuSubmenuId);
			MenuObjArray[menuHashCode] =3D menuObj;
			window.ekFlexMenu_MenuObjArray =3D MenuObjArray;
		}=20
		else if (null =3D=3D window.ekFlexMenu_MenuObjArray[menuHashCode]) {
			window.ekFlexMenu_MenuObjArray[menuHashCode] =3D menuObj =3D new =
ekFlexMenu(menuSubmenuId);
		}
		else {
			menuObj =3D window.ekFlexMenu_MenuObjArray[menuHashCode];
		}
	}
	return (menuObj);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the MenuSubmenuID string, for a given ekflexmenu element-ID
// (ex. given "e1234567_1_submenu_2_button" returns
// "e1234567_1_submenu_2" for root-menu 1, submenu 2):
//
// Update:
// Now prefixed with server-control IDs' hexidecimal hash-code:
// (ex. given "c580fa7b_1_2_button" returns
// "c580fa7b_1_2" for root-menu 1, submenu 2):
function __ekFlexMenu_static_parseMenuSubmenuIdString(elementId) {
	var result =3D "";
	if (elementId=20
		&& ("undefined" !=3D typeof elementId)
		&& ("undefined" !=3D typeof elementId.length)
		&& (elementId.length > 0)
		&& ("undefined" !=3D typeof elementId.indexOf)) {

		var frag =3D elementId.split("_");
		if (frag[0] && (ekFlexMenu.private_hashLength =3D=3D frag[0].length) =
&& frag[1] && frag[2]) {
			result =3D frag[0] + "_" + frag[1] + "_" + frag[2];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the server controls' hash-code of the supplied string (or
// whatever was supplied if not a valid menu-submenu id string):
function __ekFlexMenu_static_parseServerControlHash(id) {
	var result =3D "";
	if (id && id.split) {
		var frag =3D id.split("_");
		if (frag[0] && (ekFlexMenu.private_hashLength =3D=3D frag[0].length)) =
{
			result =3D frag[0];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the event object:
function __ekFlexMenu_static_getEvent(e) {
	if (e) return (e);
	else return (window.event);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the element object that triggered the event:
function __ekFlexMenu_static_getEventElement(e) {
	if (e) return ((e.srcElement) ? e.srcElement : e.target);
	else return (null);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Click events:
function __ekFlexMenu_static_menuButtonClickEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	var result =3D true;
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				var prevState =3D menuObj.isSubmenuSelected(el.id);
				if (prevState) {
					menuObj.unSelectSubmenu(el.id);
					result =3D false; // event consumed.
				}
				else {
					menuObj.selectSubmenu(el.id);
					result =3D false; // event consumed.
				=09
					// Attempt to call ajax if enabled, refresh the page=20
					// the with desired submenu open, if the call fails:
					if (menuObj.private_ajaxEnabled) {
						if (menuObj.callAjaxForUserClick(el.id)) {
							// Prevent the "noscript" link from refreshing the page:
							ev.returnValue =3D false;
							//ev.cancelBubble =3D true;
							result =3D false; // event consumed.
						}
						else {
							result =3D true; // event not consumed; fire href link.
						}
					}
				}
			}
		}
		// Test to see if browser should follow link:
		if (ekFlexMenu.isDefinedNotNull(el)) {
			if (ekFlexMenu.isDefinedNotNull(el.href)) {
				if (ekFlexMenu.isDefinedNotNull(el.href.indexOf)) {
					if (0 > el.href.indexOf("ekfxmen_noscript=3D1")) {
						// This is a valid user link:=20
						//   signal event not consumed, and fire href link.
						result =3D true;
					}
				}
			}
		}
	}
	return (result);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Keydown events:
// Note: Typically called by a submenu-folder-button when=20
//   a key is pressed, and 508-Compliance is disabled.=20
function __ekFlexMenu_static_menuButtonKeyDownEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {

			var key =3D ev.keyCode;
			if (key && ((key =3D=3D 32))) { // select submenu on space-bar =
press...

				// Prevent screen from scrolling, due to internal=20
				// link-click (anchor-tag, with href=3D"#"):
				if (ev.preventDefault && ev.stopPropagation) {
					ev.preventDefault();
					ev.stopPropagation();
				}
				else {
					ev.returnValue =3D false;
				}
			=09
				// Now toggle the state of the menu:
				ekFlexMenu.menuBtnClickHdlr(ev);
			=09
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-MouseOver events:
function __ekFlexMenu_static_menuButtonMouseOverEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, true);
				menuObj.hoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-MouseOut events:
function __ekFlexMenu_static_menuButtonMouseOutEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, false);
				menuObj.unHoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Focus events:
function __ekFlexMenu_static_menuButtonFocusEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, true);
				menuObj.hoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Blur events:
function __ekFlexMenu_static_menuButtonBlurEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, false);
				menuObj.unHoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Link-onFocus events:
function __ekFlexMenu_static_menuButtonLinkFocusEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, true);
				menuObj.hoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Button-Link-onBlur events:
function __ekFlexMenu_static_menuButtonLinkBlurEventHandler(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				menuObj.hoverButton(el.id, false);
				menuObj.unHoverSubmenu(el.id);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
function __ekFlexMenu_static_getValidParentId(el) {
	var topContainer =3D "_ekflexmenu";
	var len =3D topContainer.length;
=09
	while(el=20
		&& (el.parentNode)) {
	=09
		if (el.id && (el.id.length)) {
			if (ekFlexMenu.private_isValidMenuSubmenuIdString(el.id)) {
				return (el.id);
			}
		}
		el =3D el.parentNode;
	}

	return ("");
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// mouseIn event handler; prepares for delayed opening of=20
// the submenu related to the event-triggering element.
// Parameters:=20
//	1 - the event-object.
function __ekFlexMenu_static_mouseIn(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
		    var elmtId =3D el.id;
			if (0 =3D=3D elmtId.length) {
				elmtId =3D __ekFlexMenu_static_getValidParentId(el);
			}
			var menuObj =3D ekFlexMenu.getMenuObj(elmtId);
			if (menuObj) {
				menuObj.mouseIn(e, el);
				return (true); // event not-consumed (allow bubbling).
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// mouseOut event handler; prepares for delayed closing of=20
// the submenu related to the event-triggering element.
// Parameters:=20
//	1 - the event-object.
function __ekFlexMenu_static_mouseOut(e) {
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {
		    var elmtId =3D el.id;
			if (0 =3D=3D elmtId.length) {
				elmtId =3D __ekFlexMenu_static_getValidParentId(el);
			}
			var menuObj =3D ekFlexMenu.getMenuObj(elmtId);
			if (menuObj) {
				menuObj.mouseOut(e, el);
				return (true); // event not-consumed (allow bubbling).
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handler for Menu-Item-Link-Click events:
function __ekFlexMenu_static_menuItemLinkClickEventHandler(e) {
	var linkIsAButton =3D false;
	var ev =3D ekFlexMenu.private_getEvent(e);
	if (ev) {
		var el =3D ekFlexMenu.private_getEventElement(ev);
		if (el && ("undefined" !=3D el.id)) {

			if (ekFlexMenu.isDefinedNotNull(el)
				&& ekFlexMenu.isDefinedNotNull(el.tagName)
				&& ("IMG" =3D=3D el.tagName))=20
			{
				// The element is an image, attempt to pass
				// -off the event to the wrapping element:=20
				if (ekFlexMenu.isDefinedNotNull(el.parentNode)=20
					&& ekFlexMenu.private_isValidSubmenuButton(el.parentNode))
				{
					el =3D el.parentNode;
					if (ekFlexMenu.isDefinedNotNull(el.click)) {
						el.click(ev);
						return (false);
					}
					linkIsAButton =3D true;
				}
				else {
					return (true);=20
				}
			}
			else if (ekFlexMenu.private_isValidSubmenuButton(el)) {
				linkIsAButton =3D true;
			}

			var menuObj =3D ekFlexMenu.getMenuObj(el.id);
			if (menuObj) {
				// may need to toggle menu state if the link is a menu button:			=09
				if (linkIsAButton) {
					var prevState =3D menuObj.isSubmenuSelected(el.id);
					if (prevState) {
						menuObj.unSelectSubmenu(el.id);
					}
					else {
						menuObj.selectSubmenu(el.id);
					}
				}
				menuObj.selectMenuItem(el);
				return (false); // event consumed.
			}
		}
	}
	return (true);=09
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the decimal equivelent of the given string value,=20
// or zero (0) if supplied string value is not a number:
function __ekFlexMenu_static_getIntNumber(val) {
	var result =3D 0;
	var tempResult =3D parseInt(val, 10);
	if (NaN !=3D tempResult) {
		result =3D tempResult;
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the Menu-ID number, for a given ekflexmenu element ID:
function __ekFlexMenu_static_getMenuId(elementId) {
	var result =3D 0;
	var idString =3D ekFlexMenu.private_getMenuIdString(elementId);
	if (idString.length) {
		result =3D ekFlexMenu.private_getIntNumber(idString);
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the Menu-ID String, for a given ekflexmenu element ID:
function __ekFlexMenu_static_getMenuIdString(elementId) {
	var result =3D "";
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(elementId);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var frag =3D elementId.split("_");
		if (frag[0] && (ekFlexMenu.private_hashLength =3D=3D frag[0].length) =
&& frag[1] && frag[2]) {
			result =3D frag[1];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the Submenu-ID number, for a given ekflexmenu element ID:
function __ekFlexMenu_static_getSubmenuId(elementId) {
	var result =3D 0;
	var idString =3D ekFlexMenu.private_getSubmenuIdString(elementId);
	if (idString.length) {
		result =3D ekFlexMenu.private_getIntNumber(idString);
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns the Submenu-ID String, for a given ekflexmenu element ID:
function __ekFlexMenu_static_getSubmenuIdString(elementId) {
	var result =3D "";
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(elementId)) {
		var frag =3D elementId.split("_");
		if (frag[0] && (ekFlexMenu.private_hashLength =3D=3D frag[0].length) =
&& frag[1] && frag[2]) {
			result =3D frag[2];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that the supplied element-ID string is a valid=20
// MenuSubmenuID string (ex. "e1234567_1_submenu_2_button")
function __ekFlexMenu_static_isValidMenuSubmenuIdString(elementId) {
	var result =3D false;
	if (elementId=20
		&& ("undefined" !=3D typeof elementId)
		&& ("undefined" !=3D typeof elementId.length)
		&& (elementId.length > 0)
		&& ("undefined" !=3D typeof elementId.indexOf)) {
		var frag =3D elementId.split("_");
		if (frag[0] && (ekFlexMenu.private_hashLength =3D=3D frag[0].length) =
&& frag[1] && frag[2]) {
					result =3D true;
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element is a valid submenu object:
function __ekFlexMenu_static_isValidSubmenuObj(obj, classNameFrag) {
	var result =3D false;
	if (obj=20
		&& ("undefined" !=3D typeof obj.id)
		&& ("undefined" !=3D typeof obj.className)
		&& ("undefined" !=3D typeof obj.className.indexOf)
		&& (0 <=3D obj.className.indexOf(classNameFrag))) {
		result =3D true;
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element object is a valid submenu button:
function __ekFlexMenu_static_isValidSubmenuButton(obj) {
	return (ekFlexMenu.private_isValidSubmenuObj(obj, =
ekFlexMenu_classNames.button));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element object is a valid submenu submenu_items:
function __ekFlexMenu_static_isValidSubmenuItems(obj) {
	return (ekFlexMenu.private_isValidSubmenuObj(obj, "submenu_items"));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element object is a valid submenu submenu:
function __ekFlexMenu_static_isValidSubmenu(obj) {
	return (ekFlexMenu.private_isValidSubmenuObj(obj, "submenu"));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element object is a valid submenu link:
function __ekFlexMenu_static_isValidSubmenuLink(obj) {
	return (ekFlexMenu.private_isValidSubmenuObj(obj, "link"));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Verifies that element object is a valid main ekflexmenu object:
function __ekFlexMenu_static_isValidEKMenu(obj) {
	return (ekFlexMenu.private_isValidSubmenuObj(obj, "ekflexmenu"));
}

///////////////////////////////////////////////////////////
// Verifies that the passed in object is not undefined.
// Parameters:=20
//	1 - the main-ekflexmenu-object to test.
function __ekFlexMenu_static_isDefined(obj) {
	return ("undefined" !=3D typeof obj);
}

///////////////////////////////////////////////////////////
// Verifies that the passed in object is not=20
// undefined, and is not null.
// Parameters:=20
//	1 - the main-ekflexmenu-object to test.
function __ekFlexMenu_static_isDefinedNotNull(obj) {
	return (ekFlexMenu.private_isDefined(obj) && (null !=3D obj));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Calls initialization code, to configure and pre-open select menus:
function __ekFlexMenu_static_serverHelper_initialize(id) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(id);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		//var menuHashCode =3D =
ekFlexMenu.parseServerControlHash(menuSubmenuId);
		var menuObj =3D ekFlexMenu.getMenuObj(menuSubmenuId);
		if (menuObj) {
			menuObj.initializeWithServerVariables();
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Ensures that all ekFlexMenu objects have been initialized:
function __ekFlexMenu_static_serverHelper_startupAllSmartMenus() {
	if (("undefined" !=3D typeof window.ekFlexMenu_ekflexmenuArray)
		&& (null !=3D window.ekFlexMenu_ekflexmenuArray)
		&& ("undefined" !=3D typeof window.ekFlexMenu_ekflexmenuArray.length)
		&& (null !=3D window.ekFlexMenu_ekflexmenuArray.length)) {
	=09
		for (var idx =3D 0; idx < window.ekFlexMenu_ekflexmenuArray.length; =
idx++) {
			var startMenu =3D window.ekFlexMenu_ekflexmenuArray[idx];
			if (startMenu.length)=20
				ekFlexMenu.private_serverHelper_initialize(startMenu);
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Ensures that all ekFlexMenu objects have been initialized:
function __ekFlexMenu_static_serverHelper_shutdownAllSmartMenus() {
	ekFlexMenu.ajaxCancelServerCall();
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Terminates any outstanding Ajax calls:
function __ekFlexMenu_static_ajaxCancelServerCall()
{
	if (ekFlexMenu.static_userAjaxXmlHttp1 !=3D null) {
		ekFlexMenu.static_userAjaxXmlHttp1.abort();
		ekFlexMenu.static_userAjaxXmlHttp1 =3D null;
	}
}



///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Tests for the presence of a specified classname in the supplied =
object.
function __ekFlexMenu_static_hasClassName(obj, className) {
	var idx, names;
	if (obj && ("undefined" !=3D typeof obj.className)
		&& ("undefined" !=3D typeof obj.className.split)) {
		names =3D obj.className.split(" ");
		for (idx =3D 0; idx < names.length; idx++) {
			if (names[idx] =3D=3D className)
				return true;
		}
	}=20
	return false;
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Ensures that the given object has the specified classname.
function __ekFlexMenu_static_addClassName(obj, className) {
	if (ekFlexMenu.hasClassName(obj, className))
		return;
=09
	if (obj && ("undefined" !=3D typeof obj.className)
		&& ("undefined" !=3D typeof obj.className.length)) {
		if (0 =3D=3D obj.className.length) {
			obj.className =3D className;
		}
		else {
			obj.className +=3D " " + className;
		}
	}=20
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Ensures that the given object does not have the specified classname.
function __ekFlexMenu_static_removeClassName(obj, className) {
	var idx, matchId, names, result;
	if (obj && ("undefined" !=3D typeof obj.className)
		&& ("undefined" !=3D typeof obj.className.split)) {
		names =3D obj.className.split(" ");
		obj.className =3D "";
		for (idx =3D 0; idx < names.length; idx++) {
			if (names[idx] !=3D className) {
				if (idx > 0)
					obj.className +=3D " " + names[idx];
				else
					obj.className +=3D names[idx];
			}
		}
	}=20
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Returns true if the string points to the top level.
function __ekFlexMenu_static_submenuIsTopLevel(elementId) {
	var result =3D false;
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(elementId)) {
		var sub =3D ekFlexMenu.private_getSubmenuIdString(elementId);
		var ancestorId =3D ekFlexMenu.private_getMenuIdString(elementId);
		result =3D ((0 =3D=3D sub) || (ancestorId =3D=3D sub));
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Handle Ajax callback:
function __ekFlexMenu_ajaxCallBack_stateChange()
{
	if (ekFlexMenu.static_userAjaxXmlHttp1.readyState =3D=3D 4) {
		if =
(ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1.status)) =
{
			if (200 <=3D ekFlexMenu.static_userAjaxXmlHttp1.status < 300) {
				var menuObj =3D =
ekFlexMenu.ajaxGetMenuObj(ekFlexMenu.static_userAjaxXmlHttp1.responseText=
);
				if (menuObj) {
					var resType =3D =
ekFlexMenu.static_userAjaxXmlHttp1.getResponseHeader('Content-Type');
					if (0 > resType.indexOf("text/xml")) {
						menuObj.appendText(menuObj.userAjaxParentId1);
					}
					else {
						menuObj.appendXml(menuObj.userAjaxParentId1);
					}
				}
			}
			else {
				// TODO: flag failure, and use links' href paramter as fallback...
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// Ajax helper function:
function __ekFlexMenu_ajaxGetMenuObj(reqStr)
{
	var result =3D null;
	var idx =3D reqStr.indexOf("ekflexmenu");
	if (idx >=3D 0) {
		var tempStr =3D reqStr.substr(idx);
		var matchStr =3D " id=3D";
		idx =3D tempStr.indexOf(matchStr);
		if (idx >=3D 0) {
			tempStr =3D tempStr.substr(idx + matchStr.length);
			idx =3D tempStr.indexOf(ekFlexMenu.private_menuPrefix);
			if (idx >=3D 0) {
				tempStr =3D tempStr.substr(idx);
				tempStr =3D ekFlexMenu.parseMenuSubmenuIdString(tempStr);
				result =3D ekFlexMenu.getMenuObj(tempStr);
			}
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Static Member Helper Function.
// clearSiblingButtons:
// Called when mouseover menu-links to unselect sibling-submenus.
// ...Only wired-up when enableMouseOverPopUp is true:
function __ekFlexMenu_clearSiblingButtons(obj) {
    // find sibling-submenus, set them to unselected and hide their =
children:
    if (obj && obj.parentNode && obj.parentNode.parentNode && =
obj.parentNode.parentNode.id)
        $ektron("#" + obj.parentNode.parentNode.id + " > =
li.ekflexmenu_submenu").find(" > =
ul").removeClass("ekflexmenu_submenu_items").addClass("ekflexmenu_submenu=
_items_hidden").end().find(" > =
a.ekflexmenu_button_selected").removeClass("ekflexmenu_button_selected").=
addClass("ekflexmenu_button")
    return (true);
}


//*********************************************************
// ekFlexMenu Instance Member Definitions Begin:
//*********************************************************

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the root-menu id string.
function __ekFlexMenu_returnMenuId() {
	return (this.private_menuIdString);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the hash-code of the server control.
function __ekFlexMenu_returnHashCode() {
	return (this.private_serverControlHash);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the root-menu id string of the supplied string (or
// whatever was supplied if not a valid menu-submenu id string):
function __ekFlexMenu_parseMenuId(id) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(id);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		return (ekFlexMenu.private_getMenuIdString(menuSubmenuId));
	}
	else {
		return (id);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns boolean, indicating if identified button is=20
// currently selected (and therefore, then the associated
// visibility state of the identified submenu items):
function __ekFlexMenu_isSubmenuSelected(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var btnObj =3D this.getFolderButtonObject(menuSubmenuId);
		if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {
			return (ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelected)
				|| ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover));
		}
	}
	return (false);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Selects the identified menu; if there is a folder-button,=20
// then the class is updated to selected state. Then shows=20
// the associated submenu items:
function __ekFlexMenu_selectSubmenu(idString, optional_fromMouseIn) {
	var defaultFromMouseIn =3D false;
	if (ekFlexMenu.isDefinedNotNull(optional_fromMouseIn)) {
		defaultFromMouseIn =3D optional_fromMouseIn;
	}

	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		if (this.private_autoCollapseSubmenus) {
		    if (this.private_isSlaveControl && defaultFromMouseIn){
		        this.collapseUnselectedStartLevelSubmenus();
		    }
		    else{
			    this.collapseAllOpenSubmenus(false);
			}
		}
		this.private_selectedMenuList =3D menuSubmenuId;
		this.selectSubmenuHelper(menuSubmenuId);
=09
		if (!defaultFromMouseIn){
			this.callSlave__showSubmenuBranch(idString);
		}
	=09
		this.private_selectionChanged =3D true;
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_getSlaveControlObject() {
	var result =3D null;
	if (this.private_isMasterControl
		&& ekFlexMenu.isDefinedNotNull(this.private_slaveControl)=20
		&& ekFlexMenu.isDefinedNotNull(this.private_slaveControl.length)
		&& (this.private_slaveControl.length > 0)) {
		var slaveId =3D this.private_slaveControl + "_" + this.menuId() + =
"_0";
		var slaveObj =3D ekFlexMenu.getMenuObj(slaveId);
		if (slaveObj) {
			result =3D slaveObj;
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_callSlave__showSubmenuBranch(idString) {
	var slaveObj =3D this.getSlaveControlObject();
	var btnContainer;
	if (slaveObj) {
		if =
(slaveObj.showSubmenuBranch(this.convertIdToSlaveControlId(slaveObj, =
idString))) {
			// slave menu succesfully activated, mark top button properly,
			// after ensuring all other top-level-buttons are un-marked:
			for (var ui in this.topLevelUI) {
				//btnContainer =3D document.getElementById(ui);
				btnContainer =3D document.getElementById(ui);
				if (btnContainer) {
					if (ekFlexMenu.hasClassName(btnContainer, =
ekFlexMenu_classNames.slaveBranchSelected)) {
						ekFlexMenu.removeClassName(btnContainer, =
ekFlexMenu_classNames.slaveBranchSelected);
					}
				}
			}

			var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
			var parentId =3D this.getParentLevelSubmenuId(menuSubmenuId);
			while ((parentId !=3D menuSubmenuId) && (0 !=3D =
ekFlexMenu.private_getSubmenuId(parentId))) {
				if (this.isTopLevelUI(parentId)) {
					btnContainer =3D document.getElementById(parentId);
					if (btnContainer) {
						if (!ekFlexMenu.hasClassName(btnContainer, =
ekFlexMenu_classNames.slaveBranchSelected)) {
							ekFlexMenu.addClassName(btnContainer, =
ekFlexMenu_classNames.slaveBranchSelected);
						}
					}
					break;
				}
				parentId =3D this.getParentLevelSubmenuId(parentId);
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_initializeSlaveMenu() {
	var isVisible =3D false;
	var firstObj =3D null;
	var menuSubmenuId;
	var inAr =3D this.getEkFlexMenuElementsByTagName("INPUT");
	for (var idx=3D0; idx < inAr.length; idx++) {
		if (inAr[idx].value.indexOf(this.private_masterControlIdHash) =3D=3D =
0) {
			var localId =3D inAr[idx].id;
			var obj;
			if (localId.length >=3D ekFlexMenu.private_hashLength) {
				localId =3D =
this.buildMenuSubmenuId(ekFlexMenu.private_getSubmenuIdString(localId)) =
+ ekFlexMenu.private_submenuItemsElementIdPostFix;
				obj =3D document.getElementById(localId);
				if (obj) {
					if (null =3D=3D firstObj) {
						firstObj =3D obj;
					}

					if (ekFlexMenu.hasClassName(obj, =
ekFlexMenu_classNames.submenuItems)) {
						isVisible =3D true;
					}
				=09
					if (null =3D=3D this.topLevelUI) {
						this.topLevelUI =3D new Array;
					}
					menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(localId);
					if (!this.topLevelUI[menuSubmenuId]) {
						this.topLevelUI[menuSubmenuId] =3D true;
					}
				}
			}
		}
	}

	if ((!isVisible) && firstObj) {
		ekFlexMenu.removeClassName(firstObj, =
ekFlexMenu_classNames.submenuItemsHidden);
		ekFlexMenu.addClassName(firstObj, ekFlexMenu_classNames.submenuItems);
		//this.selectSubmenu(firstSubmenu);
	}
=09
	if (this.ekFlexMenu_defaultMenuIdString){
	    this.ekFlexMenu_slaveStartLevel =3D =
this.getMenuLevel(this.ekFlexMenu_defaultMenuIdString);
	}
	else if (this.ekFlexMenu_slaveStartLevelIds && =
this.ekFlexMenu_slaveStartLevelIds.length > 0){
	    this.ekFlexMenu_slaveStartLevel =3D =
this.getMenuLevel(this.ekFlexMenu_slaveStartLevelIds[0]);
	}
	else if (this.topLevelUI){
	    this.ekFlexMenu_slaveStartLevel =3D =
this.getMenuLevel(this.topLevelUI[0]);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_initializeMasterMenu() {
	var menuSubmenuId =3D this.buildMenuSubmenuId(0) + =
ekFlexMenu.private_submenuItemsElementIdPostFix;
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var node =3D document.getElementById(menuSubmenuId);
		if (node) {
			var nodes =3D node.childNodes;
			for (var idx =3D 0; idx < nodes.length; idx++) {
				if (null =3D=3D this.topLevelUI) {
					this.topLevelUI =3D new Array;
				}
				menuSubmenuId =3D =
ekFlexMenu.parseMenuSubmenuIdString(nodes[idx].id);
				if (!this.topLevelUI[menuSubmenuId]) {
					this.topLevelUI[menuSubmenuId] =3D true;
				}
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called from master to select slave submenu.
function __ekFlexMenu_showSubmenuBranch(idString) {
	var result =3D false;
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var id =3D menuSubmenuId;
		var obj =3D document.getElementById(id);
		if (obj) {
			//if (this.private_autoCollapseSubmenus) {
			//	this.collapseAllOpenSubmenus(false);
			//}

			for (var ui in this.topLevelUI) {
				this.unSelectSubmenu(ui, true);
			}
		=09
			var lastId =3D this.getLastSlaveStartLevelMenu();
			if (lastId && lastId.length > 0){
				this.unSelectSubmenu(lastId, true);
			}
			else if (this.private_isSlaveControl && =
this.ekFlexMenu_defaultMenuIdString) {
				this.unSelectSubmenu(this.ekFlexMenu_defaultMenuIdString);
			}
			else if (this.private_isSlaveControl) {
				// unknown current submenu; hide all at start level:
				this.collapseAllOpenSubmenus();
			}
		=09
			this.selectSubmenuHelper(menuSubmenuId);
			this.recordLastSlaveStartLevelMenu(menuSubmenuId);
			result =3D true;
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_unHideSlaveMenu() {
return; // DO NOT DO USE THIS METHOD!!!
	var targId =3D this.getLastSlaveStartLevelMenu();
	if (targId && (targId.length > 0)) {
		this.selectSubmenuHelper(targId);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_recordLastSlaveStartLevelMenu(id) {
	if (id && this.ekFlexMenu_slaveStartLevelIds[id]) {
		this.lastSelectedStartLevelSlaveMenuId =3D id;
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_getLastSlaveStartLevelMenu() {
    if (this.lastSelectedStartLevelSlaveMenuId && =
(this.lastSelectedStartLevelSlaveMenuId.length > 0)){
        return (this.lastSelectedStartLevelSlaveMenuId);
    }
    else if (this.ekFlexMenu_defaultMenuIdString && =
this.ekFlexMenu_defaultMenuIdString.length > 0){
        return (this.ekFlexMenu_defaultMenuIdString);
    }
    else{
        return ("");
    }
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_unSelectSubmenuList(menuList) {
	var listAr =3D menuList.split(",");
	var idx;
	for (idx=3D0; idx < listAr.length; idx++) {
		this.unSelectSubmenu(listAr[idx]);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_convertIdToSlaveControlId(slaveObj, idString) {
	var result =3D idString;
	if (slaveObj && idString && idString.length && (idString.length >=3D =
ekFlexMenu.private_hashLength)) {
		result =3D slaveObj.hashCode() + =
idString.substr(ekFlexMenu.private_hashLength);
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_isTopLevelUI(idString) {
	return (this.topLevelUI && =
this.topLevelUI[ekFlexMenu.parseMenuSubmenuIdString(idString)]);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Helper funtion for __ekFlexMenu_selectSubmenu, uses=20
// recursionSelects to ensure selected submenus are visible
// even if they are buried with muliple nesting levels:
function __ekFlexMenu_selectSubmenuHelper(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		if (this.private_selectedMenuList.length) {
			this.private_selectedMenuList +=3D "," + menuSubmenuId;
		}
		else {
			this.private_selectedMenuList =3D menuSubmenuId;
		}
	=09
		var btnObj =3D this.getFolderButtonObject(menuSubmenuId);
		if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {
			var wasHovering =3D (ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonHover)
				|| ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover));
			if (wasHovering) {
				ekFlexMenu.removeClassName(btnObj, =
ekFlexMenu_classNames.buttonHover);
				ekFlexMenu.addClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover);
			}
			else {
				ekFlexMenu.removeClassName(btnObj, ekFlexMenu_classNames.button);
				ekFlexMenu.addClassName(btnObj, =
ekFlexMenu_classNames.buttonSelected);
			}
		}
	=09
		var itmObj =3D this.getSubmenuItemsObject(menuSubmenuId);
		if (ekFlexMenu.private_isValidSubmenuItems(itmObj)) {
			ekFlexMenu.removeClassName(itmObj, =
ekFlexMenu_classNames.submenuItemsHidden);
			ekFlexMenu.addClassName(itmObj, ekFlexMenu_classNames.submenuItems);
		}

		// Ensure parent folders are visible as well, in case
		// we got here from something else than a user click:
		if (!(this.private_isSlaveControl && =
this.isTopLevelUI(menuSubmenuId))) {
			var parentId =3D this.getParentLevelSubmenuId(menuSubmenuId);
			if (parentId !=3D menuSubmenuId) {
				this.selectSubmenuHelper(parentId); // recursively call this =
function until all parents are open.
			}
	=09
			this.markParentSubmenu(menuSubmenuId);
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Unselects the identified menu; if there is a folder-button,=20
// then the class is updated to an unselected state. Then=20
// hides the associated submenu items:
function __ekFlexMenu_unSelectSubmenu(idString, topLevelUIOverride) {
	if (idString && idString.length) {
		var overrideTopLevelUI =3D false;
		if (ekFlexMenu.isDefinedNotNull(topLevelUIOverride)) {
			overrideTopLevelUI =3D topLevelUIOverride;
		}
	    var menuSubmenuId =3D =
ekFlexMenu.parseMenuSubmenuIdString(idString);
	    if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
			if ((ekFlexMenu.private_getSubmenuId(menuSubmenuId) =3D=3D 0)=20
				|| ((ekFlexMenu.private_getSubmenuId(menuSubmenuId) > 0)=20
				&& (overrideTopLevelUI || !this.private_isSlaveControl || =
!this.isTopLevelUI(menuSubmenuId)))) {
				var btnObj =3D this.getFolderButtonObject(menuSubmenuId);
				if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {
					var wasHovering =3D (ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonHover)
						|| ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover));
					if (wasHovering) {
						ekFlexMenu.removeClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover);
						ekFlexMenu.addClassName(btnObj, =
ekFlexMenu_classNames.buttonHover);
					}
					else {
						ekFlexMenu.removeClassName(btnObj, =
ekFlexMenu_classNames.buttonSelected);
						ekFlexMenu.addClassName(btnObj, ekFlexMenu_classNames.button);
					}
				}
			=09
				var itmObj =3D this.getSubmenuItemsObject(menuSubmenuId);
				// Don't hide slave containers:
				if (!(this.private_isSlaveControl=20
					&& (ekFlexMenu.submenuIsTopLevel(menuSubmenuId)=20
						|| ekFlexMenu.hasClassName(itmObj, =
ekFlexMenu_classNames.slaveContainer)))) {
					if (ekFlexMenu.private_isValidSubmenuItems(itmObj)) {
						ekFlexMenu.removeClassName(itmObj, =
ekFlexMenu_classNames.submenuItems);
						ekFlexMenu.addClassName(itmObj, =
ekFlexMenu_classNames.submenuItemsHidden);
					}
				}

				this.unMarkParentSubmenu(menuSubmenuId);
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Closes all currently open submenus, to prevent overlap & visual =
clutter:
function __ekFlexMenu_collapseAllOpenSubmenus(showRootFlag) {
	if (this.private_selectionChanged) {
		this.unSelectSubmenuList(this.private_selectedMenuList);
		this.private_selectedMenuList =3D ""
	}
	else {
		var openMenusArray =3D =
this.getElementsByClassNameAndTagName(ekFlexMenu_classNames.submenuItems,=
 "UL");

		// hide all visible submenus:
	for (var idx=3D0; idx < openMenusArray.length; idx++) {
		this.unSelectSubmenu(openMenusArray[idx].id);
	}
=09
		// TODO: FIX: ensure all buttons are disabled (should be done=20
		// by previous step, but this fails for master/slave menus):
		var activeButtons =3D =
this.getElementsByClassNameAndTagName(ekFlexMenu_classNames.buttonSelecte=
d, "SPAN");
		for (idx=3D0; idx < activeButtons.length; idx++) {
			this.unSelectSubmenu(activeButtons[idx].id);
		}
	}
=09
	// Now that all menus have been hdden, determine=20
	// if the the root-menu should be made visible:
	if ("undefined" !=3D typeof showRootFlag) {
		// parameter was passed, use it to control/override defalt behaviour:
		if (showRootFlag)
			this.showRootMenu();
	}=20
	else {
		// use default behaviour:
		if (!this.private_startWithRootFolderCollapsed)
			this.showRootMenu();
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Used for slave menu; Closes all unselected submenus:
function __ekFlexMenu_collapseUnselectedStartLevelSubmenus() {
    var lastMenuId =3D this.getLastSlaveStartLevelMenu();
	var openMenusArray =3D =
this.getElementsByClassNameAndTagName(ekFlexMenu_classNames.submenuItems,=
 "UL");

	// hide all visible submenus:
    for (var idx=3D0; idx < openMenusArray.length; idx++) {
        if (lastMenuId !=3D =
ekFlexMenu.parseMenuSubmenuIdString(openMenusArray[idx].id)){
	        this.unSelectSubmenu(openMenusArray[idx].id);
	    }
	}

	// TODO: FIX: ensure all buttons are disabled (should be done=20
	// by previous step, but this fails for master/slave menus):
	var activeButtons =3D =
this.getElementsByClassNameAndTagName(ekFlexMenu_classNames.buttonSelecte=
d, "SPAN");
	for (idx=3D0; idx < activeButtons.length; idx++) {
		this.unSelectSubmenu(activeButtons[idx].id);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Hide sibling submenus of the designated submenu:
function __ekFlexMenu_collapseSiblingSubmenus(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var parentLevelId =3D this.getParentLevelSubmenuId(menuSubmenuId);
		if (ekFlexMenu.private_isValidMenuSubmenuIdString(parentLevelId)
			&& (parentLevelId !=3D menuSubmenuId)) {
			var idArray =3D this.getDirectChildIds(parentLevelId)
			for (var idx=3D0; idx < idArray.length; idx++) {
				if (idArray[idx] !=3D menuSubmenuId) {
					this.unSelectSubmenu(idArray[idx]);
				}
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Sets the parent folders' style to be a parent (optionally=20
// used in CSS to style parents differently):
function __ekFlexMenu_markParentSubmenu(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var parentLevelId =3D this.getParentLevelSubmenuId(menuSubmenuId);
		if (ekFlexMenu.private_isValidMenuSubmenuIdString(parentLevelId)
			&& (parentLevelId !=3D menuSubmenuId))=20
		{
			var parentObj =3D this.getSubmenuObject(parentLevelId);
			if ((ekFlexMenu.isDefinedNotNull(parentObj))=20
				&& (ekFlexMenu.private_isDefined(parentObj.className)))
			{
				if (ekFlexMenu.hasClassName(parentObj, =
ekFlexMenu_classNames.submenu)) {
					ekFlexMenu.removeClassName(parentObj, =
ekFlexMenu_classNames.submenu);
					ekFlexMenu.addClassName(parentObj, =
ekFlexMenu_classNames.submenuParent);
				}
				else if (ekFlexMenu.hasClassName(parentObj, =
ekFlexMenu_classNames.submenuHover)) {
					ekFlexMenu.removeClassName(parentObj, =
ekFlexMenu_classNames.submenuHover);
					ekFlexMenu.addClassName(parentObj, =
ekFlexMenu_classNames.submenuParentHover);
				}
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Sets the parent folders' style to be a normal non-parent=20
// (optionally used in CSS to style parents & children differently):
function __ekFlexMenu_unMarkParentSubmenu(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var parentLevelId =3D this.getParentLevelSubmenuId(menuSubmenuId);
		if (ekFlexMenu.private_isValidMenuSubmenuIdString(parentLevelId)
			&& (parentLevelId !=3D menuSubmenuId))=20
		{
			var parentObj =3D this.getSubmenuObject(parentLevelId);
			if ((ekFlexMenu.isDefinedNotNull(parentObj))=20
				&& (ekFlexMenu.private_isDefined(parentObj.className)))=20
			{
				if (ekFlexMenu.hasClassName(parentObj, =
ekFlexMenu_classNames.submenuParent)) {
					ekFlexMenu.removeClassName(parentObj, =
ekFlexMenu_classNames.submenuParent);
					ekFlexMenu.addClassName(parentObj, ekFlexMenu_classNames.submenu);
				}
				else if (ekFlexMenu.hasClassName(parentObj, =
ekFlexMenu_classNames.submenuParentHover)) {
					ekFlexMenu.removeClassName(parentObj, =
ekFlexMenu_classNames.submenuParentHover);
					ekFlexMenu.addClassName(parentObj, =
ekFlexMenu_classNames.submenuHover);
				}
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Sets the menus' container style to be hovered,
// (optionally used in CSS to style contents & children differently):
function __ekFlexMenu_hoverSubmenu(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var menuObj =3D this.getSubmenuObject(menuSubmenuId);
		if ((ekFlexMenu.isDefinedNotNull(menuObj))=20
			&& (ekFlexMenu.private_isDefined(menuObj.className)))
		{
			if (ekFlexMenu.hasClassName(menuObj, ekFlexMenu_classNames.submenu)) =
{
				ekFlexMenu.removeClassName(menuObj, ekFlexMenu_classNames.submenu);
				ekFlexMenu.addClassName(menuObj, =
ekFlexMenu_classNames.submenuHover);
			}
			else if (ekFlexMenu.hasClassName(menuObj, =
ekFlexMenu_classNames.submenuParent)) {
				ekFlexMenu.removeClassName(menuObj, =
ekFlexMenu_classNames.submenuParent);
				ekFlexMenu.addClassName(menuObj, =
ekFlexMenu_classNames.submenuParentHover);
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Sets the menus' container style to be hovered,
// (optionally used in CSS to style contents & children differently):
function __ekFlexMenu_unHoverSubmenu(idString) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var menuObj =3D this.getSubmenuObject(menuSubmenuId);
		if ((ekFlexMenu.isDefinedNotNull(menuObj))=20
			&& (ekFlexMenu.private_isDefined(menuObj.className)))=20
		{
			if (ekFlexMenu.hasClassName(menuObj, =
ekFlexMenu_classNames.submenuHover)) {
				ekFlexMenu.removeClassName(menuObj, =
ekFlexMenu_classNames.submenuHover);
				ekFlexMenu.addClassName(menuObj, ekFlexMenu_classNames.submenu);
			}
			else if (ekFlexMenu.hasClassName(menuObj, =
ekFlexMenu_classNames.submenuParentHover)) {
				ekFlexMenu.removeClassName(menuObj, =
ekFlexMenu_classNames.submenuParentHover);
				ekFlexMenu.addClassName(menuObj, =
ekFlexMenu_classNames.submenuParent);
			}
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns an array of all direct child-submenu-ids (length =3D 0 if =
none):
function __ekFlexMenu_getDirectChildIds(idString) {
	var result =3D new Array;
	var elementName =3D ekFlexMenu.private_namePrefix + "submenu_items";
	var cmpId, elementArray;
	var parentMenuSubmenuId =3D =
ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(parentMenuSubmenuId)) =
{
		elementArray =3D this.getEkFlexMenuElementsByName(elementName);
		if (("undefined" !=3D typeof elementArray)
			&& (null !=3D elementArray)
			&& ("undefined" !=3D typeof elementArray.length)
			&& (null !=3D elementArray.length))
			{
				for (var idx=3D0; idx < elementArray.length; idx++) {
					cmpId =3D =
ekFlexMenu.parseMenuSubmenuIdString(elementArray[idx].id);
					if (ekFlexMenu.private_isValidMenuSubmenuIdString(cmpId)) {
						if ((parentMenuSubmenuId =3D=3D =
this.getParentLevelSubmenuId(cmpId)
							&& (parentMenuSubmenuId !=3D cmpId))) {  =
//ekFlexMenu.private_getSubmenuIdString
							result[result.length] =3D cmpId;
						}
					}
				}
			}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// returns an array of the menu-elements whose name=20
// attribute matches the supplied name:
function __ekFlexMenu_getEkFlexMenuElementsByName(elementName) {
	var result =3D new Array;
	var divArray =3D this.getEkFlexMenuElementsByTagName("div");
	for (var idx=3D0; idx < divArray.length; idx++) {
		if (elementName =3D=3D divArray[idx].name) {
			result[result.length] =3D divArray[idx];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// returns an array of the ekflexmenu-elements with the=20
// specified tag-name:=20
function __ekFlexMenu_getEkFlexMenuElementsByTagName(tagName) {
	var result =3D new Array;
	var ekflexmenuContainer =3D this.getEkFlexMenuContainerElement();
	if (ekflexmenuContainer && ("undefined" !=3D typeof =
ekflexmenuContainer.getElementsByTagName)) {
		var divArray =3D ekflexmenuContainer.getElementsByTagName(tagName);
		if (("undefined" !=3D typeof divArray) && (null !=3D divArray)) {
			result =3D divArray;
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// returns an array of the menu-elements whose className=20
// attribute matches the supplied name:
function __ekFlexMenu_getElementsByClassName(className) {
	var result =3D new Array;
	var divArray =3D this.getEkFlexMenuElementsByTagName("*");
	for (var idx=3D0; idx < divArray.length; idx++) {
		if (("undefined" !=3D divArray[idx].className)
			&& (ekFlexMenu.hasClassName(divArray[idx], className))) {
			result[result.length] =3D divArray[idx];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// returns an array of the menu-elements whose className=20
// attribute matches the supplied name:
function __ekFlexMenu_getElementsByClassNameAndTagName(className, =
tagName) {
	var result =3D new Array;
	var divArray =3D this.getEkFlexMenuElementsByTagName(tagName);
	for (var idx=3D0; idx < divArray.length; idx++) {
		if (("undefined" !=3D divArray[idx].className)
			&& (ekFlexMenu.hasClassName(divArray[idx], className))) {
			result[result.length] =3D divArray[idx];
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Unselects the identified menu; if there is a folder-button,=20
// then the class is updated to an unselected state. Then=20
// hides the associated submenu items:
function __ekFlexMenu_hoverButton(idString, hoverFlag) {
	var menuSubmenuId =3D ekFlexMenu.parseMenuSubmenuIdString(idString);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
		var btnObj =3D this.getFolderButtonObject(menuSubmenuId);
		if (ekFlexMenu.private_isValidSubmenuButton(btnObj)) {
			var wasHovering =3D (ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonHover)
				|| ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover));
			if (hoverFlag =3D=3D wasHovering) {
				return;
			}
			var isSelected =3D (ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelected)=20
				|| ekFlexMenu.hasClassName(btnObj, =
ekFlexMenu_classNames.buttonSelectedHover));
			if (hoverFlag) {
				ekFlexMenu.removeClassName(btnObj, ((isSelected) ? =
ekFlexMenu_classNames.buttonSelected : ekFlexMenu_classNames.button));
				ekFlexMenu.addClassName(btnObj, ((isSelected) ? =
ekFlexMenu_classNames.buttonSelectedHover : =
ekFlexMenu_classNames.buttonHover));
			}
			else {
				ekFlexMenu.removeClassName(btnObj, ((isSelected) ? =
ekFlexMenu_classNames.buttonSelectedHover : =
ekFlexMenu_classNames.buttonHover));
				ekFlexMenu.addClassName(btnObj, ((isSelected) ? =
ekFlexMenu_classNames.buttonSelected : ekFlexMenu_classNames.button));
			}
		}
	}
}

///////////////////////////////////////////////////////////
// Annonymous Helper Function.
// Called by __ekFlexMenu_mouseIn to prepare for the
// delayed opening of identified submenu.
// Parameters:=20
//	1 - the ID of the element that triggered the event.
function __ekFlexMenu_mouseInHelperCaller(id) {
	if (id) {
		var menuObj =3D ekFlexMenu.getMenuObj(id);
		if (menuObj) {
			menuObj.mouseInHelper();
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called by external (non-object-instance) code, to prepare for=20
// delayed opening of identified submenu.
// Parameters:=20
//	1 - the event object.
//	2 - the element-object that triggered the event.
function __ekFlexMenu_mouseIn(e, el) {
	if (this.private_mouseEventTimer) {
		window.clearTimeout(this.private_mouseEventTimer);
		this.private_mouseEventTimer =3D null;
	}
	this.private_mouseEventEnteringElementId =3D el.id;
	this.private_mouseEventTimer =3D window.setTimeout(function () =
{__ekFlexMenu_mouseInHelperCaller(el.id)}, 50);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Shows/selects the appropriate submenu.
function __ekFlexMenu_mouseInHelper() {
	if (this.private_mouseEventEnteringElementId) {
		var menuSubmenuId =3D =
ekFlexMenu.parseMenuSubmenuIdString(this.private_mouseEventEnteringElemen=
tId);
		if (ekFlexMenu.private_isValidMenuSubmenuIdString(menuSubmenuId)) {
			if (this.private_isMasterControl) {
				// Dont select bottom level menus for master-control=20
				// via mouse-over; force user to click to select these:
				itemsObj =3D this.getSubmenuItemsObject(menuSubmenuId);
				if (!ekFlexMenu.isDefinedNotNull(itemsObj)) {
					return;
				}
			}
			this.selectSubmenu(menuSubmenuId, true);
		}
	}
}

///////////////////////////////////////////////////////////
// Annonymous Helper Function.
// Called by __ekFlexMenu_mouseOut to prepare for the
// delayed opening of identified submenu.
// Parameters:=20
//	1 - the ID of the element that triggered the event.
function __ekFlexMenu_mouseOutHelperCaller(id) {
	if (id) {
		var menuObj =3D ekFlexMenu.getMenuObj(id);
		if (menuObj) {
			menuObj.mouseOutHelper();
		}
	}
}


///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called by external (non-object-instance) code, to prepare for=20
// delayed opening of identified submenu.
// Parameters:=20
//	1 - the event object.
//	2 - the element-object that triggered the event.
function __ekFlexMenu_mouseOut(e, el) {
	if (this.private_mouseEventTimer) {
		window.clearTimeout(this.private_mouseEventTimer);
		this.private_mouseEventTimer =3D null;
	}
	var id =3D __ekFlexMenu_static_getValidParentId(el);
	this.private_mouseEventExitingElementId =3D id;
	this.private_mouseEventTimer =3D window.setTimeout(function () =
{__ekFlexMenu_mouseOutHelperCaller(id)}, 500);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Hides/unselects the appropriate submenu (possibly all but root).
// Parameters:=20
//	None.
function __ekFlexMenu_mouseOutHelper() {
	//if (this.private_mouseEventEnteringElementId) {
	//	this.unSelectSubmenu(this.private_mouseEventEnteringElementId);
	//}
	if (this.private_autoCollapseSubmenus) {
		// don't leave all submenus hidden for slave-menus, otherwise nothing =
to click:
		if (this.private_isSlaveControl) {
			this.collapseUnselectedStartLevelSubmenus();
		}
		else{
		    this.collapseAllOpenSubmenus();
		}
	}
	else if (this.private_mouseEventEnteringElementId) {
		this.unSelectSubmenu(this.private_mouseEventEnteringElementId);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the Menu-Submenu-Id string, for a given Submenu-Id:
function __ekFlexMenu_buildMenuSubmenuId(submenuId) {
	return (this.hashCode() + "_" + this.menuId() + "_" + submenuId);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the corresponding submenu-folder-button object,=20
// for a given Submenu-Id (or Menu-Submenu-Id):
function __ekFlexMenu_getFolderButtonObject(submenuId) {
	var id =3D ekFlexMenu.parseMenuSubmenuIdString(submenuId);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(id)) {
		id =3D id + ekFlexMenu.private_buttonElementIdPostFix;
	}
	else {
		id =3D this.buildMenuSubmenuId(submenuId) + =
ekFlexMenu.private_buttonElementIdPostFix;
	}
	return (document.getElementById(id));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the corresponding submenu-Items object,=20
// for a given Submenu-Id (or Menu-Submenu-Id):
function __ekFlexMenu_getSubmenuItemsObject(submenuId) {
	var id =3D ekFlexMenu.parseMenuSubmenuIdString(submenuId);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(id)) {
		id =3D id + ekFlexMenu.private_submenuItemsElementIdPostFix;
	}
	else {
		id =3D this.buildMenuSubmenuId(submenuId) + =
ekFlexMenu.private_submenuItemsElementIdPostFix;
	}
	return (document.getElementById(id));
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the corresponding submenu object,=20
// for a given Submenu-Id (or Menu-Submenu-Id):
function __ekFlexMenu_getSubmenuObject(submenuId) {
	var id =3D ekFlexMenu.parseMenuSubmenuIdString(submenuId);
	var result =3D null;
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(id)) {
		result =3D document.getElementById(id);
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the parent-submenu-id for the given Submenu-Id=20
// (or the given Menu-Submenu-Id), returns zero if top (root):
function __ekFlexMenu_getParentLevelSubmenuId(submenuId) {
	var result =3D this.buildMenuSubmenuId("0"); // default to root.
	var id =3D ekFlexMenu.parseMenuSubmenuIdString(submenuId);
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(id)) {
		id =3D id + ekFlexMenu.private_parentIdElementIdPostFix;
	}
	else {
		id =3D this.buildMenuSubmenuId(submenuId) + =
ekFlexMenu.private_parentIdElementIdPostFix;
	}
	var hiddenObj =3D document.getElementById(id);
	if (hiddenObj=20
		&& ("undefined" !=3D typeof hiddenObj.value)
		&& ("undefined" !=3D typeof hiddenObj.value.length)
		&& (hiddenObj.value.length > 0)) {
		result =3D hiddenObj.value;
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the integer value of the menu level for
// the menu identified by the given submenu-id string.
function __ekFlexMenu_getMenuLevel(submenuId) {
	var result =3D 0;
	if (ekFlexMenu.private_isValidMenuSubmenuIdString(submenuId)) {
		var obj =3D this.getSubmenuObject(submenuId);
		if (obj && obj.className && obj.className.length && =
(obj.className.length > 0)) {
			var levelPrefix =3D "ekflexmenu_menu_level_";
			var idx =3D obj.className.indexOf(levelPrefix);
			if (idx >=3D 0) {
				var val =3D obj.className.substr(idx + levelPrefix.length)
				if (val.length) {
					result =3D parseInt(val, 10);
				}
			}
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Returns the outermost container element (DIV) that
// holds this entire ekFlexMenu object:
function __ekFlexMenu_getEkFlexMenuContainerElement() {
	var containerId =3D this.hashCode() + "_"
		+ this.menuId()=20
		+ "_"
		+ "0"=20
		+ ekFlexMenu.private_ekflexmenuContainerElementIdPostFix;
	var containerObj =3D document.getElementById(containerId);
	if (containerObj
		&& ekFlexMenu.private_isValidEKMenu(containerObj)) {
		return (containerObj);
	}
	else {
		return (null);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called when a menu-item (such as a link) is clicked,=20
// modifies the items href parameter to pass the selected
// item info over the querystring:
function __ekFlexMenu_ekFlexMenu_selectMenuItem(el) {
	var elm =3D el;
	var isWrapper =3D false;
=09
	if (ekFlexMenu.isDefinedNotNull(elm)
		&& ekFlexMenu.isDefinedNotNull(elm.parentNode)
		&& ekFlexMenu.isDefinedNotNull(elm.parentNode.tagName)
		&& ("A" =3D=3D elm.parentNode.tagName))=20
	{
		// event is from a button, that's wrapped=20
		// with an anchor. Use the anchor element:
		elm =3D elm.parentNode;=20
		isWrapper =3D true;
	}
	=09
	if (elm && ("undefined" !=3D typeof elm.id) && ("undefined" !=3D typeof =
elm.href)) {
		//// Update: to correct a problem with FireFox (where events like =
mouse-out
		//// could call the handlers between the current page unloading and =
the next
		//// page loading) we must ensure that the event handlers are not =
called
		//// while we're navigating/submitting the page:
		//// TODO: Test for IE, skip if true (only needed for non-IE browsers, =
particuarly FireFox).
		// Further Update:
		//   Now testing validity of calling event handlers from menu HTML, so =
this=20
		//   time consuming call to "disableAllEventHandlers" is not needed:
		//this.disableAllEventHandlers();
	=09
		if (elm.href.indexOf("?") < 0) {
			elm.href +=3D "?";
		}
		else {
			elm.href +=3D "&";
		}
=09
		var modId =3D elm.id;
		var matchVal =3D "ekfxmensel_";
		if (modId.length > matchVal.length) {
			var idx =3D modId.indexOf(matchVal);
			if (idx >=3D 0) {
				modId =3D modId.substr(idx + matchVal.length);
			}
		}
		elm.href +=3D matchVal.substr(0, matchVal.length - 1) + "=3D" + modId;

		if ((this.private_lastSelectedMenuItemObj !=3D null) && =
(this.private_lastSelectedMenuItemObj !=3D elm)) {
			ekFlexMenu.removeClassName(this.private_lastSelectedMenuItemObj, =
ekFlexMenu_classNames.linkSelected);
			ekFlexMenu.addClassName(this.private_lastSelectedMenuItemObj, =
ekFlexMenu_classNames.link);
		}
		this.private_lastSelectedMenuItemObj =3D elm;

		if (!isWrapper) {
			ekFlexMenu.removeClassName(elm.className, =
ekFlexMenu_classNames.link);
			ekFlexMenu.addClassName(elm.className, =
ekFlexMenu_classNames.linkSelected);
		}
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Disables all event handlers for elements of this menu object:
function __ekFlexMenu_disableAllEventHandlers() {
	var elArray =3D this.getEkFlexMenuElementsByTagName("*");
	for (var idx=3D0; idx < elArray.length; idx++) {
		this.disableElementEventHandlers(elArray[idx]);
	}
	var el =3D this.getEkFlexMenuContainerElement();
	if (el)
	{
		this.disableElementEventHandlers(el);
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Disables all event handlers for elements of this menu object:
function __ekFlexMenu_disableElementEventHandlers(el) {
	if (el) {
		if (ekFlexMenu.isDefinedNotNull(el.onmouseout))
			el.onmouseout =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onmouseover))
			el.onmouseover =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onfocus))
			el.onfocus =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onblur))
			el.onblur =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onclick))
			el.onclick =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.ondblclick))
			el.ondblclick =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onkeydown))
			el.onkeydown =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onkeypress))
			el.onkeypress =3D null;

		if (ekFlexMenu.isDefinedNotNull(el.onkeyup))
			el.onkeyup =3D null;
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// This function modifies all these to eliminate page=20
// refreshes (not needed if Javascript is enabled).
// Parameters:=20
//	None.
function __ekFlexMenu_updateNoScriptLinks() {
return;
// UPDATE:
//	This function no longer runs, instead the "noscript" links=20
//  are removed when the user clicks a menu button. This was
// done becuase IE had a problem with background image flicker
// whenever a page was loaded (images were refreshed after
// the page was rendered - causing a moment with the background
// being displayed on some elements...
//
//	var links =3D this.getEkFlexMenuElementsByTagName("A");
//	for (var idx=3D0; idx < links.length; idx++) {
//		if (("undefined" !=3D typeof links[idx].href) && (0 <=3D =
links[idx].href.indexOf("ekfxmen_noscript=3D1"))) {
//			links[idx].href =3D "#NoScroll";
//		}
//	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called by page-load initialization code, to determine if =
MouseOverPopUp=20
// is enabled, and perform related initialization if it is:
function __ekFlexMenu_initializeMouseOverPopUp() {
    var containerId =3D "#" + this.buildMenuSubmenuId(0) + =
"_ekflexmenu";
    this.enableMouseOverPopUp =3D (null !=3D =
$ektron(containerId).attr("onmouseover"));
    if (this.enableMouseOverPopUp) {
        $ektron(containerId + " a.ekflexmenu_link").mouseover(function =
() { if (ekFlexMenu_IsValid(ekFlexMenu) && =
ekFlexMenu_IsValid(ekFlexMenu.clearSiblingButtons)) { return =
(ekFlexMenu.clearSiblingButtons(this)); } return (true); });
       =20
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
// Called by page-load initialization code, to initialize this object
// with values passed from the server.
// Parameters:=20
//	None.
function __ekFlexMenu_initializeWithServerVariables() {
	var baseId =3D this.hashCode();
	if (baseId && baseId.length) {
		// Obtain the server control property, autoCollapseBranches:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_autoCollapseBranches))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_autoCollapseBranches[baseI=
d]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_autoCollapseBranches[baseI=
d].length))
			&& (0 < window.ekFlexMenu_autoCollapseBranches[baseId].length)) {
		=09
			this.private_autoCollapseSubmenus =3D ("true" =3D=3D =
window.ekFlexMenu_autoCollapseBranches[baseId]);
		}

		// Obtain the server control property, swRev:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_swRev))
			&& (ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_swRev[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_swRev[baseId].length))
			&& (0 < window.ekFlexMenu_swRev[baseId].length)) {
		=09
			this.private_swRevision =3D window.ekFlexMenu_swRev[baseId];
		}

		// Obtain the server control property, startCollapsed:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startCollapsed))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startCollapsed[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startCollapsed[baseId].len=
gth))
			&& (0 < window.ekFlexMenu_startCollapsed[baseId].length)) {
		=09
			this.private_startCollapsed =3D ("true" =3D=3D =
window.ekFlexMenu_startCollapsed[baseId]);
		}

		// Obtain the server control property, startWithRootFolderCollapsed:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startWithRootFolderCollap=
sed))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startWithRootFolderCollaps=
ed[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startWithRootFolderCollaps=
ed[baseId].length))
			&& (0 < =
window.ekFlexMenu_startWithRootFolderCollapsed[baseId].length)) {
		=09
			this.private_startWithRootFolderCollapsed =3D ("true" =3D=3D =
window.ekFlexMenu_startWithRootFolderCollapsed[baseId]);
		}

		// Obtain the hash-code of the server control property, =
MasterControlId:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_masterControlIdHash))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_masterControlIdHash[baseId=
]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_masterControlIdHash[baseId=
].length))
			&& (0 < window.ekFlexMenu_masterControlIdHash[baseId].length)) {
		=09
			this.private_masterControlIdHash =3D =
window.ekFlexMenu_masterControlIdHash[baseId];
		}

		// Obtain the server control property, ajaxEnabled:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxEnabled))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxEnabled[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxEnabled[baseId].length=
))
			&& (0 < window.ekFlexMenu_ajaxEnabled[baseId].length)) {
		=09
			this.private_ajaxEnabled =3D ("true" =3D=3D =
window.ekFlexMenu_ajaxEnabled[baseId]);
		}
	=09
		// Obtain the Ajax-WebService base path:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxWSPath))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxWSPath[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_ajaxWSPath[baseId].length)=
)
			&& (0 < window.ekFlexMenu_ajaxWSPath[baseId].length)) {
			//		=09
			this.ekFlexMenu_ajaxWSPath =3D window.ekFlexMenu_ajaxWSPath[baseId];
			if (this.ekFlexMenu_ajaxWSPath.length && =
this.ekFlexMenu_ajaxWSPath.lastIndexOf("/") !=3D =
(this.ekFlexMenu_ajaxWSPath.length - 1)) {
				this.ekFlexMenu_ajaxWSPath +=3D "/";
			}
		}
	=09
		// Set displayXslt:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_displayXslt))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_displayXslt[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_displayXslt[baseId].length=
))
			&& (0 < window.ekFlexMenu_displayXslt[baseId].length)) {
			//		=09
			this.ekFlexMenu_displayXslt =3D =
window.ekFlexMenu_displayXslt[baseId];
		}
	=09
		// Set cacheInterval:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_cacheInterval))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_cacheInterval[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_cacheInterval[baseId].leng=
th))
			&& (0 < window.ekFlexMenu_cacheInterval[baseId].length)) {
			//		=09
			this.ekFlexMenu_cacheInterval =3D =
window.ekFlexMenu_cacheInterval[baseId];
		}

		// Obtain the slave/subscriber list:
		if ((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_subscriberList))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_subscriberList[baseId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_subscriberList[baseId].len=
gth))
			&& (0 < window.ekFlexMenu_subscriberList[baseId].length)) {
		=09
			this.private_subscriberList =3D =
window.ekFlexMenu_subscriberList[baseId];
		=09
			if (this.private_subscriberList.length > 0) {
				var subList =3D this.private_subscriberList.split(",");
				if (subList && subList[0]) {
					this.private_slaveControl =3D subList[0];
					this.private_isMasterControl =3D true;
				}
			}
		}
	=09
		// Default slave-menu:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_defaultMenuIdString))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_defaultMenuIdString[baseId=
]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_defaultMenuIdString[baseId=
].length))
			&& (0 < window.ekFlexMenu_defaultMenuIdString[baseId].length)) {
			//		=09
			this.ekFlexMenu_defaultMenuIdString =3D =
window.ekFlexMenu_defaultMenuIdString[baseId];
		}
	=09
		// Slave menu start-level ids:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_slaveStartLevelIds))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_slaveStartLevelIds[baseId]=
))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_slaveStartLevelIds[baseId]=
.length))
			&& (0 < window.ekFlexMenu_slaveStartLevelIds[baseId].length)) {
			//		=09
			var startLevelIds =3D =
window.ekFlexMenu_slaveStartLevelIds[baseId].split(",");
			if (null =3D=3D this.ekFlexMenu_slaveStartLevelIds) {
				this.ekFlexMenu_slaveStartLevelIds =3D new Array;
			}
			for (var idx =3D 0; idx < startLevelIds.length; idx++) {
				if (!this.ekFlexMenu_slaveStartLevelIds[startLevelIds[idx]]) {
					this.ekFlexMenu_slaveStartLevelIds[startLevelIds[idx]] =3D true;
				}
			}
		}

		// The server may have passed a submenu id, indicating which one to =
open initially:
		if =
((ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startupSubmenuBranchId))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startupSubmenuBranchId[bas=
eId]))
			&& =
(ekFlexMenu.isDefinedNotNull(window.ekFlexMenu_startupSubmenuBranchId[bas=
eId].length))
			&& (0 < window.ekFlexMenu_startupSubmenuBranchId[baseId].length)) {
		=09
			var id =3D =
ekFlexMenu.parseMenuSubmenuIdString(window.ekFlexMenu_startupSubmenuBranc=
hId[baseId]);
			if (ekFlexMenu.private_isValidMenuSubmenuIdString(id)) {
				this.selectSubmenu(id);
			}
		}
=09
		if (this.private_masterControlIdHash.length) {
			this.private_isSlaveControl =3D true;
			this.initializeSlaveMenu();
		}
	=09
		if (this.private_isMasterControl) {
			this.initializeMasterMenu();
		}
	=09
		this.updateNoScriptLinks();
		this.initializeMouseOverPopUp();
	}
}

///////////////////////////////////////////////////////////
// Makes the contents of the root-menu visible, selects it's button if =
it exists.
// Parameters:=20
//	None.
function __ekFlexMenu_showRootMenu() {
	var rootMenuId =3D this.buildMenuSubmenuId(0);
	this.selectSubmenu(rootMenuId);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_loadXMLDoc(url)
{
	var result =3D false;

	ekFlexMenu.ajaxCancelServerCall();
	if (window.XMLHttpRequest) {
		ekFlexMenu.static_userAjaxXmlHttp1 =3D new XMLHttpRequest()
	}
	else if (window.ActiveXObject) {
		ekFlexMenu.static_userAjaxXmlHttp1 =3D new =
ActiveXObject("Msxml2.XMLHTTP");
		if (null =3D=3D ekFlexMenu.static_userAjaxXmlHttp1) {
			ekFlexMenu.static_userAjaxXmlHttp1 =3D new =
ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if (ekFlexMenu.static_userAjaxXmlHttp1 !=3D null) {
		ekFlexMenu.static_userAjaxXmlHttp1.onreadystatechange =3D =
ekFlexMenu.ajaxCallBack_stateChange;
		ekFlexMenu.static_userAjaxXmlHttp1.open("POST", url, true);
		ekFlexMenu.static_userAjaxXmlHttp1.send('');
		result =3D true;
	}

	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_DecodeHTML(str)
{
	var result =3D "";
	if (str){
		result =3D new String(str);
		result =3D result.replace(/\&amp;/gi, "&");
		result =3D result.replace(/\&lt;/gi, "<");
		result =3D result.replace(/\&gt;/gi, ">");
		result =3D result.replace(/\&quot;/gi, "\"");
		result =3D result.replace(/\&#39;/gi, "'");
	}
    return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_getPayload(response)
{
	var result =3D null;
	if (response)
	{
		if (response.xml) {
			result =3D response.xml;
		}
		else if (response.childNodes && ("undefined" !=3D typeof =
XMLSerializer)) {
			if (XMLSerializer) {
				result =3D new XMLSerializer().serializeToString(response);
			}
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_appendText(targId)
{
	var targ =3D document.getElementById(targId);
	if (targ && ("undefined" !=3D typeof targ.innerHTML)) {
		targ.innerHTML =3D =
this.DecodeHTML(this.getPayload(ekFlexMenu.static_userAjaxXmlHttp1.respon=
seXML));
	}
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_appendXml(targId)
{
	if (!ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1)
		|| =
!ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1.responseX=
ML)){
		return;
	}

	var targ =3D document.getElementById(targId);
	if (targ && ("undefined" !=3D typeof targ.innerHTML)) {
		if =
(ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1.responseX=
ML.text)) {
			//targ.innerHTML =3D =
ekFlexMenu.static_userAjaxXmlHttp1.responseXML.text;
			var menuFrag =3D =
this.removeMenuFragmentContainer(ekFlexMenu.static_userAjaxXmlHttp1.respo=
nseXML.text);
			if (menuFrag.length > 0) {
				targ.innerHTML =3D targ.innerHTML + menuFrag;
			}
		}
		else {
			// (FireFox, etc.)
			targ.innerHTML =3D "";
			if =
(ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1.responseX=
ML.firstChild)
				&& =
ekFlexMenu.isDefinedNotNull(ekFlexMenu.static_userAjaxXmlHttp1.responseXM=
L.firstChild.textContent)) {
				targ.innerHTML =3D =
ekFlexMenu.static_userAjaxXmlHttp1.responseXML.firstChild.textContent;
			} else if ("undefined" !=3D typeof XMLSerializer) {
				result =3D new =
XMLSerializer().serializeToString(ekFlexMenu.static_userAjaxXmlHttp1.resp=
onseXML);
				targ.innerHTML =3D this.DecodeHTML(result);
			}
			else if ("undefined" !=3D typeof document.importNode) {
				var src =3D =
document.importNode(ekFlexMenu.static_userAjaxXmlHttp1.responseXML.docume=
ntElement, true);
				var tempEl =3D document.createElement("span");
				tempEl.appendChild(src);
				targ.innerHTML =3D this.DecodeHTML(tempEl.innerHTML);
				tempEl =3D null;
			}
		}
	}
	this.userAjaxParentId1 =3D "";
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_removeMenuFragmentContainer(menuStr)
{
	var result =3D "";
	var idx =3D menuStr.indexOf("<ul");
	if (idx >=3D 0) {
		result =3D menuStr.substr(idx);
		idx =3D result.lastIndexOf("</li>");
		if (idx > 0) {
			result =3D result.substr(0, idx-1);
		}
	}
	return (result);
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_callService(ctrlHash, menuId, submenuId, =
parentId, menuDepth)
{
	this.userAjaxParentId1 =3D "";
	if (parentId.length > 0) {
		this.userAjaxParentId1 =3D parentId;
		return (this.loadXMLDoc(this.ekFlexMenu_ajaxWSPath + =
"WebServiceAPI/Navigation/FlexMenu.asmx/GetMenuFragment?ctrl_hash=3D" + =
ctrlHash + "&menu_depth=3D" + menuDepth + "&menu_id=3D" + menuId + =
"&submenu_id=3D" + submenuId + "&menu_xslt=3D" + =
this.ekFlexMenu_displayXslt + "&cache_interval=3D" + =
this.ekFlexMenu_cacheInterval));
	}
	return false
}

///////////////////////////////////////////////////////////
// ekFlexMenu Instance Member Helper Function.
function __ekFlexMenu_ajax_callAjaxForUserClick(btnId)
{
	var result =3D false;
=09
	// check if container's children already loaded:
	var containerId =3D ekFlexMenu.parseMenuSubmenuIdString(btnId);
	var si =3D this.getSubmenuItemsObject(containerId);
	if (si){
		result =3D true;
	}
	else {
		// false, initiate ajax-call:
		var ctrlHash =3D this.hashCode();
		var menuId =3D ekFlexMenu.private_getMenuIdString(btnId);
		var submenuId =3D ekFlexMenu.private_getSubmenuIdString(btnId);
		var parentId =3D this.getFolderButtonObject(btnId).parentNode.id;
		//var menuDepth =3D 1 + this.getMenuLevel(btnId);
		result =3D this.callService(ctrlHash, menuId, submenuId, parentId, 1);
	}
=09
	return (result);
}

///////////////////////////////////////////////////////////
ekFlexMenu_loadEventConfigured =3D false; // global variable for =
ekFlexMenu_addLoadEvent(), to indicate if code has initialized.
///////////////////////////////////////////////////////////
// This funtion is caled by the in-line-code following
// this functions' definition, to ensure that the=20
// windows' on-load event is hooked with the ekFlexMenu
// initialization code.=20
function ekFlexMenu_addLoadEvent()=20
{
	if (ekFlexMenu_loadEventConfigured)
		return;
	=09
	ekFlexMenu_loadEventConfigured =3D true;
    var oldOnload =3D window.onload;
    window.onload =3D function() {
        if ("function" =3D=3D typeof oldOnload)=20
            oldOnload();

        //setTimeout(ekFlexMenu.private_startupAllSmartMenus, 100);
        ekFlexMenu.private_startupAllSmartMenus();
	}
}
ekFlexMenu_addLoadEvent(); // Call the preceeding function to hook the =
ekFlexMenu initialization code.
///////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////
ekFlexMenu_unloadEventConfigured =3D false; // global variable for =
ekFlexMenu_addUnLoadEvent(), to indicate if code has initialized.
///////////////////////////////////////////////////////////
// This funtion is caled by the in-line-code following
// this functions' definition, to ensure that the=20
// windows' on-unload event is hooked with the ekFlexMenu
// cleanup code.=20
function ekFlexMenu_addUnLoadEvent()=20
{
	if (ekFlexMenu_unloadEventConfigured)
		return;
	=09
	ekFlexMenu_unloadEventConfigured =3D true;
    var oldOnunload =3D window.onunload;
    window.onunload =3D function() {
        if ("function" =3D=3D typeof oldOnunload)=20
            oldOnunload();

        //setTimeout(ekFlexMenu.private_startupAllSmartMenus, 100);
        ekFlexMenu.private_shutdownAllSmartMenus();
	}
}
ekFlexMenu_addUnLoadEvent(); // Call the preceeding function to hook the =
ekFlexMenu initialization code.
///////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////=
//////
//	Menu element names (prefixed by "ekmengrp_"):
//  Note: these are only rendered if the SmartMenu server controls' =
renderElementNames  is true (default=3Dfalse, see Navigation.vb).
//
//		accessible_menu_startheading - H2: Wraps the skip-menu with a =
navigation-heading (only rendered when 508-Compliance is enabled).
//		accessible_menu_startlink - A: Wraps the skip-menu text with a =
navigation-link (only rendered when 508-Compliance is enabled).
//		btnlink - A: Wraps each menu button title with a navigation-anchor =
(only rendered when 508-Compliance is enabled).
//		button - SPAN: Holds the title, and acts as a button (or folder) for =
the associated submenu.
//		ekflexmenu - DIV: Wraps the entire menu (the outer-most non-user =
container element).
//		link - A: A Link for individual menu items (quicklinks, external =
links, etc.).
//		menu_end - DIV: Wraps the menu-end page-anchor (only rendered when =
508-Compliance is enabled).
//		menu_start - DIV: Wraps the menu-start link (only rendered when =
508-Compliance is enabled).
//		submenu - DIV: Holds submenu items, such as a submenu title and =
links.
//		submenu_items - DIV: Container for menu lists.
//		submenu_navheading - H3: Wraps each menu button title with a =
navigation-heading (only rendered when 508-Compliance is enabled).
//		unorderedlist - UL: A container for menu list items (useful for =
non-graphical browsers).
//		unorderedlist_item - LI: Container for menu items (typically either =
links or sub-menus).

/////////////////////////////////////////////////////////////////////////=
//////

function EkTbWebMenuPopUpWindow (url, hWind, nWidth, nHeight, nScroll, =
nResize) {
    url =3D url.replace(/&amp;amp;/g,"&").replace(/&amp;/g,"&");
	if (nWidth > screen.width) {
		nWidth =3D screen.width;
	}
	if (nHeight > screen.height) {
		nHeight =3D screen.height;
	}
	var cToolBar =3D 'toolbar=3D0,location=3D0,directories=3D0,status=3D' + =
nResize + ',menubar=3D0,scrollbars=3D' + nScroll + ',resizable=3D' + =
nResize + ',width=3D' + nWidth + ',height=3D' + nHeight;
	var popupwin =3D window.open(url, hWind, cToolBar);
	return popupwin;
}

///////////////////////////////////
//=20
function ekFlexMenu_LogMsg(msg){
    var dt =3D new Date();
    msg =3D Date() + " - "+ msg;
    if (window.console && window.console.log){
        window.console.log(msg);
    }
    else if (window.Debug && window.Debug.writeln){
        window.Debug.writeln(msg);
    }
    else{
        ekFlexMenu_DebugMsg(msg);
    }
}

var g_ekFlexMenu_DebugWindow=3Dnull;
function ekFlexMenu_DebugMsg(Msg) {
    Msg =3D '>>>' + Msg + ' <br> ';
    if ((g_ekFlexMenu_DebugWindow =3D=3D null) || =
(g_ekFlexMenu_DebugWindow.closed)) {
        g_ekFlexMenu_DebugWindow =3D window.open('Debug Notes', 'myWin', =
'toolbar=3Dno, directories=3Dno, location=3Dno, status=3Dyes, =
menubar=3Dno, resizable=3Dyes, scrollbars=3Dyes, width=3D500, =
height=3D300');
    }
    g_ekFlexMenu_DebugWindow.document.writeln(Msg);
    g_ekFlexMenu_DebugWindow.scrollTo(0,10000000);
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/WebResource.axd?d=7Ghv8yHnSwVer1X-7ix6Vg2&t=633921229697949079

function WebForm_PostBackOptions(eventTarget, eventArgument, validation, =
validationGroup, actionUrl, trackFocus, clientSubmit) {
    this.eventTarget =3D eventTarget;
    this.eventArgument =3D eventArgument;
    this.validation =3D validation;
    this.validationGroup =3D validationGroup;
    this.actionUrl =3D actionUrl;
    this.trackFocus =3D trackFocus;
    this.clientSubmit =3D clientSubmit;
}
function WebForm_DoPostBackWithOptions(options) {
    var validationResult =3D true;
    if (options.validation) {
        if (typeof(Page_ClientValidate) =3D=3D 'function') {
            validationResult =3D =
Page_ClientValidate(options.validationGroup);
        }
    }
    if (validationResult) {
        if ((typeof(options.actionUrl) !=3D "undefined") && =
(options.actionUrl !=3D null) && (options.actionUrl.length > 0)) {
            theForm.action =3D options.actionUrl;
        }
        if (options.trackFocus) {
            var lastFocus =3D theForm.elements["__LASTFOCUS"];
            if ((typeof(lastFocus) !=3D "undefined") && (lastFocus !=3D =
null)) {
                if (typeof(document.activeElement) =3D=3D "undefined") {
                    lastFocus.value =3D options.eventTarget;
                }
                else {
                    var active =3D document.activeElement;
                    if ((typeof(active) !=3D "undefined") && (active =
!=3D null)) {
                        if ((typeof(active.id) !=3D "undefined") && =
(active.id !=3D null) && (active.id.length > 0)) {
                            lastFocus.value =3D active.id;
                        }
                        else if (typeof(active.name) !=3D "undefined") {
                            lastFocus.value =3D active.name;
                        }
                    }
                }
            }
        }
    }
    if (options.clientSubmit) {
        __doPostBack(options.eventTarget, options.eventArgument);
    }
}
var __pendingCallbacks =3D new Array();
var __synchronousCallBackIndex =3D -1;
function WebForm_DoCallback(eventTarget, eventArgument, eventCallback, =
context, errorCallback, useAsync) {
    var postData =3D __theFormPostData +
                "__CALLBACKID=3D" + WebForm_EncodeCallback(eventTarget) =
+
                "&__CALLBACKPARAM=3D" + =
WebForm_EncodeCallback(eventArgument);
    if (theForm["__EVENTVALIDATION"]) {
        postData +=3D "&__EVENTVALIDATION=3D" + =
WebForm_EncodeCallback(theForm["__EVENTVALIDATION"].value);
    }
    var xmlRequest,e;
    try {
        xmlRequest =3D new XMLHttpRequest();
    }
    catch(e) {
        try {
            xmlRequest =3D new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(e) {
        }
    }
    var setRequestHeaderMethodExists =3D true;
    try {
        setRequestHeaderMethodExists =3D (xmlRequest && =
xmlRequest.setRequestHeader);
    }
    catch(e) {}
    var callback =3D new Object();
    callback.eventCallback =3D eventCallback;
    callback.context =3D context;
    callback.errorCallback =3D errorCallback;
    callback.async =3D useAsync;
    var callbackIndex =3D =
WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
    if (!useAsync) {
        if (__synchronousCallBackIndex !=3D -1) {
            __pendingCallbacks[__synchronousCallBackIndex] =3D null;
        }
        __synchronousCallBackIndex =3D callbackIndex;
    }
    if (setRequestHeaderMethodExists) {
        xmlRequest.onreadystatechange =3D WebForm_CallbackComplete;
        callback.xmlRequest =3D xmlRequest;
        xmlRequest.open("POST", theForm.action, true);
        xmlRequest.setRequestHeader("Content-Type", =
"application/x-www-form-urlencoded; charset=3Dutf-8");
        xmlRequest.send(postData);
        return;
    }
    callback.xmlRequest =3D new Object();
    var callbackFrameID =3D "__CALLBACKFRAME" + callbackIndex;
    var xmlRequestFrame =3D document.frames[callbackFrameID];
    if (!xmlRequestFrame) {
        xmlRequestFrame =3D document.createElement("IFRAME");
        xmlRequestFrame.width =3D "1";
        xmlRequestFrame.height =3D "1";
        xmlRequestFrame.frameBorder =3D "0";
        xmlRequestFrame.id =3D callbackFrameID;
        xmlRequestFrame.name =3D callbackFrameID;
        xmlRequestFrame.style.position =3D "absolute";
        xmlRequestFrame.style.top =3D "-100px"
        xmlRequestFrame.style.left =3D "-100px";
        try {
            if (callBackFrameUrl) {
                xmlRequestFrame.src =3D callBackFrameUrl;
            }
        }
        catch(e) {}
        document.body.appendChild(xmlRequestFrame);
    }
    var interval =3D window.setInterval(function() {
        xmlRequestFrame =3D document.frames[callbackFrameID];
        if (xmlRequestFrame && xmlRequestFrame.document) {
            window.clearInterval(interval);
            xmlRequestFrame.document.write("");
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.write('<html><body><form =
method=3D"post"><input type=3D"hidden" name=3D"__CALLBACKLOADSCRIPT" =
value=3D"t"></form></body></html>');
            xmlRequestFrame.document.close();
            xmlRequestFrame.document.forms[0].action =3D theForm.action;
            var count =3D __theFormPostCollection.length;
            var element;
            for (var i =3D 0; i < count; i++) {
                element =3D __theFormPostCollection[i];
                if (element) {
                    var fieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                    fieldElement.type =3D "hidden";
                    fieldElement.name =3D element.name;
                    fieldElement.value =3D element.value;
                    =
xmlRequestFrame.document.forms[0].appendChild(fieldElement);
                }
            }
            var callbackIdFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIdFieldElement.type =3D "hidden";
            callbackIdFieldElement.name =3D "__CALLBACKID";
            callbackIdFieldElement.value =3D eventTarget;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIdFieldElement);
            var callbackParamFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackParamFieldElement.type =3D "hidden";
            callbackParamFieldElement.name =3D "__CALLBACKPARAM";
            callbackParamFieldElement.value =3D eventArgument;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackParamFieldElement);=

            if (theForm["__EVENTVALIDATION"]) {
                var callbackValidationFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
                callbackValidationFieldElement.type =3D "hidden";
                callbackValidationFieldElement.name =3D =
"__EVENTVALIDATION";
                callbackValidationFieldElement.value =3D =
theForm["__EVENTVALIDATION"].value;
                =
xmlRequestFrame.document.forms[0].appendChild(callbackValidationFieldElem=
ent);
            }
            var callbackIndexFieldElement =3D =
xmlRequestFrame.document.createElement("INPUT");
            callbackIndexFieldElement.type =3D "hidden";
            callbackIndexFieldElement.name =3D "__CALLBACKINDEX";
            callbackIndexFieldElement.value =3D callbackIndex;
            =
xmlRequestFrame.document.forms[0].appendChild(callbackIndexFieldElement);=

            xmlRequestFrame.document.forms[0].submit();
        }
    }, 10);
}
function WebForm_CallbackComplete() {
    for (var i =3D 0; i < __pendingCallbacks.length; i++) {
        callbackObject =3D __pendingCallbacks[i];
        if (callbackObject && callbackObject.xmlRequest && =
(callbackObject.xmlRequest.readyState =3D=3D 4)) {
            WebForm_ExecuteCallback(callbackObject);
            if (!__pendingCallbacks[i].async) {
                __synchronousCallBackIndex =3D -1;
            }
            __pendingCallbacks[i] =3D null;
            var callbackFrameID =3D "__CALLBACKFRAME" + i;
            var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
            if (xmlRequestFrame) {
                xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
            }
        }
    }
}
function WebForm_ExecuteCallback(callbackObject) {
    var response =3D callbackObject.xmlRequest.responseText;
    if (response.charAt(0) =3D=3D "s") {
        if ((typeof(callbackObject.eventCallback) !=3D "undefined") && =
(callbackObject.eventCallback !=3D null)) {
            callbackObject.eventCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else if (response.charAt(0) =3D=3D "e") {
        if ((typeof(callbackObject.errorCallback) !=3D "undefined") && =
(callbackObject.errorCallback !=3D null)) {
            callbackObject.errorCallback(response.substring(1), =
callbackObject.context);
        }
    }
    else {
        var separatorIndex =3D response.indexOf("|");
        if (separatorIndex !=3D -1) {
            var validationFieldLength =3D parseInt(response.substring(0, =
separatorIndex));
            if (!isNaN(validationFieldLength)) {
                var validationField =3D =
response.substring(separatorIndex + 1, separatorIndex + =
validationFieldLength + 1);
                if (validationField !=3D "") {
                    var validationFieldElement =3D =
theForm["__EVENTVALIDATION"];
                    if (!validationFieldElement) {
                        validationFieldElement =3D =
document.createElement("INPUT");
                        validationFieldElement.type =3D "hidden";
                        validationFieldElement.name =3D =
"__EVENTVALIDATION";
                        theForm.appendChild(validationFieldElement);
                    }
                    validationFieldElement.value =3D validationField;
                }
                if ((typeof(callbackObject.eventCallback) !=3D =
"undefined") && (callbackObject.eventCallback !=3D null)) {
                    =
callbackObject.eventCallback(response.substring(separatorIndex + =
validationFieldLength + 1), callbackObject.context);
                }
            }
        }
    }
}
function WebForm_FillFirstAvailableSlot(array, element) {
    var i;
    for (i =3D 0; i < array.length; i++) {
        if (!array[i]) break;
    }
    array[i] =3D element;
    return i;
}
var __nonMSDOMBrowser =3D =
(window.navigator.appName.toLowerCase().indexOf('explorer') =3D=3D -1);
var __theFormPostData =3D "";
var __theFormPostCollection =3D new Array();
function WebForm_InitCallback() {
    var count =3D theForm.elements.length;
    var element;
    for (var i =3D 0; i < count; i++) {
        element =3D theForm.elements[i];
        var tagName =3D element.tagName.toLowerCase();
        if (tagName =3D=3D "input") {
            var type =3D element.type;
            if ((type =3D=3D "text" || type =3D=3D "hidden" || type =
=3D=3D "password" ||
                ((type =3D=3D "checkbox" || type =3D=3D "radio") && =
element.checked)) &&
                (element.id !=3D "__EVENTVALIDATION")) {
                WebForm_InitCallbackAddField(element.name, =
element.value);
            }
        }
        else if (tagName =3D=3D "select") {
            var selectCount =3D element.options.length;
            for (var j =3D 0; j < selectCount; j++) {
                var selectChild =3D element.options[j];
                if (selectChild.selected =3D=3D true) {
                    WebForm_InitCallbackAddField(element.name, =
element.value);
                }
            }
        }
        else if (tagName =3D=3D "textarea") {
            WebForm_InitCallbackAddField(element.name, element.value);
        }
    }
}
function WebForm_InitCallbackAddField(name, value) {
    var nameValue =3D new Object();
    nameValue.name =3D name;
    nameValue.value =3D value;
    __theFormPostCollection[__theFormPostCollection.length] =3D =
nameValue;
    __theFormPostData +=3D WebForm_EncodeCallback(name) + "=3D" + =
WebForm_EncodeCallback(value) + "&";
}
function WebForm_EncodeCallback(parameter) {
    if (encodeURIComponent) {
        return encodeURIComponent(parameter);
    }
    else {
        return escape(parameter);
    }
}
var __disabledControlArray =3D new Array();
function WebForm_ReEnableControls() {
    if (typeof(__enabledControlArray) =3D=3D 'undefined') {
        return false;
    }
    var disabledIndex =3D 0;
    for (var i =3D 0; i < __enabledControlArray.length; i++) {
        var c;
        if (__nonMSDOMBrowser) {
            c =3D document.getElementById(__enabledControlArray[i]);
        }
        else {
            c =3D document.all[__enabledControlArray[i]];
        }
        if ((typeof(c) !=3D "undefined") && (c !=3D null) && (c.disabled =
=3D=3D true)) {
            c.disabled =3D false;
            __disabledControlArray[disabledIndex++] =3D c;
        }
    }
    setTimeout("WebForm_ReDisableControls()", 0);
    return true;
}
function WebForm_ReDisableControls() {
    for (var i =3D 0; i < __disabledControlArray.length; i++) {
        __disabledControlArray[i].disabled =3D true;
    }
}
function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode =3D=3D 13) {
        var src =3D event.srcElement || event.target;
        if (!src || (src.tagName.toLowerCase() !=3D "textarea")) {
            var defaultButton;
            if (__nonMSDOMBrowser) {
               defaultButton =3D document.getElementById(target);
            }
            else {
                defaultButton =3D document.all[target];
            }
            if (defaultButton && typeof(defaultButton.click) !=3D =
"undefined") {
                defaultButton.click();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_GetScrollX() {
    if (__nonMSDOMBrowser) {
        return window.pageXOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollLeft) {
            return document.documentElement.scrollLeft;
        }
        else if (document.body) {
            return document.body.scrollLeft;
        }
    }
    return 0;
}
function WebForm_GetScrollY() {
    if (__nonMSDOMBrowser) {
        return window.pageYOffset;
    }
    else {
        if (document.documentElement && =
document.documentElement.scrollTop) {
            return document.documentElement.scrollTop;
        }
        else if (document.body) {
            return document.body.scrollTop;
        }
    }
    return 0;
}
function WebForm_SaveScrollPositionSubmit() {
    if (__nonMSDOMBrowser) {
        theForm.elements['__SCROLLPOSITIONY'].value =3D =
window.pageYOffset;
        theForm.elements['__SCROLLPOSITIONX'].value =3D =
window.pageXOffset;
    }
    else {
        theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
        theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    }
    if ((typeof(this.oldSubmit) !=3D "undefined") && (this.oldSubmit =
!=3D null)) {
        return this.oldSubmit();
    }
    return true;
}
function WebForm_SaveScrollPositionOnSubmit() {
    theForm.__SCROLLPOSITIONX.value =3D WebForm_GetScrollX();
    theForm.__SCROLLPOSITIONY.value =3D WebForm_GetScrollY();
    if ((typeof(this.oldOnSubmit) !=3D "undefined") && (this.oldOnSubmit =
!=3D null)) {
        return this.oldOnSubmit();
    }
    return true;
}
function WebForm_RestoreScrollPosition() {
    if (__nonMSDOMBrowser) {
        window.scrollTo(theForm.elements['__SCROLLPOSITIONX'].value, =
theForm.elements['__SCROLLPOSITIONY'].value);
    }
    else {
        window.scrollTo(theForm.__SCROLLPOSITIONX.value, =
theForm.__SCROLLPOSITIONY.value);
    }
    if ((typeof(theForm.oldOnLoad) !=3D "undefined") && =
(theForm.oldOnLoad !=3D null)) {
        return theForm.oldOnLoad();
    }
    return true;
}
function WebForm_TextBoxKeyHandler(event) {
    if (event.keyCode =3D=3D 13) {
        var target;
        if (__nonMSDOMBrowser) {
            target =3D event.target;
        }
        else {
            target =3D event.srcElement;
        }
        if ((typeof(target) !=3D "undefined") && (target !=3D null)) {
            if (typeof(target.onchange) !=3D "undefined") {
                target.onchange();
                event.cancelBubble =3D true;
                if (event.stopPropagation) event.stopPropagation();
                return false;
            }
        }
    }
    return true;
}
function WebForm_TrimString(value) {
    return value.replace(/^\s+|\s+$/g, '')
}
function WebForm_AppendToClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index =3D=3D=3D -1) {
        element.className =3D (element.className =3D=3D=3D '') ? =
className : element.className + ' ' + className;
    }
}
function WebForm_RemoveClassName(element, className) {
    var currentClassName =3D ' ' + WebForm_TrimString(element.className) =
+ ' ';
    className =3D WebForm_TrimString(className);
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D =
WebForm_TrimString(currentClassName.substring(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length));
    }
}
function WebForm_GetElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    }
    else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}
function WebForm_GetElementByTagName(element, tagName) {
    var elements =3D WebForm_GetElementsByTagName(element, tagName);
    if (elements && elements.length > 0) {
        return elements[0];
    }
    else return null;
}
function WebForm_GetElementsByTagName(element, tagName) {
    if (element && tagName) {
        if (element.getElementsByTagName) {
            return element.getElementsByTagName(tagName);
        }
        if (element.all && element.all.tags) {
            return element.all.tags(tagName);
        }
    }
    return null;
}
function WebForm_GetElementDir(element) {
    if (element) {
        if (element.dir) {
            return element.dir;
        }
        return WebForm_GetElementDir(element.parentNode);
    }
    return "ltr";
}
function WebForm_GetElementPosition(element) {
    var result =3D new Object();
    result.x =3D 0;
    result.y =3D 0;
    result.width =3D 0;
    result.height =3D 0;
    if (element.offsetParent) {
        result.x =3D element.offsetLeft;
        result.y =3D element.offsetTop;
        var parent =3D element.offsetParent;
        while (parent) {
            result.x +=3D parent.offsetLeft;
            result.y +=3D parent.offsetTop;
            var parentTagName =3D parent.tagName.toLowerCase();
            if (parentTagName !=3D "table" &&
                parentTagName !=3D "body" &&=20
                parentTagName !=3D "html" &&=20
                parentTagName !=3D "div" &&=20
                parent.clientTop &&=20
                parent.clientLeft) {
                result.x +=3D parent.clientLeft;
                result.y +=3D parent.clientTop;
            }
            parent =3D parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x =3D element.left;
        result.y =3D element.top;
    }
    else {
        if (element.x) {
            result.x =3D element.x;
        }
        if (element.y) {
            result.y =3D element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width =3D element.offsetWidth;
        result.height =3D element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && =
element.style.pixelHeight) {
        result.width =3D element.style.pixelWidth;
        result.height =3D element.style.pixelHeight;
    }
    return result;
}
function WebForm_GetParentByTagName(element, tagName) {
    var parent =3D element.parentNode;
    var upperTagName =3D tagName.toUpperCase();
    while (parent && (parent.tagName.toUpperCase() !=3D upperTagName)) {
        parent =3D parent.parentNode ? parent.parentNode : =
parent.parentElement;
    }
    return parent;
}
function WebForm_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height =3D height + "px";
    }
}
function WebForm_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width =3D width + "px";
    }
}
function WebForm_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left =3D x + "px";
    }
}
function WebForm_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top =3D y + "px";
    }
}

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/ScriptResource.axd?d=3vT_mI6V8cfPztxasln5Lop9xAxjZ6D0KnUeJHBhf2eX3F7NkFoXAdRYZVW2K0THlYR8C6ZhETcXRrYKcS25tpHMsrBxWBpv9yfDfQ8CnY41&t=634123f4

=EF=BB=BF// Name:        MicrosoftAjax.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.1
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjax.js
// Microsoft AJAX Framework.
=20
Function.__typeName =3D 'Function';
Function.__class =3D true;
Function.createCallback =3D function Function$createCallback(method, =
context) {
    /// <summary locid=3D"M:J#Function.createCallback" />
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"context" mayBeNull=3D"true"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "method", type: Function},
        {name: "context", mayBeNull: true}
    ]);
    if (e) throw e;
    return function() {
        var l =3D arguments.length;
        if (l > 0) {
            var args =3D [];
            for (var i =3D 0; i < l; i++) {
                args[i] =3D arguments[i];
            }
            args[l] =3D context;
            return method.apply(this, args);
        }
        return method.call(this, context);
    }
}
Function.createDelegate =3D function Function$createDelegate(instance, =
method) {
    /// <summary locid=3D"M:J#Function.createDelegate" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <returns type=3D"Function"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true},
        {name: "method", type: Function}
    ]);
    if (e) throw e;
    return function() {
        return method.apply(instance, arguments);
    }
}
Function.emptyFunction =3D Function.emptyMethod =3D function =
Function$emptyMethod() {
    /// <summary locid=3D"M:J#Function.emptyMethod" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Function._validateParams =3D function Function$_validateParams(params, =
expectedParams) {
    var e;
    e =3D Function._validateParameterCount(params, expectedParams);
    if (e) {
        e.popStackFrame();
        return e;
    }
    for (var i=3D0; i < params.length; i++) {
        var expectedParam =3D expectedParams[Math.min(i, =
expectedParams.length - 1)];
        var paramName =3D expectedParam.name;
        if (expectedParam.parameterArray) {
            paramName +=3D "[" + (i - expectedParams.length + 1) + "]";
        }
        e =3D Function._validateParameter(params[i], expectedParam, =
paramName);
        if (e) {
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
Function._validateParameterCount =3D function =
Function$_validateParameterCount(params, expectedParams) {
    var maxParams =3D expectedParams.length;
    var minParams =3D 0;
    for (var i=3D0; i < expectedParams.length; i++) {
        if (expectedParams[i].parameterArray) {
            maxParams =3D Number.MAX_VALUE;
        }
        else if (!expectedParams[i].optional) {
            minParams++;
        }
    }
    if (params.length < minParams || params.length > maxParams) {
        var e =3D Error.parameterCount();
        e.popStackFrame();
        return e;
    }
    return null;
}
Function._validateParameter =3D function =
Function$_validateParameter(param, expectedParam, paramName) {
    var e;
    var expectedType =3D expectedParam.type;
    var expectedInteger =3D !!expectedParam.integer;
    var expectedDomElement =3D !!expectedParam.domElement;
    var mayBeNull =3D !!expectedParam.mayBeNull;
    e =3D Function._validateParameterType(param, expectedType, =
expectedInteger, expectedDomElement, mayBeNull, paramName);
    if (e) {
        e.popStackFrame();
        return e;
    }
    var expectedElementType =3D expectedParam.elementType;
    var elementMayBeNull =3D !!expectedParam.elementMayBeNull;
    if (expectedType =3D=3D=3D Array && typeof(param) !=3D=3D =
"undefined" && param !=3D=3D null &&
        (expectedElementType || !elementMayBeNull)) {
        var expectedElementInteger =3D !!expectedParam.elementInteger;
        var expectedElementDomElement =3D =
!!expectedParam.elementDomElement;
        for (var i=3D0; i < param.length; i++) {
            var elem =3D param[i];
            e =3D Function._validateParameterType(elem, =
expectedElementType,
                expectedElementInteger, expectedElementDomElement, =
elementMayBeNull,
                paramName + "[" + i + "]");
            if (e) {
                e.popStackFrame();
                return e;
            }
        }
    }
    return null;
}
Function._validateParameterType =3D function =
Function$_validateParameterType(param, expectedType, expectedInteger, =
expectedDomElement, mayBeNull, paramName) {
    var e;
    if (typeof(param) =3D=3D=3D "undefined") {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentUndefined(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (param =3D=3D=3D null) {
        if (mayBeNull) {
            return null;
        }
        else {
            e =3D Error.argumentNull(paramName);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && expectedType.__enum) {
        if (typeof(param) !=3D=3D 'number') {
            e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
            e.popStackFrame();
            return e;
        }
        if ((param % 1) =3D=3D=3D 0) {
            var values =3D expectedType.prototype;
            if (!expectedType.__flags || (param =3D=3D=3D 0)) {
                for (var i in values) {
                    if (values[i] =3D=3D=3D param) return null;
                }
            }
            else {
                var v =3D param;
                for (var i in values) {
                    var vali =3D values[i];
                    if (vali =3D=3D=3D 0) continue;
                    if ((vali & param) =3D=3D=3D vali) {
                        v -=3D vali;
                    }
                    if (v =3D=3D=3D 0) return null;
                }
            }
        }
        e =3D Error.argumentOutOfRange(paramName, param, =
String.format(Sys.Res.enumInvalidValue, param, expectedType.getName()));
        e.popStackFrame();
        return e;
    }
    if (expectedDomElement) {
        var val;
        if (typeof(param.nodeType) !=3D=3D 'number') {
            var doc =3D param.ownerDocument || param.document || param;
            if (doc !=3D param) {
                var w =3D doc.defaultView || doc.parentWindow;
                val =3D (w !=3D param) && !(w.document && param.document =
&& (w.document =3D=3D=3D param.document));
            }
            else {
                val =3D (typeof(doc.body) =3D=3D=3D 'undefined');
            }
        }
        else {
            val =3D (param.nodeType =3D=3D=3D 3);
        }
        if (val) {
            e =3D Error.argument(paramName, Sys.Res.argumentDomElement);
            e.popStackFrame();
            return e;
        }
    }
    if (expectedType && !expectedType.isInstanceOfType(param)) {
        e =3D Error.argumentType(paramName, Object.getType(param), =
expectedType);
        e.popStackFrame();
        return e;
    }
    if (expectedType =3D=3D=3D Number && expectedInteger) {
        if ((param % 1) !=3D=3D 0) {
            e =3D Error.argumentOutOfRange(paramName, param, =
Sys.Res.argumentInteger);
            e.popStackFrame();
            return e;
        }
    }
    return null;
}
=20
Error.__typeName =3D 'Error';
Error.__class =3D true;
Error.create =3D function Error$create(message, errorInfo) {
    /// <summary locid=3D"M:J#Error.create" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"errorInfo" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Error"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: =
true},
        {name: "errorInfo", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var e =3D new Error(message);
    e.message =3D message;
    if (errorInfo) {
        for (var v in errorInfo) {
            e[v] =3D errorInfo[v];
        }
    }
    e.popStackFrame();
    return e;
}
Error.argument =3D function Error$argument(paramName, message) {
    /// <summary locid=3D"M:J#Error.argument" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentException: " + (message ? =
message : Sys.Res.argument);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentNull =3D function Error$argumentNull(paramName, message) {
    /// <summary locid=3D"M:J#Error.argumentNull" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentNullException: " + (message ? =
message : Sys.Res.argumentNull);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentNullException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.argumentOutOfRange =3D function =
Error$argumentOutOfRange(paramName, actualValue, message) {
    /// <summary locid=3D"M:J#Error.argumentOutOfRange" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualValue" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualValue", mayBeNull: true, optional: true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentOutOfRangeException: " + =
(message ? message : Sys.Res.argumentOutOfRange);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    if (typeof(actualValue) !=3D=3D "undefined" && actualValue !=3D=3D =
null) {
        displayMessage +=3D "\n" + String.format(Sys.Res.actualValue, =
actualValue);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentOutOfRangeException",
        paramName: paramName,
        actualValue: actualValue
    });
    e.popStackFrame();
    return e;
}
Error.argumentType =3D function Error$argumentType(paramName, =
actualType, expectedType, message) {
    /// <summary locid=3D"M:J#Error.argumentType" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"actualType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"expectedType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "actualType", type: Type, mayBeNull: true, optional: =
true},
        {name: "expectedType", type: Type, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentTypeException: ";
    if (message) {
        displayMessage +=3D message;
    }
    else if (actualType && expectedType) {
        displayMessage +=3D
            String.format(Sys.Res.argumentTypeWithTypes, =
actualType.getName(), expectedType.getName());
    }
    else {
        displayMessage +=3D Sys.Res.argumentType;
    }
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, {
        name: "Sys.ArgumentTypeException",
        paramName: paramName,
        actualType: actualType,
        expectedType: expectedType
    });
    e.popStackFrame();
    return e;
}
Error.argumentUndefined =3D function Error$argumentUndefined(paramName, =
message) {
    /// <summary locid=3D"M:J#Error.argumentUndefined" />
    /// <param name=3D"paramName" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "paramName", type: String, mayBeNull: true, optional: =
true},
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ArgumentUndefinedException: " + (message =
? message : Sys.Res.argumentUndefined);
    if (paramName) {
        displayMessage +=3D "\n" + String.format(Sys.Res.paramName, =
paramName);
    }
    var e =3D Error.create(displayMessage, { name: =
"Sys.ArgumentUndefinedException", paramName: paramName });
    e.popStackFrame();
    return e;
}
Error.format =3D function Error$format(message) {
    /// <summary locid=3D"M:J#Error.format" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.FormatException: " + (message ? message =
: Sys.Res.format);
    var e =3D Error.create(displayMessage, {name: =
'Sys.FormatException'});
    e.popStackFrame();
    return e;
}
Error.invalidOperation =3D function Error$invalidOperation(message) {
    /// <summary locid=3D"M:J#Error.invalidOperation" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.InvalidOperationException: " + (message =
? message : Sys.Res.invalidOperation);
    var e =3D Error.create(displayMessage, {name: =
'Sys.InvalidOperationException'});
    e.popStackFrame();
    return e;
}
Error.notImplemented =3D function Error$notImplemented(message) {
    /// <summary locid=3D"M:J#Error.notImplemented" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.NotImplementedException: " + (message ? =
message : Sys.Res.notImplemented);
    var e =3D Error.create(displayMessage, {name: =
'Sys.NotImplementedException'});
    e.popStackFrame();
    return e;
}
Error.parameterCount =3D function Error$parameterCount(message) {
    /// <summary locid=3D"M:J#Error.parameterCount" />
    /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "message", type: String, mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var displayMessage =3D "Sys.ParameterCountException: " + (message ? =
message : Sys.Res.parameterCount);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ParameterCountException'});
    e.popStackFrame();
    return e;
}
Error.prototype.popStackFrame =3D function Error$popStackFrame() {
    /// <summary locid=3D"M:J#checkParam" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (typeof(this.stack) =3D=3D=3D "undefined" || this.stack =3D=3D=3D =
null ||
        typeof(this.fileName) =3D=3D=3D "undefined" || this.fileName =
=3D=3D=3D null ||
        typeof(this.lineNumber) =3D=3D=3D "undefined" || this.lineNumber =
=3D=3D=3D null) {
        return;
    }
    var stackFrames =3D this.stack.split("\n");
    var currentFrame =3D stackFrames[0];
    var pattern =3D this.fileName + ":" + this.lineNumber;
    while(typeof(currentFrame) !=3D=3D "undefined" &&
          currentFrame !=3D=3D null &&
          currentFrame.indexOf(pattern) =3D=3D=3D -1) {
        stackFrames.shift();
        currentFrame =3D stackFrames[0];
    }
    var nextFrame =3D stackFrames[1];
    if (typeof(nextFrame) =3D=3D=3D "undefined" || nextFrame =3D=3D=3D =
null) {
        return;
    }
    var nextFrameParts =3D nextFrame.match(/@(.*):(\d+)$/);
    if (typeof(nextFrameParts) =3D=3D=3D "undefined" || nextFrameParts =
=3D=3D=3D null) {
        return;
    }
    this.fileName =3D nextFrameParts[1];
    this.lineNumber =3D parseInt(nextFrameParts[2]);
    stackFrames.shift();
    this.stack =3D stackFrames.join("\n");
}
=20
Object.__typeName =3D 'Object';
Object.__class =3D true;
Object.getType =3D function Object$getType(instance) {
    /// <summary locid=3D"M:J#Object.getType" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    var ctor =3D instance.constructor;
    if (!ctor || (typeof(ctor) !=3D=3D "function") || !ctor.__typeName =
|| (ctor.__typeName =3D=3D=3D 'Object')) {
        return Object;
    }
    return ctor;
}
Object.getTypeName =3D function Object$getTypeName(instance) {
    /// <summary locid=3D"M:J#Object.getTypeName" />
    /// <param name=3D"instance"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"}
    ]);
    if (e) throw e;
    return Object.getType(instance).getName();
}
=20
String.__typeName =3D 'String';
String.__class =3D true;
String.prototype.endsWith =3D function String$endsWith(suffix) {
    /// <summary locid=3D"M:J#String.endsWith" />
    /// <param name=3D"suffix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "suffix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(this.length - suffix.length) =3D=3D=3D suffix);
}
String.prototype.startsWith =3D function String$startsWith(prefix) {
    /// <summary locid=3D"M:J#String.startsWith" />
    /// <param name=3D"prefix" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "prefix", type: String}
    ]);
    if (e) throw e;
    return (this.substr(0, prefix.length) =3D=3D=3D prefix);
}
String.prototype.trim =3D function String$trim() {
    /// <summary locid=3D"M:J#String.trim" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.trimEnd =3D function String$trimEnd() {
    /// <summary locid=3D"M:J#String.trimEnd" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/\s+$/, '');
}
String.prototype.trimStart =3D function String$trimStart() {
    /// <summary locid=3D"M:J#String.trimStart" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return this.replace(/^\s+/, '');
}
String.format =3D function String$format(format, args) {
    /// <summary locid=3D"M:J#String.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(false, arguments);
}
String.localeFormat =3D function String$localeFormat(format, args) {
    /// <summary locid=3D"M:J#String.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <param name=3D"args" parameterArray=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String},
        {name: "args", mayBeNull: true, parameterArray: true}
    ]);
    if (e) throw e;
    return String._toFormattedString(true, arguments);
}
String._toFormattedString =3D function =
String$_toFormattedString(useLocale, args) {
    var result =3D '';
    var format =3D args[0];
    for (var i=3D0;;) {
        var open =3D format.indexOf('{', i);
        var close =3D format.indexOf('}', i);
        if ((open < 0) && (close < 0)) {
            result +=3D format.slice(i);
            break;
        }
        if ((close > 0) && ((close < open) || (open < 0))) {
            if (format.charAt(close + 1) !=3D=3D '}') {
                throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
            }
            result +=3D format.slice(i, close + 1);
            i =3D close + 2;
            continue;
        }
        result +=3D format.slice(i, open);
        i =3D open + 1;
        if (format.charAt(i) =3D=3D=3D '{') {
            result +=3D '{';
            i++;
            continue;
        }
        if (close < 0) throw Error.argument('format', =
Sys.Res.stringFormatBraceMismatch);
        var brace =3D format.substring(i, close);
        var colonIndex =3D brace.indexOf(':');
        var argNumber =3D parseInt((colonIndex < 0)? brace : =
brace.substring(0, colonIndex), 10) + 1;
        if (isNaN(argNumber)) throw Error.argument('format', =
Sys.Res.stringFormatInvalid);
        var argFormat =3D (colonIndex < 0)? '' : =
brace.substring(colonIndex + 1);
        var arg =3D args[argNumber];
        if (typeof(arg) =3D=3D=3D "undefined" || arg =3D=3D=3D null) {
            arg =3D '';
        }
        if (arg.toFormattedString) {
            result +=3D arg.toFormattedString(argFormat);
        }
        else if (useLocale && arg.localeFormat) {
            result +=3D arg.localeFormat(argFormat);
        }
        else if (arg.format) {
            result +=3D arg.format(argFormat);
        }
        else
            result +=3D arg.toString();
        i =3D close + 1;
    }
    return result;
}
=20
Boolean.__typeName =3D 'Boolean';
Boolean.__class =3D true;
Boolean.parse =3D function Boolean$parse(value) {
    /// <summary locid=3D"M:J#Boolean.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    var v =3D value.trim().toLowerCase();
    if (v =3D=3D=3D 'false') return false;
    if (v =3D=3D=3D 'true') return true;
    throw Error.argumentOutOfRange('value', value, =
Sys.Res.boolTrueOrFalse);
}
=20
Date.__typeName =3D 'Date';
Date.__class =3D true;
Date._appendPreOrPostMatch =3D function =
Date$_appendPreOrPostMatch(preMatch, strBuilder) {
    var quoteCount =3D 0;
    var escaped =3D false;
    for (var i =3D 0, il =3D preMatch.length; i < il; i++) {
        var c =3D preMatch.charAt(i);
        switch (c) {
        case '\'':
            if (escaped) strBuilder.append("'");
            else quoteCount++;
            escaped =3D false;
            break;
        case '\\':
            if (escaped) strBuilder.append("\\");
            escaped =3D !escaped;
            break;
        default:
            strBuilder.append(c);
            escaped =3D false;
            break;
        }
    }
    return quoteCount;
}
Date._expandFormat =3D function Date$_expandFormat(dtf, format) {
    if (!format) {
        format =3D "F";
    }
    if (format.length =3D=3D=3D 1) {
        switch (format) {
        case "d":
            return dtf.ShortDatePattern;
        case "D":
            return dtf.LongDatePattern;
        case "t":
            return dtf.ShortTimePattern;
        case "T":
            return dtf.LongTimePattern;
        case "F":
            return dtf.FullDateTimePattern;
        case "M": case "m":
            return dtf.MonthDayPattern;
        case "s":
            return dtf.SortableDateTimePattern;
        case "Y": case "y":
            return dtf.YearMonthPattern;
        default:
            throw Error.format(Sys.Res.formatInvalidString);
        }
    }
    return format;
}
Date._expandYear =3D function Date$_expandYear(dtf, year) {
    if (year < 100) {
        var curr =3D new Date().getFullYear();
        year +=3D curr - (curr % 100);
        if (year > dtf.Calendar.TwoDigitYearMax) {
            return year - 100;
        }
    }
    return year;
}
Date._getParseRegExp =3D function Date$_getParseRegExp(dtf, format) {
    if (!dtf._parseRegExp) {
        dtf._parseRegExp =3D {};
    }
    else if (dtf._parseRegExp[format]) {
        return dtf._parseRegExp[format];
    }
    var expFormat =3D Date._expandFormat(dtf, format);
    expFormat =3D expFormat.replace(/([\^\$\.\*\+\?\|\[\]\(\)\{\}])/g, =
"\\\\$1");
    var regexp =3D new Sys.StringBuilder("^");
    var groups =3D [];
    var index =3D 0;
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    var match;
    while ((match =3D tokenRegExp.exec(expFormat)) !=3D=3D null) {
        var preMatch =3D expFormat.slice(index, match.index);
        index =3D tokenRegExp.lastIndex;
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, regexp);
        if ((quoteCount%2) =3D=3D=3D 1) {
            regexp.append(match[0]);
            continue;
        }
        switch (match[0]) {
            case 'dddd': case 'ddd':
            case 'MMMM': case 'MMM':
                regexp.append("(\\D+)");
                break;
            case 'tt': case 't':
                regexp.append("(\\D*)");
                break;
            case 'yyyy':
                regexp.append("(\\d{4})");
                break;
            case 'fff':
                regexp.append("(\\d{3})");
                break;
            case 'ff':
                regexp.append("(\\d{2})");
                break;
            case 'f':
                regexp.append("(\\d)");
                break;
            case 'dd': case 'd':
            case 'MM': case 'M':
            case 'yy': case 'y':
            case 'HH': case 'H':
            case 'hh': case 'h':
            case 'mm': case 'm':
            case 'ss': case 's':
                regexp.append("(\\d\\d?)");
                break;
            case 'zzz':
                regexp.append("([+-]?\\d\\d?:\\d{2})");
                break;
            case 'zz': case 'z':
                regexp.append("([+-]?\\d\\d?)");
                break;
        }
        Array.add(groups, match[0]);
    }
    Date._appendPreOrPostMatch(expFormat.slice(index), regexp);
    regexp.append("$");
    var regexpStr =3D regexp.toString().replace(/\s+/g, "\\s+");
    var parseRegExp =3D {'regExp': regexpStr, 'groups': groups};
    dtf._parseRegExp[format] =3D parseRegExp;
    return parseRegExp;
}
Date._getTokenRegExp =3D function Date$_getTokenRegExp() {
    return =
/dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|hh|h|HH|H|mm|m|ss|s|tt|t|fff|ff|f|=
zzz|zz|z/g;
}
Date.parseLocale =3D function Date$parseLocale(value, formats) {
    /// <summary locid=3D"M:J#Date.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.CurrentCulture, =
arguments);
}
Date.parseInvariant =3D function Date$parseInvariant(value, formats) {
    /// <summary locid=3D"M:J#Date.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"formats" parameterArray=3D"true" =
optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Date"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "formats", mayBeNull: true, optional: true, =
parameterArray: true}
    ]);
    if (e) throw e;
    return Date._parse(value, Sys.CultureInfo.InvariantCulture, =
arguments);
}
Date._parse =3D function Date$_parse(value, cultureInfo, args) {
    var custom =3D false;
    for (var i =3D 1, il =3D args.length; i < il; i++) {
        var format =3D args[i];
        if (format) {
            custom =3D true;
            var date =3D Date._parseExact(value, format, cultureInfo);
            if (date) return date;
        }
    }
    if (! custom) {
        var formats =3D cultureInfo._getDateTimeFormats();
        for (var i =3D 0, il =3D formats.length; i < il; i++) {
            var date =3D Date._parseExact(value, formats[i], =
cultureInfo);
            if (date) return date;
        }
    }
    return null;
}
Date._parseExact =3D function Date$_parseExact(value, format, =
cultureInfo) {
    value =3D value.trim();
    var dtf =3D cultureInfo.dateTimeFormat;
    var parseInfo =3D Date._getParseRegExp(dtf, format);
    var match =3D new RegExp(parseInfo.regExp).exec(value);
    if (match =3D=3D=3D null) return null;
   =20
    var groups =3D parseInfo.groups;
    var year =3D null, month =3D null, date =3D null, weekDay =3D null;
    var hour =3D 0, min =3D 0, sec =3D 0, msec =3D 0, tzMinOffset =3D =
null;
    var pmHour =3D false;
    for (var j =3D 0, jl =3D groups.length; j < jl; j++) {
        var matchGroup =3D match[j+1];
        if (matchGroup) {
            switch (groups[j]) {
                case 'dd': case 'd':
                    date =3D parseInt(matchGroup, 10);
                    if ((date < 1) || (date > 31)) return null;
                    break;
                case 'MMMM':
                    month =3D cultureInfo._getMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'MMM':
                    month =3D =
cultureInfo._getAbbrMonthIndex(matchGroup);
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'M': case 'MM':
                    var month =3D parseInt(matchGroup, 10) - 1;
                    if ((month < 0) || (month > 11)) return null;
                    break;
                case 'y': case 'yy':
                    year =3D Date._expandYear(dtf,parseInt(matchGroup, =
10));
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'yyyy':
                    year =3D parseInt(matchGroup, 10);
                    if ((year < 0) || (year > 9999)) return null;
                    break;
                case 'h': case 'hh':
                    hour =3D parseInt(matchGroup, 10);
                    if (hour =3D=3D=3D 12) hour =3D 0;
                    if ((hour < 0) || (hour > 11)) return null;
                    break;
                case 'H': case 'HH':
                    hour =3D parseInt(matchGroup, 10);
                    if ((hour < 0) || (hour > 23)) return null;
                    break;
                case 'm': case 'mm':
                    min =3D parseInt(matchGroup, 10);
                    if ((min < 0) || (min > 59)) return null;
                    break;
                case 's': case 'ss':
                    sec =3D parseInt(matchGroup, 10);
                    if ((sec < 0) || (sec > 59)) return null;
                    break;
                case 'tt': case 't':
                    var upperToken =3D matchGroup.toUpperCase();
                    pmHour =3D (upperToken =3D=3D=3D =
dtf.PMDesignator.toUpperCase());
                    if (!pmHour && (upperToken !=3D=3D =
dtf.AMDesignator.toUpperCase())) return null;
                    break;
                case 'f':
                    msec =3D parseInt(matchGroup, 10) * 100;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'ff':
                    msec =3D parseInt(matchGroup, 10) * 10;
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'fff':
                    msec =3D parseInt(matchGroup, 10);
                    if ((msec < 0) || (msec > 999)) return null;
                    break;
                case 'dddd':
                    weekDay =3D cultureInfo._getDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'ddd':
                    weekDay =3D =
cultureInfo._getAbbrDayIndex(matchGroup);
                    if ((weekDay < 0) || (weekDay > 6)) return null;
                    break;
                case 'zzz':
                    var offsets =3D matchGroup.split(/:/);
                    if (offsets.length !=3D=3D 2) return null;
                    var hourOffset =3D parseInt(offsets[0], 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    var minOffset =3D parseInt(offsets[1], 10);
                    if ((minOffset < 0) || (minOffset > 59)) return =
null;
                    tzMinOffset =3D (hourOffset * 60) + =
(matchGroup.startsWith('-')? -minOffset : minOffset);
                    break;
                case 'z': case 'zz':
                    var hourOffset =3D parseInt(matchGroup, 10);
                    if ((hourOffset < -12) || (hourOffset > 13)) return =
null;
                    tzMinOffset =3D hourOffset * 60;
                    break;
            }
        }
    }
    var result =3D new Date();
    if (year =3D=3D=3D null) {
        year =3D result.getFullYear();
    }
    if (month =3D=3D=3D null) {
        month =3D result.getMonth();
    }
    if (date =3D=3D=3D null) {
        date =3D result.getDate();
    }
    result.setFullYear(year, month, date);
    if (result.getDate() !=3D=3D date) return null;
    if ((weekDay !=3D=3D null) && (result.getDay() !=3D=3D weekDay)) {
        return null;
    }
    if (pmHour && (hour < 12)) {
        hour +=3D 12;
    }
    result.setHours(hour, min, sec, msec);
    if (tzMinOffset !=3D=3D null) {
        var adjustedMin =3D result.getMinutes() - (tzMinOffset + =
result.getTimezoneOffset());
        result.setHours(result.getHours() + parseInt(adjustedMin/60, =
10), adjustedMin%60);
    }
    return result;
}
Date.prototype.format =3D function Date$format(format) {
    /// <summary locid=3D"M:J#Date.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Date.prototype.localeFormat =3D function Date$localeFormat(format) {
    /// <summary locid=3D"M:J#Date.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Date.prototype._toFormattedString =3D function =
Date$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
    var dtf =3D cultureInfo.dateTimeFormat;
    format =3D Date._expandFormat(dtf, format);
    var ret =3D new Sys.StringBuilder();
    var hour;
    function addLeadingZero(num) {
        if (num < 10) {
            return '0' + num;
        }
        return num.toString();
    }
    function addLeadingZeros(num) {
        if (num < 10) {
            return '00' + num;
        }
        if (num < 100) {
            return '0' + num;
        }
        return num.toString();
    }
    var quoteCount =3D 0;
    var tokenRegExp =3D Date._getTokenRegExp();
    for (;;) {
        var index =3D tokenRegExp.lastIndex;
        var ar =3D tokenRegExp.exec(format);
        var preMatch =3D format.slice(index, ar ? ar.index : =
format.length);
        quoteCount +=3D Date._appendPreOrPostMatch(preMatch, ret);
        if (!ar) break;
        if ((quoteCount%2) =3D=3D=3D 1) {
            ret.append(ar[0]);
            continue;
        }
        switch (ar[0]) {
        case "dddd":
            ret.append(dtf.DayNames[this.getDay()]);
            break;
        case "ddd":
            ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
            break;
        case "dd":
            ret.append(addLeadingZero(this.getDate()));
            break;
        case "d":
            ret.append(this.getDate());
            break;
        case "MMMM":
            ret.append(dtf.MonthNames[this.getMonth()]);
            break;
        case "MMM":
            ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
            break;
        case "MM":
            ret.append(addLeadingZero(this.getMonth() + 1));
            break;
        case "M":
            ret.append(this.getMonth() + 1);
            break;
        case "yyyy":
            ret.append(this.getFullYear());
            break;
        case "yy":
            ret.append(addLeadingZero(this.getFullYear() % 100));
            break;
        case "y":
            ret.append(this.getFullYear() % 100);
            break;
        case "hh":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(addLeadingZero(hour));
            break;
        case "h":
            hour =3D this.getHours() % 12;
            if (hour =3D=3D=3D 0) hour =3D 12;
            ret.append(hour);
            break;
        case "HH":
            ret.append(addLeadingZero(this.getHours()));
            break;
        case "H":
            ret.append(this.getHours());
            break;
        case "mm":
            ret.append(addLeadingZero(this.getMinutes()));
            break;
        case "m":
            ret.append(this.getMinutes());
            break;
        case "ss":
            ret.append(addLeadingZero(this.getSeconds()));
            break;
        case "s":
            ret.append(this.getSeconds());
            break;
        case "tt":
            ret.append((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator);
            break;
        case "t":
            ret.append(((this.getHours() < 12) ? dtf.AMDesignator : =
dtf.PMDesignator).charAt(0));
            break;
        case "f":
            =
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
            break;
        case "ff":
            ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, =
2));
            break;
        case "fff":
            ret.append(addLeadingZeros(this.getMilliseconds()));
            break;
        case "z":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
Math.floor(Math.abs(hour)));
            break;
        case "zz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))));
            break;
        case "zzz":
            hour =3D this.getTimezoneOffset() / 60;
            ret.append(((hour <=3D 0) ? '+' : '-') + =
addLeadingZero(Math.floor(Math.abs(hour))) +
                dtf.TimeSeparator + =
addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
            break;
        }
    }
    return ret.toString();
}
=20
Number.__typeName =3D 'Number';
Number.__class =3D true;
Number.parseLocale =3D function Number$parseLocale(value) {
    /// <summary locid=3D"M:J#Number.parseLocale" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant =3D function Number$parseInvariant(value) {
    /// <summary locid=3D"M:J#Number.parseInvariant" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String}
    ]);
    if (e) throw e;
    return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse =3D function Number$_parse(value, cultureInfo) {
    value =3D value.trim();
   =20
    if (value.match(/^[+-]?infinity$/i)) {
        return parseFloat(value);
    }
    if (value.match(/^0x[a-f0-9]+$/i)) {
        return parseInt(value);
    }
    var numFormat =3D cultureInfo.numberFormat;
    var signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, numFormat.NumberNegativePattern);
    var sign =3D signInfo[0];
    var num =3D signInfo[1];
   =20
    if ((sign =3D=3D=3D '') && (numFormat.NumberNegativePattern !=3D=3D =
1)) {
        signInfo =3D Number._parseNumberNegativePattern(value, =
numFormat, 1);
        sign =3D signInfo[0];
        num =3D signInfo[1];
    }
    if (sign =3D=3D=3D '') sign =3D '+';
   =20
    var exponent;
    var intAndFraction;
    var exponentPos =3D num.indexOf('e');
    if (exponentPos < 0) exponentPos =3D num.indexOf('E');
    if (exponentPos < 0) {
        intAndFraction =3D num;
        exponent =3D null;
    }
    else {
        intAndFraction =3D num.substr(0, exponentPos);
        exponent =3D num.substr(exponentPos + 1);
    }
   =20
    var integer;
    var fraction;
    var decimalPos =3D =
intAndFraction.indexOf(numFormat.NumberDecimalSeparator);
    if (decimalPos < 0) {
        integer =3D intAndFraction;
        fraction =3D null;
    }
    else {
        integer =3D intAndFraction.substr(0, decimalPos);
        fraction =3D intAndFraction.substr(decimalPos + =
numFormat.NumberDecimalSeparator.length);
    }
   =20
    integer =3D integer.split(numFormat.NumberGroupSeparator).join('');
    var altNumGroupSeparator =3D =
numFormat.NumberGroupSeparator.replace(/\u00A0/g, " ");
    if (numFormat.NumberGroupSeparator !=3D=3D altNumGroupSeparator) {
        integer =3D integer.split(altNumGroupSeparator).join('');
    }
   =20
    var p =3D sign + integer;
    if (fraction !=3D=3D null) {
        p +=3D '.' + fraction;
    }
    if (exponent !=3D=3D null) {
        var expSignInfo =3D Number._parseNumberNegativePattern(exponent, =
numFormat, 1);
        if (expSignInfo[0] =3D=3D=3D '') {
            expSignInfo[0] =3D '+';
        }
        p +=3D 'e' + expSignInfo[0] + expSignInfo[1];
    }
    if (p.match(/^[+-]?\d*\.?\d*(e[+-]?\d+)?$/)) {
        return parseFloat(p);
    }
    return Number.NaN;
}
Number._parseNumberNegativePattern =3D function =
Number$_parseNumberNegativePattern(value, numFormat, =
numberNegativePattern) {
    var neg =3D numFormat.NegativeSign;
    var pos =3D numFormat.PositiveSign;   =20
    switch (numberNegativePattern) {
        case 4:=20
            neg =3D ' ' + neg;
            pos =3D ' ' + pos;
        case 3:=20
            if (value.endsWith(neg)) {
                return ['-', value.substr(0, value.length - =
neg.length)];
            }
            else if (value.endsWith(pos)) {
                return ['+', value.substr(0, value.length - =
pos.length)];
            }
            break;
        case 2:=20
            neg +=3D ' ';
            pos +=3D ' ';
        case 1:=20
            if (value.startsWith(neg)) {
                return ['-', value.substr(neg.length)];
            }
            else if (value.startsWith(pos)) {
                return ['+', value.substr(pos.length)];
            }
            break;
        case 0:=20
            if (value.startsWith('(') && value.endsWith(')')) {
                return ['-', value.substr(1, value.length - 2)];
            }
            break;
    }
    return ['', value];
}
Number.prototype.format =3D function Number$format(format) {
    /// <summary locid=3D"M:J#Number.format" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.InvariantCulture);
}
Number.prototype.localeFormat =3D function Number$localeFormat(format) {
    /// <summary locid=3D"M:J#Number.localeFormat" />
    /// <param name=3D"format" type=3D"String"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "format", type: String}
    ]);
    if (e) throw e;
    return this._toFormattedString(format, =
Sys.CultureInfo.CurrentCulture);
}
Number.prototype._toFormattedString =3D function =
Number$_toFormattedString(format, cultureInfo) {
    if (!format || (format.length =3D=3D=3D 0) || (format =3D=3D=3D =
'i')) {
        if (cultureInfo && (cultureInfo.name.length > 0)) {
            return this.toLocaleString();
        }
        else {
            return this.toString();
        }
    }
   =20
    var _percentPositivePattern =3D ["n %", "n%", "%n" ];
    var _percentNegativePattern =3D ["-n %", "-n%", "-%n"];
    var _numberNegativePattern =3D ["(n)","-n","- n","n-","n -"];
    var _currencyPositivePattern =3D ["$n","n$","$ n","n $"];
    var _currencyNegativePattern =3D =
["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n =
$-","$ n-","$ -n","n- $","($ n)","(n $)"];
    function zeroPad(str, count, left) {
        for (var l=3Dstr.length; l < count; l++) {
            str =3D (left ? ('0' + str) : (str + '0'));
        }
        return str;
    }
   =20
    function expandNumber(number, precision, groupSizes, sep, =
decimalChar) {
       =20
        var curSize =3D groupSizes[0];
        var curGroupIndex =3D 1;
        var factor =3D Math.pow(10, precision);
        var rounded =3D (Math.round(number * factor) / factor);
        if (!isFinite(rounded)) {
            rounded =3D number;
        }
        number =3D rounded;
       =20
        var numberString =3D number.toString();
        var right =3D "";
        var exponent;
       =20
       =20
        var split =3D numberString.split(/e/i);
        numberString =3D split[0];
        exponent =3D (split.length > 1 ? parseInt(split[1]) : 0);
        split =3D numberString.split('.');
        numberString =3D split[0];
        right =3D split.length > 1 ? split[1] : "";
       =20
        var l;
        if (exponent > 0) {
            right =3D zeroPad(right, exponent, false);
            numberString +=3D right.slice(0, exponent);
            right =3D right.substr(exponent);
        }
        else if (exponent < 0) {
            exponent =3D -exponent;
            numberString =3D zeroPad(numberString, exponent+1, true);
            right =3D numberString.slice(-exponent, numberString.length) =
+ right;
            numberString =3D numberString.slice(0, -exponent);
        }
        if (precision > 0) {
            if (right.length > precision) {
                right =3D right.slice(0, precision);
            }
            else {
                right =3D zeroPad(right, precision, false);
            }
            right =3D decimalChar + right;
        }
        else {=20
            right =3D "";
        }
        var stringIndex =3D numberString.length-1;
        var ret =3D "";
        while (stringIndex >=3D 0) {
            if (curSize =3D=3D=3D 0 || curSize > stringIndex) {
                if (ret.length > 0)
                    return numberString.slice(0, stringIndex + 1) + sep =
+ ret + right;
                else
                    return numberString.slice(0, stringIndex + 1) + =
right;
            }
            if (ret.length > 0)
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1) + sep + ret;
            else
                ret =3D numberString.slice(stringIndex - curSize + 1, =
stringIndex+1);
            stringIndex -=3D curSize;
            if (curGroupIndex < groupSizes.length) {
                curSize =3D groupSizes[curGroupIndex];
                curGroupIndex++;
            }
        }
        return numberString.slice(0, stringIndex + 1) + sep + ret + =
right;
    }
    var nf =3D cultureInfo.numberFormat;
    var number =3D Math.abs(this);
    if (!format)
        format =3D "D";
    var precision =3D -1;
    if (format.length > 1) precision =3D parseInt(format.slice(1), 10);
    var pattern;
    switch (format.charAt(0)) {
    case "d":
    case "D":
        pattern =3D 'n';
        if (precision !=3D=3D -1) {
            number =3D zeroPad(""+number, precision, true);
        }
        if (this < 0) number =3D -number;
        break;
    case "c":
    case "C":
        if (this < 0) pattern =3D =
_currencyNegativePattern[nf.CurrencyNegativePattern];
        else pattern =3D =
_currencyPositivePattern[nf.CurrencyPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.CurrencyDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.CurrencyGroupSizes, nf.CurrencyGroupSeparator, =
nf.CurrencyDecimalSeparator);
        break;
    case "n":
    case "N":
        if (this < 0) pattern =3D =
_numberNegativePattern[nf.NumberNegativePattern];
        else pattern =3D 'n';
        if (precision =3D=3D=3D -1) precision =3D =
nf.NumberDecimalDigits;
        number =3D expandNumber(Math.abs(this), precision, =
nf.NumberGroupSizes, nf.NumberGroupSeparator, =
nf.NumberDecimalSeparator);
        break;
    case "p":
    case "P":
        if (this < 0) pattern =3D =
_percentNegativePattern[nf.PercentNegativePattern];
        else pattern =3D =
_percentPositivePattern[nf.PercentPositivePattern];
        if (precision =3D=3D=3D -1) precision =3D =
nf.PercentDecimalDigits;
        number =3D expandNumber(Math.abs(this) * 100, precision, =
nf.PercentGroupSizes, nf.PercentGroupSeparator, =
nf.PercentDecimalSeparator);
        break;
    default:
        throw Error.format(Sys.Res.formatBadFormatSpecifier);
    }
    var regex =3D /n|\$|-|%/g;
    var ret =3D "";
    for (;;) {
        var index =3D regex.lastIndex;
        var ar =3D regex.exec(pattern);
        ret +=3D pattern.slice(index, ar ? ar.index : pattern.length);
        if (!ar)
            break;
        switch (ar[0]) {
        case "n":
            ret +=3D number;
            break;
        case "$":
            ret +=3D nf.CurrencySymbol;
            break;
        case "-":
            ret +=3D nf.NegativeSign;
            break;
        case "%":
            ret +=3D nf.PercentSymbol;
            break;
        }
    }
    return ret;
}
=20
RegExp.__typeName =3D 'RegExp';
RegExp.__class =3D true;
=20
Array.__typeName =3D 'Array';
Array.__class =3D true;
Array.add =3D Array.enqueue =3D function Array$enqueue(array, item) {
    /// <summary locid=3D"M:J#Array.enqueue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array[array.length] =3D item;
}
Array.addRange =3D function Array$addRange(array, items) {
    /// <summary locid=3D"M:J#Array.addRange" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"items" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "items", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.push.apply(array, items);
}
Array.clear =3D function Array$clear(array) {
    /// <summary locid=3D"M:J#Array.clear" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    array.length =3D 0;
}
Array.clone =3D function Array$clone(array) {
    /// <summary locid=3D"M:J#Array.clone" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (array.length =3D=3D=3D 1) {
        return [array[0]];
    }
    else {
        return Array.apply(null, array);
    }
}
Array.contains =3D function Array$contains(array, item) {
    /// <summary locid=3D"M:J#Array.contains" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    return (Array.indexOf(array, item) >=3D 0);
}
Array.dequeue =3D function Array$dequeue(array) {
    /// <summary locid=3D"M:J#Array.dequeue" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <returns mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true}
    ]);
    if (e) throw e;
    return array.shift();
}
Array.forEach =3D function Array$forEach(array, method, instance) {
    /// <summary locid=3D"M:J#Array.forEach" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"method" type=3D"Function"></param>
    /// <param name=3D"instance" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "method", type: Function},
        {name: "instance", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    for (var i =3D 0, l =3D array.length; i < l; i++) {
        var elt =3D array[i];
        if (typeof(elt) !=3D=3D 'undefined') method.call(instance, elt, =
i, array);
    }
}
Array.indexOf =3D function Array$indexOf(array, item, start) {
    /// <summary locid=3D"M:J#Array.indexOf" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"start" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Number"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true, optional: true},
        {name: "start", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (typeof(item) =3D=3D=3D "undefined") return -1;
    var length =3D array.length;
    if (length !=3D=3D 0) {
        start =3D start - 0;
        if (isNaN(start)) {
            start =3D 0;
        }
        else {
            if (isFinite(start)) {
                start =3D start - (start % 1);
            }
            if (start < 0) {
                start =3D Math.max(0, length + start);
            }
        }
        for (var i =3D start; i < length; i++) {
            if ((typeof(array[i]) !=3D=3D "undefined") && (array[i] =
=3D=3D=3D item)) {
                return i;
            }
        }
    }
    return -1;
}
Array.insert =3D function Array$insert(array, index, item) {
    /// <summary locid=3D"M:J#Array.insert" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 0, item);
}
Array.parse =3D function Array$parse(value) {
    /// <summary locid=3D"M:J#Array.parse" />
    /// <param name=3D"value" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Array" elementMayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    if (!value) return [];
    var v =3D eval(value);
    if (!Array.isInstanceOfType(v)) throw Error.argument('value', =
Sys.Res.arrayParseBadFormat);
    return v;
}
Array.remove =3D function Array$remove(array, item) {
    /// <summary locid=3D"M:J#Array.remove" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"item" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "item", mayBeNull: true}
    ]);
    if (e) throw e;
    var index =3D Array.indexOf(array, item);
    if (index >=3D 0) {
        array.splice(index, 1);
    }
    return (index >=3D 0);
}
Array.removeAt =3D function Array$removeAt(array, index) {
    /// <summary locid=3D"M:J#Array.removeAt" />
    /// <param name=3D"array" type=3D"Array" =
elementMayBeNull=3D"true"></param>
    /// <param name=3D"index" mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "array", type: Array, elementMayBeNull: true},
        {name: "index", mayBeNull: true}
    ]);
    if (e) throw e;
    array.splice(index, 1);
}
=20
if (!window) this.window =3D this;
window.Type =3D Function;
Type.__fullyQualifiedIdentifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]([^ =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*[^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\])?$", "i");
Type.__identifierRegExp =3D new RegExp("^[^.0-9 =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\][^. =
\\s|,;:&*=3D+\\-()\\[\\]{}^%#@!~\\n\\r\\t\\f\\\\]*$", "i");
Type.prototype.callBaseMethod =3D function Type$callBaseMethod(instance, =
name, baseArguments) {
    /// <summary locid=3D"M:J#Type.callBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    var baseMethod =3D this.getBaseMethod(instance, name);
    if (!baseMethod) throw =
Error.invalidOperation(String.format(Sys.Res.methodNotFound, name));
    if (!baseArguments) {
        return baseMethod.apply(instance);
    }
    else {
        return baseMethod.apply(instance, baseArguments);
    }
}
Type.prototype.getBaseMethod =3D function Type$getBaseMethod(instance, =
name) {
    /// <summary locid=3D"M:J#Type.getBaseMethod" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Function" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    var baseType =3D this.getBaseType();
    if (baseType) {
        var baseMethod =3D baseType.prototype[name];
        return (baseMethod instanceof Function) ? baseMethod : null;
    }
    return null;
}
Type.prototype.getBaseType =3D function Type$getBaseType() {
    /// <summary locid=3D"M:J#Type.getBaseType" />
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__baseType) =3D=3D=3D "undefined") ? null : =
this.__baseType;
}
Type.prototype.getInterfaces =3D function Type$getInterfaces() {
    /// <summary locid=3D"M:J#Type.getInterfaces" />
    /// <returns type=3D"Array" elementType=3D"Type" mayBeNull=3D"false" =
elementMayBeNull=3D"false"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var result =3D [];
    var type =3D this;
    while(type) {
        var interfaces =3D type.__interfaces;
        if (interfaces) {
            for (var i =3D 0, l =3D interfaces.length; i < l; i++) {
                var interfaceType =3D interfaces[i];
                if (!Array.contains(result, interfaceType)) {
                    result[result.length] =3D interfaceType;
                }
            }
        }
        type =3D type.__baseType;
    }
    return result;
}
Type.prototype.getName =3D function Type$getName() {
    /// <summary locid=3D"M:J#Type.getName" />
    /// <returns type=3D"String"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return (typeof(this.__typeName) =3D=3D=3D "undefined") ? "" : =
this.__typeName;
}
Type.prototype.implementsInterface =3D function =
Type$implementsInterface(interfaceType) {
    /// <summary locid=3D"M:J#Type.implementsInterface" />
    /// <param name=3D"interfaceType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "interfaceType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var interfaceName =3D interfaceType.getName();
    var cache =3D this.__interfaceCache;
    if (cache) {
        var cacheEntry =3D cache[interfaceName];
        if (typeof(cacheEntry) !=3D=3D 'undefined') return cacheEntry;
    }
    else {
        cache =3D this.__interfaceCache =3D {};
    }
    var baseType =3D this;
    while (baseType) {
        var interfaces =3D baseType.__interfaces;
        if (interfaces) {
            if (Array.indexOf(interfaces, interfaceType) !=3D=3D -1) {
                return cache[interfaceName] =3D true;
            }
        }
        baseType =3D baseType.__baseType;
    }
    return cache[interfaceName] =3D false;
}
Type.prototype.inheritsFrom =3D function Type$inheritsFrom(parentType) {
    /// <summary locid=3D"M:J#Type.inheritsFrom" />
    /// <param name=3D"parentType" type=3D"Type"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "parentType", type: Type}
    ]);
    if (e) throw e;
    this.resolveInheritance();
    var baseType =3D this.__baseType;
    while (baseType) {
        if (baseType =3D=3D=3D parentType) {
            return true;
        }
        baseType =3D baseType.__baseType;
    }
    return false;
}
Type.prototype.initializeBase =3D function Type$initializeBase(instance, =
baseArguments) {
    /// <summary locid=3D"M:J#Type.initializeBase" />
    /// <param name=3D"instance"></param>
    /// <param name=3D"baseArguments" type=3D"Array" optional=3D"true" =
mayBeNull=3D"true" elementMayBeNull=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance"},
        {name: "baseArguments", type: Array, mayBeNull: true, optional: =
true, elementMayBeNull: true}
    ]);
    if (e) throw e;
    if (!this.isInstanceOfType(instance)) throw =
Error.argumentType('instance', Object.getType(instance), this);
    this.resolveInheritance();
    if (this.__baseType) {
        if (!baseArguments) {
            this.__baseType.apply(instance);
        }
        else {
            this.__baseType.apply(instance, baseArguments);
        }
    }
    return instance;
}
Type.prototype.isImplementedBy =3D function =
Type$isImplementedBy(instance) {
    /// <summary locid=3D"M:J#Type.isImplementedBy" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.isInstanceOfType =3D function =
Type$isInstanceOfType(instance) {
    /// <summary locid=3D"M:J#Type.isInstanceOfType" />
    /// <param name=3D"instance" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "instance", mayBeNull: true}
    ]);
    if (e) throw e;
    if (typeof(instance) =3D=3D=3D "undefined" || instance =3D=3D=3D =
null) return false;
    if (instance instanceof this) return true;
    var instanceType =3D Object.getType(instance);
    return !!(instanceType =3D=3D=3D this) ||
           (instanceType.inheritsFrom && =
instanceType.inheritsFrom(this)) ||
           (instanceType.implementsInterface && =
instanceType.implementsInterface(this));
}
Type.prototype.registerClass =3D function Type$registerClass(typeName, =
baseType, interfaceTypes) {
    /// <summary locid=3D"M:J#Type.registerClass" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <param name=3D"baseType" type=3D"Type" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"interfaceTypes" parameterArray=3D"true" =
type=3D"Type"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String},
        {name: "baseType", type: Type, mayBeNull: true, optional: true},
        {name: "interfaceTypes", type: Type, parameterArray: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    if ((arguments.length > 1) && (typeof(baseType) =3D=3D=3D =
'undefined')) throw Error.argumentUndefined('baseType');
    if (baseType && !baseType.__class) throw Error.argument('baseType', =
Sys.Res.baseNotAClass);
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__class =3D true;
    if (baseType) {
        this.__baseType =3D baseType;
        this.__basePrototypePending =3D true;
    }
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    if (interfaceTypes) {
        this.__interfaces =3D [];
        this.resolveInheritance();
        for (var i =3D 2, l =3D arguments.length; i < l; i++) {
            var interfaceType =3D arguments[i];
            if (!interfaceType.__interface) throw =
Error.argument('interfaceTypes[' + (i - 2) + ']', =
Sys.Res.notAnInterface);
            for (var methodName in interfaceType.prototype) {
                var method =3D interfaceType.prototype[methodName];
                if (!this.prototype[methodName]) {
                    this.prototype[methodName] =3D method;
                }
            }
            this.__interfaces.push(interfaceType);
        }
    }
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.registerInterface =3D function =
Type$registerInterface(typeName) {
    /// <summary locid=3D"M:J#Type.registerInterface" />
    /// <param name=3D"typeName" type=3D"String"></param>
    /// <returns type=3D"Type"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(typeName)) throw =
Error.argument('typeName', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(typeName);
    }
    catch(e) {
        throw Error.argument('typeName', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('typeName', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[typeName]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
typeName));
    Sys.__upperCaseTypes[typeName.toUpperCase()] =3D this;
    this.prototype.constructor =3D this;
    this.__typeName =3D typeName;
    this.__interface =3D true;
    Sys.__registeredTypes[typeName] =3D true;
    return this;
}
Type.prototype.resolveInheritance =3D function Type$resolveInheritance() =
{
    /// <summary locid=3D"M:J#Type.resolveInheritance" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (this.__basePrototypePending) {
        var baseType =3D this.__baseType;
        baseType.resolveInheritance();
        for (var memberName in baseType.prototype) {
            var memberValue =3D baseType.prototype[memberName];
            if (!this.prototype[memberName]) {
                this.prototype[memberName] =3D memberValue;
            }
        }
        delete this.__basePrototypePending;
    }
}
Type.getRootNamespaces =3D function Type$getRootNamespaces() {
    /// <summary locid=3D"M:J#Type.getRootNamespaces" />
    /// <returns type=3D"Array"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    return Array.clone(Sys.__rootNamespaces);
}
Type.isClass =3D function Type$isClass(type) {
    /// <summary locid=3D"M:J#Type.isClass" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__class;
}
Type.isInterface =3D function Type$isInterface(type) {
    /// <summary locid=3D"M:J#Type.isInterface" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__interface;
}
Type.isNamespace =3D function Type$isNamespace(object) {
    /// <summary locid=3D"M:J#Type.isNamespace" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(object) =3D=3D=3D 'undefined') || (object =3D=3D=3D =
null)) return false;
    return !!object.__namespace;
}
Type.parse =3D function Type$parse(typeName, ns) {
    /// <summary locid=3D"M:J#Type.parse" />
    /// <param name=3D"typeName" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"ns" optional=3D"true" mayBeNull=3D"true"></param>
    /// <returns type=3D"Type" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "typeName", type: String, mayBeNull: true},
        {name: "ns", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    var fn;
    if (ns) {
        fn =3D Sys.__upperCaseTypes[ns.getName().toUpperCase() + '.' + =
typeName.toUpperCase()];
        return fn || null;
    }
    if (!typeName) return null;
    if (!Type.__htClasses) {
        Type.__htClasses =3D {};
    }
    fn =3D Type.__htClasses[typeName];
    if (!fn) {
        fn =3D eval(typeName);
        if (typeof(fn) !=3D=3D 'function') throw =
Error.argument('typeName', Sys.Res.notATypeName);
        Type.__htClasses[typeName] =3D fn;
    }
    return fn;
}
Type.registerNamespace =3D function =
Type$registerNamespace(namespacePath) {
    /// <summary locid=3D"M:J#Type.registerNamespace" />
    /// <param name=3D"namespacePath" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "namespacePath", type: String}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(namespacePath)) =
throw Error.argument('namespacePath', Sys.Res.invalidNameSpace);
    var rootObject =3D window;
    var namespaceParts =3D namespacePath.split('.');
    for (var i =3D 0; i < namespaceParts.length; i++) {
        var currentPart =3D namespaceParts[i];
        var ns =3D rootObject[currentPart];
        if (ns && !ns.__namespace) {
            throw =
Error.invalidOperation(String.format(Sys.Res.namespaceContainsObject, =
namespaceParts.splice(0, i + 1).join('.')));
        }
        if (!ns) {
            ns =3D rootObject[currentPart] =3D {
                __namespace: true,
                __typeName: namespaceParts.slice(0, i + 1).join('.')
            };
            if (i =3D=3D=3D 0) {
                Sys.__rootNamespaces[Sys.__rootNamespaces.length] =3D =
ns;
            }
            var parsedName;
            try {
                parsedName =3D eval(ns.__typeName);
            }
            catch(e) {
                parsedName =3D null;
            }
            if (parsedName !=3D=3D ns) {
                delete rootObject[currentPart];
                throw Error.argument('namespacePath', =
Sys.Res.invalidNameSpace);
            }
            ns.getName =3D function ns$getName() {return =
this.__typeName;}
        }
        rootObject =3D ns;
    }
}
window.Sys =3D {
    __namespace: true,
    __typeName: "Sys",
    getName: function() {return "Sys";},
    __upperCaseTypes: {}
};
Sys.__rootNamespaces =3D [Sys];
Sys.__registeredTypes =3D {};
=20
Sys.IDisposable =3D function Sys$IDisposable() {
    throw Error.notImplemented();
}
    function Sys$IDisposable$dispose() {
        throw Error.notImplemented();
    }
Sys.IDisposable.prototype =3D {
    dispose: Sys$IDisposable$dispose
}
Sys.IDisposable.registerInterface('Sys.IDisposable');
=20
Sys.StringBuilder =3D function Sys$StringBuilder(initialText) {
    /// <summary locid=3D"M:J#Sys.StringBuilder.#ctor" />
    /// <param name=3D"initialText" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "initialText", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    this._parts =3D (typeof(initialText) !=3D=3D 'undefined' && =
initialText !=3D=3D null && initialText !=3D=3D '') ?
        [initialText.toString()] : [];
    this._value =3D {};
    this._len =3D 0;
}
    function Sys$StringBuilder$append(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.append" />
        /// <param name=3D"text" mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D text;
    }
    function Sys$StringBuilder$appendLine(text) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.appendLine" />
        /// <param name=3D"text" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._parts[this._parts.length] =3D
            ((typeof(text) =3D=3D=3D 'undefined') || (text =3D=3D=3D =
null) || (text =3D=3D=3D '')) ?
            '\r\n' : text + '\r\n';
    }
    function Sys$StringBuilder$clear() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.clear" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._parts =3D [];
        this._value =3D {};
        this._len =3D 0;
    }
    function Sys$StringBuilder$isEmpty() {
        /// <summary locid=3D"M:J#Sys.StringBuilder.isEmpty" />
        /// <returns type=3D"Boolean"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parts.length =3D=3D=3D 0) return true;
        return this.toString() =3D=3D=3D '';
    }
    function Sys$StringBuilder$toString(separator) {
        /// <summary locid=3D"M:J#Sys.StringBuilder.toString" />
        /// <param name=3D"separator" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "separator", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        separator =3D separator || '';
        var parts =3D this._parts;
        if (this._len !=3D=3D parts.length) {
            this._value =3D {};
            this._len =3D parts.length;
        }
        var val =3D this._value;
        if (typeof(val[separator]) =3D=3D=3D 'undefined') {
            if (separator !=3D=3D '') {
                for (var i =3D 0; i < parts.length;) {
                    if ((typeof(parts[i]) =3D=3D=3D 'undefined') || =
(parts[i] =3D=3D=3D '') || (parts[i] =3D=3D=3D null)) {
                        parts.splice(i, 1);
                    }
                    else {
                        i++;
                    }
                }
            }
            val[separator] =3D this._parts.join(separator);
        }
        return val[separator];
    }
Sys.StringBuilder.prototype =3D {
    append: Sys$StringBuilder$append,
    appendLine: Sys$StringBuilder$appendLine,
    clear: Sys$StringBuilder$clear,
    isEmpty: Sys$StringBuilder$isEmpty,
    toString: Sys$StringBuilder$toString
}
Sys.StringBuilder.registerClass('Sys.StringBuilder');
=20
if (!window.XMLHttpRequest) {
    window.XMLHttpRequest =3D function window$XMLHttpRequest() {
        var progIDs =3D [ 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP' ];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                return new ActiveXObject(progIDs[i]);
            }
            catch (ex) {
            }
        }
        return null;
    }
}
=20
Sys.Browser =3D {};
Sys.Browser.InternetExplorer =3D {};
Sys.Browser.Firefox =3D {};
Sys.Browser.Safari =3D {};
Sys.Browser.Opera =3D {};
Sys.Browser.agent =3D null;
Sys.Browser.hasDebuggerStatement =3D false;
Sys.Browser.name =3D navigator.appName;
Sys.Browser.version =3D parseFloat(navigator.appVersion);
Sys.Browser.documentMode =3D 0;
if (navigator.userAgent.indexOf(' MSIE ') > -1) {
    Sys.Browser.agent =3D Sys.Browser.InternetExplorer;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/MSIE =
(\d+\.\d+)/)[1]);
    if (Sys.Browser.version >=3D 8) {
        if (document.documentMode >=3D 7) {
            Sys.Browser.documentMode =3D document.documentMode;   =20
        }
    }
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' Firefox/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Firefox;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
Firefox\/(\d+\.\d+)/)[1]);
    Sys.Browser.name =3D 'Firefox';
    Sys.Browser.hasDebuggerStatement =3D true;
}
else if (navigator.userAgent.indexOf(' AppleWebKit/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Safari;
    Sys.Browser.version =3D parseFloat(navigator.userAgent.match(/ =
AppleWebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name =3D 'Safari';
}
else if (navigator.userAgent.indexOf('Opera/') > -1) {
    Sys.Browser.agent =3D Sys.Browser.Opera;
}
Type.registerNamespace('Sys.UI');
=20
Sys._Debug =3D function Sys$_Debug() {
    /// <summary locid=3D"M:J#Sys.Debug.#ctor" />
    /// <field name=3D"isDebug" type=3D"Boolean" =
locid=3D"F:J#Sys.Debug.isDebug"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
    function Sys$_Debug$_appendConsole(text) {
        if ((typeof(Debug) !=3D=3D 'undefined') && Debug.writeln) {
            Debug.writeln(text);
        }
        if (window.console && window.console.log) {
            window.console.log(text);
        }
        if (window.opera) {
            window.opera.postError(text);
        }
        if (window.debugService) {
            window.debugService.trace(text);
        }
    }
    function Sys$_Debug$_appendTrace(text) {
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value +=3D text + '\n';
        }
    }
    function Sys$_Debug$assert(condition, message, displayCaller) {
        /// <summary locid=3D"M:J#Sys.Debug.assert" />
        /// <param name=3D"condition" type=3D"Boolean"></param>
        /// <param name=3D"message" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"displayCaller" type=3D"Boolean" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "condition", type: Boolean},
            {name: "message", type: String, mayBeNull: true, optional: =
true},
            {name: "displayCaller", type: Boolean, optional: true}
        ]);
        if (e) throw e;
        if (!condition) {
            message =3D (displayCaller && this.assert.caller) ?
                String.format(Sys.Res.assertFailedCaller, message, =
this.assert.caller) :
                String.format(Sys.Res.assertFailed, message);
            if (confirm(String.format(Sys.Res.breakIntoDebugger, =
message))) {
                this.fail(message);
            }
        }
    }
    function Sys$_Debug$clearTrace() {
        /// <summary locid=3D"M:J#Sys.Debug.clearTrace" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var traceElement =3D document.getElementById('TraceConsole');
        if (traceElement && (traceElement.tagName.toUpperCase() =
=3D=3D=3D 'TEXTAREA')) {
            traceElement.value =3D '';
        }
    }
    function Sys$_Debug$fail(message) {
        /// <summary locid=3D"M:J#Sys.Debug.fail" />
        /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "message", type: String, mayBeNull: true}
        ]);
        if (e) throw e;
        this._appendConsole(message);
        if (Sys.Browser.hasDebuggerStatement) {
            eval('debugger');
        }
    }
    function Sys$_Debug$trace(text) {
        /// <summary locid=3D"M:J#Sys.Debug.trace" />
        /// <param name=3D"text"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "text"}
        ]);
        if (e) throw e;
        this._appendConsole(text);
        this._appendTrace(text);
    }
    function Sys$_Debug$traceDump(object, name) {
        /// <summary locid=3D"M:J#Sys.Debug.traceDump" />
        /// <param name=3D"object" mayBeNull=3D"true"></param>
        /// <param name=3D"name" type=3D"String" mayBeNull=3D"true" =
optional=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", mayBeNull: true},
            {name: "name", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        var text =3D this._traceDump(object, name, true);
    }
    function Sys$_Debug$_traceDump(object, name, recursive, =
indentationPadding, loopArray) {
        name =3D name? name : 'traceDump';
        indentationPadding =3D indentationPadding? indentationPadding : =
'';
        if (object =3D=3D=3D null) {
            this.trace(indentationPadding + name + ': null');
            return;
        }
        switch(typeof(object)) {
            case 'undefined':
                this.trace(indentationPadding + name + ': Undefined');
                break;
            case 'number': case 'string': case 'boolean':
                this.trace(indentationPadding + name + ': ' + object);
                break;
            default:
                if (Date.isInstanceOfType(object) || =
RegExp.isInstanceOfType(object)) {
                    this.trace(indentationPadding + name + ': ' + =
object.toString());
                    break;
                }
                if (!loopArray) {
                    loopArray =3D [];
                }
                else if (Array.contains(loopArray, object)) {
                    this.trace(indentationPadding + name + ': ...');
                    return;
                }
                Array.add(loopArray, object);
                if ((object =3D=3D window) || (object =3D=3D=3D =
document) ||
                    (window.HTMLElement && (object instanceof =
HTMLElement)) ||
                    (typeof(object.nodeName) =3D=3D=3D 'string')) {
                    var tag =3D object.tagName? object.tagName : =
'DomElement';
                    if (object.id) {
                        tag +=3D ' - ' + object.id;
                    }
                    this.trace(indentationPadding + name + ' {' +  tag + =
'}');
                }
                else {
                    var typeName =3D Object.getTypeName(object);
                    this.trace(indentationPadding + name + =
(typeof(typeName) =3D=3D=3D 'string' ? ' {' + typeName + '}' : ''));
                    if ((indentationPadding =3D=3D=3D '') || recursive) =
{
                        indentationPadding +=3D "    ";
                        var i, length, properties, p, v;
                        if (Array.isInstanceOfType(object)) {
                            length =3D object.length;
                            for (i =3D 0; i < length; i++) {
                                this._traceDump(object[i], '[' + i + =
']', recursive, indentationPadding, loopArray);
                            }
                        }
                        else {
                            for (p in object) {
                                v =3D object[p];
                                if (!Function.isInstanceOfType(v)) {
                                    this._traceDump(v, p, recursive, =
indentationPadding, loopArray);
                                }
                            }
                        }
                    }
                }
                Array.remove(loopArray, object);
        }
    }
Sys._Debug.prototype =3D {
    _appendConsole: Sys$_Debug$_appendConsole,
    _appendTrace: Sys$_Debug$_appendTrace,
    assert: Sys$_Debug$assert,
    clearTrace: Sys$_Debug$clearTrace,
    fail: Sys$_Debug$fail,
    trace: Sys$_Debug$trace,
    traceDump: Sys$_Debug$traceDump,
    _traceDump: Sys$_Debug$_traceDump
}
Sys._Debug.registerClass('Sys._Debug');
Sys.Debug =3D new Sys._Debug();
    Sys.Debug.isDebug =3D true;
=20
function Sys$Enum$parse(value, ignoreCase) {
    /// <summary locid=3D"M:J#Sys.Enum.parse" />
    /// <param name=3D"value" type=3D"String"></param>
    /// <param name=3D"ignoreCase" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", type: String},
        {name: "ignoreCase", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    var values, parsed, val;
    if (ignoreCase) {
        values =3D this.__lowerCaseValues;
        if (!values) {
            this.__lowerCaseValues =3D values =3D {};
            var prototype =3D this.prototype;
            for (var name in prototype) {
                values[name.toLowerCase()] =3D prototype[name];
            }
        }
    }
    else {
        values =3D this.prototype;
    }
    if (!this.__flags) {
        val =3D (ignoreCase ? value.toLowerCase() : value);
        parsed =3D values[val.trim()];
        if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, value, =
this.__typeName));
        return parsed;
    }
    else {
        var parts =3D (ignoreCase ? value.toLowerCase() : =
value).split(',');
        var v =3D 0;
        for (var i =3D parts.length - 1; i >=3D 0; i--) {
            var part =3D parts[i].trim();
            parsed =3D values[part];
            if (typeof(parsed) !=3D=3D 'number') throw =
Error.argument('value', String.format(Sys.Res.enumInvalidValue, =
value.split(',')[i].trim(), this.__typeName));
            v |=3D parsed;
        }
        return v;
    }
}
function Sys$Enum$toString(value) {
    /// <summary locid=3D"M:J#Sys.Enum.toString" />
    /// <param name=3D"value" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "value", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if ((typeof(value) =3D=3D=3D 'undefined') || (value =3D=3D=3D null)) =
return this.__string;
    if ((typeof(value) !=3D 'number') || ((value % 1) !=3D=3D 0)) throw =
Error.argumentType('value', Object.getType(value), this);
    var values =3D this.prototype;
    var i;
    if (!this.__flags || (value =3D=3D=3D 0)) {
        for (i in values) {
            if (values[i] =3D=3D=3D value) {
                return i;
            }
        }
    }
    else {
        var sorted =3D this.__sortedValues;
        if (!sorted) {
            sorted =3D [];
            for (i in values) {
                sorted[sorted.length] =3D {key: i, value: values[i]};
            }
            sorted.sort(function(a, b) {
                return a.value - b.value;
            });
            this.__sortedValues =3D sorted;
        }
        var parts =3D [];
        var v =3D value;
        for (i =3D sorted.length - 1; i >=3D 0; i--) {
            var kvp =3D sorted[i];
            var vali =3D kvp.value;
            if (vali =3D=3D=3D 0) continue;
            if ((vali & value) =3D=3D=3D vali) {
                parts[parts.length] =3D kvp.key;
                v -=3D vali;
                if (v =3D=3D=3D 0) break;
            }
        }
        if (parts.length && v =3D=3D=3D 0) return =
parts.reverse().join(', ');
    }
    throw Error.argumentOutOfRange('value', value, =
String.format(Sys.Res.enumInvalidValue, value, this.__typeName));
}
Type.prototype.registerEnum =3D function Type$registerEnum(name, flags) =
{
    /// <summary locid=3D"M:J#Sys.UI.LineType.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"flags" type=3D"Boolean" =
optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "flags", type: Boolean, optional: true}
    ]);
    if (e) throw e;
    if (!Type.__fullyQualifiedIdentifierRegExp.test(name)) throw =
Error.argument('name', Sys.Res.notATypeName);
    var parsedName;
    try {
        parsedName =3D eval(name);
    }
    catch(e) {
        throw Error.argument('name', Sys.Res.argumentTypeName);
    }
    if (parsedName !=3D=3D this) throw Error.argument('name', =
Sys.Res.badTypeName);
    if (Sys.__registeredTypes[name]) throw =
Error.invalidOperation(String.format(Sys.Res.typeRegisteredTwice, =
name));
    for (var i in this.prototype) {
        var val =3D this.prototype[i];
        if (!Type.__identifierRegExp.test(i)) throw =
Error.invalidOperation(String.format(Sys.Res.enumInvalidValueName, i));
        if (typeof(val) !=3D=3D 'number' || (val % 1) !=3D=3D 0) throw =
Error.invalidOperation(Sys.Res.enumValueNotInteger);
        if (typeof(this[i]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.enumReservedName, i));
    }
    Sys.__upperCaseTypes[name.toUpperCase()] =3D this;
    for (var i in this.prototype) {
        this[i] =3D this.prototype[i];
    }
    this.__typeName =3D name;
    this.parse =3D Sys$Enum$parse;
    this.__string =3D this.toString();
    this.toString =3D Sys$Enum$toString;
    this.__flags =3D flags;
    this.__enum =3D true;
    Sys.__registeredTypes[name] =3D true;
}
Type.isEnum =3D function Type$isEnum(type) {
    /// <summary locid=3D"M:J#Type.isEnum" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__enum;
}
Type.isFlags =3D function Type$isFlags(type) {
    /// <summary locid=3D"M:J#Type.isFlags" />
    /// <param name=3D"type" mayBeNull=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", mayBeNull: true}
    ]);
    if (e) throw e;
    if ((typeof(type) =3D=3D=3D 'undefined') || (type =3D=3D=3D null)) =
return false;
    return !!type.__flags;
}
=20
Sys.EventHandlerList =3D function Sys$EventHandlerList() {
    /// <summary locid=3D"M:J#Sys.EventHandlerList.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._list =3D {};
}
    function Sys$EventHandlerList$addHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.addHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        Array.add(this._getEvent(id, true), handler);
    }
    function Sys$EventHandlerList$removeHandler(id, handler) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.removeHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"handler" type=3D"Function"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "handler", type: Function}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt) return;
        Array.remove(evt, handler);
    }
    function Sys$EventHandlerList$getHandler(id) {
        /// <summary locid=3D"M:J#Sys.EventHandlerList.getHandler" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Function"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        var evt =3D this._getEvent(id);
        if (!evt || (evt.length =3D=3D=3D 0)) return null;
        evt =3D Array.clone(evt);
        return function(source, args) {
            for (var i =3D 0, l =3D evt.length; i < l; i++) {
                evt[i](source, args);
            }
        };
    }
    function Sys$EventHandlerList$_getEvent(id, create) {
        if (!this._list[id]) {
            if (!create) return null;
            this._list[id] =3D [];
        }
        return this._list[id];
    }
Sys.EventHandlerList.prototype =3D {
    addHandler: Sys$EventHandlerList$addHandler,
    removeHandler: Sys$EventHandlerList$removeHandler,
    getHandler: Sys$EventHandlerList$getHandler,
    _getEvent: Sys$EventHandlerList$_getEvent
}
Sys.EventHandlerList.registerClass('Sys.EventHandlerList');
=20
Sys.EventArgs =3D function Sys$EventArgs() {
    /// <summary locid=3D"M:J#Sys.EventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.EventArgs.registerClass('Sys.EventArgs');
Sys.EventArgs.Empty =3D new Sys.EventArgs();
=20
Sys.CancelEventArgs =3D function Sys$CancelEventArgs() {
    /// <summary locid=3D"M:J#Sys.CancelEventArgs.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.CancelEventArgs.initializeBase(this);
    this._cancel =3D false;
}
    function Sys$CancelEventArgs$get_cancel() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.CancelEventArgs.cancel"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._cancel;
    }
    function Sys$CancelEventArgs$set_cancel(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._cancel =3D value;
    }
Sys.CancelEventArgs.prototype =3D {
    get_cancel: Sys$CancelEventArgs$get_cancel,
    set_cancel: Sys$CancelEventArgs$set_cancel
}
Sys.CancelEventArgs.registerClass('Sys.CancelEventArgs', Sys.EventArgs);
=20
Sys.INotifyPropertyChange =3D function Sys$INotifyPropertyChange() {
    /// <summary locid=3D"M:J#Sys.INotifyPropertyChange.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyPropertyChange$add_propertyChanged(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyPropertyChange.propertyChanged" =
/>
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyPropertyChange$remove_propertyChanged(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyPropertyChange.prototype =3D {
    add_propertyChanged: Sys$INotifyPropertyChange$add_propertyChanged,
    remove_propertyChanged: =
Sys$INotifyPropertyChange$remove_propertyChanged
}
Sys.INotifyPropertyChange.registerInterface('Sys.INotifyPropertyChange');=

=20
Sys.PropertyChangedEventArgs =3D function =
Sys$PropertyChangedEventArgs(propertyName) {
    /// <summary locid=3D"M:J#Sys.PropertyChangedEventArgs.#ctor" />
    /// <param name=3D"propertyName" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "propertyName", type: String}
    ]);
    if (e) throw e;
    Sys.PropertyChangedEventArgs.initializeBase(this);
    this._propertyName =3D propertyName;
}
=20
    function Sys$PropertyChangedEventArgs$get_propertyName() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.PropertyChangedEventArgs.propertyName"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._propertyName;
    }
Sys.PropertyChangedEventArgs.prototype =3D {
    get_propertyName: Sys$PropertyChangedEventArgs$get_propertyName
}
Sys.PropertyChangedEventArgs.registerClass('Sys.PropertyChangedEventArgs'=
, Sys.EventArgs);
=20
Sys.INotifyDisposing =3D function Sys$INotifyDisposing() {
    /// <summary locid=3D"M:J#Sys.INotifyDisposing.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
    function Sys$INotifyDisposing$add_disposing(handler) {
    /// <summary locid=3D"E:J#Sys.INotifyDisposing.disposing" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$INotifyDisposing$remove_disposing(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        throw Error.notImplemented();
    }
Sys.INotifyDisposing.prototype =3D {
    add_disposing: Sys$INotifyDisposing$add_disposing,
    remove_disposing: Sys$INotifyDisposing$remove_disposing
}
Sys.INotifyDisposing.registerInterface("Sys.INotifyDisposing");
=20
Sys.Component =3D function Sys$Component() {
    /// <summary locid=3D"M:J#Sys.Component.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    if (Sys.Application) Sys.Application.registerDisposableObject(this);
}
    function Sys$Component$get_events() {
        /// <value type=3D"Sys.EventHandlerList" =
locid=3D"P:J#Sys.Component.events"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Component$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Component.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._id;
    }
    function Sys$Component$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (this._idSet) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdTwice);
        this._idSet =3D true;
        var oldId =3D this.get_id();
        if (oldId && Sys.Application.findComponent(oldId)) throw =
Error.invalidOperation(Sys.Res.componentCantSetIdAfterAddedToApp);
        this._id =3D value;
    }
    function Sys$Component$get_isInitialized() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isInitialized"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._initialized;
    }
    function Sys$Component$get_isUpdating() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Component.isUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._updating;
    }
    function Sys$Component$add_disposing(handler) {
        /// <summary locid=3D"E:J#Sys.Component.disposing" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("disposing", handler);
    }
    function Sys$Component$remove_disposing(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("disposing", handler);
    }
    function Sys$Component$add_propertyChanged(handler) {
        /// <summary locid=3D"E:J#Sys.Component.propertyChanged" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("propertyChanged", handler);
    }
    function Sys$Component$remove_propertyChanged(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("propertyChanged", handler);
    }
    function Sys$Component$beginUpdate() {
        this._updating =3D true;
    }
    function Sys$Component$dispose() {
        if (this._events) {
            var handler =3D this._events.getHandler("disposing");
            if (handler) {
                handler(this, Sys.EventArgs.Empty);
            }
        }
        delete this._events;
        Sys.Application.unregisterDisposableObject(this);
        Sys.Application.removeComponent(this);
    }
    function Sys$Component$endUpdate() {
        this._updating =3D false;
        if (!this._initialized) this.initialize();
        this.updated();
    }
    function Sys$Component$initialize() {
        this._initialized =3D true;
    }
    function Sys$Component$raisePropertyChanged(propertyName) {
        /// <summary locid=3D"M:J#Sys.Component.raisePropertyChanged" />
        /// <param name=3D"propertyName" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyName", type: String}
        ]);
        if (e) throw e;
        if (!this._events) return;
        var handler =3D this._events.getHandler("propertyChanged");
        if (handler) {
            handler(this, new =
Sys.PropertyChangedEventArgs(propertyName));
        }
    }
    function Sys$Component$updated() {
    }
Sys.Component.prototype =3D {
    _id: null,
    _idSet: false,
    _initialized: false,
    _updating: false,
    get_events: Sys$Component$get_events,
    get_id: Sys$Component$get_id,
    set_id: Sys$Component$set_id,
    get_isInitialized: Sys$Component$get_isInitialized,
    get_isUpdating: Sys$Component$get_isUpdating,
    add_disposing: Sys$Component$add_disposing,
    remove_disposing: Sys$Component$remove_disposing,
    add_propertyChanged: Sys$Component$add_propertyChanged,
    remove_propertyChanged: Sys$Component$remove_propertyChanged,
    beginUpdate: Sys$Component$beginUpdate,
    dispose: Sys$Component$dispose,
    endUpdate: Sys$Component$endUpdate,
    initialize: Sys$Component$initialize,
    raisePropertyChanged: Sys$Component$raisePropertyChanged,
    updated: Sys$Component$updated
}
Sys.Component.registerClass('Sys.Component', null, Sys.IDisposable, =
Sys.INotifyPropertyChange, Sys.INotifyDisposing);
function Sys$Component$_setProperties(target, properties) {
    /// <summary locid=3D"M:J#Sys.Component._setProperties" />
    /// <param name=3D"target"></param>
    /// <param name=3D"properties"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "target"},
        {name: "properties"}
    ]);
    if (e) throw e;
    var current;
    var targetType =3D Object.getType(target);
    var isObject =3D (targetType =3D=3D=3D Object) || (targetType =
=3D=3D=3D Sys.UI.DomElement);
    var isComponent =3D Sys.Component.isInstanceOfType(target) && =
!target.get_isUpdating();
    if (isComponent) target.beginUpdate();
    for (var name in properties) {
        var val =3D properties[name];
        var getter =3D isObject ? null : target["get_" + name];
        if (isObject || typeof(getter) !=3D=3D 'function') {
            var targetVal =3D target[name];
            if (!isObject && typeof(targetVal) =3D=3D=3D 'undefined') =
throw Error.invalidOperation(String.format(Sys.Res.propertyUndefined, =
name));
            if (!val || (typeof(val) !=3D=3D 'object') || (isObject && =
!targetVal)) {
                target[name] =3D val;
            }
            else {
                Sys$Component$_setProperties(targetVal, val);
            }
        }
        else {
            var setter =3D target["set_" + name];
            if (typeof(setter) =3D=3D=3D 'function') {
                setter.apply(target, [val]);
            }
            else if (val instanceof Array) {
                current =3D getter.apply(target);
                if (!(current instanceof Array)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotAnArray, name));
                for (var i =3D 0, j =3D current.length, l=3D val.length; =
i < l; i++, j++) {
                    current[j] =3D val[i];
                }
            }
            else if ((typeof(val) =3D=3D=3D 'object') && =
(Object.getType(val) =3D=3D=3D Object)) {
                current =3D getter.apply(target);
                if ((typeof(current) =3D=3D=3D 'undefined') || (current =
=3D=3D=3D null)) throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNullOrUndefined, =
name));
                Sys$Component$_setProperties(current, val);
            }
            else {
                throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
            }
        }
    }
    if (isComponent) target.endUpdate();
}
function Sys$Component$_setReferences(component, references) {
    for (var name in references) {
        var setter =3D component["set_" + name];
        var reference =3D $find(references[name]);
        if (typeof(setter) !=3D=3D 'function') throw new =
Error.invalidOperation(String.format(Sys.Res.propertyNotWritable, =
name));
        if (!reference) throw =
Error.invalidOperation(String.format(Sys.Res.referenceNotFound, =
references[name]));
        setter.apply(component, [reference]);
    }
}
var $create =3D Sys.Component.create =3D function =
Sys$Component$create(type, properties, events, references, element) {
    /// <summary locid=3D"M:J#Sys.Component.create" />
    /// <param name=3D"type" type=3D"Type"></param>
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"events" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"references" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns type=3D"Sys.UI.Component"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "type", type: Type},
        {name: "properties", mayBeNull: true, optional: true},
        {name: "events", mayBeNull: true, optional: true},
        {name: "references", mayBeNull: true, optional: true},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!type.inheritsFrom(Sys.Component)) {
        throw Error.argument('type', =
String.format(Sys.Res.createNotComponent, type.getName()));
    }
    if (type.inheritsFrom(Sys.UI.Behavior) || =
type.inheritsFrom(Sys.UI.Control)) {
        if (!element) throw Error.argument('element', =
Sys.Res.createNoDom);
    }
    else if (element) throw Error.argument('element', =
Sys.Res.createComponentOnDom);
    var component =3D (element ? new type(element): new type());
    var app =3D Sys.Application;
    var creatingComponents =3D app.get_isCreatingComponents();
    component.beginUpdate();
    if (properties) {
        Sys$Component$_setProperties(component, properties);
    }
    if (events) {
        for (var name in events) {
            if (!(component["add_" + name] instanceof Function)) throw =
new Error.invalidOperation(String.format(Sys.Res.undefinedEvent, name));
            if (!(events[name] instanceof Function)) throw new =
Error.invalidOperation(Sys.Res.eventHandlerNotFunction);
            component["add_" + name](events[name]);
        }
    }
    if (component.get_id()) {
        app.addComponent(component);
    }
    if (creatingComponents) {
        app._createdComponents[app._createdComponents.length] =3D =
component;
        if (references) {
            app._addComponentToSecondPass(component, references);
        }
        else {
            component.endUpdate();
        }
    }
    else {
        if (references) {
            Sys$Component$_setReferences(component, references);
        }
        component.endUpdate();
    }
    return component;
}
=20
Sys.UI.MouseButton =3D function Sys$UI$MouseButton() {
    /// <summary locid=3D"M:J#Sys.UI.MouseButton.#ctor" />
    /// <field name=3D"leftButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.leftButton"></field>
    /// <field name=3D"middleButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.middleButton"></field>
    /// <field name=3D"rightButton" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.MouseButton.rightButton"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.MouseButton.prototype =3D {
    leftButton: 0,
    middleButton: 1,
    rightButton: 2
}
Sys.UI.MouseButton.registerEnum("Sys.UI.MouseButton");
=20
Sys.UI.Key =3D function Sys$UI$Key() {
    /// <summary locid=3D"M:J#Sys.UI.Key.#ctor" />
    /// <field name=3D"backspace" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.backspace"></field>
    /// <field name=3D"tab" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.tab"></field>
    /// <field name=3D"enter" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.enter"></field>
    /// <field name=3D"esc" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.esc"></field>
    /// <field name=3D"space" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.space"></field>
    /// <field name=3D"pageUp" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageUp"></field>
    /// <field name=3D"pageDown" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.pageDown"></field>
    /// <field name=3D"end" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.end"></field>
    /// <field name=3D"home" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.home"></field>
    /// <field name=3D"left" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.left"></field>
    /// <field name=3D"up" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.up"></field>
    /// <field name=3D"right" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.right"></field>
    /// <field name=3D"down" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.down"></field>
    /// <field name=3D"del" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.Key.del"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.Key.prototype =3D {
    backspace: 8,
    tab: 9,
    enter: 13,
    esc: 27,
    space: 32,
    pageUp: 33,
    pageDown: 34,
    end: 35,
    home: 36,
    left: 37,
    up: 38,
    right: 39,
    down: 40,
    del: 127
}
Sys.UI.Key.registerEnum("Sys.UI.Key");
=20
Sys.UI.Point =3D function Sys$UI$Point(x, y) {
    /// <summary locid=3D"M:J#Sys.UI.Point.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Point.y"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
}
Sys.UI.Point.registerClass('Sys.UI.Point');
=20
Sys.UI.Bounds =3D function Sys$UI$Bounds(x, y, width, height) {
    /// <summary locid=3D"M:J#Sys.UI.Bounds.#ctor" />
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"height" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"width" type=3D"Number" integer=3D"true"></param>
    /// <field name=3D"x" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.x"></field>
    /// <field name=3D"y" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.y"></field>
    /// <field name=3D"height" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.height"></field>
    /// <field name=3D"width" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.Bounds.width"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true},
        {name: "height", type: Number, integer: true},
        {name: "width", type: Number, integer: true}
    ]);
    if (e) throw e;
    this.x =3D x;
    this.y =3D y;
    this.height =3D height;
    this.width =3D width;
}
Sys.UI.Bounds.registerClass('Sys.UI.Bounds');
=20
Sys.UI.DomEvent =3D function Sys$UI$DomEvent(eventObject) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.#ctor" />
    /// <param name=3D"eventObject"></param>
    /// <field name=3D"altKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.altKey"></field>
    /// <field name=3D"button" type=3D"Sys.UI.MouseButton" =
locid=3D"F:J#Sys.UI.DomEvent.button"></field>
    /// <field name=3D"charCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.charCode"></field>
    /// <field name=3D"clientX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientX"></field>
    /// <field name=3D"clientY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.clientY"></field>
    /// <field name=3D"ctrlKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.ctrlKey"></field>
    /// <field name=3D"keyCode" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.keyCode"></field>
    /// <field name=3D"offsetX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetX"></field>
    /// <field name=3D"offsetY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.offsetY"></field>
    /// <field name=3D"screenX" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenX"></field>
    /// <field name=3D"screenY" type=3D"Number" integer=3D"true" =
locid=3D"F:J#Sys.UI.DomEvent.screenY"></field>
    /// <field name=3D"shiftKey" type=3D"Boolean" =
locid=3D"F:J#Sys.UI.DomEvent.shiftKey"></field>
    /// <field name=3D"target" =
locid=3D"F:J#Sys.UI.DomEvent.target"></field>
    /// <field name=3D"type" type=3D"String" =
locid=3D"F:J#Sys.UI.DomEvent.type"></field>
    var e =3D Function._validateParams(arguments, [
        {name: "eventObject"}
    ]);
    if (e) throw e;
    var e =3D eventObject;
    var etype =3D this.type =3D e.type.toLowerCase();
    this.rawEvent =3D e;
    this.altKey =3D e.altKey;
    if (typeof(e.button) !=3D=3D 'undefined') {
        this.button =3D (typeof(e.which) !=3D=3D 'undefined') ? e.button =
:
            (e.button =3D=3D=3D 4) ? Sys.UI.MouseButton.middleButton :
            (e.button =3D=3D=3D 2) ? Sys.UI.MouseButton.rightButton :
            Sys.UI.MouseButton.leftButton;
    }
    if (etype =3D=3D=3D 'keypress') {
        this.charCode =3D e.charCode || e.keyCode;
    }
    else if (e.keyCode && (e.keyCode =3D=3D=3D 46)) {
        this.keyCode =3D 127;
    }
    else {
        this.keyCode =3D e.keyCode;
    }
    this.clientX =3D e.clientX;
    this.clientY =3D e.clientY;
    this.ctrlKey =3D e.ctrlKey;
    this.target =3D e.target ? e.target : e.srcElement;
    if (!etype.startsWith('key')) {
        if ((typeof(e.offsetX) !=3D=3D 'undefined') && =
(typeof(e.offsetY) !=3D=3D 'undefined')) {
            this.offsetX =3D e.offsetX;
            this.offsetY =3D e.offsetY;
        }
        else if (this.target && (this.target.nodeType !=3D=3D 3) && =
(typeof(e.clientX) =3D=3D=3D 'number')) {
            var loc =3D Sys.UI.DomElement.getLocation(this.target);
            var w =3D Sys.UI.DomElement._getWindow(this.target);
            this.offsetX =3D (w.pageXOffset || 0) + e.clientX - loc.x;
            this.offsetY =3D (w.pageYOffset || 0) + e.clientY - loc.y;
        }
    }
    this.screenX =3D e.screenX;
    this.screenY =3D e.screenY;
    this.shiftKey =3D e.shiftKey;
}
    function Sys$UI$DomEvent$preventDefault() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.preventDefault" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.preventDefault) {
            this.rawEvent.preventDefault();
        }
        else if (window.event) {
            this.rawEvent.returnValue =3D false;
        }
    }
    function Sys$UI$DomEvent$stopPropagation() {
        /// <summary locid=3D"M:J#Sys.UI.DomEvent.stopPropagation" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this.rawEvent.stopPropagation) {
            this.rawEvent.stopPropagation();
        }
        else if (window.event) {
            this.rawEvent.cancelBubble =3D true;
        }
    }
Sys.UI.DomEvent.prototype =3D {
    preventDefault: Sys$UI$DomEvent$preventDefault,
    stopPropagation: Sys$UI$DomEvent$stopPropagation
}
Sys.UI.DomEvent.registerClass('Sys.UI.DomEvent');
var $addHandler =3D Sys.UI.DomEvent.addHandler =3D function =
Sys$UI$DomEvent$addHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (eventName =3D=3D=3D "error") throw =
Error.invalidOperation(Sys.Res.addHandlerCantBeUsedForError);
    if (!element._events) {
        element._events =3D {};
    }
    var eventCache =3D element._events[eventName];
    if (!eventCache) {
        element._events[eventName] =3D eventCache =3D [];
    }
    var browserHandler;
    if (element.addEventListener) {
        browserHandler =3D function(e) {
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.addEventListener(eventName, browserHandler, false);
    }
    else if (element.attachEvent) {
        browserHandler =3D function() {
            var e =3D {};
            try {e =3D Sys.UI.DomElement._getWindow(element).event} =
catch(ex) {}
            return handler.call(element, new Sys.UI.DomEvent(e));
        }
        element.attachEvent('on' + eventName, browserHandler);
    }
    eventCache[eventCache.length] =3D {handler: handler, browserHandler: =
browserHandler};
}
var $addHandlers =3D Sys.UI.DomEvent.addHandlers =3D function =
Sys$UI$DomEvent$addHandlers(element, events, handlerOwner) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.addHandlers" />
    /// <param name=3D"element"></param>
    /// <param name=3D"events" type=3D"Object"></param>
    /// <param name=3D"handlerOwner" optional=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "events", type: Object},
        {name: "handlerOwner", optional: true}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    for (var name in events) {
        var handler =3D events[name];
        if (typeof(handler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.cantAddNonFunctionhandler);
        if (handlerOwner) {
            handler =3D Function.createDelegate(handlerOwner, handler);
        }
        $addHandler(element, name, handler);
    }
}
var $clearHandlers =3D Sys.UI.DomEvent.clearHandlers =3D function =
Sys$UI$DomEvent$clearHandlers(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.clearHandlers" />
    /// <param name=3D"element"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    if (element._events) {
        var cache =3D element._events;
        for (var name in cache) {
            var handlers =3D cache[name];
            for (var i =3D handlers.length - 1; i >=3D 0; i--) {
                $removeHandler(element, name, handlers[i].handler);
            }
        }
        element._events =3D null;
    }
}
var $removeHandler =3D Sys.UI.DomEvent.removeHandler =3D function =
Sys$UI$DomEvent$removeHandler(element, eventName, handler) {
    /// <summary locid=3D"M:J#Sys.UI.DomEvent.removeHandler" />
    /// <param name=3D"element"></param>
    /// <param name=3D"eventName" type=3D"String"></param>
    /// <param name=3D"handler" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element"},
        {name: "eventName", type: String},
        {name: "handler", type: Function}
    ]);
    if (e) throw e;
    Sys.UI.DomEvent._ensureDomNode(element);
    var browserHandler =3D null;
    if ((typeof(element._events) !=3D=3D 'object') || (element._events =
=3D=3D null)) throw Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    var cache =3D element._events[eventName];
    if (!(cache instanceof Array)) throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    for (var i =3D 0, l =3D cache.length; i < l; i++) {
        if (cache[i].handler =3D=3D=3D handler) {
            browserHandler =3D cache[i].browserHandler;
            break;
        }
    }
    if (typeof(browserHandler) !=3D=3D 'function') throw =
Error.invalidOperation(Sys.Res.eventHandlerInvalid);
    if (element.removeEventListener) {
        element.removeEventListener(eventName, browserHandler, false);
    }
    else if (element.detachEvent) {
        element.detachEvent('on' + eventName, browserHandler);
    }
    cache.splice(i, 1);
}
Sys.UI.DomEvent._ensureDomNode =3D function =
Sys$UI$DomEvent$_ensureDomNode(element) {
    if (element.tagName && (element.tagName.toUpperCase() =3D=3D=3D =
"SCRIPT")) return;
   =20
    var doc =3D element.ownerDocument || element.document || element;
    if ((typeof(element.document) !=3D=3D 'object') && (element !=3D =
doc) && (typeof(element.nodeType) !=3D=3D 'number')) {
        throw Error.argument("element", Sys.Res.argumentDomNode);
    }
}
=20
Sys.UI.DomElement =3D function Sys$UI$DomElement() {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.DomElement.registerClass('Sys.UI.DomElement');
Sys.UI.DomElement.addCssClass =3D function =
Sys$UI$DomElement$addCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.addCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (!Sys.UI.DomElement.containsCssClass(element, className)) {
        if (element.className =3D=3D=3D '') {
            element.className =3D className;
        }
        else {
            element.className +=3D ' ' + className;
        }
    }
}
Sys.UI.DomElement.containsCssClass =3D function =
Sys$UI$DomElement$containsCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.containsCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    return Array.contains(element.className.split(' '), className);
}
Sys.UI.DomElement.getBounds =3D function =
Sys$UI$DomElement$getBounds(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getBounds" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.Bounds"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var offset =3D Sys.UI.DomElement.getLocation(element);
    return new Sys.UI.Bounds(offset.x, offset.y, element.offsetWidth || =
0, element.offsetHeight || 0);
}
var $get =3D Sys.UI.DomElement.getElementById =3D function =
Sys$UI$DomElement$getElementById(id, element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getElementById" />
    /// <param name=3D"id" type=3D"String"></param>
    /// <param name=3D"element" domElement=3D"true" optional=3D"true" =
mayBeNull=3D"true"></param>
    /// <returns domElement=3D"true" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "id", type: String},
        {name: "element", mayBeNull: true, domElement: true, optional: =
true}
    ]);
    if (e) throw e;
    if (!element) return document.getElementById(id);
    if (element.getElementById) return element.getElementById(id);
    var nodeQueue =3D [];
    var childNodes =3D element.childNodes;
    for (var i =3D 0; i < childNodes.length; i++) {
        var node =3D childNodes[i];
        if (node.nodeType =3D=3D 1) {
            nodeQueue[nodeQueue.length] =3D node;
        }
    }
    while (nodeQueue.length) {
        node =3D nodeQueue.shift();
        if (node.id =3D=3D id) {
            return node;
        }
        childNodes =3D node.childNodes;
        for (i =3D 0; i < childNodes.length; i++) {
            node =3D childNodes[i];
            if (node.nodeType =3D=3D 1) {
                nodeQueue[nodeQueue.length] =3D node;
            }
        }
    }
    return null;
}
switch(Sys.Browser.agent) {
    case Sys.Browser.InternetExplorer:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if (element.self || element.nodeType =3D=3D=3D 9) return new =
Sys.UI.Point(0,0);
            var clientRect =3D element.getBoundingClientRect();
            if (!clientRect) {
                return new Sys.UI.Point(0,0);
            }
            var documentElement =3D =
element.ownerDocument.documentElement;
            var offsetX =3D clientRect.left - 2 + =
documentElement.scrollLeft,
                offsetY =3D clientRect.top - 2 + =
documentElement.scrollTop;
           =20
            try {
                var f =3D =
element.ownerDocument.parentWindow.frameElement || null;
                if (f) {
                    var offset =3D (f.frameBorder =3D=3D=3D "0" || =
f.frameBorder =3D=3D=3D "no") ? 2 : 0;
                    offsetX +=3D offset;
                    offsetY +=3D offset;
                }
            }
            catch(ex) {
            }   =20
           =20
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Safari:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((parent.offsetLeft || parent.offsetTop) &&
                    ((tagName !=3D=3D "BODY") || (!previousStyle || =
previousStyle.position !=3D=3D "absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                    }
                    currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                    var parentPosition =3D currentStyle ? =
currentStyle.position : null;
                    if (parentPosition && (parentPosition =3D=3D=3D =
"absolute")) break;
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    case Sys.Browser.Opera:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName;
                offsetX +=3D parent.offsetLeft || 0;
                offsetY +=3D parent.offsetTop || 0;
            }
            var elementPosition =3D element.style.position;
            var elementPositioned =3D elementPosition && =
(elementPosition !=3D=3D "static");
            for (var parent =3D element.parentNode; parent; parent =3D =
parent.parentNode) {
                tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D "HTML") =
&& (parent.scrollLeft || parent.scrollTop) &&
                    ((elementPositioned &&
                    ((parent.style.overflow =3D=3D=3D "scroll") || =
(parent.style.overflow =3D=3D=3D "auto"))))) {
                    offsetX -=3D (parent.scrollLeft || 0);
                    offsetY -=3D (parent.scrollTop || 0);
                }
                var parentPosition =3D (parent && parent.style) ? =
parent.style.position : null;
                elementPositioned =3D elementPositioned || =
(parentPosition && (parentPosition !=3D=3D "static"));
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
    default:
        Sys.UI.DomElement.getLocation =3D function =
Sys$UI$DomElement$getLocation(element) {
            /// <summary locid=3D"M:J#Sys.UI.DomElement.getLocation" />
            /// <param name=3D"element" domElement=3D"true"></param>
            /// <returns type=3D"Sys.UI.Point"></returns>
            var e =3D Function._validateParams(arguments, [
                {name: "element", domElement: true}
            ]);
            if (e) throw e;
            if ((element.window && (element.window =3D=3D=3D element)) =
|| element.nodeType =3D=3D=3D 9) return new Sys.UI.Point(0,0);
            var offsetX =3D 0;
            var offsetY =3D 0;
            var previous =3D null;
            var previousStyle =3D null;
            var currentStyle =3D null;
            for (var parent =3D element; parent; previous =3D parent, =
previousStyle =3D currentStyle, parent =3D parent.offsetParent) {
                var tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                if ((parent.offsetLeft || parent.offsetTop) &&
                    !((tagName =3D=3D=3D "BODY") &&
                    (!previousStyle || previousStyle.position !=3D=3D =
"absolute"))) {
                    offsetX +=3D parent.offsetLeft;
                    offsetY +=3D parent.offsetTop;
                }
                if (previous !=3D=3D null && currentStyle) {
                    if ((tagName !=3D=3D "TABLE") && (tagName !=3D=3D =
"TD") && (tagName !=3D=3D "HTML")) {
                        offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                        offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                    }
                    if (tagName =3D=3D=3D "TABLE" &&
                        (currentStyle.position =3D=3D=3D "relative" || =
currentStyle.position =3D=3D=3D "absolute")) {
                        offsetX +=3D parseInt(currentStyle.marginLeft) =
|| 0;
                        offsetY +=3D parseInt(currentStyle.marginTop) || =
0;
                    }
                }
            }
            currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(element);
            var elementPosition =3D currentStyle ? currentStyle.position =
: null;
            if (!elementPosition || (elementPosition !=3D=3D =
"absolute")) {
                for (var parent =3D element.parentNode; parent; parent =
=3D parent.parentNode) {
                    tagName =3D parent.tagName ? =
parent.tagName.toUpperCase() : null;
                    if ((tagName !=3D=3D "BODY") && (tagName !=3D=3D =
"HTML") && (parent.scrollLeft || parent.scrollTop)) {
                        offsetX -=3D (parent.scrollLeft || 0);
                        offsetY -=3D (parent.scrollTop || 0);
                        currentStyle =3D =
Sys.UI.DomElement._getCurrentStyle(parent);
                        if (currentStyle) {
                            offsetX +=3D =
parseInt(currentStyle.borderLeftWidth) || 0;
                            offsetY +=3D =
parseInt(currentStyle.borderTopWidth) || 0;
                        }
                    }
                }
            }
            return new Sys.UI.Point(offsetX, offsetY);
        }
        break;
}
Sys.UI.DomElement.removeCssClass =3D function =
Sys$UI$DomElement$removeCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.removeCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    var currentClassName =3D ' ' + element.className + ' ';
    var index =3D currentClassName.indexOf(' ' + className + ' ');
    if (index >=3D 0) {
        element.className =3D (currentClassName.substr(0, index) + ' ' +
            currentClassName.substring(index + className.length + 1, =
currentClassName.length)).trim();
    }
}
Sys.UI.DomElement.setLocation =3D function =
Sys$UI$DomElement$setLocation(element, x, y) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setLocation" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"x" type=3D"Number" integer=3D"true"></param>
    /// <param name=3D"y" type=3D"Number" integer=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "x", type: Number, integer: true},
        {name: "y", type: Number, integer: true}
    ]);
    if (e) throw e;
    var style =3D element.style;
    style.position =3D 'absolute';
    style.left =3D x + "px";
    style.top =3D y + "px";
}
Sys.UI.DomElement.toggleCssClass =3D function =
Sys$UI$DomElement$toggleCssClass(element, className) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.toggleCssClass" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"className" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "className", type: String}
    ]);
    if (e) throw e;
    if (Sys.UI.DomElement.containsCssClass(element, className)) {
        Sys.UI.DomElement.removeCssClass(element, className);
    }
    else {
        Sys.UI.DomElement.addCssClass(element, className);
    }
}
Sys.UI.DomElement.getVisibilityMode =3D function =
Sys$UI$DomElement$getVisibilityMode(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Sys.UI.VisibilityMode"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    return (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) ?
        Sys.UI.VisibilityMode.hide :
        Sys.UI.VisibilityMode.collapse;
}
Sys.UI.DomElement.setVisibilityMode =3D function =
Sys$UI$DomElement$setVisibilityMode(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisibilityMode" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Sys.UI.VisibilityMode"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Sys.UI.VisibilityMode}
    ]);
    if (e) throw e;
    Sys.UI.DomElement._ensureOldDisplayMode(element);
    if (element._visibilityMode !=3D=3D value) {
        element._visibilityMode =3D value;
        if (Sys.UI.DomElement.getVisible(element) =3D=3D=3D false) {
            if (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide) {
                element.style.display =3D element._oldDisplayMode;
            }
            else {
                element.style.display =3D 'none';
            }
        }
        element._visibilityMode =3D value;
    }
}
Sys.UI.DomElement.getVisible =3D function =
Sys$UI$DomElement$getVisible(element) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.getVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Boolean"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
    if (!style) return true;
    return (style.visibility !=3D=3D 'hidden') && (style.display !=3D=3D =
'none');
}
Sys.UI.DomElement.setVisible =3D function =
Sys$UI$DomElement$setVisible(element, value) {
    /// <summary locid=3D"M:J#Sys.UI.DomElement.setVisible" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"value" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "value", type: Boolean}
    ]);
    if (e) throw e;
    if (value !=3D=3D Sys.UI.DomElement.getVisible(element)) {
        Sys.UI.DomElement._ensureOldDisplayMode(element);
        element.style.visibility =3D value ? 'visible' : 'hidden';
        if (value || (element._visibilityMode =3D=3D=3D =
Sys.UI.VisibilityMode.hide)) {
            element.style.display =3D element._oldDisplayMode;
        }
        else {
            element.style.display =3D 'none';
        }
    }
}
Sys.UI.DomElement._ensureOldDisplayMode =3D function =
Sys$UI$DomElement$_ensureOldDisplayMode(element) {
    if (!element._oldDisplayMode) {
        var style =3D element.currentStyle || =
Sys.UI.DomElement._getCurrentStyle(element);
        element._oldDisplayMode =3D style ? style.display : null;
        if (!element._oldDisplayMode || element._oldDisplayMode =
=3D=3D=3D 'none') {
            switch(element.tagName.toUpperCase()) {
                case 'DIV': case 'P': case 'ADDRESS': case 'BLOCKQUOTE': =
case 'BODY': case 'COL':
                case 'COLGROUP': case 'DD': case 'DL': case 'DT': case =
'FIELDSET': case 'FORM':
                case 'H1': case 'H2': case 'H3': case 'H4': case 'H5': =
case 'H6': case 'HR':
                case 'IFRAME': case 'LEGEND': case 'OL': case 'PRE': =
case 'TABLE': case 'TD':
                case 'TH': case 'TR': case 'UL':
                    element._oldDisplayMode =3D 'block';
                    break;
                case 'LI':
                    element._oldDisplayMode =3D 'list-item';
                    break;
                default:
                    element._oldDisplayMode =3D 'inline';
            }
        }
    }
}
Sys.UI.DomElement._getWindow =3D function =
Sys$UI$DomElement$_getWindow(element) {
    var doc =3D element.ownerDocument || element.document || element;
    return doc.defaultView || doc.parentWindow;
}
Sys.UI.DomElement._getCurrentStyle =3D function =
Sys$UI$DomElement$_getCurrentStyle(element) {
    if (element.nodeType =3D=3D=3D 3) return null;
    var w =3D Sys.UI.DomElement._getWindow(element);
    if (element.documentElement) element =3D element.documentElement;
    var computedStyle =3D (w && (element !=3D=3D w) && =
w.getComputedStyle) ?
        w.getComputedStyle(element, null) :
        element.currentStyle || element.style;
    if (!computedStyle && (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) && element.style) {
        var oldDisplay =3D element.style.display;
        var oldPosition =3D element.style.position;
        element.style.position =3D 'absolute';
        element.style.display =3D 'block';
        var style =3D w.getComputedStyle(element, null);
        element.style.display =3D oldDisplay;
        element.style.position =3D oldPosition;
        computedStyle =3D {};
        for (var n in style) {
            computedStyle[n] =3D style[n];
        }
        computedStyle.display =3D 'none';
    }
    return computedStyle;
}
=20
Sys.IContainer =3D function Sys$IContainer() {
    throw Error.notImplemented();
}
    function Sys$IContainer$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.IContainer.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$findComponent(id) {
        /// <summary locid=3D"M:J#Sys.IContainer.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <returns type=3D"Sys.Component"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$IContainer$getComponents() {
        /// <summary locid=3D"M:J#Sys.IContainer.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.IContainer.prototype =3D {
    addComponent: Sys$IContainer$addComponent,
    removeComponent: Sys$IContainer$removeComponent,
    findComponent: Sys$IContainer$findComponent,
    getComponents: Sys$IContainer$getComponents
}
Sys.IContainer.registerInterface("Sys.IContainer");
=20
Sys._ScriptLoader =3D function Sys$_ScriptLoader() {
    this._scriptsToLoad =3D null;
    this._sessions =3D [];
    this._scriptLoadedDelegate =3D Function.createDelegate(this, =
this._scriptLoadedHandler);
}
    function Sys$_ScriptLoader$dispose() {
        this._stopSession();
        this._loading =3D false;
        if(this._events) {
            delete this._events;
        }
        this._sessions =3D null;
        this._currentSession =3D null;
        this._scriptLoadedDelegate =3D null;       =20
    }
    function Sys$_ScriptLoader$loadScripts(scriptTimeout, =
allScriptsLoadedCallback, scriptLoadFailedCallback, =
scriptLoadTimeoutCallback) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.loadScripts" />
        /// <param name=3D"scriptTimeout" type=3D"Number" =
integer=3D"true"></param>
        /// <param name=3D"allScriptsLoadedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadFailedCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        /// <param name=3D"scriptLoadTimeoutCallback" type=3D"Function" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptTimeout", type: Number, integer: true},
            {name: "allScriptsLoadedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadFailedCallback", type: Function, =
mayBeNull: true},
            {name: "scriptLoadTimeoutCallback", type: Function, =
mayBeNull: true}
        ]);
        if (e) throw e;
        var session =3D {
            allScriptsLoadedCallback: allScriptsLoadedCallback,
            scriptLoadFailedCallback: scriptLoadFailedCallback,
            scriptLoadTimeoutCallback: scriptLoadTimeoutCallback,
            scriptsToLoad: this._scriptsToLoad,
            scriptTimeout: scriptTimeout };
        this._scriptsToLoad =3D null;
        this._sessions[this._sessions.length] =3D session;
       =20
        if (!this._loading) {
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.notifyScriptLoaded" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
       =20
        if(!this._loading) {
            return;
        }
        this._currentTask._notified++;
       =20
        if(Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) {          =20
            if(this._currentTask._notified =3D=3D=3D 1) {
                window.setTimeout(Function.createDelegate(this, =
function() {
                    =
this._scriptLoadedHandler(this._currentTask.get_scriptElement(), true);
                }), 0);
            }
        }
    }
    function Sys$_ScriptLoader$queueCustomScriptTag(scriptAttributes) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueCustomScriptTag" />
        /// <param name=3D"scriptAttributes" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptAttributes"}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, scriptAttributes);
    }
    function Sys$_ScriptLoader$queueScriptBlock(scriptContent) {
        /// <summary locid=3D"M:J#Sys._ScriptLoader.queueScriptBlock" />
        /// <param name=3D"scriptContent" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptContent", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {text: scriptContent});
    }
    function Sys$_ScriptLoader$queueScriptReference(scriptUrl) {
        /// <summary =
locid=3D"M:J#Sys._ScriptLoader.queueScriptReference" />
        /// <param name=3D"scriptUrl" type=3D"String" =
mayBeNull=3D"false"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "scriptUrl", type: String}
        ]);
        if (e) throw e;
        if(!this._scriptsToLoad) {
            this._scriptsToLoad =3D [];
        }
        Array.add(this._scriptsToLoad, {src: scriptUrl});
    }
    function Sys$_ScriptLoader$_createScriptElement(queuedScript) {
        var scriptElement =3D document.createElement('script');
        scriptElement.type =3D 'text/javascript';
        for (var attr in queuedScript) {
            scriptElement[attr] =3D queuedScript[attr];
        }
       =20
        return scriptElement;
    }
    function Sys$_ScriptLoader$_loadScriptsInternal() {
        var session =3D this._currentSession;
        if (session.scriptsToLoad && session.scriptsToLoad.length > 0) {
            var nextScript =3D Array.dequeue(session.scriptsToLoad);
            var scriptElement =3D this._createScriptElement(nextScript);
           =20
            if (scriptElement.text && Sys.Browser.agent =3D=3D=3D =
Sys.Browser.Safari) {
                scriptElement.innerHTML =3D scriptElement.text;
                delete scriptElement.text;
            }           =20
            if (typeof(nextScript.src) =3D=3D=3D "string") {
                this._currentTask =3D new =
Sys._ScriptLoaderTask(scriptElement, this._scriptLoadedDelegate);
                this._currentTask.execute();
            }
            else {
                var headElements =3D =
document.getElementsByTagName('head');
                if (headElements.length =3D=3D=3D 0) {
                     throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
                }
                else {
                     headElements[0].appendChild(scriptElement);
                }
               =20
               =20
                Sys._ScriptLoader._clearScript(scriptElement);
                this._loadScriptsInternal();
            }
        }
        else {
            this._stopSession();
            var callback =3D session.allScriptsLoadedCallback;
            if(callback) {
                callback(this);
            }
            this._nextSession();
        }
    }
    function Sys$_ScriptLoader$_nextSession() {
        if (this._sessions.length =3D=3D=3D 0) {
            this._loading =3D false;
            this._currentSession =3D null;
            return;
        }
        this._loading =3D true;
       =20
        var session =3D Array.dequeue(this._sessions);
        this._currentSession =3D session;
        this._loadScriptsInternal();
    }
    function Sys$_ScriptLoader$_raiseError(multipleCallbacks) {
        var callback =3D this._currentSession.scriptLoadFailedCallback;
        var scriptElement =3D this._currentTask.get_scriptElement();
        this._stopSession();
       =20
        if(callback) {
            callback(this, scriptElement, multipleCallbacks);
            this._nextSession();
        }
        else {
            this._loading =3D false;
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(scriptElement.src, =
multipleCallbacks);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadedHandler(scriptElement, =
loaded) {
        if(loaded && this._currentTask._notified) {
            if(this._currentTask._notified > 1) {
                this._raiseError(true);
            }
            else {
                Array.add(Sys._ScriptLoader._getLoadedScripts(), =
scriptElement.src);
                this._currentTask.dispose();
                this._currentTask =3D null;
                this._loadScriptsInternal();
            }
        }
        else {
            this._raiseError(false);
        }
    }
    function Sys$_ScriptLoader$_scriptLoadTimeoutHandler() {
        var callback =3D this._currentSession.scriptLoadTimeoutCallback;
        this._stopSession();
        if(callback) {
            callback(this);
        }
        this._nextSession();
    }
    function Sys$_ScriptLoader$_stopSession() {
        if(this._currentTask) {
            this._currentTask.dispose();
            this._currentTask =3D null;
        }
    }
Sys._ScriptLoader.prototype =3D {
    dispose: Sys$_ScriptLoader$dispose,
    loadScripts: Sys$_ScriptLoader$loadScripts,
    notifyScriptLoaded: Sys$_ScriptLoader$notifyScriptLoaded,
    queueCustomScriptTag: Sys$_ScriptLoader$queueCustomScriptTag,
    queueScriptBlock: Sys$_ScriptLoader$queueScriptBlock,
    queueScriptReference: Sys$_ScriptLoader$queueScriptReference,
    _createScriptElement: Sys$_ScriptLoader$_createScriptElement,
    _loadScriptsInternal: Sys$_ScriptLoader$_loadScriptsInternal,
    _nextSession: Sys$_ScriptLoader$_nextSession,
    _raiseError: Sys$_ScriptLoader$_raiseError,
    _scriptLoadedHandler: Sys$_ScriptLoader$_scriptLoadedHandler,
    _scriptLoadTimeoutHandler: =
Sys$_ScriptLoader$_scriptLoadTimeoutHandler,
    _stopSession: Sys$_ScriptLoader$_stopSession   =20
}
Sys._ScriptLoader.registerClass('Sys._ScriptLoader', null, =
Sys.IDisposable);
Sys._ScriptLoader.getInstance =3D function =
Sys$_ScriptLoader$getInstance() {
    var sl =3D Sys._ScriptLoader._activeInstance;
    if(!sl) {
        sl =3D Sys._ScriptLoader._activeInstance =3D new =
Sys._ScriptLoader();
    }
    return sl;
}
Sys._ScriptLoader.isScriptLoaded =3D function =
Sys$_ScriptLoader$isScriptLoaded(scriptSrc) {
    var dummyScript =3D document.createElement('script');
    dummyScript.src =3D scriptSrc;
    return Array.contains(Sys._ScriptLoader._getLoadedScripts(), =
dummyScript.src);
}
Sys._ScriptLoader.readLoadedScripts =3D function =
Sys$_ScriptLoader$readLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        var referencedScripts =3D Sys._ScriptLoader._referencedScripts =
=3D [];
        var existingScripts =3D document.getElementsByTagName('script');
        for (i =3D existingScripts.length - 1; i >=3D 0; i--) {
            var scriptNode =3D existingScripts[i];
            var scriptSrc =3D scriptNode.src;
            if (scriptSrc.length) {
                if (!Array.contains(referencedScripts, scriptSrc)) {
                    Array.add(referencedScripts, scriptSrc);
                }
            }
        }
    }
}
Sys._ScriptLoader._clearScript =3D function =
Sys$_ScriptLoader$_clearScript(scriptElement) {
    if (!Sys.Debug.isDebug) {
        scriptElement.parentNode.removeChild(scriptElement);
    }
}
Sys._ScriptLoader._errorScriptLoadFailed =3D function =
Sys$_ScriptLoader$_errorScriptLoadFailed(scriptUrl, multipleCallbacks) {
    var errorMessage;
    if(multipleCallbacks) {
        errorMessage =3D Sys.Res.scriptLoadMultipleCallbacks;
    }
    else {
        errorMessage =3D Sys.Res.scriptLoadFailedDebug;
    }
    var displayMessage =3D "Sys.ScriptLoadFailedException: " + =
String.format(errorMessage, scriptUrl);
    var e =3D Error.create(displayMessage, {name: =
'Sys.ScriptLoadFailedException', 'scriptUrl': scriptUrl });
    e.popStackFrame();
    return e;
}
Sys._ScriptLoader._getLoadedScripts =3D function =
Sys$_ScriptLoader$_getLoadedScripts() {
    if(!Sys._ScriptLoader._referencedScripts) {
        Sys._ScriptLoader._referencedScripts =3D [];
        Sys._ScriptLoader.readLoadedScripts();
    }
    return Sys._ScriptLoader._referencedScripts;
}
=20
Sys._ScriptLoaderTask =3D function Sys$_ScriptLoaderTask(scriptElement, =
completedCallback) {
    /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.#ctor" />
    /// <param name=3D"scriptElement" domElement=3D"true"></param>
    /// <param name=3D"completedCallback" type=3D"Function"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "scriptElement", domElement: true},
        {name: "completedCallback", type: Function}
    ]);
    if (e) throw e;
    this._scriptElement =3D scriptElement;
    this._completedCallback =3D completedCallback;
    this._notified =3D 0;
}
    function Sys$_ScriptLoaderTask$get_scriptElement() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys._ScriptLoaderTask.scriptElement"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._scriptElement;
    }
    function Sys$_ScriptLoaderTask$dispose() {
        if(this._disposed) {
            return;
        }
        this._disposed =3D true;
        this._removeScriptElementHandlers();
        Sys._ScriptLoader._clearScript(this._scriptElement);
        this._scriptElement =3D null;
    }
    function Sys$_ScriptLoaderTask$execute() {
        /// <summary locid=3D"M:J#Sys._ScriptLoaderTask.execute" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._addScriptElementHandlers();
        var headElements =3D document.getElementsByTagName('head');
        if (headElements.length =3D=3D=3D 0) {
             throw new =
Error.invalidOperation(Sys.Res.scriptLoadFailedNoHead);
        }
        else {
             headElements[0].appendChild(this._scriptElement);
        }
    }
    function Sys$_ScriptLoaderTask$_addScriptElementHandlers() {
        this._scriptLoadDelegate =3D Function.createDelegate(this, =
this._scriptLoadHandler);
       =20
        if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) {
            this._scriptElement.readyState =3D 'loaded';
            $addHandler(this._scriptElement, 'load', =
this._scriptLoadDelegate);
        }
        else {
            $addHandler(this._scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
        }   =20
        if (this._scriptElement.addEventListener) {
            this._scriptErrorDelegate =3D Function.createDelegate(this, =
this._scriptErrorHandler);
            this._scriptElement.addEventListener('error', =
this._scriptErrorDelegate, false);
        }
    }
    function Sys$_ScriptLoaderTask$_removeScriptElementHandlers() {
        if(this._scriptLoadDelegate) {
            var scriptElement =3D this.get_scriptElement();
            if (Sys.Browser.agent !=3D=3D Sys.Browser.InternetExplorer) =
{
                $removeHandler(scriptElement, 'load', =
this._scriptLoadDelegate);
            }
            else {
                $removeHandler(scriptElement, 'readystatechange', =
this._scriptLoadDelegate);
            }
            if (this._scriptErrorDelegate) {
                this._scriptElement.removeEventListener('error', =
this._scriptErrorDelegate, false);
                this._scriptErrorDelegate =3D null;
            }
            this._scriptLoadDelegate =3D null;
        }
    }
    function Sys$_ScriptLoaderTask$_scriptErrorHandler() {
        if(this._disposed) {
            return;
        }
       =20
        this._completedCallback(this.get_scriptElement(), false);
    }
    function Sys$_ScriptLoaderTask$_scriptLoadHandler() {
        if(this._disposed) {
            return;
        }
        var scriptElement =3D this.get_scriptElement();
        if ((scriptElement.readyState !=3D=3D 'loaded') &&
            (scriptElement.readyState !=3D=3D 'complete')) {
            return;
        }
       =20
        var _this =3D this;
        window.setTimeout(function() {
            _this._completedCallback(scriptElement, true);
        }, 0);
    }
Sys._ScriptLoaderTask.prototype =3D {
    get_scriptElement: Sys$_ScriptLoaderTask$get_scriptElement,
    dispose: Sys$_ScriptLoaderTask$dispose,
    execute: Sys$_ScriptLoaderTask$execute,
    _addScriptElementHandlers: =
Sys$_ScriptLoaderTask$_addScriptElementHandlers,   =20
    _removeScriptElementHandlers: =
Sys$_ScriptLoaderTask$_removeScriptElementHandlers,   =20
    _scriptErrorHandler: Sys$_ScriptLoaderTask$_scriptErrorHandler,
    _scriptLoadHandler: Sys$_ScriptLoaderTask$_scriptLoadHandler =20
}
Sys._ScriptLoaderTask.registerClass("Sys._ScriptLoaderTask", null, =
Sys.IDisposable);
=20
Sys.ApplicationLoadEventArgs =3D function =
Sys$ApplicationLoadEventArgs(components, isPartialLoad) {
    /// <summary locid=3D"M:J#Sys.ApplicationLoadEventArgs.#ctor" />
    /// <param name=3D"components" type=3D"Array" =
elementType=3D"Sys.Component"></param>
    /// <param name=3D"isPartialLoad" type=3D"Boolean"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "components", type: Array, elementType: Sys.Component},
        {name: "isPartialLoad", type: Boolean}
    ]);
    if (e) throw e;
    Sys.ApplicationLoadEventArgs.initializeBase(this);
    this._components =3D components;
    this._isPartialLoad =3D isPartialLoad;
}
=20
    function Sys$ApplicationLoadEventArgs$get_components() {
        /// <value type=3D"Array" elementType=3D"Sys.Component" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.components"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._components;
    }
    function Sys$ApplicationLoadEventArgs$get_isPartialLoad() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.ApplicationLoadEventArgs.isPartialLoad"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._isPartialLoad;
    }
Sys.ApplicationLoadEventArgs.prototype =3D {
    get_components: Sys$ApplicationLoadEventArgs$get_components,
    get_isPartialLoad: Sys$ApplicationLoadEventArgs$get_isPartialLoad
}
Sys.ApplicationLoadEventArgs.registerClass('Sys.ApplicationLoadEventArgs'=
, Sys.EventArgs);
Sys.HistoryEventArgs =3D function Sys$HistoryEventArgs(state) {
    /// <summary locid=3D"M:J#Sys.HistoryEventArgs.#ctor" />
    /// <param name=3D"state" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "state", type: Object}
    ]);
    if (e) throw e;
    Sys.HistoryEventArgs.initializeBase(this);
    this._state =3D state;
}
    function Sys$HistoryEventArgs$get_state() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.HistoryEventArgs.state"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._state;
    }
Sys.HistoryEventArgs.prototype =3D {
    get_state: Sys$HistoryEventArgs$get_state
}
Sys.HistoryEventArgs.registerClass('Sys.HistoryEventArgs', =
Sys.EventArgs);
=20
Sys._Application =3D function Sys$_Application() {
    /// <summary locid=3D"M:J#Sys.Application.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys._Application.initializeBase(this);
    this._disposableObjects =3D [];
    this._components =3D {};
    this._createdComponents =3D [];
    this._secondPassComponents =3D [];
    this._appLoadHandler =3D null;
    this._beginRequestHandler =3D null;
    this._clientId =3D null;
    this._currentEntry =3D '';
    this._endRequestHandler =3D null;
    this._history =3D null;
    this._enableHistory =3D false;
    this._historyEnabledInScriptManager =3D false;
    this._historyFrame =3D null;
    this._historyInitialized =3D false;
    this._historyInitialLength =3D 0;
    this._historyLength =3D 0;
    this._historyPointIsNew =3D false;
    this._ignoreTimer =3D false;
    this._initialState =3D null;
    this._state =3D {};
    this._timerCookie =3D 0;
    this._timerHandler =3D null;
    this._uniqueId =3D null;
    this._unloadHandlerDelegate =3D Function.createDelegate(this, =
this._unloadHandler);
    this._loadHandlerDelegate =3D Function.createDelegate(this, =
this._loadHandler);
    Sys.UI.DomEvent.addHandler(window, "unload", =
this._unloadHandlerDelegate);
    Sys.UI.DomEvent.addHandler(window, "load", =
this._loadHandlerDelegate);
}
    function Sys$_Application$get_isCreatingComponents() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.isCreatingComponents"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._creatingComponents;
    }
    function Sys$_Application$get_stateString() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Application.stateString"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var hash =3D window.location.hash;
        if (this._isSafari2()) {
            var history =3D this._getHistory();
            if (history) {
                hash =3D history[window.history.length - =
this._historyInitialLength];
            }
        }
        if ((hash.length > 0) && (hash.charAt(0) =3D=3D=3D '#')) {
            hash =3D hash.substring(1);
        }
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Firefox) {
            hash =3D this._serializeState(this._deserializeState(hash, =
true));
        }
        return hash;
    }
    function Sys$_Application$get_enableHistory() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Application.enableHistory"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._enableHistory;
    }
    function Sys$_Application$set_enableHistory(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (this._initialized && !this._initializing) {
            throw =
Error.invalidOperation(Sys.Res.historyCannotEnableHistory);
        }
        else if (this._historyEnabledInScriptManager && !value) {
            throw =
Error.invalidOperation(Sys.Res.invalidHistorySettingCombination);
        }
        this._enableHistory =3D value;
    }
    function Sys$_Application$add_init(handler) {
        /// <summary locid=3D"E:J#Sys.Application.init" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        if (this._initialized) {
            handler(this, Sys.EventArgs.Empty);
        }
        else {
            this.get_events().addHandler("init", handler);
        }
    }
    function Sys$_Application$remove_init(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("init", handler);
    }
    function Sys$_Application$add_load(handler) {
        /// <summary locid=3D"E:J#Sys.Application.load" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("load", handler);
    }
    function Sys$_Application$remove_load(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("load", handler);
    }
    function Sys$_Application$add_navigate(handler) {
        /// <summary locid=3D"E:J#Sys.Application.navigate" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("navigate", handler);
    }
    function Sys$_Application$remove_navigate(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("navigate", handler);
    }
    function Sys$_Application$add_unload(handler) {
        /// <summary locid=3D"E:J#Sys.Application.unload" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().addHandler("unload", handler);
    }
    function Sys$_Application$remove_unload(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this.get_events().removeHandler("unload", handler);
    }
    function Sys$_Application$addComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.addComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (!id) throw Error.invalidOperation(Sys.Res.cantAddWithoutId);
        if (typeof(this._components[id]) !=3D=3D 'undefined') throw =
Error.invalidOperation(String.format(Sys.Res.appDuplicateComponent, =
id));
        this._components[id] =3D component;
    }
    function Sys$_Application$addHistoryPoint(state, title) {
        /// <summary locid=3D"M:J#Sys.Application.addHistoryPoint" />
        /// <param name=3D"state" type=3D"Object"></param>
        /// <param name=3D"title" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "state", type: Object},
            {name: "title", type: String, mayBeNull: true, optional: =
true}
        ]);
        if (e) throw e;
        if (!this._enableHistory) throw =
Error.invalidOperation(Sys.Res.historyCannotAddHistoryPointWithHistoryDis=
abled);
        for (var n in state) {
            var v =3D state[n];
            var t =3D typeof(v);
            if ((v !=3D=3D null) && ((t =3D=3D=3D 'object') || (t =
=3D=3D=3D 'function') || (t =3D=3D=3D 'undefined'))) {
                throw Error.argument('state', =
Sys.Res.stateMustBeStringDictionary);
            }
        }
        this._ensureHistory();
        var initialState =3D this._state;
        for (var key in state) {
            var value =3D state[key];
            if (value =3D=3D=3D null) {
                if (typeof(initialState[key]) !=3D=3D 'undefined') {
                    delete initialState[key];
                }
            }
            else {
                initialState[key] =3D value;
            }
        }
        var entry =3D this._serializeState(initialState);
        this._historyPointIsNew =3D true;
        this._setState(entry, title);
        this._raiseNavigate();
    }
    function Sys$_Application$beginCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.beginCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._creatingComponents =3D true;
    }
    function Sys$_Application$dispose() {
        /// <summary locid=3D"M:J#Sys.Application.dispose" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._disposing) {
            this._disposing =3D true;
            if (this._timerCookie) {
                window.clearTimeout(this._timerCookie);
                delete this._timerCookie;
            }
            if (this._endRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_endRequest(this._end=
RequestHandler);
                delete this._endRequestHandler;
            }
            if (this._beginRequestHandler) {
                =
Sys.WebForms.PageRequestManager.getInstance().remove_beginRequest(this._b=
eginRequestHandler);
                delete this._beginRequestHandler;
            }
            if (window.pageUnload) {
                window.pageUnload(this, Sys.EventArgs.Empty);
            }
            var unloadHandler =3D =
this.get_events().getHandler("unload");
            if (unloadHandler) {
                unloadHandler(this, Sys.EventArgs.Empty);
            }
            var disposableObjects =3D =
Array.clone(this._disposableObjects);
            for (var i =3D 0, l =3D disposableObjects.length; i < l; =
i++) {
                disposableObjects[i].dispose();
            }
            Array.clear(this._disposableObjects);
            Sys.UI.DomEvent.removeHandler(window, "unload", =
this._unloadHandlerDelegate);
            if(this._loadHandlerDelegate) {
                Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
                this._loadHandlerDelegate =3D null;
            }
            var sl =3D Sys._ScriptLoader.getInstance();
            if(sl) {
                sl.dispose();
            }
            Sys._Application.callBaseMethod(this, 'dispose');
        }
    }
    function Sys$_Application$endCreateComponents() {
        /// <summary locid=3D"M:J#Sys.Application.endCreateComponents" =
/>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var components =3D this._secondPassComponents;
        for (var i =3D 0, l =3D components.length; i < l; i++) {
            var component =3D components[i].component;
            Sys$Component$_setReferences(component, =
components[i].references);
            component.endUpdate();
        }
        this._secondPassComponents =3D [];
        this._creatingComponents =3D false;
    }
    function Sys$_Application$findComponent(id, parent) {
        /// <summary locid=3D"M:J#Sys.Application.findComponent" />
        /// <param name=3D"id" type=3D"String"></param>
        /// <param name=3D"parent" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <returns type=3D"Sys.Component" =
mayBeNull=3D"true"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "id", type: String},
            {name: "parent", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        return (parent ?
            ((Sys.IContainer.isInstanceOfType(parent)) ?
                parent.findComponent(id) :
                parent[id] || null) :
            Sys.Application._components[id] || null);
    }
    function Sys$_Application$getComponents() {
        /// <summary locid=3D"M:J#Sys.Application.getComponents" />
        /// <returns type=3D"Array" =
elementType=3D"Sys.Component"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var res =3D [];
        var components =3D this._components;
        for (var name in components) {
            res[res.length] =3D components[name];
        }
        return res;
    }
    function Sys$_Application$initialize() {
        /// <summary locid=3D"M:J#Sys.Application.initialize" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if(!this._initialized && !this._initializing) {
            this._initializing =3D true;
            window.setTimeout(Function.createDelegate(this, =
this._doInitialize), 0);
        }
    }
    function Sys$_Application$notifyScriptLoaded() {
        /// <summary locid=3D"M:J#Sys.Application.notifyScriptLoaded" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var sl =3D Sys._ScriptLoader.getInstance();
        if(sl) {
            sl.notifyScriptLoaded();
        }
    }
    function Sys$_Application$registerDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.registerDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            this._disposableObjects[this._disposableObjects.length] =3D =
object;
        }
    }
    function Sys$_Application$raiseLoad() {
        /// <summary locid=3D"M:J#Sys.Application.raiseLoad" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var h =3D this.get_events().getHandler("load");
        var args =3D new =
Sys.ApplicationLoadEventArgs(Array.clone(this._createdComponents), =
!this._initializing);
        if (h) {
            h(this, args);
        }
        if (window.pageLoad) {
            window.pageLoad(this, args);
        }
        this._createdComponents =3D [];
    }
    function Sys$_Application$removeComponent(component) {
        /// <summary locid=3D"M:J#Sys.Application.removeComponent" />
        /// <param name=3D"component" type=3D"Sys.Component"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "component", type: Sys.Component}
        ]);
        if (e) throw e;
        var id =3D component.get_id();
        if (id) delete this._components[id];
    }
    function Sys$_Application$setServerId(clientId, uniqueId) {
        /// <summary locid=3D"M:J#Sys.Application.setServerId" />
        /// <param name=3D"clientId" type=3D"String"></param>
        /// <param name=3D"uniqueId" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "clientId", type: String},
            {name: "uniqueId", type: String}
        ]);
        if (e) throw e;
        this._clientId =3D clientId;
        this._uniqueId =3D uniqueId;
    }
    function Sys$_Application$setServerState(value) {
        /// <summary locid=3D"M:J#Sys.Application.setServerState" />
        /// <param name=3D"value" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "value", type: String}
        ]);
        if (e) throw e;
        this._ensureHistory();
        this._state.__s =3D value;
        this._updateHiddenField(value);
    }
    function Sys$_Application$unregisterDisposableObject(object) {
        /// <summary =
locid=3D"M:J#Sys.Application.unregisterDisposableObject" />
        /// <param name=3D"object" type=3D"Sys.IDisposable"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "object", type: Sys.IDisposable}
        ]);
        if (e) throw e;
        if (!this._disposing) {
            Array.remove(this._disposableObjects, object);
        }
    }
    function Sys$_Application$_addComponentToSecondPass(component, =
references) {
        this._secondPassComponents[this._secondPassComponents.length] =
=3D {component: component, references: references};
    }
    function Sys$_Application$_deserializeState(entry, skipDecodeUri) {
        var result =3D {};
        entry =3D entry || '';
        var serverSeparator =3D entry.indexOf('&&');
        if ((serverSeparator !=3D=3D -1) && (serverSeparator + 2 < =
entry.length)) {
            result.__s =3D entry.substr(serverSeparator + 2);
            entry =3D entry.substr(0, serverSeparator);
        }
        var tokens =3D entry.split('&');
        for (var i =3D 0, l =3D tokens.length; i < l; i++) {
            var token =3D tokens[i];
            var equal =3D token.indexOf('=3D');
            if ((equal !=3D=3D -1) && (equal + 1 < token.length)) {
                var name =3D token.substr(0, equal);
                var value =3D token.substr(equal + 1);
                result[name] =3D skipDecodeUri ? value : =
decodeURIComponent(value);
            }
        }
        return result;
    }
    function Sys$_Application$_doInitialize() {
        Sys._Application.callBaseMethod(this, 'initialize');
       =20
        var handler =3D this.get_events().getHandler("init");
        if (handler) {
            this.beginCreateComponents();
            handler(this, Sys.EventArgs.Empty);
            this.endCreateComponents();
        }
        if (Sys.WebForms) {
            this._beginRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerBeginRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(this._begi=
nRequestHandler);
            this._endRequestHandler =3D Function.createDelegate(this, =
this._onPageRequestManagerEndRequest);
            =
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(this._endReq=
uestHandler);
        }
       =20
        var loadedEntry =3D this.get_stateString();
        if (loadedEntry !=3D=3D this._currentEntry) {
            this._navigate(loadedEntry);
        }
=20
        this.raiseLoad();
        this._initializing =3D false;
    }
    function Sys$_Application$_enableHistoryInScriptManager() {
        this._enableHistory =3D true;
        this._historyEnabledInScriptManager =3D true;
    }
    function Sys$_Application$_ensureHistory() {
        if (!this._historyInitialized && this._enableHistory) {
            if ((Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) && (Sys.Browser.documentMode < 8)) {
                this._historyFrame =3D =
document.getElementById('__historyFrame');
                if (!this._historyFrame) throw =
Error.invalidOperation(Sys.Res.historyMissingFrame);
                this._ignoreIFrame =3D true;
            }
            if (this._isSafari2()) {
                var historyElement =3D =
document.getElementById('__history');
                if (!historyElement) throw =
Error.invalidOperation(Sys.Res.historyMissingHiddenInput);
                this._setHistory([window.location.hash]);
                this._historyInitialLength =3D window.history.length;
            }
           =20
            this._timerHandler =3D Function.createDelegate(this, =
this._onIdle);
            this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
           =20
            try {
                this._initialState =3D =
this._deserializeState(this.get_stateString());
            } catch(e) {}
           =20
            this._historyInitialized =3D true;
        }
    }
    function Sys$_Application$_getHistory() {
        var historyElement =3D document.getElementById('__history');
        if (!historyElement) return '';
        var v =3D historyElement.value;
        return v ? Sys.Serialization.JavaScriptSerializer.deserialize(v, =
true) : '';
    }
    function Sys$_Application$_isSafari2() {
        return (Sys.Browser.agent =3D=3D=3D Sys.Browser.Safari) &&
            (Sys.Browser.version <=3D 419.3);
    }
    function Sys$_Application$_loadHandler() {
        if(this._loadHandlerDelegate) {
            Sys.UI.DomEvent.removeHandler(window, "load", =
this._loadHandlerDelegate);
            this._loadHandlerDelegate =3D null;
        }
        this.initialize();
    }
    function Sys$_Application$_navigate(entry) {
        this._ensureHistory();
        var state =3D this._deserializeState(entry);
       =20
        if (this._uniqueId) {
            var oldServerEntry =3D this._state.__s || '';
            var newServerEntry =3D state.__s || '';
            if (newServerEntry !=3D=3D oldServerEntry) {
                this._updateHiddenField(newServerEntry);
                __doPostBack(this._uniqueId, newServerEntry);
                this._state =3D state;
                return;
            }
        }
        this._setState(entry);
        this._state =3D state;
        this._raiseNavigate();
    }
    function Sys$_Application$_onIdle() {
        delete this._timerCookie;
       =20
        var entry =3D this.get_stateString();
        if (entry !=3D=3D this._currentEntry) {
            if (!this._ignoreTimer) {
                this._historyPointIsNew =3D false;
                this._navigate(entry);
                this._historyLength =3D window.history.length;
            }
        }
        else {
            this._ignoreTimer =3D false;
        }
        this._timerCookie =3D window.setTimeout(this._timerHandler, =
100);
    }
    function Sys$_Application$_onIFrameLoad(entry) {
        this._ensureHistory();
        if (!this._ignoreIFrame) {
            this._historyPointIsNew =3D false;
            this._navigate(entry);
        }
        this._ignoreIFrame =3D false;
    }
    function Sys$_Application$_onPageRequestManagerBeginRequest(sender, =
args) {
        this._ignoreTimer =3D true;
    }
    function Sys$_Application$_onPageRequestManagerEndRequest(sender, =
args) {
        var dataItem =3D args.get_dataItems()[this._clientId];
        var eventTarget =3D document.getElementById("__EVENTTARGET");
        if (eventTarget && eventTarget.value =3D=3D=3D this._uniqueId) {
            eventTarget.value =3D '';
        }
        if (typeof(dataItem) !=3D=3D 'undefined') {
            this.setServerState(dataItem);
            this._historyPointIsNew =3D true;
        }
        else {
            this._ignoreTimer =3D false;
        }
        var entry =3D this._serializeState(this._state);
        if (entry !=3D=3D this._currentEntry) {
            this._ignoreTimer =3D true;
            this._setState(entry);
            this._raiseNavigate();
        }
    }
    function Sys$_Application$_raiseNavigate() {
        var h =3D this.get_events().getHandler("navigate");
        var stateClone =3D {};
        for (var key in this._state) {
            if (key !=3D=3D '__s') {
                stateClone[key] =3D this._state[key];
            }
        }
        var args =3D new Sys.HistoryEventArgs(stateClone);
        if (h) {
            h(this, args);
        }
    }
    function Sys$_Application$_serializeState(state) {
        var serialized =3D [];
        for (var key in state) {
            var value =3D state[key];
            if (key =3D=3D=3D '__s') {
                var serverState =3D value;
            }
            else {
                if (key.indexOf('=3D') !=3D=3D -1) throw =
Error.argument('state', Sys.Res.stateFieldNameInvalid);
                serialized[serialized.length] =3D key + '=3D' + =
encodeURIComponent(value);
            }
        }
        return serialized.join('&') + (serverState ? '&&' + serverState =
: '');
    }
    function Sys$_Application$_setHistory(historyArray) {
        var historyElement =3D document.getElementById('__history');
        if (historyElement) {
            historyElement.value =3D =
Sys.Serialization.JavaScriptSerializer.serialize(historyArray);
        }
    }
    function Sys$_Application$_setState(entry, title) {
        entry =3D entry || '';
        if (entry !=3D=3D this._currentEntry) {
            if (window.theForm) {
                var action =3D window.theForm.action;
                var hashIndex =3D action.indexOf('#');
                window.theForm.action =3D ((hashIndex !=3D=3D -1) ? =
action.substring(0, hashIndex) : action) + '#' + entry;
            }
           =20
            if (this._historyFrame && this._historyPointIsNew) {
                this._ignoreIFrame =3D true;
                this._historyPointIsNew =3D false;
                var frameDoc =3D =
this._historyFrame.contentWindow.document;
                frameDoc.open("javascript:'<html></html>'");
                frameDoc.write("<html><head><title>" + (title || =
document.title) +
                    "</title><scri" + "pt =
type=3D\"text/javascript\">parent.Sys.Application._onIFrameLoad('" +=20
                    entry + "');</scri" + =
"pt></head><body></body></html>");
                frameDoc.close();
            }
            this._ignoreTimer =3D false;
            var currentHash =3D this.get_stateString();
            this._currentEntry =3D entry;
            if (entry !=3D=3D currentHash) {
                var loc =3D document.location;
                if (loc.href.length - loc.hash.length + entry.length > =
1024) {
                    throw =
Error.invalidOperation(Sys.Res.urlMustBeLessThan1024chars);
                }
                if (this._isSafari2()) {
                    var history =3D this._getHistory();
                    history[window.history.length - =
this._historyInitialLength + 1] =3D entry;
                    this._setHistory(history);
                    this._historyLength =3D window.history.length + 1;
                    var form =3D document.createElement('form');
                    form.method =3D 'get';
                    form.action =3D '#' + entry;
                    document.appendChild(form);
                    form.submit();
                    document.removeChild(form);
                }
                else {
                    window.location.hash =3D entry;
                }
                if ((typeof(title) !=3D=3D 'undefined') && (title =
!=3D=3D null)) {
                    document.title =3D title;
                }
            }
        }
    }
    function Sys$_Application$_unloadHandler(event) {
        this.dispose();
    }
    function Sys$_Application$_updateHiddenField(value) {
        if (this._clientId) {
            var serverStateField =3D =
document.getElementById(this._clientId);
            if (serverStateField) {
                serverStateField.value =3D value;
            }
        }
    }
Sys._Application.prototype =3D {
    _creatingComponents: false,
    _disposing: false,
    get_isCreatingComponents: Sys$_Application$get_isCreatingComponents,
    get_stateString: Sys$_Application$get_stateString,
    get_enableHistory: Sys$_Application$get_enableHistory,
    set_enableHistory: Sys$_Application$set_enableHistory,
    add_init: Sys$_Application$add_init,
    remove_init: Sys$_Application$remove_init,
    add_load: Sys$_Application$add_load,
    remove_load: Sys$_Application$remove_load,
    add_navigate: Sys$_Application$add_navigate,
    remove_navigate: Sys$_Application$remove_navigate,
    add_unload: Sys$_Application$add_unload,
    remove_unload: Sys$_Application$remove_unload,
    addComponent: Sys$_Application$addComponent,
    addHistoryPoint: Sys$_Application$addHistoryPoint,
    beginCreateComponents: Sys$_Application$beginCreateComponents,
    dispose: Sys$_Application$dispose,
    endCreateComponents: Sys$_Application$endCreateComponents,
    findComponent: Sys$_Application$findComponent,
    getComponents: Sys$_Application$getComponents,
    initialize: Sys$_Application$initialize,
    notifyScriptLoaded: Sys$_Application$notifyScriptLoaded,
    registerDisposableObject: Sys$_Application$registerDisposableObject,
    raiseLoad: Sys$_Application$raiseLoad,
    removeComponent: Sys$_Application$removeComponent,
    setServerId: Sys$_Application$setServerId,
    setServerState: Sys$_Application$setServerState,
    unregisterDisposableObject: =
Sys$_Application$unregisterDisposableObject,
    _addComponentToSecondPass: =
Sys$_Application$_addComponentToSecondPass,
    _deserializeState: Sys$_Application$_deserializeState,
    _doInitialize: Sys$_Application$_doInitialize,
    _enableHistoryInScriptManager: =
Sys$_Application$_enableHistoryInScriptManager,   =20
    _ensureHistory: Sys$_Application$_ensureHistory,
    _getHistory: Sys$_Application$_getHistory,
    _isSafari2: Sys$_Application$_isSafari2,
    _loadHandler: Sys$_Application$_loadHandler,
    _navigate: Sys$_Application$_navigate,
    _onIdle: Sys$_Application$_onIdle,
    _onIFrameLoad: Sys$_Application$_onIFrameLoad,
    _onPageRequestManagerBeginRequest: =
Sys$_Application$_onPageRequestManagerBeginRequest,
    _onPageRequestManagerEndRequest: =
Sys$_Application$_onPageRequestManagerEndRequest,
    _raiseNavigate: Sys$_Application$_raiseNavigate,
    _serializeState: Sys$_Application$_serializeState,
    _setHistory: Sys$_Application$_setHistory,
    _setState: Sys$_Application$_setState,
    _unloadHandler: Sys$_Application$_unloadHandler,
    _updateHiddenField: Sys$_Application$_updateHiddenField
}
Sys._Application.registerClass('Sys._Application', Sys.Component, =
Sys.IContainer);
Sys.Application =3D new Sys._Application();
var $find =3D Sys.Application.findComponent;
Type.registerNamespace('Sys.Net');
=20
Sys.Net.WebRequestExecutor =3D function Sys$Net$WebRequestExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._webRequest =3D null;
    this._resultObject =3D null;
}
    function Sys$Net$WebRequestExecutor$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
    function Sys$Net$WebRequestExecutor$_set_webRequest(value) {
        if (this.get_started()) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'set_webRequest'));
        }
        this._webRequest =3D value;
    }
    function Sys$Net$WebRequestExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.WebRequestExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$get_object() {
        /// <value =
locid=3D"P:J#Sys.Net.WebRequestExecutor.object"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._resultObject) {
            this._resultObject =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(this.get_responseData(=
));
        }
        return this._resultObject;
    }
    function Sys$Net$WebRequestExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequestExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        throw Error.notImplemented();
    }
    function Sys$Net$WebRequestExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestExecutor.getAllResponseHeaders" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        throw Error.notImplemented();
    }
Sys.Net.WebRequestExecutor.prototype =3D {
    get_webRequest: Sys$Net$WebRequestExecutor$get_webRequest,
    _set_webRequest: Sys$Net$WebRequestExecutor$_set_webRequest,
    get_started: Sys$Net$WebRequestExecutor$get_started,
    get_responseAvailable: =
Sys$Net$WebRequestExecutor$get_responseAvailable,
    get_timedOut: Sys$Net$WebRequestExecutor$get_timedOut,
    get_aborted: Sys$Net$WebRequestExecutor$get_aborted,
    get_responseData: Sys$Net$WebRequestExecutor$get_responseData,
    get_statusCode: Sys$Net$WebRequestExecutor$get_statusCode,
    get_statusText: Sys$Net$WebRequestExecutor$get_statusText,
    get_xml: Sys$Net$WebRequestExecutor$get_xml,
    get_object: Sys$Net$WebRequestExecutor$get_object,
    executeRequest: Sys$Net$WebRequestExecutor$executeRequest,
    abort: Sys$Net$WebRequestExecutor$abort,
    getResponseHeader: Sys$Net$WebRequestExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$WebRequestExecutor$getAllResponseHeaders
}
Sys.Net.WebRequestExecutor.registerClass('Sys.Net.WebRequestExecutor');
=20
Sys.Net.XMLDOM =3D function Sys$Net$XMLDOM(markup) {
    /// <summary locid=3D"M:J#Sys.Net.XMLDOM.#ctor" />
    /// <param name=3D"markup" type=3D"String"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "markup", type: String}
    ]);
    if (e) throw e;
    if (!window.DOMParser) {
        var progIDs =3D [ 'Msxml2.DOMDocument.3.0', 'Msxml2.DOMDocument' =
];
        for (var i =3D 0, l =3D progIDs.length; i < l; i++) {
            try {
                var xmlDOM =3D new ActiveXObject(progIDs[i]);
                xmlDOM.async =3D false;
                xmlDOM.loadXML(markup);
                xmlDOM.setProperty('SelectionLanguage', 'XPath');
                return xmlDOM;
            }
            catch (ex) {
            }
        }
    }
    else {
        try {
            var domParser =3D new window.DOMParser();
            return domParser.parseFromString(markup, 'text/xml');
        }
        catch (ex) {
        }
    }
    return null;
}
Sys.Net.XMLHttpExecutor =3D function Sys$Net$XMLHttpExecutor() {
    /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Net.XMLHttpExecutor.initializeBase(this);
    var _this =3D this;
    this._xmlHttpRequest =3D null;
    this._webRequest =3D null;
    this._responseAvailable =3D false;
    this._timedOut =3D false;
    this._timer =3D null;
    this._aborted =3D false;
    this._started =3D false;
    this._onReadyStateChange =3D (function () {
       =20
        if (_this._xmlHttpRequest.readyState =3D=3D=3D 4 ) {
            try {
                if (typeof(_this._xmlHttpRequest.status) =3D=3D=3D =
"undefined") {
                    return;
                }
            }
            catch(ex) {
                return;
            }
           =20
            _this._clearTimer();
            _this._responseAvailable =3D true;
            try {
                _this._webRequest.completed(Sys.EventArgs.Empty);
            }
            finally {
                if (_this._xmlHttpRequest !=3D null) {
                    _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
                    _this._xmlHttpRequest =3D null;
                }
            }
        }
    });
    this._clearTimer =3D (function() {
        if (_this._timer !=3D null) {
            window.clearTimeout(_this._timer);
            _this._timer =3D null;
        }
    });
    this._onTimeout =3D (function() {
        if (!_this._responseAvailable) {
            _this._clearTimer();
            _this._timedOut =3D true;
            _this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            _this._xmlHttpRequest.abort();
            _this._webRequest.completed(Sys.EventArgs.Empty);
            _this._xmlHttpRequest =3D null;
        }
    });
}
    function Sys$Net$XMLHttpExecutor$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$XMLHttpExecutor$get_started() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.started"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._started;
    }
    function Sys$Net$XMLHttpExecutor$get_responseAvailable() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseAvailable"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._responseAvailable;
    }
    function Sys$Net$XMLHttpExecutor$get_aborted() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.aborted"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._aborted;
    }
    function Sys$Net$XMLHttpExecutor$executeRequest() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.executeRequest" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        this._webRequest =3D this.get_webRequest();
        if (this._started) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOnceStarted, =
'executeRequest'));
        }
        if (this._webRequest =3D=3D=3D null) {
            throw Error.invalidOperation(Sys.Res.nullWebRequest);
        }
        var body =3D this._webRequest.get_body();
        var headers =3D this._webRequest.get_headers();
        this._xmlHttpRequest =3D new XMLHttpRequest();
        this._xmlHttpRequest.onreadystatechange =3D =
this._onReadyStateChange;
        var verb =3D this._webRequest.get_httpVerb();
        this._xmlHttpRequest.open(verb, =
this._webRequest.getResolvedUrl(), true );
        if (headers) {
            for (var header in headers) {
                var val =3D headers[header];
                if (typeof(val) !=3D=3D "function")
                    this._xmlHttpRequest.setRequestHeader(header, val);
            }
        }
        if (verb.toLowerCase() =3D=3D=3D "post") {
            if ((headers =3D=3D=3D null) || !headers['Content-Type']) {
                this._xmlHttpRequest.setRequestHeader('Content-Type', =
'application/x-www-form-urlencoded; charset=3Dutf-8');
            }
            if (!body) {
                body =3D "";
            }
        }
        var timeout =3D this._webRequest.get_timeout();
        if (timeout > 0) {
            this._timer =3D =
window.setTimeout(Function.createDelegate(this, this._onTimeout), =
timeout);
        }
        this._xmlHttpRequest.send(body);
        this._started =3D true;
    }
    function Sys$Net$XMLHttpExecutor$getResponseHeader(header) {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getResponseHeader" />
        /// <param name=3D"header" type=3D"String"></param>
        /// <returns type=3D"String"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "header", type: String}
        ]);
        if (e) throw e;
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getResponseHeader'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getResponseHeader'));
        }
        var result;
        try {
            result =3D this._xmlHttpRequest.getResponseHeader(header);
        } catch (e) {
        }
        if (!result) result =3D "";
        return result;
    }
    function Sys$Net$XMLHttpExecutor$getAllResponseHeaders() {
        /// <summary =
locid=3D"M:J#Sys.Net.XMLHttpExecutor.getAllResponseHeaders" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'getAllResponseHeaders'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'getAllResponseHeaders'));
        }
        return this._xmlHttpRequest.getAllResponseHeaders();
    }
    function Sys$Net$XMLHttpExecutor$get_responseData() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.responseData"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_responseData'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_responseData'));
        }
        return this._xmlHttpRequest.responseText;
    }
    function Sys$Net$XMLHttpExecutor$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusCode'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusCode'));
        }
        var result =3D 0;
        try {
            result =3D this._xmlHttpRequest.status;
        }
        catch(ex) {
        }
        return result;
    }
    function Sys$Net$XMLHttpExecutor$get_statusText() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.XMLHttpExecutor.statusText"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_statusText'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_statusText'));
        }
        return this._xmlHttpRequest.statusText;
    }
    function Sys$Net$XMLHttpExecutor$get_xml() {
        /// <value locid=3D"P:J#Sys.Net.XMLHttpExecutor.xml"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._responseAvailable) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallBeforeResponse, =
'get_xml'));
        }
        if (!this._xmlHttpRequest) {
            throw =
Error.invalidOperation(String.format(Sys.Res.cannotCallOutsideHandler, =
'get_xml'));
        }
        var xml =3D this._xmlHttpRequest.responseXML;
        if (!xml || !xml.documentElement) {
            xml =3D Sys.Net.XMLDOM(this._xmlHttpRequest.responseText);
            if (!xml || !xml.documentElement)
                return null;
        }
        else if (navigator.userAgent.indexOf('MSIE') !=3D=3D -1) {
            xml.setProperty('SelectionLanguage', 'XPath');
        }
        if (xml.documentElement.namespaceURI =3D=3D=3D =
"http://www.mozilla.org/newlayout/xml/parsererror.xml" &&
            xml.documentElement.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        if (xml.documentElement.firstChild && =
xml.documentElement.firstChild.tagName =3D=3D=3D "parsererror") {
            return null;
        }
       =20
        return xml;
    }
    function Sys$Net$XMLHttpExecutor$abort() {
        /// <summary locid=3D"M:J#Sys.Net.XMLHttpExecutor.abort" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._started) {
            throw =
Error.invalidOperation(Sys.Res.cannotAbortBeforeStart);
        }
        if (this._aborted || this._responseAvailable || this._timedOut)
            return;
        this._aborted =3D true;
        this._clearTimer();
        if (this._xmlHttpRequest && !this._responseAvailable) {
            this._xmlHttpRequest.onreadystatechange =3D =
Function.emptyMethod;
            this._xmlHttpRequest.abort();
           =20
            this._xmlHttpRequest =3D null;           =20
            this._webRequest.completed(Sys.EventArgs.Empty);
        }
    }
Sys.Net.XMLHttpExecutor.prototype =3D {
    get_timedOut: Sys$Net$XMLHttpExecutor$get_timedOut,
    get_started: Sys$Net$XMLHttpExecutor$get_started,
    get_responseAvailable: =
Sys$Net$XMLHttpExecutor$get_responseAvailable,
    get_aborted: Sys$Net$XMLHttpExecutor$get_aborted,
    executeRequest: Sys$Net$XMLHttpExecutor$executeRequest,
    getResponseHeader: Sys$Net$XMLHttpExecutor$getResponseHeader,
    getAllResponseHeaders: =
Sys$Net$XMLHttpExecutor$getAllResponseHeaders,
    get_responseData: Sys$Net$XMLHttpExecutor$get_responseData,
    get_statusCode: Sys$Net$XMLHttpExecutor$get_statusCode,
    get_statusText: Sys$Net$XMLHttpExecutor$get_statusText,
    get_xml: Sys$Net$XMLHttpExecutor$get_xml,
    abort: Sys$Net$XMLHttpExecutor$abort
}
Sys.Net.XMLHttpExecutor.registerClass('Sys.Net.XMLHttpExecutor', =
Sys.Net.WebRequestExecutor);
=20
Sys.Net._WebRequestManager =3D function Sys$Net$_WebRequestManager() {
    /// <summary locid=3D"P:J#Sys.Net.WebRequestManager.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._defaultTimeout =3D 0;
    this._defaultExecutorType =3D "Sys.Net.XMLHttpExecutor";
}
    function Sys$Net$_WebRequestManager$add_invokingRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.invokingRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_invokingRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("invokingRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$add_completedRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.Net.WebRequestManager.completedRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$remove_completedRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("completedRequest", =
handler);
    }
    function Sys$Net$_WebRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$_WebRequestManager$get_defaultTimeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultTimeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultTimeout;
    }
    function Sys$Net$_WebRequestManager$set_defaultTimeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._defaultTimeout =3D value;
    }
    function Sys$Net$_WebRequestManager$get_defaultExecutorType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequestManager.defaultExecutorType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultExecutorType;
    }
    function Sys$Net$_WebRequestManager$set_defaultExecutorType(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._defaultExecutorType =3D value;
    }
    function Sys$Net$_WebRequestManager$executeRequest(webRequest) {
        /// <summary =
locid=3D"M:J#Sys.Net.WebRequestManager.executeRequest" />
        /// <param name=3D"webRequest" =
type=3D"Sys.Net.WebRequest"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "webRequest", type: Sys.Net.WebRequest}
        ]);
        if (e) throw e;
        var executor =3D webRequest.get_executor();
        if (!executor) {
            var failed =3D false;
            try {
                var executorType =3D eval(this._defaultExecutorType);
                executor =3D new executorType();
            } catch (e) {
                failed =3D true;
            }
            if (failed  || =
!Sys.Net.WebRequestExecutor.isInstanceOfType(executor) || !executor) {
                throw Error.argument("defaultExecutorType", =
String.format(Sys.Res.invalidExecutorType, this._defaultExecutorType));
            }
            webRequest.set_executor(executor);
        }
        if (executor.get_aborted()) {
            return;
        }
        var evArgs =3D new Sys.Net.NetworkRequestEventArgs(webRequest);
        var handler =3D =
this._get_eventHandlerList().getHandler("invokingRequest");
        if (handler) {
            handler(this, evArgs);
        }
        if (!evArgs.get_cancel()) {
            executor.executeRequest();
        }
    }
Sys.Net._WebRequestManager.prototype =3D {
    add_invokingRequest: Sys$Net$_WebRequestManager$add_invokingRequest,
    remove_invokingRequest: =
Sys$Net$_WebRequestManager$remove_invokingRequest,
    add_completedRequest: =
Sys$Net$_WebRequestManager$add_completedRequest,
    remove_completedRequest: =
Sys$Net$_WebRequestManager$remove_completedRequest,
    _get_eventHandlerList: =
Sys$Net$_WebRequestManager$_get_eventHandlerList,
    get_defaultTimeout: Sys$Net$_WebRequestManager$get_defaultTimeout,
    set_defaultTimeout: Sys$Net$_WebRequestManager$set_defaultTimeout,
    get_defaultExecutorType: =
Sys$Net$_WebRequestManager$get_defaultExecutorType,
    set_defaultExecutorType: =
Sys$Net$_WebRequestManager$set_defaultExecutorType,
    executeRequest: Sys$Net$_WebRequestManager$executeRequest
}
Sys.Net._WebRequestManager.registerClass('Sys.Net._WebRequestManager');
Sys.Net.WebRequestManager =3D new Sys.Net._WebRequestManager();
=20
Sys.Net.NetworkRequestEventArgs =3D function =
Sys$Net$NetworkRequestEventArgs(webRequest) {
    /// <summary locid=3D"M:J#Sys.Net.NetworkRequestEventArgs.#ctor" />
    /// <param name=3D"webRequest" type=3D"Sys.Net.WebRequest"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "webRequest", type: Sys.Net.WebRequest}
    ]);
    if (e) throw e;
    Sys.Net.NetworkRequestEventArgs.initializeBase(this);
    this._webRequest =3D webRequest;
}
    function Sys$Net$NetworkRequestEventArgs$get_webRequest() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.Net.NetworkRequestEventArgs.webRequest"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._webRequest;
    }
Sys.Net.NetworkRequestEventArgs.prototype =3D {
    get_webRequest: Sys$Net$NetworkRequestEventArgs$get_webRequest
}
Sys.Net.NetworkRequestEventArgs.registerClass('Sys.Net.NetworkRequestEven=
tArgs', Sys.CancelEventArgs);
=20
Sys.Net.WebRequest =3D function Sys$Net$WebRequest() {
    /// <summary locid=3D"M:J#Sys.Net.WebRequest.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    this._url =3D "";
    this._headers =3D { };
    this._body =3D null;
    this._userContext =3D null;
    this._httpVerb =3D null;
    this._executor =3D null;
    this._invokeCalled =3D false;
    this._timeout =3D 0;
}
    function Sys$Net$WebRequest$add_completed(handler) {
    /// <summary locid=3D"E:J#Sys.Net.WebRequest.completed" />
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().addHandler("completed", handler);
    }
    function Sys$Net$WebRequest$remove_completed(handler) {
    var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
    if (e) throw e;
        this._get_eventHandlerList().removeHandler("completed", =
handler);
    }
    function Sys$Net$WebRequest$completed(eventArgs) {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.completed" />
        /// <param name=3D"eventArgs" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "eventArgs", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var handler =3D =
Sys.Net.WebRequestManager._get_eventHandlerList().getHandler("completedRe=
quest");
        if (handler) {
            handler(this._executor, eventArgs);
        }
        handler =3D =
this._get_eventHandlerList().getHandler("completed");
        if (handler) {
            handler(this._executor, eventArgs);
        }
    }
    function Sys$Net$WebRequest$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$Net$WebRequest$get_url() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.url"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._url;
    }
    function Sys$Net$WebRequest$set_url(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._url =3D value;
    }
    function Sys$Net$WebRequest$get_headers() {
        /// <value locid=3D"P:J#Sys.Net.WebRequest.headers"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._headers;
    }
    function Sys$Net$WebRequest$get_httpVerb() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebRequest.httpVerb"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._httpVerb =3D=3D=3D null) {
            if (this._body =3D=3D=3D null) {
                return "GET";
            }
            return "POST";
        }
        return this._httpVerb;
    }
    function Sys$Net$WebRequest$set_httpVerb(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if (value.length =3D=3D=3D 0) {
            throw Error.argument('value', Sys.Res.invalidHttpVerb);
        }
        this._httpVerb =3D value;
    }
    function Sys$Net$WebRequest$get_body() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.body"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._body;
    }
    function Sys$Net$WebRequest$set_body(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._body =3D value;
    }
    function Sys$Net$WebRequest$get_userContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebRequest.userContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebRequest$set_userContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebRequest$get_executor() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.Net.WebRequest.executor"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._executor;
    }
    function Sys$Net$WebRequest$set_executor(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.Net.WebRequestExecutor}]);
        if (e) throw e;
        if (this._executor !=3D=3D null && this._executor.get_started()) =
{
            throw =
Error.invalidOperation(Sys.Res.setExecutorAfterActive);
        }
        this._executor =3D value;
        this._executor._set_webRequest(this);
    }
    function Sys$Net$WebRequest$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebRequest.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._timeout =3D=3D=3D 0) {
            return Sys.Net.WebRequestManager.get_defaultTimeout();
        }
        return this._timeout;
    }
    function Sys$Net$WebRequest$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) {
            throw Error.argumentOutOfRange("value", value, =
Sys.Res.invalidTimeout);
        }
        this._timeout =3D value;
    }
    function Sys$Net$WebRequest$getResolvedUrl() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.getResolvedUrl" />
        /// <returns type=3D"String"></returns>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Sys.Net.WebRequest._resolveUrl(this._url);
    }
    function Sys$Net$WebRequest$invoke() {
        /// <summary locid=3D"M:J#Sys.Net.WebRequest.invoke" />
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._invokeCalled) {
            throw Error.invalidOperation(Sys.Res.invokeCalledTwice);
        }
        Sys.Net.WebRequestManager.executeRequest(this);
        this._invokeCalled =3D true;
    }
Sys.Net.WebRequest.prototype =3D {
    add_completed: Sys$Net$WebRequest$add_completed,
    remove_completed: Sys$Net$WebRequest$remove_completed,
    completed: Sys$Net$WebRequest$completed,
    _get_eventHandlerList: Sys$Net$WebRequest$_get_eventHandlerList,
    get_url: Sys$Net$WebRequest$get_url,
    set_url: Sys$Net$WebRequest$set_url,
    get_headers: Sys$Net$WebRequest$get_headers,
    get_httpVerb: Sys$Net$WebRequest$get_httpVerb,
    set_httpVerb: Sys$Net$WebRequest$set_httpVerb,
    get_body: Sys$Net$WebRequest$get_body,
    set_body: Sys$Net$WebRequest$set_body,
    get_userContext: Sys$Net$WebRequest$get_userContext,
    set_userContext: Sys$Net$WebRequest$set_userContext,
    get_executor: Sys$Net$WebRequest$get_executor,
    set_executor: Sys$Net$WebRequest$set_executor,
    get_timeout: Sys$Net$WebRequest$get_timeout,
    set_timeout: Sys$Net$WebRequest$set_timeout,
    getResolvedUrl: Sys$Net$WebRequest$getResolvedUrl,
    invoke: Sys$Net$WebRequest$invoke
}
Sys.Net.WebRequest._resolveUrl =3D function =
Sys$Net$WebRequest$_resolveUrl(url, baseUrl) {
    if (url && url.indexOf('://') !=3D=3D -1) {
        return url;
    }
    if (!baseUrl || baseUrl.length =3D=3D=3D 0) {
        var baseElement =3D document.getElementsByTagName('base')[0];
        if (baseElement && baseElement.href && baseElement.href.length > =
0) {
            baseUrl =3D baseElement.href;
        }
        else {
            baseUrl =3D document.URL;
        }
    }
    var qsStart =3D baseUrl.indexOf('?');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    qsStart =3D baseUrl.indexOf('#');
    if (qsStart !=3D=3D -1) {
        baseUrl =3D baseUrl.substr(0, qsStart);
    }
    baseUrl =3D baseUrl.substr(0, baseUrl.lastIndexOf('/') + 1);
    if (!url || url.length =3D=3D=3D 0) {
        return baseUrl;
    }
    if (url.charAt(0) =3D=3D=3D '/') {
        var slashslash =3D baseUrl.indexOf('://');
        if (slashslash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl1);
        }
        var nextSlash =3D baseUrl.indexOf('/', slashslash + 3);
        if (nextSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl2);
        }
        return baseUrl.substr(0, nextSlash) + url;
    }
    else {
        var lastSlash =3D baseUrl.lastIndexOf('/');
        if (lastSlash =3D=3D=3D -1) {
            throw Error.argument("baseUrl", Sys.Res.badBaseUrl3);
        }
        return baseUrl.substr(0, lastSlash+1) + url;
    }
}
Sys.Net.WebRequest._createQueryString =3D function =
Sys$Net$WebRequest$_createQueryString(queryString, encodeMethod) {
    if (!encodeMethod)
        encodeMethod =3D encodeURIComponent;
    var sb =3D new Sys.StringBuilder();
    var i =3D 0;
    for (var arg in queryString) {
        var obj =3D queryString[arg];
        if (typeof(obj) =3D=3D=3D "function") continue;
        var val =3D =
Sys.Serialization.JavaScriptSerializer.serialize(obj);
        if (i !=3D=3D 0) {
            sb.append('&');
        }
        sb.append(arg);
        sb.append('=3D');
        sb.append(encodeMethod(val));
        i++;
    }
    return sb.toString();
}
Sys.Net.WebRequest._createUrl =3D function =
Sys$Net$WebRequest$_createUrl(url, queryString) {
    if (!queryString) {
        return url;
    }
    var qs =3D Sys.Net.WebRequest._createQueryString(queryString);
    if (qs.length > 0) {
        var sep =3D '?';
        if (url && url.indexOf('?') !=3D=3D -1)
            sep =3D '&';
        return url + sep + qs;
    } else {
        return url;
    }
}
Sys.Net.WebRequest.registerClass('Sys.Net.WebRequest');
=20
Sys.Net.WebServiceProxy =3D function Sys$Net$WebServiceProxy() {
}
    function Sys$Net$WebServiceProxy$get_timeout() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceProxy.timeout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timeout;
    }
    function Sys$Net$WebServiceProxy$set_timeout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        if (value < 0) { throw Error.argumentOutOfRange('value', value, =
Sys.Res.invalidTimeout); }
        this._timeout =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultUserContext() {
        /// <value mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultUserContext"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._userContext;
    }
    function Sys$Net$WebServiceProxy$set_defaultUserContext(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
mayBeNull: true}]);
        if (e) throw e;
        this._userContext =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultSucceededCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultSucceededCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._succeeded;
    }
    function Sys$Net$WebServiceProxy$set_defaultSucceededCallback(value) =
{
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._succeeded =3D value;
    }
    function Sys$Net$WebServiceProxy$get_defaultFailedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Net.WebServiceProxy.defaultFailedCallback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._failed;
    }
    function Sys$Net$WebServiceProxy$set_defaultFailedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._failed =3D value;
    }
    function Sys$Net$WebServiceProxy$get_path() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceProxy.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path;
    }
    function Sys$Net$WebServiceProxy$set_path(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        this._path =3D value;
    }
    function Sys$Net$WebServiceProxy$_invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext) {
        /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy._invoke" />
        /// <param name=3D"servicePath" type=3D"String"></param>
        /// <param name=3D"methodName" type=3D"String"></param>
        /// <param name=3D"useGet" type=3D"Boolean"></param>
        /// <param name=3D"params"></param>
        /// <param name=3D"onSuccess" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"onFailure" type=3D"Function" =
mayBeNull=3D"true" optional=3D"true"></param>
        /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
        /// <returns type=3D"Sys.Net.WebRequest"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "servicePath", type: String},
            {name: "methodName", type: String},
            {name: "useGet", type: Boolean},
            {name: "params"},
            {name: "onSuccess", type: Function, mayBeNull: true, =
optional: true},
            {name: "onFailure", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        if (onSuccess =3D=3D=3D null || typeof onSuccess =3D=3D=3D =
'undefined') onSuccess =3D this.get_defaultSucceededCallback();
        if (onFailure =3D=3D=3D null || typeof onFailure =3D=3D=3D =
'undefined') onFailure =3D this.get_defaultFailedCallback();
        if (userContext =3D=3D=3D null || typeof userContext =3D=3D=3D =
'undefined') userContext =3D this.get_defaultUserContext();
       =20
        return Sys.Net.WebServiceProxy.invoke(servicePath, methodName, =
useGet, params, onSuccess, onFailure, userContext, this.get_timeout());
    }
Sys.Net.WebServiceProxy.prototype =3D {
    get_timeout: Sys$Net$WebServiceProxy$get_timeout,
    set_timeout: Sys$Net$WebServiceProxy$set_timeout,
    get_defaultUserContext: =
Sys$Net$WebServiceProxy$get_defaultUserContext,
    set_defaultUserContext: =
Sys$Net$WebServiceProxy$set_defaultUserContext,
    get_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$get_defaultSucceededCallback,
    set_defaultSucceededCallback: =
Sys$Net$WebServiceProxy$set_defaultSucceededCallback,
    get_defaultFailedCallback: =
Sys$Net$WebServiceProxy$get_defaultFailedCallback,
    set_defaultFailedCallback: =
Sys$Net$WebServiceProxy$set_defaultFailedCallback,
    get_path: Sys$Net$WebServiceProxy$get_path,
    set_path: Sys$Net$WebServiceProxy$set_path,
    _invoke: Sys$Net$WebServiceProxy$_invoke
}
Sys.Net.WebServiceProxy.registerClass('Sys.Net.WebServiceProxy');
Sys.Net.WebServiceProxy.invoke =3D function =
Sys$Net$WebServiceProxy$invoke(servicePath, methodName, useGet, params, =
onSuccess, onFailure, userContext, timeout) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceProxy.invoke" />
    /// <param name=3D"servicePath" type=3D"String"></param>
    /// <param name=3D"methodName" type=3D"String"></param>
    /// <param name=3D"useGet" type=3D"Boolean" =
optional=3D"true"></param>
    /// <param name=3D"params" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onSuccess" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"onFailure" type=3D"Function" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"userContext" mayBeNull=3D"true" =
optional=3D"true"></param>
    /// <param name=3D"timeout" type=3D"Number" =
optional=3D"true"></param>
    /// <returns type=3D"Sys.Net.WebRequest"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "servicePath", type: String},
        {name: "methodName", type: String},
        {name: "useGet", type: Boolean, optional: true},
        {name: "params", mayBeNull: true, optional: true},
        {name: "onSuccess", type: Function, mayBeNull: true, optional: =
true},
        {name: "onFailure", type: Function, mayBeNull: true, optional: =
true},
        {name: "userContext", mayBeNull: true, optional: true},
        {name: "timeout", type: Number, optional: true}
    ]);
    if (e) throw e;
    var request =3D new Sys.Net.WebRequest();
    request.get_headers()['Content-Type'] =3D 'application/json; =
charset=3Dutf-8';
    if (!params) params =3D {};
    var urlParams =3D params;
    if (!useGet || !urlParams) urlParams =3D {};
    =
request.set_url(Sys.Net.WebRequest._createUrl(servicePath+"/"+encodeURICo=
mponent(methodName), urlParams));
    var body =3D null;
    if (!useGet) {
        body =3D =
Sys.Serialization.JavaScriptSerializer.serialize(params);
        if (body =3D=3D=3D "{}") body =3D "";
    }
    request.set_body(body);
    request.add_completed(onComplete);
    if (timeout && timeout > 0) request.set_timeout(timeout);
    request.invoke();
    function onComplete(response, eventArgs) {
        if (response.get_responseAvailable()) {
            var statusCode =3D response.get_statusCode();
            var result =3D null;
          =20
            try {
                var contentType =3D =
response.getResponseHeader("Content-Type");
                if (contentType.startsWith("application/json")) {
                    result =3D response.get_object();
                }
                else if (contentType.startsWith("text/xml")) {
                    result =3D response.get_xml();
                }
                else {
                    result =3D response.get_responseData();
                }
            } catch (ex) {
            }
            var error =3D response.getResponseHeader("jsonerror");
            var errorObj =3D (error =3D=3D=3D "true");
            if (errorObj) {
                if (result) {
                    result =3D new Sys.Net.WebServiceError(false, =
result.Message, result.StackTrace, result.ExceptionType);
                }
            }
            else if (contentType.startsWith("application/json")) {
                if (!result || typeof(result.d) =3D=3D=3D "undefined") {
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceInvalidJsonWrapper, methodName));
                }
                result =3D result.d;
            }
            if (((statusCode < 200) || (statusCode >=3D 300)) || =
errorObj) {
                if (onFailure) {
                    if (!result || !errorObj) {
                        result =3D new Sys.Net.WebServiceError(false , =
String.format(Sys.Res.webServiceFailedNoMsg, methodName), "", "");
                    }
                    result._statusCode =3D statusCode;
                    onFailure(result, userContext, methodName);
                }
                else {
                    var error;
                    if (result && errorObj) {
                        error =3D result.get_exceptionType() + "-- " + =
result.get_message();
                    }
                    else {
                        error =3D response.get_responseData();
                    }
                    throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
                }
            }
            else if (onSuccess) {
                onSuccess(result, userContext, methodName);
            }
        }
        else {
            var msg;
            if (response.get_timedOut()) {
                msg =3D String.format(Sys.Res.webServiceTimedOut, =
methodName);
            }
            else {
                msg =3D String.format(Sys.Res.webServiceFailedNoMsg, =
methodName)
            }
            if (onFailure) {
                onFailure(new =
Sys.Net.WebServiceError(response.get_timedOut(), msg, "", ""), =
userContext, methodName);
            }
            else {
                throw =
Sys.Net.WebServiceProxy._createFailedError(methodName, msg);
            }
        }
    }
    return request;
}
Sys.Net.WebServiceProxy._createFailedError =3D function =
Sys$Net$WebServiceProxy$_createFailedError(methodName, errorMessage) {
    var displayMessage =3D "Sys.Net.WebServiceFailedException: " + =
errorMessage;
    var e =3D Error.create(displayMessage, { 'name': =
'Sys.Net.WebServiceFailedException', 'methodName': methodName });
    e.popStackFrame();
    return e;
}
Sys.Net.WebServiceProxy._defaultFailedCallback =3D function =
Sys$Net$WebServiceProxy$_defaultFailedCallback(err, methodName) {
    var error =3D err.get_exceptionType() + "-- " + err.get_message();
    throw Sys.Net.WebServiceProxy._createFailedError(methodName, =
String.format(Sys.Res.webServiceFailed, methodName, error));
}
Sys.Net.WebServiceProxy._generateTypedConstructor =3D function =
Sys$Net$WebServiceProxy$_generateTypedConstructor(type) {
    return function(properties) {
        if (properties) {
            for (var name in properties) {
                this[name] =3D properties[name];
            }
        }
        this.__type =3D type;
    }
}
=20
Sys.Net.WebServiceError =3D function Sys$Net$WebServiceError(timedOut, =
message, stackTrace, exceptionType) {
    /// <summary locid=3D"M:J#Sys.Net.WebServiceError.#ctor" />
    /// <param name=3D"timedOut" type=3D"Boolean"></param>
    /// <param name=3D"message" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"stackTrace" type=3D"String" =
mayBeNull=3D"true"></param>
    /// <param name=3D"exceptionType" type=3D"String" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "timedOut", type: Boolean},
        {name: "message", type: String, mayBeNull: true},
        {name: "stackTrace", type: String, mayBeNull: true},
        {name: "exceptionType", type: String, mayBeNull: true}
    ]);
    if (e) throw e;
    this._timedOut =3D timedOut;
    this._message =3D message;
    this._stackTrace =3D stackTrace;
    this._exceptionType =3D exceptionType;
    this._statusCode =3D -1;
}
    function Sys$Net$WebServiceError$get_timedOut() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Net.WebServiceError.timedOut"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._timedOut;
    }
    function Sys$Net$WebServiceError$get_statusCode() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.Net.WebServiceError.statusCode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._statusCode;
    }
    function Sys$Net$WebServiceError$get_message() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.message"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._message;
    }
    function Sys$Net$WebServiceError$get_stackTrace() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.stackTrace"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._stackTrace;
    }
    function Sys$Net$WebServiceError$get_exceptionType() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.Net.WebServiceError.exceptionType"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._exceptionType;
    }
Sys.Net.WebServiceError.prototype =3D {
    get_timedOut: Sys$Net$WebServiceError$get_timedOut,
    get_statusCode: Sys$Net$WebServiceError$get_statusCode,
    get_message: Sys$Net$WebServiceError$get_message,
    get_stackTrace: Sys$Net$WebServiceError$get_stackTrace,
    get_exceptionType: Sys$Net$WebServiceError$get_exceptionType
}
Sys.Net.WebServiceError.registerClass('Sys.Net.WebServiceError');
Type.registerNamespace('Sys.Services');
Sys.Services._ProfileService =3D function Sys$Services$_ProfileService() =
{
    /// <summary locid=3D"M:J#Sys.Net.ProfileService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._ProfileService.initializeBase(this);
    this.properties =3D {};
}
Sys.Services._ProfileService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultLoadCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.defaultSaveCompletedCallback"></=
value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultSaveCompletedCallback;
    }
    function =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultSaveCompletedCallback =3D value;
    }
    function Sys$Services$_ProfileService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.ProfileService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_ProfileService$load(propertyNames, =
loadCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.load" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var parameters;
        var methodName;
        if (!propertyNames) {
            methodName =3D "GetAllPropertiesForCurrentUser";
            parameters =3D { authenticatedUserOnly: false };
        }
        else {
            methodName =3D "GetPropertiesForCurrentUser";
            parameters =3D { properties: =
this._clonePropertyNames(propertyNames), authenticatedUserOnly: false };
        }
        this._invoke(this._get_path(),
                                        methodName,
                                        false,
                                        parameters,
                                        Function.createDelegate(this, =
this._onLoadComplete),
                                        Function.createDelegate(this, =
this._onLoadFailed),
                                        [loadCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_ProfileService$save(propertyNames, =
saveCompletedCallback, failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.ProfileService.save" />
        /// <param name=3D"propertyNames" type=3D"Array" =
elementType=3D"String" optional=3D"true" elementMayBeNull=3D"false" =
mayBeNull=3D"true"></param>
        /// <param name=3D"saveCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "propertyNames", type: Array, mayBeNull: true, =
optional: true, elementType: String},
            {name: "saveCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        var flattenedProperties =3D =
this._flattenProperties(propertyNames, this.properties);
        this._invoke(this._get_path(),
                                        "SetPropertiesForCurrentUser",
                                        false,
                                        { values: =
flattenedProperties.value, authenticatedUserOnly: false },
                                        Function.createDelegate(this, =
this._onSaveComplete),
                                        Function.createDelegate(this, =
this._onSaveFailed),
                                        [saveCompletedCallback, =
failedCallback, userContext, flattenedProperties.count]);
    }
    function Sys$Services$_ProfileService$_clonePropertyNames(arr) {
        var nodups =3D [];
        var seen =3D {};
        for (var i=3D0; i < arr.length; i++) {
            var prop =3D arr[i];
            if(!seen[prop]) { Array.add(nodups, prop); =
seen[prop]=3Dtrue; };
        }
        return nodups;
    }
    function =
Sys$Services$_ProfileService$_flattenProperties(propertyNames, =
properties, groupName) {
        var flattenedProperties =3D {};
        var val;
        var key;
        var count =3D 0;
        if (propertyNames && propertyNames.length =3D=3D=3D 0) {
            return { value: flattenedProperties, count: 0 };
        }
        for (var property in properties) {
            val =3D properties[property];
            key =3D groupName ? groupName + "." + property : property;
            if(Sys.Services.ProfileGroup.isInstanceOfType(val)) {
                var obj =3D this._flattenProperties(propertyNames, val, =
key);
                var groupProperties =3D obj.value;
                count +=3D obj.count;=20
                for(var subKey in groupProperties) {
                    var subVal =3D groupProperties[subKey];
                    flattenedProperties[subKey] =3D subVal;
                }
            }
            else {
                if(!propertyNames || Array.indexOf(propertyNames, key) =
!=3D=3D -1) {
                    flattenedProperties[key] =3D val;
                    count++;=20
                }
            }
        }
        return { value: flattenedProperties, count: count };
    }
    function Sys$Services$_ProfileService$_get_path() {
        var path =3D this.get_path();
        if (!path.length) {
            path =3D Sys.Services._ProfileService.DefaultWebServicePath;
        }
        if (!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_ProfileService$_onLoadComplete(result, =
context, methodName) {
        if (typeof(result) !=3D=3D "object") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Object"));
        }
        var unflattened =3D this._unflattenProperties(result);
        for (var name in unflattened) {
            this.properties[name] =3D unflattened[name];
        }
       =20
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(result.length, userContext, =
"Sys.Services.ProfileService.load");
        }
    }
    function Sys$Services$_ProfileService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();       =20
            callback(err, userContext, =
"Sys.Services.ProfileService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function Sys$Services$_ProfileService$_onSaveComplete(result, =
context, methodName) {
        var count =3D context[3];
        if (result !=3D=3D null) {=20
            if (result instanceof Array) {
                count -=3D result.length;
            }
            else if (typeof(result) =3D=3D=3D 'number') {
                count =3D result;
            }
            else {
                throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
            }
        }
       =20
        var callback =3D context[0] || =
this.get_defaultSaveCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(count, userContext, =
"Sys.Services.ProfileService.save");
        }
    }
    function Sys$Services$_ProfileService$_onSaveFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.ProfileService.save");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_ProfileService$_unflattenProperties(properties) {
        var unflattenedProperties =3D {};
        var dotIndex;
        var val;
        var count =3D 0;
        for (var key in properties) {
            count++;
            val =3D properties[key];
            dotIndex =3D key.indexOf('.');
            if (dotIndex !=3D=3D -1) {
                var groupName =3D key.substr(0, dotIndex);
                key =3D key.substr(dotIndex+1);
                var group =3D unflattenedProperties[groupName];
                if (!group || =
!Sys.Services.ProfileGroup.isInstanceOfType(group)) {
                    group =3D new Sys.Services.ProfileGroup();
                    unflattenedProperties[groupName] =3D group;
                }
                group[key] =3D val;
            }
            else {
                unflattenedProperties[key] =3D val;
            }
        }
        properties.length =3D count;
        return unflattenedProperties;
    }
Sys.Services._ProfileService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _defaultSaveCompletedCallback: null,
    _path: '',
    _timeout: 0,
    get_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_ProfileService$set_defaultLoadCompletedCallback,
    get_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$get_defaultSaveCompletedCallback,
    set_defaultSaveCompletedCallback: =
Sys$Services$_ProfileService$set_defaultSaveCompletedCallback,
    get_path: Sys$Services$_ProfileService$get_path,
    load: Sys$Services$_ProfileService$load,
    save: Sys$Services$_ProfileService$save,
    _clonePropertyNames: =
Sys$Services$_ProfileService$_clonePropertyNames,   =20
    _flattenProperties: Sys$Services$_ProfileService$_flattenProperties,
    _get_path: Sys$Services$_ProfileService$_get_path,   =20
    _onLoadComplete: Sys$Services$_ProfileService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_ProfileService$_onLoadFailed,
    _onSaveComplete: Sys$Services$_ProfileService$_onSaveComplete,
    _onSaveFailed: Sys$Services$_ProfileService$_onSaveFailed,
    _unflattenProperties: =
Sys$Services$_ProfileService$_unflattenProperties
}
Sys.Services._ProfileService.registerClass('Sys.Services._ProfileService'=
, Sys.Net.WebServiceProxy);
Sys.Services.ProfileService =3D new Sys.Services._ProfileService();
Sys.Services.ProfileGroup =3D function =
Sys$Services$ProfileGroup(properties) {
    /// <summary locid=3D"M:J#Sys.Services.ProfileGroup.#ctor" />
    /// <param name=3D"properties" optional=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "properties", mayBeNull: true, optional: true}
    ]);
    if (e) throw e;
    if (properties) {
        for (var property in properties) {
            this[property] =3D properties[property];
        }
    }
}
Sys.Services.ProfileGroup.registerClass('Sys.Services.ProfileGroup');
Sys.Services._AuthenticationService =3D function =
Sys$Services$_AuthenticationService() {
    /// <summary locid=3D"M:J#Sys.Services.AuthenticationService.#ctor" =
/>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._AuthenticationService.initializeBase(this);
}
Sys.Services._AuthenticationService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLoginCompletedCall=
back"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoginCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback(val=
ue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoginCompletedCallback =3D value;
    }
    function =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback() =
{
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.defaultLogoutCompletedCal=
lback"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLogoutCompletedCallback;
    }
    function =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback(va=
lue) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLogoutCompletedCallback =3D value;
    }
    function Sys$Services$_AuthenticationService$get_isLoggedIn() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.Services.AuthenticationService.isLoggedIn"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._authenticated;
    }
    function Sys$Services$_AuthenticationService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.AuthenticationService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_AuthenticationService$login(username, =
password, isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.login" />
        /// <param name=3D"username" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <param name=3D"password" type=3D"String" =
mayBeNull=3D"true"></param>
        /// <param name=3D"isPersistent" type=3D"Boolean" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"customInfo" type=3D"String" optional=3D"true" =
mayBeNull=3D"true"></param>
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"loginCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "username", type: String},
            {name: "password", type: String, mayBeNull: true},
            {name: "isPersistent", type: Boolean, mayBeNull: true, =
optional: true},
            {name: "customInfo", type: String, mayBeNull: true, =
optional: true},
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "loginCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Login", false,
                                        { userName: username, password: =
password, createPersistentCookie: isPersistent },
                                        Function.createDelegate(this, =
this._onLoginComplete),
                                        Function.createDelegate(this, =
this._onLoginFailed),
                                        [username, password, =
isPersistent, customInfo, redirectUrl, loginCompletedCallback, =
failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$logout(redirectUrl, =
logoutCompletedCallback, failedCallback, userContext) {
        /// <summary =
locid=3D"M:J#Sys.Services.AuthenticationService.logout" />
        /// <param name=3D"redirectUrl" type=3D"String" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"logoutCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "redirectUrl", type: String, mayBeNull: true, =
optional: true},
            {name: "logoutCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        this._invoke(this._get_path(), "Logout", false, {},=20
                                        Function.createDelegate(this, =
this._onLogoutComplete),
                                        Function.createDelegate(this, =
this._onLogoutFailed),
                                        [redirectUrl, =
logoutCompletedCallback, failedCallback, userContext]);
    }
    function Sys$Services$_AuthenticationService$_get_path() {
        var path =3D this.get_path();
        if(!path.length) {
            path =3D =
Sys.Services._AuthenticationService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function =
Sys$Services$_AuthenticationService$_onLoginComplete(result, context, =
methodName) {
        if(typeof(result) !=3D=3D "boolean") {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Boolean"));
        }
       =20
        var redirectUrl =3D context[4];
        var userContext =3D context[7] || this.get_defaultUserContext();
        var callback =3D context[5] || =
this.get_defaultLoginCompletedCallback() || =
this.get_defaultSucceededCallback();
       =20
        if(result) {
            this._authenticated =3D true;
            if (callback) {
                callback(true, userContext, =
"Sys.Services.AuthenticationService.login");
            }
           =20
            if (typeof(redirectUrl) !=3D=3D "undefined" && redirectUrl =
!=3D=3D null) {
                window.location.href =3D redirectUrl;
            }
        }
        else if (callback) {
            callback(false, userContext, =
"Sys.Services.AuthenticationService.login");
        }
    }
    function Sys$Services$_AuthenticationService$_onLoginFailed(err, =
context, methodName) {
        var callback =3D context[6] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[7] || =
this.get_defaultUserContext();
            callback(err, userContext, =
"Sys.Services.AuthenticationService.login");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_onLogoutComplete(result, context, =
methodName) {
        if(result !=3D=3D null) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "null"));
        }
       =20
        var redirectUrl =3D context[0];
        var userContext =3D context[3] || this.get_defaultUserContext();
        var callback =3D context[1] || =
this.get_defaultLogoutCompletedCallback() || =
this.get_defaultSucceededCallback();
        this._authenticated =3D false;
       =20
        if (callback) {
            callback(null, userContext, =
"Sys.Services.AuthenticationService.logout");
        }
       =20
        if(!redirectUrl) {
            window.location.reload();
        }
        else {
            window.location.href =3D redirectUrl;
        }
    }
    function Sys$Services$_AuthenticationService$_onLogoutFailed(err, =
context, methodName) {
        var callback =3D context[2] || this.get_defaultFailedCallback();
        if (callback) {
            callback(err, context[3], =
"Sys.Services.AuthenticationService.logout");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
    function =
Sys$Services$_AuthenticationService$_setAuthenticated(authenticated) {
        this._authenticated =3D authenticated;
    }
Sys.Services._AuthenticationService.prototype =3D {
    _defaultLoginCompletedCallback: null,
    _defaultLogoutCompletedCallback: null,
    _path: '',
    _timeout: 0,
    _authenticated: false,
    get_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLoginCompletedCallback,
    set_defaultLoginCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLoginCompletedCallback,
    get_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$get_defaultLogoutCompletedCallback,
    set_defaultLogoutCompletedCallback: =
Sys$Services$_AuthenticationService$set_defaultLogoutCompletedCallback,
    get_isLoggedIn: Sys$Services$_AuthenticationService$get_isLoggedIn,
    get_path: Sys$Services$_AuthenticationService$get_path, =20
    login: Sys$Services$_AuthenticationService$login,
    logout: Sys$Services$_AuthenticationService$logout,
    _get_path: Sys$Services$_AuthenticationService$_get_path,
    _onLoginComplete: =
Sys$Services$_AuthenticationService$_onLoginComplete,
    _onLoginFailed: Sys$Services$_AuthenticationService$_onLoginFailed,
    _onLogoutComplete: =
Sys$Services$_AuthenticationService$_onLogoutComplete,
    _onLogoutFailed: =
Sys$Services$_AuthenticationService$_onLogoutFailed,
    _setAuthenticated: =
Sys$Services$_AuthenticationService$_setAuthenticated   =20
}
Sys.Services._AuthenticationService.registerClass('Sys.Services._Authenti=
cationService', Sys.Net.WebServiceProxy);
Sys.Services.AuthenticationService =3D new =
Sys.Services._AuthenticationService();
Sys.Services._RoleService =3D function Sys$Services$_RoleService() {
    /// <summary locid=3D"M:J#Sys.Services.RoleService.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    Sys.Services._RoleService.initializeBase(this);
    this._roles =3D [];
}
Sys.Services._RoleService.DefaultWebServicePath =3D '';
    function =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback() {
        /// <value type=3D"Function" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.defaultLoadCompletedCallback"></val=
ue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._defaultLoadCompletedCallback;
    }
    function =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Function, mayBeNull: true}]);
        if (e) throw e;
        this._defaultLoadCompletedCallback =3D value;
    }
    function Sys$Services$_RoleService$get_path() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.Services.RoleService.path"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._path || '';
    }
    function Sys$Services$_RoleService$get_roles() {
        /// <value type=3D"Array" elementType=3D"String" =
mayBeNull=3D"false" =
locid=3D"P:J#Sys.Services.RoleService.roles"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return Array.clone(this._roles);
    }
    function Sys$Services$_RoleService$isUserInRole(role) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.isUserInRole" =
/>
        /// <param name=3D"role" type=3D"String" =
mayBeNull=3D"false"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "role", type: String}
        ]);
        if (e) throw e;
        var v =3D this._get_rolesIndex()[role.trim().toLowerCase()];
        return !!v;
    }
    function Sys$Services$_RoleService$load(loadCompletedCallback, =
failedCallback, userContext) {
        /// <summary locid=3D"M:J#Sys.Services.RoleService.load" />
        /// <param name=3D"loadCompletedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"failedCallback" type=3D"Function" =
optional=3D"true" mayBeNull=3D"true"></param>
        /// <param name=3D"userContext" optional=3D"true" =
mayBeNull=3D"true"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "loadCompletedCallback", type: Function, mayBeNull: =
true, optional: true},
            {name: "failedCallback", type: Function, mayBeNull: true, =
optional: true},
            {name: "userContext", mayBeNull: true, optional: true}
        ]);
        if (e) throw e;
        Sys.Net.WebServiceProxy.invoke(
                    this._get_path(),
                    "GetRolesForCurrentUser",
                    false,
                    {} ,
                    Function.createDelegate(this, this._onLoadComplete),
                    Function.createDelegate(this, this._onLoadFailed),
                    [loadCompletedCallback, failedCallback, =
userContext],
                    this.get_timeout());
    }
    function Sys$Services$_RoleService$_get_path() {
        var path =3D this.get_path();
        if(!path || !path.length) {
            path =3D Sys.Services._RoleService.DefaultWebServicePath;
        }
        if(!path || !path.length) {
            throw Error.invalidOperation(Sys.Res.servicePathNotSet);
        }
        return path;
    }
    function Sys$Services$_RoleService$_get_rolesIndex() {
        if (!this._rolesIndex) {
            var index =3D {};
            for(var i=3D0; i < this._roles.length; i++) {
                index[this._roles[i].toLowerCase()] =3D true;
            }
            this._rolesIndex =3D index;
        }
        return this._rolesIndex;
    }
    function Sys$Services$_RoleService$_onLoadComplete(result, context, =
methodName) {
        if(result && !(result instanceof Array)) {
            throw =
Error.invalidOperation(String.format(Sys.Res.webServiceInvalidReturnType,=
 methodName, "Array"));
        }
        this._roles =3D result;
        this._rolesIndex =3D null;
        var callback =3D context[0] || =
this.get_defaultLoadCompletedCallback() || =
this.get_defaultSucceededCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            var clonedResult =3D Array.clone(result);
            callback(clonedResult, userContext, =
"Sys.Services.RoleService.load");
        }
    }
    function Sys$Services$_RoleService$_onLoadFailed(err, context, =
methodName) {
        var callback =3D context[1] || this.get_defaultFailedCallback();
        if (callback) {
            var userContext =3D context[2] || =
this.get_defaultUserContext();
            callback(err, userContext, "Sys.Services.RoleService.load");
        }
        else {
            Sys.Net.WebServiceProxy._defaultFailedCallback(err, =
methodName);
        }
    }
Sys.Services._RoleService.prototype =3D {
    _defaultLoadCompletedCallback: null,
    _rolesIndex: null,
    _timeout: 0,
    _path: '',
    get_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$get_defaultLoadCompletedCallback,
    set_defaultLoadCompletedCallback: =
Sys$Services$_RoleService$set_defaultLoadCompletedCallback,
    get_path: Sys$Services$_RoleService$get_path,
    get_roles: Sys$Services$_RoleService$get_roles,
    isUserInRole: Sys$Services$_RoleService$isUserInRole,
    load: Sys$Services$_RoleService$load,
    _get_path: Sys$Services$_RoleService$_get_path, =20
    _get_rolesIndex: Sys$Services$_RoleService$_get_rolesIndex,
    _onLoadComplete: Sys$Services$_RoleService$_onLoadComplete,
    _onLoadFailed: Sys$Services$_RoleService$_onLoadFailed
}
Sys.Services._RoleService.registerClass('Sys.Services._RoleService', =
Sys.Net.WebServiceProxy);
Sys.Services.RoleService =3D new Sys.Services._RoleService();
Type.registerNamespace('Sys.Serialization');
Sys.Serialization.JavaScriptSerializer =3D function =
Sys$Serialization$JavaScriptSerializer() {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.#ctor" />
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
}
Sys.Serialization.JavaScriptSerializer.registerClass('Sys.Serialization.J=
avaScriptSerializer');
Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs =3D [];
Sys.Serialization.JavaScriptSerializer._charsToEscape =3D [];
Sys.Serialization.JavaScriptSerializer._dateRegEx =3D new =
RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4}=
)?\\)\\\\/\\"', 'g');
Sys.Serialization.JavaScriptSerializer._escapeChars =3D {};
Sys.Serialization.JavaScriptSerializer._escapeRegEx =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'i');
Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal =3D new =
RegExp('["\\\\\\x00-\\x1F]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonRegEx =3D new =
RegExp('[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]', 'g');
Sys.Serialization.JavaScriptSerializer._jsonStringRegEx =3D new =
RegExp('"(\\\\.|[^"\\\\])*"', 'g');
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName =3D =
'__type';
Sys.Serialization.JavaScriptSerializer._init =3D function =
Sys$Serialization$JavaScriptSerializer$_init() {
    var replaceChars =3D =
['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\=
\u0007',
                        =
'\\b','\\t','\\n','\\u000b','\\f','\\r','\\u000e','\\u000f','\\u0010','\\=
u0011',
                        =
'\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\=
u0019',
                        =
'\\u001a','\\u001b','\\u001c','\\u001d','\\u001e','\\u001f'];
    Sys.Serialization.JavaScriptSerializer._charsToEscape[0] =3D '\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['\\'] =
=3D new RegExp('\\\\', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['\\'] =3D =
'\\\\';
    Sys.Serialization.JavaScriptSerializer._charsToEscape[1] =3D '"';
    Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs['"'] =3D =
new RegExp('"', 'g');
    Sys.Serialization.JavaScriptSerializer._escapeChars['"'] =3D '\\"';
    for (var i =3D 0; i < 32; i++) {
        var c =3D String.fromCharCode(i);
        Sys.Serialization.JavaScriptSerializer._charsToEscape[i+2] =3D =
c;
        Sys.Serialization.JavaScriptSerializer._charsToEscapeRegExs[c] =
=3D new RegExp(c, 'g');
        Sys.Serialization.JavaScriptSerializer._escapeChars[c] =3D =
replaceChars[i];
    }
}
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeBooleanWithBuilder(objec=
t, stringBuilder) {
    stringBuilder.append(object.toString());
}
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeNumberWithBuilder(object=
, stringBuilder) {
    if (isFinite(object)) {
        stringBuilder.append(String(object));
    }
    else {
        throw =
Error.invalidOperation(Sys.Res.cannotSerializeNonFiniteNumbers);
    }
}
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeStringWithBuilder(string=
, stringBuilder) {
    stringBuilder.append('"');
    if =
(Sys.Serialization.JavaScriptSerializer._escapeRegEx.test(string)) {
        if (Sys.Serialization.JavaScriptSerializer._charsToEscape.length =
=3D=3D=3D 0) {
            Sys.Serialization.JavaScriptSerializer._init();
        }
        if (string.length < 128) {
            string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._escapeRegExGlobal,=

                function(x) { return =
Sys.Serialization.JavaScriptSerializer._escapeChars[x]; });
        }
        else {
            for (var i =3D 0; i < 34; i++) {
                var c =3D =
Sys.Serialization.JavaScriptSerializer._charsToEscape[i];
                if (string.indexOf(c) !=3D=3D -1) {
                    if (Sys.Browser.agent =3D=3D=3D Sys.Browser.Opera || =
Sys.Browser.agent =3D=3D=3D Sys.Browser.FireFox) {
                        string =3D =
string.split(c).join(Sys.Serialization.JavaScriptSerializer._escapeChars[=
c]);
                    }
                    else {
                        string =3D =
string.replace(Sys.Serialization.JavaScriptSerializer._charsToEscapeRegEx=
s[c],
                            =
Sys.Serialization.JavaScriptSerializer._escapeChars[c]);
                    }
                }
            }
       }
    }
    stringBuilder.append(string);
    stringBuilder.append('"');
}
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder =3D =
function =
Sys$Serialization$JavaScriptSerializer$_serializeWithBuilder(object, =
stringBuilder, sort, prevObjects) {
    var i;
    switch (typeof object) {
    case 'object':
        if (object) {
            if (prevObjects){
                for( var j =3D 0; j < prevObjects.length; j++) {
                    if (prevObjects[j] =3D=3D=3D object) {
                        throw =
Error.invalidOperation(Sys.Res.cannotSerializeObjectWithCycle);
                    }
                }
            }
            else {
                prevObjects =3D new Array();
            }
            try {
                Array.add(prevObjects, object);
               =20
                if (Number.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
                }
                else if (Boolean.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
                }
                else if (String.isInstanceOfType(object)){
                    =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
                }
           =20
                else if (Array.isInstanceOfType(object)) {
                    stringBuilder.append('[');
                  =20
                    for (i =3D 0; i < object.length; ++i) {
                        if (i > 0) {
                            stringBuilder.append(',');
                        }
                        =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object[i], =
stringBuilder,false,prevObjects);
                    }
                    stringBuilder.append(']');
                }
                else {
                    if (Date.isInstanceOfType(object)) {
                        stringBuilder.append('"\\/Date(');
                        stringBuilder.append(object.getTime());
                        stringBuilder.append(')\\/"');
                        break;
                    }
                    var properties =3D [];
                    var propertyCount =3D 0;
                    for (var name in object) {
                        if (name.startsWith('$')) {
                            continue;
                        }
                        if (name =3D=3D=3D =
Sys.Serialization.JavaScriptSerializer._serverTypeFieldName && =
propertyCount !=3D=3D 0){
                            properties[propertyCount++] =3D =
properties[0];
                            properties[0] =3D name;
                        }
                        else{
                            properties[propertyCount++] =3D name;
                        }
                    }
                    if (sort) properties.sort();
                    stringBuilder.append('{');
                    var needComma =3D false;
                    =20
                    for (i=3D0; i<propertyCount; i++) {
                        var value =3D object[properties[i]];
                        if (typeof value !=3D=3D 'undefined' && typeof =
value !=3D=3D 'function') {
                            if (needComma) {
                                stringBuilder.append(',');
                            }
                            else {
                                needComma =3D true;
                            }
                          =20
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(properties[i=
], stringBuilder, sort, prevObjects);
                            stringBuilder.append(':');
                            =
Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(value, =
stringBuilder, sort, prevObjects);
                         =20
                        }
                    }
                stringBuilder.append('}');
                }
            }
            finally {
                Array.removeAt(prevObjects, prevObjects.length - 1);
            }
        }
        else {
            stringBuilder.append('null');
        }
        break;
    case 'number':
        =
Sys.Serialization.JavaScriptSerializer._serializeNumberWithBuilder(object=
, stringBuilder);
        break;
    case 'string':
        =
Sys.Serialization.JavaScriptSerializer._serializeStringWithBuilder(object=
, stringBuilder);
        break;
    case 'boolean':
        =
Sys.Serialization.JavaScriptSerializer._serializeBooleanWithBuilder(objec=
t, stringBuilder);
        break;
    default:
        stringBuilder.append('null');
        break;
    }
}
Sys.Serialization.JavaScriptSerializer.serialize =3D function =
Sys$Serialization$JavaScriptSerializer$serialize(object) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.serialize" />
    /// <param name=3D"object" mayBeNull=3D"true"></param>
    /// <returns type=3D"String"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "object", mayBeNull: true}
    ]);
    if (e) throw e;
    var stringBuilder =3D new Sys.StringBuilder();
    Sys.Serialization.JavaScriptSerializer._serializeWithBuilder(object, =
stringBuilder, false);
    return stringBuilder.toString();
}
Sys.Serialization.JavaScriptSerializer.deserialize =3D function =
Sys$Serialization$JavaScriptSerializer$deserialize(data, secure) {
    /// <summary =
locid=3D"M:J#Sys.Serialization.JavaScriptSerializer.deserialize" />
    /// <param name=3D"data" type=3D"String"></param>
    /// <param name=3D"secure" type=3D"Boolean" =
optional=3D"true"></param>
    /// <returns></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "data", type: String},
        {name: "secure", type: Boolean, optional: true}
    ]);
    if (e) throw e;
   =20
    if (data.length =3D=3D=3D 0) throw Error.argument('data', =
Sys.Res.cannotDeserializeEmptyString);
    try {   =20
        var exp =3D =
data.replace(Sys.Serialization.JavaScriptSerializer._dateRegEx, "$1new =
Date($2)");
       =20
        if (secure && =
Sys.Serialization.JavaScriptSerializer._jsonRegEx.test(
             =
exp.replace(Sys.Serialization.JavaScriptSerializer._jsonStringRegEx, =
''))) throw null;
        return eval('(' + exp + ')');
    }
    catch (e) {
         throw Error.argument('data', =
Sys.Res.cannotDeserializeInvalidJson);
    }
}
=20
Sys.CultureInfo =3D function Sys$CultureInfo(name, numberFormat, =
dateTimeFormat) {
    /// <summary locid=3D"M:J#Sys.CultureInfo.#ctor" />
    /// <param name=3D"name" type=3D"String"></param>
    /// <param name=3D"numberFormat" type=3D"Object"></param>
    /// <param name=3D"dateTimeFormat" type=3D"Object"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "name", type: String},
        {name: "numberFormat", type: Object},
        {name: "dateTimeFormat", type: Object}
    ]);
    if (e) throw e;
    this.name =3D name;
    this.numberFormat =3D numberFormat;
    this.dateTimeFormat =3D dateTimeFormat;
}
    function Sys$CultureInfo$_getDateTimeFormats() {
        if (! this._dateTimeFormats) {
            var dtf =3D this.dateTimeFormat;
            this._dateTimeFormats =3D
              [ dtf.MonthDayPattern,
                dtf.YearMonthPattern,
                dtf.ShortDatePattern,
                dtf.ShortTimePattern,
                dtf.LongDatePattern,
                dtf.LongTimePattern,
                dtf.FullDateTimePattern,
                dtf.RFC1123Pattern,
                dtf.SortableDateTimePattern,
                dtf.UniversalSortableDateTimePattern ];
        }
        return this._dateTimeFormats;
    }
    function Sys$CultureInfo$_getMonthIndex(value) {
        if (!this._upperMonths) {
            this._upperMonths =3D =
this._toUpperArray(this.dateTimeFormat.MonthNames);
        }
        return Array.indexOf(this._upperMonths, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrMonthIndex(value) {
        if (!this._upperAbbrMonths) {
            this._upperAbbrMonths =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames);
        }
        return Array.indexOf(this._upperAbbrMonths, =
this._toUpper(value));
    }
    function Sys$CultureInfo$_getDayIndex(value) {
        if (!this._upperDays) {
            this._upperDays =3D =
this._toUpperArray(this.dateTimeFormat.DayNames);
        }
        return Array.indexOf(this._upperDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_getAbbrDayIndex(value) {
        if (!this._upperAbbrDays) {
            this._upperAbbrDays =3D =
this._toUpperArray(this.dateTimeFormat.AbbreviatedDayNames);
        }
        return Array.indexOf(this._upperAbbrDays, this._toUpper(value));
    }
    function Sys$CultureInfo$_toUpperArray(arr) {
        var result =3D [];
        for (var i =3D 0, il =3D arr.length; i < il; i++) {
            result[i] =3D this._toUpper(arr[i]);
        }
        return result;
    }
    function Sys$CultureInfo$_toUpper(value) {
        return value.split("\u00A0").join(' ').toUpperCase();
    }
Sys.CultureInfo.prototype =3D {
    _getDateTimeFormats: Sys$CultureInfo$_getDateTimeFormats,
    _getMonthIndex: Sys$CultureInfo$_getMonthIndex,
    _getAbbrMonthIndex: Sys$CultureInfo$_getAbbrMonthIndex,
    _getDayIndex: Sys$CultureInfo$_getDayIndex,
    _getAbbrDayIndex: Sys$CultureInfo$_getAbbrDayIndex,
    _toUpperArray: Sys$CultureInfo$_toUpperArray,
    _toUpper: Sys$CultureInfo$_toUpper
}
Sys.CultureInfo._parse =3D function Sys$CultureInfo$_parse(value) {
    var cultureInfo =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(value);
    return new Sys.CultureInfo(cultureInfo.name, =
cultureInfo.numberFormat, cultureInfo.dateTimeFormat);
}
Sys.CultureInfo.registerClass('Sys.CultureInfo');
Sys.CultureInfo.InvariantCulture =3D =
Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits=
":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes"=
:[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparat=
or":",","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePatt=
ern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegat=
ivePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","Nu=
mberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":=
",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","Posi=
tiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","Per=
centGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"\u2030","Na=
tiveDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution"=
:1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTi=
me":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","Algor=
ithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnl=
y":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"Ful=
lDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, =
dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","Sort=
ableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSepar=
ator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd =
HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy =
MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":true,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}');
if (typeof(__cultureInfo) =3D=3D=3D 'undefined') {
    var __cultureInfo =3D =
'{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecim=
alSeparator":".","IsReadOnly":false,"CurrencyGroupSizes":[3],"NumberGroup=
Sizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","Currency=
Symbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegative=
Pattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"Negativ=
eInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":2,"=
NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositiveP=
attern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","Percent=
DecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",=
","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","=
2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{=
"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@=
","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarT=
ype":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":false},"DateSeparat=
or":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dd=
dd, MMMM dd, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM dd, =
yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM =
dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy =
HH\':\'mm\':\'ss =
\'GMT\'","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm =
tt","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","=
TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd=
 HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"MMMM, =
yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"=
ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunda=
y","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"Abbrev=
iatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","=
Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","=
May","June","July","August","September","October","November","December","=
"],"IsReadOnly":false,"NativeCalendarName":"Gregorian =
Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May",=
"Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["Janu=
ary","February","March","April","May","June","July","August","September",=
"October","November","December",""]}}';
}
Sys.CultureInfo.CurrentCulture =3D =
Sys.CultureInfo._parse(__cultureInfo);
delete __cultureInfo;
=20
Sys.UI.Behavior =3D function Sys$UI$Behavior(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    Sys.UI.Behavior.initializeBase(this);
    this._element =3D element;
    var behaviors =3D element._behaviors;
    if (!behaviors) {
        element._behaviors =3D [this];
    }
    else {
        behaviors[behaviors.length] =3D this;
    }
}
    function Sys$UI$Behavior$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Behavior.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Behavior$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        var baseId =3D Sys.UI.Behavior.callBaseMethod(this, 'get_id');
        if (baseId) return baseId;
        if (!this._element || !this._element.id) return '';
        return this._element.id + '$' + this.get_name();
    }
    function Sys$UI$Behavior$get_name() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Behavior.name"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._name) return this._name;
        var name =3D Object.getTypeName(this);
        var i =3D name.lastIndexOf('.');
        if (i !=3D -1) name =3D name.substr(i + 1);
        if (!this.get_isInitialized()) this._name =3D name;
        return name;
    }
    function Sys$UI$Behavior$set_name(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        if ((value =3D=3D=3D '') || (value.charAt(0) =3D=3D=3D ' ') || =
(value.charAt(value.length - 1) =3D=3D=3D ' '))
            throw Error.argument('value', Sys.Res.invalidId);
        if (typeof(this._element[value]) !=3D=3D 'undefined')
            throw =
Error.invalidOperation(String.format(Sys.Res.behaviorDuplicateName, =
value));
        if (this.get_isInitialized()) throw =
Error.invalidOperation(Sys.Res.cantSetNameAfterInit);
        this._name =3D value;
    }
    function Sys$UI$Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name =3D this.get_name();
        if (name) this._element[name] =3D this;
    }
    function Sys$UI$Behavior$dispose() {
        Sys.UI.Behavior.callBaseMethod(this, 'dispose');
        if (this._element) {
            var name =3D this.get_name();
            if (name) {
                this._element[name] =3D null;
            }
            Array.remove(this._element._behaviors, this);
            delete this._element;
        }
    }
Sys.UI.Behavior.prototype =3D {
    _name: null,
    get_element: Sys$UI$Behavior$get_element,
    get_id: Sys$UI$Behavior$get_id,
    get_name: Sys$UI$Behavior$get_name,
    set_name: Sys$UI$Behavior$set_name,
    initialize: Sys$UI$Behavior$initialize,
    dispose: Sys$UI$Behavior$dispose
}
Sys.UI.Behavior.registerClass('Sys.UI.Behavior', Sys.Component);
Sys.UI.Behavior.getBehaviorByName =3D function =
Sys$UI$Behavior$getBehaviorByName(element, name) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorByName" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"name" type=3D"String"></param>
    /// <returns type=3D"Sys.UI.Behavior" mayBeNull=3D"true"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "name", type: String}
    ]);
    if (e) throw e;
    var b =3D element[name];
    return (b && Sys.UI.Behavior.isInstanceOfType(b)) ? b : null;
}
Sys.UI.Behavior.getBehaviors =3D function =
Sys$UI$Behavior$getBehaviors(element) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviors" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (!element._behaviors) return [];
    return Array.clone(element._behaviors);
}
Sys.UI.Behavior.getBehaviorsByType =3D function =
Sys$UI$Behavior$getBehaviorsByType(element, type) {
    /// <summary locid=3D"M:J#Sys.UI.Behavior.getBehaviorsByType" />
    /// <param name=3D"element" domElement=3D"true"></param>
    /// <param name=3D"type" type=3D"Type"></param>
    /// <returns type=3D"Array" =
elementType=3D"Sys.UI.Behavior"></returns>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true},
        {name: "type", type: Type}
    ]);
    if (e) throw e;
    var behaviors =3D element._behaviors;
    var results =3D [];
    if (behaviors) {
        for (var i =3D 0, l =3D behaviors.length; i < l; i++) {
            if (type.isInstanceOfType(behaviors[i])) {
                results[results.length] =3D behaviors[i];
            }
        }
    }
    return results;
}
=20
Sys.UI.VisibilityMode =3D function Sys$UI$VisibilityMode() {
    /// <summary locid=3D"M:J#Sys.UI.VisibilityMode.#ctor" />
    /// <field name=3D"hide" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.hide"></field>
    /// <field name=3D"collapse" type=3D"Number" integer=3D"true" =
static=3D"true" locid=3D"F:J#Sys.UI.VisibilityMode.collapse"></field>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    throw Error.notImplemented();
}
Sys.UI.VisibilityMode.prototype =3D {
    hide: 0,
    collapse: 1
}
Sys.UI.VisibilityMode.registerEnum("Sys.UI.VisibilityMode");
=20
Sys.UI.Control =3D function Sys$UI$Control(element) {
    /// <summary locid=3D"M:J#Sys.UI.Control.#ctor" />
    /// <param name=3D"element" domElement=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "element", domElement: true}
    ]);
    if (e) throw e;
    if (typeof(element.control) !=3D 'undefined') throw =
Error.invalidOperation(Sys.Res.controlAlreadyDefined);
    Sys.UI.Control.initializeBase(this);
    this._element =3D element;
    element.control =3D this;
}
    function Sys$UI$Control$get_element() {
        /// <value domElement=3D"true" =
locid=3D"P:J#Sys.UI.Control.element"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._element;
    }
    function Sys$UI$Control$get_id() {
        /// <value type=3D"String" =
locid=3D"P:J#Sys.UI.Control.id"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) return '';
        return this._element.id;
    }
    function Sys$UI$Control$set_id(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String}]);
        if (e) throw e;
        throw Error.invalidOperation(Sys.Res.cantSetId);
    }
    function Sys$UI$Control$get_parent() {
        /// <value type=3D"Sys.UI.Control" =
locid=3D"P:J#Sys.UI.Control.parent"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (this._parent) return this._parent;
        if (!this._element) return null;
       =20
        var parentElement =3D this._element.parentNode;
        while (parentElement) {
            if (parentElement.control) {
                return parentElement.control;
            }
            parentElement =3D parentElement.parentNode;
        }
        return null;
    }
    function Sys$UI$Control$set_parent(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.Control}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        var parents =3D [this];
        var current =3D value;
        while (current) {
            if (Array.contains(parents, current)) throw =
Error.invalidOperation(Sys.Res.circularParentChain);
            parents[parents.length] =3D current;
            current =3D current.get_parent();
        }
        this._parent =3D value;
    }
    function Sys$UI$Control$get_visibilityMode() {
        /// <value type=3D"Sys.UI.VisibilityMode" =
locid=3D"P:J#Sys.UI.Control.visibilityMode"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisibilityMode(this._element);
    }
    function Sys$UI$Control$set_visibilityMode(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Sys.UI.VisibilityMode}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisibilityMode(this._element, value);
    }
    function Sys$UI$Control$get_visible() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI.Control.visible"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        return Sys.UI.DomElement.getVisible(this._element);
    }
    function Sys$UI$Control$set_visible(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.setVisible(this._element, value)
    }
    function Sys$UI$Control$addCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.addCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.addCssClass(this._element, className);
    }
    function Sys$UI$Control$dispose() {
        Sys.UI.Control.callBaseMethod(this, 'dispose');
        if (this._element) {
            this._element.control =3D undefined;
            delete this._element;
        }
        if (this._parent) delete this._parent;
    }
    function Sys$UI$Control$onBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.onBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        /// <returns type=3D"Boolean"></returns>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        return false;
    }
    function Sys$UI$Control$raiseBubbleEvent(source, args) {
        /// <summary locid=3D"M:J#Sys.UI.Control.raiseBubbleEvent" />
        /// <param name=3D"source"></param>
        /// <param name=3D"args" type=3D"Sys.EventArgs"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "source"},
            {name: "args", type: Sys.EventArgs}
        ]);
        if (e) throw e;
        var currentTarget =3D this.get_parent();
        while (currentTarget) {
            if (currentTarget.onBubbleEvent(source, args)) {
                return;
            }
            currentTarget =3D currentTarget.get_parent();
        }
    }
    function Sys$UI$Control$removeCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.removeCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.removeCssClass(this._element, className);
    }
    function Sys$UI$Control$toggleCssClass(className) {
        /// <summary locid=3D"M:J#Sys.UI.Control.toggleCssClass" />
        /// <param name=3D"className" type=3D"String"></param>
        var e =3D Function._validateParams(arguments, [
            {name: "className", type: String}
        ]);
        if (e) throw e;
        if (!this._element) throw =
Error.invalidOperation(Sys.Res.cantBeCalledAfterDispose);
        Sys.UI.DomElement.toggleCssClass(this._element, className);
    }
Sys.UI.Control.prototype =3D {
    _parent: null,
    _visibilityMode: Sys.UI.VisibilityMode.hide,
    get_element: Sys$UI$Control$get_element,
    get_id: Sys$UI$Control$get_id,
    set_id: Sys$UI$Control$set_id,
    get_parent: Sys$UI$Control$get_parent,
    set_parent: Sys$UI$Control$set_parent,
    get_visibilityMode: Sys$UI$Control$get_visibilityMode,
    set_visibilityMode: Sys$UI$Control$set_visibilityMode,
    get_visible: Sys$UI$Control$get_visible,
    set_visible: Sys$UI$Control$set_visible,
    addCssClass: Sys$UI$Control$addCssClass,
    dispose: Sys$UI$Control$dispose,
    onBubbleEvent: Sys$UI$Control$onBubbleEvent,
    raiseBubbleEvent: Sys$UI$Control$raiseBubbleEvent,
    removeCssClass: Sys$UI$Control$removeCssClass,
    toggleCssClass: Sys$UI$Control$toggleCssClass
}
Sys.UI.Control.registerClass('Sys.UI.Control', Sys.Component);


Type.registerNamespace('Sys');
Sys.Res=3D{
"urlMustBeLessThan1024chars":"The history state must be small enough to =
not make the url larger than 1024 characters.",
"argumentTypeName":"Value is not the name of an existing type.",
"methodRegisteredTwice":"Method {0} has already been registered.",
"cantSetIdAfterInit":"The id property can\u0027t be set on this object =
after initialization.",
"cantBeCalledAfterDispose":"Can\u0027t be called after dispose.",
"componentCantSetIdAfterAddedToApp":"The id property of a component =
can\u0027t be set after it\u0027s been added to the Application =
object.",
"behaviorDuplicateName":"A behavior with name \u0027{0}\u0027 already =
exists or it is the name of an existing property on the target =
element.",
"notATypeName":"Value is not a valid type name.",
"typeShouldBeTypeOrString":"Value is not a valid type or a valid type =
name.",
"historyInvalidHistorySettingCombination":"Cannot set enableHistory to =
false when ScriptManager.EnableHistory is true.",
"stateMustBeStringDictionary":"The state object can only have null and =
string fields.",
"boolTrueOrFalse":"Value must be \u0027true\u0027 or =
\u0027false\u0027.",
"scriptLoadFailedNoHead":"ScriptLoader requires pages to contain a =
\u003chead\u003e element.",
"stringFormatInvalid":"The format string is invalid.",
"referenceNotFound":"Component \u0027{0}\u0027 was not found.",
"enumReservedName":"\u0027{0}\u0027 is a reserved name that can\u0027t =
be used as an enum value name.",
"eventHandlerNotFound":"Handler not found.",
"circularParentChain":"The chain of control parents can\u0027t have =
circular references.",
"undefinedEvent":"\u0027{0}\u0027 is not an event.",
"notAMethod":"{0} is not a method.",
"propertyUndefined":"\u0027{0}\u0027 is not a property or an existing =
field.",
"historyCannotEnableHistory":"Cannot set enableHistory after =
initialization.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"scriptLoadFailedDebug":"The script \u0027{0}\u0027 failed to load. =
Check for:\r\n Inaccessible path.\r\n Script errors. (IE) Enable =
\u0027Display a notification about every script error\u0027 under =
advanced settings.\r\n Missing call to =
Sys.Application.notifyScriptLoaded().",
"propertyNotWritable":"\u0027{0}\u0027 is not a writable property.",
"enumInvalidValueName":"\u0027{0}\u0027 is not a valid name for an enum =
value.",
"controlAlreadyDefined":"A control is already associated with the =
element.",
"addHandlerCantBeUsedForError":"Can\u0027t add a handler for the error =
event using this method. Please set the window.onerror property =
instead.",
"namespaceContainsObject":"Object {0} already exists and is not a =
namespace.",
"cantAddNonFunctionhandler":"Can\u0027t add a handler that is not a =
function.",
"invalidNameSpace":"Value is not a valid namespace identifier.",
"notAnInterface":"Value is not a valid interface.",
"eventHandlerNotFunction":"Handler must be a function.",
"propertyNotAnArray":"\u0027{0}\u0027 is not an Array property.",
"typeRegisteredTwice":"Type {0} has already been registered. The type =
may be defined multiple times or the script file that defines it may =
have already been loaded. A possible cause is a change of settings =
during a partial update.",
"cantSetNameAfterInit":"The name property can\u0027t be set on this =
object after initialization.",
"historyMissingFrame":"For the history feature to work in IE, the page =
must have an iFrame element with id \u0027__historyFrame\u0027 pointed =
to a page that gets its title from the \u0027title\u0027 query string =
parameter and calls Sys.Application._onIFrameLoad() on the parent =
window. This can be done by setting EnableHistory to true on =
ScriptManager.",
"appDuplicateComponent":"Two components with the same id \u0027{0}\u0027 =
can\u0027t be added to the application.",
"historyCannotAddHistoryPointWithHistoryDisabled":"A history point can =
only be added if enableHistory is set to true.",
"appComponentMustBeInitialized":"Components must be initialized before =
they are added to the Application object.",
"baseNotAClass":"Value is not a class.",
"methodNotFound":"No method found with name \u0027{0}\u0027.",
"arrayParseBadFormat":"Value must be a valid string representation for =
an array. It must start with a \u0027[\u0027 and end with a =
\u0027]\u0027.",
"stateFieldNameInvalid":"State field names must not contain any =
\u0027=3D\u0027 characters.",
"cantSetId":"The id property can\u0027t be set on this object.",
"historyMissingHiddenInput":"For the history feature to work in Safari =
2, the page must have a hidden input element with id =
\u0027__history\u0027.",
"stringFormatBraceMismatch":"The format string contains an unmatched =
opening or closing brace.",
"enumValueNotInteger":"An enumeration definition can only contain =
integer values.",
"propertyNullOrUndefined":"Cannot set the properties of \u0027{0}\u0027 =
because it returned a null value.",
"argumentDomNode":"Value must be a DOM element or a text node.",
"componentCantSetIdTwice":"The id property of a component can\u0027t be =
set more than once.",
"createComponentOnDom":"Value must be null for Components that are not =
Controls or Behaviors.",
"createNotComponent":"{0} does not derive from Sys.Component.",
"createNoDom":"Value must not be null for Controls and Behaviors.",
"cantAddWithoutId":"Can\u0027t add a component that doesn\u0027t have an =
id.",
"badTypeName":"Value is not the name of the type being registered or the =
name is a reserved word.",
"argumentInteger":"Value must be an integer.",
"scriptLoadMultipleCallbacks":"The script \u0027{0}\u0027 contains =
multiple calls to Sys.Application.notifyScriptLoaded(). Only one is =
allowed.",
"invokeCalledTwice":"Cannot call invoke more than once.",
"webServiceFailed":"The server method \u0027{0}\u0027 failed with the =
following error: {1}",
"webServiceInvalidJsonWrapper":"The server method \u0027{0}\u0027 =
returned invalid data. The \u0027d\u0027 property is missing from the =
JSON wrapper.",
"argumentType":"Object cannot be converted to the required type.",
"argumentNull":"Value cannot be null.",
"controlCantSetId":"The id property can\u0027t be set on a control.",
"formatBadFormatSpecifier":"Format specifier was invalid.",
"webServiceFailedNoMsg":"The server method \u0027{0}\u0027 failed.",
"argumentDomElement":"Value must be a DOM element.",
"invalidExecutorType":"Could not create a valid =
Sys.Net.WebRequestExecutor from: {0}.",
"cannotCallBeforeResponse":"Cannot call {0} when responseAvailable is =
false.",
"actualValue":"Actual value was {0}.",
"enumInvalidValue":"\u0027{0}\u0027 is not a valid value for enum {1}.",
"scriptLoadFailed":"The script \u0027{0}\u0027 could not be loaded.",
"parameterCount":"Parameter count mismatch.",
"cannotDeserializeEmptyString":"Cannot deserialize empty string.",
"formatInvalidString":"Input string was not in a correct format.",
"invalidTimeout":"Value must be greater than or equal to zero.",
"cannotAbortBeforeStart":"Cannot abort when executor has not started.",
"argument":"Value does not fall within the expected range.",
"cannotDeserializeInvalidJson":"Cannot deserialize. The data does not =
correspond to valid JSON.",
"invalidHttpVerb":"httpVerb cannot be set to an empty or null string.",
"nullWebRequest":"Cannot call executeRequest with a null webRequest.",
"eventHandlerInvalid":"Handler was not added through the =
Sys.UI.DomEvent.addHandler method.",
"cannotSerializeNonFiniteNumbers":"Cannot serialize non finite =
numbers.",
"argumentUndefined":"Value cannot be undefined.",
"webServiceInvalidReturnType":"The server method \u0027{0}\u0027 =
returned an invalid type. Expected type: {1}",
"servicePathNotSet":"The path to the web service has not been set.",
"argumentTypeWithTypes":"Object of type \u0027{0}\u0027 cannot be =
converted to type \u0027{1}\u0027.",
"cannotCallOnceStarted":"Cannot call {0} once started.",
"badBaseUrl1":"Base URL does not contain ://.",
"badBaseUrl2":"Base URL does not contain another /.",
"badBaseUrl3":"Cannot find last / in base URL.",
"setExecutorAfterActive":"Cannot set executor after it has become =
active.",
"paramName":"Parameter name: {0}",
"cannotCallOutsideHandler":"Cannot call {0} outside of a completed event =
handler.",
"cannotSerializeObjectWithCycle":"Cannot serialize object with cyclic =
reference within child properties.",
"format":"One of the identified items was in an invalid format.",
"assertFailedCaller":"Assertion Failed: {0}\r\nat {1}",
"argumentOutOfRange":"Specified argument was out of the range of valid =
values.",
"webServiceTimedOut":"The server method \u0027{0}\u0027 timed out.",
"notImplemented":"The method or operation is not implemented.",
"assertFailed":"Assertion Failed: {0}",
"invalidOperation":"Operation is not valid due to the current state of =
the object.",
"breakIntoDebugger":"{0}\r\n\r\nBreak into debugger?"
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/ScriptResource.axd?d=3vT_mI6V8cfPztxasln5Lop9xAxjZ6D0KnUeJHBhf2eX3F7NkFoXAdRYZVW2K0THQmWHhL-8TX_KQtssOTZ7FyJ-U8JrdDW48qsLjVJ7s9eq3c-6z0bvEHoOe_6NhJC20&t=634123f4

=EF=BB=BF// Name:        MicrosoftAjaxWebForms.debug.js
// Assembly:    System.Web.Extensions
// Version:     3.5.0.0
// FileVersion: 3.5.30729.1
//-----------------------------------------------------------------------=

// Copyright (C) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------=

// MicrosoftAjaxWebForms.js
// Microsoft AJAX ASP.NET WebForms Framework.
Type.registerNamespace('Sys.WebForms');
Sys.WebForms.BeginRequestEventArgs =3D function =
Sys$WebForms$BeginRequestEventArgs(request, postBackElement) {
    /// <summary locid=3D"M:J#Sys.WebForms.BeginRequestEventArgs.#ctor" =
/>
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.BeginRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function Sys$WebForms$BeginRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.postBackElement"></value>=

        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$BeginRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.BeginRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.BeginRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$BeginRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$BeginRequestEventArgs$get_request
}
Sys.WebForms.BeginRequestEventArgs.registerClass('Sys.WebForms.BeginReque=
stEventArgs', Sys.EventArgs);
=20
Sys.WebForms.EndRequestEventArgs =3D function =
Sys$WebForms$EndRequestEventArgs(error, dataItems, response) {
    /// <summary locid=3D"M:J#Sys.WebForms.EndRequestEventArgs.#ctor" />
    /// <param name=3D"error" type=3D"Error" mayBeNull=3D"true"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    /// <param name=3D"response" =
type=3D"Sys.Net.WebRequestExecutor"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "error", type: Error, mayBeNull: true},
        {name: "dataItems", type: Object, mayBeNull: true},
        {name: "response", type: Sys.Net.WebRequestExecutor}
    ]);
    if (e) throw e;
    Sys.WebForms.EndRequestEventArgs.initializeBase(this);
    this._errorHandled =3D false;
    this._error =3D error;
    this._dataItems =3D dataItems || new Object();
    this._response =3D response;
}
    function Sys$WebForms$EndRequestEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$EndRequestEventArgs$get_error() {
        /// <value type=3D"Error" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.error"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._error;
    }
    function Sys$WebForms$EndRequestEventArgs$get_errorHandled() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.errorHandled"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._errorHandled;
    }
    function Sys$WebForms$EndRequestEventArgs$set_errorHandled(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._errorHandled =3D value;
    }
    function Sys$WebForms$EndRequestEventArgs$get_response() {
        /// <value type=3D"Sys.Net.WebRequestExecutor" =
locid=3D"P:J#Sys.WebForms.EndRequestEventArgs.response"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._response;
    }
Sys.WebForms.EndRequestEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$EndRequestEventArgs$get_dataItems,
    get_error: Sys$WebForms$EndRequestEventArgs$get_error,
    get_errorHandled: Sys$WebForms$EndRequestEventArgs$get_errorHandled,
    set_errorHandled: Sys$WebForms$EndRequestEventArgs$set_errorHandled,
    get_response: Sys$WebForms$EndRequestEventArgs$get_response
}
Sys.WebForms.EndRequestEventArgs.registerClass('Sys.WebForms.EndRequestEv=
entArgs', Sys.EventArgs);
Sys.WebForms.InitializeRequestEventArgs =3D function =
Sys$WebForms$InitializeRequestEventArgs(request, postBackElement) {
    /// <summary =
locid=3D"M:J#Sys.WebForms.InitializeRequestEventArgs.#ctor" />
    /// <param name=3D"request" type=3D"Sys.Net.WebRequest"></param>
    /// <param name=3D"postBackElement" domElement=3D"true" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "request", type: Sys.Net.WebRequest},
        {name: "postBackElement", mayBeNull: true, domElement: true}
    ]);
    if (e) throw e;
    Sys.WebForms.InitializeRequestEventArgs.initializeBase(this);
    this._request =3D request;
    this._postBackElement =3D postBackElement;
}
    function =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement() {
        /// <value domElement=3D"true" mayBeNull=3D"true" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.postBackElement"></v=
alue>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._postBackElement;
    }
    function Sys$WebForms$InitializeRequestEventArgs$get_request() {
        /// <value type=3D"Sys.Net.WebRequest" =
locid=3D"P:J#Sys.WebForms.InitializeRequestEventArgs.request"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request;
    }
Sys.WebForms.InitializeRequestEventArgs.prototype =3D {
    get_postBackElement: =
Sys$WebForms$InitializeRequestEventArgs$get_postBackElement,
    get_request: Sys$WebForms$InitializeRequestEventArgs$get_request
}
Sys.WebForms.InitializeRequestEventArgs.registerClass('Sys.WebForms.Initi=
alizeRequestEventArgs', Sys.CancelEventArgs);
=20
Sys.WebForms.PageLoadedEventArgs =3D function =
Sys$WebForms$PageLoadedEventArgs(panelsUpdated, panelsCreated, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadedEventArgs.#ctor" />
    /// <param name=3D"panelsUpdated" type=3D"Array"></param>
    /// <param name=3D"panelsCreated" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdated", type: Array},
        {name: "panelsCreated", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadedEventArgs.initializeBase(this);
    this._panelsUpdated =3D panelsUpdated;
    this._panelsCreated =3D panelsCreated;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadedEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsCreated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsCreated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsCreated;
    }
    function Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadedEventArgs.panelsUpdated"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdated;
    }
Sys.WebForms.PageLoadedEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadedEventArgs$get_dataItems,
    get_panelsCreated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsCreated,
    get_panelsUpdated: =
Sys$WebForms$PageLoadedEventArgs$get_panelsUpdated
}
Sys.WebForms.PageLoadedEventArgs.registerClass('Sys.WebForms.PageLoadedEv=
entArgs', Sys.EventArgs);
Sys.WebForms.PageLoadingEventArgs =3D function =
Sys$WebForms$PageLoadingEventArgs(panelsUpdating, panelsDeleting, =
dataItems) {
    /// <summary locid=3D"M:J#Sys.WebForms.PageLoadingEventArgs.#ctor" =
/>
    /// <param name=3D"panelsUpdating" type=3D"Array"></param>
    /// <param name=3D"panelsDeleting" type=3D"Array"></param>
    /// <param name=3D"dataItems" type=3D"Object" =
mayBeNull=3D"true"></param>
    var e =3D Function._validateParams(arguments, [
        {name: "panelsUpdating", type: Array},
        {name: "panelsDeleting", type: Array},
        {name: "dataItems", type: Object, mayBeNull: true}
    ]);
    if (e) throw e;
    Sys.WebForms.PageLoadingEventArgs.initializeBase(this);
    this._panelsUpdating =3D panelsUpdating;
    this._panelsDeleting =3D panelsDeleting;
    this._dataItems =3D dataItems || new Object();
}
    function Sys$WebForms$PageLoadingEventArgs$get_dataItems() {
        /// <value type=3D"Object" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.dataItems"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dataItems;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsDeleting"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsDeleting;
    }
    function Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating() {
        /// <value type=3D"Array" =
locid=3D"P:J#Sys.WebForms.PageLoadingEventArgs.panelsUpdating"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._panelsUpdating;
    }
Sys.WebForms.PageLoadingEventArgs.prototype =3D {
    get_dataItems: Sys$WebForms$PageLoadingEventArgs$get_dataItems,
    get_panelsDeleting: =
Sys$WebForms$PageLoadingEventArgs$get_panelsDeleting,
    get_panelsUpdating: =
Sys$WebForms$PageLoadingEventArgs$get_panelsUpdating
}
Sys.WebForms.PageLoadingEventArgs.registerClass('Sys.WebForms.PageLoading=
EventArgs', Sys.EventArgs);
=20
Sys.WebForms.PageRequestManager =3D function =
Sys$WebForms$PageRequestManager() {
    this._form =3D null;
    this._activeDefaultButton =3D null;
    this._activeDefaultButtonClicked =3D false;
    this._updatePanelIDs =3D null;
    this._updatePanelClientIDs =3D null;
    this._updatePanelHasChildrenAsTriggers =3D null;
    this._asyncPostBackControlIDs =3D null;
    this._asyncPostBackControlClientIDs =3D null;
    this._postBackControlIDs =3D null;
    this._postBackControlClientIDs =3D null;
    this._scriptManagerID =3D null;
    this._pageLoadedHandler =3D null;
    this._additionalInput =3D null;
    this._onsubmit =3D null;
    this._onSubmitStatements =3D [];
    this._originalDoPostBack =3D null;
    this._originalDoPostBackWithOptions =3D null;
    this._originalFireDefaultButton =3D null;
    this._originalDoCallback =3D null;
    this._isCrossPost =3D false;
    this._postBackSettings =3D null;
    this._request =3D null;
    this._onFormSubmitHandler =3D null;
    this._onFormElementClickHandler =3D null;
    this._onWindowUnloadHandler =3D null;
    this._asyncPostBackTimeout =3D null;
    this._controlIDToFocus =3D null;
    this._scrollPosition =3D null;
    this._processingRequest =3D false;
    this._scriptDisposes =3D {};
   =20
    this._transientFields =3D ["__VIEWSTATEENCRYPTED", =
"__VIEWSTATEFIELDCOUNT"];
}
    function Sys$WebForms$PageRequestManager$_get_eventHandlerList() {
        if (!this._events) {
            this._events =3D new Sys.EventHandlerList();
        }
        return this._events;
    }
    function Sys$WebForms$PageRequestManager$get_isInAsyncPostBack() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.WebForms.PageRequestManager.isInAsyncPostBack"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._request !=3D=3D null;
    }
    function Sys$WebForms$PageRequestManager$add_beginRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.beginRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("beginRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_beginRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("beginRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_endRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.endRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("endRequest", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_endRequest(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("endRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$add_initializeRequest(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.initializeRequest" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("initializeRequest", =
handler);
    }
    function =
Sys$WebForms$PageRequestManager$remove_initializeRequest(handler) {
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("initializeRequest", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoaded(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoaded" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoaded", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoaded(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoaded", =
handler);
    }
    function Sys$WebForms$PageRequestManager$add_pageLoading(handler) {
        /// <summary =
locid=3D"E:J#Sys.WebForms.PageRequestManager.pageLoading" />
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().addHandler("pageLoading", handler);
    }
    function Sys$WebForms$PageRequestManager$remove_pageLoading(handler) =
{
        var e =3D Function._validateParams(arguments, [{name: "handler", =
type: Function}]);
        if (e) throw e;
        this._get_eventHandlerList().removeHandler("pageLoading", =
handler);
    }
    function Sys$WebForms$PageRequestManager$abortPostBack() {
        if (!this._processingRequest && this._request) {
            this._request.get_executor().abort();
            this._request =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_cancelPendingCallbacks() {
        for (var i =3D 0, l =3D window.__pendingCallbacks.length; i < l; =
i++) {
            var callback =3D window.__pendingCallbacks[i];
            if (callback) {
                if (!callback.async) {
                    window.__synchronousCallBackIndex =3D -1;
                }
                window.__pendingCallbacks[i] =3D null;
                var callbackFrameID =3D "__CALLBACKFRAME" + i;
                var xmlRequestFrame =3D =
document.getElementById(callbackFrameID);
                if (xmlRequestFrame) {
                    =
xmlRequestFrame.parentNode.removeChild(xmlRequestFrame);
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_commitControls(updatePanelData, =
asyncPostBackTimeout) {
        if (updatePanelData) {
            this._updatePanelIDs =3D updatePanelData.updatePanelIDs;
            this._updatePanelClientIDs =3D =
updatePanelData.updatePanelClientIDs;
            this._updatePanelHasChildrenAsTriggers =3D =
updatePanelData.updatePanelHasChildrenAsTriggers;
            this._asyncPostBackControlIDs =3D =
updatePanelData.asyncPostBackControlIDs;
            this._asyncPostBackControlClientIDs =3D =
updatePanelData.asyncPostBackControlClientIDs;
            this._postBackControlIDs =3D =
updatePanelData.postBackControlIDs;
            this._postBackControlClientIDs =3D =
updatePanelData.postBackControlClientIDs;
        }
        if (typeof(asyncPostBackTimeout) !=3D=3D 'undefined' && =
asyncPostBackTimeout !=3D=3D null) {
            this._asyncPostBackTimeout =3D asyncPostBackTimeout * 1000;
        }
    }
    function Sys$WebForms$PageRequestManager$_createHiddenField(id, =
value) {
        var container, field =3D document.getElementById(id);
        if (field) {
            if (!field._isContained) {
                field.parentNode.removeChild(field);
            }
            else {
                container =3D field.parentNode;
            }
        }
        if (!container) {
            container =3D document.createElement('span');
            container.style.cssText =3D "display:none !important";
            this._form.appendChild(container);
        }
        container.innerHTML =3D "<input type=3D'hidden' />";
        field =3D container.childNodes[0];
        field._isContained =3D true;
        field.id =3D field.name =3D id;
        field.value =3D value;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError() =
{
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerTimeoutException: " + =
Sys.WebForms.Res.PRM_TimeoutError;
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerTimeoutException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError(http=
StatusCode, message) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerServerErrorException: " +
            (message || String.format(Sys.WebForms.Res.PRM_ServerError, =
httpStatusCode));
        var e =3D Error.create(displayMessage, {
            name: 'Sys.WebForms.PageRequestManagerServerErrorException',
            httpStatusCode: httpStatusCode
        });
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError(pars=
erErrorMessage) {
        var displayMessage =3D =
"Sys.WebForms.PageRequestManagerParserErrorException: " + =
String.format(Sys.WebForms.Res.PRM_ParserError, parserErrorMessage);
        var e =3D Error.create(displayMessage, {name: =
'Sys.WebForms.PageRequestManagerParserErrorException'});
        e.popStackFrame();
        return e;
    }
    function =
Sys$WebForms$PageRequestManager$_createPostBackSettings(async, panelID, =
sourceElement) {
        return { async:async, panelID:panelID, =
sourceElement:sourceElement };
    }
    function Sys$WebForms$PageRequestManager$_convertToClientIDs(source, =
destinationIDs, destinationClientIDs) {
        if (source) {
            for (var i =3D 0, l =3D source.length; i < l; i++) {
                Array.add(destinationIDs, source[i]);
                Array.add(destinationClientIDs, =
this._uniqueIDToClientID(source[i]));
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_destroyTree(element) {
        if (element.nodeType =3D=3D=3D 1) {
            var childNodes =3D element.childNodes;
            for (var i =3D childNodes.length - 1; i >=3D 0; i--) {
                var node =3D childNodes[i];
                if (node.nodeType =3D=3D=3D 1) {
                    if (node.dispose && typeof(node.dispose) =3D=3D=3D =
"function") {
                        node.dispose();
                    }
                    else if (node.control && =
typeof(node.control.dispose) =3D=3D=3D "function") {
                        node.control.dispose();
                    }
                    var behaviors =3D =
Sys.UI.Behavior.getBehaviors(node);
                    for (var j =3D behaviors.length - 1; j >=3D 0; j--) =
{
                        behaviors[j].dispose();
                    }
                    this._destroyTree(node);
                }
            }
        }
    }
    function Sys$WebForms$PageRequestManager$dispose() {
        if (this._form) {
            Sys.UI.DomEvent.removeHandler(this._form, 'submit', =
this._onFormSubmitHandler);
            Sys.UI.DomEvent.removeHandler(this._form, 'click', =
this._onFormElementClickHandler);
            Sys.UI.DomEvent.removeHandler(window, 'unload', =
this._onWindowUnloadHandler);
            Sys.UI.DomEvent.removeHandler(window, 'load', =
this._pageLoadedHandler);
        }
        if (this._originalDoPostBack) {
            window.__doPostBack =3D this._originalDoPostBack;
            this._originalDoPostBack =3D null;
        }
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
this._originalDoPostBackWithOptions;
            this._originalDoPostBackWithOptions =3D null;
        }
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
this._originalFireDefaultButton;
            this._originalFireDefaultButton =3D null;
        }
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D this._originalDoCallback;
            this._originalDoCallback =3D null;
        }
        this._form =3D null;
        this._updatePanelIDs =3D null;
        this._updatePanelClientIDs =3D null;
        this._asyncPostBackControlIDs =3D null;
        this._asyncPostBackControlClientIDs =3D null;
        this._postBackControlIDs =3D null;
        this._postBackControlClientIDs =3D null;
        this._asyncPostBackTimeout =3D null;
        this._scrollPosition =3D null;
    }
    function Sys$WebForms$PageRequestManager$_doCallback(eventTarget, =
eventArgument, eventCallback, context, errorCallback, useAsync) {
        if (!this.get_isInAsyncPostBack()) {
            this._originalDoCallback(eventTarget, eventArgument, =
eventCallback, context, errorCallback, useAsync);
        }
    }
    function Sys$WebForms$PageRequestManager$_doPostBack(eventTarget, =
eventArgument) {
        this._additionalInput =3D null;
        var form =3D this._form;
        if ((eventTarget =3D=3D=3D null) || (typeof(eventTarget) =
=3D=3D=3D "undefined") || (this._isCrossPost)) {
            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
            this._isCrossPost =3D false;
        }
        else {
            var clientID =3D this._uniqueIDToClientID(eventTarget);
            var postBackElement =3D document.getElementById(clientID);
            if (!postBackElement) {
                if (Array.contains(this._asyncPostBackControlIDs, =
eventTarget)) {
                    this._postBackSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
eventTarget, null);
                }
                else {
                    if (Array.contains(this._postBackControlIDs, =
eventTarget)) {
                        this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                    }
                    else {
                        var nearestUniqueIDMatch =3D =
this._findNearestElement(eventTarget);
                        if (nearestUniqueIDMatch) {
                            this._postBackSettings =3D =
this._getPostBackSettings(nearestUniqueIDMatch, eventTarget);
                        }
                        else {
                            this._postBackSettings =3D =
this._createPostBackSettings(false, null, null);
                        }
                    }
                }
            }
            else {
                this._postBackSettings =3D =
this._getPostBackSettings(postBackElement, eventTarget);
            }
        }
        if (!this._postBackSettings.async) {
            form.onsubmit =3D this._onsubmit;
            this._originalDoPostBack(eventTarget, eventArgument);
            form.onsubmit =3D null;
            return;
        }
        form.__EVENTTARGET.value =3D eventTarget;
        form.__EVENTARGUMENT.value =3D eventArgument;
        this._onFormSubmit();
    }
    function =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions(options) {
        this._isCrossPost =3D options && options.actionUrl;
        this._originalDoPostBackWithOptions(options);
    }
    function Sys$WebForms$PageRequestManager$_elementContains(container, =
element) {
        while (element) {
            if (element =3D=3D=3D container) {
                return true;
            }
            element =3D element.parentNode;
        }
        return false;
    }
    function Sys$WebForms$PageRequestManager$_endPostBack(error, =
executor, data) {
        if (this._request =3D=3D=3D executor.get_webRequest()) {
            this._processingRequest =3D false;
            this._additionalInput =3D null;
            this._request =3D null;
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("endRequest");
        var errorHandled =3D false;
        if (handler) {
            var eventArgs =3D new =
Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, =
executor);
            handler(this, eventArgs);
            errorHandled =3D eventArgs.get_errorHandled();
        }
        if (error && !errorHandled) {
            throw error;
        }
    }
    function =
Sys$WebForms$PageRequestManager$_findNearestElement(uniqueID) {
        while (uniqueID.length > 0) {
            var clientID =3D this._uniqueIDToClientID(uniqueID);
            var element =3D document.getElementById(clientID);
            if (element) {
                return element;
            }
            var indexOfLastDollar =3D uniqueID.lastIndexOf('$');
            if (indexOfLastDollar =3D=3D=3D -1) {
                return null;
            }
            uniqueID =3D uniqueID.substring(0, indexOfLastDollar);
        }
        return null;
    }
    function Sys$WebForms$PageRequestManager$_findText(text, location) {
        var startIndex =3D Math.max(0, location - 20);
        var endIndex =3D Math.min(text.length, location + 20);
        return text.substring(startIndex, endIndex);
    }
    function Sys$WebForms$PageRequestManager$_fireDefaultButton(event, =
target) {
        if (event.keyCode =3D=3D=3D 13) {
            var src =3D event.srcElement || event.target;
            if (!src || (src.tagName.toLowerCase() !=3D=3D "textarea")) =
{
                var defaultButton =3D document.getElementById(target);
                if (defaultButton && (typeof(defaultButton.click) =
!=3D=3D "undefined")) {
                   =20
                   =20
                    this._activeDefaultButton =3D defaultButton;
                    this._activeDefaultButtonClicked =3D false;
                    try {
                        defaultButton.click();
                    }
                    finally {
                        this._activeDefaultButton =3D null;
                    }
                   =20
                   =20
                    event.cancelBubble =3D true;
                    if (typeof(event.stopPropagation) =3D=3D=3D =
"function") {
                        event.stopPropagation();
                    }
                    return false;
                }
            }
        }
        return true;
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs(initialLoad, =
data) {
        var updated =3D [];
        var created =3D [];
        var upData =3D data ? data.updatePanelData : null;
        var newIDs, childIDs, refreshedIDs;
        if (!upData) {
            newIDs =3D this._updatePanelIDs;
            childIDs =3D null;
            refreshedIDs =3D null;
        }
        else {
            newIDs =3D upData.updatePanelIDs;
            childIDs =3D upData.childUpdatePanelIDs;
            refreshedIDs =3D upData.panelsToRefreshIDs;
        }
        var i, l;
        if (refreshedIDs) {
            for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
                Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
            }
        }
        for (i =3D 0, l =3D newIDs.length; i < l; i++) {
            if (initialLoad || Array.indexOf(childIDs, newIDs[i]) =
!=3D=3D -1) {
                Array.add(created, =
document.getElementById(this._uniqueIDToClientID(newIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadedEventArgs(updated, created, =
data ? data.dataItems : {});
    }
    function =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs(data) {
        var updated =3D [];
        var deleted =3D [];
        var upData =3D data.updatePanelData;
        var oldIDs =3D upData.oldUpdatePanelIDs;
        var newIDs =3D upData.updatePanelIDs;
        var childIDs =3D upData.childUpdatePanelIDs;
        var refreshedIDs =3D upData.panelsToRefreshIDs;
        var i, l;
        for (i =3D 0, l =3D refreshedIDs.length; i < l; i++) {
            Array.add(updated, =
document.getElementById(this._uniqueIDToClientID(refreshedIDs[i])));
        }
        for (i =3D 0, l =3D oldIDs.length; i < l; i++) {
            if (Array.indexOf(refreshedIDs, oldIDs[i]) =3D=3D=3D -1 &&
                (Array.indexOf(newIDs, oldIDs[i]) =3D=3D=3D -1 || =
Array.indexOf(childIDs, oldIDs[i]) > -1)) {
                Array.add(deleted, =
document.getElementById(this._uniqueIDToClientID(oldIDs[i])));
            }
        }
        return new Sys.WebForms.PageLoadingEventArgs(updated, deleted, =
data.dataItems);
    }
    function =
Sys$WebForms$PageRequestManager$_getPostBackSettings(element, =
elementUniqueID) {
        var originalElement =3D element;
        var proposedSettings =3D null;
        while (element) {
            if (element.id) {
                if (!proposedSettings && =
Array.contains(this._asyncPostBackControlClientIDs, element.id)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
Array.contains(this._postBackControlClientIDs, element.id)) {
                        return this._createPostBackSettings(false, null, =
null);
                    }
                    else {
                        var indexOfPanel =3D =
Array.indexOf(this._updatePanelClientIDs, element.id);
                        if (indexOfPanel !=3D=3D -1) {
                            if =
(this._updatePanelHasChildrenAsTriggers[indexOfPanel]) {
                                return =
this._createPostBackSettings(true, this._updatePanelIDs[indexOfPanel] + =
'|' + elementUniqueID, originalElement);
                            }
                            else {
                                return =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                            }
                        }
                    }
                }
                if (!proposedSettings && =
this._matchesParentIDInList(element.id, =
this._asyncPostBackControlClientIDs)) {
                    proposedSettings =3D =
this._createPostBackSettings(true, this._scriptManagerID + '|' + =
elementUniqueID, originalElement);
                }
                else {
                    if (!proposedSettings && =
this._matchesParentIDInList(element.id, this._postBackControlClientIDs)) =
{
                        return this._createPostBackSettings(false, null, =
null);
                    }
                }
            }
            element =3D element.parentNode;
        }
        if (!proposedSettings) {
            return this._createPostBackSettings(false, null, null);
        }
        else {
            return proposedSettings;
        }
    }
    function Sys$WebForms$PageRequestManager$_getScrollPosition() {
        var d =3D document.documentElement;
        if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
            return {
                x: d.scrollLeft,
                y: d.scrollTop
            };
        }
        else {
            d =3D document.body;
            if (d && (this._validPosition(d.scrollLeft) || =
this._validPosition(d.scrollTop))) {
                return {
                    x: d.scrollLeft,
                    y: d.scrollTop
                };
            }
            else {
                if (this._validPosition(window.pageXOffset) || =
this._validPosition(window.pageYOffset)) {
                    return {
                        x: window.pageXOffset,
                        y: window.pageYOffset
                    };
                }
                else {
                    return {
                        x: 0,
                        y: 0
                    };
                }
            }
        }
    }
    function =
Sys$WebForms$PageRequestManager$_initializeInternal(scriptManagerID, =
formElement) {
        if (this._prmInitialized) {
            throw =
Error.invalidOperation(Sys.WebForms.Res.PRM_CannotRegisterTwice);
        }
        this._prmInitialized =3D true;
        this._scriptManagerID =3D scriptManagerID;
        this._form =3D formElement;
        this._onsubmit =3D this._form.onsubmit;
        this._form.onsubmit =3D null;
        this._onFormSubmitHandler =3D Function.createDelegate(this, =
this._onFormSubmit);
        this._onFormElementClickHandler =3D =
Function.createDelegate(this, this._onFormElementClick);
        this._onWindowUnloadHandler =3D Function.createDelegate(this, =
this._onWindowUnload);
        Sys.UI.DomEvent.addHandler(this._form, 'submit', =
this._onFormSubmitHandler);
        Sys.UI.DomEvent.addHandler(this._form, 'click', =
this._onFormElementClickHandler);
        Sys.UI.DomEvent.addHandler(window, 'unload', =
this._onWindowUnloadHandler);
        this._originalDoPostBack =3D window.__doPostBack;
        if (this._originalDoPostBack) {
            window.__doPostBack =3D Function.createDelegate(this, =
this._doPostBack);
        }
        this._originalDoPostBackWithOptions =3D =
window.WebForm_DoPostBackWithOptions;
        if (this._originalDoPostBackWithOptions) {
            window.WebForm_DoPostBackWithOptions =3D =
Function.createDelegate(this, this._doPostBackWithOptions);
        }
        this._originalFireDefaultButton =3D =
window.WebForm_FireDefaultButton;
        if (this._originalFireDefaultButton) {
            window.WebForm_FireDefaultButton =3D =
Function.createDelegate(this, this._fireDefaultButton);
        }
        this._originalDoCallback =3D window.WebForm_DoCallback;
        if (this._originalDoCallback) {
            window.WebForm_DoCallback =3D Function.createDelegate(this, =
this._doCallback);
        }
        this._pageLoadedHandler =3D Function.createDelegate(this, =
this._pageLoadedInitialLoad);
        Sys.UI.DomEvent.addHandler(window, 'load', =
this._pageLoadedHandler);
    }
    function =
Sys$WebForms$PageRequestManager$_matchesParentIDInList(clientID, =
parentIDList) {
        for (var i =3D 0, l =3D parentIDList.length; i < l; i++) {
            if (clientID.startsWith(parentIDList[i] + "_")) {
                return true;
            }
        }
        return false;
    }
    function =
Sys$WebForms$PageRequestManager$_onFormElementActive(element, offsetX, =
offsetY) {
        if (element.disabled) {
            return;
        }
        this._postBackSettings =3D this._getPostBackSettings(element, =
element.name);
        if (element.name) {
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if (type =3D=3D=3D 'submit') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
                }
                else if (type =3D=3D=3D 'image') {
                    this._additionalInput =3D =
encodeURIComponent(element.name) + '.x=3D' + offsetX + '&' + =
encodeURIComponent(element.name) + '.y=3D' + offsetY;
                }
            }
            else if ((tagName =3D=3D=3D 'BUTTON') && =
(element.name.length !=3D=3D 0) && (element.type =3D=3D=3D 'submit')) {
                this._additionalInput =3D =
encodeURIComponent(element.name) + '=3D' + =
encodeURIComponent(element.value);
            }
        }
    }
    function Sys$WebForms$PageRequestManager$_onFormElementClick(evt) {
        this._activeDefaultButtonClicked =3D (evt.target =3D=3D=3D =
this._activeDefaultButton);
        this._onFormElementActive(evt.target, evt.offsetX, evt.offsetY);
    }
    function Sys$WebForms$PageRequestManager$_onFormSubmit(evt) {
        var continueSubmit =3D true;
        var isCrossPost =3D this._isCrossPost;
        this._isCrossPost =3D false;
        var i, l;
        if (this._onsubmit) {
            continueSubmit =3D this._onsubmit();
        }
        if (continueSubmit) {
            for (i =3D 0, l =3D this._onSubmitStatements.length; i < l; =
i++) {
                if (!this._onSubmitStatements[i]()) {
                    continueSubmit =3D false;
                    break;
                }
            }
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        var form =3D this._form;
        if (isCrossPost) {
            return;
        }
        if (this._activeDefaultButton && =
!this._activeDefaultButtonClicked) {
            this._onFormElementActive(this._activeDefaultButton, 0, 0);
        }
        if (!this._postBackSettings.async) {
            return;
        }
        var formBody =3D new Sys.StringBuilder();
        formBody.append(encodeURIComponent(this._scriptManagerID) + =
'=3D' + encodeURIComponent(this._postBackSettings.panelID) + '&');
        var count =3D form.elements.length;
        for (i =3D 0; i < count; i++) {
            var element =3D form.elements[i];
            var name =3D element.name;
            if (typeof(name) =3D=3D=3D "undefined" || (name =3D=3D=3D =
null) || (name.length =3D=3D=3D 0) || (name =3D=3D=3D =
this._scriptManagerID)) {
                continue;
            }
            var tagName =3D element.tagName.toUpperCase();
            if (tagName =3D=3D=3D 'INPUT') {
                var type =3D element.type;
                if ((type =3D=3D=3D 'text') ||
                    (type =3D=3D=3D 'password') ||
                    (type =3D=3D=3D 'hidden') ||
                    (((type =3D=3D=3D 'checkbox') || (type =3D=3D=3D =
'radio')) && element.checked)) {
                    formBody.append(encodeURIComponent(name));
                    formBody.append('=3D');
                    formBody.append(encodeURIComponent(element.value));
                    formBody.append('&');
                }
            }
            else if (tagName =3D=3D=3D 'SELECT') {
                var optionCount =3D element.options.length;
                for (var j =3D 0; j < optionCount; j++) {
                    var option =3D element.options[j];
                    if (option.selected) {
                        formBody.append(encodeURIComponent(name));
                        formBody.append('=3D');
                        =
formBody.append(encodeURIComponent(option.value));
                        formBody.append('&');
                    }
                }
            }
            else if (tagName =3D=3D=3D 'TEXTAREA') {
                formBody.append(encodeURIComponent(name));
                formBody.append('=3D');
                formBody.append(encodeURIComponent(element.value));
                formBody.append('&');
            }
        }
        formBody.append("__ASYNCPOST=3Dtrue&");
        if (this._additionalInput) {
            formBody.append(this._additionalInput);
            this._additionalInput =3D null;
        }
       =20
        var request =3D new Sys.Net.WebRequest();
        var action =3D form.action;
        if (Sys.Browser.agent =3D=3D=3D Sys.Browser.InternetExplorer) {
            var fragmentIndex =3D action.indexOf('#');
            if (fragmentIndex !=3D=3D -1) {
                action =3D action.substr(0, fragmentIndex);
            }
            var queryIndex =3D action.indexOf('?');
            if (queryIndex !=3D=3D -1) {
                var path =3D action.substr(0, queryIndex);
                if (path.indexOf("%") =3D=3D=3D -1) {
                    action =3D encodeURI(path) + =
action.substr(queryIndex);
                }
            }
            else if (action.indexOf("%") =3D=3D=3D -1) {
                action =3D encodeURI(action);
            }
        }
        request.set_url(action);
        request.get_headers()['X-MicrosoftAjax'] =3D 'Delta=3Dtrue';
        request.get_headers()['Cache-Control'] =3D 'no-cache';
        request.set_timeout(this._asyncPostBackTimeout);
        request.add_completed(Function.createDelegate(this, =
this._onFormSubmitCompleted));
        request.set_body(formBody.toString());
        var eventArgs, handler =3D =
this._get_eventHandlerList().getHandler("initializeRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.InitializeRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
            continueSubmit =3D !eventArgs.get_cancel();
        }
        if (!continueSubmit) {
            if (evt) {
                evt.preventDefault();
            }
            return;
        }
        this._scrollPosition =3D this._getScrollPosition();
        this.abortPostBack();
        handler =3D =
this._get_eventHandlerList().getHandler("beginRequest");
        if (handler) {
            eventArgs =3D new =
Sys.WebForms.BeginRequestEventArgs(request, =
this._postBackSettings.sourceElement);
            handler(this, eventArgs);
        }
       =20
        if (this._originalDoCallback) {
            this._cancelPendingCallbacks();
        }
        this._request =3D request;
        this._processingRequest =3D false;
        request.invoke();
        if (evt) {
            evt.preventDefault();
        }
    }
    function =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted(sender, =
eventArgs) {
        this._processingRequest =3D true;
        if (sender.get_timedOut()) {
            =
this._endPostBack(this._createPageRequestManagerTimeoutError(), sender, =
null);
            return;
        }
        if (sender.get_aborted()) {
            this._endPostBack(null, sender, null);
            return;
        }
        if (!this._request || (sender.get_webRequest() !=3D=3D =
this._request)) {
            return;
        }
        if (sender.get_statusCode() !=3D=3D 200) {
            =
this._endPostBack(this._createPageRequestManagerServerError(sender.get_st=
atusCode()), sender, null);
            return;
        }
        var data =3D this._parseDelta(sender);
        if (!data) return;
       =20
        var i, l;
        if (data.asyncPostBackControlIDsNode && =
data.postBackControlIDsNode &&
            data.updatePanelIDsNode && data.panelsToRefreshNode && =
data.childUpdatePanelIDsNode) {
           =20
            var oldUpdatePanelIDs =3D this._updatePanelIDs;
            var childUpdatePanelIDsString =3D =
data.childUpdatePanelIDsNode.content;
            var childUpdatePanelIDs =3D childUpdatePanelIDsString.length =
? childUpdatePanelIDsString.split(',') : [];
            var asyncPostBackControlIDsArray =3D =
this._splitNodeIntoArray(data.asyncPostBackControlIDsNode);
            var postBackControlIDsArray =3D =
this._splitNodeIntoArray(data.postBackControlIDsNode);
            var updatePanelIDsArray =3D =
this._splitNodeIntoArray(data.updatePanelIDsNode);
            var panelsToRefreshIDs =3D =
this._splitNodeIntoArray(data.panelsToRefreshNode);
            for (i =3D 0, l =3D panelsToRefreshIDs.length; i < l; i++) {
                var panelClientID =3D =
this._uniqueIDToClientID(panelsToRefreshIDs[i]);
                if (!document.getElementById(panelClientID)) {
                    =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, panelClientID)), sender, data);
                    return;
                }
            }
           =20
            var updatePanelData =3D this._processUpdatePanelArrays(
                updatePanelIDsArray,
                asyncPostBackControlIDsArray,
                postBackControlIDsArray);
            updatePanelData.oldUpdatePanelIDs =3D oldUpdatePanelIDs;
            updatePanelData.childUpdatePanelIDs =3D childUpdatePanelIDs;
            updatePanelData.panelsToRefreshIDs =3D panelsToRefreshIDs;
            data.updatePanelData =3D updatePanelData;
        }
        data.dataItems =3D {};
        var node;
        for (i =3D 0, l =3D data.dataItemNodes.length; i < l; i++) {
            node =3D data.dataItemNodes[i];
            data.dataItems[node.id] =3D node.content;
        }
        for (i =3D 0, l =3D data.dataItemJsonNodes.length; i < l; i++) {
            node =3D data.dataItemJsonNodes[i];
            data.dataItems[node.id] =3D =
Sys.Serialization.JavaScriptSerializer.deserialize(node.content);
        }
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoading");
        if (handler) {
            handler(this, this._getPageLoadingEventArgs(data));
        }
       =20
        Sys._ScriptLoader.readLoadedScripts();
        Sys.Application.beginCreateComponents();
        var scriptLoader =3D Sys._ScriptLoader.getInstance();
        this._queueScripts(scriptLoader, data.scriptBlockNodes, true, =
false);
       =20
        this._processingRequest =3D true;
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadComplete, data)),
            Function.createDelegate(this, =
Function.createCallback(this._scriptIncludesLoadFailed, data)),
            null);       =20
    }
    function Sys$WebForms$PageRequestManager$_onWindowUnload(evt) {
        this.dispose();
    }
    function Sys$WebForms$PageRequestManager$_pageLoaded(initialLoad, =
data) {
        var handler =3D =
this._get_eventHandlerList().getHandler("pageLoaded");
        if (handler) {
            handler(this, this._getPageLoadedEventArgs(initialLoad, =
data));
        }
        if (!initialLoad) {
            Sys.Application.raiseLoad();
        }
    }
    function Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad(evt) =
{
        this._pageLoaded(true, null);
    }
    function Sys$WebForms$PageRequestManager$_parseDelta(executor) {
        var reply =3D executor.get_responseData();
        var delimiterIndex, len, type, id, content;
        var replyIndex =3D 0;
        var parserErrorDetails =3D null;
        var delta =3D [];
        while (replyIndex < reply.length) {
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            len =3D parseInt(reply.substring(replyIndex, =
delimiterIndex), 10);
            if ((len % 1) !=3D=3D 0) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            type =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            delimiterIndex =3D reply.indexOf('|', replyIndex);
            if (delimiterIndex =3D=3D=3D -1) {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            id =3D reply.substring(replyIndex, delimiterIndex);
            replyIndex =3D delimiterIndex + 1;
            if ((replyIndex + len) >=3D reply.length) {
                parserErrorDetails =3D this._findText(reply, =
reply.length);
                break;
            }
            content =3D reply.substr(replyIndex, len);
            replyIndex +=3D len;
            if (reply.charAt(replyIndex) !=3D=3D '|') {
                parserErrorDetails =3D this._findText(reply, =
replyIndex);
                break;
            }
            replyIndex++;
            Array.add(delta, {type: type, id: id, content: content});
        }
        if (parserErrorDetails) {
            =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_ParserErrorDetails, parserErrorDetails)), =
executor, null);
            return null;
        }
        var updatePanelNodes =3D [];
        var hiddenFieldNodes =3D [];
        var arrayDeclarationNodes =3D [];
        var scriptBlockNodes =3D [];
        var scriptStartupNodes =3D [];
        var expandoNodes =3D [];
        var onSubmitNodes =3D [];
        var dataItemNodes =3D [];
        var dataItemJsonNodes =3D [];
        var scriptDisposeNodes =3D [];
        var asyncPostBackControlIDsNode, postBackControlIDsNode,
            updatePanelIDsNode, asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode, panelsToRefreshNode, =
formActionNode;
        for (var i =3D 0, l =3D delta.length; i < l; i++) {
            var deltaNode =3D delta[i];
            switch (deltaNode.type) {
                case "updatePanel":
                    Array.add(updatePanelNodes, deltaNode);
                    break;
                case "hiddenField":
                    Array.add(hiddenFieldNodes, deltaNode);
                    break;
                case "arrayDeclaration":
                    Array.add(arrayDeclarationNodes, deltaNode);
                    break;
                case "scriptBlock":
                    Array.add(scriptBlockNodes, deltaNode);
                    break;
                case "scriptStartupBlock":
                    Array.add(scriptStartupNodes, deltaNode);
                    break;
                case "expando":
                    Array.add(expandoNodes, deltaNode);
                    break;
                case "onSubmit":
                    Array.add(onSubmitNodes, deltaNode);
                    break;
                case "asyncPostBackControlIDs":
                    asyncPostBackControlIDsNode =3D deltaNode;
                    break;
                case "postBackControlIDs":
                    postBackControlIDsNode =3D deltaNode;
                    break;
                case "updatePanelIDs":
                    updatePanelIDsNode =3D deltaNode;
                    break;
                case "asyncPostBackTimeout":
                    asyncPostBackTimeoutNode =3D deltaNode;
                    break;
                case "childUpdatePanelIDs":
                    childUpdatePanelIDsNode =3D deltaNode;
                    break;
                case "panelsToRefreshIDs":
                    panelsToRefreshNode =3D deltaNode;
                    break;
                case "formAction":
                    formActionNode =3D deltaNode;
                    break;
                case "dataItem":
                    Array.add(dataItemNodes, deltaNode);
                    break;
                case "dataItemJson":
                    Array.add(dataItemJsonNodes, deltaNode);
                    break;
                case "scriptDispose":
                    Array.add(scriptDisposeNodes, deltaNode);
                    break;
                case "pageRedirect":
                    if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                        var anchor =3D document.createElement("a");
                        anchor.style.display =3D 'none';
                        anchor.attachEvent("onclick", cancelBubble);
                        anchor.href =3D deltaNode.content;
                        document.body.appendChild(anchor);
                        anchor.click();
                        anchor.detachEvent("onclick", cancelBubble);
                        document.body.removeChild(anchor);
                       =20
                        function cancelBubble(e) {
                            e.cancelBubble =3D true;
                        }
                    }
                    else {
                        window.location.href =3D deltaNode.content;
                    }
                    return;
                case "error":
                    =
this._endPostBack(this._createPageRequestManagerServerError(Number.parseI=
nvariant(deltaNode.id), deltaNode.content), executor, null);
                    return null;
                case "pageTitle":
                    document.title =3D deltaNode.content;
                    break;
                case "focus":
                    this._controlIDToFocus =3D deltaNode.content;
                    break;
                default:
                    =
this._endPostBack(this._createPageRequestManagerParserError(String.format=
(Sys.WebForms.Res.PRM_UnknownToken, deltaNode.type)), executor, null);
                    return null;
            }=20
        }=20
        return {
            executor: executor,
            updatePanelNodes: updatePanelNodes,
            hiddenFieldNodes: hiddenFieldNodes,
            arrayDeclarationNodes: arrayDeclarationNodes,
            scriptBlockNodes: scriptBlockNodes,
            scriptStartupNodes: scriptStartupNodes,
            expandoNodes: expandoNodes,
            onSubmitNodes: onSubmitNodes,
            dataItemNodes: dataItemNodes,
            dataItemJsonNodes: dataItemJsonNodes,
            scriptDisposeNodes: scriptDisposeNodes,
            asyncPostBackControlIDsNode: asyncPostBackControlIDsNode,
            postBackControlIDsNode: postBackControlIDsNode,
            updatePanelIDsNode: updatePanelIDsNode,
            asyncPostBackTimeoutNode: asyncPostBackTimeoutNode,
            childUpdatePanelIDsNode: childUpdatePanelIDsNode,
            panelsToRefreshNode: panelsToRefreshNode,
            formActionNode: formActionNode };
    }
    function =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays(updatePanelIDs,=
 asyncPostBackControlIDs, postBackControlIDs) {
        var newUpdatePanelIDs;
        var newUpdatePanelClientIDs;
        var newUpdatePanelHasChildrenAsTriggers;
       =20
        if (updatePanelIDs) {
            var l =3D updatePanelIDs.length;
            newUpdatePanelIDs =3D new Array(l);
            newUpdatePanelClientIDs =3D new Array(l);
            newUpdatePanelHasChildrenAsTriggers =3D new Array(l);
           =20
            for (var i =3D 0; i < l; i++) {
                var realPanelID =3D updatePanelIDs[i].substr(1);
                var childrenAsTriggers =3D (updatePanelIDs[i].charAt(0) =
=3D=3D=3D 't');
                newUpdatePanelHasChildrenAsTriggers[i] =3D =
childrenAsTriggers;
                newUpdatePanelIDs[i] =3D realPanelID;
                newUpdatePanelClientIDs[i] =3D =
this._uniqueIDToClientID(realPanelID);
            }
        }
        else {
            newUpdatePanelIDs =3D [];
            newUpdatePanelClientIDs =3D [];
            newUpdatePanelHasChildrenAsTriggers =3D [];
        }
        var newAsyncPostBackControlIDs =3D [];
        var newAsyncPostBackControlClientIDs =3D [];
        this._convertToClientIDs(asyncPostBackControlIDs, =
newAsyncPostBackControlIDs, newAsyncPostBackControlClientIDs);
        var newPostBackControlIDs =3D [];
        var newPostBackControlClientIDs =3D [];
        this._convertToClientIDs(postBackControlIDs, =
newPostBackControlIDs, newPostBackControlClientIDs);
       =20
        return {
            updatePanelIDs: newUpdatePanelIDs,
            updatePanelClientIDs: newUpdatePanelClientIDs,
            updatePanelHasChildrenAsTriggers: =
newUpdatePanelHasChildrenAsTriggers,
            asyncPostBackControlIDs: newAsyncPostBackControlIDs,
            asyncPostBackControlClientIDs: =
newAsyncPostBackControlClientIDs,
            postBackControlIDs: newPostBackControlIDs,
            postBackControlClientIDs: newPostBackControlClientIDs
        };
    }
    function Sys$WebForms$PageRequestManager$_queueScripts(scriptLoader, =
scriptBlockNodes, queueIncludes, queueBlocks) {
       =20
        for (var i =3D 0, l =3D scriptBlockNodes.length; i < l; i++) {
            var scriptBlockType =3D scriptBlockNodes[i].id;
            switch (scriptBlockType) {
                case "ScriptContentNoTags":
                    if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueScriptBlock(scriptBlockNodes[i].content);
                    break;
                case "ScriptContentWithTags":
                    var scriptTagAttributes;
                    eval("scriptTagAttributes =3D " + =
scriptBlockNodes[i].content);
                    if (scriptTagAttributes.src) {
                        if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptTagAttributes.src)) {
                            continue;
                        }
                    }
                    else if (!queueBlocks) {
                        continue;
                    }
                    =
scriptLoader.queueCustomScriptTag(scriptTagAttributes);
                    break;
                case "ScriptPath":
                    if (!queueIncludes || =
Sys._ScriptLoader.isScriptLoaded(scriptBlockNodes[i].content)) {
                        continue;
                    }
                    =
scriptLoader.queueScriptReference(scriptBlockNodes[i].content);
                    break;
            }
        }       =20
    }
    function =
Sys$WebForms$PageRequestManager$_registerDisposeScript(panelID, =
disposeScript) {
        if (!this._scriptDisposes[panelID]) {
            this._scriptDisposes[panelID] =3D [disposeScript];
        }
        else {
            Array.add(this._scriptDisposes[panelID], disposeScript);
        }
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete(scriptLoader,=
 data) {
       =20
       =20
        if (data.executor.get_webRequest() !=3D=3D this._request) {
            return;
        }
       =20
        this._commitControls(data.updatePanelData,
            data.asyncPostBackTimeoutNode ? =
data.asyncPostBackTimeoutNode.content : null);
        if (data.formActionNode) {
            this._form.action =3D data.formActionNode.content;
        }
       =20
        var i, l, node;
        for (i =3D 0, l =3D data.updatePanelNodes.length; i < l; i++) {
            node =3D data.updatePanelNodes[i];
            var updatePanelElement =3D document.getElementById(node.id);
            if (!updatePanelElement) {
                =
this._endPostBack(Error.invalidOperation(String.format(Sys.WebForms.Res.P=
RM_MissingPanel, node.id)), data.executor, data);
                return;
            }
            this._updatePanel(updatePanelElement, node.content);
        }
        for (i =3D 0, l =3D data.scriptDisposeNodes.length; i < l; i++) =
{
            node =3D data.scriptDisposeNodes[i];
            this._registerDisposeScript(node.id, node.content);
        }
        for (i =3D 0, l =3D this._transientFields.length; i < l; i++) {
            var field =3D =
document.getElementById(this._transientFields[i]);
            if (field) {
                var toRemove =3D field._isContained ? field.parentNode : =
field;
                toRemove.parentNode.removeChild(toRemove);
            }
        }
        for (i =3D 0, l =3D data.hiddenFieldNodes.length; i < l; i++) {
            node =3D data.hiddenFieldNodes[i];
            this._createHiddenField(node.id, node.content);
        }
       =20
        if (data.scriptsFailed) {
            throw =
Sys._ScriptLoader._errorScriptLoadFailed(data.scriptsFailed.src, =
data.scriptsFailed.multipleCallbacks);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptBlockNodes, false, =
true);
        var arrayScript =3D '';
        for (i =3D 0, l =3D data.arrayDeclarationNodes.length; i < l; =
i++) {
            node =3D data.arrayDeclarationNodes[i];
            arrayScript +=3D =
"Sys.WebForms.PageRequestManager._addArrayElement('" + node.id + "', " + =
node.content + ");\r\n";
        }
        var expandoScript =3D '';
        for (i =3D 0, l =3D data.expandoNodes.length; i < l; i++) {
            node =3D data.expandoNodes[i];
            expandoScript +=3D node.id + " =3D " + node.content + =
"\r\n";
        }
        if (arrayScript.length) {
            scriptLoader.queueScriptBlock(arrayScript);
        }
        if (expandoScript.length) {
            scriptLoader.queueScriptBlock(expandoScript);
        }
       =20
        this._queueScripts(scriptLoader, data.scriptStartupNodes, true, =
true);
        var onSubmitStatementScript =3D '';
        for (i =3D 0, l =3D data.onSubmitNodes.length; i < l; i++) {
            if (i =3D=3D=3D 0) {
                onSubmitStatementScript =3D =
'Array.add(Sys.WebForms.PageRequestManager.getInstance()._onSubmitStateme=
nts, function() {\r\n';
            }
            onSubmitStatementScript +=3D data.onSubmitNodes[i].content + =
"\r\n";
        }
        if (onSubmitStatementScript.length) {
            onSubmitStatementScript +=3D "\r\nreturn true;\r\n});\r\n";
            scriptLoader.queueScriptBlock(onSubmitStatementScript);
        }
        scriptLoader.loadScripts(0,
            Function.createDelegate(this, =
Function.createCallback(this._scriptsLoadComplete, data)), null, null);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed(scriptLoader, =
scriptElement, multipleCallbacks, data) {
        data.scriptsFailed =3D { src: scriptElement.src, =
multipleCallbacks: multipleCallbacks };
        this._scriptIncludesLoadComplete(scriptLoader, data);
    }
    function =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete(scriptLoader, data) =
{
       =20
       =20
        var response =3D data.executor;
        if (window.__theFormPostData) {
            window.__theFormPostData =3D "";
        }
        if (window.__theFormPostCollection) {
            window.__theFormPostCollection =3D [];
        }
        if (window.WebForm_InitCallback) {
            window.WebForm_InitCallback();
        }
        if (this._scrollPosition) {
            if (window.scrollTo) {
                window.scrollTo(this._scrollPosition.x, =
this._scrollPosition.y);
            }
            this._scrollPosition =3D null;
        }
        Sys.Application.endCreateComponents();
        this._pageLoaded(false, data);
        this._endPostBack(null, response, data);
        if (this._controlIDToFocus) {
            var focusTarget;
            var oldContentEditableSetting;
            if (Sys.Browser.agent =3D=3D=3D =
Sys.Browser.InternetExplorer) {
                var targetControl =3D $get(this._controlIDToFocus);
                focusTarget =3D targetControl;
                if (targetControl && (!WebForm_CanFocus(targetControl))) =
{
                    focusTarget =3D =
WebForm_FindFirstFocusableChild(targetControl);
                }
                if (focusTarget && (typeof(focusTarget.contentEditable) =
!=3D=3D "undefined")) {
                    oldContentEditableSetting =3D =
focusTarget.contentEditable;
                    focusTarget.contentEditable =3D false;
                }
                else {
                    focusTarget =3D null;
                }
            }
            WebForm_AutoFocus(this._controlIDToFocus);
            if (focusTarget) {
                focusTarget.contentEditable =3D =
oldContentEditableSetting;
            }
            this._controlIDToFocus =3D null;
        }
    }
    function Sys$WebForms$PageRequestManager$_splitNodeIntoArray(node) {
        var str =3D node.content;
        var arr =3D str.length ? str.split(',') : [];
        return arr;
    }
    function =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID(uniqueID) {
        return uniqueID.replace(/\$/g, '_');
    }
    function =
Sys$WebForms$PageRequestManager$_updateControls(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs, asyncPostBackTimeout) {
        this._commitControls(
            this._processUpdatePanelArrays(updatePanelIDs, =
asyncPostBackControlIDs, postBackControlIDs),
            asyncPostBackTimeout);
    }
    function =
Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, =
rendering) {
        for (var updatePanelID in this._scriptDisposes) {
            if (this._elementContains(updatePanelElement, =
document.getElementById(updatePanelID))) {
                var disposeScripts =3D =
this._scriptDisposes[updatePanelID];
                for (var i =3D 0, l =3D disposeScripts.length; i < l; =
i++) {
                    eval(disposeScripts[i]);
                }
                delete this._scriptDisposes[updatePanelID];
            }
        }
        this._destroyTree(updatePanelElement);
        updatePanelElement.innerHTML =3D rendering;
    }
    function Sys$WebForms$PageRequestManager$_validPosition(position) {
        return (typeof(position) !=3D=3D "undefined") && (position =
!=3D=3D null) && (position !=3D=3D 0);
    }
Sys.WebForms.PageRequestManager.prototype =3D {
    _get_eventHandlerList: =
Sys$WebForms$PageRequestManager$_get_eventHandlerList,
    get_isInAsyncPostBack: =
Sys$WebForms$PageRequestManager$get_isInAsyncPostBack,
    add_beginRequest: Sys$WebForms$PageRequestManager$add_beginRequest,
    remove_beginRequest: =
Sys$WebForms$PageRequestManager$remove_beginRequest,
    add_endRequest: Sys$WebForms$PageRequestManager$add_endRequest,
    remove_endRequest: =
Sys$WebForms$PageRequestManager$remove_endRequest,
    add_initializeRequest: =
Sys$WebForms$PageRequestManager$add_initializeRequest,
    remove_initializeRequest: =
Sys$WebForms$PageRequestManager$remove_initializeRequest,
    add_pageLoaded: Sys$WebForms$PageRequestManager$add_pageLoaded,
    remove_pageLoaded: =
Sys$WebForms$PageRequestManager$remove_pageLoaded,
    add_pageLoading: Sys$WebForms$PageRequestManager$add_pageLoading,
    remove_pageLoading: =
Sys$WebForms$PageRequestManager$remove_pageLoading,
    abortPostBack: Sys$WebForms$PageRequestManager$abortPostBack,
    _cancelPendingCallbacks: =
Sys$WebForms$PageRequestManager$_cancelPendingCallbacks,
    _commitControls: Sys$WebForms$PageRequestManager$_commitControls,
    _createHiddenField: =
Sys$WebForms$PageRequestManager$_createHiddenField,
    _createPageRequestManagerTimeoutError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerTimeoutError,
    _createPageRequestManagerServerError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerServerError,
    _createPageRequestManagerParserError: =
Sys$WebForms$PageRequestManager$_createPageRequestManagerParserError,
    _createPostBackSettings: =
Sys$WebForms$PageRequestManager$_createPostBackSettings,
    _convertToClientIDs: =
Sys$WebForms$PageRequestManager$_convertToClientIDs,
    _destroyTree: Sys$WebForms$PageRequestManager$_destroyTree,
    dispose: Sys$WebForms$PageRequestManager$dispose,
    _doCallback: Sys$WebForms$PageRequestManager$_doCallback,
    _doPostBack: Sys$WebForms$PageRequestManager$_doPostBack,
    _doPostBackWithOptions: =
Sys$WebForms$PageRequestManager$_doPostBackWithOptions,
    _elementContains: Sys$WebForms$PageRequestManager$_elementContains,
    _endPostBack: Sys$WebForms$PageRequestManager$_endPostBack,
    _findNearestElement: =
Sys$WebForms$PageRequestManager$_findNearestElement,
    _findText: Sys$WebForms$PageRequestManager$_findText,
    _fireDefaultButton: =
Sys$WebForms$PageRequestManager$_fireDefaultButton,
    _getPageLoadedEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadedEventArgs,
    _getPageLoadingEventArgs: =
Sys$WebForms$PageRequestManager$_getPageLoadingEventArgs,
    _getPostBackSettings: =
Sys$WebForms$PageRequestManager$_getPostBackSettings,
    _getScrollPosition: =
Sys$WebForms$PageRequestManager$_getScrollPosition,
    _initializeInternal: =
Sys$WebForms$PageRequestManager$_initializeInternal,
    _matchesParentIDInList: =
Sys$WebForms$PageRequestManager$_matchesParentIDInList,
    _onFormElementActive: =
Sys$WebForms$PageRequestManager$_onFormElementActive,
    _onFormElementClick: =
Sys$WebForms$PageRequestManager$_onFormElementClick,
    _onFormSubmit: Sys$WebForms$PageRequestManager$_onFormSubmit,
    _onFormSubmitCompleted: =
Sys$WebForms$PageRequestManager$_onFormSubmitCompleted,
    _onWindowUnload: Sys$WebForms$PageRequestManager$_onWindowUnload,
    _pageLoaded: Sys$WebForms$PageRequestManager$_pageLoaded,
    _pageLoadedInitialLoad: =
Sys$WebForms$PageRequestManager$_pageLoadedInitialLoad,
    _parseDelta: Sys$WebForms$PageRequestManager$_parseDelta,
    _processUpdatePanelArrays: =
Sys$WebForms$PageRequestManager$_processUpdatePanelArrays,
    _queueScripts: Sys$WebForms$PageRequestManager$_queueScripts,
    _registerDisposeScript: =
Sys$WebForms$PageRequestManager$_registerDisposeScript,
    _scriptIncludesLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadComplete,
    _scriptIncludesLoadFailed: =
Sys$WebForms$PageRequestManager$_scriptIncludesLoadFailed,
    _scriptsLoadComplete: =
Sys$WebForms$PageRequestManager$_scriptsLoadComplete,
    _splitNodeIntoArray: =
Sys$WebForms$PageRequestManager$_splitNodeIntoArray,
    _uniqueIDToClientID: =
Sys$WebForms$PageRequestManager$_uniqueIDToClientID,
    _updateControls: Sys$WebForms$PageRequestManager$_updateControls,
    _updatePanel: Sys$WebForms$PageRequestManager$_updatePanel,
    _validPosition: Sys$WebForms$PageRequestManager$_validPosition
}
Sys.WebForms.PageRequestManager.getInstance =3D function =
Sys$WebForms$PageRequestManager$getInstance() {
    /// <summary =
locid=3D"M:J#Sys.WebForms.PageRequestManager.getInstance" />
    /// <returns type=3D"Sys.WebForms.PageRequestManager"></returns>
    if (arguments.length !=3D=3D 0) throw Error.parameterCount();
    var prm =3D Sys.WebForms.PageRequestManager._instance;
    if (!prm) {
        prm =3D Sys.WebForms.PageRequestManager._instance =3D new =
Sys.WebForms.PageRequestManager();
    }
    return prm;
}
Sys.WebForms.PageRequestManager._addArrayElement =3D function =
Sys$WebForms$PageRequestManager$_addArrayElement(arrayName) {
    if (!window[arrayName]) {
        window[arrayName] =3D new Array();
    }
    for (var i =3D 1, l =3D arguments.length; i < l; i++) {
        Array.add(window[arrayName], arguments[i]);
    }
}
Sys.WebForms.PageRequestManager._initialize =3D function =
Sys$WebForms$PageRequestManager$_initialize(scriptManagerID, =
formElement) {
    =
Sys.WebForms.PageRequestManager.getInstance()._initializeInternal(scriptM=
anagerID, formElement);
}
Sys.WebForms.PageRequestManager.registerClass('Sys.WebForms.PageRequestMa=
nager');
=20
Sys.UI._UpdateProgress =3D function Sys$UI$_UpdateProgress(element) {
    Sys.UI._UpdateProgress.initializeBase(this,[element]);
    this._displayAfter =3D 500;
    this._dynamicLayout =3D true;
    this._associatedUpdatePanelId =3D null;
    this._beginRequestHandlerDelegate =3D null;
    this._startDelegate =3D null;
    this._endRequestHandlerDelegate =3D null;
    this._pageRequestManager =3D null;
    this._timerCookie =3D null;
}
    function Sys$UI$_UpdateProgress$get_displayAfter() {
        /// <value type=3D"Number" =
locid=3D"P:J#Sys.UI._UpdateProgress.displayAfter"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._displayAfter;
    }
    function Sys$UI$_UpdateProgress$set_displayAfter(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Number}]);
        if (e) throw e;
        this._displayAfter =3D value;
    }
    function Sys$UI$_UpdateProgress$get_dynamicLayout() {
        /// <value type=3D"Boolean" =
locid=3D"P:J#Sys.UI._UpdateProgress.dynamicLayout"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._dynamicLayout;
    }
    function Sys$UI$_UpdateProgress$set_dynamicLayout(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: Boolean}]);
        if (e) throw e;
        this._dynamicLayout =3D value;
    }
    function Sys$UI$_UpdateProgress$get_associatedUpdatePanelId() {
        /// <value type=3D"String" mayBeNull=3D"true" =
locid=3D"P:J#Sys.UI._UpdateProgress.associatedUpdatePanelId"></value>
        if (arguments.length !=3D=3D 0) throw Error.parameterCount();
        return this._associatedUpdatePanelId;
    }
    function Sys$UI$_UpdateProgress$set_associatedUpdatePanelId(value) {
        var e =3D Function._validateParams(arguments, [{name: "value", =
type: String, mayBeNull: true}]);
        if (e) throw e;
        this._associatedUpdatePanelId =3D value;
    }
    function Sys$UI$_UpdateProgress$_clearTimeout() {
        if (this._timerCookie) {
            window.clearTimeout(this._timerCookie);
            this._timerCookie =3D null;
        }
    }
    function Sys$UI$_UpdateProgress$_handleBeginRequest(sender, arg) {
        var curElem =3D arg.get_postBackElement();
        var showProgress =3D !this._associatedUpdatePanelId;=20
        while (!showProgress && curElem) {
            if (curElem.id && this._associatedUpdatePanelId =3D=3D=3D =
curElem.id) {
                showProgress =3D true;=20
            }
            curElem =3D curElem.parentNode;=20
        }=20
        if (showProgress) {
            this._timerCookie =3D window.setTimeout(this._startDelegate, =
this._displayAfter);
        }
    }
    function Sys$UI$_UpdateProgress$_startRequest() {
        if (this._pageRequestManager.get_isInAsyncPostBack()) {
            if (this._dynamicLayout) this.get_element().style.display =
=3D 'block';
            else this.get_element().style.visibility =3D 'visible';
        }
        this._timerCookie =3D null;
    }
    function Sys$UI$_UpdateProgress$_handleEndRequest(sender, arg) {
        if (this._dynamicLayout) this.get_element().style.display =3D =
'none';
        else this.get_element().style.visibility =3D 'hidden';
        this._clearTimeout();
    }
    function Sys$UI$_UpdateProgress$dispose() {
        if (this._beginRequestHandlerDelegate !=3D=3D null) {
            =
this._pageRequestManager.remove_beginRequest(this._beginRequestHandlerDel=
egate);
            =
this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegat=
e);
            this._beginRequestHandlerDelegate =3D null;
            this._endRequestHandlerDelegate =3D null;
        }
        this._clearTimeout();
        Sys.UI._UpdateProgress.callBaseMethod(this,"dispose");
    }
    function Sys$UI$_UpdateProgress$initialize() {
        Sys.UI._UpdateProgress.callBaseMethod(this, 'initialize');
    	this._beginRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleBeginRequest);
    	this._endRequestHandlerDelegate =3D Function.createDelegate(this, =
this._handleEndRequest);
    	this._startDelegate =3D Function.createDelegate(this, =
this._startRequest);
    	if (Sys.WebForms && Sys.WebForms.PageRequestManager) {
           this._pageRequestManager =3D =
Sys.WebForms.PageRequestManager.getInstance();
    	}
    	if (this._pageRequestManager !=3D=3D null ) {
    	    =
this._pageRequestManager.add_beginRequest(this._beginRequestHandlerDelega=
te);
    	    =
this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);=

    	}
    }
Sys.UI._UpdateProgress.prototype =3D {
    get_displayAfter: Sys$UI$_UpdateProgress$get_displayAfter,
    set_displayAfter: Sys$UI$_UpdateProgress$set_displayAfter,
    get_dynamicLayout: Sys$UI$_UpdateProgress$get_dynamicLayout,
    set_dynamicLayout: Sys$UI$_UpdateProgress$set_dynamicLayout,
    get_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$get_associatedUpdatePanelId,
    set_associatedUpdatePanelId: =
Sys$UI$_UpdateProgress$set_associatedUpdatePanelId,
    _clearTimeout: Sys$UI$_UpdateProgress$_clearTimeout,
    _handleBeginRequest: Sys$UI$_UpdateProgress$_handleBeginRequest,
    _startRequest: Sys$UI$_UpdateProgress$_startRequest,
    _handleEndRequest: Sys$UI$_UpdateProgress$_handleEndRequest,
    dispose: Sys$UI$_UpdateProgress$dispose,
    initialize: Sys$UI$_UpdateProgress$initialize
}
Sys.UI._UpdateProgress.registerClass('Sys.UI._UpdateProgress', =
Sys.UI.Control);


Type.registerNamespace('Sys.WebForms');
Sys.WebForms.Res=3D{
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed.",
"PRM_TimeoutError":"The server request timed out.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once.",
"PRM_UnknownToken":"Unknown token: \u0027{0}\u0027.",
"PRM_MissingPanel":"Could not find UpdatePanel with ID \u0027{0}\u0027. =
If it is being updated dynamically then it must be inside another =
UpdatePanel.",
"PRM_ServerError":"An unknown error occurred while processing the =
request on the server. The status code returned from the server was: =
{0}",
"PRM_ParserError":"The message received from the server could not be =
parsed. Common causes for this error are when the response is modified =
by calls to Response.Write(), response filters, HttpModules, or server =
trace is enabled.\r\nDetails: {0}",
"PRM_TimeoutError":"The server request timed out.",
"PRM_ParserErrorDetails":"Error parsing near \u0027{0}\u0027.",
"PRM_CannotRegisterTwice":"The PageRequestManager cannot be initialized =
more than once."
};

if(typeof(Sys)!=3D=3D'undefined')Sys.Application.notifyScriptLoaded();
------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://jqueryjs.googlecode.com/files/jquery-1.3.min.js

/*=0A=
 * jQuery JavaScript Library v1.3=0A=
 * http://jquery.com/=0A=
 *=0A=
 * Copyright (c) 2009 John Resig=0A=
 * Dual licensed under the MIT and GPL licenses.=0A=
 * http://docs.jquery.com/License=0A=
 *=0A=
 * Date: 2009-01-13 12:50:31 -0500 (Tue, 13 Jan 2009)=0A=
 * Revision: 6104=0A=
 */=0A=
(function(){var =
l=3Dthis,g,x=3Dl.jQuery,o=3Dl.$,n=3Dl.jQuery=3Dl.$=3Dfunction(D,E){return=
 new =
n.fn.init(D,E)},C=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=3D/^.[^:#\[\.=
,]*$/;n.fn=3Dn.prototype=3D{init:function(D,G){D=3DD||document;if(D.nodeT=
ype){this[0]=3DD;this.length=3D1;this.context=3DD;return this}if(typeof =
D=3D=3D=3D"string"){var =
F=3DC.exec(D);if(F&&(F[1]||!G)){if(F[1]){D=3Dn.clean([F[1]],G)}else{var =
H=3Ddocument.getElementById(F[3]);if(H){if(H.id!=3DF[3]){return =
n().find(D)}var E=3Dn(H);E.context=3Ddocument;E.selector=3DD;return =
E}D=3D[]}}else{return n(G).find(D)}}else{if(n.isFunction(D)){return =
n(document).ready(D)}}if(D.selector&&D.context){this.selector=3DD.selecto=
r;this.context=3DD.context}return =
this.setArray(n.makeArray(D))},selector:"",jquery:"1.3",size:function(){r=
eturn this.length},get:function(D){return =
D=3D=3D=3Dg?n.makeArray(this):this[D]},pushStack:function(E,G,D){var =
F=3Dn(E);F.prevObject=3Dthis;F.context=3Dthis.context;if(G=3D=3D=3D"find"=
){F.selector=3Dthis.selector+(this.selector?" =
":"")+D}else{if(G){F.selector=3Dthis.selector+"."+G+"("+D+")"}}return =
F},setArray:function(D){this.length=3D0;Array.prototype.push.apply(this,D=
);return this},each:function(E,D){return =
n.each(this,E,D)},index:function(D){return =
n.inArray(D&&D.jquery?D[0]:D,this)},attr:function(E,G,F){var =
D=3DE;if(typeof E=3D=3D=3D"string"){if(G=3D=3D=3Dg){return =
this[0]&&n[F||"attr"](this[0],E)}else{D=3D{};D[E]=3DG}}return =
this.each(function(H){for(E in =
D){n.attr(F?this.style:this,E,n.prop(this,D[E],F,H,E))}})},css:function(D=
,E){if((D=3D=3D"width"||D=3D=3D"height")&&parseFloat(E)<0){E=3Dg}return =
this.attr(D,E,"curCSS")},text:function(E){if(typeof =
E!=3D=3D"object"&&E!=3Dnull){return =
this.empty().append((this[0]&&this[0].ownerDocument||document).createText=
Node(E))}var =
D=3D"";n.each(E||this,function(){n.each(this.childNodes,function(){if(thi=
s.nodeType!=3D8){D+=3Dthis.nodeType!=3D1?this.nodeValue:n.fn.text([this])=
}})});return D},wrapAll:function(D){if(this[0]){var =
E=3Dn(D,this[0].ownerDocument).clone();if(this[0].parentNode){E.insertBef=
ore(this[0])}E.map(function(){var =
F=3Dthis;while(F.firstChild){F=3DF.firstChild}return =
F}).append(this)}return this},wrapInner:function(D){return =
this.each(function(){n(this).contents().wrapAll(D)})},wrap:function(D){re=
turn this.each(function(){n(this).wrapAll(D)})},append:function(){return =
this.domManip(arguments,true,function(D){if(this.nodeType=3D=3D1){this.ap=
pendChild(D)}})},prepend:function(){return =
this.domManip(arguments,true,function(D){if(this.nodeType=3D=3D1){this.in=
sertBefore(D,this.firstChild)}})},before:function(){return =
this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,=
this)})},after:function(){return =
this.domManip(arguments,false,function(D){this.parentNode.insertBefore(D,=
this.nextSibling)})},end:function(){return =
this.prevObject||n([])},push:[].push,find:function(D){if(this.length=3D=3D=
=3D1&&!/,/.test(D)){var =
F=3Dthis.pushStack([],"find",D);F.length=3D0;n.find(D,this[0],F);return =
F}else{var E=3Dn.map(this,function(G){return n.find(D,G)});return =
this.pushStack(/[^+>] =
[^+>]/.test(D)?n.unique(E):E,"find",D)}},clone:function(E){var =
D=3Dthis.map(function(){if(!n.support.noCloneEvent&&!n.isXMLDoc(this)){va=
r =
H=3Dthis.cloneNode(true),G=3Ddocument.createElement("div");G.appendChild(=
H);return n.clean([G.innerHTML])[0]}else{return =
this.cloneNode(true)}});var =
F=3DD.find("*").andSelf().each(function(){if(this[h]!=3D=3Dg){this[h]=3Dn=
ull}});if(E=3D=3D=3Dtrue){this.find("*").andSelf().each(function(H){if(th=
is.nodeType=3D=3D3){return}var G=3Dn.data(this,"events");for(var J in =
G){for(var I in =
G[J]){n.event.add(F[H],J,G[J][I],G[J][I].data)}}})}return =
D},filter:function(D){return =
this.pushStack(n.isFunction(D)&&n.grep(this,function(F,E){return =
D.call(F,E)})||n.multiFilter(D,n.grep(this,function(E){return =
E.nodeType=3D=3D=3D1})),"filter",D)},closest:function(D){var =
E=3Dn.expr.match.POS.test(D)?n(D):null;return this.map(function(){var =
F=3Dthis;while(F&&F.ownerDocument){if(E?E.index(F)>-1:n(F).is(D)){return =
F}F=3DF.parentNode}})},not:function(D){if(typeof =
D=3D=3D=3D"string"){if(f.test(D)){return =
this.pushStack(n.multiFilter(D,this,true),"not",D)}else{D=3Dn.multiFilter=
(D,this)}}var E=3DD.length&&D[D.length-1]!=3D=3Dg&&!D.nodeType;return =
this.filter(function(){return =
E?n.inArray(this,D)<0:this!=3DD})},add:function(D){return =
this.pushStack(n.unique(n.merge(this.get(),typeof =
D=3D=3D=3D"string"?n(D):n.makeArray(D))))},is:function(D){return =
!!D&&n.multiFilter(D,this).length>0},hasClass:function(D){return =
!!D&&this.is("."+D)},val:function(J){if(J=3D=3D=3Dg){var =
D=3Dthis[0];if(D){if(n.nodeName(D,"option")){return(D.attributes.value||{=
}).specified?D.value:D.text}if(n.nodeName(D,"select")){var =
H=3DD.selectedIndex,K=3D[],L=3DD.options,G=3DD.type=3D=3D"select-one";if(=
H<0){return null}for(var E=3DG?H:0,I=3DG?H+1:L.length;E<I;E++){var =
F=3DL[E];if(F.selected){J=3Dn(F).val();if(G){return J}K.push(J)}}return =
K}return(D.value||"").replace(/\r/g,"")}return g}if(typeof =
J=3D=3D=3D"number"){J+=3D""}return =
this.each(function(){if(this.nodeType!=3D1){return}if(n.isArray(J)&&/radi=
o|checkbox/.test(this.type)){this.checked=3D(n.inArray(this.value,J)>=3D0=
||n.inArray(this.name,J)>=3D0)}else{if(n.nodeName(this,"select")){var =
M=3Dn.makeArray(J);n("option",this).each(function(){this.selected=3D(n.in=
Array(this.value,M)>=3D0||n.inArray(this.text,M)>=3D0)});if(!M.length){th=
is.selectedIndex=3D-1}}else{this.value=3DJ}}})},html:function(D){return =
D=3D=3D=3Dg?(this[0]?this[0].innerHTML:null):this.empty().append(D)},repl=
aceWith:function(D){return this.after(D).remove()},eq:function(D){return =
this.slice(D,+D+1)},slice:function(){return =
this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.=
prototype.slice.call(arguments).join(","))},map:function(D){return =
this.pushStack(n.map(this,function(F,E){return =
D.call(F,E,F)}))},andSelf:function(){return =
this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var =
I=3D(this[0].ownerDocument||this[0]).createDocumentFragment(),F=3Dn.clean=
(J,(this[0].ownerDocument||this[0]),I),H=3DI.firstChild,D=3Dthis.length>1=
?I.cloneNode(true):I;if(H){for(var =
G=3D0,E=3Dthis.length;G<E;G++){L.call(K(this[G],H),G>0?D.cloneNode(true):=
I)}}if(F){n.each(F,y)}}return this;function K(N,O){return =
M&&n.nodeName(N,"table")&&n.nodeName(O,"tr")?(N.getElementsByTagName("tbo=
dy")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};n.fn=
.init.prototype=3Dn.fn;function =
y(D,E){if(E.src){n.ajax({url:E.src,async:false,dataType:"script"})}else{n=
.globalEval(E.text||E.textContent||E.innerHTML||"")}if(E.parentNode){E.pa=
rentNode.removeChild(E)}}function e(){return +new =
Date}n.extend=3Dn.fn.extend=3Dfunction(){var =
I=3Darguments[0]||{},G=3D1,H=3Darguments.length,D=3Dfalse,F;if(typeof =
I=3D=3D=3D"boolean"){D=3DI;I=3Darguments[1]||{};G=3D2}if(typeof =
I!=3D=3D"object"&&!n.isFunction(I)){I=3D{}}if(H=3D=3DG){I=3Dthis;--G}for(=
;G<H;G++){if((F=3Darguments[G])!=3Dnull){for(var E in F){var =
J=3DI[E],K=3DF[E];if(I=3D=3D=3DK){continue}if(D&&K&&typeof =
K=3D=3D=3D"object"&&!K.nodeType){I[E]=3Dn.extend(D,J||(K.length!=3Dnull?[=
]:{}),K)}else{if(K!=3D=3Dg){I[E]=3DK}}}}}return I};var =
b=3D/z-?index|font-?weight|opacity|zoom|line-?height/i,p=3Ddocument.defau=
ltView||{},r=3DObject.prototype.toString;n.extend({noConflict:function(D)=
{l.$=3Do;if(D){l.jQuery=3Dx}return n},isFunction:function(D){return =
r.call(D)=3D=3D=3D"[object Function]"},isArray:function(D){return =
r.call(D)=3D=3D=3D"[object Array]"},isXMLDoc:function(D){return =
D.documentElement&&!D.body||D.tagName&&D.ownerDocument&&!D.ownerDocument.=
body},globalEval:function(F){F=3Dn.trim(F);if(F){var =
E=3Ddocument.getElementsByTagName("head")[0]||document.documentElement,D=3D=
document.createElement("script");D.type=3D"text/javascript";if(n.support.=
scriptEval){D.appendChild(document.createTextNode(F))}else{D.text=3DF}E.i=
nsertBefore(D,E.firstChild);E.removeChild(D)}},nodeName:function(E,D){ret=
urn =
E.nodeName&&E.nodeName.toUpperCase()=3D=3DD.toUpperCase()},each:function(=
F,J,E){var D,G=3D0,H=3DF.length;if(E){if(H=3D=3D=3Dg){for(D in =
F){if(J.apply(F[D],E)=3D=3D=3Dfalse){break}}}else{for(;G<H;){if(J.apply(F=
[G++],E)=3D=3D=3Dfalse){break}}}}else{if(H=3D=3D=3Dg){for(D in =
F){if(J.call(F[D],D,F[D])=3D=3D=3Dfalse){break}}}else{for(var =
I=3DF[0];G<H&&J.call(I,G,I)!=3D=3Dfalse;I=3DF[++G]){}}}return =
F},prop:function(G,H,F,E,D){if(n.isFunction(H)){H=3DH.call(G,E)}return =
typeof =
H=3D=3D=3D"number"&&F=3D=3D"curCSS"&&!b.test(D)?H+"px":H},className:{add:=
function(D,E){n.each((E||"").split(/\s+/),function(F,G){if(D.nodeType=3D=3D=
1&&!n.className.has(D.className,G)){D.className+=3D(D.className?" =
":"")+G}})},remove:function(D,E){if(D.nodeType=3D=3D1){D.className=3DE!=3D=
=3Dg?n.grep(D.className.split(/\s+/),function(F){return =
!n.className.has(E,F)}).join(" "):""}},has:function(E,D){return =
n.inArray(D,(E.className||E).toString().split(/\s+/))>-1}},swap:function(=
G,F,H){var D=3D{};for(var E in =
F){D[E]=3DG.style[E];G.style[E]=3DF[E]}H.call(G);for(var E in =
F){G.style[E]=3DD[E]}},css:function(F,D,H){if(D=3D=3D"width"||D=3D=3D"hei=
ght"){var =
J,E=3D{position:"absolute",visibility:"hidden",display:"block"},I=3DD=3D=3D=
"width"?["Left","Right"]:["Top","Bottom"];function =
G(){J=3DD=3D=3D"width"?F.offsetWidth:F.offsetHeight;var =
L=3D0,K=3D0;n.each(I,function(){L+=3DparseFloat(n.curCSS(F,"padding"+this=
,true))||0;K+=3DparseFloat(n.curCSS(F,"border"+this+"Width",true))||0});J=
-=3DMath.round(L+K)}if(n(F).is(":visible")){G()}else{n.swap(F,E,G)}return=
 Math.max(0,J)}return n.curCSS(F,D,H)},curCSS:function(H,E,F){var =
K,D=3DH.style;if(E=3D=3D"opacity"&&!n.support.opacity){K=3Dn.attr(D,"opac=
ity");return =
K=3D=3D""?"1":K}if(E.match(/float/i)){E=3Dv}if(!F&&D&&D[E]){K=3DD[E]}else=
{if(p.getComputedStyle){if(E.match(/float/i)){E=3D"float"}E=3DE.replace(/=
([A-Z])/g,"-$1").toLowerCase();var =
L=3Dp.getComputedStyle(H,null);if(L){K=3DL.getPropertyValue(E)}if(E=3D=3D=
"opacity"&&K=3D=3D""){K=3D"1"}}else{if(H.currentStyle){var =
I=3DE.replace(/\-(\w)/g,function(M,N){return =
N.toUpperCase()});K=3DH.currentStyle[E]||H.currentStyle[I];if(!/^\d+(px)?=
$/i.test(K)&&/^\d/.test(K)){var =
G=3DD.left,J=3DH.runtimeStyle.left;H.runtimeStyle.left=3DH.currentStyle.l=
eft;D.left=3DK||0;K=3DD.pixelLeft+"px";D.left=3DG;H.runtimeStyle.left=3DJ=
}}}}return K},clean:function(E,J,H){J=3DJ||document;if(typeof =
J.createElement=3D=3D=3D"undefined"){J=3DJ.ownerDocument||J[0]&&J[0].owne=
rDocument||document}if(!H&&E.length=3D=3D=3D1&&typeof =
E[0]=3D=3D=3D"string"){var =
G=3D/^<(\w+)\s*\/?>$/.exec(E[0]);if(G){return[J.createElement(G[1])]}}var=
 =
F=3D[],D=3D[],K=3DJ.createElement("div");n.each(E,function(O,Q){if(typeof=
 Q=3D=3D=3D"number"){Q+=3D""}if(!Q){return}if(typeof =
Q=3D=3D=3D"string"){Q=3DQ.replace(/(<(\w+)[^>]*?)\/>/g,function(S,T,R){re=
turn =
R.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?S:T+"=
></"+R+">"});var N=3Dn.trim(Q).toLowerCase();var =
P=3D!N.indexOf("<opt")&&[1,"<select =
multiple=3D'multiple'>","</select>"]||!N.indexOf("<leg")&&[1,"<fieldset>"=
,"</fieldset>"]||N.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>",=
"</table>"]||!N.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||=
(!N.indexOf("<td")||!N.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></t=
body></table>"]||!N.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>=
","</colgroup></table>"]||!n.support.htmlSerialize&&[1,"div<div>","</div>=
"]||[0,"",""];K.innerHTML=3DP[1]+Q+P[2];while(P[0]--){K=3DK.lastChild}if(=
!n.support.tbody){var =
M=3D!N.indexOf("<table")&&N.indexOf("<tbody")<0?K.firstChild&&K.firstChil=
d.childNodes:P[1]=3D=3D"<table>"&&N.indexOf("<tbody")<0?K.childNodes:[];f=
or(var =
L=3DM.length-1;L>=3D0;--L){if(n.nodeName(M[L],"tbody")&&!M[L].childNodes.=
length){M[L].parentNode.removeChild(M[L])}}}if(!n.support.leadingWhitespa=
ce&&/^\s/.test(Q)){K.insertBefore(J.createTextNode(Q.match(/^\s*/)[0]),K.=
firstChild)}Q=3Dn.makeArray(K.childNodes)}if(Q.nodeType){F.push(Q)}else{F=
=3Dn.merge(F,Q)}});if(H){for(var =
I=3D0;F[I];I++){if(n.nodeName(F[I],"script")&&(!F[I].type||F[I].type.toLo=
werCase()=3D=3D=3D"text/javascript")){D.push(F[I].parentNode?F[I].parentN=
ode.removeChild(F[I]):F[I])}else{if(F[I].nodeType=3D=3D=3D1){F.splice.app=
ly(F,[I+1,0].concat(n.makeArray(F[I].getElementsByTagName("script"))))}H.=
appendChild(F[I])}}return D}return =
F},attr:function(I,F,J){if(!I||I.nodeType=3D=3D3||I.nodeType=3D=3D8){retu=
rn g}var =
G=3D!n.isXMLDoc(I),K=3DJ!=3D=3Dg;F=3DG&&n.props[F]||F;if(I.tagName){var =
E=3D/href|src|style/.test(F);if(F=3D=3D"selected"&&I.parentNode){I.parent=
Node.selectedIndex}if(F in =
I&&G&&!E){if(K){if(F=3D=3D"type"&&n.nodeName(I,"input")&&I.parentNode){th=
row"type property can't be =
changed"}I[F]=3DJ}if(n.nodeName(I,"form")&&I.getAttributeNode(F)){return =
I.getAttributeNode(F).nodeValue}if(F=3D=3D"tabIndex"){var =
H=3DI.getAttributeNode("tabIndex");return =
H&&H.specified?H.value:I.nodeName.match(/^(a|area|button|input|object|sel=
ect|textarea)$/i)?0:g}return =
I[F]}if(!n.support.style&&G&&F=3D=3D"style"){return =
n.attr(I.style,"cssText",J)}if(K){I.setAttribute(F,""+J)}var =
D=3D!n.support.hrefNormalized&&G&&E?I.getAttribute(F,2):I.getAttribute(F)=
;return =
D=3D=3D=3Dnull?g:D}if(!n.support.opacity&&F=3D=3D"opacity"){if(K){I.zoom=3D=
1;I.filter=3D(I.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(J)+""=3D=
=3D"NaN"?"":"alpha(opacity=3D"+J*100+")")}return =
I.filter&&I.filter.indexOf("opacity=3D")>=3D0?(parseFloat(I.filter.match(=
/opacity=3D([^)]*)/)[1])/100)+"":""}F=3DF.replace(/-([a-z])/ig,function(L=
,M){return M.toUpperCase()});if(K){I[F]=3DJ}return =
I[F]},trim:function(D){return(D||"").replace(/^\s+|\s+$/g,"")},makeArray:=
function(F){var D=3D[];if(F!=3Dnull){var =
E=3DF.length;if(E=3D=3Dnull||typeof =
F=3D=3D=3D"string"||n.isFunction(F)||F.setInterval){D[0]=3DF}else{while(E=
){D[--E]=3DF[E]}}}return D},inArray:function(F,G){for(var =
D=3D0,E=3DG.length;D<E;D++){if(G[D]=3D=3D=3DF){return D}}return =
-1},merge:function(G,D){var =
E=3D0,F,H=3DG.length;if(!n.support.getAll){while((F=3DD[E++])!=3Dnull){if=
(F.nodeType!=3D8){G[H++]=3DF}}}else{while((F=3DD[E++])!=3Dnull){G[H++]=3D=
F}}return G},unique:function(J){var E=3D[],D=3D{};try{for(var =
F=3D0,G=3DJ.length;F<G;F++){var =
I=3Dn.data(J[F]);if(!D[I]){D[I]=3Dtrue;E.push(J[F])}}}catch(H){E=3DJ}retu=
rn E},grep:function(E,I,D){var F=3D[];for(var =
G=3D0,H=3DE.length;G<H;G++){if(!D!=3D!I(E[G],G)){F.push(E[G])}}return =
F},map:function(D,I){var E=3D[];for(var F=3D0,G=3DD.length;F<G;F++){var =
H=3DI(D[F],F);if(H!=3Dnull){E[E.length]=3DH}}return =
E.concat.apply([],E)}});var =
B=3Dnavigator.userAgent.toLowerCase();n.browser=3D{version:(B.match(/.+(?=
:rv|it|ra|ie)[\/: =
]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(B),opera:/opera/.test(B),ms=
ie:/msie/.test(B)&&!/opera/.test(B),mozilla:/mozilla/.test(B)&&!/(compati=
ble|webkit)/.test(B)};n.each({parent:function(D){return =
D.parentNode},parents:function(D){return =
n.dir(D,"parentNode")},next:function(D){return =
n.nth(D,2,"nextSibling")},prev:function(D){return =
n.nth(D,2,"previousSibling")},nextAll:function(D){return =
n.dir(D,"nextSibling")},prevAll:function(D){return =
n.dir(D,"previousSibling")},siblings:function(D){return =
n.sibling(D.parentNode.firstChild,D)},children:function(D){return =
n.sibling(D.firstChild)},contents:function(D){return =
n.nodeName(D,"iframe")?D.contentDocument||D.contentWindow.document:n.make=
Array(D.childNodes)}},function(D,E){n.fn[D]=3Dfunction(F){var =
G=3Dn.map(this,E);if(F&&typeof =
F=3D=3D"string"){G=3Dn.multiFilter(F,G)}return =
this.pushStack(n.unique(G),D,F)}});n.each({appendTo:"append",prependTo:"p=
repend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith=
"},function(D,E){n.fn[D]=3Dfunction(){var F=3Darguments;return =
this.each(function(){for(var =
G=3D0,H=3DF.length;G<H;G++){n(F[G])[E](this)}})}});n.each({removeAttr:fun=
ction(D){n.attr(this,D,"");if(this.nodeType=3D=3D1){this.removeAttribute(=
D)}},addClass:function(D){n.className.add(this,D)},removeClass:function(D=
){n.className.remove(this,D)},toggleClass:function(E,D){if(typeof =
D!=3D=3D"boolean"){D=3D!n.className.has(this,E)}n.className[D?"add":"remo=
ve"](this,E)},remove:function(D){if(!D||n.filter(D,[this]).length){n("*",=
this).add([this]).each(function(){n.event.remove(this);n.removeData(this)=
});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:functio=
n(){n(">*",this).remove();while(this.firstChild){this.removeChild(this.fi=
rstChild)}}},function(D,E){n.fn[D]=3Dfunction(){return =
this.each(E,arguments)}});function j(D,E){return =
D[0]&&parseInt(n.curCSS(D[0],E,true),10)||0}var =
h=3D"jQuery"+e(),u=3D0,z=3D{};n.extend({cache:{},data:function(E,D,F){E=3D=
E=3D=3Dl?z:E;var =
G=3DE[h];if(!G){G=3DE[h]=3D++u}if(D&&!n.cache[G]){n.cache[G]=3D{}}if(F!=3D=
=3Dg){n.cache[G][D]=3DF}return =
D?n.cache[G][D]:G},removeData:function(E,D){E=3DE=3D=3Dl?z:E;var =
G=3DE[h];if(D){if(n.cache[G]){delete n.cache[G][D];D=3D"";for(D in =
n.cache[G]){break}if(!D){n.removeData(E)}}}else{try{delete =
E[h]}catch(F){if(E.removeAttribute){E.removeAttribute(h)}}delete =
n.cache[G]}},queue:function(E,D,G){if(E){D=3D(D||"fx")+"queue";var =
F=3Dn.data(E,D);if(!F||n.isArray(G)){F=3Dn.data(E,D,n.makeArray(G))}else{=
if(G){F.push(G)}}}return F},dequeue:function(G,F){var =
D=3Dn.queue(G,F),E=3DD.shift();if(!F||F=3D=3D=3D"fx"){E=3DD[0]}if(E!=3D=3D=
g){E.call(G)}}});n.fn.extend({data:function(D,F){var =
G=3DD.split(".");G[1]=3DG[1]?"."+G[1]:"";if(F=3D=3D=3Dg){var =
E=3Dthis.triggerHandler("getData"+G[1]+"!",[G[0]]);if(E=3D=3D=3Dg&&this.l=
ength){E=3Dn.data(this[0],D)}return =
E=3D=3D=3Dg&&G[1]?this.data(G[0]):E}else{return =
this.trigger("setData"+G[1]+"!",[G[0],F]).each(function(){n.data(this,D,F=
)})}},removeData:function(D){return =
this.each(function(){n.removeData(this,D)})},queue:function(D,E){if(typeo=
f D!=3D=3D"string"){E=3DD;D=3D"fx"}if(E=3D=3D=3Dg){return =
n.queue(this[0],D)}return this.each(function(){var =
F=3Dn.queue(this,D,E);if(D=3D=3D"fx"&&F.length=3D=3D1){F[0].call(this)}})=
},dequeue:function(D){return this.each(function(){n.dequeue(this,D)})}});=0A=
/*=0A=
 * Sizzle CSS Selector Engine - v0.9.1=0A=
 *  Copyright 2009, The Dojo Foundation=0A=
 *  Released under the MIT, BSD, and GPL Licenses.=0A=
 *  More information: http://sizzlejs.com/=0A=
 */=0A=
(function(){var =
N=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ =
>+~,(\[]+)+|[>+~])(\s*,\s*)?/g,I=3D0,F=3DObject.prototype.toString;var =
E=3Dfunction(ae,S,aa,V){aa=3Daa||[];S=3DS||document;if(S.nodeType!=3D=3D1=
&&S.nodeType!=3D=3D9){return[]}if(!ae||typeof ae!=3D=3D"string"){return =
aa}var =
ab=3D[],ac,Y,ah,ag,Z,R,Q=3Dtrue;N.lastIndex=3D0;while((ac=3DN.exec(ae))!=3D=
=3Dnull){ab.push(ac[1]);if(ac[2]){R=3DRegExp.rightContext;break}}if(ab.le=
ngth>1&&G.match.POS.exec(ae)){if(ab.length=3D=3D=3D2&&G.relative[ab[0]]){=
var =
U=3D"",X;while((X=3DG.match.POS.exec(ae))){U+=3DX[0];ae=3Dae.replace(G.ma=
tch.POS,"")}Y=3DE.filter(U,E(/\s$/.test(ae)?ae+"*":ae,S))}else{Y=3DG.rela=
tive[ab[0]]?[S]:E(ab.shift(),S);while(ab.length){var =
P=3D[];ae=3Dab.shift();if(G.relative[ae]){ae+=3Dab.shift()}for(var =
af=3D0,ad=3DY.length;af<ad;af++){E(ae,Y[af],P)}Y=3DP}}}else{var =
ai=3DV?{expr:ab.pop(),set:D(V)}:E.find(ab.pop(),ab.length=3D=3D=3D1&&S.pa=
rentNode?S.parentNode:S);Y=3DE.filter(ai.expr,ai.set);if(ab.length>0){ah=3D=
D(Y)}else{Q=3Dfalse}while(ab.length){var =
T=3Dab.pop(),W=3DT;if(!G.relative[T]){T=3D""}else{W=3Dab.pop()}if(W=3D=3D=
null){W=3DS}G.relative[T](ah,W,M(S))}}if(!ah){ah=3DY}if(!ah){throw"Syntax=
 error, unrecognized expression: =
"+(T||ae)}if(F.call(ah)=3D=3D=3D"[object =
Array]"){if(!Q){aa.push.apply(aa,ah)}else{if(S.nodeType=3D=3D=3D1){for(va=
r =
af=3D0;ah[af]!=3Dnull;af++){if(ah[af]&&(ah[af]=3D=3D=3Dtrue||ah[af].nodeT=
ype=3D=3D=3D1&&H(S,ah[af]))){aa.push(Y[af])}}}else{for(var =
af=3D0;ah[af]!=3Dnull;af++){if(ah[af]&&ah[af].nodeType=3D=3D=3D1){aa.push=
(Y[af])}}}}}else{D(ah,aa)}if(R){E(R,S,aa,V)}return =
aa};E.matches=3Dfunction(P,Q){return =
E(P,null,null,Q)};E.find=3Dfunction(V,S){var W,Q;if(!V){return[]}for(var =
R=3D0,P=3DG.order.length;R<P;R++){var =
T=3DG.order[R],Q;if((Q=3DG.match[T].exec(V))){var =
U=3DRegExp.leftContext;if(U.substr(U.length-1)!=3D=3D"\\"){Q[1]=3D(Q[1]||=
"").replace(/\\/g,"");W=3DG.find[T](Q,S);if(W!=3Dnull){V=3DV.replace(G.ma=
tch[T],"");break}}}}if(!W){W=3DS.getElementsByTagName("*")}return{set:W,e=
xpr:V}};E.filter=3Dfunction(S,ac,ad,T){var =
Q=3DS,Y=3D[],ah=3Dac,V,ab;while(S&&ac.length){for(var U in =
G.filter){if((V=3DG.match[U].exec(S))!=3Dnull){var =
Z=3DG.filter[U],R=3Dnull,X=3D0,aa,ag;ab=3Dfalse;if(ah=3D=3DY){Y=3D[]}if(G=
.preFilter[U]){V=3DG.preFilter[U](V,ah,ad,Y,T);if(!V){ab=3Daa=3Dtrue}else=
{if(V=3D=3D=3Dtrue){continue}else{if(V[0]=3D=3D=3Dtrue){R=3D[];var =
W=3Dnull,af;for(var =
ae=3D0;(af=3Dah[ae])!=3D=3Dg;ae++){if(af&&W!=3D=3Daf){R.push(af);W=3Daf}}=
}}}}if(V){for(var =
ae=3D0;(ag=3Dah[ae])!=3D=3Dg;ae++){if(ag){if(R&&ag!=3DR[X]){X++}aa=3DZ(ag=
,V,X,R);var =
P=3DT^!!aa;if(ad&&aa!=3Dnull){if(P){ab=3Dtrue}else{ah[ae]=3Dfalse}}else{i=
f(P){Y.push(ag);ab=3Dtrue}}}}}if(aa!=3D=3Dg){if(!ad){ah=3DY}S=3DS.replace=
(G.match[U],"");if(!ab){return[]}break}}}S=3DS.replace(/\s*,\s*/,"");if(S=
=3D=3DQ){if(ab=3D=3Dnull){throw"Syntax error, unrecognized expression: =
"+S}else{break}}Q=3DS}return ah};var =
G=3DE.selectors=3D{order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\u=
FFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=3D[=
'"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFF=
F_-]|\\.)+)\s*(?:(\S?=3D)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\u=
FFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+=
-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=3D[^-]=
|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^=
\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHan=
dle:{href:function(P){return =
P.getAttribute("href")}},relative:{"+":function(T,Q){for(var =
R=3D0,P=3DT.length;R<P;R++){var S=3DT[R];if(S){var =
U=3DS.previousSibling;while(U&&U.nodeType!=3D=3D1){U=3DU.previousSibling}=
T[R]=3Dtypeof Q=3D=3D=3D"string"?U||false:U=3D=3D=3DQ}}if(typeof =
Q=3D=3D=3D"string"){E.filter(Q,T,true)}},">":function(U,Q,V){if(typeof =
Q=3D=3D=3D"string"&&!/\W/.test(Q)){Q=3DV?Q:Q.toUpperCase();for(var =
R=3D0,P=3DU.length;R<P;R++){var T=3DU[R];if(T){var =
S=3DT.parentNode;U[R]=3DS.nodeName=3D=3D=3DQ?S:false}}}else{for(var =
R=3D0,P=3DU.length;R<P;R++){var T=3DU[R];if(T){U[R]=3Dtypeof =
Q=3D=3D=3D"string"?T.parentNode:T.parentNode=3D=3D=3DQ}}if(typeof =
Q=3D=3D=3D"string"){E.filter(Q,U,true)}}},"":function(S,Q,U){var =
R=3D"done"+(I++),P=3DO;if(!Q.match(/\W/)){var =
T=3DQ=3DU?Q:Q.toUpperCase();P=3DL}P("parentNode",Q,R,S,T,U)},"~":function=
(S,Q,U){var R=3D"done"+(I++),P=3DO;if(typeof =
Q=3D=3D=3D"string"&&!Q.match(/\W/)){var =
T=3DQ=3DU?Q:Q.toUpperCase();P=3DL}P("previousSibling",Q,R,S,T,U)}},find:{=
ID:function(Q,R){if(R.getElementById){var =
P=3DR.getElementById(Q[1]);return P?[P]:[]}},NAME:function(P,Q){return =
Q.getElementsByName?Q.getElementsByName(P[1]):null},TAG:function(P,Q){ret=
urn =
Q.getElementsByTagName(P[1])}},preFilter:{CLASS:function(S,Q,R,P,U){S=3D"=
 "+S[1].replace(/\\/g,"")+" ";for(var T=3D0;Q[T];T++){if(U^(" =
"+Q[T].className+" =
").indexOf(S)>=3D0){if(!R){P.push(Q[T])}}else{if(R){Q[T]=3Dfalse}}}return=
 false},ID:function(P){return =
P[1].replace(/\\/g,"")},TAG:function(Q,P){for(var =
R=3D0;!P[R];R++){}return =
M(P[R])?Q[1]:Q[1].toUpperCase()},CHILD:function(P){if(P[1]=3D=3D"nth"){va=
r =
Q=3D/(-?)(\d*)n((?:\+|-)?\d*)/.exec(P[2]=3D=3D"even"&&"2n"||P[2]=3D=3D"od=
d"&&"2n+1"||!/\D/.test(P[2])&&"0n+"+P[2]||P[2]);P[2]=3D(Q[1]+(Q[2]||1))-0=
;P[3]=3DQ[3]-0}P[0]=3D"done"+(I++);return P},ATTR:function(Q){var =
P=3DQ[1];if(G.attrMap[P]){Q[1]=3DG.attrMap[P]}if(Q[2]=3D=3D=3D"~=3D"){Q[4=
]=3D" "+Q[4]+" "}return =
Q},PSEUDO:function(T,Q,R,P,U){if(T[1]=3D=3D=3D"not"){if(T[3].match(N).len=
gth>1){T[3]=3DE(T[3],null,null,Q)}else{var =
S=3DE.filter(T[3],Q,R,true^U);if(!R){P.push.apply(P,S)}return =
false}}else{if(G.match.POS.test(T[0])){return true}}return =
T},POS:function(P){P.unshift(true);return =
P}},filters:{enabled:function(P){return =
P.disabled=3D=3D=3Dfalse&&P.type!=3D=3D"hidden"},disabled:function(P){ret=
urn P.disabled=3D=3D=3Dtrue},checked:function(P){return =
P.checked=3D=3D=3Dtrue},selected:function(P){P.parentNode.selectedIndex;r=
eturn P.selected=3D=3D=3Dtrue},parent:function(P){return =
!!P.firstChild},empty:function(P){return =
!P.firstChild},has:function(R,Q,P){return =
!!E(P[3],R).length},header:function(P){return/h\d/i.test(P.nodeName)},tex=
t:function(P){return"text"=3D=3D=3DP.type},radio:function(P){return"radio=
"=3D=3D=3DP.type},checkbox:function(P){return"checkbox"=3D=3D=3DP.type},f=
ile:function(P){return"file"=3D=3D=3DP.type},password:function(P){return"=
password"=3D=3D=3DP.type},submit:function(P){return"submit"=3D=3D=3DP.typ=
e},image:function(P){return"image"=3D=3D=3DP.type},reset:function(P){retu=
rn"reset"=3D=3D=3DP.type},button:function(P){return"button"=3D=3D=3DP.typ=
e||P.nodeName.toUpperCase()=3D=3D=3D"BUTTON"},input:function(P){return/in=
put|select|textarea|button/i.test(P.nodeName)}},setFilters:{first:functio=
n(Q,P){return P=3D=3D=3D0},last:function(R,Q,P,S){return =
Q=3D=3D=3DS.length-1},even:function(Q,P){return =
P%2=3D=3D=3D0},odd:function(Q,P){return =
P%2=3D=3D=3D1},lt:function(R,Q,P){return =
Q<P[3]-0},gt:function(R,Q,P){return Q>P[3]-0},nth:function(R,Q,P){return =
P[3]-0=3D=3DQ},eq:function(R,Q,P){return =
P[3]-0=3D=3DQ}},filter:{CHILD:function(P,S){var =
V=3DS[1],W=3DP.parentNode;var =
U=3D"child"+W.childNodes.length;if(W&&(!W[U]||!P.nodeIndex)){var =
T=3D1;for(var =
Q=3DW.firstChild;Q;Q=3DQ.nextSibling){if(Q.nodeType=3D=3D1){Q.nodeIndex=3D=
T++}}W[U]=3DT-1}if(V=3D=3D"first"){return =
P.nodeIndex=3D=3D1}else{if(V=3D=3D"last"){return =
P.nodeIndex=3D=3DW[U]}else{if(V=3D=3D"only"){return =
W[U]=3D=3D1}else{if(V=3D=3D"nth"){var =
Y=3Dfalse,R=3DS[2],X=3DS[3];if(R=3D=3D1&&X=3D=3D0){return =
true}if(R=3D=3D0){if(P.nodeIndex=3D=3DX){Y=3Dtrue}}else{if((P.nodeIndex-X=
)%R=3D=3D0&&(P.nodeIndex-X)/R>=3D0){Y=3Dtrue}}return =
Y}}}}},PSEUDO:function(V,R,S,W){var =
Q=3DR[1],T=3DG.filters[Q];if(T){return =
T(V,S,R,W)}else{if(Q=3D=3D=3D"contains"){return(V.textContent||V.innerTex=
t||"").indexOf(R[3])>=3D0}else{if(Q=3D=3D=3D"not"){var U=3DR[3];for(var =
S=3D0,P=3DU.length;S<P;S++){if(U[S]=3D=3D=3DV){return false}}return =
true}}}},ID:function(Q,P){return =
Q.nodeType=3D=3D=3D1&&Q.getAttribute("id")=3D=3D=3DP},TAG:function(Q,P){r=
eturn(P=3D=3D=3D"*"&&Q.nodeType=3D=3D=3D1)||Q.nodeName=3D=3D=3DP},CLASS:f=
unction(Q,P){return P.test(Q.className)},ATTR:function(T,R){var =
P=3DG.attrHandle[R[1]]?G.attrHandle[R[1]](T):T[R[1]]||T.getAttribute(R[1]=
),U=3DP+"",S=3DR[2],Q=3DR[4];return =
P=3D=3Dnull?false:S=3D=3D=3D"=3D"?U=3D=3D=3DQ:S=3D=3D=3D"*=3D"?U.indexOf(=
Q)>=3D0:S=3D=3D=3D"~=3D"?(" "+U+" =
").indexOf(Q)>=3D0:!R[4]?P:S=3D=3D=3D"!=3D"?U!=3DQ:S=3D=3D=3D"^=3D"?U.ind=
exOf(Q)=3D=3D=3D0:S=3D=3D=3D"$=3D"?U.substr(U.length-Q.length)=3D=3D=3DQ:=
S=3D=3D=3D"|=3D"?U=3D=3D=3DQ||U.substr(0,Q.length+1)=3D=3D=3DQ+"-":false}=
,POS:function(T,Q,R,U){var P=3DQ[2],S=3DG.setFilters[P];if(S){return =
S(T,R,Q,U)}}}};for(var K in =
G.match){G.match[K]=3DRegExp(G.match[K].source+/(?![^\[]*\])(?![^\(]*\))/=
.source)}var =
D=3Dfunction(Q,P){Q=3DArray.prototype.slice.call(Q);if(P){P.push.apply(P,=
Q);return P}return =
Q};try{Array.prototype.slice.call(document.documentElement.childNodes)}ca=
tch(J){D=3Dfunction(T,S){var Q=3DS||[];if(F.call(T)=3D=3D=3D"[object =
Array]"){Array.prototype.push.apply(Q,T)}else{if(typeof =
T.length=3D=3D=3D"number"){for(var =
R=3D0,P=3DT.length;R<P;R++){Q.push(T[R])}}else{for(var =
R=3D0;T[R];R++){Q.push(T[R])}}}return Q}}(function(){var =
Q=3Ddocument.createElement("form"),R=3D"script"+(new =
Date).getTime();Q.innerHTML=3D"<input name=3D'"+R+"'/>";var =
P=3Ddocument.documentElement;P.insertBefore(Q,P.firstChild);if(!!document=
.getElementById(R)){G.find.ID=3Dfunction(T,U){if(U.getElementById){var =
S=3DU.getElementById(T[1]);return =
S?S.id=3D=3D=3DT[1]||S.getAttributeNode&&S.getAttributeNode("id").nodeVal=
ue=3D=3D=3DT[1]?[S]:g:[]}};G.filter.ID=3Dfunction(U,S){var =
T=3DU.getAttributeNode&&U.getAttributeNode("id");return =
U.nodeType=3D=3D=3D1&&T&&T.nodeValue=3D=3D=3DS}}P.removeChild(Q)})();(fun=
ction(){var =
P=3Ddocument.createElement("div");P.appendChild(document.createComment(""=
));if(P.getElementsByTagName("*").length>0){G.find.TAG=3Dfunction(Q,U){va=
r T=3DU.getElementsByTagName(Q[1]);if(Q[1]=3D=3D=3D"*"){var =
S=3D[];for(var =
R=3D0;T[R];R++){if(T[R].nodeType=3D=3D=3D1){S.push(T[R])}}T=3DS}return =
T}}P.innerHTML=3D"<a =
href=3D'#'></a>";if(P.firstChild.getAttribute("href")!=3D=3D"#"){G.attrHa=
ndle.href=3Dfunction(Q){return =
Q.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){=
var =
P=3DE;E=3Dfunction(T,S,Q,R){S=3DS||document;if(!R&&S.nodeType=3D=3D=3D9){=
try{return D(S.querySelectorAll(T),Q)}catch(U){}}return =
P(T,S,Q,R)};E.find=3DP.find;E.filter=3DP.filter;E.selectors=3DP.selectors=
;E.matches=3DP.matches})()}if(document.documentElement.getElementsByClass=
Name){G.order.splice(1,0,"CLASS");G.find.CLASS=3Dfunction(P,Q){return =
Q.getElementsByClassName(P[1])}}function L(Q,W,V,Z,X,Y){for(var =
T=3D0,R=3DZ.length;T<R;T++){var P=3DZ[T];if(P){P=3DP[Q];var =
U=3Dfalse;while(P&&P.nodeType){var =
S=3DP[V];if(S){U=3DZ[S];break}if(P.nodeType=3D=3D=3D1&&!Y){P[V]=3DT}if(P.=
nodeName=3D=3D=3DW){U=3DP;break}P=3DP[Q]}Z[T]=3DU}}}function =
O(Q,V,U,Y,W,X){for(var S=3D0,R=3DY.length;S<R;S++){var =
P=3DY[S];if(P){P=3DP[Q];var =
T=3Dfalse;while(P&&P.nodeType){if(P[U]){T=3DY[P[U]];break}if(P.nodeType=3D=
=3D=3D1){if(!X){P[U]=3DS}if(typeof =
V!=3D=3D"string"){if(P=3D=3D=3DV){T=3Dtrue;break}}else{if(E.filter(V,[P])=
.length>0){T=3DP;break}}}P=3DP[Q]}Y[S]=3DT}}}var =
H=3Ddocument.compareDocumentPosition?function(Q,P){return =
Q.compareDocumentPosition(P)&16}:function(Q,P){return =
Q!=3D=3DP&&(Q.contains?Q.contains(P):true)};var M=3Dfunction(P){return =
P.documentElement&&!P.body||P.tagName&&P.ownerDocument&&!P.ownerDocument.=
body};n.find=3DE;n.filter=3DE.filter;n.expr=3DE.selectors;n.expr[":"]=3Dn=
.expr.filters;E.selectors.filters.hidden=3Dfunction(P){return"hidden"=3D=3D=
=3DP.type||n.css(P,"display")=3D=3D=3D"none"||n.css(P,"visibility")=3D=3D=
=3D"hidden"};E.selectors.filters.visible=3Dfunction(P){return"hidden"!=3D=
=3DP.type&&n.css(P,"display")!=3D=3D"none"&&n.css(P,"visibility")!=3D=3D"=
hidden"};E.selectors.filters.animated=3Dfunction(P){return =
n.grep(n.timers,function(Q){return =
P=3D=3D=3DQ.elem}).length};n.multiFilter=3Dfunction(R,P,Q){if(Q){R=3D":no=
t("+R+")"}return E.matches(R,P)};n.dir=3Dfunction(R,Q){var =
P=3D[],S=3DR[Q];while(S&&S!=3Ddocument){if(S.nodeType=3D=3D1){P.push(S)}S=
=3DS[Q]}return P};n.nth=3Dfunction(T,P,R,S){P=3DP||1;var =
Q=3D0;for(;T;T=3DT[R]){if(T.nodeType=3D=3D1&&++Q=3D=3DP){break}}return =
T};n.sibling=3Dfunction(R,Q){var =
P=3D[];for(;R;R=3DR.nextSibling){if(R.nodeType=3D=3D1&&R!=3DQ){P.push(R)}=
}return =
P};return;l.Sizzle=3DE})();n.event=3D{add:function(H,E,G,J){if(H.nodeType=
=3D=3D3||H.nodeType=3D=3D8){return}if(H.setInterval&&H!=3Dl){H=3Dl}if(!G.=
guid){G.guid=3Dthis.guid++}if(J!=3D=3Dg){var =
F=3DG;G=3Dthis.proxy(F);G.data=3DJ}var =
D=3Dn.data(H,"events")||n.data(H,"events",{}),I=3Dn.data(H,"handle")||n.d=
ata(H,"handle",function(){return typeof =
n!=3D=3D"undefined"&&!n.event.triggered?n.event.handle.apply(arguments.ca=
llee.elem,arguments):g});I.elem=3DH;n.each(E.split(/\s+/),function(L,M){v=
ar =
N=3DM.split(".");M=3DN.shift();G.type=3DN.slice().sort().join(".");var =
K=3DD[M];if(n.event.specialAll[M]){n.event.specialAll[M].setup.call(H,J,N=
)}if(!K){K=3DD[M]=3D{};if(!n.event.special[M]||n.event.special[M].setup.c=
all(H,J,N)=3D=3D=3Dfalse){if(H.addEventListener){H.addEventListener(M,I,f=
alse)}else{if(H.attachEvent){H.attachEvent("on"+M,I)}}}}K[G.guid]=3DG;n.e=
vent.global[M]=3Dtrue});H=3Dnull},guid:1,global:{},remove:function(J,G,I)=
{if(J.nodeType=3D=3D3||J.nodeType=3D=3D8){return}var =
F=3Dn.data(J,"events"),E,D;if(F){if(G=3D=3D=3Dg||(typeof =
G=3D=3D=3D"string"&&G.charAt(0)=3D=3D".")){for(var H in =
F){this.remove(J,H+(G||""))}}else{if(G.type){I=3DG.handler;G=3DG.type}n.e=
ach(G.split(/\s+/),function(L,N){var P=3DN.split(".");N=3DP.shift();var =
M=3DRegExp("(^|\\.)"+P.slice().sort().join(".*\\.")+"(\\.|$)");if(F[N]){i=
f(I){delete F[N][I.guid]}else{for(var O in =
F[N]){if(M.test(F[N][O].type)){delete =
F[N][O]}}}if(n.event.specialAll[N]){n.event.specialAll[N].teardown.call(J=
,P)}for(E in =
F[N]){break}if(!E){if(!n.event.special[N]||n.event.special[N].teardown.ca=
ll(J,P)=3D=3D=3Dfalse){if(J.removeEventListener){J.removeEventListener(N,=
n.data(J,"handle"),false)}else{if(J.detachEvent){J.detachEvent("on"+N,n.d=
ata(J,"handle"))}}}E=3Dnull;delete F[N]}}})}for(E in F){break}if(!E){var =
K=3Dn.data(J,"handle");if(K){K.elem=3Dnull}n.removeData(J,"events");n.rem=
oveData(J,"handle")}}},trigger:function(H,J,G,D){var =
F=3DH.type||H;if(!D){H=3Dtypeof =
H=3D=3D=3D"object"?H[h]?H:n.extend(n.Event(F),H):n.Event(F);if(F.indexOf(=
"!")>=3D0){H.type=3DF=3DF.slice(0,-1);H.exclusive=3Dtrue}if(!G){H.stopPro=
pagation();if(this.global[F]){n.each(n.cache,function(){if(this.events&&t=
his.events[F]){n.event.trigger(H,J,this.handle.elem)}})}}if(!G||G.nodeTyp=
e=3D=3D3||G.nodeType=3D=3D8){return =
g}H.result=3Dg;H.target=3DG;J=3Dn.makeArray(J);J.unshift(H)}H.currentTarg=
et=3DG;var =
I=3Dn.data(G,"handle");if(I){I.apply(G,J)}if((!G[F]||(n.nodeName(G,"a")&&=
F=3D=3D"click"))&&G["on"+F]&&G["on"+F].apply(G,J)=3D=3D=3Dfalse){H.result=
=3Dfalse}if(!D&&G[F]&&!H.isDefaultPrevented()&&!(n.nodeName(G,"a")&&F=3D=3D=
"click")){this.triggered=3Dtrue;try{G[F]()}catch(K){}}this.triggered=3Dfa=
lse;if(!H.isPropagationStopped()){var =
E=3DG.parentNode||G.ownerDocument;if(E){n.event.trigger(H,J,E,true)}}},ha=
ndle:function(J){var I,D;J=3Darguments[0]=3Dn.event.fix(J||l.event);var =
K=3DJ.type.split(".");J.type=3DK.shift();I=3D!K.length&&!J.exclusive;var =
H=3DRegExp("(^|\\.)"+K.slice().sort().join(".*\\.")+"(\\.|$)");D=3D(n.dat=
a(this,"events")||{})[J.type];for(var F in D){var =
G=3DD[F];if(I||H.test(G.type)){J.handler=3DG;J.data=3DG.data;var =
E=3DG.apply(this,arguments);if(E!=3D=3Dg){J.result=3DE;if(E=3D=3D=3Dfalse=
){J.preventDefault();J.stopPropagation()}}if(J.isImmediatePropagationStop=
ped()){break}}}},props:"altKey attrChange attrName bubbles button =
cancelable charCode clientX clientY ctrlKey currentTarget data detail =
eventPhase fromElement handler keyCode metaKey newValue originalTarget =
pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey =
srcElement target toElement view wheelDelta which".split(" =
"),fix:function(G){if(G[h]){return G}var E=3DG;G=3Dn.Event(E);for(var =
F=3Dthis.props.length,I;F;){I=3Dthis.props[--F];G[I]=3DE[I]}if(!G.target)=
{G.target=3DG.srcElement||document}if(G.target.nodeType=3D=3D3){G.target=3D=
G.target.parentNode}if(!G.relatedTarget&&G.fromElement){G.relatedTarget=3D=
G.fromElement=3D=3DG.target?G.toElement:G.fromElement}if(G.pageX=3D=3Dnul=
l&&G.clientX!=3Dnull){var =
H=3Ddocument.documentElement,D=3Ddocument.body;G.pageX=3DG.clientX+(H&&H.=
scrollLeft||D&&D.scrollLeft||0)-(H.clientLeft||0);G.pageY=3DG.clientY+(H&=
&H.scrollTop||D&&D.scrollTop||0)-(H.clientTop||0)}if(!G.which&&((G.charCo=
de||G.charCode=3D=3D=3D0)?G.charCode:G.keyCode)){G.which=3DG.charCode||G.=
keyCode}if(!G.metaKey&&G.ctrlKey){G.metaKey=3DG.ctrlKey}if(!G.which&&G.bu=
tton){G.which=3D(G.button&1?1:(G.button&2?3:(G.button&4?2:0)))}return =
G},proxy:function(E,D){D=3DD||function(){return =
E.apply(this,arguments)};D.guid=3DE.guid=3DE.guid||D.guid||this.guid++;re=
turn =
D},special:{ready:{setup:A,teardown:function(){}}},specialAll:{live:{setu=
p:function(D,E){n.event.add(this,E[0],c)},teardown:function(F){if(F.lengt=
h){var =
D=3D0,E=3DRegExp("(^|\\.)"+F[0]+"(\\.|$)");n.each((n.data(this,"events").=
live||{}),function(){if(E.test(this.type)){D++}});if(D<1){n.event.remove(=
this,F[0],c)}}}}}};n.Event=3Dfunction(D){if(!this.preventDefault){return =
new =
n.Event(D)}if(D&&D.type){this.originalEvent=3DD;this.type=3DD.type;this.t=
imeStamp=3DD.timeStamp}else{this.type=3DD}if(!this.timeStamp){this.timeSt=
amp=3De()}this[h]=3Dtrue};function k(){return false}function t(){return =
true}n.Event.prototype=3D{preventDefault:function(){this.isDefaultPrevent=
ed=3Dt;var =
D=3Dthis.originalEvent;if(!D){return}if(D.preventDefault){D.preventDefaul=
t()}D.returnValue=3Dfalse},stopPropagation:function(){this.isPropagationS=
topped=3Dt;var =
D=3Dthis.originalEvent;if(!D){return}if(D.stopPropagation){D.stopPropagat=
ion()}D.cancelBubble=3Dtrue},stopImmediatePropagation:function(){this.isI=
mmediatePropagationStopped=3Dt;this.stopPropagation()},isDefaultPrevented=
:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var =
a=3Dfunction(E){var =
D=3DE.relatedTarget;while(D&&D!=3Dthis){try{D=3DD.parentNode}catch(F){D=3D=
this}}if(D!=3Dthis){E.type=3DE.data;n.event.handle.apply(this,arguments)}=
};n.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(E,D){n.e=
vent.special[D]=3D{setup:function(){n.event.add(this,E,a,D)},teardown:fun=
ction(){n.event.remove(this,E,a)}}});n.fn.extend({bind:function(E,F,D){re=
turn =
E=3D=3D"unload"?this.one(E,F,D):this.each(function(){n.event.add(this,E,D=
||F,D&&F)})},one:function(F,G,E){var =
D=3Dn.event.proxy(E||G,function(H){n(this).unbind(H,D);return(E||G).apply=
(this,arguments)});return =
this.each(function(){n.event.add(this,F,D,E&&G)})},unbind:function(E,D){r=
eturn =
this.each(function(){n.event.remove(this,E,D)})},trigger:function(D,E){re=
turn =
this.each(function(){n.event.trigger(D,E,this)})},triggerHandler:function=
(D,F){if(this[0]){var =
E=3Dn.Event(D);E.preventDefault();E.stopPropagation();n.event.trigger(E,F=
,this[0]);return E.result}},toggle:function(F){var =
D=3Darguments,E=3D1;while(E<D.length){n.event.proxy(F,D[E++])}return =
this.click(n.event.proxy(F,function(G){this.lastToggle=3D(this.lastToggle=
||0)%E;G.preventDefault();return =
D[this.lastToggle++].apply(this,arguments)||false}))},hover:function(D,E)=
{return =
this.mouseenter(D).mouseleave(E)},ready:function(D){A();if(n.isReady){D.c=
all(document,n)}else{n.readyList.push(D)}return =
this},live:function(F,E){var =
D=3Dn.event.proxy(E);D.guid+=3Dthis.selector+F;n(document).bind(i(F,this.=
selector),this.selector,D);return =
this},die:function(E,D){n(document).unbind(i(E,this.selector),D?{guid:D.g=
uid+this.selector+E}:null);return this}});function c(G){var =
D=3DRegExp("(^|\\.)"+G.type+"(\\.|$)"),F=3Dtrue,E=3D[];n.each(n.data(this=
,"events").live||[],function(H,I){if(D.test(I.type)){var =
J=3Dn(G.target).closest(I.data)[0];if(J){E.push({elem:J,fn:I})}}});n.each=
(E,function(){if(!G.isImmediatePropagationStopped()&&this.fn.call(this.el=
em,G,this.fn.data)=3D=3D=3Dfalse){F=3Dfalse}});return F}function =
i(E,D){return["live",E,D.replace(/\./g,"`").replace(/ =
/g,"|")].join(".")}n.extend({isReady:false,readyList:[],ready:function(){=
if(!n.isReady){n.isReady=3Dtrue;if(n.readyList){n.each(n.readyList,functi=
on(){this.call(document,n)});n.readyList=3Dnull}n(document).triggerHandle=
r("ready")}}});var w=3Dfalse;function =
A(){if(w){return}w=3Dtrue;if(document.addEventListener){document.addEvent=
Listener("DOMContentLoaded",function(){document.removeEventListener("DOMC=
ontentLoaded",arguments.callee,false);n.ready()},false)}else{if(document.=
attachEvent){document.attachEvent("onreadystatechange",function(){if(docu=
ment.readyState=3D=3D=3D"complete"){document.detachEvent("onreadystatecha=
nge",arguments.callee);n.ready()}});if(document.documentElement.doScroll&=
&!l.frameElement){(function(){if(n.isReady){return}try{document.documentE=
lement.doScroll("left")}catch(D){setTimeout(arguments.callee,0);return}n.=
ready()})()}}}n.event.add(l,"load",n.ready)}n.each(("blur,focus,load,resi=
ze,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mou=
seout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,e=
rror").split(","),function(E,D){n.fn[D]=3Dfunction(F){return =
F?this.bind(D,F):this.trigger(D)}});n(l).bind("unload",function(){for(var=
 D in =
n.cache){if(D!=3D1&&n.cache[D].handle){n.event.remove(n.cache[D].handle.e=
lem)}}});(function(){n.support=3D{};var =
E=3Ddocument.documentElement,F=3Ddocument.createElement("script"),J=3Ddoc=
ument.createElement("div"),I=3D"script"+(new =
Date).getTime();J.style.display=3D"none";J.innerHTML=3D'   =
<link/><table></table><a href=3D"/a" =
style=3D"color:red;float:left;opacity:.5;">a</a><select><option>text</opt=
ion></select><object><param/></object>';var =
G=3DJ.getElementsByTagName("*"),D=3DJ.getElementsByTagName("a")[0];if(!G|=
|!G.length||!D){return}n.support=3D{leadingWhitespace:J.firstChild.nodeTy=
pe=3D=3D3,tbody:!J.getElementsByTagName("tbody").length,objectAll:!!J.get=
ElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSeria=
lize:!!J.getElementsByTagName("link").length,style:/red/.test(D.getAttrib=
ute("style")),hrefNormalized:D.getAttribute("href")=3D=3D=3D"/a",opacity:=
D.style.opacity=3D=3D=3D"0.5",cssFloat:!!D.style.cssFloat,scriptEval:fals=
e,noCloneEvent:true,boxModel:null};F.type=3D"text/javascript";try{F.appen=
dChild(document.createTextNode("window."+I+"=3D1;"))}catch(H){}E.insertBe=
fore(F,E.firstChild);if(l[I]){n.support.scriptEval=3Dtrue;delete =
l[I]}E.removeChild(F);if(J.attachEvent&&J.fireEvent){J.attachEvent("oncli=
ck",function(){n.support.noCloneEvent=3Dfalse;J.detachEvent("onclick",arg=
uments.callee)});J.cloneNode(true).fireEvent("onclick")}n(function(){var =
K=3Ddocument.createElement("div");K.style.width=3D"1px";K.style.paddingLe=
ft=3D"1px";document.body.appendChild(K);n.boxModel=3Dn.support.boxModel=3D=
K.offsetWidth=3D=3D=3D2;document.body.removeChild(K)})})();var =
v=3Dn.support.cssFloat?"cssFloat":"styleFloat";n.props=3D{"for":"htmlFor"=
,"class":"className","float":v,cssFloat:v,styleFloat:v,readonly:"readOnly=
",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabin=
dex:"tabIndex"};n.fn.extend({_load:n.fn.load,load:function(F,I,J){if(type=
of F!=3D=3D"string"){return this._load(F)}var H=3DF.indexOf(" =
");if(H>=3D0){var D=3DF.slice(H,F.length);F=3DF.slice(0,H)}var =
G=3D"GET";if(I){if(n.isFunction(I)){J=3DI;I=3Dnull}else{if(typeof =
I=3D=3D=3D"object"){I=3Dn.param(I);G=3D"POST"}}}var =
E=3Dthis;n.ajax({url:F,type:G,dataType:"html",data:I,complete:function(L,=
K){if(K=3D=3D"success"||K=3D=3D"notmodified"){E.html(D?n("<div/>").append=
(L.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(D):L.respon=
seText)}if(J){E.each(J,[L.responseText,K,L])}}});return =
this},serialize:function(){return =
n.param(this.serializeArray())},serializeArray:function(){return =
this.map(function(){return =
this.elements?n.makeArray(this.elements):this}).filter(function(){return =
this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.no=
deName)||/text|hidden|password/i.test(this.type))}).map(function(D,E){var=
 F=3Dn(this).val();return =
F=3D=3Dnull?null:n.isArray(F)?n.map(F,function(H,G){return{name:E.name,va=
lue:H}}):{name:E.name,value:F}}).get()}});n.each("ajaxStart,ajaxStop,ajax=
Complete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(D,E){n.fn[E]=
=3Dfunction(F){return this.bind(E,F)}});var =
q=3De();n.extend({get:function(D,F,G,E){if(n.isFunction(F)){G=3DF;F=3Dnul=
l}return =
n.ajax({type:"GET",url:D,data:F,success:G,dataType:E})},getScript:functio=
n(D,E){return n.get(D,null,E,"script")},getJSON:function(D,E,F){return =
n.get(D,E,F,"json")},post:function(D,F,G,E){if(n.isFunction(F)){G=3DF;F=3D=
{}}return =
n.ajax({type:"POST",url:D,data:F,success:G,dataType:E})},ajaxSetup:functi=
on(D){n.extend(n.ajaxSettings,D)},ajaxSettings:{url:location.href,global:=
true,type:"GET",contentType:"application/x-www-form-urlencoded",processDa=
ta:true,async:true,xhr:function(){return l.ActiveXObject?new =
ActiveXObject("Microsoft.XMLHTTP"):new =
XMLHttpRequest()},accepts:{xml:"application/xml, =
text/xml",html:"text/html",script:"text/javascript, =
application/javascript",json:"application/json, =
text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:=
function(L){L=3Dn.extend(true,L,n.extend(true,{},n.ajaxSettings,L));var =
V,E=3D/=3D\?(&|$)/g,Q,U,F=3DL.type.toUpperCase();if(L.data&&L.processData=
&&typeof =
L.data!=3D=3D"string"){L.data=3Dn.param(L.data)}if(L.dataType=3D=3D"jsonp=
"){if(F=3D=3D"GET"){if(!L.url.match(E)){L.url+=3D(L.url.match(/\?/)?"&":"=
?")+(L.jsonp||"callback")+"=3D?"}}else{if(!L.data||!L.data.match(E)){L.da=
ta=3D(L.data?L.data+"&":"")+(L.jsonp||"callback")+"=3D?"}}L.dataType=3D"j=
son"}if(L.dataType=3D=3D"json"&&(L.data&&L.data.match(E)||L.url.match(E))=
){V=3D"jsonp"+q++;if(L.data){L.data=3D(L.data+"").replace(E,"=3D"+V+"$1")=
}L.url=3DL.url.replace(E,"=3D"+V+"$1");L.dataType=3D"script";l[V]=3Dfunct=
ion(W){U=3DW;H();K();l[V]=3Dg;try{delete =
l[V]}catch(X){}if(G){G.removeChild(S)}}}if(L.dataType=3D=3D"script"&&L.ca=
che=3D=3Dnull){L.cache=3Dfalse}if(L.cache=3D=3D=3Dfalse&&F=3D=3D"GET"){va=
r D=3De();var =
T=3DL.url.replace(/(\?|&)_=3D.*?(&|$)/,"$1_=3D"+D+"$2");L.url=3DT+((T=3D=3D=
L.url)?(L.url.match(/\?/)?"&":"?")+"_=3D"+D:"")}if(L.data&&F=3D=3D"GET"){=
L.url+=3D(L.url.match(/\?/)?"&":"?")+L.data;L.data=3Dnull}if(L.global&&!n=
.active++){n.event.trigger("ajaxStart")}var =
P=3D/^(\w+:)?\/\/([^\/?#]+)/.exec(L.url);if(L.dataType=3D=3D"script"&&F=3D=
=3D"GET"&&P&&(P[1]&&P[1]!=3Dlocation.protocol||P[2]!=3Dlocation.host)){va=
r G=3Ddocument.getElementsByTagName("head")[0];var =
S=3Ddocument.createElement("script");S.src=3DL.url;if(L.scriptCharset){S.=
charset=3DL.scriptCharset}if(!V){var =
N=3Dfalse;S.onload=3DS.onreadystatechange=3Dfunction(){if(!N&&(!this.read=
yState||this.readyState=3D=3D"loaded"||this.readyState=3D=3D"complete")){=
N=3Dtrue;H();K();G.removeChild(S)}}}G.appendChild(S);return g}var =
J=3Dfalse;var =
I=3DL.xhr();if(L.username){I.open(F,L.url,L.async,L.username,L.password)}=
else{I.open(F,L.url,L.async)}try{if(L.data){I.setRequestHeader("Content-T=
ype",L.contentType)}if(L.ifModified){I.setRequestHeader("If-Modified-Sinc=
e",n.lastModified[L.url]||"Thu, 01 Jan 1970 00:00:00 =
GMT")}I.setRequestHeader("X-Requested-With","XMLHttpRequest");I.setReques=
tHeader("Accept",L.dataType&&L.accepts[L.dataType]?L.accepts[L.dataType]+=
", =
*/*":L.accepts._default)}catch(R){}if(L.beforeSend&&L.beforeSend(I,L)=3D=3D=
=3Dfalse){if(L.global&&!--n.active){n.event.trigger("ajaxStop")}I.abort()=
;return false}if(L.global){n.event.trigger("ajaxSend",[I,L])}var =
M=3Dfunction(W){if(I.readyState=3D=3D0){if(O){clearInterval(O);O=3Dnull;i=
f(L.global&&!--n.active){n.event.trigger("ajaxStop")}}}else{if(!J&&I&&(I.=
readyState=3D=3D4||W=3D=3D"timeout")){J=3Dtrue;if(O){clearInterval(O);O=3D=
null}Q=3DW=3D=3D"timeout"?"timeout":!n.httpSuccess(I)?"error":L.ifModifie=
d&&n.httpNotModified(I,L.url)?"notmodified":"success";if(Q=3D=3D"success"=
){try{U=3Dn.httpData(I,L.dataType,L)}catch(Y){Q=3D"parsererror"}}if(Q=3D=3D=
"success"){var =
X;try{X=3DI.getResponseHeader("Last-Modified")}catch(Y){}if(L.ifModified&=
&X){n.lastModified[L.url]=3DX}if(!V){H()}}else{n.handleError(L,I,Q)}K();i=
f(L.async){I=3Dnull}}}};if(L.async){var =
O=3DsetInterval(M,13);if(L.timeout>0){setTimeout(function(){if(I){if(!J){=
M("timeout")}if(I){I.abort()}}},L.timeout)}}try{I.send(L.data)}catch(R){n=
.handleError(L,I,null,R)}if(!L.async){M()}function =
H(){if(L.success){L.success(U,Q)}if(L.global){n.event.trigger("ajaxSucces=
s",[I,L])}}function =
K(){if(L.complete){L.complete(I,Q)}if(L.global){n.event.trigger("ajaxComp=
lete",[I,L])}if(L.global&&!--n.active){n.event.trigger("ajaxStop")}}retur=
n =
I},handleError:function(E,G,D,F){if(E.error){E.error(G,D,F)}if(E.global){=
n.event.trigger("ajaxError",[G,E,F])}},active:0,httpSuccess:function(E){t=
ry{return =
!E.status&&location.protocol=3D=3D"file:"||(E.status>=3D200&&E.status<300=
)||E.status=3D=3D304||E.status=3D=3D1223}catch(D){}return =
false},httpNotModified:function(F,D){try{var =
G=3DF.getResponseHeader("Last-Modified");return =
F.status=3D=3D304||G=3D=3Dn.lastModified[D]}catch(E){}return =
false},httpData:function(I,G,F){var =
E=3DI.getResponseHeader("content-type"),D=3DG=3D=3D"xml"||!G&&E&&E.indexO=
f("xml")>=3D0,H=3DD?I.responseXML:I.responseText;if(D&&H.documentElement.=
tagName=3D=3D"parsererror"){throw"parsererror"}if(F&&F.dataFilter){H=3DF.=
dataFilter(H,G)}if(typeof =
H=3D=3D=3D"string"){if(G=3D=3D"script"){n.globalEval(H)}if(G=3D=3D"json")=
{H=3Dl["eval"]("("+H+")")}}return H},param:function(D){var =
F=3D[];function =
G(H,I){F[F.length]=3DencodeURIComponent(H)+"=3D"+encodeURIComponent(I)}if=
(n.isArray(D)||D.jquery){n.each(D,function(){G(this.name,this.value)})}el=
se{for(var E in =
D){if(n.isArray(D[E])){n.each(D[E],function(){G(E,this)})}else{G(E,n.isFu=
nction(D[E])?D[E]():D[E])}}}return =
F.join("&").replace(/%20/g,"+")}});var =
m=3D{},d=3D[["height","marginTop","marginBottom","paddingTop","paddingBot=
tom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],[=
"opacity"]];function s(E,D){var =
F=3D{};n.each(d.concat.apply([],d.slice(0,D)),function(){F[this]=3DE});re=
turn F}n.fn.extend({show:function(I,K){if(I){return =
this.animate(s("show",3),I,K)}else{for(var =
G=3D0,E=3Dthis.length;G<E;G++){var =
D=3Dn.data(this[G],"olddisplay");this[G].style.display=3DD||"";if(n.css(t=
his[G],"display")=3D=3D=3D"none"){var =
F=3Dthis[G].tagName,J;if(m[F]){J=3Dm[F]}else{var H=3Dn("<"+F+" =
/>").appendTo("body");J=3DH.css("display");if(J=3D=3D=3D"none"){J=3D"bloc=
k"}H.remove();m[F]=3DJ}this[G].style.display=3Dn.data(this[G],"olddisplay=
",J)}}return this}},hide:function(G,H){if(G){return =
this.animate(s("hide",3),G,H)}else{for(var =
F=3D0,E=3Dthis.length;F<E;F++){var =
D=3Dn.data(this[F],"olddisplay");if(!D&&D!=3D=3D"none"){n.data(this[F],"o=
lddisplay",n.css(this[F],"display"))}this[F].style.display=3D"none"}retur=
n this}},_toggle:n.fn.toggle,toggle:function(F,E){var D=3Dtypeof =
F=3D=3D=3D"boolean";return =
n.isFunction(F)&&n.isFunction(E)?this._toggle.apply(this,arguments):F=3D=3D=
null||D?this.each(function(){var =
G=3DD?F:n(this).is(":hidden");n(this)[G?"show":"hide"]()}):this.animate(s=
("toggle",3),F,E)},fadeTo:function(D,F,E){return =
this.animate({opacity:F},D,E)},animate:function(H,E,G,F){var =
D=3Dn.speed(E,G,F);return =
this[D.queue=3D=3D=3Dfalse?"each":"queue"](function(){var =
J=3Dn.extend({},D),L,K=3Dthis.nodeType=3D=3D1&&n(this).is(":hidden"),I=3D=
this;for(L in H){if(H[L]=3D=3D"hide"&&K||H[L]=3D=3D"show"&&!K){return =
J.complete.call(this)}if((L=3D=3D"height"||L=3D=3D"width")&&this.style){J=
.display=3Dn.css(this,"display");J.overflow=3Dthis.style.overflow}}if(J.o=
verflow!=3Dnull){this.style.overflow=3D"hidden"}J.curAnim=3Dn.extend({},H=
);n.each(H,function(N,R){var Q=3Dnew =
n.fx(I,J,N);if(/toggle|show|hide/.test(R)){Q[R=3D=3D"toggle"?K?"show":"hi=
de":R](H)}else{var =
P=3DR.toString().match(/^([+-]=3D)?([\d+-.]+)(.*)$/),S=3DQ.cur(true)||0;i=
f(P){var =
M=3DparseFloat(P[2]),O=3DP[3]||"px";if(O!=3D"px"){I.style[N]=3D(M||1)+O;S=
=3D((M||1)/Q.cur(true))*S;I.style[N]=3DS+O}if(P[1]){M=3D((P[1]=3D=3D"-=3D=
"?-1:1)*M)+S}Q.custom(S,M,O)}else{Q.custom(S,R,"")}}});return =
true})},stop:function(E,D){var =
F=3Dn.timers;if(E){this.queue([])}this.each(function(){for(var =
G=3DF.length-1;G>=3D0;G--){if(F[G].elem=3D=3Dthis){if(D){F[G](true)}F.spl=
ice(G,1)}}});if(!D){this.dequeue()}return =
this}});n.each({slideDown:s("show",1),slideUp:s("hide",1),slideToggle:s("=
toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(D,E=
){n.fn[D]=3Dfunction(F,G){return =
this.animate(E,F,G)}});n.extend({speed:function(F,G,E){var D=3Dtypeof =
F=3D=3D=3D"object"?F:{complete:E||!E&&G||n.isFunction(F)&&F,duration:F,ea=
sing:E&&G||G&&!n.isFunction(G)&&G};D.duration=3Dn.fx.off?0:typeof =
D.duration=3D=3D=3D"number"?D.duration:n.fx.speeds[D.duration]||n.fx.spee=
ds._default;D.old=3DD.complete;D.complete=3Dfunction(){if(D.queue!=3D=3Df=
alse){n(this).dequeue()}if(n.isFunction(D.old)){D.old.call(this)}};return=
 D},easing:{linear:function(F,G,D,E){return =
D+E*F},swing:function(F,G,D,E){return((-Math.cos(F*Math.PI)/2)+0.5)*E+D}}=
,timers:[],timerId:null,fx:function(E,D,F){this.options=3DD;this.elem=3DE=
;this.prop=3DF;if(!D.orig){D.orig=3D{}}}});n.fx.prototype=3D{update:funct=
ion(){if(this.options.step){this.options.step.call(this.elem,this.now,thi=
s)}(n.fx.step[this.prop]||n.fx.step._default)(this);if((this.prop=3D=3D"h=
eight"||this.prop=3D=3D"width")&&this.elem.style){this.elem.style.display=
=3D"block"}},cur:function(E){if(this.elem[this.prop]!=3Dnull&&(!this.elem=
.style||this.elem.style[this.prop]=3D=3Dnull)){return =
this.elem[this.prop]}var =
D=3DparseFloat(n.css(this.elem,this.prop,E));return =
D&&D>-10000?D:parseFloat(n.curCSS(this.elem,this.prop))||0},custom:functi=
on(H,G,F){this.startTime=3De();this.start=3DH;this.end=3DG;this.unit=3DF|=
|this.unit||"px";this.now=3Dthis.start;this.pos=3Dthis.state=3D0;var =
D=3Dthis;function E(I){return =
D.step(I)}E.elem=3Dthis.elem;n.timers.push(E);if(E()&&n.timerId=3D=3Dnull=
){n.timerId=3DsetInterval(function(){var J=3Dn.timers;for(var =
I=3D0;I<J.length;I++){if(!J[I]()){J.splice(I--,1)}}if(!J.length){clearInt=
erval(n.timerId);n.timerId=3Dnull}},13)}},show:function(){this.options.or=
ig[this.prop]=3Dn.attr(this.elem.style,this.prop);this.options.show=3Dtru=
e;this.custom(this.prop=3D=3D"width"||this.prop=3D=3D"height"?1:0,this.cu=
r());n(this.elem).show()},hide:function(){this.options.orig[this.prop]=3D=
n.attr(this.elem.style,this.prop);this.options.hide=3Dtrue;this.custom(th=
is.cur(),0)},step:function(G){var =
F=3De();if(G||F>=3Dthis.options.duration+this.startTime){this.now=3Dthis.=
end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[this.pro=
p]=3Dtrue;var D=3Dtrue;for(var E in =
this.options.curAnim){if(this.options.curAnim[E]!=3D=3Dtrue){D=3Dfalse}}i=
f(D){if(this.options.display!=3Dnull){this.elem.style.overflow=3Dthis.opt=
ions.overflow;this.elem.style.display=3Dthis.options.display;if(n.css(thi=
s.elem,"display")=3D=3D"none"){this.elem.style.display=3D"block"}}if(this=
.options.hide){n(this.elem).hide()}if(this.options.hide||this.options.sho=
w){for(var H in =
this.options.curAnim){n.attr(this.elem.style,H,this.options.orig[H])}}}if=
(D){this.options.complete.call(this.elem)}return false}else{var =
I=3DF-this.startTime;this.state=3DI/this.options.duration;this.pos=3Dn.ea=
sing[this.options.easing||(n.easing.swing?"swing":"linear")](this.state,I=
,0,1,this.options.duration);this.now=3Dthis.start+((this.end-this.start)*=
this.pos);this.update()}return =
true}};n.extend(n.fx,{speeds:{slow:600,fast:200,_default:400},step:{opaci=
ty:function(D){n.attr(D.elem.style,"opacity",D.now)},_default:function(D)=
{if(D.elem.style&&D.elem.style[D.prop]!=3Dnull){D.elem.style[D.prop]=3DD.=
now+D.unit}else{D.elem[D.prop]=3DD.now}}}});if(document.documentElement.g=
etBoundingClientRect){n.fn.offset=3Dfunction(){if(!this[0]){return{top:0,=
left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){return =
n.offset.bodyOffset(this[0])}var =
F=3Dthis[0].getBoundingClientRect(),I=3Dthis[0].ownerDocument,E=3DI.body,=
D=3DI.documentElement,K=3DD.clientTop||E.clientTop||0,J=3DD.clientLeft||E=
.clientLeft||0,H=3DF.top+(self.pageYOffset||n.boxModel&&D.scrollTop||E.sc=
rollTop)-K,G=3DF.left+(self.pageXOffset||n.boxModel&&D.scrollLeft||E.scro=
llLeft)-J;return{top:H,left:G}}}else{n.fn.offset=3Dfunction(){if(!this[0]=
){return{top:0,left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){ret=
urn =
n.offset.bodyOffset(this[0])}n.offset.initialized||n.offset.initialize();=
var =
I=3Dthis[0],F=3DI.offsetParent,E=3DI,N=3DI.ownerDocument,L,G=3DN.document=
Element,J=3DN.body,K=3DN.defaultView,D=3DK.getComputedStyle(I,null),M=3DI=
.offsetTop,H=3DI.offsetLeft;while((I=3DI.parentNode)&&I!=3D=3DJ&&I!=3D=3D=
G){L=3DK.getComputedStyle(I,null);M-=3DI.scrollTop,H-=3DI.scrollLeft;if(I=
=3D=3D=3DF){M+=3DI.offsetTop,H+=3DI.offsetLeft;if(n.offset.doesNotAddBord=
er&&!(n.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(I.tag=
Name))){M+=3DparseInt(L.borderTopWidth,10)||0,H+=3DparseInt(L.borderLeftW=
idth,10)||0}E=3DF,F=3DI.offsetParent}if(n.offset.subtractsBorderForOverfl=
owNotVisible&&L.overflow!=3D=3D"visible"){M+=3DparseInt(L.borderTopWidth,=
10)||0,H+=3DparseInt(L.borderLeftWidth,10)||0}D=3DL}if(D.position=3D=3D=3D=
"relative"||D.position=3D=3D=3D"static"){M+=3DJ.offsetTop,H+=3DJ.offsetLe=
ft}if(D.position=3D=3D=3D"fixed"){M+=3DMath.max(G.scrollTop,J.scrollTop),=
H+=3DMath.max(G.scrollLeft,J.scrollLeft)}return{top:M,left:H}}}n.offset=3D=
{initialize:function(){if(this.initialized){return}var =
K=3Ddocument.body,E=3Ddocument.createElement("div"),G,F,M,H,L,D,I=3DK.sty=
le.marginTop,J=3D'<div =
style=3D"position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;"><div></div></div><table =
style=3D"position:absolute;top:0;left:0;margin:0;border:5px solid =
#000;padding:0;width:1px;height:1px;"cellpadding=3D"0"cellspacing=3D"0"><=
tr><td></td></tr></table>';L=3D{position:"absolute",top:0,left:0,margin:0=
,border:0,width:"1px",height:"1px",visibility:"hidden"};for(D in =
L){E.style[D]=3DL[D]}E.innerHTML=3DJ;K.insertBefore(E,K.firstChild);G=3DE=
.firstChild,F=3DG.firstChild,H=3DG.nextSibling.firstChild.firstChild;this=
.doesNotAddBorder=3D(F.offsetTop!=3D=3D5);this.doesAddBorderForTableAndCe=
lls=3D(H.offsetTop=3D=3D=3D5);G.style.overflow=3D"hidden",G.style.positio=
n=3D"relative";this.subtractsBorderForOverflowNotVisible=3D(F.offsetTop=3D=
=3D=3D-5);K.style.marginTop=3D"1px";this.doesNotIncludeMarginInBodyOffset=
=3D(K.offsetTop=3D=3D=3D0);K.style.marginTop=3DI;K.removeChild(E);this.in=
itialized=3Dtrue},bodyOffset:function(D){n.offset.initialized||n.offset.i=
nitialize();var =
F=3DD.offsetTop,E=3DD.offsetLeft;if(n.offset.doesNotIncludeMarginInBodyOf=
fset){F+=3DparseInt(n.curCSS(D,"marginTop",true),10)||0,E+=3DparseInt(n.c=
urCSS(D,"marginLeft",true),10)||0}return{top:F,left:E}}};n.fn.extend({pos=
ition:function(){var H=3D0,G=3D0,E;if(this[0]){var =
F=3Dthis.offsetParent(),I=3Dthis.offset(),D=3D/^body|html$/i.test(F[0].ta=
gName)?{top:0,left:0}:F.offset();I.top-=3Dj(this,"marginTop");I.left-=3Dj=
(this,"marginLeft");D.top+=3Dj(F,"borderTopWidth");D.left+=3Dj(F,"borderL=
eftWidth");E=3D{top:I.top-D.top,left:I.left-D.left}}return =
E},offsetParent:function(){var =
D=3Dthis[0].offsetParent||document.body;while(D&&(!/^body|html$/i.test(D.=
tagName)&&n.css(D,"position")=3D=3D"static")){D=3DD.offsetParent}return =
n(D)}});n.each(["Left","Top"],function(E,D){var =
F=3D"scroll"+D;n.fn[F]=3Dfunction(G){if(!this[0]){return null}return =
G!=3D=3Dg?this.each(function(){this=3D=3Dl||this=3D=3Ddocument?l.scrollTo=
(!E?G:n(l).scrollLeft(),E?G:n(l).scrollTop()):this[F]=3DG}):this[0]=3D=3D=
l||this[0]=3D=3Ddocument?self[E?"pageYOffset":"pageXOffset"]||n.boxModel&=
&document.documentElement[F]||document.body[F]:this[0][F]}});n.each(["Hei=
ght","Width"],function(G,E){var =
D=3DG?"Left":"Top",F=3DG?"Right":"Bottom";n.fn["inner"+E]=3Dfunction(){re=
turn =
this[E.toLowerCase()]()+j(this,"padding"+D)+j(this,"padding"+F)};n.fn["ou=
ter"+E]=3Dfunction(I){return =
this["inner"+E]()+j(this,"border"+D+"Width")+j(this,"border"+F+"Width")+(=
I?j(this,"margin"+D)+j(this,"margin"+F):0)};var =
H=3DE.toLowerCase();n.fn[H]=3Dfunction(I){return =
this[0]=3D=3Dl?document.compatMode=3D=3D"CSS1Compat"&&document.documentEl=
ement["client"+E]||document.body["client"+E]:this[0]=3D=3Ddocument?Math.m=
ax(document.documentElement["client"+E],document.body["scroll"+E],documen=
t.documentElement["scroll"+E],document.body["offset"+E],document.document=
Element["offset"+E]):I=3D=3D=3Dg?(this.length?n.css(this[0],H):null):this=
.css(H,typeof I=3D=3D=3D"string"?I:I+"px")}})})();
------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/scripts/superfish.js

=0A=
/*=0A=
 * Superfish v1.4.8 - jQuery menu widget=0A=
 * Copyright (c) 2008 Joel Birch=0A=
 *=0A=
 * Dual licensed under the MIT and GPL licenses:=0A=
 * 	http://www.opensource.org/licenses/mit-license.php=0A=
 * 	http://www.gnu.org/licenses/gpl.html=0A=
 *=0A=
 * CHANGELOG: =
http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt=0A=
 */=0A=
=0A=
;(function($){=0A=
	$.fn.superfish =3D function(op){=0A=
=0A=
		var sf =3D $.fn.superfish,=0A=
			c =3D sf.c,=0A=
			$arrow =3D $(['<span class=3D"',c.arrowClass,'"> =
&#187;</span>'].join('')),=0A=
			over =3D function(){=0A=
				var $$ =3D $(this), menu =3D getMenu($$);=0A=
				clearTimeout(menu.sfTimer);=0A=
				$$.showSuperfishUl().siblings().hideSuperfishUl();=0A=
			},=0A=
			out =3D function(){=0A=
				var $$ =3D $(this), menu =3D getMenu($$), o =3D sf.op;=0A=
				clearTimeout(menu.sfTimer);=0A=
				menu.sfTimer=3DsetTimeout(function(){=0A=
					o.retainPath=3D($.inArray($$[0],o.$path)>-1);=0A=
					$$.hideSuperfishUl();=0A=
					if (o.$path.length && =
$$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}=0A=
				},o.delay);	=0A=
			},=0A=
			getMenu =3D function($menu){=0A=
				var menu =3D $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];=0A=
				sf.op =3D sf.o[menu.serial];=0A=
				return menu;=0A=
			},=0A=
			addArrow =3D function($a){ =
$a.addClass(c.anchorClass).append($arrow.clone()); };=0A=
			=0A=
		return this.each(function() {=0A=
			var s =3D this.serial =3D sf.o.length;=0A=
			var o =3D $.extend({},sf.defaults,op);=0A=
			o.$path =3D =
$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){=0A=
				$(this).addClass([o.hoverClass,c.bcClass].join(' '))=0A=
					.filter('li:has(ul)').removeClass(o.pathClass);=0A=
			});=0A=
			sf.o[s] =3D sf.op =3D o;=0A=
			=0A=
			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? =
'hoverIntent' : 'hover'](over,out).each(function() {=0A=
				if (o.autoArrows) addArrow( $('>a:first-child',this) );=0A=
			})=0A=
			.not('.'+c.bcClass)=0A=
				.hideSuperfishUl();=0A=
			=0A=
			var $a =3D $('a',this);=0A=
			$a.each(function(i){=0A=
				var $li =3D $a.eq(i).parents('li');=0A=
				=
$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li)=
;});=0A=
			});=0A=
			o.onInit.call(this);=0A=
			=0A=
		}).each(function() {=0A=
			var menuClasses =3D [c.menuClass];=0A=
			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) =
menuClasses.push(c.shadowClass);=0A=
			$(this).addClass(menuClasses.join(' '));=0A=
		});=0A=
	};=0A=
=0A=
	var sf =3D $.fn.superfish;=0A=
	sf.o =3D [];=0A=
	sf.op =3D {};=0A=
	sf.IE7fix =3D function(){=0A=
		var o =3D sf.op;=0A=
		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && =
o.animation.opacity!=3Dundefined)=0A=
			this.toggleClass(sf.c.shadowClass+'-off');=0A=
		};=0A=
	sf.c =3D {=0A=
		bcClass     : 'sf-breadcrumb',=0A=
		menuClass   : 'sf-js-enabled',=0A=
		anchorClass : 'sf-with-ul',=0A=
		arrowClass  : 'sf-sub-indicator',=0A=
		shadowClass : 'sf-shadow'=0A=
	};=0A=
	sf.defaults =3D {=0A=
		hoverClass	: 'sfHover',=0A=
		pathClass	: 'overideThisToUse',=0A=
		pathLevels	: 1,=0A=
		delay		: 800,=0A=
		animation	: {opacity:'show'},=0A=
		speed		: 'normal',=0A=
		autoArrows	: true,=0A=
		dropShadows : true,=0A=
		disableHI	: false,		// true disables hoverIntent detection=0A=
		onInit		: function(){}, // callback functions=0A=
		onBeforeShow: function(){},=0A=
		onShow		: function(){},=0A=
		onHide		: function(){}=0A=
	};=0A=
	$.fn.extend({=0A=
		hideSuperfishUl : function(){=0A=
			var o =3D sf.op,=0A=
				not =3D (o.retainPath=3D=3D=3Dtrue) ? o.$path : '';=0A=
			o.retainPath =3D false;=0A=
			var $ul =3D =
$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.ho=
verClass)=0A=
					.find('>ul').hide().css('visibility','hidden');=0A=
			o.onHide.call($ul);=0A=
			return this;=0A=
		},=0A=
		showSuperfishUl : function(){=0A=
			var o =3D sf.op,=0A=
				sh =3D sf.c.shadowClass+'-off',=0A=
				$ul =3D this.addClass(o.hoverClass)=0A=
					.find('>ul:hidden').css('visibility','visible');=0A=
			sf.IE7fix.call($ul);=0A=
			o.onBeforeShow.call($ul);=0A=
			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); =
o.onShow.call($ul); });=0A=
			return this;=0A=
		}=0A=
	});=0A=
=0A=
})(jQuery);=0A=

------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/scripts/jcarousellite_1.0.1.pack.js

(function($){$.fn.jCarouselLite=3Dfunction(o){o=3D$.extend({btnPrev:null,=
btnNext:null,btnGo:null,mouseWheel:false,auto:null,speed:200,easing:null,=
vertical:false,circular:true,visible:3,start:0,scroll:1,beforeStart:null,=
afterEnd:null},o||{});return this.each(function(){var =
running=3Dfalse,animCss=3Do.vertical?"top":"left",sizeCss=3Do.vertical?"h=
eight":"width";var =
div=3D$(this),ul=3D$("ul",div),tLi=3D$("li",ul),tl=3DtLi.size(),v=3Do.vis=
ible;if(o.circular){ul.prepend(tLi.slice(tl-v-1+1).clone()).append(tLi.sl=
ice(0,v).clone());o.start+=3Dv}var =
li=3D$("li",ul),itemLength=3Dli.size(),curr=3Do.start;div.css("visibility=
","visible");li.css({overflow:"hidden",float:o.vertical?"none":"left"});u=
l.css({margin:"0",position:"relative","list-style-type":"none","z-index":=
"1"});div.css({overflow:"hidden",position:"relative","z-index":"2",left:"=
0px"});var liSize=3Do.vertical?height(li):width(li);var =
ulSize=3DliSize*itemLength;var =
divSize=3DliSize*v;li.css({width:li.width()});ul.css(sizeCss,ulSize+"px")=
.css(animCss,-(curr*liSize));div.css(sizeCss,divSize+"px");if(o.btnPrev)$=
(o.btnPrev).click(function(){return =
go(curr-o.scroll)});if(o.btnNext)$(o.btnNext).click(function(){return =
go(curr+o.scroll)});if(o.btnGo)$.each(o.btnGo,function(i,val){$(val).clic=
k(function(){return =
go(o.circular?o.visible+i:i)})});if(o.mouseWheel&&div.mousewheel)div.mous=
ewheel(function(e,d){return =
d>0?go(curr-o.scroll):go(curr+o.scroll)});if(o.auto)setInterval(function(=
){go(curr+o.scroll)},o.auto+o.speed);function vis(){return =
li.slice(curr).slice(0,v)};function =
go(to){if(!running){if(o.beforeStart)o.beforeStart.call(this,vis());if(o.=
circular){if(to<=3Do.start-v-1){ul.css(animCss,-((itemLength-(v*2))*liSiz=
e)+"px");curr=3Dto=3D=3Do.start-v-1?itemLength-(v*2)-1:itemLength-(v*2)-o=
.scroll}else =
if(to>=3DitemLength-v+1){ul.css(animCss,-((v)*liSize)+"px");curr=3Dto=3D=3D=
itemLength-v+1?v+1:v+o.scroll}else =
curr=3Dto}else{if(to<0||to>itemLength-v)return;else =
curr=3Dto}running=3Dtrue;ul.animate(animCss=3D=3D"left"?{left:-(curr*liSi=
ze)}:{top:-(curr*liSize)},o.speed,o.easing,function(){if(o.afterEnd)o.aft=
erEnd.call(this,vis());running=3Dfalse});if(!o.circular){$(o.btnPrev+","+=
o.btnNext).removeClass("disabled");$((curr-o.scroll<0&&o.btnPrev)||(curr+=
o.scroll>itemLength-v&&o.btnNext)||[]).addClass("disabled")}}return =
false}})};function css(el,prop){return =
parseInt($.css(el[0],prop))||0};function width(el){return =
el[0].offsetWidth+css(el,'marginLeft')+css(el,'marginRight')};function =
height(el){return =
el[0].offsetHeight+css(el,'marginTop')+css(el,'marginBottom')}})(jQuery);
------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/scripts/global.js



$(document).ready(function() {
=09
	// Hero image rotator
	if ($('#hpHero').length > 0) {
		$('#hpHero img, #hpHero div').css('display','block');
	=09
		$('#hpHero').cycle({=20
		    fx:      'fade',=20
		    speed:    500,=20
		    timeout:  8000,
		    pause:	  1,
		    pager:  '#heroNav'
		});
	}
=09
	// Nav Dropdowns
	if ($('#nav ul').length > 0) {
		$('#nav ul').load().superfish({
			hoverClass: 'sfHover',
			animation:   {opacity:'none',height:'show'},  // fade-in and =
slide-down animation=20
			speed:       'fast',                          // faster animation =
speed=20
			autoArrows:  false,                           // disable generation =
of arrow mark-up=20
			delay:		 700,
			dropShadows: true,
			pathClass:   'current'
			});
	}

	// initialize the default search word
	searchWord =3D $('#hdSearchField').val();

	// search field
	$('#hdSearchField').focus(function() {
		if ($(this).val() =3D=3D searchWord) {=20
			$(this).val('');=20
			}
	});
=09
	$('#hdSearchField').blur(function() {
		if ($(this).val() =3D=3D '') {=20
			$(this).val(searchWord);=20
			}
	});
=09

	if ($("#scroller .carouselPanel li").length > 0) {
=09
		// Logo Carousel
		$("#scroller .carouselPanel").jCarouselLite({
    			btnNext: ".btnRight",
    			btnPrev: ".btnLeft",
    			visible: 1,
    			scroll: 1
		});
=09
		/* ul is hidden in css to prevent too much from being seen before =
jquery kicks in */
		$('#scroller ul').css('visibility','visible');

    	}
	if ($("#articleScroll .carouselPanel li").length > 0) {
		// Article Carousel
		$("#articleScroll .carouselPanel").jCarouselLite({
    			btnNext: ".scrollRight",
    			btnPrev: ".scrollLeft",
    			visible: 1,
    			scroll:1
		});
=09
		$('#articleScroll ul').css('visibility','visible');
	}

});



------=_NextPart_000_0000_01CA5D3C.542C49D0
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.alexanderproudfoot.com/assets/scripts/jquery.cycle.all.js

/*!
 * jQuery Cycle Plugin (with Transition Definitions)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2009 M. Alsup
 * Version: 2.65 (07-APR-2009)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires: jQuery v1.2.6 or later
 *
 * Originally based on the work of:
 *	1) Matt Oakes
 *	2) Torsten Baldes (http://medienfreunde.com/lab/innerfade/)
 *	3) Benjamin Sterling =
(http://www.benjaminsterling.com/experiments/jqShuffle/)
 */
;(function($) {

var ver =3D '2.65';

// if $.support is not defined (pre jQuery 1.3) add what I need
if ($.support =3D=3D undefined) {
	$.support =3D {
		opacity: !($.browser.msie)
	};
}

function log() {
	if (window.console && window.console.log)
		window.console.log('[cycle] ' + Array.prototype.join.call(arguments,' =
'));
	//$('body').append('<div>'+Array.prototype.join.call(arguments,' =
')+'</div>');
};

// the options arg can be...
//   a number  - indicates an immediate transition should occur to the =
given slide index
//   a string  - 'stop', 'pause', 'resume', or the name of a transition =
effect (ie, 'fade', 'zoom', etc)
//   an object - properties to control the slideshow
//
// the arg2 arg can be...
//   the name of an fx (only used in conjunction with a numeric value =
for 'options')
//   the value true (only used in conjunction with a options =3D=3D =
'resume') and indicates
//     that the resume should occur immediately (not wait for next =
timeout)

$.fn.cycle =3D function(options, arg2) {
	var o =3D { s: this.selector, c: this.context };

    // in 1.3+ we can fix mistakes with the ready state
	if (this.length =3D=3D 0 && options !=3D 'stop') {
        if (!$.isReady && o.s) {
            log('DOM not ready, queuing slideshow')
            $(function() {
                $(o.s,o.c).cycle(options,arg2);
            });
            return this;
        }
		// is your DOM ready?  =
http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
		log('terminating; zero elements found by selector' + ($.isReady ? '' : =
' (DOM not ready)'));
		return this;
	}

    // iterate the matched nodeset
	return this.each(function() {
        options =3D handleArguments(this, options, arg2);
        if (options =3D=3D=3D false)
            return;

		// stop existing slideshow for this container (if there is one)
		if (this.cycleTimeout)
            clearTimeout(this.cycleTimeout);
		this.cycleTimeout =3D this.cyclePause =3D 0;

		var $cont =3D $(this);
		var $slides =3D options.slideExpr ? $(options.slideExpr, this) : =
$cont.children();
		var els =3D $slides.get();
		if (els.length < 2) {
			log('terminating; too few slides: ' + els.length);
			return;
		}

        var opts =3D buildOptions($cont, $slides, els, options, o);
        if (opts =3D=3D=3D false)
            return;

        // if it's an auto slideshow, kick it off
		if (opts.timeout || opts.continuous)
			this.cycleTimeout =3D =
setTimeout(function(){go(els,opts,0,!opts.rev)},
				opts.continuous ? 10 : opts.timeout + (opts.delay||0));
	});
};

// process the args that were passed to the plugin fn
function handleArguments(cont, options, arg2) {
	if (cont.cycleStop =3D=3D undefined)
		cont.cycleStop =3D 0;
	if (options =3D=3D=3D undefined || options =3D=3D=3D null)
		options =3D {};
	if (options.constructor =3D=3D String) {
		switch(options) {
		case 'stop':
			cont.cycleStop++; // callbacks look for change
			if (cont.cycleTimeout)
                clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout =3D 0;
			$(cont).removeData('cycle.opts');
			return false;
		case 'pause':
			cont.cyclePause =3D 1;
			return false;
		case 'resume':
			cont.cyclePause =3D 0;
			if (arg2 =3D=3D=3D true) { // resume now!
				options =3D $(cont).data('cycle.opts');
				if (!options) {
					log('options not found, can not resume');
					return false;
				}
				if (cont.cycleTimeout) {
					clearTimeout(cont.cycleTimeout);
					cont.cycleTimeout =3D 0;
				}
				go(options.elements, options, 1, 1);
			}
			return false;
		default:
			options =3D { fx: options };
		};
	}
	else if (options.constructor =3D=3D Number) {
		// go to the requested slide
		var num =3D options;
		options =3D $(cont).data('cycle.opts');
		if (!options) {
			log('options not found, can not advance slide');
			return false;
		}
		if (num < 0 || num >=3D options.elements.length) {
			log('invalid slide index: ' + num);
			return false;
		}
		options.nextSlide =3D num;
		if (cont.cycleTimeout) {
			clearTimeout(cont.cycleTimeout);
			cont.cycleTimeout =3D 0;
		}
        if (typeof arg2 =3D=3D 'string')
            options.oneTimeFx =3D arg2;
		go(options.elements, options, 1, num >=3D options.currSlide);
		return false;
	}
    return options;
};

function removeFilter(el, opts) {
	if (!$.support.opacity && opts.cleartype && el.style.filter) {
		try { el.style.removeAttribute('filter'); }
		catch(smother) {} // handle old opera versions
	}
};

// one-time initialization
function buildOptions($cont, $slides, els, options, o) {
	// support metadata plugin (v1.0 and v2.0)
	var opts =3D $.extend({}, $.fn.cycle.defaults, options || {}, =
$.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
	if (opts.autostop)
		opts.countdown =3D opts.autostopCount || els.length;

    var cont =3D $cont[0];
	$cont.data('cycle.opts', opts);
	opts.$cont =3D $cont;
	opts.stopCount =3D cont.cycleStop;
	opts.elements =3D els;
	opts.before =3D opts.before ? [opts.before] : [];
	opts.after =3D opts.after ? [opts.after] : [];
	opts.after.unshift(function(){ opts.busy=3D0; });

    // push some after callbacks
	if (!$.support.opacity && opts.cleartype)
		opts.after.push(function() { removeFilter(this, opts); });
	if (opts.continuous)
		opts.after.push(function() { go(els,opts,0,!opts.rev); });

    saveOriginalOpts(opts);

	// clearType corrections
	if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
		clearTypeFix($slides);

    // container requires non-static position so that slides can be =
position within
	if ($cont.css('position') =3D=3D 'static')
		$cont.css('position', 'relative');
	if (opts.width)
		$cont.width(opts.width);
	if (opts.height && opts.height !=3D 'auto')
		$cont.height(opts.height);

	if (opts.startingSlide)
        opts.startingSlide =3D parseInt(opts.startingSlide);

    // if random, mix up the slide array
	if (opts.random) {
		opts.randomMap =3D [];
		for (var i =3D 0; i < els.length; i++)
			opts.randomMap.push(i);
		opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
		opts.randomIndex =3D 0;
		opts.startingSlide =3D opts.randomMap[0];
	}
	else if (opts.startingSlide >=3D els.length)
		opts.startingSlide =3D 0; // catch bogus input
	opts.currSlide =3D opts.startingSlide =3D opts.startingSlide || 0;
	var first =3D opts.startingSlide;

    // set position and zIndex on all the slides
	$slides.css({position: 'absolute', top:0, =
left:0}).hide().each(function(i) {
		var z =3D first ? i >=3D first ? els.length - (i-first) : first-i : =
els.length-i;
		$(this).css('z-index', z)
	});

    // make sure first slide is visible
	$(els[first]).css('opacity',1).show(); // opacity bit needed to handle =
restart use case
	removeFilter(els[first], opts);

    // stretch slides
	if (opts.fit && opts.width)
		$slides.width(opts.width);
	if (opts.fit && opts.height && opts.height !=3D 'auto')
		$slides.height(opts.height);

    // stretch container
	var reshape =3D opts.containerResize && !$cont.innerHeight();
	if (reshape) { // do this only if container has no size =
http://tinyurl.com/da2oa9
		var maxw =3D 0, maxh =3D 0;
		for(var i=3D0; i < els.length; i++) {
			var $e =3D $(els[i]), e =3D $e[0], w =3D $e.outerWidth(), h =3D =
$e.outerHeight();
            if (!w) w =3D e.offsetWidth;
            if (!h) h =3D e.offsetHeight;
			maxw =3D w > maxw ? w : maxw;
			maxh =3D h > maxh ? h : maxh;
		}
        if (maxw > 0 && maxh > 0)
		    $cont.css({width:maxw+'px',height:maxh+'px'});
	}

	if (opts.pause)
		=
$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;}=
);

    if (supportMultiTransitions(opts) =3D=3D=3D false)
		return false;

	// run transition init fn
	if (!opts.multiFx) {
		var init =3D $.fn.cycle.transitions[opts.fx];
		if ($.isFunction(init))
			init($cont, $slides, opts);
		else if (opts.fx !=3D 'custom' && !opts.multiFx) {
			log('unknown transition: ' + opts.fx,'; slideshow terminating');
			return false;
		}
	}

	// apparently a lot of people use image slideshows without height/width =
attributes on the images.
	// Cycle 2.50+ requires the sizing info for every slide; this block =
tries to deal with that.
	var requeue =3D false;
	options.requeueAttempts =3D options.requeueAttempts || 0;
	$slides.each(function() {
        // try to get height/width of each slide
		var $el =3D $(this);
	    this.cycleH =3D (opts.fit && opts.height) ? opts.height : =
$el.height();
		this.cycleW =3D (opts.fit && opts.width) ? opts.width : $el.width();

		if ( $el.is('img') ) {
			// sigh..  sniffing, hacking, shrugging...
			var loadingIE    =3D ($.browser.msie  && this.cycleW =3D=3D 28 && =
this.cycleH =3D=3D 30 && !this.complete);
			var loadingOp    =3D ($.browser.opera && this.cycleW =3D=3D 42 && =
this.cycleH =3D=3D 19 && !this.complete);
			var loadingOther =3D (this.cycleH =3D=3D 0 && this.cycleW =3D=3D 0 && =
!this.complete);

			// don't requeue for images that are still loading but have a valid =
size
			if (loadingIE || loadingOp || loadingOther) {
				if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts =
< 100) { // track retry count so we don't loop forever
					log(options.requeueAttempts,' - img slide not loaded, requeuing =
slideshow: ', this.src, this.cycleW, this.cycleH);
					setTimeout(function() {$(o.s,o.c).cycle(options)}, =
opts.requeueTimeout);
					requeue =3D true;
					return false; // break each loop
				}
				else {
					log('could not determine size of image: '+this.src, this.cycleW, =
this.cycleH);
				}
			}
		}
		return true;
	});

	if (requeue)
		return false;

	opts.cssBefore =3D opts.cssBefore || {};
	opts.animIn =3D opts.animIn || {};
	opts.animOut =3D opts.animOut || {};

	$slides.not(':eq('+first+')').css(opts.cssBefore);
	if (opts.cssFirst)
		$($slides[first]).css(opts.cssFirst);

	if (opts.timeout) {
		opts.timeout =3D parseInt(opts.timeout);
		// ensure that timeout and speed settings are sane
		if (opts.speed.constructor =3D=3D String)
			opts.speed =3D $.fx.speeds[opts.speed] || parseInt(opts.speed);
		if (!opts.sync)
			opts.speed =3D opts.speed / 2;
		while((opts.timeout - opts.speed) < 250) // sanitize timeout
			opts.timeout +=3D opts.speed;
	}
	if (opts.easing)
		opts.easeIn =3D opts.easeOut =3D opts.easing;
	if (!opts.speedIn)
		opts.speedIn =3D opts.speed;
	if (!opts.speedOut)
		opts.speedOut =3D opts.speed;

	opts.slideCount =3D els.length;
	opts.currSlide =3D opts.lastSlide =3D first;
	if (opts.random) {
		opts.nextSlide =3D opts.currSlide;
		if (++opts.randomIndex =3D=3D els.length)
			opts.randomIndex =3D 0;
		opts.nextSlide =3D opts.randomMap[opts.randomIndex];
	}
	else
		opts.nextSlide =3D opts.startingSlide >=3D (els.length-1) ? 0 : =
opts.startingSlide+1;

	// fire artificial events
	var e0 =3D $slides[first];
	if (opts.before.length)
		opts.before[0].apply(e0, [e0, e0, opts, true]);
	if (opts.after.length > 1)
		opts.after[1].apply(e0, [e0, e0, opts, true]);

	if (opts.next)
		$(opts.next).click(function(){return advance(opts,opts.rev?-1:1)});
	if (opts.prev)
		$(opts.prev).click(function(){return advance(opts,opts.rev?1:-1)});
	if (opts.pager)
		buildPager(els,opts);

    exposeAddSlide(opts, els);

    return opts;
};

// save off original opts so we can restore after clearing state
function saveOriginalOpts(opts) {
    opts.original =3D { before: [], after: [] };
    opts.original.cssBefore =3D $.extend({}, opts.cssBefore);
    opts.original.cssAfter  =3D $.extend({}, opts.cssAfter);
    opts.original.animIn    =3D $.extend({}, opts.animIn);
    opts.original.animOut   =3D $.extend({}, opts.animOut);
	$.each(opts.before, function() { opts.original.before.push(this); });
	$.each(opts.after,  function() { opts.original.after.push(this); });
};

function supportMultiTransitions(opts) {
    var txs =3D $.fn.cycle.transitions;
	// look for multiple effects
	if (opts.fx.indexOf(',') > 0) {
		opts.multiFx =3D true;
		opts.fxs =3D opts.fx.replace(/\s*/g,'').split(',');
		// discard any bogus effect names
		for (var i=3D0; i < opts.fxs.length; i++) {
			var fx =3D opts.fxs[i];
			var tx =3D txs[fx];
			if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
				log('discarding unknown transition: ',fx);
				opts.fxs.splice(i,1);
				i--;
			}
		}
		// if we have an empty list then we threw everything away!
		if (!opts.fxs.length) {
			log('No valid transitions named; slideshow terminating.');
			return false;
		}
	}
	else if (opts.fx =3D=3D 'all') {  // auto-gen the list of transitions
		opts.multiFx =3D true;
		opts.fxs =3D [];
		for (p in txs) {
			var tx =3D txs[p];
			if (txs.hasOwnProperty(p) && $.isFunction(tx))
				opts.fxs.push(p);
		}
	}
	if (opts.multiFx && opts.randomizeEffects) {
		// munge the fxs array to make effect selection random
		var r1 =3D Math.floor(Math.random() * 20) + 30;
		for (var i =3D 0; i < r1; i++) {
			var r2 =3D Math.floor(Math.random() * opts.fxs.length);
			opts.fxs.push(opts.fxs.splice(r2,1)[0]);
		}
		log('randomized fx sequence: ',opts.fxs);
	}
	return true;
};

// provide a mechanism for adding slides after the slideshow has started
function exposeAddSlide(opts, els) {
	opts.addSlide =3D function(newSlide, prepend) {
		var $s =3D $(newSlide), s =3D $s[0];
		if (!opts.autostopCount)
			opts.countdown++;
		els[prepend?'unshift':'push'](s);
		if (opts.els)
			opts.els[prepend?'unshift':'push'](s); // shuffle needs this
		opts.slideCount =3D els.length;

		$s.css('position','absolute');
		$s[prepend?'prependTo':'appendTo'](opts.$cont);

		if (prepend) {
			opts.currSlide++;
			opts.nextSlide++;
		}

		if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
			clearTypeFix($s);

		if (opts.fit && opts.width)
			$s.width(opts.width);
		if (opts.fit && opts.height && opts.height !=3D 'auto')
			$slides.height(opts.height);
		s.cycleH =3D (opts.fit && opts.height) ? opts.height : $s.height();
		s.cycleW =3D (opts.fit && opts.width) ? opts.width : $s.width();

		$s.css(opts.cssBefore);

		if (opts.pager)
			$.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, =
opts);

		if ($.isFunction(opts.onAddSlide))
			opts.onAddSlide($s);
		else
			$s.hide(); // default behavior
	};
}

// reset internal state; we do this on every pass in order to support =
multiple effects
$.fn.cycle.resetState =3D function(opts, fx) {
    fx =3D fx || opts.fx;
	opts.before =3D []; opts.after =3D [];
	opts.cssBefore =3D $.extend({}, opts.original.cssBefore);
	opts.cssAfter  =3D $.extend({}, opts.original.cssAfter);
	opts.animIn    =3D $.extend({}, opts.original.animIn);
	opts.animOut   =3D $.extend({}, opts.original.animOut);
	opts.fxFn =3D null;
	$.each(opts.original.before, function() { opts.before.push(this); });
	$.each(opts.original.after,  function() { opts.after.push(this); });

	// re-init
	var init =3D $.fn.cycle.transitions[fx];
	if ($.isFunction(init))
		init(opts.$cont, $(opts.elements), opts);
};

// this is the main engine fn, it handles the timeouts, callbacks and =
slide index mgmt
function go(els, opts, manual, fwd) {
    // opts.busy is true if we're in the middle of an animation
	if (manual && opts.busy && opts.manualTrump) {
        // let manual transitions requests trump active ones
		$(els).stop(true,true);
		opts.busy =3D false;
	}
    // don't begin another timeout-based transition if there is one =
active
	if (opts.busy)
        return;

	var p =3D opts.$cont[0], curr =3D els[opts.currSlide], next =3D =
els[opts.nextSlide];

    // stop cycling if we have an outstanding stop request
	if (p.cycleStop !=3D opts.stopCount || p.cycleTimeout =3D=3D=3D 0 && =
!manual)
		return;

    // check to see if we should stop cycling based on autostop options
	if (!manual && !p.cyclePause &&
		((opts.autostop && (--opts.countdown <=3D 0)) ||
		(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
		if (opts.end)
			opts.end(opts);
		return;
	}

    // if slideshow is paused, only transition on a manual trigger
	if (manual || !p.cyclePause) {
        var fx =3D opts.fx;
		// keep trying to get the slide size if we don't have it yet
		curr.cycleH =3D curr.cycleH || $(curr).height();
		curr.cycleW =3D curr.cycleW || $(curr).width();
		next.cycleH =3D next.cycleH || $(next).height();
		next.cycleW =3D next.cycleW || $(next).width();

		// support multiple transition types
		if (opts.multiFx) {
			if (opts.lastFx =3D=3D undefined || ++opts.lastFx >=3D =
opts.fxs.length)
				opts.lastFx =3D 0;
			fx =3D opts.fxs[opts.lastFx];
			opts.currFx =3D fx;
		}

        // one-time fx overrides apply to:  $('div').cycle(3,'zoom');
        if (opts.oneTimeFx) {
            fx =3D opts.oneTimeFx;
            opts.oneTimeFx =3D null;
        }

        $.fn.cycle.resetState(opts, fx);

        // run the before callbacks
		if (opts.before.length)
			$.each(opts.before, function(i,o) {
				if (p.cycleStop !=3D opts.stopCount) return;
				o.apply(next, [curr, next, opts, fwd]);
			});

        // stage the after callacks
		var after =3D function() {
			$.each(opts.after, function(i,o) {
				if (p.cycleStop !=3D opts.stopCount) return;
				o.apply(next, [curr, next, opts, fwd]);
			});
		};

		if (opts.nextSlide !=3D opts.currSlide) {
            // get ready to perform the transition
			opts.busy =3D 1;
			if (opts.fxFn) // fx function provided?
				opts.fxFn(curr, next, opts, after, fwd);
			else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
				$.fn.cycle[opts.fx](curr, next, opts, after);
			else
				$.fn.cycle.custom(curr, next, opts, after, manual && =
opts.fastOnEvent);
		}

        // calculate the next slide
		opts.lastSlide =3D opts.currSlide;
		if (opts.random) {
			opts.currSlide =3D opts.nextSlide;
			if (++opts.randomIndex =3D=3D els.length)
				opts.randomIndex =3D 0;
			opts.nextSlide =3D opts.randomMap[opts.randomIndex];
		}
		else { // sequence
			var roll =3D (opts.nextSlide + 1) =3D=3D els.length;
			opts.nextSlide =3D roll ? 0 : opts.nextSlide+1;
			opts.currSlide =3D roll ? els.length-1 : opts.nextSlide-1;
		}

		if (opts.pager)
			$.fn.cycle.updateActivePagerLink(opts.pager, opts.currSlide);
	}

    // stage the next transtion
    var ms =3D 0;
	if (opts.timeout && !opts.continuous)
        ms =3D getTimeout(curr, next, opts, fwd);
    else if (opts.continuous && p.cyclePause) // continuous shows work =
off an after callback, not this timer logic
        ms =3D 10;
    if (ms > 0)
        p.cycleTimeout =3D setTimeout(function(){ go(els, opts, 0, =
!opts.rev) }, ms);
};

// invoked after transition
$.fn.cycle.updateActivePagerLink =3D function(pager, currSlide) {
	=
$(pager).find('a').removeClass('activeSlide').filter('a:eq('+currSlide+')=
').addClass('activeSlide');
};

// calculate timeout value for current transition
function getTimeout(curr, next, opts, fwd) {
	if (opts.timeoutFn) {
        // call user provided calc fn
		var t =3D opts.timeoutFn(curr,next,opts,fwd);
		if (t !=3D=3D false)
			return t;
	}
	return opts.timeout;
};

// expose next/prev function, caller must pass in state
$.fn.cycle.next =3D function(opts) { advance(opts, opts.rev?-1:1); };
$.fn.cycle.prev =3D function(opts) { advance(opts, opts.rev?1:-1);};

// advance slide forward or back
function advance(opts, val) {
    var els =3D opts.elements;
	var p =3D opts.$cont[0], timeout =3D p.cycleTimeout;
	if (timeout) {
		clearTimeout(timeout);
		p.cycleTimeout =3D 0;
	}
	if (opts.random && val < 0) {
		// move back to the previously display slide
		opts.randomIndex--;
		if (--opts.randomIndex =3D=3D -2)
			opts.randomIndex =3D els.length-2;
		else if (opts.randomIndex =3D=3D -1)
			opts.randomIndex =3D els.length-1;
		opts.nextSlide =3D opts.randomMap[opts.randomIndex];
	}
	else if (opts.random) {
		if (++opts.randomIndex =3D=3D els.length)
			opts.randomIndex =3D 0;
		opts.nextSlide =3D opts.randomMap[opts.randomIndex];
	}
	else {
		opts.nextSlide =3D opts.currSlide + val;
		if (opts.nextSlide < 0) {
			if (opts.nowrap) return false;
			opts.nextSlide =3D els.length - 1;
		}
		else if (opts.nextSlide >=3D els.length) {
			if (opts.nowrap) return false;
			opts.nextSlide =3D 0;
		}
	}

	if ($.isFunction(opts.prevNextClick))
		opts.prevNextClick(val > 0, opts.nextSlide, els[opts.nextSlide]);
	go(els, opts, 1, val>=3D0);
	return false;
};

function buildPager(els, opts) {
	var $p =3D $(opts.pager);
	$.each(els, function(i,o) {
		$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
	});
   $.fn.cycle.updateActivePagerLink(opts.pager, opts.startingSlide);
};

$.fn.cycle.createPagerAnchor =3D function(i, el, $p, els, opts) {
	var a =3D ($.isFunction(opts.pagerAnchorBuilder))
		? opts.pagerAnchorBuilder(i,el)
		: '<a href=3D"#">'+(i+1)+'</a>';
	if (!a)
		return;
	var $a =3D $(a);
	// don't reparent if anchor is in the dom
	if ($a.parents('body').length =3D=3D 0) {
		var arr =3D [];
		if ($p.length > 1) {
			$p.each(function() {
				var $clone =3D $a.clone(true);
				$(this).append($clone);
				arr.push($clone);
			});
			$a =3D $(arr);
		}
		else {
			$a.appendTo($p);
		}
	}

	$a.bind(opts.pagerEvent, function() {
		opts.nextSlide =3D i;
		var p =3D opts.$cont[0], timeout =3D p.cycleTimeout;
		if (timeout) {
			clearTimeout(timeout);
			p.cycleTimeout =3D 0;
		}
		if ($.isFunction(opts.pagerClick))
			opts.pagerClick(opts.nextSlide, els[opts.nextSlide]);
		go(els,opts,1,opts.currSlide < i); // trigger the trans
		return false;
	});
	if (opts.pauseOnPagerHover)
		$a.hover(function() { opts.$cont[0].cyclePause++; }, function() { =
opts.$cont[0].cyclePause--; } );
};

// helper fn to calculate the number of slides between the current and =
the next
$.fn.cycle.hopsFromLast =3D function(opts, fwd) {
	var hops, l =3D opts.lastSlide, c =3D opts.currSlide;
	if (fwd)
		hops =3D c > l ? c - l : opts.slideCount - l;
	else
		hops =3D c < l ? l - c : l + opts.slideCount - c;
	return hops;
};

// fix clearType problems in ie6 by setting an explicit bg color
// (otherwise text slides look horrible during a fade transition)
function clearTypeFix($slides) {
	function hex(s) {
		s =3D parseInt(s).toString(16);
		return s.length < 2 ? '0'+s : s;
	};
	function getBg(e) {
		for ( ; e && e.nodeName.toLowerCase() !=3D 'html'; e =3D e.parentNode) =
{
			var v =3D $.css(e,'background-color');
			if (v.indexOf('rgb') >=3D 0 ) {
				var rgb =3D v.match(/\d+/g);
				return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
			}
			if (v && v !=3D 'transparent')
				return v;
		}
		return '#ffffff';
	};
	$slides.each(function() { $(this).css('background-color', getBg(this)); =
});
};

// reset common props before the next transition
$.fn.cycle.commonReset =3D function(curr,next,opts,w,h,rev) {
	$(opts.elements).not(curr).hide();
	opts.cssBefore.opacity =3D 1;
	opts.cssBefore.display =3D 'block';
	if (w !=3D=3D false && next.cycleW > 0)
		opts.cssBefore.width =3D next.cycleW;
	if (h !=3D=3D false && next.cycleH > 0)
		opts.cssBefore.height =3D next.cycleH;
	opts.cssAfter =3D opts.cssAfter || {};
	opts.cssAfter.display =3D 'none';
	$(curr).css('zIndex',opts.slideCount + (rev =3D=3D=3D true ? 1 : 0));
	$(next).css('zIndex',opts.slideCount + (rev =3D=3D=3D true ? 0 : 1));
};

// the actual fn for effecting a transition
$.fn.cycle.custom =3D function(curr, next, opts, cb, speedOverride) {
	var $l =3D $(curr), $n =3D $(next);
	var speedIn =3D opts.speedIn, speedOut =3D opts.speedOut, easeIn =3D =
opts.easeIn, easeOut =3D opts.easeOut;
	$n.css(opts.cssBefore);
	if (speedOverride) {
		if (typeof speedOverride =3D=3D 'number')
			speedIn =3D speedOut =3D speedOverride;
		else
			speedIn =3D speedOut =3D 1;
		easeIn =3D easeOut =3D null;
	}
	var fn =3D function() {$n.animate(opts.animIn, speedIn, easeIn, cb)};
	$l.animate(opts.animOut, speedOut, easeOut, function() {
		if (opts.cssAfter) $l.css(opts.cssAfter);
		if (!opts.sync) fn();
	});
	if (opts.sync) fn();
};

// transition definitions - only fade is defined here, transition pack =
defines the rest
$.fn.cycle.transitions =3D {
	fade: function($cont, $slides, opts) {
		$slides.not(':eq('+opts.currSlide+')').css('opacity',0);
		opts.before.push(function(curr,next,opts) {
			$.fn.cycle.commonReset(curr,next,opts);
			opts.cssBefore.opacity =3D 0;
		});
		opts.animIn	   =3D { opacity: 1 };
		opts.animOut   =3D { opacity: 0 };
		opts.cssBefore =3D { top: 0, left: 0 };
	}
};

$.fn.cycle.ver =3D function() { return ver; };

// override these globally if you like (they are all optional)
$.fn.cycle.defaults =3D {
	fx:			  'fade', // name of transition effect (or comma separated names, =
ex: fade,scrollUp,shuffle)
	timeout:	   4000,  // milliseconds between slide transitions (0 to =
disable auto advance)
	timeoutFn:     null,  // callback for determining per-slide timeout =
value:  function(currSlideElement, nextSlideElement, options, =
forwardFlag)
	continuous:	   0,	  // true to start next transition immediately after =
current one completes
	speed:		   1000,  // speed of the transition (any valid fx speed value)
	speedIn:	   null,  // speed of the 'in' transition
	speedOut:	   null,  // speed of the 'out' transition
	next:		   null,  // selector for element to use as click trigger for =
next slide
	prev:		   null,  // selector for element to use as click trigger for =
previous slide
	prevNextClick: null,  // callback fn for prev/next clicks:	=
function(isNext, zeroBasedSlideIndex, slideElement)
	pager:		   null,  // selector for element to use as pager container
	pagerClick:	   null,  // callback fn for pager clicks:	=
function(zeroBasedSlideIndex, slideElement)
	pagerEvent:	  'click', // name of event which drives the pager =
navigation
	pagerAnchorBuilder: null, // callback fn for building anchor links:  =
function(index, DOMelement)
	before:		   null,  // transition callback (scope set to element to be =
shown):     function(currSlideElement, nextSlideElement, options, =
forwardFlag)
	after:		   null,  // transition callback (scope set to element that was =
shown):  function(currSlideElement, nextSlideElement, options, =
forwardFlag)
	end:		   null,  // callback invoked when the slideshow terminates (use =
with autostop or nowrap options): function(options)
	easing:		   null,  // easing method for both in and out transitions
	easeIn:		   null,  // easing for "in" transition
	easeOut:	   null,  // easing for "out" transition
	shuffle:	   null,  // coords for shuffle animation, ex: { top:15, left: =
200 }
	animIn:		   null,  // properties that define how the slide animates in
	animOut:	   null,  // properties that define how the slide animates out
	cssBefore:	   null,  // properties that define the initial state of the =
slide before transitioning in
	cssAfter:	   null,  // properties that defined the state of the slide =
after transitioning out
	fxFn:		   null,  // function used to control the transition: =
function(currSlideElement, nextSlideElement, options, afterCalback, =
forwardFlag)
	height:		  'auto', // container height
	startingSlide: 0,	  // zero-based index of the first slide to be =
displayed
	sync:		   1,	  // true if in/out transitions should occur =
simultaneously
	random:		   0,	  // true for random, false for sequence (not applicable =
to shuffle fx)
	fit:		   0,	  // force slides to fit container
	containerResize: 1,	  // resize container to fit largest slide
	pause:		   0,	  // true to enable "pause on hover"
	pauseOnPagerHover: 0, // true to pause when hovering over pager link
	autostop:	   0,	  // true to end slideshow after X transitions (where X =
=3D=3D slide count)
	autostopCount: 0,	  // number of transitions (optionally used with =
autostop to define X)
	delay:		   0,	  // additional delay (in ms) for first transition (hint: =
can be negative)
	slideExpr:	   null,  // expression for selecting slides (if something =
other than all children is required)
	cleartype:	   !$.support.opacity,  // true if clearType corrections =
should be applied (for IE)
	nowrap:		   0,	  // true to prevent slideshow from wrapping
	fastOnEvent:   0,	  // force fast transitions when triggered manually =
(via pager or prev/next); value =3D=3D time in ms
	randomizeEffects: 1,  // valid when multiple effects are used; true to =
make the effect sequence random
	rev:           0,     // causes animations to transition in reverse
	manualTrump:   true,  // causes manual transition to stop an active =
transition instead of being ignored
	requeueOnImageNotLoaded: true, // requeue the slideshow if any image =
slides are not yet loaded
	requeueTimeout: 250   // ms delay for requeue
};

})(jQuery);


/*!
 * jQuery Cycle Plugin Transition Definitions
 * This script is a plugin for the jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2008 M. Alsup
 * Version:	 2.52
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function($) {

//
// These functions define one-time slide initialization for the named
// transitions. To save file size feel free to remove any of these that =
you
// don't need.
//

// scrollUp/Down/Left/Right
$.fn.cycle.transitions.scrollUp =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var h =3D $cont.height();
	opts.cssBefore =3D{ top: h, left: 0 };
	opts.cssFirst =3D { top: 0 };
	opts.animIn	  =3D { top: 0 };
	opts.animOut  =3D { top: -h };
};
$.fn.cycle.transitions.scrollDown =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var h =3D $cont.height();
	opts.cssFirst =3D { top: 0 };
	opts.cssBefore=3D { top: -h, left: 0 };
	opts.animIn	  =3D { top: 0 };
	opts.animOut  =3D { top: h };
};
$.fn.cycle.transitions.scrollLeft =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var w =3D $cont.width();
	opts.cssFirst =3D { left: 0 };
	opts.cssBefore=3D { left: w, top: 0 };
	opts.animIn	  =3D { left: 0 };
	opts.animOut  =3D { left: 0-w };
};
$.fn.cycle.transitions.scrollRight =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push($.fn.cycle.commonReset);
	var w =3D $cont.width();
	opts.cssFirst =3D { left: 0 };
	opts.cssBefore=3D { left: -w, top: 0 };
	opts.animIn	  =3D { left: 0 };
	opts.animOut  =3D { left: w };
};
$.fn.cycle.transitions.scrollHorz =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden').width();
	opts.before.push(function(curr, next, opts, fwd) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.left =3D fwd ? (next.cycleW-1) : (1-next.cycleW);
		opts.animOut.left =3D fwd ? -curr.cycleW : curr.cycleW;
	});
	opts.cssFirst =3D { left: 0 };
	opts.cssBefore=3D { top: 0 };
	opts.animIn   =3D { left: 0 };
	opts.animOut  =3D { top: 0 };
};
$.fn.cycle.transitions.scrollVert =3D function($cont, $slides, opts) {
	$cont.css('overflow','hidden');
	opts.before.push(function(curr, next, opts, fwd) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.cssBefore.top =3D fwd ? (1-next.cycleH) : (next.cycleH-1);
		opts.animOut.top =3D fwd ? curr.cycleH : -curr.cycleH;
	});
	opts.cssFirst =3D { top: 0 };
	opts.cssBefore=3D { left: 0 };
	opts.animIn   =3D { top: 0 };
	opts.animOut  =3D { left: 0 };
};

// slideX/slideY
$.fn.cycle.transitions.slideX =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width =3D next.cycleW;
	});
	opts.cssBefore =3D { left: 0, top: 0, width: 0 };
	opts.animIn	 =3D { width: 'show' };
	opts.animOut =3D { width: 0 };
};
$.fn.cycle.transitions.slideY =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$(opts.elements).not(curr).hide();
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height =3D next.cycleH;
	});
	opts.cssBefore =3D { left: 0, top: 0, height: 0 };
	opts.animIn	 =3D { height: 'show' };
	opts.animOut =3D { height: 0 };
};

// shuffle
$.fn.cycle.transitions.shuffle =3D function($cont, $slides, opts) {
	var w =3D $cont.css('overflow', 'visible').width();
	$slides.css({left: 0, top: 0});
	opts.before.push(function(curr,next,opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
	});
	opts.speed =3D opts.speed / 2; // shuffle has 2 transitions
	opts.random =3D 0;
	opts.shuffle =3D opts.shuffle || {left:-w, top:15};
	opts.els =3D [];
	for (var i=3D0; i < $slides.length; i++)
		opts.els.push($slides[i]);

	for (var i=3D0; i < opts.currSlide; i++)
		opts.els.push(opts.els.shift());

	// custom transition fn (hat tip to Benjamin Sterling for this bit of =
sweetness!)
	opts.fxFn =3D function(curr, next, opts, cb, fwd) {
		var $el =3D fwd ? $(curr) : $(next);
		$(next).css(opts.cssBefore);
		var count =3D opts.slideCount;
		$el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
			var hops =3D $.fn.cycle.hopsFromLast(opts, fwd);
			for (var k=3D0; k < hops; k++)
				fwd ? opts.els.push(opts.els.shift()) : =
opts.els.unshift(opts.els.pop());
			if (fwd)
				for (var i=3D0, len=3Dopts.els.length; i < len; i++)
					$(opts.els[i]).css('z-index', len-i+count);
			else {
				var z =3D $(curr).css('z-index');
				$el.css('z-index', parseInt(z)+1+count);
			}
			$el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() =
{
				$(fwd ? this : curr).hide();
				if (cb) cb();
			});
		});
	};
	opts.cssBefore =3D { display: 'block', opacity: 1, top: 0, left: 0 };
};

// turnUp/Down/Left/Right
$.fn.cycle.transitions.turnUp =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top =3D next.cycleH;
		opts.animIn.height =3D next.cycleH;
	});
	opts.cssFirst  =3D { top: 0 };
	opts.cssBefore =3D { left: 0, height: 0 };
	opts.animIn	   =3D { top: 0 };
	opts.animOut   =3D { height: 0 };
};
$.fn.cycle.transitions.turnDown =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.animIn.height =3D next.cycleH;
		opts.animOut.top   =3D curr.cycleH;
	});
	opts.cssFirst  =3D { top: 0 };
	opts.cssBefore =3D { left: 0, top: 0, height: 0 };
	opts.animOut   =3D { height: 0 };
};
$.fn.cycle.transitions.turnLeft =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left =3D next.cycleW;
		opts.animIn.width =3D next.cycleW;
	});
	opts.cssBefore =3D { top: 0, width: 0  };
	opts.animIn	   =3D { left: 0 };
	opts.animOut   =3D { width: 0 };
};
$.fn.cycle.transitions.turnRight =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.animIn.width =3D next.cycleW;
		opts.animOut.left =3D curr.cycleW;
	});
	opts.cssBefore =3D { top: 0, left: 0, width: 0 };
	opts.animIn	   =3D { left: 0 };
	opts.animOut   =3D { width: 0 };
};

// zoom
$.fn.cycle.transitions.zoom =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,false,true);
		opts.cssBefore.top =3D next.cycleH/2;
		opts.cssBefore.left =3D next.cycleW/2;
		opts.animIn	   =3D { top: 0, left: 0, width: next.cycleW, height: =
next.cycleH };
		opts.animOut   =3D { width: 0, height: 0, top: curr.cycleH/2, left: =
curr.cycleW/2 };
	});
	opts.cssFirst =3D { top:0, left: 0 };
	opts.cssBefore =3D { width: 0, height: 0 };
};

// fadeZoom
$.fn.cycle.transitions.fadeZoom =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,false);
		opts.cssBefore.left =3D next.cycleW/2;
		opts.cssBefore.top =3D next.cycleH/2;
		opts.animIn	=3D { top: 0, left: 0, width: next.cycleW, height: =
next.cycleH };
	});
	opts.cssBefore =3D { width: 0, height: 0 };
	opts.animOut  =3D { opacity: 0 };
};

// blindX
$.fn.cycle.transitions.blindX =3D function($cont, $slides, opts) {
	var w =3D $cont.css('overflow','hidden').width();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.width =3D next.cycleW;
		opts.animOut.left   =3D curr.cycleW;
	});
	opts.cssBefore =3D { left: w, top: 0 };
	opts.animIn =3D { left: 0 };
	opts.animOut  =3D { left: w };
};
// blindY
$.fn.cycle.transitions.blindY =3D function($cont, $slides, opts) {
	var h =3D $cont.css('overflow','hidden').height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height =3D next.cycleH;
		opts.animOut.top   =3D curr.cycleH;
	});
	opts.cssBefore =3D { top: h, left: 0 };
	opts.animIn =3D { top: 0 };
	opts.animOut  =3D { top: h };
};
// blindZ
$.fn.cycle.transitions.blindZ =3D function($cont, $slides, opts) {
	var h =3D $cont.css('overflow','hidden').height();
	var w =3D $cont.width();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		opts.animIn.height =3D next.cycleH;
		opts.animOut.top   =3D curr.cycleH;
	});
	opts.cssBefore =3D { top: h, left: w };
	opts.animIn =3D { top: 0, left: 0 };
	opts.animOut  =3D { top: h, left: w };
};

// growX - grow horizontally from centered 0 width
$.fn.cycle.transitions.growX =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true);
		opts.cssBefore.left =3D this.cycleW/2;
		opts.animIn =3D { left: 0, width: this.cycleW };
		opts.animOut =3D { left: 0 };
	});
	opts.cssBefore =3D { width: 0, top: 0 };
};
// growY - grow vertically from centered 0 height
$.fn.cycle.transitions.growY =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false);
		opts.cssBefore.top =3D this.cycleH/2;
		opts.animIn =3D { top: 0, height: this.cycleH };
		opts.animOut =3D { top: 0 };
	});
	opts.cssBefore =3D { height: 0, left: 0 };
};

// curtainX - squeeze in both edges horizontally
$.fn.cycle.transitions.curtainX =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,false,true,true);
		opts.cssBefore.left =3D next.cycleW/2;
		opts.animIn =3D { left: 0, width: this.cycleW };
		opts.animOut =3D { left: curr.cycleW/2, width: 0 };
	});
	opts.cssBefore =3D { top: 0, width: 0 };
};
// curtainY - squeeze in both edges vertically
$.fn.cycle.transitions.curtainY =3D function($cont, $slides, opts) {
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,false,true);
		opts.cssBefore.top =3D next.cycleH/2;
		opts.animIn =3D { top: 0, height: next.cycleH };
		opts.animOut =3D { top: curr.cycleH/2, height: 0 };
	});
	opts.cssBefore =3D { left: 0, height: 0 };
};

// cover - curr slide covered by next slide
$.fn.cycle.transitions.cover =3D function($cont, $slides, opts) {
	var d =3D opts.direction || 'left';
	var w =3D $cont.css('overflow','hidden').width();
	var h =3D $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts);
		if (d =3D=3D 'right')
			opts.cssBefore.left =3D -w;
		else if (d =3D=3D 'up')
			opts.cssBefore.top =3D h;
		else if (d =3D=3D 'down')
			opts.cssBefore.top =3D -h;
		else
			opts.cssBefore.left =3D w;
	});
	opts.animIn =3D { left: 0, top: 0};
	opts.animOut =3D { opacity: 1 };
	opts.cssBefore =3D { top: 0, left: 0 };
};

// uncover - curr slide moves off next slide
$.fn.cycle.transitions.uncover =3D function($cont, $slides, opts) {
	var d =3D opts.direction || 'left';
	var w =3D $cont.css('overflow','hidden').width();
	var h =3D $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		if (d =3D=3D 'right')
			opts.animOut.left =3D w;
		else if (d =3D=3D 'up')
			opts.animOut.top =3D -h;
		else if (d =3D=3D 'down')
			opts.animOut.top =3D h;
		else
			opts.animOut.left =3D -w;
	});
	opts.animIn =3D { left: 0, top: 0 };
	opts.animOut =3D { opacity: 1 };
	opts.cssBefore =3D { top: 0, left: 0 };
};

// toss - move top slide and fade away
$.fn.cycle.transitions.toss =3D function($cont, $slides, opts) {
	var w =3D $cont.css('overflow','visible').width();
	var h =3D $cont.height();
	opts.before.push(function(curr, next, opts) {
		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
		// provide default toss settings if animOut not provided
		if (!opts.animOut.left && !opts.animOut.top)
			opts.animOut =3D { left: w*2, top: -h/2, opacity: 0 };
		else
			opts.animOut.opacity =3D 0;
	});
	opts.cssBefore =3D { left: 0, top: 0 };
	opts.animIn =3D { left: 0 };
};

// wipe - clip animation
$.fn.cycle.transitions.wipe =3D function($cont, $slides, opts) {
	var w =3D $cont.css('overflow','hidden').width();
	var h =3D $cont.height();
	opts.cssBefore =3D opts.cssBefore || {};
	var clip;
	if (opts.clip) {
		if (/l2r/.test(opts.clip))
			clip =3D 'rect(0px 0px '+h+'px 0px)';
		else if (/r2l/.test(opts.clip))
			clip =3D 'rect(0px '+w+'px '+h+'px '+w+'px)';
		else if (/t2b/.test(opts.clip))
			clip =3D 'rect(0px '+w+'px 0px 0px)';
		else if (/b2t/.test(opts.clip))
			clip =3D 'rect('+h+'px '+w+'px '+h+'px 0px)';
		else if (/zoom/.test(opts.clip)) {
			var t =3D parseInt(h/2);
			var l =3D parseInt(w/2);
			clip =3D 'rect('+t+'px '+l+'px '+t+'px '+l+'px)';
		}
	}

	opts.cssBefore.clip =3D opts.cssBefore.clip || clip || 'rect(0px 0px =
0px 0px)';

	var d =3D opts.cssBefore.clip.match(/(\d+)/g);
	var t =3D parseInt(d[0]), r =3D parseInt(d[1]), b =3D parseInt(d[2]), l =
=3D parseInt(d[3]);

	opts.before.push(function(curr, next, opts) {
		if (curr =3D=3D next) return;
		var $curr =3D $(curr), $next =3D $(next);
		$.fn.cycle.commonReset(curr,next,opts,true,true,false);
    	opts.cssAfter.display =3D 'block';

		var step =3D 1, count =3D parseInt((opts.speedIn / 13)) - 1;
		(function f() {
			var tt =3D t ? t - parseInt(step * (t/count)) : 0;
			var ll =3D l ? l - parseInt(step * (l/count)) : 0;
			var bb =3D b < h ? b + parseInt(step * ((h-b)/count || 1)) : h;
			var rr =3D r < w ? r + parseInt(step * ((w-r)/count || 1)) : w;
			$next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
			(step++ <=3D count) ? setTimeout(f, 13) : $curr.css('display', =
'none');
		})();
	});
	opts.cssBefore =3D { display: 'block', opacity: 1, top: 0, left: 0 };
	opts.animIn	   =3D { left: 0 };
	opts.animOut   =3D { left: 0 };
};

})(jQuery);

------=_NextPart_000_0000_01CA5D3C.542C49D0--

