From: <Saved by Windows Internet Explorer 8>
Subject: Adobe - Adobe Reader download
Date: Fri, 8 Oct 2010 14:45:35 -0400
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0000_01CB66F7.77673980"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/

=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 lang=3Den_us xml:lang=3D"EN_US"=20
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>Adobe - Adobe Reader =
download</TITLE>
<META content=3D"text/html; charset=3DUTF-8" http-equiv=3DContent-Type>
<META content=3Den-us http-equiv=3DContent-Language>
<META name=3Ddescription=20
content=3D"Download Adobe Reader to view, print and collaborate on PDF =
files."><LINK=20
rel=3D"shortcut icon" type=3Dimage/x-icon=20
href=3D"http://wwwimages.adobe.com/www.adobe.com/favicon.ico"><!--shell_2=
.0.cfm =
--><!--/ubi/template/asset-links.cfm.ssi?locale=3Den_us&gnav=3Dtrue&gfoot=
er=3Dtrue&header=3Dtrue&modules=3D&identity=3Dadobe&layoutType=3Dno-pocke=
t --><!--[if gte IE 5 & lt IE 8]>=0A=
<script type=3D"text/javascript" =
src=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/lib=
/style-nurse.js"></script>=0A=
<![endif]--><LINK=20
rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ad=
obe/screen.css?modules=3D"=20
media=3Dscreen><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ad=
obe/print.css"=20
media=3Dprint><LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ad=
obe/screen/no-pocket.css"><!--[if IE 6]>=0A=
<script =
type=3D"text/jscript">try{document.execCommand("BackgroundImageCache", =
false, true);} catch(e) {};</script>=0A=
<![endif]-->
<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/lib=
/prototype.js"></SCRIPT>

<SCRIPT id=3Dadobe type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ado=
be.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ado=
be/Cookie.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ado=
be/global.js"></SCRIPT>
<LINK rel=3Dstylesheet=20
href=3D"http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/ad=
obe/screen/gnav.black.css"=20
media=3Dscreen>
<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/lib/com.adobe/module/Sear=
chBuddy.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
adobe.SelectFix =3D (function() {=0A=
	var Construct0r =3D function() { };=0A=
	Construct0r.prototype =3D {=0A=
		doFix: function() {=0A=
			for(var i =3D 0, n; (n =3D =
document.getElementsByTagName("select")[i]); i++) {=0A=
				n.style.visibility =3D "hidden";=0A=
			}=0A=
		},=0A=
		undoFix: function() {=0A=
			for(var i =3D 0, n; (n =3D =
document.getElementsByTagName("select")[i]); i++) {=0A=
				n.style.visibility =3D "visible";=0A=
			}=0A=
		}=0A=
	};=0A=
	return new Construct0r();=0A=
})();=0A=
/*---------------------------------------------------------------------- =0A=
	Namespace: adobe.u.input=0A=
----------------------------------------------------------------------*/=0A=
adobe.u.input =3D {=0A=
/*---------------------------------------------------------------------- =0A=
	Method: autoFill=0A=
	Set the value of an form input to the title while empty and unfocused.=0A=
=0A=
>	adobe.u.input.autoFill($("myTextField"), "some text");=0A=
>=0A=
>	$("myTextField").autoFill("some text");=0A=
=0A=
	Parameters:=0A=
	element - Element instance=0A=
	=0A=
	Returned Value:=0A=
	Element instance=0A=
----------------------------------------------------------------------*/=0A=
	autoFill: function(element, fill) {=0A=
		var element =3D element; // setup lexical reference=0A=
		var fill =3D fill; // setup lexical reference=0A=
		=0A=
		if(!fill) {=0A=
			return element;=0A=
		}=0A=
		=0A=
		if(!element.value) {=0A=
			element.value =3D fill;=0A=
		}=0A=
=0A=
		Element.observe(element, "focus", _handleFocus);=0A=
		Element.observe(element, "blur", _handleBlur);=0A=
		=0A=
		return element;=0A=
		=0A=
		function _handleFocus(event) {=0A=
			if(element.value =3D=3D fill) {=0A=
				element.value =3D "";=0A=
			}=0A=
		}=0A=
		=0A=
		function _handleBlur(event) {=0A=
			if(element.value) {=0A=
				return;=0A=
			} else {=0A=
				element.value =3D fill;=0A=
			}=0A=
		}=0A=
	}=0A=
}=0A=
=0A=
Element.addMethods("INPUT", adobe.u.input);=0A=
Element.addMethods("TEXTAREA", adobe.u.input);=0A=
getSearchParams =3D adobe.u.getSearchParam;=0A=
document.observe('dom:loaded', function() {=0A=
	new SearchBuddy();=0A=
});=0A=
=0A=
document.observe("dom:loaded", function() {=0A=
	var greeting =3D document.getElementById('greeting'),=0A=
	screenName =3D document.getElementById('screenName'),=0A=
	accountLink =3D document.getElementById('account'),=0A=
	signout =3D document.getElementById('signout');=0A=
	=0A=
	if(greeting && signout && screenName) {					=0A=
		var screenNameValue =3D adobe.Cookie.get("SCREENNAME"),=0A=
		rememberMe =3D adobe.Cookie.get('RMID'),=0A=
		authenticAdobeId =3D adobe.Cookie.get('AUID');=0A=
		=0A=
		if( screenNameValue) {=0A=
			screenName.innerHTML =3D screenNameValue;=0A=
		}=0A=
		=0A=
		if (rememberMe) {=0A=
			greeting.style.display=3D"";=0A=
			accountLink.style.backgroundImage =3D "";=0A=
		}=0A=
		=0A=
		if ((authenticAdobeId) && (screenNameValue)) {=0A=
			greeting.style.display=3D"";=0A=
			signout.style.display=3D"";=0A=
			accountLink.style.backgroundImage =3D "";=0A=
		}=0A=
	}=0A=
	=0A=
	 var n =3D $("search-input");=0A=
	 if (Object.isElement(n)) {=0A=
		 var f =3D n.getAttribute("title"); =0A=
		 n.autoFill(f);=0A=
	 }=0A=
});=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript>adobe.InputTitleOverlay =3D (function() {	=
return { init: function(e) { return } } })();</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/downloadcenter/js/live/re=
ader.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/downloadcenter/js/live/de=
eppurple.js"></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
    	// store any addon offers in json format that user might be=0A=
    	// eligible for (based on their *actual* ua string)=0A=
    	var addonsjson =3D =
[{"gp_executeby":1.0,"can_use_dlm":1.0,"live":1.0,"installer_type":"addon=
","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/dlm\/a.gif","gp_pingback"=
:1.0,"gp_visible":0.0,"gp_precheck_command":"arh -isAppInstalled =
com.adobe.mauby =
4875E02D9FB21EE389F73B8D1702B320485DF8CE.1","gp_errorifpreinstalled":1.0,=
"date_posted":"03\/29\/2010","gp_dependson":"1422,1521","gp_checksum":"25=
cddef6478d5030a7d96f42ea13434d","distrib":"off","gp_app_pubid":"arh =
-isAppInstalled com.adobe.mauby =
4875E02D9FB21EE389F73B8D1702B320485DF8CE.1","file_size":3.26,"gp_progress=
attachedto":1.0,"queryName":"Acrobat.com","gp_prodname":"Acrobat.com","do=
wnload_url":"http:\/\/platformdl.adobe.com\/Adobe\/Acrobat.com\/win\/2.0\=
/en\/acrobat.com.air","gp_execute":1.0,"Version":2.0,"gp_diskspace":34203=
21.0,"gp_require":0.0,"livebeta":1.0,"Name":"Acrobat.com","gp_willreboot"=
:0.0,"id":1423.0},{"distrib":"off","gp_progressattachedto":1.0,"can_use_d=
lm":1.0,"file_size":0.07,"queryName":"ARH","gp_prodname":"ARH","live":1.0=
,"installer_type":"addon","download_url":"http:\/\/platformdl.adobe.com\/=
Adobe\/ARH\/2.0\/arh.exe","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/d=
lm\/a.gif","gp_execute":0.0,"gp_params":"-installAppSilent =
-desktopShortcut =
-programMenu","gp_pingback":1.0,"Version":2.0,"gp_visible":0.0,"gp_disksp=
ace":77184.0,"gp_require":0.0,"date_posted":"05\/15\/2010","livebeta":1.0=
,"Name":"ARH","gp_checksum":"c1aaacaedd008a56042681380a256b18","id":1521.=
0},{"can_use_dlm":1.0,"live":1.0,"gp_useofferparam":1.0,"installer_type":=
"addon","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/dlm\/mss\/","gp_pin=
gback":1.0,"gp_visible":1.0,"gp_foldershortcut":0.0,"gp_errorifpreinstall=
ed":1.0,"date_posted":"01\/28\/2010","gp_checksum":"1a4c81916d5b0e1e4754f=
40f9fbe7c62","gp_openfolder":0.0,"distrib":"off","file_size":0.98,"queryN=
ame":"McAfee_Security_Scan_Plus","gp_prodname":"McAfee Security Scan =
Plus","gp_adminrights":1.0,"download_url":"http:\/\/platformdl.adobe.com\=
/McAfee\/2.0\/SecurityScan_Release.exe","gp_execute":1.0,"gp_params":"\/S=
 \/noeula \/Affid=3D739 =
\/rid=3D","Version":2.0,"gp_registrypath":"HKEY_LOCAL_MACHINE\\SOFTWARE\\=
Microsoft\\Windows\\CurrentVersion\\Uninstall\\McAfee Security =
Scan","gp_diskspace":1025992.0,"livebeta":1.0,"Name":"McAfee Security =
Scan =
Plus","id":1821.0,"gp_askdest":0.0},{"distrib":"off","gp_executeby":1.0,"=
can_use_dlm":1.0,"file_size":2.07,"queryName":"New_York_Times_Reader_for_=
FP","gp_prodname":"New York Times =
Reader","live":0.0,"gp_useofferparam":1.0,"installer_type":"addon","downl=
oad_url":"http:\/\/platformdl.adobe.com\/NYT\/en\/2.0\/TimesReader_2.054.=
air","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/dlm\/a.gif","gp_execut=
e":1.0,"Version":2.054,"gp_pingback":1.0,"gp_visible":1.0,"gp_diskspace":=
2173942.0,"gp_errorifpreinstalled":1.0,"gp_precheck_command":"arh =
-isAppInstalled com.nyt.timesreader =
78C54164786ADE80CB31E1C5D95607D0938C987A.1","gp_dependson":"2581,1521","d=
ate_posted":"08\/27\/2010","livebeta":1.0,"Name":"New York Times Reader =
for =
FP","gp_checksum":"b1ca3a23b2532f0a576157e58d343fbb","id":2641.0},{"gp_ex=
ecuteby":0.0,"can_use_dlm":1.0,"live":0.0,"gp_useofferparam":1.0,"install=
er_type":"addon","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/dlm\/a.gif=
","gp_pingback":1.0,"gp_visible":0.0,"gp_precheck_command":"arh =
-isRuntimeInstalled","gp_errorifpreinstalled":1.0,"date_posted":"08\/05\/=
2010","gp_dependson":1521.0,"gp_checksum":"16f8dd0e6f3696d09ebd2230a0ed6a=
e4","distrib":"off","file_size":11.99,"gp_progressattachedto":1.0,"queryN=
ame":"Adobe_AIR_for_FP","gp_prodname":"Adobe Air =
Installer","download_url":"http:\/\/platformdl.adobe.com\/Adobe\/AIR\/win=
\/2.0\/AdobeAIRInstaller.exe","gp_execute":1.0,"gp_params":"-silent","Ver=
sion":"2.0.3","gp_diskspace":1.2575488E7,"gp_require":1.0,"livebeta":1.0,=
"Name":"Adobe AIR for =
FP","gp_willreboot":0.0,"id":2581.0},{"distrib":"off","gp_executeby":1.0,=
"can_use_dlm":1.0,"file_size":1.35,"gp_app_pubid":"arh -isAppInstalled =
com.atlanticrecords.Fanbase =
A6C8DD5DA30F5C18C5C42884996720F649F6ED37.1","queryName":"Fanbase","gp_pro=
dname":"Fanbase","live":1.0,"installer_type":"addon","download_url":"http=
:\/\/platformdl.adobe.com\/AtlanticRecords\/en\/1.5\/FanbaseInstaller.air=
","gp_pingbackurl":"http:\/\/dlmping.adobe.com\/dlm\/a.gif","gp_execute":=
1.0,"Version":1.56,"gp_pingback":1.0,"gp_visible":1.0,"gp_diskspace":1411=
621.0,"gp_errorifpreinstalled":0.0,"gp_dependson":"1422,1521","date_poste=
d":"08\/25\/2010","livebeta":1.0,"Name":"Fanbase","gp_checksum":"396abde9=
c53626b31f3c795326feeafe","id":1902.0},{"gp_executeby":0.0,"can_use_dlm":=
1.0,"live":1.0,"gp_useofferparam":1.0,"installer_type":"addon","gp_pingba=
ckurl":"http:\/\/dlmping.adobe.com\/dlm\/gtb\/","gp_defaultbrowser":"ie",=
"gp_pingback":1.0,"gp_foldershortcut":0.0,"gp_visible":1.0,"gp_errorifpre=
installed":0.0,"gp_overwrite":0.0,"date_posted":"08\/10\/2010","gp_minbro=
wserversion":6.0,"gp_showfinnish":0.0,"gp_checksum":"d631c3f240a6d74a0826=
ef84d221f63d","gp_openfolder":0.0,"distrib":"off","file_size":2.12,"query=
Name":"Google_Toolbar_6.5","gp_prodname":"Google =
Toolbar","gp_adminrights":1.0,"gp_showdest":0.0,"download_url":"http:\/\/=
platformdl.adobe.com\/Google\/6.5\/GoogleToolbarInstaller_en32_signed.exe=
","gp_params":"\/q \/e:asknot =
\/r:","gp_execute":1.0,"Version":6.5,"gp_diskspace":2224816.0,"gp_require=
":1.0,"gp_bhoenabled":1.0,"livebeta":1.0,"Name":"Google Toolbar =
6.5","gp_willreboot":0.0,"id":1461.0,"gp_askdest":0.0},{"gp_executeby":0.=
0,"can_use_dlm":1.0,"live":1.0,"installer_type":"addon","gp_pingbackurl":=
"http:\/\/dlmping.adobe.com\/dlm\/a.gif","gp_pingback":1.0,"gp_visible":0=
.0,"gp_precheck_command":"arh =
-isRuntimeInstalled","gp_errorifpreinstalled":1.0,"date_posted":"09\/24\/=
2010","gp_dependson":1521.0,"gp_checksum":"1f6a3fcbd06949edd2cf1c54c403c0=
62","distrib":"off","gp_app_pubid":"arh =
-isRuntimeInstalled","file_size":11.99,"gp_progressattachedto":1.0,"query=
Name":"Air_Installer","gp_prodname":"Air =
Installer","download_url":"http:\/\/platformdl.adobe.com\/Adobe\/AIR\/win=
\/latest\/AdobeAIRInstaller.exe","gp_execute":1.0,"gp_params":"-silent","=
Version":"2.0.4","gp_diskspace":1.2575384E7,"gp_require":1.0,"livebeta":1=
.0,"Name":"Air =
Installer","gp_willreboot":0.0,"id":1422.0},{"distrib":"off","gp_executeb=
y":1.0,"can_use_dlm":1.0,"file_size":2.07,"gp_app_pubid":"arh =
-isAppInstalled com.nyt.timesreader =
78C54164786ADE80CB31E1C5D95607D0938C987A.1","queryName":"New_York_Times_R=
eader","gp_prodname":"New York Times =
Reader","live":1.0,"installer_type":"addon","download_url":"http:\/\/plat=
formdl.adobe.com\/NYT\/en\/2.0\/TimesReader_2.054.air","gp_pingbackurl":"=
http:\/\/dlmping.adobe.com\/dlm\/a.gif","gp_execute":1.0,"Version":2.054,=
"gp_pingback":1.0,"gp_visible":1.0,"gp_diskspace":2173942.0,"gp_errorifpr=
einstalled":1.0,"gp_precheck_command":"arh -isAppInstalled =
com.nyt.timesreader =
78C54164786ADE80CB31E1C5D95607D0938C987A.1","gp_dependson":"1422,1521","d=
ate_posted":"08\/28\/2009","livebeta":1.0,"Name":"New York Times =
Reader","gp_checksum":"b1ca3a23b2532f0a576157e58d343fbb","id":1901.0}];		=0A=
		var browser =3D "OEM";=0A=
		var os =3D "XP";=0A=
		var eventname =3D "readermain"=0A=
		=0A=
		var modaldata =3D {=0A=
			learnMoreModal: {=0A=
				uri: =
"/reader/modal/?height=3D400&width=3D500&content=3DreaderLearnMore&loc=3D=
en",=0A=
				s_pageName: "http://get.adobe.com: Reader: en : Learn More Modal"=0A=
			},=0A=
			systemRequirementsModal: {=0A=
				uri: =
"/reader/modal/?height=3D450&width=3D500&content=3DreaderSystemRequiremen=
t&loc=3Den&version=3D9.4&os=3DWindows",=0A=
				s_pageName: "http://get.adobe.com: Reader: en : Systems Requirements =
Modal"=0A=
			},=0A=
			distributeModal: {=0A=
				uri: =
"/reader/modal/?height=3D350&width=3D500&content=3DreaderDistribute&loc=3D=
en",=0A=
				s_pageName: "http://get.adobe.com: Reader: en : Distribution Modal"=0A=
			}=0A=
		}=0A=
				=0A=
    	registerOnLoad(function() {=0A=
			try {=0A=
				new RDC().bootstrap(false);=0A=
				var modallinks =3D $$("a[rel=3Dmodal]");=0A=
modallinks.each(function(element) =0A=
{=0A=
	if (modaldata[element.id].uri) =0A=
	{	=0A=
		element.modalize(modaldata[element.id].uri);=0A=
		element.observe("click", function() =0A=
		{=0A=
			var url =3D window.location.host + window.location.pathname;=0A=
			var s=3Ds_gi(window.s_accountName);=0A=
			s.linkTrackVars=3D"prop42";=0A=
			s.prop42=3D"Modal: " + url + ":" + this.href;=0A=
=0A=
			// custom pageName=0A=
			if (modaldata[element.id].s_pageName)=0A=
			{=0A=
				s_pageName =3D modaldata[element.id].s_pageName;=0A=
			} =0A=
=0A=
			s.tl(true, "o", url + ": Modal");=0A=
		});=0A=
	}=0A=
});=0A=
			}=0A=
			catch (e) {=0A=
				errorHandler(e);=0A=
		  }=0A=
    	});=0A=
    </SCRIPT>
<LINK rel=3Dstylesheet type=3Dtext/css=20
href=3D"http://www.adobe.com/ubi/template/identity/adobe/Pane/screen.css"=
=20
media=3Dscreen>
<SCRIPT type=3Dtext/javascript=20
src=3D"http://www.adobe.com/ubi/template/identity/adobe/Modal.js"></SCRIP=
T>

<SCRIPT type=3Dtext/javascript>var locale =3D 'en';</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/js/foresee/foresee-trigge=
r-dlc.js"></SCRIPT>

<META name=3DGENERATOR content=3D"MSHTML 8.00.6001.18812"></HEAD>
<BODY><!--googleoff: all--><A id=3Daccesslink tabIndex=3D1=20
href=3D"http://get.adobe.com/help/accessibility.html">Accessibility</A><!=
--googleon: all-->=20
<!--googleoff: index--><!--$Revision: 1.41 $-->
<FORM id=3Dglobalnav-search class=3Den accept-charset=3Dutf-8 =
method=3Dget=20
name=3Dglobalnav-search action=3Dhttp://www.adobe.com/go/gnav_search>
<DL id=3Dglobalnav class=3Dclear-after>
  <DT id=3Dadobe-logo><A =
href=3D"http://www.adobe.com/go/gn_home_logo"><IMG=20
  id=3Dadobe-logo-lq alt=3DAdobe=20
  src=3D"http://www.adobe.com/ubi/globalnav/include/adobe-lq.png" =
width=3D43=20
  height=3D72><IMG id=3Dadobe-logo-hq alt=3DAdobe=20
  src=3D"http://www.adobe.com/ubi/globalnav/include/adobe-hq.png" =
width=3D55=20
  height=3D67></A></DT>
  <DD id=3Dsite-search><INPUT value=3Den_us type=3Dhidden name=3Dloc> =
<INPUT=20
  id=3Dsearch-input title=3DSearch maxLength=3D1000 type=3Dtext =
name=3Dterm=20
  autocomplete=3D"off"><BUTTON id=3Dsearch-submit class=3D"icon-replace =
search"=20
  type=3Dsubmit><SPAN class=3Dzero>Search</SPAN></BUTTON>
  <SCRIPT type=3Dtext/javascript>=0A=
				adobe.InputTitleOverlay.init("search-input");=0A=
			</SCRIPT>
   </DD>
  <DD id=3Duser-menu>
  <UL id=3Duser-menu-list class=3D"pipe compact">
    <LI style=3D"DISPLAY: none" id=3Dgreeting><A>Welcome <SPAN=20
    id=3DscreenName></SPAN></A></LI>
    <LI style=3D"BACKGROUND-IMAGE: none" id=3Daccount><A=20
    =
href=3D"http://www.adobe.com/cfusion/membership/index.cfm?loc=3Den_us&amp=
;nl=3D1">Your=20
    account</A></LI>
    <LI style=3D"DISPLAY: none" id=3Dsignout><A=20
    href=3D"http://www.adobe.com/cfusion/membership/logout.cfm">Sign =
out</A></LI>
    <LI id=3Dglobalnav-cart><A class=3D"icon-replace cart"=20
    href=3D"http://www.adobe.com/go/gn_cart">Your cart</A></LI>
    <LI id=3Dhelp><A =
href=3D"http://www.adobe.com/go/gn_contact">Contact</A></LI>
    <LI id=3Dinternational><A =
href=3D"http://www.adobe.com/go/gn_intl">United States=20
    (Change)</A></LI></UL>
  <SCRIPT type=3Dtext/javascript>=0A=
				var greeting =3D document.getElementById('greeting'),=0A=
				screenName =3D document.getElementById('screenName'),=0A=
				accountLink =3D document.getElementById('account'),=0A=
				signout =3D document.getElementById('signout');=0A=
				=0A=
				if(greeting && signout && screenName) {					=0A=
					var screenNameValue =3D adobe.Cookie.get("SCREENNAME"),=0A=
					rememberMe =3D adobe.Cookie.get('RMID'),=0A=
					authenticAdobeId =3D adobe.Cookie.get('AUID');=0A=
					=0A=
					if(screenNameValue) {=0A=
						registerOnReady(function() {=0A=
							screenName.innerHTML =3D screenNameValue;=0A=
						});=0A=
					}=0A=
					=0A=
					if(rememberMe) {=0A=
						greeting.style.display=3D"";=0A=
						accountLink.style.backgroundImage =3D "";=0A=
					}=0A=
					=0A=
					if(authenticAdobeId) {=0A=
						greeting.style.display=3D"";=0A=
						signout.style.display=3D"";=0A=
						accountLink.style.backgroundImage =3D "";=0A=
					}=0A=
				}=0A=
			</SCRIPT>
  </DD>
  <DD id=3Dsite-menu>
  <UL id=3Dsite-menu-dropdown class=3D"d-dropdown compact">
    <LI><A class=3Ddropdown-tab=20
    href=3D"http://www.adobe.com/go/gn_sol">Solutions</A>=20
    <DL class=3Ddropdown-pane>
      <DT>Industries</DT>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_ind_broadcast_media">Broadcast=20
      and media</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_ind_education">Education</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_ind_enterprise">Enterprise</A></DD=
>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_ind_finance">Financial=20
      services</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_ind_govt">Government</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_ind_lifesciences">Life=20
      sciences</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_ind_manufacturing">Manufacturing</=
A></DD>
      <DT class=3Ddivide>Solutions</DT>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_sol_consumer_photo_video">Consumer=
=20
      photo and video</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_elearning">eLearning and=20
      training</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_sol_hr">Human=20
      resources</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_sol_mobile_digital_home">Mobile =
and=20
      digital home</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_print_publishing">Print=20
      publishing</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_pro_photography">Pro=20
      photography</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_sol_professionalvideo">Professiona=
l=20
      video</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_sol_ria">Rich =
Internet=20
      applications</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_technical_comm">Technical=20
      communication</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_web_conferencing">Web=20
      conferencing</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_sol_web_publishing">Web=20
      design</A></DD>
      <DT class=3D"divide last-title"><A=20
      href=3D"http://www.adobe.com/go/gntray_sol_more">All industries =
and=20
      solutions =E2=80=BA</A></DT></DL></LI>
    <LI><A class=3Ddropdown-tab=20
    href=3D"http://www.adobe.com/go/gn_prod">Products</A>=20
    <UL class=3Ddropdown-pane>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_acrobat_family_home">Acrobat<=
/A></LI>
      <LI><A href=3D"http://www.adobe.com/go/gntray_prod_air_home">Adobe =

      AIR</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_after_effects_home">After=20
      Effects</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_coldfusion_home">ColdFusion</=
A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_acrobat_connect_pro_home">Ado=
be=20
      Connect</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_creative_suite_family_home">C=
reative=20
      Suite family</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_dreamweaver_home">Dreamweaver=
</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_flashbuilder_home">Flash=20
      Builder</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_flash_platform_home">Flash=20
      Platform</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_flash_home">Flash=20
      Professional</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_flex_home">Flex</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_illustrator_home">Illustrator=
</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_indesign_home">InDesign</A></=
LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_livecycle_home">LiveCycle=20
      Enterprise Suite</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_mobile_devices_home">Mobile=20
      products</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_omniture_home">Omniture</A></=
LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_online_services">Online=20
      services</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_prod_photoshop_family_home">Photos=
hop=20
      family</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_premiere_home">Adobe=20
      Premiere Pro</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_prod_scene7_ondemand_home"=20
      target=3Dmm_window>Scene7 OnDemand</A></LI>
      <LI class=3Ddivide><A=20
      href=3D"http://www.adobe.com/go/gntray_prod_products">All products =

    =E2=80=BA</A></LI></UL></LI>
    <LI><A class=3Ddropdown-tab =
href=3D"http://www.adobe.com/go/gn_supp">Support</A>=20

    <UL class=3Ddropdown-pane>
      <LI><A href=3D"http://www.adobe.com/go/gn_supp_support">Support=20
home</A></LI>
      <LI><A href=3D"http://www.adobe.com/go/gntray_supp_ask">Ask Adobe=20
      Support</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_supp_check_order_status">Check=20
      order status</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_supp_cs_home">Customer=20
      Service</A></LI>
      <LI><A=20
href=3D"http://www.adobe.com/go/gntray_supp_kb">Knowledgebase</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_supp_books">Books</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_supp_train_home">Training and=20
      certification</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_supp_programs">Support=20
      programs</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_supp_forums_home">Forums</A></LI>
      <LI><A=20
    =
href=3D"http://www.adobe.com/go/gntray_supp_updates">Updates</A></LI></UL=
></LI>
    <LI><A class=3Ddropdown-tab=20
    href=3D"http://www.adobe.com/go/gn_comm">Communities</A>=20
    <DL class=3Ddropdown-pane>
      <DT>By user</DT>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comm_designers">Designers</A></DD>=

      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comm_devnet">Developers</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comm_educators_students">Educators=
=20
      and students</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comm_partners">Partners</A></DD>
      <DT class=3Ddivide>By resource</DT>
      <DD><A href=3D"http://www.adobe.com/go/gntray_comm_labs"=20
      target=3Dmm_window>Adobe Labs</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_comm_adobetv"=20
      target=3D_blank>Adobe TV</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_comm_forums">Forums</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_comm_user_groups">User=20
      groups</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comm_exchange_home">Exchange/Marke=
tplace</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_comm_xd"=20
      target=3Dmm_window>Experience Design</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_comm_blogs"=20
      target=3Dmm_window>Blogs</A></DD></DL></LI>
    <LI><A class=3Ddropdown-tab =
href=3D"http://www.adobe.com/go/gn_comp">Company</A>=20

    <UL class=3Ddropdown-pane>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_aboutadobe">About=20
      Adobe</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_press">Press</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comp_investor_relations">Investor =

      Relations</A></LI>
      <LI><A=20
      =
href=3D"http://www.adobe.com/go/gntray_comp_corporate_responsibility">Cor=
porate=20
      responsibility</A></LI>
      <LI><A href=3D"http://www.adobe.com/go/gntray_comp_atl">Advanced =
Technology=20
      Labs</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_careers">Careers</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_showcase">Customer=20
      Showcase</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_events">Events</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_contact_adobe">Contact=20
      Adobe</A></LI>
      <LI><A =
href=3D"http://www.adobe.com/go/gntray_comp_become_affiliate">Become=20
      an affiliate</A></LI></UL></LI>
    <LI><A class=3Ddropdown-tab =
href=3D"http://www.adobe.com/go/gn_dl">Downloads</A>=20

    <DL class=3Ddropdown-pane>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_dl_trialdownloads">Trial=20
      downloads</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_dl_updates">Updates</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_dl_exchange">Exchange/Marketplace<=
/A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_dl_airmarketplace">Get AIR=20
      applications</A></DD>
      <DT class=3Ddivide>Readers and Players</DT>
      <DD><A href=3D"http://www.adobe.com/go/gntray_dl_get_reader">Get =
Adobe=20
      Reader</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_dl_getflashplayer">Get Flash=20
      Player</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_dl_getair">Get Adobe =

      AIR</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_dl_getshockwaveplayer">Get=20
      Shockwave Player</A></DD>
      <DT class=3D"divide last-title"><A=20
      href=3D"http://www.adobe.com/go/gntray_dl_more">More =
=E2=80=BA</A></DT></DL></LI>
    <LI><A class=3Ddropdown-tab =
href=3D"http://www.adobe.com/go/gn_store">Store</A>=20
    <DL class=3Ddropdown-pane>
      <DT>Shop by store</DT>
      <DD class=3Ddivide><A=20
      href=3D"http://www.adobe.com/go/gntray_store"><STRONG>Adobe=20
      Store</STRONG><BR>Home/home office users</A></DD>
      <DD class=3Ddivide><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_mvlp_buy"><STRONG>Business</=
STRONG><BR>Small/medium=20
      businesses</A></DD>
      <DD class=3Ddivide><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_edu"><STRONG>Education</STRO=
NG><BR>Students,=20
      educators, and staff</A></DD>
      <DD class=3Ddivide><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_purchase_options">Other =
ways to=20
      buy</A></DD>
      <DT class=3Ddivide>Popular software</DT>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_store_designpremium">Creative=20
      Suite Design Premium</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_acrobat_pro">Acrobat</A></DD=
>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_photoshop">Photoshop</A></DD=
>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_store_lightroom">Photoshop=20
      Lightroom</A></DD>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_store_webpremium">Creative=20
      Suite Web Premium</A></DD>
      <DD><A href=3D"http://www.adobe.com/go/gntray_store_software">View =
all=20
      software =E2=80=BA</A></DD>
      <DT class=3Ddivide>Special offers</DT>
      <DD><A href=3D"http://www.adobe.com/go/gntray_store_offers">Adobe =
product=20
      discounts</A></DD>
      <DT class=3Ddivide>Your purchases</DT>
      <DD><A =
href=3D"http://www.adobe.com/go/gntray_store_your_hist">Order=20
      history, downloads, and subscriptions</A></DD>
      <DD><A=20
      =
href=3D"http://www.adobe.com/go/gntray_store_check_order_status">Check =
order=20
      status</A></DD>
      <DT class=3Ddivide>Volume licensing</DT>
      <DD><A href=3D"http://www.adobe.com/go/gntray_store_mvlp">Save by =
purchasing=20
      Adobe software in =
volume</A></DD></DL></LI></UL></DD></DL><NOSCRIPT>
<DIV id=3Dglobalnav-noscript>You may not have everything you need to =
view certain=20
sections of Adobe.com. Please see our <A=20
href=3D"http://www.adobe.com/go/gn_sitereqs">site=20
requirements</A>.</DIV></NOSCRIPT></FORM><!--googleon: index-->
<DIV id=3DlayoutLogic class=3DL1>
<DIV id=3Dcontent-header>
<OL id=3Ddepthpath class=3D"path menu">
  <LI><A href=3D"http://www.adobe.com/go/gn_home">Home</A></LI>
  <LI><A href=3D"http://www.adobe.com/go/gn_dl/">Downloads</A></LI>
  <LI class=3Dlast-child><A =
href=3D"http://www.adobe.com/products/reader/">Adobe=20
  Reader</A></LI></OL>
<H1 id=3DpageHeader class=3Dmacromedia>Adobe Reader</H1></DIV>
<DIV id=3Dcontent-layout>
<DIV id=3Dcontent-body><INPUT id=3Deventname value=3Dreadermain =
type=3Dhidden=20
name=3Deventname> <INPUT id=3Dinstaller =
value=3DReader_9.4_English_for_Windows=20
type=3Dhidden name=3Dinstaller>=20
<DIV class=3Dcolumns-3-aaaBcc-aaa>
<P><IMG name=3D"Adobe Acrobat Reader"=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/images/shared/product_mne=
monics/165x165/acrobat_reader_165x165.jpg"=20
width=3D165 height=3D165></P></DIV>
<DIV class=3Dcolumns-3-aaaBcc-B>
<FORM id=3DdownloadForm method=3Dget name=3DdownloadForm =
action=3D/reader/download/>
<H2 class=3Dclip-bottom>Adobe Reader <SPAN id=3Dclientversion>9.4</SPAN> =
<SPAN=20
class=3Dstamp-fileinfo>(<SPAN id=3Dclientfilesize>26.35</SPAN> =
MB)</SPAN></H2>
<P><SPAN style=3D"DISPLAY: none" id=3DacrobatBundleString>Includes =
Adobe=C2=AE=20
AIR=C2=AE</SPAN></P>
<P>Your system: Windows XP SP2 - SP3, <SPAN id=3Dlanguage>English<BR><A=20
href=3D"http://get.adobe.com/reader/otherversions/">Different language =
or=20
operating system?</A></P>
<P><A id=3DlearnMoreModal href=3D"http://www.adobe.com/products/reader/" =
rel=3Dmodal=20
target=3D_blank>Learn more</A>&nbsp;&nbsp;|&nbsp; <A =
id=3DsystemRequirementsModal=20
href=3D"http://www.adobe.com/products/reader/systemreqs/" rel=3Dmodal=20
target=3D_blank>System Requirements</A>&nbsp;&nbsp;|&nbsp; <A =
id=3DdistributeModal=20
href=3D"http://www.adobe.com/products/acrobat/distribute.html" =
rel=3Dmodal=20
target=3D_blank>Distribute Adobe Reader</A> </P>
<DIV style=3D"DISPLAY: none" class=3Daddon>
<DIV style=3D"DISPLAY: none" id=3Dgtb>
<DIV class=3D"pullout-left left-20">
<P class=3Dpullout-item></P>
<P><LABEL id=3Daddonlabel class=3Dcall-action for=3Daddon>Include in =
your=20
download</LABEL></P></DIV>
<P><IMG alt=3D"Google toolbar"=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/downloadcenter/images/liv=
e/addons/google_toolbar.png"=20
width=3D269 height=3D60> </P>
<H4><STRONG>Free Google Toolbar</STRONG> (optional) <SPAN=20
class=3Dstamp-fileinfo>(<SPAN id=3Daddonfilesizegtb>0</SPAN> =
MB)</SPAN></H4>
<P class=3Dbyline>Search Google from any web page, block pop-ups</P>
<P><A=20
href=3D"http://www.google.com/support/toolbar/bin/static.py?page=3Dfeatur=
es.html&amp;hl=3Den&amp;v=3D4"=20
target=3D_blank>Learn more</A>&nbsp;&nbsp;|&nbsp; <A=20
href=3D"http://www.google.com/support/toolbar/bin/static.py?page=3Dprivac=
y.html&amp;hl=3Den"=20
target=3D_blank>Privacy policy</A>&nbsp;&nbsp;|&nbsp; <A=20
href=3D"http://www.google.com/accounts/TOS?hl=3Den"=20
target=3D_blank>License</A></P></DIV></DIV><BR>
<P><A id=3DbuttonDownload class=3Ddownload-button=20
href=3D"http://get.adobe.com/reader/download/">Download now</A></P><BR>
<H4>You may have to temporarily disable your antivirus software.</H4>
<P id=3DadobeEULA class=3D"legalnotice byline">By clicking the Download =
Now button,=20
you acknowledge you have read and agree to the <A=20
href=3D"http://www.adobe.com/products/eulas/pdfs/Reader_Player_AIR_WWEULA=
-Combined-20080204_1313.pdf##page=3D205"=20
target=3D_blank>Software Licensing Agreement.</A><BR>Adobe may use the =
Adobe=20
Download Manager to seamlessly install your software.</P>
<P style=3D"DISPLAY: none" id=3DgoogleEULA class=3D"legalnotice =
byline">By clicking=20
the Download Now button, you acknowledge you have read and agree to the =
<A=20
href=3D"http://www.adobe.com/products/eulas/pdfs/Reader_Player_AIR_WWEULA=
-Combined-20080204_1313.pdf##page=3D205"=20
target=3D_blank>Software Licensing Agreement</A> and the <A=20
href=3D"http://www.google.com/terms_of_service.html" =
target=3D_blank>Google Toolbar=20
Software License Agreement.</A><BR>Adobe may use the Adobe Download =
Manager to=20
seamlessly install your software.</P>
<P style=3D"DISPLAY: none" id=3DmcafeeEULA class=3D"legalnotice =
byline">By clicking=20
the Download Now button, you acknowledge you have read and agree to the =
<A=20
href=3D"http://www.adobe.com/products/eulas/pdfs/Reader_Player_AIR_WWEULA=
-Combined-20080204_1313.pdf##page=3D205"=20
target=3D_blank>Software Licensing Agreement</A> and the <A=20
href=3D"http://home.mcafee.com/root/campaign.aspx?cid=3D64985" =
target=3D_blank>McAfee=20
End-User License Agreement.</A><BR>Adobe may use the Adobe Download =
Manager to=20
seamlessly install your software.</P></FORM></DIV>
<DIV class=3Dcolumns-3-aaaBcc-cc>
<DIV style=3D"DISPLAY: none" class=3Daddon>
<DIV style=3D"DISPLAY: none" id=3Dmss>
<DIV class=3D"pullout-left left-20">
<P class=3Dpullout-item></P>
<P><LABEL id=3Daddonlabel class=3Dcall-action for=3Daddon>Include in =
your=20
download</LABEL></P></DIV>
<P><IMG alt=3D"McAfee Security Scan Plus"=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/downloadcenter/images/liv=
e/addons/mss.jpg"=20
width=3D322 height=3D31></P>
<H4><SPAN id=3Daddonsubtextmss>Free McAfee=C2=AE Security Scan Plus =
(optional)=20
</SPAN><SPAN class=3Dstamp-fileinfo>(<SPAN =
id=3Daddonfilesizemss>0</SPAN>=20
MB)</SPAN></H4>
<P class=3Dbyline>Check the status of your PC security.</P>
<P><A href=3D"http://us.mcafee.com/root/campaign.asp?cid=3D72563"=20
target=3D_blank>Learn more</A>&nbsp;&nbsp;|&nbsp; <A=20
href=3D"http://home.mcafee.com/root/campaign.aspx?cid=3D64986" =
target=3D_blank>Privacy=20
policy</A>&nbsp;&nbsp;|&nbsp; <A=20
href=3D"http://home.mcafee.com/root/campaign.aspx?cid=3D64985"=20
target=3D_blank>License</A> </P></DIV></DIV></DIV>
<DIV style=3D"DISPLAY: none" id=3DJSError></DIV>
<DIV style=3D"DISPLAY: none" id=3Daddonfilesize></DIV><BR =
class=3Dclear-both>
<SCRIPT type=3Dtext/javascript>=0A=
	// SiteCatalyst code version: G.7.=0A=
	// Copyright 1997-2004 Omniture, Inc. More info available at =
http://www.omniture.com=0A=
	var s_pageName =3D 'http://get.adobe.com: Reader: en: landing page';=0A=
	var s_server =3D '';=0A=
	var s_channel =3D 'http://get.adobe.com: Reader';=0A=
	var s_pageType =3D '';=0A=
	var s_prop1 =3D '';=0A=
	var s_prop2 =3D '';=0A=
	var s_prop3 =3D '';=0A=
	var s_prop4 =3D '';=0A=
	var s_prop5 =3D '';=0A=
	var s_prop40 =3D '';=0A=
	var s_prop41 =3D '';=0A=
	var s_prop38 =3D '';=0A=
	var s_campaign =3D '';=0A=
	var s_state =3D '';=0A=
	var s_zip =3D '';=0A=
	var s_events =3D '';=0A=
	var s_products =3D '';=0A=
	var s_purchaseID =3D '';=0A=
	var s_eVar1 =3D '';=0A=
	var s_eVar2 =3D '';=0A=
	var s_eVar3 =3D '';=0A=
	var s_eVar4 =3D '';=0A=
	var s_eVar5 =3D '';=0A=
	var s_eVar10 =3D 'ACDC_LIVEBETA_CONTROL/TEST_READER_PHOENIX_PHASE1';=0A=
	var s_eVar21 =3D '';=0A=
	var s_eVar37 =3D '';=0A=
	var s_eVar40 =3D '';=0A=
	var adobeHostURL =3D 'http://www.adobe.com';=0A=
	=0A=
	var s_code=3D' ';=0A=
	var s_accountName=3D'mxmacromedia';=0A=
=0A=
	function sendAnalyticsEvent(str){var =
ns=3Ds_accountName;if(str!=3Dnull)ns+=3D','+str;void(s_gs(ns));}=0A=
</SCRIPT>

<SCRIPT type=3Dtext/javascript=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/uber/js/omniture_s_code.j=
s"></SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
	s_wds(s_accountName);=0A=
	s_ca(s_accountName);=0A=
	if (navigator.appVersion.indexOf('MSIE')>=3D0) =
document.write(unescape('%3C')+'\!-'+'-');=0A=
=0A=
	registerOnLoad(sendAnalyticsEvent);=0A=
</SCRIPT>
<NOSCRIPT><IMG border=3D0 alt=3D""=20
src=3D"http://stats.adobe.com/b/ss/mxmacromedia/1/H.22--NS/0?pageName=3DD=
ylan%20Apps%3A%20Noscript&amp;g=3Dhttp%3A//www.adobe.com/&amp;ch=3DDylan%=
20Apps%3A%20noscript&amp;server=3DDylan"=20
width=3D1 height=3D1></NOSCRIPT><!--/DO NOT REMOVE/--> <!-- End =
SiteCatalyst code version: G.7. --></DIV></DIV></DIV><!--googleoff: =
index--><!-- global footer $Revision: 1.12 $ -->
<DIV id=3Dglobalfooter>
<UL class=3D"pipe menu">
  <LI><A =
href=3D"http://www.adobe.com/go/gftray_foot_careers">Careers</A></LI>
  <LI><A =
href=3D"http://www.adobe.com/go/gftray_foot_privacy_security">Online=20
  Privacy Policy</A></LI>
  <LI><A href=3D"http://www.adobe.com/go/gftray_foot_terms">Terms of =
Use</A></LI>
  <LI><A =
href=3D"http://www.adobe.com/go/gftray_foot_contact_adobe">Contact=20
  us</A></LI>
  <LI><A=20
  =
href=3D"http://www.adobe.com/go/gftray_foot_accessibility">Accessibility<=
/A></LI>
  <LI><A =
href=3D"http://www.adobe.com/go/gftray_foot_report_piracy">Report=20
  piracy</A></LI>
  <LI><A=20
  =
href=3D"http://www.adobe.com/go/gftray_foot_permissions_trademarks">Permi=
ssions=20
  and trademarks</A></LI>
  <LI><A=20
  =
href=3D"http://www.adobe.com/go/gftray_foot_product_license_agreements">P=
roduct=20
  license agreements</A></LI>
  <LI><A href=3D"http://www.adobe.com/go/gftray_foot_feedback">Send=20
  feedback</A></LI></UL>
<DIV class=3D"pullout-right right-125">
<P id=3Dprivacy class=3Dpullout-item><A=20
href=3D"http://www.adobe.com/go/gftray_foot_truste" target=3D_blank><IMG =

id=3Dtrustelogo alt=3D"Reviewed by TRUSTe: site privacy statement"=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/images/globalnav/truste_s=
eal_eu.gif"=20
width=3D116 height=3D33></A></P>
<P id=3Dcopyright>Copyright =C2=A9 2010 Adobe Systems Incorporated. <A=20
href=3D"http://www.adobe.com/go/gftray_all_rights_reserved">All rights=20
reserved</A>.</P>
<P id=3Dterms>Use of this website signifies your agreement to the <A=20
href=3D"http://www.adobe.com/go/gftray_foot_terms">Terms of Use</A> and =
<A=20
href=3D"http://www.adobe.com/go/gftray_foot_privacy_security">Online =
Privacy=20
Policy (updated 07-14-2009)</A>.</P></DIV></DIV><!--googleon: =
index--><IMG=20
id=3Dflash_pixel name=3Dflash_pixel alt=3D""=20
src=3D"http://wwwimages.adobe.com/www.adobe.com/images/pixel.gif" =
width=3D1=20
height=3D1> </SPAN></BODY></HTML>

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.adobe.com/ubi/globalnav/include/adobe-lq.png

iVBORw0KGgoAAAANSUhEUgAAACsAAABICAYAAABvPQw0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz
AAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNAay06AAAAAV
dEVYdENyZWF0aW9uIFRpbWUANi8yMy8wOWsWU1oAAALASURBVGiB7ZmxbtswEIbPfQFrzsTRXQpl
NopwzhJlKeoOtfIGQbO4m9Alq9OhaxTkQaK9HTgmU7S0q5XkAdjhepBUUxQJ6Von4A8QlMmj9PlE
/ibhiQbQ8Ez06n8D+CjAcinAcinAcinAcinAcinAcinAcinAcinAcinAcinAcinAcinAcinAcumF
wmptL1lmHpdl/WMXi7q2MvTfCkufhDCPE6J/7N6e1lJibWEYBzbP7WPz3D7ekWEcWCntY6XcEVil
3MYrNRh2uBus1+PGWTRx/gNEG8IeHgCiyP1pVQUwnRooJk7Dh2W2K1urT37xrho0Z012NZ9h3/y1
u42xL7Auu7r+Y1PXHf0mG2OHNdnVDLR+fMT+pyet30zdbIwVtsuuVmftuNWZm42xwqapOebuth13
d2uOS9N/BFtV5v5Fsv16tdb6Q2KOrypvWH/r6rKf90tz+7uPfvexyTuzXbsrm+az7fimjbFMg77d
FZXDt23Yb1/NcWRjLLB9u6tmaS62Xz/NMWRjo8O67q6onH9pZ/ezxcZGh+2yq763QfrxffB93Xdd
O6AXerrdAfnDSgkQx+02IfDILYQ5vuuY7iuvBUNWs9mY203WlmVe9mQrfpmljEZRncU0xeyRogjb
kqQ9NknacWmKxUde3+7yUuv7e8xUkmzvnqTU+uYGM681ZpUyS4rj7RiWzEoJcHWF13EMsFziIfD4
GNuEwJiLC4CiwH7S/j7WyyXG5DmAUgAHB86Pd4elV0+A9BCl8DPBAiCoUu0Fp1T9JQEATk+3F+po
sDTfigKgLPFBVYU1QZUl1kdHGE+AAPUcprb1Go/gJyfutM7ztbmq6frvOZskOK9Jadqes5sNbg2b
MR5z1v3nVggsRYFTIo7rV11VWJclFinr66aDUBsAtkcR3s9RYW/ApQDLpQDLpQDLpWcF+xtHjCIS
Y/ZcjQAAAABJRU5ErkJggg==

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://www.adobe.com/ubi/globalnav/include/adobe-hq.png

iVBORw0KGgoAAAANSUhEUgAAADcAAABDCAMAAAAPtm2jAAAAA3NCSVQICAjb4U/gAAABC1BMVEUA
AADm5ub/AACRj4//WVlOSksmIiP/uLj/Hx/GxMV0cnL/mZn///8WERI6NzitrKz/e3v/QkJiXl//
EBD/5+fi4eEOCQra2dmAfn+ioKEeGhsuKiv49/f/zMxGQkP/MzO9vL2ZmZnW1dZbWVn/oqJmZmYI
AwX/Zmb/7+8bFxjv7+//jIz/SUl9e3uysbEjHyD/1tYzMzMpJSYSDg+Mior/v7//CAhCPj9UUVJM
SUre3t7/9/fMzMz/GRn/Ozv/Kir/3t7/ra2ZmZn/U1N4dXb/Zmb/hIQhGSEIAACpp6gYExULBwgQ
CBD/xMS1ra2Eg4MrJyj/cXFFQkJAPD1mZma2tbVvbG1XVFSlpKQyhrSUAAAACXBIWXMAAAsSAAAL
EgHS3X78AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M0BrLToAAAAtRJREFUSInt
1gtP4kAQAOBiAW2dgoKAtlUp2MoWaG3rebwUjcRoyQWV0PP//5LborTddnl4ueTuEieBkN392NnZ
KYGB3wvmy/1TbouIi8X0wRUxDtDLFE5my9ywH3xvi3SpOssa6myJ2w3z2Sadmh+x9ZpEd8VG5CBD
wk0ro4wKFt29RAvQJNzk8nDAz6Z0dxF1RGVA9rwB+7NHdftkxdNEPYEt8Dq9nnekOybd0vvb6ZMO
TjdzDzEGZxu5q4O46xc3cfdxBvCyifu2mGkEt3+xgRsGM83w+vfXu7A1h8WgsHdrXdiaP6IXubPO
nQcT6WjjPKxzx4vxeVsmHt9l7obcgdh9lYudiDjtCncdr2CkuqvcXjC8H7/N3VXudjEadEjYPcXl
rhWMni/cPTlEd9vkl/txRaZAdZHW3AoiPPLNMtcMlxT9oJSY5iIP7EHDjyZ5pf1rugubgzhl2EJ7
dHcM8UiTLXtLdacJ9tFcYR4tmtuFZAzJJr2juNPEzxgsmiuoc6OVdGcU5p+IqEykBP/b/4K/4Fhe
ef/QM8XSx5guubU1rmQKljz/VBE/4wxHFN/X9D7lDgWr/OTvZnDzPCv5ge9QrVqdp5Pn6C5j89oI
byto2axZAlZgyjx25nQ8bgMcuYw/m3R69tUoZ0C2nKmFTL3mmGp2PAMJPX9HKFVyxXYOKRTHaaqO
noFzbJkTTH3CeODhl+RUwRpXFUYFpSxRnMJ4A0noPWldvy66yiigPHZkya1A/VEZOVY3hxDFeYIw
Fh3j7d2l8Fo48h2q+Y4XbNuWKPvJJyhTt8qTGU4mhUTdY0YwYQqy5NQgp81YnDJelHRV29aB1ToV
5HoqPt+TJr3ltCPZFuptXBdubF4aip50ntvF2LF13nVtCVXkjusIHTllSrbj4gvgXcdB+aSrv7L4
brtdHSdsHJ6UINUVMjp+b79hjhdMbFvlku6z8eX+rPsFIjHSI2+u80sAAAAASUVORK5CYII=

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://wwwimages.adobe.com/www.adobe.com/images/shared/product_mnemonics/165x165/acrobat_reader_165x165.jpg

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

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://wwwimages.adobe.com/www.adobe.com/downloadcenter/images/live/addons/google_toolbar.png

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
AAAAAElFTkSuQmCC

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Content-Location: http://wwwimages.adobe.com/www.adobe.com/downloadcenter/images/live/addons/mss.jpg

/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+ENSGh0dHA6Ly9ucy5hZG9i
ZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6
TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i
QWRvYmUgWE1QIENvcmUgNC4yLjItYzA2MyA1My4zNTI2MjQsIDIwMDgvMDcvMzAtMTg6MDU6NDEg
ICAgICAgICI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv
MjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4
bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczp4bXBS
aWdodHM9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9yaWdodHMvIgogICAgeG1sbnM6cGhv
dG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6SXB0
YzR4bXBDb3JlPSJodHRwOi8vaXB0Yy5vcmcvc3RkL0lwdGM0eG1wQ29yZS8xLjAveG1sbnMvIgog
ICB4bXBSaWdodHM6TWFya2VkPSJUcnVlIgogICB4bXBSaWdodHM6V2ViU3RhdGVtZW50PSIiCiAg
IHBob3Rvc2hvcDpBdXRob3JzUG9zaXRpb249IiI+CiAgIDxkYzpyaWdodHM+CiAgICA8cmRmOkFs
dD4KICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiLz4KICAgIDwvcmRmOkFsdD4KICAg
PC9kYzpyaWdodHM+CiAgIDxkYzpjcmVhdG9yPgogICAgPHJkZjpTZXE+CiAgICAgPHJkZjpsaS8+
CiAgICA8L3JkZjpTZXE+CiAgIDwvZGM6Y3JlYXRvcj4KICAgPGRjOnRpdGxlPgogICAgPHJkZjpB
bHQ+CiAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ii8+CiAgICA8L3JkZjpBbHQ+CiAg
IDwvZGM6dGl0bGU+CiAgIDx4bXBSaWdodHM6VXNhZ2VUZXJtcz4KICAgIDxyZGY6QWx0PgogICAg
IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCIvPgogICAgPC9yZGY6QWx0PgogICA8L3htcFJp
Z2h0czpVc2FnZVRlcm1zPgogICA8SXB0YzR4bXBDb3JlOkNyZWF0b3JDb250YWN0SW5mbwogICAg
SXB0YzR4bXBDb3JlOkNpQWRyRXh0YWRyPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDaXR5PSIi
CiAgICBJcHRjNHhtcENvcmU6Q2lBZHJSZWdpb249IiIKICAgIElwdGM0eG1wQ29yZTpDaUFkclBj
b2RlPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lBZHJDdHJ5PSIiCiAgICBJcHRjNHhtcENvcmU6Q2lU
ZWxXb3JrPSIiCiAgICBJcHRjNHhtcENvcmU6Q2lFbWFpbFdvcms9IiIKICAgIElwdGM0eG1wQ29y
ZTpDaVVybFdvcms9IiIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1w
bWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
IAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQEC
AQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
/8AAEQgAHwFCAwERAAIRAQMRAf/EAJIAAQACAwADAQAAAAAAAAAAAAAHCAUGCQECCgMBAQAABwEB
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

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://stats.adobe.com/b/ss/mxmacromedia/1/H.22--NS/0?pageName=Dylan%20Apps%3A%20Noscript&g=http%3A//www.adobe.com/&ch=Dylan%20Apps%3A%20noscript&server=Dylan

R0lGODlhAgACAIAAAP///wAAACH5BAEAAAAALAAAAAACAAIAAAIChFEAOw==

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://wwwimages.adobe.com/www.adobe.com/images/globalnav/truste_seal_eu.gif

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
G29N7E8EAgA7

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://wwwimages.adobe.com/www.adobe.com/images/pixel.gif

R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/screen/icon.css

.link-list .icon {
	PADDING-LEFT: 20px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: =
left top
}
.icon {
	PADDING-LEFT: 20px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: =
left top
}
A.icon {
	_zoom: 100%
}
SPAN.icon {
	_zoom: 100%
}
LI.icon {
	_zoom: 100%
}
LI.icon {
	BACKGROUND-POSITION: left top
}
P.icon {
	BACKGROUND-POSITION: left top
}
.icon-20 {
	PADDING-BOTTOM: 0px !important; MIN-HEIGHT: 20px; PADDING-LEFT: 24px =
!important; PADDING-RIGHT: 0px !important; DISPLAY: block; PADDING-TOP: =
0px !important; _height: 20px
}
LI > SPAN.icon-20 {
	LINE-HEIGHT: 1.6em
}
LI > A.icon-20 {
	LINE-HEIGHT: 1.6em
}
.icon-36 {
	PADDING-BOTTOM: 0px !important; MIN-HEIGHT: 36px; PADDING-LEFT: 40px =
!important; PADDING-RIGHT: 0px !important; DISPLAY: block; =
BACKGROUND-POSITION: left top; PADDING-TOP: 0px !important; _height: =
36px
}
LI > SPAN.icon-36 {
	LINE-HEIGHT: 1.6em
}
LI > A.icon-36 {
	LINE-HEIGHT: 1.6em
}
BUTTON.icon-replace {
	BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: =
none; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: center center; =
BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px; =
-moz-outline: none
}
.icon-replace {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px !important; MIN-HEIGHT: 16px; =
PADDING-LEFT: 0px !important; WIDTH: 24px; PADDING-RIGHT: 0px =
!important; ZOOM: 100%; DISPLAY: inline-block; BACKGROUND-REPEAT: =
no-repeat; WHITE-SPACE: nowrap; BACKGROUND-POSITION: center center; =
LETTER-SPACING: -2ex; COLOR: transparent !important; FONT-SIZE: 0px; =
OVERFLOW: hidden; WORD-SPACING: -2ex; PADDING-TOP: 0px !important; =
_height: 16px; _display: inline; _font: 1px/0 monospace; _word-spacing: =
-2px; _letter-spacing: -2px
}
BUTTON.icon-replace {
	_color: #FFF
}
TH.icon-replace {
	_color: #FFF
}
TD.icon-replace {
	_color: #FFF
}
BUTTON[className~=3Dicon-replace] {
	COLOR: #fff
}
TH[className~=3Dicon-replace] {
	COLOR: #fff
}
TD[className~=3Dicon-replace] {
	COLOR: #fff
}
[className~=3Dicon-replace] {
	FONT: 1px/0 monospace; LETTER-SPACING: -2px; WORD-SPACING: -2px
}
A.icon-replace {
	VERTICAL-ALIGN: bottom
}
TH.icon-replace {
	WIDTH: auto; DISPLAY: table-cell; BACKGROUND-POSITION: center center
}
TD.icon-replace {
	WIDTH: auto; DISPLAY: table-cell; BACKGROUND-POSITION: center center
}
.zero {
	POSITION: relative; PADDING-BOTTOM: 0px; LINE-HEIGHT: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 0px; PADDING-TOP: 0px
}
.add {
	BACKGROUND-IMAGE: url(icon/add.gif)
}
.alert {
	BACKGROUND-IMAGE: url(icon/alert.gif)
}
.blog {
	BACKGROUND-IMAGE: url(icon/blog.gif)
}
.buy {
	BACKGROUND-IMAGE: url(icon/buy.gif)
}
.call {
	BACKGROUND-IMAGE: url(icon/call.gif)
}
.checkout {
	BACKGROUND-IMAGE: url(icon/secure.gif)
}
.contact {
	BACKGROUND-IMAGE: url(icon/email.gif)
}
.delete {
	BACKGROUND-IMAGE: url(icon/delete.gif)
}
.download {
	BACKGROUND-IMAGE: url(icon/downloadFile.gif)
}
.edit {
	BACKGROUND-IMAGE: url(icon/edit.gif)
}
.email {
	BACKGROUND-IMAGE: url(icon/email.gif)
}
.enroll {
	BACKGROUND-IMAGE: url(icon/enroll.gif)
}
.facebook {
	BACKGROUND-IMAGE: url(icon/facebook.png)
}
.flickr {
	BACKGROUND-IMAGE: url(icon/flickr.gif)
}
.help {
	BACKGROUND-IMAGE: url(icon/help.gif)
}
.info {
	BACKGROUND-IMAGE: url(icon/info.gif)
}
.launch {
	BACKGROUND-IMAGE: url(icon/launch.gif)
}
.listen {
	BACKGROUND-IMAGE: url(icon/listen.gif)
}
.locked {
	BACKGROUND-IMAGE: url(icon/secure.gif)
}
.nav-up {
	BACKGROUND-IMAGE: url(icon/ascend.gif)
}
.play {
	BACKGROUND-IMAGE: url(icon/play.gif)
}
.print {
	BACKGROUND-IMAGE: url(icon/print.gif)
}
.search {
	BACKGROUND-IMAGE: url(icon/search.gif)
}
.subtract {
	BACKGROUND-IMAGE: url(icon/subtract.gif)
}
.timesaver {
	BACKGROUND-IMAGE: url(icon/timesaver.gif)
}
.try {
	BACKGROUND-IMAGE: url(icon/try.gif)
}
.twitter {
	BACKGROUND-IMAGE: url(icon/twitter.png)
}
.upgrade {
	BACKGROUND-IMAGE: url(icon/upgrade.gif)
}
.breeze-file {
	BACKGROUND-IMAGE: url(icon/breeze.gif)
}
.captivate-file {
	BACKGROUND-IMAGE: url(icon/captivate.gif)
}
.connect-file {
	BACKGROUND-IMAGE: url(icon/launch.gif)
}
.pdf-file {
	BACKGROUND-IMAGE: url(icon/pdf.gif)
}
.quicktime-file {
	BACKGROUND-IMAGE: url(icon/quicktime.gif)
}
.rss-file {
	BACKGROUND-IMAGE: url(icon/rss.gif)
}
.shockwave-file {
	BACKGROUND-IMAGE: url(icon/shockwave.gif)
}
.swf-file {
	BACKGROUND-IMAGE: url(icon/flash.gif)
}
.mnemonic-acrobatconnect {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/acrobat_connect_20x20.jpg)
}
.mnemonic-acrobat {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/acrobat_20x20.png)
}
.mnemonic-acrobatcapture {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/acrobat_capture_20x20.jpg)
}
.mnemonic-acrobatcom {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/acrobatcom_20x20.png)
}
.mnemonic-adc {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/developer_connection_20x20.gif=
)
}
.mnemonic-adobestory {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/adobe_story_20x20.png)
}
.mnemonic-aftereffects {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/after_effects_20x20.png)
}
.mnemonic-air {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/air_20x20.png)
}
.mnemonic-amp {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/amp_20x20.jpg)
}
.mnemonic-audition {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/audition_20x20.jpg)
}
.mnemonic-authorware {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/authorware_20x20.jpg)
}
.mnemonic-bridge {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/bridge_20x20.png)
}
.mnemonic-browserlab {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/browserlab_20x20.png)
}
.mnemonic-captivate {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/captivate_20x20.png)
}
.mnemonic-central {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/central_20x20.jpg)
}
.mnemonic-coldfusion {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/coldfusion_20x20.png)
}
.mnemonic-contentserver {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/content_server_20x20.jpg)
}
.mnemonic-contribute {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/contribute_20x20.png)
}
.mnemonic-creativesuite {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/creativesuite_20x20.jpg)
}
.mnemonic-csreview {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/csreview_20x20.png)
}
.mnemonic-designpremium {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/design_premium_20x20.png)
}
.mnemonic-designstandard {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/design_standard_20x20.png)
}
.mnemonic-devicecentral {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/device_central_20x20.png)
}
.mnemonic-digitaleditions {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/digitaleditions_20x20.jpg)
}
.mnemonic-director {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/director_20x20.jpg)
}
.mnemonic-distillerserver {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/distiller_20x20.jpg)
}
.mnemonic-dreamweaver {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/dreamweaver_20x20.png)
}
.mnemonic-encore {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/encore_20x20.png)
}
.mnemonic-extensionmanager {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/extension_manager_20x20.jpg)
}
.mnemonic-fireworks {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/fireworks_20x20.png)
}
.mnemonic-flash {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_20x20.png)
}
.mnemonic-flashbuilder {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_builder_20x20.png)
}
.mnemonic-flashcatalyst {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_catalyst_20x20.png)
}
.mnemonic-flashlite {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_lite_20x20.jpg)
}
.mnemonic-flashmediaencoder {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/media_encoder_20x20.jpg)
}
.mnemonic-flashmedialive {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_media_live_20x20.png)
}
.mnemonic-flashmediaserver {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flashmediaserver_20x20.jpg)
}
.mnemonic-flashpaper {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flashpaper_20x20.jpg)
}
.mnemonic-flashplayer {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flash_player_20x20.png)
}
.mnemonic-flex {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/flex_20x20.png)
}
.mnemonic-fontfolio {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/fontfolio_20x20.jpg)
}
.mnemonic-framemaker {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/framemaker_20x20.jpg)
}
.mnemonic-freehand {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/freehand_20x20.jpg)
}
.mnemonic-golive {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/golive_20x20.jpg)
}
.mnemonic-homesite {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/homesite_20x20.jpg)
}
.mnemonic-illustrator {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/illustrator_20x20.png)
}
.mnemonic-incopy {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/incopy_20x20.png)
}
.mnemonic-indesign {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/indesign_20x20.png)
}
.mnemonic-indesignserver {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/indesign_server_20x20.png)
}
.mnemonic-jrun {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/jrun_20x20.jpg)
}
.mnemonic-licensemanager {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/licensemanager_20x20.jpg)
}
.mnemonic-lightroom {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/lightroom_20x20.png)
}
.mnemonic-livecycle {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/livecycle_20x20.jpg)
}
.mnemonic-mastercollection {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/master_collection_20x20.png)
}
.mnemonic-onlocation {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/onlocation_20x20.png)
}
.mnemonic-pagemaker {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/pagemaker_20x20.jpg)
}
.mnemonic-photoshop {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/photoshop_20x20.png)
}
.mnemonic-photoshopelements {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/photoshop_elements_20x20.jpg)
}
.mnemonic-photoshopexpress {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/photoshop_express_20x20.jpg)
}
.mnemonic-postscript {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/postscript_20x20.jpg)
}
.mnemonic-premiere {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/premiere_pro_20x20.png)
}
.mnemonic-premiereelements {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/premiere_elements_20x20.jpg)
}
.mnemonic-premiereexpress {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/premiere_express_20x20.jpg)
}
.mnemonic-presenter {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/presenter_20x20.jpg)
}
.mnemonic-productionstudio {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/productionstudio_20x20.jpg)
}
.mnemonic-productionpremium {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/production_premium_20x20.png)
}
.mnemonic-reader {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/acrobat_reader_20x20.jpg)
}
.mnemonic-robohelp {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/robohelp_20x20.jpg)
}
.mnemonic-roboinfo {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/roboinfo_20x20.jpg)
}
.mnemonic-scene7 {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/scene7_20x20.jpg)
}
.mnemonic-shockwaveplayer {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/shockwave_player_20x20.png)
}
.mnemonic-sitecatalyst {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/sitecatalyst_netaverages_20x20=
.png)
}
.mnemonic-soundbooth {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/soundbooth_20x20.png)
}
.mnemonic-stockphotos {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/stockphoto_20x20.jpg)
}
.mnemonic-techcommsuite {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/techcommsuite_20x20.jpg)
}
.mnemonic-ultra {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/ultra_20x20.jpg)
}
.mnemonic-versioncue {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/version_cue_20x20.jpg)
}
.mnemonic-visualcommunicator {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/visual_communicator_20x20.jpg)=

}
.mnemonic-webpremium {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/web_premium_20x20.png)
}
.mnemonic-webstandard {
	BACKGROUND-IMAGE: =
url(/images/shared/product_mnemonics/20x20/web_standard_20x20.jpg)
}
.store-sale {
	BACKGROUND-IMAGE: url(/images/store/icons/sale_36.gif)
}
.store-rebate {
	BACKGROUND-IMAGE: url(/images/store/icons/mail_rebate_36.gif)
}
.store-shipping {
	BACKGROUND-IMAGE: url(/images/store/icons/shipping_36.gif)
}
.store-gift {
	BACKGROUND-IMAGE: url(/images/store/icons/gift_36.gif)
}
.closer-look {
	POSITION: relative; DISPLAY: inline-block; _padding-top: 8px
}
.video-play {
	POSITION: relative; DISPLAY: inline-block; _padding-top: 8px
}
.closer-look A SPAN {
	POSITION: absolute; WIDTH: 25px; HEIGHT: 25px; TOP: -5px; RIGHT: -5px; =
_top: 0; _right: -2px
}
.video-play A SPAN {
	POSITION: absolute; WIDTH: 25px; HEIGHT: 25px; TOP: -5px; RIGHT: -5px; =
_top: 0; _right: -2px
}
.closer-look A SPAN {
	BACKGROUND: url(/ubi/template/identity/adobe/screen/icon/modal.png) =
no-repeat 0px 0px; _background-image: =
url(/ubi/template/identity/adobe/screen/icon/modal.gif)
}
.video-play SPAN {
	BACKGROUND: =
url(/ubi/template/identity/adobe/screen/icon/video_play.png) no-repeat =
0px 0px; _background-image: =
url(/ubi/template/identity/adobe/screen/icon/video_play.gif)
}
.closer-look A:hover SPAN {
	BACKGROUND-POSITION: -25px 0px
}
.video-play A:hover SPAN {
	BACKGROUND-POSITION: -25px 0px
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/screen/data.css

TABLE {
	_font-size: 100%
}
TABLE CAPTION {
	PADDING-BOTTOM: 0.5em
}
TR {
	HEIGHT: auto
}
TABLE.data {
	BACKGROUND-COLOR: #fff; BORDER-SPACING: 1px; BORDER-COLLAPSE: separate; =
MARGIN-BOTTOM: 1em
}
.data TD {
	PADDING-BOTTOM: 0.35em; PADDING-LEFT: 2ex; PADDING-RIGHT: 2ex; =
PADDING-TOP: 0.35em
}
.data TH {
	PADDING-BOTTOM: 0.35em; PADDING-LEFT: 2ex; PADDING-RIGHT: 2ex; =
PADDING-TOP: 0.35em
}
.data TBODY TH {
	TEXT-ALIGN: left
}
.data-bordered TBODY TH {
	TEXT-ALIGN: left
}
.data .headerBlock TH {
	TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: #9d9fa3
}
.data-bordered .headerBlock TH {
	TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: #9d9fa3
}
.data-downloads .headerBlock {
	TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: #9d9fa3
}
.data-downloads .headerBlock TH {
	TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: #9d9fa3
}
.data .headerBlock TH {
	COLOR: #fff
}
.data .headerBlock A {
	COLOR: #fff
}
.data-bordered .headerBlock TH {
	COLOR: #fff
}
.data-bordered .headerBlock A {
	COLOR: #fff
}
.data .ts {
	FONT-SIZE: 85%
}
.data-bordered .ts {
	FONT-SIZE: 85%
}
.data .headerBlock TH {
	PADDING-TOP: 0.5em
}
.data TBODY TR {
	BACKGROUND-COLOR: #f0f1f1
}
.data TD {
	LINE-HEIGHT: 1.35
}
.data-bordered TD {
	LINE-HEIGHT: 1.35
}
.data-downloads TD {
	LINE-HEIGHT: 1.35
}
TD.no {
	TEXT-INDENT: -9999px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: center center; OVERFLOW: hidden
}
TD.yes {
	TEXT-INDENT: -9999px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: center center; OVERFLOW: hidden
}
TD.partial {
	TEXT-INDENT: -9999px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: center center; OVERFLOW: hidden
}
TD.full {
	TEXT-INDENT: -9999px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: center center; OVERFLOW: hidden
}
TD.open {
	TEXT-INDENT: -9999px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: center center; OVERFLOW: hidden
}
.tk .icon {
	TEXT-INDENT: 0px; BACKGROUND-POSITION: left center
}
.data .yes {
	BACKGROUND-IMAGE: url(data/yes.gif)
}
.data-bordered .yes {
	BACKGROUND-IMAGE: url(data/yes.gif)
}
.data .partial {
	BACKGROUND-IMAGE: url(data/partial.gif)
}
.data-bordered .partial {
	BACKGROUND-IMAGE: url(data/partial.gif)
}
.data .full {
	BACKGROUND-IMAGE: url(data/full.gif)
}
.data-bordered .full {
	BACKGROUND-IMAGE: url(data/full.gif)
}
.data .open {
	BACKGROUND-IMAGE: url(data/open.gif)
}
.data-bordered .open {
	BACKGROUND-IMAGE: url(data/open.gif)
}
.data .price {
	TEXT-ALIGN: right
}
TABLE.max {
	WIDTH: 100%
}
.linkTh TH:hover {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
.linkTh TH:hover A {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
.linkTd TD:hover {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
.linkTd TD:hover A {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
TH.link:hover {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
TH.link:hover A {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
TD.link:hover {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
TD.link:hover A {
	BACKGROUND-COLOR: #fff5c0; COLOR: #c00
}
.linkTh TH A {
	DISPLAY: block
}
.linkTd TD A {
	DISPLAY: block
}
TH.link A {
	DISPLAY: block
}
TD.link A {
	DISPLAY: block
}
.data-meta {
	TEXT-ALIGN: left; BORDER-SPACING: 0; MARGIN-BOTTOM: 1em
}
.data-meta CAPTION {
	BORDER-BOTTOM: #999 1px solid; TEXT-ALIGN: left; PADDING-BOTTOM: =
0.75em; PADDING-LEFT: 0px; CAPTION-SIDE: top; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 0.5em; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
.data-meta TH {
	PADDING-BOTTOM: 0.35em; PADDING-RIGHT: 1.75ex
}
.data-meta TD {
	PADDING-BOTTOM: 0.35em; PADDING-RIGHT: 1.75ex
}
TABLE.data-bordered {
	BORDER-BOTTOM: #b4b4b4 1px solid; BORDER-SPACING: 0; MARGIN-BOTTOM: =
1em; BORDER-RIGHT: #b4b4b4 1px solid; _border-collapse: collapse
}
.data-bordered THEAD TH {
	VERTICAL-ALIGN: middle
}
.data-bordered TH {
	TEXT-TRANSFORM: none; BACKGROUND-COLOR: #cdcdcd; COLOR: #454545; =
FONT-SIZE: 100%
}
.data-bordered TD {
	FONT-SIZE: 0.91em
}
.data .alt TD {
	BACKGROUND-COLOR: #e5e5e5
}
.data-bordered .alt TD {
	BACKGROUND-COLOR: #e5e5e5
}
.data-bordered TBODY TR {
	BACKGROUND-COLOR: #f9f9f9
}
.data-bordered TH {
	BORDER-LEFT: #b4b4b4 1px solid; PADDING-BOTTOM: 0.35em; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; VERTICAL-ALIGN: top; BORDER-TOP: #b4b4b4 1px =
solid; PADDING-TOP: 0.35em
}
.data-bordered TD {
	BORDER-LEFT: #b4b4b4 1px solid; PADDING-BOTTOM: 0.35em; PADDING-LEFT: =
10px; PADDING-RIGHT: 10px; VERTICAL-ALIGN: top; BORDER-TOP: #b4b4b4 1px =
solid; PADDING-TOP: 0.35em
}
TD.nodata {
	BORDER-LEFT: #fff 1px solid; BACKGROUND: #fff; BORDER-TOP: #fff 1px =
solid
}
TH.nodata {
	BORDER-LEFT: #fff 1px solid; BACKGROUND: #fff; BORDER-TOP: #fff 1px =
solid
}
TD.data-none {
	BORDER-LEFT: #fff 1px solid; BACKGROUND: #fff; BORDER-TOP: #fff 1px =
solid
}
TABLE.data-downloads {
	BORDER-BOTTOM: #ccc 1px solid; POSITION: relative; BORDER-SPACING: 0; =
WIDTH: 558px; BORDER-COLLAPSE: collapse; MARGIN-RIGHT: -17px; =
BORDER-RIGHT: medium none; LEFT: -16px; _left: 0; _margin-left: -16px
}
.data-downloads TH {
	BORDER-BOTTOM: #ccc 2px solid; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: transparent; COLOR: #000
}
.data-downloads .headerBlock {
	TEXT-TRANSFORM: none; BACKGROUND-COLOR: #9d9fa3; COLOR: #fff
}
.data-downloads .headerBlock TH {
	TEXT-TRANSFORM: none; BACKGROUND-COLOR: #9d9fa3; COLOR: #fff
}
.data-downloads TBODY TR {
	BACKGROUND-COLOR: #fdfdfd
}
.data-downloads TH {
	BORDER-LEFT: medium none; PADDING-BOTTOM: 0.35em; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; VERTICAL-ALIGN: top; BORDER-TOP: #ccc 1px solid; =
PADDING-TOP: 0.35em
}
.data-downloads TD {
	BORDER-LEFT: medium none; PADDING-BOTTOM: 0.35em; PADDING-LEFT: 10px; =
PADDING-RIGHT: 10px; VERTICAL-ALIGN: top; BORDER-TOP: #ccc 1px solid; =
PADDING-TOP: 0.35em
}
.data-downloads .no-border-top TD {
	BORDER-TOP: medium none
}
.data-downloads TBODY TD {
	BORDER-BOTTOM: medium none; BORDER-RIGHT: #ccc 1px solid
}
.data-downloads .productHead {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: none; =
BACKGROUND-COLOR: #fff; FONT-WEIGHT: normal; PADDING-TOP: 0.85em
}
.data-downloads .treelist {
	MARGIN-TOP: -0.35em
}
.data-downloads .treelist DT {
	FONT-WEIGHT: bold
}
TH.gold {
	BACKGROUND-COLOR: #f8df80 !important
}
TD.gold {
	BACKGROUND-COLOR: #f8df80 !important
}
TH.silver {
	BACKGROUND-COLOR: #c0c0c1 !important
}
TD.silver {
	BACKGROUND-COLOR: #c0c0c1 !important
}
TH.bronze {
	BACKGROUND-COLOR: #ddcab8 !important
}
TD.bronze {
	BACKGROUND-COLOR: #ddcab8 !important
}
TH.platinum {
	BACKGROUND-COLOR: #f5f5f5 !important
}
TD.platinum {
	BACKGROUND-COLOR: #f5f5f5 !important
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/screen/list.menu.css

.menu {
	ZOOM: 1; DISPLAY: block; MARGIN-BOTTOM: 1em; MARGIN-LEFT: 0px; =
MARGIN-RIGHT: 0px; _height: 1em
}
.menu {
	LINE-HEIGHT: 0; LETTER-SPACING: -1ex; WORD-SPACING: -1ex
}
.menu * {
	LINE-HEIGHT: 1.25; LETTER-SPACING: normal; WORD-SPACING: normal
}
.menu > * {
	ZOOM: 1; DISPLAY: inline-block
}
.menu > * A {
	ZOOM: 1; DISPLAY: inline-block
}
[className~=3Dmenu] > * {
	DISPLAY: inline
}
[className~=3Dmenu] > * A {
	DISPLAY: inline
}
.pipe:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.menu LI {
	_zoom: 1; _display: inline
}
.menu DT {
	_zoom: 1; _display: inline
}
.menu DD {
	_zoom: 1; _display: inline
}
.menu LI A {
	_zoom: 1; _display: inline
}
.menu DD A {
	_zoom: 1; _display: inline
}
.menu DT A {
	_zoom: 1; _display: inline
}
.menu * LI {
	_display: inline-block
}
.menu * DD {
	_display: inline-block
}
.menu * DT {
	_display: inline-block
}
.menu * LI A {
	_display: inline-block
}
.menu * DD A {
	_display: inline-block
}
.menu * DT A {
	_display: inline-block
}
.menu LI {
	PADDING-BOTTOM: 0px; _display: inline
}
.menu DD {
	PADDING-BOTTOM: 0px; _display: inline
}
.menu DT {
	PADDING-BOTTOM: 0px; _display: inline
}
.menu LI A {
	VERTICAL-ALIGN: bottom
}
.menu DD A {
	VERTICAL-ALIGN: bottom
}
.menu DT A {
	VERTICAL-ALIGN: bottom
}
.menu .selected {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 0.8ex; PADDING-RIGHT: 0.8ex; =
MARGIN-LEFT: 0px; PADDING-TOP: 0.1em
}
.menu .first {
	PADDING-LEFT: 0px
}
.menu DT {
	TEXT-TRANSFORM: uppercase; MARGIN-BOTTOM: 1.5em; MARGIN-RIGHT: 1.5em
}
.menu A.icon {
	DISPLAY: block; _display: inline-block
}
.boxed {
	POSITION: relative; PADDING-BOTTOM: 4px !important; LIST-STYLE-TYPE: =
none; MARGIN: 0px -16px; PADDING-LEFT: 16px !important; PADDING-RIGHT: =
16px !important; BACKGROUND: url(list.menu/boxshadow.gif) #ebebeb =
repeat-x left bottom; BORDER-TOP: #b1b1b1 1px solid; PADDING-TOP: 0px =
!important; _zoom: 1
}
.boxed LI {
	BORDER-LEFT: #fff 1px solid; BACKGROUND-COLOR: #efefef; BORDER-RIGHT: =
#b1b1b1 1px solid
}
.boxed LI {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; COLOR: =
#000; PADDING-TOP: 6px
}
.boxed DD {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; COLOR: =
#000; PADDING-TOP: 6px
}
.boxed DT {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; COLOR: =
#000; PADDING-TOP: 6px
}
.boxed LI A:hover {
	BACKGROUND-COLOR: #def; COLOR: #000; TEXT-DECORATION: none
}
.boxed LI.on {
	BACKGROUND-COLOR: #f9f9f9
}
.boxed LI A:visited {
	COLOR: #000
}
DL.boxed {
	BACKGROUND-IMAGE: none; BORDER-BOTTOM: #b1b1b1 1px solid; =
PADDING-BOTTOM: 1px; MARGIN: 0px -8px 1em; BORDER-TOP: medium none
}
.boxed DD {
	PADDING-BOTTOM: 1px; MARGIN-TOP: 0px; PADDING-LEFT: 8px; PADDING-RIGHT: =
6px; MARGIN-BOTTOM: 0px; PADDING-TOP: 2px
}
.boxed DT {
	PADDING-BOTTOM: 1px; MARGIN-TOP: 0px; PADDING-LEFT: 8px; PADDING-RIGHT: =
6px; MARGIN-BOTTOM: 0px; PADDING-TOP: 2px
}
.boxed DT {
	_display: inline; _float: left
}
.boxed DD {
	FLOAT: right !important
}
.page {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.page UL {
	PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px 0px 0px 10px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
.page UL LI A {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 0.7ex; PADDING-RIGHT: 0.7ex; =
PADDING-TOP: 0.1em
}
.page DT {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.36; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 0.91em; =
VERTICAL-ALIGN: middle; PADDING-TOP: 0px
}
.page DD {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.36; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-SIZE: 0.91em; =
VERTICAL-ALIGN: middle; PADDING-TOP: 0px
}
.page .button {
	PADDING-BOTTOM: 0.3ex; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex; =
BACKGROUND-REPEAT: repeat-y; BACKGROUND-POSITION: 0px 0px; MARGIN-LEFT: =
2px; MARGIN-RIGHT: 2px; PADDING-TOP: 0.2ex
}
.page .pipe .selected {
	FONT-WEIGHT: bold
}
.page DD.next {
	BACKGROUND-IMAGE: url(list.menu/next_null.gif); MARGIN-LEFT: -1px
}
.page DD.prev {
	BACKGROUND-IMAGE: url(list.menu/prev_null.gif); MARGIN-LEFT: 10px
}
.page DD.next A {
	BACKGROUND-IMAGE: url(list.menu/next.gif)
}
.page DD.prev A {
	BACKGROUND-IMAGE: url(list.menu/prev.gif)
}
.page .prev A {
	WIDTH: 17px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px =
0px; LETTER-SPACING: -3ex; HEIGHT: 17px; OVERFLOW: hidden; WORD-SPACING: =
-3ex
}
.page .prev {
	WIDTH: 17px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px =
0px; LETTER-SPACING: -3ex; HEIGHT: 17px; OVERFLOW: hidden; WORD-SPACING: =
-3ex
}
.page .next A {
	WIDTH: 17px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px =
0px; LETTER-SPACING: -3ex; HEIGHT: 17px; OVERFLOW: hidden; WORD-SPACING: =
-3ex
}
.page .next {
	WIDTH: 17px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: 0px =
0px; LETTER-SPACING: -3ex; HEIGHT: 17px; OVERFLOW: hidden; WORD-SPACING: =
-3ex
}
.page .prev {
	MARGIN-LEFT: 2px; FONT-SIZE: 0px; MARGIN-RIGHT: 2px
}
.page .next {
	MARGIN-LEFT: 2px; FONT-SIZE: 0px; MARGIN-RIGHT: 2px
}
.page DD.prev A:hover {
	BACKGROUND-IMAGE: url(list.menu/prev_hover.gif); BACKGROUND-COLOR: =
transparent
}
.page DD.prev A:focus {
	BACKGROUND-IMAGE: url(list.menu/prev_hover.gif); BACKGROUND-COLOR: =
transparent
}
.page DD.next A:hover {
	BACKGROUND-IMAGE: url(list.menu/next_hover.gif); BACKGROUND-COLOR: =
transparent
}
.page DD.next A:focus {
	BACKGROUND-IMAGE: url(list.menu/next_hover.gif); BACKGROUND-COLOR: =
transparent
}
[class~=3Dselected].button {
	BACKGROUND-IMAGE: url(form/element_selected_bg.gif); PADDING-BOTTOM: =
0.25em; MARGIN-TOP: -1px; PADDING-RIGHT: 1.7ex; COLOR: #000; CURSOR: =
default
}
.selected.button {
	BACKGROUND-IMAGE: url(form/element_selected_bg.gif); BACKGROUND-COLOR: =
#eee
}
.page .etc {
	VERTICAL-ALIGN: bottom
}
.page .selected:hover {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium
}
.page .selected A:hover {
	OUTLINE-STYLE: none; OUTLINE-COLOR: invert; OUTLINE-WIDTH: medium
}
OL.path {
	LIST-STYLE-TYPE: none
}
.path:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.path > LI {
	DISPLAY: inline; FLOAT: left; _float: none
}
[className~=3Dpath] > LI {
	FLOAT: none
}
.path > LI:after {
	CONTENT: "/"; FONT-WEIGHT: normal; MARGIN-RIGHT: 1ex
}
OL.path LI A {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); nurse: =
"$addTextToNode[ /,after,fontWeight normal]"
}
.path LI A {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 0px; PADDING-RIGHT: 1ex; =
PADDING-TOP: 0.1em
}
UL.pipe {
	LIST-STYLE-TYPE: none
}
.pipe > LI + LI {
	BACKGROUND-IMAGE: url(theme/pipe.gif); PADDING-LEFT: 1px
}
.pipe DD {
	MARGIN-LEFT: 0px
}
.pipe > DD + DD {
	BACKGROUND-IMAGE: url(theme/pipe.gif); PADDING-LEFT: 1px
}
.pipe LI {
	BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: left center
}
.pipe DD {
	BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: left center
}
.pipe LI A {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex; =
VERTICAL-ALIGN: baseline; PADDING-TOP: 0.1em
}
.pipe DD A {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 1ex; PADDING-RIGHT: 1ex; =
VERTICAL-ALIGN: baseline; PADDING-TOP: 0.1em
}
UL.pipe {
	nurse: "$getDirectChild >$getAdjacent >$addClassToNode[pipe-adjacent]"; =
_behavior: url(/ubi/template/identity/lib/style-nurse.htc)
}
DL.pipe {
	nurse: "$getDirectChild >$getAdjacent >$addClassToNode[pipe-adjacent]"; =
_behavior: url(/ubi/template/identity/lib/style-nurse.htc)
}
.pipe .menu-text {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; =
PADDING-TOP: 1px; _background-image: none
}
.pipe-adjacent {
	BACKGROUND-IMAGE: url(theme/pipe.gif); PADDING-LEFT: 1px
}
.comma LI:after {
	PADDING-RIGHT: 1ex; CONTENT: ","
}
.comma DD:after {
	PADDING-RIGHT: 1ex; CONTENT: ","
}
.comma LI + LI {
	MARGIN-RIGHT: 0px
}
.comma DT {
	MARGIN: 0px
}
.comma DD {
	MARGIN: 0px
}
.comma DD {
	DISPLAY: inline
}
.comma LI {
	DISPLAY: inline
}
.comma DT {
	MARGIN-RIGHT: 1em; _float: left
}
.comma A:hover {
	_color: #cc0000
}
.comma LI A {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); _zoom: 0; =
nurse: "$addTextToNode[44,after]"; _padding-right: 1ex
}
.comma DD A {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); _zoom: 0; =
nurse: "$addTextToNode[44,after]"; _padding-right: 1ex
}
[className~=3Dcomma] LI A {
	PADDING-RIGHT: 1ex; nurse: "$addTextToNode[44,after]"
}
[className~=3Dcomma] DD A {
	PADDING-RIGHT: 1ex; nurse: "$addTextToNode[44,after]"
}
.comma {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); nurse: =
"$getLastChild >$getDirectChild >$addStyleToNode[marginRight =
-1.5ex,runtime]"
}
.dash {
	MARGIN-TOP: 0px; PADDING-LEFT: 0px
}
.dash DT {
	MARGIN-BOTTOM: 0px; _margin-right: 0.5ex
}
.dash DD {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
.dash LI + LI:before {
	PADDING-RIGHT: 1ex; MARGIN-LEFT: 1ex; CONTENT: "-"
}
.dash DD:before {
	PADDING-RIGHT: 1ex; MARGIN-LEFT: 1ex; CONTENT: "-"
}
.dash {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); nurse: =
"$getDirectChild >$getAdjacent >$addTextToNode[-  ,before]"
}
.dash LI {
	_padding-right: 1ex; _padding-left: 0ex
}
.dash DD {
	_padding-right: 0; _padding-left: 0.5ex
}
[className~=3Ddash] LI {
	PADDING-LEFT: 0px; PADDING-RIGHT: 1ex
}
[className~=3Ddash] DD {
	PADDING-LEFT: 0.75ex; PADDING-RIGHT: 0px
}
.side-menu {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-SIZE: 0.91em; PADDING-TOP: 0px
}
HTML[lang=3Dja] .side-menu {
	FONT-SIZE: 1em
}
HTML.ja .side-menu {
	FONT-SIZE: 1em
}
.pod-body .side-menu DD {
	PADDING-BOTTOM: 8px; PADDING-RIGHT: 40px
}
.side-menu DT {
	LINE-HEIGHT: 1.25; TEXT-TRANSFORM: uppercase; MARGIN: 10px 0px 4px; =
COLOR: #111111; BORDER-TOP: #cbcbcb 1px solid; PADDING-TOP: 4px
}
.pod-body .side-menu DT {
	PADDING-TOP: 8px
}
.side-menu DD {
	TEXT-TRANSFORM: none; MARGIN: 4px 0px
}
.side-menu DL.treelist DT {
	BORDER-TOP: medium none; PADDING-TOP: 1px
}
.meta DT {
	MARGIN: 0px; FLOAT: left
}
.meta DD {
	MARGIN: 0px; FLOAT: left
}
.meta DT {
	WIDTH: 30%; CLEAR: both
}
.meta DD {
	WIDTH: 68%; WHITE-SPACE: normal
}
.flush-list-left {
	PADDING-LEFT: 0px; MARGIN-LEFT: 0px
}
.flush-list-left .first-child {
	PADDING-BOTTOM: 0.1em !important; PADDING-LEFT: 0px !important; =
PADDING-RIGHT: 1ex !important; PADDING-TOP: 0.1em !important
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Location: http://get.adobe.com/reader/screen/star.css

.star-rating {
	DISPLAY: block; BACKGROUND-REPEAT: repeat-x; HEIGHT: 16px
}
.star-rating .star {
	DISPLAY: block; BACKGROUND-REPEAT: repeat-x; HEIGHT: 16px
}
.star-rating {
	BACKGROUND-IMAGE: url(star/starOff.gif)
}
.star {
	BACKGROUND-IMAGE: url(star/star.gif)
}
.st0 {
	WIDTH: 0px
}
.st1 {
	WIDTH: 19px
}
.st2 {
	WIDTH: 38px
}
.st3 {
	WIDTH: 57px
}
.st4 {
	WIDTH: 76px
}
.st5 {
	WIDTH: 95px
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/screen/common.css

HTML {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
BODY {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
BODY {
	POSITION: relative; WIDTH: 100%; FONT: 75%/1 Arial, Helvetica, =
sans-serif; HEIGHT: 100%; COLOR: #333; TOP: 0px; LEFT: 0px
}
DIV[id=3D'layoutLogic'] {
	MIN-HEIGHT: 1em; CLEAR: both
}
BODY DIV {
	_height: 1em
}
BODY FORM {
	_height: 1em
}
BODY * DIV {
	_height: auto
}
IMG {
	BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: =
0px
}
OBJECT {
	POSITION: relative
}
#flash-pixel {
	DISPLAY: none
}
.replace-text {
	TEXT-INDENT: -1000%; DISPLAY: block; OVERFLOW: hidden
}
.camel-case {
	WORD-SPACING: -0.5ex
}
P {
	PADDING-BOTTOM: 1px; LINE-HEIGHT: 1.462; MARGIN-TOP: 0px; =
MARGIN-BOTTOM: 1.2em; FONT-SIZE: 1.08em
}
H4 IMG {
	VERTICAL-ALIGN: middle
}
P IMG {
	VERTICAL-ALIGN: middle
}
H1 {
	FONT-WEIGHT: normal
}
H2 {
	FONT-WEIGHT: normal
}
H3 {
	LINE-HEIGHT: 1.31
}
H4 {
	LINE-HEIGHT: 1.31
}
H5 {
	LINE-HEIGHT: 1.31
}
H2 {
	LINE-HEIGHT: 1.2em; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.5em; FONT-SIZE: =
1.66em
}
H3 {
	LINE-HEIGHT: 1.455; TEXT-TRANSFORM: uppercase; FONT-SIZE: 0.91em
}
H4 {
	COLOR: #111; FONT-SIZE: 1.08em
}
H5 {
	FONT-SIZE: 1em
}
H4 {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
H5 {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
.txtleft {
	TEXT-ALIGN: left
}
.txtright {
	TEXT-ALIGN: right
}
.txtcenter {
	TEXT-ALIGN: center
}
A {
	COLOR: #004477; TEXT-DECORATION: none
}
A:hover {
	TEXT-DECORATION: underline
}
A.off {
	COLOR: #588cb8
}
A:visited {
	COLOR: #588cb8
}
A.on {
	COLOR: #004477
}
A:hover {
	COLOR: #004477
}
A:hover:visited {
	COLOR: #004477
}
A.noHover:hover {
	TEXT-DECORATION: none
}
.noHover A:hover {
	TEXT-DECORATION: none
}
A .mask-a {
	COLOR: #888888
}
A:hover .mask-a {
	COLOR: #888888
}
.user {
	COLOR: #f60
}
.user A {
	COLOR: #f60
}
.author {
	COLOR: #f60
}
.editable A {
	PADDING-BOTTOM: 2px; BACKGROUND-COLOR: #def; PADDING-LEFT: 2px; =
PADDING-RIGHT: 2px; MARGIN-RIGHT: 3px; PADDING-TOP: 2px
}
A.search-term {
	BACKGROUND-COLOR: #fff; COLOR: #000000
}
A.search-term:visited {
	BACKGROUND-COLOR: #fff; COLOR: #000000
}
A.search-term:hover {
	BACKGROUND-COLOR: #fff; COLOR: #000000
}
.unlink {
	COLOR: #000; TEXT-DECORATION: none
}
.unlink:link {
	COLOR: #000; TEXT-DECORATION: none
}
.unlink:visited {
	COLOR: #000; TEXT-DECORATION: none
}
.unlink:hover {
	COLOR: #000; TEXT-DECORATION: none
}
.unlink:hover:visited {
	COLOR: #000; TEXT-DECORATION: none
}
.nav-up {
	POSITION: relative; BACKGROUND: url(icon/ascend.gif) no-repeat right =
top; HEIGHT: 25px; TOP: 0px; LEFT: 0px
}
.nav-up A {
	POSITION: absolute; TEXT-INDENT: 16px; WIDTH: 16px; DISPLAY: block; =
HEIGHT: 16px; OVERFLOW: hidden; TOP: 0px; RIGHT: 0px
}
.formBlock .nav-up A {
	TEXT-INDENT: -1000px
}
.border {
	BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-TOP: 1px =
solid; BORDER-RIGHT: 1px solid
}
IMG.border {
	BORDER-BOTTOM-COLOR: #999999; BORDER-TOP-COLOR: #999999; =
BORDER-RIGHT-COLOR: #999999; BORDER-LEFT-COLOR: #999999
}
IMG.frame {
	BORDER-BOTTOM-COLOR: #424242; BORDER-TOP-COLOR: #424242; OUTLINE-COLOR: =
#ccc; BORDER-RIGHT-COLOR: #424242; BORDER-LEFT-COLOR: #424242
}
CODE {
	FONT-FAMILY: "Courier New", Courier, monospace
}
KBD {
	FONT-FAMILY: "Courier New", Courier, monospace
}
PRE {
	FONT-FAMILY: "Courier New", Courier, monospace
}
SAMP {
	FONT-FAMILY: "Courier New", Courier, monospace
}
HTML > BODY CODE {
	FONT-SIZE: 12px; FONT-WEIGHT: inherit
}
HTML > BODY PRE {
	FONT-SIZE: 12px; FONT-WEIGHT: inherit
}
HTML > BODY SAMP {
	FONT-SIZE: 12px; FONT-WEIGHT: inherit
}
HTML > BODY KBD {
	FONT-SIZE: 12px; FONT-WEIGHT: inherit
}
ABBR {
	BORDER-BOTTOM-STYLE: hidden; FONT-STYLE: normal
}
ADDRESS {
	BORDER-BOTTOM-STYLE: hidden; FONT-STYLE: normal
}
ACRONYM {
	BORDER-BOTTOM-STYLE: hidden; FONT-STYLE: normal
}
CITE {
	BORDER-BOTTOM-STYLE: hidden; FONT-STYLE: normal
}
ACRONYM {
	FONT-SIZE: 0.91em
}
CODE {
	COLOR: #000
}
PRE {
	COLOR: #000
}
PRE {
	LINE-HEIGHT: 1.333
}
CODE {
	BACKGROUND-COLOR: #e6f0fa
}
DEL {
	COLOR: #000
}
BLOCKQUOTE {
	MARGIN: 0px 0px 1.5em
}
BLOCKQUOTE {
	LINE-HEIGHT: 1.33
}
ADDRESS {
	LINE-HEIGHT: 1.33
}
BLOCKQUOTE.pullquote {
	PADDING-BOTTOM: 1.25em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: =
#333333; BORDER-TOP: #ccc 1px solid; PADDING-TOP: 1.25em
}
BLOCKQUOTE.pullquote SPAN.author {
	COLOR: #333
}
BLOCKQUOTE.pullquote P {
	MARGIN-BOTTOM: 0.5em; FONT-SIZE: 1.4em
}
BLOCKQUOTE.pullquote .caption {
	FONT-SIZE: 11px
}
.indent {
	MARGIN-LEFT: 12.5%
}
BLOCKQUOTE.indent {
	MARGIN-BOTTOM: 1.5em
}
ADDRESS {
	WIDTH: auto
}
ABBR {
	CURSOR: help
}
SUP {
	_margin-top: -.35em
}
*:first-child + HTML SUP {
	DISPLAY: inline-block
}
.new {
	POSITION: relative; DISPLAY: inline-block; COLOR: #aa2222; FONT-SIZE: =
0.91em; TOP: -0.5ex; FONT-WEIGHT: bold; _height: 1em; _display: inline
}
.caption {
	LINE-HEIGHT: 1.3; MARGIN-TOP: 0.8em; COLOR: #888; FONT-SIZE: 0.91em
}
P.caption {
	MARGIN-TOP: 0.5em
}
.required {
	COLOR: #cc0001
}
.achtung {
	COLOR: #aa2222
}
A.achtung:hover {
	COLOR: #aa2222
}
A.achtung:visited {
	COLOR: #aa2222
}
.call-action {
	FONT-WEIGHT: bold
}
.rating {
	FONT-WEIGHT: bold
}
.suggestion {
	FONT-WEIGHT: normal
}
.msg-promo {
	FONT-SIZE: 1.58em
}
.promoHeader {
	FONT-SIZE: 1.58em
}
.byline {
	FONT-SIZE: 0.91em
}
.footnote {
	COLOR: #888
}
.note {
	COLOR: #888
}
.suggestion {
	COLOR: #888
}
.stamp-fileinfo {
	COLOR: #888
}
SPAN.article-date {
	COLOR: #888
}
.stamp-date {
	COLOR: #888
}
.stamp-download {
	COLOR: #6c6c6c
}
.tag {
	BORDER-BOTTOM: #ddd 1px solid
}
.strikeout {
	TEXT-DECORATION: line-through
}
.intro {
	FONT-SIZE: 16px
}
.intro H2 {
	MARGIN-BOTTOM: 0.5ex; FONT-SIZE: 140%
}
.link-more:after {
	CONTENT: ' \203a'
}
.link-back:before {
	CONTENT: '\2039'; MARGIN-RIGHT: 0.5ex
}
.link-more {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); nurse: =
"$addTextToNode[ =9B,after]"
}
.link-back {
	BEHAVIOR: url(/ubi/template/identity/lib/style-nurse.htc); nurse: =
"$addTextToNode[=8B ,before]"
}
.static-messaging {
	BORDER-BOTTOM: #d3d3d3 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#d3d3d3 1px solid; PADDING-BOTTOM: 10px; MARGIN: 0px auto 1em; =
MIN-HEIGHT: 1em; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; BACKGROUND: =
#f5f7f7; BORDER-TOP: #d3d3d3 1px solid; BORDER-RIGHT: #d3d3d3 1px solid; =
PADDING-TOP: 5px; _height: 1em
}
.p1.static-messaging {
	BORDER-BOTTOM: medium none; TEXT-ALIGN: left; BORDER-LEFT: medium none; =
PADDING-BOTTOM: 0px; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; BORDER-TOP: medium none; BORDER-RIGHT: medium none; =
PADDING-TOP: 0px
}
.static-messaging.p1 .pod-body * {
	MARGIN-BOTTOM: 0px
}
.static-messaging.p1 .pod-body .icon {
	PADDING-LEFT: 26px
}
.download-button {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
BUTTON.callout-button {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
INPUT.callout-button {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
A.callout-button {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
BUTTON.callout-prominent {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
INPUT.callout-prominent {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
A.callout-prominent {
	BORDER-BOTTOM: #c78407 1px solid; BORDER-LEFT: #ca8405 1px solid; =
BACKGROUND-COLOR: #ffb11a; BACKGROUND-REPEAT: repeat-x; =
BACKGROUND-POSITION: left top; BORDER-TOP: #cf8700 1px solid; =
FONT-WEIGHT: normal; BORDER-RIGHT: #cc8503 1px solid; _background-color: =
#FFE066
}
BUTTON.callout-button {
	BACKGROUND-IMAGE: url(form/calloutbutton_bg.png)
}
INPUT.callout-button {
	BACKGROUND-IMAGE: url(form/calloutbutton_bg.png)
}
A.callout-button {
	BACKGROUND-IMAGE: url(form/calloutbutton_bg.png)
}
BUTTON.callout-prominent {
	BACKGROUND-IMAGE: url(form/calloutbutton_prominent_bg.png); =
_background-color: #FFAA00
}
INPUT.callout-prominent {
	BACKGROUND-IMAGE: url(form/calloutbutton_prominent_bg.png); =
_background-color: #FFAA00
}
A.callout-prominent {
	BACKGROUND-IMAGE: url(form/calloutbutton_prominent_bg.png); =
_background-color: #FFAA00
}
A.callout-prominent {
	PADDING-BOTTOM: 0.35em !important; PADDING-LEFT: 6.5ex !important; =
PADDING-RIGHT: 6.5ex !important; PADDING-TOP: 0.35em !important; =
_padding: .225em 8ex
}
INPUT.callout-prominent {
	PADDING-BOTTOM: 0.25em !important; PADDING-LEFT: 6.5ex !important; =
PADDING-RIGHT: 6.5ex !important; PADDING-TOP: 0.25em !important; =
_padding: .3em 6.5ex .15em
}
BUTTON.callout-prominent {
	PADDING-BOTTOM: 0.25em !important; PADDING-LEFT: 6.5ex !important; =
PADDING-RIGHT: 6.5ex !important; PADDING-TOP: 0.25em !important; =
_padding: .15em 8ex .25em
}
.download-button {
	ZOOM: 1; FONT-FAMILY: Arial, Helvetica, sans-serif; BACKGROUND: =
url(form/downloadbutton_bg.png) #ffc800 no-repeat left bottom; =
VERTICAL-ALIGN: middle; OVERFLOW: visible; CURSOR: pointer; FONT-WEIGHT: =
bold; _width: 1px; _white-space: nowrap; _cursor: hand
}
.download-button-disabled {
	BORDER-BOTTOM: #838383 1px solid; BORDER-LEFT: #838383 1px solid; =
BACKGROUND: url(form/downloadbutton_disabled_bg.png) #838383 no-repeat =
left bottom; BORDER-TOP: #838383 1px solid; BORDER-RIGHT: #838383 1px =
solid
}
.download-button-disabled {
	COLOR: #ffffff !important
}
.download-button-disabled:hover {
	COLOR: #ffffff !important
}
.download-button-disabled:visited {
	COLOR: #ffffff !important
}
.download-button-disabled:hover:visited {
	COLOR: #ffffff !important
}
A.download-button {
	PADDING-BOTTOM: 8px; PADDING-LEFT: 32px; PADDING-RIGHT: 18px; =
TEXT-DECORATION: none !important; PADDING-TOP: 7px; _padding: 7px 18px =
8px 32px
}
BUTTON.download-button {
	PADDING-BOTTOM: 8px; PADDING-LEFT: 32px; PADDING-RIGHT: 18px; =
PADDING-TOP: 8px; _padding: 9px 18px 8px 32px
}
P BUTTON.download-button {
	PADDING-BOTTOM: 7px; PADDING-LEFT: 32px; PADDING-RIGHT: 18px; =
PADDING-TOP: 5px; _padding: 6px 18px 5px 32px
}
P INPUT.download-button {
	PADDING-BOTTOM: 7px; PADDING-LEFT: 32px; PADDING-RIGHT: 18px; =
PADDING-TOP: 5px; _padding: 7px 18px 7px 32px
}
.download-button {
	COLOR: #202020
}
.download-button:hover {
	COLOR: #202020
}
.download-button:visited {
	COLOR: #202020
}
.download-button:hover:visited {
	COLOR: #202020
}
#adobe-media-player-tip {
	POSITION: relative; FONT-SIZE: 0.91em; TOP: 0.5em
}
#shockwave-player-tip {
	POSITION: relative; FONT-SIZE: 0.91em; TOP: 0.5em
}
#content-pocket .adobemediaplayer {
	PADDING-BOTTOM: 0px !important; MARGIN-TOP: -5px !important; =
MIN-HEIGHT: 20px; PADDING-LEFT: 24px !important; PADDING-RIGHT: 0px =
!important; DISPLAY: block; PADDING-TOP: 0px !important; _height: 20px
}
#content-pocket .shockwave {
	PADDING-BOTTOM: 0px !important; MARGIN-TOP: -5px !important; =
MIN-HEIGHT: 20px; PADDING-LEFT: 24px !important; PADDING-RIGHT: 0px =
!important; DISPLAY: block; PADDING-TOP: 0px !important; _height: 20px
}
#content-pocket .adobemediaplayer {
	BACKGROUND-IMAGE: url(icon/adobe_media_player_20x20.png)
}
#content-pocket .shockwave {
	BACKGROUND-IMAGE: url(icon/shockwave_player_20x20.png)
}
.licenseAgreement {
	BORDER-BOTTOM: #dadcdb 1px solid; BORDER-LEFT: #dadcdb 1px solid; =
PADDING-BOTTOM: 0.5em; MARGIN: 1em 0px; PADDING-LEFT: 0.5em; WIDTH: =
auto; PADDING-RIGHT: 0.5em; HEIGHT: 16em; OVERFLOW: auto; BORDER-TOP: =
#999 1px solid; BORDER-RIGHT: #abb1af 1px solid; PADDING-TOP: 0.5em
}
.stamp-fileinfo-fontsize {
	FONT-SIZE: 0.9em
}
.step-seperator {
	LINE-HEIGHT: 1.455; MARGIN-TOP: 1.2em; MARGIN-BOTTOM: 0px; COLOR: =
#000000; FONT-SIZE: 1.2em; BORDER-TOP: #b9b7b7 1px solid; FONT-WEIGHT: =
bold
}
.step-title {
	POSITION: relative; BACKGROUND-COLOR: #ffffff; PADDING-RIGHT: 0.4em; =
COLOR: #878787; TOP: -0.6em; LEFT: 0px
}
.prominant-box {
	BORDER-BOTTOM: #c7c7c7 1px solid; POSITION: relative; BORDER-LEFT: =
#c7c7c7 1px solid; PADDING-BOTTOM: 1em; MARGIN: 0px 0px 1em; =
PADDING-LEFT: 1em; WIDTH: auto; PADDING-RIGHT: 1em; BACKGROUND: =
url(/downloadcenter/images/features/prominent-yellowbg.png) #ffffcc =
repeat-x 0px 0px; HEIGHT: auto; BORDER-TOP: #c7c7c7 1px solid; =
BORDER-RIGHT: #c7c7c7 1px solid; PADDING-TOP: 1em
}
.prominant-box-maxheight300 {
	BORDER-BOTTOM: #c7c7c7 1px solid; POSITION: relative; BORDER-LEFT: =
#c7c7c7 1px solid; PADDING-BOTTOM: 1em; MARGIN: 0px 0px 1em; =
PADDING-LEFT: 1em; WIDTH: auto; PADDING-RIGHT: 1em; BACKGROUND: =
url(/downloadcenter/images/features/prominent-yellowbg_1X300.png) =
#ffffcc repeat-x 0px 0px; HEIGHT: auto; BORDER-TOP: #c7c7c7 1px solid; =
BORDER-RIGHT: #c7c7c7 1px solid; PADDING-TOP: 1em
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/screen.css?modules=

@import url( screen/icon.css );
@import url( screen/data.css );
@import url( screen/list.menu.css );
@import url( screen/star.css );
@import url( screen/common.css );
#content-header H1 {
	POSITION: relative; PADDING-BOTTOM: 16px; LINE-HEIGHT: normal; MARGIN: =
0px; PADDING-LEFT: 16px; PADDING-RIGHT: 24px; COLOR: #ffffff; FONT-SIZE: =
30px; TOP: 0px; FONT-WEIGHT: normal; PADDING-TOP: 28px; LEFT: 0px
}
#brand-label {
	POSITION: relative; PADDING-BOTTOM: 16px; LINE-HEIGHT: normal; MARGIN: =
0px; PADDING-LEFT: 16px; PADDING-RIGHT: 24px; COLOR: #ffffff; FONT-SIZE: =
30px; TOP: 0px; FONT-WEIGHT: normal; PADDING-TOP: 28px; LEFT: 0px
}
#accesslink {
	POSITION: absolute; LINE-HEIGHT: 1; TEXT-INDENT: -9999px; WIDTH: 0px; =
DISPLAY: block; HEIGHT: 0px; OVERFLOW: hidden; TOP: 0px; LEFT: 0px
}
BR.clear-both {
	DISPLAY: block; FONT: 1px/1px monospace
}
DIV.clear-both {
	DISPLAY: block; FONT: 1px/1px monospace
}
BR.clear-left {
	DISPLAY: block; FONT: 1px/1px monospace
}
DIV.clear-left {
	DISPLAY: block; FONT: 1px/1px monospace
}
.clear-both {
	CLEAR: both
}
.clear-left {
	CLEAR: left
}
.clear-both:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.clear-after:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.clear-after {
	MIN-HEIGHT: 1px; _height: 1%
}
.clip-top {
	MARGIN-TOP: 0px
}
.clip-bottom {
	MARGIN-BOTTOM: 0px
}
UL.clip-bottom {
	MARGIN-BOTTOM: 0px !important
}
.clip-sides {
	MARGIN-LEFT: -16px; MARGIN-RIGHT: -16px
}
.clip-sides IMG {
	_position: relative
}
.clip-left {
	MARGIN-LEFT: -16px
}
.clip-right {
	MARGIN-RIGHT: -16px
}
.compact > * {
	FLOAT: left
}
.compact:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.compact {
	MIN-HEIGHT: 1px; _height: 1em
}
.compact {
	PADDING-BOTTOM: 1px; _behavior: =
url(/lib/com.adobe/remedy/compactWsFix.htc)
}
.compact > P {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 1ex; PADDING-TOP: 0px
}
.compact > SPAN {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 1ex; PADDING-TOP: 0px
}
DL.compact > DD {
	MARGIN-LEFT: 0px
}
UL.compact LI {
	_display: inline; _float: left
}
OL.compact LI {
	_display: inline; _float: left
}
DL.compact DD {
	_display: inline; _float: left
}
DIV.compact P {
	_display: inline; _float: left
}
DL.compact * DD OL.compact * LI {
	_display: block; _float: none
}
UL.compact * LI {
	_display: block; _float: none
}
DIV.compact * P {
	_display: block; _float: none
}
DL.compact DD {
	_margin-left: 0
}
DIV.compact P {
	_margin-right: 1ex; _padding: 0; _margin-bottom: 0
}
H3.compact SPAN {
	_float: left; _margin-right: 1ex
}
H4.compact SPAN {
	_float: left; _margin-right: 1ex
}
H3.compact SPAN SPAN {
	_float: none; _margin-right: 0
}
H4.compact SPAN SPAN {
	_float: none; _margin-right: 0
}
A.max {
	DISPLAY: block
}
SPAN.max {
	DISPLAY: block
}
.max {
	WIDTH: 100%; TEXT-OVERFLOW: ellipsis; OVERFLOW: hidden
}
INPUT.max {
	WIDTH: 100%; _behavior: url(/lib/com.adobe/remedy/maxCalcFix.htc); =
-moz-box-sizing: border-box
}
TEXTAREA.max {
	WIDTH: 100%; _behavior: url(/lib/com.adobe/remedy/maxCalcFix.htc); =
-moz-box-sizing: border-box
}
TEXTAREA.max {
	OVERFLOW: auto
}
SELECT.max {
	WIDTH: 100%; BEHAVIOR: url(/lib/com.adobe/remedy/revealOverflowX.htc); =
_behavior: url(/lib/com.adobe/remedy/revealOverflowX.htc) =
url(/lib/com.adobe/remedy/maxCalcFix.htc)
}
PRE {
	PADDING-BOTTOM: 1.5em; OVERFLOW-X: auto; BACKGROUND-COLOR: #f0f6fc; =
MARGIN: 1em 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
WHITE-SPACE: pre; PADDING-TOP: 1em; _width: 100%
}
blockcode {
	PADDING-BOTTOM: 1.5em; OVERFLOW-X: auto; BACKGROUND-COLOR: #f0f6fc; =
MARGIN: 1em 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
WHITE-SPACE: pre; PADDING-TOP: 1em; _width: 100%
}
HTML > BODY PRE {
	OVERFLOW: auto
}
blockcode {
	OVERFLOW: auto
}
PRE STRONG {
	BACKGROUND-COLOR: #f9f9b7; FONT-WEIGHT: normal
}
blockcode STRONG {
	BACKGROUND-COLOR: #f9f9b7; FONT-WEIGHT: normal
}
.css-comment {
	COLOR: #999
}
.css-import {
	COLOR: #099
}
.css-important {
	COLOR: #f00
}
.css-media {
	COLOR: #900
}
.css-property {
	COLOR: #009
}
.css-selector {
	COLOR: #f0f
}
.css-string {
	COLOR: #060
}
.css-value {
	COLOR: #00f
}
.css-display {
	COLOR: #990099
}
.css-image {
	COLOR: #906
}
P.pullout-item IMG {
	MARGIN-RIGHT: 0px
}
.pullout-left {
	_height: 1em; -moz-column-count: 0
}
.pullout-right {
	_height: 1em; -moz-column-count: 0
}
.pullout-left {
=09
}
.pullout-left:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.pullout-right:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.pullout-item {
	_height: 100%
}
.pullout-left .pullout-item {
	FLOAT: left; MARGIN-LEFT: 0px !important; _margin-right: 6px; =
_margin-bottom: 100%
}
.left-wrap .pullout-item {
	_height: auto; _margin-bottom: auto
}
.right-wrap .pullout-item {
	_height: auto; _margin-bottom: auto
}
.right-wrap .pullout-item {
	CLEAR: right
}
.left-wrap .pullout-item {
	CLEAR: left
}
.pullout-left .compact {
	DISPLAY: table
}
.pullout-right .pullout-item {
	FLOAT: right; MARGIN-RIGHT: 0px !important; _margin-left: 6px
}
DIV.left-wrap > .pullout-item {
	MARGIN-RIGHT: 10px
}
.pullout-left > SPAN {
	DISPLAY: block
}
*.pullout-left SPAN {
	_display: block
}
*.pullout-left *.pullout-left SPAN {
	_display: block
}
*.pullout-left *.pullout-left * SPAN {
	_display: inline
}
*.pullout-left * SPAN {
	_display: inline
}
DIV.right-wrap > .pullout-item {
	MARGIN-LEFT: 10px
}
A.pullout-left {
	DISPLAY: block; _cursor: hand
}
A.pullout-right {
	DISPLAY: block; _cursor: hand
}
DIV.pullout-wrap > * {
	MARGIN-LEFT: 0px
}
DIV.left-wrap > .pullout-item {
	MARGIN-RIGHT: 10px
}
DIV.right-wrap > .pullout-item {
	MARGIN-LEFT: 10px
}
.left-360 .pullout-item {
	WIDTH: 360px
}
.right-360 .pullout-item {
	WIDTH: 360px
}
.left-270 .pullout-item {
	WIDTH: 270px
}
.right-270 .pullout-item {
	WIDTH: 270px
}
.left-190 .pullout-item {
	WIDTH: 190px
}
.right-190 .pullout-item {
	WIDTH: 190px
}
.left-190 .pullout-item SPAN {
	RIGHT: 0px
}
.right-190 .pullout-item SPAN {
	RIGHT: 0px
}
.left-180 .pullout-item {
	WIDTH: 180px
}
.right-180 .pullout-item {
	WIDTH: 180px
}
.left-155 .pullout-item {
	WIDTH: 155px
}
.right-155 .pullout-item {
	WIDTH: 155px
}
.left-140 .pullout-item {
	WIDTH: 140px
}
.right-140 .pullout-item {
	WIDTH: 140px
}
.left-125 .pullout-item {
	WIDTH: 125px
}
.right-125 .pullout-item {
	WIDTH: 125px
}
.left-112 .pullout-item {
	WIDTH: 112px
}
.right-112 .pullout-item {
	WIDTH: 112px
}
.left-100 .pullout-item {
	WIDTH: 100px
}
.right-100 .pullout-item {
	WIDTH: 100px
}
.left-90 .pullout-item {
	WIDTH: 90px
}
.right-90 .pullout-item {
	WIDTH: 90px
}
.left-80 .pullout-item {
	WIDTH: 80px
}
.right-80 .pullout-item {
	WIDTH: 80px
}
.left-72 .pullout-item {
	WIDTH: 72px
}
.right-72 .pullout-item {
	WIDTH: 72px
}
.left-71 .pullout-item {
	WIDTH: 71px
}
.right-71 .pullout-item {
	WIDTH: 71px
}
.left-51 .pullout-item {
	WIDTH: 51px
}
.right-51 .pullout-item {
	WIDTH: 51px
}
.left-60 .pullout-item {
	WIDTH: 60px
}
.right-60 .pullout-item {
	WIDTH: 60px
}
.left-50 .pullout-item {
	WIDTH: 50px
}
.right-50 .pullout-item {
	WIDTH: 50px
}
.left-40 .pullout-item {
	WIDTH: 40px
}
.right-40 .pullout-item {
	WIDTH: 40px
}
.left-20 .pullout-item {
	WIDTH: 20px
}
.right-20 .pullout-item {
	WIDTH: 20px
}
.left-16 .pullout-item {
	WIDTH: 16px
}
.right-16 .pullout-item {
	WIDTH: 16px
}
.left-16 .pullout-item {
	MARGIN-RIGHT: 0px
}
.right-16 .pullout-item {
	MARGIN-LEFT: 0px
}
.left-360 > * {
	MARGIN-LEFT: 370px !important
}
.right-360 > * {
	MARGIN-RIGHT: 370px !important
}
.left-270 > * {
	MARGIN-LEFT: 280px !important
}
.right-270 > * {
	MARGIN-RIGHT: 280px !important
}
.left-190 > * {
	MARGIN-LEFT: 200px !important
}
.right-190 > * {
	MARGIN-RIGHT: 200px !important
}
.left-180 > * {
	MARGIN-LEFT: 190px !important
}
.right-180 > * {
	MARGIN-RIGHT: 190px !important
}
.left-155 > * {
	MARGIN-LEFT: 165px !important
}
.right-155 > * {
	MARGIN-RIGHT: 165px !important
}
.left-140 > * {
	MARGIN-LEFT: 150px !important
}
.right-140 > * {
	MARGIN-RIGHT: 150px !important
}
.left-125 > * {
	MARGIN-LEFT: 135px !important
}
.right-125 > * {
	MARGIN-RIGHT: 135px !important
}
.left-112 > * {
	MARGIN-LEFT: 122px !important
}
.right-112 > * {
	MARGIN-RIGHT: 122px !important
}
.left-100 > * {
	MARGIN-LEFT: 110px !important
}
.right-100 > * {
	MARGIN-RIGHT: 110px !important
}
.left-90 > * {
	MARGIN-LEFT: 100px !important
}
.right-90 > * {
	MARGIN-RIGHT: 100px !important
}
.left-80 > * {
	MARGIN-LEFT: 90px !important
}
.right-80 > * {
	MARGIN-RIGHT: 90px !important
}
.left-72 > * {
	MARGIN-LEFT: 82px !important
}
.right-72 > * {
	MARGIN-RIGHT: 82px !important
}
.left-71 > * {
	MARGIN-LEFT: 81px !important
}
.right-71 > * {
	MARGIN-RIGHT: 81px !important
}
.left-60 > * {
	MARGIN-LEFT: 70px !important
}
.right-60 > * {
	MARGIN-RIGHT: 70px !important
}
.left-50 > * {
	MARGIN-LEFT: 60px !important
}
.right-50 > * {
	MARGIN-RIGHT: 60px !important
}
.left-51 > * {
	MARGIN-LEFT: 61px !important
}
.right-51 > * {
	MARGIN-RIGHT: 61px !important
}
.left-40 > * {
	MARGIN-LEFT: 50px !important
}
.right-40 > * {
	MARGIN-RIGHT: 50px !important
}
.left-20 > * {
	MARGIN-LEFT: 28px !important
}
.right-20 > * {
	MARGIN-RIGHT: 28px !important
}
.left-16 > * {
	MARGIN-LEFT: 20px !important
}
.right-16 > * {
	MARGIN-RIGHT: 20px !important
}
.formBlock {
	PADDING-BOTTOM: 12px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; PADDING-TOP: =
12px
}
.inputBlock {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
.inputBlock P {
	MARGIN-BOTTOM: 6px
}
.inputBlock DT {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px; FONT-WEIGHT: bold
}
.inputBlock DD {
	MARGIN-BOTTOM: 6px; MARGIN-LEFT: 0px
}
.inputBlock .inputGroup {
	MARGIN-LEFT: 0px
}
.inputGroup {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; PADDING-LEFT: 0px; =
MARGIN-BOTTOM: 6px
}
.inputGroup LI {
	PADDING-BOTTOM: 0px; PADDING-RIGHT: 1ex; MARGIN-BOTTOM: 0px
}
.inputGroup .left {
	FONT-WEIGHT: normal
}
.inputGroup .caption {
	MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0px
}
.pullout-left > * > .inputGroup {
	DISPLAY: table; MARGIN-BOTTOM: 0px
}
.buttonBlock {
	DISPLAY: block
}
DIV.buttonBlock {
	MARGIN-TOP: 2em; MARGIN-BOTTOM: 0px
}
SPAN.buttonBlock {
	MARGIN-TOP: 1em
}
INPUT {
	VERTICAL-ALIGN: middle
}
BUTTON {
	VERTICAL-ALIGN: middle
}
SELECT {
	VERTICAL-ALIGN: middle
}
LABEL.top {
	DISPLAY: block; MARGIN-BOTTOM: 6px; FONT-WEIGHT: bold
}
LABEL.left {
	DISPLAY: inline-block; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; =
MARGIN-RIGHT: 1ex; _height: 1em
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-FAMILY: inherit; FONT-SIZE: 100%; PADDING-TOP: =
0px
}
.disabled {
	FILTER: alpha(opacity=3D50); ZOOM: 100%; _height: 1em; -moz-opacity: =
0.5; -khtml-opacity: 0.5; opacity: 0.5
}
.required {
	COLOR: #c00
}
.button {
	BORDER-BOTTOM: #a5a5a5 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#ababab 1px solid; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; ZOOM: 100%; FONT-FAMILY: inherit; BACKGROUND: =
url(form/element_bg.png) #fbfbfb repeat-x left bottom; VERTICAL-ALIGN: =
middle; OVERFLOW: visible; BORDER-TOP: #b3b3b3 1px solid; CURSOR: =
pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #aeaeae 1px solid; =
PADDING-TOP: 0.2em; _padding: .1em 2ex; _width: 1px; _white-space: =
nowrap; _cursor: hand
}
.button-mute {
	FONT-WEIGHT: normal !important
}
.button-action {
	FONT-WEIGHT: bold !important
}
.button {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:hover:visited {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:hover {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:visited {
	COLOR: #202020; TEXT-DECORATION: none
}
.button {
=09
}
* + .button {
	MARGIN-LEFT: 1ex
}
.button-50 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-70 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-90 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-100 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-120 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-150 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-180 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-50 {
	WIDTH: 50px
}
.button-70 {
	WIDTH: 70px
}
.button-90 {
	WIDTH: 90px
}
.button-100 {
	WIDTH: 100px
}
.button-120 {
	WIDTH: 120px
}
.button-150 {
	WIDTH: 150px
}
.button-180 {
	WIDTH: 180px
}
INPUT.button {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 1.6ex; PADDING-RIGHT: 1.6ex; =
PADDING-TOP: 0.15em; _height: 23px; _padding: 2px 2ex 0; _line-height: =
1.25em
}
BUTTON.button {
	PADDING-BOTTOM: 0.15em; PADDING-LEFT: 1.6ex; PADDING-RIGHT: 1.6ex; =
PADDING-TOP: 0.1em; _height: 23px; _padding: 1px 2ex 0; _line-height: =
1.3em
}
A.button {
	WHITE-SPACE: nowrap; TEXT-DECORATION: none
}
.inputBlock .caption {
	MARGIN-TOP: 0.2em; DISPLAY: block
}
INPUT {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
SELECT {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
TEXTAREA {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
BUTTON {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
.textfield {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
TEXTAREA {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
SELECT[size] {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
SELECT {
	BORDER-BOTTOM: #6f7777 thin solid; BORDER-LEFT: #acb5b5 thin solid; =
LINE-HEIGHT: 1.15em; BACKGROUND-COLOR: #fefefe; BORDER-TOP: #c4cccc thin =
solid; BORDER-RIGHT: #acb5b5 thin solid
}
SELECT OPTION {
	PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; =
PADDING-TOP: 1px
}
SELECT[size] {
	BACKGROUND-COLOR: #fff !important
}
.textfield:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.textfield:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT[size]:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT[size]:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
TEXTAREA:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
TEXTAREA:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT:hover {
	BORDER-BOTTOM-COLOR: #459455; BORDER-TOP-COLOR: #6d5; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT:focus {
	BORDER-BOTTOM-COLOR: #459455; BORDER-TOP-COLOR: #6d5; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.textfield:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
SELECT:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
TEXTAREA:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
.search-form {
	POSITION: relative; BACKGROUND-COLOR: #e0e0e0; _width: 100%
}
#content-body .search-form FIELDSET {
	WIDTH: 90%; MARGIN-BOTTOM: 1em
}
#content-body .pod-body .search-form {
	PADDING-BOTTOM: 8px; MARGIN: 0px -8px; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; PADDING-TOP: 8px
}
.search-form FIELDSET {
	PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: =
invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 0px; =
BACKGROUND: #fff; FLOAT: left; PADDING-TOP: 0px
}
.search-form .textfield {
	PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: =
invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 0px; =
BACKGROUND: #fff; FLOAT: left; PADDING-TOP: 0px
}
.search-form FIELDSET {
	Z-INDEX: 99; BORDER-BOTTOM: #939393 1px solid; POSITION: relative; =
BORDER-LEFT: #939393 1px solid; WIDTH: 99%; HEIGHT: 30px; BORDER-TOP: =
#939393 1px solid; BORDER-RIGHT: #939393 1px solid
}
.search-form .textfield {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; WIDTH: 94%; =
HEIGHT: 100%; FONT-SIZE: 2em; BORDER-TOP: medium none; BORDER-RIGHT: =
medium none; _height: 28px; _overflow: hidden
}
.search-form BUTTON {
	BORDER-BOTTOM: medium none; FILTER: =
progid:DXImageTransform.Microsoft.dropshadow(OffX=3D0, OffY=3D0); =
BORDER-LEFT: medium none; MARGIN-TOP: -1px; WIDTH: 32px; BACKGROUND: =
url(form/search.png) no-repeat left top; FLOAT: right; HEIGHT: 32px; =
FONT-SIZE: 1px; BORDER-TOP: medium none; MARGIN-RIGHT: -1px; =
BORDER-RIGHT: medium none; _margin-bottom: -2px; -webkit-box-shadow: =
none
}
*:first-child + HTML #search-for A:active {
	POSITION: relative; ZOOM: 1
}
*:first-child + HTML #search-for A:focus {
	POSITION: relative; ZOOM: 1
}
.pseudo-input:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.search-button:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.search-button:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.error {
	COLOR: #cc0001
}
.error-block {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 6px; BACKGROUND-COLOR: #ffffcb; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; MARGIN-BOTTOM: 1em; COLOR: #f00; BORDER-TOP: #ccc =
1px solid; BORDER-RIGHT: #ccc 1px solid; PADDING-TOP: 6px; _zoom: 100%
}
.error-block * {
	_cursor: auto
}
.error-block A {
	COLOR: #f00
}
.error-block A:visited {
	COLOR: #f00
}
.error-block A:hover {
	COLOR: #f00
}
.error-block .alert {
	FONT-WEIGHT: bold
}
.error-block P {
	MARGIN: 0px
}
.error-block UL {
	MARGIN: 0px
}
.error-bottom {
	FONT-SIZE: 0.91em; PADDING-TOP: 3px
}
.price {
	COLOR: #992222
}
.price:link {
	COLOR: #992222
}
.price:visited {
	COLOR: #992222
}
.price:hover {
	COLOR: #992222
}
.price:hover:visited {
	COLOR: #992222
}
.price A {
	COLOR: #992222
}
.price A:link {
	COLOR: #992222
}
.price A:visited {
	COLOR: #992222
}
.price A:hover {
	COLOR: #992222
}
.price A:hover:visited {
	COLOR: #992222
}
.price {
	MIN-HEIGHT: 1em; WHITE-SPACE: nowrap; _height: 1em
}
A .price {
	CURSOR: hand
}
SPAN[className~=3Dprice] {
	DISPLAY: inline-block
}
A[className~=3Dprice] {
	DISPLAY: inline-block
}
.price-lrg {
	FONT-SIZE: 1.41em; FONT-WEIGHT: bold
}
.feature-price {
	COLOR: #333
}
.feature-price:link {
	COLOR: #333
}
.feature-price:visited {
	COLOR: #333
}
.feature-price:hover {
	COLOR: #333
}
.feature-price:hover:visited {
	COLOR: #333
}
.feature-price A {
	COLOR: #333
}
.feature-price A:link {
	COLOR: #333
}
.feature-price A:visited {
	COLOR: #333
}
.feature-price A:hover {
	COLOR: #333
}
.feature-price A:hover:visited {
	COLOR: #333
}
.columns-5-ABCDE-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-D {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-E {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABC-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABC-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABcc-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBC-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBC-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBcc-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaB-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaBB-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-AAbb-AA {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-Abb-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-AB-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaaBB-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBc-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBcc-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBccc-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBccc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-D {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-ABC-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-ABcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBC-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-Abb-bb {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaBB-BB {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AAbb-bb {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaB-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AB-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaaBB-BB {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaaBc-c {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaaBcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBccc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AB-A {
	WIDTH: 48%
}
.columns-2-AB-B {
	WIDTH: 48%
}
.columns-2-Abb-A {
	WIDTH: 64%
}
.columns-2-aaB-B {
	WIDTH: 64%
}
.columns-2-Abb-bb {
	WIDTH: 32%
}
.columns-2-aaB-aa {
	WIDTH: 32%
}
.columns-2-aaaBB-aaa {
	WIDTH: 13%
}
.columns-2-aaaBB-BB {
	WIDTH: 85%
}
.columns-3-ABC-A {
	WIDTH: 30%
}
.columns-3-ABC-B {
	WIDTH: 30%
}
.columns-3-ABC-C {
	WIDTH: 30%
}
.columns-3-ABC-B {
	MARGIN-LEFT: 5%
}
.columns-3-aaaBc-aaa {
	WIDTH: 10%
}
.columns-3-aaaBc-B {
	WIDTH: 63%
}
.columns-3-aaaBc-c {
	WIDTH: 25%
}
.columns-3-ABcc-A {
	WIDTH: 34%
}
.columns-3-ABcc-B {
	WIDTH: 34%
}
.columns-3-aaBC-B {
	WIDTH: 34%
}
.columns-3-aaBC-C {
	WIDTH: 34%
}
.columns-3-ABcc-cc {
	WIDTH: 26%
}
.columns-3-aaBC-aa {
	WIDTH: 26%
}
.columns-3-aaBcc-aa {
	WIDTH: 26%
}
.columns-3-aaBcc-cc {
	WIDTH: 26%
}
.columns-3-ABcc-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBC-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBcc-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBcc-B {
	WIDTH: 42%
}
.columns-4-ABCD-A {
	WIDTH: 22%
}
.columns-4-ABCD-B {
	WIDTH: 22%
}
.columns-4-ABCD-C {
	WIDTH: 22%
}
.columns-4-ABCD-D {
	WIDTH: 22%
}
.columns-4-ABCD-B {
	MARGIN-LEFT: 4%
}
.columns-4-ABCD-C {
	MARGIN-LEFT: 4%
}
.columns {
	ZOOM: 100%
}
[class~=3Dcolumns] {
	DISPLAY: table-row
}
.columns > [class|=3Dcolumns] {
	POSITION: static; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 12px; =
DISPLAY: table-cell; FLOAT: none; LEFT: 0px
}
[class~=3Dcolumns] > [class|=3Dcolumns-2-AB] {
	WIDTH: 50%
}
[class~=3Dcolumns] > [class*=3Dcolumns-2-AB] {
	WIDTH: 50%
}
[class~=3Dcolumns] > [class|=3Dcolumns-3-ABC] {
	WIDTH: 33%
}
[class~=3Dcolumns] > [class*=3Dcolumns-3-ABC] {
	WIDTH: 33%
}
[class~=3Dcolumns] > [class|=3Dcolumns-4-ABCD] {
	WIDTH: 25%
}
[class~=3Dcolumns] > [class*=3Dcolumns-4-ABCD] {
	WIDTH: 25%
}
DT {
	LINE-HEIGHT: 1.25
}
DD {
	LINE-HEIGHT: 1.25
}
LI {
	LINE-HEIGHT: 1.25
}
OL {
	FONT-SIZE: 1em
}
LI {
	FONT-SIZE: 1em
}
LI OL {
	FONT-SIZE: 1em
}
LI UL {
	FONT-SIZE: 1em
}
UL {
	LIST-STYLE-TYPE: disc; MARGIN-LEFT: 1ex
}
UL {
	MARGIN-TOP: 1em; PADDING-LEFT: 2.5ex; MARGIN-BOTTOM: 1.35em
}
OL {
	MARGIN-TOP: 1em; PADDING-LEFT: 2.5ex; MARGIN-BOTTOM: 1.35em
}
LI {
	PADDING-BOTTOM: 0.5em; LINE-HEIGHT: 1.25em
}
OL {
	LIST-STYLE-TYPE: decimal; MARGIN-LEFT: 3ex; OVERFLOW: visible; =
_padding-left: 6ex
}
OL OL {
	LIST-STYLE-TYPE: lower-alpha; MARGIN-LEFT: 0.5ex; _margin-left: 1.5ex
}
OL OL OL {
	LIST-STYLE-TYPE: lower-roman
}
LI OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.3ex
}
LI UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.3ex
}
LI P {
	MARGIN-BOTTOM: 0.5em
}
DT {
	LINE-HEIGHT: 1.5em
}
DD {
	LINE-HEIGHT: 1.5em
}
DT {
	MARGIN-TOP: 0.5em; MARGIN-BOTTOM: 1em; FONT-WEIGHT: bold
}
DL {
	MARGIN-BOTTOM: 1.5em
}
DD {
	MARGIN-BOTTOM: 1.5em
}
DD {
	MARGIN-LEFT: 16px
}
.pullout-left DD {
	_margin-left: 0px
}
.scroll-list {
	BORDER-BOTTOM: #999 1px solid; BORDER-LEFT: #999 1px solid; OVERFLOW-Y: =
scroll; PADDING-LEFT: 4px; BACKGROUND: #fafafa; HEIGHT: 11em; =
BORDER-TOP: #999 1px solid; BORDER-RIGHT: #999 1px solid
}
.link-list {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: =
0px 0px 1em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: =
none; PADDING-TOP: 0px
}
.link-list > * {
	LINE-HEIGHT: 1.33em; MARGIN: 1px 1.5ex 1px 0px
}
.link-list > LI {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 2px
}
.link-list > DT {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 2px
}
.link-list > DD {
	PADDING-LEFT: 1.25ex
}
.link-list LI {
	_padding: 0.15em 0 0.2em
}
.link-list DT {
	_padding: 0.15em 0 0.2em
}
.link-list DD {
	_padding-left: 1.25ex
}
.link-list LI {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.link-list DT {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.link-list DD {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.button-list > LI {
	LINE-HEIGHT: 1.5em; MARGIN: 4px 1.5ex 4px 0px; FONT-SIZE: 1.08em; =
PADDING-TOP: 0px
}
.tags LI {
	MARGIN-RIGHT: 10px
}
.tag {
	MARGIN-BOTTOM: 0.5em
}
.nomarker {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
.tag-group {
	WHITE-SPACE: nowrap
}
.tag-box {
	POSITION: relative; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #888; =
PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: #fff; MARGIN-LEFT: 1px; =
PADDING-TOP: 0px
}
.tag-text {
	TEXT-TRANSFORM: uppercase; WHITE-SPACE: nowrap; FONT-SIZE: 11px; =
FONT-WEIGHT: bold
}
.tag-button {
	POSITION: relative; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: #468; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: =
#ffffff; CURSOR: pointer; PADDING-TOP: 0px
}
.tag-button:link {
	POSITION: relative; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: #468; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: =
#ffffff; CURSOR: pointer; PADDING-TOP: 0px
}
.tag-button:visited {
	POSITION: relative; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: #468; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: =
#ffffff; CURSOR: pointer; PADDING-TOP: 0px
}
.tag-button:hover:visited {
	POSITION: relative; PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: #468; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: =
#ffffff; CURSOR: pointer; PADDING-TOP: 0px
}
.tag-button:hover {
	PADDING-BOTTOM: 0px; TEXT-TRANSFORM: uppercase; BACKGROUND-COLOR: #69b; =
PADDING-LEFT: 3px; PADDING-RIGHT: 3px; COLOR: #ffffff; TEXT-DECORATION: =
none; PADDING-TOP: 0px
}
.discover {
	_behavior: url(/lib/com.adobe/hover.htc)
}
.discover .pullout-left H3 {
	BORDER-BOTTOM: medium none; LINE-HEIGHT: 1.13em; TEXT-TRANSFORM: none =
!important; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px !important; FONT-SIZE: =
116.7% !important; FONT-WEIGHT: normal
}
.discover .pullout-left:hover H3 A:hover {
	TEXT-DECORATION: none !important
}
.discover .hover.pullout-left H3 A:hover {
	TEXT-DECORATION: none !important
}
.discover .pullout-left > * {
	MARGIN-BOTTOM: 0px
}
.discover .pullout-left H3 {
	_margin-bottom: 0
}
.discover .pullout-left UL {
	_margin-bottom: 0
}
.discover .note {
	DISPLAY: block
}
.discover .menu {
	MARGIN-TOP: 0.35em; PADDING-LEFT: 0px; VISIBILITY: hidden
}
.discover .menu LI:first-child {
	PADDING-LEFT: 0px
}
.discover .pullout-left {
	PADDING-BOTTOM: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px; =
MARGIN-BOTTOM: 0.35em; MARGIN-LEFT: -6px; PADDING-TOP: 6px; _zoom: 1; =
_padding-right: 2px; _position: relative
}
.discover .hover {
	BACKGROUND-COLOR: #eee; CURSOR: pointer
}
.discover .pullout-left:hover {
	BACKGROUND-COLOR: #eee; CURSOR: pointer
}
.discover .pullout-left LI {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; =
PADDING-TOP: 0px
}
.discover .hover .menu {
	VISIBILITY: visible
}
.discover .pullout-left:hover .menu {
	VISIBILITY: visible
}
.discover UL {
	_left: -5px; _position: relative
}
.discover .pullout-left .menu A {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; FONT-WEIGHT: bold; PADDING-TOP: 0px
}
.pod {
	BORDER-BOTTOM: #dddddd 1px solid; BORDER-LEFT: #dddddd 1px solid; =
BACKGROUND-COLOR: #eeeeee; MARGIN-BOTTOM: 1em; BORDER-TOP: #dddddd 1px =
solid; BORDER-RIGHT: #dddddd 1px solid; _zoom: 100%
}
.pod-title {
	PADDING-BOTTOM: 6px; LINE-HEIGHT: normal; TEXT-TRANSFORM: uppercase; =
BACKGROUND-COLOR: #dddddd; MARGIN: 0px; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; COLOR: #111111; FONT-SIZE: 0.91em; FONT-WEIGHT: =
bold; PADDING-TOP: 6px
}
.pod-body .pod-title {
	PADDING-BOTTOM: 6px; BACKGROUND-COLOR: transparent; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; MARGIN-BOTTOM: 0.5em; PADDING-TOP: 0px
}
.pod-body {
	PADDING-BOTTOM: 10px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; =
PADDING-TOP: 10px
}
HTML[lang=3Dja] .pod-title {
	FONT-SIZE: 100%
}
HTML[lang=3Dzh] .pod-title {
	FONT-SIZE: 100%
}
HTML[lang=3Dko] .pod-title {
	FONT-SIZE: 100%
}
.ja .pod-title {
	FONT-SIZE: 100%
}
.zh .pod-title {
	FONT-SIZE: 100%
}
.ko .pod-title {
	FONT-SIZE: 100%
}
.pod .pod-button {
	BACKGROUND-COLOR: #eeeeee
}
.pod .pod-button:link {
	BACKGROUND-COLOR: #eeeeee
}
.pod .pod-button:visited {
	BACKGROUND-COLOR: #eeeeee
}
.pod .pod-button:hover {
	BACKGROUND-COLOR: #ffffff
}
.pod .pod-button:hover:visited {
	BACKGROUND-COLOR: #ffffff
}
.d-dropdown {
	Z-INDEX: 2; POSITION: relative
}
.d-dropdown > LI {
	Z-INDEX: 2; POSITION: relative; TOP: 0px; LEFT: 0px
}
.d-dropdown LI {
	LIST-STYLE-TYPE: none; _top: 0; _left: 0; _position: relative
}
.d-dropdown LI LI {
	_position: static
}
.d-dropdown .dropdown-pane {
	Z-INDEX: 2; POSITION: absolute; MARGIN-TOP: 0px; DISPLAY: none; TOP: =
16px; LEFT: 0px
}
.d-dropdown LI.hover .dropdown-pane {
	DISPLAY: block
}
.d-dropdown LI.focus .dropdown-pane {
	DISPLAY: block
}
.d-dropdown > LI:hover .dropdown-pane {
	DISPLAY: block
}
.d-dropdown .dropdown-tab {
	DISPLAY: block; _zoom: 1; _display: inline
}
.d-dropdown .dropdown-pane > * {
	MARGIN: 0px
}
.d-dropdown .dropdown-pane DT {
	_margin: 0
}
.d-dropdown .dropdown-pane DD {
	_margin: 0
}
.d-dropdown .dropdown-pane LI {
	_margin: 0
}
.d-dropdown .dropdown-pane A {
	MARGIN: 0px 1px; -moz-outline: none
}
.d-dropdown .dropdown-tab {
	MIN-HEIGHT: 16px; _height: 16px
}
#depthpath {
	Z-INDEX: 1; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px 0px =
-24px; MIN-HEIGHT: 1em; PADDING-LEFT: 16px; PADDING-RIGHT: 0px; =
PADDING-TOP: 16px
}
#depthpath LI {
	FONT-SIZE: 0.91em
}
HTML[lang=3Dzh] #depthpath LI {
	FONT-SIZE: 1em
}
#depthpath * {
	LINE-HEIGHT: 1.3
}
#depthpath A {
	TEXT-DECORATION: none
}
#depthpath A:link {
	TEXT-DECORATION: none
}
#depthpath A:visited {
	TEXT-DECORATION: none
}
#depthpath {
	COLOR: #999
}
#depthpath A {
	COLOR: #999
}
#depthpath A:link {
	COLOR: #999
}
#depthpath A:visited {
	COLOR: #999
}
#depthpath A:hover {
	BACKGROUND-COLOR: #000; COLOR: #ddd
}
.dyn-clipmask {
	HEIGHT: 0px; VISIBILITY: hidden; OVERFLOW: hidden
}
#globalfooter {
	BORDER-BOTTOM: 0px; POSITION: relative; BORDER-LEFT: 0px; =
PADDING-BOTTOM: 10px; MARGIN: 0px; PADDING-LEFT: 16px; PADDING-RIGHT: =
22px; COLOR: #999; FONT-SIZE: 0.83em; BORDER-TOP: 0px; TOP: 0px; =
BORDER-RIGHT: 0px; PADDING-TOP: 10px; LEFT: 0px; _margin-bottom: -15px
}
#privacy {
	LINE-HEIGHT: 1.3
}
#copyright {
	LINE-HEIGHT: 1.3
}
#terms {
	LINE-HEIGHT: 1.3
}
#searchengine {
	LINE-HEIGHT: 1.3
}
#privacy {
	MARGIN-BOTTOM: 0.5em
}
#terms {
	MARGIN-BOTTOM: 0.5em
}
#terms {
	MARGIN-TOP: 0px
}
#copyright {
	MARGIN-BOTTOM: 0px
}
#globalfooter .menu {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 10px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#globalfooter .menu LI {
	LINE-HEIGHT: 1.3; FONT-WEIGHT: bold
}
#globalfooter .menu A {
	LINE-HEIGHT: 1.3; FONT-WEIGHT: bold
}
#globalfooter .menu A {
	PADDING-BOTTOM: 4px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; =
PADDING-TOP: 4px
}
#globalfooter A {
	COLOR: #bbb; TEXT-DECORATION: none
}
#globalfooter A:hover {
	COLOR: #bbb; TEXT-DECORATION: none
}
#globalfooter A:visited {
	COLOR: #bbb; TEXT-DECORATION: none
}
#globalfooter A:hover {
	BACKGROUND-COLOR: #000000; COLOR: #ddd !important
}
#globalfooter A:hover:visited {
	BACKGROUND-COLOR: #000000; COLOR: #ddd !important
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/print.css

* {
	BEHAVIOR: none !important
}
HTML {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
BODY {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
P {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
UL {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
OL {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
DL {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
LI {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
DT {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
DD {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H1 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H2 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H3 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H4 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H5 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
H6 {
	POSITION: static; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
HTML {
	BACKGROUND-COLOR: #ffffff; COLOR: #000000
}
TABLE {
	BORDER-SPACING: 0; BORDER-COLLAPSE: collapse
}
A {
	COLOR: inherit; TEXT-DECORATION: none; _color: #000000
}
A IMG {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: =
medium none; BORDER-RIGHT: medium none
}
UL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
OL {
	LIST-STYLE-TYPE: none; LIST-STYLE-IMAGE: none
}
BR.clear-both {
	DISPLAY: block; FONT: 1px/1px monospace
}
DIV.clear-both {
	DISPLAY: block; FONT: 1px/1px monospace
}
BR.clear-left {
	DISPLAY: block; FONT: 1px/1px monospace
}
DIV.clear-left {
	DISPLAY: block; FONT: 1px/1px monospace
}
.clear-both {
	CLEAR: both
}
.clear-left {
	CLEAR: left
}
.clear-both:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.clear-after:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.clear-after {
	MIN-HEIGHT: 1px; _height: 1%
}
PRE {
	PADDING-BOTTOM: 1.5em; OVERFLOW-X: auto; BACKGROUND-COLOR: #f0f6fc; =
MARGIN: 1em 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
WHITE-SPACE: pre; PADDING-TOP: 1em; _width: 100%
}
blockcode {
	PADDING-BOTTOM: 1.5em; OVERFLOW-X: auto; BACKGROUND-COLOR: #f0f6fc; =
MARGIN: 1em 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; =
WHITE-SPACE: pre; PADDING-TOP: 1em; _width: 100%
}
HTML > BODY PRE {
	OVERFLOW: auto
}
blockcode {
	OVERFLOW: auto
}
PRE STRONG {
	BACKGROUND-COLOR: #f9f9b7; FONT-WEIGHT: normal
}
blockcode STRONG {
	BACKGROUND-COLOR: #f9f9b7; FONT-WEIGHT: normal
}
.css-comment {
	COLOR: #999
}
.css-import {
	COLOR: #099
}
.css-important {
	COLOR: #f00
}
.css-media {
	COLOR: #900
}
.css-property {
	COLOR: #009
}
.css-selector {
	COLOR: #f0f
}
.css-string {
	COLOR: #060
}
.css-value {
	COLOR: #00f
}
.css-display {
	COLOR: #990099
}
.css-image {
	COLOR: #906
}
.compact > * {
	FLOAT: left
}
.compact:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.compact {
	MIN-HEIGHT: 1px; _height: 1em
}
.compact {
	PADDING-BOTTOM: 1px; _behavior: =
url(/lib/com.adobe/remedy/compactWsFix.htc)
}
.compact > P {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 1ex; PADDING-TOP: 0px
}
.compact > SPAN {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 0px; MARGIN-RIGHT: 1ex; PADDING-TOP: 0px
}
DL.compact > DD {
	MARGIN-LEFT: 0px
}
UL.compact LI {
	_display: inline; _float: left
}
OL.compact LI {
	_display: inline; _float: left
}
DL.compact DD {
	_display: inline; _float: left
}
DIV.compact P {
	_display: inline; _float: left
}
DL.compact * DD OL.compact * LI {
	_display: block; _float: none
}
UL.compact * LI {
	_display: block; _float: none
}
DIV.compact * P {
	_display: block; _float: none
}
DL.compact DD {
	_margin-left: 0
}
DIV.compact P {
	_margin-right: 1ex; _padding: 0; _margin-bottom: 0
}
H3.compact SPAN {
	_float: left; _margin-right: 1ex
}
H4.compact SPAN {
	_float: left; _margin-right: 1ex
}
H3.compact SPAN SPAN {
	_float: none; _margin-right: 0
}
H4.compact SPAN SPAN {
	_float: none; _margin-right: 0
}
.formBlock {
	PADDING-BOTTOM: 12px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; PADDING-TOP: =
12px
}
.inputBlock {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
.inputBlock P {
	MARGIN-BOTTOM: 6px
}
.inputBlock DT {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 6px; FONT-WEIGHT: bold
}
.inputBlock DD {
	MARGIN-BOTTOM: 6px; MARGIN-LEFT: 0px
}
.inputBlock .inputGroup {
	MARGIN-LEFT: 0px
}
.inputGroup {
	LIST-STYLE-TYPE: none; MARGIN-TOP: 0px; PADDING-LEFT: 0px; =
MARGIN-BOTTOM: 6px
}
.inputGroup LI {
	PADDING-BOTTOM: 0px; PADDING-RIGHT: 1ex; MARGIN-BOTTOM: 0px
}
.inputGroup .left {
	FONT-WEIGHT: normal
}
.inputGroup .caption {
	MARGIN-TOP: 0.25em; MARGIN-BOTTOM: 0px
}
.pullout-left > * > .inputGroup {
	DISPLAY: table; MARGIN-BOTTOM: 0px
}
.buttonBlock {
	DISPLAY: block
}
DIV.buttonBlock {
	MARGIN-TOP: 2em; MARGIN-BOTTOM: 0px
}
SPAN.buttonBlock {
	MARGIN-TOP: 1em
}
INPUT {
	VERTICAL-ALIGN: middle
}
BUTTON {
	VERTICAL-ALIGN: middle
}
SELECT {
	VERTICAL-ALIGN: middle
}
LABEL.top {
	DISPLAY: block; MARGIN-BOTTOM: 6px; FONT-WEIGHT: bold
}
LABEL.left {
	DISPLAY: inline-block; VERTICAL-ALIGN: middle; FONT-WEIGHT: bold; =
MARGIN-RIGHT: 1ex; _height: 1em
}
FORM {
	PADDING-BOTTOM: 0px; MARGIN: 0px 0px 1em; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; FONT-FAMILY: inherit; FONT-SIZE: 100%; PADDING-TOP: =
0px
}
.disabled {
	FILTER: alpha(opacity=3D50); ZOOM: 100%; _height: 1em; -moz-opacity: =
0.5; -khtml-opacity: 0.5; opacity: 0.5
}
.required {
	COLOR: #c00
}
.button {
	BORDER-BOTTOM: #a5a5a5 1px solid; TEXT-ALIGN: center; BORDER-LEFT: =
#ababab 1px solid; PADDING-BOTTOM: 0.2em; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; ZOOM: 100%; FONT-FAMILY: inherit; BACKGROUND: =
url(form/element_bg.png) #fbfbfb repeat-x left bottom; VERTICAL-ALIGN: =
middle; OVERFLOW: visible; BORDER-TOP: #b3b3b3 1px solid; CURSOR: =
pointer; FONT-WEIGHT: bold; BORDER-RIGHT: #aeaeae 1px solid; =
PADDING-TOP: 0.2em; _padding: .1em 2ex; _width: 1px; _white-space: =
nowrap; _cursor: hand
}
.button-mute {
	FONT-WEIGHT: normal !important
}
.button-action {
	FONT-WEIGHT: bold !important
}
.button {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:hover:visited {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:hover {
	COLOR: #202020; TEXT-DECORATION: none
}
.button:visited {
	COLOR: #202020; TEXT-DECORATION: none
}
.button {
=09
}
* + .button {
	MARGIN-LEFT: 1ex
}
.button-50 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-70 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-90 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-100 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-120 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-150 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-180 {
	POSITION: relative; PADDING-BOTTOM: 1px; PADDING-LEFT: 1.6ex; =
PADDING-RIGHT: 1.6ex; DISPLAY: inline-block; TOP: -1px; MARGIN-RIGHT: =
5px; PADDING-TOP: 0px
}
.button-50 {
	WIDTH: 50px
}
.button-70 {
	WIDTH: 70px
}
.button-90 {
	WIDTH: 90px
}
.button-100 {
	WIDTH: 100px
}
.button-120 {
	WIDTH: 120px
}
.button-150 {
	WIDTH: 150px
}
.button-180 {
	WIDTH: 180px
}
INPUT.button {
	PADDING-BOTTOM: 0.1em; PADDING-LEFT: 1.6ex; PADDING-RIGHT: 1.6ex; =
PADDING-TOP: 0.15em; _height: 23px; _padding: 2px 2ex 0; _line-height: =
1.25em
}
BUTTON.button {
	PADDING-BOTTOM: 0.15em; PADDING-LEFT: 1.6ex; PADDING-RIGHT: 1.6ex; =
PADDING-TOP: 0.1em; _height: 23px; _padding: 1px 2ex 0; _line-height: =
1.3em
}
A.button {
	WHITE-SPACE: nowrap; TEXT-DECORATION: none
}
.inputBlock .caption {
	MARGIN-TOP: 0.2em; DISPLAY: block
}
INPUT {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
SELECT {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
TEXTAREA {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
BUTTON {
	LINE-HEIGHT: inherit; FONT-FAMILY: inherit; FONT-SIZE: 100%
}
.textfield {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
TEXTAREA {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
SELECT[size] {
	BORDER-BOTTOM: #d5dddd thin solid; BORDER-LEFT: #aab3b3 thin solid; =
PADDING-BOTTOM: 3px; BACKGROUND-COLOR: #f7f7f7; BORDER-TOP: #999 thin =
solid; BORDER-RIGHT: #aab3b3 thin solid; PADDING-TOP: 2px
}
SELECT {
	BORDER-BOTTOM: #6f7777 thin solid; BORDER-LEFT: #acb5b5 thin solid; =
LINE-HEIGHT: 1.15em; BACKGROUND-COLOR: #fefefe; BORDER-TOP: #c4cccc thin =
solid; BORDER-RIGHT: #acb5b5 thin solid
}
SELECT OPTION {
	PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; =
PADDING-TOP: 1px
}
SELECT[size] {
	BACKGROUND-COLOR: #fff !important
}
.textfield:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.textfield:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT[size]:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT[size]:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
TEXTAREA:hover {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
TEXTAREA:focus {
	BORDER-BOTTOM-COLOR: #6d5; BORDER-TOP-COLOR: #459455; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT:hover {
	BORDER-BOTTOM-COLOR: #459455; BORDER-TOP-COLOR: #6d5; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
SELECT:focus {
	BORDER-BOTTOM-COLOR: #459455; BORDER-TOP-COLOR: #6d5; =
BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.textfield:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
SELECT:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
TEXTAREA:focus {
	BACKGROUND-COLOR: #fff; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; =
OUTLINE-WIDTH: 1px
}
.search-form {
	POSITION: relative; BACKGROUND-COLOR: #e0e0e0; _width: 100%
}
#content-body .search-form FIELDSET {
	WIDTH: 90%; MARGIN-BOTTOM: 1em
}
#content-body .pod-body .search-form {
	PADDING-BOTTOM: 8px; MARGIN: 0px -8px; PADDING-LEFT: 8px; =
PADDING-RIGHT: 8px; PADDING-TOP: 8px
}
.search-form FIELDSET {
	PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: =
invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 0px; =
BACKGROUND: #fff; FLOAT: left; PADDING-TOP: 0px
}
.search-form .textfield {
	PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: =
invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: medium; PADDING-RIGHT: 0px; =
BACKGROUND: #fff; FLOAT: left; PADDING-TOP: 0px
}
.search-form FIELDSET {
	Z-INDEX: 99; BORDER-BOTTOM: #939393 1px solid; POSITION: relative; =
BORDER-LEFT: #939393 1px solid; WIDTH: 99%; HEIGHT: 30px; BORDER-TOP: =
#939393 1px solid; BORDER-RIGHT: #939393 1px solid
}
.search-form .textfield {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; WIDTH: 94%; =
HEIGHT: 100%; FONT-SIZE: 2em; BORDER-TOP: medium none; BORDER-RIGHT: =
medium none; _height: 28px; _overflow: hidden
}
.search-form BUTTON {
	BORDER-BOTTOM: medium none; FILTER: =
progid:DXImageTransform.Microsoft.dropshadow(OffX=3D0, OffY=3D0); =
BORDER-LEFT: medium none; MARGIN-TOP: -1px; WIDTH: 32px; BACKGROUND: =
url(form/search.png) no-repeat left top; FLOAT: right; HEIGHT: 32px; =
FONT-SIZE: 1px; BORDER-TOP: medium none; MARGIN-RIGHT: -1px; =
BORDER-RIGHT: medium none; _margin-bottom: -2px; -webkit-box-shadow: =
none
}
*:first-child + HTML #search-for A:active {
	POSITION: relative; ZOOM: 1
}
*:first-child + HTML #search-for A:focus {
	POSITION: relative; ZOOM: 1
}
.pseudo-input:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.pseudo-input:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.search-button:focus {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
.search-button:hover {
	BORDER-BOTTOM-COLOR: #6d5; BACKGROUND-COLOR: #fff; BORDER-TOP-COLOR: =
#459455; OUTLINE-STYLE: solid; OUTLINE-COLOR: #d6ffc9; OUTLINE-WIDTH: =
1px; BORDER-RIGHT-COLOR: #5b5; BORDER-LEFT-COLOR: #5b5
}
P.pullout-item IMG {
	MARGIN-RIGHT: 0px
}
.pullout-left {
	_height: 1em; -moz-column-count: 0
}
.pullout-right {
	_height: 1em; -moz-column-count: 0
}
.pullout-left {
=09
}
.pullout-left:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.pullout-right:after {
	DISPLAY: block; HEIGHT: 0px; CLEAR: both; CONTENT: "\0020"
}
.pullout-item {
	_height: 100%
}
.pullout-left .pullout-item {
	FLOAT: left; MARGIN-LEFT: 0px !important; _margin-right: 6px; =
_margin-bottom: 100%
}
.left-wrap .pullout-item {
	_height: auto; _margin-bottom: auto
}
.right-wrap .pullout-item {
	_height: auto; _margin-bottom: auto
}
.right-wrap .pullout-item {
	CLEAR: right
}
.left-wrap .pullout-item {
	CLEAR: left
}
.pullout-left .compact {
	DISPLAY: table
}
.pullout-right .pullout-item {
	FLOAT: right; MARGIN-RIGHT: 0px !important; _margin-left: 6px
}
DIV.left-wrap > .pullout-item {
	MARGIN-RIGHT: 10px
}
.pullout-left > SPAN {
	DISPLAY: block
}
*.pullout-left SPAN {
	_display: block
}
*.pullout-left *.pullout-left SPAN {
	_display: block
}
*.pullout-left *.pullout-left * SPAN {
	_display: inline
}
*.pullout-left * SPAN {
	_display: inline
}
DIV.right-wrap > .pullout-item {
	MARGIN-LEFT: 10px
}
A.pullout-left {
	DISPLAY: block; _cursor: hand
}
A.pullout-right {
	DISPLAY: block; _cursor: hand
}
DIV.pullout-wrap > * {
	MARGIN-LEFT: 0px
}
DIV.left-wrap > .pullout-item {
	MARGIN-RIGHT: 10px
}
DIV.right-wrap > .pullout-item {
	MARGIN-LEFT: 10px
}
.left-360 .pullout-item {
	WIDTH: 360px
}
.right-360 .pullout-item {
	WIDTH: 360px
}
.left-270 .pullout-item {
	WIDTH: 270px
}
.right-270 .pullout-item {
	WIDTH: 270px
}
.left-190 .pullout-item {
	WIDTH: 190px
}
.right-190 .pullout-item {
	WIDTH: 190px
}
.left-190 .pullout-item SPAN {
	RIGHT: 0px
}
.right-190 .pullout-item SPAN {
	RIGHT: 0px
}
.left-180 .pullout-item {
	WIDTH: 180px
}
.right-180 .pullout-item {
	WIDTH: 180px
}
.left-155 .pullout-item {
	WIDTH: 155px
}
.right-155 .pullout-item {
	WIDTH: 155px
}
.left-140 .pullout-item {
	WIDTH: 140px
}
.right-140 .pullout-item {
	WIDTH: 140px
}
.left-125 .pullout-item {
	WIDTH: 125px
}
.right-125 .pullout-item {
	WIDTH: 125px
}
.left-112 .pullout-item {
	WIDTH: 112px
}
.right-112 .pullout-item {
	WIDTH: 112px
}
.left-100 .pullout-item {
	WIDTH: 100px
}
.right-100 .pullout-item {
	WIDTH: 100px
}
.left-90 .pullout-item {
	WIDTH: 90px
}
.right-90 .pullout-item {
	WIDTH: 90px
}
.left-80 .pullout-item {
	WIDTH: 80px
}
.right-80 .pullout-item {
	WIDTH: 80px
}
.left-72 .pullout-item {
	WIDTH: 72px
}
.right-72 .pullout-item {
	WIDTH: 72px
}
.left-71 .pullout-item {
	WIDTH: 71px
}
.right-71 .pullout-item {
	WIDTH: 71px
}
.left-51 .pullout-item {
	WIDTH: 51px
}
.right-51 .pullout-item {
	WIDTH: 51px
}
.left-60 .pullout-item {
	WIDTH: 60px
}
.right-60 .pullout-item {
	WIDTH: 60px
}
.left-50 .pullout-item {
	WIDTH: 50px
}
.right-50 .pullout-item {
	WIDTH: 50px
}
.left-40 .pullout-item {
	WIDTH: 40px
}
.right-40 .pullout-item {
	WIDTH: 40px
}
.left-20 .pullout-item {
	WIDTH: 20px
}
.right-20 .pullout-item {
	WIDTH: 20px
}
.left-16 .pullout-item {
	WIDTH: 16px
}
.right-16 .pullout-item {
	WIDTH: 16px
}
.left-16 .pullout-item {
	MARGIN-RIGHT: 0px
}
.right-16 .pullout-item {
	MARGIN-LEFT: 0px
}
.left-360 > * {
	MARGIN-LEFT: 370px !important
}
.right-360 > * {
	MARGIN-RIGHT: 370px !important
}
.left-270 > * {
	MARGIN-LEFT: 280px !important
}
.right-270 > * {
	MARGIN-RIGHT: 280px !important
}
.left-190 > * {
	MARGIN-LEFT: 200px !important
}
.right-190 > * {
	MARGIN-RIGHT: 200px !important
}
.left-180 > * {
	MARGIN-LEFT: 190px !important
}
.right-180 > * {
	MARGIN-RIGHT: 190px !important
}
.left-155 > * {
	MARGIN-LEFT: 165px !important
}
.right-155 > * {
	MARGIN-RIGHT: 165px !important
}
.left-140 > * {
	MARGIN-LEFT: 150px !important
}
.right-140 > * {
	MARGIN-RIGHT: 150px !important
}
.left-125 > * {
	MARGIN-LEFT: 135px !important
}
.right-125 > * {
	MARGIN-RIGHT: 135px !important
}
.left-112 > * {
	MARGIN-LEFT: 122px !important
}
.right-112 > * {
	MARGIN-RIGHT: 122px !important
}
.left-100 > * {
	MARGIN-LEFT: 110px !important
}
.right-100 > * {
	MARGIN-RIGHT: 110px !important
}
.left-90 > * {
	MARGIN-LEFT: 100px !important
}
.right-90 > * {
	MARGIN-RIGHT: 100px !important
}
.left-80 > * {
	MARGIN-LEFT: 90px !important
}
.right-80 > * {
	MARGIN-RIGHT: 90px !important
}
.left-72 > * {
	MARGIN-LEFT: 82px !important
}
.right-72 > * {
	MARGIN-RIGHT: 82px !important
}
.left-71 > * {
	MARGIN-LEFT: 81px !important
}
.right-71 > * {
	MARGIN-RIGHT: 81px !important
}
.left-60 > * {
	MARGIN-LEFT: 70px !important
}
.right-60 > * {
	MARGIN-RIGHT: 70px !important
}
.left-50 > * {
	MARGIN-LEFT: 60px !important
}
.right-50 > * {
	MARGIN-RIGHT: 60px !important
}
.left-51 > * {
	MARGIN-LEFT: 61px !important
}
.right-51 > * {
	MARGIN-RIGHT: 61px !important
}
.left-40 > * {
	MARGIN-LEFT: 50px !important
}
.right-40 > * {
	MARGIN-RIGHT: 50px !important
}
.left-20 > * {
	MARGIN-LEFT: 28px !important
}
.right-20 > * {
	MARGIN-RIGHT: 28px !important
}
.left-16 > * {
	MARGIN-LEFT: 20px !important
}
.right-16 > * {
	MARGIN-RIGHT: 20px !important
}
.columns-5-ABCDE-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-D {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-5-ABCDE-E {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABC-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABC-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABcc-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-ABcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBC-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBC-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBcc-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaB-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaBB-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-AAbb-AA {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-Abb-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-AB-A {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-2-aaaBB-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBc-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBcc-aaa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaaBcc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBccc-aa {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-3-aaBccc-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: left
}
.columns-4-ABCD-D {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-ABC-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-ABcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBC-C {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-Abb-bb {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaBB-BB {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AAbb-bb {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaB-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AB-B {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-aaaBB-BB {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaaBc-c {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaaBcc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-3-aaBccc-cc {
	MARGIN-BOTTOM: 0.5em; FLOAT: right
}
.columns-2-AB-A {
	WIDTH: 48%
}
.columns-2-AB-B {
	WIDTH: 48%
}
.columns-2-Abb-A {
	WIDTH: 64%
}
.columns-2-aaB-B {
	WIDTH: 64%
}
.columns-2-Abb-bb {
	WIDTH: 32%
}
.columns-2-aaB-aa {
	WIDTH: 32%
}
.columns-2-aaaBB-aaa {
	WIDTH: 13%
}
.columns-2-aaaBB-BB {
	WIDTH: 85%
}
.columns-3-ABC-A {
	WIDTH: 30%
}
.columns-3-ABC-B {
	WIDTH: 30%
}
.columns-3-ABC-C {
	WIDTH: 30%
}
.columns-3-ABC-B {
	MARGIN-LEFT: 5%
}
.columns-3-aaaBc-aaa {
	WIDTH: 10%
}
.columns-3-aaaBc-B {
	WIDTH: 63%
}
.columns-3-aaaBc-c {
	WIDTH: 25%
}
.columns-3-ABcc-A {
	WIDTH: 34%
}
.columns-3-ABcc-B {
	WIDTH: 34%
}
.columns-3-aaBC-B {
	WIDTH: 34%
}
.columns-3-aaBC-C {
	WIDTH: 34%
}
.columns-3-ABcc-cc {
	WIDTH: 26%
}
.columns-3-aaBC-aa {
	WIDTH: 26%
}
.columns-3-aaBcc-aa {
	WIDTH: 26%
}
.columns-3-aaBcc-cc {
	WIDTH: 26%
}
.columns-3-ABcc-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBC-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBcc-B {
	MARGIN-LEFT: 3%
}
.columns-3-aaBcc-B {
	WIDTH: 42%
}
.columns-4-ABCD-A {
	WIDTH: 22%
}
.columns-4-ABCD-B {
	WIDTH: 22%
}
.columns-4-ABCD-C {
	WIDTH: 22%
}
.columns-4-ABCD-D {
	WIDTH: 22%
}
.columns-4-ABCD-B {
	MARGIN-LEFT: 4%
}
.columns-4-ABCD-C {
	MARGIN-LEFT: 4%
}
.columns {
	ZOOM: 100%
}
[class~=3Dcolumns] {
	DISPLAY: table-row
}
.columns > [class|=3Dcolumns] {
	POSITION: static; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 12px; =
DISPLAY: table-cell; FLOAT: none; LEFT: 0px
}
[class~=3Dcolumns] > [class|=3Dcolumns-2-AB] {
	WIDTH: 50%
}
[class~=3Dcolumns] > [class*=3Dcolumns-2-AB] {
	WIDTH: 50%
}
[class~=3Dcolumns] > [class|=3Dcolumns-3-ABC] {
	WIDTH: 33%
}
[class~=3Dcolumns] > [class*=3Dcolumns-3-ABC] {
	WIDTH: 33%
}
[class~=3Dcolumns] > [class|=3Dcolumns-4-ABCD] {
	WIDTH: 25%
}
[class~=3Dcolumns] > [class*=3Dcolumns-4-ABCD] {
	WIDTH: 25%
}
DT {
	LINE-HEIGHT: 1.25
}
DD {
	LINE-HEIGHT: 1.25
}
LI {
	LINE-HEIGHT: 1.25
}
OL {
	FONT-SIZE: 1em
}
LI {
	FONT-SIZE: 1em
}
LI OL {
	FONT-SIZE: 1em
}
LI UL {
	FONT-SIZE: 1em
}
UL {
	LIST-STYLE-TYPE: disc; MARGIN-LEFT: 1ex
}
UL {
	MARGIN-TOP: 1em; PADDING-LEFT: 2.5ex; MARGIN-BOTTOM: 1.35em
}
OL {
	MARGIN-TOP: 1em; PADDING-LEFT: 2.5ex; MARGIN-BOTTOM: 1.35em
}
LI {
	PADDING-BOTTOM: 0.5em; LINE-HEIGHT: 1.25em
}
OL {
	LIST-STYLE-TYPE: decimal; MARGIN-LEFT: 3ex; OVERFLOW: visible; =
_padding-left: 6ex
}
OL OL {
	LIST-STYLE-TYPE: lower-alpha; MARGIN-LEFT: 0.5ex; _margin-left: 1.5ex
}
OL OL OL {
	LIST-STYLE-TYPE: lower-roman
}
LI OL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.3ex
}
LI UL {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0.3ex
}
LI P {
	MARGIN-BOTTOM: 0.5em
}
DT {
	LINE-HEIGHT: 1.5em
}
DD {
	LINE-HEIGHT: 1.5em
}
DT {
	MARGIN-TOP: 0.5em; MARGIN-BOTTOM: 1em; FONT-WEIGHT: bold
}
DL {
	MARGIN-BOTTOM: 1.5em
}
DD {
	MARGIN-BOTTOM: 1.5em
}
DD {
	MARGIN-LEFT: 16px
}
.pullout-left DD {
	_margin-left: 0px
}
.scroll-list {
	BORDER-BOTTOM: #999 1px solid; BORDER-LEFT: #999 1px solid; OVERFLOW-Y: =
scroll; PADDING-LEFT: 4px; BACKGROUND: #fafafa; HEIGHT: 11em; =
BORDER-TOP: #999 1px solid; BORDER-RIGHT: #999 1px solid
}
.link-list {
	TEXT-ALIGN: left; PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: =
0px 0px 1em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: =
none; PADDING-TOP: 0px
}
.link-list > * {
	LINE-HEIGHT: 1.33em; MARGIN: 1px 1.5ex 1px 0px
}
.link-list > LI {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 2px
}
.link-list > DT {
	PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
PADDING-TOP: 2px
}
.link-list > DD {
	PADDING-LEFT: 1.25ex
}
.link-list LI {
	_padding: 0.15em 0 0.2em
}
.link-list DT {
	_padding: 0.15em 0 0.2em
}
.link-list DD {
	_padding-left: 1.25ex
}
.link-list LI {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.link-list DT {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.link-list DD {
	_line-height: 1.35em; _margin: 1px 1.5ex 1px 0
}
.button-list > LI {
	LINE-HEIGHT: 1.5em; MARGIN: 4px 1.5ex 4px 0px; FONT-SIZE: 1.08em; =
PADDING-TOP: 0px
}
.data {
	LINE-HEIGHT: 11pt; MARGIN: 12pt 0px; MIN-HEIGHT: 1pt; FONT-SIZE: 8pt
}
.data TABLE {
	BORDER-BOTTOM: 1pt solid; TEXT-ALIGN: left; BORDER-LEFT: 1pt solid; =
PADDING-BOTTOM: 3pt; PADDING-LEFT: 3pt; PADDING-RIGHT: 3pt; =
VERTICAL-ALIGN: top; BORDER-TOP: 1pt solid; BORDER-RIGHT: 1pt solid; =
PADDING-TOP: 3pt
}
.data TH {
	BORDER-BOTTOM: 1pt solid; TEXT-ALIGN: left; BORDER-LEFT: 1pt solid; =
PADDING-BOTTOM: 3pt; PADDING-LEFT: 3pt; PADDING-RIGHT: 3pt; =
VERTICAL-ALIGN: top; BORDER-TOP: 1pt solid; BORDER-RIGHT: 1pt solid; =
PADDING-TOP: 3pt
}
.data TD {
	BORDER-BOTTOM: 1pt solid; TEXT-ALIGN: left; BORDER-LEFT: 1pt solid; =
PADDING-BOTTOM: 3pt; PADDING-LEFT: 3pt; PADDING-RIGHT: 3pt; =
VERTICAL-ALIGN: top; BORDER-TOP: 1pt solid; BORDER-RIGHT: 1pt solid; =
PADDING-TOP: 3pt
}
.data TBODY.headerBlock TH {
	TEXT-ALIGN: center
}
#site-search {
	DISPLAY: none
}
#user-menu {
	DISPLAY: none
}
#site-menu {
	DISPLAY: none
}
#globalnav #adobe-logo {
	TEXT-ALIGN: right
}
#adobe-logo-lq {
	DISPLAY: none
}
#adobe-logo-hq {
	DISPLAY: block
}
#globalfooter {
	MARGIN-TOP: 72pt; CLEAR: both
}
#searchengine {
	DISPLAY: none
}
#terms {
	DISPLAY: none
}
#privacy {
	DISPLAY: none
}
#copyright {
	LINE-HEIGHT: 7pt; FONT-SIZE: 6pt
}
HTML {
	BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: =
none; BORDER-LEFT-STYLE: none
}
BODY {
	LINE-HEIGHT: 13pt; FONT-FAMILY: Helvetica, Arial, sans-serif; =
FONT-SIZE: 10pt
}
#layoutLogic {
	WIDTH: 100%; BACKGROUND: none transparent scroll repeat 0% 0%
}
#content-body {
	WIDTH: auto; FLOAT: none
}
#content-pocket {
	WIDTH: auto; FLOAT: none
}
.menu {
	DISPLAY: none
}
.nav-up {
	DISPLAY: none
}
.d-dropdown {
	DISPLAY: none
}
.no-print {
	DISPLAY: none
}
A {
	FONT-STYLE: italic
}
H1 A {
	FONT-STYLE: normal
}
H2 A {
	FONT-STYLE: normal
}
H3 A {
	FONT-STYLE: normal
}
H4 A {
	FONT-STYLE: normal
}
H5 A {
	FONT-STYLE: normal
}
H6 A {
	FONT-STYLE: normal
}
DT A {
	FONT-STYLE: normal
}
.menu {
	DISPLAY: none
}
#creative-license {
	DISPLAY: none
}
#sc-util {
	DISPLAY: none
}
#accesslink {
	DISPLAY: none
}
#xnav-content {
	DISPLAY: none
}
.nav-up {
	DISPLAY: none
}
.nav {
	DISPLAY: none
}
OBJECT {
	DISPLAY: none
}
EMBED {
	DISPLAY: none
}
* HTML .show .fma {
	POSITION: relative; MARGIN: 0px 0px 0px -16px
}
* HTML .fma#featuretour {
	POSITION: relative; MARGIN: 0px 0px 0px -16px
}
.p0 {
	PADDING-BOTTOM: 0px !important; MARGIN: 0px; PADDING-LEFT: 0px =
!important; PADDING-RIGHT: 0px !important; PADDING-TOP: 0px !important
}
.p0 .pod-body {
	PADDING-BOTTOM: 0px !important; MARGIN: 0px; PADDING-LEFT: 0px =
!important; PADDING-RIGHT: 0px !important; PADDING-TOP: 0px !important
}
.article-date {
	WHITE-SPACE: nowrap
}
.stamp-fileinfo {
	WHITE-SPACE: nowrap
}
DIV.mnemonic H1 {
	TEXT-TRANSFORM: uppercase; BACKGROUND: none transparent scroll repeat =
0% 0%
}
DIV.suite H1 {
	TEXT-TRANSFORM: uppercase; BACKGROUND: none transparent scroll repeat =
0% 0%
}
DIV.mnemonic {
	MARGIN-BOTTOM: 0px !important
}
HTML > BODY .image-border {
	BORDER-BOTTOM: #fff 1px solid; BORDER-LEFT: #fff 1px solid; =
PADDING-BOTTOM: 1px; OUTLINE-STYLE: solid; OUTLINE-COLOR: #424242; =
PADDING-LEFT: 1px; OUTLINE-WIDTH: 2px; PADDING-RIGHT: 1px; BACKGROUND: =
#424242; BORDER-TOP: #fff 1px solid; BORDER-RIGHT: #fff 1px solid; =
PADDING-TOP: 1px
}
* HTML .image-border {
	BORDER-BOTTOM: #424242 4px double; BORDER-LEFT: #424242 4px double; =
MARGIN-BOTTOM: 1px; BORDER-TOP: #424242 4px double; BORDER-RIGHT: =
#424242 4px double
}
.discover UL {
	DISPLAY: block
}
UL.minimal LI {
	LINE-HEIGHT: 1em
}
HR.fullwidth {
	MARGIN: 0px -17px 2em; _width: 756px; _position: relative; _margin: =
-8px -17px 0
}
.sidemessage {
	PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #ddd; PADDING-LEFT: 4px; =
PADDING-RIGHT: 4px; FONT-SIZE: 0.83em; PADDING-TOP: 4px
}
.sidemessage LI {
	PADDING-BOTTOM: 0px; FONT-FAMILY: Verdana, Arial, Helvetica, =
sans-serif; MARGIN-BOTTOM: 0px
}
H4.product {
	LINE-HEIGHT: 1.15em; MARGIN-BOTTOM: 0.25em; FONT-SIZE: 1.25em; =
FONT-WEIGHT: normal
}
DIV.messaging {
	PADDING-BOTTOM: 7px; BACKGROUND-COLOR: #424242; PADDING-LEFT: 7px; =
PADDING-RIGHT: 7px; COLOR: #fff; PADDING-TOP: 7px
}
#foryou P {
	MARGIN-BOTTOM: 0px; _margin-bottom: 1px
}
#foryou A {
	LINE-HEIGHT: 1.25em; FONT-SIZE: 1.2em
}
#foryou H2 {
	FONT-SIZE: 1.7em
}
.columns-2-aaB-aa#contentNav {
	WIDTH: 18%
}
.columns-2-aaB-B#contentFrame {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; WIDTH: 80%; PADDING-RIGHT: 0px; =
PADDING-TOP: 0px
}
.columns-2-aaB-B#contentFrame IFRAME {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 100%; =
PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
IFRAME#cs3-messaging {
	HEIGHT: 369px; _height: 370px
}
.columns-2-aaB-aa#contentNav {
	MARGIN-BOTTOM: 0px; _padding-bottom: 0
}
.columns-2-aaB-B#contentFrame {
	MARGIN-BOTTOM: 0px; _padding-bottom: 0
}
#contentNav P {
	MARGIN-BOTTOM: 0px; _padding-bottom: 0
}
#contentNav P {
	MARGIN-TOP: 0px
}
#productfamily {
	FONT-WEIGHT: bold; PADDING-TOP: 0px
}
#productfamily P {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#productfamily P A {
	PADDING-BOTTOM: 7px; DISPLAY: block; PADDING-TOP: 6px
}
#iframeContent {
	PADDING-BOTTOM: 0px; MARGIN: -16px; PADDING-LEFT: 0px; WIDTH: 510px =
!important; PADDING-RIGHT: 0px; DISPLAY: block; COLOR: #424242; =
PADDING-TOP: 0px
}
#iframeContent H2 {
	TEXT-TRANSFORM: uppercase; MARGIN-BOTTOM: 0.35em !important
}
#iframeContent UL {
	MARGIN-TOP: 0px
}
#iframeContent #featuretour {
	MARGIN: -16px
}
#iframeContent .fma {
	MARGIN: -16px
}
#iframeContent .fullwidth {
	MARGIN-LEFT: -17px
}
TABLE {
	MARGIN-LEFT: 1px
}
PRE {
	WHITE-SPACE: normal
}
#nextsteps {
	DISPLAY: none
}
#sidemenu {
	DISPLAY: none
}
#contentBody {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN-TOP: 20pt; =
PADDING-LEFT: 0px; WIDTH: 100% !important; PADDING-RIGHT: 0px; DISPLAY: =
block; MARGIN-BOTTOM: 50pt; FLOAT: none; TOP: 0px; PADDING-TOP: 0px; =
LEFT: 0px
}
.clip-sides IMG {
	WIDTH: 100% !important; HEIGHT: auto !important
}
H1 {
	FONT-FAMILY: inherit
}
H2 {
	FONT-FAMILY: inherit
}
H3 {
	FONT-FAMILY: inherit
}
H4 {
	FONT-FAMILY: inherit
}
H5 {
	FONT-FAMILY: inherit
}
H6 {
	FONT-FAMILY: inherit
}
H1 {
	LINE-HEIGHT: 23pt; TEXT-TRANSFORM: none; MARGIN-BOTTOM: 3pt !important; =
FONT-SIZE: 22pt; FONT-WEIGHT: normal
}
H2 {
	MARGIN-BOTTOM: 6pt; FONT-WEIGHT: normal
}
H3 {
	BORDER-BOTTOM: rgb(127,127,127) 1pt solid; PADDING-BOTTOM: 2pt; =
LINE-HEIGHT: 11pt; MARGIN-TOP: 30pt; MARGIN-BOTTOM: 6pt; FONT-SIZE: =
10pt; FONT-WEIGHT: bold
}
H4 {
	LINE-HEIGHT: 13pt; FONT-SIZE: 10pt
}
P {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; =
MARGIN-BOTTOM: 6pt; PADDING-TOP: 0px
}
UL {
	LIST-STYLE-TYPE: disc; PADDING-LEFT: 3ex
}
#productName {
	LINE-HEIGHT: 15pt; TEXT-TRANSFORM: uppercase; MARGIN-BOTTOM: 9pt; =
FONT-SIZE: 12pt; FONT-WEIGHT: bold
}
PRE SPAN {
	WHITE-SPACE: pre
}
A.print {
	DISPLAY: none !important
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://get.adobe.com/reader/layout.css

#layoutLogic {
	POSITION: relative
}
#content-marquee {
	POSITION: relative
}
#marquee-body {
	POSITION: relative
}
#content-layout {
	POSITION: relative
}
#content-wrapper {
	POSITION: relative
}
#content-body {
	POSITION: relative
}
#content-wrapper {
	HEIGHT: auto; _zoom: 1
}
#content-header {
	Z-INDEX: 5; POSITION: relative; MARGIN: 0px
}
#content-header H1 {
	POSITION: relative; PADDING-BOTTOM: 16px; LINE-HEIGHT: normal; MARGIN: =
0px; PADDING-LEFT: 16px; PADDING-RIGHT: 24px; COLOR: #ffffff; FONT-SIZE: =
30px; TOP: 0px; FONT-WEIGHT: normal; PADDING-TOP: 28px; LEFT: 0px
}
#content-body {
	POSITION: relative; PADDING-BOTTOM: 20px; PADDING-LEFT: 16px
}
#content-pocket {
	BORDER-BOTTOM: #d9d9d9 1px solid; POSITION: relative; BORDER-LEFT: =
#d9d9d9 1px solid; PADDING-BOTTOM: 20px; PADDING-LEFT: 11px; =
PADDING-RIGHT: 12px; BACKGROUND: #ededed; FLOAT: right; RIGHT: 8px; =
PADDING-TOP: 17px
}
#content-pocket-2 {
	BORDER-BOTTOM: #d9d9d9 1px solid; POSITION: relative; BORDER-LEFT: =
#d9d9d9 1px solid; PADDING-BOTTOM: 20px; PADDING-LEFT: 11px; =
PADDING-RIGHT: 12px; BACKGROUND: #ededed; FLOAT: right; RIGHT: 8px; =
PADDING-TOP: 17px
}
HR {
	BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: =
0px; MARGIN: 0px 0px 1.35em; PADDING-LEFT: 0px; WIDTH: auto; =
PADDING-RIGHT: 0px; BACKGROUND: #cbcbcb; HEIGHT: 1px; COLOR: #cbcbcb; =
CLEAR: both; BORDER-TOP: medium none; BORDER-RIGHT: medium none; =
PADDING-TOP: 0px; _width: 100%; _margin: 0 0 1em 0
}
#marquee-body {
	_zoom: 100%
}
#marquee-body IMG {
	_display: block
}
#marquee-body * IMG {
	_display: inline
}
#marquee-body > IMG {
	DISPLAY: block
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/screen/no-pocket.css

@import url( layout.css );
.columns-2-AB-A {
	WIDTH: 49.38%
}
.columns-2-AB-B {
	WIDTH: 49.38%
}
LI .columns-2-AB-A {
	_width: 46%
}
LI .columns-2-AB-B {
	_width: 46%
}
.columns-2-Abb-A {
	WIDTH: 65.15%
}
.columns-2-aaB-B {
	WIDTH: 65.15%
}
.columns-2-Abb-bb {
	WIDTH: 33.6%
}
.columns-2-aaB-aa {
	WIDTH: 33.6%
}
.columns-2-aaBB-aa {
	WIDTH: 23.82%
}
.columns-2-AAbb-bb {
	WIDTH: 23.82%
}
.columns-2-aaBB-BB {
	WIDTH: 73.3%
}
.columns-2-AAbb-AA {
	WIDTH: 73.3%
}
.columns-3-ABC-A {
	WIDTH: 32.57%
}
.columns-3-ABC-B {
	WIDTH: 32.57%
}
.columns-3-ABC-C {
	WIDTH: 32.57%
}
.columns-3-aaBC-aa {
	WIDTH: 25.36%
}
.columns-3-ABcc-cc {
	WIDTH: 25.36%
}
.columns-3-aaBcc-aa {
	WIDTH: 25.36%
}
.columns-3-aaBcc-cc {
	WIDTH: 25.36%
}
.columns-3-aaBC-B {
	WIDTH: 36.08%
}
.columns-3-aaBC-C {
	WIDTH: 36.08%
}
.columns-3-ABcc-A {
	WIDTH: 36.08%
}
.columns-3-ABcc-B {
	WIDTH: 36.08%
}
.columns-3-aaBcc-B {
	WIDTH: 46.81%
}
.columns-4-ABCD-A {
	WIDTH: 23.34%
}
.columns-4-ABCD-B {
	WIDTH: 23.34%
}
.columns-4-ABCD-C {
	WIDTH: 23.34%
}
.columns-4-ABCD-D {
	WIDTH: 23.34%
}
.columns-4-ABCD-A {
	WIDTH: 24.12%
}
.columns-4-ABCD-B {
	WIDTH: 24.12%
}
.columns-4-ABCD-C {
	WIDTH: 24.12%
}
.columns-4-ABCD-D {
	WIDTH: 24.12%
}
.columns-3-aaBC-B {
	MARGIN-LEFT: 1.23%
}
.columns-3-ABcc-B {
	MARGIN-LEFT: 1.23%
}
.columns-3-aaBcc-B {
	MARGIN-LEFT: 1.23%
}
.columns-3-ABC-B {
	MARGIN-LEFT: 1.23%
}
.columns-4-ABCD-B {
	MARGIN-LEFT: 1.23%
}
.columns-4-ABCD-C {
	MARGIN-LEFT: 1.23%
}
.columns-3-aaaBc-aaa {
	WIDTH: 13%
}
.columns-3-aaaBc-B {
	WIDTH: 60%
}
.columns-3-aaaBc-c {
	WIDTH: 25%
}
.columns-3-aaaBcc-aaa {
	WIDTH: 20%
}
.columns-3-aaaBcc-B {
	WIDTH: 42%
}
.columns-3-aaaBcc-cc {
	WIDTH: 36%
}
.columns-3-aaBccc-aa {
	WIDTH: 20%
}
.columns-3-aaBccc-B {
	WIDTH: 60%
}
.columns-3-aaBccc-cc {
	WIDTH: 16%
}
.columns-5-ABCDE-A {
	WIDTH: 20%
}
.columns-5-ABCDE-B {
	WIDTH: 20%
}
.columns-5-ABCDE-C {
	WIDTH: 20%
}
.columns-5-ABCDE-D {
	WIDTH: 20%
}
.columns-5-ABCDE-E {
	WIDTH: 20%
}
#globalfooter {
	WIDTH: 970px
}
#layoutLogic {
	WIDTH: 1006px
}
#content-header {
	WIDTH: 764px
}
#content-header {
	_margin-right: -32px
}
#content-body {
	POSITION: relative; MIN-HEIGHT: 600px; WIDTH: auto; PADDING-RIGHT: =
24px; BACKGROUND: url(theme/content-body-shadow.png) repeat-y 0px 0px; =
PADDING-TOP: 1px; _height: 600px; _background: =
url(theme/content-body-shadow-8bit.png) 0 0 repeat-y
}
#content-layout {
	PADDING-TOP: 20px
}
#content-marquee {
	PADDING-TOP: 20px
}
#marquee-body {
	POSITION: relative; TOP: -17px
}
#content-pocket {
	POSITION: relative; TOP: -17px
}
.with-marquee #content-body {
	PADDING-TOP: 1px
}
.with-marquee #content-layout {
	BACKGROUND-IMAGE: none; PADDING-TOP: 0px
}
#marquee-body {
	POSITION: relative; TOP: -17px
}
#content-banner {
	POSITION: relative; WIDTH: 998px; MARGIN-BOTTOM: -5px; TOP: -18px; =
MARGIN-RIGHT: -16px; LEFT: -16px
}
.banner-body {
	PADDING-BOTTOM: 3px; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; =
PADDING-TOP: 17px
}
#content-body .search-form {
	BORDER-BOTTOM: #ccc 1px solid; PADDING-BOTTOM: 4px; MARGIN: -18px -16px =
1em; PADDING-LEFT: 16px; PADDING-RIGHT: 16px; BORDER-TOP: #ccc 1px =
solid; PADDING-TOP: 20px
}
#content-body .pod-body .search-form FIELDSET {
	WIDTH: 99% !important; MARGIN-BOTTOM: 0px !important
}
#content-body .pod-body .search-form .textfield {
	WIDTH: 89% !important
}
BODY {
	BACKGROUND-IMAGE: url(theme/windowfrost.png); BACKGROUND-COLOR: =
#b9b9b9; BACKGROUND-REPEAT: no-repeat
}
#content-header {
	MARGIN-BOTTOM: -3px; BACKGROUND: url(theme/contentHeader_topshadow.png) =
no-repeat right 0px; _background-image: =
url(theme/content-header-topshadow-8bit.png)
}
#content-wrapper {
	BACKGROUND: url(theme/content-body-shadow.png) repeat-y 0px 0px; =
_background: url(theme/content-body-shadow-8bit.png) 0 0 repeat-y
}
#marquee-body-chrome {
	BACKGROUND: url(theme/content-body-shadow.png) repeat-y 0px 0px; =
_background: url(theme/content-body-shadow-8bit.png) 0 0 repeat-y
}
#content-layout {
	BACKGROUND: url(theme/content-layout-top-shadow.png) no-repeat 0px 0px; =
_background: url(theme/content-layout-top-shadow-8bit.png) 0 0 no-repeat
}
#content-marquee {
	BACKGROUND: url(theme/content-layout-top-shadow.png) no-repeat 0px 0px; =
_background: url(theme/content-layout-top-shadow-8bit.png) 0 0 no-repeat
}
#globalfooter {
	BACKGROUND-IMAGE: url(theme/contentFooter_dropshadow.png); =
BACKGROUND-REPEAT: repeat-y; _background-image: =
url(theme/content-footer-shadow-8bit.png)
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/screen/gnav.black.css

#globalnav-search {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; PADDING-TOP: 0px
}
#globalnav {
	Z-INDEX: 100; POSITION: relative; PADDING-BOTTOM: 25px; MARGIN: 0px; =
PADDING-LEFT: 4px; WIDTH: 998px; PADDING-RIGHT: 0px; DISPLAY: block; =
TOP: 0px; PADDING-TOP: 0px; LEFT: 0px; _height: 1em
}
#globalnav-noscript {
	DISPLAY: none
}
.checkout-nav#globalnav {
	PADDING-BOTTOM: 36px
}
#globalnav #adobe-logo {
	Z-INDEX: 9; POSITION: absolute; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; TOP: 0px; PADDING-TOP: 0px; LEFT: =
16px
}
#adobe-logo {
	WIDTH: 34px; HEIGHT: 54px
}
#adobe-logo-lq {
	DISPLAY: block
}
#adobe-logo-hq {
	DISPLAY: none
}
#globalnav-cart .cart {
	BACKGROUND-IMAGE: url(gnav/cart_dark.gif); MIN-HEIGHT: 11px; DISPLAY: =
inline-block; BACKGROUND-POSITION: center 0px; HEIGHT: 11px; COLOR: =
transparent; _display: inline
}
#globalnav-cart > A.cart {
	TEXT-INDENT: -9999px; DISPLAY: block
}
#globalnav-cart .cart:hover {
	BACKGROUND-POSITION: center -11px; COLOR: transparent
}
#user-menu {
	POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: =
60px; PADDING-RIGHT: 0px; FONT-SIZE: 0.91em; TOP: 0px; PADDING-TOP: 0px; =
LEFT: 0px
}
#user-menu UL {
	PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: =
0px; COLOR: #000; PADDING-TOP: 10px
}
#user-menu LI {
	PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-LEFT: 10px; PADDING-RIGHT: =
10px; PADDING-TOP: 3px
}
#user-menu A {
	PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: =
inline; COLOR: #000; FONT-WEIGHT: bold; PADDING-TOP: 0px; =
-khtml-opacity: .5; opacity: .5; _font-weight: normal
}
#user-menu A:hover {
	COLOR: #047; TEXT-DECORATION: underline; -moz-opacity: 1; =
-khtml-opacity: 1; opacity: 100%
}
#user-menu [className~=3Dpipe] A {
	FONT-WEIGHT: normal
}
#site-menu {
	Z-INDEX: 2; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; WIDTH: 650px; PADDING-RIGHT: 0px; PADDING-TOP: 3px; =
LEFT: 58px
}
#site-menu-dropdown {
	Z-INDEX: 3; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px; =
_behavior: url(/lib/com.adobe/hover.htc)
}
#site-menu-dropdown LI {
	Z-INDEX: 4; POSITION: relative; PADDING-BOTTOM: 0px; MARGIN: 0px; =
PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
#site-menu-dropdown LI:hover {
	Z-INDEX: 5
}
#site-menu-dropdown LI.hover {
	Z-INDEX: 5
}
#site-menu-dropdown .dropdown-tab {
	Z-INDEX: 6; POSITION: relative; PADDING-BOTTOM: 5px; PADDING-LEFT: =
12px; PADDING-RIGHT: 12px; FONT-FAMILY: Arial, Helvetica, sans-serif; =
COLOR: #333; FONT-WEIGHT: bold; PADDING-TOP: 5px; _white-space: nowrap
}
#site-menu-dropdown > LI:hover .dropdown-tab {
	BACKGROUND-COLOR: #222; COLOR: #fff
}
#site-menu LI.hover .dropdown-tab {
	COLOR: #fff
}
#site-menu LI.hover .dropdown-tab:hover {
	COLOR: #fff
}
#site-menu LI.hover .dropdown-tab {
	BACKGROUND-COLOR: #222
}
#site-menu LI .dropdown-pane {
	DISPLAY: none
}
#site-menu-dropdown > LI:hover .dropdown-pane {
	DISPLAY: block
}
#site-menu LI.hover .dropdown-pane {
	DISPLAY: block
}
#site-menu-dropdown .dropdown-pane {
	BACKGROUND-IMAGE: url(gnav/dropdown_pane.png); Z-INDEX: 7; =
PADDING-BOTTOM: 14px; MARGIN-TOP: 12px; PADDING-LEFT: 16px; WIDTH: =
140px; PADDING-RIGHT: 16px; BACKGROUND-REPEAT: no-repeat; =
BACKGROUND-POSITION: left bottom; BORDER-TOP-STYLE: none; MARGIN-LEFT: =
-6px; FONT-SIZE: 0.91em; TOP: 21px; PADDING-TOP: 5px; _top: 24px; =
_background-image: url(gnav/dropdown_pane_8bit.png); _margin-top: 0
}
#site-menu-dropdown [className~=3Ddropdown-pane] {
	MARGIN-TOP: 4px; PADDING-TOP: 8px
}
#site-menu-dropdown .dropdown-pane:before {
	MARGIN-TOP: -18px; DISPLAY: block; MARGIN-LEFT: -16px; CONTENT: =
url(gnav/dropdown_pane_cap.png)
}
#site-menu-dropdown .dropdown-pane LI {
	PADDING-BOTTOM: 0px; MARGIN: 2px 0px 6px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px
}
#site-menu-dropdown .dropdown-pane DT {
	PADDING-BOTTOM: 0px; MARGIN: 2px 0px 6px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px
}
#site-menu-dropdown .dropdown-pane DD {
	PADDING-BOTTOM: 0px; MARGIN: 2px 0px 6px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; DISPLAY: block; PADDING-TOP: 0px
}
#site-menu-dropdown .dropdown-pane DT {
	TEXT-TRANSFORM: uppercase; COLOR: #000000
}
#site-menu-dropdown .dropdown-pane .divide {
	PADDING-TOP: 8px
}
#site-menu-dropdown .dropdown-pane .last-title {
	TEXT-TRANSFORM: none; FONT-WEIGHT: normal
}
#site-menu-dropdown .dropdown-pane A {
	PADDING-BOTTOM: 0px; LINE-HEIGHT: 14px; MARGIN: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; DISPLAY: block; COLOR: #333; PADDING-TOP: 0px; =
_width: 100%
}
#site-menu-dropdown .dropdown-pane A:hover {
	COLOR: #047; TEXT-DECORATION: underline
}
UL.dropdown-pane LI {
	_list-style-position: outside
}
#site-search {
	Z-INDEX: 8; POSITION: absolute; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; =
PADDING-RIGHT: 0px; TOP: 33px; PADDING-TOP: 0px; LEFT: 714px; _top: =
35px; _left: 680px
}
#search-input {
	BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; =
PADDING-BOTTOM: 1px; LINE-HEIGHT: 1.1; PADDING-LEFT: 20px; WIDTH: 244px; =
PADDING-RIGHT: 2px; FLOAT: left; HEIGHT: 14px; COLOR: #333; BORDER-TOP: =
#ccc 1px solid; BORDER-RIGHT: #ccc 1px solid; PADDING-TOP: 1px; =
_padding: 2px 18px 0 4px; _width: 262px; -moz-box-sizing: content-box
}
#site-search .search {
	BACKGROUND-IMAGE: url(gnav/search_button_18x18.png); POSITION: =
absolute; WIDTH: 18px; HEIGHT: 18px; TOP: 0px; CURSOR: text; LEFT: 0px
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.adobe.com/ubi/template/identity/adobe/Pane/screen.css

.chrome-pane {
	WIDTH: 0px; HEIGHT: 0px; OVERFLOW: hidden
}
.chrome-pane-crystal {
	WIDTH: 0px; HEIGHT: 0px; OVERFLOW: hidden
}
.chrome-pane {
	BACKGROUND-COLOR: #eee
}
.chrome-pane-closebutton {
	BACKGROUND-IMAGE: url(close-button.png); Z-INDEX: 2; BORDER-BOTTOM: 0px =
hidden; POSITION: absolute; BORDER-LEFT: 0px hidden; PADDING-BOTTOM: =
0px; TEXT-INDENT: -1000px; PADDING-LEFT: 0px; WIDTH: 16px; =
PADDING-RIGHT: 0px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-POSITION: =
0px 0px; HEIGHT: 16px; OVERFLOW: hidden; BORDER-TOP: 0px hidden; TOP: =
7px; CURSOR: pointer; RIGHT: 7px; BORDER-RIGHT: 0px hidden; PADDING-TOP: =
0px
}
.chrome-pane-closebutton:hover {
	BACKGROUND-POSITION: 0px -16px
}
.chrome-ff2-frame {
	Z-INDEX: 0; BORDER-BOTTOM: transparent 0px hidden; POSITION: absolute; =
BORDER-LEFT: transparent 0px hidden; WIDTH: 25px; HEIGHT: 100%; =
OVERFLOW: hidden; BORDER-TOP: transparent 0px hidden; TOP: 0px; =
BORDER-RIGHT: transparent 0px hidden; LEFT: 0px
}
.chrome-pane-body {
	Z-INDEX: 1; POSITION: relative; HEIGHT: 100%
}
.chrome-pane-title {
	POSITION: absolute; TEXT-ALIGN: center; WIDTH: 100%; FONT: bold =
13px/28px Helvetica, Arial, sans-serif; HEIGHT: 28px; OVERFLOW: hidden; =
TOP: 0px; LEFT: 0px
}

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/lib/prototype.js

/*  Prototype JavaScript framework, version 1.6.0.2=0A=
 *  (c) 2005-2008 Sam Stephenson=0A=
 *=0A=
 *  Prototype is freely distributable under the terms of an MIT-style =
license.=0A=
 *  For details, see the Prototype web site: http://www.prototypejs.org/=0A=
 *=0A=
 =
*------------------------------------------------------------------------=
--*/=0A=
=0A=
var Prototype =3D {=0A=
  Version: '1.6.0.2',=0A=
=0A=
  Browser: {=0A=
    IE:     !!(window.attachEvent && !window.opera),=0A=
    Opera:  !!window.opera,=0A=
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,=0A=
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && =
navigator.userAgent.indexOf('KHTML') =3D=3D -1,=0A=
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)=0A=
  },=0A=
=0A=
  BrowserFeatures: {=0A=
    XPath: !!document.evaluate,=0A=
    ElementExtensions: !!window.HTMLElement,=0A=
    SpecificElementExtensions:=0A=
      document.createElement('div').__proto__ &&=0A=
      document.createElement('div').__proto__ !=3D=3D=0A=
        document.createElement('form').__proto__=0A=
  },=0A=
=0A=
  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',=0A=
  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,=0A=
=0A=
  emptyFunction: function() { },=0A=
  K: function(x) { return x }=0A=
};=0A=
=0A=
if (Prototype.Browser.MobileSafari)=0A=
  Prototype.BrowserFeatures.SpecificElementExtensions =3D false;=0A=
=0A=
=0A=
/* Based on Alex Arnell's inheritance implementation. */=0A=
var Class =3D {=0A=
  create: function() {=0A=
    var parent =3D null, properties =3D $A(arguments);=0A=
    if (Object.isFunction(properties[0]))=0A=
      parent =3D properties.shift();=0A=
=0A=
    function klass() {=0A=
      this.initialize.apply(this, arguments);=0A=
    }=0A=
=0A=
    Object.extend(klass, Class.Methods);=0A=
    klass.superclass =3D parent;=0A=
    klass.subclasses =3D [];=0A=
=0A=
    if (parent) {=0A=
      var subclass =3D function() { };=0A=
      subclass.prototype =3D parent.prototype;=0A=
      klass.prototype =3D new subclass;=0A=
      parent.subclasses.push(klass);=0A=
    }=0A=
=0A=
    for (var i =3D 0; i < properties.length; i++)=0A=
      klass.addMethods(properties[i]);=0A=
=0A=
    if (!klass.prototype.initialize)=0A=
      klass.prototype.initialize =3D Prototype.emptyFunction;=0A=
=0A=
    klass.prototype.constructor =3D klass;=0A=
=0A=
    return klass;=0A=
  }=0A=
};=0A=
=0A=
Class.Methods =3D {=0A=
  addMethods: function(source) {=0A=
    var ancestor   =3D this.superclass && this.superclass.prototype;=0A=
    var properties =3D Object.keys(source);=0A=
=0A=
    if (!Object.keys({ toString: true }).length)=0A=
      properties.push("toString", "valueOf");=0A=
=0A=
    for (var i =3D 0, length =3D properties.length; i < length; i++) {=0A=
      var property =3D properties[i], value =3D source[property];=0A=
      if (ancestor && Object.isFunction(value) &&=0A=
          value.argumentNames().first() =3D=3D "$super") {=0A=
        var method =3D value, value =3D Object.extend((function(m) {=0A=
          return function() { return ancestor[m].apply(this, arguments) =
};=0A=
        })(property).wrap(method), {=0A=
          valueOf:  function() { return method },=0A=
          toString: function() { return method.toString() }=0A=
        });=0A=
      }=0A=
      this.prototype[property] =3D value;=0A=
    }=0A=
=0A=
    return this;=0A=
  }=0A=
};=0A=
=0A=
var Abstract =3D { };=0A=
=0A=
Object.extend =3D function(destination, source) {=0A=
  for (var property in source)=0A=
    destination[property] =3D source[property];=0A=
  return destination;=0A=
};=0A=
=0A=
Object.extend(Object, {=0A=
  inspect: function(object) {=0A=
    try {=0A=
      if (Object.isUndefined(object)) return 'undefined';=0A=
      if (object =3D=3D=3D null) return 'null';=0A=
      return object.inspect ? object.inspect() : String(object);=0A=
    } catch (e) {=0A=
      if (e instanceof RangeError) return '...';=0A=
      throw e;=0A=
    }=0A=
  },=0A=
=0A=
  toJSON: function(object) {=0A=
    var type =3D typeof object;=0A=
    switch (type) {=0A=
      case 'undefined':=0A=
      case 'function':=0A=
      case 'unknown': return;=0A=
      case 'boolean': return object.toString();=0A=
    }=0A=
=0A=
    if (object =3D=3D=3D null) return 'null';=0A=
    if (object.toJSON) return object.toJSON();=0A=
    if (Object.isElement(object)) return;=0A=
=0A=
    var results =3D [];=0A=
    for (var property in object) {=0A=
      var value =3D Object.toJSON(object[property]);=0A=
      if (!Object.isUndefined(value))=0A=
        results.push(property.toJSON() + ': ' + value);=0A=
    }=0A=
=0A=
    return '{' + results.join(', ') + '}';=0A=
  },=0A=
=0A=
  toQueryString: function(object) {=0A=
    return $H(object).toQueryString();=0A=
  },=0A=
=0A=
  toHTML: function(object) {=0A=
    return object && object.toHTML ? object.toHTML() : =
String.interpret(object);=0A=
  },=0A=
=0A=
  keys: function(object) {=0A=
    var keys =3D [];=0A=
    for (var property in object)=0A=
      keys.push(property);=0A=
    return keys;=0A=
  },=0A=
=0A=
  values: function(object) {=0A=
    var values =3D [];=0A=
    for (var property in object)=0A=
      values.push(object[property]);=0A=
    return values;=0A=
  },=0A=
=0A=
  clone: function(object) {=0A=
    return Object.extend({ }, object);=0A=
  },=0A=
=0A=
  isElement: function(object) {=0A=
    return object && object.nodeType =3D=3D 1;=0A=
  },=0A=
=0A=
  isArray: function(object) {=0A=
    return object !=3D null && typeof object =3D=3D "object" &&=0A=
      'splice' in object && 'join' in object;=0A=
  },=0A=
=0A=
  isHash: function(object) {=0A=
    return object instanceof Hash;=0A=
  },=0A=
=0A=
  isFunction: function(object) {=0A=
    return typeof object =3D=3D "function";=0A=
  },=0A=
=0A=
  isString: function(object) {=0A=
    return typeof object =3D=3D "string";=0A=
  },=0A=
=0A=
  isNumber: function(object) {=0A=
    return typeof object =3D=3D "number";=0A=
  },=0A=
=0A=
  isUndefined: function(object) {=0A=
    return typeof object =3D=3D "undefined";=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Function.prototype, {=0A=
  argumentNames: function() {=0A=
    var names =3D =
this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").inv=
oke("strip");=0A=
    return names.length =3D=3D 1 && !names[0] ? [] : names;=0A=
  },=0A=
=0A=
  bind: function() {=0A=
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return =
this;=0A=
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();=0A=
    return function() {=0A=
      return __method.apply(object, args.concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  bindAsEventListener: function() {=0A=
    var __method =3D this, args =3D $A(arguments), object =3D =
args.shift();=0A=
    return function(event) {=0A=
      return __method.apply(object, [event || =
window.event].concat(args));=0A=
    }=0A=
  },=0A=
=0A=
  curry: function() {=0A=
    if (!arguments.length) return this;=0A=
    var __method =3D this, args =3D $A(arguments);=0A=
    return function() {=0A=
      return __method.apply(this, args.concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  delay: function() {=0A=
    var __method =3D this, args =3D $A(arguments), timeout =3D =
args.shift() * 1000;=0A=
    return window.setTimeout(function() {=0A=
      return __method.apply(__method, args);=0A=
    }, timeout);=0A=
  },=0A=
=0A=
  wrap: function(wrapper) {=0A=
    var __method =3D this;=0A=
    return function() {=0A=
      return wrapper.apply(this, =
[__method.bind(this)].concat($A(arguments)));=0A=
    }=0A=
  },=0A=
=0A=
  methodize: function() {=0A=
    if (this._methodized) return this._methodized;=0A=
    var __method =3D this;=0A=
    return this._methodized =3D function() {=0A=
      return __method.apply(null, [this].concat($A(arguments)));=0A=
    };=0A=
  }=0A=
});=0A=
=0A=
if(Object.isUndefined(Function.prototype.defer)) =
Function.prototype.defer =3D Function.prototype.delay.curry(0.01);=0A=
=0A=
Date.prototype.toJSON =3D function() {=0A=
  return '"' + this.getUTCFullYear() + '-' +=0A=
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +=0A=
    this.getUTCDate().toPaddedString(2) + 'T' +=0A=
    this.getUTCHours().toPaddedString(2) + ':' +=0A=
    this.getUTCMinutes().toPaddedString(2) + ':' +=0A=
    this.getUTCSeconds().toPaddedString(2) + 'Z"';=0A=
};=0A=
=0A=
var Try =3D {=0A=
  these: function() {=0A=
    var returnValue;=0A=
=0A=
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      var lambda =3D arguments[i];=0A=
      try {=0A=
        returnValue =3D lambda();=0A=
        break;=0A=
      } catch (e) { }=0A=
    }=0A=
=0A=
    return returnValue;=0A=
  }=0A=
};=0A=
=0A=
RegExp.prototype.match =3D RegExp.prototype.test;=0A=
=0A=
RegExp.escape =3D function(str) {=0A=
  return String(str).replace(/([.*+?^=3D!:${}()|[\]\/\\])/g, '\\$1');=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var PeriodicalExecuter =3D Class.create({=0A=
  initialize: function(callback, frequency) {=0A=
    this.callback =3D callback;=0A=
    this.frequency =3D frequency;=0A=
    this.currentlyExecuting =3D false;=0A=
=0A=
    this.registerCallback();=0A=
  },=0A=
=0A=
  registerCallback: function() {=0A=
    this.timer =3D setInterval(this.onTimerEvent.bind(this), =
this.frequency * 1000);=0A=
  },=0A=
=0A=
  execute: function() {=0A=
    this.callback(this);=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    if (!this.timer) return;=0A=
    clearInterval(this.timer);=0A=
    this.timer =3D null;=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    if (!this.currentlyExecuting) {=0A=
      try {=0A=
        this.currentlyExecuting =3D true;=0A=
        this.execute();=0A=
      } finally {=0A=
        this.currentlyExecuting =3D false;=0A=
      }=0A=
    }=0A=
  }=0A=
});=0A=
Object.extend(String, {=0A=
  interpret: function(value) {=0A=
    return value =3D=3D null ? '' : String(value);=0A=
  },=0A=
  specialChar: {=0A=
    '\b': '\\b',=0A=
    '\t': '\\t',=0A=
    '\n': '\\n',=0A=
    '\f': '\\f',=0A=
    '\r': '\\r',=0A=
    '\\': '\\\\'=0A=
  }=0A=
});=0A=
=0A=
Object.extend(String.prototype, {=0A=
  gsub: function(pattern, replacement) {=0A=
    var result =3D '', source =3D this, match;=0A=
    replacement =3D arguments.callee.prepareReplacement(replacement);=0A=
=0A=
    while (source.length > 0) {=0A=
      if (match =3D source.match(pattern)) {=0A=
        result +=3D source.slice(0, match.index);=0A=
        result +=3D String.interpret(replacement(match));=0A=
        source  =3D source.slice(match.index + match[0].length);=0A=
      } else {=0A=
        result +=3D source, source =3D '';=0A=
      }=0A=
    }=0A=
    return result;=0A=
  },=0A=
=0A=
  sub: function(pattern, replacement, count) {=0A=
    replacement =3D this.gsub.prepareReplacement(replacement);=0A=
    count =3D Object.isUndefined(count) ? 1 : count;=0A=
=0A=
    return this.gsub(pattern, function(match) {=0A=
      if (--count < 0) return match[0];=0A=
      return replacement(match);=0A=
    });=0A=
  },=0A=
=0A=
  scan: function(pattern, iterator) {=0A=
    this.gsub(pattern, iterator);=0A=
    return String(this);=0A=
  },=0A=
=0A=
  truncate: function(length, truncation) {=0A=
    length =3D length || 30;=0A=
    truncation =3D Object.isUndefined(truncation) ? '...' : truncation;=0A=
    return this.length > length ?=0A=
      this.slice(0, length - truncation.length) + truncation : =
String(this);=0A=
  },=0A=
=0A=
  strip: function() {=0A=
    return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A=
  },=0A=
=0A=
  stripTags: function() {=0A=
    return this.replace(/<\/?[^>]+>/gi, '');=0A=
  },=0A=
=0A=
  stripScripts: function() {=0A=
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A=
  },=0A=
=0A=
  extractScripts: function() {=0A=
    var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A=
    var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A=
    return (this.match(matchAll) || []).map(function(scriptTag) {=0A=
      return (scriptTag.match(matchOne) || ['', ''])[1];=0A=
    });=0A=
  },=0A=
=0A=
  evalScripts: function() {=0A=
    return this.extractScripts().map(function(script) { return =
eval(script) });=0A=
  },=0A=
=0A=
  escapeHTML: function() {=0A=
    var self =3D arguments.callee;=0A=
    self.text.data =3D this;=0A=
    return self.div.innerHTML;=0A=
  },=0A=
=0A=
  unescapeHTML: function() {=0A=
    var div =3D new Element('div');=0A=
    div.innerHTML =3D this.stripTags();=0A=
    return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A=
      $A(div.childNodes).inject('', function(memo, node) { return =
memo+node.nodeValue }) :=0A=
      div.childNodes[0].nodeValue) : '';=0A=
  },=0A=
=0A=
  toQueryParams: function(separator) {=0A=
    var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A=
    if (!match) return { };=0A=
=0A=
    return match[1].split(separator || '&').inject({ }, function(hash, =
pair) {=0A=
      if ((pair =3D pair.split('=3D'))[0]) {=0A=
        var key =3D decodeURIComponent(pair.shift());=0A=
        var value =3D pair.length > 1 ? pair.join('=3D') : pair[0];=0A=
        if (value !=3D undefined) value =3D decodeURIComponent(value);=0A=
=0A=
        if (key in hash) {=0A=
          if (!Object.isArray(hash[key])) hash[key] =3D [hash[key]];=0A=
          hash[key].push(value);=0A=
        }=0A=
        else hash[key] =3D value;=0A=
      }=0A=
      return hash;=0A=
    });=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.split('');=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this.slice(0, this.length - 1) +=0A=
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A=
  },=0A=
=0A=
  times: function(count) {=0A=
    return count < 1 ? '' : new Array(count + 1).join(this);=0A=
  },=0A=
=0A=
  camelize: function() {=0A=
    var parts =3D this.split('-'), len =3D parts.length;=0A=
    if (len =3D=3D 1) return parts[0];=0A=
=0A=
    var camelized =3D this.charAt(0) =3D=3D '-'=0A=
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A=
      : parts[0];=0A=
=0A=
    for (var i =3D 1; i < len; i++)=0A=
      camelized +=3D parts[i].charAt(0).toUpperCase() + =
parts[i].substring(1);=0A=
=0A=
    return camelized;=0A=
  },=0A=
=0A=
  capitalize: function() {=0A=
    return this.charAt(0).toUpperCase() + =
this.substring(1).toLowerCase();=0A=
  },=0A=
=0A=
  underscore: function() {=0A=
    return this.gsub(/::/, =
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{=
1}_#{2}').gsub(/-/,'_').toLowerCase();=0A=
  },=0A=
=0A=
  dasherize: function() {=0A=
    return this.gsub(/_/,'-');=0A=
  },=0A=
=0A=
  inspect: function(useDoubleQuotes) {=0A=
    var escapedString =3D this.gsub(/[\x00-\x1f\\]/, function(match) {=0A=
      var character =3D String.specialChar[match[0]];=0A=
      return character ? character : '\\u00' + =
match[0].charCodeAt().toPaddedString(2, 16);=0A=
    });=0A=
    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') =
+ '"';=0A=
    return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    return this.inspect(true);=0A=
  },=0A=
=0A=
  unfilterJSON: function(filter) {=0A=
    return this.sub(filter || Prototype.JSONFilter, '#{1}');=0A=
  },=0A=
=0A=
  isJSON: function() {=0A=
    var str =3D this;=0A=
    if (str.blank()) return false;=0A=
    str =3D this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');=0A=
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);=0A=
  },=0A=
=0A=
  evalJSON: function(sanitize) {=0A=
    var json =3D this.unfilterJSON();=0A=
    try {=0A=
      if (!sanitize || json.isJSON()) return eval('(' + json + ')');=0A=
    } catch (e) { }=0A=
    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());=0A=
  },=0A=
=0A=
  include: function(pattern) {=0A=
    return this.indexOf(pattern) > -1;=0A=
  },=0A=
=0A=
  startsWith: function(pattern) {=0A=
    return this.indexOf(pattern) =3D=3D=3D 0;=0A=
  },=0A=
=0A=
  endsWith: function(pattern) {=0A=
    var d =3D this.length - pattern.length;=0A=
    return d >=3D 0 && this.lastIndexOf(pattern) =3D=3D=3D d;=0A=
  },=0A=
=0A=
  empty: function() {=0A=
    return this =3D=3D '';=0A=
  },=0A=
=0A=
  blank: function() {=0A=
    return /^\s*$/.test(this);=0A=
  },=0A=
=0A=
  interpolate: function(object, pattern) {=0A=
    return new Template(this, pattern).evaluate(object);=0A=
  }=0A=
});=0A=
=0A=
if (Prototype.Browser.WebKit || Prototype.Browser.IE) =
Object.extend(String.prototype, {=0A=
  escapeHTML: function() {=0A=
    return =
this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');=0A=
  },=0A=
  unescapeHTML: function() {=0A=
    return =
this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');=0A=
  }=0A=
});=0A=
=0A=
String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A=
  if (Object.isFunction(replacement)) return replacement;=0A=
  var template =3D new Template(replacement);=0A=
  return function(match) { return template.evaluate(match) };=0A=
};=0A=
=0A=
String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A=
=0A=
Object.extend(String.prototype.escapeHTML, {=0A=
  div:  document.createElement('div'),=0A=
  text: document.createTextNode('')=0A=
});=0A=
=0A=
with (String.prototype.escapeHTML) div.appendChild(text);=0A=
=0A=
var Template =3D Class.create({=0A=
  initialize: function(template, pattern) {=0A=
    this.template =3D template.toString();=0A=
    this.pattern =3D pattern || Template.Pattern;=0A=
  },=0A=
=0A=
  evaluate: function(object) {=0A=
    if (Object.isFunction(object.toTemplateReplacements))=0A=
      object =3D object.toTemplateReplacements();=0A=
=0A=
    return this.template.gsub(this.pattern, function(match) {=0A=
      if (object =3D=3D null) return '';=0A=
=0A=
      var before =3D match[1] || '';=0A=
      if (before =3D=3D '\\') return match[2];=0A=
=0A=
      var ctx =3D object, expr =3D match[3];=0A=
      var pattern =3D /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;=0A=
      match =3D pattern.exec(expr);=0A=
      if (match =3D=3D null) return before;=0A=
=0A=
      while (match !=3D null) {=0A=
        var comp =3D match[1].startsWith('[') ? match[2].gsub('\\\\]', =
']') : match[1];=0A=
        ctx =3D ctx[comp];=0A=
        if (null =3D=3D ctx || '' =3D=3D match[3]) break;=0A=
        expr =3D expr.substring('[' =3D=3D match[3] ? match[1].length : =
match[0].length);=0A=
        match =3D pattern.exec(expr);=0A=
      }=0A=
=0A=
      return before + String.interpret(ctx);=0A=
    });=0A=
  }=0A=
});=0A=
Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A=
=0A=
var $break =3D { };=0A=
=0A=
var Enumerable =3D {=0A=
  each: function(iterator, context) {=0A=
    var index =3D 0;=0A=
    iterator =3D iterator.bind(context);=0A=
    try {=0A=
      this._each(function(value) {=0A=
        iterator(value, index++);=0A=
      });=0A=
    } catch (e) {=0A=
      if (e !=3D $break) throw e;=0A=
    }=0A=
    return this;=0A=
  },=0A=
=0A=
  eachSlice: function(number, iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var index =3D -number, slices =3D [], array =3D this.toArray();=0A=
    while ((index +=3D number) < array.length)=0A=
      slices.push(array.slice(index, index+number));=0A=
    return slices.collect(iterator, context);=0A=
  },=0A=
=0A=
  all: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result =3D true;=0A=
    this.each(function(value, index) {=0A=
      result =3D result && !!iterator(value, index);=0A=
      if (!result) throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  any: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result =3D false;=0A=
    this.each(function(value, index) {=0A=
      if (result =3D !!iterator(value, index))=0A=
        throw $break;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  collect: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  detect: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index)) {=0A=
        result =3D value;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  findAll: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  grep: function(filter, iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var results =3D [];=0A=
=0A=
    if (Object.isString(filter))=0A=
      filter =3D new RegExp(filter);=0A=
=0A=
    this.each(function(value, index) {=0A=
      if (filter.match(value))=0A=
        results.push(iterator(value, index));=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  include: function(object) {=0A=
    if (Object.isFunction(this.indexOf))=0A=
      if (this.indexOf(object) !=3D -1) return true;=0A=
=0A=
    var found =3D false;=0A=
    this.each(function(value) {=0A=
      if (value =3D=3D object) {=0A=
        found =3D true;=0A=
        throw $break;=0A=
      }=0A=
    });=0A=
    return found;=0A=
  },=0A=
=0A=
  inGroupsOf: function(number, fillWith) {=0A=
    fillWith =3D Object.isUndefined(fillWith) ? null : fillWith;=0A=
    return this.eachSlice(number, function(slice) {=0A=
      while(slice.length < number) slice.push(fillWith);=0A=
      return slice;=0A=
    });=0A=
  },=0A=
=0A=
  inject: function(memo, iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    this.each(function(value, index) {=0A=
      memo =3D iterator(memo, value, index);=0A=
    });=0A=
    return memo;=0A=
  },=0A=
=0A=
  invoke: function(method) {=0A=
    var args =3D $A(arguments).slice(1);=0A=
    return this.map(function(value) {=0A=
      return value[method].apply(value, args);=0A=
    });=0A=
  },=0A=
=0A=
  max: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D iterator(value, index);=0A=
      if (result =3D=3D null || value >=3D result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  min: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var result;=0A=
    this.each(function(value, index) {=0A=
      value =3D iterator(value, index);=0A=
      if (result =3D=3D null || value < result)=0A=
        result =3D value;=0A=
    });=0A=
    return result;=0A=
  },=0A=
=0A=
  partition: function(iterator, context) {=0A=
    iterator =3D iterator ? iterator.bind(context) : Prototype.K;=0A=
    var trues =3D [], falses =3D [];=0A=
    this.each(function(value, index) {=0A=
      (iterator(value, index) ?=0A=
        trues : falses).push(value);=0A=
    });=0A=
    return [trues, falses];=0A=
  },=0A=
=0A=
  pluck: function(property) {=0A=
    var results =3D [];=0A=
    this.each(function(value) {=0A=
      results.push(value[property]);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  reject: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    var results =3D [];=0A=
    this.each(function(value, index) {=0A=
      if (!iterator(value, index))=0A=
        results.push(value);=0A=
    });=0A=
    return results;=0A=
  },=0A=
=0A=
  sortBy: function(iterator, context) {=0A=
    iterator =3D iterator.bind(context);=0A=
    return this.map(function(value, index) {=0A=
      return {value: value, criteria: iterator(value, index)};=0A=
    }).sort(function(left, right) {=0A=
      var a =3D left.criteria, b =3D right.criteria;=0A=
      return a < b ? -1 : a > b ? 1 : 0;=0A=
    }).pluck('value');=0A=
  },=0A=
=0A=
  toArray: function() {=0A=
    return this.map();=0A=
  },=0A=
=0A=
  zip: function() {=0A=
    var iterator =3D Prototype.K, args =3D $A(arguments);=0A=
    if (Object.isFunction(args.last()))=0A=
      iterator =3D args.pop();=0A=
=0A=
    var collections =3D [this].concat(args).map($A);=0A=
    return this.map(function(value, index) {=0A=
      return iterator(collections.pluck(index));=0A=
    });=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.toArray().length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '#<Enumerable:' + this.toArray().inspect() + '>';=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Enumerable, {=0A=
  map:     Enumerable.collect,=0A=
  find:    Enumerable.detect,=0A=
  select:  Enumerable.findAll,=0A=
  filter:  Enumerable.findAll,=0A=
  member:  Enumerable.include,=0A=
  entries: Enumerable.toArray,=0A=
  every:   Enumerable.all,=0A=
  some:    Enumerable.any=0A=
});=0A=
function $A(iterable) {=0A=
  if (!iterable) return [];=0A=
  if (iterable.toArray) return iterable.toArray();=0A=
  var length =3D iterable.length || 0, results =3D new Array(length);=0A=
  while (length--) results[length] =3D iterable[length];=0A=
  return results;=0A=
}=0A=
=0A=
if (Prototype.Browser.WebKit) {=0A=
  $A =3D function(iterable) {=0A=
    if (!iterable) return [];=0A=
    if (!(Object.isFunction(iterable) && iterable =3D=3D '[object =
NodeList]') &&=0A=
        iterable.toArray) return iterable.toArray();=0A=
    var length =3D iterable.length || 0, results =3D new Array(length);=0A=
    while (length--) results[length] =3D iterable[length];=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
Array.from =3D $A;=0A=
=0A=
Object.extend(Array.prototype, Enumerable);=0A=
=0A=
if (!Array.prototype._reverse) Array.prototype._reverse =3D =
Array.prototype.reverse;=0A=
=0A=
Object.extend(Array.prototype, {=0A=
  _each: function(iterator) {=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++)=0A=
      iterator(this[i]);=0A=
  },=0A=
=0A=
  clear: function() {=0A=
    this.length =3D 0;=0A=
    return this;=0A=
  },=0A=
=0A=
  first: function() {=0A=
    return this[0];=0A=
  },=0A=
=0A=
  last: function() {=0A=
    return this[this.length - 1];=0A=
  },=0A=
=0A=
  compact: function() {=0A=
    return this.select(function(value) {=0A=
      return value !=3D null;=0A=
    });=0A=
  },=0A=
=0A=
  flatten: function() {=0A=
    return this.inject([], function(array, value) {=0A=
      return array.concat(Object.isArray(value) ?=0A=
        value.flatten() : [value]);=0A=
    });=0A=
  },=0A=
=0A=
  without: function() {=0A=
    var values =3D $A(arguments);=0A=
    return this.select(function(value) {=0A=
      return !values.include(value);=0A=
    });=0A=
  },=0A=
=0A=
  reverse: function(inline) {=0A=
    return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A=
  },=0A=
=0A=
  reduce: function() {=0A=
    return this.length > 1 ? this : this[0];=0A=
  },=0A=
=0A=
  uniq: function(sorted) {=0A=
    return this.inject([], function(array, value, index) {=0A=
      if (0 =3D=3D index || (sorted ? array.last() !=3D value : =
!array.include(value)))=0A=
        array.push(value);=0A=
      return array;=0A=
    });=0A=
  },=0A=
=0A=
  intersect: function(array) {=0A=
    return this.uniq().findAll(function(item) {=0A=
      return array.detect(function(value) { return item =3D=3D=3D value =
});=0A=
    });=0A=
  },=0A=
=0A=
  clone: function() {=0A=
    return [].concat(this);=0A=
  },=0A=
=0A=
  size: function() {=0A=
    return this.length;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return '[' + this.map(Object.inspect).join(', ') + ']';=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    var results =3D [];=0A=
    this.each(function(object) {=0A=
      var value =3D Object.toJSON(object);=0A=
      if (!Object.isUndefined(value)) results.push(value);=0A=
    });=0A=
    return '[' + results.join(', ') + ']';=0A=
  }=0A=
});=0A=
=0A=
// use native browser JS 1.6 implementation if available=0A=
if (Object.isFunction(Array.prototype.forEach))=0A=
  Array.prototype._each =3D Array.prototype.forEach;=0A=
=0A=
if (!Array.prototype.indexOf) Array.prototype.indexOf =3D function(item, =
i) {=0A=
  i || (i =3D 0);=0A=
  var length =3D this.length;=0A=
  if (i < 0) i =3D length + i;=0A=
  for (; i < length; i++)=0A=
    if (this[i] =3D=3D=3D item) return i;=0A=
  return -1;=0A=
};=0A=
=0A=
if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf =3D =
function(item, i) {=0A=
  i =3D isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;=0A=
  var n =3D this.slice(0, i).reverse().indexOf(item);=0A=
  return (n < 0) ? n : i - n - 1;=0A=
};=0A=
=0A=
Array.prototype.toArray =3D Array.prototype.clone;=0A=
=0A=
function $w(string) {=0A=
  if (!Object.isString(string)) return [];=0A=
  string =3D string.strip();=0A=
  return string ? string.split(/\s+/) : [];=0A=
}=0A=
=0A=
if (Prototype.Browser.Opera){=0A=
  Array.prototype.concat =3D function() {=0A=
    var array =3D [];=0A=
    for (var i =3D 0, length =3D this.length; i < length; i++) =
array.push(this[i]);=0A=
    for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A=
      if (Object.isArray(arguments[i])) {=0A=
        for (var j =3D 0, arrayLength =3D arguments[i].length; j < =
arrayLength; j++)=0A=
          array.push(arguments[i][j]);=0A=
      } else {=0A=
        array.push(arguments[i]);=0A=
      }=0A=
    }=0A=
    return array;=0A=
  };=0A=
}=0A=
Object.extend(Number.prototype, {=0A=
  toColorPart: function() {=0A=
    return this.toPaddedString(2, 16);=0A=
  },=0A=
=0A=
  succ: function() {=0A=
    return this + 1;=0A=
  },=0A=
=0A=
  times: function(iterator) {=0A=
    $R(0, this, true).each(iterator);=0A=
    return this;=0A=
  },=0A=
=0A=
  toPaddedString: function(length, radix) {=0A=
    var string =3D this.toString(radix || 10);=0A=
    return '0'.times(length - string.length) + string;=0A=
  },=0A=
=0A=
  toJSON: function() {=0A=
    return isFinite(this) ? this.toString() : 'null';=0A=
  }=0A=
});=0A=
=0A=
$w('abs round ceil floor').each(function(method){=0A=
  Number.prototype[method] =3D Math[method].methodize();=0A=
});=0A=
function $H(object) {=0A=
  return new Hash(object);=0A=
};=0A=
=0A=
var Hash =3D Class.create(Enumerable, (function() {=0A=
=0A=
  function toQueryPair(key, value) {=0A=
    if (Object.isUndefined(value)) return key;=0A=
    return key + '=3D' + encodeURIComponent(String.interpret(value));=0A=
  }=0A=
=0A=
  return {=0A=
    initialize: function(object) {=0A=
      this._object =3D Object.isHash(object) ? object.toObject() : =
Object.clone(object);=0A=
    },=0A=
=0A=
    _each: function(iterator) {=0A=
      for (var key in this._object) {=0A=
        var value =3D this._object[key], pair =3D [key, value];=0A=
        pair.key =3D key;=0A=
        pair.value =3D value;=0A=
        iterator(pair);=0A=
      }=0A=
    },=0A=
=0A=
    set: function(key, value) {=0A=
      return this._object[key] =3D value;=0A=
    },=0A=
=0A=
    get: function(key) {=0A=
      return this._object[key];=0A=
    },=0A=
=0A=
    unset: function(key) {=0A=
      var value =3D this._object[key];=0A=
      delete this._object[key];=0A=
      return value;=0A=
    },=0A=
=0A=
    toObject: function() {=0A=
      return Object.clone(this._object);=0A=
    },=0A=
=0A=
    keys: function() {=0A=
      return this.pluck('key');=0A=
    },=0A=
=0A=
    values: function() {=0A=
      return this.pluck('value');=0A=
    },=0A=
=0A=
    index: function(value) {=0A=
      var match =3D this.detect(function(pair) {=0A=
        return pair.value =3D=3D=3D value;=0A=
      });=0A=
      return match && match.key;=0A=
    },=0A=
=0A=
    merge: function(object) {=0A=
      return this.clone().update(object);=0A=
    },=0A=
=0A=
    update: function(object) {=0A=
      return new Hash(object).inject(this, function(result, pair) {=0A=
        result.set(pair.key, pair.value);=0A=
        return result;=0A=
      });=0A=
    },=0A=
=0A=
    toQueryString: function() {=0A=
      return this.map(function(pair) {=0A=
        var key =3D encodeURIComponent(pair.key), values =3D pair.value;=0A=
=0A=
        if (values && typeof values =3D=3D 'object') {=0A=
          if (Object.isArray(values))=0A=
            return values.map(toQueryPair.curry(key)).join('&');=0A=
        }=0A=
        return toQueryPair(key, values);=0A=
      }).join('&');=0A=
    },=0A=
=0A=
    inspect: function() {=0A=
      return '#<Hash:{' + this.map(function(pair) {=0A=
        return pair.map(Object.inspect).join(': ');=0A=
      }).join(', ') + '}>';=0A=
    },=0A=
=0A=
    toJSON: function() {=0A=
      return Object.toJSON(this.toObject());=0A=
    },=0A=
=0A=
    clone: function() {=0A=
      return new Hash(this);=0A=
    }=0A=
  }=0A=
})());=0A=
=0A=
Hash.prototype.toTemplateReplacements =3D Hash.prototype.toObject;=0A=
Hash.from =3D $H;=0A=
var ObjectRange =3D Class.create(Enumerable, {=0A=
  initialize: function(start, end, exclusive) {=0A=
    this.start =3D start;=0A=
    this.end =3D end;=0A=
    this.exclusive =3D exclusive;=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    var value =3D this.start;=0A=
    while (this.include(value)) {=0A=
      iterator(value);=0A=
      value =3D value.succ();=0A=
    }=0A=
  },=0A=
=0A=
  include: function(value) {=0A=
    if (value < this.start)=0A=
      return false;=0A=
    if (this.exclusive)=0A=
      return value < this.end;=0A=
    return value <=3D this.end;=0A=
  }=0A=
});=0A=
=0A=
var $R =3D function(start, end, exclusive) {=0A=
  return new ObjectRange(start, end, exclusive);=0A=
};=0A=
=0A=
var Ajax =3D {=0A=
  getTransport: function() {=0A=
    return Try.these(=0A=
      function() {return new XMLHttpRequest()},=0A=
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A=
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A=
    ) || false;=0A=
  },=0A=
=0A=
  activeRequestCount: 0=0A=
};=0A=
=0A=
Ajax.Responders =3D {=0A=
  responders: [],=0A=
=0A=
  _each: function(iterator) {=0A=
    this.responders._each(iterator);=0A=
  },=0A=
=0A=
  register: function(responder) {=0A=
    if (!this.include(responder))=0A=
      this.responders.push(responder);=0A=
  },=0A=
=0A=
  unregister: function(responder) {=0A=
    this.responders =3D this.responders.without(responder);=0A=
  },=0A=
=0A=
  dispatch: function(callback, request, transport, json) {=0A=
    this.each(function(responder) {=0A=
      if (Object.isFunction(responder[callback])) {=0A=
        try {=0A=
          responder[callback].apply(responder, [request, transport, =
json]);=0A=
        } catch (e) { }=0A=
      }=0A=
    });=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Ajax.Responders, Enumerable);=0A=
=0A=
Ajax.Responders.register({=0A=
  onCreate:   function() { Ajax.activeRequestCount++ },=0A=
  onComplete: function() { Ajax.activeRequestCount-- }=0A=
});=0A=
=0A=
Ajax.Base =3D Class.create({=0A=
  initialize: function(options) {=0A=
    this.options =3D {=0A=
      method:       'post',=0A=
      asynchronous: true,=0A=
      contentType:  'application/x-www-form-urlencoded',=0A=
      encoding:     'UTF-8',=0A=
      parameters:   '',=0A=
      evalJSON:     true,=0A=
      evalJS:       true=0A=
    };=0A=
    Object.extend(this.options, options || { });=0A=
=0A=
    this.options.method =3D this.options.method.toLowerCase();=0A=
=0A=
    if (Object.isString(this.options.parameters))=0A=
      this.options.parameters =3D =
this.options.parameters.toQueryParams();=0A=
    else if (Object.isHash(this.options.parameters))=0A=
      this.options.parameters =3D this.options.parameters.toObject();=0A=
  }=0A=
});=0A=
=0A=
Ajax.Request =3D Class.create(Ajax.Base, {=0A=
  _complete: false,=0A=
=0A=
  initialize: function($super, url, options) {=0A=
    $super(options);=0A=
    this.transport =3D Ajax.getTransport();=0A=
    this.request(url);=0A=
  },=0A=
=0A=
  request: function(url) {=0A=
    this.url =3D url;=0A=
    this.method =3D this.options.method;=0A=
    var params =3D Object.clone(this.options.parameters);=0A=
=0A=
    if (!['get', 'post'].include(this.method)) {=0A=
      // simulate other verbs over post=0A=
      params['_method'] =3D this.method;=0A=
      this.method =3D 'post';=0A=
    }=0A=
=0A=
    this.parameters =3D params;=0A=
=0A=
    if (params =3D Object.toQueryString(params)) {=0A=
      // when GET, append parameters to URL=0A=
      if (this.method =3D=3D 'get')=0A=
        this.url +=3D (this.url.include('?') ? '&' : '?') + params;=0A=
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A=
        params +=3D '&_=3D';=0A=
    }=0A=
=0A=
    try {=0A=
      var response =3D new Ajax.Response(this);=0A=
      if (this.options.onCreate) this.options.onCreate(response);=0A=
      Ajax.Responders.dispatch('onCreate', this, response);=0A=
=0A=
      this.transport.open(this.method.toUpperCase(), this.url,=0A=
        this.options.asynchronous);=0A=
=0A=
      if (this.options.asynchronous) =
this.respondToReadyState.bind(this).defer(1);=0A=
=0A=
      this.transport.onreadystatechange =3D =
this.onStateChange.bind(this);=0A=
      this.setRequestHeaders();=0A=
=0A=
      this.body =3D this.method =3D=3D 'post' ? (this.options.postBody =
|| params) : null;=0A=
      this.transport.send(this.body);=0A=
=0A=
      /* Force Firefox to handle ready state 4 for synchronous requests =
*/=0A=
      if (!this.options.asynchronous && this.transport.overrideMimeType)=0A=
        this.onStateChange();=0A=
=0A=
    }=0A=
    catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  onStateChange: function() {=0A=
    var readyState =3D this.transport.readyState;=0A=
    if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A=
      this.respondToReadyState(this.transport.readyState);=0A=
  },=0A=
=0A=
  setRequestHeaders: function() {=0A=
    var headers =3D {=0A=
      'X-Requested-With': 'XMLHttpRequest',=0A=
      'X-Prototype-Version': Prototype.Version,=0A=
      'Accept': 'text/javascript, text/html, application/xml, text/xml, =
*/*'=0A=
    };=0A=
=0A=
    if (this.method =3D=3D 'post') {=0A=
      headers['Content-type'] =3D this.options.contentType +=0A=
        (this.options.encoding ? '; charset=3D' + this.options.encoding =
: '');=0A=
=0A=
      /* Force "Connection: close" for older Mozilla browsers to work=0A=
       * around a bug where XMLHttpRequest sends an incorrect=0A=
       * Content-length header. See Mozilla Bugzilla #246651.=0A=
       */=0A=
      if (this.transport.overrideMimeType &&=0A=
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < =
2005)=0A=
            headers['Connection'] =3D 'close';=0A=
    }=0A=
=0A=
    // user-defined headers=0A=
    if (typeof this.options.requestHeaders =3D=3D 'object') {=0A=
      var extras =3D this.options.requestHeaders;=0A=
=0A=
      if (Object.isFunction(extras.push))=0A=
        for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A=
          headers[extras[i]] =3D extras[i+1];=0A=
      else=0A=
        $H(extras).each(function(pair) { headers[pair.key] =3D =
pair.value });=0A=
    }=0A=
=0A=
    for (var name in headers)=0A=
      this.transport.setRequestHeader(name, headers[name]);=0A=
  },=0A=
=0A=
  success: function() {=0A=
    var status =3D this.getStatus();=0A=
    return !status || (status >=3D 200 && status < 300);=0A=
  },=0A=
=0A=
  getStatus: function() {=0A=
    try {=0A=
      return this.transport.status || 0;=0A=
    } catch (e) { return 0 }=0A=
  },=0A=
=0A=
  respondToReadyState: function(readyState) {=0A=
    var state =3D Ajax.Request.Events[readyState], response =3D new =
Ajax.Response(this);=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      try {=0A=
        this._complete =3D true;=0A=
        (this.options['on' + response.status]=0A=
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A=
         || Prototype.emptyFunction)(response, response.headerJSON);=0A=
      } catch (e) {=0A=
        this.dispatchException(e);=0A=
      }=0A=
=0A=
      var contentType =3D response.getHeader('Content-type');=0A=
      if (this.options.evalJS =3D=3D 'force'=0A=
          || (this.options.evalJS && this.isSameOrigin() && contentType=0A=
          && =
contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s=
*$/i)))=0A=
        this.evalResponse();=0A=
    }=0A=
=0A=
    try {=0A=
      (this.options['on' + state] || Prototype.emptyFunction)(response, =
response.headerJSON);=0A=
      Ajax.Responders.dispatch('on' + state, this, response, =
response.headerJSON);=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
=0A=
    if (state =3D=3D 'Complete') {=0A=
      // avoid memory leak in MSIE: clean up=0A=
      this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A=
    }=0A=
  },=0A=
=0A=
  isSameOrigin: function() {=0A=
    var m =3D this.url.match(/^\s*https?:\/\/[^\/]*/);=0A=
    return !m || (m[0] =3D=3D =
'#{protocol}//#{domain}#{port}'.interpolate({=0A=
      protocol: location.protocol,=0A=
      domain: document.domain,=0A=
      port: location.port ? ':' + location.port : ''=0A=
    }));=0A=
  },=0A=
=0A=
  getHeader: function(name) {=0A=
    try {=0A=
      return this.transport.getResponseHeader(name) || null;=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  evalResponse: function() {=0A=
    try {=0A=
      return eval((this.transport.responseText || '').unfilterJSON());=0A=
    } catch (e) {=0A=
      this.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  dispatchException: function(exception) {=0A=
    (this.options.onException || Prototype.emptyFunction)(this, =
exception);=0A=
    Ajax.Responders.dispatch('onException', this, exception);=0A=
  }=0A=
});=0A=
=0A=
Ajax.Request.Events =3D=0A=
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A=
=0A=
Ajax.Response =3D Class.create({=0A=
  initialize: function(request){=0A=
    this.request =3D request;=0A=
    var transport  =3D this.transport  =3D request.transport,=0A=
        readyState =3D this.readyState =3D transport.readyState;=0A=
=0A=
    if((readyState > 2 && !Prototype.Browser.IE) || readyState =3D=3D 4) =
{=0A=
      this.status       =3D this.getStatus();=0A=
      this.statusText   =3D this.getStatusText();=0A=
      this.responseText =3D String.interpret(transport.responseText);=0A=
      this.headerJSON   =3D this._getHeaderJSON();=0A=
    }=0A=
=0A=
    if(readyState =3D=3D 4) {=0A=
      var xml =3D transport.responseXML;=0A=
      this.responseXML  =3D Object.isUndefined(xml) ? null : xml;=0A=
      this.responseJSON =3D this._getResponseJSON();=0A=
    }=0A=
  },=0A=
=0A=
  status:      0,=0A=
  statusText: '',=0A=
=0A=
  getStatus: Ajax.Request.prototype.getStatus,=0A=
=0A=
  getStatusText: function() {=0A=
    try {=0A=
      return this.transport.statusText || '';=0A=
    } catch (e) { return '' }=0A=
  },=0A=
=0A=
  getHeader: Ajax.Request.prototype.getHeader,=0A=
=0A=
  getAllHeaders: function() {=0A=
    try {=0A=
      return this.getAllResponseHeaders();=0A=
    } catch (e) { return null }=0A=
  },=0A=
=0A=
  getResponseHeader: function(name) {=0A=
    return this.transport.getResponseHeader(name);=0A=
  },=0A=
=0A=
  getAllResponseHeaders: function() {=0A=
    return this.transport.getAllResponseHeaders();=0A=
  },=0A=
=0A=
  _getHeaderJSON: function() {=0A=
    var json =3D this.getHeader('X-JSON');=0A=
    if (!json) return null;=0A=
    json =3D decodeURIComponent(escape(json));=0A=
    try {=0A=
      return json.evalJSON(this.request.options.sanitizeJSON ||=0A=
        !this.request.isSameOrigin());=0A=
    } catch (e) {=0A=
      this.request.dispatchException(e);=0A=
    }=0A=
  },=0A=
=0A=
  _getResponseJSON: function() {=0A=
    var options =3D this.request.options;=0A=
    if (!options.evalJSON || (options.evalJSON !=3D 'force' &&=0A=
      !(this.getHeader('Content-type') || =
'').include('application/json')) ||=0A=
        this.responseText.blank())=0A=
          return null;=0A=
    try {=0A=
      return this.responseText.evalJSON(options.sanitizeJSON ||=0A=
        !this.request.isSameOrigin());=0A=
    } catch (e) {=0A=
      this.request.dispatchException(e);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.Updater =3D Class.create(Ajax.Request, {=0A=
  initialize: function($super, container, url, options) {=0A=
    this.container =3D {=0A=
      success: (container.success || container),=0A=
      failure: (container.failure || (container.success ? null : =
container))=0A=
    };=0A=
=0A=
    options =3D Object.clone(options);=0A=
    var onComplete =3D options.onComplete;=0A=
    options.onComplete =3D (function(response, json) {=0A=
      this.updateContent(response.responseText);=0A=
      if (Object.isFunction(onComplete)) onComplete(response, json);=0A=
    }).bind(this);=0A=
=0A=
    $super(url, options);=0A=
  },=0A=
=0A=
  updateContent: function(responseText) {=0A=
    var receiver =3D this.container[this.success() ? 'success' : =
'failure'],=0A=
        options =3D this.options;=0A=
=0A=
    if (!options.evalScripts) responseText =3D =
responseText.stripScripts();=0A=
=0A=
    if (receiver =3D $(receiver)) {=0A=
      if (options.insertion) {=0A=
        if (Object.isString(options.insertion)) {=0A=
          var insertion =3D { }; insertion[options.insertion] =3D =
responseText;=0A=
          receiver.insert(insertion);=0A=
        }=0A=
        else options.insertion(receiver, responseText);=0A=
      }=0A=
      else receiver.update(responseText);=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Ajax.PeriodicalUpdater =3D Class.create(Ajax.Base, {=0A=
  initialize: function($super, container, url, options) {=0A=
    $super(options);=0A=
    this.onComplete =3D this.options.onComplete;=0A=
=0A=
    this.frequency =3D (this.options.frequency || 2);=0A=
    this.decay =3D (this.options.decay || 1);=0A=
=0A=
    this.updater =3D { };=0A=
    this.container =3D container;=0A=
    this.url =3D url;=0A=
=0A=
    this.start();=0A=
  },=0A=
=0A=
  start: function() {=0A=
    this.options.onComplete =3D this.updateComplete.bind(this);=0A=
    this.onTimerEvent();=0A=
  },=0A=
=0A=
  stop: function() {=0A=
    this.updater.options.onComplete =3D undefined;=0A=
    clearTimeout(this.timer);=0A=
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A=
  },=0A=
=0A=
  updateComplete: function(response) {=0A=
    if (this.options.decay) {=0A=
      this.decay =3D (response.responseText =3D=3D this.lastText ?=0A=
        this.decay * this.options.decay : 1);=0A=
=0A=
      this.lastText =3D response.responseText;=0A=
    }=0A=
    this.timer =3D this.onTimerEvent.bind(this).delay(this.decay * =
this.frequency);=0A=
  },=0A=
=0A=
  onTimerEvent: function() {=0A=
    this.updater =3D new Ajax.Updater(this.container, this.url, =
this.options);=0A=
  }=0A=
});=0A=
function $(element) {=0A=
  if (arguments.length > 1) {=0A=
    for (var i =3D 0, elements =3D [], length =3D arguments.length; i < =
length; i++)=0A=
      elements.push($(arguments[i]));=0A=
    return elements;=0A=
  }=0A=
  if (Object.isString(element))=0A=
    element =3D document.getElementById(element);=0A=
  return Element.extend(element);=0A=
}=0A=
=0A=
if (Prototype.BrowserFeatures.XPath) {=0A=
  document._getElementsByXPath =3D function(expression, parentElement) {=0A=
    var results =3D [];=0A=
    var query =3D document.evaluate(expression, $(parentElement) || =
document,=0A=
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A=
    for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A=
      results.push(Element.extend(query.snapshotItem(i)));=0A=
    return results;=0A=
  };=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!window.Node) var Node =3D { };=0A=
=0A=
if (!Node.ELEMENT_NODE) {=0A=
  // DOM level 2 ECMAScript Language Binding=0A=
  Object.extend(Node, {=0A=
    ELEMENT_NODE: 1,=0A=
    ATTRIBUTE_NODE: 2,=0A=
    TEXT_NODE: 3,=0A=
    CDATA_SECTION_NODE: 4,=0A=
    ENTITY_REFERENCE_NODE: 5,=0A=
    ENTITY_NODE: 6,=0A=
    PROCESSING_INSTRUCTION_NODE: 7,=0A=
    COMMENT_NODE: 8,=0A=
    DOCUMENT_NODE: 9,=0A=
    DOCUMENT_TYPE_NODE: 10,=0A=
    DOCUMENT_FRAGMENT_NODE: 11,=0A=
    NOTATION_NODE: 12=0A=
  });=0A=
}=0A=
=0A=
(function() {=0A=
  var element =3D this.Element;=0A=
  this.Element =3D function(tagName, attributes) {=0A=
    attributes =3D attributes || { };=0A=
    tagName =3D tagName.toLowerCase();=0A=
    var cache =3D Element.cache;=0A=
    if (Prototype.Browser.IE && attributes.name) {=0A=
      tagName =3D '<' + tagName + ' name=3D"' + attributes.name + '">';=0A=
      delete attributes.name;=0A=
      return Element.writeAttribute(document.createElement(tagName), =
attributes);=0A=
    }=0A=
    if (!cache[tagName]) cache[tagName] =3D =
Element.extend(document.createElement(tagName));=0A=
    return Element.writeAttribute(cache[tagName].cloneNode(false), =
attributes);=0A=
  };=0A=
  Object.extend(this.Element, element || { });=0A=
}).call(window);=0A=
=0A=
Element.cache =3D { };=0A=
=0A=
Element.Methods =3D {=0A=
  visible: function(element) {=0A=
    return $(element).style.display !=3D 'none';=0A=
  },=0A=
=0A=
  toggle: function(element) {=0A=
    element =3D $(element);=0A=
    Element[Element.visible(element) ? 'hide' : 'show'](element);=0A=
    return element;=0A=
  },=0A=
=0A=
  hide: function(element) {=0A=
    $(element).style.display =3D 'none';=0A=
    return element;=0A=
  },=0A=
=0A=
  show: function(element) {=0A=
    $(element).style.display =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  remove: function(element) {=0A=
    element =3D $(element);=0A=
    element.parentNode.removeChild(element);=0A=
    return element;=0A=
  },=0A=
=0A=
  update: function(element, content) {=0A=
    element =3D $(element);=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) return =
element.update().insert(content);=0A=
    content =3D Object.toHTML(content);=0A=
    element.innerHTML =3D content.stripScripts();=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  },=0A=
=0A=
  replace: function(element, content) {=0A=
    element =3D $(element);=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    else if (!Object.isElement(content)) {=0A=
      content =3D Object.toHTML(content);=0A=
      var range =3D element.ownerDocument.createRange();=0A=
      range.selectNode(element);=0A=
      content.evalScripts.bind(content).defer();=0A=
      content =3D range.createContextualFragment(content.stripScripts());=0A=
    }=0A=
    element.parentNode.replaceChild(content, element);=0A=
    return element;=0A=
  },=0A=
=0A=
  insert: function(element, insertions) {=0A=
    element =3D $(element);=0A=
=0A=
    if (Object.isString(insertions) || Object.isNumber(insertions) ||=0A=
        Object.isElement(insertions) || (insertions && =
(insertions.toElement || insertions.toHTML)))=0A=
          insertions =3D {bottom:insertions};=0A=
=0A=
    var content, insert, tagName, childNodes;=0A=
=0A=
    for (var position in insertions) {=0A=
      content  =3D insertions[position];=0A=
      position =3D position.toLowerCase();=0A=
      insert =3D Element._insertionTranslations[position];=0A=
=0A=
      if (content && content.toElement) content =3D content.toElement();=0A=
      if (Object.isElement(content)) {=0A=
        insert(element, content);=0A=
        continue;=0A=
      }=0A=
=0A=
      content =3D Object.toHTML(content);=0A=
=0A=
      tagName =3D ((position =3D=3D 'before' || position =3D=3D 'after')=0A=
        ? element.parentNode : element).tagName.toUpperCase();=0A=
=0A=
      childNodes =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());=0A=
=0A=
      if (position =3D=3D 'top' || position =3D=3D 'after') =
childNodes.reverse();=0A=
      childNodes.each(insert.curry(element));=0A=
=0A=
      content.evalScripts.bind(content).defer();=0A=
    }=0A=
=0A=
    return element;=0A=
  },=0A=
=0A=
  wrap: function(element, wrapper, attributes) {=0A=
    element =3D $(element);=0A=
    if (Object.isElement(wrapper))=0A=
      $(wrapper).writeAttribute(attributes || { });=0A=
    else if (Object.isString(wrapper)) wrapper =3D new Element(wrapper, =
attributes);=0A=
    else wrapper =3D new Element('div', wrapper);=0A=
    if (element.parentNode)=0A=
      element.parentNode.replaceChild(wrapper, element);=0A=
    wrapper.appendChild(element);=0A=
    return wrapper;=0A=
  },=0A=
=0A=
  inspect: function(element) {=0A=
    element =3D $(element);=0A=
    var result =3D '<' + element.tagName.toLowerCase();=0A=
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A=
      var property =3D pair.first(), attribute =3D pair.last();=0A=
      var value =3D (element[property] || '').toString();=0A=
      if (value) result +=3D ' ' + attribute + '=3D' + =
value.inspect(true);=0A=
    });=0A=
    return result + '>';=0A=
  },=0A=
=0A=
  recursivelyCollect: function(element, property) {=0A=
    element =3D $(element);=0A=
    var elements =3D [];=0A=
    while (element =3D element[property])=0A=
      if (element.nodeType =3D=3D 1)=0A=
        elements.push(Element.extend(element));=0A=
    return elements;=0A=
  },=0A=
=0A=
  ancestors: function(element) {=0A=
    return $(element).recursivelyCollect('parentNode');=0A=
  },=0A=
=0A=
  descendants: function(element) {=0A=
    return $(element).select("*");=0A=
  },=0A=
=0A=
  firstDescendant: function(element) {=0A=
    element =3D $(element).firstChild;=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    return $(element);=0A=
  },=0A=
=0A=
  immediateDescendants: function(element) {=0A=
    if (!(element =3D $(element).firstChild)) return [];=0A=
    while (element && element.nodeType !=3D 1) element =3D =
element.nextSibling;=0A=
    if (element) return [element].concat($(element).nextSiblings());=0A=
    return [];=0A=
  },=0A=
=0A=
  previousSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('previousSibling');=0A=
  },=0A=
=0A=
  nextSiblings: function(element) {=0A=
    return $(element).recursivelyCollect('nextSibling');=0A=
  },=0A=
=0A=
  siblings: function(element) {=0A=
    element =3D $(element);=0A=
    return =
element.previousSiblings().reverse().concat(element.nextSiblings());=0A=
  },=0A=
=0A=
  match: function(element, selector) {=0A=
    if (Object.isString(selector))=0A=
      selector =3D new Selector(selector);=0A=
    return selector.match($(element));=0A=
  },=0A=
=0A=
  up: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return $(element.parentNode);=0A=
    var ancestors =3D element.ancestors();=0A=
    return Object.isNumber(expression) ? ancestors[expression] :=0A=
      Selector.findElement(ancestors, expression, index);=0A=
  },=0A=
=0A=
  down: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return element.firstDescendant();=0A=
    return Object.isNumber(expression) ? =
element.descendants()[expression] :=0A=
      element.select(expression)[index || 0];=0A=
  },=0A=
=0A=
  previous: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.previousElementSibling(element));=0A=
    var previousSiblings =3D element.previousSiblings();=0A=
    return Object.isNumber(expression) ? previousSiblings[expression] :=0A=
      Selector.findElement(previousSiblings, expression, index);=0A=
  },=0A=
=0A=
  next: function(element, expression, index) {=0A=
    element =3D $(element);=0A=
    if (arguments.length =3D=3D 1) return =
$(Selector.handlers.nextElementSibling(element));=0A=
    var nextSiblings =3D element.nextSiblings();=0A=
    return Object.isNumber(expression) ? nextSiblings[expression] :=0A=
      Selector.findElement(nextSiblings, expression, index);=0A=
  },=0A=
=0A=
  select: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element, args);=0A=
  },=0A=
=0A=
  adjacent: function() {=0A=
    var args =3D $A(arguments), element =3D $(args.shift());=0A=
    return Selector.findChildElements(element.parentNode, =
args).without(element);=0A=
  },=0A=
=0A=
  identify: function(element) {=0A=
    element =3D $(element);=0A=
    var id =3D element.readAttribute('id'), self =3D arguments.callee;=0A=
    if (id) return id;=0A=
    do { id =3D 'anonymous_element_' + self.counter++ } while ($(id));=0A=
    element.writeAttribute('id', id);=0A=
    return id;=0A=
  },=0A=
=0A=
  readAttribute: function(element, name) {=0A=
    element =3D $(element);=0A=
    if (Prototype.Browser.IE) {=0A=
      var t =3D Element._attributeTranslations.read;=0A=
      if (t.values[name]) return t.values[name](element, name);=0A=
      if (t.names[name]) name =3D t.names[name];=0A=
      if (name.include(':')) {=0A=
        return (!element.attributes || !element.attributes[name]) ? null =
:=0A=
         element.attributes[name].value;=0A=
      }=0A=
    }=0A=
    return element.getAttribute(name);=0A=
  },=0A=
=0A=
  writeAttribute: function(element, name, value) {=0A=
    element =3D $(element);=0A=
    var attributes =3D { }, t =3D Element._attributeTranslations.write;=0A=
=0A=
    if (typeof name =3D=3D 'object') attributes =3D name;=0A=
    else attributes[name] =3D Object.isUndefined(value) ? true : value;=0A=
=0A=
    for (var attr in attributes) {=0A=
      name =3D t.names[attr] || attr;=0A=
      value =3D attributes[attr];=0A=
      if (t.values[attr]) name =3D t.values[attr](element, value);=0A=
      if (value =3D=3D=3D false || value =3D=3D=3D null)=0A=
        element.removeAttribute(name);=0A=
      else if (value =3D=3D=3D true)=0A=
        element.setAttribute(name, name);=0A=
      else element.setAttribute(name, value);=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  getHeight: function(element) {=0A=
    return $(element).getDimensions().height;=0A=
  },=0A=
=0A=
  getWidth: function(element) {=0A=
    return $(element).getDimensions().width;=0A=
  },=0A=
=0A=
  classNames: function(element) {=0A=
    return new Element.ClassNames(element);=0A=
  },=0A=
=0A=
  hasClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    var elementClassName =3D element.className;=0A=
    return (elementClassName.length > 0 && (elementClassName =3D=3D =
className ||=0A=
      new RegExp("(^|\\s)" + className + =
"(\\s|$)").test(elementClassName)));=0A=
  },=0A=
=0A=
  addClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    if (!element.hasClassName(className))=0A=
      element.className +=3D (element.className ? ' ' : '') + className;=0A=
    return element;=0A=
  },=0A=
=0A=
  removeClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    element.className =3D element.className.replace(=0A=
      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();=0A=
    return element;=0A=
  },=0A=
=0A=
  toggleClassName: function(element, className) {=0A=
    if (!(element =3D $(element))) return;=0A=
    return element[element.hasClassName(className) ?=0A=
      'removeClassName' : 'addClassName'](className);=0A=
  },=0A=
=0A=
  // removes whitespace-only text node children=0A=
  cleanWhitespace: function(element) {=0A=
    element =3D $(element);=0A=
    var node =3D element.firstChild;=0A=
    while (node) {=0A=
      var nextNode =3D node.nextSibling;=0A=
      if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A=
        element.removeChild(node);=0A=
      node =3D nextNode;=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  empty: function(element) {=0A=
    return $(element).innerHTML.blank();=0A=
  },=0A=
=0A=
  descendantOf: function(element, ancestor) {=0A=
    element =3D $(element), ancestor =3D $(ancestor);=0A=
    var originalAncestor =3D ancestor;=0A=
=0A=
    if (element.compareDocumentPosition)=0A=
      return (element.compareDocumentPosition(ancestor) & 8) =3D=3D=3D 8;=0A=
=0A=
    if (element.sourceIndex && !Prototype.Browser.Opera) {=0A=
      var e =3D element.sourceIndex, a =3D ancestor.sourceIndex,=0A=
       nextAncestor =3D ancestor.nextSibling;=0A=
      if (!nextAncestor) {=0A=
        do { ancestor =3D ancestor.parentNode; }=0A=
        while (!(nextAncestor =3D ancestor.nextSibling) && =
ancestor.parentNode);=0A=
      }=0A=
      if (nextAncestor && nextAncestor.sourceIndex)=0A=
       return (e > a && e < nextAncestor.sourceIndex);=0A=
    }=0A=
=0A=
    while (element =3D element.parentNode)=0A=
      if (element =3D=3D originalAncestor) return true;=0A=
    return false;=0A=
  },=0A=
=0A=
  scrollTo: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D element.cumulativeOffset();=0A=
    window.scrollTo(pos[0], pos[1]);=0A=
    return element;=0A=
  },=0A=
=0A=
  getStyle: function(element, style) {=0A=
    element =3D $(element);=0A=
    style =3D style =3D=3D 'float' ? 'cssFloat' : style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value) {=0A=
      var css =3D document.defaultView.getComputedStyle(element, null);=0A=
      value =3D css ? css[style] : null;=0A=
    }=0A=
    if (style =3D=3D 'opacity') return value ? parseFloat(value) : 1.0;=0A=
    return value =3D=3D 'auto' ? null : value;=0A=
  },=0A=
=0A=
  getOpacity: function(element) {=0A=
    return $(element).getStyle('opacity');=0A=
  },=0A=
=0A=
  setStyle: function(element, styles) {=0A=
    element =3D $(element);=0A=
    var elementStyle =3D element.style, match;=0A=
    if (Object.isString(styles)) {=0A=
      element.style.cssText +=3D ';' + styles;=0A=
      return styles.include('opacity') ?=0A=
        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : =
element;=0A=
    }=0A=
    for (var property in styles)=0A=
      if (property =3D=3D 'opacity') =
element.setOpacity(styles[property]);=0A=
      else=0A=
        elementStyle[(property =3D=3D 'float' || property =3D=3D =
'cssFloat') ?=0A=
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : =
'styleFloat') :=0A=
            property] =3D styles[property];=0A=
=0A=
    return element;=0A=
  },=0A=
=0A=
  setOpacity: function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :=0A=
      (value < 0.00001) ? 0 : value;=0A=
    return element;=0A=
  },=0A=
=0A=
  getDimensions: function(element) {=0A=
    element =3D $(element);=0A=
    var display =3D $(element).getStyle('display');=0A=
    if (display !=3D 'none' && display !=3D null) // Safari bug=0A=
      return {width: element.offsetWidth, height: element.offsetHeight};=0A=
=0A=
    // All *Width and *Height properties give 0 on elements with display =
none,=0A=
    // so enable the element temporarily=0A=
    var els =3D element.style;=0A=
    var originalVisibility =3D els.visibility;=0A=
    var originalPosition =3D els.position;=0A=
    var originalDisplay =3D els.display;=0A=
    els.visibility =3D 'hidden';=0A=
    els.position =3D 'absolute';=0A=
    els.display =3D 'block';=0A=
    var originalWidth =3D element.clientWidth;=0A=
    var originalHeight =3D element.clientHeight;=0A=
    els.display =3D originalDisplay;=0A=
    els.position =3D originalPosition;=0A=
    els.visibility =3D originalVisibility;=0A=
    return {width: originalWidth, height: originalHeight};=0A=
  },=0A=
=0A=
  makePositioned: function(element) {=0A=
    element =3D $(element);=0A=
    var pos =3D Element.getStyle(element, 'position');=0A=
    if (pos =3D=3D 'static' || !pos) {=0A=
      element._madePositioned =3D true;=0A=
      element.style.position =3D 'relative';=0A=
      // Opera returns the offset relative to the positioning context, =
when an=0A=
      // element is position relative but top and left have not been =
defined=0A=
      if (window.opera) {=0A=
        element.style.top =3D 0;=0A=
        element.style.left =3D 0;=0A=
      }=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  undoPositioned: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._madePositioned) {=0A=
      element._madePositioned =3D undefined;=0A=
      element.style.position =3D=0A=
        element.style.top =3D=0A=
        element.style.left =3D=0A=
        element.style.bottom =3D=0A=
        element.style.right =3D '';=0A=
    }=0A=
    return element;=0A=
  },=0A=
=0A=
  makeClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (element._overflow) return element;=0A=
    element._overflow =3D Element.getStyle(element, 'overflow') || =
'auto';=0A=
    if (element._overflow !=3D=3D 'hidden')=0A=
      element.style.overflow =3D 'hidden';=0A=
    return element;=0A=
  },=0A=
=0A=
  undoClipping: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element._overflow) return element;=0A=
    element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : =
element._overflow;=0A=
    element._overflow =3D null;=0A=
    return element;=0A=
  },=0A=
=0A=
  cumulativeOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  positionedOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      element =3D element.offsetParent;=0A=
      if (element) {=0A=
        if (element.tagName =3D=3D 'BODY') break;=0A=
        var p =3D Element.getStyle(element, 'position');=0A=
        if (p !=3D=3D 'static') break;=0A=
      }=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  absolutize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.getStyle('position') =3D=3D 'absolute') return;=0A=
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.=0A=
=0A=
    var offsets =3D element.positionedOffset();=0A=
    var top     =3D offsets[1];=0A=
    var left    =3D offsets[0];=0A=
    var width   =3D element.clientWidth;=0A=
    var height  =3D element.clientHeight;=0A=
=0A=
    element._originalLeft   =3D left - parseFloat(element.style.left  || =
0);=0A=
    element._originalTop    =3D top  - parseFloat(element.style.top || =
0);=0A=
    element._originalWidth  =3D element.style.width;=0A=
    element._originalHeight =3D element.style.height;=0A=
=0A=
    element.style.position =3D 'absolute';=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.width  =3D width + 'px';=0A=
    element.style.height =3D height + 'px';=0A=
    return element;=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    element =3D $(element);=0A=
    if (element.getStyle('position') =3D=3D 'relative') return;=0A=
    // Position.prepare(); // To be done manually by Scripty when it =
needs it.=0A=
=0A=
    element.style.position =3D 'relative';=0A=
    var top  =3D parseFloat(element.style.top  || 0) - =
(element._originalTop || 0);=0A=
    var left =3D parseFloat(element.style.left || 0) - =
(element._originalLeft || 0);=0A=
=0A=
    element.style.top    =3D top + 'px';=0A=
    element.style.left   =3D left + 'px';=0A=
    element.style.height =3D element._originalHeight;=0A=
    element.style.width  =3D element._originalWidth;=0A=
    return element;=0A=
  },=0A=
=0A=
  cumulativeScrollOffset: function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.scrollTop  || 0;=0A=
      valueL +=3D element.scrollLeft || 0;=0A=
      element =3D element.parentNode;=0A=
    } while (element);=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  getOffsetParent: function(element) {=0A=
    if (element.offsetParent) return $(element.offsetParent);=0A=
    if (element =3D=3D document.body) return $(element);=0A=
=0A=
    while ((element =3D element.parentNode) && element !=3D =
document.body)=0A=
      if (Element.getStyle(element, 'position') !=3D 'static')=0A=
        return $(element);=0A=
=0A=
    return $(document.body);=0A=
  },=0A=
=0A=
  viewportOffset: function(forElement) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
=0A=
    var element =3D forElement;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
=0A=
      // Safari fix=0A=
      if (element.offsetParent =3D=3D document.body &&=0A=
        Element.getStyle(element, 'position') =3D=3D 'absolute') break;=0A=
=0A=
    } while (element =3D element.offsetParent);=0A=
=0A=
    element =3D forElement;=0A=
    do {=0A=
      if (!Prototype.Browser.Opera || element.tagName =3D=3D 'BODY') {=0A=
        valueT -=3D element.scrollTop  || 0;=0A=
        valueL -=3D element.scrollLeft || 0;=0A=
      }=0A=
    } while (element =3D element.parentNode);=0A=
=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  },=0A=
=0A=
  clonePosition: function(element, source) {=0A=
    var options =3D Object.extend({=0A=
      setLeft:    true,=0A=
      setTop:     true,=0A=
      setWidth:   true,=0A=
      setHeight:  true,=0A=
      offsetTop:  0,=0A=
      offsetLeft: 0=0A=
    }, arguments[2] || { });=0A=
=0A=
    // find page position of source=0A=
    source =3D $(source);=0A=
    var p =3D source.viewportOffset();=0A=
=0A=
    // find coordinate system to use=0A=
    element =3D $(element);=0A=
    var delta =3D [0, 0];=0A=
    var parent =3D null;=0A=
    // delta [0,0] will do fine with position: fixed elements,=0A=
    // position:absolute needs offsetParent deltas=0A=
    if (Element.getStyle(element, 'position') =3D=3D 'absolute') {=0A=
      parent =3D element.getOffsetParent();=0A=
      delta =3D parent.viewportOffset();=0A=
    }=0A=
=0A=
    // correct by body offsets (fixes Safari)=0A=
    if (parent =3D=3D document.body) {=0A=
      delta[0] -=3D document.body.offsetLeft;=0A=
      delta[1] -=3D document.body.offsetTop;=0A=
    }=0A=
=0A=
    // set position=0A=
    if (options.setLeft)   element.style.left  =3D (p[0] - delta[0] + =
options.offsetLeft) + 'px';=0A=
    if (options.setTop)    element.style.top   =3D (p[1] - delta[1] + =
options.offsetTop) + 'px';=0A=
    if (options.setWidth)  element.style.width =3D source.offsetWidth + =
'px';=0A=
    if (options.setHeight) element.style.height =3D source.offsetHeight =
+ 'px';=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Element.Methods.identify.counter =3D 1;=0A=
=0A=
Object.extend(Element.Methods, {=0A=
  getElementsBySelector: Element.Methods.select,=0A=
  childElements: Element.Methods.immediateDescendants=0A=
});=0A=
=0A=
Element._attributeTranslations =3D {=0A=
  write: {=0A=
    names: {=0A=
      className: 'class',=0A=
      htmlFor:   'for'=0A=
    },=0A=
    values: { }=0A=
  }=0A=
};=0A=
=0A=
if (Prototype.Browser.Opera) {=0A=
  Element.Methods.getStyle =3D Element.Methods.getStyle.wrap(=0A=
    function(proceed, element, style) {=0A=
      switch (style) {=0A=
        case 'left': case 'top': case 'right': case 'bottom':=0A=
          if (proceed(element, 'position') =3D=3D=3D 'static') return =
null;=0A=
        case 'height': case 'width':=0A=
          // returns '0px' for hidden elements; we want it to return null=0A=
          if (!Element.visible(element)) return null;=0A=
=0A=
          // returns the border-box dimensions rather than the =
content-box=0A=
          // dimensions, so we subtract padding and borders from the =
value=0A=
          var dim =3D parseInt(proceed(element, style), 10);=0A=
=0A=
          if (dim !=3D=3D element['offset' + style.capitalize()])=0A=
            return dim + 'px';=0A=
=0A=
          var properties;=0A=
          if (style =3D=3D=3D 'height') {=0A=
            properties =3D ['border-top-width', 'padding-top',=0A=
             'padding-bottom', 'border-bottom-width'];=0A=
          }=0A=
          else {=0A=
            properties =3D ['border-left-width', 'padding-left',=0A=
             'padding-right', 'border-right-width'];=0A=
          }=0A=
          return properties.inject(dim, function(memo, property) {=0A=
            var val =3D proceed(element, property);=0A=
            return val =3D=3D=3D null ? memo : memo - parseInt(val, 10);=0A=
          }) + 'px';=0A=
        default: return proceed(element, style);=0A=
      }=0A=
    }=0A=
  );=0A=
=0A=
  Element.Methods.readAttribute =3D Element.Methods.readAttribute.wrap(=0A=
    function(proceed, element, attribute) {=0A=
      if (attribute =3D=3D=3D 'title') return element.title;=0A=
      return proceed(element, attribute);=0A=
    }=0A=
  );=0A=
}=0A=
=0A=
else if (Prototype.Browser.IE) {=0A=
  // IE doesn't report offsets correctly for static elements, so we =
change them=0A=
  // to "relative" to get the values, then change them back.=0A=
  Element.Methods.getOffsetParent =3D =
Element.Methods.getOffsetParent.wrap(=0A=
    function(proceed, element) {=0A=
      element =3D $(element);=0A=
      var position =3D element.getStyle('position');=0A=
      if (position !=3D=3D 'static') return proceed(element);=0A=
      element.setStyle({ position: 'relative' });=0A=
      var value =3D proceed(element);=0A=
      element.setStyle({ position: position });=0A=
      return value;=0A=
    }=0A=
  );=0A=
=0A=
  $w('positionedOffset viewportOffset').each(function(method) {=0A=
    Element.Methods[method] =3D Element.Methods[method].wrap(=0A=
      function(proceed, element) {=0A=
        element =3D $(element);=0A=
        var position =3D element.getStyle('position');=0A=
        if (position !=3D=3D 'static') return proceed(element);=0A=
        // Trigger hasLayout on the offset parent so that IE6 reports=0A=
        // accurate offsetTop and offsetLeft values for position: fixed.=0A=
        var offsetParent =3D element.getOffsetParent();=0A=
        if (offsetParent && offsetParent.getStyle('position') =3D=3D=3D =
'fixed')=0A=
          offsetParent.setStyle({ zoom: 1 });=0A=
        element.setStyle({ position: 'relative' });=0A=
        var value =3D proceed(element);=0A=
        element.setStyle({ position: position });=0A=
        return value;=0A=
      }=0A=
    );=0A=
  });=0A=
=0A=
  Element.Methods.getStyle =3D function(element, style) {=0A=
    element =3D $(element);=0A=
    style =3D (style =3D=3D 'float' || style =3D=3D 'cssFloat') ? =
'styleFloat' : style.camelize();=0A=
    var value =3D element.style[style];=0A=
    if (!value && element.currentStyle) value =3D =
element.currentStyle[style];=0A=
=0A=
    if (style =3D=3D 'opacity') {=0A=
      if (value =3D (element.getStyle('filter') || =
'').match(/alpha\(opacity=3D(.*)\)/))=0A=
        if (value[1]) return parseFloat(value[1]) / 100;=0A=
      return 1.0;=0A=
    }=0A=
=0A=
    if (value =3D=3D 'auto') {=0A=
      if ((style =3D=3D 'width' || style =3D=3D 'height') && =
(element.getStyle('display') !=3D 'none'))=0A=
        return element['offset' + style.capitalize()] + 'px';=0A=
      return null;=0A=
    }=0A=
    return value;=0A=
  };=0A=
=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    function stripAlpha(filter){=0A=
      return filter.replace(/alpha\([^\)]*\)/gi,'');=0A=
    }=0A=
    element =3D $(element);=0A=
    var currentStyle =3D element.currentStyle;=0A=
    if ((currentStyle && !currentStyle.hasLayout) ||=0A=
      (!currentStyle && element.style.zoom =3D=3D 'normal'))=0A=
        element.style.zoom =3D 1;=0A=
=0A=
    var filter =3D element.getStyle('filter'), style =3D element.style;=0A=
    if (value =3D=3D 1 || value =3D=3D=3D '') {=0A=
      (filter =3D stripAlpha(filter)) ?=0A=
        style.filter =3D filter : style.removeAttribute('filter');=0A=
      return element;=0A=
    } else if (value < 0.00001) value =3D 0;=0A=
    style.filter =3D stripAlpha(filter) +=0A=
      'alpha(opacity=3D' + (value * 100) + ')';=0A=
    return element;=0A=
  };=0A=
=0A=
  Element._attributeTranslations =3D {=0A=
    read: {=0A=
      names: {=0A=
        'class': 'className',=0A=
        'for':   'htmlFor'=0A=
      },=0A=
      values: {=0A=
        _getAttr: function(element, attribute) {=0A=
          return element.getAttribute(attribute, 2);=0A=
        },=0A=
        _getAttrNode: function(element, attribute) {=0A=
          var node =3D element.getAttributeNode(attribute);=0A=
          return node ? node.value : "";=0A=
        },=0A=
        _getEv: function(element, attribute) {=0A=
          attribute =3D element.getAttribute(attribute);=0A=
          return attribute ? attribute.toString().slice(23, -2) : null;=0A=
        },=0A=
        _flag: function(element, attribute) {=0A=
          return $(element).hasAttribute(attribute) ? attribute : null;=0A=
        },=0A=
        style: function(element) {=0A=
          return element.style.cssText.toLowerCase();=0A=
        },=0A=
        title: function(element) {=0A=
          return element.title;=0A=
        }=0A=
      }=0A=
    }=0A=
  };=0A=
=0A=
  Element._attributeTranslations.write =3D {=0A=
    names: Object.extend({=0A=
      cellpadding: 'cellPadding',=0A=
      cellspacing: 'cellSpacing'=0A=
    }, Element._attributeTranslations.read.names),=0A=
    values: {=0A=
      checked: function(element, value) {=0A=
        element.checked =3D !!value;=0A=
      },=0A=
=0A=
      style: function(element, value) {=0A=
        element.style.cssText =3D value ? value : '';=0A=
      }=0A=
    }=0A=
  };=0A=
=0A=
  Element._attributeTranslations.has =3D {};=0A=
=0A=
  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +=0A=
      'encType maxLength readOnly longDesc').each(function(attr) {=0A=
    Element._attributeTranslations.write.names[attr.toLowerCase()] =3D =
attr;=0A=
    Element._attributeTranslations.has[attr.toLowerCase()] =3D attr;=0A=
  });=0A=
=0A=
  (function(v) {=0A=
    Object.extend(v, {=0A=
      href:        v._getAttr,=0A=
      src:         v._getAttr,=0A=
      type:        v._getAttr,=0A=
      action:      v._getAttrNode,=0A=
      disabled:    v._flag,=0A=
      checked:     v._flag,=0A=
      readonly:    v._flag,=0A=
      multiple:    v._flag,=0A=
      onload:      v._getEv,=0A=
      onunload:    v._getEv,=0A=
      onclick:     v._getEv,=0A=
      ondblclick:  v._getEv,=0A=
      onmousedown: v._getEv,=0A=
      onmouseup:   v._getEv,=0A=
      onmouseover: v._getEv,=0A=
      onmousemove: v._getEv,=0A=
      onmouseout:  v._getEv,=0A=
      onfocus:     v._getEv,=0A=
      onblur:      v._getEv,=0A=
      onkeypress:  v._getEv,=0A=
      onkeydown:   v._getEv,=0A=
      onkeyup:     v._getEv,=0A=
      onsubmit:    v._getEv,=0A=
      onreset:     v._getEv,=0A=
      onselect:    v._getEv,=0A=
      onchange:    v._getEv=0A=
    });=0A=
  })(Element._attributeTranslations.read.values);=0A=
}=0A=
=0A=
else if (Prototype.Browser.Gecko && =
/rv:1\.8\.0/.test(navigator.userAgent)) {=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1) ? 0.999999 :=0A=
      (value =3D=3D=3D '') ? '' : (value < 0.00001) ? 0 : value;=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
else if (Prototype.Browser.WebKit) {=0A=
  Element.Methods.setOpacity =3D function(element, value) {=0A=
    element =3D $(element);=0A=
    element.style.opacity =3D (value =3D=3D 1 || value =3D=3D=3D '') ? =
'' :=0A=
      (value < 0.00001) ? 0 : value;=0A=
=0A=
    if (value =3D=3D 1)=0A=
      if(element.tagName =3D=3D 'IMG' && element.width) {=0A=
        element.width++; element.width--;=0A=
      } else try {=0A=
        var n =3D document.createTextNode(' ');=0A=
        element.appendChild(n);=0A=
        element.removeChild(n);=0A=
      } catch (e) { }=0A=
=0A=
    return element;=0A=
  };=0A=
=0A=
  // Safari returns margins on body which is incorrect if the child is =
absolutely=0A=
  // positioned.  For performance reasons, redefine =
Element#cumulativeOffset for=0A=
  // KHTML/WebKit only.=0A=
  Element.Methods.cumulativeOffset =3D function(element) {=0A=
    var valueT =3D 0, valueL =3D 0;=0A=
    do {=0A=
      valueT +=3D element.offsetTop  || 0;=0A=
      valueL +=3D element.offsetLeft || 0;=0A=
      if (element.offsetParent =3D=3D document.body)=0A=
        if (Element.getStyle(element, 'position') =3D=3D 'absolute') =
break;=0A=
=0A=
      element =3D element.offsetParent;=0A=
    } while (element);=0A=
=0A=
    return Element._returnOffset(valueL, valueT);=0A=
  };=0A=
}=0A=
=0A=
if (Prototype.Browser.IE || Prototype.Browser.Opera) {=0A=
  // IE and Opera are missing .innerHTML support for TABLE-related and =
SELECT elements=0A=
  Element.Methods.update =3D function(element, content) {=0A=
    element =3D $(element);=0A=
=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) return =
element.update().insert(content);=0A=
=0A=
    content =3D Object.toHTML(content);=0A=
    var tagName =3D element.tagName.toUpperCase();=0A=
=0A=
    if (tagName in Element._insertionTranslations.tags) {=0A=
      $A(element.childNodes).each(function(node) { =
element.removeChild(node) });=0A=
      Element._getContentFromAnonymousElement(tagName, =
content.stripScripts())=0A=
        .each(function(node) { element.appendChild(node) });=0A=
    }=0A=
    else element.innerHTML =3D content.stripScripts();=0A=
=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
if ('outerHTML' in document.createElement('div')) {=0A=
  Element.Methods.replace =3D function(element, content) {=0A=
    element =3D $(element);=0A=
=0A=
    if (content && content.toElement) content =3D content.toElement();=0A=
    if (Object.isElement(content)) {=0A=
      element.parentNode.replaceChild(content, element);=0A=
      return element;=0A=
    }=0A=
=0A=
    content =3D Object.toHTML(content);=0A=
    var parent =3D element.parentNode, tagName =3D =
parent.tagName.toUpperCase();=0A=
=0A=
    if (Element._insertionTranslations.tags[tagName]) {=0A=
      var nextSibling =3D element.next();=0A=
      var fragments =3D Element._getContentFromAnonymousElement(tagName, =
content.stripScripts());=0A=
      parent.removeChild(element);=0A=
      if (nextSibling)=0A=
        fragments.each(function(node) { parent.insertBefore(node, =
nextSibling) });=0A=
      else=0A=
        fragments.each(function(node) { parent.appendChild(node) });=0A=
    }=0A=
    else element.outerHTML =3D content.stripScripts();=0A=
=0A=
    content.evalScripts.bind(content).defer();=0A=
    return element;=0A=
  };=0A=
}=0A=
=0A=
Element._returnOffset =3D function(l, t) {=0A=
  var result =3D [l, t];=0A=
  result.left =3D l;=0A=
  result.top =3D t;=0A=
  return result;=0A=
};=0A=
=0A=
Element._getContentFromAnonymousElement =3D function(tagName, html) {=0A=
  var div =3D new Element('div'), t =3D =
Element._insertionTranslations.tags[tagName];=0A=
  if (t) {=0A=
    div.innerHTML =3D t[0] + html + t[1];=0A=
    t[2].times(function() { div =3D div.firstChild });=0A=
  } else div.innerHTML =3D html;=0A=
  return $A(div.childNodes);=0A=
};=0A=
=0A=
Element._insertionTranslations =3D {=0A=
  before: function(element, node) {=0A=
    element.parentNode.insertBefore(node, element);=0A=
  },=0A=
  top: function(element, node) {=0A=
    element.insertBefore(node, element.firstChild);=0A=
  },=0A=
  bottom: function(element, node) {=0A=
    element.appendChild(node);=0A=
  },=0A=
  after: function(element, node) {=0A=
    element.parentNode.insertBefore(node, element.nextSibling);=0A=
  },=0A=
  tags: {=0A=
    TABLE:  ['<table>',                '</table>',                   1],=0A=
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],=0A=
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],=0A=
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],=0A=
    SELECT: ['<select>',               '</select>',                  1]=0A=
  }=0A=
};=0A=
=0A=
(function() {=0A=
  Object.extend(this.tags, {=0A=
    THEAD: this.tags.TBODY,=0A=
    TFOOT: this.tags.TBODY,=0A=
    TH:    this.tags.TD=0A=
  });=0A=
}).call(Element._insertionTranslations);=0A=
=0A=
Element.Methods.Simulated =3D {=0A=
  hasAttribute: function(element, attribute) {=0A=
    attribute =3D Element._attributeTranslations.has[attribute] || =
attribute;=0A=
    var node =3D $(element).getAttributeNode(attribute);=0A=
    return node && node.specified;=0A=
  }=0A=
};=0A=
=0A=
Element.Methods.ByTag =3D { };=0A=
=0A=
Object.extend(Element, Element.Methods);=0A=
=0A=
if (!Prototype.BrowserFeatures.ElementExtensions &&=0A=
    document.createElement('div').__proto__) {=0A=
  window.HTMLElement =3D { };=0A=
  window.HTMLElement.prototype =3D =
document.createElement('div').__proto__;=0A=
  Prototype.BrowserFeatures.ElementExtensions =3D true;=0A=
}=0A=
=0A=
Element.extend =3D (function() {=0A=
  if (Prototype.BrowserFeatures.SpecificElementExtensions)=0A=
    return Prototype.K;=0A=
=0A=
  var Methods =3D { }, ByTag =3D Element.Methods.ByTag;=0A=
=0A=
  var extend =3D Object.extend(function(element) {=0A=
    if (!element || element._extendedByPrototype ||=0A=
        element.nodeType !=3D 1 || element =3D=3D window) return element;=0A=
=0A=
    var methods =3D Object.clone(Methods),=0A=
      tagName =3D element.tagName, property, value;=0A=
=0A=
    // extend methods for specific tags=0A=
    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);=0A=
=0A=
    for (property in methods) {=0A=
      value =3D methods[property];=0A=
      if (Object.isFunction(value) && !(property in element))=0A=
        element[property] =3D value.methodize();=0A=
    }=0A=
=0A=
    element._extendedByPrototype =3D Prototype.emptyFunction;=0A=
    return element;=0A=
=0A=
  }, {=0A=
    refresh: function() {=0A=
      // extend methods for all tags (Safari doesn't need this)=0A=
      if (!Prototype.BrowserFeatures.ElementExtensions) {=0A=
        Object.extend(Methods, Element.Methods);=0A=
        Object.extend(Methods, Element.Methods.Simulated);=0A=
      }=0A=
    }=0A=
  });=0A=
=0A=
  extend.refresh();=0A=
  return extend;=0A=
})();=0A=
=0A=
Element.hasAttribute =3D function(element, attribute) {=0A=
  if (element.hasAttribute) return element.hasAttribute(attribute);=0A=
  return Element.Methods.Simulated.hasAttribute(element, attribute);=0A=
};=0A=
=0A=
Element.addMethods =3D function(methods) {=0A=
  var F =3D Prototype.BrowserFeatures, T =3D Element.Methods.ByTag;=0A=
=0A=
  if (!methods) {=0A=
    Object.extend(Form, Form.Methods);=0A=
    Object.extend(Form.Element, Form.Element.Methods);=0A=
    Object.extend(Element.Methods.ByTag, {=0A=
      "FORM":     Object.clone(Form.Methods),=0A=
      "INPUT":    Object.clone(Form.Element.Methods),=0A=
      "SELECT":   Object.clone(Form.Element.Methods),=0A=
      "TEXTAREA": Object.clone(Form.Element.Methods)=0A=
    });=0A=
  }=0A=
=0A=
  if (arguments.length =3D=3D 2) {=0A=
    var tagName =3D methods;=0A=
    methods =3D arguments[1];=0A=
  }=0A=
=0A=
  if (!tagName) Object.extend(Element.Methods, methods || { });=0A=
  else {=0A=
    if (Object.isArray(tagName)) tagName.each(extend);=0A=
    else extend(tagName);=0A=
  }=0A=
=0A=
  function extend(tagName) {=0A=
    tagName =3D tagName.toUpperCase();=0A=
    if (!Element.Methods.ByTag[tagName])=0A=
      Element.Methods.ByTag[tagName] =3D { };=0A=
    Object.extend(Element.Methods.ByTag[tagName], methods);=0A=
  }=0A=
=0A=
  function copy(methods, destination, onlyIfAbsent) {=0A=
    onlyIfAbsent =3D onlyIfAbsent || false;=0A=
    for (var property in methods) {=0A=
      var value =3D methods[property];=0A=
      if (!Object.isFunction(value)) continue;=0A=
      if (!onlyIfAbsent || !(property in destination))=0A=
        destination[property] =3D value.methodize();=0A=
    }=0A=
  }=0A=
=0A=
  function findDOMClass(tagName) {=0A=
    var klass;=0A=
    var trans =3D {=0A=
      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",=0A=
      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": =
"DList",=0A=
      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": =
"Heading",=0A=
      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",=0A=
      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", =
"CAPTION":=0A=
      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":=0A=
      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", =
"TR":=0A=
      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":=0A=
      "FrameSet", "IFRAME": "IFrame"=0A=
    };=0A=
    if (trans[tagName]) klass =3D 'HTML' + trans[tagName] + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
    klass =3D 'HTML' + tagName + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
    klass =3D 'HTML' + tagName.capitalize() + 'Element';=0A=
    if (window[klass]) return window[klass];=0A=
=0A=
    window[klass] =3D { };=0A=
    window[klass].prototype =3D =
document.createElement(tagName).__proto__;=0A=
    return window[klass];=0A=
  }=0A=
=0A=
  if (F.ElementExtensions) {=0A=
    copy(Element.Methods, HTMLElement.prototype);=0A=
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A=
  }=0A=
=0A=
  if (F.SpecificElementExtensions) {=0A=
    for (var tag in Element.Methods.ByTag) {=0A=
      var klass =3D findDOMClass(tag);=0A=
      if (Object.isUndefined(klass)) continue;=0A=
      copy(T[tag], klass.prototype);=0A=
    }=0A=
  }=0A=
=0A=
  Object.extend(Element, Element.Methods);=0A=
  delete Element.ByTag;=0A=
=0A=
  if (Element.extend.refresh) Element.extend.refresh();=0A=
  Element.cache =3D { };=0A=
};=0A=
=0A=
document.viewport =3D {=0A=
  getDimensions: function() {=0A=
    var dimensions =3D { };=0A=
    var B =3D Prototype.Browser;=0A=
    $w('width height').each(function(d) {=0A=
      var D =3D d.capitalize();=0A=
      dimensions[d] =3D (B.WebKit && !document.evaluate) ? self['inner' =
+ D] :=0A=
        (B.Opera) ? document.body['client' + D] : =
document.documentElement['client' + D];=0A=
    });=0A=
    return dimensions;=0A=
  },=0A=
=0A=
  getWidth: function() {=0A=
    return this.getDimensions().width;=0A=
  },=0A=
=0A=
  getHeight: function() {=0A=
    return this.getDimensions().height;=0A=
  },=0A=
=0A=
  getScrollOffsets: function() {=0A=
    return Element._returnOffset(=0A=
      window.pageXOffset || document.documentElement.scrollLeft || =
document.body.scrollLeft,=0A=
      window.pageYOffset || document.documentElement.scrollTop || =
document.body.scrollTop);=0A=
  }=0A=
};=0A=
/* Portions of the Selector class are derived from Jack Slocum=E2=80=99s =
DomQuery,=0A=
 * part of YUI-Ext version 0.40, distributed under the terms of an =
MIT-style=0A=
 * license.  Please see http://www.yui-ext.com/ for more information. */=0A=
=0A=
var Selector =3D Class.create({=0A=
  initialize: function(expression) {=0A=
    this.expression =3D expression.strip();=0A=
    this.compileMatcher();=0A=
  },=0A=
=0A=
  shouldUseXPath: function() {=0A=
    if (!Prototype.BrowserFeatures.XPath) return false;=0A=
=0A=
    var e =3D this.expression;=0A=
=0A=
    // Safari 3 chokes on :*-of-type and :empty=0A=
    if (Prototype.Browser.WebKit &&=0A=
     (e.include("-of-type") || e.include(":empty")))=0A=
      return false;=0A=
=0A=
    // XPath can't do namespaced attributes, nor can it read=0A=
    // the "checked" property from DOM nodes=0A=
    if ((/(\[[\w-]*?:|:checked)/).test(this.expression))=0A=
      return false;=0A=
=0A=
    return true;=0A=
  },=0A=
=0A=
  compileMatcher: function() {=0A=
    if (this.shouldUseXPath())=0A=
      return this.compileXPathMatcher();=0A=
=0A=
    var e =3D this.expression, ps =3D Selector.patterns, h =3D =
Selector.handlers,=0A=
        c =3D Selector.criteria, le, p, m;=0A=
=0A=
    if (Selector._cache[e]) {=0A=
      this.matcher =3D Selector._cache[e];=0A=
      return;=0A=
    }=0A=
=0A=
    this.matcher =3D ["this.matcher =3D function(root) {",=0A=
                    "var r =3D root, h =3D Selector.handlers, c =3D =
false, n;"];=0A=
=0A=
    while (e && le !=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        p =3D ps[i];=0A=
        if (m =3D e.match(p)) {=0A=
          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :=0A=
    	      new Template(c[i]).evaluate(m));=0A=
          e =3D e.replace(m[0], '');=0A=
          break;=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    this.matcher.push("return h.unique(n);\n}");=0A=
    eval(this.matcher.join('\n'));=0A=
    Selector._cache[this.expression] =3D this.matcher;=0A=
  },=0A=
=0A=
  compileXPathMatcher: function() {=0A=
    var e =3D this.expression, ps =3D Selector.patterns,=0A=
        x =3D Selector.xpath, le, m;=0A=
=0A=
    if (Selector._cache[e]) {=0A=
      this.xpath =3D Selector._cache[e]; return;=0A=
    }=0A=
=0A=
    this.matcher =3D ['.//*'];=0A=
    while (e && le !=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        if (m =3D e.match(ps[i])) {=0A=
          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :=0A=
            new Template(x[i]).evaluate(m));=0A=
          e =3D e.replace(m[0], '');=0A=
          break;=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    this.xpath =3D this.matcher.join('');=0A=
    Selector._cache[this.expression] =3D this.xpath;=0A=
  },=0A=
=0A=
  findElements: function(root) {=0A=
    root =3D root || document;=0A=
    if (this.xpath) return document._getElementsByXPath(this.xpath, =
root);=0A=
    return this.matcher(root);=0A=
  },=0A=
=0A=
  match: function(element) {=0A=
    this.tokens =3D [];=0A=
=0A=
    var e =3D this.expression, ps =3D Selector.patterns, as =3D =
Selector.assertions;=0A=
    var le, p, m;=0A=
=0A=
    while (e && le !=3D=3D e && (/\S/).test(e)) {=0A=
      le =3D e;=0A=
      for (var i in ps) {=0A=
        p =3D ps[i];=0A=
        if (m =3D e.match(p)) {=0A=
          // use the Selector.assertions methods unless the selector=0A=
          // is too complex.=0A=
          if (as[i]) {=0A=
            this.tokens.push([i, Object.clone(m)]);=0A=
            e =3D e.replace(m[0], '');=0A=
          } else {=0A=
            // reluctantly do a document-wide search=0A=
            // and look for a match in the array=0A=
            return this.findElements(document).include(element);=0A=
          }=0A=
        }=0A=
      }=0A=
    }=0A=
=0A=
    var match =3D true, name, matches;=0A=
    for (var i =3D 0, token; token =3D this.tokens[i]; i++) {=0A=
      name =3D token[0], matches =3D token[1];=0A=
      if (!Selector.assertions[name](element, matches)) {=0A=
        match =3D false; break;=0A=
      }=0A=
    }=0A=
=0A=
    return match;=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return this.expression;=0A=
  },=0A=
=0A=
  inspect: function() {=0A=
    return "#<Selector:" + this.expression.inspect() + ">";=0A=
  }=0A=
});=0A=
=0A=
Object.extend(Selector, {=0A=
  _cache: { },=0A=
=0A=
  xpath: {=0A=
    descendant:   "//*",=0A=
    child:        "/*",=0A=
    adjacent:     "/following-sibling::*[1]",=0A=
    laterSibling: '/following-sibling::*',=0A=
    tagName:      function(m) {=0A=
      if (m[1] =3D=3D '*') return '';=0A=
      return "[local-name()=3D'" + m[1].toLowerCase() +=0A=
             "' or local-name()=3D'" + m[1].toUpperCase() + "']";=0A=
    },=0A=
    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",=0A=
    id:           "[@id=3D'#{1}']",=0A=
    attrPresence: function(m) {=0A=
      m[1] =3D m[1].toLowerCase();=0A=
      return new Template("[@#{1}]").evaluate(m);=0A=
    },=0A=
    attr: function(m) {=0A=
      m[1] =3D m[1].toLowerCase();=0A=
      m[3] =3D m[5] || m[6];=0A=
      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);=0A=
    },=0A=
    pseudo: function(m) {=0A=
      var h =3D Selector.xpath.pseudos[m[1]];=0A=
      if (!h) return '';=0A=
      if (Object.isFunction(h)) return h(m);=0A=
      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);=0A=
    },=0A=
    operators: {=0A=
      '=3D':  "[@#{1}=3D'#{3}']",=0A=
      '!=3D': "[@#{1}!=3D'#{3}']",=0A=
      '^=3D': "[starts-with(@#{1}, '#{3}')]",=0A=
      '$=3D': "[substring(@#{1}, (string-length(@#{1}) - =
string-length('#{3}') + 1))=3D'#{3}']",=0A=
      '*=3D': "[contains(@#{1}, '#{3}')]",=0A=
      '~=3D': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",=0A=
      '|=3D': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"=0A=
    },=0A=
    pseudos: {=0A=
      'first-child': '[not(preceding-sibling::*)]',=0A=
      'last-child':  '[not(following-sibling::*)]',=0A=
      'only-child':  '[not(preceding-sibling::* or =
following-sibling::*)]',=0A=
      'empty':       "[count(*) =3D 0 and (count(text()) =3D 0 or =
translate(text(), ' \t\r\n', '') =3D '')]",=0A=
      'checked':     "[@checked]",=0A=
      'disabled':    "[@disabled]",=0A=
      'enabled':     "[not(@disabled)]",=0A=
      'not': function(m) {=0A=
        var e =3D m[6], p =3D Selector.patterns,=0A=
            x =3D Selector.xpath, le, v;=0A=
=0A=
        var exclusion =3D [];=0A=
        while (e && le !=3D e && (/\S/).test(e)) {=0A=
          le =3D e;=0A=
          for (var i in p) {=0A=
            if (m =3D e.match(p[i])) {=0A=
              v =3D Object.isFunction(x[i]) ? x[i](m) : new =
Template(x[i]).evaluate(m);=0A=
              exclusion.push("(" + v.substring(1, v.length - 1) + ")");=0A=
              e =3D e.replace(m[0], '');=0A=
              break;=0A=
            }=0A=
          }=0A=
        }=0A=
        return "[not(" + exclusion.join(" and ") + ")]";=0A=
      },=0A=
      'nth-child':      function(m) {=0A=
        return =
Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);=0A=
      },=0A=
      'nth-last-child': function(m) {=0A=
        return =
Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);=0A=
      },=0A=
      'nth-of-type':    function(m) {=0A=
        return Selector.xpath.pseudos.nth("position() ", m);=0A=
      },=0A=
      'nth-last-of-type': function(m) {=0A=
        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", =
m);=0A=
      },=0A=
      'first-of-type':  function(m) {=0A=
        m[6] =3D "1"; return Selector.xpath.pseudos['nth-of-type'](m);=0A=
      },=0A=
      'last-of-type':   function(m) {=0A=
        m[6] =3D "1"; return =
Selector.xpath.pseudos['nth-last-of-type'](m);=0A=
      },=0A=
      'only-of-type':   function(m) {=0A=
        var p =3D Selector.xpath.pseudos; return p['first-of-type'](m) + =
p['last-of-type'](m);=0A=
      },=0A=
      nth: function(fragment, m) {=0A=
        var mm, formula =3D m[6], predicate;=0A=
        if (formula =3D=3D 'even') formula =3D '2n+0';=0A=
        if (formula =3D=3D 'odd')  formula =3D '2n+1';=0A=
        if (mm =3D formula.match(/^(\d+)$/)) // digit only=0A=
          return '[' + fragment + "=3D " + mm[1] + ']';=0A=
        if (mm =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b=0A=
          if (mm[1] =3D=3D "-") mm[1] =3D -1;=0A=
          var a =3D mm[1] ? Number(mm[1]) : 1;=0A=
          var b =3D mm[2] ? Number(mm[2]) : 0;=0A=
          predicate =3D "[((#{fragment} - #{b}) mod #{a} =3D 0) and " +=0A=
          "((#{fragment} - #{b}) div #{a} >=3D 0)]";=0A=
          return new Template(predicate).evaluate({=0A=
            fragment: fragment, a: a, b: b });=0A=
        }=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  criteria: {=0A=
    tagName:      'n =3D h.tagName(n, r, "#{1}", c);      c =3D false;',=0A=
    className:    'n =3D h.className(n, r, "#{1}", c);    c =3D false;',=0A=
    id:           'n =3D h.id(n, r, "#{1}", c);           c =3D false;',=0A=
    attrPresence: 'n =3D h.attrPresence(n, r, "#{1}", c); c =3D false;',=0A=
    attr: function(m) {=0A=
      m[3] =3D (m[5] || m[6]);=0A=
      return new Template('n =3D h.attr(n, r, "#{1}", "#{3}", "#{2}", =
c); c =3D false;').evaluate(m);=0A=
    },=0A=
    pseudo: function(m) {=0A=
      if (m[6]) m[6] =3D m[6].replace(/"/g, '\\"');=0A=
      return new Template('n =3D h.pseudo(n, "#{1}", "#{6}", r, c); c =
=3D false;').evaluate(m);=0A=
    },=0A=
    descendant:   'c =3D "descendant";',=0A=
    child:        'c =3D "child";',=0A=
    adjacent:     'c =3D "adjacent";',=0A=
    laterSibling: 'c =3D "laterSibling";'=0A=
  },=0A=
=0A=
  patterns: {=0A=
    // combinators must be listed first=0A=
    // (and descendant needs to be last combinator)=0A=
    laterSibling: /^\s*~\s*/,=0A=
    child:        /^\s*>\s*/,=0A=
    adjacent:     /^\s*\+\s*/,=0A=
    descendant:   /^\s/,=0A=
=0A=
    // selectors follow=0A=
    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,=0A=
    id:           /^#([\w\-\*]+)(\b|$)/,=0A=
    className:    /^\.([\w\-\*]+)(\b|$)/,=0A=
    pseudo:=0A=
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis=
)abled|not)(\((.*?)\))?(\b|$|(?=3D\s|[:+~>]))/,=0A=
    attrPresence: /^\[([\w]+)\]/,=0A=
    attr:         =
/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=3D)\s*((['"])([^\4]*?)\4|([^'"][^=
\]]*?)))?\]/=0A=
  },=0A=
=0A=
  // for Selector.match and Element#match=0A=
  assertions: {=0A=
    tagName: function(element, matches) {=0A=
      return matches[1].toUpperCase() =3D=3D =
element.tagName.toUpperCase();=0A=
    },=0A=
=0A=
    className: function(element, matches) {=0A=
      return Element.hasClassName(element, matches[1]);=0A=
    },=0A=
=0A=
    id: function(element, matches) {=0A=
      return element.id =3D=3D=3D matches[1];=0A=
    },=0A=
=0A=
    attrPresence: function(element, matches) {=0A=
      return Element.hasAttribute(element, matches[1]);=0A=
    },=0A=
=0A=
    attr: function(element, matches) {=0A=
      var nodeValue =3D Element.readAttribute(element, matches[1]);=0A=
      return nodeValue && Selector.operators[matches[2]](nodeValue, =
matches[5] || matches[6]);=0A=
    }=0A=
  },=0A=
=0A=
  handlers: {=0A=
    // UTILITY FUNCTIONS=0A=
    // joins two collections=0A=
    concat: function(a, b) {=0A=
      for (var i =3D 0, node; node =3D b[i]; i++)=0A=
        a.push(node);=0A=
      return a;=0A=
    },=0A=
=0A=
    // marks an array of nodes for counting=0A=
    mark: function(nodes) {=0A=
      var _true =3D Prototype.emptyFunction;=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        node._countedByPrototype =3D _true;=0A=
      return nodes;=0A=
    },=0A=
=0A=
    unmark: function(nodes) {=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        node._countedByPrototype =3D undefined;=0A=
      return nodes;=0A=
    },=0A=
=0A=
    // mark each child node with its position (for nth calls)=0A=
    // "ofType" flag indicates whether we're indexing for nth-of-type=0A=
    // rather than nth-child=0A=
    index: function(parentNode, reverse, ofType) {=0A=
      parentNode._countedByPrototype =3D Prototype.emptyFunction;=0A=
      if (reverse) {=0A=
        for (var nodes =3D parentNode.childNodes, i =3D nodes.length - =
1, j =3D 1; i >=3D 0; i--) {=0A=
          var node =3D nodes[i];=0A=
          if (node.nodeType =3D=3D 1 && (!ofType || =
node._countedByPrototype)) node.nodeIndex =3D j++;=0A=
        }=0A=
      } else {=0A=
        for (var i =3D 0, j =3D 1, nodes =3D parentNode.childNodes; node =
=3D nodes[i]; i++)=0A=
          if (node.nodeType =3D=3D 1 && (!ofType || =
node._countedByPrototype)) node.nodeIndex =3D j++;=0A=
      }=0A=
    },=0A=
=0A=
    // filters out duplicates and extends all nodes=0A=
    unique: function(nodes) {=0A=
      if (nodes.length =3D=3D 0) return nodes;=0A=
      var results =3D [], n;=0A=
      for (var i =3D 0, l =3D nodes.length; i < l; i++)=0A=
        if (!(n =3D nodes[i])._countedByPrototype) {=0A=
          n._countedByPrototype =3D Prototype.emptyFunction;=0A=
          results.push(Element.extend(n));=0A=
        }=0A=
      return Selector.handlers.unmark(results);=0A=
    },=0A=
=0A=
    // COMBINATOR FUNCTIONS=0A=
    descendant: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        h.concat(results, node.getElementsByTagName('*'));=0A=
      return results;=0A=
    },=0A=
=0A=
    child: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        for (var j =3D 0, child; child =3D node.childNodes[j]; j++)=0A=
          if (child.nodeType =3D=3D 1 && child.tagName !=3D '!') =
results.push(child);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    adjacent: function(nodes) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        var next =3D this.nextElementSibling(node);=0A=
        if (next) results.push(next);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    laterSibling: function(nodes) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        h.concat(results, Element.nextSiblings(node));=0A=
      return results;=0A=
    },=0A=
=0A=
    nextElementSibling: function(node) {=0A=
      while (node =3D node.nextSibling)=0A=
	      if (node.nodeType =3D=3D 1) return node;=0A=
      return null;=0A=
    },=0A=
=0A=
    previousElementSibling: function(node) {=0A=
      while (node =3D node.previousSibling)=0A=
        if (node.nodeType =3D=3D 1) return node;=0A=
      return null;=0A=
    },=0A=
=0A=
    // TOKEN FUNCTIONS=0A=
    tagName: function(nodes, root, tagName, combinator) {=0A=
      var uTagName =3D tagName.toUpperCase();=0A=
      var results =3D [], h =3D Selector.handlers;=0A=
      if (nodes) {=0A=
        if (combinator) {=0A=
          // fastlane for ordinary descendant combinators=0A=
          if (combinator =3D=3D "descendant") {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              h.concat(results, node.getElementsByTagName(tagName));=0A=
            return results;=0A=
          } else nodes =3D this[combinator](nodes);=0A=
          if (tagName =3D=3D "*") return nodes;=0A=
        }=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node.tagName.toUpperCase() =3D=3D=3D uTagName) =
results.push(node);=0A=
        return results;=0A=
      } else return root.getElementsByTagName(tagName);=0A=
    },=0A=
=0A=
    id: function(nodes, root, id, combinator) {=0A=
      var targetNode =3D $(id), h =3D Selector.handlers;=0A=
      if (!targetNode) return [];=0A=
      if (!nodes && root =3D=3D document) return [targetNode];=0A=
      if (nodes) {=0A=
        if (combinator) {=0A=
          if (combinator =3D=3D 'child') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (targetNode.parentNode =3D=3D node) return [targetNode];=0A=
          } else if (combinator =3D=3D 'descendant') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (Element.descendantOf(targetNode, node)) return =
[targetNode];=0A=
          } else if (combinator =3D=3D 'adjacent') {=0A=
            for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
              if (Selector.handlers.previousElementSibling(targetNode) =
=3D=3D node)=0A=
                return [targetNode];=0A=
          } else nodes =3D h[combinator](nodes);=0A=
        }=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node =3D=3D targetNode) return [targetNode];=0A=
        return [];=0A=
      }=0A=
      return (targetNode && Element.descendantOf(targetNode, root)) ? =
[targetNode] : [];=0A=
    },=0A=
=0A=
    className: function(nodes, root, className, combinator) {=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      return Selector.handlers.byClassName(nodes, root, className);=0A=
    },=0A=
=0A=
    byClassName: function(nodes, root, className) {=0A=
      if (!nodes) nodes =3D Selector.handlers.descendant([root]);=0A=
      var needle =3D ' ' + className + ' ';=0A=
      for (var i =3D 0, results =3D [], node, nodeClassName; node =3D =
nodes[i]; i++) {=0A=
        nodeClassName =3D node.className;=0A=
        if (nodeClassName.length =3D=3D 0) continue;=0A=
        if (nodeClassName =3D=3D className || (' ' + nodeClassName + ' =
').include(needle))=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    attrPresence: function(nodes, root, attr, combinator) {=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      var results =3D [];=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        if (Element.hasAttribute(node, attr)) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    attr: function(nodes, root, attr, value, operator, combinator) {=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      var handler =3D Selector.operators[operator], results =3D [];=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A=
        var nodeValue =3D Element.readAttribute(node, attr);=0A=
        if (nodeValue =3D=3D=3D null) continue;=0A=
        if (handler(nodeValue, value)) results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    pseudo: function(nodes, name, value, root, combinator) {=0A=
      if (nodes && combinator) nodes =3D this[combinator](nodes);=0A=
      if (!nodes) nodes =3D root.getElementsByTagName("*");=0A=
      return Selector.pseudos[name](nodes, value, root);=0A=
    }=0A=
  },=0A=
=0A=
  pseudos: {=0A=
    'first-child': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        if (Selector.handlers.previousElementSibling(node)) continue;=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
    'last-child': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        if (Selector.handlers.nextElementSibling(node)) continue;=0A=
          results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
    'only-child': function(nodes, value, root) {=0A=
      var h =3D Selector.handlers;=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!h.previousElementSibling(node) && =
!h.nextElementSibling(node))=0A=
          results.push(node);=0A=
      return results;=0A=
    },=0A=
    'nth-child':        function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root);=0A=
    },=0A=
    'nth-last-child':   function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, true);=0A=
    },=0A=
    'nth-of-type':      function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, false, true);=0A=
    },=0A=
    'nth-last-of-type': function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, formula, root, true, true);=0A=
    },=0A=
    'first-of-type':    function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, "1", root, false, true);=0A=
    },=0A=
    'last-of-type':     function(nodes, formula, root) {=0A=
      return Selector.pseudos.nth(nodes, "1", root, true, true);=0A=
    },=0A=
    'only-of-type':     function(nodes, formula, root) {=0A=
      var p =3D Selector.pseudos;=0A=
      return p['last-of-type'](p['first-of-type'](nodes, formula, root), =
formula, root);=0A=
    },=0A=
=0A=
    // handles the an+b logic=0A=
    getIndices: function(a, b, total) {=0A=
      if (a =3D=3D 0) return b > 0 ? [b] : [];=0A=
      return $R(1, total).inject([], function(memo, i) {=0A=
        if (0 =3D=3D (i - b) % a && (i - b) / a >=3D 0) memo.push(i);=0A=
        return memo;=0A=
      });=0A=
    },=0A=
=0A=
    // handles nth(-last)-child, nth(-last)-of-type, and =
(first|last)-of-type=0A=
    nth: function(nodes, formula, root, reverse, ofType) {=0A=
      if (nodes.length =3D=3D 0) return [];=0A=
      if (formula =3D=3D 'even') formula =3D '2n+0';=0A=
      if (formula =3D=3D 'odd')  formula =3D '2n+1';=0A=
      var h =3D Selector.handlers, results =3D [], indexed =3D [], m;=0A=
      h.mark(nodes);=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++) {=0A=
        if (!node.parentNode._countedByPrototype) {=0A=
          h.index(node.parentNode, reverse, ofType);=0A=
          indexed.push(node.parentNode);=0A=
        }=0A=
      }=0A=
      if (formula.match(/^\d+$/)) { // just a number=0A=
        formula =3D Number(formula);=0A=
        for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
          if (node.nodeIndex =3D=3D formula) results.push(node);=0A=
      } else if (m =3D formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // =
an+b=0A=
        if (m[1] =3D=3D "-") m[1] =3D -1;=0A=
        var a =3D m[1] ? Number(m[1]) : 1;=0A=
        var b =3D m[2] ? Number(m[2]) : 0;=0A=
        var indices =3D Selector.pseudos.getIndices(a, b, nodes.length);=0A=
        for (var i =3D 0, node, l =3D indices.length; node =3D nodes[i]; =
i++) {=0A=
          for (var j =3D 0; j < l; j++)=0A=
            if (node.nodeIndex =3D=3D indices[j]) results.push(node);=0A=
        }=0A=
      }=0A=
      h.unmark(nodes);=0A=
      h.unmark(indexed);=0A=
      return results;=0A=
    },=0A=
=0A=
    'empty': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++) {=0A=
        // IE treats comments as element nodes=0A=
        if (node.tagName =3D=3D '!' || (node.firstChild && =
!node.innerHTML.match(/^\s*$/))) continue;=0A=
        results.push(node);=0A=
      }=0A=
      return results;=0A=
    },=0A=
=0A=
    'not': function(nodes, selector, root) {=0A=
      var h =3D Selector.handlers, selectorType, m;=0A=
      var exclusions =3D new Selector(selector).findElements(root);=0A=
      h.mark(exclusions);=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!node._countedByPrototype) results.push(node);=0A=
      h.unmark(exclusions);=0A=
      return results;=0A=
    },=0A=
=0A=
    'enabled': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (!node.disabled) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    'disabled': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (node.disabled) results.push(node);=0A=
      return results;=0A=
    },=0A=
=0A=
    'checked': function(nodes, value, root) {=0A=
      for (var i =3D 0, results =3D [], node; node =3D nodes[i]; i++)=0A=
        if (node.checked) results.push(node);=0A=
      return results;=0A=
    }=0A=
  },=0A=
=0A=
  operators: {=0A=
    '=3D':  function(nv, v) { return nv =3D=3D v; },=0A=
    '!=3D': function(nv, v) { return nv !=3D v; },=0A=
    '^=3D': function(nv, v) { return nv.startsWith(v); },=0A=
    '$=3D': function(nv, v) { return nv.endsWith(v); },=0A=
    '*=3D': function(nv, v) { return nv.include(v); },=0A=
    '~=3D': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + =
' '); },=0A=
    '|=3D': function(nv, v) { return ('-' + nv.toUpperCase() + =
'-').include('-' + v.toUpperCase() + '-'); }=0A=
  },=0A=
=0A=
  split: function(expression) {=0A=
    var expressions =3D [];=0A=
    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, =
function(m) {=0A=
      expressions.push(m[1].strip());=0A=
    });=0A=
    return expressions;=0A=
  },=0A=
=0A=
  matchElements: function(elements, expression) {=0A=
    var matches =3D $$(expression), h =3D Selector.handlers;=0A=
    h.mark(matches);=0A=
    for (var i =3D 0, results =3D [], element; element =3D elements[i]; =
i++)=0A=
      if (element._countedByPrototype) results.push(element);=0A=
    h.unmark(matches);=0A=
    return results;=0A=
  },=0A=
=0A=
  findElement: function(elements, expression, index) {=0A=
    if (Object.isNumber(expression)) {=0A=
      index =3D expression; expression =3D false;=0A=
    }=0A=
    return Selector.matchElements(elements, expression || '*')[index || =
0];=0A=
  },=0A=
=0A=
  findChildElements: function(element, expressions) {=0A=
    expressions =3D Selector.split(expressions.join(','));=0A=
    var results =3D [], h =3D Selector.handlers;=0A=
    for (var i =3D 0, l =3D expressions.length, selector; i < l; i++) {=0A=
      selector =3D new Selector(expressions[i].strip());=0A=
      h.concat(results, selector.findElements(element));=0A=
    }=0A=
    return (l > 1) ? h.unique(results) : results;=0A=
  }=0A=
});=0A=
=0A=
if (Prototype.Browser.IE) {=0A=
  Object.extend(Selector.handlers, {=0A=
    // IE returns comment nodes on getElementsByTagName("*").=0A=
    // Filter them out.=0A=
    concat: function(a, b) {=0A=
      for (var i =3D 0, node; node =3D b[i]; i++)=0A=
        if (node.tagName !=3D=3D "!") a.push(node);=0A=
      return a;=0A=
    },=0A=
=0A=
    // IE improperly serializes _countedByPrototype in (inner|outer)HTML.=0A=
    unmark: function(nodes) {=0A=
      for (var i =3D 0, node; node =3D nodes[i]; i++)=0A=
        node.removeAttribute('_countedByPrototype');=0A=
      return nodes;=0A=
    }=0A=
  });=0A=
}=0A=
=0A=
function $$() {=0A=
  return Selector.findChildElements(document, $A(arguments));=0A=
}=0A=
var Form =3D {=0A=
  reset: function(form) {=0A=
    $(form).reset();=0A=
    return form;=0A=
  },=0A=
=0A=
  serializeElements: function(elements, options) {=0A=
    if (typeof options !=3D 'object') options =3D { hash: !!options };=0A=
    else if (Object.isUndefined(options.hash)) options.hash =3D true;=0A=
    var key, value, submitted =3D false, submit =3D options.submit;=0A=
=0A=
    var data =3D elements.inject({ }, function(result, element) {=0A=
      if (!element.disabled && element.name) {=0A=
        key =3D element.name; value =3D $(element).getValue();=0A=
        if (value !=3D null && (element.type !=3D 'submit' || =
(!submitted &&=0A=
            submit !=3D=3D false && (!submit || key =3D=3D submit) && =
(submitted =3D true)))) {=0A=
          if (key in result) {=0A=
            // a key is already present; construct an array of values=0A=
            if (!Object.isArray(result[key])) result[key] =3D =
[result[key]];=0A=
            result[key].push(value);=0A=
          }=0A=
          else result[key] =3D value;=0A=
        }=0A=
      }=0A=
      return result;=0A=
    });=0A=
=0A=
    return options.hash ? data : Object.toQueryString(data);=0A=
  }=0A=
};=0A=
=0A=
Form.Methods =3D {=0A=
  serialize: function(form, options) {=0A=
    return Form.serializeElements(Form.getElements(form), options);=0A=
  },=0A=
=0A=
  getElements: function(form) {=0A=
    return $A($(form).getElementsByTagName('*')).inject([],=0A=
      function(elements, child) {=0A=
        if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A=
          elements.push(Element.extend(child));=0A=
        return elements;=0A=
      }=0A=
    );=0A=
  },=0A=
=0A=
  getInputs: function(form, typeName, name) {=0A=
    form =3D $(form);=0A=
    var inputs =3D form.getElementsByTagName('input');=0A=
=0A=
    if (!typeName && !name) return $A(inputs).map(Element.extend);=0A=
=0A=
    for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i =
< length; i++) {=0A=
      var input =3D inputs[i];=0A=
      if ((typeName && input.type !=3D typeName) || (name && input.name =
!=3D name))=0A=
        continue;=0A=
      matchingInputs.push(Element.extend(input));=0A=
    }=0A=
=0A=
    return matchingInputs;=0A=
  },=0A=
=0A=
  disable: function(form) {=0A=
    form =3D $(form);=0A=
    Form.getElements(form).invoke('disable');=0A=
    return form;=0A=
  },=0A=
=0A=
  enable: function(form) {=0A=
    form =3D $(form);=0A=
    Form.getElements(form).invoke('enable');=0A=
    return form;=0A=
  },=0A=
=0A=
  findFirstElement: function(form) {=0A=
    var elements =3D $(form).getElements().findAll(function(element) {=0A=
      return 'hidden' !=3D element.type && !element.disabled;=0A=
    });=0A=
    var firstByIndex =3D elements.findAll(function(element) {=0A=
      return element.hasAttribute('tabIndex') && element.tabIndex >=3D 0;=0A=
    }).sortBy(function(element) { return element.tabIndex }).first();=0A=
=0A=
    return firstByIndex ? firstByIndex : elements.find(function(element) =
{=0A=
      return ['input', 'select', =
'textarea'].include(element.tagName.toLowerCase());=0A=
    });=0A=
  },=0A=
=0A=
  focusFirstElement: function(form) {=0A=
    form =3D $(form);=0A=
    form.findFirstElement().activate();=0A=
    return form;=0A=
  },=0A=
=0A=
  request: function(form, options) {=0A=
    form =3D $(form), options =3D Object.clone(options || { });=0A=
=0A=
    var params =3D options.parameters, action =3D =
form.readAttribute('action') || '';=0A=
    if (action.blank()) action =3D window.location.href;=0A=
    options.parameters =3D form.serialize(true);=0A=
=0A=
    if (params) {=0A=
      if (Object.isString(params)) params =3D params.toQueryParams();=0A=
      Object.extend(options.parameters, params);=0A=
    }=0A=
=0A=
    if (form.hasAttribute('method') && !options.method)=0A=
      options.method =3D form.method;=0A=
=0A=
    return new Ajax.Request(action, options);=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element =3D {=0A=
  focus: function(element) {=0A=
    $(element).focus();=0A=
    return element;=0A=
  },=0A=
=0A=
  select: function(element) {=0A=
    $(element).select();=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
Form.Element.Methods =3D {=0A=
  serialize: function(element) {=0A=
    element =3D $(element);=0A=
    if (!element.disabled && element.name) {=0A=
      var value =3D element.getValue();=0A=
      if (value !=3D undefined) {=0A=
        var pair =3D { };=0A=
        pair[element.name] =3D value;=0A=
        return Object.toQueryString(pair);=0A=
      }=0A=
    }=0A=
    return '';=0A=
  },=0A=
=0A=
  getValue: function(element) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    return Form.Element.Serializers[method](element);=0A=
  },=0A=
=0A=
  setValue: function(element, value) {=0A=
    element =3D $(element);=0A=
    var method =3D element.tagName.toLowerCase();=0A=
    Form.Element.Serializers[method](element, value);=0A=
    return element;=0A=
  },=0A=
=0A=
  clear: function(element) {=0A=
    $(element).value =3D '';=0A=
    return element;=0A=
  },=0A=
=0A=
  present: function(element) {=0A=
    return $(element).value !=3D '';=0A=
  },=0A=
=0A=
  activate: function(element) {=0A=
    element =3D $(element);=0A=
    try {=0A=
      element.focus();=0A=
      if (element.select && (element.tagName.toLowerCase() !=3D 'input' =
||=0A=
          !['button', 'reset', 'submit'].include(element.type)))=0A=
        element.select();=0A=
    } catch (e) { }=0A=
    return element;=0A=
  },=0A=
=0A=
  disable: function(element) {=0A=
    element =3D $(element);=0A=
    element.blur();=0A=
    element.disabled =3D true;=0A=
    return element;=0A=
  },=0A=
=0A=
  enable: function(element) {=0A=
    element =3D $(element);=0A=
    element.disabled =3D false;=0A=
    return element;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
var Field =3D Form.Element;=0A=
var $F =3D Form.Element.Methods.getValue;=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Form.Element.Serializers =3D {=0A=
  input: function(element, value) {=0A=
    switch (element.type.toLowerCase()) {=0A=
      case 'checkbox':=0A=
      case 'radio':=0A=
        return Form.Element.Serializers.inputSelector(element, value);=0A=
      default:=0A=
        return Form.Element.Serializers.textarea(element, value);=0A=
    }=0A=
  },=0A=
=0A=
  inputSelector: function(element, value) {=0A=
    if (Object.isUndefined(value)) return element.checked ? =
element.value : null;=0A=
    else element.checked =3D !!value;=0A=
  },=0A=
=0A=
  textarea: function(element, value) {=0A=
    if (Object.isUndefined(value)) return element.value;=0A=
    else element.value =3D value;=0A=
  },=0A=
=0A=
  select: function(element, index) {=0A=
    if (Object.isUndefined(index))=0A=
      return this[element.type =3D=3D 'select-one' ?=0A=
        'selectOne' : 'selectMany'](element);=0A=
    else {=0A=
      var opt, value, single =3D !Object.isArray(index);=0A=
      for (var i =3D 0, length =3D element.length; i < length; i++) {=0A=
        opt =3D element.options[i];=0A=
        value =3D this.optionValue(opt);=0A=
        if (single) {=0A=
          if (value =3D=3D index) {=0A=
            opt.selected =3D true;=0A=
            return;=0A=
          }=0A=
        }=0A=
        else opt.selected =3D index.include(value);=0A=
      }=0A=
    }=0A=
  },=0A=
=0A=
  selectOne: function(element) {=0A=
    var index =3D element.selectedIndex;=0A=
    return index >=3D 0 ? this.optionValue(element.options[index]) : =
null;=0A=
  },=0A=
=0A=
  selectMany: function(element) {=0A=
    var values, length =3D element.length;=0A=
    if (!length) return null;=0A=
=0A=
    for (var i =3D 0, values =3D []; i < length; i++) {=0A=
      var opt =3D element.options[i];=0A=
      if (opt.selected) values.push(this.optionValue(opt));=0A=
    }=0A=
    return values;=0A=
  },=0A=
=0A=
  optionValue: function(opt) {=0A=
    // extend element because hasAttribute may not be native=0A=
    return Element.extend(opt).hasAttribute('value') ? opt.value : =
opt.text;=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.TimedObserver =3D Class.create(PeriodicalExecuter, {=0A=
  initialize: function($super, element, frequency, callback) {=0A=
    $super(callback, frequency);=0A=
    this.element   =3D $(element);=0A=
    this.lastValue =3D this.getValue();=0A=
  },=0A=
=0A=
  execute: function() {=0A=
    var value =3D this.getValue();=0A=
    if (Object.isString(this.lastValue) && Object.isString(value) ?=0A=
        this.lastValue !=3D value : String(this.lastValue) !=3D =
String(value)) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Form.Element.Observer =3D Class.create(Abstract.TimedObserver, {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.Observer =3D Class.create(Abstract.TimedObserver, {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Abstract.EventObserver =3D Class.create({=0A=
  initialize: function(element, callback) {=0A=
    this.element  =3D $(element);=0A=
    this.callback =3D callback;=0A=
=0A=
    this.lastValue =3D this.getValue();=0A=
    if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A=
      this.registerFormCallbacks();=0A=
    else=0A=
      this.registerCallback(this.element);=0A=
  },=0A=
=0A=
  onElementEvent: function() {=0A=
    var value =3D this.getValue();=0A=
    if (this.lastValue !=3D value) {=0A=
      this.callback(this.element, value);=0A=
      this.lastValue =3D value;=0A=
    }=0A=
  },=0A=
=0A=
  registerFormCallbacks: function() {=0A=
    Form.getElements(this.element).each(this.registerCallback, this);=0A=
  },=0A=
=0A=
  registerCallback: function(element) {=0A=
    if (element.type) {=0A=
      switch (element.type.toLowerCase()) {=0A=
        case 'checkbox':=0A=
        case 'radio':=0A=
          Event.observe(element, 'click', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
        default:=0A=
          Event.observe(element, 'change', =
this.onElementEvent.bind(this));=0A=
          break;=0A=
      }=0A=
    }=0A=
  }=0A=
});=0A=
=0A=
Form.Element.EventObserver =3D Class.create(Abstract.EventObserver, {=0A=
  getValue: function() {=0A=
    return Form.Element.getValue(this.element);=0A=
  }=0A=
});=0A=
=0A=
Form.EventObserver =3D Class.create(Abstract.EventObserver, {=0A=
  getValue: function() {=0A=
    return Form.serialize(this.element);=0A=
  }=0A=
});=0A=
if (!window.Event) var Event =3D { };=0A=
=0A=
Object.extend(Event, {=0A=
  KEY_BACKSPACE: 8,=0A=
  KEY_TAB:       9,=0A=
  KEY_RETURN:   13,=0A=
  KEY_ESC:      27,=0A=
  KEY_LEFT:     37,=0A=
  KEY_UP:       38,=0A=
  KEY_RIGHT:    39,=0A=
  KEY_DOWN:     40,=0A=
  KEY_DELETE:   46,=0A=
  KEY_HOME:     36,=0A=
  KEY_END:      35,=0A=
  KEY_PAGEUP:   33,=0A=
  KEY_PAGEDOWN: 34,=0A=
  KEY_INSERT:   45,=0A=
=0A=
  cache: { },=0A=
=0A=
  relatedTarget: function(event) {=0A=
    var element;=0A=
    switch(event.type) {=0A=
      case 'mouseover': element =3D event.fromElement; break;=0A=
      case 'mouseout':  element =3D event.toElement;   break;=0A=
      default: return null;=0A=
    }=0A=
    return Element.extend(element);=0A=
  }=0A=
});=0A=
=0A=
Event.Methods =3D (function() {=0A=
  var isButton;=0A=
=0A=
  if (Prototype.Browser.IE) {=0A=
    var buttonMap =3D { 0: 1, 1: 4, 2: 2 };=0A=
    isButton =3D function(event, code) {=0A=
      return event.button =3D=3D buttonMap[code];=0A=
    };=0A=
=0A=
  } else if (Prototype.Browser.WebKit) {=0A=
    isButton =3D function(event, code) {=0A=
      switch (code) {=0A=
        case 0: return event.which =3D=3D 1 && !event.metaKey;=0A=
        case 1: return event.which =3D=3D 1 && event.metaKey;=0A=
        default: return false;=0A=
      }=0A=
    };=0A=
=0A=
  } else {=0A=
    isButton =3D function(event, code) {=0A=
      return event.which ? (event.which =3D=3D=3D code + 1) : =
(event.button =3D=3D=3D code);=0A=
    };=0A=
  }=0A=
=0A=
  return {=0A=
    isLeftClick:   function(event) { return isButton(event, 0) },=0A=
    isMiddleClick: function(event) { return isButton(event, 1) },=0A=
    isRightClick:  function(event) { return isButton(event, 2) },=0A=
=0A=
    element: function(event) {=0A=
      var node =3D Event.extend(event).target;=0A=
      return Element.extend(node.nodeType =3D=3D Node.TEXT_NODE ? =
node.parentNode : node);=0A=
    },=0A=
=0A=
    findElement: function(event, expression) {=0A=
      var element =3D Event.element(event);=0A=
      if (!expression) return element;=0A=
      var elements =3D [element].concat(element.ancestors());=0A=
      return Selector.findElement(elements, expression, 0);=0A=
    },=0A=
=0A=
    pointer: function(event) {=0A=
      return {=0A=
        x: event.pageX || (event.clientX +=0A=
          (document.documentElement.scrollLeft || =
document.body.scrollLeft)),=0A=
        y: event.pageY || (event.clientY +=0A=
          (document.documentElement.scrollTop || =
document.body.scrollTop))=0A=
      };=0A=
    },=0A=
=0A=
    pointerX: function(event) { return Event.pointer(event).x },=0A=
    pointerY: function(event) { return Event.pointer(event).y },=0A=
=0A=
    stop: function(event) {=0A=
      Event.extend(event);=0A=
      event.preventDefault();=0A=
      event.stopPropagation();=0A=
      event.stopped =3D true;=0A=
    }=0A=
  };=0A=
})();=0A=
=0A=
Event.extend =3D (function() {=0A=
  var methods =3D Object.keys(Event.Methods).inject({ }, function(m, =
name) {=0A=
    m[name] =3D Event.Methods[name].methodize();=0A=
    return m;=0A=
  });=0A=
=0A=
  if (Prototype.Browser.IE) {=0A=
    Object.extend(methods, {=0A=
      stopPropagation: function() { this.cancelBubble =3D true },=0A=
      preventDefault:  function() { this.returnValue =3D false },=0A=
      inspect: function() { return "[object Event]" }=0A=
    });=0A=
=0A=
    return function(event) {=0A=
      if (!event) return false;=0A=
      if (event._extendedByPrototype) return event;=0A=
=0A=
      event._extendedByPrototype =3D Prototype.emptyFunction;=0A=
      var pointer =3D Event.pointer(event);=0A=
      Object.extend(event, {=0A=
        target: event.srcElement,=0A=
        relatedTarget: Event.relatedTarget(event),=0A=
        pageX:  pointer.x,=0A=
        pageY:  pointer.y=0A=
      });=0A=
      return Object.extend(event, methods);=0A=
    };=0A=
=0A=
  } else {=0A=
    Event.prototype =3D Event.prototype || =
document.createEvent("HTMLEvents").__proto__;=0A=
    Object.extend(Event.prototype, methods);=0A=
    return Prototype.K;=0A=
  }=0A=
})();=0A=
=0A=
Object.extend(Event, (function() {=0A=
  var cache =3D Event.cache;=0A=
=0A=
  function getEventID(element) {=0A=
    if (element._prototypeEventID) return element._prototypeEventID[0];=0A=
    arguments.callee.id =3D arguments.callee.id || 1;=0A=
    return element._prototypeEventID =3D [++arguments.callee.id];=0A=
  }=0A=
=0A=
  function getDOMEventName(eventName) {=0A=
    if (eventName && eventName.include(':')) return "dataavailable";=0A=
    return eventName;=0A=
  }=0A=
=0A=
  function getCacheForID(id) {=0A=
    return cache[id] =3D cache[id] || { };=0A=
  }=0A=
=0A=
  function getWrappersForEventName(id, eventName) {=0A=
    var c =3D getCacheForID(id);=0A=
    return c[eventName] =3D c[eventName] || [];=0A=
  }=0A=
=0A=
  function createWrapper(element, eventName, handler) {=0A=
    var id =3D getEventID(element);=0A=
    var c =3D getWrappersForEventName(id, eventName);=0A=
    if (c.pluck("handler").include(handler)) return false;=0A=
=0A=
    var wrapper =3D function(event) {=0A=
      if (!Event || !Event.extend ||=0A=
        (event.eventName && event.eventName !=3D eventName))=0A=
          return false;=0A=
=0A=
      Event.extend(event);=0A=
      handler.call(element, event);=0A=
    };=0A=
=0A=
    wrapper.handler =3D handler;=0A=
    c.push(wrapper);=0A=
    return wrapper;=0A=
  }=0A=
=0A=
  function findWrapper(id, eventName, handler) {=0A=
    var c =3D getWrappersForEventName(id, eventName);=0A=
    return c.find(function(wrapper) { return wrapper.handler =3D=3D =
handler });=0A=
  }=0A=
=0A=
  function destroyWrapper(id, eventName, handler) {=0A=
    var c =3D getCacheForID(id);=0A=
    if (!c[eventName]) return false;=0A=
    c[eventName] =3D c[eventName].without(findWrapper(id, eventName, =
handler));=0A=
  }=0A=
=0A=
  function destroyCache() {=0A=
    for (var id in cache)=0A=
      for (var eventName in cache[id])=0A=
        cache[id][eventName] =3D null;=0A=
  }=0A=
=0A=
  if (window.attachEvent) {=0A=
    window.attachEvent("onunload", destroyCache);=0A=
  }=0A=
=0A=
  return {=0A=
    observe: function(element, eventName, handler) {=0A=
      element =3D $(element);=0A=
      var name =3D getDOMEventName(eventName);=0A=
=0A=
      var wrapper =3D createWrapper(element, eventName, handler);=0A=
      if (!wrapper) return element;=0A=
=0A=
      if (element.addEventListener) {=0A=
        element.addEventListener(name, wrapper, false);=0A=
      } else {=0A=
        element.attachEvent("on" + name, wrapper);=0A=
      }=0A=
=0A=
      return element;=0A=
    },=0A=
=0A=
    stopObserving: function(element, eventName, handler) {=0A=
      element =3D $(element);=0A=
      var id =3D getEventID(element), name =3D =
getDOMEventName(eventName);=0A=
=0A=
      if (!handler && eventName) {=0A=
        getWrappersForEventName(id, eventName).each(function(wrapper) {=0A=
          element.stopObserving(eventName, wrapper.handler);=0A=
        });=0A=
        return element;=0A=
=0A=
      } else if (!eventName) {=0A=
        Object.keys(getCacheForID(id)).each(function(eventName) {=0A=
          element.stopObserving(eventName);=0A=
        });=0A=
        return element;=0A=
      }=0A=
=0A=
      var wrapper =3D findWrapper(id, eventName, handler);=0A=
      if (!wrapper) return element;=0A=
=0A=
      if (element.removeEventListener) {=0A=
        element.removeEventListener(name, wrapper, false);=0A=
      } else {=0A=
        element.detachEvent("on" + name, wrapper);=0A=
      }=0A=
=0A=
      destroyWrapper(id, eventName, handler);=0A=
=0A=
      return element;=0A=
    },=0A=
=0A=
    fire: function(element, eventName, memo) {=0A=
      element =3D $(element);=0A=
      if (element =3D=3D document && document.createEvent && =
!element.dispatchEvent)=0A=
        element =3D document.documentElement;=0A=
=0A=
      var event;=0A=
      if (document.createEvent) {=0A=
        event =3D document.createEvent("HTMLEvents");=0A=
        event.initEvent("dataavailable", true, true);=0A=
      } else {=0A=
        event =3D document.createEventObject();=0A=
        event.eventType =3D "ondataavailable";=0A=
      }=0A=
=0A=
      event.eventName =3D eventName;=0A=
      event.memo =3D memo || { };=0A=
=0A=
      if (document.createEvent) {=0A=
        element.dispatchEvent(event);=0A=
      } else {=0A=
        element.fireEvent(event.eventType, event);=0A=
      }=0A=
=0A=
      return Event.extend(event);=0A=
    }=0A=
  };=0A=
})());=0A=
=0A=
Object.extend(Event, Event.Methods);=0A=
=0A=
Element.addMethods({=0A=
  fire:          Event.fire,=0A=
  observe:       Event.observe,=0A=
  stopObserving: Event.stopObserving=0A=
});=0A=
=0A=
Object.extend(document, {=0A=
  fire:          Element.Methods.fire.methodize(),=0A=
  observe:       Element.Methods.observe.methodize(),=0A=
  stopObserving: Element.Methods.stopObserving.methodize(),=0A=
  loaded:        false=0A=
});=0A=
=0A=
(function() {=0A=
  /* Support for the DOMContentLoaded event is based on work by Dan Webb,=0A=
     Matthias Miller, Dean Edwards and John Resig. */=0A=
=0A=
  var timer;=0A=
=0A=
  function fireContentLoadedEvent() {=0A=
    if (document.loaded) return;=0A=
    if (timer) window.clearInterval(timer);=0A=
    document.fire("dom:loaded");=0A=
    document.loaded =3D true;=0A=
  }=0A=
=0A=
  if (document.addEventListener) {=0A=
    if (Prototype.Browser.WebKit) {=0A=
      timer =3D window.setInterval(function() {=0A=
        if (/loaded|complete/.test(document.readyState))=0A=
          fireContentLoadedEvent();=0A=
      }, 0);=0A=
=0A=
      Event.observe(window, "load", fireContentLoadedEvent);=0A=
=0A=
    } else {=0A=
      document.addEventListener("DOMContentLoaded",=0A=
        fireContentLoadedEvent, false);=0A=
    }=0A=
=0A=
  } else {=0A=
    document.write("<script id=3D__onDOMContentLoaded defer =
src=3D//:><\/script>");=0A=
    $("__onDOMContentLoaded").onreadystatechange =3D function() {=0A=
      if (this.readyState =3D=3D "complete") {=0A=
        this.onreadystatechange =3D null;=0A=
        fireContentLoadedEvent();=0A=
      }=0A=
    };=0A=
  }=0A=
})();=0A=
/*------------------------------- DEPRECATED =
-------------------------------*/=0A=
=0A=
Hash.toQueryString =3D Object.toQueryString;=0A=
=0A=
var Toggle =3D { display: Element.toggle };=0A=
=0A=
Element.Methods.childOf =3D Element.Methods.descendantOf;=0A=
=0A=
var Insertion =3D {=0A=
  Before: function(element, content) {=0A=
    return Element.insert(element, {before:content});=0A=
  },=0A=
=0A=
  Top: function(element, content) {=0A=
    return Element.insert(element, {top:content});=0A=
  },=0A=
=0A=
  Bottom: function(element, content) {=0A=
    return Element.insert(element, {bottom:content});=0A=
  },=0A=
=0A=
  After: function(element, content) {=0A=
    return Element.insert(element, {after:content});=0A=
  }=0A=
};=0A=
=0A=
var $continue =3D new Error('"throw $continue" is deprecated, use =
"return" instead');=0A=
=0A=
// This should be moved to script.aculo.us; notice the deprecated methods=0A=
// further below, that map to the newer Element methods.=0A=
var Position =3D {=0A=
  // set to true if needed, warning: firefox performance problems=0A=
  // NOT neeeded for page scrolling, only if draggable contained in=0A=
  // scrollable elements=0A=
  includeScrollOffsets: false,=0A=
=0A=
  // must be called before calling withinIncludingScrolloffset, every =
time the=0A=
  // page is scrolled=0A=
  prepare: function() {=0A=
    this.deltaX =3D  window.pageXOffset=0A=
                || document.documentElement.scrollLeft=0A=
                || document.body.scrollLeft=0A=
                || 0;=0A=
    this.deltaY =3D  window.pageYOffset=0A=
                || document.documentElement.scrollTop=0A=
                || document.body.scrollTop=0A=
                || 0;=0A=
  },=0A=
=0A=
  // caches x/y coordinate pair to use with overlap=0A=
  within: function(element, x, y) {=0A=
    if (this.includeScrollOffsets)=0A=
      return this.withinIncludingScrolloffsets(element, x, y);=0A=
    this.xcomp =3D x;=0A=
    this.ycomp =3D y;=0A=
    this.offset =3D Element.cumulativeOffset(element);=0A=
=0A=
    return (y >=3D this.offset[1] &&=0A=
            y <  this.offset[1] + element.offsetHeight &&=0A=
            x >=3D this.offset[0] &&=0A=
            x <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  withinIncludingScrolloffsets: function(element, x, y) {=0A=
    var offsetcache =3D Element.cumulativeScrollOffset(element);=0A=
=0A=
    this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A=
    this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A=
    this.offset =3D Element.cumulativeOffset(element);=0A=
=0A=
    return (this.ycomp >=3D this.offset[1] &&=0A=
            this.ycomp <  this.offset[1] + element.offsetHeight &&=0A=
            this.xcomp >=3D this.offset[0] &&=0A=
            this.xcomp <  this.offset[0] + element.offsetWidth);=0A=
  },=0A=
=0A=
  // within must be called directly before=0A=
  overlap: function(mode, element) {=0A=
    if (!mode) return 0;=0A=
    if (mode =3D=3D 'vertical')=0A=
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A=
        element.offsetHeight;=0A=
    if (mode =3D=3D 'horizontal')=0A=
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A=
        element.offsetWidth;=0A=
  },=0A=
=0A=
  // Deprecation layer -- use newer Element methods now (1.5.2).=0A=
=0A=
  cumulativeOffset: Element.Methods.cumulativeOffset,=0A=
=0A=
  positionedOffset: Element.Methods.positionedOffset,=0A=
=0A=
  absolutize: function(element) {=0A=
    Position.prepare();=0A=
    return Element.absolutize(element);=0A=
  },=0A=
=0A=
  relativize: function(element) {=0A=
    Position.prepare();=0A=
    return Element.relativize(element);=0A=
  },=0A=
=0A=
  realOffset: Element.Methods.cumulativeScrollOffset,=0A=
=0A=
  offsetParent: Element.Methods.getOffsetParent,=0A=
=0A=
  page: Element.Methods.viewportOffset,=0A=
=0A=
  clone: function(source, target, options) {=0A=
    options =3D options || { };=0A=
    return Element.clonePosition(target, source, options);=0A=
  }=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
if (!document.getElementsByClassName) document.getElementsByClassName =
=3D function(instanceMethods){=0A=
  function iter(name) {=0A=
    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' =
" + name + " ')]";=0A=
  }=0A=
=0A=
  instanceMethods.getElementsByClassName =3D =
Prototype.BrowserFeatures.XPath ?=0A=
  function(element, className) {=0A=
    className =3D className.toString().strip();=0A=
    var cond =3D /\s/.test(className) ? $w(className).map(iter).join('') =
: iter(className);=0A=
    return cond ? document._getElementsByXPath('.//*' + cond, element) : =
[];=0A=
  } : function(element, className) {=0A=
    className =3D className.toString().strip();=0A=
    var elements =3D [], classNames =3D (/\s/.test(className) ? =
$w(className) : null);=0A=
    if (!classNames && !className) return elements;=0A=
=0A=
    var nodes =3D $(element).getElementsByTagName('*');=0A=
    className =3D ' ' + className + ' ';=0A=
=0A=
    for (var i =3D 0, child, cn; child =3D nodes[i]; i++) {=0A=
      if (child.className && (cn =3D ' ' + child.className + ' ') && =
(cn.include(className) ||=0A=
          (classNames && classNames.all(function(name) {=0A=
            return !name.toString().blank() && cn.include(' ' + name + ' =
');=0A=
          }))))=0A=
        elements.push(Element.extend(child));=0A=
    }=0A=
    return elements;=0A=
  };=0A=
=0A=
  return function(className, parentElement) {=0A=
    return $(parentElement || =
document.body).getElementsByClassName(className);=0A=
  };=0A=
}(Element.Methods);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.ClassNames =3D Class.create();=0A=
Element.ClassNames.prototype =3D {=0A=
  initialize: function(element) {=0A=
    this.element =3D $(element);=0A=
  },=0A=
=0A=
  _each: function(iterator) {=0A=
    this.element.className.split(/\s+/).select(function(name) {=0A=
      return name.length > 0;=0A=
    })._each(iterator);=0A=
  },=0A=
=0A=
  set: function(className) {=0A=
    this.element.className =3D className;=0A=
  },=0A=
=0A=
  add: function(classNameToAdd) {=0A=
    if (this.include(classNameToAdd)) return;=0A=
    this.set($A(this).concat(classNameToAdd).join(' '));=0A=
  },=0A=
=0A=
  remove: function(classNameToRemove) {=0A=
    if (!this.include(classNameToRemove)) return;=0A=
    this.set($A(this).without(classNameToRemove).join(' '));=0A=
  },=0A=
=0A=
  toString: function() {=0A=
    return $A(this).join(' ');=0A=
  }=0A=
};=0A=
=0A=
Object.extend(Element.ClassNames.prototype, Enumerable);=0A=
=0A=
/*-----------------------------------------------------------------------=
---*/=0A=
=0A=
Element.addMethods();
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe.js

/*----------------------------------------------------------------=0A=
=0A=
Class: adobe=0A=
=0A=
Properties:=0A=
console - undefined=0A=
debugging - boolean=0A=
options - hash=0A=
version - string=0A=
COLOR_DEPTH - number or NaN=0A=
DIR - string=0A=
FILE - string=0A=
PATH - string=0A=
SCRIPT_BUILD - number or NaN=0A=
SCRIPT_ENGINE - string=0A=
SCRIPT_VERSION - number or NaN=0A=
=0A=
----------------------------------------------------------------*/=0A=
=0A=
var adobe =3D Class.create({=0A=
	initialize: function(options) {=0A=
		var src =3D document.getElementById("adobe").getAttribute("src"),=0A=
		lastfolder =3D src.lastIndexOf("/"),=0A=
		folders =3D src.substring(0, lastfolder),=0A=
		file =3D src.substring(lastfolder+1),=0A=
		q =3D src.split("?")[1],=0A=
		options =3D options || {},=0A=
		NAN =3D parseInt("");=0A=
=0A=
		if(q) { Object.extend(options, q.toQueryParams()); }=0A=
=0A=
		this.version =3D "0.1";=0A=
		this.options =3D options;=0A=
		this.debugging =3D false;=0A=
		this.console;=0A=
		this.DIR =3D folders;=0A=
		this.PATH =3D folders+"/";=0A=
		this.FILE =3D file;=0A=
		this.COLOR_DEPTH =3D screen.colorDepth || NAN;=0A=
		this.SCRIPT_ENGINE =3D (window.ScriptEngine) ? window.ScriptEngine() : =
"JavaScript";=0A=
		this.SCRIPT_VERSION =3D (this.SCRIPT_ENGINE =3D=3D "JScript") ? =
(ScriptEngineMajorVersion()+ScriptEngineMinorVersion()/10) : NAN;=0A=
		this.SCRIPT_BUILD =3D (this.SCRIPT_ENGINE =3D=3D "JScript") ? =
ScriptEngineBuildVersion() : NAN;=0A=
	},=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: debug=0A=
	Set to true, this provides <Console> methods in the adobe object eg. =
adobe.log=0A=
=0A=
>	adobe.debug(true)=0A=
=0A=
	Parameters:=0A=
	bool - boolean=0A=
	=0A=
	Returned Value:=0A=
	Nothing=0A=
=0A=
----------------------------------------------------------------*/=0A=
	debug: function(bool) {=0A=
		if(this.debugging =3D=3D=3D bool) {return;}=0A=
		this.debugging =3D !!bool;=0A=
		adobe.Jsan.errorLevel =3D (this.debugging) ? "die" : "none";=0A=
		adobe.Jsan.use("adobe.Console");=0A=
		var console =3D new adobe.Console();		=0A=
		Object.extend(this, console);=0A=
	}=0A=
});=0A=
=0A=
adobe =3D new adobe();=0A=
=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	JSAN implementation=0A=
=0A=
----------------------------------------------------------------*/=0A=
=0A=
adobe.Jsan =3D function () { adobe.Jsan.addRepository(arguments) }=0A=
=0A=
adobe.Jsan.VERSION =3D 0.10;=0A=
=0A=
adobe.Jsan.globalScope   =3D self;=0A=
adobe.Jsan.includePath   =3D ['.', 'lib'];=0A=
adobe.Jsan.errorLevel    =3D "none";=0A=
adobe.Jsan.errorMessage  =3D "";=0A=
adobe.Jsan.loaded        =3D {};=0A=
=0A=
adobe.Jsan.use =3D function () {=0A=
    var classdef =3D adobe.Jsan.require(arguments[0]);=0A=
    if (!classdef) return null;=0A=
=0A=
    var importList =3D adobe.Jsan._parseUseArgs.apply(adobe.Jsan, =
arguments).importList;=0A=
    adobe.Jsan.exporter(classdef, importList);=0A=
=0A=
    return classdef;=0A=
}=0A=
=0A=
adobe.Jsan.require =3D function (pkg) {=0A=
    var path =3D adobe.Jsan._convertPackageToPath(pkg);=0A=
    if (adobe.Jsan.loaded[path]) {=0A=
        return adobe.Jsan.loaded[path];=0A=
    }=0A=
=0A=
    try {=0A=
        var classdef =3D eval(pkg);=0A=
        if (typeof classdef !=3D 'undefined') return classdef;=0A=
    } catch (e) { /* nice try, eh? */ }=0A=
=0A=
=0A=
    for (var i =3D 0; i < adobe.Jsan.includePath.length; i++) {=0A=
        var js;=0A=
        try{=0A=
            var url =3D adobe.Jsan._convertPathToUrl(path, =
adobe.Jsan.includePath[i]);=0A=
                js  =3D adobe.Jsan._loadJSFromUrl(url);=0A=
        } catch (e) {=0A=
            if (i =3D=3D adobe.Jsan.includePath.length - 1) throw e;=0A=
        }=0A=
        if (js !=3D null) {=0A=
            var classdef =3D adobe.Jsan._createScript(js, pkg);=0A=
            adobe.Jsan.loaded[path] =3D classdef;=0A=
            return classdef;=0A=
        }=0A=
    }=0A=
    return false;=0A=
=0A=
}=0A=
=0A=
adobe.Jsan.exporter =3D function () {=0A=
    adobe.Jsan._exportItems.apply(adobe.Jsan, arguments);=0A=
}=0A=
=0A=
adobe.Jsan.addRepository =3D function () {=0A=
    var temp =3D adobe.Jsan._flatten( arguments );=0A=
    // Need to go in reverse to do something as simple as unshift( @foo, =
@_ );=0A=
    for ( var i =3D temp.length - 1; i >=3D 0; i-- )=0A=
        adobe.Jsan.includePath.unshift(temp[i]);=0A=
    return adobe.Jsan;=0A=
}=0A=
=0A=
adobe.Jsan._flatten =3D function( list1 ) {=0A=
    var list2 =3D new Array();=0A=
    for ( var i =3D 0; i < list1.length; i++ ) {=0A=
        if ( typeof list1[i] =3D=3D 'object' ) {=0A=
            list2 =3D adobe.Jsan._flatten( list1[i], list2 );=0A=
        }=0A=
        else {=0A=
            list2.push( list1[i] );=0A=
        }=0A=
    }=0A=
    return list2;=0A=
};=0A=
=0A=
adobe.Jsan._convertPathToUrl =3D function (path, repository) {=0A=
    return repository.concat('/' + path);=0A=
};=0A=
    =0A=
=0A=
adobe.Jsan._convertPackageToPath =3D function (pkg) {=0A=
    var path =3D pkg.replace(/\./g, '/');=0A=
        path =3D path.concat('.js');=0A=
    return path;=0A=
}=0A=
=0A=
adobe.Jsan._parseUseArgs =3D function () {=0A=
    var pkg        =3D arguments[0];=0A=
    var importList =3D [];=0A=
=0A=
    for (var i =3D 1; i < arguments.length; i++)=0A=
        importList.push(arguments[i]);=0A=
=0A=
    return {=0A=
        pkg:        pkg,=0A=
        importList: importList=0A=
    }=0A=
}=0A=
=0A=
adobe.Jsan._loadJSFromUrl =3D function (url) {=0A=
    return new adobe.Jsan.Request().getText(url);=0A=
}=0A=
=0A=
adobe.Jsan._findExportInList =3D function (list, request) {=0A=
    if (list =3D=3D null) return false;=0A=
    for (var i =3D 0; i < list.length; i++)=0A=
        if (list[i] =3D=3D request)=0A=
            return true;=0A=
    return false;=0A=
}=0A=
=0A=
adobe.Jsan._findExportInTag =3D function (tags, request) {=0A=
    if (tags =3D=3D null) return [];=0A=
    for (var i in tags)=0A=
        if (i =3D=3D request)=0A=
            return tags[i];=0A=
    return [];=0A=
}=0A=
=0A=
adobe.Jsan._exportItems =3D function (classdef, importList) {=0A=
    var exportList  =3D new Array();=0A=
    var EXPORT      =3D classdef.EXPORT;=0A=
    var EXPORT_OK   =3D classdef.EXPORT_OK;=0A=
    var EXPORT_TAGS =3D classdef.EXPORT_TAGS;=0A=
    =0A=
    if (importList.length > 0) {=0A=
       importList =3D adobe.Jsan._flatten( importList );=0A=
=0A=
       for (var i =3D 0; i < importList.length; i++) {=0A=
            var request =3D importList[i];=0A=
            if (   adobe.Jsan._findExportInList(EXPORT,    request)=0A=
                || adobe.Jsan._findExportInList(EXPORT_OK, request)) {=0A=
                exportList.push(request);=0A=
                continue;=0A=
            }=0A=
            var list =3D adobe.Jsan._findExportInTag(EXPORT_TAGS, =
request);=0A=
            for (var i =3D 0; i < list.length; i++) {=0A=
                exportList.push(list[i]);=0A=
            }=0A=
        }=0A=
    } else {=0A=
        exportList =3D EXPORT;=0A=
    }=0A=
    adobe.Jsan._exportList(classdef, exportList);=0A=
}=0A=
=0A=
adobe.Jsan._exportList =3D function (classdef, exportList) {=0A=
    if (typeof(exportList) !=3D 'object') return null;=0A=
    for (var i =3D 0; i < exportList.length; i++) {=0A=
        var name =3D exportList[i];=0A=
=0A=
        if (adobe.Jsan.globalScope[name] =3D=3D null)=0A=
            adobe.Jsan.globalScope[name] =3D classdef[name];=0A=
    }=0A=
}=0A=
=0A=
adobe.Jsan._makeNamespace =3D function(js, pkg) {=0A=
    var spaces =3D pkg.split('.');=0A=
    var parent =3D adobe.Jsan.globalScope;=0A=
    eval(js);=0A=
    var classdef =3D eval(pkg);=0A=
    for (var i =3D 0; i < spaces.length; i++) {=0A=
        var name =3D spaces[i];=0A=
        if (i =3D=3D spaces.length - 1) {=0A=
            if (typeof parent[name] =3D=3D 'undefined') {=0A=
                parent[name] =3D classdef;=0A=
                if ( typeof classdef['prototype'] !=3D 'undefined' ) {=0A=
                    parent[name].prototype =3D classdef.prototype;=0A=
                }=0A=
            }=0A=
        } else {=0A=
            if (parent[name] =3D=3D undefined) {=0A=
                parent[name] =3D {};=0A=
            }=0A=
        }=0A=
=0A=
        parent =3D parent[name];=0A=
    }=0A=
    return classdef;=0A=
}=0A=
=0A=
adobe.Jsan._handleError =3D function (msg, level) {=0A=
    if (!level) level =3D adobe.Jsan.errorLevel;=0A=
    adobe.Jsan.errorMessage =3D msg;=0A=
=0A=
    switch (level) {=0A=
        case "none":=0A=
            break;=0A=
        case "warn":=0A=
            alert(msg);=0A=
            break;=0A=
        case "die":=0A=
        default:=0A=
            throw new Error(msg);=0A=
            break;=0A=
    }=0A=
}=0A=
=0A=
adobe.Jsan._createScript =3D function (js, pkg) {=0A=
    try {=0A=
        return adobe.Jsan._makeNamespace(js, pkg);=0A=
    } catch (e) {=0A=
        adobe.Jsan._handleError("Could not create namespace[" + pkg + =
"]: " + e);=0A=
    }=0A=
    return null;=0A=
}=0A=
=0A=
=0A=
adobe.Jsan.prototype =3D {=0A=
    use: function () { adobe.Jsan.use.apply(adobe.Jsan, arguments) }=0A=
};=0A=
=0A=
=0A=
// Low-Level HTTP Request=0A=
adobe.Jsan.Request =3D function (jsan) {=0A=
    if (adobe.Jsan.globalScope.XMLHttpRequest) {=0A=
        this._req =3D new XMLHttpRequest();=0A=
    } else {=0A=
        this._req =3D new ActiveXObject("Microsoft.XMLHTTP");=0A=
    }=0A=
};=0A=
=0A=
adobe.Jsan.Request.prototype =3D {=0A=
    _req:  null,=0A=
    =0A=
    getText: function (url) {=0A=
        this._req.open("GET", url, false);=0A=
        try {=0A=
            this._req.send(null);=0A=
            if (this._req.status =3D=3D 200 || =0A=
		this._req.status =3D=3D 0)=0A=
                return this._req.responseText;=0A=
        } catch (e) {=0A=
            adobe.Jsan._handleError("File not found: " + url);=0A=
            return null;=0A=
        };=0A=
=0A=
        adobe.Jsan._handleError("File not found: " + url);=0A=
        return null;=0A=
    }=0A=
};=0A=
=0A=
Object.extend(adobe, {=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: use=0A=
=0A=
>	adobe.use("adobe.foo")=0A=
=0A=
	Parameters:=0A=
	namespace - string=0A=
	=0A=
	Returned Value:=0A=
	Class reference=0A=
	=0A=
	Delegate for:=0A=
	<http://www.openjsan.org/src/c/cw/cwest/JSAN-0.08/doc/html/JSAN.html>=0A=
=0A=
----------------------------------------------------------------*/=0A=
	use: adobe.Jsan.use,=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: addRepository=0A=
	=0A=
>	adobe.addRepository("/path/to/repository");=0A=
	=0A=
	Parameters:=0A=
	path - string=0A=
	=0A=
	Returned Value:=0A=
	JSAN Object reference=0A=
	=0A=
	Delegate for:=0A=
	<http://www.openjsan.org/src/c/cw/cwest/JSAN-0.08/doc/html/JSAN.html>=0A=
=0A=
----------------------------------------------------------------*/=0A=
	addRepository: adobe.Jsan.addRepository,=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: setLoaded=0A=
=0A=
>	adobe.setLoaded(adobe.foo, adobe.PATH+"adobe/foo.js")=0A=
=0A=
	Parameters:=0A=
	module - object reference=0A=
	file - string=0A=
	=0A=
	Returned Value:=0A=
	None=0A=
	=0A=
	Delegate for:=0A=
	<http://www.openjsan.org/src/c/cw/cwest/JSAN-0.08/doc/html/JSAN.html>=0A=
=0A=
----------------------------------------------------------------*/=0A=
	setLoaded: function(module, file) {=0A=
		adobe.Jsan.loaded[file] =3D module;=0A=
	}=0A=
});=0A=
=0A=
adobe.addRepository(adobe.DIR);=0A=
adobe.setLoaded(adobe, adobe.FILE);=0A=
=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Asset Linking=0A=
=0A=
----------------------------------------------------------------*/=0A=
=0A=
/*	ASSET LOADER $Revision: 1.1 $=0A=
	Work in progress=0A=
	@author btapley=0A=
*/=0A=
=0A=
/*	=0A=
	Class: Loader =0A=
	Load assets into the document, prevent overlapping assets form being =
written more than once.=0A=
	=0A=
	Example:=0A=
>	adobe.Loader.requireAsset("/path/to/my/file.js");=0A=
>	adobe.Loader.requireAsset("_/library_path/to/my/file.css");=0A=
>	adobe.Loader.requireAsset("/path/to/my/file_print.css", { media: =
"print" });=0A=
*/=0A=
=0A=
adobe.Loader =3D (function() {	=0A=
	var ATTR_TOKEN =3D "#ATTR#",=0A=
		STATUS_NONE =3D 0,=0A=
		STATUS_DONE =3D 1,=0A=
		STATUS_ERROR =3D 2,=0A=
		SRC_PATH_TRIG =3D "_/",=0A=
		PATH_CAPTURE =3D /(^.+\.)(\w+)(\?[^$]*$|$)/,=0A=
		SCRIPT_TAG =3D "<script #ATTR#><\/script>",=0A=
		LINK_TAG =3D "<link #ATTR# \/>",=0A=
		jscompress =3D !!adobe.jscompress,=0A=
		compress_path =3D adobe.jscompress_path,=0A=
		renderStatus =3D {},=0A=
		assets =3D {=0A=
			JS: [ SCRIPT_TAG, "src", {=0A=
				type:"text/javascript"=0A=
			}],=0A=
			CSS: [ LINK_TAG, "href", {=0A=
				type:"text/css",=0A=
				rel:"stylesheet"=0A=
			}]=0A=
		},=0A=
		renderAsset =3D function(path, user_attributes) {	=0A=
			var explode =3D path.match(PATH_CAPTURE), //break apart the path =
argument=0A=
				ext =3D explode[2], //file extension=0A=
				q =3D explode[3]; //query=0A=
			=0A=
			if(!ext) { return; } //didn't find a suitable file extension?=0A=
				=0A=
			var type =3D ext.toUpperCase(), //declare file type=0A=
				data =3D assets[type]; //declare data point=0A=
				=0A=
			if(!data) { return; } //is asset type defined in here?=0A=
				=0A=
			/* compression hack here. Still implementing server compression */=0A=
			if(type =3D=3D "JS" && jscompress) {=0A=
				path =3D explode[1] + compress_path + "." + ext + q;=0A=
			}=0A=
				=0A=
			var out =3D {},=0A=
				attrs =3D [],=0A=
				attrN =3D "",=0A=
				code =3D data[0],=0A=
				pathAtt =3D data[1],=0A=
				reqAtt =3D data[2];=0A=
				=0A=
			for(attrN in reqAtt) { //copy required attributes =0A=
				out[attrN] =3D reqAtt[attrN];=0A=
			}=0A=
			=0A=
			out[pathAtt] =3D path; //set path attribute=0A=
			=0A=
			if(user_attributes) { //copy user-defined attributes=0A=
				for(attrN in user_attributes) {=0A=
					out[attrN] =3D user_attributes[attrN];=0A=
				}=0A=
			}=0A=
			=0A=
			for(attrN in out) { //create attribute text eg. name=3D"value"=0A=
				attrV =3D out[attrN];				=0A=
				attrs.push((attrV) ? (attrN + '=3D"' + attrV + '"') : attrN);=0A=
			}=0A=
			=0A=
			return code.replace(ATTR_TOKEN, attrs.join(" "));=0A=
		};=0A=
	=0A=
	return {=0A=
		/*=0A=
			Function: requireAsset=0A=
			=0A=
			Parameters:=0A=
			path - location string (Paths beginning with "_/" will be relative to =
the library location)=0A=
			user_attributes - object instance (optional)=0A=
			=0A=
			Returns:=0A=
			Integer indicating render status (0=3DNone, 1=3DDone, 2=3DError)=0A=
		*/=0A=
		=0A=
		requireAsset : function(path, user_attributes) {=0A=
			if(!path) { return STATUS_NONE; } //insurance from bad calls=0A=
			=0A=
			if(path.indexOf(SRC_PATH_TRIG) =3D=3D=3D 0) { //did we request a =
library relative path?=0A=
				path =3D path.replace(SRC_PATH_TRIG, adobe.PATH); //replace the =
trigger with the path=0A=
			}=0A=
			=0A=
			var currentStatus =3D (renderStatus[path] || STATUS_NONE); //declare =
status?=0A=
			=0A=
			if(currentStatus > STATUS_NONE) { return currentStatus; } //this path =
was already written, terminally failed, or in progress?=0A=
								=0A=
			var txt =3D renderAsset(path, user_attributes);=0A=
			=0A=
			if(!txt) { =0A=
				return (renderStatus[path] =3D STATUS_ERROR);=0A=
			} else {=0A=
				renderStatus[path] =3D currentStatus =3D STATUS_DONE; //new request, =
log it before writing to prevent recursion=0A=
			}=0A=
			=0A=
			document.write(txt);=0A=
			=0A=
			return currentStatus;=0A=
		},=0A=
		setLoaded: function(path) {=0A=
			renderStatus[path] =3D STATUS_DONE;=0A=
		}=0A=
	};=0A=
})();=0A=
=0A=
Object.extend(adobe, {=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: link=0A=
	=0A=
>	adobe.link("path/to/file.css", {media:"screen"})=0A=
	=0A=
	Parameters:=0A=
	path - relative path from adobe.js file as string=0A=
	params - hash=0A=
	=0A=
	Returned Value:=0A=
	0 =3D Nothing, 1 =3D Done, 2 =3D Error=0A=
=0A=
----------------------------------------------------------------*/=0A=
	link: adobe.Loader.requireAsset.wrap(function($proceed, path, params) {=0A=
		$proceed(adobe.PATH + path, params);	=0A=
	}),=0A=
/*----------------------------------------------------------------	=0A=
=0A=
	Method: setLinked=0A=
=0A=
>	adobe.setLinked("/path/to/file.css")=0A=
=0A=
	Parameters:=0A=
	path - relative path from adobe.js file as string=0A=
	=0A=
	Returned Value:=0A=
	None=0A=
=0A=
----------------------------------------------------------------*/=0A=
	setLinked: adobe.Loader.setLoaded.wrap(function($proceed, path) {=0A=
		$proceed(adobe.PATH + path);=0A=
	})=0A=
});=0A=
=0A=
/* 	DEVICE_DETECTION2.JS=0A=
	$Id: device_detection2.js,v 1.4 2010/08/05 16:04:15 dgasior Exp $=0A=
=0A=
	This library is designed to give you three pieces of information:=0A=
=0A=
	a. info.device -- the name/ID of the specific device: e.g. "Motorola =
Droid"=0A=
	b. info.os -- the name/ID of the operating system, e.g. "Android"=0A=
	c. info.category -- what class of device this is (mobile, tablet, =
desktop, appliance, etc.)=0A=
*/=0A=
=0A=
/* version 0.9=0A=
   4/16/2010 - ABE=0A=
   added winOSFamily to desktopDeviceCategory=0A=
   changed categories sequence to detect desktops first -- and will set =
deviceCategory=3DunknownDeviceCategory.id if no match can be found.=0A=
*/=0A=
=0A=
/* TODO: incorporate all known desktop OS's  --> good resource is =
http://www.geekpedia.com/code47_Detect-operating-system-from-user-agent-s=
tring.html */=0A=
/*=0A=
        'Windows 3.11' =3D> 'Win16',=0A=
        'Windows 95' =3D> '(Windows 95)|(Win95)|(Windows_95)',=0A=
        'Windows 98' =3D> '(Windows 98)|(Win98)',=0A=
        'Windows 2000' =3D> '(Windows NT 5.0)|(Windows 2000)',=0A=
        'Windows XP' =3D> '(Windows NT 5.1)|(Windows XP)',=0A=
        'Windows Server 2003' =3D> '(Windows NT 5.2)',=0A=
        'Windows Vista' =3D> '(Windows NT 6.0)',=0A=
        'Windows 7' =3D> '(Windows NT 7.0)',=0A=
        'Windows NT 4.0' =3D> '(Windows NT =
4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',=0A=
        'Windows ME' =3D> 'Windows ME',=0A=
        'Open BSD' =3D> 'OpenBSD',=0A=
        'Sun OS' =3D> 'SunOS',=0A=
        'Linux' =3D> '(Linux)|(X11)',=0A=
        'Mac OS' =3D> '(Mac_PowerPC)|(Macintosh)',=0A=
        'QNX' =3D> 'QNX',=0A=
        'BeOS' =3D> 'BeOS',=0A=
        'OS/2' =3D> 'OS/2',=0A=
*/=0A=
=0A=
/* Copyright (c) 2010 Adobe Systems Incorporated. * All rights reserved. =
* Permission is hereby granted, free of charge, to any person obtaining =
* a copy of this software and associated documentation files (the =
"Software"), * to deal in the Software without restriction, including =
without limitation * the rights to use, copy, modify, merge, publish, =
distribute, sublicense, * and/or sell copies of the Software, and to =
permit persons to whom the * Software is furnished to do so, subject to =
the following conditions: * The above copyright notice and this =
permission notice shall be included in * all copies or substantial =
portions of the Software. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT =
WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO =
THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE =
AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT =
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER =
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR =
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * =
SOFTWARE. */=0A=
=0A=
	var droidDeviceProfile =3D {id:"Motorola Droid",frag:/droid build/};=0A=
	var nexusDeviceProfile =3D  {id:"Google Nexus One",frag:/nexus one =
build/i};=0A=
	var palmPreDeviceProfile =3D {id:"Palm Pre", frag:/525.27.1 pre/i};=0A=
	=0A=
	var win311DeviceProfile =3D {id:"Windows 3.11",frag:/win16/i};=0A=
	var win95ADeviceProfile =3D {id:"Windows 95",frag:/windows 95/i};=0A=
	var win95BDeviceProfile =3D {id:"Windows 95",frag:/win95/i};=0A=
	var win95CDeviceProfile =3D {id:"Windows 95",frag:/win_95/i};=0A=
	var win2000ADeviceProfile =3D {id:"Windows 2000",frag:/windows 2000/i};=0A=
	var win2000BDeviceProfile =3D {id:"Windows 2000",frag:/windows nt =
5.0/i};=0A=
=0A=
	var winServer2003DeviceProfile =3D {id:"Windows Server =
2003",frag:/windows nt 5.2/i};=0A=
	=0A=
	var winNT40ADeviceProfile =3D {id:"Windows NT 4.0",frag:/windows nt =
4.0/i};=0A=
	var winNT40BDeviceProfile =3D {id:"Windows NT 4.0",frag:/winnt/i};=0A=
	var winNT40CDeviceProfile =3D {id:"Windows NT 4.0",frag:/windows nt/i}; =
// need to make sure this gets processed last as it would otherwise =
prevent correct id=0A=
	// of windows 2000 for example or replace with regular expression that =
is more strict.=0A=
=0A=
	var winmeDeviceProfile =3D {id:"Windows ME",frag:/windows me/i};=0A=
=0A=
	var openBSDDeviceProfile =3D {id:"OpenBSD",frag:/openbsd/i};=0A=
	var sunOSDeviceProfile =3D {id:"Sun OS",frag:/sunos/i};=0A=
	var linuxADeviceProfile =3D {id:"Linux",frag:/linux/i};=0A=
	var linuxBDeviceProfile =3D {id:"Linux",frag:/x11/i};=0A=
	var QNXDeviceProfile =3D {id:"QNX",frag:/qnx/i};=0A=
	var beosDeviceProfile =3D {id:"BeOS",frag:/beos/i};=0A=
	var os2DeviceProfile =3D {id:"OS2",frag:/OS\/2/i};=0A=
=0A=
	var winxpDeviceProfile =3D {id:"Windows XP",frag:/windows xp/i};=0A=
	var winxp2DeviceProfile =3D {id:"Windows XP",frag:/windows nt 5.1/i};=0A=
	var win7ADeviceProfile =3D {id:"Windows 7",frag:/windows nt 6.1/i};=0A=
	var win7BDeviceProfile =3D {id:"Windows 7",frag:/windows nt 7.01/i};=0A=
	var winvistaDeviceProfile =3D {id:"Windows Vista",frag:/windows nt =
6.0/i};=0A=
	=0A=
	var macosx106DeviceProfile =3D  {id:"Snow Leopard",frag:/mac os x =
10.6/i};=0A=
	var macosx105DeviceProfile =3D  {id:"Leopard",frag:/mac os x 10.5/i};=0A=
	var macosA =3D {id:"Mac OS",frag:/mac_powerpc/i};=0A=
	var macosB =3D {id:"Mac OS",frag:/macintosh/i};=0A=
=0A=
/* OPERATING SYSTEMS */=0A=
	=0A=
	var androidOSFamily =3D {id:"Android OS",frag:/android =
/i,devices:[droidDeviceProfile,nexusDeviceProfile]};=0A=
	=0A=
	var webOSFamily =3D =
{id:"webOS",frag:/webOS\/1.3.5/i,devices:[palmPreDeviceProfile]};=0A=
	=0A=
	var macOSFamily =3D {id:"Mac OS",frag:/mac =
os/i,devices:[macosx105DeviceProfile,macosx106DeviceProfile,macosA, =
macosB]};=0A=
=0A=
	var winOSFamily =3D =
{id:"Windows",frag:/windows/i,devices:[winxpDeviceProfile,winxp2DevicePro=
file,win7ADeviceProfile,win7BDeviceProfile,winvistaDeviceProfile,win311De=
viceProfile,win95ADeviceProfile,win95BDeviceProfile,win95CDeviceProfile,w=
inServer2003DeviceProfile,winNT40ADeviceProfile,winNT40BDeviceProfile,win=
NT40CDeviceProfile,winmeDeviceProfile]};=0A=
=0A=
	var linuxOSFamily =3D =
{id:"Linux",frag:/linux/i,devices:[openBSDDeviceProfile,sunOSDeviceProfil=
e,linuxADeviceProfile, linuxBDeviceProfile, =
QNXDeviceProfile,beosDeviceProfile,os2DeviceProfile]};=0A=
=0A=
/* CATEGORIES */=0A=
=0A=
	var desktopDeviceCategory =3D =
{id:"Desktop",osFamilies:[macOSFamily,winOSFamily,linuxOSFamily]};=0A=
	=0A=
	var mobileDeviceCategory =3D {id:"Mobile",osFamilies:[androidOSFamily]};=0A=
	=0A=
	var unknownDeviceCategory =3D {id:"Unidentified Platform"};=0A=
	=0A=
	var categories =3D [mobileDeviceCategory,desktopDeviceCategory =
/*,mobileDeviceCategory*/];=0A=
=0A=
/*=0A=
	function StringBuffer() {=0A=
		this.__strings__ =3D new Array;=0A=
	}=0A=
	=0A=
	StringBuffer.prototype.append =3D function (str) {=0A=
		this.__strings__.push(str);=0A=
	};=0A=
	=0A=
	StringBuffer.prototype.toString =3D function () {=0A=
		return this.__strings__.join("");=0A=
	};=0A=
=0A=
=0A=
	function isdefined( variable)=0A=
	{=0A=
		return (typeof(window[variable]) =3D=3D "undefined")?  false: true;=0A=
	}=0A=
=0A=
	function displayOrientation() {=0A=
		var err =3D "";=0A=
		try {=0A=
			var c =3D context;=0A=
	=0A=
	=0A=
			if(isDefined(context)) {=0A=
				if(isDefined(context.getResources())) {=0A=
					if(isDefined(context.getResources().getConfiguration())) {=0A=
						var orientation=3D context.getResources().getConfiguration();=0A=
						if(isdefined(orientation)) {=0A=
							=0A=
							document.write("orientation: "+orientation);=0A=
						} else {=0A=
							err =3D "no orientation";=0A=
						}=0A=
					} else {=0A=
						err =3D "no configuration";=0A=
					}=0A=
				} else {=0A=
					err =3D "no resources";=0A=
				} =0A=
			} else {=0A=
				err =3D "no context";=0A=
			}=0A=
			mylog("err: "+err);=0A=
		} catch (e) {=0A=
		  mylog("no display orientation data available");=0A=
  		  return;=0A=
		}=0A=
=0A=
=0A=
	}=0A=
	=0A=
	function mylog(s) {=0A=
		document.write('<div style=3D"color:grey">'+s+'</div>');=0A=
	}=0A=
=0A=
	function dumpDeviceInfo() {=0A=
		var buf;=0A=
// 	document.write('<div style=3D"color:white">checkpoint dump1</div>');=0A=
		try {=0A=
			var Build =3D android.os.Build;=0A=
			if(isdefined(Build)) {=0A=
// 	document.write('<div style=3D"color:white">checkpoint dump2</div>');=0A=
				buf =3D new StringBuffer();=0A=
				buf.append("VERSION.RELEASE {"+Build.VERSION.RELEASE+"}");=0A=
				buf.append("\nVERSION.INCREMENTAL {"+Build.VERSION.INCREMENTAL=0A=
				+"}");=0A=
				buf.append("\nVERSION.SDK {"+Build.VERSION.SDK+"}");=0A=
				buf.append("\nBOARD {"+Build.BOARD+"}");=0A=
				buf.append("\nBRAND {"+Build.BRAND+"}");=0A=
				buf.append("\nDEVICE {"+Build.DEVICE+"}");=0A=
				buf.append("\nFINGERPRINT {"+Build.FINGERPRINT+"}");=0A=
				buf.append("\nHOST {"+Build.HOST+"}");=0A=
				buf.append("\nID {"+Build.ID+"}");=0A=
				=0A=
				mylog("build:"+buf);=0A=
			}=0A=
		} catch(e) {=0A=
//			document.write('<div style=3D"color:white">checkpoint dump3</div>');=0A=
			mylog("no device info available");=0A=
			return;=0A=
		}=0A=
	}=0A=
	=0A=
*/=0A=
=0A=
	function identifyDevice(d,ua) {=0A=
//		document.write('<div style=3D"color:white">'+d.frag+' =3D? =
'+ua+'</div>');=0A=
  		if (ua.search(d.frag) > -1) {=0A=
//			document.write('<div style=3D"color:white">MATCH!</div>');=0A=
		  	return {device:d.id};=0A=
		} else=0A=
		  return null;=0A=
	}=0A=
=0A=
	function identifyOS(os,ua) {=0A=
		var deviceInfo=3Dnull;=0A=
		var olen =3D os.devices.length;=0A=
		for(var k=3D0;k<olen;k++) {=0A=
			deviceInfo =3D identifyDevice(os.devices[k],ua);=0A=
			if(deviceInfo!=3Dnull) break;=0A=
		}=0A=
		if(deviceInfo!=3Dnull) deviceInfo.os =3D os.id;=0A=
		return deviceInfo;=0A=
	}=0A=
=0A=
	function identifyCategory(cat,ua) {=0A=
		var osInfo=3Dnull;=0A=
		var jlen =3D cat.osFamilies.length;=0A=
		for(var j=3D0;j<jlen;j++) {=0A=
			osInfo =3D identifyOS(cat.osFamilies[j],ua);=0A=
			if(osInfo!=3Dnull) break;=0A=
		}=0A=
		if(osInfo!=3Dnull) osInfo.category =3D cat.id;=0A=
		return osInfo;=0A=
	}=0A=
=0A=
	function identifyCategories(cats,ua) {=0A=
		var categoryInfo=3Dnull;=0A=
		var clen =3D cats.length;=0A=
		for(var i=3D0;i<clen;i++) {=0A=
			categoryInfo =3D identifyCategory(cats[i],ua);=0A=
			if(categoryInfo!=3Dnull) break;=0A=
		}=0A=
		=0A=
		if(!categoryInfo) categoryInfo =3D {};=0A=
		if(!categoryInfo.device) categoryInfo.device=3D'unknown';=0A=
		if(!categoryInfo.os) categoryInfo.os =3D 'unknown';=0A=
		if(!categoryInfo.category) categoryInfo.category =3D =
unknownDeviceCategory.id;=0A=
		return categoryInfo;=0A=
	}=0A=
	=0A=
	=0A=
	// external method=0A=
	// returns an object that should contain=0A=
	//		category (such as 'Desktop' or 'Mobile'=0A=
	//		os			(such as 'Windows', 'Mac OS', 'Android', etc.=0A=
	//		device		(such as 'Windows XP','Android', etc.=0A=
	=0A=
	// TBD:=0A=
	//		osversion=0A=
	//		carrier=0A=
	//		deviceregion=0A=
	=0A=
	function getCategoriesInfo() {=0A=
		return identifyCategories(categories, =
navigator.userAgent.toLowerCase());=0A=
	}=0A=
	=0A=
	function displayCategoriesInfo() {=0A=
		alert('isDesktop:'+isDesktop()  + ', os:' + info.os + ', device:' + =
info.device);=0A=
	} =0A=
	=0A=
	function isDroid() {=0A=
		return (info.device=3D=3DdroidDeviceProfile.id);=0A=
	}=0A=
	=0A=
	function isNexus() {=0A=
		return(info.device=3D=3DnexusDeviceProfile.id);=0A=
	}=0A=
	=0A=
	function isDesktop() {=0A=
		return(info.category=3D=3DdesktopDeviceCategory.id);=0A=
	}=0A=
	=0A=
	function isWinDesktop() {=0A=
		return(info.os=3D=3DwinOSFamily.id);=0A=
	}=0A=
	=0A=
	function isMacDesktop() {=0A=
		return(info.os=3D=3DmacOSFamily.id);=0A=
	}=0A=
	=0A=
	function simulateDroid() {=0A=
		info.device =3D droidDeviceProfile.id;=0A=
		info.category =3D mobileDeviceCategory.id;=0A=
		info.os =3D androidOSFamily.id;=0A=
	} =0A=
=0A=
	var info =3D getCategoriesInfo();=0A=
	//simulateDroid();=0A=
	if(isDesktop() !=3D true ) { =0A=
	=
adobe.Loader.requireAsset("/ubi/template/identity/adobe/screen/gnavMobile=
Fix.css", { media: "screen" });=0A=
	} =0A=
/*////////////////////////////////////////////////////////////////	=0A=
@author btapley=0A=
@author mhurdka=0A=
=0A=
$Id: hostEnv.js,v 1.4 2010/04/15 15:39:11 mok Exp $=0A=
=0A=
Method: hostEnv=0A=
=0A=
Function: =0A=
Simple host profile. Be warned, I've tried to avoid user-agent detection =
as much as possible but there is some here.=0A=
=0A=
Properties:=0A=
name - hostname=0A=
isSecure - boolean for https protocal=0A=
appN - application name=0A=
appV - application version number=0A=
ua - user-agent id as string=0A=
plt - platform id as string=0A=
lang - browser langauge=0A=
hasActiveX - boolean for ActiveX support=0A=
ie6 - have to check UA because of IE6 SP3 changing JSCRIPT and IEV to be =
7 anyway=0A=
ieV - like appV but more general eg. 5, 5.5, 6, 7=0A=
isSafari - boolean for apple web kit=0A=
kitV - webkit version number=0A=
=0A=
////////////////////////////////////////////////////////////////*/=0A=
=0A=
/*@cc_on; @*/=0A=
adobe.hostEnv =3D (function() {=0A=
	var ua =3D new String(navigator.userAgent.toLowerCase()), //using new =
to speed up the many method calls below=0A=
		appV =3D parseInt(navigator.appVersion, 0),=0A=
		isSafari =3D ua.indexOf('safari') !=3D -1,=0A=
		kitV =3D 0;=0A=
		=0A=
	if(isSafari) {=0A=
		var wk =3D 'applewebkit/',=0A=
			kitpos =3D ua.indexOf(wk);=0A=
		=0A=
		if(kitpos > -1) {=0A=
			var kit =3D ua.substring(kitpos+wk.length);=0A=
			kit =3D kit.substring(0,kit.indexOf(" "));=0A=
			kitV =3D parseInt(kit, 0);=0A=
		}=0A=
	}=0A=
=0A=
	if(ua.indexOf('opera/7') !=3D -1 || ua.indexOf('opera 7') !=3D -1) { =
appV =3D 7; }=0A=
	=0A=
	var ie6 =3D (ua.indexOf("msie 6.0") > -1) ? true : false;=0A=
	var ie =3D  (ua.indexOf("msie") > -1) ? true : false;=0A=
	=0A=
	var env =3D {=0A=
		"name":		window.location.hostname,=0A=
		"isSecure":	window.location.protocal =3D=3D "https:",=0A=
		"appN":		navigator.appName.toLowerCase(),=0A=
		"appV":		appV,=0A=
		"ua":		ua, =0A=
		"plt":		navigator.platform.toLowerCase(),=0A=
		"lang":		(navigator.language || navigator.userLanguage).substring(0,2),=0A=
		"ax":		typeof window.ActiveXObject !=3D "undefined",=0A=
		"ie":		ie,=0A=
		"ie6":		ie6,=0A=
		"ieV":		(function() {=0A=
				/*@=0A=
					@if (@_jscript_version >=3D 5 && @_jscript_version < 5.5) { return =
5; } @end;=0A=
					@if (@_jscript_version >=3D 5.5 && @_jscript_version < 5.6) { =
return 5.5; } @end;=0A=
					@if (@_jscript_version >=3D 5.6 && @_jscript_version < 5.7) { =
return 6; } @end;=0A=
					@if (@_jscript_version >=3D 5.7 && @_jscript_version < 5.8) { =
return 7; } @end;=0A=
					@if (@_jscript_version >=3D 5.8 && @_jscript_version < 5.9) { =
return 8; } @end;=0A=
				@*/=0A=
					return 0;=0A=
				})(),=0A=
		"isSafari": isSafari,=0A=
		"kitV":		kitV=0A=
	};=0A=
	=0A=
	return env;=0A=
})();=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Namespace: u=0A=
	Utility methods=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
adobe.u =3D {=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: nonEvent=0A=
	Non propagating event=0A=
=0A=
	Parameters:=0A=
	event - Event instance=0A=
	=0A=
	Returned Value:=0A=
	None=0A=
	=0A=
	Example:=0A=
>	Event.observe("foo", "click", adobe.u.nonEvent);=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	nonEvent: function (event) {=0A=
		return event.stop();=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: pixelate=0A=
	Append "px" to a number=0A=
=0A=
	Parameters:=0A=
	integer - integer=0A=
	=0A=
	Returned Value:=0A=
	string=0A=
	=0A=
	Example:=0A=
>	adobe.u.pixelate(1);=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	pixelate: function(integer) {=0A=
		return parseInt(integer)+"px";=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: getSearchParam=0A=
	Get a value defined in the uri search parameter by it's id or all =
parameters in a hash.=0A=
=0A=
	Parameters:=0A=
	id(optional) - string=0A=
	=0A=
	Returned Value:=0A=
	string or hash=0A=
	=0A=
	Example:=0A=
>	adobe.u.getSearchParam("foo");=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	getSearchParam: (function() {=0A=
		var _loadedParams;=0A=
		return function(id) {=0A=
			var params =3D _loadedParams || =0A=
			(_loadedParams =3D window.location.search.toQueryParams());=0A=
			return (id) ? params[id] : params;=0A=
		}=0A=
	})(),=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: freshenLocation=0A=
	Create a location string that would force a browser to check cache.=0A=
=0A=
	Parameters:=0A=
	uri - string=0A=
	param (optional) - string=0A=
=0A=
	Returned Value:=0A=
	string=0A=
=0A=
	Example:=0A=
>	adobe.u.freshenLocation("/path"[, "myParam"])=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	freshenLocation: function(uri, param) {=0A=
		var query =3D "?",=0A=
		param =3D param || "time",=0A=
		i =3D uri.indexOf(query),=0A=
		time =3D query + param + "=3D" + new Date().getTime();=0A=
		=0A=
		if(i=3D=3D-1) {=0A=
			return (uri + time);=0A=
		} else {=0A=
			var parts =3D adobe.u.unfreshenLocation(uri, param).split("?");=0A=
			return parts.join(time + ((parts[parts.length-1] =3D=3D "") ? "" : =
"&"));=0A=
		}=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: unfreshenLocation=0A=
	Remove the query set by <freshenLocation> from a uri string=0A=
	=0A=
	Parameters:=0A=
	uri - string=0A=
	param (optional) - string=0A=
	=0A=
	Returned Value:=0A=
	string=0A=
	=0A=
	Example:	=0A=
>	adobe.u.unfreshenLocation("/path"[, "myParam"])=0A=
=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	unfreshenLocation: function(uri, param) {=0A=
		var expression =3D new RegExp("([\\?&]?)"+(param||"time")+"=3D\\d*&?", =
"g");=0A=
		return uri.replace(expression, "$1");=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: revolve=0A=
	move the position of array items by specified number, wrapping items =
and keeping the length the same.=0A=
=0A=
	Parameters:=0A=
	arr - Array instance=0A=
	integer - position or negative integer=0A=
	=0A=
	Returned Value:=0A=
	Array instance passed in=0A=
	=0A=
	Example:=0A=
>	adobe.u.revolve(["a","b","c"], -1)=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	revolve: function(arr, integer) {=0A=
		arr.unshift.apply(arr, arr.splice(integer, arr.length));=0A=
		return this;=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: toInt=0A=
	Convert a string to an integer=0A=
=0A=
	Parameters:=0A=
	str - String instance=0A=
	=0A=
	Returned Value:=0A=
	integer=0A=
=0A=
	Example:=0A=
>	adobe.u.toInt("1")=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	toInt: function(str) {=0A=
		return parseInt(str);=0A=
	}=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Method: toInt=0A=
=0A=
	Returned Value:=0A=
	integer=0A=
=0A=
	Example:=0A=
>	("1").toInt();=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
String.prototype.toInt =3D function() {=0A=
	return parseInt(this);=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Method: pixelate=0A=
	Append "px" to a number=0A=
=0A=
	Returned Value:=0A=
	string=0A=
=0A=
	Example:=0A=
>	(1).pixelate();=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
Number.prototype.pixelate =3D function() {=0A=
	return this + "px";=0A=
}=0A=
=0A=
Object.extend(Array.prototype, {=0A=
	revolve: function(integer) {=0A=
		this.unshift.apply(this, this.splice(integer, this.length));=0A=
		return this;=0A=
	}=0A=
});
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/Cookie.js

/*-----------------------------------------------------------------------=
-------=0A=
=0A=
Class: Cookie=0A=
Author:=0A=
btapley=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
adobe.Cookie =3D new (Class.create({=0A=
/*-----------------------------------------------------------------------=
-------=0A=
	=0A=
	Method: set=0A=
	=0A=
	Parameters:=0A=
	name - string=0A=
	value - string=0A=
	duration - number (of days)=0A=
	path - string=0A=
	domain - string=0A=
	secure - boolean=0A=
		=0A=
-------------------------------------------------------------------------=
-----*/=0A=
	set: function(name, value, duration, path, domain, secure){=0A=
		var cookie =3D [];=0A=
		cookie.push(name+"=3D"+escape(value));=0A=
		if(duration) {=0A=
			var date =3D new Date();=0A=
			date.setTime(date.getTime() + (duration*86400000));=0A=
			cookie.push("expires=3D" + date.toGMTString());=0A=
		}=0A=
		if(path) {=0A=
			cookie.push("path=3D" + path || "/");	=0A=
		}=0A=
		if(domain) {=0A=
			cookie.push("domain=3D" + domain);=0A=
		}=0A=
		if(secure) {=0A=
			cookie.push("secure");=0A=
		}=0A=
		window.document.cookie =3D cookie.join(";");=0A=
	},=0A=
/*-----------------------------------------------------------------------=
-------=0A=
	=0A=
	Method: get=0A=
	=0A=
	Parameters:=0A=
	name - string=0A=
		=0A=
-------------------------------------------------------------------------=
-----*/=0A=
	get: function(name){=0A=
		var result, test, rexp =3D new RegExp(name + "=3D(.*)");=0A=
		window.document.cookie.split(";").detect(function(cookie){=0A=
			if((test =3D cookie.match(rexp))) {=0A=
				result =3D unescape(decodeURI(test[1]));=0A=
			} =0A=
			return test;=0A=
		});=0A=
		return result;=0A=
	},=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
	Method: remove=0A=
	=0A=
	Parameters:=0A=
	name - string=0A=
	path(optional) - string=0A=
	=0A=
-------------------------------------------------------------------------=
-----*/=0A=
	remove: function(name, path){=0A=
		this.set(name, '', -1, path);=0A=
	}=0A=
}))();
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/global.js

/*-----------------------------------------------------------------------=
-------=0A=
=0A=
GLOBAL $Revision: 1.1 $=0A=
Copyright 2006 Adobe Systems Incorporated=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
=0A=
=0A=
/*-----------------------------------------------------------------------=
-------	=0A=
=0A=
Function: getSearchQuery=0A=
Get a window search parameter or a hash of all parameters=0A=
=0A=
Parameters:=0A=
id(optional) - string=0A=
=0A=
Returned Value:=0A=
String or Hash=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
var getSearchParams =3D (function() {=0A=
	var _loadedParams =3D null;=0A=
	return function(id) {=0A=
		var params =3D _loadedParams || (_loadedParams =3D =
window.location.search.toQueryParams());=0A=
		return (id) ? params[id] : params;=0A=
	}=0A=
})();=0A=
=0A=
/*-----------------------------------------------------------------------=
-------	=0A=
=0A=
Function: Open Window=0A=
Simple Popup Window=0A=
=0A=
Parameters:=0A=
uri - string=0A=
width - number (of pixels)=0A=
height - number (of pixels)=0A=
options - string=0A=
name - string=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
function OpenWindow( url, width, height, opt , name ) {=0A=
	window.open( url, (name || "OutsideWindow"), "width=3D"+(width || =
714)+",height=3D"+(height || 536)+","+(opt ||  =
"scrollbars=3Dyes,menubar=3Dyes,toolbar=3Dyes,location=3Dyes,status=3Dyes=
,resizable=3Dyes")).focus();=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
-------	=0A=
=0A=
Function: Select Form Action=0A=
Simple processing of form dropdown options=0A=
=0A=
Parameters:=0A=
formID - ID of form to be processed=0A=
dropdownID - ID of <select> tag to be processed=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
function selectFormAction (formID,dropdownID) { =0A=
	var selectedLink =3D =
document[formID][dropdownID].options[document[formID][dropdownID].selecte=
dIndex].value;=0A=
	if (selectedLink !=3D '#') {=0A=
		=
window.location=3Ddocument[formID][dropdownID].options[document[formID][d=
ropdownID].selectedIndex].value;=0A=
	} else if (selectedLink =3D=3D '#') {=0A=
		document[formID][dropdownID].selectedIndex =3D 0;=0A=
	}=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
Class: OneShotEventRegister=0A=
Abstract FIFO event register that expires after a single event. Allows =
subsequent calls to be optionally executed or passed to an overflow =
method.=0A=
=0A=
Parameters:=0A=
element - element reference=0A=
eventname - string=0A=
overflow(optional) - boolean=0A=
overflower(optional) - function=0A=
=0A=
Returned Value:=0A=
Object=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
=0A=
var OneShotEventRegister =3D Class.create({=0A=
	initialize: function(element, eventname, overflow, overflower) {=0A=
		this.expired =3D false;=0A=
		this.queue =3D [];=0A=
		this.overflow =3D !!overflow;=0A=
		this.overflower =3D overflower;=0A=
		Event.observe(element, eventname, =
this.expire.bindAsEventListener(this));=0A=
	},=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
	Method: expire=0A=
	Execute and remove all queued functions=0A=
	=0A=
	Returned Value:=0A=
	None=0A=
	=0A=
-------------------------------------------------------------------------=
-----*/=0A=
	expire: function() {=0A=
		var i;=0A=
		while(i=3Dthis.queue.shift()) {=0A=
			i();=0A=
		}=0A=
		this.expired =3D true;=0A=
	},=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
	Method: register=0A=
	Add function to queue or if overflow enabled pass thru function=0A=
	=0A=
	Returned Value:=0A=
	Boolean=0A=
	=0A=
-------------------------------------------------------------------------=
-----*/=0A=
	register: function(func) {=0A=
		if(!this.expired) {=0A=
			this.queue.push(func);=0A=
		} else if(this.overflower) {=0A=
			this.overflower(func)=0A=
		} else if(this.overflow) {=0A=
			func();=0A=
		} else {=0A=
			return false;=0A=
		}=0A=
		return true;=0A=
	}=0A=
});=0A=
=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
Function: registerOnLoad=0A=
Execute a specified callback when the root document is loaded.=0A=
=0A=
Parameters:=0A=
func - function object reference=0A=
=0A=
Returned Value:=0A=
None=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
var registerOnLoadFunc =3D (=0A=
registerOnLoad =3D (function() {=0A=
	var _exec =3D new OneShotEventRegister(window, "load", true);=0A=
	return function(func) { =0A=
		_exec.register(func); =0A=
	}=0A=
})());=0A=
=0A=
=0A=
/*-----------------------------------------------------------------------=
-------=0A=
=0A=
Function: registerOnReady=0A=
Execute a specified callback when the root document is ready.=0A=
=0A=
Parameters:=0A=
func - function object reference=0A=
=0A=
Returned Value:=0A=
None=0A=
=0A=
-------------------------------------------------------------------------=
-----*/=0A=
=0A=
var registerOnReady =3D (function() {=0A=
	var _exec =3D new OneShotEventRegister(document, "dom:loaded", true, =
registerOnLoad);=0A=
	return function(func) {=0A=
		_exec.register(func);=0A=
	}=0A=
})();
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/lib/com.adobe/module/SearchBuddy.js

/* =0A=
	SEARCH BUDDY=0A=
	$Id: SearchBuddy.js,v 1.23 2010/06/03 10:10:18 mok Exp $=0A=
*/=0A=
=0A=
adobe.Loader.requireAsset("http://wwwimages.adobe.com/www.adobe.com/lib/c=
om.adobe/module/ProductSelector/GvaScript.js");=0A=
adobe.Loader.requireAsset("http://wwwimages.adobe.com/www.adobe.com/lib/c=
om.adobe/urlParser.js");=0A=
adobe.Loader.requireAsset("http://wwwimages.adobe.com/www.adobe.com/lib/c=
om.adobe/template/search/buddy/screen.css");=0A=
=0A=
var SearchBuddy =3D (function() {=0A=
var _SearchBuddy =3D {};=0A=
=0A=
	_SearchBuddy.IDS =3D {=0A=
		searchForm			:	"globalnav-search",=0A=
		siteSearch			:	"site-search",=0A=
		searchInput			:	"search-input",=0A=
		searchBuddySubmit	:	"search-buddy-submit",=0A=
		resultsContainer	:	"sb-results",=0A=
		resultsBody			: 	"sb-results-body",=0A=
		resultsList			: 	"result-list"=0A=
	}=0A=
	=0A=
	_SearchBuddy.CSS =3D {=0A=
		activated			:	"activated",=0A=
		highlight			:	"highlight",=0A=
		noResult			:	"no-result",=0A=
		searchResult		:	"search-result",=0A=
		pulloutLeft50		:	"pullout-left left-50",=0A=
		pulloutItem			:	"pullout-item",=0A=
		linkList			:	"link-list",=0A=
		searchSuggestion	:	"search-suggestion",=0A=
		searchAll			:	"txtright search-all"=0A=
	}=0A=
=0A=
	var _SearchBuddyInstance =3D Class.create({=0A=
											=0A=
		initialize : function(URLS,STRINGS) {=0A=
			if($('globalnav-search')=3D=3Dnull) return;		// error checking for no =
gnav=0A=
			if(!$('globalnav-search').hasClassName("en")) return;=0A=
			=0A=
			this.URLS =3D Object.extend({=0A=
				searchBuddy		:	"/cfusion/search/buddy/searchbuddy.cfm",=0A=
				searchResults	:	"/cfusion/search/index.cfm"=0A=
			},URLS);=0A=
			=0A=
			this.STRINGS =3D Object.extend({=0A=
				searchForElipsis	:	"Search for...",=0A=
				searchFor			:	"Search for",=0A=
				seeAllResults		:	"See all search results &#8250;",=0A=
				delay				:	0.015=0A=
			},STRINGS);=0A=
						=0A=
			this.searchForm =3D $(_SearchBuddy.IDS.searchForm);=0A=
			this.input =3D $(_SearchBuddy.IDS.searchInput);=0A=
			=0A=
			this.term =3D this.input.value.escapeHTML();=0A=
			this.loc =3D =
(!Object.isUndefined(this.searchForm.getInputs('hidden')[0])) ? =
this.searchForm.getInputs('hidden')[0].value : "";=0A=
			=0A=
			this.sitesearch =3D $(_SearchBuddy.IDS.siteSearch);=0A=
					=0A=
			this.title =3D this.input.getAttribute("title");=0A=
			=0A=
			this.resultsContainer =3D new Element('div');=0A=
			this.resultsContainer.id =3D _SearchBuddy.IDS.resultsContainer;=0A=
			=0A=
			this.resultsBody =3D new Element('div');=0A=
			this.resultsBody.id =3D _SearchBuddy.IDS.resultsBody;		=0A=
			=0A=
			this.goURL =3D "";					=0A=
		=0A=
			this.isSafari2 =3D ((adobe.hostEnv.ua.indexOf('multisafari') > -1) || =
(adobe.hostEnv.isSafari && adobe.hostEnv.kitV <=3D 418)) ? true : false;=0A=
					=0A=
			this.selectedIndex =3D 1;=0A=
			=0A=
			this.searchbutton =3D $$("button[type=3Dsubmit]")[0];	// first =
<button> of the page=0A=
			=0A=
			/*--- "cache" the bound functions for observe/stopObserving ---*/=0A=
			_SearchBuddyInstance.clickFX =3D =
this.handleOutsideClicks.bindAsEventListener(this);=0A=
			_SearchBuddyInstance.mouseFX =3D =
this.handleMouseHover.bindAsEventListener(this);=0A=
			_SearchBuddyInstance.windowFX =3D =
this.handleWindowResize.bindAsEventListener(this);=0A=
				=0A=
			/*--- create a hidden input with site section/subsection ---*/=0A=
			this.siteSection =3D adobe.URLParser.siteLevel;=0A=
			this.siteSection =3D (this.siteSection=3D=3D"") ? "home" : =
this.siteSection;=0A=
			this.siteSection =3D (adobe.URLParser.host.startsWith('get')) ? =
("get:"+this.siteSection) : this.siteSection;=0A=
			this.siteSection =3D (adobe.URLParser.host.startsWith('kb')) ? =
("get:"+this.siteSection) : this.siteSection;=0A=
			this.siteSection +=3D (adobe.URLParser.siteSection=3D=3Dnull || =
adobe.URLParser.siteSection=3D=3D"") ? "" : ":" + =
adobe.URLParser.siteSection;=0A=
			=0A=
			var siteSection_input =3D new Element('input');=0A=
			Element.writeAttribute(siteSection_input, {=0A=
				 "name" : "siteSection",=0A=
				 "type" : "hidden",=0A=
				 "value": this.siteSection=0A=
			});=0A=
					=0A=
			Element.insert(this.searchForm, siteSection_input); 	=0A=
			Element.insert(this.sitesearch,this.resultsContainer);=0A=
			Element.insert(this.resultsContainer,this.resultsBody);=0A=
			=0A=
			var rules =3D {=0A=
				UP:     	this.handleKeyCheck.bindAsEventListener(this), =0A=
				DOWN:   	this.handleKeyCheck.bindAsEventListener(this),=0A=
				BACKSPACE:	this.handleKeyCheck.bindAsEventListener(this),=0A=
				REGEX: 	[ =0A=
					["S_", "|[A-Z]|[0-9]", =
this.handleResultsMenu.bindAsEventListener(this) ],		// Shift + Letter=0A=
					["C_", "|[A-Z]|[0-9]", =
this.handleResultsMenu.bindAsEventListener(this) ],		// Ctrl + Letter=0A=
					["",   "SHIFT|[A-Z]|[0-9]", =
this.handleResultsMenu.bindAsEventListener(this) ],=0A=
					[null, "RETURN|TAB|ESCAPE|DELETE", =
this.handleKeyCheck.bindAsEventListener(this)  ]=0A=
				]=0A=
			};=0A=
			=0A=
			var queryParams =3D getSearchParams('cat');=0A=
					=0A=
			if(!Object.isUndefined(queryParams)) {=0A=
				var _input =3D new Element('input', {=0A=
				"type" : "hidden",=0A=
				"name" : "cat",=0A=
				"value": queryParams=0A=
				});=0A=
				this.searchForm.insert(_input);=0A=
			} =0A=
		=0A=
			this.keymap =3D new GvaScript.KeyMap(rules);=0A=
			this.keymap.observe("keydown",this.resultsBody);=0A=
			this.keymap.observe("keydown",this.input);	=0A=
			=0A=
			this.searchForm.observe('submit', =
this.handleNoSubmit.bindAsEventListener(this));=0A=
			this.searchbutton.observe('click', =
this.handleNoSubmit.bindAsEventListener(this));=0A=
			this.searchbutton.observe('keypress', =
this.handleFormSubmit.bindAsEventListener(this));=0A=
			=0A=
			this.input.observe('click', =
this.handleInputValue.bindAsEventListener(this));=0A=
		},	=0A=
		/*--- clear the input value from "Search for..." ---*/=0A=
		handleInputValue : function() { =0A=
			this.input.value=3D""; =0A=
		},=0A=
		/*--- prevent default submit ---*/=0A=
		handleNoSubmit : function(event) {	=0A=
			event.stop();=0A=
			return false;=0A=
		},	=0A=
		/*--- Either prevent submit if link is selected in results or submit =
the form based on event type  ---*/=0A=
		handleFormSubmit : function(event) {=0A=
			if(!event && this.goURL.empty && !this.goURL.empty()) {  // the URL =
to go to is set when user clicks or navigates through links=0A=
				return false; =0A=
			}	=0A=
			if (this.input.value=3D=3D"" || this.input.value=3D=3D"Search") {  // =
the input field has no entry=0A=
				return false; =0A=
			}  =0A=
			if(event.type=3D=3D"click" || event.keyCode=3D=3D"13" || =
event.keyCode=3D=3D"0") {	=0A=
				if(this.input.value=3D=3Dthis.input.title) this.input.value=3D"";	// =
clear the input value from "Search for..." which is in the title of the =
input				=0A=
				this.searchForm.submit();	=0A=
			}=0A=
		},=0A=
		/*--- document the keycode and then deal with keyboard navigation ---*/=0A=
		handleKeyCheck : function(event) {=0A=
			this.keyCode =3D  event.keyModifiers + ":" + event.keyName + " / " +  =
event.keyCode;		=0A=
			this.handleMenuNavigation(event);					=0A=
		},=0A=
		/*--- if there's results, hide/delete them then make sure to quit =
observing it ---*/=0A=
		hideMenu : function() {=0A=
			this.undoSelectFix();=0A=
			this.searchForm.fire("searchbuddy:closed");=0A=
			if($(_SearchBuddy.IDS.resultsList) !=3D null) {=0A=
				$(_SearchBuddy.IDS.resultsList).remove(); =0A=
				this.sitesearch.removeClassName(_SearchBuddy.CSS.activated);=0A=
				this.ignoreMouseHover();=0A=
				this.ignoreWindowResize();=0A=
			}=0A=
		},=0A=
		/*--- Keyboard commands ---*/=0A=
		handleMenuNavigation : function(event) {=0A=
					=0A=
			if(!this.json) { return }=0A=
				=0A=
			var resultLinks =3D $$('#' + this.resultsBody.id + ' a');=0A=
			if(this.json.HUBLETS.length=3D=3D0) { 		=0A=
				var foo =3D resultLinks.unshift("..");		=0A=
			}=0A=
			/*--- RETURN key either submits the form if no link is selected or =
goes to the URL of link ---*/=0A=
			if(this.keyCode =3D=3D ":RETURN / 13") {=0A=
				if (this.input.value=3D=3D"" || this.input.value=3D=3D"Search") { // =
the input field has no entry=0A=
					event.stop();=0A=
					return false;=0A=
				} else if(this.goURL.empty()) {=0A=
					event.stop();=0A=
					this.searchForm.submit();=0A=
					return false;=0A=
				} else {=0A=
					if(this.isSafari2) {=0A=
						this.searchForm.method=3D"post";=0A=
						this.searchForm.action=3Dthis.goURL;=0A=
					} else {=0A=
						event.stop();=0A=
						window.location.href=3Dthis.goURL;	=0A=
						return;=0A=
					}=0A=
				}			=0A=
			}=0A=
			/*--- ESC gets out of menu ---*/=0A=
			if(this.keyCode =3D=3D ":ESCAPE / 27") {=0A=
				this.hideMenu();=0A=
				this.goURL=3D"";=0A=
				this.input.value =3D "";=0A=
			}=0A=
			/*--- TAB out of menu ---*/=0A=
			if(this.keyCode =3D=3D ":TAB / 9") {=0A=
				if(this.goURL.empty()) {=0A=
					this.hideMenu();=0A=
				}=0A=
			}=0A=
			/*--- BACKSPACE/DEL continues getting results  ---*/=0A=
			if(this.keyCode =3D=3D ":BACKSPACE / 8" || this.keyCode =3D=3D =
":DELETE / 46") {=0A=
				this.handleResultsMenu();	=0A=
			}	=0A=
			/*--- STOP page down and navigate down through result links  ---*/=0A=
			if(this.keyCode =3D=3D ":DOWN / 40") {	=0A=
				event.stop();						=0A=
				if(this.selectedIndex < resultLinks.length) {=0A=
					// pass over links with images=0A=
					if(resultLinks[this.selectedIndex].firstChild.nodeType =3D=3D 1) =
this.selectedIndex++;	=0A=
					=0A=
					var nextLink =3D resultLinks[this.selectedIndex];=0A=
					=0A=
					if(this.selectedIndex > 1) {=0A=
						var lastLink =3D resultLinks[this.selectedIndex-1];=0A=
						if(resultLinks[this.selectedIndex-1].firstChild.nodeType =3D=3D 1) =
lastLink =3D resultLinks[this.selectedIndex-2];=0A=
						lastLink.removeClassName(_SearchBuddy.CSS.highlight);=0A=
					}=0A=
									=0A=
					nextLink.addClassName(_SearchBuddy.CSS.highlight);=0A=
					window.status=3DnextLink.href;=0A=
					=0A=
					this.goURL =3D nextLink.toString();	// set up link URL to go to if =
"RETURN" is hit=0A=
									=0A=
					this.selectedIndex++;=0A=
					=0A=
				} else if(resultLinks.length=3D=3D1) {=0A=
					resultLinks[0].addClassName(_SearchBuddy.CSS.highlight);	// no =
results, only search term link=0A=
				}=0A=
			}=0A=
			/*--- STOP page up and navigate up through result links  ---*/=0A=
			if(this.keyCode =3D=3D ":UP / 38") {=0A=
				event.stop();=0A=
				this.selectedIndex--;=0A=
				if(this.selectedIndex =3D=3D 1) this.selectedIndex=3D2;=0A=
				=0A=
				if(this.selectedIndex > 1 && this.selectedIndex < =
resultLinks.length) {=0A=
					var currentLink =3D this.selectedIndex;=0A=
					var lastLink =3D this.selectedIndex-1;=0A=
									=0A=
					if(resultLinks[lastLink].firstChild.nodeType =3D=3D 1) { lastLink =
=3D lastLink-1; this.selectedIndex-- }=0A=
									=0A=
					=
resultLinks[currentLink].removeClassName(_SearchBuddy.CSS.highlight);=0A=
					resultLinks[lastLink].addClassName(_SearchBuddy.CSS.highlight);=0A=
					window.status=3DresultLinks[lastLink];=0A=
					=0A=
					this.goURL =3D resultLinks[lastLink]; // set up link URL to go to =
if "RETURN" is hit=0A=
				}	=0A=
			}=0A=
		},=0A=
		/*--- set a timeout to get search results ---*/=0A=
		handleResultsMenu : function(event) {=0A=
			this.getResults.bind(this).delay(this.STRINGS.delay);=0A=
		},=0A=
		/*--- get results if term is not empty ---*/=0A=
		getResults : function() {=0A=
			this.term =3D =
($F(_SearchBuddy.IDS.searchInput)).toLowerCase().escapeHTML();=0A=
			if(this.term.empty()) {=0A=
				this.handleNoTerm();  // don't show menu=0A=
			} else {=0A=
				this.search(this.term);	 // get JSON results=0A=
			}=0A=
		},=0A=
		/*--- search input is empty so hide menu ---*/=0A=
		handleNoTerm : function() {=0A=
			this.hideMenu(); 	=0A=
		},=0A=
		/*--- send query to CF/AJAX to get JSON results ---*/=0A=
		search : function() {=0A=
			this.baseURL =3D this.URLS.searchBuddy;	=0A=
					=0A=
			var sURL =3D this.baseURL + "?pre=3D" + this.term + "&s=3D" + =
this.siteSection + "&loc=3D" + this.loc;		=0A=
			=0A=
			new Ajax.Request(sURL, {=0A=
			  method: 'get',=0A=
			  onComplete: this.loadJSON.bind(this)=0A=
			}); =0A=
				 =0A=
			this.selectedIndex =3D 1;		// always reset keyboard navigation index =
when new results come in=0A=
			this.goURL =3D ""; /*--- reset goURL so it won't go there if search =
term deleted after arrowed down to something (BUG 88029) ---*/=0A=
		},=0A=
		/*--- LOAD JSON results and show results ---*/=0A=
		loadJSON : function(originalRequest) {=0A=
			this.json =3D originalRequest.responseText.evalJSON();=0A=
			if($(_SearchBuddy.IDS.resultsList)!=3Dnull) { =
$(_SearchBuddy.IDS.resultsList).remove(); }	// delete then rewrite =
results=0A=
						=0A=
			if(this.json.HUBLETS.length=3D=3D0 && =
this.json.SUGGESTIONS.length=3D=3D0) {=0A=
				this.renderNoResults();	 // no results from JSON search=0A=
			} else {=0A=
				this.renderResults();  // show results=0A=
			}=0A=
		},=0A=
		/*--- Set up click observer on document to hide menu if clicked =
outside of menu ---*/=0A=
		watchClicks : function() {=0A=
			Event.observe(document,'click', _SearchBuddyInstance.clickFX);=0A=
		},=0A=
		/*--- Stop observing clicks on document ---*/=0A=
		ignoreClicks : function() {=0A=
			Event.stopObserving(document,'click', _SearchBuddyInstance.clickFX);=0A=
		},=0A=
		/*--- Handle clicks outside of the menu to hide it and ignore clicks =
if so --*/=0A=
		handleOutsideClicks : function(event) {=0A=
			/*--- click on BODY or element has not descendantOf ---*/	=0A=
			if(event.target.nodeName =3D=3D "BODY" || !event.target.descendantOf) =
{ =0A=
				this.hideMenu();=0A=
				this.ignoreClicks()=0A=
				return;=0A=
			}=0A=
			/*--- element has an ID and is not a descendant of the site-search =
---*/	=0A=
			if(!event.target.descendantOf(this.sitesearch) && event.target.id =
!=3D this.sitesearch.id) { =0A=
				this.hideMenu();=0A=
				this.ignoreClicks()=0A=
				return;=0A=
			}=0A=
		},=0A=
		/*--- Set up mousehover observer on results --*/=0A=
		watchMouseHover : function() {=0A=
			this.resultsBody.observe('mouseover', _SearchBuddyInstance.mouseFX);=0A=
		},=0A=
		/*--- Stop observing mousehover on results --*/=0A=
		ignoreMouseHover : function() {=0A=
			this.resultsBody.stopObserving('mouseover', =
_SearchBuddyInstance.mouseFX);=0A=
		},=0A=
		/*--- Turn off any highlighted links from keyboard navigation ---*/=0A=
		handleMouseHover : function(event) {=0A=
			if($$("a.highlight")[0]) =
$$("a.highlight")[0].removeClassName(_SearchBuddy.CSS.highlight);=0A=
			this.selectedIndex =3D 1;=0A=
		},=0A=
		/*--- Add activated class to show the results menu ---*/=0A=
		activateMenu : function() {=0A=
			this.sitesearch.addClassName(_SearchBuddy.CSS.activated);=0A=
		},=0A=
		/*--- For no results from JSON, create a link with whatever term is =
entered w/ link to search results page ---*/=0A=
		renderNoResults : function() {=0A=
			this.hideMenu();=0A=
			this.activateMenu();=0A=
			var dl =3D new Element('dl',{ id : _SearchBuddy.IDS.resultsList });=0A=
			=0A=
			this.resultsBody.insert(dl);=0A=
			=0A=
			var ddLink =3D this.URLS.searchResults + "?loc=3D" + this.loc + =
"&term=3D" + this.term;=0A=
			var ddText =3D this.STRINGS.searchFor + ' "' + this.term + '" =
&#8250;';=0A=
			var dd =3D new Element('dd', { 'class': _SearchBuddy.CSS.noResult =
}).update(new Element('a', { 'href' : ddLink }).update(ddText));=0A=
			=0A=
			dl.insert(dd);=0A=
			=0A=
			this.goURL =3D ""; // make sure to empty go to URL if this link is =
selected=0A=
			=0A=
			this.watchClicks();=0A=
		},=0A=
		doSelectFix : function() {=0A=
			if(adobe.hostEnv.ua.indexOf('msie')  && adobe.hostEnv.ieV >=3D 6) {=0A=
				adobe.SelectFix.doFix();=0A=
			}=0A=
		},=0A=
		undoSelectFix : function() {=0A=
			if(adobe.hostEnv.ua.indexOf('msie')  && adobe.hostEnv.ieV >=3D 6) {=0A=
				adobe.SelectFix.undoFix();=0A=
			}=0A=
		},=0A=
		/*--- Observe resize of window ---*/=0A=
		watchWindowResize : function(event) {=0A=
			if(adobe.hostEnv.ua.indexOf('msie')  && adobe.hostEnv.ieV >=3D 6) {=0A=
				Event.observe(window,'resize', _SearchBuddyInstance.windowFX);=0A=
			}=0A=
		},=0A=
		/*--- Stop observing resize of window ---*/=0A=
		ignoreWindowResize : function() {=0A=
			Event.stopObserving(window,'resize', _SearchBuddyInstance.windowFX);=0A=
		},=0A=
		handleWindowResize : function() {=0A=
			var IE6WinX =3D Element.viewportOffset(this.input).left;			=0A=
			if(IE6WinX < 678) {=0A=
				adobe.SelectFix.doFix();=0A=
			} else {=0A=
				adobe.SelectFix.undoFix();=0A=
			}=0A=
		},=0A=
		/*--- Show results from JSON (Hublets and Suggestions) in pullout-left =
DD's and a link to results page with term ---*/=0A=
		renderResults : function(json) {	=0A=
			=0A=
			if(this.term.empty()) return;	// if term is empty, make sure nothing =
renders=0A=
				=0A=
			this.activateMenu();=0A=
						=0A=
			var hublets =3D this.json.HUBLETS;=0A=
			var suggestions =3D this.json.SUGGESTIONS;						=0A=
			=0A=
			var dl =3D new Element('dl',{ id : _SearchBuddy.IDS.resultsList });=0A=
			=0A=
			this.resultsBody.insert(dl);=0A=
							=0A=
			hublets.each(function(hub,index) {=0A=
								  =0A=
				var sbrIndex =3D "sbr-"+index;=0A=
				var imgURL =3D "http://wwwimages.adobe.com/www.adobe.com" + =
hub.ICONURL;=0A=
			=0A=
				var dd =3D new Element('dd', { 'id': sbrIndex, 'class': =
_SearchBuddy.CSS.searchResult });=0A=
				var div =3D new =
Element('div').addClassName(_SearchBuddy.CSS.pulloutLeft50);			=0A=
				var pullout =3D new =
Element('p').addClassName(_SearchBuddy.CSS.pulloutItem).update(new =
Element('a', { 'href' : hub.HOMEPAGEURL }).update(new Element('img',{ =
'src': imgURL})));		=0A=
				var h4 =3D new Element('h4', { 'href': hub.HOMEPAGEURL}).update(new =
Element('a', { 'href': hub.HOMEPAGEURL }).update(hub.TITLE));=0A=
				var linklist =3D new =
Element('ul').addClassName(_SearchBuddy.CSS.linkList);=0A=
				=0A=
				dl.insert(dd);			=0A=
				dd.insert(div);=0A=
				div.insert(pullout).down();=0A=
				div.insert(h4).insert(linklist);=0A=
				=0A=
				$A(hub.LINKS).each(function(link) {										=0A=
					var li =3D new Element('li');=0A=
					var a =3D new Element('a', { 'href': link.URL}).update(link.TITLE);=0A=
					linklist.insert(li);=0A=
					li.insert(a);=0A=
				})				=0A=
			});=0A=
					=0A=
			suggestions.each(function(suggest,index) {=0A=
				var dd =3D new Element('dd', { 'id': "sbs-"+index, 'class': =
_SearchBuddy.CSS.searchSuggestion });=0A=
				var h4 =3D new Element('h4');=0A=
				var a =3D new Element('a',{ 'href': suggest.DESTINATIONURL =
}).update(suggest.TITLE);=0A=
				var p =3D new Element('p').update(suggest.BLURB);=0A=
				=0A=
				Element.insert(dl,dd);=0A=
				h4.insert(a);=0A=
				dd.insert(h4).insert(p);=0A=
			});=0A=
					=0A=
			dl.insert(new Element('dd').addClassName(_SearchBuddy.CSS.searchAll =
).update(new Element('a', { 'id': _SearchBuddy.IDS.searchBuddySubmit =
}).update(this.STRINGS.seeAllResults))).observe('click',this.handleFormSu=
bmit.bindAsEventListener(this));=0A=
						=0A=
			var IE6X =3D Element.viewportOffset(this.input).left;=0A=
						=0A=
			if(IE6X < 678) {=0A=
				this.doSelectFix();	=0A=
			}=0A=
			=0A=
			this.searchForm.fire("searchbuddy:opened");			=0A=
			this.watchWindowResize();=0A=
			this.watchClicks();=0A=
			this.watchMouseHover();=0A=
		}=0A=
	});=0A=
	=0A=
	return _SearchBuddyInstance;=0A=
})();
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/downloadcenter/js/live/reader.js

/*=0A=
	file:	        reader.js=0A=
	description:	extends classes from base.js=0A=
	$Header: /source/docroot/downloadcenter/js/live/reader.js,v 1.12 =
2010/09/29 12:16:22 pakulshr Exp $=0A=
=0A=
*/=0A=
=0A=
/*=0A=
	file:	        base.js=0A=
	description:	base JS classes for download centers. to be extended by =
product specific files (i.e. flashplayer.js)=0A=
	$Header: /source/docroot/downloadcenter/js/live/base.js,v 1.13 =
2010/09/29 08:00:50 asj Exp $=0A=
=0A=
*/=0A=
=0A=
/* ********************=0A=
 * BASE CLASSES=0A=
 ******************** */=0A=
=0A=
var Request =3D Class.create({=0A=
	// child classes must implement these empty functions=0A=
	initialize   :   function() {=0A=
		var eventname =3D $F("eventname");=0A=
=0A=
		//load installers once os and language is selected=0A=
		document.observe("otherVersion:getInstallers", =
this._getInstallers.bindAsEventListener(this));=0A=
	},=0A=
	getResultDisplay	:	function(eventname){ return displayResult; },=0A=
	getInstallerResultDisplay	:	function(eventname){ return =
installerDisplayResult; },=0A=
	getNoResultDisplay	: function(){return "display:noInstaller";},=0A=
	getAjaxUrl	:	function(){return url;},=0A=
	=0A=
	_getCriteriaMap   :   function(e,dlc) {=0A=
		var url =3D "/webservices/json/criteriamap/?downloadcenter=3D" + dlc + =
"&locale=3D" + locale;=0A=
		var options 	=3D {=0A=
			method 		: "get", =0A=
			onSuccess 	: this._onCriteriaMapFetchSuccess.bind(this),=0A=
			onFailure 	: this._onFetchFailure=0A=
		};=0A=
	=0A=
		new Ajax.Request(url, options);=0A=
	},=0A=
	_onCriteriaMapFetchSuccess   :   function(transport) {=0A=
		var json 			=3D transport.responseJSON;=0A=
		var eventname		=3D $F("eventname");=0A=
		var displayResult	=3D this.getResultDisplay(eventname);=0A=
		var noDisplayResult =3D this.getNoResultDisplay();=0A=
		if(json) {	=0A=
			document.fire(displayResult, json);=0A=
		} else {=0A=
			document.fire(noDisplayResult);=0A=
		}=0A=
	},=0A=
		=0A=
	_getInstallers   :   function(e) {=0A=
		var url =3D this.getAjaxUrl();=0A=
		if (url.match(/English_UK/)){=0A=
			url =3D url.replace("English_UK","English%20(UK)"); =0A=
		}=0A=
		// if the user has not made an OS selection, alert them and stop all =
event processing=0A=
		if ($F("select_os") =3D=3D -1) {=0A=
			document.fire("display:noSelection");=0A=
			return;			=0A=
		} else {					=0A=
			var options 	=3D {=0A=
				method 		: "get", =0A=
				onSuccess 	: this._onInstallerFetchSuccess.bind(this),=0A=
				onFailure 	: this._onFetchFailure=0A=
			};=0A=
	=0A=
			new Ajax.Request(url, options);=0A=
		}=0A=
	},=0A=
	=0A=
	_onInstallerFetchSuccess   :   function(transport) {=0A=
		var json 			=3D transport.responseJSON;=0A=
		var eventname		=3D $F("eventname");=0A=
		var installerDisplayResult	=3D =
this.getInstallerResultDisplay(eventname);=0A=
		var noInstallerDisplayResult =3D this.getNoResultDisplay();=0A=
=0A=
		if(json.length) {	=0A=
			document.fire(installerDisplayResult, json);=0A=
		} else {=0A=
			document.fire(noInstallerDisplayResult);=0A=
		}=0A=
	},=0A=
	=0A=
	_onFetchFailure   :   function() {=0A=
		var noDisplayResult =3D this.getNoResultDisplay();=0A=
		=0A=
		document.fire(noDisplayResult);	=0A=
	},=0A=
	=0A=
	prepareQueryString	   :   function() {=0A=
		var os				=3D $F("select_os");=0A=
		var eventname		=3D $F("eventname");=0A=
		var query_as		=3D criteriamap.platforms[os].properties;=0A=
		var query_string 	=3D "?";=0A=
		=0A=
		// enumerate over query_as and load query_string with key/values=0A=
		for(key in query_as) {=0A=
			query_string +=3D key + "=3D" + query_as[key] + "&";=0A=
		}=0A=
		=0A=
		query_string +=3D "eventname=3D" + eventname;=0A=
=0A=
		return query_string;=0A=
	}=0A=
});=0A=
=0A=
var Display =3D Class.create({=0A=
	=0A=
	initialize	:	function() {=0A=
		showaddon =3D false;=0A=
		document.observe("display:otherversions", =
this._displayOtherVersions.bindAsEventListener(this));=0A=
		document.observe("display:noSelection", =
this._displayNoSelection.bindAsEventListener(this));=0A=
		document.observe("display:addons", =
this._displayAddons.bindAsEventListener(this));=0A=
		document.observe("display:otherversionsShowInstallers", =
this._onInstallerFetchSuccess.bindAsEventListener(this));=0A=
		document.observe("display:enterpriseShowInstallers", =
this._onInstallerFetchSuccess.bindAsEventListener(this));=0A=
		document.observe("display:noInstaller", =
this._displayNoInstaller.bindAsEventListener(this));=0A=
        $("buttonDownload").observe("click", =
this._onDownloadClick.bindAsEventListener(this)); =0A=
	},=0A=
=0A=
	curtainsUp   :   function() {=0A=
		  $('buttonDownload').setAttribute("href", "../download/");=0A=
		  if ($("eventname") && $("eventname").value=3D=3D"readermoreinfo") {=0A=
		  	$('buttonDownload').setAttribute("href", "download/");=0A=
		  }=0A=
          $('buttonDownload').className =3D "download-button";=0A=
		  $('buttonDownload').disabled =3D false;=0A=
		  $('ajaxloading').hide();=0A=
		  $("downloadContent").show();=0A=
	},=0A=
				=0A=
	setEULA   :   function(enable,disable) {=0A=
		enable.each(function(s) {$(s).show();});// show each enabled eula div=0A=
		disable.each(function(s) {$(s).hide();});// hide each enabled eula div=0A=
	},=0A=
	=0A=
	curtainsDown   :   function() {=0A=
		try {=0A=
			  //reset eula to default state=0A=
			  if ($("eventname").value !=3D "readerenterprise") {=0A=
			  	this.setEULA(["adobeEULA"],["googleEULA","mcafeeEULA"]);=0A=
			  }=0A=
			  $('buttonDownload').disabled =3D true;=0A=
			  $('buttonDownload').setAttribute("href", "javascript: void(0)");=0A=
	          $('buttonDownload').className =3D "download-button =
download-button-disabled";=0A=
			  if($("downloadContent") && $("downloadContent").visible()) {=0A=
			  	 $("downloadContent").hide();=0A=
			  } =0A=
			  if($("acrobatBundleString") && $("acrobatBundleString").visible()) {=0A=
			  	 $("acrobatBundleString").hide();=0A=
			  } =0A=
			  $('ajaxloading').show();=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
    =0A=
	_onInstallerFetchSuccess   :   function(event) {=0A=
		//populate version dropdown=0A=
		readerjson 			=3D event.memo;=0A=
		var verObj =3D $("installer");=0A=
		verObj.childElements().each(function(s) {=0A=
			if (s.value!=3D0) {s.remove();}=0A=
		});// clear out version box=0A=
		=0A=
		if(readerjson.length) {	=0A=
			for (i =3D 0; i < readerjson.length; i++) {=0A=
				var offer =3D readerjson[i];=0A=
				var option =3D new Element("option", { "value" : offer.queryName =
}).update(offer.Name);=0A=
		 		verObj.insert(option);=0A=
			}=0A=
		$("installer").stopObserving("change"); //remove any previous listners=0A=
		$("installer").observe("change", =
this._installerChangeHanlder.bindAsEventListener(this)); //reader other =
version version selection=0A=
		$('ajaxloading').hide();=0A=
		$("unavailable").hide();=0A=
		if(adobe.hostEnv.ie6) {=0A=
			$('installer').setStyle({=0A=
			  'width': 'auto'=0A=
			});=0A=
		}=0A=
		=0A=
		} else {=0A=
			document.fire("display:otherVersionsNoInstaller");=0A=
		}=0A=
	},=0A=
=0A=
	_installerChangeHanlder	:	function(e) {=0A=
		// update download button href=0A=
		// display file size, sys. req.=0A=
		// hide/show addon offers=0A=
		this.curtainsDown();=0A=
=0A=
		if ($F("installer")!=3D0) {=0A=
		  for (i =3D 0; i < readerjson.length; i++) {=0A=
				if (readerjson[i].queryName=3D=3D$F("installer")) {=0A=
					$("clientfilesize").update(readerjson[i].file_size); // update file =
size=0A=
					utility.set_dlm_compatible_installer(readerjson[i].can_use_dlm);=0A=
					=
utility.set_can_bundle_with_air(readerjson[i].Version,readerjson[i].langu=
age_type); //for otherversions AIR bundle text=0A=
				}=0A=
			}=0A=
		  if ($("eventname").value !=3D "readerenterprise") {=0A=
		  	this.makeaddonoffer();=0A=
		  	this._termOfService();=0A=
		  }=0A=
		  if(utility.get_can_bundle_with_air()) {=0A=
				this.updateClientSize();=0A=
		 }=0A=
		  this.curtainsUp();=0A=
		} else {=0A=
			$('ajaxloading').hide();			=0A=
		}=0A=
	},		=0A=
	makeaddonoffer   :   function() {=0A=
		if(utility.dlm_compatible() && showaddon) {=0A=
			if(!$("addonoffers").visible()){=0A=
				$("addonoffers").show();=0A=
                $("addon").checked =3D true;=0A=
			}=0A=
        } else {=0A=
			$("addonoffers").hide();=0A=
			=0A=
			// addon checkbox only gets written in when a user is dlm/addon =
compatible,=0A=
			// so ensure it's in the dom before we alter it=0A=
			if ($("addon")) {=0A=
				$("addon").checked =3D false;=0A=
			}=0A=
        }=0A=
    },		=0A=
	=0A=
	set_ContainerTextAdjust   :   function(container,limit,charplaced) {		=0A=
		if($(container))=0A=
			{			=0A=
				if ( (($(container).innerHTML).length > limit) || (locale =3D=3D =
'jp')) =0A=
					{ $(container).innerHTML =3D  $(container).innerHTML + charplaced;}=0A=
			}=0A=
	},=0A=
	=0A=
	_displayNoInstaller   :   function() {=0A=
		try {=0A=
			$("ajaxloading").hide();=0A=
			$("unavailable").show();	=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	}=0A=
});=0A=
=0A=
var SwissArmyKnife =3D Class.create({=0A=
=0A=
	initialize   :   function() {=0A=
		this.ua				=3D navigator.userAgent;=0A=
		=0A=
		// properties for specific browsers=0A=
		this.isIE6			=3D this.ua.match(/MSIE 6/) !=3D null;=0A=
		this.isIE7 			=3D this.ua.match(/MSIE 7/) !=3D null;=0A=
		this.isIE8 			=3D this.ua.match(/MSIE 8/) !=3D null;=0A=
		this.is64bitIE 		=3D this.ua.match(/Win64|x64/) !=3D null;=0A=
		this.is32IEonVista64=3D this.ua.match(/WOW64/) !=3D null && this.isIE7;=0A=
		this.isFirefox 		=3D this.ua.match(/Firefox/) !=3D null;=0A=
		this.isFirefox30 	=3D this.ua.match(/Firefox\/3/) !=3D null;=0A=
		this.isFirefox20 	=3D this.ua.match(/Firefox\/2/) !=3D null;=0A=
		this.isFirefox15 	=3D this.ua.match(/Firefox\/1\.5/) !=3D null;=0A=
		this.gp_compat_ie	=3D this.isIE6 || this.isIE7 || this.isIE8;=0A=
		this.gp_compat_ff	=3D this.isFirefox30 || this.isFirefox20 || =
this.isFirefox15;=0A=
		this.gtbinstalled	=3D this.ua.match(/GTB/) !=3D null;=0A=
				=0A=
		// properties for specific os/platforms=0A=
		this.isWinXP 		=3D this.ua.match(/Windows NT (5\.1)/) !=3D null;=0A=
		this.isWinXPSP2 	=3D this.ua.match(/SV1/) !=3D null && this.isWinXP;=0A=
		this.isWin2k3 		=3D this.ua.match(/Windows NT 5.2/) !=3D null;=0A=
		this.isMac			=3D this.ua.match(/Mac/) !=3D null;=0A=
		this.isWin2k		=3D this.ua.match(/Windows (NT 5\.0|NT 5\.01|2000)/) =
!=3D null;=0A=
		this.isAol 			=3D this.ua.match(/America Online Browser|AOL/) !=3D =
null;=0A=
		this.isVista 		=3D this.ua.match(/Windows NT 6.0/) !=3D null;=0A=
		this.isWin7 		=3D this.ua.match(/Windows NT 6.1/) !=3D null;=0A=
		this.is64bitVista 	=3D this.isVista && this.is64bitIE;=0A=
		=0A=
		// properties specific to funnel=0A=
=0A=
		this.xpiinstalled	=3D window.location.href.indexOf("xpiinstalled") > =
-1;=0A=
		this.isDistrib		=3D $("eventname") ? $F("eventname") =3D=3D =
"readerenterprise" : false;=0A=
		this.theBho 		=3D null;=0A=
		this.install_method =3D "sai";=0A=
		this.dlm_compatible_config	=3D this.is_dlm_compatible_config();=0A=
		this.dlm_compatible_installer =3D 1;=0A=
		this.can_bundle_with_air =3D 0;=0A=
	},=0A=
	=0A=
	// return the value of a text node within an option element=0A=
	select_textnode   :   function(element) {=0A=
    	return element.options[element.selectedIndex].text;=0A=
    },=0A=
	=0A=
	// tests whether or not getPlus is installed on users machine=0A=
	gp_installed   :   function(){=0A=
		var found =3D false;=0A=
	=0A=
		try {=0A=
			for (i =3D 0; i < navigator.plugins.length && found=3D=3Dfalse; i++) {=0A=
				if (navigator.plugins[i].description.indexOf('getplusplusadobe') > =
-1) {=0A=
					found =3D true;=0A=
				}=0A=
			}=0A=
		} catch (e) {=0A=
			// if accessing plugin properties fails, usually because an item has =
no property - =0A=
			// seen when plugin just have been installed, without browser restart =
or page refresh=0A=
			found=3Dtrue;=0A=
		}=0A=
	=0A=
		return found;=0A=
	},=0A=
	=0A=
	is_dlm_compatible_config   :   function() {=0A=
		// verifies DLM compatibility based off of the config=0A=
		if((this.gp_compat_ie || this.gp_compat_ff) && =0A=
		   (this.isWin7 || this.isVista || this.isWinXP || this.isWin2k3 ) &&=0A=
		  !(this.isAol || this.is64bitIE)){=0A=
			// config is compatible with DLM=0A=
			if(this.gp_compat_ie) =0A=
				this.set_install_method("activex");=0A=
			else =0A=
				this.set_install_method("xpi");=0A=
			=0A=
			return true;=0A=
		} else {=0A=
			// config is incompatible with DLM=0A=
			this.set_install_method("sai");=0A=
			return false;	=0A=
		}=0A=
	},=0A=
	=0A=
	set_dlm_compatible_installer   :   function(compatibility) {=0A=
		this.dlm_compatible_installer =3D compatibility =3D=3D 1 || =
compatibility =3D=3D "on" ? 1 : 0;=0A=
	},=0A=
	=0A=
	get_dlm_compatible_installer   :   function() {=0A=
		return this.dlm_compatible_installer;=0A=
	},=0A=
	=0A=
	dlm_compatible   :   function() {=0A=
		var config =3D this.dlm_compatible_config;=0A=
		var installer =3D this.get_dlm_compatible_installer();=0A=
		return config && installer;=0A=
	},=0A=
	=0A=
	set_install_method   :   function(method) {=0A=
		this.install_method =3D method;=0A=
	},=0A=
	=0A=
	get_install_method   :   function() {=0A=
		return this.install_method;=0A=
	},=0A=
	=0A=
	set_can_bundle_with_air   :   function(version, language) {=0A=
		=0A=
		var major_version =3D "";=0A=
		var non_win2kFlag =3D true;=0A=
		this.can_bundle_with_air =3D 0;=0A=
		//special hack code to disable AIR for win2k from otherversions page=0A=
		if($F("eventname")=3D=3D "readerotherversions" && $F("select_os") =
=3D=3D "Windows_2000_SP4"){=0A=
			non_win2kFlag =3D false;=0A=
		}		=0A=
		// the main flow calls this method with no arguments, so we must get =
version/language directly from the page=0A=
	 	version =3D version !=3D undefined ? version : =
parseInt($("clientversion").innerHTML);=0A=
		language =3D language !=3D undefined ? language : =
$("language").innerHTML;=0A=
		=0A=
		// ensure we have a string so we can perform an indexOf	=0A=
		version =3D version.toString();=0A=
		// get include text dynamically from installer version for =
otherversions and enterprise page=0A=
		if($("acrobatBundleString"))$("acrobatBundleString").hide();=0A=
		=0A=
		// for bug 115933, only show acrobat bundle string for dlm compatible =
OR Mac	=0A=
		if (version.match(/<br \/>/) && ((this.dlm_compatible()&& =
addons.getInstallAir()) || $F("select_os").match("Mac")) && =
non_win2kFlag) {=0A=
			if ($("acrobatBundleString")) {=0A=
				$("acrobatBundleString").innerHTML =3D version.replace(/<br \/>/, =
",").split(",")[1];=0A=
				$("acrobatBundleString").show();=0A=
			}=0A=
		}=0A=
=0A=
		if(!this.dlm_compatible()) return;=0A=
		if(version.indexOf(".") > -1) {=0A=
			major_version =3D version.substring(0, version.indexOf("."));=0A=
		} else {=0A=
			major_version =3D version;=0A=
		}=0A=
		if(!(language.match(/English/))) return;=0A=
		if (major_version.match(/9/) && language.match(/English/) && =
addons.getInstallAir() && non_win2kFlag) {=0A=
			if(AIRBundle) offers.enable("AIRBundle");=0A=
			if($("acrobatBundleString")) $("acrobatBundleString").show();=0A=
			this.can_bundle_with_air =3D 1;=0A=
		}=0A=
		else {=0A=
			if(AIRBundle) offers.disable("AIRBundle");=0A=
			this.can_bundle_with_air =3D 0;=0A=
		}=0A=
	},=0A=
	=0A=
	get_can_bundle_with_air   :   function(){=0A=
		return this.can_bundle_with_air;		=0A=
	},=0A=
	=0A=
	// trigger firefox's xpi install=0A=
	loadXPI   :   function(xpi) {=0A=
		if(!this.xpiinstalled && (this.isFirefox && !(this.isMac && =
this.isDistrib))) {=0A=
			InstallTrigger.install(xpi);=0A=
		}=0A=
	},=0A=
	=0A=
	// Taken from http://www.netlobo.com/url_query_string_javascript.html =
and modified slightly=0A=
	gup   :   function(name) {=0A=
		name =3D name.replace(/[\[]/,'\\\[').replace(/[\]]/,'\\\]');=0A=
		var regexS =3D '[\\?&]'+name+'=3D([^&##]*)';=0A=
		var regex =3D new RegExp(regexS);=0A=
		var results =3D regex.exec(window.location.href);=0A=
		return results =3D=3D null ? false : results[1];=0A=
	},=0A=
	=0A=
	/**=0A=
	* Returns the value of the selected radio button in the radio group, =
null if=0A=
	* none are selected, and false if the button group doesn't exist=0A=
	*=0A=
	* @param {radio Object} or {radio id} el=0A=
	* OR=0A=
	* @param {form Object} or {form id} el=0A=
	* @param {radio group name} radioGroup=0A=
	*/=0A=
	$RF: function(el, radioGroup) {=0A=
	    if($(el).type && $(el).type.toLowerCase() =3D=3D 'radio') {=0A=
	        var radioGroup =3D $(el).name;=0A=
	        var el =3D $(el).form;=0A=
	    } else if ($(el).tagName.toLowerCase() !=3D 'form') {=0A=
	        return false;=0A=
	    }=0A=
	=0A=
	    var checked =3D $(el).getInputs('radio', radioGroup).find(=0A=
	        function(re) {return re.checked;}=0A=
	    );=0A=
	    return (checked) ? $F(checked) : null;=0A=
	}=0A=
});=0A=
// replaces file sizes with , instead of . for locales like french=0A=
var dotToComma =3D function(size) {=0A=
		size =3D size.toString().gsub(/\.+/,',');=0A=
		return size;=0A=
	}=0A=
// replaces file sizes with . instead of , this way we can add stuff up=0A=
var commaToDot =3D function(size) {=0A=
	size =3D size.toString().gsub(/\,+/,'.');=0A=
	return size;=0A=
}=0A=
=0A=
var otherLocale =3D function() {=0A=
	var loc =3D (locale =3D=3D 'fr' || locale =3D=3D 'de' || locale =3D=3D =
'es'|| locale =3D=3D 'it' || locale =3D=3D 'br' || locale =3D=3D 'se' || =
locale =3D=3D 'nl' || locale =3D=3D 'no' || locale =3D=3D 'fi' || locale =
=3D=3D 'dk' || locale =3D=3D 'ru' || locale =3D=3D 'cz' || locale =3D=3D =
'tr' || locale =3D=3D 'pl') ? true : false;=0A=
	return loc;=0A=
	=0A=
}=0A=
=0A=
=0A=
var errorHandler =3D function (e) {=0A=
	try {=0A=
		var errorName =3D e.name;=0A=
		var errorMessage =3D e.message;=0A=
		=0A=
		var jsErrorPing =3D new adobe.Deeppurple.Event("PDLC", "JSError", =
"JSError.gif");=0A=
		jsErrorPing.run($H({=0A=
			id: "deeppurpleFailure",=0A=
			currentURL: document.location,=0A=
			errorName: errorName,=0A=
			errorMessage: escape(errorMessage)=0A=
		}));=0A=
		jsErrorPing.send();=0A=
	} =0A=
	catch (e) {=0A=
		url =3D "<img =
src=3D'http://www.adobe.com/deeppurple/JSError.gif?id=3DdeeppurpleFailure=
&currentURL=3D" + document.location + "&errorName=3D" + e1.name + =
"&errorMessage=3D" + escape(e1.message) + "' />"=0A=
		document.getElementById("JSError").innerHTML +=3D url;=0A=
	}=0A=
	=0A=
}=0A=
=0A=
/**=0A=
 * @projectDescription	3rd Party Offers library=0A=
 * @namespace adobe.polarbear=0A=
 * @author Kevin Favro kfavro@adobe.com=0A=
 * @author Chris Lechner clechner@adobe.com=0A=
 * =0A=
 * $Header: /source/docroot/downloadcenter/js/live/offers.js,v 1.3 =
2010/06/25 06:38:48 tejal Exp $=0A=
 */=0A=
=0A=
// Create the adobe.polarbear namespaces=0A=
if (!adobe) abort();=0A=
if (!adobe.polarbear) adobe.polarbear =3D {};=0A=
if (!adobe.polarbear.products) adobe.polarbear.products =3D {};=0A=
if (!adobe.polarbear.DLM) adobe.polarbear.DLM =3D {};=0A=
=0A=
/**=0A=
 * adobe.polarbear.offers=0A=
 */=0A=
adobe.polarbear.offers =3D Class.create({=0A=
	/**=0A=
	 * @constructor=0A=
	 */=0A=
	initialize : function() {=0A=
		this.utility =3D new adobe.polarbear.utility();=0A=
		this.container =3D $H();=0A=
		=0A=
		// create different category hashes within products=0A=
		this.products =3D $H({=0A=
			all : $H(),=0A=
			byClass: $H(),=0A=
			byType: $H({=0A=
				addon : [], =0A=
				core : []=0A=
			}),=0A=
			byName: $H()=0A=
		});=0A=
		=0A=
		// Map class names to a regular expression=0A=
		this.classMap =3D $H({=0A=
			GTB: /^Google Toolbar/i, =0A=
			MSS: /^McAfee/i=0A=
		});=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Takes a JSON structure of installer meta-data returned from=0A=
	 * the polar bear criteria table, instantiates, and prepare()s product =0A=
	 * classes based on matching the installer name property against =
classMap.=0A=
	 * After the product class has been prepare()ed, instances are then =
stored=0A=
	 * as members in the products hash.  =0A=
	 * =0A=
	 * @param   json  a json structure containing installer meta-data=0A=
	 * @return        void=0A=
	 */=0A=
	loadProducts : function(json) {=0A=
		var j =3D json;=0A=
		var map =3D this.classMap;=0A=
		=0A=
		j.each(function(item) {=0A=
			map.each(function(regex) {=0A=
				if (item.Name.match(regex.value)) {=0A=
					try {=0A=
						// instantiate a new product class with the same name as the =
classMap key=0A=
						product =3D new adobe.polarbear.products[regex.key](item, =
this.utility).prepare();						=0A=
						this.categorize(regex.key, product);						=0A=
					} catch(e) {}=0A=
				}=0A=
			}.bind(this));=0A=
		}.bind(this));=0A=
		=0A=
	},=0A=
	=0A=
	categorize: function(key, product) {=0A=
		var qName =3D product.properties.queryName;=0A=
		var byName =3D qName ? qName : key; =0A=
		=0A=
		try {=0A=
			// begin storing instances of product classes into hashes organized =
by category=0A=
			this.products.get("all").set(key, product);=0A=
			=0A=
			if (this.products.get("byClass").get(key)) =0A=
				this.products.get("byClass").get(key).push(product);=0A=
			else =0A=
				this.products.get("byClass").set(key, new Array(product));=0A=
			=0A=
			this.products.get("byType").get(product.type).push(product);=0A=
			this.products.get("byName").set(byName, product);=0A=
		} catch(e) {}=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Sets a product class' eligibility to true=0A=
	 * =0A=
	 * @param  id  name of the product class to enable=0A=
	 * @return     void=0A=
	 */=0A=
	enable : function(id) {=0A=
		this.products.get("all").get(id).eligible =3D true;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Set's a product class' eligibility to false=0A=
	 * =0A=
	 * @param  id  name of the product class to disable=0A=
	 * @return     void=0A=
	 */=0A=
	disable : function(id) {=0A=
		this.products.get("all").get(id).eligible =3D false;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Loops through Omniture relevant products in the =0A=
	 * products.byClass hash and sets Omniture meta-data=0A=
	 * on each product.  The Omniture variable sProp_34=0A=
	 * will be set to the value this method returns.=0A=
	 * =0A=
	 * @return  a string representing the status of all=0A=
	 *          Omniture relevant products=0A=
	 */=0A=
	toOmnitureString : function() {=0A=
		var state =3D $H();=0A=
		=0A=
		if (this.products.get("all").size()) {=0A=
			this.products.get("all").each(function(item) {=0A=
				var usesOmniture =3D item.value.usesOmniture;=0A=
				var preinstalled =3D item.value.preinstalled;=0A=
				var eligible =3D item.value.eligible;=0A=
				=0A=
				if(usesOmniture) {=0A=
					if(preinstalled) state.set(item.key, "offer-preinstalled");=0A=
					else if (eligible) state.set(item.key, "offer-eligible");=0A=
					else state.set(item.key, "offer-ineligible");=0A=
				}=0A=
			});=0A=
			=0A=
			return state.toQueryString();=0A=
		} else {=0A=
			return "offer-ineligible";=0A=
		}=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Loops through all products in the products.byClass hash=0A=
	 * and sets each product.queryName equal to a pre-determined=0A=
	 * value (p, i, a, d).  The return from this method will be=0A=
	 * appended to the thankyou page href.=0A=
	 * =0A=
	 * @param  choice  boolean value representing the state of=0A=
	 * 				   the addon checkbox=0A=
	 * @return 		   a string representing the eligibility and=0A=
	 * 				   acceptance status of all products =0A=
	 */=0A=
	toQueryString : function(choice) {		=0A=
		var state =3D $H({ p : [], i : [], a : [], d : [] });=0A=
		=0A=
		this.products.get("all").each(function(item) {=0A=
			var usesOmniture =3D item.value.usesOmniture;=0A=
			var preinstalled =3D item.value.preinstalled;=0A=
			var eligible =3D item.value.eligible;=0A=
			var queryName =3D item.value.properties.queryName;=0A=
			=0A=
			if(usesOmniture) {=0A=
				if(preinstalled) state.get('p').push(queryName);=0A=
				else if (eligible && choice =3D=3D 0) state.get('d').push(queryName);=0A=
				else if (eligible && choice =3D=3D 1) state.get('a').push(queryName);=0A=
				else state.get('i').push(queryName);=0A=
			} else {=0A=
				if(eligible) {=0A=
					// Acrobat Bundle will be an array=0A=
					if(queryName instanceof Array) {=0A=
						for(i=3D0;i<queryName.length;i++) {=0A=
							state.get('a').push(queryName[i]);=0A=
						}=0A=
					}=0A=
					else {=0A=
						state.get('a').push(queryName);=0A=
					}=0A=
				}=0A=
			}=0A=
		});=0A=
		=0A=
		// since state values are arrays, we need to remove all empty=0A=
		// arrays since toQueryString() returns empty arrays as '&'=0A=
		state.each(function(item) {=0A=
			if(!item.value.length) state.unset(item.key);=0A=
		});	=0A=
		=0A=
		return state.toQueryString();		=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns all products of a related class=0A=
	 * by searching through products.byClass hash=0A=
	 * =0A=
	 * @param  className  name of the class=0A=
	 * @return     		  an instance of the requested product class=0A=
	 */=0A=
	getProductsByClass : function(className) {=0A=
		return this.products.get("byClass").get(className);=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns all products of a related type=0A=
	 * by searching through the products.byType hash=0A=
	 * =0A=
	 * @param  type  type of class (addon or core)=0A=
	 * @return       an instance of the requested product class=0A=
	 */=0A=
	getProductsByType : function(type) {=0A=
		return this.products.get("byType").get(type);		=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns a product by searching through the =0A=
	 * products.byName hash=0A=
	 * =0A=
	 * @param  name  installer query name=0A=
	 * @return   	 an instance of the requested product class=0A=
	 */=0A=
	getProductByName : function(name) {=0A=
		return this.products.get("byName").get(name);=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns a single product by searching through the=0A=
	 * products.all hash=0A=
	 * =0A=
	 * @param  id  key stored in products.all hash=0A=
	 * @return     an instance of the requested product class=0A=
	 */=0A=
	getProduct : function(id) {		=0A=
		return this.getProducts().get(id);=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns all products stored in the products.all hash=0A=
	 * =0A=
	 * @return  all instances of product classes that have been instantiated=0A=
	 */=0A=
	getProducts : function() {=0A=
		return this.products.get("all");=0A=
	}=0A=
});=0A=
=0A=
/**=0A=
 * adobe.polarbear.rdcOffers=0A=
 */=0A=
adobe.polarbear.rdcOffers =3D Class.create(adobe.polarbear.offers, {=0A=
	initialize: function($super) {=0A=
		// initialize the parent class=0A=
		$super();=0A=
	},=0A=
	=0A=
	loadProducts: function($super, json) {=0A=
		var j =3D json;=0A=
		var temp =3D "";=0A=
		var bundleAcrobat =3D false;=0A=
		var bundleClassName =3D "AIRBundle";=0A=
		var bundleDetails =3D {=0A=
			"file_size": 0,=0A=
			queryName: []=0A=
		};=0A=
		=0A=
		// load up shared offers using the parent class=0A=
		$super(j);=0A=
		=0A=
		this.bundleClassMap =3D $H({=0A=
			ARH: /^ARH/i, =0A=
			// removing acrobat.com to be offered with reader on windows=0A=
			// ACROBAT: /^Acrobat\.com/i,=0A=
			AIR: /^Air\ Installer/i	=0A=
		});=0A=
		=0A=
		j.each(function(item) {=0A=
			this.bundleClassMap.each(function(regex) {=0A=
				if (item.Name.match(regex.value)) {=0A=
					temp =3D bundleDetails.file_size;=0A=
					bundleDetails.file_size =3D Math.round((temp + =
item.file_size)*100)/100;=0A=
					temp =3D bundleDetails.queryName;=0A=
					bundleDetails.queryName.push(item.queryName);=0A=
					=0A=
					throw $break;=0A=
				}=0A=
			}.bind(this));=0A=
		}.bind(this));=0A=
=0A=
		if(bundleDetails.queryName.length =3D=3D this.bundleClassMap.size()) {=0A=
			try {=0A=
				// instantiate a new product class with the same name as the =
classMap key=0A=
				product =3D new =
adobe.polarbear.products[bundleClassName](bundleDetails, =
this.utility).prepare();=0A=
				// begin storing instances of product classes into hashes organized =
by category=0A=
				this.categorize(bundleClassName, product, true);=0A=
			} =0A=
			catch (e) {}=0A=
		}=0A=
	}	=0A=
});=0A=
=0A=
/**=0A=
 * A base Class representing a generic offer=0A=
 * =0A=
 * adobe.polarbear.products.base=0A=
 */=0A=
adobe.polarbear.products.base =3D Class.create({=0A=
	/**=0A=
	 * @constructor=0A=
	 * @return       void=0A=
	 */=0A=
	=0A=
	initialize : function(properties, utility) {=0A=
		this.properties =3D properties;=0A=
		this.utility =3D utility;=0A=
		this.type =3D null;=0A=
		this.usesOmniture =3D false;=0A=
		this.preinstalled =3D false;=0A=
		this.eligible =3D true;=0A=
=0A=
	},=0A=
	=0A=
	/**=0A=
	 * More or less an abstract method.  Child classes will=0A=
	 * need to override within themselves.=0A=
	 * =0A=
	 * @return  boolean=0A=
	 */=0A=
	userIsEligible : function() {=0A=
		this.eligible =3D true;=0A=
	}=0A=
});=0A=
=0A=
/**=0A=
 * A Class representing a Google Toolbar offer=0A=
 * =0A=
 * @extends adobe.polarbear.products.base=0A=
 */=0A=
adobe.polarbear.products.GTB =3D =
Class.create(adobe.polarbear.products.base, {=0A=
	/**=0A=
	 * @constructor=0A=
	 * @param  $super  	   reference to parent class=0A=
	 * @param  properties  object returned from polar bear container=0A=
	 * @param  utility     an instance of the utility class=0A=
	 * @return 			   self=0A=
	 */=0A=
	initialize : function($super, properties, utility) {		=0A=
		// initialize common properties from the base class=0A=
		$super(properties, utility);=0A=
		=0A=
		// initialize local properties=0A=
		this.type =3D "addon";=0A=
		this.usesOmniture =3D true;=0A=
		this.properties =3D properties;=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Runs preinstallation and eligibility checks, and stores=0A=
	 * results in instance members=0A=
	 * =0A=
	 * @return self=0A=
	 */=0A=
	prepare : function() {=0A=
		this.preinstalled =3D this.isVerGTE();=0A=
		this.eligible =3D this.preinstalled ? false : this.userIsEligible();=0A=
		return this;	=0A=
	},=0A=
	=0A=
	/**=0A=
	 * GTB eligibility test=0A=
	 * =0A=
	 * @return  boolean=0A=
	 */=0A=
	userIsEligible : function() {=0A=
		var u =3D this.utility;=0A=
		return (((u.isWin2k3 || u.isWinXP || u.isWinVista || u.isWin7) && =
(u.isIE6 || u.isIE7 || u.isIE8)) && !u.isAol);=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Runs GTB preinstallation test=0A=
	 * =0A=
	 * @return  boolean=0A=
	 */=0A=
	isVerGTE: function() {=0A=
		try {=0A=
			var theBho =3D this.initBho();=0A=
			if (null !=3D theBho) {=0A=
				return true;=0A=
			} else {=0A=
				return false;=0A=
			}=0A=
		} catch (err) { return true; }=0A=
	},=0A=
=0A=
	/**=0A=
	 * GTB preinstallation test =0A=
	 * =0A=
	 * @return  string=0A=
	 */=0A=
	initBho: function() {=0A=
		var bInitBho =3D false;=0A=
		var theBho =3D null;=0A=
		if(!bInitBho) {=0A=
			bInitBho =3D true;=0A=
	=0A=
			var y =3D document.createElement( "div" );=0A=
			var bho =3D document.createElement( "OBJECT" );=0A=
			bho.width =3D 1;=0A=
			bho.height =3D 1;=0A=
			bho.classid =3D"clsid:2318C2B1-4965-11d4-9B18-009027A5CD4F";=0A=
			bho.id =3D"bho";=0A=
			y.appendChild( bho );=0A=
	=0A=
			var bho2 =3D document.createElement( "OBJECT" );=0A=
			bho2.width =3D 1;=0A=
			bho2.height =3D 1;=0A=
			bho2.classid =3D"clsid:2318C2B1-4965-11d4-9B18-009027A5CD4F";=0A=
			bho2.id =3D"bho2";=0A=
			y.appendChild( bho2 );=0A=
	=0A=
			if (null !=3D bho2 && "undefined" !=3D typeof(bho2) && null !=3D =
bho2.object) {=0A=
				theBho =3D bho2;=0A=
			} else if (null !=3D bho && "undefined" !=3D typeof(bho) && null !=3D =
bho.object) {=0A=
				theBho =3D bho;=0A=
			}=0A=
		}=0A=
	=0A=
		return theBho;=0A=
	}=0A=
	=0A=
});=0A=
=0A=
/**=0A=
 * A Class representing a McAfee Security Scan offer=0A=
 * =0A=
 * @extends adobe.polarbear.products.base=0A=
 */=0A=
adobe.polarbear.products.MSS =3D =
Class.create(adobe.polarbear.products.base, {=0A=
	/**=0A=
	 * @constructor=0A=
	 * @param  $super  	   reference to parent class=0A=
	 * @param  properties  object returned from polar bear container=0A=
	 * @param  utility     an instance of the utility class=0A=
	 * @return 			   self=0A=
	 */=0A=
	initialize : function($super, properties, utility) {		=0A=
		// initialize common properties from the base class=0A=
		$super(properties, utility);=0A=
		=0A=
		// initialize local properties=0A=
		this.type =3D "addon";=0A=
		this.usesOmniture =3D true;=0A=
		this.properties =3D properties;=0A=
=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Runs eligibility check and stores=0A=
	 * results in instance member=0A=
	 * =0A=
	 * @return self=0A=
	 */=0A=
	prepare : function() {=0A=
		this.eligible =3D this.userIsEligible();=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * MSS eligibility test=0A=
	 * =0A=
	 * @return  boolean=0A=
	 */=0A=
	userIsEligible : function() {=0A=
		var u =3D this.utility;=0A=
		return ((u.isWinXP || u.isWinVista || u.isWin7) && ((u.isIE6 || =
u.isIE7 || u.isIE8) || (u.isFF2 || u.isFF3)) && !u.isAol);=0A=
	}=0A=
});=0A=
=0A=
/**=0A=
 * A Class representing a Acrobat.com offer=0A=
 * =0A=
 * @extends adobe.polarbear.products.base=0A=
 */=0A=
adobe.polarbear.products.AIRBundle =3D =
Class.create(adobe.polarbear.products.base, {=0A=
	/**=0A=
	 * @constructor=0A=
	 * @param  $super  	   reference to parent class=0A=
	 * @param  properties  object returned from polar bear container=0A=
	 * @param  utility     an instance of the utility class=0A=
	 * @return 			   self=0A=
	 */=0A=
	initialize : function($super, properties, utility) {		=0A=
		// initialize common properties from the base class=0A=
		$super(properties, utility);=0A=
		=0A=
		// initialize local properties=0A=
		this.type =3D "addon";=0A=
		this.usesOmniture =3D false;=0A=
		this.properties =3D properties;=0A=
=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Runs eligibility check and stores=0A=
	 * results in instance member=0A=
	 * =0A=
	 * @return self=0A=
	 */=0A=
	prepare : function() {=0A=
		this.eligible =3D this.userIsEligible();=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Acrobat Bundle eligibility test=0A=
	 * =0A=
	 * @return  boolean=0A=
	 */=0A=
	userIsEligible : function() {=0A=
		var u =3D this.utility;=0A=
		return (((u.isWin2k3 || u.isWinXP || u.isWinVista || u.isWin7) && =
(u.gp_compat_ie || u.gp_compat_ff)) && !u.isAol);=0A=
	}=0A=
});=0A=
=0A=
/**=0A=
 * adobe.polarbear.utility=0A=
 */=0A=
adobe.polarbear.utility =3D Class.create({=0A=
	=0A=
	/**=0A=
	 * @constructor=0A=
	 * @return       void=0A=
	 */=0A=
	initialize: function(){=0A=
		this.ua =3D navigator.userAgent;=0A=
		=0A=
		// properties for specific browsers=0A=
		this.isIE6 =3D this.ua.match(/MSIE 6/) !=3D null;=0A=
		this.isIE7 =3D this.ua.match(/MSIE 7/) !=3D null;=0A=
		this.isIE8 =3D this.ua.match(/MSIE 8/) !=3D null;=0A=
		this.is64bitIE =3D this.ua.match(/Win64|x64/) !=3D null;=0A=
		this.is32IEonVista64 =3D this.ua.match(/WOW64/) !=3D null && =
this.isIE7;=0A=
		this.isFF =3D this.ua.match(/Firefox/) !=3D null;=0A=
		this.isFF3 =3D this.ua.match(/Firefox\/3/) !=3D null;=0A=
		this.isFF2 =3D this.ua.match(/Firefox\/2/) !=3D null;=0A=
		this.isFF15 =3D this.ua.match(/Firefox\/1\.5/) !=3D null;=0A=
		this.gp_compat_ie =3D this.isIE6 || this.isIE7 || this.isIE8;=0A=
		this.gp_compat_ff =3D this.isFF3 || this.isFF2 || this.isFF15;=0A=
		=0A=
		// properties for specific os/platforms=0A=
		this.isWin2k =3D this.ua.match(/Win(dows)? ?(NT 5.0)/) !=3D null && =
this.ua.match(/Win(dows)? ?(NT 5.01)/) =3D=3D null;=0A=
		this.isWin2k3 =3D this.ua.match(/Windows NT 5.2/) !=3D null;=0A=
		this.isWinXP =3D this.ua.match(/Win(dows)? ?(NT 5.1)/) !=3D null;=0A=
		this.isWinXPSP2 =3D this.ua.match(/SV1/) !=3D null && this.isWinXP;=0A=
		this.isWinVista =3D this.ua.match(/Win(dows)? ?(NT 6.0)/) !=3D null;=0A=
		this.is64bitVista =3D this.isWinVista && this.is64bitIE;=0A=
		this.isWin7 =3D this.ua.match(/Win(dows)? ?(NT 6.1)/) !=3D null;=0A=
		this.isAol =3D this.ua.match(/America Online Browser|AOL/) !=3D null;=0A=
		this.isMac =3D this.ua.match(/Mac/) !=3D null;=0A=
	}=0A=
});=0A=
=0A=
var RDC =3D Class.create({=0A=
=0A=
	bootstrap   :   function(fetchReader) {=0A=
=0A=
		// first create a utlity object for other classes to take advantage of=0A=
		utility =3D new SwissArmyKnife();=0A=
=0A=
		offers =3D new adobe.polarbear.rdcOffers();=0A=
		=0A=
		// not all funnels need an ajax request for reader items=0A=
		if(fetchReader) new RDR_Request();=0A=
=0A=
		// load Display Class=0A=
        rdrDisplay =3D new RDR_Display();=0A=
=0A=
		// create a addons object for other classes to take advantage of=0A=
        if (window.addonsjson && window.addonsjson.length) {=0A=
			addons =3D new Addons();=0A=
			addons.processAddons();=0A=
		}=0A=
		=0A=
		if(!fetchReader) document.fire("display:main");=0A=
	}	=0A=
});=0A=
=0A=
/* ***************************************=0A=
 * RDR_ CLASSES OVERWRITTING BASE CLASSES=0A=
 *************************************** */=0A=
=0A=
var RDR_Request =3D Class.create(Request, {=0A=
=0A=
	initialize   :   function($super) {=0A=
		$super();=0A=
		//load criteria map=0A=
		document.observe("otherVersion:loadCriteriaMap", =
this._getCriteriaMap.bindAsEventListener(this,"Reader"));=0A=
	},=0A=
	=0A=
	getAjaxUrl	:	function(){=0A=
		var url =3D "/reader/webservices/json/standalone/" + =
this.prepareQueryString();=0A=
		return url;=0A=
	},=0A=
	=0A=
	getResultDisplay	:	function(eventname){=0A=
		var displayResult;=0A=
=0A=
		switch(eventname) {		=0A=
			case "readermoreinfo" :=0A=
				displayResult =3D "display:moreinfo";=0A=
			break;=0A=
			=0A=
			case "readerotherversions" :=0A=
				displayResult =3D "display:otherversions";=0A=
			break;=0A=
			=0A=
			case "readerenterprise" :=0A=
				displayResult =3D "display:enterprise";=0A=
			break;=0A=
		}=0A=
=0A=
		return displayResult;=0A=
	},=0A=
	=0A=
	getInstallerResultDisplay	:	function(eventname){=0A=
		var installerDisplayResult;=0A=
=0A=
		switch(eventname) {		=0A=
			case "readermoreinfo" :=0A=
				displayResult =3D "display:moreinfoShowInstallers";=0A=
			break;=0A=
			=0A=
			case "readerotherversions" :=0A=
				displayResult =3D "display:otherversionsShowInstallers";=0A=
			break;=0A=
			=0A=
			case "readerenterprise" :=0A=
				displayResult =3D "display:enterpriseShowInstallers";=0A=
			break;=0A=
		}=0A=
=0A=
		return displayResult;=0A=
	},=0A=
	=0A=
	prepareQueryString	   :   function($super) {=0A=
		var os				=3D $F("select_os");=0A=
		var eventname		=3D $F("eventname");=0A=
		var query_as		=3D criteriamap.platforms[os].properties;=0A=
		var query_string 	=3D "?";=0A=
		=0A=
		// enumerate over query_as and load query_string with key/values=0A=
		for(key in query_as) {=0A=
			query_string +=3D key + "=3D" + query_as[key] + "&";=0A=
		}=0A=
		=0A=
		query_string +=3D "eventname=3D" + eventname;=0A=
		=0A=
		var language =3D $F("select_language");=0A=
		=0A=
		query_string +=3D "&language=3D" + language;=0A=
=0A=
		return query_string;=0A=
	}=0A=
});=0A=
=0A=
var RDR_Display =3D Class.create(Display, {=0A=
	=0A=
	initialize   :   function($super) {=0A=
		=0A=
		// base.js is setting the observe on 'otherversions' and 'noSelection'=0A=
		// it is also setting the observer on the buttonDownload=0A=
		$super();=0A=
		document.observe("display:main", =
this._displayMain.bindAsEventListener(this));=0A=
		=0A=
		document.observe("display:moreinfo", =
this._displayMoreInfo.bindAsEventListener(this));=0A=
		document.observe("display:moreinfoShowInstallers", =
this._onMoreInfoInstallerFetchSuccess.bindAsEventListener(this));=0A=
=0A=
		document.observe("display:enterprise", =
this._displayEnterprise.bindAsEventListener(this));=0A=
		document.observe("reader:addonClick", =
this._termOfService.bindAsEventListener(this));=0A=
	},=0A=
	=0A=
	_termOfService   :   function() {=0A=
		try {=0A=
			=0A=
			if(!$('addon')) return;=0A=
			=0A=
			if ($('addon').value =3D=3D '' || $('addon').value =3D=3D null) {=0A=
				$('addon').checked =3D false;=0A=
			}=0A=
			=0A=
			if ($('addon').checked && utility.dlm_compatible()) {=0A=
				if ($("gtb").visible()) {=0A=
					var enableEULA =3D ["googleEULA"];=0A=
					var disableEULA =3D ["adobeEULA","mcafeeEULA"];=0A=
					this.setEULA(enableEULA,disableEULA);=0A=
				}=0A=
				if ($("mss").visible()) {=0A=
					var enableEULA =3D ["mcafeeEULA"];=0A=
					var disableEULA =3D ["adobeEULA","googleEULA"];=0A=
					this.setEULA(enableEULA,disableEULA);=0A=
				}=0A=
			}=0A=
			else {=0A=
				var enableEULA =3D ["adobeEULA"];=0A=
				var disableEULA =3D ["mcafeeEULA","googleEULA"];=0A=
				this.setEULA(enableEULA,disableEULA);=0A=
			}=0A=
		} catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},	=0A=
	=0A=
	_displayMain   :   function(event) {=0A=
		// we need to process the version in case we have a Reader 9 that isn't=0A=
		// actually compatible with the air bundle (ex: Win7)=0A=
		try {			=0A=
			utility.set_can_bundle_with_air();		=0A=
			this.updateClientSize();=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
=0A=
/* -------------------- for reder more info page =
------------------------- */	=0A=
	_displayMoreInfo   :   function(event) {=0A=
		try {=0A=
			this._popMoreInfoOS_select(event); //populate os select dropdown=0A=
			this.setEULA(["adobeEULA"],["googleEULA","mcafeeEULA"]);=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
	=0A=
	_popMoreInfoOS_select	:	function(e) {=0A=
		// populate os dropdown options=0A=
		// clears download content div=0A=
		criteriamap =3D e.memo;=0A=
		var osObj =3D $("select_os");=0A=
		this.curtainsDown();=0A=
	  	for (key in ontology) {=0A=
			if (key.match(/Mac/)) {=0A=
				var option =3D new Element("option", { "value" : key =
}).update(criteriamap.platforms[key].label);=0A=
	 			osObj.insert(option);=0A=
			}=0A=
		}=0A=
		$("select_os").observe("change", =
this._osMoreInfoChangeHandler.bindAsEventListener(this)); //reader more =
info OS selection=0A=
		$('ajaxloading').hide();=0A=
	},=0A=
	=0A=
	_osMoreInfoChangeHandler	:	function(e) {=0A=
		// ajax call to get installers available=0A=
		// populate version dropdown options from json returned=0A=
		// reset EULA=0A=
		this.curtainsDown();=0A=
		document.fire("otherVersion:getInstallers");=0A=
	},=0A=
	=0A=
	_onMoreInfoInstallerFetchSuccess   :   function(event) {=0A=
		readerjson 			=3D event.memo;=0A=
		var installerObj =3D $("installer");=0A=
		var installercontent =3D $("installerContent");=0A=
		if(readerjson.length) {=0A=
			installercontent.update("<b>Adobe Reader " + readerjson[0].Version + =
"</b><br>" + readerjson[0].language_type + "");=0A=
			installerObj.value =3D readerjson[0].queryName;=0A=
			$("clientfilesize").update(readerjson[0].file_size); // update file =
size=0A=
			utility.set_dlm_compatible_installer(readerjson[0].can_use_dlm);=0A=
			=
utility.set_can_bundle_with_air(readerjson[0].Version,readerjson[0].langu=
age_type); //for otherversions AIR bundle text=0A=
		  	this.makeaddonoffer();=0A=
		  	this._termOfService();=0A=
	        if(utility.get_can_bundle_with_air()) {this.updateClientSize();}=0A=
		    this.curtainsUp();=0A=
		} else {=0A=
			document.fire("display:otherVersionsNoInstaller");=0A=
		}=0A=
	},=0A=
/* -------------------- end for reder more info page =
------------------------- */	=0A=
=0A=
/* -------------------- for reder other versions page =
------------------------- */=0A=
	_displayOtherVersions   :   function(event) {=0A=
		try {=0A=
			this._popOS_select(event); //populate os select dropdown=0A=
			$("error-message").hide();=0A=
			this.setEULA(["adobeEULA"],["googleEULA","mcafeeEULA"]);=0A=
		} catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
	=0A=
	_popOS_select	:	function(e) {=0A=
		// populate os dropdown options=0A=
		// clears download content div=0A=
		criteriamap =3D e.memo;=0A=
		var osObj =3D $("select_os");=0A=
		this.curtainsDown();=0A=
	  	for (key in ontology) {=0A=
	  		var option =3D new Element("option", { "value" : key =
}).update(criteriamap.platforms[key].label);=0A=
	 		osObj.insert(option);=0A=
		}=0A=
		$("select_os").observe("change", =
this._osChangeHandler.bindAsEventListener(this)); //reader other version =
OS selection=0A=
		$('ajaxloading').hide();=0A=
	},=0A=
	=0A=
	=0A=
	_osChangeHandler	:	function(e) {=0A=
		// clears language and version dropdown options if necessary,=0A=
		// populate language dropdown options from hard coded json, based on =
OS selection=0A=
		// clears download content div=0A=
		// reset EULA=0A=
		if(adobe.hostEnv.ie6) {=0A=
			$('installer').setStyle({=0A=
			  'width': ''=0A=
			});=0A=
			$('select_language').setStyle({=0A=
			  'width': ''=0A=
			});=0A=
		}=0A=
		this.curtainsDown();=0A=
		var lanObj =3D $("select_language");=0A=
		var os_selected =3D $F("select_os");=0A=
		=0A=
		lanObj.childElements().each(function(s) {=0A=
			if (s.value!=3D0) {s.remove();}=0A=
		});// clear out lan box=0A=
		=0A=
		$("installer").childElements().each(function(s) {=0A=
			if (s.value!=3D0) {s.remove();}=0A=
		});// clear out version box=0A=
		=0A=
		if (os_selected!=3D0) {=0A=
			ontology[os_selected].each(function(s) {=0A=
			  	var option =3D new Element("option", { "value" : s =
}).update(criteriamap.languages[s].label);=0A=
			 	lanObj.insert(option);=0A=
			});=0A=
=0A=
    	if(adobe.hostEnv.ie6) {=0A=
			$('select_language').setStyle({=0A=
			  'width': 'auto'=0A=
			});=0A=
		 }=0A=
=0A=
		}=0A=
		//reader other version language selection=0A=
		$("select_language").stopObserving("change"); //remove any previous =
listners=0A=
		$("select_language").observe("change", =
this._lanChangeHanlder.bindAsEventListener(this,criteriamap));=0A=
		$('ajaxloading').hide();=0A=
	},=0A=
	=0A=
	_lanChangeHanlder	:	function(e) {=0A=
		// ajax call to get installers available=0A=
		// populate version dropdown options from json returned=0A=
		// reset EULA=0A=
		this.curtainsDown();=0A=
		$("installer").childElements().each(function(s) {=0A=
			if (s.value!=3D0) {s.remove();}=0A=
		});// clear out version box=0A=
		=0A=
		// Bug 96560 - redirect users who are downloading mobile version=0A=
		if ($F("select_os") =3D=3D "Mobile") {=0A=
			return location.href =3D =
"http://www.quickoffice.com/store/s60-3rd-edition/adobe-reader-le-v25/"=0A=
		};=0A=
		=0A=
		//fire off event to get installers=0A=
		document.fire("otherVersion:getInstallers");=0A=
	},=0A=
/* -------------------- end reder other versions page =
------------------------- */=0A=
		=0A=
	_displayEnterprise   :   function(event) {=0A=
		try {=0A=
			this._popOS_select(event); //populate os select dropdown=0A=
			=0A=
			$("error-message").hide();=0A=
=0A=
			this.setEULA(["adobeEULA"],["googleEULA","mcafeeEULA"]);=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
=0A=
	_onDownloadClick   :   function(event) {=0A=
		try {=0A=
			var f =3D document.forms["downloadForm"];=0A=
			var eventname =3D $("eventname").value;=0A=
			//if it is the other versions page and no installer is selected, the =
download button should be disabled=0A=
			if (eventname=3D=3D"readerotherversions" && $F("installer")=3D=3D0) {=0A=
				return false;=0A=
			}=0A=
			var radioChoice =3D utility.$RF('downloadForm', 'installer');=0A=
			var installer =3D "?installer=3D";=0A=
			installer +=3D radioChoice !=3D null ? radioChoice : $F("installer");=0A=
			var choice =3D $("addon") ? $("addon").checked : false;=0A=
			var addons =3D offers.toQueryString(choice);=0A=
			var queryString =3D addons ? installer + "&" + addons : installer;=0A=
			var href =3D $('buttonDownload').toString();=0A=
				=0A=
			if (browser =3D=3D "MSN" || browser =3D=3D "OEM") {=0A=
				browser =3D "ie";=0A=
			}=0A=
=0A=
			if (eventname !=3D "readerenterprise" && utility.dlm_compatible()) {=0A=
				// send dlm flow to download page=0A=
				href +=3D queryString + "&os=3D" + os + "&browser=3D" + browser + =
"&type=3D" + utility.get_install_method();=0A=
			} else {=0A=
				// send sai flow to completion page=0A=
				href =3D href.replace(/download/i, "completion");=0A=
				href +=3D installer;=0A=
			}=0A=
			$('buttonDownload').setAttribute("href", href);	=0A=
		} catch (e) {=0A=
			errorHandler (e);=0A=
		}=0A=
	},=0A=
	=0A=
	_displayNoSelection   :   function() {=0A=
		try {=0A=
			$("ajaxloading").hide();=0A=
			$("error-message").show();=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
	=0A=
	_displayAddons   :   function(event) {=0A=
		try {=0A=
			var div =3D event.memo.div;=0A=
			var addonfilesizediv =3D "addonfilesize" + event.memo.div;=0A=
			=0A=
			addonCheckbox =3D '<input id=3D"addon" name=3D"addon" value=3D"true" =
type=3D"checkbox" checked=3D"checked" onclick=3D"document.fire(' + =
"'reader:addonClick'" + ',{ checked: this.checked })">';=0A=
			$(div).down("p").innerHTML =3D addonCheckbox;=0A=
			$(addonfilesizediv).update(event.memo.size);=0A=
			this.set_ContainerTextAdjust('addonsubtextmss',44,'<br//>');=0A=
			$(div).show();=0A=
			$(div).up("div").show();=0A=
			showaddon =3D true;=0A=
		}=0A=
			catch (e) {=0A=
				errorHandler (e);=0A=
		  }=0A=
	},=0A=
=0A=
	updateClientSize   :   function() {=0A=
		if(AIRBundle && AIRBundle.eligible) {=0A=
			client =3D parseFloat($("clientfilesize").innerHTML);=0A=
			bundle =3D AIRBundle.properties.file_size;=0A=
			$("clientfilesize").update(Math.round((client + bundle)*100)/100);=0A=
		}=0A=
		=0A=
		if(otherLocale()) {=0A=
			$("clientfilesize").update(dotToComma($("clientfilesize").innerHTML));=0A=
		}=0A=
	},=0A=
	=0A=
	processVersion   :   function(version) {=0A=
		// installers that can be bundled with air/acrobat have an extra =
descriptive string=0A=
		// in the version field from the admin.  the possibity exists that a =
user could request=0A=
		// an installer that is able to be bundled with air/acrobat, but their =
configuration=0A=
		// is dlm incompatible, so we must remove the air/acrobat information =
from the version #=0A=
		// this will most likely only happen on the otherversions flow=0A=
		=0A=
		// some version numbers will be considered strings (8.1.3, 9.1 with =
Acrobat.com....) and=0A=
		// some will be numbers.  make sure version is a string so we can =
perform indexOf() below.=0A=
		if(typeof version !=3D "string") version =3D version.toString();=0A=
		=0A=
		var found =3D version.search(/<br(\s\/)?>/i);=0A=
		=0A=
		if(found !=3D -1 && !addons.getInstallAir()) {=0A=
			return version.substring(0, found);=0A=
		} else {=0A=
			return version;=0A=
		}=0A=
	}=0A=
});=0A=
=0A=
var Addons =3D Class.create({=0A=
		=0A=
	initialize   :   function() {=0A=
		this.addonsjson =3D addonsjson;=0A=
		this.installAir =3D 0;=0A=
		this.airInstallSize =3D 0;=0A=
		return this;=0A=
	},=0A=
	=0A=
	processAddons   :   function() {=0A=
		=0A=
		var i =3D "";=0A=
		s_prop34 =3D "Reader: ";=0A=
		=0A=
		offers.loadProducts(addonsjson);			=0A=
		gtbobj =3D offers.getProduct("GTB");			=0A=
		mssobj =3D offers.getProduct("MSS");=0A=
		AIRBundle =3D offers.getProduct("AIRBundle");=0A=
		=0A=
		if (utility.dlm_compatible()) {=0A=
			=0A=
			if(gtbobj && gtbobj.eligible) {				=0A=
				if(mssobj) offers.disable("MSS");=0A=
				=0A=
				document.fire("display:addons", {=0A=
					size: gtbobj.properties.file_size,=0A=
					div: "gtb"=0A=
				});=0A=
			} else if(mssobj && mssobj.eligible) {=0A=
				document.fire("display:addons", {=0A=
					size: mssobj.properties.file_size,=0A=
					div: "mss"=0A=
				});=0A=
			}=0A=
			=0A=
			if((AIRBundle && AIRBundle.eligible)) {=0A=
				this.setInstallAir(1);=0A=
				this.setAirInstallSize(AIRBundle.properties.file_size);=0A=
			}=0A=
		=0A=
		}=0A=
		rdrDisplay._termOfService(); //determind the proper eula to show=0A=
		s_prop34 +=3D offers.toOmnitureString();=0A=
	},=0A=
	=0A=
	setInstallAir   :   function(install) {=0A=
		this.installAir =3D install;=0A=
	},=0A=
	=0A=
	getInstallAir   :   function() {=0A=
		return this.installAir;=0A=
	},=0A=
	=0A=
	setAirInstallSize   :   function(size) {=0A=
		this.airInstallSize +=3D size;=0A=
	},=0A=
	=0A=
	getAirInstallSize   :   function() {=0A=
		return this.airInstallSize;=0A=
	}=0A=
});=0A=

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/downloadcenter/js/live/deeppurple.js

/** =0A=
 * @projectDescription	The Deeppurple library helps Adobe collect =
metrics and perform multivariate experiments=0A=
 * @namespace adobe.Deeppurple=0A=
 * @author Chris Lechner clechner@adobe.com=0A=
 */=0A=
=0A=
// This code must be run *after* the adobe namespace was initialized=0A=
if (!adobe) abort();=0A=
=0A=
/**=0A=
 * Class: adobe.Deeppurple=0A=
 */=0A=
adobe.Deeppurple =3D Class.create({=0A=
	/**=0A=
	 * @classDescription Adds a method to adobe.Cookie=0A=
	 * @type {Object}=0A=
	 * @constructor=0A=
	 */=0A=
	initialize: function() {=0A=
		// Temporarily extend adobe.Cookie=0A=
		adobe.Cookie =3D Class.create(adobe.Cookie,{});=0A=
		=0A=
		// Add methods=0A=
		adobe.Cookie.addMethods({=0A=
			isSupported: function() {=0A=
				if (this.cookiesupport !=3D undefined) return this.cookiesupport;=0A=
				adobe.Cookie.set("cookietest",true);=0A=
				this.cookiesupport =3D adobe.Cookie.get("cookietest") ? true : false;=0A=
				adobe.Cookie.remove("cookietest");=0A=
				return this.cookiesupport;=0A=
			}=0A=
		});=0A=
		=0A=
		// Replace the original instance=0A=
		adobe.Cookie =3D new adobe.Cookie();=0A=
	}=0A=
});=0A=
=0A=
// Initialize the base deeppurple object=0A=
adobe.Deeppurple =3D new adobe.Deeppurple();=0A=
=0A=
/**=0A=
 * Class: adobe.Deeppurple.ABTest=0A=
 */=0A=
adobe.Deeppurple.ABTest =3D Class.create({=0A=
	/**=0A=
	 * @classDescription Facilitates multivariate experimentation=0A=
	 * @param {Integer} The current time as UTC integer (POSIX)=0A=
	 * @param {String} The name of this AB experiment=0A=
	 * @param {Object} [rules] Override the default AB testing constraints, =
if applicable=0A=
	 * @type {Object}=0A=
	 * @constructor=0A=
	 */=0A=
	initialize: function(now,project,rules) {=0A=
		// Internal properties=0A=
		this.now =3D now;=0A=
		this.project =3D project;=0A=
		this.valid =3D undefined;=0A=
		this.id =3D false;=0A=
		=0A=
		// Test constraints=0A=
		this.rules =3D $H({=0A=
			requirecookies: false,=0A=
			start: 1243580400,	// TODO: May 29th 2009 00:00:00=0A=
			stop: 1243666799,	// TODO: May 29th 2009 23:59:59=0A=
			segments: $H({=0A=
				A: 0.9,=0A=
				B: 0.1=0A=
			})=0A=
		});=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Executes the test=0A=
	 * @return {Object} Returns instance of ABTest=0A=
	 */=0A=
	run: function() {=0A=
		if (this.isValid()) this.segment();=0A=
		return this;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Compares the supplied "now" timestamp to the start and stop range.=0A=
	 * =0A=
	 * @return {Boolean} Returns true if the test should be run=0A=
	 */=0A=
	isValid: function() {=0A=
		if (this.rules.get('requirecookies') && !adobe.Cookie.isSupported()) =
return false;=0A=
		if (this.valid =3D=3D undefined) this.valid =3D (this.now >=3D =
this.rules.get('start') && this.now < this.rules.get('stop')) ? true : =
false;=0A=
		return this.valid;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns test segment for this user=0A=
	 * =0A=
	 * Segment weights are percentages of the total user base and can be =
turned into a structure=0A=
	 * that indexes each test by the space it should occupy in probabilty.  =
The methodology=0A=
	 * consists of generating a random number between 0 and 1, then =
iteratively comparing it=0A=
	 * to the boundaries of the index.=0A=
	 * =0A=
	 * @param {String} [id] Override the segmentation behavior, if desired=0A=
	 * @return {String} The segment which this user falls into=0A=
	 */=0A=
	segment: function(id) {=0A=
		// This test must be valid in order to split up the users=0A=
		if (!this.isValid()) return false;=0A=
		=0A=
		// Override the test segmentation behavior=0A=
		if (id !=3D undefined && this.rules.get('segments').keys().indexOf(id) =
> 0) this.id =3D id;=0A=
		=0A=
		// Try to get the segment id from the cookie=0A=
		if (adobe.Cookie.isSupported()) {=0A=
			if (id =3D adobe.Cookie.get(this.project + 'Segment')) this.id =3D id;=0A=
		}=0A=
		=0A=
		// Return the segment id if it was previously set=0A=
		if (this.id !=3D false) return this.id;=0A=
		=0A=
		// Get a random number=0A=
		var sample =3D Math.random();=0A=
		var pointer =3D 0;=0A=
		var index =3D $H({});=0A=
		=0A=
		// Build the index=0A=
		this.rules.get('segments').each(function(pair) {=0A=
			if (pair.value <=3D 0) return;=0A=
			index.set(pair.key, $H({ start: pointer, stop: pointer + pair.value =
}));=0A=
			pointer +=3D pair.value;=0A=
		});=0A=
		=0A=
		// Now test the random sample=0A=
		this.rules.get('segments').each(function(pair) {=0A=
			if (pair.value <=3D 0) return;=0A=
			if (sample >=3D index.get(pair.key).get('start') && sample < =
index.get(pair.key).get('stop')) {=0A=
				this.id =3D pair.key;=0A=
				$break;=0A=
			}=0A=
		}.bind(this));=0A=
		=0A=
		// Set a cookie so we can skip this test later=0A=
		adobe.Cookie.set(this.project + =
'Segment',this.id,false,'/','.adobe.com');=0A=
		=0A=
		// Return false if we still don't have a test segment id=0A=
		return this.id;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Generates fire() closures based on test conditions=0A=
	 * @param {String} Condition name=0A=
	 * @param {Object} Hash of arguments from the particular alias=0A=
	 */=0A=
	eventHelper: function(condition, args) {=0A=
		var condition =3D condition;=0A=
		var eventName =3D 'ABTest:' + this.project + ':' + condition;=0A=
		var closure =3D { fire: function() {} };=0A=
		var segment =3D this.segment();=0A=
		var valid =3D this.isValid();=0A=
		var fire =3D false;=0A=
		var memo =3D { valid: valid, condition: condition, segment: segment };=0A=
		=0A=
		// Validate segment id input and append segment to event name=0A=
		if (condition.indexOf('Equals') > 0) {=0A=
			if (args.segment =3D=3D undefined || =
this.rules.get('segments').keys().indexOf(args.segment) < 0) return =
closure;=0A=
			eventName +=3D ':' + args.segment;=0A=
		}=0A=
		=0A=
		// Execute the conditions and update the closure function as needed=0A=
		if (condition =3D=3D 'onValid' && valid) fire =3D true; else=0A=
		if (condition =3D=3D 'onNotValid' && !valid) fire =3D true; else=0A=
		if (condition =3D=3D 'onEqualsSegment' && valid && segment =3D=3D =
args.segment) fire =3D true; else=0A=
		if (condition =3D=3D 'onNotEqualsSegment' && valid && segment !=3D =
args.segment) fire =3D true;=0A=
		=0A=
		// Override the closure if the condition was true=0A=
		if (fire) closure.fire =3D function(name) {=0A=
			if (name !=3D undefined) eventName =3D name;=0A=
			document.fire(eventName, memo);=0A=
		}.bind(this);=0A=
		=0A=
		// Return the closure=0A=
		return closure;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Returns the closure from eventHelper()=0A=
	 * @see eventHelper=0A=
	 * @return {Object} a fireable closure=0A=
	 */=0A=
	onValid: function() { return this.eventHelper('onValid', {}) },=0A=
	=0A=
	/**=0A=
	 * Returns the closure from eventHelper()=0A=
	 * @see eventHelper=0A=
	 * @return {Object} a fireable closure=0A=
	 */=0A=
	onNotValid: function() { return this.eventHelper('onNotValid', {}) },=0A=
	=0A=
	/**=0A=
	 * Returns the closure from eventHelper()=0A=
	 * @see eventHelper=0A=
	 * @return {Object} a fireable closure=0A=
	 */=0A=
	onEqualsSegment: function(id) { return =
this.eventHelper('onEqualsSegment', { segment: id }) },=0A=
	=0A=
	/**=0A=
	 * Returns the closure from eventHelper()=0A=
	 * @see eventHelper=0A=
	 * @return {Object} a fireable closure=0A=
	 */=0A=
	onNotEqualsSegment: function(id) { return =
this.eventHelper('onNotEqualsSegment', { segment: id }) }=0A=
});=0A=
=0A=
=0A=
/**=0A=
 * Class: adobe.Deeppurple.Event=0A=
 */=0A=
adobe.Deeppurple.Event =3D Class.create({=0A=
	/**=0A=
	 * @classDescription Represents an event in deeppurple=0A=
	 * @param {String} The name of this event=0A=
	 * @param {String} The URI which pings should be sent to=0A=
	 * @type {Object}=0A=
	 * @constructor=0A=
	 */=0A=
	initialize: function(project,name,imageName) {=0A=
		// Internal properties=0A=
		this.project =3D project;=0A=
		this.name =3D name;=0A=
		this.imageName =3D imageName;=0A=
		this.base64 =3D new Base64;=0A=
		this.md5 =3D MD5;=0A=
		=0A=
		// Define properties and internal field methods=0A=
		this.properties =3D $H({ currentEvent: this.name });=0A=
	},=0A=
		=0A=
	/**=0A=
	 * Collects event properties.  The 'properties' argument should be a =
hash where each key and value is either a property name and value or a =
method name and argument. =0A=
	 * =0A=
	 * @param {Object} A hash of the property names and values to be =
executed=0A=
	 * @return void=0A=
	 */=0A=
	run: function(properties) {=0A=
		// Iterate over properties and collect values=0A=
		properties.each(function(pair) {=0A=
			this[pair.key] ? =
this.properties.set(pair.key,this[pair.key](pair.value)) : =
this.properties.set(pair.key,pair.value);=0A=
		}.bind(this));=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Saves applicable properties to the previous coookie and send the =
current properties as a ping=0A=
	 * @return void=0A=
	 */=0A=
	send: function() {=0A=
		if (adobe.Cookie.isSupported()) adobe.Cookie.set(this.project + =
'Previous',this.serialize(),false,'/','.adobe.com');=0A=
		$$('body').each(function(element) { =0A=
			element.insert(new Element('img',{ id: this.name + 'Ping', height: 0, =
width: 0, src: this.toURL() },'DOM'))=0A=
		}.bind(this));=0A=
	},=0A=
	=0A=
	/**=0A=
	 * Generates unique session id's and assigns them to a cookie.  If =
cookies are not enabled, returns "nocookies"=0A=
	 * @return string=0A=
	 */=0A=
	session: function(prefix) {=0A=
		var session =3D false;=0A=
		var cookie =3D this.project + 'Session';=0A=
		=0A=
		// Try to get the session id from cookie=0A=
		if (!adobe.Cookie.isSupported()) return 'nocookies';=0A=
		if (session =3D adobe.Cookie.get(cookie)) return session;=0A=
		=0A=
		// Generate a new session=0A=
		session =3D MD5.hex(this.now + ':' + Math.random() + ':' + =
Math.random() + ':' + Math.random());=0A=
		if (prefix !=3D undefined) session =3D prefix + ':' + session;=0A=
		=0A=
		// Set the cookie=0A=
		adobe.Cookie.set(cookie,session,false,'/','.adobe.com');=0A=
		this.properties.set("newsession",true);=0A=
		return session;=0A=
	},=0A=
	=0A=
	/**=0A=
	 * @return {String} a base64 encoded JSON string representing the =
current properties=0A=
	 */=0A=
	serialize: function() {=0A=
		// Remove the previous data to prevent the cookie from getting too =
large=0A=
		var props =3D this.properties.clone();=0A=
		if (props.get('previous')) props.unset('previous');=0A=
		=0A=
		// base64 encode the properties as a JSON string=0A=
		return this.base64.encode($H(props).toJSON());=0A=
	},=0A=
	=0A=
	/**=0A=
	 * @param {Object} a base64 encoded JSON string=0A=
	 * @return {Object} the object resulting from deserialzing a base64 =
encoded JSON string=0A=
	 */=0A=
	deserialize: function(input) {=0A=
		try {=0A=
			return $H(this.base64.decode(input).evalJSON());=0A=
		} catch(error) {=0A=
			return {};=0A=
		}=0A=
	},=0A=
	=0A=
	/**=0A=
	 * @return {String} the ping URL encoded with local properties=0A=
	 */=0A=
	toURL: function() {=0A=
		// set the URL=0A=
		var url =3D =
this.base64.decode('aHR0cDovL3d3dy5hZG9iZS5jb20vZGVlcHB1cnBsZS8=3D') + =
this.imageName + '?';=0A=
=0A=
		// join the properties=0A=
		this.properties.each(function(pair) {=0A=
			if (pair.value !=3D undefined) url +=3D pair.key + "=3D" + pair.value =
+ "&";=0A=
		});=0A=
		=0A=
		// remove the trailing ampersand=0A=
		return url.slice(0,-1);=0A=
	},=0A=
=0A=
	/**=0A=
	 * Resets local parameters=0A=
	 * @return	void=0A=
	 */=0A=
	reset: function() {=0A=
		this.properties =3D $H({});=0A=
	}=0A=
});=0A=
=0A=
/**=0A=
 *  Base64 encode / decode=0A=
 *  http://www.webtoolkit.info/=0A=
 */=0A=
var Base64 =3D Class.create({=0A=
 	initialize: function() {},=0A=
	=0A=
	// private property=0A=
	_keyStr : =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=3D",=0A=
 =0A=
	// public method for encoding=0A=
	encode : function (input) {=0A=
		var output =3D "";=0A=
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;=0A=
		var i =3D 0;=0A=
 =0A=
		input =3D this._utf8_encode(input);=0A=
 =0A=
		while (i < input.length) {=0A=
 =0A=
			chr1 =3D input.charCodeAt(i++);=0A=
			chr2 =3D input.charCodeAt(i++);=0A=
			chr3 =3D input.charCodeAt(i++);=0A=
 =0A=
			enc1 =3D chr1 >> 2;=0A=
			enc2 =3D ((chr1 & 3) << 4) | (chr2 >> 4);=0A=
			enc3 =3D ((chr2 & 15) << 2) | (chr3 >> 6);=0A=
			enc4 =3D chr3 & 63;=0A=
 =0A=
			if (isNaN(chr2)) {=0A=
				enc3 =3D enc4 =3D 64;=0A=
			} else if (isNaN(chr3)) {=0A=
				enc4 =3D 64;=0A=
			}=0A=
 =0A=
			output =3D output +=0A=
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +=0A=
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);=0A=
 =0A=
		}=0A=
 =0A=
		return output;=0A=
	},=0A=
 =0A=
	// public method for decoding=0A=
	decode : function (input) {=0A=
		var output =3D "";=0A=
		var chr1, chr2, chr3;=0A=
		var enc1, enc2, enc3, enc4;=0A=
		var i =3D 0;=0A=
 =0A=
 		if (input =3D=3D undefined) return {};=0A=
		=0A=
		input =3D input.replace(/[^A-Za-z0-9\+\/\=3D]/g, "");=0A=
 =0A=
		while (i < input.length) {=0A=
 =0A=
			enc1 =3D this._keyStr.indexOf(input.charAt(i++));=0A=
			enc2 =3D this._keyStr.indexOf(input.charAt(i++));=0A=
			enc3 =3D this._keyStr.indexOf(input.charAt(i++));=0A=
			enc4 =3D this._keyStr.indexOf(input.charAt(i++));=0A=
 =0A=
			chr1 =3D (enc1 << 2) | (enc2 >> 4);=0A=
			chr2 =3D ((enc2 & 15) << 4) | (enc3 >> 2);=0A=
			chr3 =3D ((enc3 & 3) << 6) | enc4;=0A=
 =0A=
			output =3D output + String.fromCharCode(chr1);=0A=
 =0A=
			if (enc3 !=3D 64) {=0A=
				output =3D output + String.fromCharCode(chr2);=0A=
			}=0A=
			if (enc4 !=3D 64) {=0A=
				output =3D output + String.fromCharCode(chr3);=0A=
			}=0A=
 =0A=
		}=0A=
 =0A=
		output =3D this._utf8_decode(output);=0A=
 =0A=
		return output;=0A=
 =0A=
	},=0A=
 =0A=
	// private method for UTF-8 encoding=0A=
	_utf8_encode : function (string) {=0A=
		string =3D string.replace(/\r\n/g,"\n");=0A=
		var utftext =3D "";=0A=
 =0A=
		for (var n =3D 0; n < string.length; n++) {=0A=
 =0A=
			var c =3D string.charCodeAt(n);=0A=
 =0A=
			if (c < 128) {=0A=
				utftext +=3D String.fromCharCode(c);=0A=
			}=0A=
			else if((c > 127) && (c < 2048)) {=0A=
				utftext +=3D String.fromCharCode((c >> 6) | 192);=0A=
				utftext +=3D String.fromCharCode((c & 63) | 128);=0A=
			}=0A=
			else {=0A=
				utftext +=3D String.fromCharCode((c >> 12) | 224);=0A=
				utftext +=3D String.fromCharCode(((c >> 6) & 63) | 128);=0A=
				utftext +=3D String.fromCharCode((c & 63) | 128);=0A=
			}=0A=
 =0A=
		}=0A=
 =0A=
		return utftext;=0A=
	},=0A=
 =0A=
	// private method for UTF-8 decoding=0A=
	_utf8_decode : function (utftext) {=0A=
		var string =3D "";=0A=
		var i =3D 0;=0A=
		var c =3D c1 =3D c2 =3D 0;=0A=
 =0A=
		while ( i < utftext.length ) {=0A=
 =0A=
			c =3D utftext.charCodeAt(i);=0A=
 =0A=
			if (c < 128) {=0A=
				string +=3D String.fromCharCode(c);=0A=
				i++;=0A=
			}=0A=
			else if((c > 191) && (c < 224)) {=0A=
				c2 =3D utftext.charCodeAt(i+1);=0A=
				string +=3D String.fromCharCode(((c & 31) << 6) | (c2 & 63));=0A=
				i +=3D 2;=0A=
			}=0A=
			else {=0A=
				c2 =3D utftext.charCodeAt(i+1);=0A=
				c3 =3D utftext.charCodeAt(i+2);=0A=
				string +=3D String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) =
| (c3 & 63));=0A=
				i +=3D 3;=0A=
			}=0A=
 =0A=
		}=0A=
 =0A=
		return string;=0A=
	}=0A=
});=0A=
=0A=
/*=0A=
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message=0A=
 * Digest Algorithm, as defined in RFC 1321.=0A=
 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.=0A=
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet=0A=
 * Distributed under the BSD License=0A=
 * See http://pajhome.org.uk/crypt/md5 for more info.=0A=
 */=0A=
=0A=
var MD5 =3D (function() {=0A=
/*=0A=
 * Calculate the MD5 of an array of little-endian words, and a bit length=0A=
 */=0A=
function core_md5(x, len) {=0A=
  /* append padding */=0A=
  x[len >> 5] |=3D 0x80 << ((len) % 32);=0A=
  x[(((len + 64) >>> 9) << 4) + 14] =3D len;=0A=
=0A=
  var a =3D  1732584193;=0A=
  var b =3D -271733879;=0A=
  var c =3D -1732584194;=0A=
  var d =3D  271733878;=0A=
=0A=
  for(var i =3D 0; i < x.length; i +=3D 16) {=0A=
    var olda =3D a;=0A=
    var oldb =3D b;=0A=
    var oldc =3D c;=0A=
    var oldd =3D d;=0A=
=0A=
    a =3D md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);=0A=
    d =3D md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);=0A=
    c =3D md5_ff(c, d, a, b, x[i+ 2], 17,  606105819);=0A=
    b =3D md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);=0A=
    a =3D md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);=0A=
    d =3D md5_ff(d, a, b, c, x[i+ 5], 12,  1200080426);=0A=
    c =3D md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);=0A=
    b =3D md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);=0A=
    a =3D md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);=0A=
    d =3D md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);=0A=
    c =3D md5_ff(c, d, a, b, x[i+10], 17, -42063);=0A=
    b =3D md5_ff(b, c, d, a, x[i+11], 22, -1990404162);=0A=
    a =3D md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);=0A=
    d =3D md5_ff(d, a, b, c, x[i+13], 12, -40341101);=0A=
    c =3D md5_ff(c, d, a, b, x[i+14], 17, -1502002290);=0A=
    b =3D md5_ff(b, c, d, a, x[i+15], 22,  1236535329);=0A=
=0A=
    a =3D md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);=0A=
    d =3D md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);=0A=
    c =3D md5_gg(c, d, a, b, x[i+11], 14,  643717713);=0A=
    b =3D md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);=0A=
    a =3D md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);=0A=
    d =3D md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);=0A=
    c =3D md5_gg(c, d, a, b, x[i+15], 14, -660478335);=0A=
    b =3D md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);=0A=
    a =3D md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);=0A=
    d =3D md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);=0A=
    c =3D md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);=0A=
    b =3D md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);=0A=
    a =3D md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);=0A=
    d =3D md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);=0A=
    c =3D md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);=0A=
    b =3D md5_gg(b, c, d, a, x[i+12], 20, -1926607734);=0A=
=0A=
    a =3D md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);=0A=
    d =3D md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);=0A=
    c =3D md5_hh(c, d, a, b, x[i+11], 16,  1839030562);=0A=
    b =3D md5_hh(b, c, d, a, x[i+14], 23, -35309556);=0A=
    a =3D md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);=0A=
    d =3D md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);=0A=
    c =3D md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);=0A=
    b =3D md5_hh(b, c, d, a, x[i+10], 23, -1094730640);=0A=
    a =3D md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);=0A=
    d =3D md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);=0A=
    c =3D md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);=0A=
    b =3D md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);=0A=
    a =3D md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);=0A=
    d =3D md5_hh(d, a, b, c, x[i+12], 11, -421815835);=0A=
    c =3D md5_hh(c, d, a, b, x[i+15], 16,  530742520);=0A=
    b =3D md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);=0A=
=0A=
    a =3D md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);=0A=
    d =3D md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);=0A=
    c =3D md5_ii(c, d, a, b, x[i+14], 15, -1416354905);=0A=
    b =3D md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);=0A=
    a =3D md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);=0A=
    d =3D md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);=0A=
    c =3D md5_ii(c, d, a, b, x[i+10], 15, -1051523);=0A=
    b =3D md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);=0A=
    a =3D md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);=0A=
    d =3D md5_ii(d, a, b, c, x[i+15], 10, -30611744);=0A=
    c =3D md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);=0A=
    b =3D md5_ii(b, c, d, a, x[i+13], 21,  1309151649);=0A=
    a =3D md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);=0A=
    d =3D md5_ii(d, a, b, c, x[i+11], 10, -1120210379);=0A=
    c =3D md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);=0A=
    b =3D md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);=0A=
=0A=
    a =3D safe_add(a, olda);=0A=
    b =3D safe_add(b, oldb);=0A=
    c =3D safe_add(c, oldc);=0A=
    d =3D safe_add(d, oldd);=0A=
  }=0A=
  return [a, b, c, d];=0A=
}=0A=
=0A=
/*=0A=
 * These functions implement the four basic operations the algorithm =
uses.=0A=
 */=0A=
function md5_cmn(q, a, b, x, s, t) {=0A=
  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), =
s),b);=0A=
}=0A=
function md5_ff(a, b, c, d, x, s, t) {=0A=
  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);=0A=
}=0A=
function md5_gg(a, b, c, d, x, s, t) {=0A=
  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);=0A=
}=0A=
function md5_hh(a, b, c, d, x, s, t) {=0A=
  return md5_cmn(b ^ c ^ d, a, b, x, s, t);=0A=
}=0A=
function md5_ii(a, b, c, d, x, s, t) {=0A=
  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);=0A=
}=0A=
=0A=
/*=0A=
 * Calculate the HMAC-MD5, of a key and some data=0A=
 */=0A=
function core_hmac_md5(key, data) {=0A=
  var bkey =3D str2binl(key);=0A=
  if(bkey.length > 16) bkey =3D core_md5(bkey, key.length * MD5.chrsz);=0A=
=0A=
  var ipad =3D [], opad =3D [];=0A=
  for(var i =3D 0; i < 16; i++) {=0A=
    ipad[i] =3D bkey[i] ^ 0x36363636;=0A=
    opad[i] =3D bkey[i] ^ 0x5C5C5C5C;=0A=
  }=0A=
=0A=
  var hash =3D core_md5(ipad.concat(str2binl(data)), 512 + data.length * =
MD5.chrsz);=0A=
  return core_md5(opad.concat(hash), 512 + 128);=0A=
}=0A=
=0A=
/*=0A=
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally=0A=
 * to work around bugs in some JS interpreters.=0A=
 */=0A=
function safe_add(x, y) {=0A=
  var lsw =3D (x & 0xFFFF) + (y & 0xFFFF);=0A=
  var msw =3D (x >> 16) + (y >> 16) + (lsw >> 16);=0A=
  return (msw << 16) | (lsw & 0xFFFF);=0A=
}=0A=
=0A=
/*=0A=
 * Bitwise rotate a 32-bit number to the left.=0A=
 */=0A=
function bit_rol(num, cnt) {=0A=
  return (num << cnt) | (num >>> (32 - cnt));=0A=
}=0A=
=0A=
/*=0A=
 * Convert a string to an array of little-endian words=0A=
 * If chrsz is ASCII, characters >255 have their hi-byte silently =
ignored.=0A=
 */=0A=
function str2binl(str) {=0A=
  var bin =3D [], chrsz =3D MD5.chrsz;=0A=
  var mask =3D (1 << chrsz) - 1;=0A=
  for(var i =3D 0; i < str.length * chrsz; i +=3D chrsz)=0A=
    bin[i>>5] |=3D (str.charCodeAt(i / chrsz) & mask) << (i%32);=0A=
  return bin;=0A=
}=0A=
=0A=
/*=0A=
 * Convert an array of little-endian words to a string=0A=
 */=0A=
function binl2str(bin) {=0A=
  var str =3D "", chrsz =3D MD5.chrsz;=0A=
  var mask =3D (1 << chrsz) - 1;=0A=
  for(var i =3D 0; i < bin.length * 32; i +=3D chrsz)=0A=
    str +=3D String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);=0A=
  return str;=0A=
}=0A=
=0A=
/*=0A=
 * Convert an array of little-endian words to a hex string.=0A=
 */=0A=
function binl2hex(binarray) {=0A=
  var hex_tab =3D MD5.hexcase ? "0123456789ABCDEF" : "0123456789abcdef";=0A=
  var str =3D "";=0A=
  for(var i =3D 0; i < binarray.length * 4; i++) {=0A=
    str +=3D hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +=0A=
           hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);=0A=
  }=0A=
  return str;=0A=
}=0A=
=0A=
/*=0A=
 * Convert an array of little-endian words to a base-64 string=0A=
 */=0A=
function binl2b64(binarray) {=0A=
  var tab =3D =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";=0A=
  var str =3D "";=0A=
  for(var i =3D 0; i < binarray.length * 4; i +=3D 3) {=0A=
    var triplet =3D (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << =
16)=0A=
                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )=0A=
                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);=0A=
    for(var j =3D 0; j < 4; j++) {=0A=
      if(i * 8 + j * 6 > binarray.length * 32) str +=3D MD5.b64pad;=0A=
      else str +=3D tab.charAt((triplet >> 6*(3-j)) & 0x3F);=0A=
    }=0A=
  }=0A=
  return str;=0A=
}=0A=
=0A=
  return {=0A=
/*=0A=
 * Configurable variables. You may need to tweak these to be compatible =
with=0A=
 * the server-side, but the defaults work in most cases.=0A=
 */=0A=
    hexcase: 0, // hex output format. 0 - lowercase; 1 - uppercase=0A=
    b64pad: "", // base-64 pad character. "=3D" for strict RFC compliance=0A=
    chrsz: 8,   // bits per input character. 8 - ASCII; 16 - Unicode=0A=
=0A=
/*=0A=
 * These are the functions you'll usually want to call=0A=
 * They take string arguments and return either hex or base-64 encoded =
strings=0A=
 */=0A=
    hex:function( s ) { =0A=
      return binl2hex( core_md5( str2binl( s ), s.length * MD5.chrsz ) );=0A=
    },=0A=
=0A=
    base64:function( s ) {=0A=
      return binl2b64( core_md5( str2binl( s ), s.length * MD5.chrsz ) );=0A=
    },=0A=
=0A=
    string:function( s ) {=0A=
      return binl2str( core_md5( str2binl( s ), s.length * MD5.chrsz ) );=0A=
    },=0A=
=0A=
    hmac:{=0A=
      hex:function( key, data ) {=0A=
        return binl2hex( core_hmac_md5( key, data ) );=0A=
      },=0A=
=0A=
      base64:function( key, data ) {=0A=
        return binl2b64( core_hmac_md5( key, data ) );=0A=
      },=0A=
=0A=
      string:function( key, data ) {=0A=
        return binl2str( core_hmac_md5( key, data ) );=0A=
      }=0A=
    },=0A=
=0A=
    test:function() { // Perform a simple self-test to see if the VM is =
working=0A=
      return this.hex("abc") =3D=3D "900150983cd24fb0d6963f7d28e17f72";=0A=
    }=0A=
  };=0A=
})();=0A=

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.adobe.com/ubi/template/identity/adobe/Modal.js

/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Class: 	Modal=0A=
	$Id: Modal.js,v 1.19 2010/07/12 08:48:32 mok Exp $=0A=
	=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
=0A=
adobe.u.link =3D {=0A=
	here: function(element) {=0A=
		return (element.href =3D=3D=3D window.location.href) ? element : null;=0A=
	},=0A=
	unlink: function(element) {=0A=
		element.observe("click", adobe.u.nonEvent);=0A=
		element.observe("keypress", adobe.u.nonEvent);=0A=
		element.setStyle({cursor: "text", textDecoration: "none"});=0A=
		return element;=0A=
	},=0A=
	relink: function(element) {=0A=
		element.stopObserving("click", adobe.u.nonEvent);=0A=
		element.stopObserving("keypress", adobe.u.nonEvent);=0A=
		element.setStyle({cursor: "", textDecoration: ""});=0A=
		return element;=0A=
	},=0A=
	path: function(element) {=0A=
		return (element.pathname.charAt(0) =3D=3D "/") ? element.pathname : =
"/"+element.pathname;	=0A=
	}=0A=
};=0A=
=0A=
Element.addMethods("A", adobe.u.link);=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Namespace: u=0A=
	Utility methods=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
adobe.u =3D {=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: nonEvent=0A=
	Non propagating event=0A=
=0A=
	Parameters:=0A=
	event - Event instance=0A=
	=0A=
	Returned Value:=0A=
	None=0A=
	=0A=
	Example:=0A=
>	Event.observe("foo", "click", adobe.u.nonEvent);=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	nonEvent: function (event) {=0A=
		return event.stop();=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: pixelate=0A=
	Append "px" to a number=0A=
=0A=
	Parameters:=0A=
	integer - integer=0A=
	=0A=
	Returned Value:=0A=
	string=0A=
	=0A=
	Example:=0A=
>	adobe.u.pixelate(1);=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	pixelate: function(integer) {=0A=
		return parseInt(integer)+"px";=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: getSearchParam=0A=
	Get a value defined in the uri search parameter by it's id or all =
parameters in a hash.=0A=
=0A=
	Parameters:=0A=
	id(optional) - string=0A=
	=0A=
	Returned Value:=0A=
	string or hash=0A=
	=0A=
	Example:=0A=
>	adobe.u.getSearchParam("foo");=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	getSearchParam: (function() {=0A=
		var _loadedParams;=0A=
		return function(id) {=0A=
			var params =3D _loadedParams || =0A=
			(_loadedParams =3D window.location.search.toQueryParams());=0A=
			return (id) ? params[id] : params;=0A=
		}=0A=
	})(),=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: freshenLocation=0A=
	Create a location string that would force a browser to check cache.=0A=
=0A=
	Parameters:=0A=
	uri - string=0A=
	param (optional) - string=0A=
=0A=
	Returned Value:=0A=
	string=0A=
=0A=
	Example:=0A=
>	adobe.u.freshenLocation("/path"[, "myParam"])=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	freshenLocation: function(uri, param) {=0A=
		var query =3D "?",=0A=
		param =3D param || "time",=0A=
		i =3D uri.indexOf(query),=0A=
		time =3D query + param + "=3D" + new Date().getTime();=0A=
		=0A=
		if(i=3D=3D-1) {=0A=
			return (uri + time);=0A=
		} else {=0A=
			var parts =3D adobe.u.unfreshenLocation(uri, param).split("?");=0A=
			return parts.join(time + ((parts[parts.length-1] =3D=3D "") ? "" : =
"&"));=0A=
		}=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: unfreshenLocation=0A=
	Remove the query set by <freshenLocation> from a uri string=0A=
	=0A=
	Parameters:=0A=
	uri - string=0A=
	param (optional) - string=0A=
	=0A=
	Returned Value:=0A=
	string=0A=
	=0A=
	Example:	=0A=
>	adobe.u.unfreshenLocation("/path"[, "myParam"])=0A=
=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	unfreshenLocation: function(uri, param) {=0A=
		var expression =3D new RegExp("([\\?&]?)"+(param||"time")+"=3D\\d*&?", =
"g");=0A=
		return uri.replace(expression, "$1");=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: revolve=0A=
	move the position of array items by specified number, wrapping items =
and keeping the length the same.=0A=
=0A=
	Parameters:=0A=
	arr - Array instance=0A=
	integer - position or negative integer=0A=
	=0A=
	Returned Value:=0A=
	Array instance passed in=0A=
	=0A=
	Example:=0A=
>	adobe.u.revolve(["a","b","c"], -1)=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	revolve: function(arr, integer) {=0A=
		arr.unshift.apply(arr, arr.splice(integer, arr.length));=0A=
		return this;=0A=
	},=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Function: toInt=0A=
	Convert a string to an integer=0A=
=0A=
	Parameters:=0A=
	str - String instance=0A=
	=0A=
	Returned Value:=0A=
	integer=0A=
=0A=
	Example:=0A=
>	adobe.u.toInt("1")=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
	toInt: function(str) {=0A=
		return parseInt(str);=0A=
	}=0A=
};=0A=
=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Method: toInt=0A=
=0A=
	Returned Value:=0A=
	integer=0A=
=0A=
	Example:=0A=
>	("1").toInt();=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
String.prototype.toInt =3D function() {=0A=
	return parseInt(this);=0A=
}=0A=
=0A=
/*-----------------------------------------------------------------------=
--------=0A=
=0A=
	Method: pixelate=0A=
	Append "px" to a number=0A=
=0A=
	Returned Value:=0A=
	string=0A=
=0A=
	Example:=0A=
>	(1).pixelate();=0A=
=0A=
-------------------------------------------------------------------------=
------*/=0A=
=0A=
Number.prototype.pixelate =3D function() {=0A=
	return this + "px";=0A=
}=0A=
=0A=
Object.extend(Array.prototype, {=0A=
	revolve: function(integer) {=0A=
		this.unshift.apply(this, this.splice(integer, this.length));=0A=
		return this;=0A=
	}=0A=
});=0A=
/*---------------------------------------------------------------------- =0A=
	Namespace: u.element=0A=
----------------------------------------------------------------------*/=0A=
adobe.u.element =3D {=0A=
/*---------------------------------------------------------------------- =0A=
	Function: create=0A=
	Create an element in the domain of another element=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	name - nodename as string=0A=
	attrs(optional) - hash of attributes=0A=
	=0A=
	Returned Value:=0A=
	New Node instance=0A=
----------------------------------------------------------------------*/=0A=
	create: function(element, name, attrs) {=0A=
		var e =3D Element.getDocument(element).createElement(name);=0A=
		return (attrs) ? Object.extend(e, attrs||{}) : e;=0A=
	},=0A=
/*---------------------------------------------------------------------- =0A=
	Function: getDocument=0A=
	Get the owner document with cross-browser support=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	=0A=
	Returned Value:=0A=
	Document node=0A=
----------------------------------------------------------------------*/=0A=
	getDocument: function(element) {=0A=
		return element.ownerDocument || element.document;=0A=
	},=0A=
/*---------------------------------------------------------------------- =0A=
	Function: getParent=0A=
	Get the parent node with cross-browser support=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	=0A=
	Returned Value:=0A=
	Document node=0A=
----------------------------------------------------------------------*/=0A=
	getParent: function(element) {=0A=
		return (document.body.parentElement) ? element.parentElement : =
element.parentNode;=0A=
	},=0A=
/*---------------------------------------------------------------------- =0A=
	Function: getParent=0A=
	Get the parent node with cross-browser support=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	replacement - node=0A=
	=0A=
	Returned Value:=0A=
	Element argument=0A=
----------------------------------------------------------------------*/=0A=
	swap: function(element, replacement) {=0A=
		=
replacement.parentNode.replaceChild(element.parentNode.replaceChild(repla=
cement, element));=0A=
		return element;=0A=
	},=0A=
/*---------------------------------------------------------------------- =0A=
	Function: getMaxChildHeight=0A=
	Get the maximum height of this elements children or of a selection of =
descendants=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	selector - string=0A=
	=0A=
	Returned Value:=0A=
	Number=0A=
----------------------------------------------------------------------*/=0A=
	getMaxChildHeight: function(element, selector) {=0A=
		var elements =3D (selector) ? =0A=
				element.select(selector) : =0A=
				element.childElements();=0A=
		=0A=
		return elements.inject(0, function(accum, element) {=0A=
      			return accum =3D Math.max(accum, element.scrollHeight)=0A=
		});=0A=
	},=0A=
/*---------------------------------------------------------------------- =0A=
	Function: getTextContent=0A=
	Get the textContent property with cross-browser support=0A=
	=0A=
	Parameters:=0A=
	element - node=0A=
	=0A=
	Returned Value:=0A=
	String=0A=
----------------------------------------------------------------------*/=0A=
	getTextContent: function(element) {=0A=
		return element.textContent || element.text || element.innerText || "";=0A=
	}=0A=
}=0A=
=0A=
Element.addMethods(adobe.u.element);=0A=
=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
Class: Pane=0A=
Author:=0A=
btapley=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
adobe.Pane =3D (function() {=0A=
	=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Animation=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		=0A=
	function _getCoords(element) {=0A=
		var element =3D $(element)||document,=0A=
		view, result;=0A=
		=0A=
		if(element.viewport) {=0A=
			view =3D element.viewport;=0A=
			result =3D view.getScrollOffsets();=0A=
		} else {=0A=
			view =3D element;=0A=
			result =3D view.cumulativeOffset();=0A=
		}=0A=
		=0A=
		result.view =3D view;=0A=
		=0A=
		return result;=0A=
	}=0A=
	=0A=
	function _setCoords(coords) {=0A=
		this.top =3D coords.top;=0A=
		this.left =3D coords.left;=0A=
	}=0A=
	=0A=
	function _setDimensions(dimensions) {=0A=
		this.height =3D dimensions.height - this.frameOffset;=0A=
		this.width =3D dimensions.width - this.frameOffset;=0A=
		return dimensions;=0A=
	}=0A=
	=0A=
	function _getDimensions(element) {=0A=
		if(window.opera && typeof element=3D=3D"object") {=0A=
			return { =0A=
				height: window.innerHeight || 0,=0A=
				width: element.getWidth() || 0=0A=
			}=0A=
		} else {=0A=
			return { =0A=
				height: element.getHeight() || 0,=0A=
				width: element.getWidth() || 0=0A=
			};=0A=
		}=0A=
	}=0A=
	=0A=
	function _includeDimensions(coords) {=0A=
		return Object.extend(_getDimensions(coords.view), coords);=0A=
	}=0A=
	=0A=
	function _centerWidth(coords, offsetCoords) {		=0A=
		coords.left =3D (coords.width < offsetCoords.width) ? coords.left : =
coords.left + (coords.width/2)-(offsetCoords.width/2);=0A=
		return coords;=0A=
	}=0A=
	=0A=
	function _centerHeight(coords, offsetCoords) {=0A=
		coords.top =3D (coords.height < offsetCoords.height) ? coords.top : =
coords.top + (coords.height/2)-(offsetCoords.height/2);=0A=
			=0A=
		return coords;=0A=
	}=0A=
	=0A=
	function _alignmentDecoration(alignment, position, offset) {=0A=
		if(alignment.indexOf("c") < 0) {=0A=
			return position;=0A=
		}=0A=
	=0A=
		position =3D _includeDimensions(position);=0A=
		=0A=
		if(alignment.charAt(0) =3D=3D "c") {=0A=
			position =3D _centerWidth(position, offset);=0A=
		}=0A=
	=0A=
		=0A=
		if(alignment.charAt(1) =3D=3D "c") {=0A=
			position =3D _centerHeight(position, offset);=0A=
			=0A=
		}=0A=
		=0A=
		return position;=0A=
	}=0A=
	=0A=
	function _setUpAnimation() {	=0A=
		=0A=
		if(window.opera && this.height > this.options.height) {=0A=
			this.height =3D this.options.height - this.frameOffset;=0A=
		}=0A=
	=0A=
		var moveToElement =3D this._moveToElement,=0A=
		originElement =3D this._originElement,=0A=
		startAnimPosition =3D _getCoords(originElement),=0A=
		endAnimPosition =3D _getCoords(moveToElement),=0A=
		paneDimensions =3D { =0A=
			height: this.height, =0A=
			width: this.width=0A=
		},=0A=
		paneDimensionsWithFrame =3D { =0A=
			height: this.height + this.frameOffset, =0A=
			width: this.width + this.frameOffset=0A=
		};=0A=
				=0A=
		if(this.options.useOriginSize) {=0A=
			startAnimPosition =3D _includeDimensions(startAnimPosition);=0A=
			=0A=
		} else {=0A=
			startAnimPosition =3D Object.extend(startAnimPosition, =
paneDimensions);=0A=
		}=0A=
		=0A=
		/* Setup alignment */=0A=
		=0A=
		endAnimPosition =3D _alignmentDecoration(this.alignment, =0A=
						       endAnimPosition, =0A=
						       paneDimensionsWithFrame);=0A=
				=0A=
		/* Create Animators */=0A=
		=0A=
		=0A=
		this.an.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							     "opacity", =0A=
							     0, =0A=
							     1));=0A=
		=0A=
		//if(startAnimPosition.width !=3D paneDimensions.width) {=0A=
			this.an.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"width", =0A=
									startAnimPosition.width, =0A=
									paneDimensions.width));	=0A=
		//}=0A=
		=0A=
		//if(startAnimPosition.height !=3D paneDimensions.height) {=0A=
			this.an.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							     		"height", =0A=
							     		startAnimPosition.height, =0A=
							     		paneDimensions.height));	=0A=
		//}=0A=
		=0A=
		//if(startAnimPosition.top !=3D endAnimPosition.top) {=0A=
			this.an.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"top", =0A=
									startAnimPosition.top, =0A=
									endAnimPosition.top));=0A=
		//}=0A=
		=0A=
		//if(startAnimPosition.left !=3D endAnimPosition.left) {=0A=
			this.an.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"left", =0A=
									startAnimPosition.left, =0A=
									endAnimPosition.left));=0A=
		//}=0A=
	}=0A=
	=0A=
	function _centerAnimation(element) {		=0A=
		=0A=
		var parentDimensions =3D (document.viewport) ? =
document.viewport.getDimensions() : document.getDimensions();=0A=
		var elementDimensions =3D _getDimensions(element);=0A=
				=0A=
		var parentScroll =3D (document.viewport) ? =
document.viewport.getScrollOffsets() : document.getScrollOffsets();=0A=
		var parentScrollHeight =3D parentScroll[1];=0A=
		=0A=
		this.width  =3D elementDimensions.width + this.frameOffset;=0A=
		this.height =3D elementDimensions.height + this.frameOffset;=0A=
		=0A=
		if(elementDimensions.height > parentDimensions.height) {=0A=
			this.height =3D 	parentDimensions.height/2=0A=
		}=0A=
		=0A=
		var frameLeftOffset =3D this.frameOffset/2;=0A=
		var elementCurrentLeft =3D element.cumulativeOffset().left - =
frameLeftOffset;=0A=
		var elementCurrentTop =3D element.cumulativeOffset().top - =
frameLeftOffset;=0A=
		=0A=
		var endAnimPosition =3D {=0A=
			left: (parentDimensions.width - this.width)/2,=0A=
			top: (parentDimensions.height - this.height)/2	=0A=
		}=0A=
				=0A=
		if(parentScrollHeight > 0) endAnimPosition.top =3D endAnimPosition.top =
+ parentScrollHeight;=0A=
		=0A=
		var animator =3D new Animator({=0A=
			onComplete: (function() {=0A=
				animator.clearSubjects();=0A=
				_setCoords.call(this, endAnimPosition);=0A=
			}).bind(this)=0A=
		});=0A=
		=0A=
	=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"left", =0A=
									elementCurrentLeft, =0A=
									endAnimPosition.left));=0A=
		=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"top", =0A=
									elementCurrentTop, =0A=
									endAnimPosition.top));=0A=
		=0A=
		animator.seekTo(1);=0A=
		=0A=
	}=0A=
	=0A=
	function _moveOpenedAnimation(moveToCoords) {         =0A=
		_setUpAnimation.call(this);=0A=
		=0A=
		var endAnimPosition =3D moveToCoords;=0A=
		=0A=
		var paneDimensions =3D { =0A=
			height: this.height, =0A=
			width: this.width=0A=
		};		=0A=
		       =0A=
		var paneDimensionsWithFrame =3D { =0A=
			height: this.height + this.frameOffset, =0A=
			width: this.width + this.frameOffset=0A=
		};=0A=
		=0A=
		/* Setup alignment */=0A=
		=0A=
		endAnimPosition =3D _alignmentDecoration(this.alignment, =0A=
						       endAnimPosition, =0A=
						       paneDimensionsWithFrame);=0A=
		=0A=
		if(document.viewport && paneDimensions.height > =
document.viewport.getDimensions().height) {=0A=
			endAnimPosition.top=3D (adobe.hostEnv.ieV > 6) ? =
document.viewport.getScrollOffsets()[1] : =
document.viewport.getScrollOffsets()[1] - this.frameOffset;=0A=
		}=0A=
		if((this.top =3D=3D endAnimPosition.top) && =0A=
		    (this.left =3D=3D endAnimPosition.left)) {=0A=
			return;=0A=
		}=0A=
	 =0A=
		var animator =3D new Animator({=0A=
			onComplete: (function() {=0A=
				animator.clearSubjects();=0A=
				_setCoords.call(this, endAnimPosition);=0A=
			}).bind(this)=0A=
		});=0A=
		=0A=
		if(this.top !=3D endAnimPosition.top) {=0A=
			animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
									"top", =0A=
									this.top, =0A=
									endAnimPosition.top));	=0A=
		}=0A=
		=0A=
		if(this.left !=3D endAnimPosition.left) {=0A=
			animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      		"left", =0A=
							      		this.left, =0A=
							      		endAnimPosition.left));=0A=
		}=0A=
		=0A=
		animator.seekTo(1);=0A=
	}=0A=
	=0A=
	function _getResizeTarget(resizeToElement) {=0A=
               return _getDimensions((resizeToElement.viewport) ? =
resizeToElement.viewport : resizeToElement);=0A=
	}=0A=
	=0A=
	function _resizeOpenedAnimation(resizeToDimension) {=0A=
=0A=
		var paneDimensions =3D { =0A=
			height: this.height, =0A=
			width: this.width=0A=
		};=0A=
		=0A=
		var animator =3D new Animator({=0A=
			onComplete: (function() {=0A=
				animator.clearSubjects();=0A=
				var dims =3D _setDimensions.call(this, _getDimensions(this.chrome));=0A=
				this.chrome.setStyle(dims);=0A=
			}).bind(this)=0A=
		});=0A=
				=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      "width", =0A=
							      this.width, =0A=
							      resizeToDimension.width));=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      "height", =0A=
							      this.height, =0A=
							      resizeToDimension.height));=0A=
		animator.seekTo(1);=0A=
	}=0A=
	=0A=
	function _resizeHeight(resizeToHeight) {=0A=
		=0A=
		var paneHeight =3D { =0A=
			height: this.height=0A=
		};=0A=
		=0A=
		if(adobe.hostEnv.ieV =3D=3D 7 && !this.reset) resizeToHeight.height =
=3D resizeToHeight.height + this.options.frameborder;=0A=
		=0A=
		var animator =3D new Animator({=0A=
			onComplete: (function() {=0A=
				animator.clearSubjects();=0A=
			}).bind(this)=0A=
		});=0A=
		=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      "height", =0A=
							      this.height, =0A=
							      resizeToHeight.height));=0A=
		=0A=
		animator.seekTo(1);=0A=
	}=0A=
	=0A=
	function _resizeToElement(element) {=0A=
		=0A=
		var paneDimensions =3D { =0A=
			height: element.getHeight(), =0A=
			width: element.getWidth()=0A=
		};=0A=
		=0A=
		if(adobe.hostEnv.ieV=3D=3D7) { =0A=
			paneDimensions.width =3D paneDimensions.width - 48;=0A=
			paneDimensions.height =3D paneDimensions.height - 48;=0A=
		}=0A=
		=0A=
		=0A=
		var animator =3D new Animator({=0A=
			onComplete: (function() {=0A=
				animator.clearSubjects();=0A=
				var dims =3D _setDimensions.call(this, _getDimensions(this.chrome));=0A=
				this.chrome.setStyle(dims);=0A=
			}).bind(this)=0A=
		});=0A=
	=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      "width", =0A=
							      this.width, =0A=
							      paneDimensions.width));=0A=
		animator.addSubject(new NumericalStyleSubject(this.chrome, =0A=
							      "height", =0A=
							      this.height, =0A=
							      paneDimensions.height));=0A=
		animator.seekTo(1);=0A=
		=0A=
		=0A=
		=0A=
		this.height =3D paneDimensions.height;=0A=
		this.width =3D paneDimensions.width;=0A=
		=0A=
=0A=
	}=0A=
	=0A=
	function _setLocation(location){=0A=
		 this.request =3D new Ajax.Request(location, {=0A=
			method: this.options.method,=0A=
					onComplete: (function(response) {=0A=
							_updateContent.call(this,response.responseText);=0A=
					}).bind(this)=0A=
			});=0A=
	}=0A=
=0A=
	function _updateContent(content){=0A=
		this.cache =3D content;=0A=
		this.content.update(this.cache);=0A=
		if(this.totalViews =3D=3D 0) {=0A=
			document.fire("pane:updated");=0A=
			return;=0A=
		}=0A=
		if(!this.reset) {			=0A=
			this.viewNumber++;	=0A=
		}=0A=
		var viewName =3D this.viewNumber;=0A=
		document.fire("pane:updated",{ viewName: =
this.viewTranslation[this.viewNumber] });=0A=
		this.reset =3D false;=0A=
	}=0A=
	function _goBack(){=0A=
		this.viewNumber++;=0A=
		var viewName =3D this.viewNumber;=0A=
		var location =3D this.options.viewStates[viewName].uri;=0A=
		_setLocation.call(this,location);=0A=
		this.reset =3D true;	=0A=
	}=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	States=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	=0A=
	var _states =3D {=0A=
		CLOSED: 0,=0A=
		OPENED: 1,=0A=
		CLOSING: 2,=0A=
		OPENING: 3,=0A=
		UNKNOWN: 4=0A=
	};=0A=
	=0A=
	var _chrome_events =3D [];=0A=
	_chrome_events[_states.CLOSED] =3D "pane:endclose";=0A=
	_chrome_events[_states.OPENED] =3D "pane:endopen";=0A=
	_chrome_events[_states.OPENING] =3D "pane:startopen";=0A=
	_chrome_events[_states.CLOSING] =3D "pane:startclose";=0A=
	_chrome_events[_states.UNKNOWN] =3D "pane:error";=0A=
	=0A=
	=0A=
	_state_translation =3D [];=0A=
	=0A=
	_state_translation[_states.UNKNOWN] =3D {};=0A=
	=0A=
	_state_translation[_states.CLOSED] =3D {=0A=
		open: function() {=0A=
			if(!this.setOpener()) {=0A=
				=0A=
				this.nextstate =3D _states.UNKNOWN;=0A=
			}	=0A=
			=0A=
			this.currentstate =3D _states.OPENING;=0A=
			this.nextstate =3D _states.OPENED;=0A=
			this.chrome.style.visibility=3D"hidden";=0A=
			this.opener.insertBefore(this.chrome, this.opener.firstChild);=0A=
			_setUpAnimation.call(this);=0A=
			this.an.jumpTo(_states.CLOSED);=0A=
			this.chrome.style.visibility=3D"visible";=0A=
			this.chrome.fire(_chrome_events[this.currentstate]);=0A=
			this.an.seekTo(this.nextstate);=0A=
		},=0A=
		resizeTo: function(dims) {=0A=
			_setDimensions.call(this, dims);=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translation[_states.OPENING] =3D {=0A=
		close: function() {=0A=
			this.content.style.visibility=3D"hidden";=0A=
			this.currentstate =3D _states.CLOSING;=0A=
			this.nextstate =3D _states.CLOSED;=0A=
			this.an.seekTo(this.nextstate);=0A=
		},=0A=
		completeAnimation: function() {=0A=
			_setCoords.call(this, _getCoords(this.chrome));=0A=
			_setDimensions.call(this, _getDimensions(this.chrome));=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translation[_states.OPENED] =3D {	=0A=
		close: function() {			=0A=
			this.content.style.visibility=3D"hidden";=0A=
			this.currentstate =3D _states.CLOSING;=0A=
			this.nextstate =3D _states.CLOSED;=0A=
			this.chrome.fire(_chrome_events[this.currentstate]);=0A=
			this.an.seekTo(this.nextstate);	=0A=
			document.fire("pane:close")=0A=
		},=0A=
		updateLocation : function(location) {=0A=
			_setLocation.call(this,location);=0A=
		},=0A=
		back : function() {=0A=
			_goBack.call(this);=0A=
		},=0A=
		center: function() {=0A=
			_moveOpenedAnimation.call(this, _getCoords(this._moveToElement));=0A=
		},=0A=
		centerElement: function(element) {=0A=
			_centerAnimation.call(this, element);=0A=
		},=0A=
		moveToElement: function() {=0A=
			_moveOpenedAnimation.call(this, _getCoords(this._moveToElement));=0A=
		},=0A=
		moveTo: function(dims) {=0A=
			_moveOpenedAnimation.call(this, dims);=0A=
		},=0A=
		resizeToElement: function(element) {=0A=
			_resizeToElement.call(this, (element));=0A=
		},=0A=
		resizeTo: function(dims) {     =0A=
			_resizeOpenedAnimation.call(this, dims);=0A=
		},=0A=
		resizeHeight: function(dims) {=0A=
			_resizeHeight.call(this,dims); 	=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translation[_states.CLOSING] =3D {=0A=
		open: function() {=0A=
			this.currentstate =3D _states.OPENING;=0A=
			this.nextstate =3D _states.OPENED;=0A=
			this.an.seekTo(this.nextstate);=0A=
		},=0A=
		completeAnimation: function() {=0A=
			this.content.update("");=0A=
			this.content.style.visibility=3D"";=0A=
			this.an.clearSubjects();=0A=
			this.opener.removeChild(this.chrome);=0A=
		}=0A=
	};=0A=
	=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Export=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	=0A=
	return Class.create({=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: initialize=0A=
		=0A=
		Parameters:=0A=
		container - element or undefined=0A=
		options - hash object=0A=
		=0A=
		Options:=0A=
		transition - Animator object=0A=
		duration - number of milliseconds=0A=
		style_container - string=0A=
		style_content - string=0A=
		style_closebutton - string=0A=
		originElement - Element reference=0A=
		startAnimPosition - array=0A=
		width - number of pixels=0A=
		height - number of pixels=0A=
		top - number of pixels=0A=
		left - number of pixels=0A=
		closed - boolean=0A=
		resizable - boolean=0A=
		url - string=0A=
		caching - boolean=0A=
		z - integer=0A=
		chrome - html string=0A=
		=0A=
		Returned Value:=0A=
		Class instance=0A=
		=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
=0A=
		initialize: function(container, options, labels) {=0A=
			=0A=
			this.chrome =3D $(container) || new Element("div");=0A=
			=0A=
			var style_content =3D "chrome-pane-body",=0A=
			style_title =3D "chrome-pane-title",=0A=
			style_frame =3D "chrome-pane-frame",=0A=
			style_closebutton =3D "chrome-pane-closebutton";						=0A=
			=0A=
			this.options =3D Object.extend({=0A=
				alignment: "cc",=0A=
				caching: false, // dont use with content containing scripts=0A=
				closed: true,=0A=
				duration: 500,=0A=
				frameborder: 24,=0A=
				height: 0,=0A=
				left: 0,=0A=
				maintainAlignment: true,=0A=
				method: "get",=0A=
				originElement: null,=0A=
				resizable: false,=0A=
				scrollbars: false,=0A=
				style_container: "pane",=0A=
				style_content: style_content,=0A=
				style_title: style_title,=0A=
				style_closebutton: style_closebutton,=0A=
				selfcontained : false,=0A=
				originElement: null,=0A=
				startAnimPosition: null,=0A=
				width: 0,=0A=
				height: 0,=0A=
				top: 0,=0A=
				transition: Animator.tx.easeOut,=0A=
				useEventOrigin: true,=0A=
				useOriginSize: true,=0A=
				url: "",=0A=
				viewport: document,=0A=
				width: 0,=0A=
				viewStates : {},=0A=
				z: this.getZIndex(),=0A=
				chrome: new Template('<div class=3D"'+style_title+'">#{title}<\/div>\=0A=
						     <button tabindex=3D"0" =
class=3D"'+style_closebutton+'">#{close}<\/button>\=0A=
						     <div class=3D"'+style_content+'">#{body}<\/div>')=0A=
			}, options||{});=0A=
			=0A=
			this.viewNumber =3D 0;=0A=
			this.totalViews =3D Object.values(this.options.viewStates).length;=0A=
			=0A=
			if(this.totalViews > 0) {=0A=
				var views =3D Object.values(this.options.viewStates);=0A=
				this.viewTranslation=3D[];=0A=
				views.each(function(view,index) {=0A=
					this.viewTranslation[index+1] =3D view.id;=0A=
				}.bind(this));=0A=
			}=0A=
			=0A=
			this.reset =3D false;=0A=
			=0A=
			this._moveToElement =3D this.options.viewport;=0A=
			this.alignment =3D this.options.alignment;=0A=
			this.alignmentHandler =3D null;=0A=
			this.labels =3D Object.extend({=0A=
				close: "Close",=0A=
				body: "",=0A=
				title: ""=0A=
			}, labels||{});=0A=
			=0A=
			var parent =3D this.chrome.parentNode;=0A=
			=0A=
			if(parent) {=0A=
				parent.removeChild(this.chrome);=0A=
			}	=0A=
			=0A=
			this.frameOffset =3D this.options.frameborder*2;=0A=
			=0A=
			this.selfcontained =3D this.options.selfcontained;=0A=
			this.top =3D this.options.top;=0A=
			this.left =3D this.options.left;=0A=
			this.height =3D this.options.height - this.frameOffset;=0A=
			this.width =3D this.options.width - this.frameOffset;=0A=
			=0A=
			this.setOriginElement(this.options.originElement);=0A=
			this._resizeToElement =3D null;=0A=
			this.cache =3D "";=0A=
			=0A=
			this.chrome_style =3D (!this.selfcontained) ? "chrome-pane" =
:"chrome-pane-crystal"=0A=
			=0A=
			this.chrome.addClassName(this.chrome_style);=0A=
			=0A=
			this.chrome.setStyle({=0A=
				position: "absolute",=0A=
				height: (0).pixelate(),=0A=
				width: (0).pixelate(),=0A=
				top: this.top,=0A=
				left: this.left,=0A=
				padding: this.options.frameborder.pixelate()=0A=
			});=0A=
			=0A=
			this.setZIndex(this.options.z);=0A=
			=0A=
			this.setOpener();=0A=
			=0A=
			this.chrome.update(this.options.chrome.evaluate(this.labels));=0A=
			=0A=
			this.content =3D =
this.chrome.select("."+this.options.style_content).first();=0A=
			=0A=
			var boundClickHandle =3D this.close.bind(this);=0A=
			=0A=
			var boundKeyHandle =3D function(event) {=0A=
				if(event.keyCode =3D=3D Event.KEY_RETURN) {=0A=
					boundClickHandle();=0A=
				}=0A=
			}=0A=
			=0A=
			this.chrome.select("."+this.options.style_closebutton)=0A=
				.invoke("observe", "click", boundClickHandle)=0A=
				.invoke("observe", "keydown", boundKeyHandle);=0A=
			=0A=
			this.an =3D new Animator({=0A=
				transition: this.options.transition,=0A=
				duration: this.options.duration,=0A=
				onComplete: (function() {=0A=
					this.translateEvent("completeAnimation");=0A=
					this.currentstate =3D this.nextstate;=0A=
					this.nextstate =3D _states.UNKNOWN;=0A=
					this.closed =3D this.currentstate !=3D _states.CLOSED;=0A=
					this.chrome.fire(_chrome_events[this.currentstate]);=0A=
					=0A=
				}).bind(this)=0A=
			});=0A=
			=0A=
			this.currentstate =3D _states.CLOSED;=0A=
			=0A=
			this.nextstate =3D _states.UNKNOWN;=0A=
			=0A=
			this.closed =3D !this.currentstate;=0A=
			=0A=
			if(!this.options.closed) {=0A=
				this.translateEvent("open");=0A=
			}=0A=
			=0A=
			this.request =3D null;=0A=
			this.location;=0A=
			this.setLocation(this.options.url);=0A=
			=0A=
			if(this.options.maintainAlignment) {=0A=
				this.maintainAlignment();=0A=
			}=0A=
		},=0A=
		setZIndex: function(index) {=0A=
			this.chrome.setStyle({ zIndex: (parseInt(index) || this.getZIndex()) =
});=0A=
		},=0A=
		getZIndex: function() {=0A=
			return this.chrome.getStyle("z-index") || 0;	=0A=
		},=0A=
		updateContent: function(content) {=0A=
			this.cache =3D content;=0A=
			this.content.update(this.cache);=0A=
			if(this.totalViews =3D=3D 0) {=0A=
				document.fire("pane:updated");=0A=
				return;=0A=
			}=0A=
			this.viewNumber++;=0A=
			var viewName =3D this.viewNumber;=0A=
			this.chrome.fire("pane:updated",{ viewName: =
this.options.viewStates[viewName].id });=0A=
		},=0A=
		setOpener: function() {=0A=
			if(this.opener) { return this.opener ;}=0A=
			return this.opener =3D =
this.chrome.getDocument().getElementsByTagName("BODY")[0];=0A=
		},=0A=
		maintainAlignment: function() {=0A=
			=0A=
			if(this.alignmentHandler !=3D null) {=0A=
				return;	=0A=
			}=0A=
			=0A=
			this.alignmentHandler =3D (function() {=0A=
				this.translateEvent("moveToElement");=0A=
			}).bind(this);=0A=
			=0A=
			Event.observe(window, "resize", this.alignmentHandler);=0A=
			=0A=
			return;=0A=
			=0A=
		},=0A=
		setOriginElement: function(element) {=0A=
			this._originElement =3D $(element);=0A=
		},=0A=
		neglectAlignment: function() {=0A=
			if(this.alignmentHandler =3D=3D null) {=0A=
				return;	=0A=
			}=0A=
			=0A=
			Event.stopObserving(window, "resize", this.alignmentHandler);=0A=
			=0A=
			this.alignmentHandler =3D null;=0A=
			=0A=
			return;=0A=
		},		=0A=
		displayStatusShade : function() {=0A=
			this.loadingImg =3D new Element('img',{ "src" : =
"/tdrc/ssi/modal/ajax-loader-trans.gif", "style" : "left: 50%; top: 45%; =
position: relative"});=0A=
			this.loadingShade =3D new Element("div", { "id" : =
"paneShade"}).insert(this.loadingImg);=0A=
			this.loadingShade.setStyle({=0A=
				"width" : "100%",=0A=
				"height" : "100%",=0A=
				"top": 0,=0A=
				"left": (adobe.SCRIPT_ENGINE=3D=3D"JScript") ? 24 : 0,=0A=
				"zIndex": 1003,=0A=
				"opacity": 0.6,				=0A=
				"background" : "#FFFFFF",				=0A=
				"position" : "absolute"=0A=
			});=0A=
						=0A=
			if(adobe.hostEnv.ie) {=0A=
				if(adobe.hostEnv.ie6) $$("select").invoke("setStyle",{ "visibility" =
: "hidden"});=0A=
				this.content.setStyle({=0A=
					"filter": "alpha(opacity=3D50)"=0A=
				 })	=0A=
			}=0A=
			if(!this.pane) {=0A=
				this.chrome.insert(this.loadingShade);=0A=
			} else {=0A=
				this.pane.chrome.insert(this.loadingShade);	=0A=
			}=0A=
		},=0A=
		=0A=
		removeStatusShade : function() {=0A=
			if(!$('paneShade')) { return; }=0A=
			$('paneShade').remove();=0A=
			if(adobe.hostEnv.ie6) $$("select").invoke("setStyle",{ "visibility" : =
""})=0A=
			if(adobe.hostEnv.ie) {=0A=
				this.content.setStyle({=0A=
					"filter": ""=0A=
				 });=0A=
			}			=0A=
		},=0A=
		=0A=
	=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: center=0A=
		=0A=
		Parameters:=0A=
		unset - boolean=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		center: function(width, height) {=0A=
			var walign =3D (width) ? "c" : "l";=0A=
			var halign =3D (height) ? "c" : "t";=0A=
			this.alignment =3D walign + halign;=0A=
                        this.translateEvent("center");=0A=
		},=0A=
		=0A=
		=0A=
		centerElement: function(element) {=0A=
			this.translateEvent("centerElement",element);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: moveTo=0A=
		=0A=
		Parameters:=0A=
		left - Integer=0A=
		top - Integer=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		moveTo: function(left, top) {=0A=
			this.translateEvent("moveTo", {=0A=
				left: parseInt(left), =0A=
				top: parseInt(top)=0A=
			});=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: moveToElement=0A=
		=0A=
		Parameters:=0A=
		element - Element reference=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		moveToElement: function(element) {=0A=
			this._moveToElement =3D $(element);=0A=
			this.translateEvent("moveToElement");=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: resizeToElement=0A=
		=0A=
		Parameters:=0A=
		element - Element reference=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		resizeToElement: function(element) {			=0A=
			this.translateEvent("resizeToElement", element);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: resizeTo=0A=
		=0A=
		Parameters:=0A=
		width - Integer=0A=
		height - Integer=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/		=0A=
		resizeTo: function(width, height) {=0A=
			this.translateEvent("resizeTo", {=0A=
				width: parseInt(width), =0A=
				height: parseInt(height)=0A=
			});=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: resizeHeight=0A=
		=0A=
		Parameters:=0A=
		height - Integer=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/		=0A=
        resizeHeight: function(height) {=0A=
			this.translateEvent("resizeHeight", {=0A=
				height: parseInt(height)=0A=
			});=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------	=0A=
		=0A=
		Method: open=0A=
	=0A=
		Parameters:=0A=
		event - Event instance=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
		=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		open: function(event) {			=0A=
			if(event && this.options.useEventOrigin) {=0A=
				this._originElement =3D event.element() || this._originElement;=0A=
			}=0A=
			if(!this._originElement) {=0A=
				this._originElement =3D this.options.viewport;=0A=
			}=0A=
			this.translateEvent("open");=0A=
			if(adobe.hostEnv.ie6) $$("select").invoke("setStyle",{ "visibility" : =
"hidden"})			=0A=
		},=0A=
		=0A=
		back : function(view) {=0A=
			this.viewNumber =3D view-1;=0A=
			this.translateEvent("back")=0A=
		},=0A=
		=0A=
		setup: function(event,url) {			=0A=
			this.setLocation(url);=0A=
			this.setOriginElement(event.target);=0A=
			this.open(event);=0A=
		},=0A=
		=0A=
		updateLocation : function(location){=0A=
			this.translateEvent("updateLocation",location)=0A=
=0A=
		},=0A=
		setLocation: function(location) {=0A=
			if(location && !this.location) {                          =0A=
				this.observe("pane:endopen", (function() {					=0A=
					if(!this.options.caching || !this.cache) {=0A=
						this.request =3D new Ajax.Request(this.location, {=0A=
							method: this.options.method,=0A=
							onComplete: (function(response) {=0A=
								this.updateContent(response.responseText);=0A=
							}).bind(this)=0A=
						});=0A=
					}=0A=
				}).bind(this));	=0A=
			}=0A=
			=0A=
			this.location =3D location;=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------	=0A=
=0A=
		Method: close=0A=
	=0A=
		Returned Value:=0A=
		None=0A=
			=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		close: function() {=0A=
			this.translateEvent("close");=0A=
			if(adobe.hostEnv.ie6) $$("select").invoke("setStyle",{ "visibility" : =
""})=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------	=0A=
=0A=
		Method: translateEvent=0A=
		=0A=
		Parameters:=0A=
		eventname - string=0A=
		arg - optional argument=0A=
	=0A=
		Returned Value:=0A=
		None=0A=
			=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		translateEvent: function(eventname, arg) {=0A=
			try { return (_state_translation[this.currentstate][eventname] || =
Prototype.emptyFunction).call(this, arg);=0A=
			} catch(e) { throw (e); }=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: observe=0A=
			=0A=
		Parameters:=0A=
		eventname - string=0A=
		callback - function=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
		=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		observe: function(eventname, callback) {=0A=
			this.chrome.observe(eventname, callback);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: ignore=0A=
			=0A=
		Parameters:=0A=
		eventname - string=0A=
		callback - function=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
		=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		ignore: function(eventname, callback) {=0A=
			this.chrome.stopObserving(eventname, callback);=0A=
		}=0A=
	});=0A=
	=0A=
})();=0A=
=0A=
adobe.link("lib/animator.js");=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
Class: Shade=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
adobe.Shade =3D Class.create((function() {=0A=
	var _states =3D {=0A=
		CLOSED: 0,=0A=
		OPENED: 1,=0A=
		OPENING:2,=0A=
		CLOSING:3=0A=
	}=0A=
	=0A=
	var _state_translations =3D [];=0A=
	=0A=
	_state_translations[_states.CLOSED] =3D {=0A=
		show: function() {=0A=
			this.currentstate =3D _states.OPENING;=0A=
			if(!this.options.scrolling) {=0A=
				this.shadedElement.makeClipping();=0A=
			}=0A=
			this.shadedElement.relativize();=0A=
			this.shadedElement.insertBefore(this.shadeElement, =
this.shadedElement.firstDescendant());=0A=
			this.an.seekTo(_states.OPENED);=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translations[_states.OPENED] =3D {=0A=
		hide: function() {=0A=
			this.currentstate =3D _states.CLOSING;=0A=
			this.an.seekTo(_states.CLOSED);=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translations[_states.CLOSING] =3D {=0A=
		show: function() {=0A=
			this.currentstate =3D _states.OPENING;=0A=
			this.an.seekTo(_states.OPENED);=0A=
		},=0A=
		complete: function() {=0A=
			this.currentstate =3D _states.CLOSED;=0A=
			this.shadedElement.removeChild(this.shadeElement);=0A=
			if(!this.options.scrolling) {=0A=
				this.shadedElement.undoClipping();=0A=
			}=0A=
		}=0A=
	};=0A=
	=0A=
	_state_translations[_states.OPENING] =3D {=0A=
		hide: function() {=0A=
			this.currentstate =3D _states.CLOSING;=0A=
			this.an.seekTo(_states.CLOSED);=0A=
		},=0A=
		complete: function() {=0A=
			this.currentstate =3D _states.OPENED;			=0A=
		}=0A=
	};=0A=
	=0A=
	return {=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: initialize=0A=
		=0A=
		Parameters:=0A=
		element - element reference or ID string=0A=
		options - hash=0A=
		=0A=
		Options:=0A=
		label - ""=0A=
		transition - Transition object, default is Animator.tx.easeInOut=0A=
		duration - integer ,default is 400=0A=
		opacity - number, default is 0.65=0A=
		color - string as hex, default is "#000000"=0A=
		z - integer, deault is 1 greater that the shaded element=0A=
		scrolling - boolean, default is true=0A=
		=0A=
		Returned Value:=0A=
		Class instance=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		initialize: function(element, options) {=0A=
			this.shadedElement =3D $(element);=0A=
			var z =3D this.shadedElement.getStyle("z-index")+1;=0A=
			=0A=
			this.options =3D Object.extend({=0A=
				label: "",=0A=
				transition: Animator.tx.easeInOut,=0A=
				duration: 400,=0A=
				opacity: 0.65,=0A=
				color: "#000000",=0A=
				z: z,=0A=
				scrolling: true,=0A=
				cursor: "default"=0A=
			}, options||{});=0A=
			=0A=
			this.shadeElement =3D new Element("div");=0A=
			=0A=
			this.setLabel(this.options.label);=0A=
			this.setCursor(this.options.cursor);=0A=
=0A=
			var offsets =3D this.shadedElement.positionedOffset();=0A=
			=0A=
			shadeIEHeight =3D $$('body')[0].getHeight();=0A=
		=0A=
			this.shadeElement.setStyle({=0A=
				backgroundColor: this.options.color,=0A=
				zIndex: this.options.z,=0A=
				top: offsets.top.pixelate(),=0A=
				left: offsets.left.pixelate(),=0A=
				position: ((adobe.hostEnv.ie6) ? "absolute" : "fixed"),=0A=
				height: ((adobe.hostEnv.ie6) ? 	shadeIEHeight+"px" : "100%"), =0A=
				width: "100%"=0A=
			});=0A=
			=0A=
			this.currentstate =3D _states.CLOSED;=0A=
			this.nextstate;=0A=
			=0A=
			this.an =3D new Animator({=0A=
				transition: this.options.transition,=0A=
				duration: this.options.duration,=0A=
				onComplete: this.translateEvent.bind(this, "complete")=0A=
			})=0A=
			.addSubject(new NumericalStyleSubject(this.shadeElement, 'opacity', =
0, this.options.opacity));=0A=
			=0A=
			this.an.jumpTo(0);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: translateEvent=0A=
		=0A=
		Parameters:=0A=
		eventname - string=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/			=0A=
		translateEvent: function(eventname) {=0A=
			try {=0A=
				return (_state_translations[this.currentstate][eventname] || =
Prototype.emptyFunction).call(this);=0A=
			} catch(e) {=0A=
				throw (e);=0A=
			}=0A=
		},=0A=
		setCursor: function(cursor) {=0A=
			this.shadeElement.setStyle({=0A=
				cursor: cursor=0A=
			});=0A=
		},=0A=
		setLabel: function(label) {=0A=
			this.shadeElement.writeAttribute("title", label);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: show=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		show: function() {=0A=
			if(adobe.hostEnv.ie6) this.shadeElement.style.height =3D =
$$('body')[0].getHeight()+"px";=0A=
			return this.translateEvent("show");=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: hide=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		hide: function() {=0A=
			return this.translateEvent("hide");=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: toggle=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		toggle: function() {=0A=
			return this.translateEvent((this.currentstate =3D=3D _states.CLOSED =
|| =0A=
						    this.currentstate =3D=3D _states.CLOSING) ? "show" : "hide");=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: observe=0A=
=0A=
		Parameters:=0A=
		eventname - string=0A=
		func - function=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		observe: function(eventname, func) {=0A=
			this.shadeElement.observe(eventname, func);=0A=
		},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
		Method: stopObserving=0A=
		=0A=
		Parameters:=0A=
		eventname - string=0A=
		func - function=0A=
		=0A=
		Returned Value:=0A=
		None=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
		stopObserving: function(eventname, func) {=0A=
			this.shadeElement.stopObserving(eventname, func);=0A=
		}=0A=
	};=0A=
})());=0A=
=0A=
adobe.link("lib/animator.js");=0A=
=0A=
=0A=
adobe.Modal =3D Class.create({=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Method: initialize=0A=
	Parameters:=0A=
	pane - <Pane> instance=0A=
	shade - <Shade> instance=0A=
	options - hash=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	initialize: function(pane, shade, options) {=0A=
		this.pane =3D pane;=0A=
		this.shade =3D shade;=0A=
		=0A=
		this.options =3D Object.extend({=0A=
			align: "center",=0A=
			alignTo: document,=0A=
			resize: true,=0A=
			origin: "",=0A=
			name: "",=0A=
			observeShade: true,=0A=
			esc: false=0A=
		}, options);=0A=
		=0A=
		switch(this.options.align) {=0A=
			case "center":=0A=
				this.pane.center(true, true);=0A=
				break;=0A=
		}=0A=
		=0A=
		this.pane.moveToElement(this.options.alignTo);=0A=
		=0A=
		if(this.options.resize) {=0A=
			this.pane.maintainAlignment();=0A=
		}=0A=
		=0A=
		this.disableHandler =3D null;=0A=
		=0A=
		if(this.options.observeShade) {=0A=
			this.attachShadeButton();=0A=
			this.shade.observe("click", this.disable.bind(this));=0A=
		}=0A=
				=0A=
		this.shadeCloseHandler =3D this.shade.hide.bind(this.shade);=0A=
		this.shadeOpenHandler =3D this.shade.show.bind(this.shade);=0A=
		=0A=
		this.pane.observe("pane:startclose", this.shadeCloseHandler);=0A=
		this.pane.observe("pane:startopen", this.shadeOpenHandler);=0A=
=0A=
		document.observe("modal:close", this.disable.bind(this))=0A=
		document.observe("modal:close", this.shadeCloseHandler);=0A=
		=0A=
		this.pane.observe("modal:close", this.shadeCloseHandler);=0A=
		this.pane.observe("modal:close", this.disable.bind(this))=0A=
		=0A=
		if(this.options.esc) {=0A=
			=
document.observe("modal:opened",this.observeKeypress.bindAsEventListener(=
this))=0A=
			document.observe("pane:close", this.ignoreKeypress)=0A=
		}=0A=
	},=0A=
	=0A=
	observeKeypress : function(e) {=0A=
		document.observe('keypress',this.watchEsc.bindAsEventListener(this));=0A=
	},=0A=
	=0A=
	ignoreKeypress : function(e) {=0A=
		document.stopObserving('keypress',this.watchEsc);=0A=
	},=0A=
	=0A=
	watchEsc : function(e) {=0A=
		var keyEvent =3D e.keyCode || e.which;=0A=
		if(keyEvent =3D=3D 27) {=0A=
			this.disable();	=0A=
		}=0A=
	},=0A=
	=0A=
	createDisableHandler: function() {=0A=
		if(this.disableHandler =3D=3D null) { =0A=
			this.disableHandler =3D this.disable.bind(this);	=0A=
		}=0A=
		return;=0A=
	},=0A=
	destroyDisableHandler: function() {=0A=
		if(this.disableHandler =3D=3D null) {=0A=
			return;=0A=
		}=0A=
		this.detachShadeButton();=0A=
		this.disableHandler =3D null;=0A=
		return;=0A=
	},=0A=
	attachShadeButton: function() {=0A=
		if(!this.disableHandler) {=0A=
			this.createDisableHandler();	=0A=
		}=0A=
		this.shade.observe("click", this.disableHandler);=0A=
	},=0A=
	detachShadeButton: function() {=0A=
		this.shade.stopObserving("click", this.disableHandler);=0A=
	},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Method: enable=0A=
	Parameters:=0A=
	event - Event instance=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	enable: function(event) {=0A=
		this.pane.open(event);=0A=
		this.shade.show();=0A=
		document.fire("modal:opened");=0A=
	},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Method: setup=0A=
	Parameters:=0A=
	event - Event instance=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	setup: function(event,url) {=0A=
		this.pane.setup(event,url);=0A=
		this.shade.show();=0A=
		document.fire("modal:opened");=0A=
	},=0A=
/*-----------------------------------------------------------------------=
------------------=0A=
=0A=
	Method: disable=0A=
	=0A=
	=0A=
=0A=
-------------------------------------------------------------------------=
----------------*/=0A=
	disable: function() {=0A=
		this.pane.close();=0A=
		document.fire("modal:closed")=0A=
		if(this.shade.currentstate < 3)	this.shade.hide();=0A=
	}=0A=
});=0A=
=0A=
Element.addMethods("A", {=0A=
	modalize: function(element, modaluri) {=0A=
		var element =3D element;=0A=
		=0A=
		if(modaluri) =0A=
		{=0A=
			options =3D modaluri.toQueryParams();=0A=
			url =3D modaluri;=0A=
		} =0A=
		else =0A=
		{=0A=
			var q =3D element.search,=0A=
			options =3D q.toQueryParams(),=0A=
			url =3D element.path();=0A=
			=0A=
			if(q) =0A=
			{=0A=
				url +=3D q;=0A=
			}=0A=
		}=0A=
		=0A=
		options.width =3D parseInt(options.width)||640;=0A=
		options.height =3D parseInt(options.height)||480;=0A=
		options.z =3D parseInt(options.z)||1000;=0A=
		options.duration =3D parseInt(options.duration)||400;=0A=
		options.title =3D element.readAttribute("title") || "";=0A=
		options.frameborder =3D parseInt(options.frameborder);=0A=
		=0A=
		options.frameborder =3D (isNaN(options.frameborder) ? 24 : =
options.frameborder);=0A=
		options.hideclosebutton =3D options.hideclosebutton || false;=0A=
		=0A=
		var chrome =3D (!options.hideclosebutton) ? =0A=
			'<div class=3D"chrome-pane-title">#{title}<\/div><button =
style=3D"right:6px;top:6px" =
class=3D"chrome-pane-closebutton">#{close}<\/button>'+((Prototype.Browser=
.Gecko) ? '<iframe class=3D"chrome-ff2-frame"><\/iframe>' : '')+'<div =
class=3D"chrome-pane-body">#{body}<\/div>' :=0A=
			'<div =
class=3D"chrome-pane-title">#{title}<\/div>'+((Prototype.Browser.Gecko) =
? '<iframe class=3D"chrome-ff2-frame"><\/iframe>' : '')+'<div =
class=3D"chrome-pane-body">#{body}<\/div>';=0A=
		=0A=
		var shade =3D new =
adobe.Shade(document.getElementsByTagName("BODY")[0], {=0A=
			z: options.z,=0A=
			duration: options.duration/1.5,=0A=
			scrolling: true=0A=
		}),=0A=
		pane =3D new adobe.Pane(null, {=0A=
			width: options.width,=0A=
			height: options.height,=0A=
			z: options.z+1,=0A=
			duration: options.duration,=0A=
			url: url,=0A=
			frameborder: options.frameborder,=0A=
			hideclosebutton : options.hideclosebutton,=0A=
			chrome: new Template(chrome)=0A=
		}, {=0A=
			title: options.title=0A=
		}),=0A=
		modal =3D new adobe.Modal(pane, shade);=0A=
		=0A=
		element.observe("click", adobe.u.nonEvent);=0A=
		element.observe("keydown", key_handler);=0A=
		element.observe("click", modal.enable.bind(modal));=0A=
		=0A=
		function key_handler(event) {	=0A=
			if(event.keyCode =3D=3D Event.KEY_RETURN) {=0A=
				return adobe.u.nonEvent(event);	=0A=
			}=0A=
		}=0A=
		return element;=0A=
	}=0A=
});
------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/js/foresee/foresee-trigger-dlc.js

var FSR =3D {=0A=
    'version': '6.0.0',=0A=
    'date': '03/22/2010',=0A=
    'enabled': true,=0A=
	'auto' : true,=0A=
	'encode' : false,=0A=
    'files': 'http://wwwimages.adobe.com/www.adobe.com/js/foresee/',=0A=
    'id': 's5ccpQJxpV8s81t5gshQdw=3D=3D',=0A=
    'sites': [{=0A=
        name: 'adobe.com',=0A=
		path: /\w+-?\w+\.(com|net)/=0A=
    }, {=0A=
        name: 'adobe.com',=0A=
		path: '.',=0A=
        domain: 'default'=0A=
    }]=0A=
};=0A=
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/=0A=
function fsr$setAlive(){var A=3Dnew =
Date().getTime();document.cookie=3D"fsr.a=3D"+A+";path=3D/"+((FSR.site.do=
main)?";domain=3D"+FSR.site.domain+";":";")=0A=
}(function(){if(window!=3Dwindow.top){return }function G(K){if(typeof =
K=3D=3D"object"){var J=3DK.constructor.toString().match(/array/i);=0A=
return(J!=3Dnull)}return false}var I=3DFSR.sites;for(var =
F=3D0,D=3DI.length;F<D;F++){var =
B;if(!G(I[F].path)){I[F].path=3D[I[F].path]=0A=
}for(var =
E=3D0,C=3DI[F].path.length;E<C;E++){if(B=3Ddocument.location.href.match(I=
[F].path[E])){FSR.siteid=3DF;=0A=
FSR.site=3DFSR.sites[FSR.siteid];if(!FSR.site.domain){FSR.site.domain=3DB=
[0]}else{if(FSR.site.domain=3D=3D"default"){FSR.site.domain=3Dfalse=0A=
}}if(!FSR.site.name){FSR.site.name=3DB[0]}var =
A=3D["files","js_files","image_files","html_files"];for(var =
F=3D0,H=3DA.length;=0A=
F<H;F++){if(FSR.site[A[F]]){FSR[A[F]]=3DFSR.site[A[F]]}}break}}if(B){brea=
k}}if(!window["fsr$timer"]){fsr$setAlive();=0A=
window["fsr$timer"]=3DsetInterval(fsr$setAlive,1000)}})();fsr$dbug=3D{log=
:function(){}};FSR.Native=3Dfunction(J){J=3DJ||{};=0A=
var F=3DJ.afterImplement||function(){};var =
G=3DJ.generics;G=3D(G!=3D=3Dfalse);var H=3DJ.legacy;var E=3DJ.initialize;=0A=
var B=3DJ.protect;var A=3DJ.name;var =
C=3DE||H;C.xconstructor=3DFSR.Native;C.fsr$family=3D{name:"native"};if(H&=
&E){C.prototype=3DH.prototype=0A=
}C.prototype.xconstructor=3DC;if(A){var =
D=3DA.toLowerCase();C.prototype.fsr$family=3D{name:D}}var =
I=3Dfunction(M,K,N,L){if(!B||L||!M.prototype[K]){M.prototype[K]=3DN=0A=
}if(G){FSR.Native.genericize(M,K,B)}F.call(M,K,N);return =
M};C.fsr$implement=3Dfunction(L,K,N){if(typeof L=3D=3D"string"){return =
I(this,L,K,N)=0A=
}for(var M in L){I(this,M,L[M],K)}return =
this};C.fsr$alias=3Dfunction(M,K,N){if(typeof =
M=3D=3D"string"){M=3Dthis.prototype[M];=0A=
if(M){I(this,K,M,N)}}else{for(var L in =
M){this.fsr$alias(L,M[L],K)}}return this};return =
C};FSR.Native.fsr$implement=3Dfunction(D,C){for(var B=3D0,A=3DD.length;=0A=
B<A;B++){D[B].fsr$implement(C)}};FSR.Native.genericize=3Dfunction(B,C,A){=
if((!A||!B[C])&&typeof =
B.prototype[C]=3D=3D"function"){B[C]=3Dfunction(){var =
D=3DArray.prototype.slice.call(arguments);=0A=
return =
B.prototype[C].apply(D.shift(),D)}}};FSR.Native.fsr$alias=3Dfunction(E,B,=
A,F){for(var D=3D0,C=3DE.length;=0A=
D<C;D++){E[D].fsr$alias(B,A,F)}};(function(B){for(var A in B){new =
FSR.Native({name:A,initialize:B[A],protect:true,generics:true})=0A=
}})({String:String,Function:Function,Number:Number,RegExp:RegExp,Date:Dat=
e});FSR.$chk=3Dfunction(A){return !!(A||A=3D=3D=3D0)=0A=
};FSR.$clear=3Dfunction(A){clearTimeout(A);clearInterval(A);return =
null};FSR.$defined=3Dfunction(A){return(A!=3Dundefined)=0A=
};FSR.$empty=3Dfunction(){};FSR.$arguments=3Dfunction(A){return =
function(){return arguments[A]}};FSR.$lambda=3Dfunction(A){return(typeof =
A=3D=3D"function")?A:function(){return A=0A=
}};FSR.$extend=3Dfunction(C,A){for(var B in (A||{})){C[B]=3DA[B]}return =
C};FSR.$unlink=3Dfunction(C){var B;=0A=
switch(FSR.$type(C)){case"object":B=3D{};for(var E in =
C){B[E]=3DFSR.$unlink(C[E])}break;case"hash":B=3DFSR.$unlink(C.getClean()=
);=0A=
break;case"array":B=3D[];for(var =
D=3D0,A=3DC.length;D<A;D++){B[D]=3DFSR.$unlink(C[D])}break;default:return=
 C=0A=
}return B};FSR.$merge=3Dfunction(){var E=3D{};for(var =
D=3D0,A=3Darguments.length;D<A;D++){var B=3Darguments[D];=0A=
if(FSR.$type(B)!=3D"object"){continue}for(var C in B){var =
G=3DB[C],F=3DE[C];E[C]=3D(F&&FSR.$type(G)=3D=3D"object"&&FSR.$type(F)=3D=3D=
"object")?FSR.$merge(F,G):FSR.$unlink(G)=0A=
}}return E};FSR.$pick=3Dfunction(){for(var =
B=3D0,A=3Darguments.length;B<A;B++){if(arguments[B]!=3Dundefined){return =
arguments[B]=0A=
}}return =
null};FSR.$random=3Dfunction(B,A){return(Math.random()*(A-B))+B};FSR.$spl=
at=3Dfunction(B){var A=3DFSR.$type(B);=0A=
return(A)?((A!=3D"array"&&A!=3D"arguments")?[B]:B):[]};FSR.$time=3DDate.n=
ow||function(){return new Date().getTime()=0A=
};FSR.$pause=3Dfunction(C){var B=3Dnew Date();var A=3Dnull;do{A=3Dnew =
Date()}while(A-B<C)};FSR.$try=3Dfunction(){for(var =
B=3D0,A=3Darguments.length;=0A=
B<A;B++){try{return arguments[B]()}catch(C){}}return =
null};FSR.$type=3Dfunction(A){if(A=3D=3Dundefined){return false=0A=
}if(A.fsr$family){return(A.fsr$family.name=3D=3D"number"&&!isFinite(A))?f=
alse:A.fsr$family.name}if(A.nodeName){switch(A.nodeType){case =
1:return"element";=0A=
case =
3:return(/\S/).test(A.nodeValue)?"textnode":"whitespace"}}else{if(typeof =
A.length=3D=3D"number"){if(A.callee){return"arguments"=0A=
}else{if(A.item){return"collection"}}}}if(FSR.isArray(A)){return"array"}r=
eturn typeof A};FSR.isArray=3Dfunction(B){if(typeof B=3D=3D"object"){var =
A=3DB.constructor.toString().match(/array/i);=0A=
return(A!=3Dnull)}return false};FSR.Hash=3Dnew =
FSR.Native({name:"Hash",initialize:function(A){if(FSR.$type(A)=3D=3D"hash=
"){A=3DFSR.$unlink(A.getClean())=0A=
}for(var B in A){this[B]=3DA[B]}return =
this}});FSR.Hash.fsr$implement({getLength:function(){var B=3D0;=0A=
for(var A in this){if(this.hasOwnProperty(A)){B++}}return =
B},forEach:function(B,C){for(var A in =
this){if(this.hasOwnProperty(A)){B.call(C,this[A],A,this)=0A=
}}},getClean:function(){var B=3D{};for(var A in =
this){if(this.hasOwnProperty(A)){B[A]=3Dthis[A]}}return B=0A=
},empty:function(){FSR.Hash.each(this,function(B,A){delete =
this[A]},this);return this}});FSR.Hash.fsr$alias("forEach","each");=0A=
FSR.$H=3Dfunction(A){return new =
FSR.Hash(A)};FSR.$each=3Dfunction(C,B,D){var =
A=3DFSR.$type(C);(A=3D=3D"arguments"||A=3D=3D"collection"||A=3D=3D"array"=
)?FSR.Array.each(C,B,D):FSR.Hash.each(C,B,D)=0A=
};FSR.Browser=3Dnew =
FSR.Hash({Type:{name:"unknown",version:""},Engine:{name:"unknown",version=
:""},Platform:{name:(navigator.platform.match(/mac|win32|linux/i)||["othe=
r"])[0].toLowerCase(),os:"unknown"},Features:{xpath:!!(document.evaluate)=
,air:!!(window.runtime)},Plugins:{},searchString:function(D){for(var =
A=3D0;=0A=
A<D.length;A++){var B=3DD[A].s;var =
C=3DD[A].p;this.versionSearchString=3DD[A].v||D[A].i;if(B){if(B.indexOf(D=
[A].b)!=3D-1){return D[A].i=0A=
}}else{if(C){return D[A].i}}}},searchVersion:function(B){var =
A=3DB.indexOf(this.versionSearchString);=0A=
if(A=3D=3D-1){return }return =
parseFloat(B.substring(A+this.versionSearchString.length+1))},dataBrowser=
:[{s:navigator.userAgent,b:"Chrome",i:"Chrome"},{s:navigator.vendor,b:"Ap=
ple",i:"Safari",v:"Version"},{p:window.opera,i:"Opera"},{s:navigator.user=
Agent,b:"Firefox",i:"Firefox"},{s:navigator.userAgent,b:"Netscape",i:"Net=
scape"},{s:navigator.userAgent,b:"MSIE",i:"Explorer",v:"MSIE"},{s:navigat=
or.userAgent,b:"Gecko",i:"Mozilla",v:"rv"}],dataOS:[{s:navigator.platform=
,b:"Win",i:"Windows"},{s:navigator.platform,b:"Mac",i:"Mac"},{s:navigator=
.platform,b:"Linux",i:"Linux"}]});=0A=
if(window.opera){FSR.Browser.Engine=3D{name:"presto",version:(document.ge=
tElementsByClassName)?950:925}=0A=
}else{if(window.ActiveXObject){FSR.Browser.Engine=3D{name:"trident",versi=
on:(window.XMLHttpRequest)?5:4}=0A=
}else{if(!navigator.taintEnabled){FSR.Browser.Engine=3D{name:"webkit",ver=
sion:(FSR.Browser.Features.xpath)?420:419}=0A=
}else{if(document.getBoxObjectFor!=3Dnull){FSR.Browser.Engine=3D{name:"ge=
cko",version:(document.getElementsByClassName)?19:18}=0A=
}}}}FSR.Browser.Engine[FSR.Browser.Engine.name]=3DFSR.Browser.Engine[FSR.=
Browser.Engine.name+FSR.Browser.Engine.version]=3Dtrue;=0A=
if(window.orientation!=3Dundefined){FSR.Browser.Platform.name=3D"ipod"}FS=
R.Browser.Platform[FSR.Browser.Platform.name]=3Dtrue;=0A=
FSR.Browser.Plugins.Flash=3D(function(){var =
A=3D(FSR.$try(function(){return navigator.plugins["Shockwave =
Flash"].description=0A=
},function(){return new =
ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})|=
|"0 r0").match(/\d+/g);=0A=
return{version:parseInt(A[0]||0+"."+A[1]||0),build:parseInt(A[2]||0)}})()=
;FSR.Browser.Type.name=3DFSR.Browser.searchString(FSR.Browser.dataBrowser=
)||"unknown";=0A=
FSR.Browser.Type.version=3DFSR.Browser.searchVersion(navigator.userAgent)=
||FSR.Browser.searchVersion(navigator.appVersion)||"unknown";=0A=
FSR.Browser.Platform.os=3DFSR.Browser.searchString(FSR.Browser.dataOS)||"=
unknown";FSR.$exec=3Dfunction(B){if(!B){return B=0A=
}if(window.execScript){window.execScript(B)}else{var =
A=3Ddocument.createElement("script");A.setAttribute("type","text/javascri=
pt");=0A=
A.text=3DB;document.fsr$head.appendChild(A);document.fsr$head.removeChild=
(A)}return B};FSR.Native.UID=3D1;=0A=
FSR.$uid=3D(FSR.Browser.Engine.trident)?function(A){return(A.fsr$uid||(A.=
fsr$uid=3D[FSR.Native.UID++]))[0]=0A=
}:function(A){return =
A.fsr$uid||(A.fsr$uid=3DFSR.Native.UID++)};FSR.Window=3Dnew =
FSR.Native({name:"Window",initialize:function(A){FSR.$uid(A);=0A=
return =
FSR.$extend(A,FSR.Window.Prototype)},afterImplement:function(B,A){window[=
B]=3DA;FSR.Window.Prototype[B]=3DA=0A=
}});FSR.Window.Prototype=3D{fsr$family:{name:"window"}};new =
FSR.Window(window);FSR.Document=3Dnew =
FSR.Native({name:"Document",initialize:function(A){FSR.$uid(A);=0A=
A.fsr$head=3DA.getElementsByTagName("head")[0];A.fsr$html=3DA.getElements=
ByTagName("html")[0];A.fsr$window=3DA.defaultView||A.parentWindow;=0A=
if(FSR.Browser.Engine.trident4){FSR.$try(function(){A.execCommand("Backgr=
oundImageCache",false,true)=0A=
})}return =
FSR.$extend(A,FSR.Document.Prototype)},afterImplement:function(B,A){docum=
ent[B]=3DA;FSR.Document.Prototype[B]=3DA=0A=
}});FSR.Document.Prototype=3D{fsr$family:{name:"document"}};new =
FSR.Document(document);FSR.Array=3D{indexOf:function(B,D,E){var =
A=3DB.length;=0A=
for(var =
C=3D(E<0)?Math.max(0,A+E):E||0;C<A;C++){if(B[C]=3D=3D=3DD){return =
C}}return -1},map:function(B,E,F){var D=3D[];=0A=
for(var C=3D0,A=3DB.length;C<A;C++){D[C]=3DE.call(F,B[C],C,B)}return =
D},associate:function(A,D){var E=3D{},C=3DMath.min(A.length,D.length);=0A=
for(var B=3D0;B<C;B++){E[D[B]]=3DA[B]}return =
E},contains:function(A,B,C){return FSR.Array.indexOf(A,B,C)!=3D-1=0A=
},extend:function(A,D){for(var =
C=3D0,B=3DD.length;C<B;C++){A.push(D[C])}return =
A},include:function(A,B){if(!FSR.Array.contains(A,B)){A.push(B)=0A=
}return A},flatten:function(B){var E=3D[];for(var =
C=3D0,A=3DB.length;C<A;C++){var D=3DFSR.$type(B[C]);if(!D){continue=0A=
}E=3DE.concat((D=3D=3D"array"||D=3D=3D"collection"||D=3D=3D"arguments")?F=
SR.Array.flatten(B[C]):B[C])}return E},slice:function(){var =
A=3DArray.prototype.slice.call(arguments);=0A=
return =
Array.prototype.slice.apply(A.shift(),A)},forEach:function(B,D,E){for(var=
 C=3D0,A=3DB.length;C<A;=0A=
C++){D.call(E,B[C],C,B)}},each:function(B,D,E){for(var =
C=3D0,A=3DB.length;C<A;C++){D.call(E,B[C],C,B)=0A=
}},toJSON:function(A){return =
FSR.JSON.encode(A)}};FSR.$A=3Dfunction(C){if(C.item){var D=3D[];for(var =
B=3D0,A=3DC.length;=0A=
B<A;B++){D[B]=3DC[B]}return D}return =
Array.prototype.slice.call(C)};Function.fsr$implement({fsr$extend:functio=
n(A){for(var B in A){this[B]=3DA[B]=0A=
}return this},fsr$create:function(B){var A=3Dthis;B=3DB||{};return =
function(D){var =
C=3DB.arguments;C=3D(C!=3Dundefined)?FSR.$splat(C):FSR.Array.slice(argume=
nts,(B.event)?1:0);=0A=
if(B.event){C=3DFSR.Array([D||window.event],C)}var E=3Dfunction(){return =
A.apply(B.bind||null,C)};if(B.delay){return setTimeout(E,B.delay)=0A=
}if(B.periodical){return =
setInterval(E,B.periodical)}if(B.attempt){return FSR.$try(E)}return E()}=0A=
},fsr$pass:function(A,B){return =
this.fsr$create({arguments:A,bind:B})},fsr$attempt:function(A,B){return =
this.fsr$create({arguments:A,bind:B,attempt:true})()=0A=
},fsr$bind:function(B,A){return =
this.fsr$create({bind:B,arguments:A})},fsr$bindWithEvent:function(B,A){re=
turn this.fsr$create({bind:B,event:true,arguments:A})=0A=
},fsr$delay:function(B,C,A){return =
this.fsr$create({delay:B,bind:C,arguments:A})()},fsr$periodical:function(=
A,C,B){return this.fsr$create({periodical:A,bind:C,arguments:B})()=0A=
},fsr$run:function(A,B){return =
this.apply(B,FSR.$splat(A))}});Number.fsr$implement({fsr$toInt:function(A=
){return parseInt(this,A||10)=0A=
}});String.fsr$implement({fsr$test:function(A,B){return((typeof =
A=3D=3D"string")?new RegExp(A,B):A).test(this)=0A=
},fsr$contains:function(A,B){return(B)?(B+this+B).indexOf(B+A+B)>-1:this.=
indexOf(A)>-1},fsr$trim:function(){return this.replace(/^\s+|\s+$/g,"")=0A=
},fsr$clean:function(){return this.replace(/\s+/g," =
").fsr$trim()},fsr$camelCase:function(){return =
this.replace(/-\D/g,function(A){return A.charAt(1).toUpperCase()=0A=
})},fsr$hyphenate:function(){return =
this.replace(/[A-Z]/g,function(A){return("-"+A.charAt(0).toLowerCase())=0A=
})},fsr$capitalize:function(){return =
this.replace(/\b[a-z]/g,function(A){return A.toUpperCase()})=0A=
},fsr$escapeRegExp:function(){return =
this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},fsr$toInt:function(A){re=
turn parseInt(this,A||10)=0A=
},fsr$stripScripts:function(B){var A=3D"";var =
C=3Dthis.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){A+=3Dar=
guments[1]+"\n";=0A=
return""});if(B=3D=3D=3Dtrue){FSR.$exec(A)}else{if(FSR.$type(B)=3D=3D"fun=
ction"){B(A,C)}}return C},fsr$substitute:function(A,B){return =
this.replace(B||(/\\?\{([^}]+)\}/g),function(D,C){if(D.charAt(0)=3D=3D"\\=
"){return D.slice(1)=0A=
}return(A[C]!=3Dundefined)?A[C]:""})}});FSR.Hash.fsr$implement({has:Objec=
t.prototype.hasOwnProperty,keyOf:function(B){for(var A in =
this){if(this.hasOwnProperty(A)&&this[A]=3D=3D=3DB){return A=0A=
}}return =
null},extend:function(A){FSR.Hash.each(A,function(C,B){FSR.Hash.set(this,=
B,C)},this);return this=0A=
},combine:function(A){FSR.Hash.each(A,function(C,B){FSR.Hash.include(this=
,B,C)},this);return this=0A=
},erase:function(A){if(this.hasOwnProperty(A)){delete this[A]}return =
this},get:function(A){return(this.hasOwnProperty(A))?this[A]:null=0A=
},set:function(A,B){if(!this[A]||this.hasOwnProperty(A)){this[A]=3DB}retu=
rn this},include:function(B,C){var A=3Dthis[B];=0A=
if(A=3D=3Dundefined){this[B]=3DC}return =
this},toQueryString:function(A){var =
B=3D[];FSR.Hash.each(this,function(F,E){if(A){E=3DA+"["+E+"]"=0A=
}var =
D;switch(FSR.$type(F)){case"object":D=3DFSR.Hash.toQueryString(F,E);break=
;case"array":var C=3D{};=0A=
FSR.Array.each(F,function(H,G){C[G]=3DH});D=3DFSR.Hash.toQueryString(C,E)=
;break;default:D=3DE+"=3D"+encodeURIComponent(F)=0A=
}if(F!=3Dundefined){B.push(D)}});return =
B.join("&")}});FSR.Hash.fsr$alias({keyOf:"indexOf",hasValue:"contains"});=0A=
FSR.Event=3Dnew =
FSR.Native({name:"Event",initialize:function(A,F){F=3DF||window;var =
K=3DF.document;A=3DA||F.event;=0A=
if(A.fsr$extended){return A}this.fsr$extended=3Dtrue;var J=3DA.type;var =
G=3DA.target||A.srcElement;while(G&&G.nodeType=3D=3D3){G=3DG.parentNode=0A=
}if(J.fsr$test(/key/)){var B=3DA.which||A.keyCode;var =
M=3DFSR.Event.Keys.keyOf(B);if(J=3D=3D"keydown"){var D=3DB-111;=0A=
if(D>0&&D<13){M=3D"f"+D}}M=3DM||String.fromCharCode(B).toLowerCase()}else=
{if(J.match(/(click|mouse|menu)/i)){K=3D(!K.compatMode||K.compatMode=3D=3D=
"CSS1Compat")?K.getElementsByTagName("html")[0]:K.body;=0A=
var =
I=3D{x:A.pageX||A.clientX+K.scrollLeft,y:A.pageY||A.clientY+K.scrollTop};=
var =
C=3D{x:(A.pageX)?A.pageX-F.pageXOffset:A.clientX,y:(A.pageY)?A.pageY-F.pa=
geYOffset:A.clientY};=0A=
if(J.match(/DOMMouseScroll|mousewheel/)){var =
H=3D(A.wheelDelta)?A.wheelDelta/120:-(A.detail||0)/3}var =
E=3D(A.which=3D=3D3)||(A.button=3D=3D2);=0A=
var =
L=3Dnull;if(J.match(/over|out/)){switch(J){case"mouseover":L=3DA.relatedT=
arget||A.fromElement;break;=0A=
case"mouseout":L=3DA.relatedTarget||A.toElement}if(!(function(){while(L&&=
L.nodeType=3D=3D3){L=3DL.parentNode=0A=
}return =
true}).fsr$create({attempt:FSR.Browser.Engine.gecko})()){L=3Dfalse}}}}ret=
urn =
FSR.$extend(this,{event:A,type:J,page:I,client:C,rightClick:E,wheel:H,rel=
atedTarget:L,target:G,code:B,key:M,shift:A.shiftKey,control:A.ctrlKey,alt=
:A.altKey,meta:A.metaKey})=0A=
}});FSR.Event.Keys=3Dnew =
FSR.Hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspa=
ce:8,tab:9,"delete":46});=0A=
FSR.Class=3Dnew =
FSR.Native({name:"Class",initialize:function(B){B=3DB||{};var =
A=3Dfunction(E){for(var D in this){this[D]=3DFSR.$unlink(this[D])=0A=
}for(var F in =
FSR.Class.Mutators){if(F=3D=3D"extend"){continue}if(!this[F]){continue}FS=
R.Class.Mutators[F](this,this[F]);=0A=
delete this[F]}this.constructor=3DA;if(E=3D=3D=3DFSR.$empty){return =
this}var =
C=3D(this.initialize)?this.initialize.apply(this,arguments):this;=0A=
if(this.options&&this.options.initialize){this.options.initialize.call(th=
is)}return C};FSR.$extend(A,this);=0A=
A.constructor=3DFSR.Class;A.prototype=3DB;return =
A}});FSR.Class.fsr$implement({fsr$implement:function(){FSR.Class.Mutators=
.Implements(this.prototype,FSR.Array.slice(arguments));=0A=
return =
this}});FSR.Class.Mutators=3D{Implements:function(A,B){FSR.Array.each(FSR=
.$splat(B),function(C){FSR.$extend(A,(FSR.$type(C)=3D=3D"class")?new =
C(FSR.$empty):C)=0A=
})},Extends:function(self,klass){var instance=3Dnew =
klass(FSR.$empty);delete instance.parent;delete instance.parentOf;=0A=
for(var key in instance){var =
current=3Dself[key],previous=3Dinstance[key];if(current=3D=3Dundefined){s=
elf[key]=3Dprevious;=0A=
continue}var =
ctype=3DFSR.$type(current),ptype=3DFSR.$type(previous);if(ctype!=3Dptype)=
{continue}switch(ctype){case"function":if(!arguments.callee.caller){self[=
key]=3Deval("("+String(current).replace(/\bthis\.parent\(\s*(\))?/g,funct=
ion(full,close){return"arguments.callee._parent_.call(this"+(close||", ")=0A=
})+")")}self[key]._parent_=3Dprevious;break;case"object":self[key]=3DFSR.=
$merge(previous,current)}}self.parent=3Dfunction(){return =
arguments.callee.caller._parent_.apply(this,arguments)=0A=
};self.parentOf=3Dfunction(descendant){return =
descendant._parent_.apply(this,FSR.Array.slice(arguments,1))=0A=
}}};FSR.Events=3Dnew =
FSR.Class({fsr$addEvent:function(C,B,A){C=3DFSR.Events.removeOn(C);if(B!=3D=
FSR.$empty){this.$events=3Dthis.$events||{};=0A=
this.$events[C]=3Dthis.$events[C]||[];FSR.Array.include(this.$events[C],B=
);if(A){B.internal=3Dtrue}}return this=0A=
},fsr$addEvents:function(A){for(var B in =
A){this.fsr$addEvent(B,A[B])}return =
this},fsr$fireEvent:function(C,B,A){C=3DFSR.Events.removeOn(C);=0A=
if(!this.$events||!this.$events[C]){return =
this}FSR.Array.each(this.$events[C],function(D){D.fsr$create({bind:this,d=
elay:A,"arguments":B})()=0A=
},this);return =
this},fsr$removeEvent:function(B,A){B=3DFSR.Events.removeOn(B);if(!this.$=
events||!this.$events[B]){return this=0A=
}if(!A.internal){this.$events[B].erase(A)}return =
this},fsr$removeEvents:function(C){for(var D in =
this.$events){if(C&&C!=3DD){continue=0A=
}var B=3Dthis.$events[D];for(var =
A=3DB.length;A--;A){this.fsr$removeEvent(D,B[A])}}return =
this}});FSR.Events.removeOn=3Dfunction(A){return =
A.replace(/^on([A-Z])/,function(B,C){return C.toLowerCase()=0A=
})};FSR.Options=3Dnew =
FSR.Class({setOptions:function(){this.options=3DFSR.$merge.fsr$run(FSR.Ar=
ray.extend([this.options],arguments));=0A=
if(!this.fsr$addEvent){return this}for(var A in =
this.options){if(FSR.$type(this.options[A])!=3D"function"||!(/^on[A-Z]/).=
test(A)){continue=0A=
}this.fsr$addEvent(A,this.options[A]);delete this.options[A]}return =
this}});FSR.Document.fsr$implement({fsr$newElement:function(A,B){if(FSR.B=
rowser.Engine.trident&&B){FSR.Array.each(["name","type","checked"],functi=
on(C){if(!B[C]){return =0A=
}A+=3D" "+C+'=3D"'+B[C]+'"';if(C!=3D"checked"){delete =
B[C]}});A=3D"<"+A+">"}return =
$fsr.element(this.createElement(A)).fsr$set(B)=0A=
},fsr$newTextNode:function(A){return =
this.createTextNode(A)},fsr$getDocument:function(){return this=0A=
},fsr$getWindow:function(){return =
this.defaultView||this.parentWindow},fsr$purge:function(){var =
C=3Dthis.getElementsByTagName("*");=0A=
for(var B=3D0,A=3DC.length;B<A;B++){FSR.Browser.freeMem(C[B])}for(var D =
in FSR.Document.Prototype){document[D]=3Dnull=0A=
}document.fsr$uid=3Dnull;for(var D in =
FSR.Window.Prototype){window[D]=3Dnull}window.fsr$uid=3Dnull;document.fsr=
$head=3Dnull;=0A=
document.fsr$html=3Dnull;document.fsr$window=3Dnull;FSR.Element.Storage=3D=
null}});FSR.Element=3Dnew =
FSR.Native({name:"Element",initialize:function(A,B){var =
C=3DFSR.Element.Constructors.get(A);=0A=
if(C){return C(B)}if(typeof A=3D=3D"string"){return =
document.fsr$newElement(A,B)}return $fsr(A).fsr$set(B)=0A=
},afterImplement:function(A,B){if(!Array[A]){FSR.Elements.fsr$implement(A=
,FSR.Elements.fsr$multi(A))=0A=
}FSR.Element.Prototype[A]=3DB}});FSR.Element.Prototype=3D{fsr$family:{nam=
e:"element"}};FSR.Element.Constructors=3Dnew FSR.Hash;=0A=
FSR.Elements=3Dnew =
FSR.Native({initialize:function(F,B){B=3DFSR.$extend({ddup:true,cash:true=
},B);F=3DF||[];=0A=
if(B.ddup||B.cash){var G=3D{},E=3D[];for(var =
C=3D0,A=3DF.length;C<A;C++){var D=3D$fsr.element(F[C],!B.cash);=0A=
if(B.ddup){if(G[D.fsr$uid]){continue}G[D.fsr$uid]=3Dtrue}E.push(D)}F=3DE}=
return(B.cash)?FSR.$extend(F,this):F=0A=
}});FSR.Elements.fsr$implement({fsr$filter:function(A,B){if(!A){return =
this}return new FSR.Elements(FSR.Array.filter(this,(typeof =
A=3D=3D"string")?function(C){return C.match(A)=0A=
}:A,B))}});FSR.Elements.fsr$multi=3Dfunction(A){return function(){var =
B=3D[];var F=3Dtrue;for(var D=3D0,C=3Dthis.length;=0A=
D<C;D++){var =
E=3Dthis[D][A].apply(this[D],arguments);B.push(E);if(F){F=3D(FSR.$type(E)=
=3D=3D"element")}}return(F)?new FSR.Elements(B):B=0A=
}};FSR.Window.fsr$implement({$fsr:function(B,C){if(B&&B.fsr$family&&B.fsr=
$uid){return B}var A=3DFSR.$type(B);=0A=
return($fsr[A])?$fsr[A](B,C,this.document):null},$$fsr:function(A){if(arg=
uments.length=3D=3D1&&typeof A=3D=3D"string"){return =
this.document.fsr$getElements(A)=0A=
}var F=3D[];var C=3DFSR.Array.flatten(arguments);for(var =
D=3D0,B=3DC.length;D<B;D++){var =
E=3DC[D];switch(FSR.$type(E)){case"element":E=3D[E];=0A=
break;case"string":E=3Dthis.document.fsr$getElements(E,true);break;defaul=
t:E=3Dfalse}if(E){FSR.Array.extend(F,E)=0A=
}}return new FSR.Elements(F)},fsr$getDocument:function(){return =
this.document},fsr$getWindow:function(){return this=0A=
}});$fsr.string=3Dfunction(C,B,A){C=3DA.getElementById(C);return(C)?$fsr.=
element(C,B):null};$fsr.element=3Dfunction(A,D){FSR.$uid(A);=0A=
if(!D&&!A.fsr$family&&!(/^object|embed$/i).test(A.tagName)){var =
B=3DFSR.Element.Prototype;for(var C in B){A[C]=3DB[C]=0A=
}}return A};$fsr.object=3Dfunction(B,C,A){if(B.toElement){return =
$fsr.element(B.toElement(A),C)}return null=0A=
};$fsr.textnode=3D$fsr.whitespace=3D$fsr.window=3D$fsr.document=3DFSR.$ar=
guments(0);FSR.Native.fsr$implement([FSR.Element,FSR.Document],{fsr$getEl=
ement:function(A,B){return $fsr(this.fsr$getElements(A,true)[0]||null,B)=0A=
},fsr$getElements:function(A,D){A=3DA.split(",");var C=3D[];var =
B=3D(A.length>1);FSR.Array.each(A,function(E){var =
F=3Dthis.getElementsByTagName(E.fsr$trim());=0A=
(B)?FSR.Array.extend(C,F):C=3DF},this);return new =
FSR.Elements(C,{ddup:B,cash:!D})}});FSR.Element.Storage=3D{get:function(A=
){return(this[A]||(this[A]=3D{}))=0A=
}};FSR.Element.Inserters=3Dnew =
FSR.Hash({after:function(B,A){if(!A.parentNode){return }var =
C=3DA.nextSibling;=0A=
(C)?A.parentNode.insertBefore(B,C):A.parentNode.appendChild(B)},bottom:fu=
nction(B,A){A.appendChild(B)=0A=
},top:function(B,A){var =
C=3DA.firstChild;(C)?A.insertBefore(B,C):A.appendChild(B)}});FSR.Element.=
Inserters.inside=3DFSR.Element.Inserters.bottom;=0A=
FSR.Element.fsr$implement({fsr$getDocument:function(){return =
this.ownerDocument},fsr$getWindow:function(){return =
this.ownerDocument.fsr$getWindow()=0A=
},fsr$set:function(D,B){switch(FSR.$type(D)){case"object":for(var C in =
D){this.fsr$set(C,D[C])}break;=0A=
case"string":var =
A=3DFSR.Element.Properties.get(D);if(A&&A.set){A.set.apply(this,FSR.Array=
.slice(arguments,1))=0A=
}else{this.fsr$setProperty(D,B)}}return =
this},fsr$inject:function(B,A){FSR.Element.Inserters.get(A||"bottom")(thi=
s,$fsr(B,true));=0A=
return =
this},fsr$dispose:function(){return(this.parentNode)?this.parentNode.remo=
veChild(this):this=0A=
},fsr$setProperty:function(D,E){var =
C=3DFSR.Element.Attributes,B=3DC.Props[D],A=3DFSR.$defined(E);if(B&&C.Boo=
ls[D]){E=3D(E||!A)?true:false=0A=
}else{if(!A){return =
this.removeProperty(D)}}(B)?this[B]=3DE:this.setAttribute(D,E);return =
this},fsr$setProperties:function(A){for(var B in =
A){this.fsr$setProperty(B,A[B])=0A=
}return this}});FSR.Element.Properties=3Dnew =
FSR.Hash;FSR.Element.Properties.html=3D{set:function(){return =
this.innerHTML=3DFSR.Array.flatten(arguments).join("")=0A=
}};FSR.Native.fsr$implement([FSR.Element,FSR.Window,FSR.Document],{fsr$ad=
dListener:function(B,A){if(this.addEventListener){this.addEventListener(B=
,A,false)=0A=
}else{this.attachEvent("on"+B,A)}return =
this},fsr$removeListener:function(B,A){if(this.removeEventListener){this.=
removeEventListener(B,A,false)=0A=
}else{this.detachEvent("on"+B,A)}return =
this},fsr$retrieve:function(B,A){var =
D=3DFSR.Element.Storage.get(this.fsr$uid);=0A=
var C=3DD[B];if(FSR.$defined(A)&&!FSR.$defined(C)){C=3DD[B]=3DA}return =
FSR.$pick(C)},fsr$store:function(B,A){var =
C=3DFSR.Element.Storage.get(this.fsr$uid);=0A=
C[B]=3DA;return this},fsr$eliminate:function(A){var =
B=3DFSR.Element.Storage.get(this.fsr$uid);delete B[A];=0A=
return this}});FSR.Element.Attributes=3Dnew =
FSR.Hash({Props:{html:"innerHTML","class":"className","for":"htmlFor",tex=
t:(FSR.Browser.Engine.trident)?"innerText":"textContent"},Bools:["compact=
","nowrap","ismap","declare","noshade","checked","disabled","readonly","m=
ultiple","selected","noresize","defer"],Camels:["value","accessKey","cell=
Padding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","ro=
wSpan","tabIndex","useMap"]});=0A=
FSR.Browser.freeMem=3Dfunction(A){if(!A){return =
}if(FSR.Browser.Engine.trident&&(/object/i).test(A.tagName)){for(var B =
in A){if(typeof A[B]=3D=3D"function"){A[B]=3DFSR.$empty=0A=
}}FSR.Element.fsr$dispose(A)}if(A.fsr$uid&&A.fsr$removeEvents){A.fsr$remo=
veEvents()}if(A.fsr$uid){A.fsr$uid=3Dnull=0A=
}};(function(A){var =
C=3DA.Bools,B=3DA.Camels;A.Bools=3DC=3DFSR.Array.associate(C,C);FSR.Hash.=
extend(FSR.Hash.combine(A.Props,C),FSR.Array.associate(B,FSR.Array.map(B,=
function(D){return D.toLowerCase()=0A=
})));A.erase("Camels")})(FSR.Element.Attributes);window.fsr$addListener("=
unload",function(){window.fsr$removeListener("unload",arguments.callee);=0A=
window.fsr$fireEvent("unload");document.fsr$purge();if(window.CollectGarb=
age){CollectGarbage()}});=0A=
FSR.Element.Properties.events=3D{set:function(A){this.fsr$addEvents(A)}};=
FSR.Native.fsr$implement([FSR.Element,FSR.Window,FSR.Document],{fsr$addEv=
ent:function(E,G){var H=3Dthis.fsr$retrieve("events",{});=0A=
H[E]=3DH[E]||{keys:[],values:[]};if(FSR.Array.contains(H[E].keys,G)){retu=
rn this}H[E].keys.push(G);=0A=
var =
F=3DE,A=3DFSR.Element.Events.get(E),C=3DG,I=3Dthis;if(A){if(A.onAdd){A.on=
Add.call(this,G)}if(A.condition){C=3Dfunction(J){if(A.condition.call(this=
,J)){return G.call(this,J)=0A=
}return false}}F=3DA.base||F}var D=3Dfunction(){return G.call(I)};var =
B=3DFSR.Element.NativeEvents[F]||0;=0A=
if(B){if(B=3D=3D2){D=3Dfunction(J){J=3Dnew =
FSR.Event(J,I.fsr$getWindow());if(C.call(I,J)=3D=3D=3Dfalse){J.stop()=0A=
}}}if(F!=3D"unload"){this.fsr$addListener(F,D)}}H[E].values.push(D);retur=
n this},fsr$removeEvent:function(D,C){var =
B=3Dthis.fsr$retrieve("events");=0A=
if(!B||!B[D]){return this}var =
G=3DFSR.Array.indexOf(B[D].keys,C);if(G=3D=3D-1){return this}var =
A=3DB[D].keys.splice(G,1)[0];=0A=
var F=3DB[D].values.splice(G,1)[0];var =
E=3DFSR.Element.Events.get(D);if(E){if(E.onRemove){E.onRemove.call(this,C=
)=0A=
}D=3DE.base||D}return(FSR.Element.NativeEvents[D])?this.fsr$removeListene=
r(D,F):this},fsr$addEvents:function(A){for(var B in =
A){if(A.hasOwnProperty(B)){this.fsr$addEvent(B,A[B])=0A=
}}return this},fsr$removeEvents:function(B){var =
A=3Dthis.fsr$retrieve("events");if(!A){return this}if(!B){for(var C in =
A){if(A.hasOwnProperty(C)){this.fsr$removeEvents(C)=0A=
}}A=3Dnull}else{if(A[B]){while(A[B].keys[0]){this.fsr$removeEvent(B,A[B].=
keys[0])}A[B]=3Dnull}}return this=0A=
},fsr$fireEvent:function(D,B,A){var =
C=3Dthis.fsr$retrieve("events");if(!C||!C[D]){return =
this}FSR.Array.each(C[D].keys,function(E){E.fsr$create({bind:this,delay:A=
,"arguments":B})()=0A=
},this);return =
this}});FSR.Element.NativeEvents=3D{click:2,dblclick:2,mouseup:2,mousedow=
n:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mo=
usemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,=
blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,=
resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scr=
oll:1};=0A=
(function(){FSR.$check=3Dfunction(A){var =
B=3DA.relatedTarget;if(B=3D=3Dundefined){return =
true}if(B=3D=3D=3Dfalse){return false=0A=
}return(FSR.$type(this)!=3D"document"&&B!=3Dthis&&B.prefix!=3D"xul"&&!thi=
s.fsr$hasChild(B))};FSR.Element.Events=3Dnew =
FSR.Hash({mouseenter:{base:"mouseover",condition:FSR.$check},mouseleave:{=
base:"mouseout",condition:FSR.$check},mousewheel:{base:(FSR.Browser.Engin=
e.gecko)?"DOMMouseScroll":"mousewheel"}})=0A=
})();FSR.Element.fsr$implement({fsr$hasChild:function(A){A=3D$fsr(A,true)=
;return(!!A&&FSR.Array.contains(FSR.$A(this.getElementsByTagName(A.tagNam=
e)),A))=0A=
}});(function(){FSR.Native.fsr$implement([FSR.Document,FSR.Window],{fsr$g=
etSize:function(){var C=3Dthis.fsr$getWindow();=0A=
if(FSR.Browser.Engine.presto||FSR.Browser.Engine.webkit){return{x:C.inner=
Width,y:C.innerHeight}}var B=3DA(this);=0A=
return{x:B.clientWidth,y:B.clientHeight}},fsr$getScroll:function(){var =
C=3Dthis.fsr$getWindow();var B=3DA(this);=0A=
return{x:C.pageXOffset||B.scrollLeft,y:C.pageYOffset||B.scrollTop}},fsr$g=
etScrollSize:function(){var C=3DA(this);=0A=
var =
B=3Dthis.fsr$getSize();return{x:Math.max(C.scrollWidth,B.x),y:Math.max(C.=
scrollHeight,B.y)}}});=0A=
function A(B){var =
C=3DB.fsr$getDocument();return(!C.compatMode||C.compatMode=3D=3D"CSS1Comp=
at")?C.getElementsByTagName("html")[0]:C.body=0A=
}})();FSR.Element.Events.domready=3D{onAdd:function(A){if(FSR.Browser.loa=
ded){A.call(this)}}};(function(){var =
A=3Dfunction(){if(FSR.Browser.loaded){return =0A=
}FSR.Browser.loaded=3Dtrue;window.fsr$fireEvent("domready");document.fsr$=
fireEvent("domready")};switch(FSR.Browser.Engine.name){case"webkit":(func=
tion(){(FSR.Array.contains(["loaded","complete"],document.readyState))?A(=
):arguments.callee.fsr$delay(50)=0A=
})();break;case"trident":var =
B=3Ddocument.createElement("div");(function(){(FSR.$try(function(){B.doSc=
roll("left");=0A=
return =
$fsr(B).fsr$inject(document.body).fsr$set("html","temp").fsr$dispose()}))=
?A():arguments.callee.fsr$delay(50)=0A=
})();break;default:window.fsr$addEvent("load",A);document.fsr$addEvent("D=
OMContentLoaded",A)}})();=0A=
FSR.JSON=3Dnew =
FSR.Hash({encode:function(B){switch(FSR.$type(B)){case"string":return'"'+=
B.replace(/[\x00-\x1f\\"\\;]/g,FSR.JSON.$replaceChars)+'"';=0A=
case"array":return"["+String(FSR.Array.map(B,FSR.JSON.encode).fsr$filter(=
FSR.$defined))+"]";case"object":case"hash":var A=3D[];=0A=
FSR.Hash.each(B,function(E,D){var =
C=3DFSR.JSON.encode(E);if(C){A.push(FSR.JSON.encode(D)+":"+C)}});=0A=
return"{"+A+"}";case"number":case"boolean":return String(B);case =
false:return"null"}return =
null},$specialChars:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\=
r",'"':'\\"',"\\":"\\\\"},$replaceChars:function(A){return =
FSR.JSON.$specialChars[A]||"\\u00"+Math.floor(A.charCodeAt()/16).toString=
(16)+(A.charCodeAt()%16).toString(16)=0A=
},decode:function(string,secure){if(FSR.$type(string)!=3D"string"||!strin=
g.length){return null}if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u =
\n\r\t]*$/).test(string.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""))=
){return null=0A=
}return =
eval("("+string+")")}});FSR.Native.fsr$implement([FSR.Hash,Number],{fsr$t=
oJSON:function(){return FSR.JSON.encode(this)=0A=
}});FSR.Cookie=3Dnew =
FSR.Class({Implements:FSR.Options,options:{path:false,domain:false,durati=
on:false,secure:false,document:document},initialize:function(B,A){this.ke=
y=3DB;=0A=
this.setOptions(A)},write:function(B){if(FSR.encode){B=3DencodeURICompone=
nt(B)}if(this.options.domain){B+=3D"; domain=3D"+this.options.domain=0A=
}if(this.options.path){B+=3D"; =
path=3D"+this.options.path}if(this.options.duration){var A=3Dnew Date();=0A=
A.setTime(A.getTime()+this.options.duration*24*60*60*1000);B+=3D"; =
expires=3D"+A.toGMTString()}if(this.options.secure){B+=3D"; secure"=0A=
}this.options.document.cookie=3Dthis.key+"=3D"+B;return =
this},read:function(){var =
A=3Dthis.options.document.cookie.match("(?:^|;)\\s*"+this.key.fsr$escapeR=
egExp()+"=3D([^;]*)");=0A=
var =
B=3D(A)?A[1]:null;if(FSR.encode){B=3D(B)?decodeURIComponent(B):null}retur=
n B},dispose:function(){new =
FSR.Cookie(this.key,FSR.$merge(this.options,{duration:-1})).write("");=0A=
return this}});FSR.Cookie.write=3Dfunction(B,C,A){return new =
FSR.Cookie(B,A).write(C)};FSR.Cookie.read=3Dfunction(A){return new =
FSR.Cookie(A).read()=0A=
};FSR.Cookie.dispose=3Dfunction(B,A){return new =
FSR.Cookie(B,A).dispose()};FSR.Hash.Cookie=3Dnew =
FSR.Class({Extends:FSR.Cookie,options:{autoSave:true},initialize:function=
(B,A){this.parent(B,A);=0A=
this.load()},save:function(){var =
A=3DFSR.JSON.encode(this.hash);if(!A||A.length>4096){return =
false}if(A=3D=3D"{}"){this.dispose()=0A=
}else{this.write(A)}return true},load:function(){this.hash=3Dnew =
FSR.Hash(FSR.JSON.decode(this.read(),true));=0A=
return this}});FSR.Hash.Cookie.fsr$implement({get:function(A){return =
this.hash.get(A)},set:function(A,B){this.hash.set(A,B);=0A=
this.save();return =
this},erase:function(A){this.hash.erase(A);this.save();return =
this},empty:function(){this.hash.empty();=0A=
this.save();return this}});FSR.Asset=3Dnew FSR.Hash({src:function(A){var =
B=3DA;if(A.substring(0,2)=3D=3D"//"){B=3Ddocument.location.protocol+B=0A=
}return =
B},javascript:function(F,D){D=3DFSR.$extend({onload:FSR.$empty,document:d=
ocument,check:FSR.$lambda(true)},D);=0A=
var B=3Dnew =
FSR.Element("script",{src:FSR.Asset.src(F),type:"text/javascript"});var =
E=3DD.onload.fsr$bind(B),A=3DD.check,G=3DD.document;=0A=
delete D.onload;delete D.check;delete =
D.document;B.fsr$addEvents({load:E,readystatechange:function(){if(FSR.Bro=
wser.Engine.trident&&FSR.Array.contains(["loaded","complete"],this.readyS=
tate)){E()=0A=
}}}).fsr$setProperties(D);if(FSR.Browser.Engine.webkit419){var =
C=3D(function(){if(!FSR.$try(A)){return =0A=
}FSR.$clear(C);E()}).fsr$periodical(50)}return =
B.fsr$inject(document.getElementsByTagName("head")[0])=0A=
},image:function(C,B){B=3DFSR.$merge({onload:FSR.$empty,onabort:FSR.$empt=
y,onerror:FSR.$empty},B);var D=3Dnew Image();=0A=
var A=3D$fsr(D)||new =
FSR.Element("img");FSR.Array.each(["load","abort","error"],function(E){va=
r F=3D"on"+E;=0A=
var G=3DB[F];delete B[F];D[F]=3Dfunction(){if(!D){return =
}if(!A.parentNode){A.width=3DD.width;A.height=3DD.height=0A=
}D=3DD.onload=3DD.onabort=3DD.onerror=3Dnull;G.fsr$delay(1,A,A);A.fsr$fir=
eEvent(E,A,1)}});D.src=3DFSR.Asset.src(C);=0A=
if(A.src!=3DD.src){A.src=3DD.src}if(D&&D.complete){D.onload.fsr$delay(1)}=
return A.fsr$setProperties(B)=0A=
},css:function(B,A){return new =
FSR.Element("link",FSR.$merge({rel:"stylesheet",media:"screen",type:"text=
/css",href:FSR.Asset.src(B)},A)).fsr$inject(document.getElementsByTagName=
("head")[0])=0A=
}});FSR.Browser.set("Popup",new =
FSR.Class({Implements:[FSR.Options,FSR.Events],options:{width:500,height:=
300,x:50,y:50,toolbar:0,location:0,directories:0,status:0,scrollbars:"aut=
o",resizable:1,name:"popup",blur:false,menubar:1},initialize:function(B,A=
){this.url=3DB||false;=0A=
this.setOptions(A);if(this.url){this.openWin()}},openWin:function(B){B=3D=
B||this.url;var =
A=3D"toolbar=3D"+this.options.toolbar+",location=3D"+this.options.locatio=
n+",directories=3D"+this.options.directories+",status=3D"+this.options.st=
atus+",scrollbars=3D"+this.options.scrollbars+",resizable=3D"+this.option=
s.resizable+",width=3D"+this.options.width+",height=3D"+this.options.heig=
ht+",top=3D"+this.options.y+",left=3D"+this.options.x+",menubar=3D"+this.=
options.menubar;=0A=
this.window=3Dwindow.open(B,this.options.name,A);if(!this.window){this.wi=
ndow=3Dwindow.open("",this.options.name,A);=0A=
this.window.location.href=3DB}if(!this.options.blur){this.focus.fsr$delay=
(100,this)}else{this.window.blur()=0A=
}return =
this},focus:function(){if(this.window){this.window.focus()}else{if(this.f=
ocusTries<10){this.focus.delay(100,this)=0A=
}else{this.blocked=3Dtrue;this.fsr$fireEvent("onBlock")}}return =
this},focusTries:0,blocked:null,close:function(){this.window.close();=0A=
return this}}));FSR.RemoteEvent=3Dnew =
FSR.Class({Implements:[FSR.Events,FSR.Options],options:{host:"",path:"",u=
rl:""},initialize:function(B,A){this.setOptions(A);=0A=
this.event=3DB;this.ver=3D0},onStateChange:function(A){if(!this.running){=
return }this.running=3Dfalse;this.status=3D0;=0A=
FSR.$try(function(){this.status=3DA}.fsr$bind(this));if(this.isSuccess())=
{this.success()}else{this.failure()=0A=
}},isSuccess:function(){return(this.status=3D=3D1)},success:function(){th=
is.onSuccess()},onSuccess:function(){this.fsr$fireEvent("success")=0A=
},failure:function(){this.onFailure()},onFailure:function(){if(this.ver<3=
){this._send()}else{this.fsr$fireEvent("failure")=0A=
}},send:function(A){this.values=3DA;this._send()},_send:function(){this.r=
unning=3Dtrue;this.ver=3Dthis.ver+1;=0A=
var A=3Dthis;var C=3DFSR.Hash.toQueryString(this.values);var =
B=3Ddocument.location.protocol+"//"+this.options.host+this.options.path+t=
his.options.url+"?event=3D"+this.event+"&"+C+"&uid=3D"+FSR.$time()+"&ver=3D=
"+this.ver;=0A=
new =
FSR.Asset.image(B,{onload:function(D){A.onStateChange(1)},onerror:functio=
n(){A.onStateChange(0)=0A=
},onabort:function(){A.onStateChange(0)}});return this}});FSR.CPPS=3Dnew =
FSR.Hash({set:function(B,C,D){var D=3D(D||FSR.c());=0A=
var A=3DD.get("cp")||{};A[B]=3DC;D.set("cp",A)},get:function(B,C){var =
C=3D(C||FSR.c());var A=3DC.get("cp")||{};=0A=
return A[B]},erase:function(B,C){var C=3D(C||FSR.c());var =
A=3DC.get("cp")||{};delete A[B];C.set("cp",A)=0A=
},append:function(B,C,D){var D=3D(D||FSR.c());var =
A=3DD.get("cp")||{};A[B]=3DA[B]?A[B]+","+C:C;D.set("cp",A)=0A=
},toQueryString:function(M){var M=3D(M||FSR.c());var K=3DM.get("sd");var =
J=3DFSR.$defined(K)?FSR.surveydefs[K]:FSR.sd;=0A=
var F=3DM.get("browser");var A=3D{browser:FSR.Browser.Type.name+" =
"+FSR.Browser.Type.version,os:FSR.Browser.Platform.os,pv:M.get("pv"),url:=
M.get("c")||"",ref_url:M.get("ru")||"",locale:M.get("l")||"",site:FSR.sit=
e.name||"",section:J.section||"",referrer:M.get("r")||"",terms:M.get("st"=
)||"",sessionid:M.get("rid")||"",replay_id:M.get("mid")||"",flash:FSR.Bro=
wser.Plugins.Flash.version};=0A=
if(FSR.$P().analytics.google){var =
H=3DFSR.Cookie.read("__utma",{path:"/",domain:FSR.site.domain||false});=0A=
var =
E=3DFSR.Cookie.read("__utmz",{path:"/",domain:FSR.site.domain||false});if=
(H&&H!=3D""){var C=3DH.split(".");=0A=
A.first=3DC[2];A.last=3DC[3];A.current=3DC[4];A.visits=3DC[5]}if(E&&E!=3D=
""){var B;if(B=3DE.match(/utmgclid=3D([^\|]*)/)){A.source=3D"Google";=0A=
A.campaign=3D"Google =
Adwords";A.medium=3D"cpc"}else{if(B=3DE.match(/utmcsr=3D([^\|]*)/)){A.sou=
rce=3DB[1]}if(B=3DE.match(/utmccn=3D([^\|]*)/)){A.campaign=3DB[1]=0A=
}if(B=3DE.match(/utmcmd=3D([^\|]*)/)){A.medium=3DB[1]}}if(B=3DE.match(/ut=
mctr=3D([^\|]*)/)){A.keyword=3DB[1]}}}var G=3DM.get("cp")||{};=0A=
var D=3Dnew FSR.Hash(G);var I=3DA||{};for(k in I){D.set(k,I[k])}var =
L=3DD.toQueryString("cpp");return L=0A=
}});FSR.Service=3Dnew =
FSR.Class({Implements:[FSR.Events,FSR.Options],options:{},initialize:func=
tion(A){this.setOptions(A)=0A=
},onStateChange:function(A){if(!this.running){return =
}this.running=3Dfalse;this.status=3D0;FSR.$try(function(){this.status=3DA=0A=
}.fsr$bind(this));if(this.status=3D=3D1){this.success()}else{if(this.stat=
us=3D=3D0){this.failure()}else{if(this.status=3D=3D-1){this.error()=0A=
}}}},success:function(){this.onSuccess()},onSuccess:function(){this.fsr$f=
ireEvent("complete").fsr$fireEvent("success")=0A=
},failure:function(){this.onFailure()},onFailure:function(){this.fsr$fire=
Event("complete").fsr$fireEvent("failure")=0A=
},error:function(){this.onError()},onError:function(){this.fsr$fireEvent(=
"complete").fsr$fireEvent("error")=0A=
},ping:function(){this.running=3Dtrue;var B=3Dthis;var =
D=3Dthis.options.params||{};D.protocol=3Ddocument.location.protocol;=0A=
D.uid=3DFSR.$time();var A=3DFSR.Hash.toQueryString(D);var =
C=3Ddocument.location.protocol+"//"+this.options.host+this.options.path+t=
his.options.url+"?"+A;=0A=
new =
FSR.Asset.image(C,{onload:function(E){if(E.width=3D=3DB.options.success){=
B.onStateChange(1)}else{B.onStateChange(0)=0A=
}},onerror:function(){B.onStateChange(-1)},onabort:function(){B.onStateCh=
ange(0)}});return this},cancel:function(){if(!this.running){return this=0A=
}this.running=3Dfalse;this.fsr$fireEvent("cancel");return =
this}});FSR.RR=3Dnew FSR.Hash({hasRR:function(){if(typeof =
robotreplay!=3D"undefined"){return true=0A=
}return false},setOKTransmit:function(){if(this.hasRR()){var =
A=3Drobotreplay.Session.rr_group_session_id;=0A=
robotreplay.Log.setOKTransmit();FSR.c().set("mid",A)}},recordEvent:functi=
on(A,B){if(this.hasRR()){robotreplay.Log.push(A,B)=0A=
}},cancelRecord:function(){if(this.hasRR()){robotreplay.Log.cancelRecord(=
)}},getPosition:function(A){if(this.hasRR()){return =
robotreplay.Dom.getAbsoluteCoords(document.getElementById(A))=0A=
}else{return{position:false}}}});FSR.services=3D{survey:{host:"survey.for=
eseeresults.com",path:"/survey",url:"/display"},check:{host:"controller2.=
foreseeresults.com",path:"/fsrSurvey",url:"/OTCImg",success:3},event:{hos=
t:"events.foreseeresults.com",path:"/rec",url:"/process"},domain:{host:"s=
urvey.foreseeresults.com",path:"/survey",url:"/FSRImg",success:3}};=0A=
FSR.UnsupportedBrowsers=3D{Explorer:5.5,Safari:2,Firefox:1.4};FSR.Support=
edPlatforms=3D{win32:true,mac:true,linux:true,iphone:false,blackberry:fal=
se,wince:false,other:false};=0A=
FSR.$P=3Dfunction(){return FSR.properties};FSR.c=3Dfunction(){return new =
FSR.Hash.Cookie("fsr."+(FSR.site.cookie||"s"),{path:"/",domain:FSR.site.d=
omain||false})=0A=
};FSR.log=3Dfunction(D,C){if(!FSR.$P().events.enabled){return }var =
E=3DFSR.c();var A=3DE.get("sd");var =
B=3DFSR.$defined(A)?FSR.surveydefs[A]:FSR.sd;=0A=
new =
FSR.RemoteEvent("logit",{host:FSR.services.event.host,path:FSR.services.e=
vent.path,url:FSR.services.event.url}).send({cid:FSR.id,rid:E.get("rid")|=
|"",cat:B.name,sec:B.section||"",type:E.get("q")||"",site:FSR.site.name||=
"",lang:E.get("l")||FSR.$S.locale||"",msg:D,param:C,tms:new =
Date().getTime(),tmz:new Date().getTimezoneOffset()*60000})=0A=
};FSR.popNow=3Dfunction(A){FSR.pop(A,"now")};FSR.popLater=3Dfunction(A){F=
SR.pop(A,"later")};FSR.popImmediate=3Dfunction(){FSR.pop(100,"now")=0A=
};FSR.popFeedback=3Dfunction(){FSR.controller.execute(FSR.controller.popF=
eedback)};FSR.run=3Dfunction(){FSR.controller.execute(FSR.controller.run)=0A=
};FSR.pop=3Dfunction(C,A,B){FSR.controller.execute(FSR.controller.popAtta=
ch,{sp:C,when:A,qualifier:B,invite:false})=0A=
};FSR.invite=3Dfunction(C,A,B){FSR.controller.execute(FSR.controller.popA=
ttach,{sp:C,when:A,qualifier:B,invite:true})=0A=
};FSR.close=3Dfunction(){FSR.controller.cancelTracker()};var =
ForeSee=3D{CPPS:{fsr$set:function(A,B){FSR.CPPS.set(A,B)=0A=
}}};FSR.generateid=3Dfunction(){var A=3D"";A=3D((new =
Date())-0)+"_"+Math.round(Math.random()*1000000);return A=0A=
};FSR.$S=3D{};FSR.$M=3D{load:0,run:0};var fsr$ls=3Dnew =
Date().getTime();FSR.accepted=3Dfunction(A){FSR.language(A);=0A=
FSR.controller.accepted();FSR.idhtml.hide()};FSR.declined=3Dfunction(A){F=
SR.language(A);FSR.controller.declined();=0A=
FSR.idhtml.hide()};FSR.qualified=3Dfunction(){FSR.controller.qualified();=
FSR.idhtml.hide()};FSR.language=3Dfunction(A){if(!A){return =0A=
}FSR.$S.locale=3DA;FSR.c().set("l",A)};FSR.qualify=3Dfunction(A){FSR.$S.c=
anceled=3Dfalse;if(A){FSR.$S.qid=3DA;=0A=
FSR.c().set("q",A)}};FSR.cancel=3Dfunction(){FSR.$S.canceled=3Dtrue};FSR.=
$S.canceled=3Dfalse;FSR.SurveyController=3Dnew =
FSR.Class({Implements:FSR.Options,options:{},initialize:function(A){this.=
setOptions(A);=0A=
this.queue=3Dnew =
Array();FSR.controller=3Dthis},load:function(){if(!FSR.auto){return =
}this.execute(this.run,true)=0A=
},execute:function(D,E){if(!FSR.enabled){return =
}if(window!=3Dwindow.top){return }var B=3Dthis;if(this.isloaded){var =
A=3Dnew Date().getTime();=0A=
if(FSR.$S.message){fsr$dbug.log(FSR.$S.message)}if(this.v!=3D0){(function=
(){D.call(B,E)}).fsr$delay(1)=0A=
}var C=3Dnew Date().getTime();FSR.$M.run=3DFSR.$M.run+(C-A);return }var =
A=3Dnew Date().getTime();this.queue.push({fn:D,params:E});=0A=
if(!this.loading){this.loading=3Dtrue;new =
FSR.Asset.javascript((FSR.js_files||FSR.files)+"foresee-surveydef.js",{id=
:"foresee-surveydef",onload:function(){fsr$dbug.log("Survey Definitions =
Loaded");=0A=
B.loaded()}})}var C=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(C-A)},loaded:function(){var =
B=3Dnew Date().getTime();=0A=
this.init();this.setup();this.isloaded=3Dtrue;FSR.sd=3Dthis.sd=3Dthis.cd;=
FSR.sdi=3Dthis.sdi=3Dthis.cdi;var A=3Dthis;=0A=
this.timer=3D(function(){A.check()}).fsr$periodical(500);var C=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(C-B)=0A=
},check:function(){var A=3Dnew Date().getTime();var =
C=3Dthis.queue.shift();if(C){this.execute(C.fn,C.params);=0A=
return }FSR.$clear(this.timer);var B=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(B-A)},run:function(D){var =
A=3Dnew Date().getTime();=0A=
if(D){FSR.c().erase("pa")}var =
C=3Dfalse;FSR.sd=3Dthis.sd=3Dthis.pd;FSR.sdi=3Dthis.sdi=3Dthis.pdi;if(thi=
s.sd){C=3Dthis.process()=0A=
}FSR.sd=3Dthis.sd=3Dthis.cd;FSR.sdi=3Dthis.sdi=3Dthis.cdi;if(this.sd){thi=
s.processBefore();if(!C){C=3Dthis.process()=0A=
}this.processAfter();this.processCPPS()}this.processEvents();var B=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(B-A)=0A=
},process:function(){if(this.v<0){return =
false}if(this.processTracker()){return =
true}if(this.processInvite()){return true=0A=
}return false},processBefore:function(){if(this.v<0){return false}var =
B=3DFSR.c();B.set("cd",this.sd.idx);=0A=
if(!B.get("lk")){var =
A=3DB.get("pn");if(!FSR.$defined(A)||A>=3Dthis.sd.idx){B.set("sd",this.sd=
.idx)}}},processAfter:function(){if(this.v<0){return false=0A=
}if(this.inviteAccepted()&&!this.surveyShown()){this.setupLinks("pop",thi=
s.popLink);this.setupLinks("cancel",this.cancelTracker)=0A=
}if(!this.inviteAccepted()){this.setupLinks("attach",this.popAttach)}if(t=
his.trackerRunning()){this.setupLinks("pause",this.pause)=0A=
}},processTracker:function(){if(!this.shouldTrack()){return =
false}if(!this.trackerRunning()){return false=0A=
}var A=3Dthis;(function(){A.launch("tracker")}).fsr$delay(1);return =
true},shouldTrack:function(){var A=3Dthis.sd;=0A=
if(!A.ls){return =
false}if(A.type=3D=3D"previous"){if(!(A.pop.when=3D=3D"later")||!(A.pop.a=
fter=3D=3D"leaving-section")){return false=0A=
}}else{if(A.type=3D=3D"current"){if(!(A.pop.when=3D=3D"now")){return =
false}}}return =
true},trackerRunning:function(){if(FSR.$defined(FSR.c().get("t"))){return=
 true=0A=
}return false},processInvite:function(){var B=3Dnew Date().getTime();var =
C=3Dtrue;if(this.inviteShown()){C=3Dfalse=0A=
}if(!this.shouldInvite()){C=3Dfalse}if(C){var =
A=3Dthis;A.processAlt();(function(){A.launch("invite")}).fsr$delay(1)=0A=
}var D=3Dnew Date().getTime();FSR.$M.run=3DFSR.$M.run+(D-B);return =
C},shouldInvite:function(){var D=3Dthis.sd;=0A=
if(D.invite=3D=3D=3Dfalse){return false}if(D.invite.include){var =
B=3Dtrue;if(B){if(D.invite.include.local){B=3Dthis.matchList(D.invite.inc=
lude.local,decodeURIComponent(document.location.href))=0A=
}if(!B){this.updateExclude();return false}}}if(D.invite.exclude){var =
C=3Dfalse;if(!C){C=3Dthis.matchList(D.invite.exclude.local||[],decodeURIC=
omponent(document.location.href))=0A=
}if(!C){C=3Dthis.matchList(D.invite.exclude.referrer||[],decodeURICompone=
nt(document.referrer))}if(C){this.updateExclude();=0A=
return false}}var =
A=3D(D.type=3D=3D"previous")?"onexit":"onentry";if(D.invite&&D.invite.whe=
n!=3DA){return false=0A=
}if(!D.ls){return false}if(!(D.sv>0&&D.sv<=3DD.criteria.sp)){return =
false}return true},processAlt:function(){var G=3Dthis.sd;=0A=
if(G.alt){var F;var C=3DFSR.$random(0,100);var E=3D0;var =
B=3DG.alt;for(var D=3D0,A=3DB.length;D<A;D++){E+=3DB[D].sp;=0A=
if(C<=3DE){if(B[D].url){G.pop.what=3D"url";G.pop.url=3DB[D].url}else{if(B=
[D].script){G.pop.what=3D"script";=0A=
G.pop.script=3DB[D].script}}delete =
G.invite;break}}}},inviteShown:function(){if(FSR.$defined(FSR.c().get("i"=
))){return true=0A=
}return =
false},inviteAccepted:function(){if(FSR.c().get("i")=3D=3D1){return =
true}return =
false},surveyShown:function(){if(FSR.$defined(FSR.c().get("s"))){return =
true=0A=
}return =
false},launch:function(A){if(A=3D=3D"invite"){this.attemptInvite()}else{i=
f(A=3D=3D"tracker"){this.popImmediate()=0A=
}}},matchList:function(C,B){for(var =
A=3D0,D=3DC.length;A<D;A++){if(B.match(C[A])){return true}}return false=0A=
},updateExclude:function(){var B=3Dthis.sd;var C=3DFSR.c();var =
A=3DC.get("lc");B.ec=3DA["d"+B.idx].e=3D(A["d"+B.idx].e||0)+1;=0A=
C.set("lc",A)},attemptInvite:function(){var A=3Dthis;var =
B=3D"invite";if(FSR.$P().mode=3D=3D"hybrid"){B=3D"checkDomain"=0A=
}new =
FSR.Service({host:FSR.services.check.host,path:FSR.services.check.path,ur=
l:FSR.services.check.url,success:FSR.services.check.success,onSuccess:fun=
ction(){A[B]()=0A=
},onFailure:function(){},onError:function(){A[B]()}}).ping()},checkDomain=
:function(){var A=3Dthis;var B=3D"invite";=0A=
new =
FSR.Service({host:FSR.services.domain.host,path:FSR.services.domain.path,=
url:FSR.services.domain.url,params:{"do":0},success:FSR.services.check.su=
ccess,onSuccess:function(){A[B]()=0A=
},onFailure:function(){}}).ping()},setupLinks:function(F,E){if(!this.sd.l=
inks){return }var G=3D0;var C=3Dthis.sd.links[F]||[];=0A=
for(var D=3D0,B=3DC.length;D<B;D++){var =
A=3Dthis.link(C[D].tag,C[D].attribute,C[D].patterns||[],C[D].qualifier,E,=
{sp:C[D].sp,when:C[D].when,invite:C[D].invite});=0A=
G=3DG+A}fsr$dbug.log("linked ("+F+"): =
"+G)},link:function(A,F,E,D,C,G){var B=3Dthis;var =
H=3D0;FSR.Array.each($$fsr(A),function(K){for(var J=3D0,I=3DE.length;=0A=
J<I;J++){if(K[F]&&(K[F]+"").match(E[J])){H++;K.fsr$addEvents({click:funct=
ion(){if(D){FSR.qualify(D)=0A=
}C.call(B,G)}});break}}});return =
H},init:function(){fsr$dbug.log("=3D=3D=3D=3D=3D=3DINIT=3D=3D=3D=3D=3D=3D=
=3D");this.ralive=3Dtrue;=0A=
var =
P=3DFSR.Cookie.read("fsr.a",{path:"/",domain:FSR.site.domain||false});if(=
!this.trackerRunning()){this.cancelAlive()=0A=
}if(!P){fsr$dbug.log("Exit: Cookies are not enabled");this.v=3D0;return =
}var R=3DFSR.c();var G=3DR.get("v");=0A=
if(!FSR.$defined(G)){G=3D1;var S=3DFSR.Browser;fsr$dbug.log("browser: =
"+S.Type.name+" "+S.Type.version+" on "+S.Platform.os);=0A=
if(!FSR.SupportedPlatforms[S.Platform.name]){FSR.$S.message=3D"Exit: =
Platform not =
surpported";G=3D0}if(FSR.UnsupportedBrowsers[S.Type.name]){if(S.Type.vers=
ion<=3DFSR.UnsupportedBrowsers[S.Type.name]){FSR.$S.message=3D"Exit: =
Browser not surpported";=0A=
G=3D0}}if(this.exclude()){FSR.$S.message=3D"Exit: Met exclude =
criteria";G=3D0}var =
N=3DFSR.Cookie.read("fsr.o",{path:"/",domain:FSR.site.domain||false});=0A=
if(N){FSR.$S.message=3D"Exit: Optout Cookie Found";G=3D0}var O=3Dnew =
FSR.Hash.Cookie("fsr.r",{path:"/",domain:FSR.site.domain||false});=0A=
var M;if(M=3DO.get("d")){FSR.$S.message=3D"Persistent Cookie Found: =
"+M;G=3D-1}var L=3DFSR.$random(0,100);=0A=
if(G=3D=3D1&&!(L<=3Dthis.pool())){FSR.$S.message=3D"Not in pool: =
"+L;G=3D-2}R.set("v",G);var K;if(K=3DO.get("i")){var H=3Dnew Date();=0A=
if(H.getTime()<O.get("e")){FSR.rid=3DK}}if(!FSR.rid){if(FSR.$P().events.e=
nabled&&FSR.$P().events.id){FSR.rid=3DFSR.generateid()=0A=
}}if(FSR.rid){R.set("rid",FSR.rid)}var =
A;if(A=3DO.get("s")){R.set("sd",A);R.set("lk",1)}var I=3Dthis;=0A=
this.dhtml_win=3D1;new =
FSR.Asset.javascript((FSR.js_files||FSR.files)+"foresee-dhtml-popup.js",{=
id:"foresee-dhtml-popup",onload:function(){I.dhtml_win=3D2=0A=
}});this.dhtml_css=3D1;new =
FSR.Asset.css((FSR.image_files||FSR.files)+FSR.$P().invite.css);if(FSR.$P=
().qualifier.css&&(FSR.$P().qualifier.css!=3DFSR.$P().invite.css)){new =
FSR.Asset.css((FSR.image_files||FSR.files)+FSR.$P().qualifier.css)=0A=
}this.dhtml_css=3D2;if(document.referrer&&document.referrer!=3D""){if(FSR=
.$P().meta.ref_url){R.set("ru",document.referrer)=0A=
}var =
E=3Ddocument.referrer.match(/^(\w+\:\/\/)?(((\w+-?\w+\.?))+)\//);var =
C=3D"";if(E&&E.length>=3D3){C=3DE[2]=0A=
}if(FSR.$P().meta.referrer){R.set("r",C)}fsr$dbug.log("referrer: =
"+C);var D=3Dthis.decodeReferrer(document.referrer)||"";=0A=
if(FSR.$P().meta.terms){R.set("st",D)}fsr$dbug.log("search terms: =
"+D)}this.processCPPDefaults(R)=0A=
}this.v=3DG;FSR.rid=3DR.get("rid");var =
J=3DR.get("pv")?R.get("pv")+1:1;R.set("pv",J);fsr$dbug.log("pv: "+J);=0A=
var =
F=3DFSR.$P().tracker.timeout;if(FSR.$P().tracker.adjust&&FSR.$defined(R.g=
et("f"))){var Q=3DR.get("to");=0A=
var B=3D((FSR.$time()-R.get("f"))/1000);fsr$dbug.log("ptimeout: =
"+Q);fsr$dbug.log("loadtime: "+B);F=3D(0.9*Q)+(0.1*(B*2));=0A=
F=3DMath.round(F*10)/10;if(F<2){F=3D2}else{if(F>5){F=3D5}}}if(FSR.$P().tr=
acker.adjust){R.set("to",F)}fsr$dbug.log("timeout: "+F);=0A=
fsr$dbug.log("invite: =
"+(FSR.$pick(R.get("i"),"")));fsr$dbug.log("tracker: =
"+(FSR.$pick(R.get("t")||"")));=0A=
if(this.v<1){FSR.RR.cancelRecord()}},setup:function(){fsr$dbug.log("=3D=3D=
=3D=3D=3D=3DSETUP=3D=3D=3D=3D=3D=3D=3D");var M=3DFSR.c();=0A=
FSR.sv=3DFSR.$random(0,100);this.sp=3Dnew =
FSR.Hash.Cookie("fsr.sp",{path:"/",domain:FSR.site.domain||false});=0A=
var =
N,F,A,H,P;if(FSR.$defined(M.get("cd"))){P=3DM.get("cd")}FSR.cs=3DdecodeUR=
IComponent(document.location.href);=0A=
if(!FSR.$P().meta.url_params){FSR.cs=3DFSR.cs.replace(/(.*?)(\?.*)/g,"$1"=
)}if(FSR.$P().meta.url){M.set("c",FSR.cs)=0A=
}this.language();fsr$dbug.log("language: =
"+FSR.$S.locale||"");fsr$dbug.log("site: "+FSR.site.name||"");=0A=
var =
E=3DM.get("lc")||{};N=3Dthis.matchDef();if(N.length!=3D0){fsr$dbug.log("=3D=
=3D=3DCURRENT=3D=3D=3D=3D");for(var J=3D0,I=3DN.length;=0A=
J<I;J++){var =
L=3DFSR.surveydefs[N[J]];L.idx=3DN[J];fsr$dbug.log("section: =
"+(L.section||""));var C=3D"d"+L.idx;=0A=
this.criteria(L.criteria);if(!E[C]){E[C]=3D{v:0,s:false}}L.lc=3DE[C].v=3D=
E[C].v+1;L.ec=3DE[C].e||0;L.type=3D"current";=0A=
this.configLoyalty(L);var B=3Dthis.loyaltyDef(L);var =
O=3Dthis.checkLoyalty(B,L.lc,L.ec);if(O>-1){L.ls=3DE[C].s=3Dtrue;=0A=
if(FSR.$type(L.criteria.lf)=3D=3D"array"){L.criteria.lf=3DL.criteria.lf[O=
];L.criteria.sp=3DL.criteria.sp[O];=0A=
L.pop.when=3DL.pop.when[O];if(FSR.$type(L.invite.content)=3D=3D"array"){L=
.invite.content=3DL.invite.content[O];=0A=
var G=3DL.invite.locales||[];for(var =
J=3D0,K=3DG.length;J<K;J++){G[J].content=3DG[J].content[O]}}}if(L.pin){va=
r D=3DM.get("pn");=0A=
if(!FSR.$defined(D)||D>=3DL.idx){M.set("pn",L.idx)}}}else{L.ls=3DE[C].s=3D=
false;if(FSR.$type(L.criteria.lf)=3D=3D"array"){L.criteria.lf=3DL.criteri=
a.lf[0];=0A=
L.criteria.sp=3DL.criteria.sp[0];L.pop.when=3DL.pop.when[0];if(FSR.$type(=
L.invite.content)=3D=3D"array"){L.invite.content=3DL.invite.content[0];=0A=
var G=3DL.invite.locales||[];for(var =
J=3D0,K=3DG.length;J<K;J++){G[J].content=3DG[J].content[0]}}}}this.config=
ure(L);=0A=
this.cd=3DL;F=3DL.idx;break}M.set("lc",E)}if(FSR.$defined(P)&&(P!=3DF)){f=
sr$dbug.log("=3D=3D=3DPREVIOUS=3D=3D=3D");=0A=
var L=3DFSR.surveydefs[P];L.idx=3DP;var =
C=3D"d"+L.idx;this.criteria(L);L.lc=3DE[C].v||0;L.ls=3DE[C].s||false;=0A=
L.type=3D"previous";this.configLoyalty(L);this.configure(L);this.pd=3DL}}=
,configLoyalty:function(A){if(FSR.$type(A.criteria.lf)=3D=3D"number"){A.c=
riteria.lf=3D{v:A.criteria.lf,o:">=3D"}=0A=
}},loyaltyDef:function(B){var =
A=3DB.criteria.lf;if(FSR.$type(B.criteria.lf)=3D=3D"object"){A=3D[B.crite=
ria.lf]=0A=
}return A},checkLoyalty:function(E,F,C){var B=3D-1;for(var =
D=3D0,A=3DE.length;D<A;D++){if(E[D].o=3D=3D">=3D"){if(F>=3DE[D].v){B=3DD=0A=
}}else{if(E[D].o=3D=3D"=3D"){if((F-C)=3D=3DE[D].v){B=3DD}}else{if(E[D].o=3D=
=3D">"){if(F>E[D].v){B=3DD}}}}}return B},exclude:function(B){var =
A=3DFSR.$P().exclude;=0A=
if(!A){return false}return this.match(A)},configure:function(C){var =
D=3DFSR.c();fsr$dbug.log("sid: "+C.name);=0A=
fsr$dbug.log("lc: "+C.lc);fsr$dbug.log("lf: "+C.criteria.lf.v+" =
("+C.criteria.lf.o+") ");C.sv=3DFSR.sv;=0A=
fsr$dbug.log("sv: =
"+C.sv);if(FSR.$type(C.criteria.sp)=3D=3D"array"){C.criteria.sp=3DC.crite=
ria.sp[(new Date()).getDay()]=0A=
}var B=3D(!C.section)?C.name:C.name+"-"+C.section;var =
A=3D(!FSR.$S.locale)?B:B+"-"+FSR.$S.locale;C.criteria.sp=3Dthis.sp.get(B)=
||this.sp.get(A)||C.criteria.sp;=0A=
fsr$dbug.log("sp: =
"+C.criteria.sp);if(!(C.invite=3D=3D=3Dfalse)){C.invite=3DFSR.$merge(FSR.=
$P().invite,C.invite||{})=0A=
}C.tracker=3DFSR.$merge(FSR.$P().tracker,C.tracker||{});C.survey=3DFSR.$m=
erge(FSR.$P().survey,C.survey||{});=0A=
C.qualifier=3DFSR.$merge(FSR.$P().qualifier,C.qualifier||{});C.cancel=3DF=
SR.$merge(FSR.$P().cancel,C.cancel||{});=0A=
C.pop=3DFSR.$merge(FSR.$P().pop,C.pop||{});C.repeatdays=3DFSR.$pick(FSR.$=
P().repeatdays,C.repeatdays);=0A=
if(FSR.$type(C.repeatdays)!=3D"array"){C.repeatdays=3D[C.repeatdays,C.rep=
eatdays]}},unload:function(){if(!FSR.enabled){return =0A=
}if(!this.runload&&this.ralive){this.runload=3Dtrue;this.uninit()}return =
},uninit:function(){var A=3DFSR.c();=0A=
if(FSR.$S.invite=3D=3D0){fsr$dbug.log("Invite =
Abandoned");FSR.log(103);FSR.$pause(1000)}if(FSR.$P().previous){A.set("p"=
,FSR.cs)=0A=
}if(FSR.$P().tracker.adjust){A.set("f",FSR.$time())}},matchDef:function()=
{var A=3D[];var F=3DFSR.surveydefs;=0A=
for(var =
D=3D0,B=3DF.length,C=3D0;D<B;D++){if(F[D].site&&F[D].site!=3DFSR.site.nam=
e){continue}var E=3DC;if(this.match(F[D].include)){A[C++]=3DD=0A=
}if(C!=3DE){break}}return A},match:function(d){var =
p;p=3Dd.urls||[];for(var =
j=3D0,n=3Dp.length;j<n;j++){if(decodeURIComponent(document.location.href)=
.match(p[j])){return true=0A=
}}p=3Dd.referrers||[];for(var =
j=3D0,n=3Dp.length;j<n;j++){if(decodeURIComponent(document.referrer).matc=
h(p[j])){return true=0A=
}}p=3Dd.cookies||[];for(var j=3D0,n=3Dp.length;j<n;j++){var =
value;if(value=3DFSR.Cookie.read(p[j].name,{path:p[j].path||false,domain:=
p[j].domain||false})){if(value.match(p[j].value||".")){return true=0A=
}}}p=3Dd.variables||[];for(var j=3D0,n=3Dp.length;j<n;j++){var =
name=3Dp[j].name;var =
value=3Dp[j].value;if(FSR.$type(name)!=3D"array"){name=3D[name];=0A=
value=3D[value]}var v,z=3Dtrue;for(var =
x=3D0,y=3Dname.length;x<y;x++){try{v=3Deval(name[x])}catch(err){v=3D""=0A=
}if(v||v=3D=3D=3D""){if(!v.match(value[x])){z=3Dfalse;break}}}if(z){retur=
n true}}return false},pool:function(){var C=3Dnew Date().getHours();=0A=
var =
B=3DFSR.$P().pool||100;if(FSR.$type(B)!=3D"array"){B=3D[{h:0,p:B}]}var =
D=3D100;for(var A=3D0,E=3DB.length;=0A=
A<E;A++){if(C>=3DB[A].h){D=3DB[A].p}}return D},invite:function(){var =
B=3Dnew Date().getTime();var D=3Dthis.sd;=0A=
FSR.$S.invite=3D0;this.setRepeatdays(1);if(FSR.$S.locale){FSR.c().set("l"=
,FSR.$S.locale)}var A=3Dthis;=0A=
if(D.invite){(function(){FSR.log(100,FSR.cs);A.prepareDHTML("invite","acc=
epted","declined","closed")=0A=
}).fsr$delay((D.invite.delay||0)*1000);if(D.invite.timeout){(function(){F=
SR.idhtml.hide()}).fsr$delay(D.invite.timeout*1000)=0A=
}}else{(function(){A.accepted();A.closed()}).fsr$delay(0)}var C=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(C-B)=0A=
},prepareDHTML:function(G,H,D,C){var B=3Dnew Date().getTime();var =
A=3Dthis;if(!FSR.$defined(this.dhtml_css)){this.dhtml_css=3D1;=0A=
new =
FSR.Asset.css((FSR.image_files||FSR.files)+this.sd[G].css);this.dhtml_css=
=3D2}if(!FSR.$defined(this.dhtml_win)){this.dhtml_win=3D1;=0A=
new =
FSR.Asset.javascript((FSR.js_files||FSR.files)+"foresee-dhtml-popup.js",{=
id:"foresee-dhtml-popup",onload:function(){fsr$dbug.log("DHTML popup =
script loaded (2)");=0A=
A.dhtml_win=3D2;A.showDHTML(G,H,D,C)}})}else{if(this.dhtml_win=3D=3D1){va=
r E=3D(function(){if(A.dhtml_win=3D=3D1){return =0A=
}FSR.$clear(E);A.showDHTML(G,H,D,C)}).fsr$periodical(50)}else{if(this.dht=
ml_win=3D=3D2){(function(){A.showDHTML(G,H,D,C)=0A=
}).fsr$delay(1)}}}var F=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(F-B)},showDHTML:function(H,D,J,=
F){var A=3Dnew Date().getTime();=0A=
var L=3Dthis;var I=3Dthis.sd[H];this.page(I);var =
G=3D[];if(I.buttons){var =
B=3D0;if(I.buttons.decline){G[B]=3D{properties:{id:"decline"},style:"fsr_=
button fsr_decline",text:I.buttons.decline,onClick:function(){L[J]()=0A=
},onMouseover:function(){this.className=3D"fsr_closeSticky fsr_button =
fsr_mouseover_decline"},onMouseout:function(){this.className=3D"fsr_close=
Sticky fsr_button fsr_decline"=0A=
}};B++}if(I.buttons.accept){G[B]=3D{properties:{id:"accept"},style:"fsr_b=
utton fsr_accept",text:I.buttons.accept,onClick:function(){L[D]()=0A=
},onMouseover:function(){this.className=3D"fsr_closeSticky fsr_button =
fsr_mouseover_accept"},onMouseout:function(){this.className=3D"fsr_closeS=
ticky fsr_button fsr_accept"=0A=
}};B++}}var =
N=3D{position:{x:I.x,y:I.y},wrapWithUi:true,uiOptions:{width:I.width+"px"=
,baseHref:(FSR.image_files||FSR.files),buttons:G},modalOptions:{modalStyl=
e:{"background-color":I.bgcolor,opacity:I.opacity},hideOnClick:I.hideOnCl=
ick},requestOptions:{evalScripts:true}};=0A=
FSR.$S[H]=3D0;var M;if(I.content){N.content=3DI.content;M=3Dnew =
FSR.StickyWinModal(N)}else{N.url=3D(FSR.html_files||FSR.files)+(I.url.dht=
ml||I.url);=0A=
M=3Dnew =
FSR.StickyWinModal.Ajax(N)}if(F){M.fsr$addEvent("onClose",function(){L[F]=
()})}if(FSR.Browser.Type.name!=3D"Explorer"){var =
C=3D(this.sd.invite)?this.sd.invite.hide:[];=0A=
for(var =
B=3D0,E=3DC.length;B<E;B++){if($fsr(C[B])){$fsr(C[B]).fsr$setStyle("visib=
ility","hidden")}}}if(I.content){M.show()=0A=
}else{M.update()}FSR.idhtml=3DM;var K=3Dnew =
Date().getTime();FSR.$M.run=3DFSR.$M.run+(K-A)},accepted:function(){FSR.$=
S.invite=3D1;=0A=
FSR.log(101);var =
B=3DFSR.c();B.set("i",FSR.$S.invite);if(this.sd.lock){B.set("lk",1)}this.=
setRepeatdays(0);=0A=
if(FSR.$P().mode=3D=3D"hybrid"){new =
FSR.Service({host:FSR.services.domain.host,path:FSR.services.domain.path,=
url:FSR.services.domain.url,params:{"do":1,rw:this.sd.repeatdays[0]*24*60=
}}).ping()=0A=
}FSR.RR.setOKTransmit();var =
A=3Dthis;A.processAccept()},declined:function(){FSR.$S.invite=3D-1;FSR.lo=
g(102);=0A=
FSR.c().set("i",FSR.$S.invite);this.setRepeatdays(1);FSR.RR.cancelRecord(=
)},closed:function(){if(FSR.Browser.Type.name!=3D"Explorer"){var =
C=3D(this.sd.invite)?this.sd.invite.hide:[];=0A=
for(var =
B=3D0,A=3DC.length;B<A;B++){if($fsr(C[B])){$fsr(C[B]).fsr$setStyle("visib=
ility","visible")}}}},qualified:function(){FSR.$S.qualifier=3D1;=0A=
FSR.log(301);var =
A=3Dthis;A.processQualifier()},processAccept:function(){var =
B=3Dthis.sd;if(B.pop.when=3D=3D"later"){if(B.pop.tracker){this.popTracker=
()=0A=
}this.setupLinks("pop",this.popLink);this.setupLinks("cancel",this.cancel=
Tracker);this.setupLinks("pause",this.pause)=0A=
}else{if(B.pop.when=3D=3D"now"){FSR.c().set("s",1);var =
A=3DB.pop.what;if(A=3D=3D"survey"){this.popSurvey()}else{if(A=3D=3D"quali=
fier"){this.popQualifier()=0A=
}else{if(A=3D=3D"url"){this.popUrl()}else{if(A=3D=3D"script"){this.popScr=
ipt()}else{if(A=3D=3D"movie"){}}}}}}else{if(B.pop.when=3D=3D"both"){this.=
popTracker();=0A=
this.popSurvey()}}}},processQualifier:function(){if(!FSR.$S.canceled){thi=
s.popSurvey()}else{this.popCancel()=0A=
}},popImmediate:function(){var C=3Dthis.sd;var B=3Dthis;var =
D=3DFSR.c();if(this.trackerRunning()){if(FSR.Browser.Type.name!=3D"Firefo=
x"||!C.qualifier.content){D.set("fo",1)=0A=
}else{this.cancelTracker();(function(){FSR.log(300,FSR.cs);B.prepareDHTML=
("qualifier","qualified")=0A=
}).fsr$delay((C.qualifier.delay||0)*1000)}}else{FSR.c().set("s",1);var =
A=3DC.pop.what;if(A=3D=3D"survey"){this.popSurvey()=0A=
}else{if(A=3D=3D"qualifier"){this.popQualifier()}else{if(A=3D=3D"url"){th=
is.popUrl()}else{if(A=3D=3D"script"){this.popScript()=0A=
}else{if(A=3D=3D"movie"){}}}}}}},popSurvey:function(){var =
B=3Dthis.sd.survey;var =
A=3Dthis.sd.pop;this.popMain(this.sid(),B.width,B.height,A.pu,B.loading,"=
400")=0A=
},popFeedback:function(){var C=3DFSR.$P();var B=3D"feedback";var =
A=3DFSR.$S.locale;if(A){B=3DB+"-"+A}this.popMain(B,C.survey.width,C.surve=
y.height,false,C.survey.loading,"600")=0A=
},popMain:function(D,C,M,N,E,K){var H=3DFSR.services.survey;var =
J=3DFSR.c();var B=3DJ.get("rid")||FSR.generateid();=0A=
var L=3Dthis.hash(B);var I=3DFSR.cs;var F=3Dnew =
FSR.Hash({sid:D,cid:FSR.id,pattern:I,a:B,b:L,c:24*60*60*1000,version:FSR.=
version}).toQueryString();=0A=
var G=3DFSR.CPPS.toQueryString();var =
A=3Ddocument.location.protocol+"//"+H.host+H.path+H.url+"?"+F+"&"+G;=0A=
if(E){this.page(FSR.$P().loading);A=3D(FSR.html_files||FSR.files)+FSR.$P(=
).loading.url+"?url=3D"+A}this.pop("fsr"+K,A,(window.screen.width-C)/2,(w=
indow.screen.height-M)/2,C,M,N);=0A=
FSR.log(K,FSR.cs)},popTracker:function(){if(this.trackerRunning()){return=
 }fsr$timer=3DsetInterval(fsr$setAlive,1000);=0A=
this.popOther(this.sd.tracker,true,"200")},popQualifier:function(){this.p=
opOther(this.sd.qualifier,this.sd.pop.pu,"300",this.sd.pop.now)=0A=
},popCancel:function(){this.popOther(this.sd.cancel,false,"500")},popLink=
:function(){if(!this.surveyShown()){this.popImmediate()=0A=
}},cancelTracker:function(){if(this.trackerRunning()){var =
A=3Dwindow.open("","fsr200");if(A){A.close()=0A=
}}},popOther:function(E,I,G,F){this.page(E);var =
C=3D(window.screen.width-E.width)/2;var =
H=3D(window.screen.height-E.height)/2;=0A=
var A=3D(FSR.html_files||FSR.files)+(E.url.pop||E.url);var =
B=3D{siteid:FSR.siteid,name:FSR.site.name,domain:FSR.site.domain};=0A=
if(F){B.when=3DF}var D=3Dnew =
FSR.Hash(B).toQueryString();A=3DA+"?"+D;this.pop("fsr"+G,A,C,H,E.width,E.=
height,I);=0A=
FSR.log(G,FSR.cs)},popAttach:function(B){var C=3Dthis.sd;var =
A=3Dthis;if(B.sp){C.criteria.sp=3DB.sp}if(B.when){C.pop.when=3DB.when=0A=
}if(B.qualifier){C.pop.when=3DB.when}if(!(C.sv>0&&C.sv<=3DC.criteria.sp))=
{return }if(FSR.$S.locale){FSR.c().set("l",FSR.$S.locale)=0A=
}if(B.invite){this.processInvite()}else{(function(){A.accepted();A.closed=
()}).fsr$delay(0)}},popUrl:function(){var B=3DFSR.$P().survey.width;=0A=
var =
A=3DFSR.$P().survey.height;this.pop("fsrOther",this.sd.pop.url,(window.sc=
reen.width-B)/2,(window.screen.height-A)/2,B,A)=0A=
},popScript:function(){new =
FSR.Asset.javascript(this.sd.pop.script)},pause:function(){var =
A=3DFSR.c();=0A=
A.set("pa","1")},sid:function(){var G=3Dthis.sd;var H=3DFSR.c();var =
B=3DG.name;var C=3DG.site;if(C){B=3DB+"-"+C=0A=
}var E=3DG.section;if(E){B=3DB+"-"+E}var =
A=3DG.pop.now;if(A){B=3DB+"-"+A}var D=3DH.get("q");if(D){B=3DB+"-"+D=0A=
}var F=3DH.get("l");if(F){B=3DB+"-"+F}return =
B},pop:function(D,C,H,G,F,A,E,B){(function(){new =
FSR.Browser.Popup(C,{name:D,toolbar:0,location:0,directories:0,status:0,s=
crollbars:1,resizable:1,width:F,height:A,x:H,y:G,blur:E,menubar:0})=0A=
}).fsr$delay(B||0)},language:function(){var =
H=3DFSR.$P().language;if(!H){return }FSR.$S.locale=3DH.locale;=0A=
if(!H.src){return }var I=3DFSR.$S.locale;var =
A;if(H.src=3D=3D"location"){A=3DdecodeURIComponent(document.location.href=
)=0A=
}else{if(H.src=3D=3D"cookie"){if(H.type&&H.type=3D=3D"client"){A=3DFSR.Co=
okie.read(H.name,{path:"/",domain:FSR.site.domain||false})=0A=
}else{A=3DFSR.c().get("lang")}}else{if(H.src=3D=3D"variable"){if(H.type&&=
H.type=3D=3D"client"){A=3Dwindow[H.name]=0A=
}else{A=3DFSR[H.name]}}}}A=3DA||"";var C=3DH.locales||[];for(var =
G=3D0,E=3DC.length;G<E;G++){if(FSR.$type(C[G].match)!=3D"array"){C[G].mat=
ch=3D[C[G].match]=0A=
}var B;for(var =
F=3D0,D=3DC[G].match.length;F<D;F++){if(B=3DA.match(C[G].match[F])){I=3DC=
[G].locale;break}}if(B){break=0A=
}}FSR.$S.locale=3DI},page:function(E){var =
B=3DFSR.c().get("l");if(!B){return }var D=3DE.locales||[];for(var =
C=3D0,A=3DD.length;=0A=
C<A;C++){if(D[C].locale=3D=3DB){if(D[C].url){E.url=3DD[C].url}if(D[C].con=
tent){E.content=3DD[C].content}if(D[C].buttons){E.buttons=3D{accept:"",de=
cline:""};=0A=
if(D[C].buttons.accept){E.buttons.accept=3DD[C].buttons.accept}if(D[C].bu=
ttons.decline){E.buttons.decline=3DD[C].buttons.decline=0A=
}}if(D[C].width){E.width=3DD[C].width}if(D[C].height){E.height=3DD[C].hei=
ght}break}}},criteria:function(E){var B=3DFSR.$S.locale;=0A=
if(!B){return }var D=3DE.locales||[];for(var =
C=3D0,A=3DD.length;C<A;C++){if(D[C].locale=3D=3DB){E.sp=3DD[C].sp;=0A=
E.lf=3DD[C].lf;break}}},decodeReferrer:function(A){A=3DdecodeURIComponent=
(A);var C;var =
B=3Ddocument.referrer.match(/[?&]q=3D([^&]*)/)||document.referrer.match(/=
[?&]p=3D([^&]*)/)||document.referrer.match(/[?&]query=3D([^&]*)/);=0A=
if(!B){return C}var C=3Dunescape(B[1]);if(C){C=3DC.replace(/\+/g," =
")}return C},setRepeatdays:function(D){if(this.sd.repeatdays[D]){var =
B=3Dnew =
FSR.Hash.Cookie("fsr.r",{path:"/",domain:FSR.site.domain||false,duration:=
this.sd.repeatdays[D]});=0A=
B.set("d",this.sd.repeatdays[D]);var =
C=3DFSR.$P().events;if(C.pd){B.set("i",FSR.rid);var A=3Dnew Date();=0A=
A.setDate(A.getDate()+C.pd);B.set("e",A.getTime());if(this.sd.lock){B.set=
("s",this.sd.idx)}}}},hash:function(B){var A=3DB.split("_");=0A=
return((A[0]*3)+1357)+""+((A[1]*9)+58)},processCPPS:function(){var =
cpps=3DFSR.$P().cpps;if(!cpps){return =0A=
}for(var name in cpps){if(!cpps.hasOwnProperty(name)){continue}var =
cpp=3Dcpps[name];var value=3D"";if(cpp.source=3D=3D"url"){var =
p=3Dcpp.patterns||[];=0A=
for(var =
j=3D0,n=3Dp.length;j<n;j++){if(decodeURIComponent(document.location.href)=
.match(p[j].regex)){value=3Dp[j].value;=0A=
break}}}else{if(cpp.source=3D=3D"parameter"){value=3Dthis.parameter(cpp.n=
ame)}else{if(cpp.source=3D=3D"cookie"){value=3DFSR.Cookie.read(cpp.name,{=
path:cpp.path||false,domain:cpp.domain||false})=0A=
}else{if(cpp.source=3D=3D"variable"){try{value=3Deval(cpp.name)}catch(err=
){value=3Dfalse}}}}}if(value&&value!=3D""){if(cpp.mode&&cpp.mode=3D=3D"ap=
pend"){FSR.CPPS.append(name,value)=0A=
}else{FSR.CPPS.set(name,value)}}}},processCPPDefaults:function(D){var =
B=3DFSR.$P().cpps;if(!B){return =0A=
}for(var C in B){if(!B.hasOwnProperty(C)){continue}var =
A=3DB[C];if(A.init){FSR.CPPS.set(C,A.init,D)=0A=
}}},processEvents:function(){if(Math.abs(this.v)!=3D1){return }var =
events=3DFSR.$P().events;if(!events.custom){return =0A=
}var c=3DFSR.c();var ev=3Dc.get("ev")||{};var i=3D0;for(var name in =
events.custom){if(!events.custom.hasOwnProperty(name)){continue=0A=
}var event=3Devents.custom[name];if(!event.enabled){continue}var =
value=3D"";if(event.source=3D=3D"url"){var p=3Devent.patterns||[];=0A=
for(var =
j=3D0,n=3Dp.length;j<n;j++){if(decodeURIComponent(document.location.href)=
.match(p[j])){value=3Dp[j];=0A=
break}}}else{if(event.source=3D=3D"parameter"){value=3Dthis.parameter(eve=
nt.name)}else{if(event.source=3D=3D"cookie"){value=3DFSR.Cookie.read(even=
t.name,{path:event.path||false,domain:event.domain||false})=0A=
}else{if(event.source=3D=3D"variable"){try{value=3Deval(event.name)}catch=
(err){value=3Dfalse}}}}}if(value&&value!=3D""){if(!ev["e"+i]||event.repea=
t){ev["e"+i]=3D(ev["e"+i]||0)+1;=0A=
c.set("ev",ev);FSR.log(events.codes[name],value)}}i++}},parameter:functio=
n(B){B=3DB.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");=0A=
var A=3D"[\\?&]"+B+"=3D([^&#]*)";var D=3Dnew RegExp(A);var =
C=3DD.exec(window.location.href);if(C=3D=3Dnull){return false=0A=
}else{return =
C[1]}},cancelAlive:function(){clearInterval(fsr$timer);FSR.Cookie.dispose=
("fsr.a",{path:"/",domain:FSR.site.domain||false})=0A=
}});new =
FSR.SurveyController({});window.fsr$addEvent("domready",function(){(funct=
ion(){FSR.controller.load()=0A=
}).fsr$delay(1)});window.fsr$addEvent("unload",function(){FSR.controller.=
unload()});var fsr$le=3Dnew Date().getTime();=0A=
FSR.$M.load=3Dfsr$le-fsr$ls;=0A=

------=_NextPart_000_0000_01CB66F7.77673980
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://wwwimages.adobe.com/www.adobe.com/uber/js/omniture_s_code.js

/* SiteCatalyst code version: H.22.=0A=
Copyright 1997-2008 Omniture, Inc. More info available at=0A=
http://www.omniture.com */=0A=
/************************ ADDITIONAL FEATURES ************************=0A=
     Universal Tag=0A=
     Plugins=0A=
*/=0A=
=0A=
var s_Host=3Dwindow.location.hostname.toLowerCase();=0A=
var s_URL=3Ddocument.URL.toLowerCase();=0A=
=0A=
/* Set Report Suite ID */=0A=
if (!window.s_accountName) { =0A=
	if (s_Host.indexOf("cps-internal.corp") !=3D -1) {=0A=
	  var s_account=3D"mxcpsinternal";=0A=
	}=0A=
	else if ((s_Host.indexOf(".dev.adobe.") !=3D -1) || =
(s_Host.indexOf(".sflab.acrobat.") !=3D -1) || (s_Host.indexOf("stage.") =
!=3D -1) || (s_Host.indexOf("staging.") !=3D -1) || =
(s_Host.indexOf(".sea.adobe") !=3D -1) || (s_Host.indexOf(".corp.adobe") =
!=3D -1)) {  =0A=
	  var s_account=3D"mxadobetest";=0A=
	}=0A=
	else if (s_Host.indexOf("acrobat.com") !=3D -1) {=0A=
	  var s_account=3D"mxmacromedia,mxacrobatconnect";=0A=
	}=0A=
	else if (s_Host.indexOf("kuler.adobe") !=3D -1) {=0A=
	  var s_account=3D"mxmacromedia,mxkuler";	=0A=
	}=0A=
	else {=0A=
	  var s_account=3D"mxmacromedia";=0A=
	}	=0A=
} else {=0A=
	var s_account=3Dwindow.s_accountName;=0A=
} =0A=
var s=3Ds_gi(s_account,1) // Copy G to H variables=0A=
var s_JsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://www.adobe.com" : "http://wwwimages.adobe.com");=0A=
=0A=
/* Eloqua Integration */=0A=
if (s.c_r("adobe_optout") !=3D 1) {=0A=
	// Check Static Content Pages=0A=
	var =
s_checkElq=3D/(adobe.com\/media)|(adobe.com\/education)|(adobe.com\/enter=
prise)|(adobe.com\/financial)|(adobe.com\/government)(adobe.com\/lifescie=
nces)|(adobe.com\/manufacturing)|(adobe.com\/products\/acrobat)|(adobe.co=
m\/products\/creativesuite)|(adobe.com\/flashplatform)|(adobe.com\/produc=
ts\/livecycle)|(adobe.com\/aboutadobe\/volumelicensing)|(adobe.com\/about=
adobe\/openoptions)|(\/acom\/connectnow)|(adobe.com\/products\/reader\/rd=
r_distribution)|(devnet\/acrobat\/sdk)/gi;=0A=
	var s_matchElq =3D window.s_URL.search(s_checkElq);=0A=
	=0A=
	// Check Other Areas including Dylan Forms RFI and Events=0A=
	if (s_matchElq < 1) {=0A=
		if (s_URL.indexOf("/acrobat.com") !=3D -1) {=0A=
			s_matchElq =3D 1;=0A=
		}=0A=
		else if (s_URL.indexOf("/cfusion/mmform/index.cfm") !=3D -1) {=0A=
			var =
s_checkElqDylan=3D/(name=3Dlivecycle)|(name=3Dvertical_rfi)|(name=3Dverti=
cal%5f)|(name=3Dacrobat)|(name=3Dopen_options)|(name=3Dopen%5foptions)/;=0A=
			var s_matchElqDylan=3Dwindow.s_URL.search(s_checkElqDylan);=0A=
			if (s_matchElqDylan > 0) s_matchElq =3D 1;=0A=
		}=0A=
		else if ((s_URL.indexOf("/cfusion/event/index.cfm?event=3Dlist") !=3D =
-1) && (s_URL.indexOf("loc=3Den_us") !=3D -1)) {=0A=
			s_matchElq =3D 1;	=0A=
		}=0A=
		else if (s_URL.indexOf("/cfusion/acrobatconnectpro") !=3D -1) {=0A=
			s_matchElq =3D 1;=0A=
		}=0A=
		=0A=
	}=0A=
	if (s_matchElq > 0) {		=0A=
		document.write('<SCR' + 'IPT TYPE=3D"text/javascript" =
LANGUAGE=3D"JavaScript" SRC=3D"' + s_JsHost + '/uber/eloqua/elqCfg.js' + =
'"><\/SCR' + 'IPT>');=0A=
		document.write('<SCR' + 'IPT TYPE=3D"text/javascript" =
LANGUAGE=3D"JavaScript" SRC=3D"' + s_JsHost + '/uber/eloqua/elqImg.js' + =
'"><\/SCR' + 'IPT>');=0A=
	}=0A=
}=0A=
=0A=
/* TnT Load JS File, currently exclude Polar Bear */=0A=
var s_checkTnT=3D/^http:\/\/get/gi;=0A=
var s_matchTnT =3D window.s_URL.search(s_checkTnT);=0A=
if (s_matchTnT < 0) {=0A=
	if(typeof(window['mboxVersion']) =3D=3D "undefined") {=0A=
 		if (s_Host.indexOf(".corp.adobe") !=3D -1 || =
s_Host.indexOf("uqa01.adobe") !=3D -1 || s_Host.indexOf("stage.") !=3D =
-1 || s_Host.indexOf(".dev.adobe") !=3D -1 || s_Host.indexOf("staging.") =
!=3D -1)=0A=
			document.write(unescape("%3Cscript src=3D'" + =
"/uber/js/omniture/mbox.js' type=3D'text/javascript'%3E%3C/script%3E"));=0A=
		else=0A=
			document.write(unescape("%3Cscript src=3D'" + s_JsHost + =
"/uber/js/omniture/mbox.js' type=3D'text/javascript'%3E%3C/script%3E"));=0A=
	}=0A=
}=0A=
=0A=
/************************** CONFIG SECTION **************************/=0A=
/* You may add or alter any code config here. */=0A=
/* Link Tracking Config */=0A=
s.trackDownloadLinks=3Dtrue=0A=
s.trackExternalLinks=3Dtrue=0A=
s.trackInlineStats=3Dtrue=0A=
s.linkDownloadFileTypes=3D"exe,zip,wav,mp3,mov,mpg,avi,doc,pdf,xls,hqx,dm=
g,mxp,bin,jar,adpp,air,msi,zxp"=0A=
s.linkInternalFilters=3D"javascript:,adobe.,adobesystems.,macromedia.,pho=
toshop.com,acrobat.com,scene7.com,businesscatalyst.com,openscreenproject.=
org,flex.org,acrobatusers.com,worldsecuresystems.com,runaware.com,../"=0A=
s.linkLeaveQueryString=3Dfalse=0A=
s.linkTrackVars=3D"None"=0A=
s.linkTrackEvents=3D"None"=0A=
=0A=
/* Set Server Variable */=0A=
var s_checkDylan=3D =
/(adobe.com\/cfusion\/)|(macromedia.com\/cfusion\/)|(acrobat.com\/cfusion=
\/)|(adobe.com\/flex\/)|(macromedia.com\/flex\/)|(acrobat.com\/flex\/)|(h=
ttp:\/\/livedocs.*)/gi;=0A=
var s_matchDylan =3D s_URL.search(s_checkDylan);=0A=
if (s_matchDylan !=3D -1) {=0A=
	s.server=3D"Dylan";=0A=
}=0A=
=0A=
function s_wds(vs){=0A=
	return;=0A=
}=0A=
=0A=
function s_ca(vs){=0A=
	return;=0A=
}=0A=
=0A=
=0A=
/* Plugin Config */=0A=
s.usePlugins=3Dtrue=0A=
function s_doPlugins(s) {=0A=
  s.campaign=3Ds.getQueryParam('trackingid');=0A=
  s.campaign=3Ds.getValOnce(s.campaign,'s_campaign',0);=0A=
  if (s.getQueryParam('promoid')) {=0A=
    s.eVar2=3Ds.getQueryParam('promoid');=0A=
    s.eVar2=3Ds.getValOnce(s.eVar2,'eVar2',0);=0A=
  }=0A=
  s.eVar9=3Ds.getQueryParam('sdid');=0A=
  s.eVar9=3Ds.getValOnce(s.eVar9,'eVar9',0);=0A=
  s_eVar9=3Ds.eVar9;=0A=
  s.eVar11=3Ds.getQueryParam('pss');=0A=
  s.prop26=3Ds.getQueryParam('xNav'); //CS3 Product Nav link=0A=
  s.eVar39=3Ds.getQueryParam('pid');  //Affiliate Tracking=0A=
  s.prop4=3Ds.getQueryParam('devcon'); //Developer Connection featured =
story usage=0A=
  =0A=
  /* clickPast */=0A=
  s.SEMvar =3D s.getQueryParam('skwcid');=0A=
  s.SEMvar =3D s.getValOnce(s.SEMvar,'SEM_var',0);=0A=
  s.clickPast(s.SEMvar,'event66','event67');=0A=
  /* manageQueryParam v1.2 */=0A=
  s.pageURL=3Ds.manageQueryParam('skwcid',1,1);=0A=
=0A=
 /* TnT Execute Plugin */=0A=
  if (s.c_r("adobe_optout") !=3D 1) {=0A=
   if ((s_matchTnT < 0) && (s_URL.indexOf("acrobat.com") =3D=3D -1) && =
(s_URL.indexOf("kuler.adobe") =3D=3D -1) && =
(s_URL.indexOf("/flash/about") =3D=3D -1) && (s_URL.indexOf("/readstep") =
=3D=3D -1) && (s_URL.indexOf("/flashplayer") =3D=3D -1) && =
(s_URL.indexOf("photoshop.com") =3D=3D -1) && (s_URL.indexOf("/reader") =
=3D=3D -1) && (s_URL.indexOf("createpdf") =3D=3D -1) && =
(s_URL.indexOf("blogs.adobe") =3D=3D -1)) {=0A=
	// if(typeof(window['mboxVersion']) !=3D "undefined") =
mboxLoadSCPlugin(s);=0A=
	mboxLoadSCPlugin(s);=0A=
   }=0A=
  }=0A=
  /* TnT->SiteCatalyst */=0A=
  s.tnt=3Ds.trackTNT();=0A=
  =0A=
}=0A=
=0A=
s.doPlugins=3Ds_doPlugins=0A=
/************************** PLUGINS SECTION *************************/=0A=
/*=0A=
 * Plugin: getQueryParam 2.3=0A=
 */=0A=
s.getQueryParam=3Dnew Function("p","d","u",""=0A=
+"var =
s=3Dthis,v=3D'',i,t;d=3Dd?d:'';u=3Du?u:(s.pageURL?s.pageURL:s.wd.locati"=0A=
+"on);if(u=3D=3D'f')u=3Ds.gtfs().location;while(p){i=3Dp.indexOf(',');i=3D=
i<0?p"=0A=
+".length:i;t=3Ds.p_gpv(p.substring(0,i),u+'');if(t){t=3Dt.indexOf('#')>-=
"=0A=
+"1?t.substring(0,t.indexOf('#')):t;}if(t)v+=3Dv?d+t:t;p=3Dp.substring(i=3D=
"=0A=
+"=3Dp.length?i:i+1)}return v");=0A=
s.p_gpv=3Dnew Function("k","u",""=0A=
+"var =
s=3Dthis,v=3D'',i=3Du.indexOf('?'),q;if(k&&i>-1){q=3Du.substring(i+1);v"=0A=
+"=3Ds.pt(q,'&','p_gvf',k)}return v");=0A=
s.p_gvf=3Dnew Function("t","k",""=0A=
+"if(t){var =
s=3Dthis,i=3Dt.indexOf('=3D'),p=3Di<0?t:t.substring(0,i),v=3Di<0?'T"=0A=
+"rue':t.substring(i+1);if(p.toLowerCase()=3D=3Dk.toLowerCase())return =
s."=0A=
+"epa(v)}return ''");=0A=
/*=0A=
 * Plugin: getValOnce_v1.0=0A=
 */=0A=
s.getValOnce=3Dnew Function("v","c","e",""=0A=
+"var s=3Dthis,a=3Dnew =
Date,v=3Dv?v:v=3D'',c=3Dc?c:c=3D's_gvo',e=3De?e:0,k=3Ds.c_r(c"=0A=
+");if(v){a.setTime(a.getTime()+e*86400000);s.c_w(c,v,e?a:0);}return"=0A=
+" v=3D=3Dk?'':v");=0A=
/*=0A=
 * Plugin Utility: apl v1.1=0A=
 */=0A=
s.apl=3Dnew Function("L","v","d","u",""=0A=
+"var s=3Dthis,m=3D0;if(!L)L=3D'';if(u){var =
i,n,a=3Ds.split(L,d);for(i=3D0;i<a."=0A=
+"length;i++){n=3Da[i];m=3Dm||(u=3D=3D1?(n=3D=3Dv):(n.toLowerCase()=3D=3D=
v.toLowerCas"=0A=
+"e()));}}if(!m)L=3DL?L+d+v:v;return L");=0A=
/*=0A=
 * Utility Function: split v1.5 - split a string (JS 1.0 compatible)=0A=
 */=0A=
s.split=3Dnew Function("l","d",""=0A=
+"var i,x=3D0,a=3Dnew =
Array;while(l){i=3Dl.indexOf(d);i=3Di>-1?i:l.length;a[x"=0A=
+"++]=3Dl.substring(0,i);l=3Dl.substring(i+d.length);}return a");=0A=
/*=0A=
 * Plugin: manageQueryParam v1.2 - correct parameters in query string =0A=
 */=0A=
s.manageQueryParam=3Dnew Function("p","w","e","u",""=0A=
+"var =
s=3Dthis,x,y,i,qs,qp,qv,f,b;u=3Du?u:(s.pageURL?s.pageURL:''+s.wd.lo"=0A=
+"cation);u=3Du=3D=3D'f'?''+s.gtfs().location:u+'';x=3Du.indexOf('?');qs=3D=
x>-1"=0A=
+"?u.substring(x,u.length):'';u=3Dx>-1?u.substring(0,x):u;x=3Dqs.indexOf(=
"=0A=
+"'?'+p+'=3D');if(x>-1){y=3Dqs.indexOf('&');f=3D'';if(y>-1){qp=3Dqs.subst=
ring"=0A=
+"(x+1,y);b=3Dqs.substring(y+1,qs.length);}else{qp=3Dqs.substring(1,qs.le=
"=0A=
+"ngth);b=3D'';}}else{x=3Dqs.indexOf('&'+p+'=3D');if(x>-1){f=3Dqs.substri=
ng(1"=0A=
+",x);b=3Dqs.substring(x+1,qs.length);y=3Db.indexOf('&');if(y>-1){qp=3Db.=
su"=0A=
+"bstring(0,y);b=3Db.substring(y,b.length);}else{qp=3Db;b=3D'';}}}if(e&&q=
p)"=0A=
+"{y=3Dqp.indexOf('=3D');qv=3Dy>-1?qp.substring(y+1,qp.length):'';var =
eui=3D0"=0A=
+";while(qv.indexOf('%25')>-1){qv=3Dunescape(qv);eui++;if(eui=3D=3D10)bre=
ak"=0A=
+";}qv=3Ds.rep(qv,'+',' =
');qv=3Descape(qv);qv=3Ds.rep(qv,'%25','%');qv=3Ds.re"=0A=
+"p(qv,'%7C','|');qv=3Ds.rep(qv,'%7c','|');qp=3Dqp.substring(0,y+1)+qv;}i=
"=0A=
+"f(w&&qp){if(f)qs=3D'?'+qp+'&'+f+b;else if(b)qs=3D'?'+qp+'&'+b;else =
qs=3D'"=0A=
+"?'+qp}else if(f)qs=3D'?'+f+'&'+qp+b;else if(b)qs=3D'?'+qp+'&'+b;else =
if"=0A=
+"(qp)qs=3D'?'+qp;return u+qs;");=0A=
/*=0A=
* TNT Integration Plugin v1.0=0A=
*/=0A=
s.trackTNT =3Dnew Function("v","p","b",""=0A=
+"var =
s=3Dthis,n=3D's_tnt',p=3Dp?p:n,v=3Dv?v:n,r=3D'',pm=3Dfalse,b=3Db?b:true;i=
f(s."=0A=
+"getQueryParam){pm=3Ds.getQueryParam(p);}if(pm){r+=3D(pm+',');}if(s.wd[v=
"=0A=
+"]!=3Dundefined){r+=3Ds.wd[v];}if(b){s.wd[v]=3D'';}return r;");=0A=
/*                                                                  =0A=
* Plugin: clickPast - version 1.0=0A=
*/=0A=
s.clickPast=3Dnew Function("scp","ct_ev","cp_ev","cpc",""=0A=
+"var =
s=3Dthis,scp,ct_ev,cp_ev,cpc,ev,tct;if(s.p_fo(ct_ev)=3D=3D1){if(!cpc)"=0A=
+"{cpc=3D's_cpc';}ev=3Ds.events?s.events+',':'';if(scp){s.events=3Dev+ct_=
ev"=0A=
+";s.c_w(cpc,1,0);}else{if(s.c_r(cpc)>=3D1){s.events=3Dev+cp_ev;s.c_w(cpc=
"=0A=
+",0,0);}}}");=0A=
s.p_fo=3Dnew Function("n",""=0A=
+"var s=3Dthis;if(!s.__fo){s.__fo=3Dnew =
Object;}if(!s.__fo[n]){s.__fo[n]=3D"=0A=
+"new Object;return 1;}else {return 0;}");=0A=
=0A=
/* WARNING: Changing any of the below variables will cause drastic=0A=
changes to how your visitor data is collected.  Changes should only be=0A=
made when instructed to do so by your account manager.*/=0A=
s.trackingServer=3D"stats.adobe.com"=0A=
s.trackingServerSecure=3D"sstats.adobe.com"=0A=
s.dc=3D112=0A=
if ("file:" =3D=3D document.location.protocol) { s.trackingServer=3D'#'; =
s.trackingServerSecure=3D'#'; }=0A=
=0A=
// Send data as the JS file is loaded =96 page code does not call s_dc=0A=
// var s_code=3Ds.t();=0A=
// if(s_code)document.write(s_code)=0A=
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/=0A=
var s_code=3D'',s_objectID;function s_gi(un,pg,ss){var =
c=3D"s._c=3D's_c';s.wd=3Dwindow;if(!s.wd.s_c_in){s.wd.s_c_il=3Dnew =
Array;s.wd.s_c_in=3D0;}s._il=3Ds.wd.s_c_il;s._in=3Ds.wd.s_c_in;s._il[s._i=
n]=3Ds;s.wd.s_c_in++;s"=0A=
+".an=3Ds_an;s.cls=3Dfunction(x,c){var =
i,y=3D'';if(!c)c=3Dthis.an;for(i=3D0;i<x.length;i++){n=3Dx.substring(i,i+=
1);if(c.indexOf(n)>=3D0)y+=3Dn}return y};s.fl=3Dfunction(x,l){return =
x?(''+x).substring(0,l):x};s.co=3Dfunc"=0A=
+"tion(o){if(!o)return o;var n=3Dnew Object,x;for(x in =
o)if(x.indexOf('select')<0&&x.indexOf('filter')<0)n[x]=3Do[x];return =
n};s.num=3Dfunction(x){x=3D''+x;for(var =
p=3D0;p<x.length;p++)if(('0123456789').indexO"=0A=
+"f(x.substring(p,p+1))<0)return 0;return =
1};s.rep=3Ds_rep;s.sp=3Ds_sp;s.jn=3Ds_jn;s.ape=3Dfunction(x){var =
s=3Dthis,h=3D'0123456789ABCDEF',i,c=3Ds.charSet,n,l,e,y=3D'';c=3Dc?c.toUp=
perCase():'';if(x){x=3D''+x;if(s.em=3D=3D3)"=0A=
+"return encodeURIComponent(x);else =
if(c=3D=3D'AUTO'&&('').charCodeAt){for(i=3D0;i<x.length;i++){c=3Dx.substr=
ing(i,i+1);n=3Dx.charCodeAt(i);if(n>127){l=3D0;e=3D'';while(n||l<4){e=3Dh=
.substring(n%16,n%16+1)+e;n=3D(n-n%"=0A=
+"16)/16;l++}y+=3D'%u'+e}else if(c=3D=3D'+')y+=3D'%2B';else =
y+=3Descape(c)}return =
y}else{x=3Ds.rep(escape(''+x),'+','%2B');if(c&&s.em=3D=3D1&&x.indexOf('%u=
')<0&&x.indexOf('%U')<0){i=3Dx.indexOf('%');while(i>=3D0){i++;if"=0A=
+"(h.substring(8).indexOf(x.substring(i,i+1).toUpperCase())>=3D0)return =
x.substring(0,i)+'u00'+x.substring(i);i=3Dx.indexOf('%',i)}}}}return =
x};s.epa=3Dfunction(x){var s=3Dthis;if(x){x=3D''+x;return s.em=3D=3D3?de"=0A=
+"codeURIComponent(x):unescape(s.rep(x,'+',' '))}return =
x};s.pt=3Dfunction(x,d,f,a){var =
s=3Dthis,t=3Dx,z=3D0,y,r;while(t){y=3Dt.indexOf(d);y=3Dy<0?t.length:y;t=3D=
t.substring(0,y);r=3Ds[f](t,a);if(r)return r;z+=3Dy+d.l"=0A=
+"ength;t=3Dx.substring(z,x.length);t=3Dz<x.length?t:''}return =
''};s.isf=3Dfunction(t,a){var =
c=3Da.indexOf(':');if(c>=3D0)a=3Da.substring(0,c);if(t.substring(0,2)=3D=3D=
's_')t=3Dt.substring(2);return (t!=3D''&&t=3D=3Da)};s.f"=0A=
+"sf=3Dfunction(t,a){var =
s=3Dthis;if(s.pt(a,',','isf',t))s.fsg+=3D(s.fsg!=3D''?',':'')+t;return =
0};s.fs=3Dfunction(x,f){var =
s=3Dthis;s.fsg=3D'';s.pt(x,',','fsf',f);return =
s.fsg};s.si=3Dfunction(){var s=3Dthis,i,k,v,c=3D"=0A=
+"s_gi+'var =
s=3Ds_gi(\"'+s.oun+'\");s.sa(\"'+s.un+'\");';for(i=3D0;i<s.va_g.length;i+=
+){k=3Ds.va_g[i];v=3Ds[k];if(v!=3Dundefined){if(typeof(v)=3D=3D'string')c=
+=3D's.'+k+'=3D\"'+s_fe(v)+'\";';else c+=3D's.'+k+'=3D'+v+';'}}"=0A=
+"c+=3D\"s.lnk=3Ds.eo=3Ds.linkName=3Ds.linkType=3Ds.wd.s_objectID=3Ds.ppu=
=3Ds.pe=3Ds.pev1=3Ds.pev2=3Ds.pev3=3D'';\";return =
c};s.c_d=3D'';s.c_gdf=3Dfunction(t,a){var s=3Dthis;if(!s.num(t))return =
1;return 0};s.c_gd=3Dfunction(){var"=0A=
+" =
s=3Dthis,d=3Ds.wd.location.hostname,n=3Ds.fpCookieDomainPeriods,p;if(!n)n=
=3Ds.cookieDomainPeriods;if(d&&!s.c_d){n=3Dn?parseInt(n):2;n=3Dn>2?n:2;p=3D=
d.lastIndexOf('.');if(p>=3D0){while(p>=3D0&&n>1){p=3Dd.lastIndexOf('"=0A=
+".',p-1);n--}s.c_d=3Dp>0&&s.pt(d,'.','c_gdf',0)?d.substring(p):d}}return=
 s.c_d};s.c_r=3Dfunction(k){var s=3Dthis;k=3Ds.ape(k);var c=3D' =
'+s.d.cookie,i=3Dc.indexOf(' =
'+k+'=3D'),e=3Di<0?i:c.indexOf(';',i),v=3Di<0?'':s."=0A=
+"epa(c.substring(i+2+k.length,e<0?c.length:e));return =
v!=3D'[[B]]'?v:''};s.c_w=3Dfunction(k,v,e){var =
s=3Dthis,d=3Ds.c_gd(),l=3Ds.cookieLifetime,t;v=3D''+v;l=3Dl?(''+l).toUppe=
rCase():'';if(e&&l!=3D'SESSION'&&l!=3D'NON"=0A=
+"E'){t=3D(v!=3D''?parseInt(l?l:0):-60);if(t){e=3Dnew =
Date;e.setTime(e.getTime()+(t*1000))}}if(k&&l!=3D'NONE'){s.d.cookie=3Dk+'=
=3D'+s.ape(v!=3D''?v:'[[B]]')+'; path=3D/;'+(e&&l!=3D'SESSION'?' =
expires=3D'+e.toGMTString()"=0A=
+"+';':'')+(d?' domain=3D'+d+';':'');return s.c_r(k)=3D=3Dv}return =
0};s.eh=3Dfunction(o,e,r,f){var =
s=3Dthis,b=3D's_'+e+'_'+s._in,n=3D-1,l,i,x;if(!s.ehl)s.ehl=3Dnew =
Array;l=3Ds.ehl;for(i=3D0;i<l.length&&n<0;i++){if(l[i]."=0A=
+"o=3D=3Do&&l[i].e=3D=3De)n=3Di}if(n<0){n=3Di;l[n]=3Dnew =
Object}x=3Dl[n];x.o=3Do;x.e=3De;f=3Dr?x.b:f;if(r||f){x.b=3Dr?0:o[e];x.o[e=
]=3Df}if(x.b){x.o[b]=3Dx.b;return b}return =
0};s.cet=3Dfunction(f,a,t,o,b){var s=3Dthis,r,tcf;if(s.apv"=0A=
+">=3D5&&(!s.isopera||s.apv>=3D7)){tcf=3Dnew =
Function('s','f','a','t','var =
e,r;try{r=3Ds[f](a)}catch(e){r=3Ds[t](e)}return =
r');r=3Dtcf(s,f,a,t)}else{if(s.ismac&&s.u.indexOf('MSIE =
4')>=3D0)r=3Ds[b](a);else{s.eh(s.wd,"=0A=
+"'onerror',0,o);r=3Ds[f](a);s.eh(s.wd,'onerror',1)}}return =
r};s.gtfset=3Dfunction(e){var s=3Dthis;return s.tfs};s.gtfsoe=3Dnew =
Function('e','var =
s=3Ds_c_il['+s._in+'],c;s.eh(window,\"onerror\",1);s.etfs=3D1;c=3Ds"=0A=
+".t();if(c)s.d.write(c);s.etfs=3D0;return =
true');s.gtfsfb=3Dfunction(a){return window};s.gtfsf=3Dfunction(w){var =
s=3Dthis,p=3Dw.parent,l=3Dw.location;s.tfs=3Dw;if(p&&p.location!=3Dl&&p.l=
ocation.host=3D=3Dl.host){s.tfs=3D"=0A=
+"p;return s.gtfsf(s.tfs)}return s.tfs};s.gtfs=3Dfunction(){var =
s=3Dthis;if(!s.tfs){s.tfs=3Ds.wd;if(!s.etfs)s.tfs=3Ds.cet('gtfsf',s.tfs,'=
gtfset',s.gtfsoe,'gtfsfb')}return s.tfs};s.mrq=3Dfunction(u){var =
s=3Dthis,"=0A=
+"l=3Ds.rl[u],n,r;s.rl[u]=3D0;if(l)for(n=3D0;n<l.length;n++){r=3Dl[n];s.m=
r(0,0,r.r,0,r.t,r.u)}};s.br=3Dfunction(id,rs){var =
s=3Dthis;if(s.disableBufferedRequests||!s.c_w('s_br',rs))s.brl=3Drs};s.fl=
ushBufferedReques"=0A=
+"ts=3Dfunction(){this.fbr(0)};s.fbr=3Dfunction(id){var =
s=3Dthis,br=3Ds.c_r('s_br');if(!br)br=3Ds.brl;if(br){if(!s.disableBuffere=
dRequests)s.c_w('s_br','');s.mr(0,0,br)}s.brl=3D0};s.mr=3Dfunction(sess,q=
,rs,id,ta,u"=0A=
+"){var =
s=3Dthis,dc=3Ds.dc,t1=3Ds.trackingServer,t2=3Ds.trackingServerSecure,tb=3D=
s.trackingServerBase,p=3D'.sc',ns=3Ds.visitorNamespace,un=3Ds.cls(u?u:(ns=
?ns:s.fun)),r=3Dnew Object,l,imn=3D's_i_'+(un),im,b,e;if(!rs){if"=0A=
+"(t1){if(t2&&s.ssl)t1=3Dt2}else{if(!tb)tb=3D'2o7.net';if(dc)dc=3D(''+dc)=
.toLowerCase();else =
dc=3D'd1';if(tb=3D=3D'2o7.net'){if(dc=3D=3D'd1')dc=3D'112';else =
if(dc=3D=3D'd2')dc=3D'122';p=3D''}t1=3Dun+'.'+dc+'.'+p+tb}rs=3D'http'+(s"=0A=
+".ssl?'s':'')+'://'+t1+'/b/ss/'+s.un+'/'+(s.mobile?'5.1':'1')+'/H.22/'+s=
ess+'?AQB=3D1&ndh=3D1'+(q?q:'')+'&AQE=3D1';if(s.isie&&!s.ismac){if(s.apv>=
5.5)rs=3Ds.fl(rs,4095);else rs=3Ds.fl(rs,2047)}if(id){s.br(id,r"=0A=
+"s);return}}if(s.d.images&&s.apv>=3D3&&(!s.isopera||s.apv>=3D7)&&(s.ns6<=
0||s.apv>=3D6.1)){if(!s.rc)s.rc=3Dnew =
Object;if(!s.rc[un]){s.rc[un]=3D1;if(!s.rl)s.rl=3Dnew =
Object;s.rl[un]=3Dnew Array;setTimeout('if(windo"=0A=
+"w.s_c_il)window.s_c_il['+s._in+'].mrq(\"'+un+'\")',750)}else{l=3Ds.rl[u=
n];if(l){r.t=3Dta;r.u=3Dun;r.r=3Drs;l[l.length]=3Dr;return =
''}imn+=3D'_'+s.rc[un];s.rc[un]++}im=3Ds.wd[imn];if(!im)im=3Ds.wd[imn]=3D=
new Image;im"=0A=
+".s_l=3D0;im.onload=3Dnew Function('e','this.s_l=3D1;var =
wd=3Dwindow,s;if(wd.s_c_il){s=3Dwd.s_c_il['+s._in+'];s.mrq(\"'+un+'\");s.=
nrs--;if(!s.nrs)s.m_m(\"rr\")}');if(!s.nrs){s.nrs=3D1;s.m_m('rs')}else =
s.nrs++;i"=0A=
+"m.src=3Drs;if((!ta||ta=3D=3D'_self'||ta=3D=3D'_top'||(s.wd.name&&ta=3D=3D=
s.wd.name))&&rs.indexOf('&pe=3D')>=3D0){b=3De=3Dnew =
Date;while(!im.s_l&&e.getTime()-b.getTime()<500)e=3Dnew Date}return =
''}return '<im'+'g sr'+'c=3D\""=0A=
+"'+rs+'\" width=3D1 height=3D1 border=3D0 =
alt=3D\"\">'};s.gg=3Dfunction(v){var =
s=3Dthis;if(!s.wd['s_'+v])s.wd['s_'+v]=3D'';return =
s.wd['s_'+v]};s.glf=3Dfunction(t,a){if(t.substring(0,2)=3D=3D's_')t=3Dt.s=
ubstring(2);var s"=0A=
+"=3Dthis,v=3Ds.gg(t);if(v)s[t]=3Dv};s.gl=3Dfunction(v){var =
s=3Dthis;if(s.pg)s.pt(v,',','glf',0)};s.rf=3Dfunction(x){var =
s=3Dthis,y,i,j,h,l,a,b=3D'',c=3D'',t;if(x){y=3D''+x;i=3Dy.indexOf('?');if=
(i>0){a=3Dy.substring(i+1);y=3D"=0A=
+"y.substring(0,i);h=3Dy.toLowerCase();i=3D0;if(h.substring(0,7)=3D=3D'ht=
tp://')i+=3D7;else =
if(h.substring(0,8)=3D=3D'https://')i+=3D8;h=3Dh.substring(i);i=3Dh.index=
Of(\"/\");if(i>0){h=3Dh.substring(0,i);if(h.indexOf('goo"=0A=
+"gle')>=3D0){a=3Ds.sp(a,'&');if(a.length>1){l=3D',q,ie,start,search_key,=
word,kw,cd,';for(j=3D0;j<a.length;j++){t=3Da[j];i=3Dt.indexOf('=3D');if(i=
>0&&l.indexOf(','+t.substring(0,i)+',')>=3D0)b+=3D(b?'&':'')+t;else =
c+=3D"=0A=
+"(c?'&':'')+t}if(b&&c){y+=3D'?'+b+'&'+c;if(''+x!=3Dy)x=3Dy}}}}}}return =
x};s.hav=3Dfunction(){var =
s=3Dthis,qs=3D'',fv=3Ds.linkTrackVars,fe=3Ds.linkTrackEvents,mn,i;if(s.pe=
){mn=3Ds.pe.substring(0,1).toUpperCase()+s.pe."=0A=
+"substring(1);if(s[mn]){fv=3Ds[mn].trackVars;fe=3Ds[mn].trackEvents}}fv=3D=
fv?fv+','+s.vl_l+','+s.vl_l2:'';for(i=3D0;i<s.va_t.length;i++){var =
k=3Ds.va_t[i],v=3Ds[k],b=3Dk.substring(0,4),x=3Dk.substring(4),n=3DparseI=
nt"=0A=
+"(x),q=3Dk;if(v&&k!=3D'linkName'&&k!=3D'linkType'){if(s.pe||s.lnk||s.eo)=
{if(fv&&(','+fv+',').indexOf(','+k+',')<0)v=3D'';if(k=3D=3D'events'&&fe)v=
=3Ds.fs(v,fe)}if(v){if(k=3D=3D'dynamicVariablePrefix')q=3D'D';else =
if(k=3D=3D"=0A=
+"'visitorID')q=3D'vid';else =
if(k=3D=3D'pageURL'){q=3D'g';v=3Ds.fl(v,255)}else =
if(k=3D=3D'referrer'){q=3D'r';v=3Ds.fl(s.rf(v),255)}else =
if(k=3D=3D'vmk'||k=3D=3D'visitorMigrationKey')q=3D'vmt';else =
if(k=3D=3D'visitorMigrationServer'"=0A=
+"){q=3D'vmf';if(s.ssl&&s.visitorMigrationServerSecure)v=3D''}else =
if(k=3D=3D'visitorMigrationServerSecure'){q=3D'vmf';if(!s.ssl&&s.visitorM=
igrationServer)v=3D''}else =
if(k=3D=3D'charSet'){q=3D'ce';if(v.toUpperCase()=3D=3D"=0A=
+"'AUTO')v=3D'ISO8859-1';else =
if(s.em=3D=3D2||s.em=3D=3D3)v=3D'UTF-8'}else =
if(k=3D=3D'visitorNamespace')q=3D'ns';else =
if(k=3D=3D'cookieDomainPeriods')q=3D'cdp';else =
if(k=3D=3D'cookieLifetime')q=3D'cl';else if(k=3D=3D'variableProvider"=0A=
+"')q=3D'vvp';else if(k=3D=3D'currencyCode')q=3D'cc';else =
if(k=3D=3D'channel')q=3D'ch';else =
if(k=3D=3D'transactionID')q=3D'xact';else =
if(k=3D=3D'campaign')q=3D'v0';else if(k=3D=3D'resolution')q=3D's';else =
if(k=3D=3D'colorDepth')q=3D'c';e"=0A=
+"lse if(k=3D=3D'javascriptVersion')q=3D'j';else =
if(k=3D=3D'javaEnabled')q=3D'v';else =
if(k=3D=3D'cookiesEnabled')q=3D'k';else =
if(k=3D=3D'browserWidth')q=3D'bw';else =
if(k=3D=3D'browserHeight')q=3D'bh';else if(k=3D=3D'connectionType')q"=0A=
+"=3D'ct';else if(k=3D=3D'homepage')q=3D'hp';else =
if(k=3D=3D'plugins')q=3D'p';else =
if(s.num(x)){if(b=3D=3D'prop')q=3D'c'+n;else =
if(b=3D=3D'eVar')q=3D'v'+n;else if(b=3D=3D'list')q=3D'l'+n;else =
if(b=3D=3D'hier'){q=3D'h'+n;v=3Ds.fl(v,255)}}if"=0A=
+"(v)qs+=3D'&'+q+'=3D'+(k.substring(0,3)!=3D'pev'?s.ape(v):v)}}}return =
qs};s.ltdf=3Dfunction(t,h){t=3Dt?t.toLowerCase():'';h=3Dh?h.toLowerCase()=
:'';var =
qi=3Dh.indexOf('?');h=3Dqi>=3D0?h.substring(0,qi):h;if(t&&h.subst"=0A=
+"ring(h.length-(t.length+1))=3D=3D'.'+t)return 1;return =
0};s.ltef=3Dfunction(t,h){t=3Dt?t.toLowerCase():'';h=3Dh?h.toLowerCase():=
'';if(t&&h.indexOf(t)>=3D0)return 1;return 0};s.lt=3Dfunction(h){var =
s=3Dthis,lft=3Ds.l"=0A=
+"inkDownloadFileTypes,lef=3Ds.linkExternalFilters,lif=3Ds.linkInternalFi=
lters;lif=3Dlif?lif:s.wd.location.hostname;h=3Dh.toLowerCase();if(s.track=
DownloadLinks&&lft&&s.pt(lft,',','ltdf',h))return 'd';if(s.tr"=0A=
+"ackExternalLinks&&h.substring(0,1)!=3D'#'&&(lef||lif)&&(!lef||s.pt(lef,=
',','ltef',h))&&(!lif||!s.pt(lif,',','ltef',h)))return 'e';return =
''};s.lc=3Dnew Function('e','var s=3Ds_c_il['+s._in+'],b=3Ds.eh(this"=0A=
+",\"onclick\");s.lnk=3Ds.co(this);s.t();s.lnk=3D0;if(b)return =
this[b](e);return true');s.bc=3Dnew Function('e','var =
s=3Ds_c_il['+s._in+'],f,tcf;if(s.d&&s.d.all&&s.d.all.cppXYctnr)return;s.e=
o=3De.srcElement?e."=0A=
+"srcElement:e.target;tcf=3Dnew Function(\"s\",\"var =
e;try{if(s.eo&&(s.eo.tagName||s.eo.parentElement||s.eo.parentNode))s.t()}=
catch(e){}\");tcf(s);s.eo=3D0');s.oh=3Dfunction(o){var =
s=3Dthis,l=3Ds.wd.location,h"=0A=
+"=3Do.href?o.href:'',i,j,k,p;i=3Dh.indexOf(':');j=3Dh.indexOf('?');k=3Dh=
.indexOf('/');if(h&&(i<0||(j>=3D0&&i>j)||(k>=3D0&&i>k))){p=3Do.protocol&&=
o.protocol.length>1?o.protocol:(l.protocol?l.protocol:'');i=3Dl.pathn"=0A=
+"ame.lastIndexOf('/');h=3D(p?p+'//':'')+(o.host?o.host:(l.host?l.host:''=
))+(h.substring(0,1)!=3D'/'?l.pathname.substring(0,i<0?0:i)+'/':'')+h}ret=
urn h};s.ot=3Dfunction(o){var t=3Do.tagName;t=3Dt&&t.toUpperCas"=0A=
+"e?t.toUpperCase():'';if(t=3D=3D'SHAPE')t=3D'';if(t){if((t=3D=3D'INPUT'|=
|t=3D=3D'BUTTON')&&o.type&&o.type.toUpperCase)t=3Do.type.toUpperCase();el=
se if(!t&&o.href)t=3D'A';}return t};s.oid=3Dfunction(o){var =
s=3Dthis,t=3Ds.ot"=0A=
+"(o),p,c,n=3D'',x=3D0;if(t&&!o.s_oid){p=3Do.protocol;c=3Do.onclick;if(o.=
href&&(t=3D=3D'A'||t=3D=3D'AREA')&&(!c||!p||p.toLowerCase().indexOf('java=
script')<0))n=3Ds.oh(o);else =
if(c){n=3Ds.rep(s.rep(s.rep(s.rep(''+c,\"\\r"=0A=
+"\",''),\"\\n\",''),\"\\t\",''),' ','');x=3D2}else =
if(t=3D=3D'INPUT'||t=3D=3D'SUBMIT'){if(o.value)n=3Do.value;else =
if(o.innerText)n=3Do.innerText;else =
if(o.textContent)n=3Do.textContent;x=3D3}else if(o.src&&t=3D=3D'IMAGE"=0A=
+"')n=3Do.src;if(n){o.s_oid=3Ds.fl(n,100);o.s_oidt=3Dx}}return =
o.s_oid};s.rqf=3Dfunction(t,un){var =
s=3Dthis,e=3Dt.indexOf('=3D'),u=3De>=3D0?t.substring(0,e):'',q=3De>=3D0?s=
.epa(t.substring(e+1)):'';if(u&&q&&(','+u+',').in"=0A=
+"dexOf(','+un+',')>=3D0){if(u!=3Ds.un&&s.un.indexOf(',')>=3D0)q=3D'&u=3D=
'+u+q+'&u=3D0';return q}return =
''};s.rq=3Dfunction(un){if(!un)un=3Dthis.un;var =
s=3Dthis,c=3Dun.indexOf(','),v=3Ds.c_r('s_sq'),q=3D'';if(c<0)return s.p"=0A=
+"t(v,'&','rqf',un);return =
s.pt(un,',','rq',0)};s.sqp=3Dfunction(t,a){var =
s=3Dthis,e=3Dt.indexOf('=3D'),q=3De<0?'':s.epa(t.substring(e+1));s.sqq[q]=
=3D'';if(e>=3D0)s.pt(t.substring(0,e),',','sqs',q);return 0};s.sqs"=0A=
+"=3Dfunction(un,q){var s=3Dthis;s.squ[un]=3Dq;return =
0};s.sq=3Dfunction(q){var =
s=3Dthis,k=3D's_sq',v=3Ds.c_r(k),x,c=3D0;s.sqq=3Dnew Object;s.squ=3Dnew =
Object;s.sqq[q]=3D'';s.pt(v,'&','sqp',0);s.pt(s.un,',','sqs',q);v=3D'';"=0A=
+"for(x in =
s.squ)if(x&&(!Object||!Object.prototype||!Object.prototype[x]))s.sqq[s.sq=
u[x]]+=3D(s.sqq[s.squ[x]]?',':'')+x;for(x in =
s.sqq)if(x&&(!Object||!Object.prototype||!Object.prototype[x])&&s.sqq[x]"=0A=
+"&&(x=3D=3Dq||c<2)){v+=3D(v?'&':'')+s.sqq[x]+'=3D'+s.ape(x);c++}return =
s.c_w(k,v,0)};s.wdl=3Dnew Function('e','var =
s=3Ds_c_il['+s._in+'],r=3Dtrue,b=3Ds.eh(s.wd,\"onload\"),i,o,oc;if(b)r=3D=
this[b](e);for(i=3D0;i<s.d.lin"=0A=
+"ks.length;i++){o=3Ds.d.links[i];oc=3Do.onclick?\"\"+o.onclick:\"\";if((=
oc.indexOf(\"s_gs(\")<0||oc.indexOf(\".s_oc(\")>=3D0)&&oc.indexOf(\".tl(\=
")<0)s.eh(o,\"onclick\",0,s.lc);}return r');s.wds=3Dfunction("=0A=
+"){var =
s=3Dthis;if(s.apv>3&&(!s.isie||!s.ismac||s.apv>=3D5)){if(s.b&&s.b.attachE=
vent)s.b.attachEvent('onclick',s.bc);else =
if(s.b&&s.b.addEventListener)s.b.addEventListener('click',s.bc,false);els=
e s.eh("=0A=
+"s.wd,'onload',0,s.wdl)}};s.vs=3Dfunction(x){var =
s=3Dthis,v=3Ds.visitorSampling,g=3Ds.visitorSamplingGroup,k=3D's_vsn_'+s.=
un+(g?'_'+g:''),n=3Ds.c_r(k),e=3Dnew =
Date,y=3De.getYear();e.setYear(y+10+(y<1900?1900:0));if"=0A=
+"(v){v*=3D100;if(!n){if(!s.c_w(k,x,e))return =
0;n=3Dx}if(n%10000>v)return 0}return =
1};s.dyasmf=3Dfunction(t,m){if(t&&m&&m.indexOf(t)>=3D0)return 1;return =
0};s.dyasf=3Dfunction(t,m){var s=3Dthis,i=3Dt?t.indexOf('=3D'"=0A=
+"):-1,n,x;if(i>=3D0&&m){var =
n=3Dt.substring(0,i),x=3Dt.substring(i+1);if(s.pt(x,',','dyasmf',m))retur=
n n}return 0};s.uns=3Dfunction(){var =
s=3Dthis,x=3Ds.dynamicAccountSelection,l=3Ds.dynamicAccountList,m=3Ds.dyn=
ami"=0A=
+"cAccountMatch,n,i;s.un=3Ds.un.toLowerCase();if(x&&l){if(!m)m=3Ds.wd.loc=
ation.host;if(!m.toLowerCase)m=3D''+m;l=3Dl.toLowerCase();m=3Dm.toLowerCa=
se();n=3Ds.pt(l,';','dyasf',m);if(n)s.un=3Dn}i=3Ds.un.indexOf(',');s."=0A=
+"fun=3Di<0?s.un:s.un.substring(0,i)};s.sa=3Dfunction(un){var =
s=3Dthis;s.un=3Dun;if(!s.oun)s.oun=3Dun;else =
if((','+s.oun+',').indexOf(','+un+',')<0)s.oun+=3D','+un;s.uns()};s.m_i=3D=
function(n,a){var s=3Dthis,m,f=3Dn.s"=0A=
+"ubstring(0,1),r,l,i;if(!s.m_l)s.m_l=3Dnew =
Object;if(!s.m_nl)s.m_nl=3Dnew =
Array;m=3Ds.m_l[n];if(!a&&m&&m._e&&!m._i)s.m_a(n);if(!m){m=3Dnew =
Object,m._c=3D's_m';m._in=3Ds.wd.s_c_in;m._il=3Ds._il;m._il[m._in]=3Dm;s.=
wd"=0A=
+".s_c_in++;m.s=3Ds;m._n=3Dn;m._l=3Dnew =
Array('_c','_in','_il','_i','_e','_d','_dl','s','n','_r','_g','_g1','_t',=
'_t1','_x','_x1','_rs','_rr','_l');s.m_l[n]=3Dm;s.m_nl[s.m_nl.length]=3Dn=
}else if(m._r&&!m._m){r"=0A=
+"=3Dm._r;r._m=3Dm;l=3Dm._l;for(i=3D0;i<l.length;i++)if(m[l[i]])r[l[i]]=3D=
m[l[i]];r._il[r._in]=3Dr;m=3Ds.m_l[n]=3Dr}if(f=3D=3Df.toUpperCase())s[n]=3D=
m;return m};s.m_a=3Dnew Function('n','g','e','if(!g)g=3D\"m_\"+n;var =
s=3Ds_c_i"=0A=
+"l['+s._in+'],c=3Ds[g+\"_c\"],m,x,f=3D0;if(!c)c=3Ds.wd[\"s_\"+g+\"_c\"];=
if(c&&s_d)s[g]=3Dnew =
Function(\"s\",s_ft(s_d(c)));x=3Ds[g];if(!x)x=3Ds.wd[\\'s_\\'+g];if(!x)x=3D=
s.wd[g];m=3Ds.m_i(n,1);if(x&&(!m._i||g!=3D\"m_\""=0A=
+"+n)){m._i=3Df=3D1;if((\"\"+x).indexOf(\"function\")>=3D0)x(s);else =
s.m_m(\"x\",n,x,e)}m=3Ds.m_i(n,1);if(m._dl)m._dl=3Dm._d=3D0;s.dlt();retur=
n f');s.m_m=3Dfunction(t,n,d,e){t=3D'_'+t;var =
s=3Dthis,i,x,m,f=3D'_'+t,r=3D0,u;"=0A=
+"if(s.m_l&&s.m_nl)for(i=3D0;i<s.m_nl.length;i++){x=3Ds.m_nl[i];if(!n||x=3D=
=3Dn){m=3Ds.m_i(x);u=3Dm[t];if(u){if((''+u).indexOf('function')>=3D0){if(=
d&&e)u=3Dm[t](d,e);else if(d)u=3Dm[t](d);else =
u=3Dm[t]()}}if(u)r=3D1;u=3Dm["=0A=
+"t+1];if(u&&!m[f]){if((''+u).indexOf('function')>=3D0){if(d&&e)u=3Dm[t+1=
](d,e);else if(d)u=3Dm[t+1](d);else =
u=3Dm[t+1]()}}m[f]=3D1;if(u)r=3D1}}return r};s.m_ll=3Dfunction(){var =
s=3Dthis,g=3Ds.m_dl,i,o;if(g)for(i=3D0;i<"=0A=
+"g.length;i++){o=3Dg[i];if(o)s.loadModule(o.n,o.u,o.d,o.l,o.e,1);g[i]=3D=
0}};s.loadModule=3Dfunction(n,u,d,l,e,ln){var =
s=3Dthis,m=3D0,i,g,o=3D0,f1,f2,c=3Ds.h?s.h:s.b,b,tcf;if(n){i=3Dn.indexOf(=
':');if(i>=3D0){g=3Dn.subst"=0A=
+"ring(i+1);n=3Dn.substring(0,i)}else =
g=3D\"m_\"+n;m=3Ds.m_i(n)}if((l||(n&&!s.m_a(n,g)))&&u&&s.d&&c&&s.d.create=
Element){if(d){m._d=3D1;m._dl=3D1}if(ln){if(s.ssl)u=3Ds.rep(u,'http:','ht=
tps:');i=3D's_s:'+s._in+':'+n"=0A=
+"+':'+g;b=3D'var =
s=3Ds_c_il['+s._in+'],o=3Ds.d.getElementById(\"'+i+'\");if(s&&o){if(!o.l&=
&s.wd.'+g+'){o.l=3D1;if(o.i)clearTimeout(o.i);o.i=3D0;s.m_a(\"'+n+'\",\"'=
+g+'\"'+(e?',\"'+e+'\"':'')+')}';f2=3Db+'o.c++;"=0A=
+"if(!s.maxDelay)s.maxDelay=3D250;if(!o.l&&o.c<(s.maxDelay*2)/100)o.i=3Ds=
etTimeout(o.f2,100)}';f1=3Dnew Function('e',b+'}');tcf=3Dnew =
Function('s','c','i','u','f1','f2','var =
e,o=3D0;try{o=3Ds.d.createElement(\"s"=0A=
+"cript\");if(o){o.type=3D\"text/javascript\";'+(n?'o.id=3Di;o.defer=3Dtr=
ue;o.onload=3Do.onreadystatechange=3Df1;o.f2=3Df2;o.l=3D0;':'')+'o.src=3D=
u;c.appendChild(o);'+(n?'o.c=3D0;o.i=3DsetTimeout(f2,100)':'')+'}}catch(e=
"=0A=
+"){o=3D0}return o');o=3Dtcf(s,c,i,u,f1,f2)}else{o=3Dnew =
Object;o.n=3Dn+':'+g;o.u=3Du;o.d=3Dd;o.l=3Dl;o.e=3De;g=3Ds.m_dl;if(!g)g=3D=
s.m_dl=3Dnew Array;i=3D0;while(i<g.length&&g[i])i++;g[i]=3Do}}else =
if(n){m=3Ds.m_i(n);m._e=3D1}ret"=0A=
+"urn =
m};s.vo1=3Dfunction(t,a){if(a[t]||a['!'+t])this[t]=3Da[t]};s.vo2=3Dfuncti=
on(t,a){if(!a[t]){a[t]=3Dthis[t];if(!a[t])a['!'+t]=3D1}};s.dlt=3Dnew =
Function('var s=3Ds_c_il['+s._in+'],d=3Dnew Date,i,vo,f=3D0;if(s.dll)"=0A=
+"for(i=3D0;i<s.dll.length;i++){vo=3Ds.dll[i];if(vo){if(!s.m_m(\"d\")||d.=
getTime()-vo._t>=3Ds.maxDelay){s.dll[i]=3D0;s.t(vo)}else =
f=3D1}}if(s.dli)clearTimeout(s.dli);s.dli=3D0;if(f){if(!s.dli)s.dli=3Dset=
Timeout(s."=0A=
+"dlt,s.maxDelay)}else s.dll=3D0');s.dl=3Dfunction(vo){var =
s=3Dthis,d=3Dnew Date;if(!vo)vo=3Dnew =
Object;s.pt(s.vl_g,',','vo2',vo);vo._t=3Dd.getTime();if(!s.dll)s.dll=3Dne=
w Array;s.dll[s.dll.length]=3Dvo;if(!s.maxDel"=0A=
+"ay)s.maxDelay=3D250;s.dlt()};s.t=3Dfunction(vo,id){var =
s=3Dthis,trk=3D1,tm=3Dnew =
Date,sed=3DMath&&Math.random?Math.floor(Math.random()*10000000000000):tm.=
getTime(),sess=3D's'+Math.floor(tm.getTime()/10800000)%10"=0A=
+"+sed,y=3Dtm.getYear(),vt=3Dtm.getDate()+'/'+tm.getMonth()+'/'+(y<1900?y=
+1900:y)+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' =
'+tm.getDay()+' '+tm.getTimezoneOffset(),tcf,tfs=3Ds.gtfs(),ta=3D"=0A=
+"-1,q=3D'',qs=3D'',code=3D'',vb=3Dnew =
Object;s.gl(s.vl_g);s.uns();s.m_ll();if(!s.td){var =
tl=3Dtfs.location,a,o,i,x=3D'',c=3D'',v=3D'',p=3D'',bw=3D'',bh=3D'',j=3D'=
1.0',k=3Ds.c_w('s_cc','true',0)?'Y':'N',hp=3D'',ct=3D'',pn=3D0,ps;if"=0A=
+"(String&&String.prototype){j=3D'1.1';if(j.match){j=3D'1.2';if(tm.setUTC=
Date){j=3D'1.3';if(s.isie&&s.ismac&&s.apv>=3D5)j=3D'1.4';if(pn.toPrecisio=
n){j=3D'1.5';a=3Dnew Array;if(a.forEach){j=3D'1.6';i=3D0;o=3Dnew =
Object;t"=0A=
+"cf=3Dnew Function('o','var e,i=3D0;try{i=3Dnew =
Iterator(o)}catch(e){}return =
i');i=3Dtcf(o);if(i&&i.next)j=3D'1.7'}}}}}if(s.apv>=3D4)x=3Dscreen.width+=
'x'+screen.height;if(s.isns||s.isopera){if(s.apv>=3D3){v=3Ds.n.jav"=0A=
+"aEnabled()?'Y':'N';if(s.apv>=3D4){c=3Dscreen.pixelDepth;bw=3Ds.wd.inner=
Width;bh=3Ds.wd.innerHeight}}s.pl=3Ds.n.plugins}else =
if(s.isie){if(s.apv>=3D4){v=3Ds.n.javaEnabled()?'Y':'N';c=3Dscreen.colorD=
epth;if(s.apv>=3D5"=0A=
+"){bw=3Ds.d.documentElement.offsetWidth;bh=3Ds.d.documentElement.offsetH=
eight;if(!s.ismac&&s.b){tcf=3Dnew Function('s','tl','var =
e,hp=3D0;try{s.b.addBehavior(\"#default#homePage\");hp=3Ds.b.isHomePage(t=
l)?\"Y"=0A=
+"\":\"N\"}catch(e){}return hp');hp=3Dtcf(s,tl);tcf=3Dnew =
Function('s','var =
e,ct=3D0;try{s.b.addBehavior(\"#default#clientCaps\");ct=3Ds.b.connection=
Type}catch(e){}return ct');ct=3Dtcf(s)}}}else r=3D''}if(s.pl)w"=0A=
+"hile(pn<s.pl.length&&pn<30){ps=3Ds.fl(s.pl[pn].name,100)+';';if(p.index=
Of(ps)<0)p+=3Dps;pn++}s.resolution=3Dx;s.colorDepth=3Dc;s.javascriptVersi=
on=3Dj;s.javaEnabled=3Dv;s.cookiesEnabled=3Dk;s.browserWidth=3Dbw;s.b"=0A=
+"rowserHeight=3Dbh;s.connectionType=3Dct;s.homepage=3Dhp;s.plugins=3Dp;s=
.td=3D1}if(vo){s.pt(s.vl_g,',','vo2',vb);s.pt(s.vl_g,',','vo1',vo)}if((vo=
&&vo._t)||!s.m_m('d')){if(s.usePlugins)s.doPlugins(s);var l=3Ds.w"=0A=
+"d.location,r=3Dtfs.document.referrer;if(!s.pageURL)s.pageURL=3Dl.href?l=
.href:l;if(!s.referrer&&!s._1_referrer){s.referrer=3Dr;s._1_referrer=3D1}=
s.m_m('g');if(s.lnk||s.eo){var o=3Ds.eo?s.eo:s.lnk;if(!o)return"=0A=
+" '';var =
p=3Ds.pageName,w=3D1,t=3Ds.ot(o),n=3Ds.oid(o),x=3Do.s_oidt,h,l,i,oc;if(s.=
eo&&o=3D=3Ds.eo){while(o&&!n&&t!=3D'BODY'){o=3Do.parentElement?o.parentEl=
ement:o.parentNode;if(!o)return '';t=3Ds.ot(o);n=3Ds.oid(o);x=3Do.s"=0A=
+"_oidt}oc=3Do.onclick?''+o.onclick:'';if((oc.indexOf(\"s_gs(\")>=3D0&&oc=
.indexOf(\".s_oc(\")<0)||oc.indexOf(\".tl(\")>=3D0)return =
''}if(n)ta=3Do.target;h=3Ds.oh(o);i=3Dh.indexOf('?');h=3Ds.linkLeaveQuery=
String||i"=0A=
+"<0?h:h.substring(0,i);l=3Ds.linkName;t=3Ds.linkType?s.linkType.toLowerC=
ase():s.lt(h);if(t&&(h||l))q+=3D'&pe=3Dlnk_'+(t=3D=3D'd'||t=3D=3D'e'?s.ap=
e(t):'o')+(h?'&pev1=3D'+s.ape(h):'')+(l?'&pev2=3D'+s.ape(l):'');else =
trk=3D"=0A=
+"0;if(s.trackInlineStats){if(!p){p=3Ds.pageURL;w=3D0}t=3Ds.ot(o);i=3Do.s=
ourceIndex;if(s.gg('objectID')){n=3Ds.gg('objectID');x=3D1;i=3D1}if(p&&n&=
&t)qs=3D'&pid=3D'+s.ape(s.fl(p,255))+(w?'&pidt=3D'+w:'')+'&oid=3D'+s.ape(=
s."=0A=
+"fl(n,100))+(x?'&oidt=3D'+x:'')+'&ot=3D'+s.ape(t)+(i?'&oi=3D'+i:'')}}if(=
!trk&&!qs)return =
'';s.sampled=3Ds.vs(sed);if(trk){if(s.sampled)code=3Ds.mr(sess,(vt?'&t=3D=
'+s.ape(vt):'')+s.hav()+q+(qs?qs:s.rq()),0,id,ta"=0A=
+");qs=3D'';s.m_m('t');if(s.p_r)s.p_r();s.referrer=3D''}s.sq(qs);}else{s.=
dl(vo);}if(vo)s.pt(s.vl_g,',','vo1',vb);s.lnk=3Ds.eo=3Ds.linkName=3Ds.lin=
kType=3Ds.wd.s_objectID=3Ds.ppu=3Ds.pe=3Ds.pev1=3Ds.pev2=3Ds.pev3=3D'';if=
(s.p"=0A=
+"g)s.wd.s_lnk=3Ds.wd.s_eo=3Ds.wd.s_linkName=3Ds.wd.s_linkType=3D'';if(!i=
d&&!s.tc){s.tc=3D1;s.flushBufferedRequests()}return =
code};s.tl=3Dfunction(o,t,n,vo){var =
s=3Dthis;s.lnk=3Ds.co(o);s.linkType=3Dt;s.linkName=3Dn;s.t"=0A=
+"(vo)};if(pg){s.wd.s_co=3Dfunction(o){var s=3Ds_gi(\"_\",1,1);return =
s.co(o)};s.wd.s_gs=3Dfunction(un){var s=3Ds_gi(un,1,1);return =
s.t()};s.wd.s_dc=3Dfunction(un){var s=3Ds_gi(un,1);return =
s.t()}}s.ssl=3D(s.wd.lo"=0A=
+"cation.protocol.toLowerCase().indexOf('https')>=3D0);s.d=3Ddocument;s.b=
=3Ds.d.body;if(s.d.getElementsByTagName){s.h=3Ds.d.getElementsByTagName('=
HEAD');if(s.h)s.h=3Ds.h[0]}s.n=3Dnavigator;s.u=3Ds.n.userAgent;s.ns"=0A=
+"6=3Ds.u.indexOf('Netscape6/');var =
apn=3Ds.n.appName,v=3Ds.n.appVersion,ie=3Dv.indexOf('MSIE =
'),o=3Ds.u.indexOf('Opera =
'),i;if(v.indexOf('Opera')>=3D0||o>0)apn=3D'Opera';s.isie=3D(apn=3D=3D'Mi=
crosoft Internet Explorer'"=0A=
+");s.isns=3D(apn=3D=3D'Netscape');s.isopera=3D(apn=3D=3D'Opera');s.ismac=
=3D(s.u.indexOf('Mac')>=3D0);if(o>0)s.apv=3DparseFloat(s.u.substring(o+6)=
);else =
if(ie>0){s.apv=3DparseInt(i=3Dv.substring(ie+5));if(s.apv>3)s.apv=3Dpa"=0A=
+"rseFloat(i)}else =
if(s.ns6>0)s.apv=3DparseFloat(s.u.substring(s.ns6+10));else =
s.apv=3DparseFloat(v);s.em=3D0;if(s.em.toPrecision)s.em=3D3;else =
if(String.fromCharCode){i=3Descape(String.fromCharCode(256)).toUp"=0A=
+"perCase();s.em=3D(i=3D=3D'%C4%80'?2:(i=3D=3D'%U0100'?1:0))}s.sa(un);s.v=
l_l=3D'dynamicVariablePrefix,visitorID,vmk,visitorMigrationKey,visitorMig=
rationServer,visitorMigrationServerSecure,ppu,charSet,visitorName"=0A=
+"space,cookieDomainPeriods,cookieLifetime,pageName,pageURL,referrer,curr=
encyCode';s.va_l=3Ds.sp(s.vl_l,',');s.vl_t=3Ds.vl_l+',variableProvider,ch=
annel,server,pageType,transactionID,purchaseID,campaign,s"=0A=
+"tate,zip,events,products,linkName,linkType';for(var =
n=3D1;n<76;n++)s.vl_t+=3D',prop'+n+',eVar'+n+',hier'+n+',list'+n;s.vl_l2=3D=
',tnt,pe,pev1,pev2,pev3,resolution,colorDepth,javascriptVersion,javaEnabl=
ed,"=0A=
+"cookiesEnabled,browserWidth,browserHeight,connectionType,homepage,plugi=
ns';s.vl_t+=3Ds.vl_l2;s.va_t=3Ds.sp(s.vl_t,',');s.vl_g=3Ds.vl_t+',trackin=
gServer,trackingServerSecure,trackingServerBase,fpCookieDom"=0A=
+"ainPeriods,disableBufferedRequests,mobile,visitorSampling,visitorSampli=
ngGroup,dynamicAccountSelection,dynamicAccountList,dynamicAccountMatch,tr=
ackDownloadLinks,trackExternalLinks,trackInlineStats,"=0A=
+"linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilters,linkInte=
rnalFilters,linkTrackVars,linkTrackEvents,linkNames,lnk,eo,_1_referrer';s=
.va_g=3Ds.sp(s.vl_g,',');s.pg=3Dpg;s.gl(s.vl_g);if(!ss)s."=0A=
+"wds()",=0A=
w=3Dwindow,l=3Dw.s_c_il,n=3Dnavigator,u=3Dn.userAgent,v=3Dn.appVersion,e=3D=
v.indexOf('MSIE =
'),m=3Du.indexOf('Netscape6/'),a,i,s;if(un){un=3Dun.toLowerCase();if(l)fo=
r(i=3D0;i<l.length;i++){s=3Dl[i];if(!s._c||s._c=3D=3D's_c'){if(s.oun=3D=3D=
un)return s;else if(s.fs&&s.sa&&s.fs(s.oun,un)){s.sa(un);return =
s}}}}w.s_an=3D'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv=
wxyz';=0A=
w.s_sp=3Dnew Function("x","d","var a=3Dnew =
Array,i=3D0,j;if(x){if(x.split)a=3Dx.split(d);else =
if(!d)for(i=3D0;i<x.length;i++)a[a.length]=3Dx.substring(i,i+1);else =
while(i>=3D0){j=3Dx.indexOf(d,i);a[a.length]=3Dx.subst"=0A=
+"ring(i,j<0?x.length:j);i=3Dj;if(i>=3D0)i+=3Dd.length}}return a");=0A=
w.s_jn=3Dnew Function("a","d","var =
x=3D'',i,j=3Da.length;if(a&&j>0){x=3Da[0];if(j>1){if(a.join)x=3Da.join(d)=
;else for(i=3D1;i<j;i++)x+=3Dd+a[i]}}return x");=0A=
w.s_rep=3Dnew Function("x","o","n","return s_jn(s_sp(x,o),n)");=0A=
w.s_d=3Dnew Function("x","var t=3D'`^@$#',l=3Ds_an,l2=3Dnew =
Object,x2,d,b=3D0,k,i=3Dx.lastIndexOf('~~'),j,v,w;if(i>0){d=3Dx.substring=
(0,i);x=3Dx.substring(i+2);l=3Ds_sp(l,'');for(i=3D0;i<62;i++)l2[l[i]]=3Di=
;t=3Ds_sp(t,'');d"=0A=
+"=3Ds_sp(d,'~');i=3D0;while(i<5){v=3D0;if(x.indexOf(t[i])>=3D0) =
{x2=3Ds_sp(x,t[i]);for(j=3D1;j<x2.length;j++){k=3Dx2[j].substring(0,1);w=3D=
t[i]+k;if(k!=3D' =
'){v=3D1;w=3Dd[b+l2[k]]}x2[j]=3Dw+x2[j].substring(1)}}if(v)x=3Ds_jn("=0A=
+"x2,'');else{w=3Dt[i]+' =
';if(x.indexOf(w)>=3D0)x=3Ds_rep(x,w,t[i]);i++;b+=3D62}}}return x");=0A=
w.s_fe=3Dnew Function("c","return =
s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")"=
);=0A=
w.s_fa=3Dnew Function("f","var =
s=3Df.indexOf('(')+1,e=3Df.indexOf(')'),a=3D'',c;while(s>=3D0&&s<e){c=3Df=
.substring(s,s+1);if(c=3D=3D',')a+=3D'\",\"';else if((\"\\n\\r\\t =
\").indexOf(c)<0)a+=3Dc;s++}return a?'\"'+a+'\"':"=0A=
+"a");=0A=
w.s_ft=3Dnew Function("c","c+=3D'';var =
s,e,o,a,d,q,f,h,x;s=3Dc.indexOf('=3Dfunction(');while(s>=3D0){s++;d=3D1;q=
=3D'';x=3D0;f=3Dc.substring(s);a=3Ds_fa(f);e=3Do=3Dc.indexOf('{',s);e++;w=
hile(d>0){h=3Dc.substring(e,e+1);if(q){i"=0A=
+"f(h=3D=3Dq&&!x)q=3D'';if(h=3D=3D'\\\\')x=3Dx?0:1;else =
x=3D0}else{if(h=3D=3D'\"'||h=3D=3D\"'\")q=3Dh;if(h=3D=3D'{')d++;if(h=3D=3D=
'}')d--}if(d>0)e++}c=3Dc.substring(0,s)+'new =
Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")"=0A=
+"'+c.substring(e+1);s=3Dc.indexOf('=3Dfunction(')}return c;");=0A=
c=3Ds_d(c);if(e>0){a=3DparseInt(i=3Dv.substring(e+5));if(a>3)a=3DparseFlo=
at(i)}else if(m>0)a=3DparseFloat(u.substring(m+10));else =
a=3DparseFloat(v);if(a>=3D5&&v.indexOf('Opera')<0&&u.indexOf('Opera')<0){=
w.s_c=3Dnew Function("un","pg","ss","var s=3Dthis;"+c);return new =
s_c(un,pg,ss)}else s=3Dnew Function("un","pg","ss","var s=3Dnew =
Object;"+s_ft(c)+";return s");return s(un,pg,ss)}
------=_NextPart_000_0000_01CB66F7.77673980--

